@orion-js/file-manager 4.0.0-next.7 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -400,7 +400,7 @@ var fileManagerFile_default = (0, import_resolvers4.createResolver)({
400
400
  // src/resolvers/fileManagerFiles.ts
401
401
  var import_paginated_mongodb = require("@orion-js/paginated-mongodb");
402
402
  var import_escape_string_regexp = __toESM(require("escape-string-regexp"), 1);
403
- var fileManagerFiles = (0, import_paginated_mongodb.paginatedResolver)({
403
+ var fileManagerFiles = (0, import_paginated_mongodb.createPaginatedResolver)({
404
404
  params: {
405
405
  filter: {
406
406
  type: String,
@@ -440,35 +440,32 @@ var completeUpload_default = (0, import_resolvers5.createResolver)({
440
440
  // src/resolvers/generateUploadCredentials.ts
441
441
  var import_resolvers6 = require("@orion-js/resolvers");
442
442
  var import_helpers = require("@orion-js/helpers");
443
- var import_models = require("@orion-js/models");
444
443
  var import_aws_sdk = __toESM(require("aws-sdk"), 1);
445
- var generateUploadCredentials = (0, import_resolvers6.resolver)({
444
+ var import_schema5 = require("@orion-js/schema");
445
+ var generateUploadCredentials = (0, import_resolvers6.createResolver)({
446
446
  params: {
447
447
  name: {
448
- type: String
448
+ type: "string"
449
449
  },
450
450
  size: {
451
- type: Number
451
+ type: "number"
452
452
  },
453
453
  type: {
454
- type: String
454
+ type: "string"
455
455
  }
456
456
  },
457
- returns: (0, import_models.createModel)({
458
- name: "UploadCredentials",
459
- schema: {
460
- fileId: {
461
- type: "ID"
462
- },
463
- url: {
464
- type: String
465
- },
466
- fields: {
467
- type: "blackbox"
468
- },
469
- key: {
470
- type: String
471
- }
457
+ returns: (0, import_schema5.schemaWithName)("UploadCredentials", {
458
+ fileId: {
459
+ type: "ID"
460
+ },
461
+ url: {
462
+ type: "string"
463
+ },
464
+ fields: {
465
+ type: "blackbox"
466
+ },
467
+ key: {
468
+ type: "string"
472
469
  }
473
470
  }),
474
471
  mutation: true,
@@ -521,7 +518,7 @@ var generateUploadCredentials = (0, import_resolvers6.resolver)({
521
518
  "Cache-Control": "public, max-age=31536000, immutable"
522
519
  }
523
520
  },
524
- function(error, data) {
521
+ (error, data) => {
525
522
  if (error) reject(error);
526
523
  else resolve(data);
527
524
  }
@@ -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","../../../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"]}
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 {createCollection} from '@orion-js/mongodb'\nimport {FileSchema} from '../File/schema'\n\nexport const Files = createCollection({\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 {createPaginatedResolver} from '@orion-js/paginated-mongodb'\nimport escapeString from 'escape-string-regexp'\nimport {Files} from '../Files'\nimport {FileSchema} from '../File/schema'\n\nconst fileManagerFiles = createPaginatedResolver({\n params: {\n filter: {\n type: String,\n optional: true,\n },\n },\n returns: FileSchema as any,\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 {createResolver} from '@orion-js/resolvers'\nimport {generateId, generateUUID} from '@orion-js/helpers'\nimport AWS from 'aws-sdk'\nimport {getAWSCredentials} from '../credentials'\nimport {Files} from '../Files'\nimport {schemaWithName} from '@orion-js/schema'\n\nexport const generateUploadCredentials = createResolver({\n params: {\n name: {\n type: 'string',\n },\n size: {\n type: 'number',\n },\n type: {\n type: 'string',\n },\n },\n returns: schemaWithName('UploadCredentials', {\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 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 (error, data) => {\n if (error) reject(error)\n else resolve(data)\n },\n )\n })\n\n return {\n fileId,\n ...(result as any),\n key,\n }\n },\n})\n","import fileManagerFile from './fileManagerFile'\nimport fileManagerFiles from './fileManagerFiles'\nimport completeUpload from './completeUpload'\nimport {generateUploadCredentials} from './generateUploadCredentials'\nimport type {GlobalResolver} from '@orion-js/resolvers'\n\n// Define a type for our resolvers object\ntype ResolversMap = Record<string, GlobalResolver<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","import_schema","AWS","resolvers_default"]}
package/dist/index.d.cts CHANGED
@@ -1,7 +1,7 @@
1
- import { Resolver } from '@orion-js/resolvers';
2
- import { Collection } from '@orion-js/mongodb';
1
+ import { GlobalResolver } from '@orion-js/resolvers';
2
+ import * as _orion_js_mongodb from '@orion-js/mongodb';
3
3
 
4
- type ResolversMap = Record<string, Resolver<any, any>>;
4
+ type ResolversMap = Record<string, GlobalResolver<any, any>>;
5
5
  declare const resolvers: ResolversMap;
6
6
 
7
7
  declare class FileSchemaResizeData {
@@ -57,7 +57,7 @@ declare const setupFileManager: (options: FileManagerOptions) => void;
57
57
  */
58
58
  declare const getAWSCredentials: () => Partial<FileManagerOptions>;
59
59
 
60
- declare const Files: Collection<FileSchema>;
60
+ declare const Files: _orion_js_mongodb.Collection<FileSchema>;
61
61
 
62
62
  declare function getFileURL(file: FileSchema): string;
63
63
 
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- import { Resolver } from '@orion-js/resolvers';
2
- import { Collection } from '@orion-js/mongodb';
1
+ import { GlobalResolver } from '@orion-js/resolvers';
2
+ import * as _orion_js_mongodb from '@orion-js/mongodb';
3
3
 
4
- type ResolversMap = Record<string, Resolver<any, any>>;
4
+ type ResolversMap = Record<string, GlobalResolver<any, any>>;
5
5
  declare const resolvers: ResolversMap;
6
6
 
7
7
  declare class FileSchemaResizeData {
@@ -57,7 +57,7 @@ declare const setupFileManager: (options: FileManagerOptions) => void;
57
57
  */
58
58
  declare const getAWSCredentials: () => Partial<FileManagerOptions>;
59
59
 
60
- declare const Files: Collection<FileSchema>;
60
+ declare const Files: _orion_js_mongodb.Collection<FileSchema>;
61
61
 
62
62
  declare function getFileURL(file: FileSchema): string;
63
63
 
package/dist/index.js CHANGED
@@ -362,9 +362,9 @@ var fileManagerFile_default = createResolver({
362
362
  });
363
363
 
364
364
  // src/resolvers/fileManagerFiles.ts
365
- import { paginatedResolver } from "@orion-js/paginated-mongodb";
365
+ import { createPaginatedResolver } from "@orion-js/paginated-mongodb";
366
366
  import escapeString from "escape-string-regexp";
367
- var fileManagerFiles = paginatedResolver({
367
+ var fileManagerFiles = createPaginatedResolver({
368
368
  params: {
369
369
  filter: {
370
370
  type: String,
@@ -402,37 +402,34 @@ var completeUpload_default = createResolver2({
402
402
  });
403
403
 
404
404
  // src/resolvers/generateUploadCredentials.ts
405
- import { resolver } from "@orion-js/resolvers";
405
+ import { createResolver as createResolver3 } from "@orion-js/resolvers";
406
406
  import { generateId, generateUUID } from "@orion-js/helpers";
407
- import { createModel } from "@orion-js/models";
408
407
  import AWS from "aws-sdk";
409
- var generateUploadCredentials = resolver({
408
+ import { schemaWithName } from "@orion-js/schema";
409
+ var generateUploadCredentials = createResolver3({
410
410
  params: {
411
411
  name: {
412
- type: String
412
+ type: "string"
413
413
  },
414
414
  size: {
415
- type: Number
415
+ type: "number"
416
416
  },
417
417
  type: {
418
- type: String
418
+ type: "string"
419
419
  }
420
420
  },
421
- returns: createModel({
422
- name: "UploadCredentials",
423
- schema: {
424
- fileId: {
425
- type: "ID"
426
- },
427
- url: {
428
- type: String
429
- },
430
- fields: {
431
- type: "blackbox"
432
- },
433
- key: {
434
- type: String
435
- }
421
+ returns: schemaWithName("UploadCredentials", {
422
+ fileId: {
423
+ type: "ID"
424
+ },
425
+ url: {
426
+ type: "string"
427
+ },
428
+ fields: {
429
+ type: "blackbox"
430
+ },
431
+ key: {
432
+ type: "string"
436
433
  }
437
434
  }),
438
435
  mutation: true,
@@ -485,7 +482,7 @@ var generateUploadCredentials = resolver({
485
482
  "Cache-Control": "public, max-age=31536000, immutable"
486
483
  }
487
484
  },
488
- function(error, data) {
485
+ (error, data) => {
489
486
  if (error) reject(error);
490
487
  else resolve(data);
491
488
  }
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","../../../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"]}
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 {createCollection} from '@orion-js/mongodb'\nimport {FileSchema} from '../File/schema'\n\nexport const Files = createCollection({\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 {createPaginatedResolver} from '@orion-js/paginated-mongodb'\nimport escapeString from 'escape-string-regexp'\nimport {Files} from '../Files'\nimport {FileSchema} from '../File/schema'\n\nconst fileManagerFiles = createPaginatedResolver({\n params: {\n filter: {\n type: String,\n optional: true,\n },\n },\n returns: FileSchema as any,\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 {createResolver} from '@orion-js/resolvers'\nimport {generateId, generateUUID} from '@orion-js/helpers'\nimport AWS from 'aws-sdk'\nimport {getAWSCredentials} from '../credentials'\nimport {Files} from '../Files'\nimport {schemaWithName} from '@orion-js/schema'\n\nexport const generateUploadCredentials = createResolver({\n params: {\n name: {\n type: 'string',\n },\n size: {\n type: 'number',\n },\n type: {\n type: 'string',\n },\n },\n returns: schemaWithName('UploadCredentials', {\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 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 (error, data) => {\n if (error) reject(error)\n else resolve(data)\n },\n )\n })\n\n return {\n fileId,\n ...(result as any),\n key,\n }\n },\n})\n","import fileManagerFile from './fileManagerFile'\nimport fileManagerFiles from './fileManagerFiles'\nimport completeUpload from './completeUpload'\nimport {generateUploadCredentials} from './generateUploadCredentials'\nimport type {GlobalResolver} from '@orion-js/resolvers'\n\n// Define a type for our resolvers object\ntype ResolversMap = Record<string, GlobalResolver<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","createResolver","createResolver","resolvers_default"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@orion-js/file-manager",
3
- "version": "4.0.0-next.7",
3
+ "version": "4.0.0",
4
4
  "main": "./dist/index.cjs",
5
5
  "author": "nicolaslopezj",
6
6
  "license": "MIT",
@@ -8,13 +8,13 @@
8
8
  "aws-sdk": "^2.1367.0",
9
9
  "escape-string-regexp": "^4.0.0",
10
10
  "luxon": "^2.1.1",
11
- "@orion-js/helpers": "4.0.0-next.7",
12
- "@orion-js/resolvers": "4.0.0-next.7",
13
- "@orion-js/paginated-mongodb": "4.0.0-next.7",
14
- "@orion-js/mongodb": "4.0.0-next.7",
15
- "@orion-js/schema": "4.0.0-next.6",
16
- "@orion-js/typed-model": "4.0.0-next.7",
17
- "@orion-js/models": "4.0.0-next.7"
11
+ "@orion-js/mongodb": "4.0.0",
12
+ "@orion-js/models": "4.0.0",
13
+ "@orion-js/resolvers": "4.0.0",
14
+ "@orion-js/paginated-mongodb": "4.0.0",
15
+ "@orion-js/helpers": "4.0.0",
16
+ "@orion-js/schema": "4.0.0",
17
+ "@orion-js/typed-model": "4.0.0"
18
18
  },
19
19
  "devDependencies": {
20
20
  "@types/dot-object": "^2.1.2",