@webiny/api-file-manager 6.4.5 → 6.6.0-alpha.0

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 (190) hide show
  1. package/FileManagerAppFeature.d.ts +5 -0
  2. package/FileManagerAppFeature.js +21 -0
  3. package/FileManagerAppFeature.js.map +1 -0
  4. package/delivery/AssetDeliveryRoute.d.ts +14 -0
  5. package/delivery/AssetDeliveryRoute.js +65 -0
  6. package/delivery/AssetDeliveryRoute.js.map +1 -0
  7. package/delivery/setupAssetDelivery.d.ts +1 -1
  8. package/delivery/setupAssetDelivery.js +1 -66
  9. package/delivery/setupAssetDelivery.js.map +1 -1
  10. package/domain/settings/validation.js +1 -1
  11. package/domain/settings/validation.js.map +1 -1
  12. package/exports/api/file-manager/assetDelivery.d.ts +10 -0
  13. package/exports/api/file-manager/assetDelivery.js +8 -0
  14. package/exports/api/file-manager/file.d.ts +1 -0
  15. package/exports/api/file-manager/file.js +1 -0
  16. package/features/FileManagerFeature.js +6 -0
  17. package/features/FileManagerFeature.js.map +1 -1
  18. package/features/FileModelContextualSchema.d.ts +13 -0
  19. package/features/FileModelContextualSchema.js +31 -0
  20. package/features/FileModelContextualSchema.js.map +1 -0
  21. package/features/assetDelivery/Asset/Asset.d.ts +8 -0
  22. package/features/assetDelivery/Asset/Asset.js +14 -0
  23. package/features/assetDelivery/Asset/Asset.js.map +1 -0
  24. package/features/assetDelivery/Asset/abstractions.d.ts +10 -0
  25. package/features/assetDelivery/Asset/abstractions.js +5 -0
  26. package/features/assetDelivery/Asset/abstractions.js.map +1 -0
  27. package/features/assetDelivery/Asset/index.d.ts +1 -0
  28. package/features/assetDelivery/Asset/index.js +1 -0
  29. package/features/assetDelivery/FilesAssetRequestResolver.js +2 -2
  30. package/features/assetDelivery/FilesAssetRequestResolver.js.map +1 -1
  31. package/features/assetDelivery/ObjectKey/ObjectKey.d.ts +8 -0
  32. package/features/assetDelivery/ObjectKey/ObjectKey.js +28 -0
  33. package/features/assetDelivery/ObjectKey/ObjectKey.js.map +1 -0
  34. package/features/assetDelivery/ObjectKey/abstractions.d.ts +12 -0
  35. package/features/assetDelivery/ObjectKey/abstractions.js +5 -0
  36. package/features/assetDelivery/ObjectKey/abstractions.js.map +1 -0
  37. package/features/assetDelivery/ObjectKey/index.d.ts +1 -0
  38. package/features/assetDelivery/ObjectKey/index.js +1 -0
  39. package/features/assetDelivery/StreamAssetReply/StreamAssetReply.d.ts +8 -0
  40. package/features/assetDelivery/StreamAssetReply/StreamAssetReply.js +22 -0
  41. package/features/assetDelivery/StreamAssetReply/StreamAssetReply.js.map +1 -0
  42. package/features/assetDelivery/StreamAssetReply/abstractions.d.ts +11 -0
  43. package/features/assetDelivery/StreamAssetReply/abstractions.js +5 -0
  44. package/features/assetDelivery/StreamAssetReply/abstractions.js.map +1 -0
  45. package/features/assetDelivery/StreamAssetReply/index.d.ts +1 -0
  46. package/features/assetDelivery/StreamAssetReply/index.js +1 -0
  47. package/features/assetDelivery/abstractions.d.ts +23 -12
  48. package/features/assetDelivery/abstractions.js.map +1 -1
  49. package/features/assetDelivery/feature.js +6 -0
  50. package/features/assetDelivery/feature.js.map +1 -1
  51. package/features/assetDelivery/privateFiles/PrivateFileAssetRequestResolver.js +2 -2
  52. package/features/assetDelivery/privateFiles/PrivateFileAssetRequestResolver.js.map +1 -1
  53. package/features/assetDelivery/transformation/AssetKeyGenerator.d.ts +9 -0
  54. package/features/assetDelivery/transformation/AssetKeyGenerator.js +24 -0
  55. package/features/assetDelivery/transformation/AssetKeyGenerator.js.map +1 -0
  56. package/features/assetDelivery/transformation/CallableContentsReader.d.ts +11 -0
  57. package/features/assetDelivery/transformation/CallableContentsReader.js +14 -0
  58. package/features/assetDelivery/transformation/CallableContentsReader.js.map +1 -0
  59. package/features/assetDelivery/transformation/WidthCollection.d.ts +8 -0
  60. package/features/assetDelivery/transformation/WidthCollection.js +22 -0
  61. package/features/assetDelivery/transformation/WidthCollection.js.map +1 -0
  62. package/features/assetDelivery/transformation/index.d.ts +4 -0
  63. package/features/assetDelivery/transformation/index.js +4 -0
  64. package/features/assetDelivery/transformation/utils.d.ts +9 -0
  65. package/features/assetDelivery/transformation/utils.js +31 -0
  66. package/features/assetDelivery/transformation/utils.js.map +1 -0
  67. package/features/extractMetadata/ExtractMetadataHandler.d.ts +11 -0
  68. package/features/extractMetadata/ExtractMetadataHandler.js +25 -0
  69. package/features/extractMetadata/ExtractMetadataHandler.js.map +1 -0
  70. package/features/extractMetadata/ExtractMetadataInput.d.ts +3 -0
  71. package/features/extractMetadata/ExtractMetadataInput.js +0 -0
  72. package/features/file/FileUrlGenerator/FileUrlGenerator.d.ts +14 -0
  73. package/features/file/FileUrlGenerator/FileUrlGenerator.js +25 -0
  74. package/features/file/FileUrlGenerator/FileUrlGenerator.js.map +1 -0
  75. package/features/file/FileUrlGenerator/abstractions.d.ts +3 -3
  76. package/features/file/FileUrlGenerator/abstractions.js +1 -1
  77. package/features/file/FileUrlGenerator/abstractions.js.map +1 -1
  78. package/features/file/FileUrlGenerator/feature.d.ts +4 -0
  79. package/features/file/FileUrlGenerator/feature.js +11 -0
  80. package/features/file/FileUrlGenerator/feature.js.map +1 -0
  81. package/features/file/FileUrlGenerator/index.d.ts +1 -0
  82. package/features/file/FileUrlGenerator/index.js +1 -0
  83. package/features/file/GetFileByUrl/GetFileByUrlUseCase.d.ts +15 -0
  84. package/features/file/GetFileByUrl/GetFileByUrlUseCase.js +37 -0
  85. package/features/file/GetFileByUrl/GetFileByUrlUseCase.js.map +1 -0
  86. package/features/file/GetFileByUrl/abstractions.d.ts +18 -0
  87. package/features/file/GetFileByUrl/abstractions.js +5 -0
  88. package/features/file/GetFileByUrl/abstractions.js.map +1 -0
  89. package/features/file/GetFileByUrl/feature.d.ts +4 -0
  90. package/features/file/GetFileByUrl/feature.js +11 -0
  91. package/features/file/GetFileByUrl/feature.js.map +1 -0
  92. package/features/file/GetFileByUrl/index.d.ts +1 -0
  93. package/features/file/GetFileByUrl/index.js +1 -0
  94. package/features/settings/SettingsInstaller/SettingsInstaller.d.ts +3 -1
  95. package/features/settings/SettingsInstaller/SettingsInstaller.js +7 -4
  96. package/features/settings/SettingsInstaller/SettingsInstaller.js.map +1 -1
  97. package/features/upload/CompleteMultiPartUpload/abstractions.d.ts +12 -0
  98. package/features/upload/CompleteMultiPartUpload/abstractions.js +5 -0
  99. package/features/upload/CompleteMultiPartUpload/abstractions.js.map +1 -0
  100. package/features/upload/CompleteMultiPartUpload/index.d.ts +1 -0
  101. package/features/upload/CompleteMultiPartUpload/index.js +1 -0
  102. package/features/upload/CreateMultiPartUpload/abstractions.d.ts +14 -0
  103. package/features/upload/CreateMultiPartUpload/abstractions.js +5 -0
  104. package/features/upload/CreateMultiPartUpload/abstractions.js.map +1 -0
  105. package/features/upload/CreateMultiPartUpload/index.d.ts +1 -0
  106. package/features/upload/CreateMultiPartUpload/index.js +1 -0
  107. package/features/upload/GetUploadPayload/abstractions.d.ts +10 -0
  108. package/features/upload/GetUploadPayload/abstractions.js +5 -0
  109. package/features/upload/GetUploadPayload/abstractions.js.map +1 -0
  110. package/features/upload/GetUploadPayload/index.d.ts +1 -0
  111. package/features/upload/GetUploadPayload/index.js +1 -0
  112. package/features/upload/ReadFileMetadata/MetadataReader.d.ts +11 -0
  113. package/features/upload/ReadFileMetadata/MetadataReader.js +21 -0
  114. package/features/upload/ReadFileMetadata/MetadataReader.js.map +1 -0
  115. package/features/upload/ReadFileMetadata/abstractions.d.ts +15 -0
  116. package/features/upload/ReadFileMetadata/abstractions.js +5 -0
  117. package/features/upload/ReadFileMetadata/abstractions.js.map +1 -0
  118. package/features/upload/ReadFileMetadata/feature.d.ts +4 -0
  119. package/features/upload/ReadFileMetadata/feature.js +11 -0
  120. package/features/upload/ReadFileMetadata/feature.js.map +1 -0
  121. package/features/upload/ReadFileMetadata/index.d.ts +1 -0
  122. package/features/upload/ReadFileMetadata/index.js +1 -0
  123. package/features/upload/WriteFileMetadata/MetadataWriter.d.ts +14 -0
  124. package/features/upload/WriteFileMetadata/MetadataWriter.js +36 -0
  125. package/features/upload/WriteFileMetadata/MetadataWriter.js.map +1 -0
  126. package/features/upload/WriteFileMetadata/WriteMetadataAfterBatchCreateHandler.d.ts +11 -0
  127. package/features/upload/WriteFileMetadata/WriteMetadataAfterBatchCreateHandler.js +20 -0
  128. package/features/upload/WriteFileMetadata/WriteMetadataAfterBatchCreateHandler.js.map +1 -0
  129. package/features/upload/WriteFileMetadata/WriteMetadataAfterCreateHandler.d.ts +11 -0
  130. package/features/upload/WriteFileMetadata/WriteMetadataAfterCreateHandler.js +22 -0
  131. package/features/upload/WriteFileMetadata/WriteMetadataAfterCreateHandler.js.map +1 -0
  132. package/features/upload/WriteFileMetadata/abstractions.d.ts +9 -0
  133. package/features/upload/WriteFileMetadata/abstractions.js +5 -0
  134. package/features/upload/WriteFileMetadata/abstractions.js.map +1 -0
  135. package/features/upload/WriteFileMetadata/feature.d.ts +4 -0
  136. package/features/upload/WriteFileMetadata/feature.js +15 -0
  137. package/features/upload/WriteFileMetadata/feature.js.map +1 -0
  138. package/features/upload/index.d.ts +17 -0
  139. package/features/upload/index.js +10 -0
  140. package/features/upload/types.d.ts +28 -0
  141. package/features/upload/types.js +0 -0
  142. package/features/upload/utils/FileExtension.d.ts +6 -0
  143. package/features/upload/utils/FileExtension.js +16 -0
  144. package/features/upload/utils/FileExtension.js.map +1 -0
  145. package/features/upload/utils/FileKey.d.ts +11 -0
  146. package/features/upload/utils/FileKey.js +33 -0
  147. package/features/upload/utils/FileKey.js.map +1 -0
  148. package/features/upload/utils/FileNormalizer.d.ts +13 -0
  149. package/features/upload/utils/FileNormalizer.js +41 -0
  150. package/features/upload/utils/FileNormalizer.js.map +1 -0
  151. package/features/upload/utils/FileUploadModifier.d.ts +30 -0
  152. package/features/upload/utils/FileUploadModifier.js +39 -0
  153. package/features/upload/utils/FileUploadModifier.js.map +1 -0
  154. package/features/upload/utils/checkPermissions.d.ts +5 -0
  155. package/features/upload/utils/checkPermissions.js +22 -0
  156. package/features/upload/utils/checkPermissions.js.map +1 -0
  157. package/features/upload/utils/createFileNormalizerFromContext.d.ts +3 -0
  158. package/features/upload/utils/createFileNormalizerFromContext.js +9 -0
  159. package/features/upload/utils/createFileNormalizerFromContext.js.map +1 -0
  160. package/features/upload/utils/mimeTypes.d.ts +1 -0
  161. package/features/upload/utils/mimeTypes.js +9 -0
  162. package/features/upload/utils/mimeTypes.js.map +1 -0
  163. package/graphql/FmGraphQLSchema.d.ts +25 -0
  164. package/graphql/FmGraphQLSchema.js +451 -0
  165. package/graphql/FmGraphQLSchema.js.map +1 -0
  166. package/index.d.ts +3 -6
  167. package/index.js +3 -32
  168. package/index.js.map +1 -1
  169. package/package.json +24 -17
  170. package/graphql/baseSchema.d.ts +0 -3
  171. package/graphql/baseSchema.js +0 -100
  172. package/graphql/baseSchema.js.map +0 -1
  173. package/graphql/createFilesTypeDefs.d.ts +0 -8
  174. package/graphql/createFilesTypeDefs.js +0 -191
  175. package/graphql/createFilesTypeDefs.js.map +0 -1
  176. package/graphql/filesSchema.d.ts +0 -4
  177. package/graphql/filesSchema.js +0 -96
  178. package/graphql/filesSchema.js.map +0 -1
  179. package/graphql/getFileByUrl.d.ts +0 -3
  180. package/graphql/getFileByUrl.js +0 -61
  181. package/graphql/getFileByUrl.js.map +0 -1
  182. package/graphql/index.d.ts +0 -4
  183. package/graphql/index.js +0 -47
  184. package/graphql/index.js.map +0 -1
  185. package/graphql/utils.d.ts +0 -11
  186. package/graphql/utils.js +0 -12
  187. package/graphql/utils.js.map +0 -1
  188. package/modelModifier/CmsModelModifier.d.ts +0 -26
  189. package/modelModifier/CmsModelModifier.js +0 -51
  190. package/modelModifier/CmsModelModifier.js.map +0 -1
