Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/main'
Browse files Browse the repository at this point in the history
  • Loading branch information
aduh95 committed Mar 11, 2024
2 parents 42d6cfe + 536d614 commit 785fa3f
Show file tree
Hide file tree
Showing 121 changed files with 2,727 additions and 1,293 deletions.
1 change: 1 addition & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -340,6 +340,7 @@ module.exports = {
{
files: [
'*.test.js',
'*.test.ts',
'test/endtoend/*.js',
'bin/**.js',
],
Expand Down
1 change: 1 addition & 0 deletions packages/@uppy/box/.npmignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
tsconfig.*
62 changes: 49 additions & 13 deletions packages/@uppy/box/src/Box.jsx → packages/@uppy/box/src/Box.tsx
Original file line number Diff line number Diff line change
@@ -1,30 +1,66 @@
import { UIPlugin } from '@uppy/core'
import { Provider, getAllowedHosts, tokenStorage } from '@uppy/companion-client'
import {
Provider,
getAllowedHosts,
tokenStorage,
type CompanionPluginOptions,
} from '@uppy/companion-client'
import { UIPlugin, Uppy } from '@uppy/core'
import { ProviderViews } from '@uppy/provider-views'
import { h } from 'preact'
import { h, type ComponentChild } from 'preact'

import locale from './locale.js'
import type { UppyFile, Body, Meta } from '@uppy/utils/lib/UppyFile'
import type { UnknownProviderPluginState } from '@uppy/core/lib/Uppy.ts'
import locale from './locale.ts'
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore We don't want TS to generate types for the package.json
import packageJson from '../package.json'

export default class Box extends UIPlugin {
export type BoxOptions = CompanionPluginOptions

export default class Box<M extends Meta, B extends Body> extends UIPlugin<
BoxOptions,
M,
B,
UnknownProviderPluginState
> {
static VERSION = packageJson.version

constructor (uppy, opts) {
icon: () => JSX.Element

provider: Provider<M, B>

view: ProviderViews<M, B>

storage: typeof tokenStorage

files: UppyFile<M, B>[]

constructor(uppy: Uppy<M, B>, opts: BoxOptions) {
super(uppy, opts)
this.id = this.opts.id || 'Box'
this.type = 'acquirer'
this.storage = this.opts.storage || tokenStorage
this.files = []
this.icon = () => (
<svg className="uppy-DashboardTab-iconBox" aria-hidden="true" focusable="false" width="32" height="32" viewBox="0 0 32 32">
<svg
className="uppy-DashboardTab-iconBox"
aria-hidden="true"
focusable="false"
width="32"
height="32"
viewBox="0 0 32 32"
>
<g fill="currentcolor" fillRule="nonzero">
<path d="m16.4 13.5c-1.6 0-3 0.9-3.7 2.2-0.7-1.3-2.1-2.2-3.7-2.2-1 0-1.8 0.3-2.5 0.8v-3.6c-0.1-0.3-0.5-0.7-1-0.7s-0.8 0.4-0.8 0.8v7c0 2.3 1.9 4.2 4.2 4.2 1.6 0 3-0.9 3.7-2.2 0.7 1.3 2.1 2.2 3.7 2.2 2.3 0 4.2-1.9 4.2-4.2 0.1-2.4-1.8-4.3-4.1-4.3m-7.5 6.8c-1.4 0-2.5-1.1-2.5-2.5s1.1-2.5 2.5-2.5 2.5 1.1 2.5 2.5-1.1 2.5-2.5 2.5m7.5 0c-1.4 0-2.5-1.1-2.5-2.5s1.1-2.5 2.5-2.5 2.5 1.1 2.5 2.5-1.1 2.5-2.5 2.5" />
<path d="m27.2 20.6l-2.3-2.8 2.3-2.8c0.3-0.4 0.2-0.9-0.2-1.2s-1-0.2-1.3 0.2l-2 2.4-2-2.4c-0.3-0.4-0.9-0.4-1.3-0.2-0.4 0.3-0.5 0.8-0.2 1.2l2.3 2.8-2.3 2.8c-0.3 0.4-0.2 0.9 0.2 1.2s1 0.2 1.3-0.2l2-2.4 2 2.4c0.3 0.4 0.9 0.4 1.3 0.2 0.4-0.3 0.4-0.8 0.2-1.2" />
</g>
</svg>
)

this.opts.companionAllowedHosts = getAllowedHosts(this.opts.companionAllowedHosts, this.opts.companionUrl)
this.opts.companionAllowedHosts = getAllowedHosts(
this.opts.companionAllowedHosts,
this.opts.companionUrl,
)
this.provider = new Provider(uppy, {
companionUrl: this.opts.companionUrl,
companionHeaders: this.opts.companionHeaders,
Expand All @@ -44,7 +80,7 @@ export default class Box extends UIPlugin {
this.render = this.render.bind(this)
}

install () {
install(): void {
this.view = new ProviderViews(this, {
provider: this.provider,
loadAllFiles: true,
Expand All @@ -56,19 +92,19 @@ export default class Box extends UIPlugin {
}
}

uninstall () {
uninstall(): void {
this.view.tearDown()
this.unmount()
}

onFirstRender () {
return Promise.all([
async onFirstRender(): Promise<void> {
await Promise.all([
this.provider.fetchPreAuthToken(),
this.view.getFolder(),
])
}

render (state) {
render(state: unknown): ComponentChild {
return this.view.render(state)
}
}
1 change: 0 additions & 1 deletion packages/@uppy/box/src/index.js

This file was deleted.

1 change: 1 addition & 0 deletions packages/@uppy/box/src/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { default } from './Box.tsx'
File renamed without changes.
35 changes: 35 additions & 0 deletions packages/@uppy/box/tsconfig.build.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
{
"extends": "../../../tsconfig.shared",
"compilerOptions": {
"noImplicitAny": false,
"outDir": "./lib",
"paths": {
"@uppy/companion-client": ["../companion-client/src/index.js"],
"@uppy/companion-client/lib/*": ["../companion-client/src/*"],
"@uppy/provider-views": ["../provider-views/src/index.js"],
"@uppy/provider-views/lib/*": ["../provider-views/src/*"],
"@uppy/utils/lib/*": ["../utils/src/*"],
"@uppy/core": ["../core/src/index.js"],
"@uppy/core/lib/*": ["../core/src/*"]
},
"resolveJsonModule": false,
"rootDir": "./src",
"skipLibCheck": true
},
"include": ["./src/**/*.*"],
"exclude": ["./src/**/*.test.ts"],
"references": [
{
"path": "../companion-client/tsconfig.build.json"
},
{
"path": "../provider-views/tsconfig.build.json"
},
{
"path": "../utils/tsconfig.build.json"
},
{
"path": "../core/tsconfig.build.json"
}
]
}
31 changes: 31 additions & 0 deletions packages/@uppy/box/tsconfig.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
{
"extends": "../../../tsconfig.shared",
"compilerOptions": {
"emitDeclarationOnly": false,
"noEmit": true,
"paths": {
"@uppy/companion-client": ["../companion-client/src/index.js"],
"@uppy/companion-client/lib/*": ["../companion-client/src/*"],
"@uppy/provider-views": ["../provider-views/src/index.js"],
"@uppy/provider-views/lib/*": ["../provider-views/src/*"],
"@uppy/utils/lib/*": ["../utils/src/*"],
"@uppy/core": ["../core/src/index.js"],
"@uppy/core/lib/*": ["../core/src/*"],
},
},
"include": ["./package.json", "./src/**/*.*"],
"references": [
{
"path": "../companion-client/tsconfig.build.json",
},
{
"path": "../provider-views/tsconfig.build.json",
},
{
"path": "../utils/tsconfig.build.json",
},
{
"path": "../core/tsconfig.build.json",
},
],
}
12 changes: 12 additions & 0 deletions packages/@uppy/companion-client/src/CompanionPluginOptions.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import type { UIPluginOptions } from '@uppy/core'
import type { tokenStorage } from '.'

export interface CompanionPluginOptions extends UIPluginOptions {
title?: string
storage?: typeof tokenStorage
companionUrl: string
companionHeaders?: Record<string, string>
companionKeysParams?: Record<string, string>
companionCookiesRule?: 'same-origin' | 'include'
companionAllowedHosts?: string | RegExp | (string | RegExp)[]
}
7 changes: 2 additions & 5 deletions packages/@uppy/companion-client/src/Provider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,14 @@ import type {
} from '@uppy/utils/lib/CompanionClientProvider'
import type { UnknownProviderPlugin } from '@uppy/core/lib/Uppy.ts'
import RequestClient, { authErrorStatusCode } from './RequestClient.ts'
import * as tokenStorage from './tokenStorage.ts'
import type { CompanionPluginOptions } from '.'

// TODO: remove deprecated options in next major release
export interface Opts extends PluginOpts {
export interface Opts extends PluginOpts, CompanionPluginOptions {
/** @deprecated */
serverUrl?: string
/** @deprecated */
serverPattern?: string
companionUrl: string
companionAllowedHosts?: string | RegExp | Array<string | RegExp>
storage?: typeof tokenStorage
pluginId: string
name?: string
supportsRefreshToken?: boolean
Expand Down
2 changes: 1 addition & 1 deletion packages/@uppy/companion-client/src/getAllowedHosts.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
export default function getAllowedHosts(
hosts: string | RegExp | Array<string | RegExp>,
hosts: string | RegExp | Array<string | RegExp> | undefined,
url: string,
): string | RegExp | Array<string | RegExp> {
if (hosts) {
Expand Down
4 changes: 2 additions & 2 deletions packages/@uppy/companion-client/src/index.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
'use strict'

/**
* Manages communications with Companion
*/
Expand All @@ -12,5 +10,7 @@ export { default as getAllowedHosts } from './getAllowedHosts.ts'

export * as tokenStorage from './tokenStorage.ts'

export type { CompanionPluginOptions } from './CompanionPluginOptions.ts'

// TODO: remove in the next major
export { default as Socket } from './Socket.ts'
2 changes: 1 addition & 1 deletion packages/@uppy/core/src/Uppy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ export type UnknownProviderPluginState = {
authenticated: boolean | undefined
breadcrumbs: {
requestPath: string
name: string
name?: string
id?: string
}[]
didFirstRender: boolean
Expand Down
1 change: 1 addition & 0 deletions packages/@uppy/drag-drop/.npmignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
tsconfig.*
Loading

0 comments on commit 785fa3f

Please sign in to comment.