From 474a13f970624be4a133ec7b8ce82761090ecf2c Mon Sep 17 00:00:00 2001 From: Rijk van Zanten Date: Mon, 7 Jun 2021 09:30:24 -0400 Subject: [PATCH 01/32] New Crowdin updates (#6092) * New translations en-US.yaml (Spanish, Latin America) * New translations en-US.yaml (Spanish, Latin America) * New translations en-US.yaml (Spanish, Latin America) * New translations en-US.yaml (Spanish, Latin America) * New translations en-US.yaml (Spanish, Latin America) * New translations en-US.yaml (Spanish, Latin America) * New translations en-US.yaml (Spanish, Latin America) * New translations en-US.yaml (Spanish) * New translations en-US.yaml (Spanish, Latin America) * New translations en-US.yaml (Spanish, Latin America) * New translations en-US.yaml (Serbian (Latin)) * New translations en-US.yaml (Serbian (Latin)) * New translations en-US.yaml (Portuguese, Brazilian) * New translations en-US.yaml (Russian) * New translations en-US.yaml (Mongolian) * New translations en-US.yaml (Mongolian) * New translations en-US.yaml (Mongolian) * New translations en-US.yaml (Mongolian) * New translations en-US.yaml (Portuguese) * New translations en-US.yaml (Portuguese) * New translations en-US.yaml (Portuguese) * New translations en-US.yaml (Arabic) * New translations en-US.yaml (Ukrainian) * New translations en-US.yaml (Italian) * New translations en-US.yaml (Arabic) * New translations en-US.yaml (Italian) * New translations en-US.yaml (Turkish) * New translations en-US.yaml (Arabic) * New translations en-US.yaml (Italian) --- app/src/lang/translations/ar-SA.yaml | 144 ++++++++++++ app/src/lang/translations/es-419.yaml | 323 ++++++++++++++++---------- app/src/lang/translations/es-ES.yaml | 2 + app/src/lang/translations/it-IT.yaml | 173 ++++++++++++++ app/src/lang/translations/mn-MN.yaml | 53 +++++ app/src/lang/translations/pt-BR.yaml | 1 + app/src/lang/translations/pt-PT.yaml | 119 ++++++++++ app/src/lang/translations/ru-RU.yaml | 4 + app/src/lang/translations/sr-CS.yaml | 114 +++++++++ app/src/lang/translations/tr-TR.yaml | 24 ++ app/src/lang/translations/uk-UA.yaml | 7 + 11 files changed, 843 insertions(+), 121 deletions(-) create mode 100644 app/src/lang/translations/mn-MN.yaml diff --git a/app/src/lang/translations/ar-SA.yaml b/app/src/lang/translations/ar-SA.yaml index 0959f4416c..2144fc507e 100644 --- a/app/src/lang/translations/ar-SA.yaml +++ b/app/src/lang/translations/ar-SA.yaml @@ -75,32 +75,88 @@ validationError: gt: يجب أن تكون القيمة أكبر من {valid} gte: يجب أن تكون القيمة أكبر من أو تساوي {valid} lt: يجب أن تكون القيمة أقل من {valid} + lte: يجب أن تكون القيمة أكبر من أو تساوي {valid} empty: يجب أن تكون القيمة فارغة nempty: لا يمكن أن تكون القيمة فارغة + null: القيمة يجب أن تكون + nnull: لا يمكن أن تكون القيمة فارغة + required: هذه القيمة مطلوبة + unique: القيمة يجب أن تكون + regex: القيمة لا تحتوي على التنسيق الصحيح +all_access: دخول كامل للترجمات +no_access: ممنوع الدخول +use_custom: تخصيص +nullable: لا يمكن +allow_null_value: السماح بقيمة الالتفاف +enter_value_to_replace_nulls: الرجاء إدخال قيمة جديدة لاستبدال أي ULLL حاليا داخل هذا الحقل. +field_standard: قياسي +field_presentation: Presentation & Aliases field_file: ملف واحد field_files: عدة ملفات +field_m2o: العلاقة +field_m2a: العلاقة +field_o2m: العلاقة +field_m2m: العلاقة field_translations: الترجمة +item_permissions: أذونات العنصر +field_permissions: أذونات العنصر +field_validation: مجال المصادقة +field_presets: الإعداد المسبق للحقل +permissions_for_role: 'عناصر الدور {role} يمكن أن {action}.' +fields_for_role: 'عناصر الدور {role} يمكن أن {action}.' +validation_for_role: 'الحقل {action} قواعد الدور {role} يجب أن يطيع.' +presets_for_role: 'قيمة الحقل الافتراضية لدور {role}.' +presentation_and_aliases: Presentation & Aliases +revision_post_update: إليك ما بدا عليه هذا العنصر بعد التحديث... +changes_made: هذه هي التغييرات المحددة التي تم إجراؤها... +no_relational_data: ولا يغيب عن البال أن هذا لا يشمل بيانات علاقية. +hide_field_on_detail: مخفي في التفاصيل +show_field_on_detail: مخفي في التفاصيل delete_field: حذف الحقل +fields_and_layout: الحقول٪s ق وتخطيط +field_create_success: 'حقل تم إنشاؤه: "{field}"' +field_update_success: 'حقل تم إنشاؤه: "{field}"' +duplicate_where_to: أين تريد تكرار هذا الحقل إلى؟ language: لغة +global: الإجمالي +admins_have_all_permissions: المشرفون لديهم جميع الأذونات camera: الكاميرا +exposure: التعرض +shutter: الغالق +iso: ISO +focal_length: البعد البؤري +schema_setup_key: اسم عمود قاعدة بيانات هذا الحقل ومفتاح API create_field: إنشاء حقل +creating_new_field: 'حقل جديد ({collection})' +field_in_collection: '{field} ({collection})' +reset_page_preferences: إعادة ضبط الإعدادات المفضّلة للتطبيقات hidden_field: حقل مخفي hidden_on_detail: مخفي في التفاصيل +disabled_editing_value: تعطيل قيمة التحرير key: مفتاح +alias: اسم مستعار bigInteger: عدد صحيح كبير boolean: نعم/لا date: التاريخ +datetime: الوقت و التاريخ decimal: عشري float: عشري integer: رقم صحيح json: JSON +xml: XML string: نص text: نص time: الوقت timestamp: الطابع الزمني uuid: UUID +hash: الهاش not_available_for_type: غير متوفّر لنوع الملفات هذا create_translations: إنشاء ترجمات +auto_refresh: تحديث تلقائي +refresh_interval: الفاصل الزمني للتحيين +no_refresh: المتابعة على أية حال +refresh_interval_seconds: تحديث فوراً كل ثانية كل {seconds} ثانية +refresh_interval_minutes: كل دقيقة كل {minutes} دقيقة auto_generate: إنشاء تلقائي this_will_auto_setup_fields_relations: سيؤدي هذا تلقائياً إلى إعداد جميع الحقول والعلاقات المطلوبة. click_here: اضغط هنا @@ -108,7 +164,9 @@ to_manually_setup_translations: لإعداد الترجمات يدوياً. click_to_manage_translated_fields: >- لا يوجد حقول لترجمتها بعد. أضغط هنا لإنشائها | لا يوجد حقول مترجمة. أضغط هنا لإدارتها. | هناك {count} حقول مترجمة. أضغط هنا لإدارتها. fields_group: مجموعة الحقول +no_collections_found: لم يتم العثور على أية مجموعة. new_data_alert: 'سيتم إنشاء ما يلي ضمن نموذج البيانات الخاص بك:' +search_collection: مجموعة البحث... new_field: 'حقل جديد' new_collection: 'مجموعة جديدة' add_m2o_to_collection: 'إضافة كثيرين إلى واحد ل "{collection}"' @@ -161,7 +219,14 @@ revision_delta_created: تم الإنشاء revision_delta_created_externally: تم إنشاؤها خارجيا revision_delta_updated: 'تم تحديث حقل واحد | تحديث حقول {count}' revision_delta_deleted: حذف +revision_delta_reverted: تمت الإستعادة +revision_delta_other: تنقيح +revision_delta_by: '{user} {date}' +private_user: خصخصة المستخدم +revision_preview: معاينة التعديلات +updates_made: ترقيات مصنوعة leave_comment: اترك تعليقا... +post_comment_success: تم ارسال التعليق this_collection: هذه المجموعة related_collection: المجموعات ذات الصلة format: التنسيق @@ -189,6 +254,7 @@ owner: المالك download: تنزيل open: فتح open_in_new_window: فتح في نافذة جديدة +upload_from_device: استبدال الملف من الجهاز choose_from_library: اختر ملف من المكتبة import_from_url: استيراد ملف من رابط replace_from_device: استبدال الملف من الجهاز @@ -212,6 +278,10 @@ save_and_create_new: حفظ وإنشاء جديد save_and_stay: حفظ و إستمرار save_as_copy: حفظ كنسخة إضافية add_existing: إضافة من القائمة +creating_items: إنشاء عنصر +enable_create_button: تفعيل زر إعادة المحاولة +selecting_items: حدد العناصر +enable_select_button: تمكين زر التجانب comments: تعليقات no_comments: لا توجد تعليقات بعد click_to_expand: أضغط للمزيد @@ -224,25 +294,70 @@ report_bug: تبليغ عن خطأ request_feature: طلب ميزة interface_not_found: 'لم يتم العثور على واجهة "{interface}".' reset_interface: إعادة تعيين الواجهة +display_not_found: 'عرض "{display}" غير موجود.' +reset_display: إعادة تعيين العرض +list-m2a: الباني (M2A) item_count: 'لا توجد عناصر | عنصر واحد | {count} العناصر' +no_items_copy: لا توجد عناصر في هذه المجموعة بعد. +file_count: 'لايوجد دور أو صلاحية | دور أو صلاحية وحيدة | {count} أدوار أو صلاحيات' +no_files_copy: لا توجد مسلسلات هنا. +user_count: 'لا توجد عناصر | عنصر واحد | {count} العناصر' +no_users_copy: لا يوجد مستخدمون في هذه التجزئة. +webhooks_count: 'لاتوجد روابط ويب | رابط ويب | {count} روابط ويب' +no_webhooks_copy: لا يوجد أسئلة بعد. +all_items: كافة العناصر +csv: CSV +no_collections: مجموعات create_collection: إنشاء مجموعة +no_collections_copy_admin: ليس لديك أي مجموعات حتى الآن. انقر على الزر أدناه للبدء. +no_collections_copy: ليس لديك أي مجموعات حتى الآن. الرجاء الاتصال بمدير النظام الخاص بك. relationship_not_setup: لم يتم إعداد العلاقة بشكل صحيح +display_template_not_setup: خيار قالب العرض خاطئ التكوين +collection_field_not_setup: خيار حقل المجموعة خاطئ التكوين +select_a_collection: حدد مجموعة +active: مفعل users: المستخدمين activity: الأنشطة webhooks: روابط الويب (Webhooks) field_width: عرض الحقل +add_filter: إضافة فلتر +upper_limit: الحد الأقصى... +lower_limit: الحد الأقصى... user_directory: دليل المستخدمين documentation: التوثيق +sidebar: الشريط الجانبي duration: المدة +charset: اصطفاف تعليق افتراضي +second: الثانية (Automatic Translation) +file_moved: الملفات المنقولة +collection_created: تم تحديث المجموعة modified_on: التعديل في +card_size: حجم البطاقة sort_field: فرز الحقل +add_sort_field: فرز الحقل +sort: رتب status: حالة +toggle_manual_sorting: تفعيل الترتيب اليدوي +bookmark_doesnt_exist: الإشارة المرجعية غير موجودة +bookmark_doesnt_exist_copy: لم يتم العثور على العلامة المرجعية التي تحاول فتحها. +bookmark_doesnt_exist_cta: إضافة إلى مجموعة +select_an_item: Select an item... edit: تعديل +enabled: تمكين disable_tfa: تعطيل المصادقة الثنائية 2FA +tfa_scan_code: مسح التعليمات البرمجية في تطبيق المصادقة الخاص بك لإنهاء إعداد 2FA +enter_otp_to_disable_tfa: أدخل OTP لتعطيل 2FA create_account: إنشاء حساب account_created_successfully: تم إنشاء الحساب بنجاح +auto_fill: تجديد الخدمة الذاتية +corresponding_field: الوحدة البرمجية المقابلة errors: + COLLECTION_NOT_FOUND: "المجموعة غير موجودة" FIELD_NOT_FOUND: الحقل غير موجود + FORBIDDEN: محظور + INVALID_CREDENTIALS: اسم المستخدم و / أو كلمة المرور خاطئة + INVALID_OTP: كلمة مرور لمرة واحدة خاطئة + INVALID_PAYLOAD: Invalid payload ROUTE_NOT_FOUND: غير موجود bookmarks: محفوظات unexpected_error_copy: حدث خطأ غير متوقع. الرجاء المحاولة مرة أخرى لاحقاً. @@ -263,10 +378,32 @@ operators: gt: أكبر من lte: اقل او يساوي gte: أكبر من أو يساوي + nnull: باطل contains: يحتوي على ncontains: لا يحتوي + between: بين + nbetween: بين empty: فارغ + nempty: ليس فارغا + all: تتضمن هذه الوسوم + has: تتضمن هذه الوسوم loading: جار التحميل... +drop_to_upload: إسقاط إلى التحميل +item: عنصر +items: العناصر +upload_file: رفع ملف +upload_file_indeterminate: رفع ملف... +upload_file_success: رفع الملف +upload_files_indeterminate: 'تحميل الملفات {done}/{total}' +upload_files_success: 'عدد الصور التي تم تحميلها {count}' +upload_pending: التحميل معلق +drag_file_here: السحب والإفلات الملف هنا +click_to_browse: انقر للتصفح +layout_options: خيارات التصميم +rows: الصفوف +columns: أعمدة +collection_setup: لا توجد مجموعات الإعداد +value_unique: القيمة يجب أن تكون display_template: عرض القالب no_results: لا توجد نتائج role: الدور @@ -334,6 +471,7 @@ fields: width: العرض uploaded_on: تم التحميل بتاريخ height: الارتفاع + charset: اصطفاف تعليق افتراضي duration: المدة directus_users: first_name: الاسم الأول @@ -430,6 +568,8 @@ interfaces: datetime: التاريخ والوقت system-display-template: display-template: عرض القالب + collection_field_not_setup: خيار حقل المجموعة خاطئ التكوين + select_a_collection: حدد مجموعة presentation-divider: divider: الفاصل select-dropdown: @@ -438,6 +578,8 @@ interfaces: file: ملف files: files: الملفات + input-hash: + hash: الهاش select-icon: icon: أيقونة select-dropdown-m2o: @@ -447,6 +589,8 @@ interfaces: always_show_value: إظهار القيمة دائمًا tags: tags: الوسوم + boolean: + label_default: تمكين translations: display_template: عرض القالب user: diff --git a/app/src/lang/translations/es-419.yaml b/app/src/lang/translations/es-419.yaml index 73a979bd91..d274861d74 100644 --- a/app/src/lang/translations/es-419.yaml +++ b/app/src/lang/translations/es-419.yaml @@ -2,10 +2,10 @@ edit_field: Editar Campo item_revision: Revisión de Elemento duplicate_field: Campo duplicado -half_width: Anchura 50% -full_width: Ancho Completo -fill_width: Llenar Ancho -field_name_translations: 'Nombre de Campo: Traducciones' +half_width: Ancho a la Mitad +full_width: Ancho completo +fill_width: Ajustar ancho +field_name_translations: Traducciónes del nombre de campo enter_password_to_enable_tfa: Ingresa tu contraseña para habilitar "Two-Factor Authentication" add_field: Añade un campo role_name: Nombra un rol @@ -15,87 +15,92 @@ edited: Valor editado required: Requerido required_for_app_access: Requerido para acceso a la App requires_value: Valor requerido -create_preset: Crear Predefinido -create_role: Crear Rol +create_preset: Crear ajuste +create_role: Crear rol create_user: Crear Usuario create_webhook: Crear un gancho web invite_users: Invitar Usuarios email_examples: 'admin@ejemplo.com, usuario@ejemplo.com...' invite: Invita -emails: Correos Electrónicos -connection_excellent: Excelente Conexión -connection_good: Buena Conexión -connection_fair: Conexión Suficiente -connection_poor: Conexión Pobre -primary: Principal -rename_folder: Renombrar Directorio -delete_folder: Eliminar Directorio +email_already_invited: El correo electrónico "{email}" ya fue invitado con anterioridad +emails: Correos electrónicos +connection_excellent: Conexión excelente +connection_good: Conexión buena +connection_fair: Conexión debil +connection_poor: Conexión pobre +primary: Primario +rename_folder: Renombrar carpeta +delete_folder: Eliminar carpeta prefix: Prefijo suffix: Sufijo -reset_bookmark: Restablecer Marcador -rename_bookmark: Renombrar Marcador -update_bookmark: Actualizar Marcador +reset_bookmark: Restablecer marcador +rename_bookmark: Renombrar marcador +update_bookmark: Actualizar marcador delete_bookmark: Eliminar Marcador delete_bookmark_copy: >- - ¿Está seguro que desea eliminar el Marcador "{bookmark}"? Esta acción no es reversible. + ¿Estás seguro que quieres eliminar el marcador "{bookmark}"? Esta acción no se puede deshacer. logoutReason: - SIGN_OUT: Sesión terminada + SIGN_OUT: Cerrar sesión SESSION_EXPIRED: Sesión expirada public: Público -public_description: Controla qué datos de la API estarán disponibles sin requerir autenticarse -not_allowed: No Permitido +public_description: Control de datos disponibles por API sin autentificación. +not_allowed: No permitido directus_version: Versión de Directus -node_version: Versión de Node +node_version: Versión Node node_uptime: Tiempo de actividad de Node os_type: Tipo de SO -os_version: Versión de SO +os_version: Versión del sistema operativo os_uptime: Tiempo de actividad del SO os_totalmem: Memoria del SO archive: Archivar -archive_confirm: '¿Está seguro que desea archivar este elemento?' +archive_confirm: '¿Está seguro de querer archivar este registro?' archive_confirm_count: >- - Sin Elementos Seleccionados | ¿Realmente desea archivar este elemento? | ¿Realmente desea archivar estos {count} elementos? -reset_system_permissions_to: 'Restablecer Permisos del Sistema:' + Ningún registro seleccionado | ¿Estas seguro de querer archivar este registro? | ¿Estas seguro de querer archivar estos {count} registros? +reset_system_permissions_to: 'Restablecer los permisos del sistema a:' reset_system_permissions_copy: Esta acción sobrescribirá cualquier permiso personalizado que haya aplicado a las colecciones del sistema. ¿Está seguro? the_following_are_minimum_permissions: Los siguientes son permisos mínimos requeridos cuando "Acceso a App" está habilitado. Puede extender permisos más allá de esto, pero no más abajo. -app_access_minimum: Mínimo acceso a App -recommended_defaults: Valores predeterminados recomendados +app_access_minimum: Minimo Acceso a la Aplicación +recommended_defaults: Recomendado preestablecidos unarchive: Desarchivar unarchive_confirm: '¿Realmente desea desarchivar este elemento?' nested_files_folders_will_be_moved: Los archivos y directorios anidados serán movidos a un nivel superior. unknown_validation_errors: 'Ocurrieron errores de validación para los siguientes campos ocultos:' validationError: - eq: El valor tiene que ser {valid} + eq: El valor debe de ser {valid} neq: El valor no puede ser {invalid} in: 'El valor tiene que ser uno de estos: {valid}' nin: 'El valor no puede ser uno de estos: {invalid}' - contains: El valor tiene que contener {substring} + contains: El valor debe de Contener {substring} ncontains: El valor no puede contener {substring} gt: El valor tiene que ser mayor a {valid} gte: El valor tiene que ser mayor o igual a {valid} lt: El valor tiene que ser menor a {valid} lte: El valor tiene que ser menor o igual a {valid} empty: El valor tiene que estar vacío - nempty: El valor no puede estar vacío + nempty: Este valor no puede quedar vacío null: El valor tiene que ser nulo nnull: El valor no puede ser nulo - required: El valor es requerido - unique: El Valor tiene que ser único -all_access: Todos los accesos -no_access: Sin Acceso -use_custom: Personalizar -field_standard: Estándar + required: Valor requerido + unique: El valor debe de ser único + regex: El valor no cuenta con el formato correcto +all_access: Acceso total +no_access: Sin acceso +use_custom: Usar personalizado +nullable: Deshabilitable +allow_null_value: Permitir valor NULL +enter_value_to_replace_nulls: Por favor, introduzca un nuevo valor para reemplazar cualquier valor NULO actualmente dentro de este campo. +field_standard: Standar field_presentation: Presentación y Alias -field_file: Un Archivo +field_file: Un solo Archivo field_files: Múltiples Archivos -field_m2o: Relación MAU +field_m2o: Relación N:1 field_m2a: Relación M2A -field_o2m: Relación UAM -field_m2m: Relación MAM -field_translations: Traducciones -item_permissions: Permisos de Elemento -field_permissions: Permisos de Campo -field_validation: Validación de Campo +field_o2m: Relación 1:N +field_m2m: Relación M:N +field_translations: Traducciónes +item_permissions: Permisos de registro +field_permissions: Permisos de campo +field_validation: Validación de campo field_presets: Predefinidos para Campo permissions_for_role: 'Elementos que el Rol {role} puede {action}.' fields_for_role: 'Campos que el Rol {role} puede {action}.' @@ -107,7 +112,7 @@ changes_made: Estos son los cambios específicos que se hicieron... no_relational_data: Tener en cuenta que esto no incluye datos relacionales. hide_field_on_detail: Ocultar campo en el Detalle show_field_on_detail: Mostrar campo en el Detalle -delete_field: Eliminar Campo +delete_field: Borrar Campo fields_and_layout: Campos y Diseño field_create_success: 'Campo Creado: "{field}"' field_update_success: 'Campo Actualizado: "{field}"' @@ -121,13 +126,13 @@ shutter: Obturación iso: ISO focal_length: Distancia Focal schema_setup_key: Nombre de columna de este campo de la base de datos y clave API -create_field: Crear Campo -creating_new_field: 'Nuevo Campo ({collection})' +create_field: Crear campo +creating_new_field: 'Nuevo campo ({collection})' field_in_collection: '{field} ({collection})' reset_page_preferences: Restablecer Preferencias de Página -hidden_field: Campo Oculto +hidden_field: Campo oculto hidden_on_detail: Oculto en el Detalle -disabled_editing_value: Desactivar edición de valor +disabled_editing_value: Deshabilitar la edición del valor key: Llave alias: Alias bigInteger: Número Entero (Grande) @@ -135,23 +140,24 @@ boolean: Booleano date: Fecha datetime: Fecha y Hora decimal: Decimal -float: Número Flotante +float: Flotante integer: Número Entero json: JSON +xml: XML string: Cadena de Texto text: Texto time: Hora timestamp: Marca de Tiempo uuid: UUID hash: Hash -not_available_for_type: No disponible para este Tipo -create_translations: Crear Traducciones -auto_refresh: Actualización automática +not_available_for_type: No habilitado para este Tipo +create_translations: Crear traducción +auto_refresh: Actualizar automáticamente refresh_interval: Intervalo de actualización no_refresh: No actualizar refresh_interval_seconds: Refrescar Instantáneamente | Cada Segundo | Cada {seconds} Segundos refresh_interval_minutes: Cada Minuto | Cada {minutes} Minutos -auto_generate: Auto-Generado +auto_generate: Auto Generado this_will_auto_setup_fields_relations: Esto configurará automáticamente todos los campos y relaciones requeridas. click_here: Clic aquí to_manually_setup_translations: configurar manualmente las traducciones. @@ -160,58 +166,59 @@ click_to_manage_translated_fields: >- fields_group: Grupo de Campos no_collections_found: No se encontraron colecciones. new_data_alert: 'Los siguientes se crearán dentro de su Modelo de Datos:' +search_collection: Buscar colección... new_field: 'Nuevo Campo' -new_collection: 'Colección Nueva' -add_m2o_to_collection: 'Agregar Muchos-A-Uno a "{collection}"' -add_o2m_to_collection: 'Agregar Uno-A-Muchos a "{collection}"' -add_m2m_to_collection: 'Agregar Muchos-A-Muchos a "{collection}"' +new_collection: 'Nueva Colección' +add_m2o_to_collection: 'Agregar Muchos-a-Uno a "{collection}"' +add_o2m_to_collection: 'Agregar Uno-a-Muchos a "{collection}"' +add_m2m_to_collection: 'Agregar Muchos-a-Muchos a "{collection}"' choose_a_type: Elegir un Tipo... -determined_by_relationship: Determinado por la Relación +determined_by_relationship: Determinar por relación add_note: Agrega una nota de ayuda para los usuarios... default_value: Valor Predeterminado -standard_field: Campo Estándar -single_file: Un Archivo +standard_field: Campo Standar +single_file: Un solo Archivo multiple_files: Múltiples Archivos -m2o_relationship: Relación Muchos-a-Uno -o2m_relationship: Relación Uno-A-Muchos -m2m_relationship: Relación Muchos-A-Muchos -m2a_relationship: Relación Muchos-A-Cualquiera -invalid_item: Artículo inválido +m2o_relationship: Relación Muchos a Uno +o2m_relationship: Relación Uno a Muchos +m2m_relationship: Relación Muchos a Muchos +m2a_relationship: Relación Muchos a Cualquiera +invalid_item: Registro invalido next: Siguiente field_name: Nombre del Campo -translations: Traducciones +translations: Traducciónes note: Nota -enter_a_value: Ingrese un valor... +enter_a_value: Ingresa un valor... enter_a_placeholder: Ingrese un placeholder... -length: Longitud +length: Largó precision_scale: Precisión y Escala -readonly: Sólo lectura +readonly: Solo Lectura unique: Único updated_on: Actualizado el -updated_by: Actualizado por -primary_key: Llave primaria +updated_by: Actualizado Por +primary_key: Llave Primaria foreign_key: Llave Foránea finish_setup: Finalizar Configuración -dismiss: Cerrar -raw_value: Valor Plano +dismiss: Ignorar +raw_value: Valor sin interpretar edit_raw_value: Editar Valor Plano enter_raw_value: Ingresar valor plano... clear_value: Limpiar valor reset_to_default: Restablecer ajustes undo_changes: Deshacer cambios notifications: Notificaciones -show_all_activity: Presentar toda la actividad -page_not_found: Página No Encontrada +show_all_activity: Mostrar Toda La Actividad +page_not_found: Página no encontrada page_not_found_body: Parece que la página que está buscando no existe. confirm_revert: Confirmar reversión confirm_revert_body: Esto revertirá el elemento al estado seleccionado. display: Mostrar -settings_update_success: Ajustes actualizados +settings_update_success: Configuraciones Actualizadas title: Título revision_delta_created: Creado revision_delta_created_externally: Creado Externamente revision_delta_updated: '1 Campo Actualizado | {count} Campos Actualizados' -revision_delta_deleted: Eliminado +revision_delta_deleted: Borrado revision_delta_reverted: Revertido revision_delta_other: Revisión revision_delta_by: '{date} por {user}' @@ -220,32 +227,33 @@ revision_preview: Vista Previa de Revisión updates_made: Actualizaciones Realizadas leave_comment: Deja un comentario... post_comment_success: Comentario publicado -item_create_success: Elemento Creado | Elementos Creados -item_update_success: Elemento Actualizado | Elementos Actualizados -item_delete_success: Elemento Eliminado | Elementos Eliminados +item_create_success: Registro Creado | Registros Creados +item_update_success: Registro Actualizado | Registros Actualizados +item_delete_success: Registro Borrado | Registros Borrados this_collection: Esta Colección related_collection: Colección Relacionada related_collections: Colecciones Relacionadas -languages_collection: Colección de Idiomas -export_data: Exportar Datos +translations_collection: Traducción de la Colección +languages_collection: Coleccion de Idiomas +export_data: Exportar datos format: Formato use_current_filters_settings: Usar Filtros y Ajustes Actuales export_collection: 'Exportar {collection}' -last_page: Última Página -last_access: Último Acceso +last_page: Última página +last_access: Último acceso fill_template: Rellenar con Valor de Plantilla -a_unique_table_name: Un nombre de tabla único... -a_unique_column_name: Un nombre de columna único... +a_unique_table_name: Un Nombre de Tabla Único... +a_unique_column_name: Un nombre de Columna Único... enable_custom_values: Habilitar valores personalizados submit: Enviar -move_to_folder: Mover a Directorio +move_to_folder: Mover a Carpeta move: Mover system: Sistema -add_field_related: Agregar Campo a Colección Relacionada +add_field_related: Agregar Campo a la Colección Relacionada interface: Interfaz today: Hoy yesterday: Ayer -delete_comment: Eliminar Comentario +delete_comment: Borrar Comentario date-fns_date: PPP date-fns_time: 'h:mm:ss a' date-fns_time_no_seconds: 'h:mm a' @@ -254,7 +262,7 @@ date-fns_time_short: 'h:mma' date-fns_date_short_no_year: MMM d month: Mes year: Año -select_all: Seleccionar Todo +select_all: Seleccionar Todos months: january: Enero february: Febrero @@ -268,12 +276,12 @@ months: october: Octubre november: Noviembre december: Diciembre -drag_mode: Modo Arrastrar -cancel_crop: No Cortar +drag_mode: Modo arrastrar +cancel_crop: Cancelar corte original: Original url: URL import: Importar -file_details: Detalles de Archivo +file_details: Detalles del archivo dimensions: Dimensiones size: Tamaño created: Creado @@ -281,16 +289,16 @@ modified: Modificado checksum: Cadena de Verificación owner: Propietario edited_by: Editado por -folder: Directorio -zoom: Zoom +folder: Carpeta +zoom: Lupa download: Descargar open: Abrir -open_in_new_window: Abrir en Nueva Ventana +open_in_new_window: Abrir en una ventana nueva foreground_color: Color de Letra background_color: Color de Fondo upload_from_device: Subir Archivo desde Dispositivo choose_from_library: Seleccionar Archivo desde Biblioteca -import_from_url: Importar Archivo desde URL +import_from_url: Importar archivo desde una URL replace_from_device: Reemplazar Archivo desde Dispositivo replace_from_library: Reemplazar Archivo desde Biblioteca replace_from_url: Reemplazar Archivo desde URL @@ -302,7 +310,7 @@ primary_key_field: Campo Llave Primaria type: Tipo creating_new_collection: Crear Nueva Colección created_by: Creado Por -created_on: Creado El +created_on: Creado el creating_collection_info: Defina un nombre para la colección y configure su campo de "llave" única... creating_collection_system: Habilitar y renombrar cualquiera de estos campos opcionales. auto_increment_integer: Número Entero Auto-Incrementado @@ -312,11 +320,15 @@ save_and_create_new: Guardar y Crear Nuevo save_and_stay: Guardar y Permanecer save_as_copy: Guardar como Copia add_existing: Agregar Existente +creating_items: Registros Creados +enable_create_button: Habilitar Botón de Crear +selecting_items: Registros Seleccionados +enable_select_button: Habilitar el botón Seleccionar comments: Comentarios -no_comments: Aún Sin Comentarios +no_comments: Aún sin comentarios click_to_expand: Haga Clic para Expandir select_item: Seleccionar Elemento -no_items: Sin Elementos +no_items: Sin Registros search_items: Buscar elementos... disabled: Desactivado information: Información @@ -326,6 +338,7 @@ interface_not_found: 'Interfaz "{interface}" no encontrada.' reset_interface: Restablecer Interfaz display_not_found: 'Presentación "{display}" no encontrada.' reset_display: Restablecer Presentación +list-m2a: Constructor (M2A) item_count: 'Sin Elementos | Un Elemento | {count} Elementos' no_items_copy: Aún no hay Elementos en esta colección. file_count: 'Sin Archivos | Un Archivo | {count} Archivos' @@ -392,6 +405,8 @@ errors: ITEM_NOT_FOUND: Elemento no encontrado ROUTE_NOT_FOUND: No encontrado RECORD_NOT_UNIQUE: Se ha detectado un valor duplicado + USER_SUSPENDED: Usuario Suspendido + CONTAINS_NULL_VALUES: El campo contiene valores nulos UNKNOWN: Error Inesperado INTERNAL_SERVER_ERROR: Error Inesperado value_hashed: Valor Hasheado de Manera Segura @@ -407,7 +422,7 @@ no_app_access: Sin Acceso al App no_app_access_copy: Este usuario no tiene permitido usar la app administrativa. password_reset_sent: Le hemos enviado un enlace seguro para restablecer su contraseña password_reset_successful: Contraseña restablecida exitósamente -back: Atrás +back: Regresar editing_image: Editar Imagen square: Cuadrado free: Libre @@ -469,6 +484,8 @@ operators: has: Contiene alguna de estas llaves loading: Cargando... drop_to_upload: Arrastrar para Subir +item: Elemento +items: Elementos upload_file: Subir Archivo upload_file_indeterminate: Subiendo Archivo... upload_file_success: Archivo Subido @@ -482,10 +499,12 @@ rows: Filas columns: Columnas collection_setup: Configuración de Colección optional_system_fields: Campos Opcionales del Sistema -value_unique: El Valor tiene que ser único +value_unique: El valor debe de ser único all_activity: Toda la Actividad create_item: Crear Elemento display_template: Plantilla de Presentación +language_display_template: Plantilla de visualización de idioma +translations_display_template: Plantilla de visualización de traducciones n_items_selected: 'No hay Elementos Seleccionados | 1 Elemento Seleccionado | {n} Elementos Seleccionados' per_page: Por Página all_files: Todos los Archivos @@ -516,8 +535,21 @@ toggle: Alternar icon_on: Icono Activado icon_off: Icono Desactivado label: Etiqueta +image_url: Url de la imagen +alt_text: Texto Alternativo +media: Medios width: Ancho height: Alto +source: Fuente +url_placeholder: Introduzca una url... +display_text: Mostrar texto +display_text_placeholder: Introduzca un texto de visualización... +tooltip: Sugerencia +tooltip_placeholder: Introduzca una sugerencia... +unlimited: Ilimitado +open_link_in: Abrir enlace en +new_tab: Nueva pestaña +current_tab: Pestaña actual wysiwyg_options: aligncenter: Alinear al Centro alignjustify: Alinear Justificado @@ -537,7 +569,10 @@ wysiwyg_options: bullist: Lista con viñetas numlist: Lista Numerada hr: Regla Horizontal + link: Añadir/Editar enlace unlink: Remover Enlace + media: Añadir/Editar medios + image: Añadir/Editar Imagen copy: Copiar cut: Cortar paste: Pegar @@ -556,9 +591,10 @@ wysiwyg_options: redo: Rehacer remove: Eliminar removeformat: Quitar Formato - selectall: Seleccionar Todo + selectall: Seleccionar Todos table: Tabla visualaid: Ver elementos invisibles + source_code: Editar código fuente fullscreen: Pantalla Completa directionality: Direccionalidad dropdown: Lista Desplegable @@ -571,6 +607,8 @@ adding_user: Agregando Usuario unknown_user: Usuario Desconocido creating_in: 'Creando Elemento en {collection}' editing_in: 'Editando Elemento en {collection}' +creating_unit: 'Creando {unit}' +editing_unit: 'Editando {unit}' editing_in_batch: 'Editando {count} Elementos por lote' no_options_available: Sin opciones disponibles settings_data_model: Modelo de Datos @@ -578,10 +616,13 @@ settings_permissions: Roles y Permisos settings_project: Configuración del Proyecto settings_webhooks: Webhooks settings_presets: Predefinidos y Marcadores +one_or_more_options_are_missing: Falta una o más opciones scope: Alcance +select: Seleccionar... layout: Diseño tree_view: Vista en árbol changes_are_permanent: Los cambios son permanentes +preset_name_placeholder: Valor predeterminado cuando está vacío... preset_search_placeholder: Consulta de búsqueda... editing_preset: Editar Predefinido layout_preview: Vista Previa de Diseño @@ -620,13 +661,13 @@ page_help_users_collection: '**Directorio de Usuarios** — Lista todos los usua page_help_users_item: >- **Detalle de Usuario** — Administre su información de cuenta, o visualice el detalle de otros usuarios. activity_feed: Actividad -add_new: Agregar uno Nuevo +add_new: Agregar Nuevo create_new: Crear Nuevo all: Todos none: Nada no_layout_collection_selected_yet: Plantilla/Colección No seleccionada aún batch_delete_confirm: >- - Ningún elemento ha sido seleccionado | ¿Estás seguro que quieres eliminar este elemento?, Esta acción es permanente. | ¿Estás seguro que quieres eliminar estos {count} elementos?, Esta acción es permanente. + Ningún registro ha sido seleccionado | ¿Estás seguro que quieres eliminar este registro?, Esta acción es permanente. | ¿Estás seguro que quieres eliminar estos {count} registros?, Esta acción es permanente. cancel: Cancelar collection: Colección collections: Colecciones @@ -635,7 +676,7 @@ singleton_label: Tratar como un sólo objeto system_fields_locked: Los campos del sistema están bloqueados y no pueden ser editados fields: directus_activity: - item: Clave Primaria del Ítem + item: Clave Primaria del registro action: Acción collection: Colección timestamp: Realizado en @@ -651,11 +692,14 @@ fields: display_template: Plantilla de Presentación hidden: Oculto singleton: Singleton + translations: Traducciones para Nombre de Colección archive_app_filter: Archivar filtros de App archive_value: Archivar valor unarchive_value: Desarchivar valor sort_field: Campo Ordenamiento + accountability: Actividad y seguimiento de revisión directus_files: + $thumbnail: Miniatura title: Título description: Descripción tags: Etiquetas @@ -668,13 +712,13 @@ fields: filesize: Tamaño del archivo modified_by: Modificado por modified_on: Modificado en - created_on: Creado El + created_on: Creado el created_by: Creado Por embed: Incrustado - uploaded_by: Subido por - folder: Directorio + uploaded_by: Actualizado por + folder: Carpeta width: Ancho - uploaded_on: Subido el + uploaded_on: Uploaded On height: Alto charset: Codificación duration: Duración @@ -690,12 +734,12 @@ fields: tags: Etiquetas language: Idioma theme: Tema - tfa_secret: Doble Factor de Autenticación + tfa_secret: Autenticación de dos pasos status: Estatus role: Rol token: Token - last_page: Última Página - last_access: Último Acceso + last_page: Última página + last_access: Último acceso directus_settings: project_name: Nombre del Proyecto project_url: URL del Proyecto @@ -710,12 +754,12 @@ fields: storage_asset_transform: Transformación de Activos en Almacenamiento custom_css: CSS Personalizado directus_fields: - collection: Nombre de Colección - icon: Ícono de Colección + collection: Nombre de la Colección + icon: Icono de la Colección note: Nota hidden: Oculto singleton: Singleton - translation: 'Nombre de Campo: Traducciones' + translation: Traducciónes del nombre de campo display_template: Plantilla directus_roles: name: Nombra un rol @@ -728,6 +772,11 @@ fields: users: Usuarios en el Rol module_list: Navegación en Módulo collection_list: Navegación en Colección +field_options: + directus_collections: + track_activity_revisions: Rastrear actividad y revisiones + only_track_activity: Sólo seguimiento de actividad + do_not_track_anything: No realizar seguimiento no_fields_in_collection: 'Aún no hay campos en "{collection}"' do_nothing: No hacer nada generate_and_save_uuid: Generar y Guardar UUID @@ -737,6 +786,13 @@ save_current_datetime: Guardar Fecha y Hora Actual block: Bloque inline: Alineado comment: Comentar +relational_triggers: Disparadores Relacionales +referential_action_field_label_m2o: Al eliminar {collection}... +referential_action_field_label_o2m: Al deseleccionar {collection}... +referential_action_no_action: Evitar la eliminación +referential_action_set_null: Anular el campo {field} +referential_action_set_default: Establecer {field} a su valor predeterminado +choose_action: Elegir acción continue: Continuar continue_as: >- Actualmente {name} ha iniciado sesión. Si reconoce esta cuenta, presione continuar. @@ -801,9 +857,25 @@ view_project: Ver Proyecto report_error: Reportar Error interfaces: presentation-links: - primary: Principal + presentation-links: Botón de enlace + links: Enlaces + description: Botones de enlace configurables para abrir URLs dinámicas + style: Estilo + primary: Primario + link: Enlaces + button: Botones + error: No se puede realizar la acción + select-multiple-checkbox: + checkboxes: Casillas de selección + description: Elegir entre múltiples opciones a través de casillas de selección + allow_other: Permitir otro + show_more: 'Mostrar {count} más' + items_shown: Elementos Mostrados input-code: code: Código + description: Escribir o compartir fragmentos de código + line_number: Número de línea + placeholder: Ingrese el código aquí... collection: collection: Colección description: Seleccionar entre colecciones existentes @@ -814,6 +886,11 @@ interfaces: include_system_collections: Incluir Colecciones del Sistema select-color: color: Color + description: Introduzca o seleccione un valor de color + placeholder: Seleccione un color... + preset_colors: Colores preestablecidos + preset_colors_add_label: Añadir nuevo color... + name_placeholder: Introduce el nombre del color... datetime: datetime: Fecha/hora description: Ingrese fechas y horas @@ -822,12 +899,16 @@ interfaces: use_24: Usar Formato 24 horas system-display-template: display-template: Plantilla de Presentación + description: Combinar texto estático y valores de campos dinámicos + collection_field: Campo de colección collection_field_not_setup: La opción del campo de colección está mal configurada select_a_collection: Seleccionar una Colección presentation-divider: divider: Separador + description: Etiqueta y divide los campos en secciones select-dropdown: - choices_value_placeholder: Ingrese un valor... + allow_other: Permitir otro + choices_value_placeholder: Ingresa un valor... file: file: Archivo description: Seleccionar o subir un archivo @@ -938,7 +1019,7 @@ displays: default_background: Fondo por defecto format_label: Formatear cada etiqueta show_as_dot: Presentar como Punto - choices_value_placeholder: Ingrese un valor... + choices_value_placeholder: Ingresa un valor... choices_text_placeholder: Ingresar un texto... mime-type: mime-type: Tipo MIME diff --git a/app/src/lang/translations/es-ES.yaml b/app/src/lang/translations/es-ES.yaml index 778fb7389d..b1593a4b03 100644 --- a/app/src/lang/translations/es-ES.yaml +++ b/app/src/lang/translations/es-ES.yaml @@ -900,10 +900,12 @@ interfaces: system-display-template: display-template: Plantilla de Presentación description: Combinar texto estático y valores de campos dinámicos + collection_field: Campo de colección collection_field_not_setup: La opción del campo de colección está mal configurada select_a_collection: Seleccionar una Colección presentation-divider: divider: Separador + description: Etiqueta y divide los campos en secciones select-dropdown: allow_other: Permitir otro choices_value_placeholder: Ingrese un valor... diff --git a/app/src/lang/translations/it-IT.yaml b/app/src/lang/translations/it-IT.yaml index faf66e9754..577d03008b 100644 --- a/app/src/lang/translations/it-IT.yaml +++ b/app/src/lang/translations/it-IT.yaml @@ -11,6 +11,7 @@ add_field: Aggiungi campo role_name: Nome ruolo db_only_click_to_configure: 'Solo Database: Fare clic per configurare ' show_archived_items: Mostra le elementi archiviati +edited: Valore Modificato required: Obbligatorio required_for_app_access: Richiesto per l'accesso alle app requires_value: Richiede un valore @@ -21,6 +22,7 @@ create_webhook: Crea webhook invite_users: Invita utenti email_examples: 'admin@example.com, user@example.com...' invite: Invita +email_already_invited: Email "{email}" è già stata invitata emails: Email connection_excellent: Connessione Eccellente connection_good: Buona connessione @@ -57,6 +59,7 @@ archive_confirm_count: >- reset_system_permissions_to: 'Reimposta i permessi di sistema a:' reset_system_permissions_copy: Questa azione sovrascriverà qualsiasi permesso personalizzato che potresti aver applicato alle collezioni di sistema. Sei sicuro? the_following_are_minimum_permissions: Di seguito sono riportati i permessi minimi richiesti quando "App Access" è abilitato. È possibile estendere i permessi, ma non ridurli. +app_access_minimum: Accesso App Minimo recommended_defaults: Impostazioni di base consigliate unarchive: Ripristina unarchive_confirm: Sei sicuro*a di voler ripristinare questo elemento? @@ -79,9 +82,12 @@ validationError: nnull: Il valore non può essere nullo required: Il valore è obbligatorio unique: Il valore deve essere unico + regex: Il valore non ha il formato corretto all_access: Accesso totale no_access: Nessun Accesso use_custom: Usa Personalizzato +allow_null_value: Consenti valore NULL +enter_value_to_replace_nulls: Inserisci un nuovo valore per sostituire qualsiasi NULL all'interno di questo campo. field_standard: Standard field_file: File Singolo field_files: File Multipli @@ -130,6 +136,7 @@ decimal: Decimale float: Float integer: Integer json: JSON +xml: XML string: String text: Testo time: Ora @@ -138,6 +145,9 @@ uuid: UUID hash: Hash not_available_for_type: Non disponibile per questo typo create_translations: Crea traduzioni +auto_refresh: Aggiornamento automatico +refresh_interval: Intervallo di aggiornamento +no_refresh: Non aggiornare auto_generate: Generare automaticamente this_will_auto_setup_fields_relations: Questo imposterà automaticamente tutti i campi e le relazioni richieste. click_here: Clicca qui @@ -378,12 +388,15 @@ square: Quadrato free: Libero flip_horizontal: Rifletti Orizzontalmente flip_vertical: Rifletti Verticalmente +aspect_ratio: Proporzione rotate: Ruota all_users: Tutti gli Utenti delete_collection: Elimina Raccolta update_collection_success: Raccolta Aggiornata delete_collection_success: Raccolta Eliminata start_end_of_count_items: '{start}-{end} di {count} elementi' +one_item: '1 elemento' +one_filtered_item: '1 elemento filtrato' delete_collection_are_you_sure: >- Sei sicuro di voler eliminare questa raccolta? Questo eliminerà la raccolta e tutti gli elementi in essa. Questa azione è permanente. collections_shown: Raccolte Mostrate @@ -394,6 +407,7 @@ system_collections: Raccolte di Sistema placeholder: Placeholder icon_left: Icona a sinistra icon_right: Icona a destra +font: Tipo di carattere sans_serif: Sans Serif serif: Serif monospace: Monospace @@ -401,7 +415,10 @@ divider: Separatore color: Colore circle: Cerchio empty_item: Elemento Vuoto +log_in_with: 'Accedi con {provider}' +advanced_filter: Filtro Avanzato delete_advanced_filter: Elimina filtro +change_advanced_filter_operator: Cambia Operatore operators: eq: Uguale neq: Non è uguale @@ -418,21 +435,32 @@ operators: between: È compresa tra nbetween: Non è compresa tra empty: È vuoto + nempty: Non è vuoto + all: Contiene queste chiavi + has: Contiene alcune di queste chiavi loading: Caricamento in corso... +drop_to_upload: Rilascia per caricare +item: Elemento +items: Elementi upload_file: Carica File upload_file_indeterminate: Caricamento File... upload_file_success: File Caricato upload_files_indeterminate: 'Caricamento file {done}/{total}' upload_files_success: '{count} File Caricati' upload_pending: Caricamento In Attesa +drag_file_here: Trascina e rilascia il file qui +click_to_browse: Clicca per Sfogliare layout_options: Opzioni Layout rows: Righe columns: Colonne collection_setup: Configurazione Raccolta +optional_system_fields: Campi di Sistema Opzionali value_unique: Il valore deve essere unico all_activity: Tutte le Attività create_item: Crea Elemento display_template: Display Template +language_display_template: Modello Visualizzazione Lingua +translations_display_template: Modello Visualizzazione Traduzioni n_items_selected: 'Nessun Elemento Selezionato | 1 Elemento Selezionato | {n} Elementi Selezionati' per_page: Per Pagina all_files: Tutti i File @@ -444,6 +472,7 @@ add_file: Aggiungi File replace_file: Sostituisci File no_results: Nessun risultato no_results_copy: Regola o cancella i filtri di ricerca per visualizzare i risultati. +clear_filters: Pulisci filtri saves_automatically: Salva Automaticamente role: Ruolo user: Utente @@ -451,34 +480,70 @@ no_presets: Nessuna Preset no_presets_copy: Nessun preset o segnalibro sono stati ancora salvati. no_presets_cta: Aggiungi Preset create: Creare +on_create: Alla Creazione on_update: In aggiornamento read: Leggere update: Aggiornare select_fields: Seleziona campi format_text: Formato testo bold: Grassetto +toggle: Interrutore label: Etichetta +image_url: URL immagine +alt_text: Testo alternativo +media: Media width: Larghezza height: Altezza +source: Sorgente +url_placeholder: Inserisci url... +display_text: Visualizza testo +unlimited: Illimitato +new_tab: Nuova scheda +current_tab: Scheda corrente wysiwyg_options: + aligncenter: Centrato + alignjustify: Giustificato + alignleft: Allineamento a sinistra + alignnone: Senza allineamento + alignright: Allineamento a destra forecolor: Colore di primo piano backcolor: Colore dello sfondo bold: Grassetto italic: Corsivo underline: Sottolineato strikethrough: Barrato + subscript: Pedice + superscript: Apice codeblock: Codice + blockquote: Citazione + bullist: Elenco Puntato + numlist: Elenco Numerato + hr: Riga Orizzontale + link: Aggiungi/Modifica Collegamento unlink: Rimuovi link + media: Aggiungi/Modifica Media + image: Aggiungi/Modifica Immagine copy: Copia cut: Taglia paste: Incolla + heading: Intestazione + h1: Intestazione 1 + h2: Intestazione 2 + h3: Intestazione 3 + h4: Intestazione 4 + h5: Intestazione 5 + h6: Intestazione 6 + fontselect: Seleziona il tipo di carattere undo: Annulla redo: Ripristina remove: Rimuovere removeformat: Rimuovi Formato selectall: Seleziona tutto table: Tabella + visualaid: Visualizza elementi invisibili + source_code: Modifica Codice Sorgente fullscreen: Schermo Intero + directionality: Direzionalità dropdown: Menu a tendina choices: Scelta multipla deselect: Deseleziona @@ -492,7 +557,12 @@ settings_permissions: Ruoli e permessi settings_project: Impostazioni del progetto settings_webhooks: Webhooks settings_presets: Preset & Segnalibri +one_or_more_options_are_missing: Mancano una o più opzioni +select: Seleziona... layout: Layout +tree_view: Struttura ad albero +changes_are_permanent: Modifiche sono permanenti +preset_search_placeholder: Chiave di ricerca... editing_preset: Modifica Preset layout_preview: Anteprima Layout layout_setup: Configurazione Layout @@ -510,15 +580,18 @@ page_help_settings_presets_collection: >- **Sfoglia Preset** — Elenca tutti i preset del progetto, tra cui: utente, ruolo, segnalibri globali e viste predefinite. page_help_settings_presets_item: >- **Dettagli Preset** — Un modulo per la gestione dei segnalibri e dei preset predefiniti delle raccolte. +activity_feed: Feed Attività add_new: Aggiungi nuovo create_new: Crea Nuovo all: Tutti +none: Nessuno no_layout_collection_selected_yet: Nessun layout/raccolta ancora selezionato batch_delete_confirm: >- Nessun elemento è stato selezionato | Sei sicuro di voler eliminare questo articolo? Questa azione non può essere annullata. | Sei sicuro di voler eliminare questi {count} elementi? Questa azione non può essere annullata. cancel: Annulla collection: Raccolta collections: Raccolte +singleton_label: Tratta come oggetto singolo system_fields_locked: I campi di sistema sono bloccati e non possono essere modificati fields: directus_activity: @@ -538,13 +611,20 @@ fields: display_template: Display Template hidden: Nascosto sort_field: Ordina per + accountability: Monitoraggio Attività e Revisione directus_files: + $thumbnail: Miniatura title: Titolo description: Descrizione tags: Tags location: Percorso + storage: Archiviazione + filename_disk: Nome File (Disco) + filename_download: Nome File (Download) metadata: Metadati + type: Tipo MIME filesize: Dimensione file + modified_by: Modificato da modified_on: Modificato il created_on: Creato il created_by: Creato da @@ -571,6 +651,7 @@ fields: tfa_secret: Autenticazione a due fattori status: Stato role: Ruolo + token: Token last_page: Ultima Pagina last_access: Ultimo Acesso directus_settings: @@ -578,8 +659,15 @@ fields: project_url: URL del Progetto project_color: Colore del Progetto project_logo: Logo del Progetto + public_foreground: Primo Piano Pubblico + public_background: Sfondo Pubblico + public_note: Nota Pubblica + auth_password_policy: Criteri Password di accesso + auth_login_attempts: Tentativi di accesso + custom_css: CSS personalizzato directus_fields: collection: Nome della Raccolta + icon: Icona Collezione note: Nota hidden: Nascosto translation: Traduzioni nome del campo @@ -592,15 +680,27 @@ fields: admin_access: Accesso Amministratore ip_access: Accesso IP enforce_tfa: Richiede 2FA + users: Utenti nel ruolo collection_list: Navigazione Raccolta +field_options: + directus_collections: + track_activity_revisions: Traccia Attività e Revisioni + only_track_activity: Traccia solo Attività + do_not_track_anything: Non Tracciare nulla no_fields_in_collection: 'Non ci sono ancora campi in "{collection}"' do_nothing: Non Fare Niente generate_and_save_uuid: Genera e Salva UUID save_current_user_id: Salva l'Id Utente Attuale save_current_user_role: Salva Ruolo Utente Attuale save_current_datetime: Salva Data/Ora Attuale +block: Blocco comment: Commento +referential_action_field_label_m2o: Alla cancellazione di {collection}... +referential_action_set_default: Imposta {field} al suo valore predefinito +choose_action: Scegli azione continue: Continua +continue_as: >- + {name} è già autenticato. Se riconosci questo account, premi continua. editing_role: '{role} Ruolo' default: Predefinito delete: Elimina @@ -660,8 +760,13 @@ view_project: Visualizza Progetto interfaces: presentation-links: primary: Principale + select-multiple-checkbox: + items_shown: Elementi Visualizzati input-code: code: Codice + description: Scrivi o condividi frammenti di codice + line_number: Numero di riga + placeholder: Inserisci il codice qui... collection: collection: Raccolta description: Seleziona tra raccolte esistenti @@ -672,6 +777,9 @@ interfaces: include_system_collections: Includi Raccolte di Sistema select-color: color: Colore + placeholder: Scegli un colore... + preset_colors: Colori Predefiniti + preset_colors_add_label: Aggiungi nuovo colore... datetime: datetime: Data e ora description: Inserisci date e orari @@ -695,21 +803,59 @@ interfaces: hash: Hash select-icon: icon: Icon + description: Seleziona un'icona dal menu a discesa + search_for_icon: Cerca un'icona... file-image: image: Immagine + description: Seleziona o carica un'immagine system-interface: interface: Interfaccia + description: Seleziona un'interfaccia esistente + placeholder: Seleziona un'interfaccia... + system-interface-options: + interface-options: Opzioni interfaccia + list-m2m: + many-to-many: Molti a Molti select-dropdown-m2o: + many-to-one: Molti a Uno + description: Seleziona un singolo elemento correlato display_template: Display Template + input-rich-text-md: + markdown: Markdown + customSyntax: Blocchi Personalizzati + customSyntax_add: Aggiungi sintassi personalizzata + imageToken: Token Immagine + presentation-notice: + notice: Avviso + description: Mostra un avviso breve + text: Inserisci qui il contenuto dell'avviso... + list-o2m: + one-to-many: Uno a Molti + description: Seleziona più elementi correlati + no_collection: Impossibile trovare la collezione + list: + repeater: Ripetitore + edit_fields: Modifica Campi + field_name_placeholder: Inserisci il nome del campo... + field_note_placeholder: Inserisci la nota del campo... slider: slider: Cursore always_show_value: Mostra sempre il valore tags: tags: Tags description: Seleziona o aggiungi tag + capitalization: Capitalizzazione + uppercase: Converti Maiuscole + lowercase: Converti Minuscole alphabetize_label: Forza Ordine Alfabetico add_tags: Aggiungi tag... + input: + input: Input + description: Inserisci manualmente un valore + mask_label: Nascondi il valore reale + clear_label: Salva come stringa vuota boolean: + toggle: Interrutore label_default: Abilitato translations: display_template: Display Template @@ -723,39 +869,61 @@ interfaces: displays: boolean: boolean: Boolean + color_off: Colore Disattivato collection: collection: Raccolta description: Mostra una raccolta icon_label: Mostra l'icona della raccolta color: color: Colore + description: Mostra un punto colorato + default_color: Colore Predefinito datetime: datetime: Data e ora + description: Visualizza valori relativi al tempo format: Formato + long: Lungo + short: Breve + relative: Relativo + relative_label: 'Mostra tempo relativo, es.: 5 minuti fa' file: file: File description: Visualizza file filesize: filesize: Dimensione File description: Visualizza la dimensione di un file + formatted-value: + formatted-value: Valore Formattato + description: Mostra una versione formattata del testo + formatted-json-value: + formatted-json-value: Valore JSON formattato + description: Visualizza una versione formattata dell'oggetto icon: icon: Icon description: Visualizza un'icona + filled: Riempito image: image: Immagine description: Visualizza una piccola anteprima dell'immagine circle: Cerchio circle_label: Visualizza come un cerchio labels: + labels: Etichette + default_foreground: Primo Piano Predefinito + default_background: Sfondo Predefinito + format_label: Formatta ogni etichetta choices_value_placeholder: Inserisci un valore... choices_text_placeholder: Inserisci un testo... mime-type: + mime-type: Tipo MIME + description: Mostra il tipo MIME del file extension_only: Solo Estensione extension_only_label: Mostra solo l'estensione del file rating: rating: Valutazione simple: Semplice related-values: + related-values: Valori Correlati description: Visualizza i valori relativi user: user: Utente @@ -767,6 +935,7 @@ layouts: cards: cards: Schede image_source: Origine immagine + image_fit: Adatta immagini crop: Ritaglia title: Titolo subtitle: Sottotitolo @@ -777,3 +946,7 @@ layouts: comfortable: Confortevole compact: Compatto cozy: Accogliente + calendar: + calendar: Calendario + start_date_field: Campo Data inizio + end_date_field: Campo Data fine diff --git a/app/src/lang/translations/mn-MN.yaml b/app/src/lang/translations/mn-MN.yaml new file mode 100644 index 0000000000..6c1118c8ae --- /dev/null +++ b/app/src/lang/translations/mn-MN.yaml @@ -0,0 +1,53 @@ +--- +edit_field: Талбарыг засах +item_revision: Хяналт +duplicate_field: Талбарыг хувилах +half_width: Тал өргөн +full_width: Бүтэн өргөн +fill_width: Өргөн дүүрэн +field_name_translations: Талбарын нэрний орчуулга +enter_password_to_enable_tfa: Нууц үгээ оруулж Хоёр-Давхар Нотолгоог идэвхижүүлнэ үү +add_field: Талбар нэмэх +role_name: Үүргийн нэр +db_only_click_to_configure: 'Зөвхөн дата баазад хамаатай: Дарж өөрчилнө үү ' +show_archived_items: Архивласан зүйлсийг харах +edited: Зассан утга +required: Зайлшгүй +required_for_app_access: Апп холбоход шаардлагатай +requires_value: Утга оруулах шаардлагатай +create_preset: Тохируулга үүсгэх +create_role: Үүрэг үүсгэх +create_user: Хэрэглэгч үүсгэх +create_webhook: Webhook үүсгэх +invite_users: Хэрэглэгч урих +email_examples: 'admin@example.com, user@example.com...' +invite: Урих +email_already_invited: '"{email}" имэйл хаягийг өмнө нь урьсан байна' +emails: Имэйл +connection_excellent: Холболт маш сайн +connection_good: Холболт сайн +connection_fair: Холболт дунд зэрэг +connection_poor: Холболт муу +primary: Үндсэн +rename_folder: Хавтасны нэр өөрчлөх +delete_folder: Хавтас устгах +prefix: Угтвар +suffix: Дагавар +reset_bookmark: Тэмдэглэгээг хуучин хэвэнд оруулах +rename_bookmark: Тэмдэглэгээний нэрийг өөрчлөх +update_bookmark: Тэмдэглээг шинэлэх +delete_bookmark: Тэмдэглэгээг устгах +delete_bookmark_copy: >- + "{bookmark}" тэмдэглэгээг устгахдаа итгэлтэй байна уу? Устгасан бол сэргээх боломжгүй. +logoutReason: + SIGN_OUT: Сайтаас гарсан + SESSION_EXPIRED: Холболтын хугацаа дууссан +public: Нийтийн +fields: + directus_fields: + translation: Талбарын нэрний орчуулга + directus_roles: + name: Үүргийн нэр +interfaces: + presentation-links: + primary: Үндсэн diff --git a/app/src/lang/translations/pt-BR.yaml b/app/src/lang/translations/pt-BR.yaml index e53740843c..73d5baa8a0 100644 --- a/app/src/lang/translations/pt-BR.yaml +++ b/app/src/lang/translations/pt-BR.yaml @@ -993,6 +993,7 @@ interfaces: add_tags: Adicionar tags... input: input: Entrada + trim: Recortar mask: Mascarado mask_label: Ocultar o valor real clear: Limpar valor diff --git a/app/src/lang/translations/pt-PT.yaml b/app/src/lang/translations/pt-PT.yaml index 1dfaca65ac..a75be2aebb 100644 --- a/app/src/lang/translations/pt-PT.yaml +++ b/app/src/lang/translations/pt-PT.yaml @@ -22,6 +22,7 @@ create_webhook: Criar webhook invite_users: Convidar utlizadores email_examples: 'admin@example.com, user@example.com...' invite: Convidar +email_already_invited: Este e-mail já foi convidado emails: Emails connection_excellent: Excelente Conexão connection_good: Boa conexão @@ -81,20 +82,32 @@ validationError: null: O valor tem de ser nulo nnull: O valor não pode ser nulo required: O valor é obrigatório + unique: O valor tem de ser único + regex: O valor não tem o formato correto all_access: Acesso Global no_access: Sem Acesso use_custom: Usar personalizado +nullable: Nulo +allow_null_value: Permitir valor NULL +enter_value_to_replace_nulls: Por favor, insira um novo valor para substituir qualquer NULLs atualmente dentro deste campo. field_standard: Predefinido +field_presentation: Apresentação & Pseudônimos +field_file: Ficheiro Único +field_files: Vários Ficheiros field_m2o: Relação Muitos para Um field_m2a: Relação Muitos para Alguns field_o2m: Relação Um para Muitos field_m2m: Relação Muitos para Muitos +field_translations: Traduções item_permissions: Permissões do documento field_permissions: Permisões do campo field_validation: Validação do Campo field_presets: Predefinições para o campo permissions_for_role: 'Documentos que o estatuto {role} pode {action}.' fields_for_role: 'Campos que o estatuto {role} pode {action}.' +validation_for_role: 'As regras {action} do campo que a função {role} deve obedecer.' +presets_for_role: 'Valor do Campo definido por padrão para a função {role}.' +presentation_and_aliases: Apresentação & Pseudônimos revision_post_update: Aqui está como este documento ficou após a atualização... changes_made: Estas são as mudanças específicas que foram feitas... no_relational_data: Tenha em atenção que isto não inclui dados relacionais. @@ -131,11 +144,13 @@ decimal: Decimal float: Ponto flutuante integer: Inteiro json: JSON +xml: XML string: String text: Texto time: Hora timestamp: Timestamp uuid: UUID +hash: Hash not_available_for_type: Não disponível para este tipo create_translations: Criar traduções auto_refresh: Atualização Automática @@ -144,17 +159,58 @@ no_refresh: Não atualizar refresh_interval_seconds: Atualizar instantaneamente | A cada segundo | A cada {seconds} segundos refresh_interval_minutes: A cada minuto | a cada {minutes} minutos auto_generate: Geração Automatica +this_will_auto_setup_fields_relations: Isto irá automaticamente configurar todos os campos e relações obrigatórias. click_here: Clique aqui +to_manually_setup_translations: para configurar manualmente as traduções. +click_to_manage_translated_fields: >- + Não há campos traduzidos ainda. Clique aqui para os criar. Há um campo traduzido. Clique aqui para gerenciar. Há {count} campos traduzidos. Clique aqui para os gerir. +fields_group: Grupo de Campos no_collections_found: Nenhuma coleção encontrada. +new_data_alert: 'O seguinte será criado dentro do seu modelo de dados:' search_collection: Procurar coleção... +new_field: 'Novo Campo' new_collection: 'Nova coleção' add_m2o_to_collection: 'Adicionar muitos-para-um a "{collection}"' add_o2m_to_collection: 'Adicionar um-para-um a "{collection}"' add_m2m_to_collection: 'Adicionar muitos-para-muitos a "{collection}"' +choose_a_type: Escolha um Tipo... +determined_by_relationship: Determinado pela Relação add_note: Adicionar uma nota para os utilizadores... +default_value: Valor padrão +standard_field: Campo Padrão +single_file: Ficheiro Único +multiple_files: Vários Ficheiros +m2o_relationship: Relacionamento Muitos para Um +o2m_relationship: Relacionamento Um para Muitos +m2m_relationship: Relacionamento Muitos para Muitos +m2a_relationship: Relacionamento Muitos para qualquer +invalid_item: Item inválido +next: Seguinte +field_name: Nome do campo +translations: Traduções +note: Nota +enter_a_value: Insira um valor... +enter_a_placeholder: Insira um placeholder... +length: Comprimento +precision_scale: Precisão e Escala +readonly: Apenas de Leitura unique: Único +updated_on: Atualizado em +updated_by: Actualizado por +primary_key: Chave primária +foreign_key: Chave estrangeira +finish_setup: Concluir a Configuração +dismiss: Dispensar +raw_value: Valor bruto +edit_raw_value: Editar Valor Bruto +enter_raw_value: Insira valor bruto... clear_value: Limpar valor +reset_to_default: Restaurar predefinições undo_changes: Anular alterações +notifications: Notificações +show_all_activity: Mostrar todas as atividades +page_not_found: Página Não Encontrada +page_not_found_body: A página que esta à procura não existe. confirm_revert: Confirmar a reversão confirm_revert_body: Isto irá reverter o documento para o estado selecionado. display: Visualização @@ -207,7 +263,44 @@ date-fns_time_short: 'HH:mm' date-fns_date_short_no_year: dd MMM month: Mês year: Ano +select_all: Selecionar Tudo +months: + january: Janeiro + february: Fevereiro + march: Março + april: Abril + may: Maio + june: Junho + july: Julho + august: Agosto + september: Setembro + october: Outubro + november: Novembro + december: Dezembro +drag_mode: Modo de Arrasto +cancel_crop: Cancelar Recorte +original: Original +url: URL +import: Importar +file_details: Detalhes do ficheiro +dimensions: Dimensões +size: Tamanho created: Criado +modified: Modificado +checksum: Soma de verificação +owner: Proprietário +edited_by: Editado por +folder: Pasta +zoom: Zoom +download: Transferir +open: Abrir +open_in_new_window: Abrir numa Nova Janela +foreground_color: Cor principal +background_color: Cor de Fundo +upload_from_device: Carregar ficheiro a partir do dispositivo +choose_from_library: Escolher Ficheiro da Biblioteca +import_from_url: Importar ficheiro a partir do URL +replace_from_device: Substituir Ficheiro do Dispositivo created_by: Criado por created_on: Criada em save_and_create_new: Guardar e criar novo @@ -262,6 +355,19 @@ charset: Codificação second: Segundo file_moved: Ficheiro movido collection_created: Coleção criada +errors: + FIELD_NOT_FOUND: Campo não encontrado + FORBIDDEN: Proibido + INVALID_CREDENTIALS: Nome do utilizador ou palavra-passe inválidos + INVALID_OTP: Senha de uso único errada + INVALID_PAYLOAD: Payload inválido + INVALID_QUERY: Consulta inválida + ITEM_LIMIT_REACHED: Limite de itens atingido + ITEM_NOT_FOUND: Item não encontrado + ROUTE_NOT_FOUND: Não encontrado + RECORD_NOT_UNIQUE: Valor duplicado detectado + USER_SUSPENDED: Utilizador suspenso + CONTAINS_NULL_VALUES: Campo contém valores nulos bookmarks: Favoritos back: Voltar delete_collection: Remover coleção @@ -280,7 +386,11 @@ show_hidden_collections: Mostrar coleções ocultas hide_hidden_collections: Esconder coleções ocultas unmanaged_collections: Coleções não configuradas system_collections: Coleções do sistema +value_unique: O valor tem de ser único wysiwyg_options: + forecolor: Cor principal + backcolor: Cor de Fundo + selectall: Selecionar Tudo table: Tabela choices: Opções settings_webhooks: Webhooks @@ -306,6 +416,7 @@ fields: ip: Endereço IP directus_collections: collection: Coleção + note: Nota directus_files: title: Título description: Descrição @@ -313,6 +424,7 @@ fields: location: Localização created_on: Criada em created_by: Criado por + folder: Pasta charset: Codificação duration: Duração directus_users: @@ -324,6 +436,7 @@ fields: last_page: Última página last_access: Último Acesso directus_fields: + note: Nota translation: Nome do campo para as traduções directus_roles: name: Nome do cargo @@ -339,8 +452,12 @@ interfaces: system-display-template: collection_field_not_setup: A opção do campo da coleção não está configurada corretamente select_a_collection: Selecione uma coleção + select-dropdown: + choices_value_placeholder: Insira um valor... files: files: Ficheiros + input-hash: + hash: Hash system-interface: interface: Interface tags: @@ -352,6 +469,8 @@ displays: collection: Coleção datetime: format: Formatar + labels: + choices_value_placeholder: Insira um valor... user: both: Ambos layouts: diff --git a/app/src/lang/translations/ru-RU.yaml b/app/src/lang/translations/ru-RU.yaml index f53dc7db30..388aac2f0f 100644 --- a/app/src/lang/translations/ru-RU.yaml +++ b/app/src/lang/translations/ru-RU.yaml @@ -592,6 +592,8 @@ adding_user: Добавление Пользователя unknown_user: Неизвестный Пользователь creating_in: 'Создание Элемента в {collection}' editing_in: 'Редактирование Элемента в {collection}' +creating_unit: 'Создание {unit}' +editing_unit: 'Редактирование {unit}' editing_in_batch: 'Пакетное редактирование {count} элементов' no_options_available: Нет доступных опций settings_data_model: Модель Данных @@ -599,6 +601,7 @@ settings_permissions: Роли и права доступа settings_project: Настройки Проекта settings_webhooks: Webhooks settings_presets: Пресеты и Закладки +one_or_more_options_are_missing: Один или несколько вариантов отсутствуют scope: Область select: Выбрать... layout: Макет @@ -673,6 +676,7 @@ fields: display_template: Шаблон отображения hidden: Скрыто singleton: Синглтон + translations: Переводы названия коллекции archive_value: Заархивировать содержимое unarchive_value: Распаковать содержимое sort_field: Поле сортировки diff --git a/app/src/lang/translations/sr-CS.yaml b/app/src/lang/translations/sr-CS.yaml index f089fdc555..734ecf5ed4 100644 --- a/app/src/lang/translations/sr-CS.yaml +++ b/app/src/lang/translations/sr-CS.yaml @@ -439,16 +439,105 @@ add_file: Dodaj Fajl replace_file: Zamijeni Fajl no_results: Nema rezultata no_results_copy: Prilagodi ili obriši filtere pretrage kako biste vidjeli rezultate. +clear_filters: Poništi Filtere +role: Uloga +user: Korisnik +bold: Podebljano +icon_on: Ikonica Na +icon_off: Bez Ikonice +label: Oznaka +image_url: Url slike +alt_text: Alternativni tekst +media: Medij +source: Izvor +url_placeholder: Unesi url... +display_text: Prikaži tekst +display_text_placeholder: Unesi tekst za prikaz... +unlimited: Neograničeno +open_link_in: Otvori vezu u +new_tab: Nova kartica +current_tab: Trenutna kartica wysiwyg_options: + aligncenter: Poravnanje po sredini + alignleft: Lijevo poravnanje + alignright: Desno poravnanje + bold: Podebljano + italic: Kurziv + underline: Podvučeno + strikethrough: Precrtano + codeblock: Kod + blockquote: Citat + numlist: Numerisana lista + link: Dodaj/Uredi Vezu + unlink: Ukloni link + image: Dodaj/Uredi Sliku + copy: Kopiraj + paste: Nalijepi + heading: Naslov + h1: Zaglavlje 1 + h2: Zaglavlje 2 + h3: Zaglavlje 3 + h4: Zaglavlje 4 + h5: Zaglavlje 5 + h6: Zaglavlje 6 + fontselect: Odaberi Pismo + fontsizeselect: Odaberi Veličinu Pisma + indent: Uvlačenje + undo: Poništi + redo: Vrati poništeno + remove: Ukloni + removeformat: Ukloni formatiranje selectall: Odaberi Sve + table: Tabela + visualaid: Pregledaj Nevidljive elemente + source_code: Uredi Izvorni Kod + fullscreen: Pun ekran +dropdown: Padajuća lista +choices: Izbori +deselect: Odznači +deselect_all: Odznači sve +other: Ostalo... +adding_user: Dodavanje Korisnika +unknown_user: Nepoznat korisnik +creating_in: 'Kreiranje Stavke u {collection}' +editing_in: 'Uređivanje Stavke u {collection}' +creating_unit: 'Kreiranje {unit}' +editing_unit: 'Uređivanje {unit}' +no_options_available: Nema dostupnih opcija +settings_data_model: Model Podataka +settings_permissions: Uloge & Dozvole settings_project: Podešavanje Projekta +one_or_more_options_are_missing: Jedna ili više opcija nedostaje +layout: Izgled +changes_are_permanent: Izmjene su trajne +discard_changes: Poništi Promjene +keep_editing: Nastavi uređivanje +add_new: Dodaj Novi +create_new: Kreiraj Novi +all: Svi +none: Nijedan +cancel: Odustani +collection: Kolekcija +collections: Kolekcije +singleton_label: Tretiraj kao jedinstven objekat fields: + directus_activity: + action: Akcija + collection: Kolekcija + ip: IP adresa directus_collections: + collection: Kolekcija note: Napomena display_template: Šablon za Prikaz + archive_value: Arhiviraj Vrijednost sort_field: Polje za Sortiranje directus_files: title: Naslov + description: Opis + tags: Tagovi + location: Lokacija + storage: Skladište + filename_disk: Ime Fajla (Disk) modified_on: Izmijenjeno created_on: Kreirano created_by: Kreirao @@ -456,8 +545,12 @@ fields: charset: Set karaktera duration: Trajanje directus_users: + location: Lokacija title: Naslov + description: Opis + tags: Tagovi language: Jezik + role: Uloga last_page: Posljednja Stranica last_access: Posljednji Pristup directus_settings: @@ -469,9 +562,17 @@ fields: note: Napomena directus_roles: name: Naziv uloge + description: Opis +description: Opis interfaces: presentation-links: primary: Primarni + input-code: + code: Kod + collection: + collection: Kolekcija + system-collections: + collections: Kolekcije select-color: color: Boja system-display-template: @@ -486,13 +587,23 @@ interfaces: interface: Interfejs select-dropdown-m2o: display_template: Šablon za Prikaz + tags: + tags: Tagovi boolean: label_default: Omogućen translations: display_template: Šablon za Prikaz + user: + user: Korisnik + modes: + dropdown: Padajuća lista displays: boolean: boolean: Boolean + icon_on: Ikonica Na + icon_off: Bez Ikonice + collection: + collection: Kolekcija color: color: Boja datetime: @@ -502,7 +613,10 @@ displays: labels: choices_value_placeholder: Unesi vrijednost... user: + user: Korisnik name: Ime layouts: cards: title: Naslov + tabular: + tabular: Tabela diff --git a/app/src/lang/translations/tr-TR.yaml b/app/src/lang/translations/tr-TR.yaml index 01e256fe54..b8bda513e2 100644 --- a/app/src/lang/translations/tr-TR.yaml +++ b/app/src/lang/translations/tr-TR.yaml @@ -86,6 +86,9 @@ validationError: all_access: Tam Erişim no_access: Erişim Yok use_custom: Özelleştirilmiş kullan +nullable: Boş (null) olabilir +allow_null_value: NULL değere izin ver +enter_value_to_replace_nulls: Bu alandaki tüm NULLları değiştirecek yeni bir değer girin. field_standard: Standart field_presentation: Sunum ve Takma Adlar field_file: Tek Dosya @@ -140,6 +143,7 @@ decimal: Ondalık float: Ondalıklı sayı integer: Tamsayı json: JSON +xml: XML string: Yazı text: Metin time: Zaman @@ -245,10 +249,17 @@ submit: Gönder move_to_folder: Klasöre Taşı move: Taşı system: Sistem +add_field_related: Alakalı Koleksiyona Alan Ekle interface: Arayüz today: Bugün yesterday: Dün delete_comment: Yorumu sil +date-fns_date: PPP +date-fns_time: 's:dd:ss a' +date-fns_time_no_seconds: 's:dd a' +date-fns_date_short: 'AAA d, u' +date-fns_time_short: 's:aa a' +date-fns_date_short_no_year: AAA d month: Ay year: Yıl select_all: Tümünü Seç @@ -288,10 +299,14 @@ background_color: Arkaplan Rengi upload_from_device: Cihazdan Yükle choose_from_library: Kütüphaneden seç import_from_url: URL’den Dosya Yükle +replace_from_device: Cihazdaki Dosya ile Değiştir +replace_from_library: Kütüphanedeki Dosya ile Değiştir +replace_from_url: URL'deki Dosya ile Değiştir no_file_selected: Dosya seçilmedi download_file: Dosyayı İndir collection_key: Koleksiyonlar name: İsim +primary_key_field: Birincil Anahtar Alanı type: Tür creating_new_collection: Yeni Koleksiyon Oluştur created_by: Oluşturan @@ -313,6 +328,10 @@ report_bug: Hata Bildir request_feature: Ek Özellik Talep Et reset_interface: Arayüzü Sıfırla item_count: 'Öge yok | 1 Öge | {count}  Öge' +no_files_copy: Burada dosya yok. +user_count: 'Kullanıcı Yok | Bir Kullanıcı | {count} Kullanıcı' +no_users_copy: Bu Grupta Kullanıcı Yok. +webhooks_count: 'Webhook Yok | Bir Webhook | {count} Webhook' no_webhooks_copy: Henüz hiç bir webhook yok. all_items: Tüm öğeler csv: CSV @@ -356,10 +375,15 @@ errors: INVALID_CREDENTIALS: Hatalı kullanıcı adı ya da parola INVALID_OTP: Tek kullanımlık şifre hatalı INVALID_QUERY: Geçersiz sorgu + ITEM_LIMIT_REACHED: Öge limite ulaşıldı ITEM_NOT_FOUND: Öğe bulunamadı ROUTE_NOT_FOUND: Bulunamadı + RECORD_NOT_UNIQUE: Kopya değer tespit edildi + USER_SUSPENDED: Kullanıcı Askıya Alındı + CONTAINS_NULL_VALUES: Alan null değer içeriyor UNKNOWN: Beklenmeyen hata INTERNAL_SERVER_ERROR: Beklenmeyen hata +value_hashed: Değer Güvenli Şekilde Hashlendi bookmark_name: Yer imi adı... create_bookmark: Yer imi oluştur edit_bookmark: Yer imini düzenle diff --git a/app/src/lang/translations/uk-UA.yaml b/app/src/lang/translations/uk-UA.yaml index 98901e0990..fe10bcf182 100644 --- a/app/src/lang/translations/uk-UA.yaml +++ b/app/src/lang/translations/uk-UA.yaml @@ -21,7 +21,14 @@ os_type: Тип ОС os_version: Версія ОС os_uptime: Час роботи ОС validationError: + eq: Значення повинно бути {valid} neq: Значення не може бути {invalid} + in: Значення повинно бути одним з {valid} + nin: Значення не може бути одним з {invalid} + contains: Значення повинно містити {substring} + ncontains: Значення не може містити {substring} + gt: Значення має бути більше {valid} + gte: Значення має бути більше або дорівнювати {valid} language: Мова create_field: Створення поля hidden_on_detail: Приховано на деталі From f173d18a63ef8549de7241215a627eeb3fed2c24 Mon Sep 17 00:00:00 2001 From: Ben Haynes Date: Mon, 7 Jun 2021 09:31:26 -0400 Subject: [PATCH 02/32] Update introduction.md (#6087) --- docs/getting-started/introduction.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/getting-started/introduction.md b/docs/getting-started/introduction.md index e4ec11b753..24453a93cc 100644 --- a/docs/getting-started/introduction.md +++ b/docs/getting-started/introduction.md @@ -18,8 +18,8 @@ developers and an intuitive App for non-technical users.** Written entirely in J [Node.js](https://nodejs.dev) and [Vue.js](https://vuejs.org)), Directus is completely open-source, modular, and extensible, allowing it to be fully tailored to the requirements of any project. -The platform can be used as a headless content management, or for democratizing data (customer, inventory, business, -project, etc) across an organization. +The platform can be used for an individual purpose, such as headless content management, or more broadly to democratize an entire organization's data (customers, inventory, business intelligence, +projects, etc). ::: tip What's in a name? From a08ff52349f57cf40248c0bcd44793d034d799a7 Mon Sep 17 00:00:00 2001 From: Ben Haynes Date: Mon, 7 Jun 2021 09:47:04 -0400 Subject: [PATCH 03/32] ref: #6096 (#6110) --- docs/guides/projects.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/guides/projects.md b/docs/guides/projects.md index ad7b5a8a26..0400984b74 100644 --- a/docs/guides/projects.md +++ b/docs/guides/projects.md @@ -67,7 +67,7 @@ See [Creating a Thumbnail Preset](/guides/files/#creating-a-thumbnail-preset) See [Styles > Custom CSS](/guides/styles/#custom-css) -## Upgrading a Project +## Upgrading / Updating a Project 1. Backup your project 2. Run `npm update` From 4b35f97cfa22907eb324011aa5d15b6c6adf4cd3 Mon Sep 17 00:00:00 2001 From: Rijk van Zanten Date: Mon, 7 Jun 2021 11:38:25 -0400 Subject: [PATCH 04/32] Make mfa output code selectable (#6112) h/t @masterwendu for the suggestion --- .../interfaces/_system/system-mfa-setup/system-mfa-setup.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/interfaces/_system/system-mfa-setup/system-mfa-setup.vue b/app/src/interfaces/_system/system-mfa-setup/system-mfa-setup.vue index b42eebf643..cfd4425623 100644 --- a/app/src/interfaces/_system/system-mfa-setup/system-mfa-setup.vue +++ b/app/src/interfaces/_system/system-mfa-setup/system-mfa-setup.vue @@ -33,7 +33,7 @@ - {{ secret }} + {{ secret }} {{ $t('done') }} From eaa3f423e5b1f66307bdf1e680ddd48ad942910b Mon Sep 17 00:00:00 2001 From: Rijk van Zanten Date: Mon, 7 Jun 2021 16:02:43 -0400 Subject: [PATCH 05/32] New translations en-US.yaml (Portuguese, Brazilian) (#6114) --- app/src/lang/translations/pt-BR.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/src/lang/translations/pt-BR.yaml b/app/src/lang/translations/pt-BR.yaml index 73d5baa8a0..c28f7ff5c9 100644 --- a/app/src/lang/translations/pt-BR.yaml +++ b/app/src/lang/translations/pt-BR.yaml @@ -784,6 +784,9 @@ save_current_datetime: Salvar data/hora atual block: Bloco inline: Em linha comment: Comentário +referential_action_no_action: Evitar a exclusão +referential_action_cascade: Excluir o item {collection} (cascade) +choose_action: Escolha uma ação continue: Continuar continue_as: >- {name} está atualmente autenticado. Se você reconhecer esta conta, clique em continuar. @@ -994,6 +997,7 @@ interfaces: input: input: Entrada trim: Recortar + trim_label: Remover espaços do início e fim mask: Mascarado mask_label: Ocultar o valor real clear: Limpar valor From 1e4850f53a6c3990adcbd68078b4bb99a3e9a04b Mon Sep 17 00:00:00 2001 From: Rijk van Zanten Date: Mon, 7 Jun 2021 16:57:32 -0400 Subject: [PATCH 06/32] Add support for CRON hooks (interval) (#6116) * Install node-cron * Support CRON hooks * Document interval hook * Fix package-lokc --- api/package.json | 2 + api/src/extensions.ts | 14 ++++++- docs/guides/api-hooks.md | 6 +++ package-lock.json | 79 ++++++++++++++++++++++++++++++++++++++-- 4 files changed, 97 insertions(+), 4 deletions(-) diff --git a/api/package.json b/api/package.json index 6de84a92f4..37b42bd512 100644 --- a/api/package.json +++ b/api/package.json @@ -117,6 +117,7 @@ "mime-types": "^2.1.31", "ms": "^2.1.3", "nanoid": "^3.1.23", + "node-cron": "^3.0.0", "node-machine-id": "^1.1.12", "nodemailer": "^6.6.1", "openapi3-ts": "^2.0.0", @@ -169,6 +170,7 @@ "@types/mime-types": "^2.1.0", "@types/ms": "^0.7.31", "@types/node": "^15.12.0", + "@types/node-cron": "^2.0.3", "@types/nodemailer": "^6.4.1", "@types/qs": "^6.9.6", "@types/sharp": "^0.28.1", diff --git a/api/src/extensions.ts b/api/src/extensions.ts index 279d9f733b..4e5b971306 100644 --- a/api/src/extensions.ts +++ b/api/src/extensions.ts @@ -11,6 +11,7 @@ import * as services from './services'; import { EndpointRegisterFunction, HookRegisterFunction } from './types'; import { getSchema } from './utils/get-schema'; import listFolders from './utils/list-folders'; +import { schedule, validate } from 'node-cron'; export async function ensureFoldersExist(): Promise { const folders = ['endpoints', 'hooks', 'interfaces', 'modules', 'layouts', 'displays']; @@ -94,8 +95,19 @@ function registerHooks(hooks: string[]) { } const events = register({ services, exceptions, env, database: getDatabase(), getSchema }); + for (const [event, handler] of Object.entries(events)) { - emitter.on(event, handler); + if (event.startsWith('cron(')) { + const cron = event.match(/\(([^)]+)\)/)?.[1]; + + if (!cron || validate(cron) === false) { + logger.warn(`Couldn't register cron hook. Provided cron is invalid: ${cron}`); + } else { + schedule(cron, handler); + } + } else { + emitter.on(event, handler); + } } } } diff --git a/docs/guides/api-hooks.md b/docs/guides/api-hooks.md index 9a32662800..5272f37748 100644 --- a/docs/guides/api-hooks.md +++ b/docs/guides/api-hooks.md @@ -103,6 +103,12 @@ module.exports = function registerHook({ exceptions }) { 2 oAuth provider name can replaced with wildcard for any oauth providers `oauth.*.login`\ 3 Doesn't support `.before` modifier +#### Interval (cron) + +Hooks support running on an interval through [`node-cron`](https://www.npmjs.com/package/node-cron). To set this up, +provide a cron statement in the event scope as follows: `cron()`, for example `cron(15 14 1 * *)` (at 14:15 +on day-of-month 1) or `cron(5 4 * * sun)` (at 04:05 on Sunday). + ## 3. Register your Hook Each custom hook is registered to its event scope using a function with the following format: diff --git a/package-lock.json b/package-lock.json index 648d8da347..967f72c45a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -108,6 +108,7 @@ "mime-types": "^2.1.31", "ms": "^2.1.3", "nanoid": "^3.1.23", + "node-cron": "^3.0.0", "node-machine-id": "^1.1.12", "nodemailer": "^6.6.1", "openapi3-ts": "^2.0.0", @@ -147,6 +148,7 @@ "@types/mime-types": "^2.1.0", "@types/ms": "^0.7.31", "@types/node": "^15.12.0", + "@types/node-cron": "^2.0.3", "@types/nodemailer": "^6.4.1", "@types/qs": "^6.9.6", "@types/sharp": "^0.28.1", @@ -7345,6 +7347,15 @@ "resolved": "https://registry.npmjs.org/@types/node/-/node-15.12.0.tgz", "integrity": "sha512-+aHJvoCsVhO2ZCuT4o5JtcPrCPyDE3+1nvbDprYes+pPkEsbjH7AGUCNtjMOXS0fqH14t+B7yLzaqSz92FPWyw==" }, + "node_modules/@types/node-cron": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/node-cron/-/node-cron-2.0.3.tgz", + "integrity": "sha512-gwBBGeY2XeYBLE0R01K9Sm2hvNcPGmoloL6aqthA3QmBB1GYXTHIJ42AGZL7bdXBRiwbRV8b6NB5iKpl20R3gw==", + "dev": true, + "dependencies": { + "@types/tz-offset": "*" + } + }, "node_modules/@types/node-fetch": { "version": "2.5.10", "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.10.tgz", @@ -7669,6 +7680,12 @@ "@types/node": "*" } }, + "node_modules/@types/tz-offset": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/@types/tz-offset/-/tz-offset-0.0.0.tgz", + "integrity": "sha512-XLD/llTSB6EBe3thkN+/I0L+yCTB6sjrcVovQdx2Cnl6N6bTzHmwe/J8mWnsXFgxLrj/emzdv8IR4evKYG2qxQ==", + "dev": true + }, "node_modules/@types/uglify-js": { "version": "3.13.0", "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.13.0.tgz", @@ -33487,7 +33504,17 @@ "version": "2.29.1", "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==", - "peer": true, + "engines": { + "node": "*" + } + }, + "node_modules/moment-timezone": { + "version": "0.5.33", + "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.33.tgz", + "integrity": "sha512-PTc2vcT8K9J5/9rDEPe5czSIKgLoGsH8UNpA4qZTVw0Vd/Uz19geE9abbIOQKaAQFcnQ3v5YEXrbSc5BpshH+w==", + "dependencies": { + "moment": ">= 2.9.0" + }, "engines": { "node": "*" } @@ -33820,6 +33847,17 @@ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.0.tgz", "integrity": "sha512-kcwSAWhPi4+QzAtsL2+2s/awvDo2GKLsvMCwNRxb5BUshteXU8U97NCyvQDsGKs/m0He9WcG4YWew/BnuLx++w==" }, + "node_modules/node-cron": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/node-cron/-/node-cron-3.0.0.tgz", + "integrity": "sha512-DDwIvvuCwrNiaU7HEivFDULcaQualDv7KoNlB/UU1wPW0n1tDEmBJKhEIE6DlF2FuoOHcNbLJ8ITL2Iv/3AWmA==", + "dependencies": { + "moment-timezone": "^0.5.31" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/node-emoji": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.10.0.tgz", @@ -61110,6 +61148,7 @@ "resolved": "https://registry.npmjs.org/@oclif/command/-/command-1.8.0.tgz", "integrity": "sha512-5vwpq6kbvwkQwKqAoOU3L72GZ3Ta8RRrewKj9OJRolx28KLJJ8Dg9Rf7obRwt5jQA9bkYd8gqzMTrI7H3xLfaw==", "requires": { + "@oclif/config": "^1.15.1", "@oclif/errors": "^1.3.3", "@oclif/parser": "^3.8.3", "@oclif/plugin-help": "^3", @@ -62623,6 +62662,15 @@ "resolved": "https://registry.npmjs.org/@types/node/-/node-15.12.0.tgz", "integrity": "sha512-+aHJvoCsVhO2ZCuT4o5JtcPrCPyDE3+1nvbDprYes+pPkEsbjH7AGUCNtjMOXS0fqH14t+B7yLzaqSz92FPWyw==" }, + "@types/node-cron": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/node-cron/-/node-cron-2.0.3.tgz", + "integrity": "sha512-gwBBGeY2XeYBLE0R01K9Sm2hvNcPGmoloL6aqthA3QmBB1GYXTHIJ42AGZL7bdXBRiwbRV8b6NB5iKpl20R3gw==", + "dev": true, + "requires": { + "@types/tz-offset": "*" + } + }, "@types/node-fetch": { "version": "2.5.10", "resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-2.5.10.tgz", @@ -62946,6 +62994,12 @@ "@types/node": "*" } }, + "@types/tz-offset": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/@types/tz-offset/-/tz-offset-0.0.0.tgz", + "integrity": "sha512-XLD/llTSB6EBe3thkN+/I0L+yCTB6sjrcVovQdx2Cnl6N6bTzHmwe/J8mWnsXFgxLrj/emzdv8IR4evKYG2qxQ==", + "dev": true + }, "@types/uglify-js": { "version": "3.13.0", "resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.13.0.tgz", @@ -63257,6 +63311,7 @@ "integrity": "sha512-pM7CR3yXB6L8Gfn6EmX7FLNE3+V/15I3o33GkSNsWvgsMp6HVGXKkXgojrcfUUauyL1LZOdvTmu4enU2RePGHw==", "dev": true, "requires": { + "@babel/core": "^7.11.0", "@babel/helper-compilation-targets": "^7.9.6", "@babel/helper-module-imports": "^7.8.3", "@babel/plugin-proposal-class-properties": "^7.8.3", @@ -63269,6 +63324,7 @@ "@vue/babel-plugin-jsx": "^1.0.3", "@vue/babel-preset-jsx": "^1.2.4", "babel-plugin-dynamic-import-node": "^2.3.3", + "core-js": "^3.6.5", "core-js-compat": "^3.6.5", "semver": "^6.1.0" }, @@ -71015,6 +71071,7 @@ "@types/mime-types": "^2.1.0", "@types/ms": "^0.7.31", "@types/node": "^15.12.0", + "@types/node-cron": "^2.0.3", "@types/nodemailer": "^6.4.1", "@types/qs": "^6.9.6", "@types/sharp": "^0.28.1", @@ -71072,6 +71129,7 @@ "ms": "^2.1.3", "mysql": "^2.18.1", "nanoid": "^3.1.23", + "node-cron": "^3.0.0", "node-machine-id": "^1.1.12", "nodemailer": "^6.6.1", "nodemailer-mailgun-transport": "^2.1.3", @@ -83804,8 +83862,15 @@ "moment": { "version": "2.29.1", "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz", - "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==", - "peer": true + "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==" + }, + "moment-timezone": { + "version": "0.5.33", + "resolved": "https://registry.npmjs.org/moment-timezone/-/moment-timezone-0.5.33.tgz", + "integrity": "sha512-PTc2vcT8K9J5/9rDEPe5czSIKgLoGsH8UNpA4qZTVw0Vd/Uz19geE9abbIOQKaAQFcnQ3v5YEXrbSc5BpshH+w==", + "requires": { + "moment": ">= 2.9.0" + } }, "move-concurrently": { "version": "1.0.1", @@ -84097,6 +84162,14 @@ "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.0.tgz", "integrity": "sha512-kcwSAWhPi4+QzAtsL2+2s/awvDo2GKLsvMCwNRxb5BUshteXU8U97NCyvQDsGKs/m0He9WcG4YWew/BnuLx++w==" }, + "node-cron": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/node-cron/-/node-cron-3.0.0.tgz", + "integrity": "sha512-DDwIvvuCwrNiaU7HEivFDULcaQualDv7KoNlB/UU1wPW0n1tDEmBJKhEIE6DlF2FuoOHcNbLJ8ITL2Iv/3AWmA==", + "requires": { + "moment-timezone": "^0.5.31" + } + }, "node-emoji": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.10.0.tgz", From 735fb74b7e3bb8cebacbb3dcc8ed4808f67cce47 Mon Sep 17 00:00:00 2001 From: rijkvanzanten Date: Mon, 7 Jun 2021 17:00:20 -0400 Subject: [PATCH 07/32] v9.0.0-rc.74 --- api/package.json | 18 +++++++++--------- app/package.json | 6 +++--- docs/package.json | 2 +- lerna.json | 2 +- packages/cli/package.json | 6 +++--- packages/create-directus-project/package.json | 2 +- packages/drive-azure/package.json | 4 ++-- packages/drive-gcs/package.json | 4 ++-- packages/drive-s3/package.json | 4 ++-- packages/drive/package.json | 2 +- packages/format-title/package.json | 2 +- packages/gatsby-source-directus/package.json | 2 +- packages/schema/package.json | 2 +- packages/sdk/package.json | 2 +- packages/specs/package.json | 2 +- 15 files changed, 30 insertions(+), 30 deletions(-) diff --git a/api/package.json b/api/package.json index 37b42bd512..e1121e9b40 100644 --- a/api/package.json +++ b/api/package.json @@ -1,6 +1,6 @@ { "name": "directus", - "version": "9.0.0-rc.73", + "version": "9.0.0-rc.74", "license": "GPL-3.0-only", "homepage": "https://github.com/directus/directus#readme", "description": "Directus is a real-time API and App dashboard for managing SQL database content.", @@ -66,14 +66,14 @@ "example.env" ], "dependencies": { - "@directus/app": "9.0.0-rc.73", - "@directus/drive": "9.0.0-rc.73", - "@directus/drive-azure": "9.0.0-rc.73", - "@directus/drive-gcs": "9.0.0-rc.73", - "@directus/drive-s3": "9.0.0-rc.73", - "@directus/format-title": "9.0.0-rc.73", - "@directus/schema": "9.0.0-rc.73", - "@directus/specs": "9.0.0-rc.73", + "@directus/app": "9.0.0-rc.74", + "@directus/drive": "9.0.0-rc.74", + "@directus/drive-azure": "9.0.0-rc.74", + "@directus/drive-gcs": "9.0.0-rc.74", + "@directus/drive-s3": "9.0.0-rc.74", + "@directus/format-title": "9.0.0-rc.74", + "@directus/schema": "9.0.0-rc.74", + "@directus/specs": "9.0.0-rc.74", "@godaddy/terminus": "^4.9.0", "argon2": "^0.28.1", "async": "^3.2.0", diff --git a/app/package.json b/app/package.json index 69033598fe..168d87f140 100644 --- a/app/package.json +++ b/app/package.json @@ -1,6 +1,6 @@ { "name": "@directus/app", - "version": "9.0.0-rc.73", + "version": "9.0.0-rc.74", "private": false, "description": "Directus is an Open-Source Headless CMS & API for Managing Custom Databases", "author": "Rijk van Zanten ", @@ -27,8 +27,8 @@ }, "gitHead": "24621f3934dc77eb23441331040ed13c676ceffd", "devDependencies": { - "@directus/docs": "9.0.0-rc.73", - "@directus/format-title": "9.0.0-rc.73", + "@directus/docs": "9.0.0-rc.74", + "@directus/format-title": "9.0.0-rc.74", "@fullcalendar/core": "^5.7.2", "@fullcalendar/daygrid": "^5.7.2", "@fullcalendar/interaction": "^5.7.2", diff --git a/docs/package.json b/docs/package.json index a1f9b4bb09..e731db52e5 100644 --- a/docs/package.json +++ b/docs/package.json @@ -1,7 +1,7 @@ { "name": "@directus/docs", "private": false, - "version": "9.0.0-rc.73", + "version": "9.0.0-rc.74", "description": "", "main": "index.json", "scripts": { diff --git a/lerna.json b/lerna.json index ffbb0dd6a4..cd8806fc88 100644 --- a/lerna.json +++ b/lerna.json @@ -5,7 +5,7 @@ "docs", "api" ], - "version": "9.0.0-rc.73", + "version": "9.0.0-rc.74", "command": { "bootstrap": { "npmClientArgs": [ diff --git a/packages/cli/package.json b/packages/cli/package.json index 24fd2b503b..f9181bb549 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@directus/cli", - "version": "9.0.0-rc.73", + "version": "9.0.0-rc.74", "description": "The official Directus CLI", "repository": { "type": "git", @@ -41,8 +41,8 @@ "author": "João Biondo ", "license": "MIT", "dependencies": { - "@directus/format-title": "9.0.0-rc.73", - "@directus/sdk": "9.0.0-rc.73", + "@directus/format-title": "9.0.0-rc.74", + "@directus/sdk": "9.0.0-rc.74", "@types/yargs": "^17.0.0", "app-module-path": "^2.2.0", "chalk": "^4.1.0", diff --git a/packages/create-directus-project/package.json b/packages/create-directus-project/package.json index 47242ec5e0..7652ed61d8 100644 --- a/packages/create-directus-project/package.json +++ b/packages/create-directus-project/package.json @@ -1,6 +1,6 @@ { "name": "create-directus-project", - "version": "9.0.0-rc.73", + "version": "9.0.0-rc.74", "description": "A small installer util that will create a directory, add boilerplate folders, and install Directus through npm.", "main": "lib/index.js", "bin": "./lib/index.js", diff --git a/packages/drive-azure/package.json b/packages/drive-azure/package.json index 6556be3ae8..fdaa774183 100644 --- a/packages/drive-azure/package.json +++ b/packages/drive-azure/package.json @@ -1,6 +1,6 @@ { "name": "@directus/drive-azure", - "version": "9.0.0-rc.73", + "version": "9.0.0-rc.74", "description": "Azure Blob driver for @directus/drive", "license": "MIT", "main": "dist/index.js", @@ -35,7 +35,7 @@ ], "dependencies": { "@azure/storage-blob": "^12.2.1", - "@directus/drive": "9.0.0-rc.73", + "@directus/drive": "9.0.0-rc.74", "normalize-path": "^3.0.0" }, "devDependencies": { diff --git a/packages/drive-gcs/package.json b/packages/drive-gcs/package.json index b46440c794..3a1501dc78 100644 --- a/packages/drive-gcs/package.json +++ b/packages/drive-gcs/package.json @@ -1,6 +1,6 @@ { "name": "@directus/drive-gcs", - "version": "9.0.0-rc.73", + "version": "9.0.0-rc.74", "description": "Google Cloud Storage driver for @directus/drive", "license": "MIT", "main": "dist/index.js", @@ -33,7 +33,7 @@ "dev": "npm run build -- -w --preserveWatchOutput --incremental" }, "dependencies": { - "@directus/drive": "9.0.0-rc.73", + "@directus/drive": "9.0.0-rc.74", "@google-cloud/storage": "^5.8.5", "normalize-path": "^3.0.0" }, diff --git a/packages/drive-s3/package.json b/packages/drive-s3/package.json index 0403d9f6fd..1c87d17b7d 100644 --- a/packages/drive-s3/package.json +++ b/packages/drive-s3/package.json @@ -1,6 +1,6 @@ { "name": "@directus/drive-s3", - "version": "9.0.0-rc.73", + "version": "9.0.0-rc.74", "description": "AWS S3 driver for @directus/drive", "license": "MIT", "main": "dist/index.js", @@ -34,7 +34,7 @@ "dev": "npm run build -- -w --preserveWatchOutput --incremental" }, "dependencies": { - "@directus/drive": "9.0.0-rc.73", + "@directus/drive": "9.0.0-rc.74", "aws-sdk": "^2.921.0", "normalize-path": "^3.0.0" }, diff --git a/packages/drive/package.json b/packages/drive/package.json index 02d65371c9..3408a7d675 100644 --- a/packages/drive/package.json +++ b/packages/drive/package.json @@ -1,6 +1,6 @@ { "name": "@directus/drive", - "version": "9.0.0-rc.73", + "version": "9.0.0-rc.74", "description": "Flexible and Fluent way to manage storage in Node.js.", "license": "MIT", "main": "dist/index.js", diff --git a/packages/format-title/package.json b/packages/format-title/package.json index 2bf0f416ed..7aaee73a09 100644 --- a/packages/format-title/package.json +++ b/packages/format-title/package.json @@ -1,6 +1,6 @@ { "name": "@directus/format-title", - "version": "9.0.0-rc.73", + "version": "9.0.0-rc.74", "description": "Custom string formatter that converts any string into [Title Case](http://www.grammar-monster.com/lessons/capital_letters_title_case.htm)", "keywords": [ "title-case", diff --git a/packages/gatsby-source-directus/package.json b/packages/gatsby-source-directus/package.json index 503f7aced9..38fed737fb 100644 --- a/packages/gatsby-source-directus/package.json +++ b/packages/gatsby-source-directus/package.json @@ -1,6 +1,6 @@ { "name": "@directus/gatsby-source-directus", - "version": "9.0.0-rc.73", + "version": "9.0.0-rc.74", "description": "Source plugin for pulling data into Gatsby from a Directus API.", "author": "João Biondo ", "license": "MIT", diff --git a/packages/schema/package.json b/packages/schema/package.json index daee8e1f11..0de2eeb7ef 100644 --- a/packages/schema/package.json +++ b/packages/schema/package.json @@ -1,6 +1,6 @@ { "name": "@directus/schema", - "version": "9.0.0-rc.73", + "version": "9.0.0-rc.74", "description": "Utility for extracting information about existing DB schema", "main": "dist/index.js", "types": "dist/index.d.ts", diff --git a/packages/sdk/package.json b/packages/sdk/package.json index f8ccf0ccb1..2dbe8ef4ef 100644 --- a/packages/sdk/package.json +++ b/packages/sdk/package.json @@ -1,6 +1,6 @@ { "name": "@directus/sdk", - "version": "9.0.0-rc.73", + "version": "9.0.0-rc.74", "description": "The official Directus SDK for use in JavaScript!", "repository": { "type": "git", diff --git a/packages/specs/package.json b/packages/specs/package.json index 634ec613ec..ba61fa7c4e 100644 --- a/packages/specs/package.json +++ b/packages/specs/package.json @@ -1,6 +1,6 @@ { "name": "@directus/specs", - "version": "9.0.0-rc.73", + "version": "9.0.0-rc.74", "description": "OpenAPI Specification of the Directus API", "main": "index.js", "scripts": { From 9dc3ba68c998e09605b1593519052cdf99058231 Mon Sep 17 00:00:00 2001 From: Rijk van Zanten Date: Mon, 7 Jun 2021 17:43:16 -0400 Subject: [PATCH 08/32] Update changelog.md --- changelog.md | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/changelog.md b/changelog.md index daf3de3483..9a2aadb88b 100644 --- a/changelog.md +++ b/changelog.md @@ -2,6 +2,38 @@ _Changes marked with a :warning: contain potential breaking changes depending on your use of the package._ +## v9.0.0-rc.74 (June 7, 2021) + +### :sparkles: New Features + +- **API** + - [#6116](https://github.com/directus/directus/pull/6116) Add support for CRON hooks (interval) ([@rijkvanzanten](https://github.com/rijkvanzanten)) + +### :rocket: Improvements + +- **App** + - [#6112](https://github.com/directus/directus/pull/6112) Make mfa output code selectable ([@rijkvanzanten](https://github.com/rijkvanzanten)) +- **Docker** + - [#6081](https://github.com/directus/directus/pull/6081) Optimize Docker image performance and formatting ([@paescuj](https://github.com/paescuj)) + +### :memo: Documentation + +- [#6110](https://github.com/directus/directus/pull/6110) Improve search ability of update instructions ([@benhaynes](https://github.com/benhaynes)) +- [#6087](https://github.com/directus/directus/pull/6087) Fix typo ([@benhaynes](https://github.com/benhaynes)) +- [#6086](https://github.com/directus/directus/pull/6086) Update introduction.md ([@benhaynes](https://github.com/benhaynes)) + +### :package: Dependency Updates + +- [#6109](https://github.com/directus/directus/pull/6109) Bump vue-loader from 15.9.6 to 15.9.7 ([@dependabot[bot]](https://github.com/apps/dependabot)) +- [#6108](https://github.com/directus/directus/pull/6108) Bump @types/yargs from 16.0.1 to 17.0.0 ([@dependabot[bot]](https://github.com/apps/dependabot)) +- [#6107](https://github.com/directus/directus/pull/6107) Bump mime-types from 2.1.30 to 2.1.31 ([@dependabot[bot]](https://github.com/apps/dependabot)) +- [#6106](https://github.com/directus/directus/pull/6106) Bump graphql-compose from 8.1.0 to 9.0.1 ([@dependabot[bot]](https://github.com/apps/dependabot)) +- [#6105](https://github.com/directus/directus/pull/6105) Bump jest from 27.0.3 to 27.0.4 ([@dependabot[bot]](https://github.com/apps/dependabot)) +- [#6082](https://github.com/directus/directus/pull/6082) Bump @godaddy/terminus from 4.7.2 to 4.9.0 ([@dependabot[bot]](https://github.com/apps/dependabot)) +- [#6069](https://github.com/directus/directus/pull/6069) Bump @fullcalendar/list from 5.7.0 to 5.7.2 ([@dependabot[bot]](https://github.com/apps/dependabot)) +- [#6068](https://github.com/directus/directus/pull/6068) Bump aws-sdk from 2.911.0 to 2.921.0 ([@dependabot[bot]](https://github.com/apps/dependabot)) +- [#6066](https://github.com/directus/directus/pull/6066) Bump @types/node from 15.9.0 to 15.12.0 ([@dependabot[bot]](https://github.com/apps/dependabot)) + ## v9.0.0-rc.73 (June 4, 2021) ### :bug: Bug Fixes From bf824b9742dfd802bfe614f61680fbe9feb99202 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 8 Jun 2021 08:27:36 -0400 Subject: [PATCH 09/32] Bump @types/sharp from 0.28.1 to 0.28.3 (#6122) Bumps [@types/sharp](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/sharp) from 0.28.1 to 0.28.3. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/sharp) --- updated-dependencies: - dependency-name: "@types/sharp" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- api/package.json | 2 +- package-lock.json | 129 +++++++++++++++++++--------------------------- 2 files changed, 53 insertions(+), 78 deletions(-) diff --git a/api/package.json b/api/package.json index e1121e9b40..decab3bf68 100644 --- a/api/package.json +++ b/api/package.json @@ -173,7 +173,7 @@ "@types/node-cron": "^2.0.3", "@types/nodemailer": "^6.4.1", "@types/qs": "^6.9.6", - "@types/sharp": "^0.28.1", + "@types/sharp": "^0.28.3", "@types/stream-json": "^1.7.0", "@types/uuid": "^8.3.0", "@types/uuid-validate": "^0.0.1", diff --git a/package-lock.json b/package-lock.json index 967f72c45a..bc2c674ddd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -54,17 +54,17 @@ }, "api": { "name": "directus", - "version": "9.0.0-rc.73", + "version": "9.0.0-rc.74", "license": "GPL-3.0-only", "dependencies": { - "@directus/app": "9.0.0-rc.73", - "@directus/drive": "9.0.0-rc.73", - "@directus/drive-azure": "9.0.0-rc.73", - "@directus/drive-gcs": "9.0.0-rc.73", - "@directus/drive-s3": "9.0.0-rc.73", - "@directus/format-title": "9.0.0-rc.73", - "@directus/schema": "9.0.0-rc.73", - "@directus/specs": "9.0.0-rc.73", + "@directus/app": "9.0.0-rc.74", + "@directus/drive": "9.0.0-rc.74", + "@directus/drive-azure": "9.0.0-rc.74", + "@directus/drive-gcs": "9.0.0-rc.74", + "@directus/drive-s3": "9.0.0-rc.74", + "@directus/format-title": "9.0.0-rc.74", + "@directus/schema": "9.0.0-rc.74", + "@directus/specs": "9.0.0-rc.74", "@godaddy/terminus": "^4.9.0", "argon2": "^0.28.1", "async": "^3.2.0", @@ -151,7 +151,7 @@ "@types/node-cron": "^2.0.3", "@types/nodemailer": "^6.4.1", "@types/qs": "^6.9.6", - "@types/sharp": "^0.28.1", + "@types/sharp": "^0.28.3", "@types/stream-json": "^1.7.0", "@types/uuid": "^8.3.0", "@types/uuid-validate": "^0.0.1", @@ -326,10 +326,10 @@ }, "app": { "name": "@directus/app", - "version": "9.0.0-rc.73", + "version": "9.0.0-rc.74", "devDependencies": { - "@directus/docs": "9.0.0-rc.73", - "@directus/format-title": "9.0.0-rc.73", + "@directus/docs": "9.0.0-rc.74", + "@directus/format-title": "9.0.0-rc.74", "@fullcalendar/core": "^5.7.2", "@fullcalendar/daygrid": "^5.7.2", "@fullcalendar/interaction": "^5.7.2", @@ -463,7 +463,7 @@ }, "docs": { "name": "@directus/docs", - "version": "9.0.0-rc.73", + "version": "9.0.0-rc.74", "license": "ISC", "devDependencies": { "directory-tree": "^2.2.9", @@ -7551,9 +7551,9 @@ } }, "node_modules/@types/sharp": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@types/sharp/-/sharp-0.28.1.tgz", - "integrity": "sha512-Jn9NHCjT3KXjxTpbtaxBI4iL+st5o9pWhMGVpHF+Cs+t/31lohLNXSW9PT9RSl7Ct7yBT2XFu7R/xfo0Y8HH2Q==", + "version": "0.28.3", + "resolved": "https://registry.npmjs.org/@types/sharp/-/sharp-0.28.3.tgz", + "integrity": "sha512-y3mxUj3jukIWgdu9CrSTSCo5HruTzDxdjn5SqdIEALdTszkcot9r8HX/7q9FMx3YjuXifTD0OI+d4wA6Pogqmw==", "dev": true, "dependencies": { "@types/node": "*" @@ -13092,7 +13092,6 @@ "version": "0.0.9", "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", - "dev": true, "optional": true, "dependencies": { "inherits": "~2.0.0" @@ -21204,7 +21203,6 @@ "version": "1.0.12", "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", - "dev": true, "optional": true, "dependencies": { "graceful-fs": "^4.1.2", @@ -21220,7 +21218,6 @@ "version": "0.5.5", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, "optional": true, "dependencies": { "minimist": "^1.2.5" @@ -21233,7 +21230,6 @@ "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, "optional": true, "dependencies": { "glob": "^7.1.3" @@ -42042,7 +42038,6 @@ "version": "0.5.5", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, "optional": true, "dependencies": { "minimist": "^1.2.5" @@ -42055,7 +42050,6 @@ "version": "3.8.0", "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", - "dev": true, "optional": true, "dependencies": { "fstream": "^1.0.0", @@ -42082,7 +42076,6 @@ "version": "3.0.6", "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", - "dev": true, "optional": true, "dependencies": { "abbrev": "1" @@ -42095,7 +42088,6 @@ "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, "optional": true, "dependencies": { "glob": "^7.1.3" @@ -42108,7 +42100,6 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", - "dev": true, "optional": true, "bin": { "semver": "bin/semver" @@ -42118,7 +42109,6 @@ "version": "2.2.2", "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz", "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", - "dev": true, "optional": true, "dependencies": { "block-stream": "*", @@ -42130,7 +42120,6 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, "optional": true, "dependencies": { "isexe": "^2.0.0" @@ -50840,11 +50829,11 @@ }, "packages/cli": { "name": "@directus/cli", - "version": "9.0.0-rc.73", + "version": "9.0.0-rc.74", "license": "MIT", "dependencies": { - "@directus/format-title": "9.0.0-rc.73", - "@directus/sdk": "9.0.0-rc.73", + "@directus/format-title": "9.0.0-rc.74", + "@directus/sdk": "9.0.0-rc.74", "@types/yargs": "^17.0.0", "app-module-path": "^2.2.0", "chalk": "^4.1.0", @@ -51067,7 +51056,7 @@ } }, "packages/create-directus-project": { - "version": "9.0.0-rc.73", + "version": "9.0.0-rc.74", "license": "GPL-3.0-only", "dependencies": { "chalk": "^4.1.1", @@ -51136,7 +51125,7 @@ }, "packages/drive": { "name": "@directus/drive", - "version": "9.0.0-rc.73", + "version": "9.0.0-rc.74", "license": "MIT", "dependencies": { "fs-extra": "^10.0.0", @@ -51155,11 +51144,11 @@ }, "packages/drive-azure": { "name": "@directus/drive-azure", - "version": "9.0.0-rc.73", + "version": "9.0.0-rc.74", "license": "MIT", "dependencies": { "@azure/storage-blob": "^12.2.1", - "@directus/drive": "9.0.0-rc.73", + "@directus/drive": "9.0.0-rc.74", "normalize-path": "^3.0.0" }, "devDependencies": { @@ -51200,10 +51189,10 @@ }, "packages/drive-gcs": { "name": "@directus/drive-gcs", - "version": "9.0.0-rc.73", + "version": "9.0.0-rc.74", "license": "MIT", "dependencies": { - "@directus/drive": "9.0.0-rc.73", + "@directus/drive": "9.0.0-rc.74", "@google-cloud/storage": "^5.8.5", "normalize-path": "^3.0.0" }, @@ -51231,10 +51220,10 @@ }, "packages/drive-s3": { "name": "@directus/drive-s3", - "version": "9.0.0-rc.73", + "version": "9.0.0-rc.74", "license": "MIT", "dependencies": { - "@directus/drive": "9.0.0-rc.73", + "@directus/drive": "9.0.0-rc.74", "aws-sdk": "^2.921.0", "normalize-path": "^3.0.0" }, @@ -51299,7 +51288,7 @@ }, "packages/format-title": { "name": "@directus/format-title", - "version": "9.0.0-rc.73", + "version": "9.0.0-rc.74", "license": "MIT", "devDependencies": { "@rollup/plugin-commonjs": "^19.0.0", @@ -51318,7 +51307,7 @@ }, "packages/gatsby-source-directus": { "name": "@directus/gatsby-source-directus", - "version": "9.0.0-rc.73", + "version": "9.0.0-rc.74", "license": "MIT", "dependencies": { "@directus/sdk-js": "^9.0.0-rc.53", @@ -53973,7 +53962,7 @@ }, "packages/schema": { "name": "@directus/schema", - "version": "9.0.0-rc.73", + "version": "9.0.0-rc.74", "license": "GPL-3.0", "dependencies": { "knex-schema-inspector": "^1.3.0", @@ -53986,7 +53975,7 @@ }, "packages/sdk": { "name": "@directus/sdk", - "version": "9.0.0-rc.73", + "version": "9.0.0-rc.74", "license": "MIT", "dependencies": { "axios": "^0.21.1" @@ -54214,7 +54203,7 @@ }, "packages/specs": { "name": "@directus/specs", - "version": "9.0.0-rc.73", + "version": "9.0.0-rc.74", "license": "GPL-3.0", "dependencies": { "openapi3-ts": "^2.0.1" @@ -55845,8 +55834,8 @@ "@directus/app": { "version": "file:app", "requires": { - "@directus/docs": "9.0.0-rc.73", - "@directus/format-title": "9.0.0-rc.73", + "@directus/docs": "9.0.0-rc.74", + "@directus/format-title": "9.0.0-rc.74", "@fullcalendar/core": "^5.7.2", "@fullcalendar/daygrid": "^5.7.2", "@fullcalendar/interaction": "^5.7.2", @@ -55958,8 +55947,8 @@ "@directus/cli": { "version": "file:packages/cli", "requires": { - "@directus/format-title": "9.0.0-rc.73", - "@directus/sdk": "9.0.0-rc.73", + "@directus/format-title": "9.0.0-rc.74", + "@directus/sdk": "9.0.0-rc.74", "@types/figlet": "^1.5.0", "@types/fs-extra": "^9.0.11", "@types/jest": "^26.0.23", @@ -56187,7 +56176,7 @@ "version": "file:packages/drive-azure", "requires": { "@azure/storage-blob": "^12.2.1", - "@directus/drive": "9.0.0-rc.73", + "@directus/drive": "9.0.0-rc.74", "@types/fs-extra": "^9.0.11", "@types/jest": "^26.0.22", "@types/node": "^15.12.0", @@ -56223,7 +56212,7 @@ "@directus/drive-gcs": { "version": "file:packages/drive-gcs", "requires": { - "@directus/drive": "9.0.0-rc.73", + "@directus/drive": "9.0.0-rc.74", "@google-cloud/storage": "^5.8.5", "@lukeed/uuid": "^2.0.0", "@types/fs-extra": "^9.0.11", @@ -56249,7 +56238,7 @@ "@directus/drive-s3": { "version": "file:packages/drive-s3", "requires": { - "@directus/drive": "9.0.0-rc.73", + "@directus/drive": "9.0.0-rc.74", "@lukeed/uuid": "^2.0.0", "@types/fs-extra": "^9.0.11", "@types/jest": "^26.0.22", @@ -61148,7 +61137,6 @@ "resolved": "https://registry.npmjs.org/@oclif/command/-/command-1.8.0.tgz", "integrity": "sha512-5vwpq6kbvwkQwKqAoOU3L72GZ3Ta8RRrewKj9OJRolx28KLJJ8Dg9Rf7obRwt5jQA9bkYd8gqzMTrI7H3xLfaw==", "requires": { - "@oclif/config": "^1.15.1", "@oclif/errors": "^1.3.3", "@oclif/parser": "^3.8.3", "@oclif/plugin-help": "^3", @@ -62865,9 +62853,9 @@ } }, "@types/sharp": { - "version": "0.28.1", - "resolved": "https://registry.npmjs.org/@types/sharp/-/sharp-0.28.1.tgz", - "integrity": "sha512-Jn9NHCjT3KXjxTpbtaxBI4iL+st5o9pWhMGVpHF+Cs+t/31lohLNXSW9PT9RSl7Ct7yBT2XFu7R/xfo0Y8HH2Q==", + "version": "0.28.3", + "resolved": "https://registry.npmjs.org/@types/sharp/-/sharp-0.28.3.tgz", + "integrity": "sha512-y3mxUj3jukIWgdu9CrSTSCo5HruTzDxdjn5SqdIEALdTszkcot9r8HX/7q9FMx3YjuXifTD0OI+d4wA6Pogqmw==", "dev": true, "requires": { "@types/node": "*" @@ -63311,7 +63299,6 @@ "integrity": "sha512-pM7CR3yXB6L8Gfn6EmX7FLNE3+V/15I3o33GkSNsWvgsMp6HVGXKkXgojrcfUUauyL1LZOdvTmu4enU2RePGHw==", "dev": true, "requires": { - "@babel/core": "^7.11.0", "@babel/helper-compilation-targets": "^7.9.6", "@babel/helper-module-imports": "^7.8.3", "@babel/plugin-proposal-class-properties": "^7.8.3", @@ -63324,7 +63311,6 @@ "@vue/babel-plugin-jsx": "^1.0.3", "@vue/babel-preset-jsx": "^1.2.4", "babel-plugin-dynamic-import-node": "^2.3.3", - "core-js": "^3.6.5", "core-js-compat": "^3.6.5", "semver": "^6.1.0" }, @@ -67392,7 +67378,6 @@ "version": "0.0.9", "resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz", "integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=", - "dev": true, "optional": true, "requires": { "inherits": "~2.0.0" @@ -71041,14 +71026,14 @@ "directus": { "version": "file:api", "requires": { - "@directus/app": "9.0.0-rc.73", - "@directus/drive": "9.0.0-rc.73", - "@directus/drive-azure": "9.0.0-rc.73", - "@directus/drive-gcs": "9.0.0-rc.73", - "@directus/drive-s3": "9.0.0-rc.73", - "@directus/format-title": "9.0.0-rc.73", - "@directus/schema": "9.0.0-rc.73", - "@directus/specs": "9.0.0-rc.73", + "@directus/app": "9.0.0-rc.74", + "@directus/drive": "9.0.0-rc.74", + "@directus/drive-azure": "9.0.0-rc.74", + "@directus/drive-gcs": "9.0.0-rc.74", + "@directus/drive-s3": "9.0.0-rc.74", + "@directus/format-title": "9.0.0-rc.74", + "@directus/schema": "9.0.0-rc.74", + "@directus/specs": "9.0.0-rc.74", "@godaddy/terminus": "^4.9.0", "@keyv/redis": "^2.1.2", "@types/async": "^3.2.6", @@ -71074,7 +71059,7 @@ "@types/node-cron": "^2.0.3", "@types/nodemailer": "^6.4.1", "@types/qs": "^6.9.6", - "@types/sharp": "^0.28.1", + "@types/sharp": "^0.28.3", "@types/stream-json": "^1.7.0", "@types/uuid": "^8.3.0", "@types/uuid-validate": "^0.0.1", @@ -74142,7 +74127,6 @@ "version": "1.0.12", "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", - "dev": true, "optional": true, "requires": { "graceful-fs": "^4.1.2", @@ -74155,7 +74139,6 @@ "version": "0.5.5", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, "optional": true, "requires": { "minimist": "^1.2.5" @@ -74165,7 +74148,6 @@ "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, "optional": true, "requires": { "glob": "^7.1.3" @@ -90790,7 +90772,6 @@ "version": "0.5.5", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, "optional": true, "requires": { "minimist": "^1.2.5" @@ -90800,7 +90781,6 @@ "version": "3.8.0", "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", "integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==", - "dev": true, "optional": true, "requires": { "fstream": "^1.0.0", @@ -90821,7 +90801,6 @@ "version": "3.0.6", "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", - "dev": true, "optional": true, "requires": { "abbrev": "1" @@ -90831,7 +90810,6 @@ "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, "optional": true, "requires": { "glob": "^7.1.3" @@ -90841,14 +90819,12 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz", "integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=", - "dev": true, "optional": true }, "tar": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz", "integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==", - "dev": true, "optional": true, "requires": { "block-stream": "*", @@ -90860,7 +90836,6 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, "optional": true, "requires": { "isexe": "^2.0.0" From 7eb13e3de25e39ec01dea4dc505425afc3d80e2a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 8 Jun 2021 08:41:12 -0400 Subject: [PATCH 10/32] Bump execa from 5.0.1 to 5.1.1 (#6126) Bumps [execa](https://github.com/sindresorhus/execa) from 5.0.1 to 5.1.1. - [Release notes](https://github.com/sindresorhus/execa/releases) - [Commits](https://github.com/sindresorhus/execa/compare/v5.0.1...v5.1.1) --- updated-dependencies: - dependency-name: execa dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- api/package.json | 2 +- package-lock.json | 32 +++++++++---------- packages/create-directus-project/package.json | 2 +- 3 files changed, 18 insertions(+), 18 deletions(-) diff --git a/api/package.json b/api/package.json index decab3bf68..53608a136d 100644 --- a/api/package.json +++ b/api/package.json @@ -92,7 +92,7 @@ "destroy": "^1.0.4", "dotenv": "^9.0.2", "eventemitter2": "^6.4.3", - "execa": "^5.0.1", + "execa": "^5.1.1", "exif-reader": "^1.0.3", "express": "^4.17.1", "express-pino-logger": "^6.0.0", diff --git a/package-lock.json b/package-lock.json index bc2c674ddd..14faf97ad5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -83,7 +83,7 @@ "destroy": "^1.0.4", "dotenv": "^9.0.2", "eventemitter2": "^6.4.3", - "execa": "^5.0.1", + "execa": "^5.1.1", "exif-reader": "^1.0.3", "express": "^4.17.1", "express-pino-logger": "^6.0.0", @@ -218,9 +218,9 @@ } }, "api/node_modules/execa": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.0.1.tgz", - "integrity": "sha512-4hFTjFbFzQa3aCLobpbPJR/U+VoL1wdV5ozOWjeet0AWDeYr9UFGM1eUFWHX+VtOWFq4p0xXUXfW1YxUaP4fpw==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", @@ -51061,7 +51061,7 @@ "dependencies": { "chalk": "^4.1.1", "commander": "^7.2.0", - "execa": "^5.0.1", + "execa": "^5.1.1", "fs-extra": "^10.0.0", "ora": "^5.4.0" }, @@ -51070,9 +51070,9 @@ } }, "packages/create-directus-project/node_modules/execa": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.0.1.tgz", - "integrity": "sha512-4hFTjFbFzQa3aCLobpbPJR/U+VoL1wdV5ozOWjeet0AWDeYr9UFGM1eUFWHX+VtOWFq4p0xXUXfW1YxUaP4fpw==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dependencies": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", @@ -69845,15 +69845,15 @@ "requires": { "chalk": "^4.1.1", "commander": "^7.2.0", - "execa": "^5.0.1", + "execa": "^5.1.1", "fs-extra": "^10.0.0", "ora": "^5.4.0" }, "dependencies": { "execa": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.0.1.tgz", - "integrity": "sha512-4hFTjFbFzQa3aCLobpbPJR/U+VoL1wdV5ozOWjeet0AWDeYr9UFGM1eUFWHX+VtOWFq4p0xXUXfW1YxUaP4fpw==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "requires": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", @@ -71085,7 +71085,7 @@ "destroy": "^1.0.4", "dotenv": "^9.0.2", "eventemitter2": "^6.4.3", - "execa": "^5.0.1", + "execa": "^5.1.1", "exif-reader": "^1.0.3", "express": "^4.17.1", "express-pino-logger": "^6.0.0", @@ -71164,9 +71164,9 @@ "integrity": "sha512-I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg==" }, "execa": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.0.1.tgz", - "integrity": "sha512-4hFTjFbFzQa3aCLobpbPJR/U+VoL1wdV5ozOWjeet0AWDeYr9UFGM1eUFWHX+VtOWFq4p0xXUXfW1YxUaP4fpw==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "requires": { "cross-spawn": "^7.0.3", "get-stream": "^6.0.0", diff --git a/packages/create-directus-project/package.json b/packages/create-directus-project/package.json index 7652ed61d8..d6712aa719 100644 --- a/packages/create-directus-project/package.json +++ b/packages/create-directus-project/package.json @@ -13,7 +13,7 @@ "dependencies": { "chalk": "^4.1.1", "commander": "^7.2.0", - "execa": "^5.0.1", + "execa": "^5.1.1", "fs-extra": "^10.0.0", "ora": "^5.4.0" }, From 03dfca8100f08e728014dcbbb525f24fcc25a636 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 8 Jun 2021 08:41:30 -0400 Subject: [PATCH 11/32] Bump prettier from 2.3.0 to 2.3.1 (#6124) Bumps [prettier](https://github.com/prettier/prettier) from 2.3.0 to 2.3.1. - [Release notes](https://github.com/prettier/prettier/releases) - [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md) - [Commits](https://github.com/prettier/prettier/compare/2.3.0...2.3.1) --- updated-dependencies: - dependency-name: prettier dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- app/package.json | 2 +- package-lock.json | 22 +++++++++++----------- package.json | 2 +- packages/cli/package.json | 2 +- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/app/package.json b/app/package.json index 168d87f140..e432571d65 100644 --- a/app/package.json +++ b/app/package.json @@ -75,7 +75,7 @@ "nanoid": "^3.1.23", "pinia": "^0.0.7", "portal-vue": "^2.1.7", - "prettier": "^2.3.0", + "prettier": "^2.3.1", "pretty-ms": "^7.0.1", "qrcode": "^1.4.4", "raw-loader": "^4.0.2", diff --git a/package-lock.json b/package-lock.json index 14faf97ad5..2025a9d02d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -37,7 +37,7 @@ "npm-run-all": "^4.1.5", "oracledb": "^5.1.0", "pg": "^8.6.0", - "prettier": "^2.3.0", + "prettier": "^2.3.1", "simple-git-hooks": "^2.4.1", "sqlite3": "^5.0.2", "stylelint": "^13.13.1", @@ -376,7 +376,7 @@ "nanoid": "^3.1.23", "pinia": "^0.0.7", "portal-vue": "^2.1.7", - "prettier": "^2.3.0", + "prettier": "^2.3.1", "pretty-ms": "^7.0.1", "qrcode": "^1.4.4", "raw-loader": "^4.0.2", @@ -38031,9 +38031,9 @@ } }, "node_modules/prettier": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.0.tgz", - "integrity": "sha512-kXtO4s0Lz/DW/IJ9QdWhAf7/NmPWQXkFr/r/WkR3vyI+0v8amTDxiaQSLzs8NBlytfLWX/7uQUMIW677yLKl4w==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.1.tgz", + "integrity": "sha512-p+vNbgpLjif/+D+DwAZAbndtRrR0md0MwfmOVN9N+2RgyACMT+7tfaRnT+WDPkqnuVwleyuBIG2XBxKDme3hPA==", "bin": { "prettier": "bin-prettier.js" }, @@ -50879,7 +50879,7 @@ "jest": "^27.0.4", "nock": "^13.0.10", "npm-run-all": "^4.1.5", - "prettier": "^2.2.1", + "prettier": "^2.3.1", "rimraf": "^3.0.2", "ts-jest": "^27.0.2", "ts-node": "^10.0.0", @@ -55882,7 +55882,7 @@ "nanoid": "^3.1.23", "pinia": "^0.0.7", "portal-vue": "^2.1.7", - "prettier": "^2.3.0", + "prettier": "^2.3.1", "pretty-ms": "^7.0.1", "qrcode": "^1.4.4", "raw-loader": "^4.0.2", @@ -55982,7 +55982,7 @@ "nock": "^13.0.10", "npm-run-all": "^4.1.5", "open": "^8.2.0", - "prettier": "^2.2.1", + "prettier": "^2.3.1", "pretty-ms": "^7.0.1", "rimraf": "^3.0.2", "shimmer": "^1.2.1", @@ -87564,9 +87564,9 @@ "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=" }, "prettier": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.0.tgz", - "integrity": "sha512-kXtO4s0Lz/DW/IJ9QdWhAf7/NmPWQXkFr/r/WkR3vyI+0v8amTDxiaQSLzs8NBlytfLWX/7uQUMIW677yLKl4w==" + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.1.tgz", + "integrity": "sha512-p+vNbgpLjif/+D+DwAZAbndtRrR0md0MwfmOVN9N+2RgyACMT+7tfaRnT+WDPkqnuVwleyuBIG2XBxKDme3hPA==" }, "prettier-bytes": { "version": "1.0.4", diff --git a/package.json b/package.json index bcd5604db0..4ae3e58c0f 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,7 @@ "npm-run-all": "^4.1.5", "oracledb": "^5.1.0", "pg": "^8.6.0", - "prettier": "^2.3.0", + "prettier": "^2.3.1", "simple-git-hooks": "^2.4.1", "sqlite3": "^5.0.2", "stylelint": "^13.13.1", diff --git a/packages/cli/package.json b/packages/cli/package.json index f9181bb549..0de582383a 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -84,7 +84,7 @@ "jest": "^27.0.4", "nock": "^13.0.10", "npm-run-all": "^4.1.5", - "prettier": "^2.2.1", + "prettier": "^2.3.1", "rimraf": "^3.0.2", "ts-jest": "^27.0.2", "ts-node": "^10.0.0", From a125ff2eb67097446db9aa97bb30a0091b1e2119 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 8 Jun 2021 08:41:41 -0400 Subject: [PATCH 12/32] Bump slugify from 1.5.0 to 1.5.3 (#6125) Bumps [slugify](https://github.com/simov/slugify) from 1.5.0 to 1.5.3. - [Release notes](https://github.com/simov/slugify/releases) - [Commits](https://github.com/simov/slugify/compare/v1.5.0...v1.5.3) --- updated-dependencies: - dependency-name: slugify dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- docs/package.json | 2 +- package-lock.json | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/docs/package.json b/docs/package.json index e731db52e5..ba2cafa157 100644 --- a/docs/package.json +++ b/docs/package.json @@ -35,7 +35,7 @@ "lodash.get": "^4.4.2", "micromark": "^2.10.1", "npm-watch": "^0.9.0", - "slugify": "^1.4.6", + "slugify": "^1.5.3", "vuepress": "^1.7.1", "vuepress-plugin-clean-urls": "^1.1.2" } diff --git a/package-lock.json b/package-lock.json index 2025a9d02d..b70d82f756 100644 --- a/package-lock.json +++ b/package-lock.json @@ -471,7 +471,7 @@ "lodash.get": "^4.4.2", "micromark": "^2.10.1", "npm-watch": "^0.9.0", - "slugify": "^1.4.6", + "slugify": "^1.5.3", "vuepress": "^1.7.1", "vuepress-plugin-clean-urls": "^1.1.2" } @@ -41444,9 +41444,9 @@ } }, "node_modules/slugify": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.5.0.tgz", - "integrity": "sha512-Q2UPZ2udzquy1ElHfOLILMBMqBEXkiD3wE75qtBvV+FsDdZZjUqPZ44vqLTejAVq+wLLHacOMcENnP8+ZbzmIA==", + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.5.3.tgz", + "integrity": "sha512-/HkjRdwPY3yHJReXu38NiusZw2+LLE2SrhkWJtmlPDB1fqFSvioYj62NkPcrKiNCgRLeGcGK7QBvr1iQwybeXw==", "engines": { "node": ">=8.0.0" } @@ -56121,7 +56121,7 @@ "lodash.get": "^4.4.2", "micromark": "^2.10.1", "npm-watch": "^0.9.0", - "slugify": "^1.4.6", + "slugify": "^1.5.3", "vuepress": "^1.7.1", "vuepress-plugin-clean-urls": "^1.1.2" }, @@ -90272,9 +90272,9 @@ "dev": true }, "slugify": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.5.0.tgz", - "integrity": "sha512-Q2UPZ2udzquy1ElHfOLILMBMqBEXkiD3wE75qtBvV+FsDdZZjUqPZ44vqLTejAVq+wLLHacOMcENnP8+ZbzmIA==" + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.5.3.tgz", + "integrity": "sha512-/HkjRdwPY3yHJReXu38NiusZw2+LLE2SrhkWJtmlPDB1fqFSvioYj62NkPcrKiNCgRLeGcGK7QBvr1iQwybeXw==" }, "smart-buffer": { "version": "4.1.0", From e5fe2c45171db6ef47f147ee9c9a1a7a6ffc5c19 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 8 Jun 2021 08:42:24 -0400 Subject: [PATCH 13/32] Bump connect-redis from 5.2.0 to 6.0.0 (#6123) Bumps [connect-redis](https://github.com/visionmedia/connect-redis) from 5.2.0 to 6.0.0. - [Release notes](https://github.com/visionmedia/connect-redis/releases) - [Commits](https://github.com/visionmedia/connect-redis/compare/v5.2.0...v6.0.0) --- updated-dependencies: - dependency-name: connect-redis dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- api/package.json | 2 +- package-lock.json | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/api/package.json b/api/package.json index 53608a136d..7d7c596c71 100644 --- a/api/package.json +++ b/api/package.json @@ -136,7 +136,7 @@ "optionalDependencies": { "@keyv/redis": "^2.1.2", "connect-memcached": "^1.0.0", - "connect-redis": "^5.2.0", + "connect-redis": "^6.0.0", "connect-session-knex": "^2.1.0", "ioredis": "^4.27.2", "keyv-memcache": "^1.2.5", diff --git a/package-lock.json b/package-lock.json index b70d82f756..8ec7b3c8bd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -163,7 +163,7 @@ "optionalDependencies": { "@keyv/redis": "^2.1.2", "connect-memcached": "^1.0.0", - "connect-redis": "^5.2.0", + "connect-redis": "^6.0.0", "connect-session-knex": "^2.1.0", "ioredis": "^4.27.2", "keyv-memcache": "^1.2.5", @@ -15184,12 +15184,12 @@ "optional": true }, "node_modules/connect-redis": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/connect-redis/-/connect-redis-5.2.0.tgz", - "integrity": "sha512-wcv1lZWa2K7RbsdSlrvwApBQFLQx+cia+oirLIeim0axR3D/9ZJbHdeTM/j8tJYYKk34dVs2QPAuAqcIklWD+Q==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/connect-redis/-/connect-redis-6.0.0.tgz", + "integrity": "sha512-6eGEAAPHYvcfbRNCMmPzBIjrqRWLw7at9lCUH4G6NQ8gwWDJelaUmFNOqPIhehbw941euVmIuqWsaWiKXfb+5g==", "optional": true, "engines": { - "node": ">=10.0.0" + "node": ">=12" } }, "node_modules/connect-session-knex": { @@ -69066,9 +69066,9 @@ } }, "connect-redis": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/connect-redis/-/connect-redis-5.2.0.tgz", - "integrity": "sha512-wcv1lZWa2K7RbsdSlrvwApBQFLQx+cia+oirLIeim0axR3D/9ZJbHdeTM/j8tJYYKk34dVs2QPAuAqcIklWD+Q==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/connect-redis/-/connect-redis-6.0.0.tgz", + "integrity": "sha512-6eGEAAPHYvcfbRNCMmPzBIjrqRWLw7at9lCUH4G6NQ8gwWDJelaUmFNOqPIhehbw941euVmIuqWsaWiKXfb+5g==", "optional": true }, "connect-session-knex": { @@ -71073,7 +71073,7 @@ "chalk": "^4.1.1", "commander": "^7.2.0", "connect-memcached": "^1.0.0", - "connect-redis": "^5.2.0", + "connect-redis": "^6.0.0", "connect-session-knex": "^2.1.0", "cookie-parser": "^1.4.5", "copyfiles": "^2.4.0", From 32737ba88441a9ea1587dee1f8a5c90adef86e3f Mon Sep 17 00:00:00 2001 From: Ben Haynes Date: Tue, 8 Jun 2021 10:14:00 -0400 Subject: [PATCH 14/32] Update api-hooks.md (#6135) --- docs/guides/api-hooks.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/guides/api-hooks.md b/docs/guides/api-hooks.md index 5272f37748..f4e0697168 100644 --- a/docs/guides/api-hooks.md +++ b/docs/guides/api-hooks.md @@ -74,6 +74,7 @@ module.exports = function registerHook({ exceptions }) { | Scope | Actions | Before | | ------------------------------- | ----------------------------------------------------------- | ---------------- | +| `cron()` | [See below for configuration](#interval-cron) | No | | `server` | `start` and `stop` | Optional | | `init` | | Optional | | `routes.init` | `before` and `after` | No | From 1961dc188bfa51cfa0f846eab8c7f20a26a075c7 Mon Sep 17 00:00:00 2001 From: Nicola Krumschmidt Date: Tue, 8 Jun 2021 21:59:55 +0200 Subject: [PATCH 15/32] Port the app to Vue 3 (#5339) * Fix linting errors * Fix remaining catch all routes * Fix directive registration regression * Replace $router global with composition function * Fix v-bind overwrite order in nested-draggable * Migrate vuedraggable * Fix building with empty translation files * Add comment regarding array equality check * Fix markdown-it plugins import * Fix newly introduced wrong store usage * Fix v-button-group model * Fix v-fancy-select model * Fix v-field-template model * Fix v-input model * Fix v-item-group model * Fix v-menu model * Fix v-select model * Fix v-tabs model * Fix v-tabs-items model * Fix v-textarea model * Fix v-checkbox model * Fix v-dialog model * Fix v-drawer model * Fix v-form model * Fix v-list model * Fix v-table model * Fix v-detail model * Fix v-radio model * Fix v-switch model * Fix files-navigation model * Fix replace-file model * Fix bookmark-add model * Fix bookmark-edit model * Fix drawer-batch model * Fix drawer-item model * Fix file-lightbox model * Fix image-editor model * Fix notifications-preview model * Fix users-invite model * Lowercase editor component name * Fix collections-filter model * Fix filter-input model * Fix filter-sidebar-detail model * Fix folder-picker model * Fix interface-checkboxes model * Fix interface-code model * Fix interface-icon model * Fix interface-repeater model * Fix refresh-sidebar-detail model * Fix search-input model * Fix interface/display component option v-model usage * Replace calling listener through $attrs with $emit and add emits option * Add comment regarding useCustomSelection emits * Fix context menu activation * Fix collectionsStore access * Fix popperjs * Hotfix useGroupable * Fix notifications-preview old prop name * Fix module bar tooltip translation * Fix useSync type signature * Fix update:layoutOptions emit name * Fix usePermissions missing imports regression * Revert changes to docs vuepress instance * Fix module-relative-resolve vite plugin when serving * Fix docs * Fix refresh on first load * Fix creating new collection * Fix loading of collection route * Fix v-dialog/v-menu appear transition * Access props directly * Fix v-table clickable * Fix v-drawer cancelable * Fix v-icon clickable * Fix v-input clickable * Fix v-list-group clickable * Fix v-list-item clickable * Fix v-overlay clickable * Fix header-bar primary button * Fix v-table item.* slot * Fix vue warning regarding exposed variables starting with _ or $ * Fix usePermissions * Add package-lock.json * Fix v-form unset regression * Fix vue shims * Fix useCustomSelection emit * Make extensions arrays shallow * Move teleport targets out of the vue app * Fix v-field-select model * Fix v-slider model * Fix v-pagination model * Fix card model * Fix v-select item-value prop usage * Fix layout-sidebar-detail model * Fix form-field model * Fix form-field-menu model * Fix form-field-interface model * Fix v-form model * Use kebab-case for modelValue * Update package-lock.json * Add missing dependency * Replace $t with i18n composable * Replace remaining usages of $t * Replace $te with i18n composable * Replace $n with i18n composable * Disable global injection in vue-i18n * Replace i18n.global.t usage where composable is already imported * Replace remaining i18n.global.t usage with composable * Replace remaining i18n.global usages with composable * Fix uploadFile emitter regression * Remove inheritAttrs: false from file-info-sidebar-detail * Hotfix v-input * Update .eslintrc.js * Fix use-preview * Fix eslint issues * Remove unused imports * Fix extension getter type * Refactor layout structure and fix tabular layout * Fix build * Fix cards layout * Hotfix vuedraggable * Dev is true again * Register export-sidebar-detail globally * Deconstruct layout state * Fix calendar layout * Fix cards/calendar layouts * Fix layout options when switching layout * Replace marked usage with md util * Use useLayout everywhere * Fix type issue * Fix codemirror dynamic imports * Fix data-fns dynamic import * Fix useLayout selection * Fix v-avatar scoped styling * Remove unused v-button-group component * Remove v-deep from v-card-actions * Replace v-deep in v-dialog * Use correct pseudoclasses for vue3 * Fix v-deep in v-field-template * Replace v-deep in v-list-item-content * Replace v-deep in v-list-item * v-deep in v-list * v-deep in v-notice * Replace breakpoint mixin * Replace v-deep in v-button * Enforce empty line before block * v-deep in v-pagination * No white lines on the inner brackets of a block please * Replace v-deep in v-select * Fix stylelint rule * Replace v-deep in v-table * Replace v-deep in v-tabs * Replace v-deep in rich text input * Replace v-deep * Replace v-deep elsewhere * Needs more stylelint tweaks, but v-deep is done * Fix translations interface * Fix date layout * Fix npm install * Fix router catch all routes * Fix layout options * Remove call to next in router guards * Remove vue router in-component guards * Refactor module route registration * Fix collections module navigation * Fix settings module navigation * Fix router-passthrough in devtools * Refactor docs export and docs route registration * Import docs routes using exported function * Remove moduleRelativeResolve vite hack * Re-add dev scripts * Fix deprecated hljs usage * Use activateContextMenu without parens * Re-add readme/license/editorconfig * Fix groupable * Fix initial docs navigation * Move global app css to app component * Fix collection navigation icon color * Fix field setup style * Fix divider icon style * Fix optional v-input slots * Use $slots direct property access * Fix docs font style * Fix docs v-deep * Fix docs add missing styles * Remove docs style margin * Fix save options color * Fix nested v-slotted usage * Fix v-button exact prop * Fix v-list-item exact prop * Fix package-lock.json * Improve useSync type * Fix route type error * Fix bookmark router links * Add redirect to route with bookmark * Fix files module folder route * Fix users module role route * Add redirect routes to files and roles sub-routes * Fix users module role active state * Replace routerPassthrough function with object * Nest file routes * Improve module bar hidden check * Remove slash from module router link * Fix files and folder navigation * Revert users route nesting * Fix buttons in list * Don't make nav item mandatory in left sidebar * Fix infinite loop in box open * Fix interactivity in v-list items * Fix docs menu jumps * Fix right click positioning * Fix missing translations * Fix close/open alignment of color interface * Fix code editor interfaces * Fix relation access in cards layout * Remove template ref from collection-or-item * Revert jest-environment-jsdom package update * Fix package-lock.json * Resolve vue3 TODO comments * Fix layout presets * Remove reactivity fix * Remove Todo3 comment * Fix icon color override * Add error message to useLayoutState * Add composable to properly transition dialog routes * Fix new collection transition * Fix add new role transition * Fix add new file transition * Fix activity item transition * Fix error type in useItems * Fix collection error dialog transition * Fix field detail transition * Fix permissions detail transition * Fix store getters types * Update package-lock * Fix preview icon color * Fix reference to selections * Fix linter warnings Co-authored-by: rijkvanzanten --- .eslintignore | 1 + .eslintrc.js | 6 +- .stylelintrc.json | 23 +- app/.browserslistrc | 2 - app/.gitignore | 25 +- app/babel.config.js | 12 - app/index.html | 149 + app/package.json | 42 +- app/public/.htaccess | 12 - app/public/index.html | 53 - app/src/app.vue | 49 +- app/src/auth.ts | 12 +- app/src/components/register.ts | 130 +- .../transition/bounce/transition-bounce.vue | 7 +- .../transition/dialog/transition-dialog.vue | 7 +- .../transition/expand/transition-expand.vue | 2 +- app/src/components/v-avatar/v-avatar.vue | 48 +- app/src/components/v-badge/v-badge.vue | 2 +- .../components/v-breadcrumb/v-breadcrumb.vue | 6 +- app/src/components/v-button-group/index.ts | 4 - .../v-button-group/v-button-group.vue | 107 - app/src/components/v-button/v-button.vue | 307 +- app/src/components/v-card/v-card-actions.vue | 10 +- app/src/components/v-card/v-card-subtitle.vue | 2 +- app/src/components/v-card/v-card-text.vue | 2 +- app/src/components/v-card/v-card-title.vue | 2 +- app/src/components/v-card/v-card.vue | 2 +- app/src/components/v-checkbox/v-checkbox.vue | 34 +- app/src/components/v-chip/v-chip.vue | 23 +- app/src/components/v-detail/v-detail.vue | 29 +- app/src/components/v-dialog/v-dialog.vue | 188 +- app/src/components/v-divider/v-divider.vue | 4 +- app/src/components/v-drawer/v-drawer.vue | 52 +- app/src/components/v-error/v-error.vue | 10 +- app/src/components/v-fancy-select/types.ts | 6 +- .../v-fancy-select/v-fancy-select.vue | 24 +- .../v-field-select/v-field-select.vue | 48 +- .../v-field-template/field-list-item.vue | 4 +- app/src/components/v-field-template/types.ts | 4 +- .../v-field-template/v-field-template.vue | 93 +- .../v-form/form-field-interface.vue | 16 +- .../components/v-form/form-field-label.vue | 15 +- app/src/components/v-form/form-field-menu.vue | 37 +- app/src/components/v-form/form-field.vue | 51 +- app/src/components/v-form/types.ts | 3 +- app/src/components/v-form/v-form.vue | 34 +- app/src/components/v-hover/v-hover.vue | 2 +- .../v-icon/custom-icons/bookmark_save.vue | 2 +- .../components/v-icon/custom-icons/box.vue | 2 +- .../v-icon/custom-icons/commit_node.vue | 2 +- .../v-icon/custom-icons/directus.vue | 2 +- .../v-icon/custom-icons/flip_horizontal.vue | 2 +- .../v-icon/custom-icons/flip_vertical.vue | 2 +- .../v-icon/custom-icons/folder_move.vue | 2 +- .../components/v-icon/custom-icons/grid_1.vue | 2 +- .../components/v-icon/custom-icons/grid_2.vue | 2 +- .../components/v-icon/custom-icons/grid_3.vue | 2 +- .../components/v-icon/custom-icons/grid_4.vue | 2 +- .../components/v-icon/custom-icons/grid_5.vue | 2 +- .../components/v-icon/custom-icons/grid_6.vue | 2 +- .../components/v-icon/custom-icons/logout.vue | 2 +- .../v-icon/custom-icons/signal_wifi_1_bar.vue | 2 +- .../v-icon/custom-icons/signal_wifi_2_bar.vue | 2 +- .../v-icon/custom-icons/signal_wifi_3_bar.vue | 2 +- app/src/components/v-icon/v-icon.vue | 19 +- app/src/components/v-info/v-info.vue | 2 +- app/src/components/v-input/v-input.vue | 76 +- .../components/v-item-group/v-item-group.vue | 9 +- app/src/components/v-item-group/v-item.vue | 2 +- app/src/components/v-list/v-list-group.vue | 12 +- .../components/v-list/v-list-item-content.vue | 38 +- .../components/v-list/v-list-item-hint.vue | 7 +- .../components/v-list/v-list-item-icon.vue | 6 +- app/src/components/v-list/v-list-item.vue | 28 +- app/src/components/v-list/v-list.vue | 40 +- app/src/components/v-menu/use-popper.ts | 6 +- app/src/components/v-menu/v-menu.vue | 75 +- app/src/components/v-notice/v-notice.vue | 68 +- app/src/components/v-overlay/v-overlay.vue | 15 +- .../components/v-pagination/v-pagination.vue | 140 +- .../circular/v-progress-circular.vue | 3 +- .../v-progress/linear/v-progress-linear.vue | 3 +- app/src/components/v-radio/v-radio.vue | 13 +- app/src/components/v-select/v-select.vue | 132 +- app/src/components/v-sheet/v-sheet.vue | 2 +- .../v-skeleton-loader/v-skeleton-loader.vue | 4 +- app/src/components/v-slider/v-slider.vue | 28 +- app/src/components/v-switch/v-switch.vue | 23 +- .../v-table/table-header/table-header.vue | 18 +- .../v-table/table-row/table-row.vue | 29 +- app/src/components/v-table/types.ts | 4 +- app/src/components/v-table/v-table.vue | 328 +- .../v-tabs/v-tab-item/v-tab-item.vue | 2 +- app/src/components/v-tabs/v-tab/v-tab.vue | 4 +- .../v-tabs/v-tabs-items/v-tabs-items.vue | 9 +- app/src/components/v-tabs/v-tabs.vue | 37 +- app/src/components/v-text-overflow.vue | 2 +- app/src/components/v-textarea/v-textarea.vue | 30 +- app/src/components/v-upload/v-upload.vue | 41 +- app/src/composables/groupable/groupable.ts | 15 +- app/src/composables/groupable/readme.md | 4 +- app/src/composables/size-class/readme.md | 2 +- app/src/composables/size-class/size-class.ts | 2 +- .../unsaved-changes/unsaved-changes.ts | 2 +- .../use-collection/use-collection.ts | 30 +- .../use-custom-selection.ts | 18 +- app/src/composables/use-dialog-route.ts | 37 + .../composables/use-element-size/readme.md | 2 +- .../use-element-size/use-element-size.ts | 11 +- .../composables/use-event-listener/readme.md | 2 +- .../use-event-listener/use-event-listener.ts | 2 +- app/src/composables/use-field-tree/readme.md | 2 +- .../use-field-tree/use-field-tree.ts | 11 +- .../use-form-fields/use-form-fields.ts | 2 +- app/src/composables/use-item/use-item.ts | 14 +- app/src/composables/use-items/use-items.ts | 51 +- app/src/composables/use-layout.ts | 41 + app/src/composables/use-permissions.ts | 8 +- app/src/composables/use-preset/use-preset.ts | 6 +- .../composables/use-scroll-distance/readme.md | 8 +- .../use-scroll-distance.ts | 8 +- app/src/composables/use-shortcut/readme.md | 2 +- .../composables/use-shortcut/use-shortcut.ts | 5 +- app/src/composables/use-sync/readme.md | 4 +- app/src/composables/use-sync/use-sync.ts | 14 +- app/src/composables/use-template-data.ts | 2 +- .../composables/use-time-from-now/readme.md | 2 +- .../use-time-from-now/use-time-from-now.ts | 2 +- app/src/composables/use-title/use-title.ts | 2 +- app/src/composables/use-window-size/readme.md | 2 +- .../use-window-size/use-window-size.ts | 2 +- app/src/constants.ts | 22 + .../directives/click-outside/click-outside.ts | 24 +- app/src/directives/focus/focus.ts | 6 +- app/src/directives/register.ts | 10 +- app/src/directives/tooltip/tooltip.ts | 23 +- app/src/displays/boolean/boolean.vue | 2 +- app/src/displays/collection/collection.vue | 2 +- app/src/displays/color/color.vue | 2 +- app/src/displays/datetime/datetime.vue | 18 +- app/src/displays/file/file.vue | 2 +- .../formatted-json-value.vue | 2 +- .../formatted-value/formatted-value.vue | 2 +- app/src/displays/icon/icon.vue | 2 +- app/src/displays/image/image.vue | 2 +- app/src/displays/index.ts | 16 +- app/src/displays/labels/labels.vue | 2 +- app/src/displays/mime-type/index.ts | 4 +- app/src/displays/rating/rating.vue | 4 +- app/src/displays/register.ts | 34 +- app/src/displays/related-values/index.ts | 2 +- app/src/displays/related-values/options.vue | 12 +- .../related-values/related-values.vue | 28 +- app/src/displays/user/user.vue | 2 +- app/src/hydrate.ts | 20 +- .../system-collection/system-collection.vue | 9 +- .../system-collections/system-collections.vue | 16 +- .../system-display-template.vue | 22 +- .../_system/system-field/system-field.vue | 16 +- .../system-interface-options.vue | 18 +- .../system-interface/system-interface.vue | 16 +- .../system-language/system-language.vue | 5 +- .../system-mfa-setup/system-mfa-setup.vue | 30 +- .../_system/system-scope/system-scope.vue | 17 +- app/src/interfaces/boolean/boolean.vue | 11 +- app/src/interfaces/datetime/datetime.vue | 127 +- app/src/interfaces/file-image/file-image.vue | 22 +- app/src/interfaces/file/file.vue | 58 +- app/src/interfaces/index.ts | 16 +- .../input-autocomplete-api.vue | 13 +- .../input-code/import-codemirror-mode.ts | 248 + app/src/interfaces/input-code/input-code.vue | 87 +- app/src/interfaces/input-hash/input-hash.vue | 19 +- .../input-multiline/input-multiline.vue | 7 +- .../interfaces/input-rich-text-html/index.ts | 7 +- .../input-rich-text-html.vue | 80 +- .../input-rich-text-html/useImage.ts | 6 +- .../input-rich-text-html/useLink.ts | 6 +- .../input-rich-text-html/useMedia.ts | 6 +- .../input-rich-text-html/useSourceCode.ts | 7 +- .../composables/use-edit.ts | 301 - .../interfaces/input-rich-text-md/edits.ts | 296 + .../input-rich-text-md/input-rich-text-md.vue | 482 +- app/src/interfaces/input/input.vue | 9 +- app/src/interfaces/input/options.vue | 2 +- app/src/interfaces/list-m2a/list-m2a.vue | 51 +- app/src/interfaces/list-m2m/list-m2m.vue | 68 +- app/src/interfaces/list-m2m/options.vue | 21 +- app/src/interfaces/list-m2m/use-actions.ts | 2 +- app/src/interfaces/list-m2m/use-edit.ts | 3 +- app/src/interfaces/list-m2m/use-preview.ts | 2 +- app/src/interfaces/list-m2m/use-relation.ts | 2 +- app/src/interfaces/list-m2m/use-selection.ts | 2 +- app/src/interfaces/list-m2m/use-sort.ts | 2 +- .../list-o2m-tree-view/item-preview.vue | 14 +- .../list-o2m-tree-view/list-o2m-tree-view.vue | 39 +- .../list-o2m-tree-view/nested-draggable.vue | 57 +- .../interfaces/list-o2m-tree-view/options.vue | 20 +- app/src/interfaces/list-o2m/list-o2m.vue | 64 +- app/src/interfaces/list-o2m/options.vue | 20 +- app/src/interfaces/list/list.vue | 55 +- app/src/interfaces/list/options.vue | 44 +- .../presentation-divider.vue | 2 +- .../presentation-links/presentation-links.vue | 2 +- .../presentation-notice.vue | 2 +- app/src/interfaces/readme.md | 2 +- app/src/interfaces/register.ts | 29 +- .../interfaces/select-color/select-color.vue | 157 +- .../select-dropdown-m2o/options.vue | 13 +- .../select-dropdown-m2o.vue | 27 +- .../select-dropdown/select-dropdown.vue | 18 +- .../interfaces/select-icon/select-icon.vue | 38 +- .../select-multiple-checkbox.vue | 35 +- .../select-multiple-dropdown.vue | 14 +- .../interfaces/select-radio/select-radio.vue | 28 +- app/src/interfaces/slider/slider.vue | 7 +- app/src/interfaces/tags/tags.vue | 24 +- app/src/interfaces/translations/options.vue | 11 +- .../interfaces/translations/translations.vue | 16 +- app/src/interfaces/types.ts | 9 +- app/src/lang/index.ts | 18 +- app/src/lang/set-language.ts | 12 +- app/src/lang/translations/en-US.yaml | 2 +- app/src/layouts/calendar/actions.vue | 46 + app/src/layouts/calendar/calendar.vue | 378 +- app/src/layouts/calendar/index.ts | 299 +- app/src/layouts/calendar/options.vue | 34 + app/src/layouts/calendar/sidebar.vue | 23 + app/src/layouts/cards/actions.vue | 44 + app/src/layouts/cards/cards.vue | 463 +- app/src/layouts/cards/components/card.vue | 24 +- app/src/layouts/cards/components/header.vue | 50 +- app/src/layouts/cards/index.ts | 278 +- app/src/layouts/cards/options.vue | 71 + app/src/layouts/cards/sidebar.vue | 24 + app/src/layouts/define.ts | 6 +- app/src/layouts/index.ts | 14 +- app/src/layouts/register.ts | 32 +- app/src/layouts/tabular/actions.vue | 46 + app/src/layouts/tabular/index.ts | 382 +- app/src/layouts/tabular/options.vue | 90 + app/src/layouts/tabular/sidebar.vue | 24 + app/src/layouts/tabular/tabular.vue | 559 +- app/src/layouts/types.ts | 30 +- app/src/main.ts | 112 +- .../activity/components/navigation.vue | 32 +- app/src/modules/activity/index.ts | 2 +- .../modules/activity/routes/collection.vue | 55 +- app/src/modules/activity/routes/item.vue | 32 +- .../components/navigation-bookmark.vue | 44 +- .../components/navigation-search.vue | 14 +- .../collections/components/navigation.vue | 45 +- .../collections/composables/use-navigation.ts | 17 +- .../collections/composables/use-search.ts | 2 +- app/src/modules/collections/index.ts | 74 +- .../collections/routes/collection-or-item.vue | 23 +- .../modules/collections/routes/collection.vue | 169 +- app/src/modules/collections/routes/item.vue | 111 +- .../modules/collections/routes/not-found.vue | 13 +- .../modules/collections/routes/overview.vue | 48 +- app/src/modules/define.ts | 14 - app/src/modules/docs/components/markdown.vue | 962 +- .../docs/components/navigation-item.vue | 2 +- .../modules/docs/components/navigation.vue | 9 +- app/src/modules/docs/index.ts | 45 +- app/src/modules/docs/routes/not-found.vue | 28 +- app/src/modules/docs/routes/static.vue | 61 +- .../modules/files/components/add-folder.vue | 23 +- .../components/file-info-sidebar-detail.vue | 67 +- .../components/folder-picker-list-item.vue | 11 +- .../files/components/folder-picker.vue | 25 +- .../files/components/navigation-folder.vue | 62 +- .../modules/files/components/navigation.vue | 27 +- .../modules/files/components/replace-file.vue | 26 +- .../modules/files/composables/use-folders.ts | 5 +- app/src/modules/files/index.ts | 68 +- app/src/modules/files/routes/add-new.vue | 30 +- app/src/modules/files/routes/collection.vue | 206 +- app/src/modules/files/routes/item.vue | 87 +- app/src/modules/files/routes/not-found.vue | 13 +- app/src/modules/index.ts | 16 +- app/src/modules/register.ts | 66 +- .../settings/components/navigation.vue | 57 +- .../settings/composables/use-project-info.ts | 2 +- app/src/modules/settings/index.ts | 200 +- .../data-model/collections/collections.vue | 74 +- .../components/collection-options.vue | 19 +- .../components/collections-filter.vue | 28 +- .../field-detail/components/actions.vue | 18 +- .../field-detail/components/display.vue | 16 +- .../field-detail/components/field.vue | 31 +- .../field-detail/components/interface.vue | 16 +- .../components/relationship-m2a.vue | 82 +- .../components/relationship-m2m.vue | 108 +- .../components/relationship-m2o.vue | 61 +- .../components/relationship-o2m.vue | 88 +- .../field-detail/components/relationship.vue | 2 +- .../field-detail/components/schema.vue | 115 +- .../field-detail/components/tabs.vue | 9 +- .../field-detail/components/translations.vue | 86 +- .../data-model/field-detail/field-detail.vue | 67 +- .../routes/data-model/field-detail/store.ts | 13 +- .../fields/components/field-select.vue | 103 +- .../fields/components/fields-management.vue | 51 +- .../routes/data-model/fields/fields.vue | 30 +- .../routes/data-model/new-collection.vue | 129 +- app/src/modules/settings/routes/not-found.vue | 13 +- .../routes/presets/collection/collection.vue | 56 +- .../presets-info-sidebar-detail.vue | 15 +- .../modules/settings/routes/presets/item.vue | 148 +- .../project-info-sidebar-detail.vue | 25 +- .../settings/routes/project/project.vue | 17 +- .../modules/settings/routes/roles/add-new.vue | 32 +- .../settings/routes/roles/collection.vue | 40 +- .../permissions-overview-header.vue | 20 +- .../components/permissions-overview-row.vue | 12 +- .../permissions-overview-toggle.vue | 30 +- .../item/components/permissions-overview.vue | 30 +- .../components/role-info-sidebar-detail.vue | 13 +- .../roles/item/composables/use-permissions.ts | 2 +- .../composables/use-update-permissions.ts | 2 +- .../settings/routes/roles/item/item.vue | 28 +- .../permissions-detail/components/actions.vue | 14 +- .../permissions-detail/components/fields.vue | 45 +- .../components/permissions.vue | 26 +- .../permissions-detail/components/presets.vue | 24 +- .../permissions-detail/components/tabs.vue | 9 +- .../components/validation.vue | 24 +- .../permissions-detail/permissions-detail.vue | 47 +- .../settings/routes/roles/public-item.vue | 11 +- .../settings/routes/webhooks/collection.vue | 70 +- .../modules/settings/routes/webhooks/item.vue | 27 +- app/src/modules/types.ts | 6 +- .../modules/users/components/navigation.vue | 17 +- .../components/user-info-sidebar-detail.vue | 26 +- .../users/composables/use-navigation.ts | 2 +- app/src/modules/users/index.ts | 27 +- app/src/modules/users/routes/collection.vue | 148 +- app/src/modules/users/routes/item.vue | 101 +- app/src/plugins.ts | 8 - app/src/router.ts | 59 +- .../routes/accept-invite/accept-invite.vue | 36 +- .../components/continue-as/continue-as.vue | 62 +- .../components/login-form/login-form.vue | 34 +- app/src/routes/login/components/sso-links.vue | 9 +- app/src/routes/login/login.vue | 17 +- app/src/routes/logout/logout.vue | 2 +- .../private-not-found/private-not-found.vue | 16 +- app/src/routes/reset-password/request.vue | 24 +- .../routes/reset-password/reset-password.vue | 19 +- app/src/routes/reset-password/reset.vue | 26 +- app/src/shims.d.ts | 10 +- app/src/stores/app.ts | 4 +- app/src/stores/collections.ts | 36 +- app/src/stores/fields.ts | 60 +- app/src/stores/latency.ts | 10 +- app/src/stores/notifications.ts | 36 +- app/src/stores/permissions.ts | 14 +- app/src/stores/presets.ts | 32 +- app/src/stores/relations.ts | 12 +- app/src/stores/requests.ts | 12 +- app/src/stores/server.ts | 8 +- app/src/stores/settings.ts | 20 +- app/src/stores/user.ts | 28 +- app/src/styles/lib/_codemirror.scss | 284 +- app/src/styles/lib/_fullcalendar.scss | 1 + app/src/styles/mixins/breakpoint.scss | 19 - app/src/styles/mixins/form-grid.scss | 11 +- app/src/styles/mixins/type-styles.scss | 4 +- app/src/types/collections.ts | 4 +- app/src/types/fields.ts | 5 +- app/src/types/notifications.ts | 6 +- app/src/utils/async-pool.ts | 22 + .../get-date-fns-locale.ts | 10 +- .../get-date-fns-locale/import-date-locale.ts | 166 + app/src/utils/is-allowed.ts | 4 +- app/src/utils/md.ts | 4 +- app/src/utils/parse-filter.ts | 4 +- app/src/utils/register-component/index.ts | 4 - app/src/utils/register-component/readme.md | 15 - .../register-component/register-component.ts | 12 - app/src/utils/render-string-template.ts | 8 +- app/src/utils/router-passthrough.ts | 8 + app/src/utils/translate-object-values.ts | 4 +- app/src/utils/unexpected-error.ts | 2 +- app/src/utils/upload-file/upload-file.ts | 4 +- app/src/utils/upload-files/upload-files.ts | 4 +- app/src/utils/user-name.ts | 2 +- .../components/bookmark-add/bookmark-add.vue | 26 +- .../bookmark-edit/bookmark-edit.vue | 26 +- .../comments-sidebar-detail/comment-input.vue | 116 +- .../comment-item-header.vue | 31 +- .../comments-sidebar-detail/comment-item.vue | 185 +- .../comments-sidebar-detail.vue | 38 +- .../components/drawer-batch/drawer-batch.vue | 48 +- .../drawer-collection/drawer-collection.vue | 87 +- .../components/drawer-item/drawer-item.vue | 72 +- .../export-sidebar-detail.vue | 21 +- .../file-lightbox/file-lightbox.vue | 23 +- .../components/file-preview/file-preview.vue | 3 +- .../filter-sidebar-detail/field-filter.vue | 23 +- .../filter-sidebar-detail/field-list-item.vue | 9 +- .../filter-sidebar-detail/filter-input.vue | 50 +- .../filter-sidebar-detail.vue | 41 +- .../components/filter-sidebar-detail/types.ts | 4 +- .../header-bar-actions/header-bar-actions.vue | 118 +- .../components/header-bar/header-bar.vue | 25 +- .../private/components/header-bar/readme.md | 2 +- .../components/image-editor/image-editor.vue | 81 +- .../latency-indicator/latency-indicator.vue | 20 +- .../layout-sidebar-detail.vue | 37 +- .../module-bar-avatar/module-bar-avatar.vue | 27 +- .../module-bar-logo/module-bar-logo.vue | 20 +- .../components/module-bar/module-bar.vue | 20 +- .../notification-dialogs.vue | 17 +- .../notification-item/notification-item.vue | 4 +- .../notifications-group.vue | 12 +- .../notifications-preview.vue | 27 +- .../components/project-info/project-info.vue | 4 +- .../refresh-sidebar-detail.vue | 25 +- .../render-display/render-display.vue | 4 +- .../render-template/render-template.vue | 11 +- .../revisions-drawer-detail/revision-item.vue | 26 +- .../revisions-drawer-detail.vue | 43 +- .../revisions-drawer-picker.vue | 26 +- .../revisions-drawer-preview.vue | 11 +- .../revisions-drawer-updates-change.vue | 2 +- .../revisions-drawer-updates.vue | 11 +- .../revisions-drawer.vue | 40 +- .../components/save-options/save-options.vue | 40 +- .../components/search-input/search-input.vue | 24 +- .../sidebar-button/sidebar-button.vue | 5 +- .../sidebar-detail-group.vue | 2 +- .../sidebar-detail/sidebar-detail.vue | 20 +- .../components/user-popover/user-popover.vue | 12 +- .../components/users-invite/users-invite.vue | 40 +- .../components/value-null/value-null.vue | 2 +- app/src/views/private/private-view.vue | 51 +- app/src/views/public/public-view.vue | 57 +- app/src/views/register.ts | 10 +- app/tsconfig.json | 2 +- app/vite.config.js | 31 + app/vue.config.js | 44 - changelog.md | 84 +- docs/.gitignore | 2 +- docs/.vuepress/config.js | 5 - docs/build.js | 33 +- docs/guides/collections.md | 5 +- docs/index.d.ts | 22 +- docs/package.json | 2 +- .../app/components/transition-bounce.md | 2 +- .../app/components/transition-dialog.md | 2 +- .../app/components/transition-expand.md | 2 +- .../app/components/v-button-group.md | 56 - docs/reference/app/components/v-checkbox.md | 4 +- docs/reference/app/components/v-detail.md | 12 +- docs/reference/app/components/v-drawer.md | 16 +- .../app/components/v-fancy-select.md | 16 +- docs/reference/app/components/v-form.md | 10 +- docs/reference/app/components/v-item-group.md | 4 +- docs/reference/app/components/v-menu.md | 2 +- docs/reference/app/components/v-table.md | 70 +- package-lock.json | 48710 ++++++++-------- packages/sdk/package.json | 4 +- 464 files changed, 34720 insertions(+), 31814 deletions(-) delete mode 100644 app/.browserslistrc delete mode 100644 app/babel.config.js create mode 100644 app/index.html delete mode 100644 app/public/.htaccess delete mode 100644 app/public/index.html delete mode 100644 app/src/components/v-button-group/index.ts delete mode 100644 app/src/components/v-button-group/v-button-group.vue create mode 100644 app/src/composables/use-dialog-route.ts create mode 100644 app/src/composables/use-layout.ts create mode 100644 app/src/interfaces/input-code/import-codemirror-mode.ts delete mode 100644 app/src/interfaces/input-rich-text-md/composables/use-edit.ts create mode 100644 app/src/interfaces/input-rich-text-md/edits.ts create mode 100644 app/src/layouts/calendar/actions.vue create mode 100644 app/src/layouts/calendar/options.vue create mode 100644 app/src/layouts/calendar/sidebar.vue create mode 100644 app/src/layouts/cards/actions.vue create mode 100644 app/src/layouts/cards/options.vue create mode 100644 app/src/layouts/cards/sidebar.vue create mode 100644 app/src/layouts/tabular/actions.vue create mode 100644 app/src/layouts/tabular/options.vue create mode 100644 app/src/layouts/tabular/sidebar.vue delete mode 100644 app/src/plugins.ts delete mode 100644 app/src/styles/mixins/breakpoint.scss create mode 100644 app/src/utils/async-pool.ts create mode 100644 app/src/utils/get-date-fns-locale/import-date-locale.ts delete mode 100644 app/src/utils/register-component/index.ts delete mode 100644 app/src/utils/register-component/readme.md delete mode 100644 app/src/utils/register-component/register-component.ts create mode 100644 app/src/utils/router-passthrough.ts create mode 100644 app/vite.config.js delete mode 100644 app/vue.config.js delete mode 100644 docs/reference/app/components/v-button-group.md diff --git a/.eslintignore b/.eslintignore index f06235c460..b98800ed6f 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1,2 +1,3 @@ node_modules dist +app/vite.config.js diff --git a/.eslintrc.js b/.eslintrc.js index a98c7f4f43..f0428946c8 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -25,7 +25,7 @@ module.exports = { overrides: [ // Parse rollup configration as module { - files: ['rollup.config.js'], + files: ['rollup.config.js', 'vite.config.js'], parserOptions: { sourceType: 'module', }, @@ -38,7 +38,7 @@ module.exports = { parser: '@typescript-eslint/parser', }, extends: [ - 'plugin:vue/essential', + 'plugin:vue/vue3-essential', 'eslint:recommended', 'plugin:@typescript-eslint/recommended', 'plugin:prettier-vue/recommended', @@ -58,8 +58,6 @@ module.exports = { '@typescript-eslint/no-non-null-assertion': 0, // Allow unused variables when they begin with an underscore '@typescript-eslint/no-unused-vars': ['warn', { argsIgnorePattern: '^_' }], - // Disable validity checks on v-slot directive (consider to enable this rule later on) - 'vue/valid-v-slot': 0, }, }, ], diff --git a/.stylelintrc.json b/.stylelintrc.json index 2d65959985..541eb314fd 100644 --- a/.stylelintrc.json +++ b/.stylelintrc.json @@ -1,29 +1,22 @@ { - "extends": [ - "stylelint-config-standard", - "stylelint-config-rational-order", - "stylelint-config-prettier" - ], + "extends": ["stylelint-config-standard", "stylelint-config-rational-order", "stylelint-config-prettier"], "plugins": ["stylelint-order", "stylelint-scss"], "rules": { "indentation": "tab", - "order/order": [ - "dollar-variables", - "custom-properties", - "declarations", - "at-variables", - "rules" - ], + "order/order": ["dollar-variables", "custom-properties", "declarations", "at-variables", "rules"], "at-rule-no-unknown": null, "scss/at-rule-no-unknown": true, - "selector-pseudo-element-no-unknown": [ + "selector-pseudo-class-no-unknown": [ true, { - "ignorePseudoElements": ["v-deep"] + "ignorePseudoClasses": ["deep", "slotted", "global"] } ], "string-quotes": "single", "length-zero-no-unit": null, - "no-descending-specificity": true + "no-descending-specificity": true, + "rule-empty-line-before": ["always", { "except": "first-nested" }], + "block-closing-brace-empty-line-before": "never", + "block-opening-brace-newline-after": "always-multi-line" } } diff --git a/app/.browserslistrc b/app/.browserslistrc deleted file mode 100644 index d6471a38cc..0000000000 --- a/app/.browserslistrc +++ /dev/null @@ -1,2 +0,0 @@ -> 1% -last 2 versions diff --git a/app/.gitignore b/app/.gitignore index e282d9bb44..53f7466aca 100644 --- a/app/.gitignore +++ b/app/.gitignore @@ -1,22 +1,5 @@ node_modules -/dist -coverage -public/img/docs - -# local env files -.env.local -.env.*.local - -# Log files -npm-debug.log* -yarn-debug.log* -yarn-error.log* - -# Editor directories and files -.idea -.vscode -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw? +.DS_Store +dist +dist-ssr +*.local \ No newline at end of file diff --git a/app/babel.config.js b/app/babel.config.js deleted file mode 100644 index 7da92c5fa0..0000000000 --- a/app/babel.config.js +++ /dev/null @@ -1,12 +0,0 @@ -module.exports = { - presets: [ - [ - '@vue/app', - { - targets: { esmodules: true }, - polyfills: [], - }, - ], - ], - plugins: ['@babel/plugin-proposal-optional-chaining'], -}; diff --git a/app/index.html b/app/index.html new file mode 100644 index 0000000000..8e0471e0e8 --- /dev/null +++ b/app/index.html @@ -0,0 +1,149 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Loading… + + + + + +
+ +
+ + + + + diff --git a/app/package.json b/app/package.json index e432571d65..f08a56124b 100644 --- a/app/package.json +++ b/app/package.json @@ -18,11 +18,12 @@ "access": "public" }, "scripts": { + "dev": "vite", + "build": "vite build", + "serve": "vite preview", "copy-docs-images": "rimraf public/img/docs && copyfiles -u 3 \"../docs/assets/**/*\" \"public/img/docs\" --verbose", "predev": "npm run copy-docs-images", "prebuild": "npm run copy-docs-images", - "dev": "vue-cli-service serve", - "build": "vue-cli-service build", "prepublishOnly": "npm run build" }, "gitHead": "24621f3934dc77eb23441331040ed13c676ceffd", @@ -34,9 +35,10 @@ "@fullcalendar/interaction": "^5.7.2", "@fullcalendar/list": "^5.7.2", "@fullcalendar/timegrid": "^5.7.2", - "@popperjs/core": "^2.9.1", + "@popperjs/core": "^2.9.2", + "@rollup/plugin-yaml": "^3.0.0", "@sindresorhus/slugify": "^2.1.0", - "@tinymce/tinymce-vue": "^3.2.8", + "@tinymce/tinymce-vue": "^4.0.0", "@types/base-64": "^1.0.0", "@types/bytes": "^3.1.0", "@types/codemirror": "^0.0.109", @@ -49,14 +51,13 @@ "@types/mime-types": "^2.1.0", "@types/ms": "^0.7.31", "@types/qrcode": "^1.4.0", - "@types/tiny-async-pool": "^1.0.0", + "@vitejs/plugin-vue": "^1.2.1", "@vue/cli-plugin-babel": "^4.5.13", "@vue/cli-plugin-router": "^4.5.8", "@vue/cli-plugin-typescript": "^4.5.13", "@vue/cli-plugin-vuex": "^4.5.8", "@vue/cli-service": "^4.5.13", - "@vue/composition-api": "^0.6.7", - "@vue/test-utils": "^1.2.0", + "@vue/compiler-sfc": "^3.0.5", "axios": "^0.21.1", "base-64": "^1.0.0", "codemirror": "^5.61.1", @@ -67,33 +68,24 @@ "escape-string-regexp": "^5.0.0", "front-matter": "^4.0.2", "html-entities": "^2.3.2", - "joi": "^17.4.0", "jsonlint-mod": "^1.7.6", "marked": "^2.0.7", "micromustache": "^8.0.3", + "mime": "^2.5.2", "mitt": "^2.1.0", "nanoid": "^3.1.23", - "pinia": "^0.0.7", - "portal-vue": "^2.1.7", + "pinia": "^2.0.0-alpha.13", "prettier": "^2.3.1", "pretty-ms": "^7.0.1", "qrcode": "^1.4.4", - "raw-loader": "^4.0.2", - "resize-observer": "^1.0.2", "rimraf": "^3.0.2", "sass": "^1.34.1", - "sass-loader": "^9.0.2", - "stylelint": "^13.13.1", - "tiny-async-pool": "^1.2.0", - "tinymce": "^5.8.1", - "vue": "^2.6.12", - "vue-cli-plugin-yaml": "^1.0.2", - "vue-i18n": "^8.24.4", - "vue-loader": "^15.9.7", - "vue-router": "^3.4.8", - "vue-template-compiler": "^2.6.10", - "vuedraggable": "^2.24.3", - "vuepress": "^1.5.2", - "webpack-assets-manifest": "^3.1.1" + "tinymce": "^5.7.1", + "typescript": "^4.2.4", + "vite": "^2.1.5", + "vue": "^3.0.5", + "vue-i18n": "^9.1.6", + "vue-router": "^4.0.6", + "vuedraggable": "^4.0.1" } } diff --git a/app/public/.htaccess b/app/public/.htaccess deleted file mode 100644 index ae945dc0c2..0000000000 --- a/app/public/.htaccess +++ /dev/null @@ -1,12 +0,0 @@ - - - RewriteEngine on - - # If file or directory exists behave normally - RewriteCond %{REQUEST_FILENAME} !-f - RewriteCond %{REQUEST_FILENAME} !-d - - # Otherwise use index.html (you might need to update path) - RewriteRule . /index.html [L,QSA] - - diff --git a/app/public/index.html b/app/public/index.html deleted file mode 100644 index fc9b64f9be..0000000000 --- a/app/public/index.html +++ /dev/null @@ -1,53 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Loading… - - - - -
- - - diff --git a/app/src/app.vue b/app/src/app.vue index 213997f66e..41daa83313 100644 --- a/app/src/app.vue +++ b/app/src/app.vue @@ -1,13 +1,13 @@ - - - - diff --git a/app/src/components/v-button/v-button.vue b/app/src/components/v-button/v-button.vue index 22312d8309..344d313deb 100644 --- a/app/src/components/v-button/v-button.vue +++ b/app/src/components/v-button/v-button.vue @@ -4,8 +4,8 @@ -import { defineComponent, computed, PropType } from '@vue/composition-api'; -import { Location } from 'vue-router'; +import { defineComponent, computed, PropType } from 'vue'; +import { RouteLocation } from 'vue-router'; import useSizeClass, { sizeProps } from '@/composables/size-class'; import { useGroupable } from '@/composables/groupable'; import { notEmpty } from '@/utils/is-empty'; export default defineComponent({ + emits: ['click'], props: { autofocus: { type: Boolean, @@ -85,7 +86,7 @@ export default defineComponent({ default: false, }, to: { - type: [String, Object] as PropType, + type: [String, Object] as PropType, default: null, }, href: { @@ -135,7 +136,7 @@ export default defineComponent({ const { active, toggle } = useGroupable({ value: props.value, - group: 'button-group', + group: 'item-group', }); return { sizeClass, onClick, component, active, toggle }; @@ -150,8 +151,8 @@ export default defineComponent({ }); - - diff --git a/app/src/components/v-card/v-card-actions.vue b/app/src/components/v-card/v-card-actions.vue index c17a11bc55..3e833e2e1e 100644 --- a/app/src/components/v-card/v-card-actions.vue +++ b/app/src/components/v-card/v-card-actions.vue @@ -1,15 +1,15 @@ - @@ -177,13 +181,13 @@ body { } &.dense { - ::v-deep .v-text-overflow { + :deep(.v-text-overflow) { color: var(--foreground-normal); } &:hover, &.active { - ::v-deep .v-text-overflow { + :deep(.v-text-overflow) { color: var(--primary); } } diff --git a/app/src/components/v-list/v-list.vue b/app/src/components/v-list/v-list.vue index 89913928c8..fb8bb2dc9f 100644 --- a/app/src/components/v-list/v-list.vue +++ b/app/src/components/v-list/v-list.vue @@ -5,16 +5,13 @@ - - diff --git a/app/src/components/v-menu/use-popper.ts b/app/src/components/v-menu/use-popper.ts index 64caa37981..8fede4e67f 100644 --- a/app/src/components/v-menu/use-popper.ts +++ b/app/src/components/v-menu/use-popper.ts @@ -1,3 +1,4 @@ +import { createPopper } from '@popperjs/core/lib/popper-lite'; import { Instance, Modifier, Placement } from '@popperjs/core'; import arrow from '@popperjs/core/lib/modifiers/arrow'; import computeStyles from '@popperjs/core/lib/modifiers/computeStyles'; @@ -6,8 +7,7 @@ import flip from '@popperjs/core/lib/modifiers/flip'; import offset from '@popperjs/core/lib/modifiers/offset'; import popperOffsets from '@popperjs/core/lib/modifiers/popperOffsets'; import preventOverflow from '@popperjs/core/lib/modifiers/preventOverflow'; -import { createPopper } from '@popperjs/core/lib/popper-base'; -import { onUnmounted, ref, Ref, watch } from '@vue/composition-api'; +import { onUnmounted, ref, Ref, watch } from 'vue'; export function usePopper( reference: Ref, @@ -53,7 +53,7 @@ export function usePopper( popperInstance.value.forceUpdate(); // eslint-disable-next-line @typescript-eslint/no-non-null-assertion observer.observe(popper.value!, { - attributes: true, + attributes: false, childList: true, characterData: true, subtree: true, diff --git a/app/src/components/v-menu/v-menu.vue b/app/src/components/v-menu/v-menu.vue index 6c1baebf16..022381411c 100644 --- a/app/src/components/v-menu/v-menu.vue +++ b/app/src/components/v-menu/v-menu.vue @@ -18,53 +18,54 @@ /> - -
-
-
- + + +
+
+
+ +
-
- +
+
- - - diff --git a/app/src/components/v-progress/circular/v-progress-circular.vue b/app/src/components/v-progress/circular/v-progress-circular.vue index 1f17dab46a..8d238d3cfa 100644 --- a/app/src/components/v-progress/circular/v-progress-circular.vue +++ b/app/src/components/v-progress/circular/v-progress-circular.vue @@ -23,10 +23,11 @@ - - diff --git a/app/src/components/v-sheet/v-sheet.vue b/app/src/components/v-sheet/v-sheet.vue index 8a9a2c0273..5be539f32b 100644 --- a/app/src/components/v-sheet/v-sheet.vue +++ b/app/src/components/v-sheet/v-sheet.vue @@ -5,7 +5,7 @@ - - - diff --git a/app/src/components/v-text-overflow.vue b/app/src/components/v-text-overflow.vue index b98af618e4..9de4457540 100644 --- a/app/src/components/v-text-overflow.vue +++ b/app/src/components/v-text-overflow.vue @@ -5,7 +5,7 @@ diff --git a/app/src/displays/related-values/related-values.vue b/app/src/displays/related-values/related-values.vue index 3961a4b024..86e6960dea 100644 --- a/app/src/displays/related-values/related-values.vue +++ b/app/src/displays/related-values/related-values.vue @@ -18,7 +18,7 @@ - + @@ -26,15 +26,15 @@ - + diff --git a/app/src/interfaces/_system/system-display-template/system-display-template.vue b/app/src/interfaces/_system/system-display-template/system-display-template.vue index 1f78ae9e24..eb7f2ca1e4 100644 --- a/app/src/interfaces/_system/system-display-template/system-display-template.vue +++ b/app/src/interfaces/_system/system-display-template/system-display-template.vue @@ -1,18 +1,26 @@ diff --git a/app/src/interfaces/_system/system-field/system-field.vue b/app/src/interfaces/_system/system-field/system-field.vue index 0b18b6a4bd..862e8da941 100644 --- a/app/src/interfaces/_system/system-field/system-field.vue +++ b/app/src/interfaces/_system/system-field/system-field.vue @@ -1,15 +1,15 @@ - diff --git a/app/src/modules/settings/composables/use-project-info.ts b/app/src/modules/settings/composables/use-project-info.ts index 70f0539961..ca748dd18b 100644 --- a/app/src/modules/settings/composables/use-project-info.ts +++ b/app/src/modules/settings/composables/use-project-info.ts @@ -1,7 +1,7 @@ import api from '@/api'; -import { computed, ref, Ref } from '@vue/composition-api'; import bytes from 'bytes'; import prettyMS from 'pretty-ms'; +import { computed, ref, Ref } from 'vue'; type ServerInfo = { directus: { diff --git a/app/src/modules/settings/index.ts b/app/src/modules/settings/index.ts index 16b1da831d..79cfbf0f1a 100644 --- a/app/src/modules/settings/index.ts +++ b/app/src/modules/settings/index.ts @@ -2,7 +2,8 @@ import api from '@/api'; import { useCollection } from '@/composables/use-collection'; import { defineModule } from '@/modules/define'; import { useCollectionsStore, useFieldsStore } from '@/stores'; -import { ref } from '@vue/composition-api'; +import RouterPass from '@/utils/router-passthrough'; +import { ref } from 'vue'; import Collections from './routes/data-model/collections/collections.vue'; import FieldDetail from './routes/data-model/field-detail/field-detail.vue'; import Fields from './routes/data-model/fields/fields.vue'; @@ -26,130 +27,151 @@ export default defineModule({ color: 'var(--warning)', routes: [ { - path: '/', - redirect: '/data-model', + path: '', + redirect: '/settings/data-model', }, { name: 'settings-project', - path: '/project', + path: 'project', component: Project, }, { - name: 'settings-collections', - path: '/data-model', - component: Collections, - beforeEnter(to, from, next) { - const collectionsStore = useCollectionsStore(); - collectionsStore.hydrate(); - next(); - }, + path: 'data-model', + component: RouterPass, children: [ { - path: '+', - name: 'settings-add-new', - components: { - add: NewCollection, + name: 'settings-collections', + path: '', + component: Collections, + beforeEnter() { + const collectionsStore = useCollectionsStore(); + collectionsStore.hydrate(); }, + children: [ + { + path: '+', + name: 'settings-add-new', + components: { + add: NewCollection, + }, + }, + ], }, - ], - }, - { - name: 'settings-fields', - path: '/data-model/:collection', - component: Fields, - async beforeEnter(to, from, next) { - const { info } = useCollection(ref(to.params.collection)); - const fieldsStore = useFieldsStore(); + { + name: 'settings-fields', + path: ':collection', + component: Fields, + async beforeEnter(to) { + const { info } = useCollection(ref(to.params.collection as string)); + const fieldsStore = useFieldsStore(); - if (!info.value?.meta) { - await api.patch(`/collections/${to.params.collection}`, { meta: {} }); - } + if (!info.value?.meta) { + await api.patch(`/collections/${to.params.collection}`, { meta: {} }); + } - fieldsStore.hydrate(); - - next(); - }, - props: (route) => ({ - collection: route.params.collection, - field: route.params.field, - type: route.query.type, - }), - children: [ - { - path: ':field', - name: 'settings-fields-field', - components: { - field: FieldDetail, + fieldsStore.hydrate(); }, + props: (route) => ({ + collection: route.params.collection, + field: route.params.field, + type: route.query.type, + }), + children: [ + { + path: ':field', + name: 'settings-fields-field', + components: { + field: FieldDetail, + }, + }, + ], }, ], }, { - name: 'settings-roles-collection', - path: '/roles', - component: RolesCollection, + path: 'roles', + component: RouterPass, children: [ { - path: '+', - name: 'settings-add-new-role', - components: { - add: NewRole, - }, + name: 'settings-roles-collection', + path: '', + component: RolesCollection, + children: [ + { + path: '+', + name: 'settings-add-new-role', + components: { + add: NewRole, + }, + }, + ], + }, + { + path: 'public', + component: RolesPublicItem, + props: true, + children: [ + { + path: ':permissionKey', + components: { + permissionsDetail: RolesPermissionsDetail, + }, + }, + ], + }, + { + name: 'settings-roles-item', + path: ':primaryKey', + component: RolesItem, + props: true, + children: [ + { + path: ':permissionKey', + components: { + permissionsDetail: RolesPermissionsDetail, + }, + }, + ], }, ], }, { - path: '/roles/public', - component: RolesPublicItem, - props: true, + path: 'presets', + component: RouterPass, children: [ { - path: ':permissionKey', - components: { - permissionsDetail: RolesPermissionsDetail, - }, + name: 'settings-presets-collection', + path: '', + component: PresetsCollection, + }, + { + name: 'settings-presets-item', + path: ':id', + component: PresetsItem, + props: true, }, ], }, { - name: 'settings-roles-item', - path: '/roles/:primaryKey', - component: RolesItem, - props: true, + path: 'webhooks', + component: RouterPass, children: [ { - path: ':permissionKey', - components: { - permissionsDetail: RolesPermissionsDetail, - }, + name: 'settings-webhooks-collection', + path: '', + component: WebhooksCollection, + }, + { + name: 'settings-webhooks-item', + path: ':primaryKey', + component: WebhooksItem, + props: true, }, ], }, - { - name: 'settings-presets-collection', - path: '/presets', - component: PresetsCollection, - }, - { - name: 'settings-presets-item', - path: '/presets/:id', - component: PresetsItem, - props: true, - }, - { - name: 'settings-webhooks-collection', - path: '/webhooks', - component: WebhooksCollection, - }, - { - name: 'settings-webhooks-item', - path: '/webhooks/:primaryKey', - component: WebhooksItem, - props: true, - }, { name: 'settings-not-found', - path: '*', + path: ':_(.+)+', component: NotFound, }, ], diff --git a/app/src/modules/settings/routes/data-model/collections/collections.vue b/app/src/modules/settings/routes/data-model/collections/collections.vue index 2ec4e33c52..f33d53dc16 100644 --- a/app/src/modules/settings/routes/data-model/collections/collections.vue +++ b/app/src/modules/settings/routes/data-model/collections/collections.vue @@ -1,6 +1,6 @@
- - {{ $t('no_collections_copy_admin') }} + + {{ t('no_collections_copy_admin') }} - @@ -22,20 +22,20 @@
- + - {{ $t('edit') }} + {{ t('edit') }} - + - {{ $t('delete') }} + {{ t('delete') }} @@ -43,15 +43,15 @@ - {{ $t('delete_comment') }} - {{ $t('delete_are_you_sure') }} + {{ t('delete_comment') }} + {{ t('delete_are_you_sure') }} - {{ $t('cancel') }} + {{ t('cancel') }} - {{ $t('delete') }} + {{ t('delete') }} @@ -60,10 +60,10 @@ - diff --git a/app/src/views/private/components/header-bar/header-bar.vue b/app/src/views/private/components/header-bar/header-bar.vue index 4deb4a6aa6..5594e984db 100644 --- a/app/src/views/private/components/header-bar/header-bar.vue +++ b/app/src/views/private/components/header-bar/header-bar.vue @@ -1,14 +1,14 @@ diff --git a/app/src/views/private/components/module-bar-avatar/module-bar-avatar.vue b/app/src/views/private/components/module-bar-avatar/module-bar-avatar.vue index 4e00162fce..cf8b60314b 100644 --- a/app/src/views/private/components/module-bar-avatar/module-bar-avatar.vue +++ b/app/src/views/private/components/module-bar-avatar/module-bar-avatar.vue @@ -9,19 +9,19 @@ x-large :class="{ show: hover }" class="sign-out" - v-tooltip.right="$t('sign_out')" + v-tooltip.right="t('sign_out')" > - {{ $t('sign_out_confirm') }} + {{ t('sign_out_confirm') }} - {{ $t('cancel') }} + {{ t('cancel') }} - {{ $t('sign_out') }} + {{ t('sign_out') }} @@ -36,26 +36,29 @@