Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
31a7559b86 | ||
|
|
b59921b843 | ||
|
|
95c126f2c6 | ||
|
|
7ea9c00c18 | ||
|
|
3651585271 | ||
|
|
22732e33e5 | ||
|
|
9caf72aae7 | ||
|
|
5b23f7d13a |
2
.vscode/settings.json
vendored
2
.vscode/settings.json
vendored
@@ -11,7 +11,7 @@
|
|||||||
"layout.manage.navigation.**",
|
"layout.manage.navigation.**",
|
||||||
],
|
],
|
||||||
"editor.codeActionsOnSave": {
|
"editor.codeActionsOnSave": {
|
||||||
"source.organizeImports": true
|
"source.organizeImports": "explicit"
|
||||||
},
|
},
|
||||||
"typescript.tsdk": "node_modules/typescript/lib",
|
"typescript.tsdk": "node_modules/typescript/lib",
|
||||||
"explorer.fileNesting.patterns": {
|
"explorer.fileNesting.patterns": {
|
||||||
|
|||||||
@@ -432,7 +432,7 @@
|
|||||||
"type": "notebook",
|
"type": "notebook",
|
||||||
"properties": {
|
"properties": {
|
||||||
"showToolbar": true,
|
"showToolbar": true,
|
||||||
"content": "<h2><strong>Welcome to Homarr 🚀👋</strong></h2><p>We're glad that you're here! Homarr is a <em>modern </em>and <em>easy to use</em> dashboard that helps you to <strong>organize and manage</strong> your home network from one place. Control is <strong>at your fingertips</strong>.</p><p>We recommend you to read the <a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://homarr.dev/docs/introduction/after-the-installation\">getting started guide</a> first. To edit this board you must enter the edit mode - only administrators can do this. Adding an app is the first step you should take. You can do this by clicking the <code>Add tile</code> button at the top right and select <code>App</code>. After you provided an internal URL, external URL and selected an icon you can drag it around when holding down the left mouse button. Make it bigger or smaller using the drag icon at the bottom right. When you're happy with it's position, you <strong>must exit edit mode to save your board</strong>. Adding widgets works the same way but may require additional configuration - read the documentation for more information.</p><p>To remove this widget, you must log in to your administrator account and click on the menu to delete it.</p><p><strong><u>Your TODO list:</u></strong></p><ul data-type=\"taskList\"><li data-checked=\"false\" data-type=\"taskItem\"><label><input type=\"checkbox\"><span></span></label><div><p>Read the <a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://homarr.dev\">documentation</a></p></div></li><li data-checked=\"false\" data-type=\"taskItem\"><label><input type=\"checkbox\"><span></span></label><div><p>Add your <em>first app</em></p></div></li><li data-checked=\"false\" data-type=\"taskItem\"><label><input type=\"checkbox\"><span></span></label><div><p><em>Resize </em>and <em>drag</em> your app to a different position</p></div></li><li data-checked=\"false\" data-type=\"taskItem\"><label><input type=\"checkbox\"><span></span></label><div><p>Add the <em>clock widget</em> to your dashboard</p></div></li><li data-checked=\"false\" data-type=\"taskItem\"><label><input type=\"checkbox\"><span></span></label><div><p>Create a <em>new user</em></p></div></li></ul>"
|
"content": "<h2><strong>Welcome to Homarr 🚀👋</strong></h2><p>We're glad that you're here! Homarr is a <em>modern </em>and <em>easy to use</em> dashboard that helps you to <strong>organize and manage</strong> your home network from one place. Control is <strong>at your fingertips</strong>.</p><p>We recommend you to read the <a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://homarr.dev/docs/getting-started/after-the-installation\">getting started guide</a> first. To edit this board you must enter the edit mode - only administrators can do this. Adding an app is the first step you should take. You can do this by clicking the <code>Add tile</code> button at the top right and select <code>App</code>. After you provided an internal URL, external URL and selected an icon you can drag it around when holding down the left mouse button. Make it bigger or smaller using the drag icon at the bottom right. When you're happy with it's position, you <strong>must exit edit mode to save your board</strong>. Adding widgets works the same way but may require additional configuration - read the documentation for more information.</p><p>To remove this widget, you must log in to your administrator account and click on the menu to delete it.</p><p><strong><u>Your TODO list:</u></strong></p><ul data-type=\"taskList\"><li data-checked=\"false\" data-type=\"taskItem\"><label><input type=\"checkbox\"><span></span></label><div><p>Read the <a target=\"_blank\" rel=\"noopener noreferrer nofollow\" href=\"https://homarr.dev\">documentation</a></p></div></li><li data-checked=\"false\" data-type=\"taskItem\"><label><input type=\"checkbox\"><span></span></label><div><p>Add your <em>first app</em></p></div></li><li data-checked=\"false\" data-type=\"taskItem\"><label><input type=\"checkbox\"><span></span></label><div><p><em>Resize </em>and <em>drag</em> your app to a different position</p></div></li><li data-checked=\"false\" data-type=\"taskItem\"><label><input type=\"checkbox\"><span></span></label><div><p>Add the <em>clock widget</em> to your dashboard</p></div></li><li data-checked=\"false\" data-type=\"taskItem\"><label><input type=\"checkbox\"><span></span></label><div><p>Create a <em>new user</em></p></div></li></ul>"
|
||||||
},
|
},
|
||||||
"area": {
|
"area": {
|
||||||
"type": "wrapper",
|
"type": "wrapper",
|
||||||
@@ -510,4 +510,4 @@
|
|||||||
"allowGuests": false
|
"allowGuests": false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,14 +1,14 @@
|
|||||||
// This file is used to migrate the database to the current version
|
// This file is used to migrate the database to the current version
|
||||||
// It is run when the docker container starts
|
// It is run when the docker container starts
|
||||||
import Database from 'better-sqlite3';
|
const Database = require('better-sqlite3');
|
||||||
import dotenv from 'dotenv';
|
const path = require('path');
|
||||||
import { drizzle } from 'drizzle-orm/better-sqlite3';
|
const dotenv = require('dotenv');
|
||||||
import { migrate } from 'drizzle-orm/better-sqlite3/migrator';
|
const { drizzle } = require('drizzle-orm/better-sqlite3');
|
||||||
|
const { migrate } = require('drizzle-orm/better-sqlite3/migrator');
|
||||||
|
|
||||||
const migrationsFolder = process.argv[2] ?? '../drizzle';
|
const migrationsFolder = process.argv[2] ?? '../drizzle';
|
||||||
|
|
||||||
dotenv.config({ path: __dirname + '/../.env' });
|
dotenv.config({ path: path.join(__dirname, '/../.env') });
|
||||||
|
|
||||||
const sqlite = new Database(process.env.DATABASE_URL!.replace('file:', ''));
|
const sqlite = new Database(process.env.DATABASE_URL!.replace('file:', ''));
|
||||||
|
|
||||||
const db = drizzle(sqlite);
|
const db = drizzle(sqlite);
|
||||||
|
|||||||
@@ -2,14 +2,14 @@
|
|||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"description": "This package.json is used for the migration script the dependencies are only installed within the Dockerfile.",
|
"description": "This package.json is used for the migration script the dependencies are only installed within the Dockerfile.",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"db:migrate": "ts-node ./migrate.ts"
|
"db:migrate": "tsx ./migrate.ts"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@types/better-sqlite3": "^7.6.7",
|
"@types/better-sqlite3": "^7.6.7",
|
||||||
"better-sqlite3": "8.6.0",
|
"better-sqlite3": "8.6.0",
|
||||||
"drizzle-orm": "^0.28.6",
|
"drizzle-orm": "^0.28.6",
|
||||||
"dotenv": "^16.3.1",
|
"dotenv": "^16.3.1",
|
||||||
"ts-node": "^10.9.1",
|
"tsx": "4.19.1",
|
||||||
"typescript": "^5.2.2"
|
"typescript": "^5.2.2"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "homarr",
|
"name": "homarr",
|
||||||
"version": "0.15.5",
|
"version": "0.15.8",
|
||||||
"description": "Homarr - A homepage for your server.",
|
"description": "Homarr - A homepage for your server.",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"repository": {
|
"repository": {
|
||||||
@@ -25,7 +25,7 @@
|
|||||||
"test:coverage": "SKIP_ENV_VALIDATION=1 vitest run --coverage",
|
"test:coverage": "SKIP_ENV_VALIDATION=1 vitest run --coverage",
|
||||||
"docker:build": "turbo build && docker build . -t homarr:local-dev",
|
"docker:build": "turbo build && docker build . -t homarr:local-dev",
|
||||||
"docker:start": "docker run -p 7575:7575 --name homarr-development homarr:local-dev",
|
"docker:start": "docker run -p 7575:7575 --name homarr-development homarr:local-dev",
|
||||||
"db:migrate": "dotenv ts-node drizzle/migrate/migrate.ts ./drizzle"
|
"db:migrate": "dotenv tsx drizzle/migrate/migrate.ts ./drizzle"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@ctrl/deluge": "^4.1.0",
|
"@ctrl/deluge": "^4.1.0",
|
||||||
@@ -151,7 +151,7 @@
|
|||||||
"node-mocks-http": "^1.12.2",
|
"node-mocks-http": "^1.12.2",
|
||||||
"prettier": "^3.0.0",
|
"prettier": "^3.0.0",
|
||||||
"sass": "^1.56.1",
|
"sass": "^1.56.1",
|
||||||
"ts-node": "latest",
|
"tsx": "4.19.1",
|
||||||
"turbo": "^1.10.12",
|
"turbo": "^1.10.12",
|
||||||
"typescript": "5.1.6",
|
"typescript": "5.1.6",
|
||||||
"video.js": "^8.0.3",
|
"video.js": "^8.0.3",
|
||||||
|
|||||||
@@ -16,8 +16,8 @@
|
|||||||
},
|
},
|
||||||
"afterLoginRedirection": "Після входу ви будете перенаправлені на сайт {{url}}",
|
"afterLoginRedirection": "Після входу ви будете перенаправлені на сайт {{url}}",
|
||||||
"providersEmpty": {
|
"providersEmpty": {
|
||||||
"title": "",
|
"title": "Помилка постачальника авторизації",
|
||||||
"message": ""
|
"message": "Постачальник(и) не налаштовано, перевірте свої журнали для отримання додаткової інформації."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"alert": "Ваші облікові дані невірні або такого облікового запису не існує. Будь ласка, спробуйте ще раз."
|
"alert": "Ваші облікові дані невірні або такого облікового запису не існує. Будь ласка, спробуйте ще раз."
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"save": "Зберегти",
|
"save": "Зберегти",
|
||||||
"apply": "",
|
"apply": "Застосувати",
|
||||||
"insert": "",
|
"insert": "Вставити",
|
||||||
"about": "Про програму",
|
"about": "Про програму",
|
||||||
"cancel": "Скасувати",
|
"cancel": "Скасувати",
|
||||||
"close": "Закрити",
|
"close": "Закрити",
|
||||||
@@ -13,11 +13,11 @@
|
|||||||
"previous": "Попередній",
|
"previous": "Попередній",
|
||||||
"confirm": "Підтвердити",
|
"confirm": "Підтвердити",
|
||||||
"enabled": "Увімкнено",
|
"enabled": "Увімкнено",
|
||||||
"duplicate": "",
|
"duplicate": "Дублікат",
|
||||||
"disabled": "Вимкнено",
|
"disabled": "Вимкнено",
|
||||||
"enableAll": "Увімкнути все",
|
"enableAll": "Увімкнути все",
|
||||||
"disableAll": "Вимкнути усе",
|
"disableAll": "Вимкнути усе",
|
||||||
"setTimer": "",
|
"setTimer": "Встановити таймер",
|
||||||
"version": "Версія",
|
"version": "Версія",
|
||||||
"changePosition": "Змінити положення",
|
"changePosition": "Змінити положення",
|
||||||
"remove": "Видалити",
|
"remove": "Видалити",
|
||||||
@@ -47,7 +47,7 @@
|
|||||||
"seeMore": "Побачити більше...",
|
"seeMore": "Побачити більше...",
|
||||||
"position": {
|
"position": {
|
||||||
"left": "Ліворуч.",
|
"left": "Ліворуч.",
|
||||||
"center": "",
|
"center": "Центр",
|
||||||
"right": "Так."
|
"right": "Так."
|
||||||
},
|
},
|
||||||
"attributes": {
|
"attributes": {
|
||||||
@@ -55,5 +55,5 @@
|
|||||||
"height": "Висота"
|
"height": "Висота"
|
||||||
},
|
},
|
||||||
"public": "Публічний",
|
"public": "Публічний",
|
||||||
"restricted": ""
|
"restricted": "Обмежено"
|
||||||
}
|
}
|
||||||
@@ -22,5 +22,5 @@
|
|||||||
"message": "Створено категорію \"{{name}}\""
|
"message": "Створено категорію \"{{name}}\""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"importFromDocker": ""
|
"importFromDocker": "Імпортувати з docker"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
"title": "Інструменти",
|
"title": "Інструменти",
|
||||||
"items": {
|
"items": {
|
||||||
"docker": "Docker",
|
"docker": "Docker",
|
||||||
"api": ""
|
"api": "API"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"about": {
|
"about": {
|
||||||
|
|||||||
@@ -5,10 +5,10 @@
|
|||||||
"key": "Гарячі клавіши",
|
"key": "Гарячі клавіши",
|
||||||
"action": "Дії",
|
"action": "Дії",
|
||||||
"keybinds": "Сполучення клавіш",
|
"keybinds": "Сполучення клавіш",
|
||||||
"translators": "",
|
"translators": "Перекладачі ({{count}})",
|
||||||
"translatorsDescription": "",
|
"translatorsDescription": "Завдяки цим людям Homarr доступний {{languages}} мовами! Хочете допомогти перекласти Homarr своєю мовою? Прочитайте, як це зробити <a>тут</a>.",
|
||||||
"contributors": "",
|
"contributors": "Учасники ({{count}})",
|
||||||
"contributorsDescription": "",
|
"contributorsDescription": "Ці люди створили код, завдяки якому homarr працює! Хочете допомогти побудувати Homarr? Прочитайте, як це зробити <a>тут</a>",
|
||||||
"actions": {
|
"actions": {
|
||||||
"toggleTheme": "Перемикання світлого/темного режиму",
|
"toggleTheme": "Перемикання світлого/темного режиму",
|
||||||
"focusSearchBar": "Зосередьтеся на рядку пошуку",
|
"focusSearchBar": "Зосередьтеся на рядку пошуку",
|
||||||
|
|||||||
@@ -32,7 +32,7 @@
|
|||||||
"externalAddress": {
|
"externalAddress": {
|
||||||
"label": "Зовнішня адреса",
|
"label": "Зовнішня адреса",
|
||||||
"description": "URL-адреса відкриється в браузері при натисканні на додаток.",
|
"description": "URL-адреса відкриється в браузері при натисканні на додаток.",
|
||||||
"tooltip": ""
|
"tooltip": "Ви можете використовувати декілька змінних для створення динамічних адрес:<br><br><b>[homarr_base]</b>: повна адреса, за винятком порту і шляху. <i>(Приклад: 'https://subdomain.homarr.dev')</i><br><b>[homarr_hostname]</b>: повна базова адреса, включаючи поточний субдомен. <i>(Приклад: 'subdomain.homarr.dev')</i><br><b>[homarr_domain]</b>: домен з відфільтрованим субдоменом. <i>(Приклад: `homarr.dev')</i><br><b>[homarr_protocol]</b>: <i>http/https</i><br><br>Всі ці змінні залежать від поточного url."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"behaviour": {
|
"behaviour": {
|
||||||
|
|||||||
@@ -16,15 +16,15 @@
|
|||||||
"label": "Видалити назавжди",
|
"label": "Видалити назавжди",
|
||||||
"disabled": "Видалення вимкнено, оскільки старіші компоненти Homarr не дозволяють видаляти конфігурацію за замовчуванням. Видалення буде можливим у майбутньому."
|
"disabled": "Видалення вимкнено, оскільки старіші компоненти Homarr не дозволяють видаляти конфігурацію за замовчуванням. Видалення буде можливим у майбутньому."
|
||||||
},
|
},
|
||||||
"duplicate": "",
|
"duplicate": "Дублікат",
|
||||||
"rename": {
|
"rename": {
|
||||||
"label": "",
|
"label": "Перейменувати",
|
||||||
"modal": {
|
"modal": {
|
||||||
"title": "",
|
"title": "Перейменувати дошку {{name}}",
|
||||||
"fields": {
|
"fields": {
|
||||||
"name": {
|
"name": {
|
||||||
"label": "",
|
"label": "Нова назва",
|
||||||
"placeholder": ""
|
"placeholder": "Нова назва дошки"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,10 +6,10 @@
|
|||||||
},
|
},
|
||||||
"filter": {
|
"filter": {
|
||||||
"roles": {
|
"roles": {
|
||||||
"all": "",
|
"all": "Усе",
|
||||||
"normal": "",
|
"normal": "Нормально",
|
||||||
"admin": "",
|
"admin": "Адміністратор",
|
||||||
"owner": ""
|
"owner": "Власник"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"table": {
|
"table": {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"metaTitle": "",
|
"metaTitle": "Користувач {{username}}",
|
||||||
"back": "",
|
"back": "Повернутися до керування користувачами",
|
||||||
"sections": {
|
"sections": {
|
||||||
"general": {
|
"general": {
|
||||||
"title": "Загальне",
|
"title": "Загальне",
|
||||||
@@ -14,40 +14,40 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"security": {
|
"security": {
|
||||||
"title": "",
|
"title": "Безпека",
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"password": {
|
"password": {
|
||||||
"label": ""
|
"label": "Новий пароль"
|
||||||
},
|
},
|
||||||
"terminateExistingSessions": {
|
"terminateExistingSessions": {
|
||||||
"label": "",
|
"label": "Завершити поточні сесії",
|
||||||
"description": ""
|
"description": "Змушує користувача повторно входити в систему на своїх пристроях"
|
||||||
},
|
},
|
||||||
"confirm": {
|
"confirm": {
|
||||||
"label": "Підтвердити",
|
"label": "Підтвердити",
|
||||||
"description": ""
|
"description": "Пароль буде оновлено. Дію не можна скасувати."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"roles": {
|
"roles": {
|
||||||
"title": "",
|
"title": "Ролі",
|
||||||
"currentRole": "",
|
"currentRole": "Поточна роль: ",
|
||||||
"badges": {
|
"badges": {
|
||||||
"owner": "",
|
"owner": "Власник",
|
||||||
"admin": "",
|
"admin": "Адміністратор",
|
||||||
"normal": ""
|
"normal": "Нормально"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"deletion": {
|
"deletion": {
|
||||||
"title": "",
|
"title": "Видалення облікового запису",
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"confirmUsername": {
|
"confirmUsername": {
|
||||||
"label": "",
|
"label": "Підтвердіть ім'я користувача",
|
||||||
"description": ""
|
"description": "Введіть ім'я користувача для підтвердження видалення"
|
||||||
},
|
},
|
||||||
"confirm": {
|
"confirm": {
|
||||||
"label": "Видалити назавжди",
|
"label": "Видалити назавжди",
|
||||||
"description": ""
|
"description": "Я усвідомлюю, що ця дія є безстроковою і всі дані облікового запису будуть втрачені."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,11 +5,11 @@
|
|||||||
"settings": {
|
"settings": {
|
||||||
"title": "Налаштування віджету дати й часу",
|
"title": "Налаштування віджету дати й часу",
|
||||||
"timezone": {
|
"timezone": {
|
||||||
"label": "",
|
"label": "Часовий пояс",
|
||||||
"info": ""
|
"info": "Виберіть назву свого часового поясу, знайдіть свій тут: "
|
||||||
},
|
},
|
||||||
"customTitle": {
|
"customTitle": {
|
||||||
"label": ""
|
"label": "Назва міста або власна назва"
|
||||||
},
|
},
|
||||||
"display24HourFormat": {
|
"display24HourFormat": {
|
||||||
"label": "Показувати повний час (24 години)"
|
"label": "Показувати повний час (24 години)"
|
||||||
@@ -21,11 +21,11 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"titleState": {
|
"titleState": {
|
||||||
"label": "",
|
"label": "Назва годинника",
|
||||||
"info": "",
|
"info": "У віджеті можна показувати власну назву та код часового поясу.<br/>Ви також можете показувати лише місто, не показувати жодного,<br/>або навіть показувати лише часовий пояс, якщо вибрано обидва, але не вказано назву.",
|
||||||
"data": {
|
"data": {
|
||||||
"both": "",
|
"both": "Назва та часовий пояс",
|
||||||
"city": "",
|
"city": "Тільки назва",
|
||||||
"none": "Нема"
|
"none": "Нема"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -131,11 +131,11 @@
|
|||||||
"diskSize": "",
|
"diskSize": "",
|
||||||
"diskRatio": "",
|
"diskRatio": "",
|
||||||
"uptime": "",
|
"uptime": "",
|
||||||
"plugin": "",
|
"plugin": "Плагін",
|
||||||
"ha": "",
|
"ha": "Стан HA - {{haState}}",
|
||||||
"sharedStorage": "",
|
"sharedStorage": "Спільне сховище",
|
||||||
"localStorage": "",
|
"localStorage": "Локальне сховище",
|
||||||
"na": ""
|
"na": "Н/Д"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,22 +1,22 @@
|
|||||||
{
|
{
|
||||||
"descriptor": {
|
"descriptor": {
|
||||||
"name": "",
|
"name": "Статус менеджера індексування",
|
||||||
"description": "",
|
"description": "Статус про ваші індексування",
|
||||||
"settings": {
|
"settings": {
|
||||||
"title": "",
|
"title": "Статус менеджера індексування",
|
||||||
"openIndexerSiteInNewTab": {
|
"openIndexerSiteInNewTab": {
|
||||||
"label": ""
|
"label": "Відкрити Сайт індексування у новій вкладці"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"indexersStatus": {
|
"indexersStatus": {
|
||||||
"title": "",
|
"title": "Менеджер індексації",
|
||||||
"testAllButton": ""
|
"testAllButton": "Перевірте все"
|
||||||
},
|
},
|
||||||
"errors": {
|
"errors": {
|
||||||
"general": {
|
"general": {
|
||||||
"title": "",
|
"title": "Не вдається знайти менеджера індексації",
|
||||||
"text": ""
|
"text": "Виникла проблема підключення до вашого менеджера індексаторів. Будь ласка, перевірте вашу конфігурацію/інтеграцію(ї)."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,96 +1,96 @@
|
|||||||
{
|
{
|
||||||
"descriptor": {
|
"descriptor": {
|
||||||
"name": "",
|
"name": "Перекодування медіа",
|
||||||
"description": "",
|
"description": "Відображає інформацію про перекодування медіа",
|
||||||
"settings": {
|
"settings": {
|
||||||
"title": "",
|
"title": "Налаштування перекодування мультимедіа",
|
||||||
"appId": {
|
"appId": {
|
||||||
"label": ""
|
"label": "Виберіть програму"
|
||||||
},
|
},
|
||||||
"defaultView": {
|
"defaultView": {
|
||||||
"label": "",
|
"label": "Вигляд за замовчуванням",
|
||||||
"data": {
|
"data": {
|
||||||
"workers": "",
|
"workers": "Робітники",
|
||||||
"queue": "Черга",
|
"queue": "Черга",
|
||||||
"statistics": ""
|
"statistics": "Статистика"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"showHealthCheck": {
|
"showHealthCheck": {
|
||||||
"label": ""
|
"label": "Показувати індикатор перевірки працездатності"
|
||||||
},
|
},
|
||||||
"showHealthChecksInQueue": {
|
"showHealthChecksInQueue": {
|
||||||
"label": ""
|
"label": "Показувати перевірки працездатності в черзі"
|
||||||
},
|
},
|
||||||
"queuePageSize": {
|
"queuePageSize": {
|
||||||
"label": ""
|
"label": "Черга: Елементи на сторінку"
|
||||||
},
|
},
|
||||||
"showAppIcon": {
|
"showAppIcon": {
|
||||||
"label": ""
|
"label": "Показати іконку програми в правому нижньому куті"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"noAppSelected": "",
|
"noAppSelected": "Будь ласка, оберіть додаток у налаштуваннях віджету",
|
||||||
"views": {
|
"views": {
|
||||||
"workers": {
|
"workers": {
|
||||||
"table": {
|
"table": {
|
||||||
"header": {
|
"header": {
|
||||||
"name": "",
|
"name": "Файл",
|
||||||
"eta": "Залишилося",
|
"eta": "Залишилося",
|
||||||
"progress": "Прогрес"
|
"progress": "Прогрес"
|
||||||
},
|
},
|
||||||
"empty": "Пусто",
|
"empty": "Пусто",
|
||||||
"tooltip": {
|
"tooltip": {
|
||||||
"transcode": "",
|
"transcode": "Перекодувати",
|
||||||
"healthCheck": ""
|
"healthCheck": "Перевірка працездатності"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"queue": {
|
"queue": {
|
||||||
"table": {
|
"table": {
|
||||||
"header": {
|
"header": {
|
||||||
"name": "",
|
"name": "Файл",
|
||||||
"size": "Розмір"
|
"size": "Розмір"
|
||||||
},
|
},
|
||||||
"footer": {
|
"footer": {
|
||||||
"currentIndex": ""
|
"currentIndex": "{{start}}-{{end}} від {{total}}"
|
||||||
},
|
},
|
||||||
"empty": "Пусто",
|
"empty": "Пусто",
|
||||||
"tooltip": {
|
"tooltip": {
|
||||||
"transcode": "",
|
"transcode": "Перекодувати",
|
||||||
"healthCheck": ""
|
"healthCheck": "Перевірка працездатності"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"statistics": {
|
"statistics": {
|
||||||
"empty": "Пусто",
|
"empty": "Пусто",
|
||||||
"box": {
|
"box": {
|
||||||
"transcodes": "",
|
"transcodes": "Перекодує: {{value}}",
|
||||||
"healthChecks": "",
|
"healthChecks": "Перевірки працездатності: {{value}}",
|
||||||
"files": "",
|
"files": "Файли: {{value}}",
|
||||||
"spaceSaved": ""
|
"spaceSaved": "Збережено: {{value}}"
|
||||||
},
|
},
|
||||||
"pies": {
|
"pies": {
|
||||||
"transcodes": "",
|
"transcodes": "Перекодує",
|
||||||
"healthChecks": "",
|
"healthChecks": "Перевірка працездатності",
|
||||||
"videoCodecs": "",
|
"videoCodecs": "Кодеки",
|
||||||
"videoContainers": "",
|
"videoContainers": "Контейнери",
|
||||||
"videoResolutions": ""
|
"videoResolutions": "Роздільна здатність"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"error": {
|
"error": {
|
||||||
"title": "Помилка",
|
"title": "Помилка",
|
||||||
"message": ""
|
"message": "Виникла помилка при отриманні даних з Tdarr."
|
||||||
},
|
},
|
||||||
"tabs": {
|
"tabs": {
|
||||||
"workers": "",
|
"workers": "Робітники",
|
||||||
"queue": "Черга",
|
"queue": "Черга",
|
||||||
"statistics": ""
|
"statistics": "Статистика"
|
||||||
},
|
},
|
||||||
"healthCheckStatus": {
|
"healthCheckStatus": {
|
||||||
"title": "",
|
"title": "Перевірка працездатності",
|
||||||
"queued": "",
|
"queued": "У черзі",
|
||||||
"healthy": "",
|
"healthy": "Здоровий",
|
||||||
"unhealthy": ""
|
"unhealthy": "Нездоровий"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,32 +1,32 @@
|
|||||||
{
|
{
|
||||||
"entityNotFound": "",
|
"entityNotFound": "Об'єкт не знайдено",
|
||||||
"descriptor": {
|
"descriptor": {
|
||||||
"name": "",
|
"name": "Home Assistant об'єкт",
|
||||||
"description": "",
|
"description": "Поточний стан об'єкта в Home Assistant",
|
||||||
"settings": {
|
"settings": {
|
||||||
"title": "",
|
"title": "Стан об'єкта",
|
||||||
"entityId": {
|
"entityId": {
|
||||||
"label": "",
|
"label": "Ідентифікатор об'єкта",
|
||||||
"info": ""
|
"info": "Унікальний ідентифікатор сутності в Home Assistant. Скопіюйте, натиснувши на об'єкт > Натисніть на значок гвинтика > Натисніть на кнопку копіювання в \"Ідентифікаторі об'єкта\". Деякі користувацькі об'єкти можуть не підтримуватися."
|
||||||
},
|
},
|
||||||
"appendUnit": {
|
"appendUnit": {
|
||||||
"label": "",
|
"label": "Додайте одиницю виміру",
|
||||||
"info": ""
|
"info": "Додайте атрибут одиниці виміру до стану об'єкта."
|
||||||
},
|
},
|
||||||
"automationId": {
|
"automationId": {
|
||||||
"label": "",
|
"label": "Додатковий ідентифікатор автоматизації",
|
||||||
"info": ""
|
"info": "Ваш унікальний ідентифікатор автоматизації. Завжди починається з automation.XXXXX. Якщо не встановлено, віджет не буде клікабельним, а лише показуватиме стан. Після натискання стан об'єкта буде оновлено."
|
||||||
},
|
},
|
||||||
"displayName": {
|
"displayName": {
|
||||||
"label": ""
|
"label": "Відображати ім'я"
|
||||||
},
|
},
|
||||||
"displayFriendlyName": {
|
"displayFriendlyName": {
|
||||||
"label": "",
|
"label": "Відображати зрозуміле ім'я",
|
||||||
"info": ""
|
"info": "Замість відображуваного імені відображати зрозуміле ім’я від Home Assistant."
|
||||||
},
|
},
|
||||||
"genericToggle": {
|
"genericToggle": {
|
||||||
"label": "",
|
"label": "Перемикач об'єкту",
|
||||||
"info": ""
|
"info": "Виконайте загальну дію перемикання Home Assistant над об’єктом після натискання."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,15 +1,15 @@
|
|||||||
{
|
{
|
||||||
"descriptor": {
|
"descriptor": {
|
||||||
"name": "",
|
"name": "Автоматизація Home Assistant",
|
||||||
"description": "",
|
"description": "Виконати автоматизацію",
|
||||||
"settings": {
|
"settings": {
|
||||||
"title": "",
|
"title": "Виконати автоматизацію",
|
||||||
"automationId": {
|
"automationId": {
|
||||||
"label": "",
|
"label": "Ідентифікатор автоматизації",
|
||||||
"info": ""
|
"info": "Ваш унікальний ідентифікатор автоматизації. Завжди починається з automation.XXXXX."
|
||||||
},
|
},
|
||||||
"displayName": {
|
"displayName": {
|
||||||
"label": ""
|
"label": "Відображати ім'я"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,10 +11,10 @@
|
|||||||
"label": "Відображати завершені торренти"
|
"label": "Відображати завершені торренти"
|
||||||
},
|
},
|
||||||
"displayActiveTorrents": {
|
"displayActiveTorrents": {
|
||||||
"label": ""
|
"label": "Відображати активні торренти"
|
||||||
},
|
},
|
||||||
"speedLimitOfActiveTorrents": {
|
"speedLimitOfActiveTorrents": {
|
||||||
"label": ""
|
"label": "Швидкість завантаження, щоб вважати торрент активним (кБ/с)"
|
||||||
},
|
},
|
||||||
"displayStaleTorrents": {
|
"displayStaleTorrents": {
|
||||||
"label": "Відображати застарілі торренти"
|
"label": "Відображати застарілі торренти"
|
||||||
@@ -27,19 +27,19 @@
|
|||||||
"description": "Якщо позначено опцію \"білий список\", він буде діяти як білий список. Якщо не позначено, це чорний список. Нічого не робитиме, якщо порожній"
|
"description": "Якщо позначено опцію \"білий список\", він буде діяти як білий список. Якщо не позначено, це чорний список. Нічого не робитиме, якщо порожній"
|
||||||
},
|
},
|
||||||
"displayRatioWithFilter": {
|
"displayRatioWithFilter": {
|
||||||
"label": "",
|
"label": "Відображати співвідношення відфільтрованих списків торрентів",
|
||||||
"info": ""
|
"info": "Якщо цю опцію вимкнено, буде показано лише глобальне співвідношення. Глобальне співвідношення все одно використовуватиме мітки, якщо встановлено"
|
||||||
},
|
},
|
||||||
"columnOrdering": {
|
"columnOrdering": {
|
||||||
"label": ""
|
"label": "Увімкнути переупорядкування стовпців"
|
||||||
},
|
},
|
||||||
"rowSorting": {
|
"rowSorting": {
|
||||||
"label": ""
|
"label": "Увімкнути сортування рядків"
|
||||||
},
|
},
|
||||||
"columns": {
|
"columns": {
|
||||||
"label": "",
|
"label": "Виберіть стовпці для відображення",
|
||||||
"data": {
|
"data": {
|
||||||
"date": "",
|
"date": "Дата додавання",
|
||||||
"down": "Завантаження",
|
"down": "Завантаження",
|
||||||
"up": "Віддача",
|
"up": "Віддача",
|
||||||
"eta": "Залишилося",
|
"eta": "Залишилося",
|
||||||
@@ -47,7 +47,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nameColumnSize": {
|
"nameColumnSize": {
|
||||||
"label": ""
|
"label": "Змінити розмір стовпчика назви"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -55,24 +55,24 @@
|
|||||||
"footer": {
|
"footer": {
|
||||||
"error": "Помилка",
|
"error": "Помилка",
|
||||||
"lastUpdated": "Востаннє оновлено {{time}} тому",
|
"lastUpdated": "Востаннє оновлено {{time}} тому",
|
||||||
"ratioGlobal": "",
|
"ratioGlobal": "Глобальне співвідношення",
|
||||||
"ratioWithFilter": ""
|
"ratioWithFilter": "Співвідношення з фільтром"
|
||||||
},
|
},
|
||||||
"table": {
|
"table": {
|
||||||
"header": {
|
"header": {
|
||||||
"isCompleted": "",
|
"isCompleted": "Завантаження",
|
||||||
"name": "Ім’я",
|
"name": "Ім’я",
|
||||||
"dateAdded": "",
|
"dateAdded": "Додано на",
|
||||||
"size": "Розмір",
|
"size": "Розмір",
|
||||||
"download": "Завантаження",
|
"download": "Завантаження",
|
||||||
"upload": "Віддача",
|
"upload": "Віддача",
|
||||||
"estimatedTimeOfArrival": "Залишилося",
|
"estimatedTimeOfArrival": "Залишилося",
|
||||||
"progress": "Прогрес",
|
"progress": "Прогрес",
|
||||||
"totalUploaded": "",
|
"totalUploaded": "Загальне завантаження",
|
||||||
"totalDownloaded": "",
|
"totalDownloaded": "Загальне завантаження",
|
||||||
"ratio": "",
|
"ratio": "Співвідношення",
|
||||||
"seeds": "",
|
"seeds": "Сідери (підключено)",
|
||||||
"peers": "",
|
"peers": "Піри (підключено)",
|
||||||
"label": "",
|
"label": "",
|
||||||
"state": "Стан",
|
"state": "Стан",
|
||||||
"stateMessage": ""
|
"stateMessage": ""
|
||||||
|
|||||||
@@ -11,10 +11,10 @@
|
|||||||
"label": "Показувати назву міста"
|
"label": "Показувати назву міста"
|
||||||
},
|
},
|
||||||
"displayWeekly": {
|
"displayWeekly": {
|
||||||
"label": ""
|
"label": "Показати тижневий прогноз"
|
||||||
},
|
},
|
||||||
"forecastDays": {
|
"forecastDays": {
|
||||||
"label": ""
|
"label": "Дні для відображення"
|
||||||
},
|
},
|
||||||
"location": {
|
"location": {
|
||||||
"label": "Погодна локація"
|
"label": "Погодна локація"
|
||||||
|
|||||||
@@ -19,26 +19,26 @@
|
|||||||
"label": "Фон"
|
"label": "Фон"
|
||||||
},
|
},
|
||||||
"backgroundImageAttachment": {
|
"backgroundImageAttachment": {
|
||||||
"label": "",
|
"label": "Прикріплене фонове зображення",
|
||||||
"options": {
|
"options": {
|
||||||
"fixed": "",
|
"fixed": "Фіксований - фон залишається в тому самому положенні (рекомендовано)",
|
||||||
"scroll": ""
|
"scroll": "Прокручування – фонове прокручування за допомогою миші"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"backgroundImageSize": {
|
"backgroundImageSize": {
|
||||||
"label": "",
|
"label": "Розмір фонового зображення",
|
||||||
"options": {
|
"options": {
|
||||||
"cover": "",
|
"cover": "Обкладинка – Масштабує зображення до найменшого розміру, щоб охопити все вікно, обрізаючи зайвий простір. (рекомендовано)",
|
||||||
"contain": ""
|
"contain": "Вмістити - Масштабує зображення до максимально можливого розміру в межах контейнера без обрізання або розтягування зображення."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"backgroundImageRepeat": {
|
"backgroundImageRepeat": {
|
||||||
"label": "",
|
"label": "Прикріплене фонове зображення",
|
||||||
"options": {
|
"options": {
|
||||||
"repeat": "",
|
"repeat": "Повторювати - Зображення повторюється стільки разів, скільки потрібно, щоб покрити всю область зафарбовування фонового зображення.",
|
||||||
"no-repeat": "",
|
"no-repeat": "Без повтору - Зображення не повторюється і може не заповнювати весь простір (рекомендовано)",
|
||||||
"repeat-x": "",
|
"repeat-x": "Повторити X - Те саме, що й \"Повторити\", але тільки на горизонтальній осі.",
|
||||||
"repeat-y": ""
|
"repeat-y": "Повторити Y - Те саме, що й \"Повторити\", але тільки по вертикальній осі."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"customCSS": {
|
"customCSS": {
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
"title": "Docker",
|
"title": "Docker",
|
||||||
"alerts": {
|
"alerts": {
|
||||||
"notConfigured": {
|
"notConfigured": {
|
||||||
"text": ""
|
"text": "У вашому екземплярі Homarr не налаштовано Docker або не вдалося отримати контейнери. Будь ласка, зверніться до документації, щоб дізнатися, як налаштувати інтеграцію."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"modals": {
|
"modals": {
|
||||||
|
|||||||
@@ -1,29 +1,33 @@
|
|||||||
import { TRPCError } from '@trpc/server';
|
import { TRPCError } from '@trpc/server';
|
||||||
|
import Consola from 'consola';
|
||||||
import fs from 'fs';
|
import fs from 'fs';
|
||||||
import { z } from 'zod';
|
import { z } from 'zod';
|
||||||
import Consola from 'consola';
|
|
||||||
import { getDefaultBoardAsync } from '~/server/db/queries/userSettings';
|
import { getDefaultBoardAsync } from '~/server/db/queries/userSettings';
|
||||||
import { configExists } from '~/tools/config/configExists';
|
import { configExists } from '~/tools/config/configExists';
|
||||||
import { getConfig } from '~/tools/config/getConfig';
|
import { getConfig } from '~/tools/config/getConfig';
|
||||||
import { getFrontendConfig } from '~/tools/config/getFrontendConfig';
|
import { getFrontendConfig } from '~/tools/config/getFrontendConfig';
|
||||||
|
import { writeConfig } from '~/tools/config/writeConfig';
|
||||||
import { generateDefaultApp } from '~/tools/shared/app';
|
import { generateDefaultApp } from '~/tools/shared/app';
|
||||||
|
import { configNameSchema } from '~/validations/boards';
|
||||||
|
|
||||||
import { adminProcedure, createTRPCRouter, protectedProcedure } from '../trpc';
|
import { adminProcedure, createTRPCRouter, protectedProcedure } from '../trpc';
|
||||||
import { writeConfig } from '~/tools/config/writeConfig';
|
|
||||||
import { configNameSchema } from '~/validations/boards';
|
|
||||||
|
|
||||||
export const boardRouter = createTRPCRouter({
|
export const boardRouter = createTRPCRouter({
|
||||||
all: protectedProcedure
|
all: protectedProcedure
|
||||||
.meta({ openapi: { method: 'GET', path: '/boards/all', tags: ['board'] } })
|
.meta({ openapi: { method: 'GET', path: '/boards/all', tags: ['board'] } })
|
||||||
.input(z.void())
|
.input(z.void())
|
||||||
.output(z.array(z.object({
|
.output(
|
||||||
name: z.string(),
|
z.array(
|
||||||
allowGuests: z.boolean(),
|
z.object({
|
||||||
countApps: z.number().min(0),
|
name: z.string(),
|
||||||
countWidgets: z.number().min(0),
|
allowGuests: z.boolean(),
|
||||||
countCategories: z.number().min(0),
|
countApps: z.number().min(0),
|
||||||
isDefaultForUser: z.boolean(),
|
countWidgets: z.number().min(0),
|
||||||
})))
|
countCategories: z.number().min(0),
|
||||||
|
isDefaultForUser: z.boolean(),
|
||||||
|
})
|
||||||
|
)
|
||||||
|
)
|
||||||
.query(async ({ ctx }) => {
|
.query(async ({ ctx }) => {
|
||||||
const files = fs.readdirSync('./data/configs').filter((file) => file.endsWith('.json'));
|
const files = fs.readdirSync('./data/configs').filter((file) => file.endsWith('.json'));
|
||||||
|
|
||||||
@@ -44,7 +48,7 @@ export const boardRouter = createTRPCRouter({
|
|||||||
countCategories: config.categories.length,
|
countCategories: config.categories.length,
|
||||||
isDefaultForUser: name === defaultBoard,
|
isDefaultForUser: name === defaultBoard,
|
||||||
};
|
};
|
||||||
}),
|
})
|
||||||
);
|
);
|
||||||
}),
|
}),
|
||||||
addAppsForContainers: adminProcedure
|
addAppsForContainers: adminProcedure
|
||||||
@@ -58,9 +62,9 @@ export const boardRouter = createTRPCRouter({
|
|||||||
name: z.string(),
|
name: z.string(),
|
||||||
icon: z.string().optional(),
|
icon: z.string().optional(),
|
||||||
port: z.number().optional(),
|
port: z.number().optional(),
|
||||||
}),
|
})
|
||||||
),
|
),
|
||||||
}),
|
})
|
||||||
)
|
)
|
||||||
.mutation(async ({ input }) => {
|
.mutation(async ({ input }) => {
|
||||||
if (!configExists(input.boardName)) {
|
if (!configExists(input.boardName)) {
|
||||||
@@ -101,12 +105,14 @@ export const boardRouter = createTRPCRouter({
|
|||||||
const targetPath = `data/configs/${input.boardName}.json`;
|
const targetPath = `data/configs/${input.boardName}.json`;
|
||||||
fs.writeFileSync(targetPath, JSON.stringify(newConfig, null, 2), 'utf8');
|
fs.writeFileSync(targetPath, JSON.stringify(newConfig, null, 2), 'utf8');
|
||||||
}),
|
}),
|
||||||
renameBoard: protectedProcedure
|
renameBoard: adminProcedure
|
||||||
.meta({ openapi: { method: 'PUT', path: '/boards/rename', tags: ['board'] } })
|
.meta({ openapi: { method: 'PUT', path: '/boards/rename', tags: ['board'] } })
|
||||||
.input(z.object({
|
.input(
|
||||||
oldName: z.string(),
|
z.object({
|
||||||
newName: z.string().min(1),
|
oldName: configNameSchema,
|
||||||
}))
|
newName: configNameSchema,
|
||||||
|
})
|
||||||
|
)
|
||||||
.output(z.void())
|
.output(z.void())
|
||||||
.mutation(async ({ input }) => {
|
.mutation(async ({ input }) => {
|
||||||
if (input.oldName === 'default') {
|
if (input.oldName === 'default') {
|
||||||
@@ -141,15 +147,19 @@ export const boardRouter = createTRPCRouter({
|
|||||||
fs.unlinkSync(targetPath);
|
fs.unlinkSync(targetPath);
|
||||||
Consola.info(`Deleted ${input.oldName} from file system`);
|
Consola.info(`Deleted ${input.oldName} from file system`);
|
||||||
}),
|
}),
|
||||||
duplicateBoard: protectedProcedure
|
duplicateBoard: adminProcedure
|
||||||
.meta({ openapi: { method: 'POST', path: '/boards/duplicate', tags: ['board'] } })
|
.meta({ openapi: { method: 'POST', path: '/boards/duplicate', tags: ['board'] } })
|
||||||
.input(z.object({
|
.input(
|
||||||
boardName: z.string(),
|
z.object({
|
||||||
}))
|
boardName: z.string(),
|
||||||
|
})
|
||||||
|
)
|
||||||
.output(z.void())
|
.output(z.void())
|
||||||
.mutation(async ({ input }) => {
|
.mutation(async ({ input }) => {
|
||||||
if (!configExists(input.boardName)) {
|
if (!configExists(input.boardName)) {
|
||||||
Consola.error(`Tried to duplicate ${input.boardName} but this configuration does not exist.`);
|
Consola.error(
|
||||||
|
`Tried to duplicate ${input.boardName} but this configuration does not exist.`
|
||||||
|
);
|
||||||
throw new TRPCError({
|
throw new TRPCError({
|
||||||
code: 'NOT_FOUND',
|
code: 'NOT_FOUND',
|
||||||
message: 'Board not found',
|
message: 'Board not found',
|
||||||
@@ -164,7 +174,7 @@ export const boardRouter = createTRPCRouter({
|
|||||||
config.configProperties.name = targetName;
|
config.configProperties.name = targetName;
|
||||||
writeConfig(config);
|
writeConfig(config);
|
||||||
|
|
||||||
Consola.info(`Wrote config to name '${targetName}'`)
|
Consola.info(`Wrote config to name '${targetName}'`);
|
||||||
}),
|
}),
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -185,7 +195,7 @@ const attemptGenerateDuplicateName = (baseName: string, maxAttempts: number) =>
|
|||||||
code: 'CONFLICT',
|
code: 'CONFLICT',
|
||||||
message: 'Board conflicts with an existing board',
|
message: 'Board conflicts with an existing board',
|
||||||
});
|
});
|
||||||
}
|
};
|
||||||
|
|
||||||
const generateDuplicateName = (baseName: string, increment: number) => {
|
const generateDuplicateName = (baseName: string, increment: number) => {
|
||||||
const result = duplicationName.exec(baseName);
|
const result = duplicationName.exec(baseName);
|
||||||
@@ -197,4 +207,4 @@ const generateDuplicateName = (baseName: string, increment: number) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return `${baseName} (2)`;
|
return `${baseName} (2)`;
|
||||||
}
|
};
|
||||||
|
|||||||
@@ -58,6 +58,7 @@ export const mediaRequestsRouter = createTRPCRouter({
|
|||||||
name: genericItem.name,
|
name: genericItem.name,
|
||||||
userName: item.requestedBy.displayName,
|
userName: item.requestedBy.displayName,
|
||||||
userProfilePicture: constructAvatarUrl(appUrl, item.requestedBy.avatar),
|
userProfilePicture: constructAvatarUrl(appUrl, item.requestedBy.avatar),
|
||||||
|
fallbackUserProfilePicture: constructAvatarUrl(appUrl, item.requestedBy.avatar,'avatarproxy'),
|
||||||
userLink: `${appUrl}/users/${item.requestedBy.id}`,
|
userLink: `${appUrl}/users/${item.requestedBy.id}`,
|
||||||
userRequestCount: item.requestedBy.requestCount,
|
userRequestCount: item.requestedBy.requestCount,
|
||||||
airDate: genericItem.airDate,
|
airDate: genericItem.airDate,
|
||||||
@@ -119,6 +120,7 @@ export const mediaRequestsRouter = createTRPCRouter({
|
|||||||
id: user.id,
|
id: user.id,
|
||||||
userName: user.displayName,
|
userName: user.displayName,
|
||||||
userProfilePicture: constructAvatarUrl(appUrl, user.avatar),
|
userProfilePicture: constructAvatarUrl(appUrl, user.avatar),
|
||||||
|
fallbackUserProfilePicture: constructAvatarUrl(appUrl, user.avatar,'avatarproxy'),
|
||||||
userLink: `${appUrl}/users/${user.id}`,
|
userLink: `${appUrl}/users/${user.id}`,
|
||||||
userRequestCount: user.requestCount,
|
userRequestCount: user.requestCount,
|
||||||
};
|
};
|
||||||
@@ -137,14 +139,14 @@ export const mediaRequestsRouter = createTRPCRouter({
|
|||||||
}),
|
}),
|
||||||
});
|
});
|
||||||
|
|
||||||
const constructAvatarUrl = (appUrl: string, avatar: string) => {
|
const constructAvatarUrl = (appUrl: string, avatar: string, path?: string) => {
|
||||||
const isAbsolute = avatar.startsWith('http://') || avatar.startsWith('https://');
|
const isAbsolute = avatar.startsWith('http://') || avatar.startsWith('https://');
|
||||||
|
|
||||||
if (isAbsolute) {
|
if (isAbsolute) {
|
||||||
return avatar;
|
return avatar;
|
||||||
}
|
}
|
||||||
|
|
||||||
return `${appUrl}/${avatar}`;
|
return `${appUrl}/${path?.concat("/") ?? "" }${avatar}`;
|
||||||
};
|
};
|
||||||
|
|
||||||
const retrieveDetailsForItem = async (
|
const retrieveDetailsForItem = async (
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import { decode, encode } from 'next-auth/jwt';
|
|||||||
import { env } from '~/env';
|
import { env } from '~/env';
|
||||||
import { secondsFromTimeString } from '~/tools/client/parseDuration';
|
import { secondsFromTimeString } from '~/tools/client/parseDuration';
|
||||||
import { adapter, getProviders, onCreateUser } from '~/utils/auth';
|
import { adapter, getProviders, onCreateUser } from '~/utils/auth';
|
||||||
|
import { createCookiesWithDefaultOptions } from '~/utils/auth/cookies';
|
||||||
import { createRedirectUri } from '~/utils/auth/oidc';
|
import { createRedirectUri } from '~/utils/auth/oidc';
|
||||||
import EmptyNextAuthProvider from '~/utils/empty-provider';
|
import EmptyNextAuthProvider from '~/utils/empty-provider';
|
||||||
import { fromDate, generateSessionToken } from '~/utils/session';
|
import { fromDate, generateSessionToken } from '~/utils/session';
|
||||||
@@ -106,17 +107,7 @@ export const constructAuthOptions = async (
|
|||||||
},
|
},
|
||||||
adapter: adapter as Adapter,
|
adapter: adapter as Adapter,
|
||||||
providers: [...(await getProviders(req.headers)), EmptyNextAuthProvider()],
|
providers: [...(await getProviders(req.headers)), EmptyNextAuthProvider()],
|
||||||
cookies: {
|
cookies: createCookiesWithDefaultOptions(req.url?.startsWith('https:') ?? false),
|
||||||
sessionToken: {
|
|
||||||
name: 'next-auth.session-token',
|
|
||||||
options: {
|
|
||||||
httpOnly: true,
|
|
||||||
sameSite: 'lax',
|
|
||||||
path: '/',
|
|
||||||
secure: true,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
jwt: {
|
jwt: {
|
||||||
async encode(params) {
|
async encode(params) {
|
||||||
if (!isCredentialsRequest(req)) {
|
if (!isCredentialsRequest(req)) {
|
||||||
|
|||||||
66
src/utils/auth/cookies.ts
Normal file
66
src/utils/auth/cookies.ts
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
export const createCookiesWithDefaultOptions = (useSecureCookies: boolean) => {
|
||||||
|
const cookiePrefix = useSecureCookies ? '__Secure-' : '';
|
||||||
|
|
||||||
|
return {
|
||||||
|
// default cookie options
|
||||||
|
sessionToken: {
|
||||||
|
// We don't use __Secure prefix as the cookie is used in the code
|
||||||
|
name: `next-auth.session-token`,
|
||||||
|
options: {
|
||||||
|
httpOnly: true,
|
||||||
|
sameSite: 'lax',
|
||||||
|
path: '/',
|
||||||
|
secure: useSecureCookies,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
callbackUrl: {
|
||||||
|
name: `${cookiePrefix}next-auth.callback-url`,
|
||||||
|
options: {
|
||||||
|
httpOnly: true,
|
||||||
|
sameSite: 'lax',
|
||||||
|
path: '/',
|
||||||
|
secure: useSecureCookies,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
csrfToken: {
|
||||||
|
// Default to __Host- for CSRF token for additional protection if using useSecureCookies
|
||||||
|
// NB: The `__Host-` prefix is stricter than the `__Secure-` prefix.
|
||||||
|
name: `${useSecureCookies ? '__Host-' : ''}next-auth.csrf-token`,
|
||||||
|
options: {
|
||||||
|
httpOnly: true,
|
||||||
|
sameSite: 'lax',
|
||||||
|
path: '/',
|
||||||
|
secure: useSecureCookies,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
pkceCodeVerifier: {
|
||||||
|
name: `${cookiePrefix}next-auth.pkce.code_verifier`,
|
||||||
|
options: {
|
||||||
|
httpOnly: true,
|
||||||
|
sameSite: 'lax',
|
||||||
|
path: '/',
|
||||||
|
secure: useSecureCookies,
|
||||||
|
maxAge: 60 * 15, // 15 minutes in seconds
|
||||||
|
},
|
||||||
|
},
|
||||||
|
state: {
|
||||||
|
name: `${cookiePrefix}next-auth.state`,
|
||||||
|
options: {
|
||||||
|
httpOnly: true,
|
||||||
|
sameSite: 'lax',
|
||||||
|
path: '/',
|
||||||
|
secure: useSecureCookies,
|
||||||
|
maxAge: 60 * 15, // 15 minutes in seconds
|
||||||
|
},
|
||||||
|
},
|
||||||
|
nonce: {
|
||||||
|
name: `${cookiePrefix}next-auth.nonce`,
|
||||||
|
options: {
|
||||||
|
httpOnly: true,
|
||||||
|
sameSite: 'lax',
|
||||||
|
path: '/',
|
||||||
|
secure: useSecureCookies,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
} as const;
|
||||||
|
};
|
||||||
@@ -1,8 +1,15 @@
|
|||||||
import { DEFAULT_THEME, MANTINE_COLORS, MantineColor } from '@mantine/core';
|
import { DEFAULT_THEME, MANTINE_COLORS, MantineColor } from '@mantine/core';
|
||||||
import { z } from 'zod';
|
import { z } from 'zod';
|
||||||
import { BackgroundImageAttachment, BackgroundImageRepeat, BackgroundImageSize } from '~/types/settings';
|
import {
|
||||||
|
BackgroundImageAttachment,
|
||||||
|
BackgroundImageRepeat,
|
||||||
|
BackgroundImageSize,
|
||||||
|
} from '~/types/settings';
|
||||||
|
|
||||||
export const configNameSchema = z.string().regex(/^[a-zA-Z0-9-_\s()]+$/);
|
export const configNameSchema = z
|
||||||
|
.string()
|
||||||
|
.regex(/^[a-zA-Z0-9-_\s()]+$/)
|
||||||
|
.min(1);
|
||||||
|
|
||||||
export const createBoardSchemaValidation = z.object({
|
export const createBoardSchemaValidation = z.object({
|
||||||
name: configNameSchema,
|
name: configNameSchema,
|
||||||
|
|||||||
@@ -41,12 +41,12 @@ export function TimerModal({ toggleDns, getDnsStatus, opened, close, appId }: Ti
|
|||||||
setHours(0);
|
setHours(0);
|
||||||
setMinutes(0);
|
setMinutes(0);
|
||||||
}}
|
}}
|
||||||
title={t('modules/dns-hole-controls:durationModal.title')}
|
title={t('durationModal.title')}
|
||||||
>
|
>
|
||||||
<Flex direction="column" align="center" justify="center">
|
<Flex direction="column" align="center" justify="center">
|
||||||
<Stack align="flex-end">
|
<Stack align="flex-end">
|
||||||
<Group spacing={5}>
|
<Group spacing={5}>
|
||||||
<Text>{t('modules/dns-hole-controls:durationModal.hours')}</Text>
|
<Text>{t('durationModal.hours')}</Text>
|
||||||
<ActionIcon
|
<ActionIcon
|
||||||
size={35}
|
size={35}
|
||||||
variant="default"
|
variant="default"
|
||||||
@@ -73,7 +73,7 @@ export function TimerModal({ toggleDns, getDnsStatus, opened, close, appId }: Ti
|
|||||||
</ActionIcon>
|
</ActionIcon>
|
||||||
</Group>
|
</Group>
|
||||||
<Group spacing={5}>
|
<Group spacing={5}>
|
||||||
<Text>{t('modules/dns-hole-controls:durationModal.minutes')}</Text>
|
<Text>{t('durationModal.minutes')}</Text>
|
||||||
<ActionIcon
|
<ActionIcon
|
||||||
size={35}
|
size={35}
|
||||||
variant="default"
|
variant="default"
|
||||||
@@ -101,7 +101,7 @@ export function TimerModal({ toggleDns, getDnsStatus, opened, close, appId }: Ti
|
|||||||
</Group>
|
</Group>
|
||||||
</Stack>
|
</Stack>
|
||||||
<Text ta="center" c="dimmed" my={5}>
|
<Text ta="center" c="dimmed" my={5}>
|
||||||
{t('modules/dns-hole-controls:durationModal.unlimited')}
|
{t('durationModal.unlimited')}
|
||||||
</Text>
|
</Text>
|
||||||
<Button
|
<Button
|
||||||
variant="light"
|
variant="light"
|
||||||
@@ -116,7 +116,7 @@ export function TimerModal({ toggleDns, getDnsStatus, opened, close, appId }: Ti
|
|||||||
close();
|
close();
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{t('modules/dns-hole-controls:durationModal.set')}
|
{t('durationModal.set')}
|
||||||
</Button>
|
</Button>
|
||||||
</Flex>
|
</Flex>
|
||||||
</Modal>
|
</Modal>
|
||||||
|
|||||||
@@ -116,6 +116,7 @@ function IFrameTile({ widget }: IFrameTileProps) {
|
|||||||
return (
|
return (
|
||||||
<Container h="100%" w="100%" maw="initial" mah="initial" p={0}>
|
<Container h="100%" w="100%" maw="initial" mah="initial" p={0}>
|
||||||
<iframe
|
<iframe
|
||||||
|
sandbox="" // Disables js execution see https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe#sandbox
|
||||||
className={classes.iframe}
|
className={classes.iframe}
|
||||||
src={widget.properties.embedUrl}
|
src={widget.properties.embedUrl}
|
||||||
title="widget iframe"
|
title="widget iframe"
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import {
|
|||||||
Stack,
|
Stack,
|
||||||
Text,
|
Text,
|
||||||
Tooltip,
|
Tooltip,
|
||||||
|
Avatar,
|
||||||
useMantineTheme,
|
useMantineTheme,
|
||||||
} from '@mantine/core';
|
} from '@mantine/core';
|
||||||
import { notifications } from '@mantine/notifications';
|
import { notifications } from '@mantine/notifications';
|
||||||
@@ -170,14 +171,17 @@ function MediaRequestListTile({ widget }: MediaRequestListWidgetProps) {
|
|||||||
</Flex>
|
</Flex>
|
||||||
<Stack justify="center">
|
<Stack justify="center">
|
||||||
<Flex gap="xs">
|
<Flex gap="xs">
|
||||||
<Image
|
<Avatar
|
||||||
src={item.userProfilePicture}
|
src={item.userProfilePicture}
|
||||||
width={25}
|
size={25}
|
||||||
height={25}
|
|
||||||
alt="requester avatar"
|
alt="requester avatar"
|
||||||
radius="xl"
|
radius="xl"
|
||||||
withPlaceholder
|
>
|
||||||
/>
|
<Image
|
||||||
|
src={item.fallbackUserProfilePicture}
|
||||||
|
alt="requester avatar"
|
||||||
|
/>
|
||||||
|
</Avatar>
|
||||||
<Anchor
|
<Anchor
|
||||||
href={item.userLink}
|
href={item.userLink}
|
||||||
target={widget.properties.openInNewTab ? '_blank' : '_self'}
|
target={widget.properties.openInNewTab ? '_blank' : '_self'}
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import {
|
|||||||
Stack,
|
Stack,
|
||||||
Text,
|
Text,
|
||||||
Tooltip,
|
Tooltip,
|
||||||
|
Image,
|
||||||
useMantineTheme,
|
useMantineTheme,
|
||||||
} from '@mantine/core';
|
} from '@mantine/core';
|
||||||
import { useElementSize } from '@mantine/hooks';
|
import { useElementSize } from '@mantine/hooks';
|
||||||
@@ -163,7 +164,9 @@ function MediaRequestStatsTile({ widget }: MediaRequestStatsWidgetProps) {
|
|||||||
/>
|
/>
|
||||||
</Tooltip.Floating>
|
</Tooltip.Floating>
|
||||||
)}
|
)}
|
||||||
<Avatar radius="xl" size={45} src={user.userProfilePicture} alt="user avatar" />
|
<Avatar radius="xl" size={45} src={user.userProfilePicture} alt="user avatar" >
|
||||||
|
<Image src={user.fallbackUserProfilePicture} alt="user avatar" />
|
||||||
|
</Avatar>
|
||||||
<Stack spacing={0} style={{ flex: 1 }}>
|
<Stack spacing={0} style={{ flex: 1 }}>
|
||||||
<Text>{user.userName}</Text>
|
<Text>{user.userName}</Text>
|
||||||
<Text size="xs">
|
<Text size="xs">
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ export type MediaRequest = {
|
|||||||
name: string;
|
name: string;
|
||||||
userName: string;
|
userName: string;
|
||||||
userProfilePicture: string;
|
userProfilePicture: string;
|
||||||
|
fallbackUserProfilePicture: string;
|
||||||
userLink: string;
|
userLink: string;
|
||||||
userRequestCount: number;
|
userRequestCount: number;
|
||||||
airDate?: string;
|
airDate?: string;
|
||||||
@@ -22,6 +23,7 @@ export type Users = {
|
|||||||
id: number;
|
id: number;
|
||||||
userName: string;
|
userName: string;
|
||||||
userProfilePicture: string;
|
userProfilePicture: string;
|
||||||
|
fallbackUserProfilePicture: string;
|
||||||
userLink: string;
|
userLink: string;
|
||||||
userRequestCount: number;
|
userRequestCount: number;
|
||||||
};
|
};
|
||||||
|
|||||||
410
yarn.lock
410
yarn.lock
@@ -364,15 +364,6 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@cspotcode/source-map-support@npm:^0.8.0":
|
|
||||||
version: 0.8.1
|
|
||||||
resolution: "@cspotcode/source-map-support@npm:0.8.1"
|
|
||||||
dependencies:
|
|
||||||
"@jridgewell/trace-mapping": 0.3.9
|
|
||||||
checksum: 5718f267085ed8edb3e7ef210137241775e607ee18b77d95aa5bd7514f47f5019aa2d82d96b3bf342ef7aa890a346fa1044532ff7cc3009e7d24fce3ce6200fa
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"@ctrl/deluge@npm:^4.1.0":
|
"@ctrl/deluge@npm:^4.1.0":
|
||||||
version: 4.3.1
|
version: 4.3.1
|
||||||
resolution: "@ctrl/deluge@npm:4.3.1"
|
resolution: "@ctrl/deluge@npm:4.3.1"
|
||||||
@@ -632,6 +623,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@esbuild/aix-ppc64@npm:0.23.1":
|
||||||
|
version: 0.23.1
|
||||||
|
resolution: "@esbuild/aix-ppc64@npm:0.23.1"
|
||||||
|
conditions: os=aix & cpu=ppc64
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@esbuild/android-arm64@npm:0.18.20":
|
"@esbuild/android-arm64@npm:0.18.20":
|
||||||
version: 0.18.20
|
version: 0.18.20
|
||||||
resolution: "@esbuild/android-arm64@npm:0.18.20"
|
resolution: "@esbuild/android-arm64@npm:0.18.20"
|
||||||
@@ -639,6 +637,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@esbuild/android-arm64@npm:0.23.1":
|
||||||
|
version: 0.23.1
|
||||||
|
resolution: "@esbuild/android-arm64@npm:0.23.1"
|
||||||
|
conditions: os=android & cpu=arm64
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@esbuild/android-arm@npm:0.18.20":
|
"@esbuild/android-arm@npm:0.18.20":
|
||||||
version: 0.18.20
|
version: 0.18.20
|
||||||
resolution: "@esbuild/android-arm@npm:0.18.20"
|
resolution: "@esbuild/android-arm@npm:0.18.20"
|
||||||
@@ -646,6 +651,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@esbuild/android-arm@npm:0.23.1":
|
||||||
|
version: 0.23.1
|
||||||
|
resolution: "@esbuild/android-arm@npm:0.23.1"
|
||||||
|
conditions: os=android & cpu=arm
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@esbuild/android-x64@npm:0.18.20":
|
"@esbuild/android-x64@npm:0.18.20":
|
||||||
version: 0.18.20
|
version: 0.18.20
|
||||||
resolution: "@esbuild/android-x64@npm:0.18.20"
|
resolution: "@esbuild/android-x64@npm:0.18.20"
|
||||||
@@ -653,6 +665,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@esbuild/android-x64@npm:0.23.1":
|
||||||
|
version: 0.23.1
|
||||||
|
resolution: "@esbuild/android-x64@npm:0.23.1"
|
||||||
|
conditions: os=android & cpu=x64
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@esbuild/darwin-arm64@npm:0.18.20":
|
"@esbuild/darwin-arm64@npm:0.18.20":
|
||||||
version: 0.18.20
|
version: 0.18.20
|
||||||
resolution: "@esbuild/darwin-arm64@npm:0.18.20"
|
resolution: "@esbuild/darwin-arm64@npm:0.18.20"
|
||||||
@@ -660,6 +679,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@esbuild/darwin-arm64@npm:0.23.1":
|
||||||
|
version: 0.23.1
|
||||||
|
resolution: "@esbuild/darwin-arm64@npm:0.23.1"
|
||||||
|
conditions: os=darwin & cpu=arm64
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@esbuild/darwin-x64@npm:0.18.20":
|
"@esbuild/darwin-x64@npm:0.18.20":
|
||||||
version: 0.18.20
|
version: 0.18.20
|
||||||
resolution: "@esbuild/darwin-x64@npm:0.18.20"
|
resolution: "@esbuild/darwin-x64@npm:0.18.20"
|
||||||
@@ -667,6 +693,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@esbuild/darwin-x64@npm:0.23.1":
|
||||||
|
version: 0.23.1
|
||||||
|
resolution: "@esbuild/darwin-x64@npm:0.23.1"
|
||||||
|
conditions: os=darwin & cpu=x64
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@esbuild/freebsd-arm64@npm:0.18.20":
|
"@esbuild/freebsd-arm64@npm:0.18.20":
|
||||||
version: 0.18.20
|
version: 0.18.20
|
||||||
resolution: "@esbuild/freebsd-arm64@npm:0.18.20"
|
resolution: "@esbuild/freebsd-arm64@npm:0.18.20"
|
||||||
@@ -674,6 +707,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@esbuild/freebsd-arm64@npm:0.23.1":
|
||||||
|
version: 0.23.1
|
||||||
|
resolution: "@esbuild/freebsd-arm64@npm:0.23.1"
|
||||||
|
conditions: os=freebsd & cpu=arm64
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@esbuild/freebsd-x64@npm:0.18.20":
|
"@esbuild/freebsd-x64@npm:0.18.20":
|
||||||
version: 0.18.20
|
version: 0.18.20
|
||||||
resolution: "@esbuild/freebsd-x64@npm:0.18.20"
|
resolution: "@esbuild/freebsd-x64@npm:0.18.20"
|
||||||
@@ -681,6 +721,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@esbuild/freebsd-x64@npm:0.23.1":
|
||||||
|
version: 0.23.1
|
||||||
|
resolution: "@esbuild/freebsd-x64@npm:0.23.1"
|
||||||
|
conditions: os=freebsd & cpu=x64
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@esbuild/linux-arm64@npm:0.18.20":
|
"@esbuild/linux-arm64@npm:0.18.20":
|
||||||
version: 0.18.20
|
version: 0.18.20
|
||||||
resolution: "@esbuild/linux-arm64@npm:0.18.20"
|
resolution: "@esbuild/linux-arm64@npm:0.18.20"
|
||||||
@@ -688,6 +735,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@esbuild/linux-arm64@npm:0.23.1":
|
||||||
|
version: 0.23.1
|
||||||
|
resolution: "@esbuild/linux-arm64@npm:0.23.1"
|
||||||
|
conditions: os=linux & cpu=arm64
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@esbuild/linux-arm@npm:0.18.20":
|
"@esbuild/linux-arm@npm:0.18.20":
|
||||||
version: 0.18.20
|
version: 0.18.20
|
||||||
resolution: "@esbuild/linux-arm@npm:0.18.20"
|
resolution: "@esbuild/linux-arm@npm:0.18.20"
|
||||||
@@ -695,6 +749,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@esbuild/linux-arm@npm:0.23.1":
|
||||||
|
version: 0.23.1
|
||||||
|
resolution: "@esbuild/linux-arm@npm:0.23.1"
|
||||||
|
conditions: os=linux & cpu=arm
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@esbuild/linux-ia32@npm:0.18.20":
|
"@esbuild/linux-ia32@npm:0.18.20":
|
||||||
version: 0.18.20
|
version: 0.18.20
|
||||||
resolution: "@esbuild/linux-ia32@npm:0.18.20"
|
resolution: "@esbuild/linux-ia32@npm:0.18.20"
|
||||||
@@ -702,6 +763,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@esbuild/linux-ia32@npm:0.23.1":
|
||||||
|
version: 0.23.1
|
||||||
|
resolution: "@esbuild/linux-ia32@npm:0.23.1"
|
||||||
|
conditions: os=linux & cpu=ia32
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@esbuild/linux-loong64@npm:0.18.20":
|
"@esbuild/linux-loong64@npm:0.18.20":
|
||||||
version: 0.18.20
|
version: 0.18.20
|
||||||
resolution: "@esbuild/linux-loong64@npm:0.18.20"
|
resolution: "@esbuild/linux-loong64@npm:0.18.20"
|
||||||
@@ -709,6 +777,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@esbuild/linux-loong64@npm:0.23.1":
|
||||||
|
version: 0.23.1
|
||||||
|
resolution: "@esbuild/linux-loong64@npm:0.23.1"
|
||||||
|
conditions: os=linux & cpu=loong64
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@esbuild/linux-mips64el@npm:0.18.20":
|
"@esbuild/linux-mips64el@npm:0.18.20":
|
||||||
version: 0.18.20
|
version: 0.18.20
|
||||||
resolution: "@esbuild/linux-mips64el@npm:0.18.20"
|
resolution: "@esbuild/linux-mips64el@npm:0.18.20"
|
||||||
@@ -716,6 +791,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@esbuild/linux-mips64el@npm:0.23.1":
|
||||||
|
version: 0.23.1
|
||||||
|
resolution: "@esbuild/linux-mips64el@npm:0.23.1"
|
||||||
|
conditions: os=linux & cpu=mips64el
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@esbuild/linux-ppc64@npm:0.18.20":
|
"@esbuild/linux-ppc64@npm:0.18.20":
|
||||||
version: 0.18.20
|
version: 0.18.20
|
||||||
resolution: "@esbuild/linux-ppc64@npm:0.18.20"
|
resolution: "@esbuild/linux-ppc64@npm:0.18.20"
|
||||||
@@ -723,6 +805,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@esbuild/linux-ppc64@npm:0.23.1":
|
||||||
|
version: 0.23.1
|
||||||
|
resolution: "@esbuild/linux-ppc64@npm:0.23.1"
|
||||||
|
conditions: os=linux & cpu=ppc64
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@esbuild/linux-riscv64@npm:0.18.20":
|
"@esbuild/linux-riscv64@npm:0.18.20":
|
||||||
version: 0.18.20
|
version: 0.18.20
|
||||||
resolution: "@esbuild/linux-riscv64@npm:0.18.20"
|
resolution: "@esbuild/linux-riscv64@npm:0.18.20"
|
||||||
@@ -730,6 +819,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@esbuild/linux-riscv64@npm:0.23.1":
|
||||||
|
version: 0.23.1
|
||||||
|
resolution: "@esbuild/linux-riscv64@npm:0.23.1"
|
||||||
|
conditions: os=linux & cpu=riscv64
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@esbuild/linux-s390x@npm:0.18.20":
|
"@esbuild/linux-s390x@npm:0.18.20":
|
||||||
version: 0.18.20
|
version: 0.18.20
|
||||||
resolution: "@esbuild/linux-s390x@npm:0.18.20"
|
resolution: "@esbuild/linux-s390x@npm:0.18.20"
|
||||||
@@ -737,6 +833,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@esbuild/linux-s390x@npm:0.23.1":
|
||||||
|
version: 0.23.1
|
||||||
|
resolution: "@esbuild/linux-s390x@npm:0.23.1"
|
||||||
|
conditions: os=linux & cpu=s390x
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@esbuild/linux-x64@npm:0.18.20":
|
"@esbuild/linux-x64@npm:0.18.20":
|
||||||
version: 0.18.20
|
version: 0.18.20
|
||||||
resolution: "@esbuild/linux-x64@npm:0.18.20"
|
resolution: "@esbuild/linux-x64@npm:0.18.20"
|
||||||
@@ -744,6 +847,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@esbuild/linux-x64@npm:0.23.1":
|
||||||
|
version: 0.23.1
|
||||||
|
resolution: "@esbuild/linux-x64@npm:0.23.1"
|
||||||
|
conditions: os=linux & cpu=x64
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@esbuild/netbsd-x64@npm:0.18.20":
|
"@esbuild/netbsd-x64@npm:0.18.20":
|
||||||
version: 0.18.20
|
version: 0.18.20
|
||||||
resolution: "@esbuild/netbsd-x64@npm:0.18.20"
|
resolution: "@esbuild/netbsd-x64@npm:0.18.20"
|
||||||
@@ -751,6 +861,20 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@esbuild/netbsd-x64@npm:0.23.1":
|
||||||
|
version: 0.23.1
|
||||||
|
resolution: "@esbuild/netbsd-x64@npm:0.23.1"
|
||||||
|
conditions: os=netbsd & cpu=x64
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
|
"@esbuild/openbsd-arm64@npm:0.23.1":
|
||||||
|
version: 0.23.1
|
||||||
|
resolution: "@esbuild/openbsd-arm64@npm:0.23.1"
|
||||||
|
conditions: os=openbsd & cpu=arm64
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@esbuild/openbsd-x64@npm:0.18.20":
|
"@esbuild/openbsd-x64@npm:0.18.20":
|
||||||
version: 0.18.20
|
version: 0.18.20
|
||||||
resolution: "@esbuild/openbsd-x64@npm:0.18.20"
|
resolution: "@esbuild/openbsd-x64@npm:0.18.20"
|
||||||
@@ -758,6 +882,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@esbuild/openbsd-x64@npm:0.23.1":
|
||||||
|
version: 0.23.1
|
||||||
|
resolution: "@esbuild/openbsd-x64@npm:0.23.1"
|
||||||
|
conditions: os=openbsd & cpu=x64
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@esbuild/sunos-x64@npm:0.18.20":
|
"@esbuild/sunos-x64@npm:0.18.20":
|
||||||
version: 0.18.20
|
version: 0.18.20
|
||||||
resolution: "@esbuild/sunos-x64@npm:0.18.20"
|
resolution: "@esbuild/sunos-x64@npm:0.18.20"
|
||||||
@@ -765,6 +896,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@esbuild/sunos-x64@npm:0.23.1":
|
||||||
|
version: 0.23.1
|
||||||
|
resolution: "@esbuild/sunos-x64@npm:0.23.1"
|
||||||
|
conditions: os=sunos & cpu=x64
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@esbuild/win32-arm64@npm:0.18.20":
|
"@esbuild/win32-arm64@npm:0.18.20":
|
||||||
version: 0.18.20
|
version: 0.18.20
|
||||||
resolution: "@esbuild/win32-arm64@npm:0.18.20"
|
resolution: "@esbuild/win32-arm64@npm:0.18.20"
|
||||||
@@ -772,6 +910,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@esbuild/win32-arm64@npm:0.23.1":
|
||||||
|
version: 0.23.1
|
||||||
|
resolution: "@esbuild/win32-arm64@npm:0.23.1"
|
||||||
|
conditions: os=win32 & cpu=arm64
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@esbuild/win32-ia32@npm:0.18.20":
|
"@esbuild/win32-ia32@npm:0.18.20":
|
||||||
version: 0.18.20
|
version: 0.18.20
|
||||||
resolution: "@esbuild/win32-ia32@npm:0.18.20"
|
resolution: "@esbuild/win32-ia32@npm:0.18.20"
|
||||||
@@ -779,6 +924,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@esbuild/win32-ia32@npm:0.23.1":
|
||||||
|
version: 0.23.1
|
||||||
|
resolution: "@esbuild/win32-ia32@npm:0.23.1"
|
||||||
|
conditions: os=win32 & cpu=ia32
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@esbuild/win32-x64@npm:0.18.20":
|
"@esbuild/win32-x64@npm:0.18.20":
|
||||||
version: 0.18.20
|
version: 0.18.20
|
||||||
resolution: "@esbuild/win32-x64@npm:0.18.20"
|
resolution: "@esbuild/win32-x64@npm:0.18.20"
|
||||||
@@ -786,6 +938,13 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"@esbuild/win32-x64@npm:0.23.1":
|
||||||
|
version: 0.23.1
|
||||||
|
resolution: "@esbuild/win32-x64@npm:0.23.1"
|
||||||
|
conditions: os=win32 & cpu=x64
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0":
|
"@eslint-community/eslint-utils@npm:^4.2.0, @eslint-community/eslint-utils@npm:^4.4.0":
|
||||||
version: 4.4.0
|
version: 4.4.0
|
||||||
resolution: "@eslint-community/eslint-utils@npm:4.4.0"
|
resolution: "@eslint-community/eslint-utils@npm:4.4.0"
|
||||||
@@ -964,7 +1123,7 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@jridgewell/resolve-uri@npm:^3.0.3, @jridgewell/resolve-uri@npm:^3.1.0":
|
"@jridgewell/resolve-uri@npm:^3.1.0":
|
||||||
version: 3.1.1
|
version: 3.1.1
|
||||||
resolution: "@jridgewell/resolve-uri@npm:3.1.1"
|
resolution: "@jridgewell/resolve-uri@npm:3.1.1"
|
||||||
checksum: f5b441fe7900eab4f9155b3b93f9800a916257f4e8563afbcd3b5a5337b55e52bd8ae6735453b1b745457d9f6cdb16d74cd6220bbdd98cf153239e13f6cbb653
|
checksum: f5b441fe7900eab4f9155b3b93f9800a916257f4e8563afbcd3b5a5337b55e52bd8ae6735453b1b745457d9f6cdb16d74cd6220bbdd98cf153239e13f6cbb653
|
||||||
@@ -985,16 +1144,6 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@jridgewell/trace-mapping@npm:0.3.9":
|
|
||||||
version: 0.3.9
|
|
||||||
resolution: "@jridgewell/trace-mapping@npm:0.3.9"
|
|
||||||
dependencies:
|
|
||||||
"@jridgewell/resolve-uri": ^3.0.3
|
|
||||||
"@jridgewell/sourcemap-codec": ^1.4.10
|
|
||||||
checksum: d89597752fd88d3f3480845691a05a44bd21faac18e2185b6f436c3b0fd0c5a859fbbd9aaa92050c4052caf325ad3e10e2e1d1b64327517471b7d51babc0ddef
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"@jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.17, @jridgewell/trace-mapping@npm:^0.3.9":
|
"@jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.17, @jridgewell/trace-mapping@npm:^0.3.9":
|
||||||
version: 0.3.20
|
version: 0.3.20
|
||||||
resolution: "@jridgewell/trace-mapping@npm:0.3.20"
|
resolution: "@jridgewell/trace-mapping@npm:0.3.20"
|
||||||
@@ -2994,34 +3143,6 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"@tsconfig/node10@npm:^1.0.7":
|
|
||||||
version: 1.0.9
|
|
||||||
resolution: "@tsconfig/node10@npm:1.0.9"
|
|
||||||
checksum: a33ae4dc2a621c0678ac8ac4bceb8e512ae75dac65417a2ad9b022d9b5411e863c4c198b6ba9ef659e14b9fb609bbec680841a2e84c1172df7a5ffcf076539df
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"@tsconfig/node12@npm:^1.0.7":
|
|
||||||
version: 1.0.11
|
|
||||||
resolution: "@tsconfig/node12@npm:1.0.11"
|
|
||||||
checksum: 5ce29a41b13e7897a58b8e2df11269c5395999e588b9a467386f99d1d26f6c77d1af2719e407621412520ea30517d718d5192a32403b8dfcc163bf33e40a338a
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"@tsconfig/node14@npm:^1.0.0":
|
|
||||||
version: 1.0.3
|
|
||||||
resolution: "@tsconfig/node14@npm:1.0.3"
|
|
||||||
checksum: 19275fe80c4c8d0ad0abed6a96dbf00642e88b220b090418609c4376e1cef81bf16237bf170ad1b341452feddb8115d8dd2e5acdfdea1b27422071163dc9ba9d
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"@tsconfig/node16@npm:^1.0.2":
|
|
||||||
version: 1.0.4
|
|
||||||
resolution: "@tsconfig/node16@npm:1.0.4"
|
|
||||||
checksum: 202319785901f942a6e1e476b872d421baec20cf09f4b266a1854060efbf78cde16a4d256e8bc949d31e6cd9a90f1e8ef8fb06af96a65e98338a2b6b0de0a0ff
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"@types/adm-zip@npm:^0.5.5":
|
"@types/adm-zip@npm:^0.5.5":
|
||||||
version: 0.5.5
|
version: 0.5.5
|
||||||
resolution: "@types/adm-zip@npm:0.5.5"
|
resolution: "@types/adm-zip@npm:0.5.5"
|
||||||
@@ -4024,14 +4145,14 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"acorn-walk@npm:^8.0.0, acorn-walk@npm:^8.1.1, acorn-walk@npm:^8.2.0":
|
"acorn-walk@npm:^8.0.0, acorn-walk@npm:^8.2.0":
|
||||||
version: 8.3.0
|
version: 8.3.0
|
||||||
resolution: "acorn-walk@npm:8.3.0"
|
resolution: "acorn-walk@npm:8.3.0"
|
||||||
checksum: 15ea56ab6529135be05e7d018f935ca80a572355dd3f6d3cd717e36df3346e0f635a93ae781b1c7942607693e2e5f3ef81af5c6fc697bbadcc377ebda7b7f5f6
|
checksum: 15ea56ab6529135be05e7d018f935ca80a572355dd3f6d3cd717e36df3346e0f635a93ae781b1c7942607693e2e5f3ef81af5c6fc697bbadcc377ebda7b7f5f6
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"acorn@npm:^8.0.4, acorn@npm:^8.10.0, acorn@npm:^8.4.1, acorn@npm:^8.9.0":
|
"acorn@npm:^8.0.4, acorn@npm:^8.10.0, acorn@npm:^8.9.0":
|
||||||
version: 8.11.2
|
version: 8.11.2
|
||||||
resolution: "acorn@npm:8.11.2"
|
resolution: "acorn@npm:8.11.2"
|
||||||
bin:
|
bin:
|
||||||
@@ -4146,13 +4267,6 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"arg@npm:^4.1.0":
|
|
||||||
version: 4.1.3
|
|
||||||
resolution: "arg@npm:4.1.3"
|
|
||||||
checksum: 544af8dd3f60546d3e4aff084d451b96961d2267d668670199692f8d054f0415d86fc5497d0e641e91546f0aa920e7c29e5250e99fc89f5552a34b5d93b77f43
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"argparse@npm:^1.0.10":
|
"argparse@npm:^1.0.10":
|
||||||
version: 1.0.10
|
version: 1.0.10
|
||||||
resolution: "argparse@npm:1.0.10"
|
resolution: "argparse@npm:1.0.10"
|
||||||
@@ -5124,13 +5238,6 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"create-require@npm:^1.1.0":
|
|
||||||
version: 1.1.1
|
|
||||||
resolution: "create-require@npm:1.1.1"
|
|
||||||
checksum: a9a1503d4390d8b59ad86f4607de7870b39cad43d929813599a23714831e81c520bddf61bcdd1f8e30f05fd3a2b71ae8538e946eb2786dc65c2bbc520f692eff
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"crelt@npm:^1.0.0":
|
"crelt@npm:^1.0.0":
|
||||||
version: 1.0.6
|
version: 1.0.6
|
||||||
resolution: "crelt@npm:1.0.6"
|
resolution: "crelt@npm:1.0.6"
|
||||||
@@ -5547,13 +5654,6 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"diff@npm:^4.0.1":
|
|
||||||
version: 4.0.2
|
|
||||||
resolution: "diff@npm:4.0.2"
|
|
||||||
checksum: f2c09b0ce4e6b301c221addd83bf3f454c0bc00caa3dd837cf6c127d6edf7223aa2bbe3b688feea110b7f262adbfc845b757c44c8a9f8c0c5b15d8fa9ce9d20d
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"difflib@npm:~0.2.1":
|
"difflib@npm:~0.2.1":
|
||||||
version: 0.2.4
|
version: 0.2.4
|
||||||
resolution: "difflib@npm:0.2.4"
|
resolution: "difflib@npm:0.2.4"
|
||||||
@@ -6189,6 +6289,89 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"esbuild@npm:~0.23.0":
|
||||||
|
version: 0.23.1
|
||||||
|
resolution: "esbuild@npm:0.23.1"
|
||||||
|
dependencies:
|
||||||
|
"@esbuild/aix-ppc64": 0.23.1
|
||||||
|
"@esbuild/android-arm": 0.23.1
|
||||||
|
"@esbuild/android-arm64": 0.23.1
|
||||||
|
"@esbuild/android-x64": 0.23.1
|
||||||
|
"@esbuild/darwin-arm64": 0.23.1
|
||||||
|
"@esbuild/darwin-x64": 0.23.1
|
||||||
|
"@esbuild/freebsd-arm64": 0.23.1
|
||||||
|
"@esbuild/freebsd-x64": 0.23.1
|
||||||
|
"@esbuild/linux-arm": 0.23.1
|
||||||
|
"@esbuild/linux-arm64": 0.23.1
|
||||||
|
"@esbuild/linux-ia32": 0.23.1
|
||||||
|
"@esbuild/linux-loong64": 0.23.1
|
||||||
|
"@esbuild/linux-mips64el": 0.23.1
|
||||||
|
"@esbuild/linux-ppc64": 0.23.1
|
||||||
|
"@esbuild/linux-riscv64": 0.23.1
|
||||||
|
"@esbuild/linux-s390x": 0.23.1
|
||||||
|
"@esbuild/linux-x64": 0.23.1
|
||||||
|
"@esbuild/netbsd-x64": 0.23.1
|
||||||
|
"@esbuild/openbsd-arm64": 0.23.1
|
||||||
|
"@esbuild/openbsd-x64": 0.23.1
|
||||||
|
"@esbuild/sunos-x64": 0.23.1
|
||||||
|
"@esbuild/win32-arm64": 0.23.1
|
||||||
|
"@esbuild/win32-ia32": 0.23.1
|
||||||
|
"@esbuild/win32-x64": 0.23.1
|
||||||
|
dependenciesMeta:
|
||||||
|
"@esbuild/aix-ppc64":
|
||||||
|
optional: true
|
||||||
|
"@esbuild/android-arm":
|
||||||
|
optional: true
|
||||||
|
"@esbuild/android-arm64":
|
||||||
|
optional: true
|
||||||
|
"@esbuild/android-x64":
|
||||||
|
optional: true
|
||||||
|
"@esbuild/darwin-arm64":
|
||||||
|
optional: true
|
||||||
|
"@esbuild/darwin-x64":
|
||||||
|
optional: true
|
||||||
|
"@esbuild/freebsd-arm64":
|
||||||
|
optional: true
|
||||||
|
"@esbuild/freebsd-x64":
|
||||||
|
optional: true
|
||||||
|
"@esbuild/linux-arm":
|
||||||
|
optional: true
|
||||||
|
"@esbuild/linux-arm64":
|
||||||
|
optional: true
|
||||||
|
"@esbuild/linux-ia32":
|
||||||
|
optional: true
|
||||||
|
"@esbuild/linux-loong64":
|
||||||
|
optional: true
|
||||||
|
"@esbuild/linux-mips64el":
|
||||||
|
optional: true
|
||||||
|
"@esbuild/linux-ppc64":
|
||||||
|
optional: true
|
||||||
|
"@esbuild/linux-riscv64":
|
||||||
|
optional: true
|
||||||
|
"@esbuild/linux-s390x":
|
||||||
|
optional: true
|
||||||
|
"@esbuild/linux-x64":
|
||||||
|
optional: true
|
||||||
|
"@esbuild/netbsd-x64":
|
||||||
|
optional: true
|
||||||
|
"@esbuild/openbsd-arm64":
|
||||||
|
optional: true
|
||||||
|
"@esbuild/openbsd-x64":
|
||||||
|
optional: true
|
||||||
|
"@esbuild/sunos-x64":
|
||||||
|
optional: true
|
||||||
|
"@esbuild/win32-arm64":
|
||||||
|
optional: true
|
||||||
|
"@esbuild/win32-ia32":
|
||||||
|
optional: true
|
||||||
|
"@esbuild/win32-x64":
|
||||||
|
optional: true
|
||||||
|
bin:
|
||||||
|
esbuild: bin/esbuild
|
||||||
|
checksum: 0413c3b9257327fb598427688b7186ea335bf1693746fe5713cc93c95854d6388b8ed4ad643fddf5b5ace093f7dcd9038dd58e087bf2da1f04dfb4c5571660af
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"escalade@npm:^3.1.1":
|
"escalade@npm:^3.1.1":
|
||||||
version: 3.1.1
|
version: 3.1.1
|
||||||
resolution: "escalade@npm:3.1.1"
|
resolution: "escalade@npm:3.1.1"
|
||||||
@@ -6888,7 +7071,7 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"fsevents@npm:~2.3.2":
|
"fsevents@npm:~2.3.2, fsevents@npm:~2.3.3":
|
||||||
version: 2.3.3
|
version: 2.3.3
|
||||||
resolution: "fsevents@npm:2.3.3"
|
resolution: "fsevents@npm:2.3.3"
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -6898,7 +7081,7 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"fsevents@patch:fsevents@~2.3.2#~builtin<compat/fsevents>":
|
"fsevents@patch:fsevents@~2.3.2#~builtin<compat/fsevents>, fsevents@patch:fsevents@~2.3.3#~builtin<compat/fsevents>":
|
||||||
version: 2.3.3
|
version: 2.3.3
|
||||||
resolution: "fsevents@patch:fsevents@npm%3A2.3.3#~builtin<compat/fsevents>::version=2.3.3&hash=df0bf1"
|
resolution: "fsevents@patch:fsevents@npm%3A2.3.3#~builtin<compat/fsevents>::version=2.3.3&hash=df0bf1"
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -7015,6 +7198,15 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"get-tsconfig@npm:^4.7.5":
|
||||||
|
version: 4.8.1
|
||||||
|
resolution: "get-tsconfig@npm:4.8.1"
|
||||||
|
dependencies:
|
||||||
|
resolve-pkg-maps: ^1.0.0
|
||||||
|
checksum: 12df01672e691d2ff6db8cf7fed1ddfef90ed94a5f3d822c63c147a26742026d582acd86afcd6f65db67d809625d17dd7f9d34f4d3f38f69bc2f48e19b2bdd5b
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"github-from-package@npm:0.0.0":
|
"github-from-package@npm:0.0.0":
|
||||||
version: 0.0.0
|
version: 0.0.0
|
||||||
resolution: "github-from-package@npm:0.0.0"
|
resolution: "github-from-package@npm:0.0.0"
|
||||||
@@ -7494,7 +7686,7 @@ __metadata:
|
|||||||
swagger-ui-react: ^5.11.0
|
swagger-ui-react: ^5.11.0
|
||||||
tldts: ^6.1.18
|
tldts: ^6.1.18
|
||||||
trpc-openapi: ^1.2.0
|
trpc-openapi: ^1.2.0
|
||||||
ts-node: latest
|
tsx: 4.19.1
|
||||||
turbo: ^1.10.12
|
turbo: ^1.10.12
|
||||||
typescript: 5.1.6
|
typescript: 5.1.6
|
||||||
uuid: ^9.0.0
|
uuid: ^9.0.0
|
||||||
@@ -8730,7 +8922,7 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"make-error@npm:^1.1.1, make-error@npm:^1.3.6":
|
"make-error@npm:^1.3.6":
|
||||||
version: 1.3.6
|
version: 1.3.6
|
||||||
resolution: "make-error@npm:1.3.6"
|
resolution: "make-error@npm:1.3.6"
|
||||||
checksum: b86e5e0e25f7f777b77fabd8e2cbf15737972869d852a22b7e73c17623928fccb826d8e46b9951501d3f20e51ad74ba8c59ed584f610526a48f8ccf88aaec402
|
checksum: b86e5e0e25f7f777b77fabd8e2cbf15737972869d852a22b7e73c17623928fccb826d8e46b9951501d3f20e51ad74ba8c59ed584f610526a48f8ccf88aaec402
|
||||||
@@ -12037,44 +12229,6 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"ts-node@npm:latest":
|
|
||||||
version: 10.9.1
|
|
||||||
resolution: "ts-node@npm:10.9.1"
|
|
||||||
dependencies:
|
|
||||||
"@cspotcode/source-map-support": ^0.8.0
|
|
||||||
"@tsconfig/node10": ^1.0.7
|
|
||||||
"@tsconfig/node12": ^1.0.7
|
|
||||||
"@tsconfig/node14": ^1.0.0
|
|
||||||
"@tsconfig/node16": ^1.0.2
|
|
||||||
acorn: ^8.4.1
|
|
||||||
acorn-walk: ^8.1.1
|
|
||||||
arg: ^4.1.0
|
|
||||||
create-require: ^1.1.0
|
|
||||||
diff: ^4.0.1
|
|
||||||
make-error: ^1.1.1
|
|
||||||
v8-compile-cache-lib: ^3.0.1
|
|
||||||
yn: 3.1.1
|
|
||||||
peerDependencies:
|
|
||||||
"@swc/core": ">=1.2.50"
|
|
||||||
"@swc/wasm": ">=1.2.50"
|
|
||||||
"@types/node": "*"
|
|
||||||
typescript: ">=2.7"
|
|
||||||
peerDependenciesMeta:
|
|
||||||
"@swc/core":
|
|
||||||
optional: true
|
|
||||||
"@swc/wasm":
|
|
||||||
optional: true
|
|
||||||
bin:
|
|
||||||
ts-node: dist/bin.js
|
|
||||||
ts-node-cwd: dist/bin-cwd.js
|
|
||||||
ts-node-esm: dist/bin-esm.js
|
|
||||||
ts-node-script: dist/bin-script.js
|
|
||||||
ts-node-transpile-only: dist/bin-transpile.js
|
|
||||||
ts-script: dist/bin-script-deprecated.js
|
|
||||||
checksum: 090adff1302ab20bd3486e6b4799e90f97726ed39e02b39e566f8ab674fd5bd5f727f43615debbfc580d33c6d9d1c6b1b3ce7d8e3cca3e20530a145ffa232c35
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"ts-toolbelt@npm:^9.6.0":
|
"ts-toolbelt@npm:^9.6.0":
|
||||||
version: 9.6.0
|
version: 9.6.0
|
||||||
resolution: "ts-toolbelt@npm:9.6.0"
|
resolution: "ts-toolbelt@npm:9.6.0"
|
||||||
@@ -12140,6 +12294,22 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
"tsx@npm:4.19.1":
|
||||||
|
version: 4.19.1
|
||||||
|
resolution: "tsx@npm:4.19.1"
|
||||||
|
dependencies:
|
||||||
|
esbuild: ~0.23.0
|
||||||
|
fsevents: ~2.3.3
|
||||||
|
get-tsconfig: ^4.7.5
|
||||||
|
dependenciesMeta:
|
||||||
|
fsevents:
|
||||||
|
optional: true
|
||||||
|
bin:
|
||||||
|
tsx: dist/cli.mjs
|
||||||
|
checksum: 31bfd2df62c1230f7c15f6e24d3790019ba7b2ad497221cb0cebcf5cf4f2c1ac971fac0d1283e3d80dc823652d2f9be946bd40ac65b640ff3f199b84a904a9c7
|
||||||
|
languageName: node
|
||||||
|
linkType: hard
|
||||||
|
|
||||||
"tunnel-agent@npm:^0.6.0":
|
"tunnel-agent@npm:^0.6.0":
|
||||||
version: 0.6.0
|
version: 0.6.0
|
||||||
resolution: "tunnel-agent@npm:0.6.0"
|
resolution: "tunnel-agent@npm:0.6.0"
|
||||||
@@ -12605,13 +12775,6 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"v8-compile-cache-lib@npm:^3.0.1":
|
|
||||||
version: 3.0.1
|
|
||||||
resolution: "v8-compile-cache-lib@npm:3.0.1"
|
|
||||||
checksum: 78089ad549e21bcdbfca10c08850022b22024cdcc2da9b168bcf5a73a6ed7bf01a9cebb9eac28e03cd23a684d81e0502797e88f3ccd27a32aeab1cfc44c39da0
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"v8-to-istanbul@npm:^9.0.0, v8-to-istanbul@npm:^9.1.0":
|
"v8-to-istanbul@npm:^9.0.0, v8-to-istanbul@npm:^9.1.0":
|
||||||
version: 9.1.3
|
version: 9.1.3
|
||||||
resolution: "v8-to-istanbul@npm:9.1.3"
|
resolution: "v8-to-istanbul@npm:9.1.3"
|
||||||
@@ -13229,13 +13392,6 @@ __metadata:
|
|||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"yn@npm:3.1.1":
|
|
||||||
version: 3.1.1
|
|
||||||
resolution: "yn@npm:3.1.1"
|
|
||||||
checksum: 2c487b0e149e746ef48cda9f8bad10fc83693cd69d7f9dcd8be4214e985de33a29c9e24f3c0d6bcf2288427040a8947406ab27f7af67ee9456e6b84854f02dd6
|
|
||||||
languageName: node
|
|
||||||
linkType: hard
|
|
||||||
|
|
||||||
"yocto-queue@npm:^0.1.0":
|
"yocto-queue@npm:^0.1.0":
|
||||||
version: 0.1.0
|
version: 0.1.0
|
||||||
resolution: "yocto-queue@npm:0.1.0"
|
resolution: "yocto-queue@npm:0.1.0"
|
||||||
|
|||||||
Reference in New Issue
Block a user