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

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
@@ -97,10 +97,10 @@ var import_resolvers = require("@orion-js/resolvers");
97
97
  var genericType_default = (0, import_resolvers.modelResolver)({
98
98
  returns: String,
99
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";
100
+ const { type: type2 } = file;
101
+ if (!type2) return "unknown";
102
+ if (type2.startsWith("image/")) return "image";
103
+ if (type2.startsWith("application/pdf")) return "pdf";
104
104
  return "unknown";
105
105
  }
106
106
  });
@@ -136,8 +136,62 @@ var resolvers_default = {
136
136
  genericType: genericType_default
137
137
  };
138
138
 
139
- // src/resolvers/generateImageInfo.ts
140
- var import_lodash = require("lodash");
139
+ // ../../node_modules/.pnpm/rambdax@11.3.1/node_modules/rambdax/src/type.js
140
+ function type(input) {
141
+ if (input === null) {
142
+ return "Null";
143
+ } else if (input === void 0) {
144
+ return "Undefined";
145
+ } else if (Number.isNaN(input)) {
146
+ return "NaN";
147
+ }
148
+ const typeResult = Object.prototype.toString.call(input).slice(8, -1);
149
+ return typeResult === "AsyncFunction" ? "Promise" : typeResult;
150
+ }
151
+
152
+ // ../../node_modules/.pnpm/rambdax@11.3.1/node_modules/rambdax/src/_internals/isInteger.js
153
+ function _isInteger(n) {
154
+ return n << 0 === n;
155
+ }
156
+ var isInteger = Number.isInteger || _isInteger;
157
+
158
+ // ../../node_modules/.pnpm/rambdax@11.3.1/node_modules/rambdax/src/_internals/createPath.js
159
+ function createPath(path, delimiter = ".") {
160
+ return typeof path === "string" ? path.split(delimiter).map((x) => isInteger(x) ? Number(x) : x) : path;
161
+ }
162
+
163
+ // ../../node_modules/.pnpm/rambdax@11.3.1/node_modules/rambdax/src/pick.js
164
+ function pick(propsToPick, input) {
165
+ if (arguments.length === 1) return (_input) => pick(propsToPick, _input);
166
+ if (input === null || input === void 0) {
167
+ return void 0;
168
+ }
169
+ const keys = createPath(propsToPick, ",");
170
+ const willReturn = {};
171
+ let counter = 0;
172
+ while (counter < keys.length) {
173
+ if (keys[counter] in input) {
174
+ willReturn[keys[counter]] = input[keys[counter]];
175
+ }
176
+ counter++;
177
+ }
178
+ return willReturn;
179
+ }
180
+
181
+ // ../../node_modules/.pnpm/rambdax@11.3.1/node_modules/rambdax/src/isEmpty.js
182
+ function isEmpty(input) {
183
+ const inputType = type(input);
184
+ if (["Undefined", "NaN", "Number", "Null"].includes(inputType))
185
+ return false;
186
+ if (!input) return true;
187
+ if (inputType === "Object") {
188
+ return Object.keys(input).length === 0;
189
+ }
190
+ if (inputType === "Array") {
191
+ return input.length === 0;
192
+ }
193
+ return false;
194
+ }
141
195
 
142
196
  // src/File/resolvers/isImage.ts
