@webiny/api-file-manager 5.35.0 → 5.35.1-beta.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 (55) hide show
  1. package/package.json +27 -27
  2. package/plugins/crud/files/validation.d.ts +0 -3
  3. package/plugins/crud/files/validation.js +0 -41
  4. package/plugins/crud/files/validation.js.map +0 -1
  5. package/plugins/crud/files.crud.d.ts +0 -4
  6. package/plugins/crud/files.crud.js +0 -431
  7. package/plugins/crud/files.crud.js.map +0 -1
  8. package/plugins/crud/settings.crud.d.ts +0 -5
  9. package/plugins/crud/settings.crud.js +0 -116
  10. package/plugins/crud/settings.crud.js.map +0 -1
  11. package/plugins/crud/system.crud.d.ts +0 -4
  12. package/plugins/crud/system.crud.js +0 -153
  13. package/plugins/crud/system.crud.js.map +0 -1
  14. package/plugins/crud/utils/checkBasePermissions.d.ts +0 -5
  15. package/plugins/crud/utils/checkBasePermissions.js +0 -33
  16. package/plugins/crud/utils/checkBasePermissions.js.map +0 -1
  17. package/plugins/crud/utils/createFileModel.d.ts +0 -5
  18. package/plugins/crud/utils/createFileModel.js +0 -77
  19. package/plugins/crud/utils/createFileModel.js.map +0 -1
  20. package/plugins/crud/utils/lifecycleEvents.d.ts +0 -6
  21. package/plugins/crud/utils/lifecycleEvents.js +0 -38
  22. package/plugins/crud/utils/lifecycleEvents.js.map +0 -1
  23. package/plugins/definitions/FilePhysicalStoragePlugin.d.ts +0 -21
  24. package/plugins/definitions/FilePhysicalStoragePlugin.js +0 -42
  25. package/plugins/definitions/FilePhysicalStoragePlugin.js.map +0 -1
  26. package/plugins/definitions/FilePlugin.d.ts +0 -136
  27. package/plugins/definitions/FilePlugin.js +0 -70
  28. package/plugins/definitions/FilePlugin.js.map +0 -1
  29. package/plugins/definitions/FileStorageTransformPlugin.d.ts +0 -34
  30. package/plugins/definitions/FileStorageTransformPlugin.js +0 -51
  31. package/plugins/definitions/FileStorageTransformPlugin.js.map +0 -1
  32. package/plugins/definitions/FilesStorageOperationsProviderPlugin.d.ts +0 -9
  33. package/plugins/definitions/FilesStorageOperationsProviderPlugin.js +0 -17
  34. package/plugins/definitions/FilesStorageOperationsProviderPlugin.js.map +0 -1
  35. package/plugins/definitions/InstallationPlugin.d.ts +0 -19
  36. package/plugins/definitions/InstallationPlugin.js +0 -42
  37. package/plugins/definitions/InstallationPlugin.js.map +0 -1
  38. package/plugins/definitions/SettingsStorageOperationsProviderPlugin.d.ts +0 -9
  39. package/plugins/definitions/SettingsStorageOperationsProviderPlugin.js +0 -17
  40. package/plugins/definitions/SettingsStorageOperationsProviderPlugin.js.map +0 -1
  41. package/plugins/definitions/SystemStorageOperationsProviderPlugin.d.ts +0 -9
  42. package/plugins/definitions/SystemStorageOperationsProviderPlugin.js +0 -17
  43. package/plugins/definitions/SystemStorageOperationsProviderPlugin.js.map +0 -1
  44. package/plugins/graphql.d.ts +0 -4
  45. package/plugins/graphql.js +0 -290
  46. package/plugins/graphql.js.map +0 -1
  47. package/plugins/storage/FileStorage.d.ts +0 -30
  48. package/plugins/storage/FileStorage.js +0 -103
  49. package/plugins/storage/FileStorage.js.map +0 -1
  50. package/plugins/storage/index.d.ts +0 -4
  51. package/plugins/storage/index.js +0 -26
  52. package/plugins/storage/index.js.map +0 -1
  53. package/utils.d.ts +0 -4
  54. package/utils.js +0 -16
  55. package/utils.js.map +0 -1
