From a711c46e03229d447cde207b30113198f06e91de Mon Sep 17 00:00:00 2001 From: Mitchell Hamilton Date: Wed, 17 Aug 2022 12:28:21 +1000 Subject: [PATCH] Update graphql-upload to 15.0.2 (#7803) --- .changeset/chatty-needles-eat.md | 5 - .changeset/fast-pens-learn.md | 6 + packages/cloudinary/package.json | 2 +- packages/cloudinary/src/index.ts | 8 +- packages/cloudinary/src/test-fixtures.skip.ts | 5 +- packages/core/package.json | 3 +- packages/core/src/fields/types/file/index.ts | 13 +- .../fields/types/file/tests/test-fixtures.ts | 3 +- packages/core/src/fields/types/image/index.ts | 15 +- .../fields/types/image/tests/test-fixtures.ts | 3 +- .../src/lib/server/createExpressServer.ts | 3 +- .../src/types/schema/graphql-ts-schema.ts | 13 +- .../api-tests/fields/image-file-crud.test.ts | 3 +- tests/api-tests/package.json | 2 +- yarn.lock | 139 +++++------------- 15 files changed, 85 insertions(+), 138 deletions(-) delete mode 100644 .changeset/chatty-needles-eat.md create mode 100644 .changeset/fast-pens-learn.md diff --git a/.changeset/chatty-needles-eat.md b/.changeset/chatty-needles-eat.md deleted file mode 100644 index 840925e3ca0..00000000000 --- a/.changeset/chatty-needles-eat.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@keystone-6/core': patch ---- - -Pins `@types/graphql-upload` to `8.0.7` diff --git a/.changeset/fast-pens-learn.md b/.changeset/fast-pens-learn.md new file mode 100644 index 00000000000..834f782ee53 --- /dev/null +++ b/.changeset/fast-pens-learn.md @@ -0,0 +1,6 @@ +--- +'@keystone-6/cloudinary': patch +'@keystone-6/core': patch +--- + +Updates `graphql-upload` to `15.0.2` diff --git a/packages/cloudinary/package.json b/packages/cloudinary/package.json index 43bc9dc270f..fc43d80bcf1 100644 --- a/packages/cloudinary/package.json +++ b/packages/cloudinary/package.json @@ -13,7 +13,6 @@ "@types/react": "^18.0.9", "cloudinary": "^1.27.1", "cuid": "^2.1.8", - "graphql-upload": "^13.0.0", "react": "^18.1.0" }, "peerDependencies": { @@ -21,6 +20,7 @@ }, "devDependencies": { "@keystone-6/core": "^2.1.0", + "graphql-upload": "^15.0.2", "mime": "^3.0.0" }, "engines": { diff --git a/packages/cloudinary/src/index.ts b/packages/cloudinary/src/index.ts index 3fcc55fe4e6..466006b9e38 100644 --- a/packages/cloudinary/src/index.ts +++ b/packages/cloudinary/src/index.ts @@ -6,7 +6,6 @@ import { jsonFieldTypePolyfilledForSQLite, } from '@keystone-6/core/types'; import { graphql } from '@keystone-6/core'; -import { FileUpload } from 'graphql-upload'; import cuid from 'cuid'; import cloudinary from 'cloudinary'; import { CloudinaryAdapter } from './cloudinary'; @@ -116,8 +115,9 @@ export const cloudinaryImage = throw Error("isIndexed: 'unique' is not a supported option for field type cloudinaryImage"); } const adapter = new CloudinaryAdapter(cloudinary); + const inputArg = graphql.arg({ type: graphql.Upload }); const resolveInput = async ( - uploadData: Promise | undefined | null + uploadData: graphql.InferValueFromArg ): Promise => { if (uploadData === null) { return meta.provider === 'postgresql' || meta.provider === 'mysql' ? 'DbNull' : null; @@ -149,8 +149,8 @@ export const cloudinaryImage = { ...config, input: { - create: { arg: graphql.arg({ type: graphql.Upload }), resolve: resolveInput }, - update: { arg: graphql.arg({ type: graphql.Upload }), resolve: resolveInput }, + create: { arg: inputArg, resolve: resolveInput }, + update: { arg: inputArg, resolve: resolveInput }, }, output: graphql.field({ type: outputType, diff --git a/packages/cloudinary/src/test-fixtures.skip.ts b/packages/cloudinary/src/test-fixtures.skip.ts index 0efb637dde8..3437e9d2937 100644 --- a/packages/cloudinary/src/test-fixtures.skip.ts +++ b/packages/cloudinary/src/test-fixtures.skip.ts @@ -1,6 +1,7 @@ import fs from 'fs'; import mime from 'mime'; -import { FileUpload, Upload } from 'graphql-upload'; +// @ts-ignore +import Upload from 'graphql-upload/Upload.js'; import cloudinary from 'cloudinary'; import { cloudinaryImage } from './index'; @@ -22,7 +23,7 @@ const prepareFile = (_filePath: string) => { mimetype: mime.getType(filePath), encoding: 'utf-8', }); - return upload as Upload & { file: FileUpload }; + return upload; }; // Configurations diff --git a/packages/core/package.json b/packages/core/package.json index cc256a98e25..19663a9a79f 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -62,7 +62,6 @@ "@types/cookie": "^0.5.0", "@types/express": "^4.17.13", "@types/fs-extra": "^9.0.13", - "@types/graphql-upload": "8.0.7", "@types/inflection": "^1.13.0", "@types/node-fetch": "^2.5.12", "@types/pluralize": "^0.0.29", @@ -98,7 +97,7 @@ "fs-extra": "^10.0.0", "graphql": "^15.8.0", "graphql-type-json": "^0.3.2", - "graphql-upload": "^13.0.0", + "graphql-upload": "^15.0.2", "image-size": "^1.0.0", "image-type": "^4.1.0", "inflection": "^1.13.1", diff --git a/packages/core/src/fields/types/file/index.ts b/packages/core/src/fields/types/file/index.ts index 04c9520ed31..4f5c1783d27 100644 --- a/packages/core/src/fields/types/file/index.ts +++ b/packages/core/src/fields/types/file/index.ts @@ -1,4 +1,3 @@ -import { FileUpload } from 'graphql-upload'; import { fieldType, FieldTypeFunc, @@ -21,7 +20,7 @@ const FileFieldInput = graphql.inputObject({ }, }); -type FileFieldInputType = undefined | null | { upload: Promise }; +const inputArg = graphql.arg({ type: FileFieldInput }); const FileFieldOutput = graphql.object()({ name: 'FileFieldOutput', @@ -37,7 +36,11 @@ const FileFieldOutput = graphql.object()({ }, }); -async function inputResolver(storage: string, data: FileFieldInputType, context: KeystoneContext) { +async function inputResolver( + storage: string, + data: graphql.InferValueFromArg, + context: KeystoneContext +) { if (data === null || data === undefined) { return { filename: data, filesize: data }; } @@ -95,11 +98,11 @@ export const file = }, input: { create: { - arg: graphql.arg({ type: FileFieldInput }), + arg: inputArg, resolve: (data, context) => inputResolver(config.storage, data, context), }, update: { - arg: graphql.arg({ type: FileFieldInput }), + arg: inputArg, resolve: (data, context) => inputResolver(config.storage, data, context), }, }, diff --git a/packages/core/src/fields/types/file/tests/test-fixtures.ts b/packages/core/src/fields/types/file/tests/test-fixtures.ts index bb334872daf..041326ccf53 100644 --- a/packages/core/src/fields/types/file/tests/test-fixtures.ts +++ b/packages/core/src/fields/types/file/tests/test-fixtures.ts @@ -1,7 +1,8 @@ import path from 'path'; import os from 'os'; import fs from 'fs-extra'; -import { Upload } from 'graphql-upload'; +// @ts-ignore +import Upload from 'graphql-upload/Upload.js'; import mime from 'mime'; import { file } from '..'; import { KeystoneConfig } from '../../../../types/config'; diff --git a/packages/core/src/fields/types/image/index.ts b/packages/core/src/fields/types/image/index.ts index 4e8690fba68..cc67b43d157 100644 --- a/packages/core/src/fields/types/image/index.ts +++ b/packages/core/src/fields/types/image/index.ts @@ -1,4 +1,3 @@ -import { FileUpload } from 'graphql-upload'; import { BaseListTypeInfo, fieldType, @@ -28,6 +27,8 @@ const ImageFieldInput = graphql.inputObject({ }, }); +const inputArg = graphql.arg({ type: ImageFieldInput }); + const ImageFieldOutput = graphql.object()({ name: 'ImageFieldOutput', fields: { @@ -45,9 +46,11 @@ const ImageFieldOutput = graphql.object()({ }, }); -type ImageFieldInputType = undefined | null | { upload: Promise }; - -async function inputResolver(storage: string, data: ImageFieldInputType, context: KeystoneContext) { +async function inputResolver( + storage: string, + data: graphql.InferValueFromArg, + context: KeystoneContext +) { if (data === null || data === undefined) { return { extension: data, filesize: data, height: data, id: data, width: data }; } @@ -118,11 +121,11 @@ export const image = }, input: { create: { - arg: graphql.arg({ type: ImageFieldInput }), + arg: inputArg, resolve: (data, context) => inputResolver(config.storage, data, context), }, update: { - arg: graphql.arg({ type: ImageFieldInput }), + arg: inputArg, resolve: (data, context) => inputResolver(config.storage, data, context), }, }, diff --git a/packages/core/src/fields/types/image/tests/test-fixtures.ts b/packages/core/src/fields/types/image/tests/test-fixtures.ts index 55458a046ba..223ab9f22b2 100644 --- a/packages/core/src/fields/types/image/tests/test-fixtures.ts +++ b/packages/core/src/fields/types/image/tests/test-fixtures.ts @@ -1,7 +1,8 @@ import path from 'path'; import os from 'os'; import fs from 'fs-extra'; -import { Upload } from 'graphql-upload'; +// @ts-ignore +import Upload from 'graphql-upload/Upload.js'; import mime from 'mime'; import { KeystoneConfig } from '../../../../types'; import { image } from '..'; diff --git a/packages/core/src/lib/server/createExpressServer.ts b/packages/core/src/lib/server/createExpressServer.ts index eda4b41c45d..21e586a2e1e 100644 --- a/packages/core/src/lib/server/createExpressServer.ts +++ b/packages/core/src/lib/server/createExpressServer.ts @@ -2,7 +2,8 @@ import { createServer, IncomingMessage, Server, ServerResponse } from 'http'; import cors, { CorsOptions } from 'cors'; import express from 'express'; import { GraphQLSchema } from 'graphql'; -import { graphqlUploadExpress } from 'graphql-upload'; +// @ts-ignore +import graphqlUploadExpress from 'graphql-upload/graphqlUploadExpress.js'; import { ApolloServer } from 'apollo-server-express'; import type { KeystoneConfig, CreateContext, SessionStrategy, GraphQLConfig } from '../../types'; import { createSessionContext } from '../../session'; diff --git a/packages/core/src/types/schema/graphql-ts-schema.ts b/packages/core/src/types/schema/graphql-ts-schema.ts index 191d073f3ce..f178b96cc82 100644 --- a/packages/core/src/types/schema/graphql-ts-schema.ts +++ b/packages/core/src/types/schema/graphql-ts-schema.ts @@ -1,9 +1,8 @@ +import type { ReadStream } from 'fs'; import * as graphqlTsSchema from '@graphql-ts/schema'; import { GraphQLJSON } from 'graphql-type-json'; -// this is imported from a specific path so that we don't import busboy here because webpack doesn't like bundling it // @ts-ignore -import GraphQLUpload from 'graphql-upload/public/GraphQLUpload.js'; -import type { FileUpload } from 'graphql-upload'; +import GraphQLUpload from 'graphql-upload/GraphQLUpload.js'; import { GraphQLError, GraphQLScalarType } from 'graphql'; import { Decimal as DecimalValue } from 'decimal.js'; import { KeystoneContext } from '../context'; @@ -45,6 +44,14 @@ export { field, fields, interface, interfaceField, object, union } from './schem export type Context = KeystoneContext; export const JSON = graphqlTsSchema.graphql.scalar(GraphQLJSON); + +type FileUpload = { + filename: string; + mimetype: string; + encoding: string; + createReadStream(): ReadStream; +}; + export const Upload = graphqlTsSchema.graphql.scalar>(GraphQLUpload); // - Decimal.js throws on invalid inputs diff --git a/tests/api-tests/fields/image-file-crud.test.ts b/tests/api-tests/fields/image-file-crud.test.ts index 5cf32f19ec2..7cad4275750 100644 --- a/tests/api-tests/fields/image-file-crud.test.ts +++ b/tests/api-tests/fields/image-file-crud.test.ts @@ -3,7 +3,8 @@ import { createHash } from 'crypto'; import os from 'os'; import fs from 'fs-extra'; import fetch from 'node-fetch'; -import { Upload } from 'graphql-upload'; +// @ts-ignore +import Upload from 'graphql-upload/Upload.js'; import mime from 'mime'; import { file, text, image } from '@keystone-6/core/fields'; import { list } from '@keystone-6/core'; diff --git a/tests/api-tests/package.json b/tests/api-tests/package.json index 0795b6f955a..20f1fa5d2fe 100644 --- a/tests/api-tests/package.json +++ b/tests/api-tests/package.json @@ -23,7 +23,7 @@ "fs-extra": "^10.0.0", "globby": "^11.0.4", "graphql": "^15.8.0", - "graphql-upload": "^13.0.0", + "graphql-upload": "^15.0.2", "memoize-one": "^6.0.0", "mime": "^3.0.0", "node-fetch": "^2.6.7", diff --git a/yarn.lock b/yarn.lock index 21fedb7b3a6..bd3fbd361c1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3928,7 +3928,7 @@ resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== -"@types/accepts@*", "@types/accepts@^1.3.5": +"@types/accepts@^1.3.5": version "1.3.5" resolved "https://registry.yarnpkg.com/@types/accepts/-/accepts-1.3.5.tgz#c34bec115cfc746e04fe5a059df4ce7e7b391575" integrity sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ== @@ -4009,6 +4009,13 @@ "@types/connect" "*" "@types/node" "*" +"@types/busboy@^1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@types/busboy/-/busboy-1.5.0.tgz#62681556cbbd2afc8d2efa6bafaa15602f0838b9" + integrity sha512-ncOOhwmyFDW76c/Tuvv9MA9VGYUCn8blzyWmzYELcNGDb0WXWLSmFi7hJq25YdRBYJrmMBB5jZZwUjlJe9HCjQ== + dependencies: + "@types/node" "*" + "@types/bytes@^3.1.1": version "3.1.1" resolved "https://registry.yarnpkg.com/@types/bytes/-/bytes-3.1.1.tgz#67a876422e660dc4c10a27f3e5bcfbd5455f01d0" @@ -4021,11 +4028,6 @@ dependencies: "@types/node" "*" -"@types/content-disposition@*": - version "0.5.5" - resolved "https://registry.yarnpkg.com/@types/content-disposition/-/content-disposition-0.5.5.tgz#650820e95de346e1f84e30667d168c8fd25aa6e3" - integrity sha512-v6LCdKfK6BwcqMo+wYW05rLS12S0ZO0Fl4w1h4aaZMD7bqT3gVUns6FvLJKGZHQmYn3SX55JWGpziwJRwVgutA== - "@types/cookie@^0.5.0": version "0.5.1" resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.5.1.tgz#b29aa1f91a59f35e29ff8f7cb24faf1a3a750554" @@ -4036,16 +4038,6 @@ resolved "https://registry.yarnpkg.com/@types/cookiejar/-/cookiejar-2.1.2.tgz#66ad9331f63fe8a3d3d9d8c6e3906dd10f6446e8" integrity sha512-t73xJJrvdTjXrn4jLS9VSGRbz0nUY3cl2DMGDU48lKl+HR9dbbjW2A9r3g40VA++mQpy6uuHg33gy7du2BKpog== -"@types/cookies@*": - version "0.7.7" - resolved "https://registry.yarnpkg.com/@types/cookies/-/cookies-0.7.7.tgz#7a92453d1d16389c05a5301eef566f34946cfd81" - integrity sha512-h7BcvPUogWbKCzBR2lY4oqaZbO3jXZksexYJVFvkrFeLgbZjQkU4x8pRq6eg2MHXQhY0McQdqmmsxRWlVAHooA== - dependencies: - "@types/connect" "*" - "@types/express" "*" - "@types/keygrip" "*" - "@types/node" "*" - "@types/cors@2.8.12": version "2.8.12" resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.12.tgz#6b2c510a7ad7039e98e7b8d3d6598f4359e5c080" @@ -4114,7 +4106,7 @@ "@types/qs" "*" "@types/range-parser" "*" -"@types/express@*", "@types/express@4.17.13", "@types/express@^4.17.13": +"@types/express@4.17.13", "@types/express@^4.17.13": version "4.17.13" resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.13.tgz#a76e2995728999bab51a33fabce1d705a3709034" integrity sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA== @@ -4134,13 +4126,6 @@ resolved "https://registry.yarnpkg.com/@types/facepaint/-/facepaint-1.2.2.tgz#1432acb1b09696216861a457a037186afeb95346" integrity sha512-Xl9tAINsQL1s0TdXG5IiG75kZrxem5esbnKJF5gQgFel92OdS5zLtFYnbBw6fBruCMPYJQ9mK5pVmSsMl3Puug== -"@types/fs-capacitor@*": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@types/fs-capacitor/-/fs-capacitor-2.0.0.tgz#17113e25817f584f58100fb7a08eed288b81956e" - integrity sha512-FKVPOCFbhCvZxpVAMhdBdTfVfXUpsh15wFHgqOKxh9N9vzWZVuWCSijZ5T4U34XYNnuj2oduh6xcs1i+LPI+BQ== - dependencies: - "@types/node" "*" - "@types/fs-extra@^9.0.13": version "9.0.13" resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.13.tgz#7594fbae04fe7f1918ce8b3d213f74ff44ac1f45" @@ -4168,16 +4153,6 @@ dependencies: "@types/node" "*" -"@types/graphql-upload@8.0.7": - version "8.0.7" - resolved "https://registry.yarnpkg.com/@types/graphql-upload/-/graphql-upload-8.0.7.tgz#71dd5d4a8d9ddb598df91298d6e98a943061b255" - integrity sha512-uXhInuUY/W6n9a+PdCt9vcZ7z2m+NzByBJFvvDM+46pljqEwXXnIAjsEI1Dka2FKRTGthetm/imN//RhtEEYSA== - dependencies: - "@types/express" "*" - "@types/fs-capacitor" "*" - "@types/koa" "*" - graphql "^15.3.0" - "@types/gtag.js@^0.0.10": version "0.0.10" resolved "https://registry.yarnpkg.com/@types/gtag.js/-/gtag.js-0.0.10.tgz#ac90d9b79c00daac447725a4b78ec1c398796760" @@ -4190,16 +4165,6 @@ dependencies: "@types/unist" "*" -"@types/http-assert@*": - version "1.5.3" - resolved "https://registry.yarnpkg.com/@types/http-assert/-/http-assert-1.5.3.tgz#ef8e3d1a8d46c387f04ab0f2e8ab8cb0c5078661" - integrity sha512-FyAOrDuQmBi8/or3ns4rwPno7/9tJTijVW6aQQjK02+kOQ8zmoNg2XJtAuQhvQcy1ASJq38wirX5//9J1EqoUA== - -"@types/http-errors@*": - version "1.8.2" - resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-1.8.2.tgz#7315b4c4c54f82d13fa61c228ec5c2ea5cc9e0e1" - integrity sha512-EqX+YQxINb+MeXaIqYDASb6U6FCHbWjkj4a1CKDBks3d/QiB2+PqBLyO72vLDgAO1wUI4O+9gweRcQK11bTL/w== - "@types/inflection@^1.13.0": version "1.13.0" resolved "https://registry.yarnpkg.com/@types/inflection/-/inflection-1.13.0.tgz#d641b773317f2e71e5c7c80809057e3101c4b2bf" @@ -4268,32 +4233,6 @@ resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== -"@types/keygrip@*": - version "1.0.2" - resolved "https://registry.yarnpkg.com/@types/keygrip/-/keygrip-1.0.2.tgz#513abfd256d7ad0bf1ee1873606317b33b1b2a72" - integrity sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw== - -"@types/koa-compose@*": - version "3.2.5" - resolved "https://registry.yarnpkg.com/@types/koa-compose/-/koa-compose-3.2.5.tgz#85eb2e80ac50be95f37ccf8c407c09bbe3468e9d" - integrity sha512-B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ== - dependencies: - "@types/koa" "*" - -"@types/koa@*": - version "2.13.5" - resolved "https://registry.yarnpkg.com/@types/koa/-/koa-2.13.5.tgz#64b3ca4d54e08c0062e89ec666c9f45443b21a61" - integrity sha512-HSUOdzKz3by4fnqagwthW/1w/yJspTgppyyalPVbgZf8jQWvdIXcVW5h2DGtw4zYntOaeRGx49r1hxoPWrD4aA== - dependencies: - "@types/accepts" "*" - "@types/content-disposition" "*" - "@types/cookies" "*" - "@types/http-assert" "*" - "@types/http-errors" "*" - "@types/keygrip" "*" - "@types/koa-compose" "*" - "@types/node" "*" - "@types/linkify-it@*": version "3.0.2" resolved "https://registry.yarnpkg.com/@types/linkify-it/-/linkify-it-3.0.2.tgz#fd2cd2edbaa7eaac7e7f3c1748b52a19143846c9" @@ -4413,6 +4352,11 @@ resolved "https://registry.yarnpkg.com/@types/normalize-path/-/normalize-path-3.0.0.tgz#bb5c46cab77b93350b4cf8d7ff1153f47189ae31" integrity sha512-Nd8y/5t/7CRakPYiyPzr/IAfYusy1FkcZYFEAcoMZkwpJv2n4Wm+olW+e7xBdHEXhOnWdG9ddbar0gqZWS4x5Q== +"@types/object-path@^0.11.1": + version "0.11.1" + resolved "https://registry.yarnpkg.com/@types/object-path/-/object-path-0.11.1.tgz#eea5b357518597fc9c0a067ea3147f599fc1514f" + integrity sha512-219LSCO9HPcoXcRTC6DbCs0FRhZgBnEMzf16RRqkT40WbkKx3mOeQuz3e2XqbfhOz/AHfbru0kzB1n1RCAsIIg== + "@types/parse-json@^4.0.0": version "4.0.0" resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" @@ -5507,12 +5451,12 @@ builtins@^1.0.3: resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" integrity sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ== -busboy@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/busboy/-/busboy-0.3.1.tgz#170899274c5bf38aae27d5c62b71268cd585fd1b" - integrity sha512-y7tTxhGKXcyBxRKAni+awqx8uqaJKrSFSNFSeRG5CsWNdmy2BIK+6VGWEW7TZnIO/533mtMEA4rOevQV815YJw== +busboy@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893" + integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== dependencies: - dicer "0.3.0" + streamsearch "^1.1.0" bytes@3.1.0: version "3.1.0" @@ -6471,13 +6415,6 @@ dezalgo@1.0.3: asap "^2.0.0" wrappy "1" -dicer@0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/dicer/-/dicer-0.3.0.tgz#eacd98b3bfbf92e8ab5c2fdb71aaac44bb06b872" - integrity sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA== - dependencies: - streamsearch "0.1.2" - diff-sequences@^28.1.1: version "28.1.1" resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-28.1.1.tgz#9989dc731266dc2903457a70e996f3a041913ac6" @@ -7901,14 +7838,17 @@ graphql-type-json@^0.3.2: resolved "https://registry.yarnpkg.com/graphql-type-json/-/graphql-type-json-0.3.2.tgz#f53a851dbfe07bd1c8157d24150064baab41e115" integrity sha512-J+vjof74oMlCWXSvt0DOf2APEdZOCdubEvGDUAlqH//VBYcOYsGgRW7Xzorr44LvkjiuvecWc8fChxuZZbChtg== -graphql-upload@^13.0.0: - version "13.0.0" - resolved "https://registry.yarnpkg.com/graphql-upload/-/graphql-upload-13.0.0.tgz#1a255b64d3cbf3c9f9171fa62a8fb0b9b59bb1d9" - integrity sha512-YKhx8m/uOtKu4Y1UzBFJhbBGJTlk7k4CydlUUiNrtxnwZv0WigbRHP+DVhRNKt7u7DXOtcKZeYJlGtnMXvreXA== +graphql-upload@^15.0.2: + version "15.0.2" + resolved "https://registry.yarnpkg.com/graphql-upload/-/graphql-upload-15.0.2.tgz#851667589439ee617238e2d90253000a2601ac04" + integrity sha512-ufJAkZJBKWRDD/4wJR3VZMy9QWTwqIYIciPtCEF5fCNgWF+V1p7uIgz+bP2YYLiS4OJBhCKR8rnqE/Wg3XPUiw== dependencies: - busboy "^0.3.1" + "@types/busboy" "^1.5.0" + "@types/node" "*" + "@types/object-path" "^0.11.1" + busboy "^1.6.0" fs-capacitor "^6.2.0" - http-errors "^1.8.1" + http-errors "^2.0.0" object-path "^0.11.8" graphql-ws@^5.9.1: @@ -7921,7 +7861,7 @@ graphql-ws@^5.9.1: resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.5.0.tgz#41b5c1182eaac7f3d47164fb247f61e4dfb69c85" integrity sha512-qbHgh8Ix+j/qY+a/ZcJnFQ+j8ezakqPiHwPiZhV/3PgGlgf96QMBB5/f2rkiC9sgLoy/xvT6TSiaf2nTHJh5iA== -graphql@^15.3.0, graphql@^15.8.0: +graphql@^15.8.0: version "15.8.0" resolved "https://registry.yarnpkg.com/graphql/-/graphql-15.8.0.tgz#33410e96b012fa3bdb1091cc99a94769db212b38" integrity sha512-5gghUc24tP9HRznNpV2+FIoq3xKkj5dTQqf4v0CpdPbFVwFkWoxOM+o+2OC9ZSvjEMTjfmG9QT+gcvggTwW1zw== @@ -8105,7 +8045,7 @@ http-errors@1.7.3: statuses ">= 1.5.0 < 2" toidentifier "1.0.0" -http-errors@2.0.0: +http-errors@2.0.0, http-errors@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-2.0.0.tgz#b7774a1486ef73cf7667ac9ae0858c012c57b9d3" integrity sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ== @@ -8116,17 +8056,6 @@ http-errors@2.0.0: statuses "2.0.1" toidentifier "1.0.1" -http-errors@^1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.1.tgz#7c3f28577cbc8a207388455dbd62295ed07bd68c" - integrity sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g== - dependencies: - depd "~1.1.2" - inherits "2.0.4" - setprototypeof "1.2.0" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.1" - http-proxy-agent@5.0.0, http-proxy-agent@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43" @@ -12937,10 +12866,10 @@ stream-transform@^2.1.3: dependencies: mixme "^0.5.1" -streamsearch@0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a" - integrity sha512-jos8u++JKm0ARcSUTAZXOVC0mSox7Bhn6sBgty73P1f3JGf7yG2clTbBNHUdde/kdvP2FESam+vM6l8jBrNxHA== +streamsearch@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764" + integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== string-argv@^0.3.1: version "0.3.1"