@@ -0,0 +1,5 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ const GetFileByUrlUseCase = createAbstraction("GetFileByUrlUseCase");
3
+ export { GetFileByUrlUseCase };
4
+
5
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/file/GetFileByUrl/abstractions.js","sources":["../../../../src/features/file/GetFileByUrl/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { Result } from \"@webiny/feature/api\";\nimport type { File } from \"~/domain/file/types.js\";\nimport { FileNotAuthorizedError } from \"~/domain/file/errors.js\";\nimport type { FilePersistenceError } from \"~/domain/file/errors.js\";\n\nexport interface IGetFileByUrlUseCase {\n execute(url: string): Promise<Result<File | undefined, UseCaseError>>;\n}\n\nexport interface IGetFileByUrlUseCaseErrors {\n notAuthorized: FileNotAuthorizedError;\n persistence: FilePersistenceError;\n}\n\ntype UseCaseError = IGetFileByUrlUseCaseErrors[keyof IGetFileByUrlUseCaseErrors];\n\n/* Retrieve a file by its public URL. */\nexport const GetFileByUrlUseCase = createAbstraction<IGetFileByUrlUseCase>(\"GetFileByUrlUseCase\");\n\nexport namespace GetFileByUrlUseCase {\n export type Interface = IGetFileByUrlUseCase;\n export type Error = UseCaseError;\n}\n"],"names":["GetFileByUrlUseCase","createAbstraction"],"mappings":";AAkBO,MAAMA,sBAAsBC,kBAAwC"}
@@ -0,0 +1,4 @@
1
+ export declare const GetFileByUrlFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -0,0 +1,11 @@
1
+ import { createFeature } from "@webiny/feature/api";
2
+ import { GetFileByUrlUseCase } from "./GetFileByUrlUseCase.js";
3
+ const GetFileByUrlFeature = createFeature({
4
+ name: "FileManager/GetFileByUrl",
5
+ register (container) {
6
+ container.register(GetFileByUrlUseCase);
7
+ }
8
+ });
9
+ export { GetFileByUrlFeature };
10
+
11
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/file/GetFileByUrl/feature.js","sources":["../../../../src/features/file/GetFileByUrl/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { GetFileByUrlUseCase } from \"./GetFileByUrlUseCase.js\";\n\nexport const GetFileByUrlFeature = createFeature({\n name: \"FileManager/GetFileByUrl\",\n register(container) {\n container.register(GetFileByUrlUseCase);\n }\n});\n"],"names":["GetFileByUrlFeature","createFeature","container","GetFileByUrlUseCase"],"mappings":";;AAGO,MAAMA,sBAAsBC,cAAc;IAC7C,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;IACvB;AACJ"}
@@ -0,0 +1 @@
1
+ export { GetFileByUrlUseCase } from "./abstractions.js";
@@ -0,0 +1 @@
1
+ export { GetFileByUrlUseCase } from "./abstractions.js";
@@ -1,13 +1,15 @@
1
1
  import { AppInstaller } from "@webiny/api-core/features/tenancy/InstallTenant/index.js";
