Commit graph

2405 commits

Author SHA1 Message Date
Dominik Schmidt
891e176bd5
@uppy/provider-views: fix ProviderView error on empty plugin.icon (#4553)
The dashboard provides a default/fallback icon for plugins without icon. The ProviderView does not - so a plugin that can be shown just fine on the overview panel, produces an error when it's actually opened. Let's use the same fallback icon.
2023-08-01 10:17:03 +02:00
Dominik Schmidt
54ad2e4419
Invoke headers function for remote uploads (#4596)
Invoke headers function for remote uploads
2023-07-31 16:37:41 +02:00
Dominik Schmidt
22d9381dd2
@uppy/companion: Unify redis initialization (#4597)
* Unify redis initialization

* Incorporate PR feedback

* Remove comment that made sense when redisOptions was set to null

---------

Co-authored-by: Mikael Finstad <finstaden@gmail.com>
2023-07-31 16:36:34 +02:00
rmoura-92
f639a6745e
@uppy/companion: allow dynamic S3 bucket (#4579)
* uppy upload s3 controller getBucket function

* Simplify

---------

Co-authored-by: Ricardo Moura <ricardo.moura@lunajets.com>
Co-authored-by: Mikael Finstad <finstaden@gmail.com>
2023-07-31 15:59:22 +02:00
Antoine du Hamel
9d49a22a06
e2e: add test for retrying and pausing uploads (#3599) 2023-07-25 15:10:42 +02:00
github-actions[bot]
15245833e9
Release: uppy@3.13.1 (#4600)
| Package                | Version | Package                | Version |
| ---------------------- | ------- | ---------------------- | ------- |
| @uppy/aws-s3-multipart |   3.5.2 | uppy                   |  3.13.1 |
| @uppy/utils            |   5.4.3 |                        |         |

- @uppy/utils: align version of `preact` with the UI plugins (Antoine du Hamel / #4599)
- @uppy/aws-s3-multipart: refresh file before calling user-defined functions (mjlumetta / #4557)
- @uppy/utils: align version of `preact` with the UI plugins (Antoine du Hamel / #4599)
2023-07-24 20:43:34 +00:00
Antoine du Hamel
090b974c1c
@uppy/utils: align version of preact with the UI plugins (#4599) 2023-07-24 21:34:57 +02:00
mjlumetta
fa19db7858
@uppy/aws-s3-multipart: refresh file before calling user-defined functions (#4557)
- https://community.transloadit.com/t/custom-file-metadata-not-persisted-across-user-defined-functions-in-aws-s3-multipart/16661/3
- https://github.com/transloadit/uppy/issues/4533

Co-authored-by: Madeline Lumetta <mlumetta@loc.gov>
2023-07-20 23:27:32 +02:00
github-actions[bot]
514690781a
Release: uppy@3.13.0 (#4595)
| Package                | Version | Package                | Version |
| ---------------------- | ------- | ---------------------- | ------- |
| @uppy/aws-s3-multipart |   3.5.1 | @uppy/provider-views   |   3.4.1 |
| @uppy/companion-client |   3.2.2 | @uppy/status-bar       |   3.2.3 |
| @uppy/dashboard        |   3.5.0 | @uppy/utils            |   5.4.2 |
| @uppy/locales          |   3.2.4 | uppy                   |  3.13.0 |

- meta: Add i18n to CONTRIBUTING.md (Mikael Finstad / #4591)
- @uppy/provider-views: Add VirtualList to ProviderView (Merlijn Vos / #4566)
- @uppy/provider-views: fix race conditions with folder loading (Mikael Finstad / #4578)
- @uppy/status-bar: fix ETA when status bar is installed during upload (Antoine du Hamel / #4588)
- @uppy/provider-views: fix infinite folder loading  (Mikael Finstad / #4590)
- meta: examples/aws: client-side signing (Antoine du Hamel / #4463)
- meta: Bump word-wrap from 1.2.3 to 1.2.4 (dependabot[bot] / #4586)
- meta: e2e: increase `requestTimeout` to 16s (Antoine du Hamel / #4587)
- @uppy/locales: update zh_TW translation (5idereal / #4583)
- @uppy/aws-s3-multipart: fix crash on pause/resume (Merlijn Vos / #4581)
- @uppy/aws-s3-multipart: do not access `globalThis.crypto` on the top-level (Bryan J Swift / #4584)
2023-07-20 14:26:23 +00:00
Merlijn Vos
b1fdf8e926
Add VirtualList to ProviderView (#4566)
* Add VirtualList to ProviderView

* Import correctly from lib

* fixup! Import correctly from lib

* fixup! fixup! Import correctly from lib

* Really do it this time

* Only virtual list for lists

* fixup! Only virtual list for lists

* Fix scroll

* Set hardcoded width/height for img, as recommened

---------

Co-authored-by: Artur Paikin <artur@arturpaikin.com>
2023-07-20 15:49:43 +02:00
Mikael Finstad
ecdecd1dd6
@uppy/provider-views: fix race conditions with folder loading (#4578)
* fix multiple race conditions

multiple race conditions / bugs:
- If you open a folder in e.g. facebook and you scroll down, triggering the infinity scroll, and then go back (one folder up) before the infinity scroll has finished loading, you could end up with the contents of the scrolled folder instead of the previous folder
- if you select a folder structure (e.g. deep structure with many files) and then click "cancel" while loading, it will still continue loading recursively in the background even after cancelled and potentially cause more issues down the road

* Apply suggestions from code review

Co-authored-by: Antoine du Hamel <antoine@transloadit.com>

* merge conditions

---------

Co-authored-by: Antoine du Hamel <antoine@transloadit.com>
Co-authored-by: Murderlon <merlijn@soverin.net>
2023-07-20 15:20:48 +02:00
Antoine du Hamel
49cf48d541
@uppy/status-bar: fix ETA when status bar is installed during upload (#4588)
* @uppy/status-bar: fix ETA when status bar is installed during upload

* Apply suggestions from code review
2023-07-20 13:09:45 +02:00
Mikael Finstad
58c9137bf1
@uppy/provider-views: fix infinite folder loading (#4590)
fix infinite loading bug

this.nextPagePath
2023-07-20 13:09:22 +02:00
5idereal
a7fe94e030
@uppy/locales: update zh_TW translation (#4583) 2023-07-19 11:23:51 +02:00
Merlijn Vos
8955081b06
@uppy/aws-s3-multipart: fix crash on pause/resume (#4581)
Co-authored-by: Antoine du Hamel <duhamelantoine1995@gmail.com>
2023-07-19 03:56:41 +02:00
Bryan J Swift
4ae7810a40
@uppy/aws-s3-multipart: do not access globalThis.crypto on the top-level (#4584)
Referencing `globalThis` before the functions are called causes `require` errors in server rendered environments as soon as the `createSignedURL.js` file is imported because `globalThis.crypto` is `undefined`.
2023-07-19 03:53:36 +02:00
github-actions[bot]
a93e6cdd4d
Release: uppy@3.12.0 (#4574)
| Package                | Version | Package                | Version |
| ---------------------- | ------- | ---------------------- | ------- |
| @uppy/aws-s3-multipart |   3.5.0 | @uppy/locales          |   3.2.3 |
| @uppy/box              |   2.1.2 | @uppy/onedrive         |   3.1.2 |
| @uppy/companion        |   4.7.0 | @uppy/provider-views   |   3.4.0 |
| @uppy/companion-client |   3.2.1 | @uppy/react            |   3.1.3 |
| @uppy/core             |   3.3.1 | @uppy/status-bar       |   3.2.2 |
| @uppy/dashboard        |   3.4.2 | @uppy/transloadit      |   3.2.0 |
| @uppy/dropbox          |   3.1.2 | @uppy/utils            |   5.4.1 |
| @uppy/google-drive     |   3.2.0 | uppy                   |  3.12.0 |

- @uppy/transloadit: fix error message (Antoine du Hamel / #4572)
- @uppy/provider-views: add support for remote file paths (Mikael Finstad / #4537)
- @uppy/transloadit: implement Server-sent event API (Antoine du Hamel / #4098)
- @uppy/aws-s3-multipart: add support for signing on the client (Antoine du Hamel / #4519)
- @uppy/react: allow `id` from props (Merlijn Vos / #4570)
- @uppy/aws-s3-multipart: fix lint warning (Antoine du Hamel / #4569)
- @uppy/status-bar: listen to `upload` event instead of button click (Antoine du Hamel / #4563)
- @uppy/aws-s3-multipart: fix support for non-multipart PUT upload (Antoine du Hamel / #4568)
- @uppy/companion: fix esm imports in production/transpiled builds (Dominik Schmidt / #4561)
- @uppy/locales: fix expression and spelling errors in es_ES (Rubén / #4567)
- meta: upgrade dev dependencies (dependabot\[bot\])
- meta: Don't use triage label (Artur Paikin / #4552)
- meta: update Cypress (Antoine du Hamel / #4562)
- @uppy/box,@uppy/companion,@uppy/dropbox,@uppy/google-drive,@uppy/onedrive,@uppy/provider-views: Load Google Drive / OneDrive lists 5-10x faster & always load all files (Merlijn Vos / #4513)
- @uppy/locales: Add missing pt-BR locales for ImageEditor plugin (Mateus Cruz / #4558)
2023-07-13 16:34:41 +00:00
Antoine du Hamel
d09145f97e
@uppy/transloadit: fix error message (#4572) 2023-07-13 18:12:57 +02:00
Mikael Finstad
e054a25ab2
@uppy/provider-views: add support for remote file paths (#4537)
Fixes: https://github.com/transloadit/uppy/issues/4034
Co-authored-by: Merlijn Vos <merlijn@soverin.net>
2023-07-13 18:12:42 +02:00
Antoine du Hamel
9ac5842fbe
@uppy/transloadit: implement Server-sent event API (#4098) 2023-07-13 17:18:39 +02:00
Antoine du Hamel
a83373b83d
@uppy/aws-s3-multipart: add support for signing on the client (#4519) 2023-07-13 12:16:13 +02:00
Merlijn Vos
f71df146fa
@uppy/react: allow id from props (#4570)
Fixes: https://github.com/transloadit/uppy/issues/4482
2023-07-13 12:14:16 +02:00
Antoine du Hamel
8f63df3d63
@uppy/aws-s3-multipart: fix lint warning (#4569) 2023-07-12 10:30:40 +02:00
Antoine du Hamel
10d0d0d0c6
@uppy/status-bar: listen to upload event instead of button click (#4563)
This ensures that the internal state of the status bar will be correct
when the upload is started programmatically rather than using the
Dashboard UI.
2023-07-11 16:16:32 +02:00
Antoine du Hamel
6ae15f441e
@uppy/aws-s3-multipart: fix support for non-multipart PUT upload (#4568) 2023-07-11 16:16:10 +02:00
Dominik Schmidt
7dcf8c2f36
@uppy/companion: fix esm imports in production/transpiled builds (#4561)
TypeScript is used to transpile companion to CommonJS.
`require()` in CommonJS is synchronous and cannot be used to import packages using ESM syntax, which are asynchronous by spec.
If you want to import an ESM package, you need to use asynchronous dynamic `import()`.
By default TypeScript transpiles this to `Promise.resolve().then(() => require('webdav'))` which is obviously using synchronous `require` internally and breaks the import of ESM packages.
We need to switch `moduleResolution` to `node16` to make TypeScript not transpile the `import()` call.
2023-07-11 15:21:49 +02:00
Rubén
bb9af8e496
@uppy/locales: fix expression and spelling errors in es_ES (#4567) 2023-07-11 15:20:41 +02:00
Merlijn Vos
9efd865a1f
Load Google Drive / OneDrive lists 5-10x faster & always load all files (#4513)
Co-authored-by: Mikael Finstad <finstaden@gmail.com>
Co-authored-by: Artur Paikin <artur@arturpaikin.com>
2023-07-10 10:15:35 +02:00
Mateus Cruz
c7a77a92ba
Add missing pt-BR locales for ImageEditor plugin (#4558)
Upon testing multiple locales, I realized some options are falling back to English for the editor plugin.
I did some digging and found out that the locales are missing in pt-BR. This should do it.
I am a native Brazilian Portuguese speaker but please feel free to have someone review this translations if necessary.
Hope this helps!
2023-07-07 12:22:40 +01:00
github-actions[bot]
ded685e487
Release: uppy@3.11.0 (#4550)
| Package                | Version | Package                | Version |
| ---------------------- | ------- | ---------------------- | ------- |
| @uppy/aws-s3           |   3.2.1 | @uppy/golden-retriever |   3.1.0 |
| @uppy/aws-s3-multipart |   3.4.1 | @uppy/status-bar       |   3.2.1 |
| @uppy/companion        |   4.6.0 | @uppy/tus              |   3.1.2 |
| @uppy/companion-client |   3.2.0 | @uppy/xhr-upload       |   3.3.1 |
| @uppy/core             |   3.3.0 | uppy                   |  3.11.0 |

- @uppy/companion: fix infinite recursion in uploader test (Mikael Finstad / #4536)
- @uppy/xhr-upload: export `Headers` type (Masum ULU / #4549)
- @uppy/aws-s3-multipart: increase priority of abort and complete (Stefan Schonert / #4542)
- @uppy/aws-s3: fix remote uploads (Antoine du Hamel / #4546)
- meta: use `corepack yarn` instead of `npm` to launch E2E (Antoine du Hamel / #4545)
- @uppy/aws-s3-multipart: fix upload retry using an outdated ID (Antoine du Hamel / #4544)
- @uppy/status-bar: remove throttled component (Artur Paikin / #4396)
- @uppy/aws-s3-multipart: fix Golden Retriever integration (Antoine du Hamel / #4526)
- examples/aws-nodejs: merge multipart and non-multipart examples (Antoine du Hamel / #4521)
- @uppy/companion: bump semver from 7.3.7 to 7.5.3 (dependabot[bot] / #4529)
- @uppy/aws-s3-multipart: add types to internal fields (Antoine du Hamel / #4535)
- examples/aws-nodejs: update README (Antoine du Hamel / #4534)
- examples/aws-nodejs: showcase an example without preflight requests (Antoine du Hamel / #4516)
- @uppy/aws-s3-multipart: fix pause/resume (Antoine du Hamel / #4523)
- @uppy/status-bar: fix ETA when Uppy recovers its state (Antoine du Hamel / #4525)
- @uppy/aws-s3-multipart: fix resume single-chunk multipart uploads (Antoine du Hamel / #4528)
- @uppy/companion: fix part listing in s3 (Antoine du Hamel / #4524)
- example/aws-php: make it forward-compatible with the next Uppy major (Antoine du Hamel / #4522)
- @uppy/golden-retriever: refactor to modernize the codebase (Antoine du Hamel / #4520)
- examples/aws-nodejs: upgrade to AWS-SDK v3 (Antoine du Hamel / #4515)
- @uppy/companion: implement refresh for authentication tokens (Mikael Finstad / #4448)
- @uppy/aws-s3-multipart: disable pause/resume for remote uploads in the UI (Artur Paikin / #4500)
- @uppy/tus: retry on 423 HTTP error code (Antoine du Hamel / #4512)
2023-07-06 09:44:47 +00:00
Mikael Finstad
a78679a810
@uppy/companion: fix infinite recursion in uploader test (#4536)
* fix stack size exceeded

* remove invalid assertion

success event never seems to have included "bytesTotal" in payload
this assertion was mistakenly moved from onProgress to success in 
1b5c0d7d4b.
2023-07-06 11:24:43 +02:00
Masum ULU
8afe5338bd
@uppy/xhr-upload: export Headers type (#4549)
Fixes: https://github.com/transloadit/uppy/issues/4547
2023-07-06 11:23:14 +02:00
Stefan Schonert
8604178bfc
@uppy/aws-s3-multipart: increase priority of abort and complete (#4542) 2023-07-06 11:17:14 +02:00
Antoine du Hamel
169de84654
@uppy/aws-s3: fix remote uploads (#4546) 2023-07-05 16:05:07 +02:00
Antoine du Hamel
6d969a5132
@uppy/aws-s3-multipart: fix upload retry using an outdated ID (#4544) 2023-07-05 15:53:19 +02:00
Artur Paikin
7fcc7a6bbc
@uppy/status-bar: remove throttled component (#4396)
Co-authored-by: Murderlon <merlijn@soverin.net>
2023-07-05 15:31:28 +02:00
Antoine du Hamel
d1697b0cb8
@uppy/aws-s3-multipart: fix Golden Retriever integration (#4526) 2023-06-29 16:50:09 +02:00
dependabot[bot]
e660c51b86
@uppy/companion: bump semver from 7.3.7 to 7.5.3 (#4529)
Bumps [semver](https://github.com/npm/node-semver) from 7.3.7 to 7.5.2.
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/main/CHANGELOG.md)
- [Commits](https://github.com/npm/node-semver/compare/v7.3.7...v7.5.2)

---
updated-dependencies:
- dependency-name: semver
  dependency-type: direct:production


Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Antoine du Hamel <duhamelantoine1995@gmail.com>
2023-06-28 11:40:37 +02:00
Antoine du Hamel
4ee51842b8
@uppy/aws-s3-multipart: add types to internal fields (#4535)
Co-authored-by: Merlijn Vos <merlijn@soverin.net>
2023-06-28 11:06:52 +02:00
Antoine du Hamel
b6a6f83c44
@uppy/aws-s3-multipart: fix pause/resume (#4523)
When pausing the upload, we don't want to remove the cached `uploadId`,
otherwise Uppy needs to re-upload the file from the begininng, even if
it has already uploaded some chunks.
2023-06-27 19:01:53 +02:00
Antoine du Hamel
692481ae35
@uppy/status-bar: fix ETA when Uppy recovers its state (#4525)
It was showing NaN seconds left.
2023-06-27 18:52:20 +02:00
Antoine du Hamel
ae3a0e7016
@uppy/aws-s3-multipart: fix resume single-chunk multipart uploads (#4528) 2023-06-26 13:56:46 +02:00
Antoine du Hamel
e289c8404c
@uppy/companion: fix part listing in s3 (#4524)
Attempting to list a multipart upload with 0 uploaded parts would return
an empty array with AWS SDK v2, and returns `undefined` with AWS SDK v3.
2023-06-24 19:38:56 +02:00
Antoine du Hamel
a869d2ed49
@uppy/golden-retriever: refactor to modernize the codebase (#4520)
Use of async/await rather than `.then` chains, avoid caching promises,
use newer syntax/methods where it makes sense, etc.
2023-06-22 15:34:09 +02:00
Mikael Finstad
2c75ddacfe
@uppy/companion: implement refresh for authentication tokens (#4448)
* allow storing multiple tokens

inside uppy auth token

* de-duplicate uploadRemote

by creating a new superclass UploaderPlugin

* pull out requestSocketToken

from MiniXHRUpload

* add class UploaderPlugin

* refactor

* refactor

* refactor/reuse

* refactor/make getAuthToken private

* fix bug

* implement refresh token

for dropbox and google drive

closes #2721

* fix test

* also update auth token cookie
when refreshing token

* fix build error on node 14

* increase auth token expiry

to workaround expiry

* Update packages/@uppy/companion-client/src/RequestClient.js

Co-authored-by: Antoine du Hamel <antoine@transloadit.com>

* make queueRequestSocketToken private

* rename arg

* fix lint

* log error message

* fix s3

* Update packages/@uppy/companion-client/src/Provider.js

Co-authored-by: Antoine du Hamel <antoine@transloadit.com>

---------

Co-authored-by: Antoine du Hamel <antoine@transloadit.com>
2023-06-22 11:18:48 +02:00
Artur Paikin
12db56f332
@uppy/aws-s3-multipart: disable pause/resume for remote uploads in the UI (#4500)
Co-authored-by: Murderlon <merlijn@soverin.net>
2023-06-22 10:09:49 +02:00
Antoine du Hamel
2b9958c4f8
@uppy/tus: retry on 423 HTTP error code (#4512) 2023-06-20 11:17:56 +02:00
github-actions[bot]
147e5da96f
Release: uppy@3.10.0 (#4511)
| Package                | Version | Package                | Version |
| ---------------------- | ------- | ---------------------- | ------- |
| @uppy/aws-s3           |   3.2.0 | @uppy/status-bar       |   3.2.0 |
| @uppy/aws-s3-multipart |   3.4.0 | @uppy/transloadit      |   3.1.6 |
| @uppy/companion        |   4.5.1 | @uppy/tus              |   3.1.1 |
| @uppy/core             |   3.2.1 | @uppy/url              |   3.3.2 |
| @uppy/dashboard        |   3.4.1 | @uppy/utils            |   5.4.0 |
| @uppy/golden-retriever |   3.0.4 | @uppy/xhr-upload       |   3.3.0 |
| @uppy/locales          |   3.2.2 | uppy                   |  3.10.0 |
| @uppy/provider-views   |   3.3.1 |                        |         |

- @uppy/aws-s3-multipart: fix the chunk size calculation (Antoine du Hamel / #4508)
- @uppy/aws-s3: add `shouldUseMultipart` option (Antoine du Hamel / #4299)
- @uppy/companion: switch from aws-sdk v2 to @aws-sdk/* (v3) (Scott Bessler / #4285)
- @uppy/companion,@uppy/core,@uppy/dashboard,@uppy/golden-retriever,@uppy/status-bar,@uppy/utils: Migrate all lodash' per-method-packages usage to lodash. (LinusMain / #4274)
- @uppy/core: Don't set late (throttled) progress event on a file that is 100% complete (Artur Paikin / #4507)
- @uppy/companion: revert randomness from file names (Mikael Finstad / #4509)
- @uppy/companion: Custom provider fixes (Mikael Finstad / #4498)
- @uppy/transloadit: ensure `fields` is not nullish when there no uploaded files (Antoine du Hamel / #4487)
- @uppy/aws-s3-multipart,@uppy/aws-s3,@uppy/tus,@uppy/utils,@uppy/xhr-upload: When file is removed (or all are canceled), controller.abort queued requests (Artur Paikin / #4504)
- @uppy/provider-views: Fix range selection not resetting and computing correctly (Terence C / #4415)
- meta: disallow use of `.only` in tests (Antoine du Hamel / #4494)
- @uppy/companion: fix 500 when file name contains non-ASCII chars (Antoine du Hamel / #4493)
- @uppy/locales: update `fr_FR.js` (Samuel De Backer / #4499)
- @uppy/aws-s3-multipart,@uppy/tus,@uppy/xhr-upload: Don't close socket while upload is still in progress (Artur Paikin / #4479)
- meta: bump `luxon` from 1.28.0 to 1.28.1 (dependabot[bot] / #4497)
- @uppy/utils: rename `EventTracker` -> `EventManager` (Stephen Wooten / #4481)
- meta: bump cookiejar from 2.1.3 to 2.1.4 (dependabot[bot] / #4496)
- meta: make `pre-commit` use `corepack yarn` instead of `npm run` (Antoine du Hamel / #4495)
- meta: bump ua-parser-js from 0.7.31 to 0.7.35 (dependabot[bot] / #4474)
- meta: bump @sideway/formula from 3.0.0 to 3.0.1 (dependabot[bot] / #4473)
- meta: bump http-cache-semantics from 4.1.0 to 4.1.1 (dependabot[bot] / #4472)
- @uppy/companion: Use filename from content-disposition instead of relying on url, with fallback (Artur Paikin / #4489)
- meta: bump `babel`, `esbuild`, and `vite` (dependabot[bot] / #4485)
- @uppy/dashboard: include the old state when setting new (Artur Paikin / #4490)
- @uppy/companion: fix companion implicitpath (Mikael Finstad / #4484)
- @uppy/companion: fix undefined protocol and example page (Mikael Finstad / #4483)
- meta: upgrade Cypress 12.9.0 -> 12.14.0 (Antoine du Hamel / #4491)
- @uppy/core: remove `state` getter from types (Antoine du Hamel / #4477)
- examples/php-xhr: Added filename sanitation and file size check before saving (neuronet77 / #4432)
- examples/php-xhr: update PHP dependencies (dependabot[bot])
- @uppy/xhr-upload: add support for arrays in metadata (Vasiliy Matyushin / #4431)
- @uppy/status-bar: Filtered ETA (stduhpf / #4458)
- @uppy/aws-s3-multipart: fix `getUploadParameters` option (Antoine du Hamel / #4465)
2023-06-19 15:37:12 +00:00
Antoine du Hamel
13da7caab3
@uppy/aws-s3-multipart: fix the chunk size calculation (#4508)
Co-authored-by: Murderlon <merlijn@soverin.net>
2023-06-19 17:13:26 +02:00
Antoine du Hamel
c687d85b5f
@uppy/aws-s3: add shouldUseMultipart option (#4299)
Co-authored-by: Artur Paikin <artur@arturpaikin.com>
2023-06-19 16:25:43 +02:00