Procházet zdrojové kódy

@uppy/robodog: remove package (#3946)

Co-authored-by: Artur Paikin <artur@arturpaikin.com>
Antoine du Hamel před 2 roky
rodič
revize
4bb99880b3
37 změnil soubory, kde provedl 21 přidání a 1113 odebrání
  1. 0 5
      .github/workflows/release.yml
  2. 3 3
      BACKLOG.md
  3. 0 1
      README.md
  4. 0 6
      bin/build-bundle.mjs
  5. 0 3
      bin/build-css.js
  6. 0 3
      packages/@uppy/file-input/src/locale.js
  7. 0 44
      packages/@uppy/robodog/CHANGELOG.md
  8. 0 21
      packages/@uppy/robodog/LICENSE
  9. 0 33
      packages/@uppy/robodog/README.md
  10. 0 11
      packages/@uppy/robodog/bundle-legacy.js
  11. 0 2
      packages/@uppy/robodog/bundle.js
  12. 0 56
      packages/@uppy/robodog/package.json
  13. 0 79
      packages/@uppy/robodog/src/AttachFileInputs.js
  14. 0 48
      packages/@uppy/robodog/src/TransloaditFormResult.js
  15. 0 45
      packages/@uppy/robodog/src/TransloaditResultsPlugin.js
  16. 0 57
      packages/@uppy/robodog/src/addDashboardPlugin.js
  17. 0 105
      packages/@uppy/robodog/src/addProviders.js
  18. 0 32
      packages/@uppy/robodog/src/addTransloaditPlugin.js
  19. 0 66
      packages/@uppy/robodog/src/createUppy.js
  20. 0 30
      packages/@uppy/robodog/src/dashboard.js
  21. 0 109
      packages/@uppy/robodog/src/form.js
  22. 0 14
      packages/@uppy/robodog/src/index.js
  23. 0 52
      packages/@uppy/robodog/src/pick.js
  24. 0 7
      packages/@uppy/robodog/src/style.scss
  25. 0 29
      packages/@uppy/robodog/src/upload.js
  26. 0 66
      packages/@uppy/robodog/types/index.d.ts
  27. 0 85
      packages/@uppy/robodog/types/index.test-d.ts
  28. 0 1
      private/release/afterVersionBump.js
  29. 1 65
      private/release/choose-semverness.js
  30. 0 3
      website/inject.js
  31. 3 0
      website/src/docs/robodog-dashboard.md
  32. 3 0
      website/src/docs/robodog-form.md
  33. 3 0
      website/src/docs/robodog-picker.md
  34. 3 0
      website/src/docs/robodog-upload.md
  35. 5 2
      website/src/docs/robodog.md
  36. 0 1
      website/themes/uppy/layout/partials/docs_menu.ejs
  37. 0 29
      yarn.lock

+ 0 - 5
.github/workflows/release.yml

@@ -70,11 +70,6 @@ jobs:
         env:
         env:
           EDGLY_KEY: ${{secrets.EDGLY_KEY}}
           EDGLY_KEY: ${{secrets.EDGLY_KEY}}
           EDGLY_SECRET: ${{secrets.EDGLY_SECRET}}
           EDGLY_SECRET: ${{secrets.EDGLY_SECRET}}
-      - name: Upload `@uppy/robodog` to CDN if it was released
-        run: git diff --exit-code --quiet HEAD^ -- packages/@uppy/robodog/package.json || corepack yarn run uploadcdn @uppy/robodog
-        env:
-          EDGLY_KEY: ${{secrets.EDGLY_KEY}}
-          EDGLY_SECRET: ${{secrets.EDGLY_SECRET}}
       - name: Upload `@uppy/locales` to CDN if it was released
       - name: Upload `@uppy/locales` to CDN if it was released
         run: git diff --exit-code --quiet HEAD^ -- packages/@uppy/locales/package.json ||corepack yarn run uploadcdn @uppy/locales
         run: git diff --exit-code --quiet HEAD^ -- packages/@uppy/locales/package.json ||corepack yarn run uploadcdn @uppy/locales
         env:
         env:

+ 3 - 3
BACKLOG.md

@@ -12,9 +12,9 @@ PRs are welcome! Please do open an issue to discuss first if it's a big feature,
 - [ ] Some not too breaking breaking changes. Go through TODOs (@arturi, @aduh95, @Murderlon)
 - [ ] Some not too breaking breaking changes. Go through TODOs (@arturi, @aduh95, @Murderlon)
 - [ ] Companion breaking changes, like S3 keys (@mifi)
 - [ ] Companion breaking changes, like S3 keys (@mifi)
 - [x] New remote-sources preset
 - [x] New remote-sources preset
-- [ ] Deprecate Robodog
-  - [ ] Remove from 3.x branch (@aduh95)
-  - [ ] Update docs that refer to Robodog (@arturi)
+- [x] Deprecate Robodog
+  - [x] Remove from 3.x branch (@aduh95)
+  - [x] Update docs that refer to Robodog (@arturi)
   - [ ] Update Transloadit.com examples and docs to use @uppy/transloadit + @uppy/remote-sources plugins instead of @uppy/robodog (@arturi)
   - [ ] Update Transloadit.com examples and docs to use @uppy/transloadit + @uppy/remote-sources plugins instead of @uppy/robodog (@arturi)
 
 
 ## `4.0.0`
 ## `4.0.0`

+ 0 - 1
README.md

@@ -132,7 +132,6 @@ The ⓒ mark means that [`@uppy/companion`](https://uppy.io/docs/companion), a s
 
 
 ### File Processing
 ### File Processing
 
 
-* [`Robodog`](https://uppy.io/docs/robodog/) — user friendly abstraction to do file processing with Transloadit
 * [`Transloadit`](https://uppy.io/docs/transloadit/) — support for [Transloadit](http://transloadit.com)’s robust file uploading and encoding backend
 * [`Transloadit`](https://uppy.io/docs/transloadit/) — support for [Transloadit](http://transloadit.com)’s robust file uploading and encoding backend
 
 
 ### Miscellaneous
 ### Miscellaneous

+ 0 - 6
bin/build-bundle.mjs

@@ -32,7 +32,6 @@ function buildBundle (srcFile, bundleFile, { minify = true, standalone = '', plu
 }
 }
 
 
 await fs.mkdir(new URL('./uppy/dist', PACKAGES_ROOT), { recursive: true })
 await fs.mkdir(new URL('./uppy/dist', PACKAGES_ROOT), { recursive: true })
-await fs.mkdir(new URL('./@uppy/robodog/dist', PACKAGES_ROOT), { recursive: true })
 await fs.mkdir(new URL('./@uppy/locales/dist', PACKAGES_ROOT), { recursive: true })
 await fs.mkdir(new URL('./@uppy/locales/dist', PACKAGES_ROOT), { recursive: true })
 
 
 const methods = [
 const methods = [
@@ -69,11 +68,6 @@ const methods = [
       })],
       })],
     },
     },
   ),
   ),
-  buildBundle(
-    './packages/@uppy/robodog/bundle.js',
-    './packages/@uppy/robodog/dist/robodog.min.js',
-    { standalone: 'Robodog' },
-  ),
 ]
 ]
 
 
 // Build minified versions of all the locales
 // Build minified versions of all the locales

+ 0 - 3
bin/build-css.js

