@orion-js/file-manager 4.2.10 → 4.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -4,7 +4,7 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
5
  var __getProtoOf = Object.getPrototypeOf;
6
6
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for("Symbol." + name);
7
+ var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : /* @__PURE__ */ Symbol.for("Symbol." + name);
8
8
  var __typeError = (msg) => {
9
9
  throw TypeError(msg);
10
10
  };
@@ -136,7 +136,7 @@ var resolvers_default = {
136
136
  genericType: genericType_default
137
137
  };
138
138
 
139
- // ../../node_modules/.pnpm/rambdax@11.3.1/node_modules/rambdax/src/type.js
139
+ // ../../node_modules/.bun/rambdax@11.3.1/node_modules/rambdax/src/type.js
140
140
  function type(input) {
141
141
  if (input === null) {
142
142
  return "Null";
@@ -149,18 +149,18 @@ function type(input) {
149
149
  return typeResult === "AsyncFunction" ? "Promise" : typeResult;
150
150
  }
151
151
 
152
- // ../../node_modules/.pnpm/rambdax@11.3.1/node_modules/rambdax/src/_internals/isInteger.js
152
+ // ../../node_modules/.bun/rambdax@11.3.1/node_modules/rambdax/src/_internals/isInteger.js
153
153
  function _isInteger(n) {
154
154
  return n << 0 === n;
155
155
  }
156
156
  var isInteger = Number.isInteger || _isInteger;
157
157
 
158
- // ../../node_modules/.pnpm/rambdax@11.3.1/node_modules/rambdax/src/_internals/createPath.js
158
+ // ../../node_modules/.bun/rambdax@11.3.1/node_modules/rambdax/src/_internals/createPath.js
159
159
  function createPath(path, delimiter = ".") {
160
160
  return typeof path === "string" ? path.split(delimiter).map((x) => isInteger(x) ? Number(x) : x) : path;
161
161
  }
162
162
 
163
- // ../../node_modules/.pnpm/rambdax@11.3.1/node_modules/rambdax/src/pick.js
163
+ // ../../node_modules/.bun/rambdax@11.3.1/node_modules/rambdax/src/pick.js
164
164
  function pick(propsToPick, input) {
165
165
  if (arguments.length === 1) return (_input) => pick(propsToPick, _input);
166
166
  if (input === null || input === void 0) {
@@ -178,7 +178,7 @@ function pick(propsToPick, input) {
178
178
  return willReturn;
179
179
  }
180
180
 
181
- // ../../node_modules/.pnpm/rambdax@11.3.1/node_modules/rambdax/src/isEmpty.js
181
+ // ../../node_modules/.bun/rambdax@11.3.1/node_modules/rambdax/src/isEmpty.js
182
182
  function isEmpty(input) {
183
183
  const inputType = type(input);
184
184
  if (["Undefined", "NaN", "Number", "Null"].includes(inputType))
@@ -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, FileManagerOptions} from './credentials'\nimport {Files} from './Files'\nimport {getFileURL} from './File/resolvers/url'\nimport {FileSchema} from './File/schema'\n\nexport {\n resolvers,\n FileManagerOptions,\n setupFileManager,\n getAWSCredentials,\n Files,\n getFileURL,\n FileSchema,\n}\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 {insertedId: fileId} = await (await Files.getRawCollection()).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"]}
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/.bun/rambdax@11.3.1/node_modules/rambdax/src/type.js","../../../node_modules/.bun/rambdax@11.3.1/node_modules/rambdax/src/_internals/isInteger.js","../../../node_modules/.bun/rambdax@11.3.1/node_modules/rambdax/src/_internals/createPath.js","../../../node_modules/.bun/rambdax@11.3.1/node_modules/rambdax/src/pick.js","../../../node_modules/.bun/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, FileManagerOptions} from './credentials'\nimport {Files} from './Files'\nimport {getFileURL} from './File/resolvers/url'\nimport {FileSchema} from './File/schema'\n\nexport {\n resolvers,\n FileManagerOptions,\n setupFileManager,\n getAWSCredentials,\n Files,\n getFileURL,\n FileSchema,\n}\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 {insertedId: fileId} = await (await Files.getRawCollection()).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.js CHANGED
@@ -1,7 +1,7 @@
1
1
  var __create = Object.create;
2
2
  var __defProp = Object.defineProperty;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for("Symbol." + name);
4
+ var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : /* @__PURE__ */ Symbol.for("Symbol." + name);
5
5
  var __typeError = (msg) => {
6
6
  throw TypeError(msg);
7
7
  };
@@ -100,7 +100,7 @@ var resolvers_default = {
100
100
  genericType: genericType_default
101
101
  };
102
102
 
103
- // ../../node_modules/.pnpm/rambdax@11.3.1/node_modules/rambdax/src/type.js
103
+ // ../../node_modules/.bun/rambdax@11.3.1/node_modules/rambdax/src/type.js
104
104
  function type(input) {
105
105
  if (input === null) {
106
106
  return "Null";
@@ -113,18 +113,18 @@ function type(input) {
113
113
  return typeResult === "AsyncFunction" ? "Promise" : typeResult;
114
114
  }
115
115
 
116
- // ../../node_modules/.pnpm/rambdax@11.3.1/node_modules/rambdax/src/_internals/isInteger.js
116
+ // ../../node_modules/.bun/rambdax@11.3.1/node_modules/rambdax/src/_internals/isInteger.js
117
117
  function _isInteger(n) {
118
118
  return n << 0 === n;
119
119
  }
120
120
  var isInteger = Number.isInteger || _isInteger;
121
121
 
122
- // ../../node_modules/.pnpm/rambdax@11.3.1/node_modules/rambdax/src/_internals/createPath.js
122
+ // ../../node_modules/.bun/rambdax@11.3.1/node_modules/rambdax/src/_internals/createPath.js
123
123
  function createPath(path, delimiter = ".") {
124
124
  return typeof path === "string" ? path.split(delimiter).map((x) => isInteger(x) ? Number(x) : x) : path;
125
125
  }
126
126
 
127
- // ../../node_modules/.pnpm/rambdax@11.3.1/node_modules/rambdax/src/pick.js
127
+ // ../../node_modules/.bun/rambdax@11.3.1/node_modules/rambdax/src/pick.js
128
128
  function pick(propsToPick, input) {
129
129
  if (arguments.length === 1) return (_input) => pick(propsToPick, _input);
130
130
  if (input === null || input === void 0) {
@@ -142,7 +142,7 @@ function pick(propsToPick, input) {
142
142
  return willReturn;
143
143
  }
144
144
 
145
- // ../../node_modules/.pnpm/rambdax@11.3.1/node_modules/rambdax/src/isEmpty.js
145
+ // ../../node_modules/.bun/rambdax@11.3.1/node_modules/rambdax/src/isEmpty.js
146
146
  function isEmpty(input) {
147
147
  const inputType = type(input);
148
148
  if (["Undefined", "NaN", "Number", "Null"].includes(inputType))
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 {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 {insertedId: fileId} = await (await Files.getRawCollection()).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"]}
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/.bun/rambdax@11.3.1/node_modules/rambdax/src/type.js","../../../node_modules/.bun/rambdax@11.3.1/node_modules/rambdax/src/_internals/isInteger.js","../../../node_modules/.bun/rambdax@11.3.1/node_modules/rambdax/src/_internals/createPath.js","../../../node_modules/.bun/rambdax@11.3.1/node_modules/rambdax/src/pick.js","../../../node_modules/.bun/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 {insertedId: fileId} = await (await Files.getRawCollection()).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,31 +1,37 @@
1
1
  {
2
2
  "name": "@orion-js/file-manager",
3
- "version": "4.2.10",
3
+ "version": "4.3.1",
4
4
  "main": "./dist/index.cjs",
5
5
  "author": "nicolaslopezj",
6
6
  "license": "MIT",
7
+ "scripts": {
8
+ "test": "bun test",
9
+ "prepare": "bun run build",
10
+ "clean": "rm -rf ./dist",
11
+ "build": "tsup",
12
+ "dev": "tsup --watch"
13
+ },
7
14
  "dependencies": {
15
+ "@orion-js/helpers": "4.3.0",
16
+ "@orion-js/models": "4.3.0",
17
+ "@orion-js/paginated-mongodb": "4.3.1",
18
+ "@orion-js/resolvers": "4.3.0",
19
+ "@orion-js/schema": "4.3.0",
20
+ "@orion-js/typed-model": "4.3.0",
8
21
  "aws-sdk": "^2.1367.0",
9
22
  "escape-string-regexp": "^4.0.0",
10
- "luxon": "^2.1.1",
11
- "@orion-js/helpers": "4.2.0",
12
- "@orion-js/resolvers": "4.2.1",
13
- "@orion-js/models": "4.2.1",
14
- "@orion-js/typed-model": "4.2.1",
15
- "@orion-js/paginated-mongodb": "4.2.10",
16
- "@orion-js/schema": "4.2.1"
23
+ "luxon": "^2.1.1"
17
24
  },
18
25
  "peerDependencies": {
19
- "@orion-js/logger": "4.2.0",
20
- "@orion-js/mongodb": "4.2.10"
26
+ "@orion-js/logger": "4.3.0",
27
+ "@orion-js/mongodb": "4.3.0"
21
28
  },
22
29
  "devDependencies": {
30
+ "@orion-js/mongodb": "4.3.0",
23
31
  "@types/dot-object": "^2.1.2",
24
32
  "@types/node": "^18.0.0",
25
33
  "tsup": "^8.0.1",
26
- "typescript": "^5.4.5",
27
- "vitest": "^3.0.8",
28
- "@orion-js/mongodb": "4.2.10"
34
+ "typescript": "^5.4.5"
29
35
  },
30
36
  "publishConfig": {
31
37
  "access": "public"
@@ -41,12 +47,5 @@
41
47
  },
42
48
  "files": [
43
49
  "dist"
44
- ],
45
- "scripts": {
46
- "test": "vitest run",
47
- "clean": "rm -rf ./dist",
48
- "build": "tsup",
49
- "upgrade-interactive": "pnpm upgrade --interactive",
50
- "dev": "tsup --watch"
51
- }
52
- }
50
+ ]
51
+ }
package/LICENSE DELETED
@@ -1,21 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2022 Orionjs Team
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.