2
2
  import { UpdateSettingsUseCase } from "../../../features/settings/UpdateSettings/abstractions.js";
3
3
  import { KeyValueStore } from "@webiny/api-core/features/keyValueStore/index.js";
4
+ import { BuildParams } from "@webiny/api-core/features/buildParams/index.js";
4
5
  declare class SettingsInstallerImpl implements AppInstaller.Interface {
5
6
  private updateSettings;
6
7
  private keyValueStore;
8
+ private buildParams;
7
9
  readonly alwaysRun = true;
8
10
  readonly appName = "FileManager";
9
11
  readonly dependsOn: never[];
10
- constructor(updateSettings: UpdateSettingsUseCase.Interface, keyValueStore: KeyValueStore.Interface);
12
+ constructor(updateSettings: UpdateSettingsUseCase.Interface, keyValueStore: KeyValueStore.Interface, buildParams: BuildParams.Interface);
11
13
  install(): Promise<void>;
12
14
  uninstall(): Promise<void>;
13
15
  }
@@ -1,20 +1,22 @@
1
- import { ServiceDiscovery } from "@webiny/api";
1
+ import { ServiceDiscovery } from "@webiny/api-core/features/serviceDiscovery/index.js";
2
2
  import { createImplementation } from "@webiny/feature/api";
3
3
  import { AppInstaller } from "@webiny/api-core/features/tenancy/InstallTenant/index.js";
4
4
  import { FILE_MANAGER_GENERAL_SETTINGS } from "../../../domain/settings/constants.js";
5
5
  import { UpdateSettingsUseCase } from "../UpdateSettings/abstractions.js";
6
6
  import { KeyValueStore } from "@webiny/api-core/features/keyValueStore/index.js";