@@ -1,290 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _handlerGraphql = require("@webiny/handler-graphql");
9
-
10
- const emptyResolver = () => ({});
11
- /**
12
- * Use any because it really can be any.
13
- * TODO @ts-refactor maybe use generics at some point?
14
- */
15
-
16
-
17
- const resolve = async fn => {
18
- try {
19
- return new _handlerGraphql.Response(await fn());
20
- } catch (e) {
21
- return new _handlerGraphql.ErrorResponse(e);
22
- }
23
- };
24
-
25
- const plugin = {
26
- type: "graphql-schema",
27
- schema: {
28
- typeDefs:
29
- /* GraphQL */
30
- `
31
- type FmCreatedBy {
32
- id: ID
33
- displayName: String
34
- }
35
-
36
- input FileInput {
37
- key: String
38
- name: String
39
- size: Int
40
- type: String
41
- tags: [String]
42
- meta: JSON
43
- }
44
-
45
- type UploadFileResponseDataFile {
46
- name: String
47
- type: String
48
- size: Int
49
- key: String
50
- }
51
-
52
- type UploadFileResponseData {
53
- # Contains data that is necessary for initiating a file upload.
54
- data: JSON
55
- file: UploadFileResponseDataFile
56
- }
57
-
58
- type FileListMeta {
59
- cursor: String
60
- totalCount: Int
61
- hasMoreItems: Boolean
62
- }
63
-
64
- type FileError {
65
- code: String
66
- message: String
67
- data: JSON
68
- stack: String
69
- }
70
-
71
- type FileListResponse {
72
- data: [File]
73
- meta: FileListMeta
74
- error: FileError
75
- }
76
-
77
- type FileResponse {
78
- data: File
79
- error: FileError
80
- }
81
-
82
- type CreateFilesResponse {
83
- data: [File]!
84
- error: FileError
85
- }
86
-
87
- type File {
88
- id: ID
89
- key: String
90
- name: String
91
- size: Int
92
- type: String
93
- src: String
94
- tags: [String]
95
- meta: JSON
96
- createdOn: DateTime
97
- createdBy: FmCreatedBy
98
- }
99
-
100
- type FileManagerBooleanResponse {
101
- data: Boolean
102
- error: FileError
103
- }
104
-
105
- type FileManagerSettings {
106
- uploadMinFileSize: Number
107
- uploadMaxFileSize: Number
108
- srcPrefix: String
109
- }
110
-
111
- input FileManagerSettingsInput {
112
- uploadMinFileSize: Number
113
- uploadMaxFileSize: Number
114
- srcPrefix: String
115
- }
116
-
117
- type FileManagerSettingsResponse {
118
- data: FileManagerSettings
119
- error: FileError
120
- }
121
-
122
- input FileWhereInput {
123
- search: String
124
- type: String
125
- type_in: [String!]
126
- tag: String
127
- tag_in: [String!]
128
- tag_and_in: [String!]
129
- tag_startsWith: String
130
- tag_not_startsWith: String
131
- id_in: [ID!]
132
- id: ID
133
- createdBy: ID
134
- }
135
-
136
- input TagWhereInput {
137
- tag_startsWith: String
138
- tag_not_startsWith: String
139
- }
140
-
141
- type FmQuery {
142
- getFile(id: ID, where: JSON, sort: String): FileResponse
143
-
144
- listFiles(
145
- limit: Int
146
- after: String
147
- types: [String]
148
- tags: [String]
149
- ids: [ID]
150
- search: String
151
- where: FileWhereInput
152
- ): FileListResponse
153
-
154
- listTags(where: TagWhereInput): [String]
155
-
156
- # Get installed version
157
- version: String
158
-
159
- getSettings: FileManagerSettingsResponse
160
- }
161
-
162
- type FilesDeleteResponse {
163
- data: Boolean
164
- error: FileError
165
- }
166
-
167
- type FmMutation {
168
- createFile(data: FileInput!): FileResponse
169
- createFiles(data: [FileInput]!): CreateFilesResponse
170
- updateFile(id: ID!, data: FileInput!): FileResponse
171
- deleteFile(id: ID!): FilesDeleteResponse
172
-
173
- # Install File manager
174
- install(srcPrefix: String): FileManagerBooleanResponse
175
-
176
- upgrade(version: String!): FileManagerBooleanResponse
177
-
178
- updateSettings(data: FileManagerSettingsInput): FileManagerSettingsResponse
179
- }
180
-
181
- input FilesInstallInput {
182
- srcPrefix: String!
183
- }
184
-
185
- extend type Query {
186
- fileManager: FmQuery
187
- }
188
-
189
- extend type Mutation {
190
- fileManager: FmMutation
191
- }
192
- `,
193
- resolvers: {
194
- File: {
195
- async src(file, _, context) {
196
- const settings = await context.fileManager.settings.getSettings();
197
- return ((settings === null || settings === void 0 ? void 0 : settings.srcPrefix) || "") + file.key;
198
- }
199
-
200
- },
201
- Query: {
202
- fileManager: emptyResolver
203
- },
204
- Mutation: {
205
- fileManager: emptyResolver
206
- },
207
- FmQuery: {
208
- getFile(_, args, context) {
209
- return resolve(() => context.fileManager.files.getFile(args.id));
210
- },
211
-
212
- async listFiles(_, args, context) {
213
- try {
214
- const [data, meta] = await context.fileManager.files.listFiles(args);
215
- return new _handlerGraphql.ListResponse(data, meta);
216
- } catch (e) {
217
- return new _handlerGraphql.ErrorResponse(e);
218
- }
219
- },
220
-
221
- async listTags(_, args, context) {
222
- try {
223
- return await context.fileManager.files.listTags(args || {});
224
- } catch (error) {
225
- return new _handlerGraphql.ErrorResponse(error);
226
- }
227
- },
228
-
229
- async version(_, __, context) {
230
- const {
231
- i18n,
232
- tenancy,
233
- fileManager
234
- } = context;
235
-
236
- if (!tenancy.getCurrentTenant() || !i18n.getContentLocale()) {
237
- return null;
238
- }
239
-
240
- return await fileManager.system.getVersion();
241
- },
242
-
243
- async getSettings(_, __, context) {
244
- return resolve(() => context.fileManager.settings.getSettings());
245
- }
246
-
247
- },
248
- FmMutation: {
249
- async createFile(_, args, context) {
250
- return resolve(() => context.fileManager.files.createFile(args.data));
251
- },
252
-
253
- async updateFile(_, args, context) {
254
- return resolve(() => context.fileManager.files.updateFile(args.id, args.data));
255
- },
256
-
257
- async createFiles(_, args, context) {
258
- return resolve(() => context.fileManager.files.createFilesInBatch(args.data));
259
- },
260
-
261
- async deleteFile(_, args, context) {
262
- return resolve(async () => {
263
- const file = await context.fileManager.files.getFile(args.id);
264
- return await context.fileManager.storage.delete({
265
- id: file.id,
266
- key: file.key
267
- });
268
- });
269
- },
270
-
271
- async install(_, args, context) {
272
- return resolve(() => context.fileManager.system.install({
273
- srcPrefix: args.srcPrefix
274
- }));
275
- },
276
-
277
- async upgrade(_, args, context) {
278
- return resolve(() => context.fileManager.system.upgrade(args.version));
279
- },
280
-
281
- async updateSettings(_, args, context) {
282
- return resolve(() => context.fileManager.settings.updateSettings(args.data));
283
- }
284
-
285
- }
286
- }
287
- }
288
- };
289
- var _default = plugin;
290
- exports.default = _default;
@@ -1 +0,0 @@
1
- {"version":3,"names":["emptyResolver","resolve","fn","Response","e","ErrorResponse","plugin","type","schema","typeDefs","resolvers","File","src","file","_","context","settings","fileManager","getSettings","srcPrefix","key","Query","Mutation","FmQuery","getFile","args","files","id","listFiles","data","meta","ListResponse","listTags","error","version","__","i18n","tenancy","getCurrentTenant","getContentLocale","system","getVersion","FmMutation","createFile","updateFile","createFiles","createFilesInBatch","deleteFile","storage","delete","install","upgrade","updateSettings"],"sources":["graphql.ts"],"sourcesContent":["import { Response, ErrorResponse, ListResponse } from \"@webiny/handler-graphql\";\nimport { FileManagerContext, FilesListOpts } from \"~/types\";\nimport { GraphQLSchemaPlugin } from \"@webiny/handler-graphql/types\";\n\nconst emptyResolver = () => ({});\n\n/**\n * Use any because it really can be any.\n * TODO @ts-refactor maybe use generics at some point?\n */\ninterface ResolveCallable {\n (): Promise<any>;\n}\n\nconst resolve = async (fn: ResolveCallable) => {\n try {\n return new Response(await fn());\n } catch (e) {\n return new ErrorResponse(e);\n }\n};\n\nconst plugin: GraphQLSchemaPlugin<FileManagerContext> = {\n type: \"graphql-schema\",\n schema: {\n typeDefs: /* GraphQL */ `\n type FmCreatedBy {\n id: ID\n displayName: String\n }\n\n input FileInput {\n key: String\n name: String\n size: Int\n type: String\n tags: [String]\n meta: JSON\n }\n\n type UploadFileResponseDataFile {\n name: String\n type: String\n size: Int\n key: String\n }\n\n type UploadFileResponseData {\n # Contains data that is necessary for initiating a file upload.\n data: JSON\n file: UploadFileResponseDataFile\n }\n\n type FileListMeta {\n cursor: String\n totalCount: Int\n hasMoreItems: Boolean\n }\n\n type FileError {\n code: String\n message: String\n data: JSON\n stack: String\n }\n\n type FileListResponse {\n data: [File]\n meta: FileListMeta\n error: FileError\n }\n\n type FileResponse {\n data: File\n error: FileError\n }\n\n type CreateFilesResponse {\n data: [File]!\n error: FileError\n }\n\n type File {\n id: ID\n key: String\n name: String\n size: Int\n type: String\n src: String\n tags: [String]\n meta: JSON\n createdOn: DateTime\n createdBy: FmCreatedBy\n }\n\n type FileManagerBooleanResponse {\n data: Boolean\n error: FileError\n }\n\n type FileManagerSettings {\n uploadMinFileSize: Number\n uploadMaxFileSize: Number\n srcPrefix: String\n }\n\n input FileManagerSettingsInput {\n uploadMinFileSize: Number\n uploadMaxFileSize: Number\n srcPrefix: String\n }\n\n type FileManagerSettingsResponse {\n data: FileManagerSettings\n error: FileError\n }\n\n input FileWhereInput {\n search: String\n type: String\n type_in: [String!]\n tag: String\n tag_in: [String!]\n tag_and_in: [String!]\n tag_startsWith: String\n tag_not_startsWith: String\n id_in: [ID!]\n id: ID\n createdBy: ID\n }\n\n input TagWhereInput {\n tag_startsWith: String\n tag_not_startsWith: String\n }\n\n type FmQuery {\n getFile(id: ID, where: JSON, sort: String): FileResponse\n\n listFiles(\n limit: Int\n after: String\n types: [String]\n tags: [String]\n ids: [ID]\n search: String\n where: FileWhereInput\n ): FileListResponse\n\n listTags(where: TagWhereInput): [String]\n\n # Get installed version\n version: String\n\n getSettings: FileManagerSettingsResponse\n }\n\n type FilesDeleteResponse {\n data: Boolean\n error: FileError\n }\n\n type FmMutation {\n createFile(data: FileInput!): FileResponse\n createFiles(data: [FileInput]!): CreateFilesResponse\n updateFile(id: ID!, data: FileInput!): FileResponse\n deleteFile(id: ID!): FilesDeleteResponse\n\n # Install File manager\n install(srcPrefix: String): FileManagerBooleanResponse\n\n upgrade(version: String!): FileManagerBooleanResponse\n\n updateSettings(data: FileManagerSettingsInput): FileManagerSettingsResponse\n }\n\n input FilesInstallInput {\n srcPrefix: String!\n }\n\n extend type Query {\n fileManager: FmQuery\n }\n\n extend type Mutation {\n fileManager: FmMutation\n }\n `,\n resolvers: {\n File: {\n async src(file, _, context: FileManagerContext) {\n const settings = await context.fileManager.settings.getSettings();\n return (settings?.srcPrefix || \"\") + file.key;\n }\n },\n Query: {\n fileManager: emptyResolver\n },\n Mutation: {\n fileManager: emptyResolver\n },\n FmQuery: {\n getFile(_, args: any, context) {\n return resolve(() => context.fileManager.files.getFile(args.id));\n },\n async listFiles(_, args: FilesListOpts, context) {\n try {\n const [data, meta] = await context.fileManager.files.listFiles(args);\n return new ListResponse(data, meta);\n } catch (e) {\n return new ErrorResponse(e);\n }\n },\n async listTags(_, args: any, context) {\n try {\n return await context.fileManager.files.listTags(args || {});\n } catch (error) {\n return new ErrorResponse(error);\n }\n },\n async version(_, __, context) {\n const { i18n, tenancy, fileManager } = context;\n if (!tenancy.getCurrentTenant() || !i18n.getContentLocale()) {\n return null;\n }\n\n return await fileManager.system.getVersion();\n },\n async getSettings(_, __, context) {\n return resolve(() => context.fileManager.settings.getSettings());\n }\n },\n FmMutation: {\n async createFile(_, args: any, context) {\n return resolve(() => context.fileManager.files.createFile(args.data));\n },\n async updateFile(_, args: any, context) {\n return resolve(() => context.fileManager.files.updateFile(args.id, args.data));\n },\n async createFiles(_, args: any, context) {\n return resolve(() => context.fileManager.files.createFilesInBatch(args.data));\n },\n async deleteFile(_, args: any, context) {\n return resolve(async () => {\n const file = await context.fileManager.files.getFile(args.id);\n return await context.fileManager.storage.delete({\n id: file.id,\n key: file.key\n });\n });\n },\n async install(_, args: any, context) {\n return resolve(() =>\n context.fileManager.system.install({ srcPrefix: args.srcPrefix })\n );\n },\n async upgrade(_, args: any, context) {\n return resolve(() => context.fileManager.system.upgrade(args.version));\n },\n async updateSettings(_, args: any, context) {\n return resolve(() => context.fileManager.settings.updateSettings(args.data));\n }\n }\n }\n }\n};\n\nexport default plugin;\n"],"mappings":";;;;;;;AAAA;;AAIA,MAAMA,aAAa,GAAG,OAAO,EAAP,CAAtB;AAEA;AACA;AACA;AACA;;;AAKA,MAAMC,OAAO,GAAG,MAAOC,EAAP,IAA+B;EAC3C,IAAI;IACA,OAAO,IAAIC,wBAAJ,CAAa,MAAMD,EAAE,EAArB,CAAP;EACH,CAFD,CAEE,OAAOE,CAAP,EAAU;IACR,OAAO,IAAIC,6BAAJ,CAAkBD,CAAlB,CAAP;EACH;AACJ,CAND;;AAQA,MAAME,MAA+C,GAAG;EACpDC,IAAI,EAAE,gBAD8C;EAEpDC,MAAM,EAAE;IACJC,QAAQ;IAAE;IAAe;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAnKY;IAoKJC,SAAS,EAAE;MACPC,IAAI,EAAE;QACF,MAAM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"}
@@ -1,30 +0,0 @@
1
- /// <reference types="node" />
2
- import { FileManagerContext } from "../../types";
3
- export declare type Result = Record<string, any>;
4
- export interface FileStorageUploadParams {
5
- buffer: Buffer;
6
- hideInFileManager: boolean | string;
7
- tags?: string[];
8
- size: number;
9
- name: string;
10
- keyPrefix: string;
11
- type: string;
12
- }
13
- export interface FileStorageDeleteParams {
14
- id: string;
15
- key: string;
16
- }
17
- export interface FileStorageUploadMultipleParams {
18
- files: FileStorageUploadParams[];
19
- }
20
- export interface FileStorageParams {
21
- context: FileManagerContext;
22
- }
23
- export declare class FileStorage {
24
- private readonly storagePlugin;
25
- private readonly context;
26
- constructor({ context }: FileStorageParams);
27
- upload(params: FileStorageUploadParams): Promise<Result>;
28
- uploadFiles(params: FileStorageUploadMultipleParams): Promise<import("../../types").File[]>;
29
- delete(params: FileStorageDeleteParams): Promise<boolean>;
30
- }
@@ -1,103 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.FileStorage = void 0;
9
-
10
- var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
-
12
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
-
14
- var _error = _interopRequireDefault(require("@webiny/error"));
15
-
16
- const storagePluginType = "api-file-manager-storage";
17
-
18
- class FileStorage {
19
- constructor({
20
- context
21
- }) {
22
- (0, _defineProperty2.default)(this, "storagePlugin", void 0);
23
- (0, _defineProperty2.default)(this, "context", void 0);
24
- const storagePlugin = context.plugins.byType(storagePluginType).pop();
25
-
26
- if (!storagePlugin) {
27
- throw new _error.default(`Missing plugin of type "${storagePluginType}".`, "STORAGE_PLUGIN_ERROR");
28
- }
29
-
30
- this.storagePlugin = storagePlugin;
31
- this.context = context;
32
- }
33
-
34
- async upload(params) {
35
- const settings = await this.context.fileManager.settings.getSettings();
36
-
37
- if (!settings) {
38
- throw new _error.default("Missing File Manager Settings.", "FILE_MANAGER_ERROR");
39
- } // Add file to cloud storage.
40
-
41
-
42
- const {
43
- file: fileData
44
- } = await this.storagePlugin.upload((0, _objectSpread2.default)((0, _objectSpread2.default)({}, params), {}, {
45
- settings
46
- }));
47
- const {
48
- fileManager
49
- } = this.context; // Save file in DB.
50
-
51
- return await fileManager.files.createFile((0, _objectSpread2.default)((0, _objectSpread2.default)({}, fileData), {}, {
52
- meta: {
53
- private: Boolean(params.hideInFileManager)
54
- },
55
- tags: Array.isArray(params.tags) ? params.tags : []
56
- }));
57
- }
58
-
59
- async uploadFiles(params) {
60
- const settings = await this.context.fileManager.settings.getSettings();
61
-
62
- if (!settings) {
63
- throw new _error.default("Missing File Manager Settings.", "FILE_MANAGER_ERROR");
64
- } // Upload files to cloud storage.
65
-
66
-
67
- const promises = [];
68
-
69
- for (const item of params.files) {
70
- promises.push(this.storagePlugin.upload((0, _objectSpread2.default)((0, _objectSpread2.default)({}, item), {}, {
71
- settings
72
- })));
73
- } // Wait for all to resolve.
74
-
75
-
76
- const uploadFileResponses = await Promise.all(promises);
77
- const filesData = uploadFileResponses.map(response => response.file);
78
- const {
79
- fileManager
80
- } = this.context; // Save files in DB.
81
-
82
- return fileManager.files.createFilesInBatch(filesData);
83
- }
84
-
85
- async delete(params) {
86
- const {
87
- id,
88
- key
89
- } = params;
90
- const {
91
- fileManager
92
- } = this.context; // Delete file from cloud storage.
93
-
94
- await this.storagePlugin.delete({
95
- key
96
- }); // Delete file from the DB.
97
-
98
- return await fileManager.files.deleteFile(id);
99
- }
100
-
101
- }
102
-
103
- exports.FileStorage = FileStorage;
@@ -1 +0,0 @@
1
- {"version":3,"names":["storagePluginType","FileStorage","constructor","context","storagePlugin","plugins","byType","pop","WebinyError","upload","params","settings","fileManager","getSettings","file","fileData","files","createFile","meta","private","Boolean","hideInFileManager","tags","Array","isArray","uploadFiles","promises","item","push","uploadFileResponses","Promise","all","filesData","map","response","createFilesInBatch","delete","id","key","deleteFile"],"sources":["FileStorage.ts"],"sourcesContent":["import { FileManagerContext } from \"~/types\";\nimport WebinyError from \"@webiny/error\";\nimport { FilePhysicalStoragePlugin } from \"~/plugins/definitions/FilePhysicalStoragePlugin\";\n\nexport type Result = Record<string, any>;\n\nconst storagePluginType = \"api-file-manager-storage\";\n\nexport interface FileStorageUploadParams {\n buffer: Buffer;\n hideInFileManager: boolean | string;\n tags?: string[];\n size: number;\n name: string;\n keyPrefix: string;\n type: string;\n}\nexport interface FileStorageDeleteParams {\n id: string;\n key: string;\n}\n\nexport interface FileStorageUploadMultipleParams {\n files: FileStorageUploadParams[];\n}\n\nexport interface FileStorageParams {\n context: FileManagerContext;\n}\nexport class FileStorage {\n private readonly storagePlugin: FilePhysicalStoragePlugin;\n private readonly context: FileManagerContext;\n\n constructor({ context }: FileStorageParams) {\n const storagePlugin = context.plugins\n .byType<FilePhysicalStoragePlugin>(storagePluginType)\n .pop();\n if (!storagePlugin) {\n throw new WebinyError(\n `Missing plugin of type \"${storagePluginType}\".`,\n \"STORAGE_PLUGIN_ERROR\"\n );\n }\n this.storagePlugin = storagePlugin;\n this.context = context;\n }\n\n async upload(params: FileStorageUploadParams): Promise<Result> {\n const settings = await this.context.fileManager.settings.getSettings();\n if (!settings) {\n throw new WebinyError(\"Missing File Manager Settings.\", \"FILE_MANAGER_ERROR\");\n }\n // Add file to cloud storage.\n const { file: fileData } = await this.storagePlugin.upload({\n ...params,\n settings\n });\n\n const { fileManager } = this.context;\n\n // Save file in DB.\n return await fileManager.files.createFile({\n ...(fileData as any),\n meta: {\n private: Boolean(params.hideInFileManager)\n },\n tags: Array.isArray(params.tags) ? params.tags : []\n });\n }\n\n async uploadFiles(params: FileStorageUploadMultipleParams) {\n const settings = await this.context.fileManager.settings.getSettings();\n if (!settings) {\n throw new WebinyError(\"Missing File Manager Settings.\", \"FILE_MANAGER_ERROR\");\n }\n // Upload files to cloud storage.\n const promises = [];\n for (const item of params.files) {\n promises.push(\n this.storagePlugin.upload({\n ...item,\n settings\n })\n );\n }\n // Wait for all to resolve.\n const uploadFileResponses = await Promise.all(promises);\n\n const filesData = uploadFileResponses.map(response => response.file);\n\n const { fileManager } = this.context;\n // Save files in DB.\n return fileManager.files.createFilesInBatch(filesData);\n }\n\n async delete(params: FileStorageDeleteParams) {\n const { id, key } = params;\n const { fileManager } = this.context;\n // Delete file from cloud storage.\n await this.storagePlugin.delete({\n key\n });\n // Delete file from the DB.\n return await fileManager.files.deleteFile(id);\n }\n}\n"],"mappings":";;;;;;;;;;;;;AACA;;AAKA,MAAMA,iBAAiB,GAAG,0BAA1B;;AAuBO,MAAMC,WAAN,CAAkB;EAIrBC,WAAW,CAAC;IAAEC;EAAF,CAAD,EAAiC;IAAA;IAAA;IACxC,MAAMC,aAAa,GAAGD,OAAO,CAACE,OAAR,CACjBC,MADiB,CACiBN,iBADjB,EAEjBO,GAFiB,EAAtB;;IAGA,IAAI,CAACH,aAAL,EAAoB;MAChB,MAAM,IAAII,cAAJ,CACD,2BAA0BR,iBAAkB,IAD3C,EAEF,sBAFE,CAAN;IAIH;;IACD,KAAKI,aAAL,GAAqBA,aAArB;IACA,KAAKD,OAAL,GAAeA,OAAf;EACH;;EAEW,MAANM,MAAM,CAACC,MAAD,EAAmD;IAC3D,MAAMC,QAAQ,GAAG,MAAM,KAAKR,OAAL,CAAaS,WAAb,CAAyBD,QAAzB,CAAkCE,WAAlC,EAAvB;;IACA,IAAI,CAACF,QAAL,EAAe;MACX,MAAM,IAAIH,cAAJ,CAAgB,gCAAhB,EAAkD,oBAAlD,CAAN;IACH,CAJ0D,CAK3D;;;IACA,MAAM;MAAEM,IAAI,EAAEC;IAAR,IAAqB,MAAM,KAAKX,aAAL,CAAmBK,MAAnB,6DAC1BC,MAD0B;MAE7BC;IAF6B,GAAjC;IAKA,MAAM;MAAEC;IAAF,IAAkB,KAAKT,OAA7B,CAX2D,CAa3D;;IACA,OAAO,MAAMS,WAAW,CAACI,KAAZ,CAAkBC,UAAlB,6DACLF,QADK;MAETG,IAAI,EAAE;QACFC,OAAO,EAAEC,OAAO,CAACV,MAAM,CAACW,iBAAR;MADd,CAFG;MAKTC,IAAI,EAAEC,KAAK,CAACC,OAAN,CAAcd,MAAM,CAACY,IAArB,IAA6BZ,MAAM,CAACY,IAApC,GAA2C;IALxC,GAAb;EAOH;;EAEgB,MAAXG,WAAW,CAACf,MAAD,EAA0C;IACvD,MAAMC,QAAQ,GAAG,MAAM,KAAKR,OAAL,CAAaS,WAAb,CAAyBD,QAAzB,CAAkCE,WAAlC,EAAvB;;IACA,IAAI,CAACF,QAAL,EAAe;MACX,MAAM,IAAIH,cAAJ,CAAgB,gCAAhB,EAAkD,oBAAlD,CAAN;IACH,CAJsD,CAKvD;;;IACA,MAAMkB,QAAQ,GAAG,EAAjB;;IACA,KAAK,MAAMC,IAAX,IAAmBjB,MAAM,CAACM,KAA1B,EAAiC;MAC7BU,QAAQ,CAACE,IAAT,CACI,KAAKxB,aAAL,CAAmBK,MAAnB,6DACOkB,IADP;QAEIhB;MAFJ,GADJ;IAMH,CAdsD,CAevD;;;IACA,MAAMkB,mBAAmB,GAAG,MAAMC,OAAO,CAACC,GAAR,CAAYL,QAAZ,CAAlC;IAEA,MAAMM,SAAS,GAAGH,mBAAmB,CAACI,GAApB,CAAwBC,QAAQ,IAAIA,QAAQ,CAACpB,IAA7C,CAAlB;IAEA,MAAM;MAAEF;IAAF,IAAkB,KAAKT,OAA7B,CApBuD,CAqBvD;;IACA,OAAOS,WAAW,CAACI,KAAZ,CAAkBmB,kBAAlB,CAAqCH,SAArC,CAAP;EACH;;EAEW,MAANI,MAAM,CAAC1B,MAAD,EAAkC;IAC1C,MAAM;MAAE2B,EAAF;MAAMC;IAAN,IAAc5B,MAApB;IACA,MAAM;MAAEE;IAAF,IAAkB,KAAKT,OAA7B,CAF0C,CAG1C;;IACA,MAAM,KAAKC,aAAL,CAAmBgC,MAAnB,CAA0B;MAC5BE;IAD4B,CAA1B,CAAN,CAJ0C,CAO1C;;IACA,OAAO,MAAM1B,WAAW,CAACI,KAAZ,CAAkBuB,UAAlB,CAA6BF,EAA7B,CAAb;EACH;;AA3EoB"}
@@ -1,4 +0,0 @@
1
- import { FileManagerContext } from "../../types";
2
- import { ContextPlugin } from "@webiny/api";
3
- declare const fileStorageContextPlugin: ContextPlugin<FileManagerContext>;
4
- export default fileStorageContextPlugin;
@@ -1,26 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
-
8
- var _api = require("@webiny/api");
9
-
10
- var _FileStorage = require("./FileStorage");
11
-
12
- const fileStorageContextPlugin = new _api.ContextPlugin(async context => {
13
- if (!context.fileManager) {
14
- /**
15
- * We need to define the fileManager initial property as empty object.
16
- * When casting as FileManagerContext, typescript is complaining.
17
- */
18
- context.fileManager = {};
19
- }
20
-
21
- context.fileManager.storage = new _FileStorage.FileStorage({
22
- context
23
- });
24
- });
25
- var _default = fileStorageContextPlugin;
26
- exports.default = _default;
@@ -1 +0,0 @@
1
- {"version":3,"names":["fileStorageContextPlugin","ContextPlugin","context","fileManager","storage","FileStorage"],"sources":["index.ts"],"sourcesContent":["import { FileManagerContext } from \"~/types\";\nimport { ContextPlugin } from \"@webiny/api\";\nimport { FileStorage } from \"./FileStorage\";\n\nconst fileStorageContextPlugin = new ContextPlugin<FileManagerContext>(async context => {\n if (!context.fileManager) {\n /**\n * We need to define the fileManager initial property as empty object.\n * When casting as FileManagerContext, typescript is complaining.\n */\n context.fileManager = {} as any;\n }\n context.fileManager.storage = new FileStorage({\n context\n });\n});\n\nexport default fileStorageContextPlugin;\n"],"mappings":";;;;;;;AACA;;AACA;;AAEA,MAAMA,wBAAwB,GAAG,IAAIC,kBAAJ,CAAsC,MAAMC,OAAN,IAAiB;EACpF,IAAI,CAACA,OAAO,CAACC,WAAb,EAA0B;IACtB;AACR;AACA;AACA;IACQD,OAAO,CAACC,WAAR,GAAsB,EAAtB;EACH;;EACDD,OAAO,CAACC,WAAR,CAAoBC,OAApB,GAA8B,IAAIC,wBAAJ,CAAgB;IAC1CH;EAD0C,CAAhB,CAA9B;AAGH,CAXgC,CAAjC;eAaeF,wB"}
package/utils.d.ts DELETED
@@ -1,4 +0,0 @@
1
- import { Plugin } from "@webiny/plugins/types";
2
- declare type CallbackFallback = (args: any) => void | Promise<void>;
3
- export declare const executeCallbacks: <TCallbackFunction extends CallbackFallback = CallbackFallback>(plugins: Plugin[], hook: string, args: Parameters<TCallbackFunction>[0]) => Promise<void>;
4
- export {};
package/utils.js DELETED
@@ -1,16 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.executeCallbacks = void 0;
7
-
8
- const executeCallbacks = async (plugins, hook, args) => {
9
- for (const plugin of plugins) {
10
- if (typeof plugin[hook] === "function") {
11
- await plugin[hook](args);
12
- }
13
- }
14
- };
15
-
16
- exports.executeCallbacks = executeCallbacks;
package/utils.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"names":["executeCallbacks","plugins","hook","args","plugin"],"sources":["utils.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins/types\";\n\ntype CallbackFallback = (args: any) => void | Promise<void>;\n\nexport const executeCallbacks = async <\n TCallbackFunction extends CallbackFallback = CallbackFallback\n>(\n plugins: Plugin[],\n hook: string,\n args: Parameters<TCallbackFunction>[0]\n) => {\n for (const plugin of plugins) {\n if (typeof plugin[hook] === \"function\") {\n await plugin[hook](args);\n }\n }\n};\n"],"mappings":";;;;;;;AAIO,MAAMA,gBAAgB,GAAG,OAG5BC,OAH4B,EAI5BC,IAJ4B,EAK5BC,IAL4B,KAM3B;EACD,KAAK,MAAMC,MAAX,IAAqBH,OAArB,EAA8B;IAC1B,IAAI,OAAOG,MAAM,CAACF,IAAD,CAAb,KAAwB,UAA5B,EAAwC;MACpC,MAAME,MAAM,CAACF,IAAD,CAAN,CAAaC,IAAb,CAAN;IACH;EACJ;AACJ,CAZM"}