143
197
  function isImage(image) {
@@ -157,7 +211,7 @@ async function generateImageInfo(file) {
157
211
  if (!file.dimensions && options.getImageDimensions) {
158
212
  try {
159
213
  file.dimensions = await options.getImageDimensions(file);
160
- if (!(0, import_lodash.isEmpty)(file.dimensions)) {
214
+ if (!isEmpty(file.dimensions)) {
161
215
  await Files.updateOne(file._id, { $set: { dimensions: file.dimensions } });
162
216
  }
163
217
  } catch (error) {
@@ -167,7 +221,7 @@ async function generateImageInfo(file) {
167
221
  if (!((_a = file.resizedData) == null ? void 0 : _a.extraLargeURL) && options.getResizedImages) {
168
222
  try {
169
223
  file.resizedData = await options.getResizedImages(file);
170
- if (!(0, import_lodash.isEmpty)(file.resizedData)) {
224
+ if (!isEmpty(file.resizedData)) {
171
225
  await Files.updateOne(file._id, { $set: { resizedData: file.resizedData } });
172
226
  }
173
227
  } catch (error) {
@@ -177,7 +231,7 @@ async function generateImageInfo(file) {
177
231
  if (!file.colorsData && options.getImageColors) {
178
232
  try {
179
233
  file.colorsData = await options.getImageColors(file);
180
- if (!(0, import_lodash.isEmpty)(file.colorsData)) {
234
+ if (!isEmpty(file.colorsData)) {
181
235
  await Files.updateOne(file._id, { $set: { colorsData: file.colorsData } });
182
236
  }
183
237
  } catch (error) {
@@ -187,9 +241,6 @@ async function generateImageInfo(file) {
187
241
  }
188
242
  }
189
243
 
190
- // src/File/schema.ts
191
- var import_lodash2 = require("lodash");
192
-
193
244
  // src/File/getFileData.ts
194
245
  var import_mongodb = require("@orion-js/mongodb");
195
246
  var readOnlyCollection = (0, import_mongodb.createCollection)({ name: "filemanager_files" });
@@ -274,7 +325,7 @@ _FileSchema_decorators = [(0, import_typed_model.TypedSchema)({
274
325
  "resizedData",
275
326
  "colorsData"
276
327
  ];
277
- const data = (0, import_lodash2.pick)(file, keys);
328
+ const data = pick(keys, file);
278
329
  return data;
279
330
  }
280
331
  })], __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 })];
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/resolvers/fileManagerFile.ts","../src/Files/index.ts","../src/File/schema.ts","../src/File/resolvers/genericType.ts","../src/File/resolvers/url.ts","../src/credentials.ts","../src/File/resolvers/index.ts","../src/resolvers/generateImageInfo.ts","../src/File/resolvers/isImage.ts","../src/File/getFileData.ts","../src/resolvers/fileManagerFiles.ts","../src/resolvers/completeUpload.ts","../src/resolvers/generateUploadCredentials.ts","../src/resolvers/index.ts"],"sourcesContent":["import resolvers from './resolvers'\nimport {setupFileManager, getAWSCredentials} from './credentials'\nimport {Files} from './Files'\nimport {getFileURL} from './File/resolvers/url'\nimport {FileSchema} from './File/schema'\n\nexport {resolvers, setupFileManager, getAWSCredentials, Files, getFileURL, FileSchema}\n","import {createResolver} from '@orion-js/resolvers'\nimport {Files} from '../Files'\nimport {FileSchema} from '../File/schema'\n\nexport default createResolver({\n params: {\n fileId: {\n type: 'ID',\n },\n },\n returns: FileSchema,\n async resolve({fileId}) {\n return await Files.findOne(fileId)\n },\n})\n","import {Collection, createCollection} from '@orion-js/mongodb'\nimport {FileSchema} from '../File/schema'\n\nexport const Files: Collection<FileSchema> = createCollection<FileSchema>({\n name: 'filemanager_files',\n schema: FileSchema,\n indexes: [\n {\n keys: {\n key: 1,\n bucket: 1,\n },\n },\n {\n keys: {\n hash: 1,\n },\n },\n ],\n})\n","import {Prop, TypedSchema} from '@orion-js/typed-model'\nimport resolvers from './resolvers'\nimport {generateImageInfo} from '../resolvers/generateImageInfo'\nimport {pick} from 'lodash'\nimport {getFileData} from './getFileData'\n\n@TypedSchema()\nexport class FileSchemaResizeData {\n @Prop({optional: true, type: 'string'})\n thumbnailURL?: string // 100 height max\n\n @Prop({optional: true, type: 'string'})\n smallURL?: string // 300 height max\n\n @Prop({optional: true, type: 'string'})\n mediumURL?: string // 800 height max\n\n @Prop({optional: true, type: 'string'})\n largeURL?: string // 1400 height max\n\n @Prop({optional: true, type: 'string'})\n extraLargeURL?: string // 2400 height max\n}\n\n@TypedSchema()\nexport class FileSchemaDimensionsData {\n @Prop({optional: true, type: 'number'})\n width?: number\n\n @Prop({optional: true, type: 'number'})\n height?: number\n}\n\n@TypedSchema()\nexport class FileSchemaColorsData {\n @Prop({optional: true, type: 'string'})\n front?: string\n\n @Prop({optional: true, type: 'string'})\n background?: string\n\n @Prop({optional: true, type: 'string'})\n blurhash?: string\n}\n\n@TypedSchema({\n name: 'File',\n resolvers,\n // this is only called when its child\n async clean(value) {\n if (!value) return null\n const fileId = value._id\n const file = await getFileData(fileId)\n if (!file) return null\n\n await generateImageInfo(file)\n\n const keys = [\n '_id',\n 'hash',\n 'externalUrl',\n 'key',\n 'bucket',\n 'name',\n 'type',\n 'size',\n // 'status',\n // 'createdBy',\n // 'createdAt',\n 'dimensions',\n 'resizedData',\n 'colorsData',\n ]\n const data = pick(file, keys)\n return data\n },\n})\nexport class FileSchema {\n @Prop({type: 'ID'})\n _id: string\n\n @Prop({optional: true, type: 'string'})\n hash?: string\n\n @Prop({optional: true, type: 'string'})\n externalUrl?: string\n\n @Prop({optional: true, type: 'string'})\n key?: string\n\n @Prop({optional: true, type: 'string'})\n bucket?: string\n\n @Prop({optional: true, type: 'string'})\n name?: string\n\n @Prop({optional: true, type: 'string'})\n type?: string\n\n @Prop({optional: true, type: 'number'})\n size?: number\n\n @Prop({optional: true, type: 'string'})\n status?: string\n\n @Prop({optional: true, type: 'string'})\n createdBy?: string\n\n @Prop({optional: true, type: Date})\n createdAt?: Date\n\n @Prop({optional: true, type: FileSchemaDimensionsData})\n dimensions?: FileSchemaDimensionsData\n\n @Prop({optional: true, type: FileSchemaResizeData})\n resizedData?: FileSchemaResizeData\n\n @Prop({optional: true, type: FileSchemaColorsData})\n colorsData?: FileSchemaColorsData\n}\n","import {modelResolver} from '@orion-js/resolvers'\n\nexport default modelResolver({\n returns: String,\n async resolve(file, viewer) {\n const {type} = file\n if (!type) return 'unknown'\n if (type.startsWith('image/')) return 'image'\n if (type.startsWith('application/pdf')) return 'pdf'\n return 'unknown'\n },\n})\n","import {modelResolver} from '@orion-js/resolvers'\nimport {getAWSCredentials} from '../../credentials'\nimport {FileSchema} from '../schema'\n\nexport function getFileURL(file: FileSchema): string {\n if (file.externalUrl) return file.externalUrl\n const options = getAWSCredentials()\n if (options.getFileURL) return options.getFileURL(file)\n return `https://s3.amazonaws.com/${file.bucket}/${encodeURIComponent(file.key)}`\n}\n\nexport default modelResolver({\n returns: String,\n async resolve(file) {\n return getFileURL(file)\n },\n})\n","import {\n FileSchema,\n FileSchemaColorsData,\n FileSchemaDimensionsData,\n FileSchemaResizeData,\n} from './File/schema'\n\nexport interface FileManagerOptions {\n accessKeyId: string\n secretAccessKey: string\n region: string\n bucket: string\n canUpload: Function\n getFileURL?: Function\n basePath: string\n endpoint?: string\n s3ForcePathStyle?: boolean\n\n getImageDimensions?: (file: FileSchema) => Promise<FileSchemaDimensionsData>\n getResizedImages?: (file: FileSchema) => Promise<FileSchemaResizeData>\n getImageColors?: (file: FileSchema) => Promise<FileSchemaColorsData>\n}\n\nlet savedOptions: Partial<FileManagerOptions> = {}\n\nexport const setupFileManager = (options: FileManagerOptions) => {\n savedOptions = options\n}\n\n/**\n * @deprecated use getFileManagerOptions instead\n */\nexport const getAWSCredentials = () => savedOptions\n\nexport const getFileManagerOptions = () => savedOptions\n","import genericType from './genericType'\nimport url from './url'\n\nexport default {\n url,\n genericType,\n}\n","import {isEmpty} from 'lodash'\nimport {getFileManagerOptions} from '../credentials'\nimport {isImage} from '../File/resolvers/isImage'\nimport {FileSchema} from '../File/schema'\nimport {Files} from '../Files'\n\nexport async function generateImageInfo(file: FileSchema) {\n if (!file._id) return\n\n const options = getFileManagerOptions()\n\n if (isImage(file)) {\n if (!file.dimensions && options.getImageDimensions) {\n try {\n file.dimensions = await options.getImageDimensions(file)\n if (!isEmpty(file.dimensions)) {\n await Files.updateOne(file._id, {$set: {dimensions: file.dimensions}})\n }\n } catch (error) {\n console.error('Error getting image dimensions', error)\n }\n }\n\n if (!file.resizedData?.extraLargeURL && options.getResizedImages) {\n try {\n file.resizedData = await options.getResizedImages(file)\n if (!isEmpty(file.resizedData)) {\n await Files.updateOne(file._id, {$set: {resizedData: file.resizedData}})\n }\n } catch (error) {\n console.error('Error getting resized images', error)\n }\n }\n\n if (!file.colorsData && options.getImageColors) {\n try {\n file.colorsData = await options.getImageColors(file)\n if (!isEmpty(file.colorsData)) {\n await Files.updateOne(file._id, {$set: {colorsData: file.colorsData}})\n }\n } catch (error) {\n console.error('Error getting image colors', error)\n }\n }\n }\n}\n","import {FileSchema} from '../schema'\n\nexport function isImage(image: FileSchema): boolean {\n if (!image.type) {\n return true\n }\n const mime = image.type\n return mime.includes('image')\n}\n","import {createCollection} from '@orion-js/mongodb'\n\nconst readOnlyCollection = createCollection({name: 'filemanager_files'})\n\nexport async function getFileData(fileId: string) {\n const file = await readOnlyCollection.findOne({_id: fileId})\n return file\n}\n","import {paginatedResolver} from '@orion-js/paginated-mongodb'\nimport {Resolver} from '@orion-js/resolvers'\nimport escapeString from 'escape-string-regexp'\nimport {Files} from '../Files'\nimport {FileSchema} from '../File/schema'\n\nconst fileManagerFiles: Resolver = paginatedResolver({\n params: {\n filter: {\n type: String,\n optional: true,\n },\n },\n returns: FileSchema,\n async getCursor({filter}, viewer) {\n const query: any = {status: 'uploaded'}\n\n query.createdBy = viewer.userId\n\n if (filter) {\n query.name = {$regex: new RegExp(`^${escapeString(filter)}`)}\n }\n\n return Files.find(query)\n },\n})\n\nexport default fileManagerFiles\n","import {createResolver} from '@orion-js/resolvers'\nimport {Files} from '../Files'\nimport {generateImageInfo} from './generateImageInfo'\nimport {FileSchema} from '../File/schema'\n\nexport default createResolver({\n params: {\n fileId: {\n type: 'ID',\n },\n },\n returns: FileSchema,\n mutation: true,\n async resolve({fileId}, viewer) {\n const file = await Files.findOne({createdBy: viewer.userId, _id: fileId})\n await Files.updateOne(file, {$set: {status: 'uploaded'}})\n\n // mientras el usuario sigue editando el formulario, se generan los resizes y colores\n await generateImageInfo(file)\n\n return file\n },\n})\n","import {resolver} from '@orion-js/resolvers'\nimport {generateId, generateUUID} from '@orion-js/helpers'\nimport {createModel} from '@orion-js/models'\nimport AWS from 'aws-sdk'\nimport {getAWSCredentials} from '../credentials'\nimport {Files} from '../Files'\nimport type {Resolver} from '@orion-js/resolvers'\n\nexport const generateUploadCredentials: Resolver<any, any> = resolver({\n params: {\n name: {\n type: String,\n },\n size: {\n type: Number,\n },\n type: {\n type: String,\n },\n },\n returns: createModel({\n name: 'UploadCredentials',\n schema: {\n fileId: {\n type: 'ID',\n },\n url: {\n type: String,\n },\n fields: {\n type: 'blackbox',\n },\n key: {\n type: String,\n },\n },\n }),\n mutation: true,\n async resolve(params, viewer) {\n const {\n accessKeyId,\n secretAccessKey,\n region,\n bucket,\n endpoint,\n s3ForcePathStyle,\n canUpload,\n basePath,\n } = getAWSCredentials()\n const s3 = new AWS.S3({\n accessKeyId,\n secretAccessKey,\n region,\n endpoint,\n s3ForcePathStyle,\n })\n\n if (canUpload) {\n if (!(await canUpload(params, viewer))) return null\n }\n\n const key = `${basePath}/${generateId()}-${params.name}`\n\n const fileId = await Files.rawCollection.insertOne({\n _id: `ofl-${generateUUID()}`,\n key,\n bucket,\n name: params.name,\n type: params.type,\n size: params.size,\n status: 'uploading',\n createdBy: viewer.userId,\n createdAt: new Date(),\n })\n\n const result = await new Promise<AWS.S3.PresignedPost>((resolve, reject) => {\n s3.createPresignedPost(\n {\n Bucket: bucket,\n Conditions: [\n ['content-length-range', params.size, params.size],\n {'Content-Type': params.type},\n {'Cache-Control': 'public, max-age=31536000, immutable'},\n {Key: key},\n ],\n Fields: {\n key: key,\n 'Content-Type': params.type,\n 'Cache-Control': 'public, max-age=31536000, immutable',\n },\n },\n function (error, data) {\n if (error) reject(error)\n else resolve(data)\n },\n )\n })\n\n return {\n fileId,\n ...(result as object),\n key,\n }\n },\n})\n","import fileManagerFile from './fileManagerFile'\nimport fileManagerFiles from './fileManagerFiles'\nimport completeUpload from './completeUpload'\nimport {generateUploadCredentials} from './generateUploadCredentials'\nimport type {Resolver} from '@orion-js/resolvers'\n\n// Define a type for our resolvers object\ntype ResolversMap = Record<string, Resolver<any, any>>\n\nconst resolvers: ResolversMap = {\n fileManagerFile,\n fileManagerFiles,\n completeUpload,\n generateUploadCredentials,\n}\n\nexport default resolvers\n"],"mappings":"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","names":["resolvers_default","import_resolvers","import_mongodb","import_resolvers","import_lodash","_init","escapeString","import_resolvers","import_resolvers","AWS","resolvers_default"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/resolvers/fileManagerFile.ts","../src/Files/index.ts","../src/File/schema.ts","../src/File/resolvers/genericType.ts","../src/File/resolvers/url.ts","../src/credentials.ts","../src/File/resolvers/index.ts","../../../node_modules/.pnpm/rambdax@11.3.1/node_modules/rambdax/src/type.js","../../../node_modules/.pnpm/rambdax@11.3.1/node_modules/rambdax/src/_internals/isInteger.js","../../../node_modules/.pnpm/rambdax@11.3.1/node_modules/rambdax/src/_internals/createPath.js","../../../node_modules/.pnpm/rambdax@11.3.1/node_modules/rambdax/src/pick.js","../../../node_modules/.pnpm/rambdax@11.3.1/node_modules/rambdax/src/isEmpty.js","../src/File/resolvers/isImage.ts","../src/resolvers/generateImageInfo.ts","../src/File/getFileData.ts","../src/resolvers/fileManagerFiles.ts","../src/resolvers/completeUpload.ts","../src/resolvers/generateUploadCredentials.ts","../src/resolvers/index.ts"],"sourcesContent":["import resolvers from './resolvers'\nimport {setupFileManager, getAWSCredentials} from './credentials'\nimport {Files} from './Files'\nimport {getFileURL} from './File/resolvers/url'\nimport {FileSchema} from './File/schema'\n\nexport {resolvers, setupFileManager, getAWSCredentials, Files, getFileURL, FileSchema}\n","import {createResolver} from '@orion-js/resolvers'\nimport {Files} from '../Files'\nimport {FileSchema} from '../File/schema'\n\nexport default createResolver({\n params: {\n fileId: {\n type: 'ID',\n },\n },\n returns: FileSchema,\n async resolve({fileId}) {\n return await Files.findOne(fileId)\n },\n})\n","import {Collection, createCollection} from '@orion-js/mongodb'\nimport {FileSchema} from '../File/schema'\n\nexport const Files: Collection<FileSchema> = createCollection<FileSchema>({\n name: 'filemanager_files',\n schema: FileSchema,\n indexes: [\n {\n keys: {\n key: 1,\n bucket: 1,\n },\n },\n {\n keys: {\n hash: 1,\n },\n },\n ],\n})\n","import {Prop, TypedSchema} from '@orion-js/typed-model'\nimport resolvers from './resolvers'\nimport {generateImageInfo} from '../resolvers/generateImageInfo'\nimport {pick} from 'rambdax'\nimport {getFileData} from './getFileData'\n\n@TypedSchema()\nexport class FileSchemaResizeData {\n @Prop({optional: true, type: 'string'})\n thumbnailURL?: string // 100 height max\n\n @Prop({optional: true, type: 'string'})\n smallURL?: string // 300 height max\n\n @Prop({optional: true, type: 'string'})\n mediumURL?: string // 800 height max\n\n @Prop({optional: true, type: 'string'})\n largeURL?: string // 1400 height max\n\n @Prop({optional: true, type: 'string'})\n extraLargeURL?: string // 2400 height max\n}\n\n@TypedSchema()\nexport class FileSchemaDimensionsData {\n @Prop({optional: true, type: 'number'})\n width?: number\n\n @Prop({optional: true, type: 'number'})\n height?: number\n}\n\n@TypedSchema()\nexport class FileSchemaColorsData {\n @Prop({optional: true, type: 'string'})\n front?: string\n\n @Prop({optional: true, type: 'string'})\n background?: string\n\n @Prop({optional: true, type: 'string'})\n blurhash?: string\n}\n\n@TypedSchema({\n name: 'File',\n resolvers,\n // this is only called when its child\n async clean(value) {\n if (!value) return null\n const fileId = value._id\n const file = await getFileData(fileId)\n if (!file) return null\n\n await generateImageInfo(file)\n\n const keys = [\n '_id',\n 'hash',\n 'externalUrl',\n 'key',\n 'bucket',\n 'name',\n 'type',\n 'size',\n // 'status',\n // 'createdBy',\n // 'createdAt',\n 'dimensions',\n 'resizedData',\n 'colorsData',\n ]\n const data = pick(keys, file)\n return data\n },\n})\nexport class FileSchema {\n @Prop({type: 'ID'})\n _id: string\n\n @Prop({optional: true, type: 'string'})\n hash?: string\n\n @Prop({optional: true, type: 'string'})\n externalUrl?: string\n\n @Prop({optional: true, type: 'string'})\n key?: string\n\n @Prop({optional: true, type: 'string'})\n bucket?: string\n\n @Prop({optional: true, type: 'string'})\n name?: string\n\n @Prop({optional: true, type: 'string'})\n type?: string\n\n @Prop({optional: true, type: 'number'})\n size?: number\n\n @Prop({optional: true, type: 'string'})\n status?: string\n\n @Prop({optional: true, type: 'string'})\n createdBy?: string\n\n @Prop({optional: true, type: Date})\n createdAt?: Date\n\n @Prop({optional: true, type: FileSchemaDimensionsData})\n dimensions?: FileSchemaDimensionsData\n\n @Prop({optional: true, type: FileSchemaResizeData})\n resizedData?: FileSchemaResizeData\n\n @Prop({optional: true, type: FileSchemaColorsData})\n colorsData?: FileSchemaColorsData\n}\n","import {modelResolver} from '@orion-js/resolvers'\n\nexport default modelResolver({\n returns: String,\n async resolve(file, viewer) {\n const {type} = file\n if (!type) return 'unknown'\n if (type.startsWith('image/')) return 'image'\n if (type.startsWith('application/pdf')) return 'pdf'\n return 'unknown'\n },\n})\n","import {modelResolver} from '@orion-js/resolvers'\nimport {getAWSCredentials} from '../../credentials'\nimport {FileSchema} from '../schema'\n\nexport function getFileURL(file: FileSchema): string {\n if (file.externalUrl) return file.externalUrl\n const options = getAWSCredentials()\n if (options.getFileURL) return options.getFileURL(file)\n return `https://s3.amazonaws.com/${file.bucket}/${encodeURIComponent(file.key)}`\n}\n\nexport default modelResolver({\n returns: String,\n async resolve(file) {\n return getFileURL(file)\n },\n})\n","import {\n FileSchema,\n FileSchemaColorsData,\n FileSchemaDimensionsData,\n FileSchemaResizeData,\n} from './File/schema'\n\nexport interface FileManagerOptions {\n accessKeyId: string\n secretAccessKey: string\n region: string\n bucket: string\n canUpload: Function\n getFileURL?: Function\n basePath: string\n endpoint?: string\n s3ForcePathStyle?: boolean\n\n getImageDimensions?: (file: FileSchema) => Promise<FileSchemaDimensionsData>\n getResizedImages?: (file: FileSchema) => Promise<FileSchemaResizeData>\n getImageColors?: (file: FileSchema) => Promise<FileSchemaColorsData>\n}\n\nlet savedOptions: Partial<FileManagerOptions> = {}\n\nexport const setupFileManager = (options: FileManagerOptions) => {\n savedOptions = options\n}\n\n/**\n * @deprecated use getFileManagerOptions instead\n */\nexport const getAWSCredentials = () => savedOptions\n\nexport const getFileManagerOptions = () => savedOptions\n","import genericType from './genericType'\nimport url from './url'\n\nexport default {\n url,\n genericType,\n}\n","export function type(input){\n if (input === null){\n return 'Null'\n } else if (input === undefined){\n return 'Undefined'\n } else if (Number.isNaN(input)){\n return 'NaN'\n }\n const typeResult = Object.prototype.toString.call(input).slice(8, -1)\n\n return typeResult === 'AsyncFunction' ? 'Promise' : typeResult\n}\n","function _isInteger(n){\n return n << 0 === n\n}\n\nexport const isInteger = Number.isInteger || _isInteger\n\n/**\n * Check if `index` is integer even if it is a string.\n */\nexport const isIndexInteger = index => Number.isInteger(Number(index))\n","import { isInteger } from './isInteger.js'\n\nexport function createPath(path, delimiter = '.'){\n return typeof path === 'string' ?\n path.split(delimiter).map(x => isInteger(x) ? Number(x) : x) :\n path\n}\n","import { createPath } from './_internals/createPath.js'\n\nexport function pick(propsToPick, input){\n if (arguments.length === 1) return _input => pick(propsToPick, _input)\n\n if (input === null || input === undefined){\n return undefined\n }\n const keys = createPath(propsToPick, ',')\n const willReturn = {}\n let counter = 0\n\n while (counter < keys.length){\n if (keys[ counter ] in input){\n willReturn[ keys[ counter ] ] = input[ keys[ counter ] ]\n }\n counter++\n }\n\n return willReturn\n}\n","import { type } from './type.js'\n\nexport function isEmpty(input){\n const inputType = type(input)\n if ([ 'Undefined', 'NaN', 'Number', 'Null' ].includes(inputType))\n return false\n if (!input) return true\n\n if (inputType === 'Object'){\n return Object.keys(input).length === 0\n }\n\n if (inputType === 'Array'){\n return input.length === 0\n }\n\n return false\n}\n","import {FileSchema} from '../schema'\n\nexport function isImage(image: FileSchema): boolean {\n if (!image.type) {\n return true\n }\n const mime = image.type\n return mime.includes('image')\n}\n","import {isEmpty} from 'rambdax'\nimport {getFileManagerOptions} from '../credentials'\nimport {isImage} from '../File/resolvers/isImage'\nimport {FileSchema} from '../File/schema'\nimport {Files} from '../Files'\n\nexport async function generateImageInfo(file: FileSchema) {\n if (!file._id) return\n\n const options = getFileManagerOptions()\n\n if (isImage(file)) {\n if (!file.dimensions && options.getImageDimensions) {\n try {\n file.dimensions = await options.getImageDimensions(file)\n if (!isEmpty(file.dimensions)) {\n await Files.updateOne(file._id, {$set: {dimensions: file.dimensions}})\n }\n } catch (error) {\n console.error('Error getting image dimensions', error)\n }\n }\n\n if (!file.resizedData?.extraLargeURL && options.getResizedImages) {\n try {\n file.resizedData = await options.getResizedImages(file)\n if (!isEmpty(file.resizedData)) {\n await Files.updateOne(file._id, {$set: {resizedData: file.resizedData}})\n }\n } catch (error) {\n console.error('Error getting resized images', error)\n }\n }\n\n if (!file.colorsData && options.getImageColors) {\n try {\n file.colorsData = await options.getImageColors(file)\n if (!isEmpty(file.colorsData)) {\n await Files.updateOne(file._id, {$set: {colorsData: file.colorsData}})\n }\n } catch (error) {\n console.error('Error getting image colors', error)\n }\n }\n }\n}\n","import {createCollection} from '@orion-js/mongodb'\n\nconst readOnlyCollection = createCollection({name: 'filemanager_files'})\n\nexport async function getFileData(fileId: string) {\n const file = await readOnlyCollection.findOne({_id: fileId})\n return file\n}\n","import {paginatedResolver} from '@orion-js/paginated-mongodb'\nimport {Resolver} from '@orion-js/resolvers'\nimport escapeString from 'escape-string-regexp'\nimport {Files} from '../Files'\nimport {FileSchema} from '../File/schema'\n\nconst fileManagerFiles: Resolver = paginatedResolver({\n params: {\n filter: {\n type: String,\n optional: true,\n },\n },\n returns: FileSchema,\n async getCursor({filter}, viewer) {\n const query: any = {status: 'uploaded'}\n\n query.createdBy = viewer.userId\n\n if (filter) {\n query.name = {$regex: new RegExp(`^${escapeString(filter)}`)}\n }\n\n return Files.find(query)\n },\n})\n\nexport default fileManagerFiles\n","import {createResolver} from '@orion-js/resolvers'\nimport {Files} from '../Files'\nimport {generateImageInfo} from './generateImageInfo'\nimport {FileSchema} from '../File/schema'\n\nexport default createResolver({\n params: {\n fileId: {\n type: 'ID',\n },\n },\n returns: FileSchema,\n mutation: true,\n async resolve({fileId}, viewer) {\n const file = await Files.findOne({createdBy: viewer.userId, _id: fileId})\n await Files.updateOne(file, {$set: {status: 'uploaded'}})\n\n // mientras el usuario sigue editando el formulario, se generan los resizes y colores\n await generateImageInfo(file)\n\n return file\n },\n})\n","import {resolver} from '@orion-js/resolvers'\nimport {generateId, generateUUID} from '@orion-js/helpers'\nimport {createModel} from '@orion-js/models'\nimport AWS from 'aws-sdk'\nimport {getAWSCredentials} from '../credentials'\nimport {Files} from '../Files'\nimport type {Resolver} from '@orion-js/resolvers'\n\nexport const generateUploadCredentials: Resolver<any, any> = resolver({\n params: {\n name: {\n type: String,\n },\n size: {\n type: Number,\n },\n type: {\n type: String,\n },\n },\n returns: createModel({\n name: 'UploadCredentials',\n schema: {\n fileId: {\n type: 'ID',\n },\n url: {\n type: String,\n },\n fields: {\n type: 'blackbox',\n },\n key: {\n type: String,\n },\n },\n }),\n mutation: true,\n async resolve(params, viewer) {\n const {\n accessKeyId,\n secretAccessKey,\n region,\n bucket,\n endpoint,\n s3ForcePathStyle,\n canUpload,\n basePath,\n } = getAWSCredentials()\n const s3 = new AWS.S3({\n accessKeyId,\n secretAccessKey,\n region,\n endpoint,\n s3ForcePathStyle,\n })\n\n if (canUpload) {\n if (!(await canUpload(params, viewer))) return null\n }\n\n const key = `${basePath}/${generateId()}-${params.name}`\n\n const fileId = await Files.rawCollection.insertOne({\n _id: `ofl-${generateUUID()}`,\n key,\n bucket,\n name: params.name,\n type: params.type,\n size: params.size,\n status: 'uploading',\n createdBy: viewer.userId,\n createdAt: new Date(),\n })\n\n const result = await new Promise<AWS.S3.PresignedPost>((resolve, reject) => {\n s3.createPresignedPost(\n {\n Bucket: bucket,\n Conditions: [\n ['content-length-range', params.size, params.size],\n {'Content-Type': params.type},\n {'Cache-Control': 'public, max-age=31536000, immutable'},\n {Key: key},\n ],\n Fields: {\n key: key,\n 'Content-Type': params.type,\n 'Cache-Control': 'public, max-age=31536000, immutable',\n },\n },\n function (error, data) {\n if (error) reject(error)\n else resolve(data)\n },\n )\n })\n\n return {\n fileId,\n ...(result as object),\n key,\n }\n },\n})\n","import fileManagerFile from './fileManagerFile'\nimport fileManagerFiles from './fileManagerFiles'\nimport completeUpload from './completeUpload'\nimport {generateUploadCredentials} from './generateUploadCredentials'\nimport type {Resolver} from '@orion-js/resolvers'\n\n// Define a type for our resolvers object\ntype ResolversMap = Record<string, Resolver<any, any>>\n\nconst resolvers: ResolversMap = {\n fileManagerFile,\n fileManagerFiles,\n completeUpload,\n generateUploadCredentials,\n}\n\nexport default resolvers\n"],"mappings":"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","names":["resolvers_default","import_resolvers","import_mongodb","type","import_resolvers","_init","escapeString","import_resolvers","import_resolvers","AWS","resolvers_default"]}
package/dist/index.js CHANGED
@@ -61,10 +61,10 @@ import { modelResolver } from "@orion-js/resolvers";
61
61
  var genericType_default = modelResolver({
62
62
  returns: String,
63
63
  async resolve(file, viewer) {
64
- const { type } = file;
65
- if (!type) return "unknown";
66
- if (type.startsWith("image/")) return "image";
67
- if (type.startsWith("application/pdf")) return "pdf";
64
+ const { type: type2 } = file;
65
+ if (!type2) return "unknown";
66
+ if (type2.startsWith("image/")) return "image";
67
+ if (type2.startsWith("application/pdf")) return "pdf";
68
68
  return "unknown";
69
69
  }
70
70
  });
@@ -100,8 +100,62 @@ var resolvers_default = {
100
100
  genericType: genericType_default
101
101
  };
102
102
 
103
- // src/resolvers/generateImageInfo.ts
104
- import { isEmpty } from "lodash";
103
+ // ../../node_modules/.pnpm/rambdax@11.3.1/node_modules/rambdax/src/type.js
104
+ function type(input) {
105
+ if (input === null) {
106
+ return "Null";
107
+ } else if (input === void 0) {
108
+ return "Undefined";
109
+ } else if (Number.isNaN(input)) {
110
+ return "NaN";
111
+ }
112
+ const typeResult = Object.prototype.toString.call(input).slice(8, -1);
113
+ return typeResult === "AsyncFunction" ? "Promise" : typeResult;
114
+ }
115
+
116
+ // ../../node_modules/.pnpm/rambdax@11.3.1/node_modules/rambdax/src/_internals/isInteger.js
117
+ function _isInteger(n) {
118
+ return n << 0 === n;
119
+ }
120
+ var isInteger = Number.isInteger || _isInteger;
121
+
122
+ // ../../node_modules/.pnpm/rambdax@11.3.1/node_modules/rambdax/src/_internals/createPath.js
123
+ function createPath(path, delimiter = ".") {
124
+ return typeof path === "string" ? path.split(delimiter).map((x) => isInteger(x) ? Number(x) : x) : path;
125
+ }
126
+
127
+ // ../../node_modules/.pnpm/rambdax@11.3.1/node_modules/rambdax/src/pick.js
128
+ function pick(propsToPick, input) {
129
+ if (arguments.length === 1) return (_input) => pick(propsToPick, _input);
130
+ if (input === null || input === void 0) {
131
+ return void 0;
132
+ }
133
+ const keys = createPath(propsToPick, ",");
134
+ const willReturn = {};
135
+ let counter = 0;
136
+ while (counter < keys.length) {
137
+ if (keys[counter] in input) {
138
+ willReturn[keys[counter]] = input[keys[counter]];
139
+ }
140
+ counter++;
141
+ }
142
+ return willReturn;
143
+ }
144
+
145
+ // ../../node_modules/.pnpm/rambdax@11.3.1/node_modules/rambdax/src/isEmpty.js
146
+ function isEmpty(input) {
147
+ const inputType = type(input);
148
+ if (["Undefined", "NaN", "Number", "Null"].includes(inputType))
149
+ return false;
150
+ if (!input) return true;
151
+ if (inputType === "Object") {
152
+ return Object.keys(input).length === 0;
153
+ }
154
+ if (inputType === "Array") {
155
+ return input.length === 0;
156
+ }
157
+ return false;
158
+ }
105
159
 
106
160
  // src/File/resolvers/isImage.ts
107
161
  function isImage(image) {
@@ -151,9 +205,6 @@ async function generateImageInfo(file) {
151
205
  }
152
206
  }
153
207
 
154
- // src/File/schema.ts
155
- import { pick } from "lodash";
156
-
157
208
  // src/File/getFileData.ts
158
209
  import { createCollection } from "@orion-js/mongodb";
159
210
  var readOnlyCollection = createCollection({ name: "filemanager_files" });
@@ -238,7 +289,7 @@ _FileSchema_decorators = [TypedSchema({
238
289
  "resizedData",
239
290
  "colorsData"
240
291
  ];
241
- const data = pick(file, keys);
292
+ const data = pick(keys, file);
242
293
  return data;
243
294
  }
244
295
  })], __id_dec = [Prop({ type: "ID" })], _hash_dec = [Prop({ optional: true, type: "string" })], _externalUrl_dec = [Prop({ optional: true, type: "string" })], _key_dec = [Prop({ optional: true, type: "string" })], _bucket_dec = [Prop({ optional: true, type: "string" })], _name_dec = [Prop({ optional: true, type: "string" })], _type_dec = [Prop({ optional: true, type: "string" })], _size_dec = [Prop({ optional: true, type: "number" })], _status_dec = [Prop({ optional: true, type: "string" })], _createdBy_dec = [Prop({ optional: true, type: "string" })], _createdAt_dec = [Prop({ optional: true, type: Date })], _dimensions_dec = [Prop({ optional: true, type: FileSchemaDimensionsData })], _resizedData_dec = [Prop({ optional: true, type: FileSchemaResizeData })], _colorsData_dec = [Prop({ optional: true, type: FileSchemaColorsData })];
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/resolvers/fileManagerFile.ts","../src/Files/index.ts","../src/File/schema.ts","../src/File/resolvers/genericType.ts","../src/File/resolvers/url.ts","../src/credentials.ts","../src/File/resolvers/index.ts","../src/resolvers/generateImageInfo.ts","../src/File/resolvers/isImage.ts","../src/File/getFileData.ts","../src/resolvers/fileManagerFiles.ts","../src/resolvers/completeUpload.ts","../src/resolvers/generateUploadCredentials.ts","../src/resolvers/index.ts"],"sourcesContent":["import {createResolver} from '@orion-js/resolvers'\nimport {Files} from '../Files'\nimport {FileSchema} from '../File/schema'\n\nexport default createResolver({\n params: {\n fileId: {\n type: 'ID',\n },\n },\n returns: FileSchema,\n async resolve({fileId}) {\n return await Files.findOne(fileId)\n },\n})\n","import {Collection, createCollection} from '@orion-js/mongodb'\nimport {FileSchema} from '../File/schema'\n\nexport const Files: Collection<FileSchema> = createCollection<FileSchema>({\n name: 'filemanager_files',\n schema: FileSchema,\n indexes: [\n {\n keys: {\n key: 1,\n bucket: 1,\n },\n },\n {\n keys: {\n hash: 1,\n },\n },\n ],\n})\n","import {Prop, TypedSchema} from '@orion-js/typed-model'\nimport resolvers from './resolvers'\nimport {generateImageInfo} from '../resolvers/generateImageInfo'\nimport {pick} from 'lodash'\nimport {getFileData} from './getFileData'\n\n@TypedSchema()\nexport class FileSchemaResizeData {\n @Prop({optional: true, type: 'string'})\n thumbnailURL?: string // 100 height max\n\n @Prop({optional: true, type: 'string'})\n smallURL?: string // 300 height max\n\n @Prop({optional: true, type: 'string'})\n mediumURL?: string // 800 height max\n\n @Prop({optional: true, type: 'string'})\n largeURL?: string // 1400 height max\n\n @Prop({optional: true, type: 'string'})\n extraLargeURL?: string // 2400 height max\n}\n\n@TypedSchema()\nexport class FileSchemaDimensionsData {\n @Prop({optional: true, type: 'number'})\n width?: number\n\n @Prop({optional: true, type: 'number'})\n height?: number\n}\n\n@TypedSchema()\nexport class FileSchemaColorsData {\n @Prop({optional: true, type: 'string'})\n front?: string\n\n @Prop({optional: true, type: 'string'})\n background?: string\n\n @Prop({optional: true, type: 'string'})\n blurhash?: string\n}\n\n@TypedSchema({\n name: 'File',\n resolvers,\n // this is only called when its child\n async clean(value) {\n if (!value) return null\n const fileId = value._id\n const file = await getFileData(fileId)\n if (!file) return null\n\n await generateImageInfo(file)\n\n const keys = [\n '_id',\n 'hash',\n 'externalUrl',\n 'key',\n 'bucket',\n 'name',\n 'type',\n 'size',\n // 'status',\n // 'createdBy',\n // 'createdAt',\n 'dimensions',\n 'resizedData',\n 'colorsData',\n ]\n const data = pick(file, keys)\n return data\n },\n})\nexport class FileSchema {\n @Prop({type: 'ID'})\n _id: string\n\n @Prop({optional: true, type: 'string'})\n hash?: string\n\n @Prop({optional: true, type: 'string'})\n externalUrl?: string\n\n @Prop({optional: true, type: 'string'})\n key?: string\n\n @Prop({optional: true, type: 'string'})\n bucket?: string\n\n @Prop({optional: true, type: 'string'})\n name?: string\n\n @Prop({optional: true, type: 'string'})\n type?: string\n\n @Prop({optional: true, type: 'number'})\n size?: number\n\n @Prop({optional: true, type: 'string'})\n status?: string\n\n @Prop({optional: true, type: 'string'})\n createdBy?: string\n\n @Prop({optional: true, type: Date})\n createdAt?: Date\n\n @Prop({optional: true, type: FileSchemaDimensionsData})\n dimensions?: FileSchemaDimensionsData\n\n @Prop({optional: true, type: FileSchemaResizeData})\n resizedData?: FileSchemaResizeData\n\n @Prop({optional: true, type: FileSchemaColorsData})\n colorsData?: FileSchemaColorsData\n}\n","import {modelResolver} from '@orion-js/resolvers'\n\nexport default modelResolver({\n returns: String,\n async resolve(file, viewer) {\n const {type} = file\n if (!type) return 'unknown'\n if (type.startsWith('image/')) return 'image'\n if (type.startsWith('application/pdf')) return 'pdf'\n return 'unknown'\n },\n})\n","import {modelResolver} from '@orion-js/resolvers'\nimport {getAWSCredentials} from '../../credentials'\nimport {FileSchema} from '../schema'\n\nexport function getFileURL(file: FileSchema): string {\n if (file.externalUrl) return file.externalUrl\n const options = getAWSCredentials()\n if (options.getFileURL) return options.getFileURL(file)\n return `https://s3.amazonaws.com/${file.bucket}/${encodeURIComponent(file.key)}`\n}\n\nexport default modelResolver({\n returns: String,\n async resolve(file) {\n return getFileURL(file)\n },\n})\n","import {\n FileSchema,\n FileSchemaColorsData,\n FileSchemaDimensionsData,\n FileSchemaResizeData,\n} from './File/schema'\n\nexport interface FileManagerOptions {\n accessKeyId: string\n secretAccessKey: string\n region: string\n bucket: string\n canUpload: Function\n getFileURL?: Function\n basePath: string\n endpoint?: string\n s3ForcePathStyle?: boolean\n\n getImageDimensions?: (file: FileSchema) => Promise<FileSchemaDimensionsData>\n getResizedImages?: (file: FileSchema) => Promise<FileSchemaResizeData>\n getImageColors?: (file: FileSchema) => Promise<FileSchemaColorsData>\n}\n\nlet savedOptions: Partial<FileManagerOptions> = {}\n\nexport const setupFileManager = (options: FileManagerOptions) => {\n savedOptions = options\n}\n\n/**\n * @deprecated use getFileManagerOptions instead\n */\nexport const getAWSCredentials = () => savedOptions\n\nexport const getFileManagerOptions = () => savedOptions\n","import genericType from './genericType'\nimport url from './url'\n\nexport default {\n url,\n genericType,\n}\n","import {isEmpty} from 'lodash'\nimport {getFileManagerOptions} from '../credentials'\nimport {isImage} from '../File/resolvers/isImage'\nimport {FileSchema} from '../File/schema'\nimport {Files} from '../Files'\n\nexport async function generateImageInfo(file: FileSchema) {\n if (!file._id) return\n\n const options = getFileManagerOptions()\n\n if (isImage(file)) {\n if (!file.dimensions && options.getImageDimensions) {\n try {\n file.dimensions = await options.getImageDimensions(file)\n if (!isEmpty(file.dimensions)) {\n await Files.updateOne(file._id, {$set: {dimensions: file.dimensions}})\n }\n } catch (error) {\n console.error('Error getting image dimensions', error)\n }\n }\n\n if (!file.resizedData?.extraLargeURL && options.getResizedImages) {\n try {\n file.resizedData = await options.getResizedImages(file)\n if (!isEmpty(file.resizedData)) {\n await Files.updateOne(file._id, {$set: {resizedData: file.resizedData}})\n }\n } catch (error) {\n console.error('Error getting resized images', error)\n }\n }\n\n if (!file.colorsData && options.getImageColors) {\n try {\n file.colorsData = await options.getImageColors(file)\n if (!isEmpty(file.colorsData)) {\n await Files.updateOne(file._id, {$set: {colorsData: file.colorsData}})\n }\n } catch (error) {\n console.error('Error getting image colors', error)\n }\n }\n }\n}\n","import {FileSchema} from '../schema'\n\nexport function isImage(image: FileSchema): boolean {\n if (!image.type) {\n return true\n }\n const mime = image.type\n return mime.includes('image')\n}\n","import {createCollection} from '@orion-js/mongodb'\n\nconst readOnlyCollection = createCollection({name: 'filemanager_files'})\n\nexport async function getFileData(fileId: string) {\n const file = await readOnlyCollection.findOne({_id: fileId})\n return file\n}\n","import {paginatedResolver} from '@orion-js/paginated-mongodb'\nimport {Resolver} from '@orion-js/resolvers'\nimport escapeString from 'escape-string-regexp'\nimport {Files} from '../Files'\nimport {FileSchema} from '../File/schema'\n\nconst fileManagerFiles: Resolver = paginatedResolver({\n params: {\n filter: {\n type: String,\n optional: true,\n },\n },\n returns: FileSchema,\n async getCursor({filter}, viewer) {\n const query: any = {status: 'uploaded'}\n\n query.createdBy = viewer.userId\n\n if (filter) {\n query.name = {$regex: new RegExp(`^${escapeString(filter)}`)}\n }\n\n return Files.find(query)\n },\n})\n\nexport default fileManagerFiles\n","import {createResolver} from '@orion-js/resolvers'\nimport {Files} from '../Files'\nimport {generateImageInfo} from './generateImageInfo'\nimport {FileSchema} from '../File/schema'\n\nexport default createResolver({\n params: {\n fileId: {\n type: 'ID',\n },\n },\n returns: FileSchema,\n mutation: true,\n async resolve({fileId}, viewer) {\n const file = await Files.findOne({createdBy: viewer.userId, _id: fileId})\n await Files.updateOne(file, {$set: {status: 'uploaded'}})\n\n // mientras el usuario sigue editando el formulario, se generan los resizes y colores\n await generateImageInfo(file)\n\n return file\n },\n})\n","import {resolver} from '@orion-js/resolvers'\nimport {generateId, generateUUID} from '@orion-js/helpers'\nimport {createModel} from '@orion-js/models'\nimport AWS from 'aws-sdk'\nimport {getAWSCredentials} from '../credentials'\nimport {Files} from '../Files'\nimport type {Resolver} from '@orion-js/resolvers'\n\nexport const generateUploadCredentials: Resolver<any, any> = resolver({\n params: {\n name: {\n type: String,\n },\n size: {\n type: Number,\n },\n type: {\n type: String,\n },\n },\n returns: createModel({\n name: 'UploadCredentials',\n schema: {\n fileId: {\n type: 'ID',\n },\n url: {\n type: String,\n },\n fields: {\n type: 'blackbox',\n },\n key: {\n type: String,\n },\n },\n }),\n mutation: true,\n async resolve(params, viewer) {\n const {\n accessKeyId,\n secretAccessKey,\n region,\n bucket,\n endpoint,\n s3ForcePathStyle,\n canUpload,\n basePath,\n } = getAWSCredentials()\n const s3 = new AWS.S3({\n accessKeyId,\n secretAccessKey,\n region,\n endpoint,\n s3ForcePathStyle,\n })\n\n if (canUpload) {\n if (!(await canUpload(params, viewer))) return null\n }\n\n const key = `${basePath}/${generateId()}-${params.name}`\n\n const fileId = await Files.rawCollection.insertOne({\n _id: `ofl-${generateUUID()}`,\n key,\n bucket,\n name: params.name,\n type: params.type,\n size: params.size,\n status: 'uploading',\n createdBy: viewer.userId,\n createdAt: new Date(),\n })\n\n const result = await new Promise<AWS.S3.PresignedPost>((resolve, reject) => {\n s3.createPresignedPost(\n {\n Bucket: bucket,\n Conditions: [\n ['content-length-range', params.size, params.size],\n {'Content-Type': params.type},\n {'Cache-Control': 'public, max-age=31536000, immutable'},\n {Key: key},\n ],\n Fields: {\n key: key,\n 'Content-Type': params.type,\n 'Cache-Control': 'public, max-age=31536000, immutable',\n },\n },\n function (error, data) {\n if (error) reject(error)\n else resolve(data)\n },\n )\n })\n\n return {\n fileId,\n ...(result as object),\n key,\n }\n },\n})\n","import fileManagerFile from './fileManagerFile'\nimport fileManagerFiles from './fileManagerFiles'\nimport completeUpload from './completeUpload'\nimport {generateUploadCredentials} from './generateUploadCredentials'\nimport type {Resolver} from '@orion-js/resolvers'\n\n// Define a type for our resolvers object\ntype ResolversMap = Record<string, Resolver<any, any>>\n\nconst resolvers: ResolversMap = {\n fileManagerFile,\n fileManagerFiles,\n completeUpload,\n generateUploadCredentials,\n}\n\nexport default resolvers\n"],"mappings":"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","names":["createCollection","modelResolver","modelResolver","_init","createCollection","createResolver","createResolver","resolvers_default"]}
1
+ {"version":3,"sources":["../src/resolvers/fileManagerFile.ts","../src/Files/index.ts","../src/File/schema.ts","../src/File/resolvers/genericType.ts","../src/File/resolvers/url.ts","../src/credentials.ts","../src/File/resolvers/index.ts","../../../node_modules/.pnpm/rambdax@11.3.1/node_modules/rambdax/src/type.js","../../../node_modules/.pnpm/rambdax@11.3.1/node_modules/rambdax/src/_internals/isInteger.js","../../../node_modules/.pnpm/rambdax@11.3.1/node_modules/rambdax/src/_internals/createPath.js","../../../node_modules/.pnpm/rambdax@11.3.1/node_modules/rambdax/src/pick.js","../../../node_modules/.pnpm/rambdax@11.3.1/node_modules/rambdax/src/isEmpty.js","../src/File/resolvers/isImage.ts","../src/resolvers/generateImageInfo.ts","../src/File/getFileData.ts","../src/resolvers/fileManagerFiles.ts","../src/resolvers/completeUpload.ts","../src/resolvers/generateUploadCredentials.ts","../src/resolvers/index.ts"],"sourcesContent":["import {createResolver} from '@orion-js/resolvers'\nimport {Files} from '../Files'\nimport {FileSchema} from '../File/schema'\n\nexport default createResolver({\n params: {\n fileId: {\n type: 'ID',\n },\n },\n returns: FileSchema,\n async resolve({fileId}) {\n return await Files.findOne(fileId)\n },\n})\n","import {Collection, createCollection} from '@orion-js/mongodb'\nimport {FileSchema} from '../File/schema'\n\nexport const Files: Collection<FileSchema> = createCollection<FileSchema>({\n name: 'filemanager_files',\n schema: FileSchema,\n indexes: [\n {\n keys: {\n key: 1,\n bucket: 1,\n },\n },\n {\n keys: {\n hash: 1,\n },\n },\n ],\n})\n","import {Prop, TypedSchema} from '@orion-js/typed-model'\nimport resolvers from './resolvers'\nimport {generateImageInfo} from '../resolvers/generateImageInfo'\nimport {pick} from 'rambdax'\nimport {getFileData} from './getFileData'\n\n@TypedSchema()\nexport class FileSchemaResizeData {\n @Prop({optional: true, type: 'string'})\n thumbnailURL?: string // 100 height max\n\n @Prop({optional: true, type: 'string'})\n smallURL?: string // 300 height max\n\n @Prop({optional: true, type: 'string'})\n mediumURL?: string // 800 height max\n\n @Prop({optional: true, type: 'string'})\n largeURL?: string // 1400 height max\n\n @Prop({optional: true, type: 'string'})\n extraLargeURL?: string // 2400 height max\n}\n\n@TypedSchema()\nexport class FileSchemaDimensionsData {\n @Prop({optional: true, type: 'number'})\n width?: number\n\n @Prop({optional: true, type: 'number'})\n height?: number\n}\n\n@TypedSchema()\nexport class FileSchemaColorsData {\n @Prop({optional: true, type: 'string'})\n front?: string\n\n @Prop({optional: true, type: 'string'})\n background?: string\n\n @Prop({optional: true, type: 'string'})\n blurhash?: string\n}\n\n@TypedSchema({\n name: 'File',\n resolvers,\n // this is only called when its child\n async clean(value) {\n if (!value) return null\n const fileId = value._id\n const file = await getFileData(fileId)\n if (!file) return null\n\n await generateImageInfo(file)\n\n const keys = [\n '_id',\n 'hash',\n 'externalUrl',\n 'key',\n 'bucket',\n 'name',\n 'type',\n 'size',\n // 'status',\n // 'createdBy',\n // 'createdAt',\n 'dimensions',\n 'resizedData',\n 'colorsData',\n ]\n const data = pick(keys, file)\n return data\n },\n})\nexport class FileSchema {\n @Prop({type: 'ID'})\n _id: string\n\n @Prop({optional: true, type: 'string'})\n hash?: string\n\n @Prop({optional: true, type: 'string'})\n externalUrl?: string\n\n @Prop({optional: true, type: 'string'})\n key?: string\n\n @Prop({optional: true, type: 'string'})\n bucket?: string\n\n @Prop({optional: true, type: 'string'})\n name?: string\n\n @Prop({optional: true, type: 'string'})\n type?: string\n\n @Prop({optional: true, type: 'number'})\n size?: number\n\n @Prop({optional: true, type: 'string'})\n status?: string\n\n @Prop({optional: true, type: 'string'})\n createdBy?: string\n\n @Prop({optional: true, type: Date})\n createdAt?: Date\n\n @Prop({optional: true, type: FileSchemaDimensionsData})\n dimensions?: FileSchemaDimensionsData\n\n @Prop({optional: true, type: FileSchemaResizeData})\n resizedData?: FileSchemaResizeData\n\n @Prop({optional: true, type: FileSchemaColorsData})\n colorsData?: FileSchemaColorsData\n}\n","import {modelResolver} from '@orion-js/resolvers'\n\nexport default modelResolver({\n returns: String,\n async resolve(file, viewer) {\n const {type} = file\n if (!type) return 'unknown'\n if (type.startsWith('image/')) return 'image'\n if (type.startsWith('application/pdf')) return 'pdf'\n return 'unknown'\n },\n})\n","import {modelResolver} from '@orion-js/resolvers'\nimport {getAWSCredentials} from '../../credentials'\nimport {FileSchema} from '../schema'\n\nexport function getFileURL(file: FileSchema): string {\n if (file.externalUrl) return file.externalUrl\n const options = getAWSCredentials()\n if (options.getFileURL) return options.getFileURL(file)\n return `https://s3.amazonaws.com/${file.bucket}/${encodeURIComponent(file.key)}`\n}\n\nexport default modelResolver({\n returns: String,\n async resolve(file) {\n return getFileURL(file)\n },\n})\n","import {\n FileSchema,\n FileSchemaColorsData,\n FileSchemaDimensionsData,\n FileSchemaResizeData,\n} from './File/schema'\n\nexport interface FileManagerOptions {\n accessKeyId: string\n secretAccessKey: string\n region: string\n bucket: string\n canUpload: Function\n getFileURL?: Function\n basePath: string\n endpoint?: string\n s3ForcePathStyle?: boolean\n\n getImageDimensions?: (file: FileSchema) => Promise<FileSchemaDimensionsData>\n getResizedImages?: (file: FileSchema) => Promise<FileSchemaResizeData>\n getImageColors?: (file: FileSchema) => Promise<FileSchemaColorsData>\n}\n\nlet savedOptions: Partial<FileManagerOptions> = {}\n\nexport const setupFileManager = (options: FileManagerOptions) => {\n savedOptions = options\n}\n\n/**\n * @deprecated use getFileManagerOptions instead\n */\nexport const getAWSCredentials = () => savedOptions\n\nexport const getFileManagerOptions = () => savedOptions\n","import genericType from './genericType'\nimport url from './url'\n\nexport default {\n url,\n genericType,\n}\n","export function type(input){\n if (input === null){\n return 'Null'\n } else if (input === undefined){\n return 'Undefined'\n } else if (Number.isNaN(input)){\n return 'NaN'\n }\n const typeResult = Object.prototype.toString.call(input).slice(8, -1)\n\n return typeResult === 'AsyncFunction' ? 'Promise' : typeResult\n}\n","function _isInteger(n){\n return n << 0 === n\n}\n\nexport const isInteger = Number.isInteger || _isInteger\n\n/**\n * Check if `index` is integer even if it is a string.\n */\nexport const isIndexInteger = index => Number.isInteger(Number(index))\n","import { isInteger } from './isInteger.js'\n\nexport function createPath(path, delimiter = '.'){\n return typeof path === 'string' ?\n path.split(delimiter).map(x => isInteger(x) ? Number(x) : x) :\n path\n}\n","import { createPath } from './_internals/createPath.js'\n\nexport function pick(propsToPick, input){\n if (arguments.length === 1) return _input => pick(propsToPick, _input)\n\n if (input === null || input === undefined){\n return undefined\n }\n const keys = createPath(propsToPick, ',')\n const willReturn = {}\n let counter = 0\n\n while (counter < keys.length){\n if (keys[ counter ] in input){\n willReturn[ keys[ counter ] ] = input[ keys[ counter ] ]\n }\n counter++\n }\n\n return willReturn\n}\n","import { type } from './type.js'\n\nexport function isEmpty(input){\n const inputType = type(input)\n if ([ 'Undefined', 'NaN', 'Number', 'Null' ].includes(inputType))\n return false\n if (!input) return true\n\n if (inputType === 'Object'){\n return Object.keys(input).length === 0\n }\n\n if (inputType === 'Array'){\n return input.length === 0\n }\n\n return false\n}\n","import {FileSchema} from '../schema'\n\nexport function isImage(image: FileSchema): boolean {\n if (!image.type) {\n return true\n }\n const mime = image.type\n return mime.includes('image')\n}\n","import {isEmpty} from 'rambdax'\nimport {getFileManagerOptions} from '../credentials'\nimport {isImage} from '../File/resolvers/isImage'\nimport {FileSchema} from '../File/schema'\nimport {Files} from '../Files'\n\nexport async function generateImageInfo(file: FileSchema) {\n if (!file._id) return\n\n const options = getFileManagerOptions()\n\n if (isImage(file)) {\n if (!file.dimensions && options.getImageDimensions) {\n try {\n file.dimensions = await options.getImageDimensions(file)\n if (!isEmpty(file.dimensions)) {\n await Files.updateOne(file._id, {$set: {dimensions: file.dimensions}})\n }\n } catch (error) {\n console.error('Error getting image dimensions', error)\n }\n }\n\n if (!file.resizedData?.extraLargeURL && options.getResizedImages) {\n try {\n file.resizedData = await options.getResizedImages(file)\n if (!isEmpty(file.resizedData)) {\n await Files.updateOne(file._id, {$set: {resizedData: file.resizedData}})\n }\n } catch (error) {\n console.error('Error getting resized images', error)\n }\n }\n\n if (!file.colorsData && options.getImageColors) {\n try {\n file.colorsData = await options.getImageColors(file)\n if (!isEmpty(file.colorsData)) {\n await Files.updateOne(file._id, {$set: {colorsData: file.colorsData}})\n }\n } catch (error) {\n console.error('Error getting image colors', error)\n }\n }\n }\n}\n","import {createCollection} from '@orion-js/mongodb'\n\nconst readOnlyCollection = createCollection({name: 'filemanager_files'})\n\nexport async function getFileData(fileId: string) {\n const file = await readOnlyCollection.findOne({_id: fileId})\n return file\n}\n","import {paginatedResolver} from '@orion-js/paginated-mongodb'\nimport {Resolver} from '@orion-js/resolvers'\nimport escapeString from 'escape-string-regexp'\nimport {Files} from '../Files'\nimport {FileSchema} from '../File/schema'\n\nconst fileManagerFiles: Resolver = paginatedResolver({\n params: {\n filter: {\n type: String,\n optional: true,\n },\n },\n returns: FileSchema,\n async getCursor({filter}, viewer) {\n const query: any = {status: 'uploaded'}\n\n query.createdBy = viewer.userId\n\n if (filter) {\n query.name = {$regex: new RegExp(`^${escapeString(filter)}`)}\n }\n\n return Files.find(query)\n },\n})\n\nexport default fileManagerFiles\n","import {createResolver} from '@orion-js/resolvers'\nimport {Files} from '../Files'\nimport {generateImageInfo} from './generateImageInfo'\nimport {FileSchema} from '../File/schema'\n\nexport default createResolver({\n params: {\n fileId: {\n type: 'ID',\n },\n },\n returns: FileSchema,\n mutation: true,\n async resolve({fileId}, viewer) {\n const file = await Files.findOne({createdBy: viewer.userId, _id: fileId})\n await Files.updateOne(file, {$set: {status: 'uploaded'}})\n\n // mientras el usuario sigue editando el formulario, se generan los resizes y colores\n await generateImageInfo(file)\n\n return file\n },\n})\n","import {resolver} from '@orion-js/resolvers'\nimport {generateId, generateUUID} from '@orion-js/helpers'\nimport {createModel} from '@orion-js/models'\nimport AWS from 'aws-sdk'\nimport {getAWSCredentials} from '../credentials'\nimport {Files} from '../Files'\nimport type {Resolver} from '@orion-js/resolvers'\n\nexport const generateUploadCredentials: Resolver<any, any> = resolver({\n params: {\n name: {\n type: String,\n },\n size: {\n type: Number,\n },\n type: {\n type: String,\n },\n },\n returns: createModel({\n name: 'UploadCredentials',\n schema: {\n fileId: {\n type: 'ID',\n },\n url: {\n type: String,\n },\n fields: {\n type: 'blackbox',\n },\n key: {\n type: String,\n },\n },\n }),\n mutation: true,\n async resolve(params, viewer) {\n const {\n accessKeyId,\n secretAccessKey,\n region,\n bucket,\n endpoint,\n s3ForcePathStyle,\n canUpload,\n basePath,\n } = getAWSCredentials()\n const s3 = new AWS.S3({\n accessKeyId,\n secretAccessKey,\n region,\n endpoint,\n s3ForcePathStyle,\n })\n\n if (canUpload) {\n if (!(await canUpload(params, viewer))) return null\n }\n\n const key = `${basePath}/${generateId()}-${params.name}`\n\n const fileId = await Files.rawCollection.insertOne({\n _id: `ofl-${generateUUID()}`,\n key,\n bucket,\n name: params.name,\n type: params.type,\n size: params.size,\n status: 'uploading',\n createdBy: viewer.userId,\n createdAt: new Date(),\n })\n\n const result = await new Promise<AWS.S3.PresignedPost>((resolve, reject) => {\n s3.createPresignedPost(\n {\n Bucket: bucket,\n Conditions: [\n ['content-length-range', params.size, params.size],\n {'Content-Type': params.type},\n {'Cache-Control': 'public, max-age=31536000, immutable'},\n {Key: key},\n ],\n Fields: {\n key: key,\n 'Content-Type': params.type,\n 'Cache-Control': 'public, max-age=31536000, immutable',\n },\n },\n function (error, data) {\n if (error) reject(error)\n else resolve(data)\n },\n )\n })\n\n return {\n fileId,\n ...(result as object),\n key,\n }\n },\n})\n","import fileManagerFile from './fileManagerFile'\nimport fileManagerFiles from './fileManagerFiles'\nimport completeUpload from './completeUpload'\nimport {generateUploadCredentials} from './generateUploadCredentials'\nimport type {Resolver} from '@orion-js/resolvers'\n\n// Define a type for our resolvers object\ntype ResolversMap = Record<string, Resolver<any, any>>\n\nconst resolvers: ResolversMap = {\n fileManagerFile,\n fileManagerFiles,\n completeUpload,\n generateUploadCredentials,\n}\n\nexport default resolvers\n"],"mappings":"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","names":["createCollection","type","modelResolver","modelResolver","_init","createCollection","createResolver","createResolver","resolvers_default"]}
package/package.json CHANGED
@@ -1,29 +1,27 @@
1
1
  {
2
2
  "name": "@orion-js/file-manager",
3
- "version": "4.0.0-next.4",
3
+ "version": "4.0.0-next.6",
4
4
  "main": "./dist/index.cjs",
5
5
  "author": "nicolaslopezj",
6
6
  "license": "MIT",
7
7
  "dependencies": {
8
8
  "aws-sdk": "^2.1367.0",
9
9
  "escape-string-regexp": "^4.0.0",
10
- "lodash": "^4.17.21",
11
10
  "luxon": "^2.1.1",
12
- "@orion-js/helpers": "4.0.0-next.4",
13
- "@orion-js/resolvers": "4.0.0-next.4",
14
- "@orion-js/paginated-mongodb": "4.0.0-next.4",
15
- "@orion-js/schema": "4.0.0-next.4",
16
- "@orion-js/mongodb": "4.0.0-next.4",
17
- "@orion-js/typed-model": "4.0.0-next.4",
18
- "@orion-js/models": "4.0.0-next.4"
11
+ "@orion-js/helpers": "4.0.0-next.6",
12
+ "@orion-js/paginated-mongodb": "4.0.0-next.6",
13
+ "@orion-js/mongodb": "4.0.0-next.6",
14
+ "@orion-js/resolvers": "4.0.0-next.6",
15
+ "@orion-js/schema": "4.0.0-next.6",
16
+ "@orion-js/models": "4.0.0-next.6",
17
+ "@orion-js/typed-model": "4.0.0-next.6"
19
18
  },
20
19
  "devDependencies": {
21
20
  "@types/dot-object": "^2.1.2",
22
- "@types/lodash": "4.14.181",
23
- "typescript": "^5.4.5",
24
21
  "@types/node": "^18.0.0",
25
22
  "tsup": "^8.0.1",
26
- "vitest": "^1.1.0"
23
+ "typescript": "^5.4.5",
24
+ "vitest": "^3.0.8"
27
25
  },
28
26
  "publishConfig": {
29
27
  "access": "public"