@@ -65,14 +65,11 @@ async function compileCSS () {
 
 
     const outdir = path.join(path.dirname(file), '../dist')
     const outdir = path.join(path.dirname(file), '../dist')
     // Save the `uppy` package's CSS as `uppy.css`,
     // Save the `uppy` package's CSS as `uppy.css`,
-    // `@uppy/robodog` as `robodog.css`,
     // the rest as `style.css`.
     // the rest as `style.css`.
     // const outfile = path.join(outdir, outdir.includes(path.normalize('packages/uppy/')) ? 'uppy.css' : 'style.css')
     // const outfile = path.join(outdir, outdir.includes(path.normalize('packages/uppy/')) ? 'uppy.css' : 'style.css')
     let outfile = path.join(outdir, 'style.css')
     let outfile = path.join(outdir, 'style.css')
     if (outdir.includes(path.normalize('packages/uppy/'))) {
     if (outdir.includes(path.normalize('packages/uppy/'))) {
       outfile = path.join(outdir, 'uppy.css')
       outfile = path.join(outdir, 'uppy.css')
-    } else if (outdir.includes(path.normalize('packages/@uppy/robodog/'))) {
-      outfile = path.join(outdir, 'robodog.css')
     }
     }
     await mkdir(outdir, { recursive: true })
     await mkdir(outdir, { recursive: true })
     await writeFile(outfile, postcssResult.css)
     await writeFile(outfile, postcssResult.css)

+ 0 - 3
packages/@uppy/file-input/src/locale.js

@@ -1,8 +1,5 @@
 export default {
 export default {
   strings: {
   strings: {
-    // The same key is used for the same purpose by @uppy/robodog's `form()` API, but our
-    // locale pack scripts can't access it in Robodog. If it is updated here, it should
-    // also be updated there!
     chooseFiles: 'Choose files',
     chooseFiles: 'Choose files',
   },
   },
 }
 }

+ 0 - 44
packages/@uppy/robodog/CHANGELOG.md

@@ -1,44 +0,0 @@
-# @uppy/robodog
-
-## 2.9.2
-
-Released: 2022-08-02
-Included in: Uppy v2.13.2
-
-- @uppy/robodog: Fix Robodog CDN url in readme.md (Artur Paikin / #3922)
-
-## 2.8.3
-
-Released: 2022-07-11
-Included in: Uppy v2.12.3
-
-- @uppy/robodog,@uppy/transloadit: use modern syntax to simplify code (Antoine du Hamel / #3873)
-
-## 2.8.0
-
-Released: 2022-06-07
-Included in: Uppy v2.12.0
-
-- @uppy/robodog: fix linter warnings (Antoine du Hamel / #3808)
-
-## 2.7.0
-
-Released: 2022-05-30
-Included in: Uppy v2.11.0
-
-- @uppy/angular,@uppy/audio,@uppy/aws-s3-multipart,@uppy/aws-s3,@uppy/box,@uppy/core,@uppy/dashboard,@uppy/drag-drop,@uppy/dropbox,@uppy/facebook,@uppy/file-input,@uppy/form,@uppy/golden-retriever,@uppy/google-drive,@uppy/image-editor,@uppy/informer,@uppy/instagram,@uppy/onedrive,@uppy/progress-bar,@uppy/react,@uppy/redux-dev-tools,@uppy/robodog,@uppy/screen-capture,@uppy/status-bar,@uppy/store-default,@uppy/store-redux,@uppy/thumbnail-generator,@uppy/transloadit,@uppy/tus,@uppy/unsplash,@uppy/url,@uppy/vue,@uppy/webcam,@uppy/xhr-upload,@uppy/zoom: doc: update bundler recommendation (Antoine du Hamel / #3763)
-
-## 2.5.0
-
-Released: 2022-03-24
-Included in: Uppy v2.9.0
-
-- @uppy/robodog: fix CDN bundle (Antoine du Hamel / #3587)
-
-## 2.3.0
-
-Released: 2022-02-14
-Included in: Uppy v2.5.0
-
-- @uppy/robodog: add audio, box, unsplash, screen-capture to Robodog (Artur Paikin / #3483)
-- @uppy/companion-client,@uppy/companion,@uppy/provider-views,@uppy/robodog: Finishing touches on Companion dynamic Oauth (Renée Kooi / #2802)

+ 0 - 21
packages/@uppy/robodog/LICENSE

@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2018 Transloadit
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in all
-copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
-SOFTWARE.

+ 0 - 33
packages/@uppy/robodog/README.md

@@ -1,33 +0,0 @@
-# @uppy/robodog
-
-<img src="https://uppy.io/images/logos/uppy-dog-head-arrow.svg" width="120" alt="Uppy logo: a superman puppy in a pink suit" align="right">
-
-[![npm version](https://img.shields.io/npm/v/@uppy/robodog.svg?style=flat-square)](https://www.npmjs.com/package/@uppy/robodog)
-![CI status for Uppy tests](https://github.com/transloadit/uppy/workflows/Tests/badge.svg)
-![CI status for Companion tests](https://github.com/transloadit/uppy/workflows/Companion/badge.svg)
-![CI status for browser tests](https://github.com/transloadit/uppy/workflows/End-to-end%20tests/badge.svg)
-
-Robodog is an Uppy-based library that pulls your files through Transloadit for all kinds of processing, such as transcoding video, resizing images, zipping/unzipping, [and more](https://transloadit.com/services/).
-
-## Installation
-
-```bash
-$ npm install @uppy/robodog
-```
-
-Alternatively, you can also use this package in a pre-built bundle from Transloadit’s CDN: Edgly.
-
-```html
-<link rel="stylesheet" href="https://releases.transloadit.com/uppy/v3.0.0-beta.5/robodog.min.css">
-<script src="https://releases.transloadit.com/uppy/v3.0.0-beta.5/robodog.min.js"></script>
-```
-
-Then, a global `Robodog` variable will be available. For usage instructions, please see the [main Robodog documentation](https://uppy.io/docs/robodog).
-
-## Documentation
-
-For further details, please read the documentation on the [Uppy website](https://uppy.io/docs/robodog)!
-
-## License
-
-[The MIT License](./LICENSE).

+ 0 - 11
packages/@uppy/robodog/bundle-legacy.js

@@ -1,11 +0,0 @@
-require('core-js')
-require('whatwg-fetch')
-require('abortcontroller-polyfill/dist/polyfill-patch-fetch')
-// Order matters: AbortController needs fetch which needs Promise.
-
-require('md-gum-polyfill')
-const ResizeObserver = require('resize-observer-polyfill')
-
-if (typeof window.ResizeObserver !== 'function') window.ResizeObserver = ResizeObserver
-
-module.exports = require('.')

+ 0 - 2
packages/@uppy/robodog/bundle.js

@@ -1,2 +0,0 @@
-// eslint-disable-next-line no-multi-assign
-globalThis.Robodog = module.exports = require('./bundle-legacy.js')

+ 0 - 56
packages/@uppy/robodog/package.json

@@ -1,56 +0,0 @@
-{
-  "name": "@uppy/robodog",
-  "description": "Transloadit SDK for browsers based on Uppy",
-  "version": "3.0.0-beta.4",
-  "license": "MIT",
-  "main": "lib/index.js",
-  "jsnext:main": "src/index.js",
-  "types": "types/index.d.ts",
-  "keywords": [
-    "file uploader",
-    "transloadit",
-    "file encoding",
-    "encoding",
-    "file processing",
-    "video encoding",
-    "crop",
-    "resize",
-    "watermark",
-    "uppy",
-    "uppy-plugin"
-  ],
-  "homepage": "https://uppy.io",
-  "bugs": {
-    "url": "https://github.com/transloadit/uppy/issues"
-  },
-  "repository": {
-    "type": "git",
-    "url": "git+https://github.com/transloadit/uppy.git"
-  },
-  "dependencies": {
-    "@uppy/audio": "workspace:^",
-    "@uppy/box": "workspace:^",
-    "@uppy/core": "workspace:^",
-    "@uppy/dashboard": "workspace:^",
-    "@uppy/dropbox": "workspace:^",
-    "@uppy/facebook": "workspace:^",
-    "@uppy/form": "workspace:^",
-    "@uppy/google-drive": "workspace:^",
-    "@uppy/instagram": "workspace:^",
-    "@uppy/onedrive": "workspace:^",
-    "@uppy/screen-capture": "workspace:^",
-    "@uppy/status-bar": "workspace:^",
-    "@uppy/transloadit": "workspace:^",
-    "@uppy/unsplash": "workspace:^",
-    "@uppy/url": "workspace:^",
-    "@uppy/utils": "workspace:^",
-    "@uppy/webcam": "workspace:^"
-  },
-  "devDependencies": {
-    "abortcontroller-polyfill": "^1.7.3",
-    "core-js": "~3.24.0",
-    "md-gum-polyfill": "^1.0.0",
-    "resize-observer-polyfill": "^1.5.1",
-    "whatwg-fetch": "^3.6.2"
-  }
-}

+ 0 - 79
packages/@uppy/robodog/src/AttachFileInputs.js

@@ -1,79 +0,0 @@
-const BasePlugin = require('@uppy/core/lib/BasePlugin')
-const toArray = require('@uppy/utils/lib/toArray')
-const findDOMElement = require('@uppy/utils/lib/findDOMElement')
-
-/**
- * Add files from existing file inputs to Uppy.
- */
-class AttachFileInputs extends BasePlugin {
-  constructor (uppy, opts) {
-    super(uppy, opts)
-
-    this.id = this.opts.id || 'AttachFileInputs'
-    this.type = 'acquirer'
-
-    this.handleChange = this.handleChange.bind(this)
-    this.inputs = null
-  }
-
-  handleChange (event) {
-    this.addFiles(event.target)
-  }
-
-  addFiles (input) {
-    const files = toArray(input.files)
-    files.forEach((file) => {
-      try {
-        this.uppy.addFile({
-          source: this.id,
-          name: file.name,
-          type: file.type,
-          data: file,
-        })
-      } catch (err) {
-        if (!err.isRestriction) {
-          this.uppy.log(err)
-        }
-      }
-    })
-  }
-
-  install () {
-    this.el = findDOMElement(this.opts.target)
-    if (!this.el) {
-      throw new Error('[AttachFileInputs] Target form does not exist')
-    }
-
-    const { restrictions } = this.uppy.opts
-
-    this.inputs = this.el.querySelectorAll('input[type="file"]')
-    this.inputs.forEach((input) => {
-      input.addEventListener('change', this.handleChange)
-
-      if (!input.hasAttribute('multiple')) {
-        if (restrictions.maxNumberOfFiles !== 1) {
-          input.setAttribute('multiple', 'multiple')
-        } else {
-          input.removeAttribute('multiple')
-        }
-      }
-
-      if (!input.hasAttribute('accept') && restrictions.allowedFileTypes) {
-        input.setAttribute('accept', restrictions.allowedFileTypes.join(','))
-      }
-
-      // Check if this input already contains files (eg. user selected them before Uppy loaded,
-      // or the page was refreshed and the browser kept files selected)
-      this.addFiles(input)
-    })
-  }
-
-  uninstall () {
-    this.inputs.forEach((input) => {
-      input.removeEventListener('change', this.handleChange)
-    })
-    this.inputs = null
-  }
-}
-
-module.exports = AttachFileInputs

+ 0 - 48
packages/@uppy/robodog/src/TransloaditFormResult.js

@@ -1,48 +0,0 @@
-const BasePlugin = require('@uppy/core/lib/BasePlugin')
-const findDOMElement = require('@uppy/utils/lib/findDOMElement')
-
-/**
- * After an upload completes, inject result data from Transloadit in a hidden input.
- *
- * Must be added _after_ the Transloadit plugin.
- */
-class TransloaditFormResult extends BasePlugin {
-  constructor (uppy, opts) {
-    super(uppy, opts)
-
-    this.id = this.opts.id || 'TransloaditFormResult'
-    this.type = 'modifier'
-
-    this.handleUpload = this.handleUpload.bind(this)
-  }
-
-  getAssemblyStatuses (fileIDs) {
-    const assemblyIds = new Set(
-      fileIDs.map(fileID => this.uppy.getFile(fileID)?.transloadit?.assembly).filter(Boolean),
-    )
-
-    const tl = this.uppy.getPlugin(this.opts.transloaditPluginId || 'Transloadit')
-    return Array.from(assemblyIds, (id) => tl.getAssembly(id))
-  }
-
-  handleUpload (fileIDs) {
-    const assemblies = this.getAssemblyStatuses(fileIDs)
-    const input = document.createElement('input')
-    input.type = 'hidden'
-    input.name = this.opts.name
-    input.value = JSON.stringify(assemblies)
-
-    const target = findDOMElement(this.opts.target)
-    target.appendChild(input)
-  }
-
-  install () {
-    this.uppy.addPostProcessor(this.handleUpload)
-  }
-
-  uninstall () {
-    this.uppy.removePostProcessor(this.handleUpload)
-  }
-}
-
-module.exports = TransloaditFormResult

+ 0 - 45
packages/@uppy/robodog/src/TransloaditResultsPlugin.js

@@ -1,45 +0,0 @@
-const BasePlugin = require('@uppy/core/lib/BasePlugin')
-
-/**
- * Add a `results` key to the upload result data, containing all Transloadit Assembly results.
- */
-class TransloaditResultsPlugin extends BasePlugin {
-  constructor (uppy, opts) {
-    super(uppy, opts)
-
-    this.type = 'modifier'
-    this.id = this.opts.id || 'TransloaditResultsPlugin'
-  }
-
-  install () {
-    this.uppy.addPostProcessor(this.#afterUpload)
-  }
-
-  #afterUpload = (fileIDs, uploadID) => {
-    const { currentUploads } = this.uppy.getState()
-    const { result } = currentUploads[uploadID]
-    const assemblies = Array.isArray(result?.transloadit) ? result.transloadit : []
-
-    // Merge the assembly.results[*] arrays and add `stepName` and
-    // `assemblyId` properties.
-    const assemblyResults = []
-    assemblies.forEach((assembly) => {
-      Object.keys(assembly.results).forEach((stepName) => {
-        const results = assembly.results[stepName]
-        results.forEach((resultObject) => {
-          assemblyResults.push({
-            ...resultObject,
-            assemblyId: assembly.assembly_id,
-            stepName,
-          })
-        })
-      })
-    })
-
-    this.uppy.addResultData(uploadID, {
-      results: assemblyResults,
-    })
-  }
-}
-
-module.exports = TransloaditResultsPlugin

+ 0 - 57
packages/@uppy/robodog/src/addDashboardPlugin.js

@@ -1,57 +0,0 @@
-const Dashboard = require('@uppy/dashboard')
-const has = require('@uppy/utils/lib/hasProperty')
-
-const dashboardOptionNames = [
-  'metaFields',
-  'width',
-  'height',
-  'thumbnailWidth',
-  'showLinkToFileUploadResult',
-  'showProgressDetails',
-  'hideRetryButton',
-  'hideCancelButton',
-  'hideUploadButton',
-  'hideProgressAfterFinish',
-  'note',
-  'disableStatusBar',
-  'disableInformer',
-  'disableThumbnailGenerator',
-  'showSelectedFiles',
-  'proudlyDisplayPoweredByUppy',
-  'theme',
-]
-
-const modalDashboardOptionNames = [
-  'trigger',
-  'closeModalOnClickOutside',
-  'closeAfterFinish',
-  'disablePageScrollWhenModalOpen',
-  'animateOpenClose',
-  'onRequestCloseModal',
-  'browserBackButtonClose',
-]
-
-function addDashboardPlugin (uppy, opts, overrideOpts) {
-  const dashboardOpts = {}
-  dashboardOptionNames.forEach((key) => {
-    if (has(opts, key)) {
-      dashboardOpts[key] = opts[key]
-    }
-  })
-
-  const inline = overrideOpts.inline == null ? dashboardOpts.inline : overrideOpts.inline
-  if (!inline) {
-    modalDashboardOptionNames.forEach((key) => {
-      if (has(opts, key)) {
-        dashboardOpts[key] = opts[key]
-      }
-    })
-  }
-
-  uppy.use(Dashboard, {
-    ...dashboardOpts,
-    ...overrideOpts,
-  })
-}
-
-module.exports = addDashboardPlugin

+ 0 - 105
packages/@uppy/robodog/src/addProviders.js

@@ -1,105 +0,0 @@
-/* eslint-disable global-require */
-const Transloadit = require('@uppy/transloadit')
-const has = require('@uppy/utils/lib/hasProperty')
-
-// We add providers to Robodog when they hit version 1.0.
-const remoteProviders = {
-  dropbox: require('@uppy/dropbox'),
-  'google-drive': require('@uppy/google-drive'),
-  instagram: require('@uppy/instagram'),
-  facebook: require('@uppy/facebook'),
-  onedrive: require('@uppy/onedrive'),
-  box: require('@uppy/box'),
-  unsplash: require('@uppy/unsplash'),
-  url: require('@uppy/url'),
-}
-
-const localProviders = {
-  webcam: require('@uppy/webcam'),
-  audio: require('@uppy/audio'),
-  'screen-capture': require('@uppy/screen-capture'),
-}
-
-const remoteProviderOptionNames = [
-  'companionUrl',
-  'companionAllowedHosts',
-  'companionHeaders',
-  'target',
-]
-
-// No shared options.
-const localProviderOptionNames = [
-  'target',
-]
-
-function addRemoteProvider (uppy, name, opts) {
-  const Provider = remoteProviders[name]
-  const providerOptions = {
-    // Default to the :tl: Companion servers.
-    companionUrl: Transloadit.COMPANION,
-    companionAllowedHosts: Transloadit.COMPANION_PATTERN,
-  }
-
-  // eslint-disable-next-line no-shadow
-  remoteProviderOptionNames.forEach((name) => {
-    if (has(opts, name)) providerOptions[name] = opts[name]
-  })
-
-  // Apply overrides for a specific provider plugin.
-  if (typeof opts[name] === 'object') {
-    const overrides = { ...opts[name] }
-
-    // Use the app's own oauth credentials instead of the shared
-    // Transloadit ones.
-    if (overrides.credentialsName) {
-      const { key } = opts.params.auth
-      overrides.companionKeysParams = {
-        key,
-        credentialsName: overrides.credentialsName,
-      }
-      delete overrides.credentialsName
-    }
-
-    Object.assign(providerOptions, overrides)
-  }
-
-  uppy.use(Provider, providerOptions)
-}
-
-function addLocalProvider (uppy, name, opts) {
-  const Provider = localProviders[name]
-  const providerOptions = {}
-
-  // eslint-disable-next-line no-shadow
-  localProviderOptionNames.forEach((name) => {
-    if (has(opts, name)) providerOptions[name] = opts[name]
-  })
-  // Apply overrides for a specific provider plugin.
-  if (typeof opts[name] === 'object') {
-    Object.assign(providerOptions, opts[name])
-  }
-
-  uppy.use(Provider, providerOptions)
-}
-
-function addProviders (uppy, names, opts = {}) {
-  names.forEach((name) => {
-    if (has(remoteProviders, name)) {
-      addRemoteProvider(uppy, name, opts)
-    } else if (has(localProviders, name)) {
-      addLocalProvider(uppy, name, opts)
-    } else {
-      const validNames = [
-        ...Object.keys(remoteProviders),
-        ...Object.keys(localProviders),
-      ]
-      const expectedNameString = validNames
-        .sort()
-        .map((validName) => `'${validName}'`)
-        .join(', ')
-      throw new Error(`Unexpected provider '${name}', expected one of [${expectedNameString}]`)
-    }
-  })
-}
-
-module.exports = addProviders

+ 0 - 32
packages/@uppy/robodog/src/addTransloaditPlugin.js

@@ -1,32 +0,0 @@
-const Transloadit = require('@uppy/transloadit')
-const has = require('@uppy/utils/lib/hasProperty')
-const TransloaditResults = require('./TransloaditResultsPlugin')
-
-const transloaditOptionNames = [
-  'service',
-  'waitForEncoding',
-  'waitForMetadata',
-  'alwaysRunAssembly',
-  'importFromUploadURLs',
-  'signature',
-  'params',
-  'fields',
-  'limit',
-  'locale',
-  'getAssemblyOptions',
-]
-
-function addTransloaditPlugin (uppy, opts) {
-  const transloaditOptions = {}
-  transloaditOptionNames.forEach((name) => {
-    if (has(opts, name)) transloaditOptions[name] = opts[name]
-  })
-  uppy.use(Transloadit, transloaditOptions)
-
-  // Adds a `results` key to the upload result data containing a flat array of all results from all Assemblies.
-  if (transloaditOptions.waitForEncoding) {
-    uppy.use(TransloaditResults)
-  }
-}
-
-module.exports = addTransloaditPlugin

+ 0 - 66
packages/@uppy/robodog/src/createUppy.js

@@ -1,66 +0,0 @@
-const Uppy = require('@uppy/core')
-const has = require('@uppy/utils/lib/hasProperty')
-
-const eventNames = {
-  // File management events
-  onFileAdded: 'file-added',
-  onFileRemoved: 'file-removed',
-
-  // Transloadit events
-  onImportError: 'transloadit:import-error',
-  onAssemblyCreated: 'transloadit:assembly-created',
-  onAssemblyExecuting: 'transloadit:assembly-executing',
-  onAssemblyError: 'transloadit:assembly-error',
-  onAssemblyComplete: 'transloadit:complete',
-  onResult: 'transloadit:result',
-
-  // Upload events
-  onStart: 'upload',
-  onPause: 'pause-all',
-  onFilePause: 'upload-pause',
-  onCancel: 'cancel-all',
-  onError: 'error', // mostly akin to promise rejection
-  onFileCancel: 'upload-cancel',
-  onFileProgress: 'upload-progress',
-  onFileError: 'upload-error',
-  onUploaded: 'transloadit:upload',
-  onComplete: 'complete', // mostly akin to promise resolution
-}
-
-const uppyOptionNames = [
-  'autoProceed',
-  'restrictions',
-  'meta',
-  'onBeforeFileAdded',
-  'onBeforeUpload',
-  'debug',
-]
-function createUppy (opts, overrides = {}) {
-  const uppyOptions = {}
-  uppyOptionNames.forEach((name) => {
-    if (has(opts, name)) uppyOptions[name] = opts[name]
-  })
-  Object.assign(uppyOptions, overrides)
-
-  const uppy = new Uppy(uppyOptions)
-
-  // Builtin event aliases
-  Object.keys(eventNames).forEach((optionName) => {
-    const eventName = eventNames[optionName]
-    if (typeof opts[optionName] === 'function') {
-      uppy.on(eventName, opts[optionName])
-    }
-  })
-
-  // Custom events (these should probably be added to core)
-  if (typeof opts.onProgress === 'function') {
-    uppy.on('upload-progress', () => {
-      const { totalProgress } = uppy.getState()
-      opts.onProgress.call(uppy, totalProgress)
-    })
-  }
-
-  return uppy
-}
-
-module.exports = createUppy

+ 0 - 30
packages/@uppy/robodog/src/dashboard.js

@@ -1,30 +0,0 @@
-const createUppy = require('./createUppy')
-const addDashboardPlugin = require('./addDashboardPlugin')
-const addTransloaditPlugin = require('./addTransloaditPlugin')
-const addProviders = require('./addProviders')
-
-function dashboard (target, opts = {}) {
-  const inline = opts.inline == null ? true : opts.inline
-
-  const pluginId = 'Dashboard'
-  const uppy = createUppy(opts)
-  addTransloaditPlugin(uppy, opts)
-  addDashboardPlugin(uppy, opts, {
-    id: pluginId,
-    inline,
-    target,
-    closeAfterFinish: false,
-  })
-
-  if (Array.isArray(opts.providers)) {
-    addProviders(uppy, opts.providers, {
-      ...opts,
-      // Install providers into the Dashboard.
-      target: uppy.getPlugin(pluginId),
-    })
-  }
-
-  return uppy
-}
-
-module.exports = dashboard

+ 0 - 109
packages/@uppy/robodog/src/form.js

@@ -1,109 +0,0 @@
-const Uppy = require('@uppy/core')
-const Form = require('@uppy/form')
-const StatusBar = require('@uppy/status-bar')
-const findDOMElement = require('@uppy/utils/lib/findDOMElement')
-const has = require('@uppy/utils/lib/hasProperty')
-const AttachFileInputs = require('./AttachFileInputs')
-const TransloaditFormResult = require('./TransloaditFormResult')
-const addDashboardPlugin = require('./addDashboardPlugin')
-const addTransloaditPlugin = require('./addTransloaditPlugin')
-const addProviders = require('./addProviders')
-
-const defaultLocaleStrings = {
-  chooseFiles: 'Choose files',
-}
-
-function mergeDefaultLocale (defaults, userProvided = {}) {
-  const strings = userProvided.strings || {}
-  return {
-    ...userProvided,
-    strings: { ...defaults, ...strings },
-  }
-}
-
-function form (target, opts) {
-  if (!opts) throw new TypeError('robodog.form: must provide an options object')
-
-  // eslint-disable-next-line no-param-reassign
-  opts = {
-    ...opts,
-    locale: mergeDefaultLocale(defaultLocaleStrings, opts.locale),
-  }
-
-  const uppy = new Uppy(opts)
-  addTransloaditPlugin(uppy, opts)
-
-  uppy.use(TransloaditFormResult, {
-    target,
-    transloaditPluginId: 'Transloadit',
-    name: 'transloadit',
-  })
-
-  let submitOnSuccess = true
-  if (has(opts, 'submitOnSuccess')) {
-    submitOnSuccess = !!opts.submitOnSuccess
-  }
-
-  const formOptions = {
-    target,
-    triggerUploadOnSubmit: true,
-    submitOnSuccess,
-    addResultToForm: false, // using custom implementation instead
-  }
-  if (has(opts, 'triggerUploadOnSubmit')) {
-    formOptions.triggerUploadOnSubmit = opts.triggerUploadOnSubmit
-  }
-
-  uppy.use(Form, formOptions)
-
-  const useDashboard = opts.dashboard || opts.modal
-
-  if (useDashboard) {
-    const dashboardTarget = findDOMElement(opts.dashboard) || document.body
-    const dashboardId = 'form:Dashboard'
-    const dashboardOpts = {
-      id: dashboardId,
-      target: dashboardTarget,
-    }
-    if (opts.modal) {
-      const trigger = 'input[type="file"]'
-      const button = document.createElement('button')
-      button.textContent = uppy.i18n('chooseFiles')
-      button.type = 'button'
-      const old = findDOMElement(trigger, findDOMElement(target))
-      old.parentNode.replaceChild(button, old)
-      dashboardOpts.inline = false
-      dashboardOpts.trigger = button
-    } else {
-      dashboardOpts.inline = true
-      dashboardOpts.hideUploadButton = true
-    }
-    addDashboardPlugin(uppy, opts, dashboardOpts)
-
-    if (Array.isArray(opts.providers)) {
-      addProviders(uppy, opts.providers, {
-        ...opts,
-        target: uppy.getPlugin(dashboardId),
-      })
-    }
-  } else {
-    uppy.use(AttachFileInputs, { target })
-  }
-
-  if (opts.statusBar) {
-    uppy.use(StatusBar, {
-      target: opts.statusBar,
-      // hide most of the things to keep our api simple,
-      // we can change this in the future if someone needs it
-      hideUploadButton: true,
-      hideAfterFinish: true,
-      hideRetryButton: true,
-      hidePauseResumeButtons: true,
-      hideCancelButtons: true,
-    })
-  }
-
-  return uppy
-}
-
-module.exports = form

+ 0 - 14
packages/@uppy/robodog/src/index.js

@@ -1,14 +0,0 @@
-const form = require('./form')
-const dashboard = require('./dashboard')
-const pick = require('./pick')
-const upload = require('./upload')
-
-module.exports = {
-  dashboard,
-  form,
-  pick,
-  upload,
-  // We need to keep the require here because we're using `babel-plugin-inline-package-json`.
-  // eslint-disable-next-line global-require
-  VERSION: require('../package.json').version,
-}

+ 0 - 52
packages/@uppy/robodog/src/pick.js

@@ -1,52 +0,0 @@
-const createUppy = require('./createUppy')
-const addDashboardPlugin = require('./addDashboardPlugin')
-const addTransloaditPlugin = require('./addTransloaditPlugin')
-const addProviders = require('./addProviders')
-
-const CANCEL = {}
-
-function pick (opts = {}) {
-  const target = opts.target || document.body
-
-  const pluginId = 'pick'
-  const uppy = createUppy(opts, {
-    allowMultipleUploadBatches: false,
-  })
-  addTransloaditPlugin(uppy, opts)
-  addDashboardPlugin(uppy, opts, {
-    id: pluginId,
-    target,
-    closeAfterFinish: true,
-  })
-
-  if (Array.isArray(opts.providers)) {
-    addProviders(uppy, opts.providers, {
-      ...opts,
-      // Install providers into the Dashboard.
-      target: uppy.getPlugin(pluginId),
-    })
-  }
-
-  return new Promise((resolve, reject) => {
-    uppy.on('complete', (result) => {
-      if (result.failed.length === 0) {
-        resolve(result)
-      }
-    })
-    uppy.on('error', reject)
-    uppy.on('cancel-all', () => reject(CANCEL))
-    uppy.getPlugin(pluginId)
-      .openModal()
-  }).then((result) => {
-    return result
-  }, (err) => {
-    if (err === CANCEL) {
-      uppy.getPlugin(pluginId)
-        .requestCloseModal()
-      return null
-    }
-    throw err
-  })
-}
-
-module.exports = pick

+ 0 - 7
packages/@uppy/robodog/src/style.scss

@@ -1,7 +0,0 @@
-@import '@uppy/core/src/_utils.scss';
-@import '@uppy/core/src/_variables.scss';
-@import '@uppy/core/src/style.scss';
-@import '@uppy/status-bar/src/style.scss';
-@import '@uppy/url/src/style.scss';
-@import '@uppy/webcam/src/style.scss';
-@import '@uppy/dashboard/src/style.scss';

+ 0 - 29
packages/@uppy/robodog/src/upload.js

@@ -1,29 +0,0 @@
-const toArray = require('@uppy/utils/lib/toArray')
-const createUppy = require('./createUppy')
-const addTransloaditPlugin = require('./addTransloaditPlugin')
-
-function upload (files, opts = {}) {
-  if (!Array.isArray(files) && typeof files.length === 'number') {
-    // eslint-disable-next-line no-param-reassign
-    files = toArray(files)
-  }
-
-  const uppy = createUppy(opts, {
-    allowMultipleUploads: false,
-  })
-
-  addTransloaditPlugin(uppy, opts)
-
-  files.forEach((file) => {
-    uppy.addFile({
-      data: file,
-      type: file.type,
-      name: file.name,
-      meta: file.meta || {},
-    })
-  })
-
-  return uppy.upload()
-}
-
-module.exports = upload

+ 0 - 66
packages/@uppy/robodog/types/index.d.ts

@@ -1,66 +0,0 @@
-import type { Uppy, UppyOptions, UploadResult } from '@uppy/core'
-import type { Assembly, Result, TransloaditOptions } from '@uppy/transloadit'
-import type { DashboardOptions } from '@uppy/dashboard'
-import type { DropboxOptions } from '@uppy/dropbox'
-import type { GoogleDriveOptions } from '@uppy/google-drive'
-import type { InstagramOptions } from '@uppy/instagram'
-import type { UrlOptions } from '@uppy/url'
-import type { WebcamOptions } from '@uppy/webcam'
-import type { OneDriveOptions } from '@uppy/onedrive'
-import type { FacebookOptions } from '@uppy/facebook'
-import type { FormOptions } from '@uppy/form'
-
-type Provider =
-  | 'dropbox'
-  | 'google-drive'
-  | 'instagram'
-  | 'url'
-  | 'webcam'
-  | 'onedrive'
-  | 'facebook'
-
-interface RobodogOptionsBase extends UppyOptions {
-  providers?: Provider[];
-  companionUrl?: string;
-  companionAllowedHosts?: string | RegExp | Array<string | RegExp>;
-  companionHeaders?: Record<string, string>;
-  dropbox?: DropboxOptions;
-  googleDrive?: GoogleDriveOptions;
-  instagram?: InstagramOptions;
-  url?: UrlOptions;
-  webcam?: WebcamOptions;
-  onedrive?: OneDriveOptions;
-  facebook?: FacebookOptions;
-}
-
-export type RobodogOptions = RobodogOptionsBase & TransloaditOptions & DashboardOptions;
-
-interface RobodogTransloaditResult extends Result {
-  assemblyId: string;
-  stepName: string;
-}
-
-interface RobodogResult extends UploadResult {
-  transloadit: Assembly[];
-  results?: RobodogTransloaditResult[];
-}
-
-export function pick(opts: RobodogOptions): Promise<RobodogResult>;
-
-type RobodogFormOptions =
-  RobodogOptions &
-  Pick<FormOptions, 'submitOnSuccess' | 'triggerUploadOnSubmit'> & {
-    modal?: boolean;
-    statusbar?: string;
-  };
-
-export function form(target: string, opts: RobodogFormOptions): Uppy;
-
-export function upload(
-  files: (File | (Blob & { name: string }))[],
-  opts: RobodogOptions
-): Promise<RobodogResult>;
-
-export function dashboard(target: string, opts: RobodogOptions): Uppy;
-
-export const VERSION: string

+ 0 - 85
packages/@uppy/robodog/types/index.test-d.ts

@@ -1,85 +0,0 @@
-import { Transloadit } from 'uppy' // eslint-disable-line import/no-extraneous-dependencies
-import { expectError } from 'tsd'
-import Robodog from '.' // eslint-disable-line import/no-unresolved
-
-/* eslint-disable @typescript-eslint/no-unused-vars */
-
-async function performPick () {
-  const { successful, failed, transloadit, results } = await Robodog.pick({
-    target: 'test',
-    errorReporting: true,
-    waitForEncoding: false,
-    waitForMetadata: false,
-    animateOpenClose: true,
-    inline: false,
-    params: {
-      auth: { key: '' },
-      template_id: '',
-    },
-    providers: ['webcam', 'url'],
-    webcam: {
-      countdown: false,
-      modes: [
-        'video-audio',
-        'video-only',
-        'audio-only',
-        'picture',
-      ],
-      mirror: true,
-    },
-    url: {
-      companionUrl: Transloadit.COMPANION,
-    },
-  })
-}
-
-const instance = Robodog.form('string', {
-  submitOnSuccess: true,
-  triggerUploadOnSubmit: false,
-  params: {
-    auth: { key: '' },
-    template_id: '',
-  },
-  modal: true,
-  closeAfterFinish: true,
-  statusbar: 'target',
-})
-
-// should not have access to omitted form settings
-expectError(Robodog.form('string', {
-  addResultToForm: false,
-}))
-
-// target is required
-expectError(Robodog.form({
-  addResultToForm: false,
-}))
-
-const files: File[] = []
-
-const upload = Robodog.upload(files, {
-  debug: true,
-  errorReporting: true,
-  params: {
-    auth: { key: '' },
-    template_id: '',
-  },
-})
-
-// Files array is required
-expectError(Robodog.upload({ debug: true }))
-
-const dashboard = Robodog.dashboard('selector', {
-  debug: true,
-  errorReporting: true,
-  params: {
-    auth: { key: '' },
-    template_id: '',
-  },
-})
-  .on('transloadit:result', (result) => {
-    console.log(result)
-  })
-
-// selector is required
-expectError(Robodog.dashboard({ }))

+ 0 - 1
private/release/afterVersionBump.js

@@ -65,6 +65,5 @@ const files = await globby([
 
 
 await updateVersions(files, [
 await updateVersions(files, [
   'uppy',
   'uppy',
-  '@uppy/robodog',
   '@uppy/locales',
   '@uppy/locales',
 ])
 ])

+ 1 - 65
private/release/choose-semverness.js

@@ -1,19 +1,11 @@
 /* eslint-disable no-continue */
 /* eslint-disable no-continue */
 
 
-import { createWriteStream, mkdirSync, readFileSync } from 'node:fs'
+import { createWriteStream, mkdirSync } from 'node:fs'
 import { spawnSync } from 'node:child_process'
 import { spawnSync } from 'node:child_process'
 
 
 import prompts from 'prompts'
 import prompts from 'prompts'
 import { TARGET_BRANCH } from './config.js'
 import { TARGET_BRANCH } from './config.js'
 
 
-const ROOT = new  URL('../../', import.meta.url)
-const PACKAGES_FOLDER = new URL('./packages/', ROOT)
-
-function getRobodogDependencies () {
-  const { dependencies } = JSON.parse(readFileSync(new URL('./@uppy/robodog/package.json', PACKAGES_FOLDER)))
-  return Object.keys(dependencies)
-}
-
 function maxSemverness (a, b) {
 function maxSemverness (a, b) {
   if (a === 'major' || b === 'major') return 'major'
   if (a === 'major' || b === 'major') return 'major'
   if (a === 'premajor' || b === 'premajor') return 'premajor'
   if (a === 'premajor' || b === 'premajor') return 'premajor'
@@ -35,13 +27,10 @@ export default async function pickSemverness (
   releaseFile.write('releases:\n')
   releaseFile.write('releases:\n')
 
 
   let uppySemverness
   let uppySemverness
-  let robodogSemverness
-  const robodogDeps = getRobodogDependencies()
 
 
   for await (const workspaceInfo of packagesList) {
   for await (const workspaceInfo of packagesList) {
     const { location, name } = JSON.parse(workspaceInfo)
     const { location, name } = JSON.parse(workspaceInfo)
     if (!name.startsWith('@uppy/')) continue
     if (!name.startsWith('@uppy/')) continue
-    if (name === '@uppy/robodog') continue
 
 
     const { stdout } = spawnSync(
     const { stdout } = spawnSync(
       'git',
       'git',
@@ -92,63 +81,10 @@ export default async function pickSemverness (
 
 
     releaseFile.write(`  ${JSON.stringify(name)}: ${response.value}\n`)
     releaseFile.write(`  ${JSON.stringify(name)}: ${response.value}\n`)
     uppySemverness = maxSemverness(uppySemverness, response.value)
     uppySemverness = maxSemverness(uppySemverness, response.value)
-    if (robodogDeps.includes(name)) {
-      robodogSemverness = maxSemverness(robodogSemverness, response.value)
-    }
   }
   }
 
 
   if (uppySemverness == null) throw new Error('No package to release, aborting.')
   if (uppySemverness == null) throw new Error('No package to release, aborting.')
 
 
-  {
-    // Robodog
-    const location = 'packages/@uppy/robodog'
-    const { stdout } = spawnSync(
-      'git',
-      [
-        '--no-pager',
-        'log',
-        '--format=- %s',
-        `${LAST_RELEASE_COMMIT}..`,
-        '--',
-        location,
-      ],
-      spawnOptions,
-    )
-    if (stdout.length === 0) {
-      if (robodogSemverness == null) {
-        console.log(`No commits since last release for @uppy/robodog, skipping.`)
-      } else {
-        console.log(`No commits since last release for @uppy/robodog, releasing as ${robodogSemverness}.`)
-        releaseFile.write(`  "@uppy/robodog": ${robodogSemverness}\n`)
-      }
-    } else {
-      console.log(
-        `Here are the commits that landed on @uppy/robodog since previous release:\n\n${stdout}\n`,
-      )
-      console.log(
-        `Check the web UI at https://github.com/transloadit/uppy/tree/${TARGET_BRANCH}/${encodeURI(
-          location,
-        )}.`,
-      )
-
-      const response = await prompts({
-        type: 'select',
-        name: 'value',
-        message: `What should be the semverness of next @uppy/robodog release?`,
-        choices: [
-          { title: 'Pre-release', value: 'prerelease' },
-          { title: 'Skip this package', value: '', disabled: robodogSemverness != null },
-          { title: 'Patch', value: 'patch', disabled: robodogSemverness === 'minor' || robodogSemverness === 'major' },
-          { title: 'Minor', value: 'minor', disabled: robodogSemverness === 'major' },
-          { title: 'Major', value: 'major' },
-        ],
-        initial: 2,
-      })
-
-      releaseFile.write(`  "@uppy/robodog": ${response.value}\n`)
-    }
-  }
-
   releaseFile.write(`  "uppy": ${uppySemverness}\n`)
   releaseFile.write(`  "uppy": ${uppySemverness}\n`)
   releaseFile.close()
   releaseFile.close()
 }
 }

+ 0 - 3
website/inject.js

@@ -12,7 +12,6 @@ const glob = require('glob')
 
 
 const webRoot = __dirname
 const webRoot = __dirname
 const uppyRoot = path.join(__dirname, '../packages/uppy')
 const uppyRoot = path.join(__dirname, '../packages/uppy')
-const robodogRoot = path.join(__dirname, '../packages/@uppy/robodog')
 const localesRoot = path.join(__dirname, '../packages/@uppy/locales')
 const localesRoot = path.join(__dirname, '../packages/@uppy/locales')
 
 
 const configPath = path.join(webRoot, '/themes/uppy/_config.yml')
 const configPath = path.join(webRoot, '/themes/uppy/_config.yml')
@@ -35,7 +34,6 @@ const defaultConfig = {
 const packages = [
 const packages = [
   // Bundles
   // Bundles
   'uppy',
   'uppy',
-  '@uppy/robodog',
   // Integrations
   // Integrations
   '@uppy/react',
   '@uppy/react',
   // Core
   // Core
@@ -139,7 +137,6 @@ async function injectBundles () {
   ])
   ])
   const cmds = [
   const cmds = [
     `cp -vfR ${path.join(uppyRoot, '/dist/*')} ${sourceUppy}`,
     `cp -vfR ${path.join(uppyRoot, '/dist/*')} ${sourceUppy}`,
-    `cp -vfR ${path.join(robodogRoot, '/dist/*')} ${sourceUppy}`,
     `cp -vfR ${path.join(localesRoot, '/dist/*')} ${sourceUppyLocales}`,
     `cp -vfR ${path.join(localesRoot, '/dist/*')} ${sourceUppyLocales}`,
   ].join(' && ')
   ].join(' && ')
 
 

+ 3 - 0
website/src/docs/robodog-dashboard.md

@@ -7,6 +7,9 @@ order: 4
 category: "File Processing"
 category: "File Processing"
 ---
 ---
 
 
+> **Warning**
+> Robodog has been deprecated, its usage is no longer recommended.
+
 Add the [Dashboard UI][dashboard] to your page, all wired up and ready to go! This is a wrapper around the [Transloadit][transloadit] and [Dashboard][dashboard] plugins. Unlike the [File Picker][file picker] API, this Dashboard is embedded directly into the page. Users can upload many files after another.
 Add the [Dashboard UI][dashboard] to your page, all wired up and ready to go! This is a wrapper around the [Transloadit][transloadit] and [Dashboard][dashboard] plugins. Unlike the [File Picker][file picker] API, this Dashboard is embedded directly into the page. Users can upload many files after another.
 
 
 ```html
 ```html

+ 3 - 0
website/src/docs/robodog-form.md

@@ -7,6 +7,9 @@ order: 2
 category: "File Processing"
 category: "File Processing"
 ---
 ---
 
 
+> **Warning**
+> Robodog has been deprecated, its usage is no longer recommended.
+
 Add resumable uploads and Transloadit’s processing to your existing HTML upload forms. Selected files will be uploaded to Transloadit, and the Assembly information will be submitted to your form endpoint.
 Add resumable uploads and Transloadit’s processing to your existing HTML upload forms. Selected files will be uploaded to Transloadit, and the Assembly information will be submitted to your form endpoint.
 
 
 ```html
 ```html

+ 3 - 0
website/src/docs/robodog-picker.md

@@ -7,6 +7,9 @@ order: 1
 category: "File Processing"
 category: "File Processing"
 ---
 ---
 
 
+> **Warning**
+> Robodog has been deprecated, its usage is no longer recommended.
+
 Show a modal UI that allows users to pick files from their device and from the web. It uploads files to Transloadit for processing.
 Show a modal UI that allows users to pick files from their device and from the web. It uploads files to Transloadit for processing.
 
 
 ```js
 ```js

+ 3 - 0
website/src/docs/robodog-upload.md

@@ -7,6 +7,9 @@ order: 3
 category: "File Processing"
 category: "File Processing"
 ---
 ---
 
 
+> **Warning**
+> Robodog has been deprecated, its usage is no longer recommended.
+
 Upload files straight to Transloadit from your own custom UI. Give us an array of files, and we’ll give you an array of results!
 Upload files straight to Transloadit from your own custom UI. Give us an array of files, and we’ll give you an array of results!
 
 
 ```js
 ```js

+ 5 - 2
website/src/docs/robodog.md

@@ -9,6 +9,9 @@ category: "File Processing"
 tagline: "user friendly abstraction to do file processing with Transloadit"
 tagline: "user friendly abstraction to do file processing with Transloadit"
 ---
 ---
 
 
+> **Warning**
+> Robodog has been deprecated, its usage is no longer recommended.
+
 [Transloadit][transloadit] is a service that helps you handle file uploads, resize, crop and watermark your images, make GIFs, transcode your videos, extract thumbnails, generate audio waveforms, and so much more. In short, [Transloadit][transloadit] is the Swiss Army Knife for your files.
 [Transloadit][transloadit] is a service that helps you handle file uploads, resize, crop and watermark your images, make GIFs, transcode your videos, extract thumbnails, generate audio waveforms, and so much more. In short, [Transloadit][transloadit] is the Swiss Army Knife for your files.
 
 
 Robodog is an Uppy-based library that helps you talk to the Transloadit API. It includes a modal UI file picker with support for imports from third-party services, integration with HTML forms, and more. Because it’s based on Uppy, you can add any existing Uppy plugin to add more functionality.
 Robodog is an Uppy-based library that helps you talk to the Transloadit API. It includes a modal UI file picker with support for imports from third-party services, integration with HTML forms, and more. Because it’s based on Uppy, you can add any existing Uppy plugin to add more functionality.
@@ -31,8 +34,8 @@ import '@uppy/robodog/dist/robodog.css'
 If you are not using a bundler, you can also import Robodog using an HTML script tag.
 If you are not using a bundler, you can also import Robodog using an HTML script tag.
 
 
 ```html
 ```html
-<link rel="stylesheet" href="https://releases.transloadit.com/uppy/robodog/v3.0.0-beta.4/robodog.min.css">
-<script src="https://releases.transloadit.com/uppy/robodog/v3.0.0-beta.4/robodog.min.js"></script>
+<link rel="stylesheet" href="https://releases.transloadit.com/uppy/robodog/v2.9.2/robodog.min.css">
+<script src="https://releases.transloadit.com/uppy/robodog/v2.9.2/robodog.min.js"></script>
 <!-- you can now use: window.Robodog.pick() -->
 <!-- you can now use: window.Robodog.pick() -->
 ```
 ```
 
 

+ 0 - 1
website/themes/uppy/layout/partials/docs_menu.ejs

@@ -7,7 +7,6 @@
       { category: 'UI Elements', path: 'docs/dashboard/', link: false },
       { category: 'UI Elements', path: 'docs/dashboard/', link: false },
       { category: 'Sources', path: 'docs/drag-drop/', link: false, tagline: '(remote sources are denoted with (c) and require <a href="/docs/companion/">Companion</a>' },
       { category: 'Sources', path: 'docs/drag-drop/', link: false, tagline: '(remote sources are denoted with (c) and require <a href="/docs/companion/">Companion</a>' },
       { category: 'Destinations', path: 'docs/tus/', link: false },
       { category: 'Destinations', path: 'docs/tus/', link: false },
-      { category: 'File Processing', path: 'docs/robodog/', link: true },
       { category: 'Miscellaneous', path: 'docs/form/', link: false },
       { category: 'Miscellaneous', path: 'docs/form/', link: false },
       { category: 'Community Projects', path: 'docs/community-projects/', link: true },
       { category: 'Community Projects', path: 'docs/community-projects/', link: true },
       { category: 'React', path: 'docs/react/', link: true },
       { category: 'React', path: 'docs/react/', link: true },

+ 0 - 29
yarn.lock

@@ -8809,35 +8809,6 @@ __metadata:
   languageName: unknown
   languageName: unknown
   linkType: soft
   linkType: soft
 
 
-"@uppy/robodog@workspace:packages/@uppy/robodog":
-  version: 0.0.0-use.local
-  resolution: "@uppy/robodog@workspace:packages/@uppy/robodog"
-  dependencies:
-    "@uppy/audio": "workspace:^"
-    "@uppy/box": "workspace:^"
-    "@uppy/core": "workspace:^"
-    "@uppy/dashboard": "workspace:^"
-    "@uppy/dropbox": "workspace:^"
-    "@uppy/facebook": "workspace:^"
-    "@uppy/form": "workspace:^"
-    "@uppy/google-drive": "workspace:^"
-    "@uppy/instagram": "workspace:^"
-    "@uppy/onedrive": "workspace:^"
-    "@uppy/screen-capture": "workspace:^"
-    "@uppy/status-bar": "workspace:^"
-    "@uppy/transloadit": "workspace:^"
-    "@uppy/unsplash": "workspace:^"
-    "@uppy/url": "workspace:^"
-    "@uppy/utils": "workspace:^"
-    "@uppy/webcam": "workspace:^"
-    abortcontroller-polyfill: ^1.7.3
-    core-js: ~3.24.0
-    md-gum-polyfill: ^1.0.0
-    resize-observer-polyfill: ^1.5.1
-    whatwg-fetch: ^3.6.2
-  languageName: unknown
-  linkType: soft
-
 "@uppy/screen-capture@workspace:^, @uppy/screen-capture@workspace:packages/@uppy/screen-capture":
 "@uppy/screen-capture@workspace:^, @uppy/screen-capture@workspace:packages/@uppy/screen-capture":
   version: 0.0.0-use.local
   version: 0.0.0-use.local
   resolution: "@uppy/screen-capture@workspace:packages/@uppy/screen-capture"
   resolution: "@uppy/screen-capture@workspace:packages/@uppy/screen-capture"