7
+ import { BuildParams } from "@webiny/api-core/features/buildParams/index.js";
7
8
  class SettingsInstallerImpl {
8
- constructor(updateSettings, keyValueStore){
9
+ constructor(updateSettings, keyValueStore, buildParams){
9
10
  this.updateSettings = updateSettings;
10
11
  this.keyValueStore = keyValueStore;
12
+ this.buildParams = buildParams;
11
13
  this.alwaysRun = true;
12
14
  this.appName = "FileManager";
13
15
  this.dependsOn = [];
14
16
  }
15
17
  async install() {
16
18
  const manifest = await ServiceDiscovery.load();
17
- const domain = manifest?.api?.cloudfront.domain;
19
+ const domain = manifest?.api?.cloudfront?.domain ?? this.buildParams.get("WEBINY_API_URL") ?? "";
18
20
  await this.updateSettings.execute({
19
21
  srcPrefix: `${domain}/files`
20
22
  });
@@ -28,7 +30,8 @@ const SettingsInstaller = createImplementation({
28
30
  implementation: SettingsInstallerImpl,
29
31
  dependencies: [
30
32
  UpdateSettingsUseCase,
31
- KeyValueStore
33
+ KeyValueStore,
34
+ BuildParams
32
35
  ]
33
36
  });
34
37
  export { SettingsInstaller };
@@ -1 +1 @@
1
- {"version":3,"file":"features/settings/SettingsInstaller/SettingsInstaller.js","sources":["../../../../src/features/settings/SettingsInstaller/SettingsInstaller.ts"],"sourcesContent":["import { ServiceDiscovery } from \"@webiny/api\";\nimport { createImplementation } from \"@webiny/feature/api\";\nimport { AppInstaller } from \"@webiny/api-core/features/tenancy/InstallTenant/index.js\";\nimport { FILE_MANAGER_GENERAL_SETTINGS } from \"~/domain/settings/constants.js\";\nimport { UpdateSettingsUseCase } from \"~/features/settings/UpdateSettings/abstractions.js\";\nimport { KeyValueStore } from \"@webiny/api-core/features/keyValueStore/index.js\";\n\nclass SettingsInstallerImpl implements AppInstaller.Interface {\n readonly alwaysRun = true;\n readonly appName = \"FileManager\";\n readonly dependsOn = [];\n\n constructor(\n private updateSettings: UpdateSettingsUseCase.Interface,\n private keyValueStore: KeyValueStore.Interface\n ) {}\n\n async install(): Promise<void> {\n // TODO: move this to api-core with a proper abstraction\n const manifest = await ServiceDiscovery.load();\n\n // If no records in the database, `manifest` object is empty POJO.\n // That's why the heavy `?.` usage.\n const domain = manifest?.api?.cloudfront.domain;\n\n await this.updateSettings.execute({\n srcPrefix: `${domain}/files`\n });\n }\n\n async uninstall(): Promise<void> {\n await this.keyValueStore.delete(FILE_MANAGER_GENERAL_SETTINGS);\n }\n}\n\nexport const SettingsInstaller = createImplementation({\n abstraction: AppInstaller,\n implementation: SettingsInstallerImpl,\n dependencies: [UpdateSettingsUseCase, KeyValueStore]\n});\n"],"names":["SettingsInstallerImpl","updateSettings","keyValueStore","manifest","ServiceDiscovery","domain","FILE_MANAGER_GENERAL_SETTINGS","SettingsInstaller","createImplementation","AppInstaller","UpdateSettingsUseCase","KeyValueStore"],"mappings":";;;;;;AAOA,MAAMA;IAKF,YACYC,cAA+C,EAC/CC,aAAsC,CAChD;aAFUD,cAAc,GAAdA;aACAC,aAAa,GAAbA;aANH,SAAS,GAAG;aACZ,OAAO,GAAG;aACV,SAAS,GAAG,EAAE;IAKpB;IAEH,MAAM,UAAyB;QAE3B,MAAMC,WAAW,MAAMC,iBAAiB,IAAI;QAI5C,MAAMC,SAASF,UAAU,KAAK,WAAW;QAEzC,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;YAC9B,WAAW,GAAGE,OAAO,MAAM,CAAC;QAChC;IACJ;IAEA,MAAM,YAA2B;QAC7B,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAACC;IACpC;AACJ;AAEO,MAAMC,oBAAoBC,qBAAqB;IAClD,aAAaC;IACb,gBAAgBT;IAChB,cAAc;QAACU;QAAuBC;KAAc;AACxD"}
1
+ {"version":3,"file":"features/settings/SettingsInstaller/SettingsInstaller.js","sources":["../../../../src/features/settings/SettingsInstaller/SettingsInstaller.ts"],"sourcesContent":["import { ServiceDiscovery } from \"@webiny/api-core/features/serviceDiscovery/index.js\";\nimport { createImplementation } from \"@webiny/feature/api\";\nimport { AppInstaller } from \"@webiny/api-core/features/tenancy/InstallTenant/index.js\";\nimport { FILE_MANAGER_GENERAL_SETTINGS } from \"~/domain/settings/constants.js\";\nimport { UpdateSettingsUseCase } from \"~/features/settings/UpdateSettings/abstractions.js\";\nimport { KeyValueStore } from \"@webiny/api-core/features/keyValueStore/index.js\";\nimport { BuildParams } from \"@webiny/api-core/features/buildParams/index.js\";\n\nclass SettingsInstallerImpl implements AppInstaller.Interface {\n readonly alwaysRun = true;\n readonly appName = \"FileManager\";\n readonly dependsOn = [];\n\n constructor(\n private updateSettings: UpdateSettingsUseCase.Interface,\n private keyValueStore: KeyValueStore.Interface,\n private buildParams: BuildParams.Interface\n ) {}\n\n async install(): Promise<void> {\n // TODO: move this to api-core with a proper abstraction\n const manifest = await ServiceDiscovery.load();\n\n // If no records in the database, `manifest` object is empty POJO.\n // That's why the heavy `?.` usage.\n //\n // The AWS hosting type serves files from a CloudFront domain (in the manifest). The self-hosted\n // (server) hosting type has no CloudFront — files are served by the api's own `/files/*` route — so\n // fall back to the configured API origin, read from the WEBINY_API_URL build param (baked by\n // Infra.ApiUrl), not a process.env read.\n const domain =\n manifest?.api?.cloudfront?.domain ??\n this.buildParams.get<string>(\"WEBINY_API_URL\") ??\n \"\";\n\n await this.updateSettings.execute({\n srcPrefix: `${domain}/files`\n });\n }\n\n async uninstall(): Promise<void> {\n await this.keyValueStore.delete(FILE_MANAGER_GENERAL_SETTINGS);\n }\n}\n\nexport const SettingsInstaller = createImplementation({\n abstraction: AppInstaller,\n implementation: SettingsInstallerImpl,\n dependencies: [UpdateSettingsUseCase, KeyValueStore, BuildParams]\n});\n"],"names":["SettingsInstallerImpl","updateSettings","keyValueStore","buildParams","manifest","ServiceDiscovery","domain","FILE_MANAGER_GENERAL_SETTINGS","SettingsInstaller","createImplementation","AppInstaller","UpdateSettingsUseCase","KeyValueStore","BuildParams"],"mappings":";;;;;;;AAQA,MAAMA;IAKF,YACYC,cAA+C,EAC/CC,aAAsC,EACtCC,WAAkC,CAC5C;aAHUF,cAAc,GAAdA;aACAC,aAAa,GAAbA;aACAC,WAAW,GAAXA;aAPH,SAAS,GAAG;aACZ,OAAO,GAAG;aACV,SAAS,GAAG,EAAE;IAMpB;IAEH,MAAM,UAAyB;QAE3B,MAAMC,WAAW,MAAMC,iBAAiB,IAAI;QAS5C,MAAMC,SACFF,UAAU,KAAK,YAAY,UAC3B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAS,qBAC7B;QAEJ,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC;YAC9B,WAAW,GAAGE,OAAO,MAAM,CAAC;QAChC;IACJ;IAEA,MAAM,YAA2B;QAC7B,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAACC;IACpC;AACJ;AAEO,MAAMC,oBAAoBC,qBAAqB;IAClD,aAAaC;IACb,gBAAgBV;IAChB,cAAc;QAACW;QAAuBC;QAAeC;KAAY;AACrE"}
@@ -0,0 +1,12 @@
1
+ export interface ICompleteMultiPartUploadParams {
2
+ fileKey: string;
3
+ uploadId: string;
4
+ }
5
+ export interface ICompleteMultiPartUploadUseCase {
6
+ execute(params: ICompleteMultiPartUploadParams): Promise<void>;
7
+ }
8
+ export declare const CompleteMultiPartUploadUseCase: import("@webiny/di").Abstraction<ICompleteMultiPartUploadUseCase>;
9
+ export declare namespace CompleteMultiPartUploadUseCase {
10
+ type Interface = ICompleteMultiPartUploadUseCase;
11
+ type Params = ICompleteMultiPartUploadParams;
12
+ }
@@ -0,0 +1,5 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ const CompleteMultiPartUploadUseCase = createAbstraction("CompleteMultiPartUploadUseCase");
3
+ export { CompleteMultiPartUploadUseCase };
4
+
5
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/upload/CompleteMultiPartUpload/abstractions.js","sources":["../../../../src/features/upload/CompleteMultiPartUpload/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\n\nexport interface ICompleteMultiPartUploadParams {\n fileKey: string;\n uploadId: string;\n}\n\nexport interface ICompleteMultiPartUploadUseCase {\n execute(params: ICompleteMultiPartUploadParams): Promise<void>;\n}\n\nexport const CompleteMultiPartUploadUseCase = createAbstraction<ICompleteMultiPartUploadUseCase>(\n \"CompleteMultiPartUploadUseCase\"\n);\n\nexport namespace CompleteMultiPartUploadUseCase {\n export type Interface = ICompleteMultiPartUploadUseCase;\n export type Params = ICompleteMultiPartUploadParams;\n}\n"],"names":["CompleteMultiPartUploadUseCase","createAbstraction"],"mappings":";AAWO,MAAMA,iCAAiCC,kBAC1C"}
@@ -0,0 +1 @@
1
+ export { CompleteMultiPartUploadUseCase } from "./abstractions.js";
@@ -0,0 +1 @@
1
+ export { CompleteMultiPartUploadUseCase } from "./abstractions.js";
@@ -0,0 +1,14 @@
1
+ import type { FileData } from "../../../features/upload/types.js";
2
+ import type { CreateMultiPartUploadResult } from "../../../features/upload/types.js";
3
+ export interface ICreateMultiPartUploadParams {
4
+ file: FileData;
5
+ numberOfParts: number;
6
+ }
7
+ export interface ICreateMultiPartUploadUseCase {
8
+ execute(params: ICreateMultiPartUploadParams): Promise<CreateMultiPartUploadResult>;
9
+ }
10
+ export declare const CreateMultiPartUploadUseCase: import("@webiny/di").Abstraction<ICreateMultiPartUploadUseCase>;
11
+ export declare namespace CreateMultiPartUploadUseCase {
12
+ type Interface = ICreateMultiPartUploadUseCase;
13
+ type Params = ICreateMultiPartUploadParams;
14
+ }
@@ -0,0 +1,5 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ const CreateMultiPartUploadUseCase = createAbstraction("CreateMultiPartUploadUseCase");
3
+ export { CreateMultiPartUploadUseCase };
4
+
5
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/upload/CreateMultiPartUpload/abstractions.js","sources":["../../../../src/features/upload/CreateMultiPartUpload/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { FileData } from \"~/features/upload/types.js\";\nimport type { CreateMultiPartUploadResult } from \"~/features/upload/types.js\";\n\nexport interface ICreateMultiPartUploadParams {\n file: FileData;\n numberOfParts: number;\n}\n\nexport interface ICreateMultiPartUploadUseCase {\n execute(params: ICreateMultiPartUploadParams): Promise<CreateMultiPartUploadResult>;\n}\n\nexport const CreateMultiPartUploadUseCase = createAbstraction<ICreateMultiPartUploadUseCase>(\n \"CreateMultiPartUploadUseCase\"\n);\n\nexport namespace CreateMultiPartUploadUseCase {\n export type Interface = ICreateMultiPartUploadUseCase;\n export type Params = ICreateMultiPartUploadParams;\n}\n"],"names":["CreateMultiPartUploadUseCase","createAbstraction"],"mappings":";AAaO,MAAMA,+BAA+BC,kBACxC"}
@@ -0,0 +1 @@
1
+ export { CreateMultiPartUploadUseCase } from "./abstractions.js";
@@ -0,0 +1 @@
1
+ export { CreateMultiPartUploadUseCase } from "./abstractions.js";
@@ -0,0 +1,10 @@
1
+ import type { FileData } from "../../../features/upload/types.js";
2
+ import type { UploadPayloadResponse } from "../../../features/upload/types.js";
3
+ import type { FileManagerSettings } from "../../../domain/settings/types.js";
4
+ export interface IGetUploadPayloadUseCase {
5
+ execute(file: FileData, settings: FileManagerSettings): Promise<UploadPayloadResponse>;
6
+ }
7
+ export declare const GetUploadPayloadUseCase: import("@webiny/di").Abstraction<IGetUploadPayloadUseCase>;
8
+ export declare namespace GetUploadPayloadUseCase {
9
+ type Interface = IGetUploadPayloadUseCase;
10
+ }
@@ -0,0 +1,5 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ const GetUploadPayloadUseCase = createAbstraction("GetUploadPayloadUseCase");
3
+ export { GetUploadPayloadUseCase };
4
+
5
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/upload/GetUploadPayload/abstractions.js","sources":["../../../../src/features/upload/GetUploadPayload/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { FileData } from \"~/features/upload/types.js\";\nimport type { UploadPayloadResponse } from \"~/features/upload/types.js\";\nimport type { FileManagerSettings } from \"~/domain/settings/types.js\";\n\nexport interface IGetUploadPayloadUseCase {\n execute(file: FileData, settings: FileManagerSettings): Promise<UploadPayloadResponse>;\n}\n\nexport const GetUploadPayloadUseCase =\n createAbstraction<IGetUploadPayloadUseCase>(\"GetUploadPayloadUseCase\");\n\nexport namespace GetUploadPayloadUseCase {\n export type Interface = IGetUploadPayloadUseCase;\n}\n"],"names":["GetUploadPayloadUseCase","createAbstraction"],"mappings":";AASO,MAAMA,0BACTC,kBAA4C"}
@@ -0,0 +1 @@
1
+ export { GetUploadPayloadUseCase } from "./abstractions.js";
@@ -0,0 +1 @@
1
+ export { GetUploadPayloadUseCase } from "./abstractions.js";
@@ -0,0 +1,11 @@
1
+ import { GlobalKeyValueStore } from "@webiny/api-core/features/keyValueStore/index.js";
2
+ import { type IMetadataReader, type AssetMetadata } from "./abstractions.js";
3
+ declare class MetadataReaderImpl implements IMetadataReader {
4
+ private readonly keyValueStore;
5
+ constructor(keyValueStore: GlobalKeyValueStore.Interface);
6
+ read(fileId: string): Promise<AssetMetadata | undefined>;
7
+ }
8
+ export declare const MetadataReader: typeof MetadataReaderImpl & {
9
+ __abstraction: import("@webiny/di").Abstraction<IMetadataReader>;
10
+ };
11
+ export {};
@@ -0,0 +1,21 @@
1
+ import { GlobalKeyValueStore } from "@webiny/api-core/features/keyValueStore/index.js";
2
+ import { MetadataReader } from "./abstractions.js";
3
+ class MetadataReaderImpl {
4
+ constructor(keyValueStore){
5
+ this.keyValueStore = keyValueStore;
6
+ }
7
+ async read(fileId) {
8
+ const result = await this.keyValueStore.get(`FileManager/File/${fileId}/Metadata`);
9
+ if (result.isFail()) return;
10
+ return result.value;
11
+ }
12
+ }
13
+ const MetadataReader_MetadataReader = MetadataReader.createImplementation({
14
+ implementation: MetadataReaderImpl,
15
+ dependencies: [
16
+ GlobalKeyValueStore
17
+ ]
18
+ });
19
+ export { MetadataReader_MetadataReader as MetadataReader };
20
+
21
+ //# sourceMappingURL=MetadataReader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/upload/ReadFileMetadata/MetadataReader.js","sources":["../../../../src/features/upload/ReadFileMetadata/MetadataReader.ts"],"sourcesContent":["import { GlobalKeyValueStore } from \"@webiny/api-core/features/keyValueStore/index.js\";\nimport {\n MetadataReader as MetadataReaderAbstraction,\n type IMetadataReader,\n type AssetMetadata\n} from \"./abstractions.js\";\n\nclass MetadataReaderImpl implements IMetadataReader {\n private readonly keyValueStore: GlobalKeyValueStore.Interface;\n\n public constructor(keyValueStore: GlobalKeyValueStore.Interface) {\n this.keyValueStore = keyValueStore;\n }\n\n public async read(fileId: string): Promise<AssetMetadata | undefined> {\n const result = await this.keyValueStore.get<AssetMetadata>(\n `FileManager/File/${fileId}/Metadata`\n );\n\n if (result.isFail()) {\n return undefined;\n }\n\n return result.value;\n }\n}\n\nexport const MetadataReader = MetadataReaderAbstraction.createImplementation({\n implementation: MetadataReaderImpl,\n dependencies: [GlobalKeyValueStore]\n});\n"],"names":["MetadataReaderImpl","keyValueStore","fileId","result","MetadataReader","MetadataReaderAbstraction","GlobalKeyValueStore"],"mappings":";;AAOA,MAAMA;IAGF,YAAmBC,aAA4C,CAAE;QAC7D,IAAI,CAAC,aAAa,GAAGA;IACzB;IAEA,MAAa,KAAKC,MAAc,EAAsC;QAClE,MAAMC,SAAS,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CACvC,CAAC,iBAAiB,EAAED,OAAO,SAAS,CAAC;QAGzC,IAAIC,OAAO,MAAM,IACb;QAGJ,OAAOA,OAAO,KAAK;IACvB;AACJ;AAEO,MAAMC,gCAAiBC,eAAAA,oBAA8C,CAAC;IACzE,gBAAgBL;IAChB,cAAc;QAACM;KAAoB;AACvC"}
@@ -0,0 +1,15 @@
1
+ export interface AssetMetadata {
2
+ id: string;
3
+ tenant: string;
4
+ size: number;
5
+ contentType: string;
6
+ bucketKey: string;
7
+ }
8
+ export interface IMetadataReader {
9
+ read(fileId: string): Promise<AssetMetadata | undefined>;
10
+ }
11
+ export declare const MetadataReader: import("@webiny/di").Abstraction<IMetadataReader>;
12
+ export declare namespace MetadataReader {
13
+ type Interface = IMetadataReader;
14
+ type Metadata = AssetMetadata;
15
+ }
@@ -0,0 +1,5 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ const MetadataReader = createAbstraction("FileManager/Upload/MetadataReader");
3
+ export { MetadataReader };
4
+
5
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/upload/ReadFileMetadata/abstractions.js","sources":["../../../../src/features/upload/ReadFileMetadata/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\n\nexport interface AssetMetadata {\n id: string;\n tenant: string;\n size: number;\n contentType: string;\n bucketKey: string;\n}\n\nexport interface IMetadataReader {\n read(fileId: string): Promise<AssetMetadata | undefined>;\n}\n\nexport const MetadataReader = createAbstraction<IMetadataReader>(\n \"FileManager/Upload/MetadataReader\"\n);\n\nexport namespace MetadataReader {\n export type Interface = IMetadataReader;\n export type Metadata = AssetMetadata;\n}\n"],"names":["MetadataReader","createAbstraction"],"mappings":";AAcO,MAAMA,iBAAiBC,kBAC1B"}
@@ -0,0 +1,4 @@
1
+ export declare const ReadFileMetadataFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -0,0 +1,11 @@
1
+ import { createFeature } from "@webiny/feature/api";
2
+ import { MetadataReader } from "./MetadataReader.js";
3
+ const ReadFileMetadataFeature = createFeature({
4
+ name: "FileManager/ReadFileMetadata",
5
+ register (container) {
6
+ container.register(MetadataReader);
7
+ }
8
+ });
9
+ export { ReadFileMetadataFeature };
10
+
11
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/upload/ReadFileMetadata/feature.js","sources":["../../../../src/features/upload/ReadFileMetadata/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { MetadataReader } from \"./MetadataReader.js\";\n\nexport const ReadFileMetadataFeature = createFeature({\n name: \"FileManager/ReadFileMetadata\",\n register(container) {\n container.register(MetadataReader);\n }\n});\n"],"names":["ReadFileMetadataFeature","createFeature","container","MetadataReader"],"mappings":";;AAGO,MAAMA,0BAA0BC,cAAc;IACjD,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;IACvB;AACJ"}
@@ -0,0 +1 @@
1
+ export { MetadataReader } from "./abstractions.js";
@@ -0,0 +1 @@
1
+ export { MetadataReader } from "./abstractions.js";
@@ -0,0 +1,14 @@
1
+ import { TenantContext } from "@webiny/api-core/features/tenancy/TenantContext/index.js";
2
+ import { GlobalKeyValueStore } from "@webiny/api-core/features/keyValueStore/index.js";
3
+ import { MetadataWriter as MetadataWriterAbstraction } from "./abstractions.js";
4
+ declare class MetadataWriterImpl implements MetadataWriterAbstraction.Interface {
5
+ private readonly tenantContext;
6
+ private readonly keyValueStore;
7
+ constructor(tenantContext: TenantContext.Interface, keyValueStore: GlobalKeyValueStore.Interface);
8
+ write(files: MetadataWriterAbstraction.File[]): Promise<void>;
9
+ private getMetadata;
10
+ }
11
+ export declare const MetadataWriter: typeof MetadataWriterImpl & {
12
+ __abstraction: import("@webiny/di").Abstraction<import("./abstractions.js").IMetadataWriter>;
13
+ };
14
+ export {};
@@ -0,0 +1,36 @@
1
+ import { TenantContext } from "@webiny/api-core/features/tenancy/TenantContext/index.js";
2
+ import { GlobalKeyValueStore } from "@webiny/api-core/features/keyValueStore/index.js";
3
+ import { MetadataWriter } from "./abstractions.js";
4
+ class MetadataWriterImpl {
5
+ constructor(tenantContext, keyValueStore){
6
+ this.tenantContext = tenantContext;
7
+ this.keyValueStore = keyValueStore;
8
+ }
9
+ async write(files) {
10
+ const writers = files.map(async (file)=>{
11
+ const metadata = this.getMetadata(file);
12
+ await this.keyValueStore.set(`FileManager/File/${file.id}/Metadata`, metadata);
13
+ });
14
+ await Promise.all(writers);
15
+ }
16
+ getMetadata(file) {
17
+ const tenant = this.tenantContext.getTenant();
18
+ return {
19
+ id: file.id,
20
+ bucketKey: `tenants/${tenant.id}/files/${file.key}`,
21
+ tenant: tenant.id,
22
+ size: file.size,
23
+ contentType: file.type
24
+ };
25
+ }
26
+ }
27
+ const MetadataWriter_MetadataWriter = MetadataWriter.createImplementation({
28
+ implementation: MetadataWriterImpl,
29
+ dependencies: [
30
+ TenantContext,
31
+ GlobalKeyValueStore
32
+ ]
33
+ });
34
+ export { MetadataWriter_MetadataWriter as MetadataWriter };
35
+
36
+ //# sourceMappingURL=MetadataWriter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/upload/WriteFileMetadata/MetadataWriter.js","sources":["../../../../src/features/upload/WriteFileMetadata/MetadataWriter.ts"],"sourcesContent":["import { TenantContext } from \"@webiny/api-core/features/tenancy/TenantContext/index.js\";\nimport { GlobalKeyValueStore } from \"@webiny/api-core/features/keyValueStore/index.js\";\nimport { MetadataWriter as MetadataWriterAbstraction } from \"./abstractions.js\";\n\nclass MetadataWriterImpl implements MetadataWriterAbstraction.Interface {\n private readonly tenantContext: TenantContext.Interface;\n private readonly keyValueStore: GlobalKeyValueStore.Interface;\n\n public constructor(\n tenantContext: TenantContext.Interface,\n keyValueStore: GlobalKeyValueStore.Interface\n ) {\n this.tenantContext = tenantContext;\n this.keyValueStore = keyValueStore;\n }\n\n public async write(files: MetadataWriterAbstraction.File[]) {\n const writers = files.map(async file => {\n const metadata = this.getMetadata(file);\n await this.keyValueStore.set(`FileManager/File/${file.id}/Metadata`, metadata);\n });\n\n await Promise.all(writers);\n }\n\n private getMetadata(file: MetadataWriterAbstraction.File) {\n const tenant = this.tenantContext.getTenant();\n return {\n id: file.id,\n bucketKey: `tenants/${tenant.id}/files/${file.key}`,\n tenant: tenant.id,\n size: file.size,\n contentType: file.type\n };\n }\n}\n\nexport const MetadataWriter = MetadataWriterAbstraction.createImplementation({\n implementation: MetadataWriterImpl,\n dependencies: [TenantContext, GlobalKeyValueStore]\n});\n"],"names":["MetadataWriterImpl","tenantContext","keyValueStore","files","writers","file","metadata","Promise","tenant","MetadataWriter","MetadataWriterAbstraction","TenantContext","GlobalKeyValueStore"],"mappings":";;;AAIA,MAAMA;IAIF,YACIC,aAAsC,EACtCC,aAA4C,CAC9C;QACE,IAAI,CAAC,aAAa,GAAGD;QACrB,IAAI,CAAC,aAAa,GAAGC;IACzB;IAEA,MAAa,MAAMC,KAAuC,EAAE;QACxD,MAAMC,UAAUD,MAAM,GAAG,CAAC,OAAME;YAC5B,MAAMC,WAAW,IAAI,CAAC,WAAW,CAACD;YAClC,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,iBAAiB,EAAEA,KAAK,EAAE,CAAC,SAAS,CAAC,EAAEC;QACzE;QAEA,MAAMC,QAAQ,GAAG,CAACH;IACtB;IAEQ,YAAYC,IAAoC,EAAE;QACtD,MAAMG,SAAS,IAAI,CAAC,aAAa,CAAC,SAAS;QAC3C,OAAO;YACH,IAAIH,KAAK,EAAE;YACX,WAAW,CAAC,QAAQ,EAAEG,OAAO,EAAE,CAAC,OAAO,EAAEH,KAAK,GAAG,EAAE;YACnD,QAAQG,OAAO,EAAE;YACjB,MAAMH,KAAK,IAAI;YACf,aAAaA,KAAK,IAAI;QAC1B;IACJ;AACJ;AAEO,MAAMI,gCAAiBC,eAAAA,oBAA8C,CAAC;IACzE,gBAAgBV;IAChB,cAAc;QAACW;QAAeC;KAAoB;AACtD"}
@@ -0,0 +1,11 @@
1
+ import { FileAfterBatchCreateEventHandler } from "../../../features/file/CreateFilesInBatch/events.js";
2
+ import { MetadataWriter } from "./abstractions.js";
3
+ declare class WriteMetadataAfterBatchCreateHandlerImpl implements FileAfterBatchCreateEventHandler.Interface {
4
+ private readonly metadataWriter;
5
+ constructor(metadataWriter: MetadataWriter.Interface);
6
+ handle(event: FileAfterBatchCreateEventHandler.Event): Promise<void>;
7
+ }
8
+ export declare const WriteMetadataAfterBatchCreateHandler: typeof WriteMetadataAfterBatchCreateHandlerImpl & {
9
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/eventPublisher/abstractions.js").IEventHandler<import("~/features/file/CreateFilesInBatch/events.js").FileAfterBatchCreateEvent>>;
10
+ };
11
+ export {};
@@ -0,0 +1,20 @@
1
+ import { FileAfterBatchCreateEventHandler } from "../../file/CreateFilesInBatch/events.js";
2
+ import { MetadataWriter } from "./abstractions.js";
3
+ class WriteMetadataAfterBatchCreateHandlerImpl {
4
+ constructor(metadataWriter){
5
+ this.metadataWriter = metadataWriter;
6
+ }
7
+ async handle(event) {
8
+ const { files } = event.payload;
9
+ await this.metadataWriter.write(files);
10
+ }
11
+ }
12
+ const WriteMetadataAfterBatchCreateHandler = FileAfterBatchCreateEventHandler.createImplementation({
13
+ implementation: WriteMetadataAfterBatchCreateHandlerImpl,
14
+ dependencies: [
15
+ MetadataWriter
16
+ ]
17
+ });
18
+ export { WriteMetadataAfterBatchCreateHandler };
19
+
20
+ //# sourceMappingURL=WriteMetadataAfterBatchCreateHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/upload/WriteFileMetadata/WriteMetadataAfterBatchCreateHandler.js","sources":["../../../../src/features/upload/WriteFileMetadata/WriteMetadataAfterBatchCreateHandler.ts"],"sourcesContent":["import { FileAfterBatchCreateEventHandler } from \"~/features/file/CreateFilesInBatch/events.js\";\nimport { MetadataWriter } from \"./abstractions.js\";\n\nclass WriteMetadataAfterBatchCreateHandlerImpl\n implements FileAfterBatchCreateEventHandler.Interface\n{\n private readonly metadataWriter: MetadataWriter.Interface;\n\n public constructor(metadataWriter: MetadataWriter.Interface) {\n this.metadataWriter = metadataWriter;\n }\n\n public async handle(event: FileAfterBatchCreateEventHandler.Event): Promise<void> {\n const { files } = event.payload;\n await this.metadataWriter.write(files);\n }\n}\n\nexport const WriteMetadataAfterBatchCreateHandler =\n FileAfterBatchCreateEventHandler.createImplementation({\n implementation: WriteMetadataAfterBatchCreateHandlerImpl,\n dependencies: [MetadataWriter]\n });\n"],"names":["WriteMetadataAfterBatchCreateHandlerImpl","metadataWriter","event","files","WriteMetadataAfterBatchCreateHandler","FileAfterBatchCreateEventHandler","MetadataWriter"],"mappings":";;AAGA,MAAMA;IAKF,YAAmBC,cAAwC,CAAE;QACzD,IAAI,CAAC,cAAc,GAAGA;IAC1B;IAEA,MAAa,OAAOC,KAA6C,EAAiB;QAC9E,MAAM,EAAEC,KAAK,EAAE,GAAGD,MAAM,OAAO;QAC/B,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAACC;IACpC;AACJ;AAEO,MAAMC,uCACTC,iCAAiC,oBAAoB,CAAC;IAClD,gBAAgBL;IAChB,cAAc;QAACM;KAAe;AAClC"}
@@ -0,0 +1,11 @@
1
+ import { FileAfterCreateEventHandler } from "../../../features/file/CreateFile/events.js";
2
+ import { MetadataWriter } from "./abstractions.js";
3
+ declare class WriteMetadataAfterCreateHandlerImpl implements FileAfterCreateEventHandler.Interface {
4
+ private readonly metadataWriter;
5
+ constructor(metadataWriter: MetadataWriter.Interface);
6
+ handle(event: FileAfterCreateEventHandler.Event): Promise<void>;
7
+ }
8
+ export declare const WriteMetadataAfterCreateHandler: typeof WriteMetadataAfterCreateHandlerImpl & {
9
+ __abstraction: import("@webiny/di").Abstraction<import("@webiny/api-core/features/eventPublisher/abstractions.js").IEventHandler<import("~/features/file/CreateFile/events.js").FileAfterCreateEvent>>;
10
+ };
11
+ export {};
@@ -0,0 +1,22 @@
1
+ import { FileAfterCreateEventHandler } from "../../file/CreateFile/events.js";
2
+ import { MetadataWriter } from "./abstractions.js";
3
+ class WriteMetadataAfterCreateHandlerImpl {
4
+ constructor(metadataWriter){
5
+ this.metadataWriter = metadataWriter;
6
+ }
7
+ async handle(event) {
8
+ const { file } = event.payload;
9
+ await this.metadataWriter.write([
10
+ file
11
+ ]);
12
+ }
13
+ }
14
+ const WriteMetadataAfterCreateHandler = FileAfterCreateEventHandler.createImplementation({
15
+ implementation: WriteMetadataAfterCreateHandlerImpl,
16
+ dependencies: [
17
+ MetadataWriter
18
+ ]
19
+ });
20
+ export { WriteMetadataAfterCreateHandler };
21
+
22
+ //# sourceMappingURL=WriteMetadataAfterCreateHandler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/upload/WriteFileMetadata/WriteMetadataAfterCreateHandler.js","sources":["../../../../src/features/upload/WriteFileMetadata/WriteMetadataAfterCreateHandler.ts"],"sourcesContent":["import { FileAfterCreateEventHandler } from \"~/features/file/CreateFile/events.js\";\nimport { MetadataWriter } from \"./abstractions.js\";\n\nclass WriteMetadataAfterCreateHandlerImpl implements FileAfterCreateEventHandler.Interface {\n private readonly metadataWriter: MetadataWriter.Interface;\n\n public constructor(metadataWriter: MetadataWriter.Interface) {\n this.metadataWriter = metadataWriter;\n }\n\n public async handle(event: FileAfterCreateEventHandler.Event): Promise<void> {\n const { file } = event.payload;\n await this.metadataWriter.write([file]);\n }\n}\n\nexport const WriteMetadataAfterCreateHandler = FileAfterCreateEventHandler.createImplementation({\n implementation: WriteMetadataAfterCreateHandlerImpl,\n dependencies: [MetadataWriter]\n});\n"],"names":["WriteMetadataAfterCreateHandlerImpl","metadataWriter","event","file","WriteMetadataAfterCreateHandler","FileAfterCreateEventHandler","MetadataWriter"],"mappings":";;AAGA,MAAMA;IAGF,YAAmBC,cAAwC,CAAE;QACzD,IAAI,CAAC,cAAc,GAAGA;IAC1B;IAEA,MAAa,OAAOC,KAAwC,EAAiB;QACzE,MAAM,EAAEC,IAAI,EAAE,GAAGD,MAAM,OAAO;QAC9B,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;YAACC;SAAK;IAC1C;AACJ;AAEO,MAAMC,kCAAkCC,4BAA4B,oBAAoB,CAAC;IAC5F,gBAAgBL;IAChB,cAAc;QAACM;KAAe;AAClC"}
@@ -0,0 +1,9 @@
1
+ import type { File as IFile } from "../../../domain/file/types.js";
2
+ export interface IMetadataWriter {
3
+ write(files: IFile[]): Promise<void>;
4
+ }
5
+ export declare const MetadataWriter: import("@webiny/di").Abstraction<IMetadataWriter>;
6
+ export declare namespace MetadataWriter {
7
+ type Interface = IMetadataWriter;
8
+ type File = IFile;
9
+ }
@@ -0,0 +1,5 @@
1
+ import { createAbstraction } from "@webiny/feature/api";
2
+ const MetadataWriter = createAbstraction("FileManager/Upload/MetadataWriter");
3
+ export { MetadataWriter };
4
+
5
+ //# sourceMappingURL=abstractions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/upload/WriteFileMetadata/abstractions.js","sources":["../../../../src/features/upload/WriteFileMetadata/abstractions.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\nimport type { File as IFile } from \"~/domain/file/types.js\";\n\nexport interface IMetadataWriter {\n write(files: IFile[]): Promise<void>;\n}\n\nexport const MetadataWriter = createAbstraction<IMetadataWriter>(\n \"FileManager/Upload/MetadataWriter\"\n);\n\nexport namespace MetadataWriter {\n export type Interface = IMetadataWriter;\n export type File = IFile;\n}\n"],"names":["MetadataWriter","createAbstraction"],"mappings":";AAOO,MAAMA,iBAAiBC,kBAC1B"}
@@ -0,0 +1,4 @@
1
+ export declare const WriteFileMetadataFeature: {
2
+ name: string;
3
+ register(container: import("@webiny/di").Container): void;
4
+ };
@@ -0,0 +1,15 @@
1
+ import { createFeature } from "@webiny/feature/api";
2
+ import { MetadataWriter } from "./MetadataWriter.js";
3
+ import { WriteMetadataAfterCreateHandler } from "./WriteMetadataAfterCreateHandler.js";
4
+ import { WriteMetadataAfterBatchCreateHandler } from "./WriteMetadataAfterBatchCreateHandler.js";
5
+ const WriteFileMetadataFeature = createFeature({
6
+ name: "FileManager/WriteFileMetadata",
7
+ register (container) {
8
+ container.register(MetadataWriter);
9
+ container.register(WriteMetadataAfterCreateHandler);
10
+ container.register(WriteMetadataAfterBatchCreateHandler);
11
+ }
12
+ });
13
+ export { WriteFileMetadataFeature };
14
+
15
+ //# sourceMappingURL=feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/upload/WriteFileMetadata/feature.js","sources":["../../../../src/features/upload/WriteFileMetadata/feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { MetadataWriter } from \"./MetadataWriter.js\";\nimport { WriteMetadataAfterCreateHandler } from \"./WriteMetadataAfterCreateHandler.js\";\nimport { WriteMetadataAfterBatchCreateHandler } from \"./WriteMetadataAfterBatchCreateHandler.js\";\n\nexport const WriteFileMetadataFeature = createFeature({\n name: \"FileManager/WriteFileMetadata\",\n register(container) {\n container.register(MetadataWriter);\n container.register(WriteMetadataAfterCreateHandler);\n container.register(WriteMetadataAfterBatchCreateHandler);\n }\n});\n"],"names":["WriteFileMetadataFeature","createFeature","container","MetadataWriter","WriteMetadataAfterCreateHandler","WriteMetadataAfterBatchCreateHandler"],"mappings":";;;;AAKO,MAAMA,2BAA2BC,cAAc;IAClD,MAAM;IACN,UAASC,SAAS;QACdA,UAAU,QAAQ,CAACC;QACnBD,UAAU,QAAQ,CAACE;QACnBF,UAAU,QAAQ,CAACG;IACvB;AACJ"}
@@ -0,0 +1,17 @@
1
+ export type { PresignedPostPayloadData } from "./types.js";
2
+ export type { FileData } from "./types.js";
3
+ export type { UploadPayloadResponse } from "./types.js";
4
+ export type { MultiPartUploadFilePart } from "./types.js";
5
+ export type { CreateMultiPartUploadResult } from "./types.js";
6
+ export { checkPermissions } from "./utils/checkPermissions.js";
7
+ export { FileKey } from "./utils/FileKey.js";
8
+ export { FileExtension } from "./utils/FileExtension.js";
9
+ export { mimeTypes } from "./utils/mimeTypes.js";
10
+ export { FileNormalizer } from "./utils/FileNormalizer.js";
11
+ export { createFileUploadModifier } from "./utils/FileUploadModifier.js";
12
+ export { FileUploadModifierPlugin } from "./utils/FileUploadModifier.js";
13
+ export { createModifierFromPlugins } from "./utils/FileUploadModifier.js";
14
+ export { createFileNormalizerFromContext } from "./utils/createFileNormalizerFromContext.js";
15
+ export { GetUploadPayloadUseCase } from "./GetUploadPayload/index.js";
16
+ export { CreateMultiPartUploadUseCase } from "./CreateMultiPartUpload/index.js";
17
+ export { CompleteMultiPartUploadUseCase } from "./CompleteMultiPartUpload/index.js";
@@ -0,0 +1,10 @@
1
+ export { checkPermissions } from "./utils/checkPermissions.js";
2
+ export { FileKey } from "./utils/FileKey.js";
3
+ export { FileExtension } from "./utils/FileExtension.js";
4
+ export { mimeTypes } from "./utils/mimeTypes.js";
5
+ export { FileNormalizer } from "./utils/FileNormalizer.js";
6
+ export { FileUploadModifierPlugin, createFileUploadModifier, createModifierFromPlugins } from "./utils/FileUploadModifier.js";
7
+ export { createFileNormalizerFromContext } from "./utils/createFileNormalizerFromContext.js";
8
+ export { GetUploadPayloadUseCase } from "./GetUploadPayload/index.js";
9
+ export { CreateMultiPartUploadUseCase } from "./CreateMultiPartUpload/index.js";
10
+ export { CompleteMultiPartUploadUseCase } from "./CompleteMultiPartUpload/index.js";
@@ -0,0 +1,28 @@
1
+ export interface PresignedPostPayloadData {
2
+ name: string;
3
+ type: string;
4
+ size: number;
5
+ id?: string;
6
+ key?: string;
7
+ keyPrefix?: string;
8
+ }
9
+ export interface FileData {
10
+ id: string;
11
+ key: string;
12
+ name: string;
13
+ size: number;
14
+ type: string;
15
+ }
16
+ export interface UploadPayloadResponse {
17
+ data: Record<string, unknown>;
18
+ file: FileData;
19
+ }
20
+ export interface MultiPartUploadFilePart {
21
+ partNumber: number;
22
+ url: string;
23
+ }
24
+ export interface CreateMultiPartUploadResult {
25
+ file: FileData;
26
+ uploadId: string;
27
+ parts: MultiPartUploadFilePart[];
28
+ }
File without changes
@@ -0,0 +1,6 @@
1
+ import type { PresignedPostPayloadData } from "../../../features/upload/types.js";
2
+ export declare class FileExtension {
3
+ private data;
4
+ constructor(data: PresignedPostPayloadData);
5
+ getValue(): string;
6
+ }
@@ -0,0 +1,16 @@
1
+ import { mimeTypes as external_mimeTypes_js_mimeTypes } from "./mimeTypes.js";
2
+ class FileExtension {
3
+ constructor(data){
4
+ this.data = data;
5
+ }
6
+ getValue() {
7
+ const name = (this.data.key || this.data.name).toLowerCase();
8
+ const maybeExt = name.split(".").pop();
9
+ const extensions = external_mimeTypes_js_mimeTypes[this.data.type];
10
+ if (extensions && !extensions.includes(maybeExt)) return extensions[0];
11
+ return "";
12
+ }
13
+ }
14
+ export { FileExtension };
15
+
16
+ //# sourceMappingURL=FileExtension.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features/upload/utils/FileExtension.js","sources":["../../../../src/features/upload/utils/FileExtension.ts"],"sourcesContent":["import { mimeTypes } from \"./mimeTypes.js\";\nimport type { PresignedPostPayloadData } from \"~/features/upload/types.js\";\n\nexport class FileExtension {\n private data: PresignedPostPayloadData;\n\n constructor(data: PresignedPostPayloadData) {\n this.data = data;\n }\n\n getValue() {\n const name = (this.data.key || this.data.name).toLowerCase();\n\n const maybeExt = name.split(\".\").pop() as string;\n const extensions = mimeTypes[this.data.type];\n if (extensions && !extensions.includes(maybeExt)) {\n return extensions[0];\n }\n\n return \"\";\n }\n}\n"],"names":["FileExtension","data","name","maybeExt","extensions","mimeTypes"],"mappings":";AAGO,MAAMA;IAGT,YAAYC,IAA8B,CAAE;QACxC,IAAI,CAAC,IAAI,GAAGA;IAChB;IAEA,WAAW;QACP,MAAMC,OAAQ,KAAI,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,IAAG,EAAG,WAAW;QAE1D,MAAMC,WAAWD,KAAK,KAAK,CAAC,KAAK,GAAG;QACpC,MAAME,aAAaC,+BAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QAC5C,IAAID,cAAc,CAACA,WAAW,QAAQ,CAACD,WACnC,OAAOC,UAAU,CAAC,EAAE;QAGxB,OAAO;IACX;AACJ"}