* [WIP] First pass at adding zoom plugin and zoom companion service for allowing imports from zoom cloud
* WIP. Remove zoom example and move zoom companion code into core companion package, update list endpoint to retrieve based on pagination token or dates available, and get size / download endpoint working.
TO DO:
- fix logout / token expiry
- investigate why test for loading config from file is not working as expected
- confirm pagination works
* Modify provider views to allow for cases with zoom provider when insufficient results exist to enable infinite scroll (but users may need to retrieve older results), update types tests. Linters failing on the provider views files
* Update uppy and companion for the zoom integration to use folders to represent months, and retrieve 1 month at a time.
- clean up code around response data items to explicitly show fields, and match style of other provider methods
- update license date to 2020 across repo
- enable download/uploado of json timeline files
- fix companion test to load credentials from file
- remove front end code no longer required now that folders are being used instead of loading more with button
* Change initial check for user authentication to use same endpoint so we can reuse the same app permission list (ie dont require additional permissions to read user data)
* Clean up zoom provider index file, add api call back to retrieve user account information such as created timestamp and email, fix file icons, remove unused strings, remove license date updates from branch
* Add permission list to grant configurations, remove undefined response body check, update error to match style of other providers, reorder svg attribute to match other icons
* Add request to get user email address for when we are retrieving user meetings and meeting recordings within zoom provider, clean up logout api call
* Update adapter to use meeting UUID when returning the meeting id to match the meeting ID associated with the recording file meeting. This should also resolve issues around reused meeting IDs from zoom.
* Fix companion test
* uppy,robodog: do not add zoom yet
* zoom: add publishConfig
* test: remove uppy.Zoom use from typescript e2e test
Co-authored-by: Renée Kooi <renee@kooi.me>
* Move @uppy/utils/lib/prettyBytes -> @transloadit/prettier-bytes so we can more easily re-use it across projects
* Switch to MIT licensed @transloadit/prettier-bytes
* lockfile fun
* build: add dep for website/inject.js
Co-authored-by: Renée Kooi <renee@kooi.me>
* build: explicitly use `sh` for shell scripts
* build: fix css path check on windows
* build: use NODE_PATH instead of symlink for local package resolution in e2e tests
* build: actually with new lerna we do not need NODE_PATH
* build: sh → bash
* Fix translations that did not respect word order
Fixes#2069
We were still using raw string concatenation in these two places. To
maintain backwards compatibility, this commit adds _new_ translations
that are substitution-based instead of concatenation-based. The old
translation is passed in as a possible substitution parameter
`backwardsCompat`, and the default (English) translations use this
parameter.
With this, if you are using a custom locale that overrides eg. the
`exceedsSize` string, Uppy will first get your `exceedsSize`
translation, and then use the default `exceedsSize2` translation which
concatenates that result and the file size. So it works the same as it
did in the past.
If a translation requires a different word order, it can override the
`exceedsSize2` translation instead.
```js
new Uppy({
locale: {
strings: {
exceedsSize2: 'Maximum file size of %{size} exceeded',
poweredBy2: '%{uppy} made this!'
}
}
})
```
In 2.0, we can remove all the old strings and only use `poweredBy2` (and
probably rename them to `poweredBy` too, heh)
* website: add missing dashboard strings to docs
* locales: remove unused second plural form from EN and NL
* build: allow different numbers of plural forms
* utils: add test for new throwing behaviour
* docs: insert PR url
* locales: revert ko_KR changes
* changelog: add 2.0 backlog entry
* locales: var → const
* docs: add brief note that translators should supply a pluralize function
* locales: update en_US with new template
* fix HEIGHT_MD = 400
Co-authored-by: Artur Paikin <artur@arturpaikin.com>
* types: stronger typings
* Remove remaining `declare module` things for uppy.use
* Format types standard-style-like
* Add `target` properties to plugin typings
* Add type for `replaceTargetContent` option
* xhr-upload: allow lowercase method
* opt in to stricter typechecks
* use the strictly typed version in all typings tests
* endtoend: use strict types in typescript test
* Add some comments to the typings file so IDEs will warn about untyped use()
* informer: remove obsolete option from typings
* react: generate prop types based on actual options types
* react: update types
* react: fix import in typings test
* companion-client: add `pluginId` property to ProviderOptions type
Co-Authored-By: Ifedapo .A. Olarewaju <ifedapoolarewaju@gmail.com>
* core: remove some `any` types
* *: add locale string types
* *: generate locale typings
* core: fix LocaleStrings<> type
* dashboard: add locale string type tests
* tus: inherit options typings from tus-js-client
* transloadit: add missing options types
* ci: do the required build steps before testing typings
* Support TokenStorage in types, add `title?: string` options
* form: update typings
* types: put TokenStorage type in dependents
* Document Uppy.StrictTypes
* if we pin at least we should use the latest
* Allow document.querySelector
I think it's a eslint-plugin-compat bug that it's marking querySelector
as not available in Android Chrome 78.
Co-authored-by: Ifedapo .A. Olarewaju <ifedapoolarewaju@gmail.com>
https://github.com/cthackers/adm-zip/pull/267
In our case, we could unzip fine, but in 7zip it reported: "Headers Error"
and in the Ubuntu 19.10 gnome extracting app, it would say "empty archive" and "An error occurred while loading the archive."
* Fix jsdoc warnings
* Upload downloadable zip archive of releases to CDN
* var -> const
* Only upload .zip for the main uppy package
* Implement @goto-bus-stop's feedback
a bad result from adding the examples as dependencies of the root
repository is that they now don't have access to the npm binaries they
need to run in their own folder, because they are installed into the
root repository instead.
this works around that issue.
we may need to consider undoing that change and making the examples work
as standalone projects again, that's easier to understand.
fixes#2024 for now.
* Move stats to plugin list, add table with versions of all plugins
* Update Hexo to 4.0, and other deps too
* update hexo-filter-github-emojis dependecy, run lerna bootstrap
* re-create package-lock.json
* crap, it adds body/html to any document now, and this is a partial :(
* companion: temporary fix for ts compile error
* fix netlify maybe
* node 12 is lts
* revert attempted netlify command fix
* update package-lock.json
* xhr-upload: redo limit option using different strategy
* xhr-upload: fix marking requests as done
* Move duplicate createEventTracker definitions to @uppy/utils
* tus: new cancellation for local uploads
* tus: fix cancelling queued uploads
* tus: fix wrong name
* aws-s3-multipart: smol refactor
* aws-s3-multipart: new cancellation style
* aws-s3: new cancellation
* utils: port limitPromises test to RateLimitedQueue
* timing fix?
* tus: new cancellation on websocket
* xhr-upload: implement cancellation for remote uploads
* aws-s3-multipart: port to new cancellation
* utils: remove limitPromises
* xhr-upload: remove pause/resume code
* xhr-upload: clean up event listeners
* xhr-upload: extract progress timer to separate class
* Move ProgressTimeout class to utils
* utils: update typings
* Fix lint
* tus: make pause/resume respect the rate limiting queue
* tus: try to explain some of the tricky things at play in the Tus#upload method
* aws-s3-multipart: add missing { abort: true }
* aws-s3-multipart: make pause/resume respect the rate limiting queue
* eslintrc.json - fixed eslint warnings for jsdoc
* Revert "eslintrc.json - fixed eslint warnings for jsdoc"
This reverts commit 50b24773ce.
* eslintrc.json - allow indentation in jsdoc comments
* xhr-upload: fix promise return value
* tus: fix promise return value
* tus: add missing `return () => {}`
* utils: typing export type fixes
* tus: add more jsdoc
* companion-client: add missing SocketOptions type
* utils: fix more export typings
* core,companion-client,tus: more typings tweaking
* companion-client: test fix 😩
* companion-client: add type for Socket#open
* tus: fix emit() call
* add local cancellation fuzz....ish? test
* Update eslint
* Do eslint --fix
* Do not access Object.prototype method 'hasOwnProperty' from target object
* utils: add hasProperty
* eslint --fix
* Disable quote-props for locale files
* add back quotes in locale files
* revert locale files to state on master
* Update react-scripts
* lerna link convert
* ci: use npm ci
* update lockfile
* companion: set `bin` to source file
Since typescript doesn't actually transform anything, we can just use
this.
In a next major version we could set `noEmit: true` in the tsconfig and
stop publishing `lib`.
* companion: do chmod +x on start-server.js
* build: remove obsolete lerna config
* build: explicitly install latest versions when building e2e tests for ci
* Remove versions from private packages
* fix regex
* try fix
* ci: force npm to install to endtoend folder
* ci: fold up e2e build output
* Update netlify deploy preview command
* Remove mentions of npm run bootstrap
* Edit .github/CONTRIBUTING.md instead
* companion: add proxy executable
* companion: fix publish
* Downgrade jest to appease create-react-app
* build: update webdriverio to v5
* build: update wdio services config syntax
* e2e test updates for wdio 5
* Sync pinned versions between repo root and companion
* build: enable all e2e tests for this PR run
* waitForExist
* test: await browser.url() calls
* test: awaitify url-plugin test
* test: use sauceConnect
* test: upload files to sauce before using them
* fall back to fakechoosefile a lot?
* fall back to fakechoosefile more
* Disable file selection on saucelabs
* test: need to await this thing
* test: make more-sure that the input is visible
* test: use currently low load transloadit region so i dont have to wait
* test: update but disable xhr-limit
* test: change the order
* test: newer firefoxes
* test: change the order back
* kinda sucks that they only have super old browsers on linux
* ci: disable url-plugin and transloadit e2e tests again
* test: use local tus-node-server for integration tests
* test: use envify to check env variables and select appropriate URL
* test: use companion.test:1080 for tus uploads on Travis
* test: fix env vars in typescript and CRA tests
* test: use getBoundingClientRect, may work better in android
* test: try getSize AND getBoundingClientRect
* test: do not check image width in android
* test: allow retrying tests that are prone to flakiness
* test: be more verbose during e2e tests
* test: force <input> visibility in more tests
* test: warn if using test:endtoend not on CI