-
Notifications
You must be signed in to change notification settings - Fork 2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Make allowedMetaFields
consistent
#5011
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Diff output filesdiff --git a/packages/@uppy/aws-s3-multipart/lib/index.js b/packages/@uppy/aws-s3-multipart/lib/index.js
index 70d6f5b..4faed3f 100644
--- a/packages/@uppy/aws-s3-multipart/lib/index.js
+++ b/packages/@uppy/aws-s3-multipart/lib/index.js
@@ -14,6 +14,7 @@ import BasePlugin from "@uppy/core/lib/BasePlugin.js";
import EventManager from "@uppy/core/lib/EventManager.js";
import { createAbortError } from "@uppy/utils/lib/AbortController";
import { filterFilesToEmitUploadStarted, filterNonFailedFiles } from "@uppy/utils/lib/fileFilters";
+import getAllowedMetaFields from "@uppy/utils/lib/getAllowedMetaFields";
import { RateLimitedQueue } from "@uppy/utils/lib/RateLimitedQueue";
import createSignedURL from "./createSignedURL.js";
import { HTTPCommunicationQueue } from "./HTTPCommunicationQueue.js";
@@ -57,7 +58,7 @@ function getAllowedMetadata(_ref) {
);
}
const defaultOptions = {
- allowedMetaFields: null,
+ allowedMetaFields: true,
limit: 6,
getTemporarySecurityCredentials: false,
shouldUseMultipart: file => file.size !== 0,
@@ -299,9 +300,10 @@ export default class AwsS3Multipart extends BasePlugin {
createMultipartUpload(file, signal) {
this.assertHost("createMultipartUpload");
throwIfAborted(signal);
+ const allowedMetaFields = getAllowedMetaFields(this.opts.allowedMetaFields, file.meta);
const metadata = getAllowedMetadata({
meta: file.meta,
- allowedMetaFields: this.opts.allowedMetaFields,
+ allowedMetaFields,
});
return _classPrivateFieldLooseBase(this, _client)[_client].post("s3/multipart", {
filename: file.name,
@@ -425,9 +427,10 @@ export default class AwsS3Multipart extends BasePlugin {
type,
name: filename,
} = meta;
+ const allowedMetaFields = getAllowedMetaFields(this.opts.allowedMetaFields, file.meta);
const metadata = getAllowedMetadata({
meta,
- allowedMetaFields: this.opts.allowedMetaFields,
+ allowedMetaFields,
querify: true,
});
const query = new URLSearchParams({
diff --git a/packages/@uppy/tus/lib/index.js b/packages/@uppy/tus/lib/index.js
index dfa1bd1..23a9e87 100644
--- a/packages/@uppy/tus/lib/index.js
+++ b/packages/@uppy/tus/lib/index.js
@@ -11,6 +11,7 @@ function _classPrivateFieldLooseKey(name) {
import BasePlugin from "@uppy/core/lib/BasePlugin.js";
import EventManager from "@uppy/core/lib/EventManager.js";
import { filterFilesToEmitUploadStarted, filterNonFailedFiles } from "@uppy/utils/lib/fileFilters";
+import getAllowedMetaFields from "@uppy/utils/lib/getAllowedMetaFields";
import hasProperty from "@uppy/utils/lib/hasProperty";
import isNetworkError from "@uppy/utils/lib/isNetworkError";
import NetworkError from "@uppy/utils/lib/NetworkError";
@@ -43,6 +44,7 @@ const defaultOptions = {
limit: 20,
retryDelays: tusDefaultOptions.retryDelays,
withCredentials: false,
+ allowedMetaFields: true,
};
var _retryDelayIterator = _classPrivateFieldLooseKey("retryDelayIterator");
var _uploadLocalFile = _classPrivateFieldLooseKey("uploadLocalFile");
@@ -328,7 +330,7 @@ function _uploadLocalFile2(file) {
}
};
const meta = {};
- const allowedMetaFields = Array.isArray(opts.allowedMetaFields) ? opts.allowedMetaFields : Object.keys(file.meta);
+ const allowedMetaFields = getAllowedMetaFields(opts.allowedMetaFields, file.meta);
allowedMetaFields.forEach(item => {
meta[item] = String(file.meta[item]);
});
diff --git a/packages/@uppy/xhr-upload/lib/index.js b/packages/@uppy/xhr-upload/lib/index.js
index 609c3ad..0a6a698 100644
--- a/packages/@uppy/xhr-upload/lib/index.js
+++ b/packages/@uppy/xhr-upload/lib/index.js
@@ -11,6 +11,7 @@ function _classPrivateFieldLooseKey(name) {
import BasePlugin from "@uppy/core/lib/BasePlugin.js";
import EventManager from "@uppy/core/lib/EventManager.js";
import { filterFilesToEmitUploadStarted, filterNonFailedFiles } from "@uppy/utils/lib/fileFilters";
+import getAllowedMetaFields from "@uppy/utils/lib/getAllowedMetaFields";
import isNetworkError from "@uppy/utils/lib/isNetworkError";
import NetworkError from "@uppy/utils/lib/NetworkError";
import ProgressTimeout from "@uppy/utils/lib/ProgressTimeout";
@@ -44,7 +45,7 @@ const defaultOptions = {
formData: true,
fieldName: "file",
method: "post",
- allowedMetaFields: null,
+ allowedMetaFields: true,
responseUrlFieldName: "url",
bundle: false,
headers: {},
@@ -171,7 +172,7 @@ export default class XHRUpload extends BasePlugin {
return opts;
}
addMetadata(formData, meta, opts) {
- const allowedMetaFields = Array.isArray(opts.allowedMetaFields) ? opts.allowedMetaFields : Object.keys(meta);
+ const allowedMetaFields = getAllowedMetaFields(opts.allowedMetaFields, meta);
allowedMetaFields.forEach(item => {
const value = meta[item];
if (Array.isArray(value)) {
@@ -432,7 +433,7 @@ function _uploadBundle2(files) {
function _getCompanionClientArgs2(file) {
var _file$remote;
const opts = this.getOptions(file);
- const allowedMetaFields = Array.isArray(opts.allowedMetaFields) ? opts.allowedMetaFields : Object.keys(file.meta);
+ const allowedMetaFields = getAllowedMetaFields(opts.allowedMetaFields, file.meta);
return {
...((_file$remote = file.remote) == null ? void 0 : _file$remote.body),
protocol: "multipart", |
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
@SocketSecurity ignore-all |
aduh95
approved these changes
Mar 21, 2024
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, we have to remember to update the docs at some point.
You'll have to rebase to modify the index.ts
instead of index.js
for AWS plugin.
Co-authored-by: Antoine du Hamel <antoine@transloadit.com>
Murderlon
force-pushed
the
consistent-metafields
branch
from
March 25, 2024 10:02
5de0615
to
234a7bd
Compare
aduh95
approved these changes
Mar 25, 2024
This was referenced Mar 28, 2024
github-actions bot
added a commit
that referenced
this pull request
Mar 28, 2024
| Package | Version | Package | Version | | ------------------------- | ------------ | ------------------------- | ------------ | | @uppy/angular | 0.7.0-beta.1 | @uppy/progress-bar | 4.0.0-beta.1 | | @uppy/audio | 2.0.0-beta.1 | @uppy/provider-views | 4.0.0-beta.1 | | @uppy/aws-s3 | 4.0.0-beta.1 | @uppy/react | 4.0.0-beta.1 | | @uppy/aws-s3-multipart | 4.0.0-beta.1 | @uppy/redux-dev-tools | 4.0.0-beta.1 | | @uppy/box | 3.0.0-beta.1 | @uppy/remote-sources | 2.0.0-beta.1 | | @uppy/companion | 5.0.0-beta.1 | @uppy/screen-capture | 4.0.0-beta.1 | | @uppy/companion-client | 4.0.0-beta.1 | @uppy/status-bar | 4.0.0-beta.1 | | @uppy/compressor | 2.0.0-beta.1 | @uppy/store-default | 4.0.0-beta.1 | | @uppy/core | 4.0.0-beta.1 | @uppy/store-redux | 4.0.0-beta.1 | | @uppy/dashboard | 4.0.0-beta.1 | @uppy/svelte | 4.0.0-beta.1 | | @uppy/drag-drop | 4.0.0-beta.1 | @uppy/thumbnail-generator | 4.0.0-beta.1 | | @uppy/drop-target | 3.0.0-beta.1 | @uppy/transloadit | 4.0.0-beta.1 | | @uppy/dropbox | 4.0.0-beta.1 | @uppy/tus | 4.0.0-beta.1 | | @uppy/facebook | 4.0.0-beta.1 | @uppy/unsplash | 4.0.0-beta.1 | | @uppy/file-input | 4.0.0-beta.1 | @uppy/url | 4.0.0-beta.1 | | @uppy/form | 4.0.0-beta.1 | @uppy/utils | 6.0.0-beta.1 | | @uppy/golden-retriever | 4.0.0-beta.1 | @uppy/vue | 2.0.0-beta.1 | | @uppy/google-drive | 4.0.0-beta.1 | @uppy/webcam | 4.0.0-beta.1 | | @uppy/image-editor | 3.0.0-beta.1 | @uppy/xhr-upload | 4.0.0-beta.1 | | @uppy/informer | 4.0.0-beta.1 | @uppy/zoom | 3.0.0-beta.1 | | @uppy/instagram | 4.0.0-beta.1 | uppy | 4.0.0-beta.1 | | @uppy/onedrive | 4.0.0-beta.1 | | | - @uppy/vue: migrate to Composition API with TS & drop Vue 2 support (Merlijn Vos / #5043) - @uppy/angular: upgrade to Angular 17.x and to TS 5.4 (Antoine du Hamel / #5008) - @uppy/svelte: remove UMD output and make it use newer types (Antoine du Hamel / #5023) - @uppy/companion-client,@uppy/provider-views,@uppy/status-bar: fix type imports (Antoine du Hamel / #5038) - @uppy/aws-s3-multipart: mark `opts` as optional (Antoine du Hamel / #5039) - e2e: bump Cypress version (Antoine du Hamel / #5034) - @uppy/react: remove `prop-types` dependency (Antoine du Hamel / #5031) - @uppy/progress-bar: remove default target (Antoine du Hamel / #4971) - @uppy/status-bar: remove default target (Antoine du Hamel / #4970) - @uppy/react: remove `Wrapper.ts` (Antoine du Hamel / #5032) - @uppy/react: refactor to TS (Antoine du Hamel / #5012) - @uppy/core: refine type of private variables (Antoine du Hamel / #5028) - @uppy/dashboard: refine type of private variables (Antoine du Hamel / #5027) - @uppy/drag-drop: refine type of private variables (Antoine du Hamel / #5026) - @uppy/status-bar: refine type of private variables (Antoine du Hamel / #5025) - @uppy/remote-sources: migrate to TS (Merlijn Vos / #5020) - @uppy/dashboard: refine option types (Antoine du Hamel / #5022) - @uppy/dashboard: add new `autoOpen` option (Chris Grigg / #5001) - @uppy/aws-s3-multipart,@uppy/tus,@uppy/utils,@uppy/xhr-upload: Make `allowedMetaFields` consistent (Merlijn Vos / #5011) - @uppy/core: fix some type errors (Antoine du Hamel / #5015) - @uppy/audio,@uppy/dashboard,@uppy/drop-target,@uppy/webcam: add missing exports (Antoine du Hamel / #5014) - meta: Bump webpack-dev-middleware from 5.3.3 to 5.3.4 (dependabot[bot] / #5013) - @uppy/dashboard: refactor to TypeScript (Antoine du Hamel / #4984) - @uppy/companion: improve error msg (Mikael Finstad / #5010) - @uppy/aws-s3-multipart: refactor to TS (Antoine du Hamel / #4902) - @uppy/dashboard: refactor to stable lifecycle method (Antoine du Hamel / #4999) - @uppy/companion: crash if trying to set path to / (Mikael Finstad / #5003) - @uppy/provider-views: fix `super.toggleCheckbox` bug (Mikael Finstad / #5004) - @uppy/aws-s3-multipart: fix escaping issue with client signed request (Hiroki Shimizu / #5006) - @uppy/drag-drop,@uppy/progress-bar: add missing exports (Antoine du Hamel / #5009) - @uppy/transloadit: migrate to TS (Merlijn Vos / #4987) - @uppy/utils: fix `RateLimitedQueue#wrapPromiseFunction` types (Antoine du Hamel / #5007) - @uppy/golden-retriever: migrate to TS (Merlijn Vos / #4989) - meta: Bump follow-redirects from 1.15.4 to 1.15.6 (dependabot[bot] / #5002) - meta: fix `resize-observer-polyfill` types (Antoine du Hamel / #4994) - @uppy/core: various type fixes (Antoine du Hamel / #4995) - @uppy/utils: fix `findAllDOMElements` type (Antoine du Hamel / #4997) - @uppy/status-bar: fix `recoveredState` type (Antoine du Hamel / #4996) - @uppy/utils: fix `AbortablePromise` type (Antoine du Hamel / #4988) - @uppy/core,@uppy/provider-views: Fix breadcrumbs (Evgenia Karunus / #4986) - @uppy/drag-drop: refactor to TypeScript (Antoine du Hamel / #4983) - @uppy/webcam: refactor to TypeScript (Antoine du Hamel / #4870) - @uppy/url: migrate to TS (Merlijn Vos / #4980) - @uppy/zoom: refactor to TypeScript (Murderlon / #4979) - @uppy/unsplash: refactor to TypeScript (Murderlon / #4979) - @uppy/onedrive: refactor to TypeScript (Murderlon / #4979) - @uppy/instagram: refactor to TypeScript (Murderlon / #4979) - @uppy/google-drive: refactor to TypeScript (Murderlon / #4979) - @uppy/facebook: refactor to TypeScript (Murderlon / #4979) - @uppy/dropbox: refactor to TypeScript (Murderlon / #4979) - @uppy/box: refactor to TypeScript (Murderlon / #4979) - @uppy/utils: migrate RateLimitedQueue to TS (Merlijn Vos / #4981) - @uppy/thumbnail-generator: migrate to TS (Merlijn Vos / #4978) - @uppy/screen-capture: migrate to TS (Merlijn Vos / #4965) - @uppy/companion-client: Replace Provider.initPlugin with composition (Merlijn Vos / #4977) - uppy: remove legacy bundle (Antoine du Hamel) - meta: include types in npm archive (Antoine du Hamel) - @uppy/angular: fix build (Antoine du Hamel) - meta: Remove generate types from locale-pack (Murderlon) - meta: enable CI on `4.x` branch (Antoine du Hamel) - @uppy/vue: [v4.x] remove manual types (Antoine du Hamel / #4803) - meta: prepare release workflow for beta versions (Antoine du Hamel) | Package | Version | Package | Version | | ------------------------- | ------- | ------------------------- | ------- | | @uppy/audio | 1.1.8 | @uppy/progress-bar | 3.1.1 | | @uppy/aws-s3-multipart | 3.11.0 | @uppy/provider-views | 3.11.0 | | @uppy/box | 2.3.0 | @uppy/react | 3.3.0 | | @uppy/companion | 4.13.0 | @uppy/remote-sources | 1.2.0 | | @uppy/companion-client | 3.8.0 | @uppy/screen-capture | 3.2.0 | | @uppy/compressor | 1.1.2 | @uppy/status-bar | 3.3.1 | | @uppy/core | 3.10.0 | @uppy/thumbnail-generator | 3.1.0 | | @uppy/dashboard | 3.8.0 | @uppy/transloadit | 3.6.0 | | @uppy/drag-drop | 3.1.0 | @uppy/tus | 3.5.4 | | @uppy/drop-target | 2.0.5 | @uppy/unsplash | 3.3.0 | | @uppy/dropbox | 3.3.0 | @uppy/url | 3.6.0 | | @uppy/facebook | 3.3.0 | @uppy/utils | 5.7.5 | | @uppy/golden-retriever | 3.2.0 | @uppy/webcam | 3.4.0 | | @uppy/google-drive | 3.5.0 | @uppy/zoom | 2.3.0 | | @uppy/instagram | 3.3.0 | uppy | 3.24.0 | | @uppy/onedrive | 3.3.0 | | | - @uppy/box,@uppy/companion-client,@uppy/provider-views,@uppy/status-bar: fix type imports (Antoine du Hamel / #5038) - @uppy/aws-s3-multipart: mark `opts` as optional (Antoine du Hamel / #5039) - e2e: bump Cypress version (Antoine du Hamel / #5034) - @uppy/react: refactor to TS (Antoine du Hamel / #5012) - @uppy/core: refine type of private variables (Antoine du Hamel / #5028) - @uppy/dashboard: refine type of private variables (Antoine du Hamel / #5027) - @uppy/drag-drop: refine type of private variables (Antoine du Hamel / #5026) - @uppy/status-bar: refine type of private variables (Antoine du Hamel / #5025) - @uppy/remote-sources: migrate to TS (Merlijn Vos / #5020) - @uppy/dashboard: refine option types (Antoine du Hamel / #5022) - @uppy/dashboard: add new `autoOpen` option (Chris Grigg / #5001) - @uppy/core: fix some type errors (Antoine du Hamel / #5015) - @uppy/audio,@uppy/dashboard,@uppy/drop-target,@uppy/webcam: add missing exports (Antoine du Hamel / #5014) - meta: Bump webpack-dev-middleware from 5.3.3 to 5.3.4 (dependabot[bot] / #5013) - @uppy/dashboard: refactor to TypeScript (Antoine du Hamel / #4984) - @uppy/companion: improve error msg (Mikael Finstad / #5010) - @uppy/aws-s3-multipart: refactor to TS (Antoine du Hamel / #4902) - @uppy/dashboard: refactor to stable lifecycle method (Antoine du Hamel / #4999) - @uppy/companion: crash if trying to set path to / (Mikael Finstad / #5003) - @uppy/provider-views: fix `super.toggleCheckbox` bug (Mikael Finstad / #5004) - @uppy/aws-s3-multipart: fix escaping issue with client signed request (Hiroki Shimizu / #5006) - @uppy/drag-drop,@uppy/progress-bar: add missing exports (Antoine du Hamel / #5009) - @uppy/transloadit: migrate to TS (Merlijn Vos / #4987) - @uppy/utils: fix `RateLimitedQueue#wrapPromiseFunction` types (Antoine du Hamel / #5007) - @uppy/golden-retriever: migrate to TS (Merlijn Vos / #4989) - meta: Bump follow-redirects from 1.15.4 to 1.15.6 (dependabot[bot] / #5002) - meta: fix `resize-observer-polyfill` types (Antoine du Hamel / #4994) - @uppy/core: various type fixes (Antoine du Hamel / #4995) - @uppy/utils: fix `findAllDOMElements` type (Antoine du Hamel / #4997) - @uppy/status-bar: fix `recoveredState` type (Antoine du Hamel / #4996) - @uppy/utils: fix `AbortablePromise` type (Antoine du Hamel / #4988) - @uppy/core,@uppy/provider-views: Fix breadcrumbs (Evgenia Karunus / #4986) - @uppy/drag-drop: refactor to TypeScript (Antoine du Hamel / #4983) - @uppy/webcam: refactor to TypeScript (Antoine du Hamel / #4870) - @uppy/url: migrate to TS (Merlijn Vos / #4980) - @uppy/zoom: refactor to TypeScript (Murderlon / #4979) - @uppy/unsplash: refactor to TypeScript (Murderlon / #4979) - @uppy/onedrive: refactor to TypeScript (Murderlon / #4979) - @uppy/instagram: refactor to TypeScript (Murderlon / #4979) - @uppy/google-drive: refactor to TypeScript (Murderlon / #4979) - @uppy/facebook: refactor to TypeScript (Murderlon / #4979) - @uppy/dropbox: refactor to TypeScript (Murderlon / #4979) - @uppy/box: refactor to TypeScript (Murderlon / #4979) - @uppy/utils: migrate RateLimitedQueue to TS (Merlijn Vos / #4981) - @uppy/thumbnail-generator: migrate to TS (Merlijn Vos / #4978) - @uppy/screen-capture: migrate to TS (Merlijn Vos / #4965) - @uppy/companion-client: Replace Provider.initPlugin with composition (Merlijn Vos / #4977)
Murderlon
added a commit
that referenced
this pull request
Apr 2, 2024
* 4.x: (27 commits) Release: uppy@4.0.0-beta.1 (#5047) @uppy/vue: migrate to Composition API with TS & drop Vue 2 support (#5043) @uppy/angular,meta: upgrade to Angular 17.x and to TS 5.4 (#5008) @uppy/svelte: remove UMD output and make it use newer types (#5023) fix type imports (#5038) @uppy/aws-s3-multipart: mark `opts` as optional (#5039) e2e: bump Cypress version (#5034) @uppy/react: remove `prop-types` dependency (#5031) @uppy/progress-bar: remove default target (#4971) @uppy/status-bar: remove default target (#4970) @uppy/react: remove `Wrapper.ts` (#5032) @uppy/react: refactor to TS (#5012) @uppy/core: refine type of private variables (#5028) @uppy/dashboard: refine type of private variables (#5027) @uppy/drag-drop: refine type of private variables (#5026) @uppy/status-bar: refine type of private variables (#5025) @uppy/remote-sources: migrate to TS (#5020) @uppy/dashboard: refine option types (#5022) @uppy/dashboard: add new `autoOpen` option (#5001) Make `allowedMetaFields` consistent (#5011) ...
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Closes #4217
It's now always
boolean | string[]
, withtrue
as default which sends all meta fields.