@orion-js/file-manager 4.0.0-next.2 → 4.0.0-next.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -4,10 +4,12 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
5
  var __getProtoOf = Object.getPrototypeOf;
6
6
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
8
- var __esm = (fn, res) => function __init() {
9
- return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
7
+ var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for("Symbol." + name);
8
+ var __typeError = (msg) => {
9
+ throw TypeError(msg);
10
10
  };
11
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
12
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
11
13
  var __export = (target, all) => {
12
14
  for (var name in all)
13
15
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -29,81 +31,49 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
29
31
  mod
30
32
  ));
31
33
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
32
-
33
- // src/credentials.ts
34
- var savedOptions, setupFileManager, getAWSCredentials, getFileManagerOptions;
35
- var init_credentials = __esm({
36
- "src/credentials.ts"() {
37
- savedOptions = {};
38
- setupFileManager = /* @__PURE__ */ __name((options) => {
39
- savedOptions = options;
40
- }, "setupFileManager");
41
- getAWSCredentials = /* @__PURE__ */ __name(() => savedOptions, "getAWSCredentials");
42
- getFileManagerOptions = /* @__PURE__ */ __name(() => savedOptions, "getFileManagerOptions");
43
- }
44
- });
45
-
46
- // src/File/resolvers/genericType.ts
47
- var import_resolvers, genericType_default;
48
- var init_genericType = __esm({
49
- "src/File/resolvers/genericType.ts"() {
50
- import_resolvers = require("@orion-js/resolvers");
51
- genericType_default = (0, import_resolvers.modelResolver)({
52
- returns: String,
53
- async resolve(file, viewer) {
54
- const { type } = file;
55
- if (!type) return "unknown";
56
- if (type.startsWith("image/")) return "image";
57
- if (type.startsWith("application/pdf")) return "pdf";
58
- return "unknown";
59
- }
60
- });
61
- }
62
- });
63
-
64
- // src/File/resolvers/url.ts
65
- function getFileURL(file) {
66
- if (file.externalUrl) return file.externalUrl;
67
- const options = getAWSCredentials();
68
- if (options.getFileURL) return options.getFileURL(file);
69
- return `https://s3.amazonaws.com/${file.bucket}/${encodeURIComponent(file.key)}`;
70
- }
71
- var import_resolvers2, url_default;
72
- var init_url = __esm({
73
- "src/File/resolvers/url.ts"() {
74
- import_resolvers2 = require("@orion-js/resolvers");
75
- init_credentials();
76
- __name(getFileURL, "getFileURL");
77
- url_default = (0, import_resolvers2.modelResolver)({
78
- returns: String,
79
- async resolve(file) {
80
- return getFileURL(file);
81
- }
82
- });
83
- }
84
- });
85
-
86
- // src/File/resolvers/index.ts
87
- var resolvers_exports = {};
88
- __export(resolvers_exports, {
89
- default: () => resolvers_default
90
- });
91
- var resolvers_default;
92
- var init_resolvers = __esm({
93
- "src/File/resolvers/index.ts"() {
94
- init_genericType();
95
- init_url();
96
- resolvers_default = {
97
- url: url_default,
98
- genericType: genericType_default
99
- };
34
+ var __decoratorStart = (base) => [, , , __create((base == null ? void 0 : base[__knownSymbol("metadata")]) ?? null)];
35
+ var __decoratorStrings = ["class", "method", "getter", "setter", "accessor", "field", "value", "get", "set"];
36
+ var __expectFn = (fn) => fn !== void 0 && typeof fn !== "function" ? __typeError("Function expected") : fn;
37
+ var __decoratorContext = (kind, name, done, metadata, fns) => ({ kind: __decoratorStrings[kind], name, metadata, addInitializer: (fn) => done._ ? __typeError("Already initialized") : fns.push(__expectFn(fn || null)) });
38
+ var __decoratorMetadata = (array, target) => __defNormalProp(target, __knownSymbol("metadata"), array[3]);
39
+ var __runInitializers = (array, flags, self, value) => {
40
+ for (var i = 0, fns = array[flags >> 1], n = fns && fns.length; i < n; i++) flags & 1 ? fns[i].call(self) : value = fns[i].call(self, value);
41
+ return value;
42
+ };
43
+ var __decorateElement = (array, flags, name, decorators, target, extra) => {
44
+ var fn, it, done, ctx, access, k = flags & 7, s = !!(flags & 8), p = !!(flags & 16);
45
+ var j = k > 3 ? array.length + 1 : k ? s ? 1 : 2 : 0, key = __decoratorStrings[k + 5];
46
+ var initializers = k > 3 && (array[j - 1] = []), extraInitializers = array[j] || (array[j] = []);
47
+ var desc = k && (!p && !s && (target = target.prototype), k < 5 && (k > 3 || !p) && __getOwnPropDesc(k < 4 ? target : { get [name]() {
48
+ return __privateGet(this, extra);
49
+ }, set [name](x) {
50
+ return __privateSet(this, extra, x);
51
+ } }, name));
52
+ k ? p && k < 4 && __name(extra, (k > 2 ? "set " : k > 1 ? "get " : "") + name) : __name(target, name);
53
+ for (var i = decorators.length - 1; i >= 0; i--) {
54
+ ctx = __decoratorContext(k, name, done = {}, array[3], extraInitializers);
55
+ if (k) {
56
+ ctx.static = s, ctx.private = p, access = ctx.access = { has: p ? (x) => __privateIn(target, x) : (x) => name in x };
57
+ if (k ^ 3) access.get = p ? (x) => (k ^ 1 ? __privateGet : __privateMethod)(x, target, k ^ 4 ? extra : desc.get) : (x) => x[name];
58
+ if (k > 2) access.set = p ? (x, y) => __privateSet(x, target, y, k ^ 4 ? extra : desc.set) : (x, y) => x[name] = y;
59
+ }
60
+ it = (0, decorators[i])(k ? k < 4 ? p ? extra : desc[key] : k > 4 ? void 0 : { get: desc.get, set: desc.set } : target, ctx), done._ = 1;
61
+ if (k ^ 4 || it === void 0) __expectFn(it) && (k > 4 ? initializers.unshift(it) : k ? p ? extra = it : desc[key] = it : target = it);
62
+ else if (typeof it !== "object" || it === null) __typeError("Object expected");
63
+ else __expectFn(fn = it.get) && (desc.get = fn), __expectFn(fn = it.set) && (desc.set = fn), __expectFn(fn = it.init) && initializers.unshift(fn);
100
64
  }
101
- });
65
+ return k || __decoratorMetadata(array, target), desc && __defProp(target, name, desc), p ? k ^ 4 ? extra : desc : target;
66
+ };
67
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
68
+ var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
69
+ var __privateIn = (member, obj) => Object(obj) !== obj ? __typeError('Cannot use the "in" operator on this value') : member.has(obj);
70
+ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
71
+ var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
72
+ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
102
73
 
103
74
  // src/index.ts
104
75
  var index_exports = {};
105
76
  __export(index_exports, {
106
- File: () => File_default,
107
77
  FileSchema: () => FileSchema,
108
78
  Files: () => Files,
109
79
  getAWSCredentials: () => getAWSCredentials,
@@ -114,256 +84,60 @@ __export(index_exports, {
114
84
  module.exports = __toCommonJS(index_exports);
115
85
 
116
86
  // src/resolvers/fileManagerFile.ts
117
- var import_resolvers3 = require("@orion-js/resolvers");
118
-
119
- // src/File/index.ts
120
- var import_models = require("@orion-js/models");
87
+ var import_resolvers4 = require("@orion-js/resolvers");
121
88
 
122
89
  // src/Files/index.ts
123
- var import_mongodb = require("@orion-js/mongodb");
90
+ var import_mongodb2 = require("@orion-js/mongodb");
124
91
 
125
92
  // src/File/schema.ts
126
93
  var import_typed_model = require("@orion-js/typed-model");
127
- function _ts_decorate(decorators, target, key, desc) {
128
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
129
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
130
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
131
- return c > 3 && r && Object.defineProperty(target, key, r), r;
132
- }
133
- __name(_ts_decorate, "_ts_decorate");
134
- function _ts_metadata(k, v) {
135
- if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
136
- }
137
- __name(_ts_metadata, "_ts_metadata");
138
- var _FileSchemaResizeData = class _FileSchemaResizeData {
139
- thumbnailURL;
140
- smallURL;
141
- mediumURL;
142
- largeURL;
143
- extraLargeURL;
144
- };
145
- __name(_FileSchemaResizeData, "FileSchemaResizeData");
146
- var FileSchemaResizeData = _FileSchemaResizeData;
147
- _ts_decorate([
148
- (0, import_typed_model.Prop)({
149
- optional: true
150
- }),
151
- _ts_metadata("design:type", String)
152
- ], FileSchemaResizeData.prototype, "thumbnailURL", void 0);
153
- _ts_decorate([
154
- (0, import_typed_model.Prop)({
155
- optional: true
156
- }),
157
- _ts_metadata("design:type", String)
158
- ], FileSchemaResizeData.prototype, "smallURL", void 0);
159
- _ts_decorate([
160
- (0, import_typed_model.Prop)({
161
- optional: true
162
- }),
163
- _ts_metadata("design:type", String)
164
- ], FileSchemaResizeData.prototype, "mediumURL", void 0);
165
- _ts_decorate([
166
- (0, import_typed_model.Prop)({
167
- optional: true
168
- }),
169
- _ts_metadata("design:type", String)
170
- ], FileSchemaResizeData.prototype, "largeURL", void 0);
171
- _ts_decorate([
172
- (0, import_typed_model.Prop)({
173
- optional: true
174
- }),
175
- _ts_metadata("design:type", String)
176
- ], FileSchemaResizeData.prototype, "extraLargeURL", void 0);
177
- FileSchemaResizeData = _ts_decorate([
178
- (0, import_typed_model.TypedSchema)()
179
- ], FileSchemaResizeData);
180
- var _FileSchemaDimensionsData = class _FileSchemaDimensionsData {
181
- width;
182
- height;
183
- };
184
- __name(_FileSchemaDimensionsData, "FileSchemaDimensionsData");
185
- var FileSchemaDimensionsData = _FileSchemaDimensionsData;
186
- _ts_decorate([
187
- (0, import_typed_model.Prop)({
188
- optional: true
189
- }),
190
- _ts_metadata("design:type", Number)
191
- ], FileSchemaDimensionsData.prototype, "width", void 0);
192
- _ts_decorate([
193
- (0, import_typed_model.Prop)({
194
- optional: true
195
- }),
196
- _ts_metadata("design:type", Number)
197
- ], FileSchemaDimensionsData.prototype, "height", void 0);
198
- FileSchemaDimensionsData = _ts_decorate([
199
- (0, import_typed_model.TypedSchema)()
200
- ], FileSchemaDimensionsData);
201
- var _FileSchemaColorsData = class _FileSchemaColorsData {
202
- front;
203
- background;
204
- blurhash;
205
- };
206
- __name(_FileSchemaColorsData, "FileSchemaColorsData");
207
- var FileSchemaColorsData = _FileSchemaColorsData;
208
- _ts_decorate([
209
- (0, import_typed_model.Prop)({
210
- optional: true
211
- }),
212
- _ts_metadata("design:type", String)
213
- ], FileSchemaColorsData.prototype, "front", void 0);
214
- _ts_decorate([
215
- (0, import_typed_model.Prop)({
216
- optional: true
217
- }),
218
- _ts_metadata("design:type", String)
219
- ], FileSchemaColorsData.prototype, "background", void 0);
220
- _ts_decorate([
221
- (0, import_typed_model.Prop)({
222
- optional: true
223
- }),
224
- _ts_metadata("design:type", String)
225
- ], FileSchemaColorsData.prototype, "blurhash", void 0);
226
- FileSchemaColorsData = _ts_decorate([
227
- (0, import_typed_model.TypedSchema)()
228
- ], FileSchemaColorsData);
229
- var _FileSchema = class _FileSchema {
230
- _id;
231
- hash;
232
- externalUrl;
233
- key;
234
- bucket;
235
- name;
236
- type;
237
- size;
238
- status;
239
- createdBy;
240
- createdAt;
241
- dimensions;
242
- resizedData;
243
- colorsData;
94
+
95
+ // src/File/resolvers/genericType.ts
96
+ var import_resolvers = require("@orion-js/resolvers");
97
+ var genericType_default = (0, import_resolvers.modelResolver)({
98
+ returns: String,
99
+ async resolve(file, viewer) {
100
+ const { type } = file;
101
+ if (!type) return "unknown";
102
+ if (type.startsWith("image/")) return "image";
103
+ if (type.startsWith("application/pdf")) return "pdf";
104
+ return "unknown";
105
+ }
106
+ });
107
+
108
+ // src/File/resolvers/url.ts
109
+ var import_resolvers2 = require("@orion-js/resolvers");
110
+
111
+ // src/credentials.ts
112
+ var savedOptions = {};
113
+ var setupFileManager = (options) => {
114
+ savedOptions = options;
244
115
  };
245
- __name(_FileSchema, "FileSchema");
246
- var FileSchema = _FileSchema;
247
- _ts_decorate([
248
- (0, import_typed_model.Prop)({
249
- type: "ID"
250
- }),
251
- _ts_metadata("design:type", String)
252
- ], FileSchema.prototype, "_id", void 0);
253
- _ts_decorate([
254
- (0, import_typed_model.Prop)({
255
- optional: true
256
- }),
257
- _ts_metadata("design:type", String)
258
- ], FileSchema.prototype, "hash", void 0);
259
- _ts_decorate([
260
- (0, import_typed_model.Prop)({
261
- optional: true,
262
- private: true
263
- }),
264
- _ts_metadata("design:type", String)
265
- ], FileSchema.prototype, "externalUrl", void 0);
266
- _ts_decorate([
267
- (0, import_typed_model.Prop)({
268
- optional: true
269
- }),
270
- _ts_metadata("design:type", String)
271
- ], FileSchema.prototype, "key", void 0);
272
- _ts_decorate([
273
- (0, import_typed_model.Prop)({
274
- optional: true
275
- }),
276
- _ts_metadata("design:type", String)
277
- ], FileSchema.prototype, "bucket", void 0);
278
- _ts_decorate([
279
- (0, import_typed_model.Prop)({
280
- optional: true
281
- }),
282
- _ts_metadata("design:type", String)
283
- ], FileSchema.prototype, "name", void 0);
284
- _ts_decorate([
285
- (0, import_typed_model.Prop)({
286
- optional: true
287
- }),
288
- _ts_metadata("design:type", String)
289
- ], FileSchema.prototype, "type", void 0);
290
- _ts_decorate([
291
- (0, import_typed_model.Prop)({
292
- optional: true
293
- }),
294
- _ts_metadata("design:type", Number)
295
- ], FileSchema.prototype, "size", void 0);
296
- _ts_decorate([
297
- (0, import_typed_model.Prop)({
298
- optional: true
299
- }),
300
- _ts_metadata("design:type", String)
301
- ], FileSchema.prototype, "status", void 0);
302
- _ts_decorate([
303
- (0, import_typed_model.Prop)({
304
- optional: true
305
- }),
306
- _ts_metadata("design:type", String)
307
- ], FileSchema.prototype, "createdBy", void 0);
308
- _ts_decorate([
309
- (0, import_typed_model.Prop)({
310
- optional: true
311
- }),
312
- _ts_metadata("design:type", typeof Date === "undefined" ? Object : Date)
313
- ], FileSchema.prototype, "createdAt", void 0);
314
- _ts_decorate([
315
- (0, import_typed_model.Prop)({
316
- optional: true,
317
- type: (0, import_typed_model.getModelForClass)(FileSchemaDimensionsData)
318
- }),
319
- _ts_metadata("design:type", typeof FileSchemaDimensionsData === "undefined" ? Object : FileSchemaDimensionsData)
320
- ], FileSchema.prototype, "dimensions", void 0);
321
- _ts_decorate([
322
- (0, import_typed_model.Prop)({
323
- optional: true,
324
- type: (0, import_typed_model.getModelForClass)(FileSchemaResizeData)
325
- }),
326
- _ts_metadata("design:type", typeof FileSchemaResizeData === "undefined" ? Object : FileSchemaResizeData)
327
- ], FileSchema.prototype, "resizedData", void 0);
328
- _ts_decorate([
329
- (0, import_typed_model.Prop)({
330
- optional: true,
331
- type: (0, import_typed_model.getModelForClass)(FileSchemaColorsData)
332
- }),
333
- _ts_metadata("design:type", typeof FileSchemaColorsData === "undefined" ? Object : FileSchemaColorsData)
334
- ], FileSchema.prototype, "colorsData", void 0);
335
- FileSchema = _ts_decorate([
336
- (0, import_typed_model.TypedSchema)()
337
- ], FileSchema);
116
+ var getAWSCredentials = () => savedOptions;
117
+ var getFileManagerOptions = () => savedOptions;
338
118
 
339
- // src/Files/index.ts
340
- var Files = (0, import_mongodb.createCollection)({
341
- name: "filemanager_files",
342
- model: File_default,
343
- schema: FileSchema,
344
- indexes: [
345
- {
346
- keys: {
347
- key: 1,
348
- bucket: 1
349
- }
350
- },
351
- {
352
- keys: {
353
- hash: 1
354
- }
355
- }
356
- ]
119
+ // src/File/resolvers/url.ts
120
+ function getFileURL(file) {
121
+ if (file.externalUrl) return file.externalUrl;
122
+ const options = getAWSCredentials();
123
+ if (options.getFileURL) return options.getFileURL(file);
124
+ return `https://s3.amazonaws.com/${file.bucket}/${encodeURIComponent(file.key)}`;
125
+ }
126
+ var url_default = (0, import_resolvers2.modelResolver)({
127
+ returns: String,
128
+ async resolve(file) {
129
+ return getFileURL(file);
130
+ }
357
131
  });
358
132
 
359
- // src/File/index.ts
360
- var import_pick = __toESM(require("lodash/pick"), 1);
361
- var import_omit = __toESM(require("lodash/omit"), 1);
362
- var import_typed_model2 = require("@orion-js/typed-model");
133
+ // src/File/resolvers/index.ts
134
+ var resolvers_default = {
135
+ url: url_default,
136
+ genericType: genericType_default
137
+ };
363
138
 
364
139
  // src/resolvers/generateImageInfo.ts
365
140
  var import_lodash = require("lodash");
366
- init_credentials();
367
141
 
368
142
  // src/File/resolvers/isImage.ts
369
143
  function isImage(image) {
@@ -373,7 +147,6 @@ function isImage(image) {
373
147
  const mime = image.type;
374
148
  return mime.includes("image");
375
149
  }
376
- __name(isImage, "isImage");
377
150
 
378
151
  // src/resolvers/generateImageInfo.ts
379
152
  async function generateImageInfo(file) {
@@ -385,11 +158,7 @@ async function generateImageInfo(file) {
385
158
  try {
386
159
  file.dimensions = await options.getImageDimensions(file);
387
160
  if (!(0, import_lodash.isEmpty)(file.dimensions)) {
388
- await Files.updateOne(file._id, {
389
- $set: {
390
- dimensions: file.dimensions
391
- }
392
- });
161
+ await Files.updateOne(file._id, { $set: { dimensions: file.dimensions } });
393
162
  }
394
163
  } catch (error) {
395
164
  console.error("Error getting image dimensions", error);
@@ -399,11 +168,7 @@ async function generateImageInfo(file) {
399
168
  try {
400
169
  file.resizedData = await options.getResizedImages(file);
401
170
  if (!(0, import_lodash.isEmpty)(file.resizedData)) {
402
- await Files.updateOne(file._id, {
403
- $set: {
404
- resizedData: file.resizedData
405
- }
406
- });
171
+ await Files.updateOne(file._id, { $set: { resizedData: file.resizedData } });
407
172
  }
408
173
  } catch (error) {
409
174
  console.error("Error getting resized images", error);
@@ -413,11 +178,7 @@ async function generateImageInfo(file) {
413
178
  try {
414
179
  file.colorsData = await options.getImageColors(file);
415
180
  if (!(0, import_lodash.isEmpty)(file.colorsData)) {
416
- await Files.updateOne(file._id, {
417
- $set: {
418
- colorsData: file.colorsData
419
- }
420
- });
181
+ await Files.updateOne(file._id, { $set: { colorsData: file.colorsData } });
421
182
  }
422
183
  } catch (error) {
423
184
  console.error("Error getting image colors", error);
@@ -425,37 +186,161 @@ async function generateImageInfo(file) {
425
186
  }
426
187
  }
427
188
  }
428
- __name(generateImageInfo, "generateImageInfo");
429
189
 
430
- // src/File/index.ts
431
- var schema = (0, import_typed_model2.getModelForClass)(FileSchema).getSchema();
432
- var File_default = (0, import_models.createModel)({
190
+ // src/File/schema.ts
191
+ var import_lodash2 = require("lodash");
192
+
193
+ // src/File/getFileData.ts
194
+ var import_mongodb = require("@orion-js/mongodb");
195
+ var readOnlyCollection = (0, import_mongodb.createCollection)({ name: "filemanager_files" });
196
+ async function getFileData(fileId) {
197
+ const file = await readOnlyCollection.findOne({ _id: fileId });
198
+ return file;
199
+ }
200
+
201
+ // src/File/schema.ts
202
+ var _extraLargeURL_dec, _largeURL_dec, _mediumURL_dec, _smallURL_dec, _thumbnailURL_dec, _FileSchemaResizeData_decorators, _init;
203
+ _FileSchemaResizeData_decorators = [(0, import_typed_model.TypedSchema)()], _thumbnailURL_dec = [(0, import_typed_model.Prop)({ optional: true, type: "string" })], _smallURL_dec = [(0, import_typed_model.Prop)({ optional: true, type: "string" })], _mediumURL_dec = [(0, import_typed_model.Prop)({ optional: true, type: "string" })], _largeURL_dec = [(0, import_typed_model.Prop)({ optional: true, type: "string" })], _extraLargeURL_dec = [(0, import_typed_model.Prop)({ optional: true, type: "string" })];
204
+ var FileSchemaResizeData = class {
205
+ constructor() {
206
+ __publicField(this, "thumbnailURL", __runInitializers(_init, 8, this)), __runInitializers(_init, 11, this);
207
+ __publicField(this, "smallURL", __runInitializers(_init, 12, this)), __runInitializers(_init, 15, this);
208
+ __publicField(this, "mediumURL", __runInitializers(_init, 16, this)), __runInitializers(_init, 19, this);
209
+ __publicField(this, "largeURL", __runInitializers(_init, 20, this)), __runInitializers(_init, 23, this);
210
+ __publicField(this, "extraLargeURL", __runInitializers(_init, 24, this)), __runInitializers(_init, 27, this);
211
+ }
212
+ // 2400 height max
213
+ };
214
+ _init = __decoratorStart(null);
215
+ __decorateElement(_init, 5, "thumbnailURL", _thumbnailURL_dec, FileSchemaResizeData);
216
+ __decorateElement(_init, 5, "smallURL", _smallURL_dec, FileSchemaResizeData);
217
+ __decorateElement(_init, 5, "mediumURL", _mediumURL_dec, FileSchemaResizeData);
218
+ __decorateElement(_init, 5, "largeURL", _largeURL_dec, FileSchemaResizeData);
219
+ __decorateElement(_init, 5, "extraLargeURL", _extraLargeURL_dec, FileSchemaResizeData);
220
+ FileSchemaResizeData = __decorateElement(_init, 0, "FileSchemaResizeData", _FileSchemaResizeData_decorators, FileSchemaResizeData);
221
+ __runInitializers(_init, 1, FileSchemaResizeData);
222
+ var _height_dec, _width_dec, _FileSchemaDimensionsData_decorators, _init2;
223
+ _FileSchemaDimensionsData_decorators = [(0, import_typed_model.TypedSchema)()], _width_dec = [(0, import_typed_model.Prop)({ optional: true, type: "number" })], _height_dec = [(0, import_typed_model.Prop)({ optional: true, type: "number" })];
224
+ var FileSchemaDimensionsData = class {
225
+ constructor() {
226
+ __publicField(this, "width", __runInitializers(_init2, 8, this)), __runInitializers(_init2, 11, this);
227
+ __publicField(this, "height", __runInitializers(_init2, 12, this)), __runInitializers(_init2, 15, this);
228
+ }
229
+ };
230
+ _init2 = __decoratorStart(null);
231
+ __decorateElement(_init2, 5, "width", _width_dec, FileSchemaDimensionsData);
232
+ __decorateElement(_init2, 5, "height", _height_dec, FileSchemaDimensionsData);
233
+ FileSchemaDimensionsData = __decorateElement(_init2, 0, "FileSchemaDimensionsData", _FileSchemaDimensionsData_decorators, FileSchemaDimensionsData);
234
+ __runInitializers(_init2, 1, FileSchemaDimensionsData);
235
+ var _blurhash_dec, _background_dec, _front_dec, _FileSchemaColorsData_decorators, _init3;
236
+ _FileSchemaColorsData_decorators = [(0, import_typed_model.TypedSchema)()], _front_dec = [(0, import_typed_model.Prop)({ optional: true, type: "string" })], _background_dec = [(0, import_typed_model.Prop)({ optional: true, type: "string" })], _blurhash_dec = [(0, import_typed_model.Prop)({ optional: true, type: "string" })];
237
+ var FileSchemaColorsData = class {
238
+ constructor() {
239
+ __publicField(this, "front", __runInitializers(_init3, 8, this)), __runInitializers(_init3, 11, this);
240
+ __publicField(this, "background", __runInitializers(_init3, 12, this)), __runInitializers(_init3, 15, this);
241
+ __publicField(this, "blurhash", __runInitializers(_init3, 16, this)), __runInitializers(_init3, 19, this);
242
+ }
243
+ };
244
+ _init3 = __decoratorStart(null);
245
+ __decorateElement(_init3, 5, "front", _front_dec, FileSchemaColorsData);
246
+ __decorateElement(_init3, 5, "background", _background_dec, FileSchemaColorsData);
247
+ __decorateElement(_init3, 5, "blurhash", _blurhash_dec, FileSchemaColorsData);
248
+ FileSchemaColorsData = __decorateElement(_init3, 0, "FileSchemaColorsData", _FileSchemaColorsData_decorators, FileSchemaColorsData);
249
+ __runInitializers(_init3, 1, FileSchemaColorsData);
250
+ var _colorsData_dec, _resizedData_dec, _dimensions_dec, _createdAt_dec, _createdBy_dec, _status_dec, _size_dec, _type_dec, _name_dec, _bucket_dec, _key_dec, _externalUrl_dec, _hash_dec, __id_dec, _FileSchema_decorators, _init4;
251
+ _FileSchema_decorators = [(0, import_typed_model.TypedSchema)({
433
252
  name: "File",
434
- schema,
435
- resolvers: /* @__PURE__ */ __name(() => (init_resolvers(), __toCommonJS(resolvers_exports)), "resolvers"),
253
+ resolvers: resolvers_default,
436
254
  // this is only called when its child
437
255
  async clean(value) {
438
256
  if (!value) return null;
439
257
  const fileId = value._id;
440
- const file = await Files.findOne({
441
- _id: fileId
442
- });
258
+ const file = await getFileData(fileId);
443
259
  if (!file) return null;
444
260
  await generateImageInfo(file);
445
- const keys = Object.keys((0, import_omit.default)(schema, "createdBy", "createdAt", "status"));
446
- const data = (0, import_pick.default)(file, keys);
261
+ const keys = [
262
+ "_id",
263
+ "hash",
264
+ "externalUrl",
265
+ "key",
266
+ "bucket",
267
+ "name",
268
+ "type",
269
+ "size",
270
+ // 'status',
271
+ // 'createdBy',
272
+ // 'createdAt',
273
+ "dimensions",
274
+ "resizedData",
275
+ "colorsData"
276
+ ];
277
+ const data = (0, import_lodash2.pick)(file, keys);
447
278
  return data;
448
279
  }
280
+ })], __id_dec = [(0, import_typed_model.Prop)({ type: "ID" })], _hash_dec = [(0, import_typed_model.Prop)({ optional: true, type: "string" })], _externalUrl_dec = [(0, import_typed_model.Prop)({ optional: true, type: "string" })], _key_dec = [(0, import_typed_model.Prop)({ optional: true, type: "string" })], _bucket_dec = [(0, import_typed_model.Prop)({ optional: true, type: "string" })], _name_dec = [(0, import_typed_model.Prop)({ optional: true, type: "string" })], _type_dec = [(0, import_typed_model.Prop)({ optional: true, type: "string" })], _size_dec = [(0, import_typed_model.Prop)({ optional: true, type: "number" })], _status_dec = [(0, import_typed_model.Prop)({ optional: true, type: "string" })], _createdBy_dec = [(0, import_typed_model.Prop)({ optional: true, type: "string" })], _createdAt_dec = [(0, import_typed_model.Prop)({ optional: true, type: Date })], _dimensions_dec = [(0, import_typed_model.Prop)({ optional: true, type: FileSchemaDimensionsData })], _resizedData_dec = [(0, import_typed_model.Prop)({ optional: true, type: FileSchemaResizeData })], _colorsData_dec = [(0, import_typed_model.Prop)({ optional: true, type: FileSchemaColorsData })];
281
+ var FileSchema = class {
282
+ constructor() {
283
+ __publicField(this, "_id", __runInitializers(_init4, 8, this)), __runInitializers(_init4, 11, this);
284
+ __publicField(this, "hash", __runInitializers(_init4, 12, this)), __runInitializers(_init4, 15, this);
285
+ __publicField(this, "externalUrl", __runInitializers(_init4, 16, this)), __runInitializers(_init4, 19, this);
286
+ __publicField(this, "key", __runInitializers(_init4, 20, this)), __runInitializers(_init4, 23, this);
287
+ __publicField(this, "bucket", __runInitializers(_init4, 24, this)), __runInitializers(_init4, 27, this);
288
+ __publicField(this, "name", __runInitializers(_init4, 28, this)), __runInitializers(_init4, 31, this);
289
+ __publicField(this, "type", __runInitializers(_init4, 32, this)), __runInitializers(_init4, 35, this);
290
+ __publicField(this, "size", __runInitializers(_init4, 36, this)), __runInitializers(_init4, 39, this);
291
+ __publicField(this, "status", __runInitializers(_init4, 40, this)), __runInitializers(_init4, 43, this);
292
+ __publicField(this, "createdBy", __runInitializers(_init4, 44, this)), __runInitializers(_init4, 47, this);
293
+ __publicField(this, "createdAt", __runInitializers(_init4, 48, this)), __runInitializers(_init4, 51, this);
294
+ __publicField(this, "dimensions", __runInitializers(_init4, 52, this)), __runInitializers(_init4, 55, this);
295
+ __publicField(this, "resizedData", __runInitializers(_init4, 56, this)), __runInitializers(_init4, 59, this);
296
+ __publicField(this, "colorsData", __runInitializers(_init4, 60, this)), __runInitializers(_init4, 63, this);
297
+ }
298
+ };
299
+ _init4 = __decoratorStart(null);
300
+ __decorateElement(_init4, 5, "_id", __id_dec, FileSchema);
301
+ __decorateElement(_init4, 5, "hash", _hash_dec, FileSchema);
302
+ __decorateElement(_init4, 5, "externalUrl", _externalUrl_dec, FileSchema);
303
+ __decorateElement(_init4, 5, "key", _key_dec, FileSchema);
304
+ __decorateElement(_init4, 5, "bucket", _bucket_dec, FileSchema);
305
+ __decorateElement(_init4, 5, "name", _name_dec, FileSchema);
306
+ __decorateElement(_init4, 5, "type", _type_dec, FileSchema);
307
+ __decorateElement(_init4, 5, "size", _size_dec, FileSchema);
308
+ __decorateElement(_init4, 5, "status", _status_dec, FileSchema);
309
+ __decorateElement(_init4, 5, "createdBy", _createdBy_dec, FileSchema);
310
+ __decorateElement(_init4, 5, "createdAt", _createdAt_dec, FileSchema);
311
+ __decorateElement(_init4, 5, "dimensions", _dimensions_dec, FileSchema);
312
+ __decorateElement(_init4, 5, "resizedData", _resizedData_dec, FileSchema);
313
+ __decorateElement(_init4, 5, "colorsData", _colorsData_dec, FileSchema);
314
+ FileSchema = __decorateElement(_init4, 0, "FileSchema", _FileSchema_decorators, FileSchema);
315
+ __runInitializers(_init4, 1, FileSchema);
316
+
317
+ // src/Files/index.ts
318
+ var Files = (0, import_mongodb2.createCollection)({
319
+ name: "filemanager_files",
320
+ schema: FileSchema,
321
+ indexes: [
322
+ {
323
+ keys: {
324
+ key: 1,
325
+ bucket: 1
326
+ }
327
+ },
328
+ {
329
+ keys: {
330
+ hash: 1
331
+ }
332
+ }
333
+ ]
449
334
  });
450
335
 
451
336
  // src/resolvers/fileManagerFile.ts
452
- var fileManagerFile_default = (0, import_resolvers3.resolver)({
337
+ var fileManagerFile_default = (0, import_resolvers4.createResolver)({
453
338
  params: {
454
339
  fileId: {
455
340
  type: "ID"
456
341
  }
457
342
  },
458
- returns: File_default,
343
+ returns: FileSchema,
459
344
  async resolve({ fileId }) {
460
345
  return await Files.findOne(fileId);
461
346
  }
@@ -471,16 +356,12 @@ var fileManagerFiles = (0, import_paginated_mongodb.paginatedResolver)({
471
356
  optional: true
472
357
  }
473
358
  },
474
- returns: File_default,
359
+ returns: FileSchema,
475
360
  async getCursor({ filter }, viewer) {
476
- const query = {
477
- status: "uploaded"
478
- };
361
+ const query = { status: "uploaded" };
479
362
  query.createdBy = viewer.userId;
480
363
  if (filter) {
481
- query.name = {
482
- $regex: new RegExp(`^${(0, import_escape_string_regexp.default)(filter)}`)
483
- };
364
+ query.name = { $regex: new RegExp(`^${(0, import_escape_string_regexp.default)(filter)}`) };
484
365
  }
485
366
  return Files.find(query);
486
367
  }
@@ -488,37 +369,29 @@ var fileManagerFiles = (0, import_paginated_mongodb.paginatedResolver)({
488
369
  var fileManagerFiles_default = fileManagerFiles;
489
370
 
490
371
  // src/resolvers/completeUpload.ts
491
- var import_resolvers4 = require("@orion-js/resolvers");
492
- var completeUpload_default = (0, import_resolvers4.resolver)({
372
+ var import_resolvers5 = require("@orion-js/resolvers");
373
+ var completeUpload_default = (0, import_resolvers5.createResolver)({
493
374
  params: {
494
375
  fileId: {
495
376
  type: "ID"
496
377
  }
497
378
  },
498
- returns: File_default,
379
+ returns: FileSchema,
499
380
  mutation: true,
500
381
  async resolve({ fileId }, viewer) {
501
- const file = await Files.findOne({
502
- createdBy: viewer.userId,
503
- _id: fileId
504
- });
505
- await Files.updateOne(file, {
506
- $set: {
507
- status: "uploaded"
508
- }
509
- });
382
+ const file = await Files.findOne({ createdBy: viewer.userId, _id: fileId });
383
+ await Files.updateOne(file, { $set: { status: "uploaded" } });
510
384
  await generateImageInfo(file);
511
385
  return file;
512
386
  }
513
387
  });
514
388
 
515
389
  // src/resolvers/generateUploadCredentials.ts
516
- var import_resolvers5 = require("@orion-js/resolvers");
390
+ var import_resolvers6 = require("@orion-js/resolvers");
517
391
  var import_helpers = require("@orion-js/helpers");
518
- var import_models2 = require("@orion-js/models");
392
+ var import_models = require("@orion-js/models");
519
393
  var import_aws_sdk = __toESM(require("aws-sdk"), 1);
520
- init_credentials();
521
- var generateUploadCredentials = (0, import_resolvers5.resolver)({
394
+ var generateUploadCredentials = (0, import_resolvers6.resolver)({
522
395
  params: {
523
396
  name: {
524
397
  type: String
@@ -530,7 +403,7 @@ var generateUploadCredentials = (0, import_resolvers5.resolver)({
530
403
  type: String
531
404
  }
532
405
  },
533
- returns: (0, import_models2.createModel)({
406
+ returns: (0, import_models.createModel)({
534
407
  name: "UploadCredentials",
535
408
  schema: {
536
409
  fileId: {
@@ -549,7 +422,16 @@ var generateUploadCredentials = (0, import_resolvers5.resolver)({
549
422
  }),
550
423
  mutation: true,
551
424
  async resolve(params, viewer) {
552
- const { accessKeyId, secretAccessKey, region, bucket, endpoint, s3ForcePathStyle, canUpload, basePath } = getAWSCredentials();
425
+ const {
426
+ accessKeyId,
427
+ secretAccessKey,
428
+ region,
429
+ bucket,
430
+ endpoint,
431
+ s3ForcePathStyle,
432
+ canUpload,
433
+ basePath
434
+ } = getAWSCredentials();
553
435
  const s3 = new import_aws_sdk.default.S3({
554
436
  accessKeyId,
555
437
  secretAccessKey,
@@ -573,33 +455,26 @@ var generateUploadCredentials = (0, import_resolvers5.resolver)({
573
455
  createdAt: /* @__PURE__ */ new Date()
574
456
  });
575
457
  const result = await new Promise((resolve, reject) => {
576
- s3.createPresignedPost({
577
- Bucket: bucket,
578
- Conditions: [
579
- [
580
- "content-length-range",
581
- params.size,
582
- params.size
458
+ s3.createPresignedPost(
459
+ {
460
+ Bucket: bucket,
461
+ Conditions: [
462
+ ["content-length-range", params.size, params.size],
463
+ { "Content-Type": params.type },
464
+ { "Cache-Control": "public, max-age=31536000, immutable" },
465
+ { Key: key }
583
466
  ],
584
- {
585
- "Content-Type": params.type
586
- },
587
- {
467
+ Fields: {
468
+ key,
469
+ "Content-Type": params.type,
588
470
  "Cache-Control": "public, max-age=31536000, immutable"
589
- },
590
- {
591
- Key: key
592
471
  }
593
- ],
594
- Fields: {
595
- key,
596
- "Content-Type": params.type,
597
- "Cache-Control": "public, max-age=31536000, immutable"
472
+ },
473
+ function(error, data) {
474
+ if (error) reject(error);
475
+ else resolve(data);
598
476
  }
599
- }, function(error, data) {
600
- if (error) reject(error);
601
- else resolve(data);
602
- });
477
+ );
603
478
  });
604
479
  return {
605
480
  fileId,
@@ -617,13 +492,8 @@ var resolvers = {
617
492
  generateUploadCredentials
618
493
  };
619
494
  var resolvers_default2 = resolvers;
620
-
621
- // src/index.ts
622
- init_credentials();
623
- init_url();
624
495
  // Annotate the CommonJS export names for ESM import in node:
625
496
  0 && (module.exports = {
626
- File,
627
497
  FileSchema,
628
498
  Files,
629
499
  getAWSCredentials,