Skip to content

Commit

Permalink
Merge stable branch
Browse files Browse the repository at this point in the history
  • Loading branch information
aduh95 committed May 3, 2024
2 parents c6faa23 + 5bc82b5 commit 55f621c
Show file tree
Hide file tree
Showing 12 changed files with 2,387 additions and 454 deletions.
19 changes: 19 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -236,6 +236,25 @@ Released: 2024-03-28
- meta: prepare release workflow for beta versions (Antoine du Hamel)


## 3.25.1

Released: 2024-05-03

| Package | Version | Package | Version |
| ---------------- | ------- | ---------------- | ------- |
| @uppy/companion | 4.13.2 | @uppy/xhr-upload | 3.6.6 |
| @uppy/core | 3.11.1 | uppy | 3.25.1 |
| @uppy/locales | 3.5.3 | | |

- @uppy/locales: Update ru_RU locale (Uladzislau Bodryi / #5120)
- meta: fix `update-contributors` script (Antoine du Hamel / #5137)
- meta: fix `bullet` setting for ReMark (Antoine du Hamel)
- meta: add prettier to `.md` pre-commit hooks (Antoine du Hamel)
- @uppy/core: make UppyEventMap more readable (Murderlon)
- meta: enable prettier for markdown (Merlijn Vos / #5133)
- @uppy/xhr-upload: do not throw when res is missing url (Merlijn Vos / #5132)
- @uppy/companion: coerce `requestUrl` to a string (Antoine du Hamel / #5128)


## 3.25.0

Expand Down
343 changes: 69 additions & 274 deletions README.md

Large diffs are not rendered by default.

53 changes: 34 additions & 19 deletions bin/update-contributors.mjs
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
#!/usr/bin/env node

import { spawn } from 'node:child_process'
import fetchContrib from 'github-contributors-list/lib/contributors.js'
import layoutStrategy from 'github-contributors-list/lib/strategies/layout_strategies/json.js'
import sortStrategy from 'github-contributors-list/lib/strategies/sort_strategies/sort_desc.js'
import filterStrategy from 'github-contributors-list/lib/strategies/filter_strategies/login.js'
import { Buffer } from 'node:buffer'
import fs from 'node:fs/promises'
import process from 'node:process'
Expand All @@ -10,27 +13,37 @@ const README_FILE_NAME = new URL('../README.md', import.meta.url)
const readme = await fs.open(README_FILE_NAME, 'r+')
const readmeContent = await readme.readFile()

const githubcontrib = spawn('npx', [
'githubcontrib',
'--owner', 'transloadit',
'--repo', 'uppy',
'--cols', '6',
'--format', 'md',
'--showlogin', 'true',
'--sortOrder', 'desc',
], {
stdio: ['ignore', 'pipe', 'inherit'],
})

githubcontrib.on('error', console.error)

// Detect start of contributors section.
const START_TAG = Buffer.from('<!--contributors-->\n')
const START_TAG_POSITION = readmeContent.indexOf(START_TAG) + START_TAG.byteLength
const START_TAG = Buffer.from('<table id="contributors_table">\n')
const START_TAG_POSITION =
readmeContent.indexOf(START_TAG) + START_TAG.byteLength

const args = {
owner: 'transloadit',
repository: 'uppy',
cols: 6,
format: 'json',
sortBy: 'contributions',
sortOrder: 'desc',
filter: [],
layoutStrategy,
sortStrategy,
filterStrategy,
}
const { contributors } = await fetchContrib(args).loadAll(
args.owner,
args.repository,
args.authToken || process.env.GITHUB_API_TOKEN,
args.fromDate,
)
let cursor = START_TAG_POSITION
for await (const data of githubcontrib.stdout) {
const { bytesWritten } = await readme.write(data.toString('utf-8'), cursor, 'utf-8')
for (const line of contributors) {
let row = '<tr>'
for (const { html_url, login, avatar_url } of line) {
row += `<td><a href=${html_url}><img width="117" alt=${JSON.stringify(login)} src=${JSON.stringify(avatar_url)}></a></td>`
}
row += '</tr>\n'
const { bytesWritten } = await readme.write(row, cursor, 'utf-8')
cursor += bytesWritten
}

Expand All @@ -40,6 +53,8 @@ if (cursor === START_TAG_POSITION) {
process.exit(1)
}

await readme.truncate(cursor)

// Write the end of the file.
await readme.write(
readmeContent,
Expand Down
4 changes: 3 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,9 @@
"*.{css,html,json,scss,vue,yaml,yml}": "prettier -w",
"*.md": [
"remark --silently-ignore -i .remarkignore -foq",
"eslint --fix"
"eslint --fix",
"prettier -w",
"eslint"
]
},
"remarkConfig": {
Expand Down
7 changes: 7 additions & 0 deletions packages/@uppy/companion/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,13 @@ Included in: Uppy v4.0.0-beta.1
- @uppy/companion: improve error msg (Mikael Finstad / #5010)
- @uppy/companion: crash if trying to set path to / (Mikael Finstad / #5003)

## 4.13.2

Released: 2024-05-03
Included in: Uppy v3.25.1

- @uppy/companion: coerce `requestUrl` to a string (Antoine du Hamel / #5128)

## 4.13.1

Released: 2024-04-10
Expand Down
6 changes: 6 additions & 0 deletions packages/@uppy/core/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,12 @@ Included in: Uppy v4.0.0-beta.1
- @uppy/core: various type fixes (Antoine du Hamel / #4995)
- @uppy/core,@uppy/provider-views: Fix breadcrumbs (Evgenia Karunus / #4986)

## 3.11.1

Released: 2024-05-03
Included in: Uppy v3.25.1

- @uppy/core: make UppyEventMap more readable (Murderlon)

## 3.11.0

Expand Down
7 changes: 7 additions & 0 deletions packages/@uppy/locales/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
# @uppy/locales

## 3.5.3

Released: 2024-05-03
Included in: Uppy v3.25.1

- @uppy/locales: Update ru_RU locale (Uladzislau Bodryi / #5120)

## 3.5.2

Released: 2024-02-20
Expand Down
2 changes: 1 addition & 1 deletion packages/@uppy/locales/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "@uppy/locales",
"description": "Uppy language packs",
"version": "3.5.2",
"version": "3.5.3",
"license": "MIT",
"type": "module",
"keywords": [
Expand Down
115 changes: 103 additions & 12 deletions packages/@uppy/locales/src/ru_RU.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,25 +16,52 @@ const ru_RU: Locale<0 | 1 | 2> = {
}

ru_RU.strings = {
addMoreFiles: 'Добавить еще файлы',
addBulkFilesFailed: {
'0': 'Не удалось добавить %{smart_count} файл из-за внутренней ошибки',
'1': 'Не удалось добавить %{smart_count} файла из-за внутренней ошибки',
'2': 'Не удалось добавить %{smart_count} файлов из-за внутренней ошибки',
},
addedNumFiles: {
'0': 'Добавлен %{numFiles} файл',
'1': 'Добавлено %{numFiles} файла',
'2': 'Добавлено %{numFiles} файлов',
},
addingMoreFiles: 'Добавление дополнительных файлов',
additionalRestrictionsFailed: {
'0': '%{count} дополнительное ограничение не было удовлетворено',
'1': '%{count} дополнительных ограничения не были удовлетворены',
'2': '%{count} дополнительных ограничений не были удовлетворены',
},
addMore: 'Добавить еще',
addMoreFiles: 'Добавить еще файлы',
allFilesFromFolderNamed: 'Все файлы из папки %{name}',
allowAccessDescription:
'Чтобы сделать фото или видео, пожалуйста, разрешите доступ к камере для этого сайта',
'Чтобы сделать фото или записать видео, пожалуйста, разрешите доступ к камере для этого сайта',
allowAccessTitle: 'Пожалуйста, разрешите доступ к вашей камере',
allowAudioAccessDescription:
'Чтобы записать аудио, пожалуйста, разрешите доступ к микрофону для этого сайта',
allowAudioAccessTitle: 'Пожалуйста, разрешите доступ к вашему микрофону',
aspectRatioLandscape: 'Обрезать альбомный формат (16:9)',
aspectRatioPortrait: 'Обрезать портрет (9:16)',
aspectRatioSquare: 'Обрезать квадрат',
authAborted: 'Аутентификация прервана',
authenticateWith: 'Подключиться к %{pluginName}',
authenticateWithTitle:
'Пожалуйста, авторизуйтесь в %{pluginName}, чтобы выбрать файлы',
authenticateWith: 'Подключиться к %{pluginName}',
back: 'Назад',
addMore: 'Добавить еще',
browse: 'выберите',
browseFiles: 'выберите',
browseFiles: 'выберите файлы',
cancel: 'Отменить',
cancelUpload: 'Отменить загрузку',
chooseFiles: 'Выбрать файлы',
closeModal: 'Закрыть окно',
companionError: 'Не удалось подключиться к Companion',
companionUnauthorizeHint:
'Чтобы выйти из вашего аккаунта %{provider}, пожалуйста, перейдите по ссылке %{url}',
// «Готово» вместо «загрузка завершена», потому что кроме загрузки бывает encoding — транскодирование файлов
complete: 'Готово',
compressedX: 'Сохранено %{size} благодаря сжатию изображений',
compressingImages: 'Сжатие изображений...',
// «Нет подключения к интернету» — «Подключено к интернету»
connectedToInternet: 'Подключено к интернету',
copyLink: 'Скопировать ссылку',
Expand All @@ -46,6 +73,7 @@ ru_RU.strings = {
dashboardWindowTitle:
'Окно загрузчика файлов (нажмите escape, чтобы закрыть)',
dataUploadedOfTotal: '%{complete} из %{total}',
discardRecordedFile: 'Удалить записанный файл',
done: 'Готово',
dropHereOr: 'Перетащите файлы или %{browse}',
dropHint: 'Перетащите файлы сюда',
Expand All @@ -60,67 +88,131 @@ ru_RU.strings = {
'Перетащите файлы, вставьте, %{browse} или импортируйте из:',
editFile: 'Редактировать файл',
editImage: 'Редактировать изображение',
editFileWithFilename: 'Редактировать файл %{file}',
editing: 'Редактируется %{file}',
emptyFolderAdded: 'Файлы не были добавлены — папка пуста',
encoding: 'Обработка...',
enterCorrectUrl:
'Неправильный адрес: пожалуйста, убедитесь что вы используете прямую ссылку на файл',
enterTextToSearch: 'Введите текст для поиска изображений',
enterUrlToImport: 'Введите адрес, чтобы импортировать файл',
error: 'Ошибка',
exceedsSize: 'Этот файл больше максимально разрешенного размера в %{size}',
failedToFetch:
'Companion не смог загрузить файл по ссылке, пожалуйста, убедитесь, что адрес верный',
failedToUpload: 'Ошибка загрузки %{file}',
fileSource: 'Источник файла: %{name}',
filesUploadedOfTotal: {
'0': '%{complete} из %{smart_count} файла загружено',
'1': '%{complete} из %{smart_count} файлов загружено',
'2': '%{complete} из %{smart_count} файлов загружено',
},
filter: 'Фильтр',
finishEditingFile: 'Закончить редактирование файла',
flipHorizontal: 'Повернуть горизонтально',
folderAdded: {
'0': 'Добавлен %{smart_count} файл из %{folder}',
'1': 'Добавлено %{smart_count} файла из %{folder}',
'2': 'Добавлено %{smart_count} файлов из %{folder}',
},
folderAlreadyAdded: 'Папка "%{folder}" уже была добавлена',
generatingThumbnails: 'Создание превью изображений...',
import: 'Импортировать',
importFiles: 'Импортировать файлы из:',
importFrom: 'Импортировать из %{name}',
inferiorSize: 'Этот файл меньше минимального размера %{size}',
loadedXFiles: {
'0': 'Загружен %{numFiles} файл',
'1': 'Загружено %{numFiles} файла',
'2': 'Загружено %{numFiles} файлов',
},
loading: 'Загрузка...',
logOut: 'Выйти',
micDisabled: 'Пользователь ограничил доступ к микрофону',
missingRequiredMetaField: 'Отсутствуют обязательные meta поля',
missingRequiredMetaFieldOnFile:
'В файле %{fileName} отсутствуют обязательные meta поля',
missingRequiredMetaFields: {
'0': 'Отсутствует обязательное meta поле: %{fields}.',
'1': 'Отсутствуют обязательные meta поля: %{fields}.',
'2': 'Отсутствуют обязательные meta поля: %{fields}.',
},
myDevice: 'Мое устройство',
noAudioDescription:
'Пожалуйста, подключите микрофон или другое аудиоустройство, чтобы записывать аудио',
noAudioTitle: 'Микрофон недоступен',
noCameraDescription:
'Пожалуйста, подключите камеру, чтобы сделать фото или записать видео',
noCameraTitle: 'Камера недоступна',
noDuplicates: "Нельзя добавить '%{fileName}', файл уже добавлен",
noFilesFound: 'Здесь нет файлов или папок',
noInternetConnection: 'Нет подключения к интернету',
noMoreFilesAllowed: 'Нельзя добавить больше файлов',
noSearchResults: 'К сожалению, нет результатов для поискового запроса',
openFolderNamed: 'Открыть папку %{name}',
pause: 'Поставить на паузу',
pauseUpload: 'Поставить загрузку на паузу',
paused: 'На паузе',
pauseUpload: 'Поставить загрузку на паузу',
poweredBy: 'Работает на %{uppy}',
processingXFiles: {
'0': 'Обрабатывается %{smart_count} файл',
'1': 'Обрабатываются %{smart_count} файла',
'2': 'Обрабатываются %{smart_count} файлов',
},
poweredBy: 'Работает на %{uppy}',
recording: 'Идет запись',
recordingLength: 'Длительность записи %{recording_length}',
recordingStoppedMaxSize:
'Запись остановлена из-за того, что файл достиг максимального размера',
recordVideoBtn: 'Записать видео',
recoveredAllFiles: 'Все файлы восстановлены. Вы можете продолжить загрузку.',
recoveredXFiles: {
'0': 'Не удалось восстановить %{smart_count} файл. Пожалуйста, выберите его заново и продолжите загрузку.',
'1': 'Не удалось восстановить %{smart_count} файла. Пожалуйста, выберите их заново и продолжите загрузку.',
'2': 'Не удалось восстановить %{smart_count} файлов. Пожалуйста, выберите их заново и продолжите загрузку.',
},
removeFile: 'Удалить файл',
reSelect: 'Выбрать заново',
resetFilter: 'Сбросить фильтр',
resetSearch: 'Сбросить поиск',
resume: 'Продолжить',
resumeUpload: 'Продолжить загрузку',
retry: 'Повторить попытку',
retryUpload: 'Повторить попытку загрузки',
revert: 'Отменить изменения',
rotate: 'Повернуть',
save: 'Сохранить',
saveChanges: 'Сохранить',
saveChanges: 'Сохранить изменения',
search: 'Поиск',
searchImages: 'Поиск изображений',
selectX: {
'0': 'Выбрать %{smart_count}',
'1': 'Выбрать %{smart_count}',
'2': 'Выбрать %{smart_count}',
},
sessionRestored: 'Сессия восстановлена',
showErrorDetails: 'Показать детали ошибки',
signInWithGoogle: 'Войти с Google',
smile: 'Улыбнитесь!',
startAudioRecording: 'Начать запись аудио',
startCapturing: 'Начать запись экрана',
startRecording: 'Начать запись видео',
stopAudioRecording: 'Остановить запись аудио',
stopCapturing: 'Остановить запись экрана',
stopRecording: 'Закончить запись видео',
streamActive: 'Активный поток',
streamPassive: 'Пассивный поток',
submitRecordedFile: 'Отправить записанный файл',
takePicture: 'Сделать фотографию',
takePictureBtn: 'Сделать фотографию',
timedOut: 'Загрузка остановилась на %{seconds} секунд, отмена',
upload: 'Загрузить',
uploadComplete: 'Загрузка завершена',
uploadFailed: 'Загрузка не удалась',
uploadPaused: 'Загрузка на паузе',
uploadStalled: {
'0': 'Прошла %{seconds} секунда без прогресса в загрузке. Возможно, вы хотите перезапустить ее.',
'1': 'Прошло %{seconds} секунды без прогресса в загрузке. Возможно, вы хотите перезапустить ее.',
'2': 'Прошло %{seconds} секунд без прогресса в загрузке. Возможно, вы хотите перезапустить ее.',
},
uploadXFiles: {
'0': 'Загрузить %{smart_count} файл',
'1': 'Загрузить %{smart_count} файла',
Expand Down Expand Up @@ -159,9 +251,8 @@ ru_RU.strings = {
'1': 'Вы должны выбрать хотя бы %{smart_count} файла',
'2': 'Вы должны выбрать хотя бы %{smart_count} файлов',
},
selectFileNamed: 'Выбрать файл %{name}',
unselectFileNamed: 'Отменить выбор файла %{name}',
openFolderNamed: 'Открыть папку %{name}',
zoomIn: 'Приблизить',
zoomOut: 'Отдалить',
}

// TODO: remove this in the next major?
Expand Down
6 changes: 6 additions & 0 deletions packages/@uppy/xhr-upload/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,12 @@ Included in: Uppy v4.0.0-beta.1

- @uppy/aws-s3-multipart,@uppy/tus,@uppy/utils,@uppy/xhr-upload: Make `allowedMetaFields` consistent (Merlijn Vos / #5011)

## 3.6.6

Released: 2024-05-03
Included in: Uppy v3.25.1

- @uppy/xhr-upload: do not throw when res is missing url (Merlijn Vos / #5132)

## 3.6.5

Expand Down
1 change: 1 addition & 0 deletions private/remark-lint-uppy/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ const importDefault = (specifier) => import(specifier).then((module) => module.d

export default {
settings: {
bullet: "-",
emphasis: '_',
strong: '*',
listItemIndent: 'one',
Expand Down

0 comments on commit 55f621c

Please sign in to comment.