From be84bd188b685993b26247f00ed11f75c906f737 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Sat, 4 Jan 2020 17:52:59 +0800 Subject: [PATCH 0001/2165] =?UTF-8?q?doc:=20=E6=B5=8B=E8=AF=95=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E5=8F=B7=E4=B9=9F=E4=BC=9A=E6=98=BE=E7=A4=BA=E5=9C=A8?= =?UTF-8?q?=20badge=20=E4=B8=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 74ed21aa5..b786bc396 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Zealot -[![GitHub release](https://img.shields.io/github/release/getzealot/zealot.svg)](https://github.com/getzealot/zealot/releases) +[![GitHub release](https://img.shields.io/github/v/release/getzealot/zealot?include_prereleases)](https://github.com/getzealot/zealot/releases) [![Docker Pulls](https://img.shields.io/docker/pulls/icyleafcn/zealot.svg)](https://hub.docker.com/r/icyleafcn/zealot/) [![Maintainability](https://codeclimate.com/github/getzealot/zealot/badges/gpa.svg)](https://codeclimate.com/github/getzealot/zealot) [![License](https://img.shields.io/github/license/getzealot/zealot)](LICENSE) From 7dc50aadf723ef89b160dde64b0bb4c188d92ba7 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 8 Jan 2020 11:00:59 +0800 Subject: [PATCH 0002/2165] =?UTF-8?q?feat(api):=20API=20=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=E5=BA=94=E7=94=A8=E6=B2=A1=E6=9C=89=20channel=5Fkey=20?= =?UTF-8?q?=E4=BC=9A=E8=87=AA=E5=8A=A8=E5=88=9B=E5=BB=BA=E5=BA=94=E7=94=A8?= =?UTF-8?q?=E3=80=81=E7=B1=BB=E5=9E=8B=E5=92=8C=E6=B8=A0=E9=81=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/api/apps/upload_controller.rb | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/app/controllers/api/apps/upload_controller.rb b/app/controllers/api/apps/upload_controller.rb index 282adf023..e0fe5fed2 100644 --- a/app/controllers/api/apps/upload_controller.rb +++ b/app/controllers/api/apps/upload_controller.rb @@ -2,7 +2,6 @@ class Api::Apps::UploadController < Api::BaseController before_action :validate_user_token - before_action :validate_channel_key # Upload an App # @@ -87,13 +86,8 @@ def create_release(channel) end end - def decode_icon(icon_file) - Pngdefry.defry icon_file, icon_file - File.open icon_file - end - def with_channel(scheme) - scheme.channels.create! channel_params do |channel| + @channel = scheme.channels.create! channel_params do |channel| channel.name = app_info.os channel.device_type = app_info.os end @@ -128,6 +122,11 @@ def parse_scheme_name end end + def decode_icon(icon_file) + Pngdefry.defry icon_file, icon_file + File.open icon_file + end + def release_params params.permit(:file, :release_type, :source, :branch, :git_commit, :ci_url, :changelog, :devices) end From 6fbb2b5df76efe6669bb7968fc74c529d7350561 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 8 Jan 2020 11:02:20 +0800 Subject: [PATCH 0003/2165] =?UTF-8?q?refactor(api):=20=E7=BA=A6=E6=9D=9F?= =?UTF-8?q?=E5=8F=AA=E6=9C=89=E5=86=99=E6=8E=A5=E5=8F=A3=E6=89=8D=E9=9C=80?= =?UTF-8?q?=E8=A6=81=E4=BC=A0=20token=20=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/api/apps/latest_controller.rb | 1 - app/controllers/api/apps/version_exist_controller.rb | 1 - app/controllers/api/apps/versions_controller.rb | 1 - app/controllers/api/debug_files/download_controller.rb | 1 - app/controllers/api/debug_files_controller.rb | 3 +-- app/jobs/app_web_hook_job.rb | 2 ++ app/jobs/application_job.rb | 1 - 7 files changed, 3 insertions(+), 7 deletions(-) diff --git a/app/controllers/api/apps/latest_controller.rb b/app/controllers/api/apps/latest_controller.rb index c78f011ec..06d961489 100644 --- a/app/controllers/api/apps/latest_controller.rb +++ b/app/controllers/api/apps/latest_controller.rb @@ -1,7 +1,6 @@ # frozen_string_literal: true class Api::Apps::LatestController < Api::BaseController - before_action :validate_user_token before_action :validate_channel_key # GET /api/apps/latest diff --git a/app/controllers/api/apps/version_exist_controller.rb b/app/controllers/api/apps/version_exist_controller.rb index 39a006da0..1bfeb7188 100644 --- a/app/controllers/api/apps/version_exist_controller.rb +++ b/app/controllers/api/apps/version_exist_controller.rb @@ -1,7 +1,6 @@ # frozen_string_literal: true class Api::Apps::VersionExistController < Api::BaseController - before_action :validate_user_token before_action :validate_channel_key # GET /api/apps/version_exist diff --git a/app/controllers/api/apps/versions_controller.rb b/app/controllers/api/apps/versions_controller.rb index 2bd85ea17..24836fc2a 100644 --- a/app/controllers/api/apps/versions_controller.rb +++ b/app/controllers/api/apps/versions_controller.rb @@ -1,5 +1,4 @@ class Api::Apps::VersionsController < Api::BaseController - before_action :validate_user_token before_action :validate_channel_key # GET /api/apps/versions diff --git a/app/controllers/api/debug_files/download_controller.rb b/app/controllers/api/debug_files/download_controller.rb index 782b9b6ee..eef1c8963 100644 --- a/app/controllers/api/debug_files/download_controller.rb +++ b/app/controllers/api/debug_files/download_controller.rb @@ -1,7 +1,6 @@ # frozen_string_literal: true class Api::DebugFiles::DownloadController < Api::BaseController - before_action :validate_user_token before_action :validate_channel_key, only: [:show] # GET /api/debug_files/download diff --git a/app/controllers/api/debug_files_controller.rb b/app/controllers/api/debug_files_controller.rb index e4d328546..f9d0332d2 100644 --- a/app/controllers/api/debug_files_controller.rb +++ b/app/controllers/api/debug_files_controller.rb @@ -3,11 +3,10 @@ require 'app-info' class Api::DebugFilesController < Api::BaseController - before_action :validate_user_token + before_action :validate_user_token, only: [:create] before_action :validate_channel_key, only: [:index, :create] before_action :set_debug_file, only: [:show, :destroy] - # GET /api/debug_files def index @debug_files = DebugFile.where(app: @channel.app) diff --git a/app/jobs/app_web_hook_job.rb b/app/jobs/app_web_hook_job.rb index cda484d81..fa59ac3fd 100644 --- a/app/jobs/app_web_hook_job.rb +++ b/app/jobs/app_web_hook_job.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + class AppWebHookJob < ApplicationJob include Rails.application.routes.url_helpers include ActionView::Helpers::DateHelper diff --git a/app/jobs/application_job.rb b/app/jobs/application_job.rb index 7f1c08968..34bb3d8a2 100644 --- a/app/jobs/application_job.rb +++ b/app/jobs/application_job.rb @@ -1,5 +1,4 @@ # frozen_string_literal: true -# frozen_string_literal: true class ApplicationJob < ActiveJob::Base include ActiveJob::Status From 63292fad9dd019d3b4f0e608c847bd7ff3985967 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 8 Jan 2020 11:04:00 +0800 Subject: [PATCH 0004/2165] =?UTF-8?q?fix(api):=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=20app=20=E6=9C=80=E6=96=B0=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E4=BC=A0=E5=8F=82=E7=89=88=E6=9C=AC=E5=8F=B7=E6=B2=A1=E6=9C=89?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E8=BF=87=E4=B9=9F=E4=BC=9A=E6=AD=A3=E5=B8=B8?= =?UTF-8?q?=E8=BF=94=E5=9B=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/channel.rb | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/app/models/channel.rb b/app/models/channel.rb index f821e1c26..90ef07eda 100644 --- a/app/models/channel.rb +++ b/app/models/channel.rb @@ -26,10 +26,9 @@ def recently_releases(limit = 10) end def find_since_version(release_version, build_version) - source_release = releases.find_by(release_version: release_version, build_version: build_version) - return [] unless source_release - - releases.where('id > ?', source_release.id).order(id: :desc) + releases.where("release_version >= '#{release_version}'") + .where("build_version > '#{build_version}'") + .order(id: :desc) end def app From 174a185acd7b59b0a2d88978fb1b34c1c427ea91 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 8 Jan 2020 11:22:46 +0800 Subject: [PATCH 0005/2165] =?UTF-8?q?fix(api):=20=E4=B8=8D=E5=B8=A6=20chan?= =?UTF-8?q?nel=5Fkey=20=E4=B8=8A=E4=BC=A0=E5=A4=9A=E6=AC=A1=E4=BC=9A?= =?UTF-8?q?=E7=9B=91=E6=B5=8B=E7=8E=B0=E6=9C=89=E5=BA=94=E7=94=A8=E3=80=81?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E5=92=8C=E6=B8=A0=E9=81=93=E6=98=AF=E5=90=A6?= =?UTF-8?q?=E5=AD=98=E5=9C=A8=E4=B8=8D=E5=86=8D=E9=87=8D=E5=A4=8D=E5=88=9B?= =?UTF-8?q?=E5=BB=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/api/apps/upload_controller.rb | 25 ++++++------------- 1 file changed, 7 insertions(+), 18 deletions(-) diff --git a/app/controllers/api/apps/upload_controller.rb b/app/controllers/api/apps/upload_controller.rb index e0fe5fed2..2e25a2b17 100644 --- a/app/controllers/api/apps/upload_controller.rb +++ b/app/controllers/api/apps/upload_controller.rb @@ -71,23 +71,12 @@ def with_updated_channel end def create_release(channel) - @release = channel.releases.create! release_params do |release| - release.bundle_id = app_info.bundle_id - release.release_version = app_info.release_version - release.build_version = app_info.build_version - release.release_type ||= app_info.release_type if app_info.os == AppInfo::Platform::IOS - release.icon = decode_icon app_info.icons.last[:file] - - if app_info.os == AppInfo::Platform::IOS && - app_info.release_type == AppInfo::IPA::ExportType::ADHOC && - (devices = app_info.devices) && !device.blank? - release.devices = devices - end - end + @release = channel.releases.upload_file release_params + @release.save! end def with_channel(scheme) - @channel = scheme.channels.create! channel_params do |channel| + @channel = scheme.channels.find_or_create_by channel_params do |channel| channel.name = app_info.os channel.device_type = app_info.os end @@ -95,14 +84,14 @@ def with_channel(scheme) def and_scheme(app) name = parse_scheme_name || '测试版' - app.schemes.create! name: name + app.schemes.find_or_create_by name: name end def and_app - permitted = params.permit(:name) - permitted[:name] = app_info.name unless permitted.key?(:name) + permitted = params.permit :name + permitted[:name] ||= app_info.name - App.create! permitted do |app| + App.find_or_create_by permitted do |app| app.users << @user end end From 054ff2b249fb00fa8aaca4db6f238c8212631e57 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 8 Jan 2020 11:23:23 +0800 Subject: [PATCH 0006/2165] =?UTF-8?q?style(dashboard):=20=E5=BC=B1?= =?UTF-8?q?=E5=8C=96=E6=9C=80=E8=BF=91=E4=B8=8A=E4=BC=A0=E6=97=A5=E6=9C=9F?= =?UTF-8?q?=E7=9A=84=E8=83=8C=E6=99=AF=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/dashboards/_recently_upload.html.slim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/dashboards/_recently_upload.html.slim b/app/views/dashboards/_recently_upload.html.slim index ce7afad48..d541725d5 100644 --- a/app/views/dashboards/_recently_upload.html.slim +++ b/app/views/dashboards/_recently_upload.html.slim @@ -19,7 +19,7 @@ section ruby: loop_date = release.created_at .time-label - span class="bg-maroon" + span.bg-olive = release.created_at.strftime('%Y-%m-%d') div From 9a79a4b6eae78ec929dbd588427e80995434b720 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 8 Jan 2020 11:39:15 +0800 Subject: [PATCH 0007/2165] =?UTF-8?q?feat(web):=20=E6=8F=90=E4=BE=9B?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E5=85=B7=E4=BD=93=E6=B8=A0=E9=81=93=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0=E7=89=88=E6=9C=AC=E7=9A=84=E5=88=97=E8=A1=A8=E5=92=8C?= =?UTF-8?q?=E5=88=A0=E9=99=A4=E7=89=88=E6=9C=AC=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../channels/versions_controller.rb | 8 +++++ app/controllers/releases_controller.rb | 7 +++- app/views/channels/_versions.html.slim | 10 ++++-- app/views/channels/versions/_list.slim | 34 +++++++++++++++++++ app/views/channels/versions/index.slim | 18 ++++++++++ app/views/channels/versions/show.html.slim | 30 +--------------- config/routes.rb | 2 +- 7 files changed, 76 insertions(+), 33 deletions(-) create mode 100644 app/views/channels/versions/_list.slim create mode 100644 app/views/channels/versions/index.slim diff --git a/app/controllers/channels/versions_controller.rb b/app/controllers/channels/versions_controller.rb index 2cd439168..1c1a6df50 100644 --- a/app/controllers/channels/versions_controller.rb +++ b/app/controllers/channels/versions_controller.rb @@ -1,6 +1,14 @@ class Channels::VersionsController < ApplicationController before_action :set_channel + def index + @title = @channel.app_name + @releases = @channel.releases + .order(id: :desc) + .page(params.fetch(:page, 1)) + .per(params.fetch(:per_page, 10)) + end + def show @version = params[:id] @title = @channel.app_name diff --git a/app/controllers/releases_controller.rb b/app/controllers/releases_controller.rb index 7cc34aab8..c8c35d813 100644 --- a/app/controllers/releases_controller.rb +++ b/app/controllers/releases_controller.rb @@ -7,7 +7,7 @@ class ReleasesController < ApplicationController before_action :check_user_logged_in, except: [:show, :auth] before_action :set_channel - before_action :set_release, only: [:show, :auth] + before_action :set_release, only: [:show, :auth, :destroy] def show redirect_to new_user_session_path unless !wechat? || @channel.password.blank? || !user_signed_in? @@ -33,6 +33,11 @@ def create redirect_to channel_release_url(@channel, @release), notice: '应用上传成功' end + def destroy + @release.destroy + redirect_to channel_versions_url(@channel), notice: '应用版本删除成功' + end + def auth if @channel.password == params[:password] cookies[app_release_auth_key(@release)] = encode_password(@channel) diff --git a/app/views/channels/_versions.html.slim b/app/views/channels/_versions.html.slim index 032c3c66f..1cb22e241 100644 --- a/app/views/channels/_versions.html.slim +++ b/app/views/channels/_versions.html.slim @@ -1,8 +1,14 @@ .card.card-solid .card-header - h3.card-title 历史版本 + h3.card-title + | 历史版本 + small + | ( + = link_to '全部', channel_versions_path(@channel) + | ) .card-tools - span.badge.bg-yellow = @channel.releases.count + span.badge.bg-yellow + = link_to @channel.releases.count, channel_versions_path(@channel) .card-body.table-responsive.p-0 - if @channel.release_versions.count > 0 table.table.table-striped.table-borderd diff --git a/app/views/channels/versions/_list.slim b/app/views/channels/versions/_list.slim new file mode 100644 index 000000000..f90e343f1 --- /dev/null +++ b/app/views/channels/versions/_list.slim @@ -0,0 +1,34 @@ +table.table.table-striped.table-hover + tr + th ID + th 开发版本 + th 打包类型 + th 分支 + th Git 提交信息 + th 包信息 + th 上传时间 + th 操作 + - unless @releases.empty? + - @releases.each_with_index do |release, index| + tr + td + = index + 1 + td + = link_to release.build_version, channel_release_path(release.channel, release) + td + = release.release_type + td + = release.branch + td + = release.short_git_commit + td + = link_to '下载本地', release.download_url, { target: '_blank' } + td + span data-toggle="tooltip" title="#{release.created_at}" + = time_ago_in_words(release.created_at) + td + a.btn.btn-tool href="#{channel_release_path(@channel, release)}" data-confirm="确定删除?" data-method="delete" + i.fa.fa-remove + - else + tr + th colspan="5" 该版本没有任何上传记录! diff --git a/app/views/channels/versions/index.slim b/app/views/channels/versions/index.slim new file mode 100644 index 000000000..58de9b2ab --- /dev/null +++ b/app/views/channels/versions/index.slim @@ -0,0 +1,18 @@ +- content_for :title do + = @title + +- content_for :section_title do + = @title + +.row + .col-md-12 + .card + .card-header + h3.card-title + | 上传版本列表 + .card-tools + a href="#{channel_path(@channel)}" + i.fa.fa-list-alt + | 返回上级页面 + .card-body.table-responsive.p-0 + == render 'list' diff --git a/app/views/channels/versions/show.html.slim b/app/views/channels/versions/show.html.slim index f1cc581d2..82b7b0c54 100644 --- a/app/views/channels/versions/show.html.slim +++ b/app/views/channels/versions/show.html.slim @@ -16,32 +16,4 @@ i.fa.fa-list-alt | 返回上级页面 .card-body.table-responsive.p-0 - table.table.table-striped.table-hover - tr - th ID - th 开发版本 - th 打包类型 - th 分支 - th Git 提交信息 - th 包信息 - th style="width: 200px; text-align: right;padding-right: 18px" 上传时间 - - unless @releases.empty? - - @releases.each_with_index do |release, index| - tr - td - = index + 1 - td - = link_to release.build_version, channel_release_path(release.channel, release) - td - = release.release_type - td - = release.branch - td - = release.short_git_commit - td - = link_to '下载本地', release.download_url, { target: '_blank' } - td - = release.created_at - - else - tr - th colspan="5" 该版本没有任何上传记录! + == render 'list' \ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb index 0f164c392..ed7cc4973 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -39,7 +39,7 @@ end scope module: :channels do - resources :versions, only: :show, id: /(.+)+/ + resources :versions, only: [:index, :show], id: /(.+)+/ end end From 616475600a6b7572372da27d776fc96de18cac70 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 8 Jan 2020 11:59:22 +0800 Subject: [PATCH 0008/2165] =?UTF-8?q?fix(web):=20=E6=8D=95=E8=8E=B7?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E5=BA=94=E7=94=A8=E4=B8=8D=E6=98=AF=E6=9C=89?= =?UTF-8?q?=E6=95=88=E5=BA=94=E7=94=A8=E6=A0=BC=E5=BC=8F=E7=9A=84=E5=BC=82?= =?UTF-8?q?=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/release.rb | 35 +++++++++++++++++++++++++---------- 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/app/models/release.rb b/app/models/release.rb index deaf13f85..95924b902 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -36,15 +36,25 @@ def self.find_by_channel(slug, version = nil) def self.upload_file(params, source = 'Web') create(params) do |release| unless release.file.blank? - app_info = AppInfo.parse(release.file.path) - release.source = source - release.bundle_id = app_info.bundle_id - release.release_version = app_info.release_version - release.build_version = app_info.build_version - release.release_type ||= app_info.release_type if app_info.os == AppInfo::Platform::IOS - - if icon_file = app_info.icons.last.try(:[], :file) - release.icon = decode_icon(icon_file) + begin + app_info = AppInfo.parse(release.file.path) + release.source = source + release.bundle_id = app_info.bundle_id + release.release_version = app_info.release_version + release.build_version = app_info.build_version + release.release_type ||= app_info.release_type if app_info.os == AppInfo::Platform::IOS + + if icon_file = app_info.icons.last.try(:[], :file) + release.icon = decode_icon(icon_file) + end + + if app_info.os == AppInfo::Platform::IOS && + app_info.release_type == AppInfo::IPA::ExportType::ADHOC && + (devices = app_info.devices) && !device.blank? + release.devices = devices + end + rescue AppInfo::UnkownFileTypeError + release.errors.add(:file, '上传的应用无法正确识别') end end end @@ -156,7 +166,9 @@ def outdated? def force_bundle_id return if file.blank? + return if channel.blank? return if channel.bundle_id.blank? + return if app_info.blank? return if channel.bundle_id_matched?(app_info.bundle_id) message = "#{channel.app_name} 的 bundle id `#{app_info.bundle_id}` 无法和 `#{channel.bundle_id}` 匹配" @@ -164,7 +176,10 @@ def force_bundle_id end def app_info - @app_info ||= AppInfo.parse(file.file.file) + @app_info ||= AppInfo.parse(file.path) + rescue AppInfo::UnkownFileTypeError + errors.add(:file, '上传的文件不是有效应用格式') + return nil end private From dc46114312d3009a82764dc5e7a969a5b5ed2e5d Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 8 Jan 2020 12:00:26 +0800 Subject: [PATCH 0009/2165] =?UTF-8?q?style:=20=E4=B8=8A=E4=BC=A0=E6=8A=B1?= =?UTF-8?q?=E9=94=99=E5=90=8E=E6=98=BE=E7=A4=BA=E6=AD=A3=E5=B8=B8=E7=9A=84?= =?UTF-8?q?=E6=A0=87=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/releases_controller.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/app/controllers/releases_controller.rb b/app/controllers/releases_controller.rb index c8c35d813..f7bd401c3 100644 --- a/app/controllers/releases_controller.rb +++ b/app/controllers/releases_controller.rb @@ -22,6 +22,7 @@ def new end def create + @title = '上传应用' @release = @channel.releases.upload_file(release_params) authorize @release From fa7af092f355b334da6adf5144de26fc3c25818f Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 8 Jan 2020 12:09:03 +0800 Subject: [PATCH 0010/2165] =?UTF-8?q?style:=20Debug=20File=20=E6=94=B9?= =?UTF-8?q?=E5=90=8D=E4=B8=AD=E6=96=87=E8=B0=83=E8=AF=95=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/api/apps/download_controller.rb | 2 +- app/controllers/api/apps/install_url_controller.rb | 2 +- app/controllers/api/apps/version_exist_controller.rb | 2 +- app/controllers/api/debug_files/download_controller.rb | 2 +- app/controllers/apps_controller.rb | 2 +- app/controllers/debug_files_controller.rb | 10 +++++----- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/app/controllers/api/apps/download_controller.rb b/app/controllers/api/apps/download_controller.rb index 983fb89d0..15eae0e0a 100644 --- a/app/controllers/api/apps/download_controller.rb +++ b/app/controllers/api/apps/download_controller.rb @@ -14,7 +14,7 @@ def show filename: @release.download_filename, disposition: 'attachment' else - render json: { error: 'No found app file' }, status: :not_found + render json: { error: '没有找到应用安装文件' }, status: :not_found end end end diff --git a/app/controllers/api/apps/install_url_controller.rb b/app/controllers/api/apps/install_url_controller.rb index f40f85890..97a74b8bd 100644 --- a/app/controllers/api/apps/install_url_controller.rb +++ b/app/controllers/api/apps/install_url_controller.rb @@ -8,7 +8,7 @@ def show if @release render content_type: 'text/xml', layout: false else - render json: { error: 'No found app or release version' }, status: :not_found + render json: { error: '没有找到对应的应用或版本' }, status: :not_found end end end diff --git a/app/controllers/api/apps/version_exist_controller.rb b/app/controllers/api/apps/version_exist_controller.rb index 1bfeb7188..8ac602513 100644 --- a/app/controllers/api/apps/version_exist_controller.rb +++ b/app/controllers/api/apps/version_exist_controller.rb @@ -21,7 +21,7 @@ def determine_params! channel_params.key?(:build_version)) raise ActionController::ParameterMissing, - 'Choose bundle_id, release_version, build_version or bundleid_id, git_commit' + '参数缺失,请使用 bundle_id, release_version, build_version 或 bundleid_id, git_commit 组合参数' end def channel_params diff --git a/app/controllers/api/debug_files/download_controller.rb b/app/controllers/api/debug_files/download_controller.rb index eef1c8963..e61988ea7 100644 --- a/app/controllers/api/debug_files/download_controller.rb +++ b/app/controllers/api/debug_files/download_controller.rb @@ -30,7 +30,7 @@ def show if @debug_file && File.exist?(@debug_file.file.path) redirect_to @debug_file.file.url, status: :found else - render json: { error: 'No found debug file' }, status: :not_found + render json: { error: '没有找到调试文件' }, status: :not_found end end diff --git a/app/controllers/apps_controller.rb b/app/controllers/apps_controller.rb index 76cf962ff..04a7bf657 100644 --- a/app/controllers/apps_controller.rb +++ b/app/controllers/apps_controller.rb @@ -95,7 +95,7 @@ def app_info @app.releases.last end - raise ActiveRecord::RecordNotFound, "Not found release = #{params[:version]}" unless @release + raise ActiveRecord::RecordNotFound, "没有找到应用版本 version: #{params[:version]}" unless @release end def app_params diff --git a/app/controllers/debug_files_controller.rb b/app/controllers/debug_files_controller.rb index 4d66fb976..b2eb534ba 100644 --- a/app/controllers/debug_files_controller.rb +++ b/app/controllers/debug_files_controller.rb @@ -3,27 +3,27 @@ class DebugFilesController < ApplicationController before_action :set_debug_file, only: [:show, :edit, :update, :destroy] def index - @title = 'Debug File 列表' + @title = '调试文件列表' @apps = App.avaiable_debug_files authorize @apps end def new - @title = '上传 Debug File 文件' + @title = '上传调试文件文件' @apps = App.all @debug_file = DebugFile.new authorize @debug_file end def create - @title = '上传 Debug File 文件' + @title = '上传调试文件文件' @debug_file = DebugFile.new(debug_file_params) authorize @debug_file if @debug_file.save DebugFileTeardownJob.perform_later @debug_file - redirect_to debug_files_url, notice: 'Debug File 上传成功,后台正在解析文件请稍后查看详情' + redirect_to debug_files_url, notice: '调试文件上传成功,后台正在解析文件请稍后查看详情' else render :new end @@ -31,7 +31,7 @@ def create def destroy @debug_file.destroy - redirect_to debug_files_url, notice: 'Debug File 删除成功' + redirect_to debug_files_url, notice: '调试文件 删除成功' end private From 6bd98950a3eb6e4ba79f80847685cfc9dd110ec3 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 8 Jan 2020 13:11:18 +0800 Subject: [PATCH 0011/2165] =?UTF-8?q?style:=20App=20=E8=A7=A3=E6=9E=90?= =?UTF-8?q?=E6=94=B9=E5=90=8D=E4=B8=BA=E5=BA=94=E7=94=A8=E8=A7=A3=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/teardowns_controller.rb | 5 +- app/views/layouts/_main_sidebar.html.slim | 4 +- app/views/teardowns/_android.html.slim | 2 +- app/views/teardowns/_form.html.slim | 2 +- app/views/teardowns/_ios.html.slim | 2 +- app/views/teardowns/create.html.slim | 2 +- app/views/teardowns/show.slim | 61 ----------------------- 7 files changed, 10 insertions(+), 68 deletions(-) delete mode 100644 app/views/teardowns/show.slim diff --git a/app/controllers/teardowns_controller.rb b/app/controllers/teardowns_controller.rb index 5947a2a20..59865f659 100644 --- a/app/controllers/teardowns_controller.rb +++ b/app/controllers/teardowns_controller.rb @@ -9,12 +9,15 @@ def show # GET /teardowns/upload def new - @title = 'App 解析' + @title = '应用解析' end # POST /teardowns def create file = params[:file] @app_info = AppInfo.parse(file.tempfile) + rescue AppInfo::UnkownFileTypeError + flash.now[:message] = "无法识别上传的应用类型" + render :new end end diff --git a/app/views/layouts/_main_sidebar.html.slim b/app/views/layouts/_main_sidebar.html.slim index 1a55be689..436a3ac19 100644 --- a/app/views/layouts/_main_sidebar.html.slim +++ b/app/views/layouts/_main_sidebar.html.slim @@ -13,11 +13,11 @@ li class="nav-item" a.nav-link href="#{debug_files_path}" class="#{active_class(debug_files_path)}" i.nav-icon.fa.fa-bug - p Debug File 管理 + p 调试文件管理 li class="nav-item" a.nav-link href="#{new_teardown_path}" class="#{active_class(new_teardown_path)}" i.nav-icon.fa.fa-gavel - p App 解析 + p 应用解析 - if current_user.admin? li.nav-header 管理区域 diff --git a/app/views/teardowns/_android.html.slim b/app/views/teardowns/_android.html.slim index 6970c8c09..a9d5e3486 100644 --- a/app/views/teardowns/_android.html.slim +++ b/app/views/teardowns/_android.html.slim @@ -9,7 +9,7 @@ ruby: .col-md-8 .card .card-header - h3.card-title App 信息 + h3.card-title 应用信息 .card-body dl.system-info dt 名称 diff --git a/app/views/teardowns/_form.html.slim b/app/views/teardowns/_form.html.slim index e07d30113..6388b3131 100644 --- a/app/views/teardowns/_form.html.slim +++ b/app/views/teardowns/_form.html.slim @@ -3,7 +3,7 @@ .form-group label.control-label.required for="file" abbr title="必填项" * - | App 文件 + | 应用文件 .input-group = file_field_tag 'file', class: 'custom-file-input2' diff --git a/app/views/teardowns/_ios.html.slim b/app/views/teardowns/_ios.html.slim index 1fd9199f0..4cecb0b7b 100644 --- a/app/views/teardowns/_ios.html.slim +++ b/app/views/teardowns/_ios.html.slim @@ -2,7 +2,7 @@ .col-md-8 .card .card-header - h3.card-title App 信息 + h3.card-title 应用信息 .card-body dl.system-info dt 名称 diff --git a/app/views/teardowns/create.html.slim b/app/views/teardowns/create.html.slim index d21904574..d5ebea900 100644 --- a/app/views/teardowns/create.html.slim +++ b/app/views/teardowns/create.html.slim @@ -1,4 +1,4 @@ - content_for :title do - | App 解析结果 + | 应用解析结果 == render "#{@app_info.os.downcase.to_s}" diff --git a/app/views/teardowns/show.slim b/app/views/teardowns/show.slim deleted file mode 100644 index 9c3017fbd..000000000 --- a/app/views/teardowns/show.slim +++ /dev/null @@ -1,61 +0,0 @@ -- content_for :title do - | App 解析结果 - -.row - .col-md-12 - .card - .card-header - h3.card-title - | App 解析加载中 - .card-body - #parse-loading.text-center - .btn-block.btn-lg.ajax - i.fa.fa-spin.fa-refresh - | 解析中 ... - #parse-result - -.row - .col-md-12 - .card - .card-body - h4 App 信息 - .aa - span 名称: - span AppName - br - - span 版本: - span 1.0.0 (1.0) - br - - span BundleId: - span com.icyleaf.demoapp - - h4 签名证书 - .aa - span 名称: - span AppName - br - - span 版本: - span 1.0.0 (1.0) - br - - span BundleId: - span com.icyleaf.demoapp - h4 开发者证书 - - h4 设备列表 - .aa - table.table.table-striped - tr - th UDID - tr - td 18cf53cddee60c5af9c97b1521e7cbf8342628da - tr - td 18cf53cddee60c5af9c97b1521e7cbf8342628da - tr - td 18cf53cddee60c5af9c97b1521e7cbf8342628da - tr - td 18cf53cddee60c5af9c97b1521e7cbf8342628da - From 479170b9cbdb550e5acab4cc9fbf808941fb1dff Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 10 Jan 2020 10:15:25 +0800 Subject: [PATCH 0012/2165] =?UTF-8?q?fix(web):=20=E4=BF=AE=E5=A4=8D=20Andr?= =?UTF-8?q?oid=20=E4=B8=8A=E4=BC=A0=E5=8C=85=E5=90=AB=E8=87=AA=E9=80=82?= =?UTF-8?q?=E5=BA=94=E5=9B=BE=E6=A0=87=E8=8E=B7=E5=8F=96=E5=9B=BE=E6=A0=87?= =?UTF-8?q?=E5=A4=B1=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/release.rb | 31 +++++++++++++++++++------------ 1 file changed, 19 insertions(+), 12 deletions(-) diff --git a/app/models/release.rb b/app/models/release.rb index 95924b902..9704a897d 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -37,21 +37,28 @@ def self.upload_file(params, source = 'Web') create(params) do |release| unless release.file.blank? begin - app_info = AppInfo.parse(release.file.path) + parser = AppInfo.parse(release.file.path) release.source = source - release.bundle_id = app_info.bundle_id - release.release_version = app_info.release_version - release.build_version = app_info.build_version - release.release_type ||= app_info.release_type if app_info.os == AppInfo::Platform::IOS - - if icon_file = app_info.icons.last.try(:[], :file) - release.icon = decode_icon(icon_file) + release.bundle_id = parser.bundle_id + release.release_version = parser.release_version + release.build_version = parser.build_version + + if parser.os == AppInfo::Platform::IOS + release.release_type ||= parser.release_type + + icon_file = parser.icons.last.try(:[], :file) + release.icon = decode_icon(icon_file) if icon_file + else + # 处理 Android anydpi 自适应图标 + icon_file = parser.icons.select {|f| File.extname(f[:file]) != '.xml' }.last.try(:[], :file) + release.icon = icon_file end - if app_info.os == AppInfo::Platform::IOS && - app_info.release_type == AppInfo::IPA::ExportType::ADHOC && - (devices = app_info.devices) && !device.blank? - release.devices = devices + # iOS 且是 AdHoc 尝试解析 UDID 列表 + if parser.os == AppInfo::Platform::IOS && + parser.release_type == AppInfo::IPA::ExportType::ADHOC && + !parser.devices.blank? + release.devices = parser.devices end rescue AppInfo::UnkownFileTypeError release.errors.add(:file, '上传的应用无法正确识别') From 8fd1e951e0718ddc741b46747622e25e41b356df Mon Sep 17 00:00:00 2001 From: icyleaf Date: Sat, 11 Jan 2020 16:14:31 +0800 Subject: [PATCH 0013/2165] =?UTF-8?q?chore:=20=E6=B8=85=E7=90=86=E4=B8=8D?= =?UTF-8?q?=E5=86=8D=E4=BD=BF=E7=94=A8=E7=9A=84=20gems?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 9 ++------- Gemfile.lock | 8 +++++++- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/Gemfile b/Gemfile index 8fb6ac184..8a2abcbfc 100644 --- a/Gemfile +++ b/Gemfile @@ -1,6 +1,5 @@ # frozen_string_literal: true -# source 'https://gems.ruby-china.com' source 'https://rubygems.org' git_source(:github) { |repo_name| "https://github.com/#{repo_name}" } @@ -25,8 +24,6 @@ gem 'rack-cors', '~> 1.1.1' ## 模板引擎 gem 'jb', '~> 0.7.0' gem 'slim-rails', '~> 3.2.0' -## 生成 ios download plist -gem 'multi_xml' ## 表单生成 gem 'simple_form', '~> 5.0' @@ -71,9 +68,7 @@ gem 'sidekiq', '<= 7' gem 'settingslogic' # Assets -# gem 'sass-rails', '~> 6.0' gem 'turbolinks', '~> 5' -# gem 'uglifier', '>= 1.3.0' gem 'webpacker', '~> 4.2' # 用于解析 ipa 和 apk 包 @@ -99,8 +94,8 @@ group :development do gem 'terminal-notifier-guard' # IDE tools(VSCode) - # gem "ruby-debug-ide" - # gem "debase", '~> 0.2.3.beta2' # ruby 2.5 兼容有问题暂时关闭 + gem "ruby-debug-ide" + gem "debase" # 加速开发环境 gem 'spring' diff --git a/Gemfile.lock b/Gemfile.lock index 4450c20fd..5e5c4deee 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -115,6 +115,9 @@ GEM concurrent-ruby (1.1.5) connection_pool (2.2.2) crass (1.0.5) + debase (0.2.4.1) + debase-ruby_core_source (>= 0.10.2) + debase-ruby_core_source (0.10.9) debug_inspector (0.0.3) devise (4.7.1) bcrypt (~> 3.0) @@ -351,6 +354,8 @@ GEM rainbow (>= 2.2.2, < 4.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 1.4.0, < 1.7) + ruby-debug-ide (0.7.0) + rake (>= 0.8.1) ruby-macho (2.2.0) ruby-progressbar (1.10.1) ruby-vips (2.0.16) @@ -440,6 +445,7 @@ DEPENDENCIES bootsnap (>= 1.4.4) byebug carrierwave + debase devise (~> 4.7.1) devise-i18n (~> 1.9.0) dotenv-rails @@ -459,7 +465,6 @@ DEPENDENCIES letter_opener_web (~> 1.3) listen (>= 3.0.5, < 3.3) mini_magick - multi_xml omniauth (~> 1.9) omniauth-google-oauth2 (~> 0.8.0) omniauth-ldap! @@ -476,6 +481,7 @@ DEPENDENCIES redis (~> 4.1.3) rqrcode rubocop (~> 0.77) + ruby-debug-ide settingslogic sidekiq (<= 7) simple_form (~> 5.0) From 7d15c6bbc2ca67e04a709e6889afd0c487d54180 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Sat, 11 Jan 2020 16:20:48 +0800 Subject: [PATCH 0014/2165] =?UTF-8?q?fix(web):=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E4=B8=8A=E4=BC=A0=20apk=20=E4=B8=A2=E5=A4=B1?= =?UTF-8?q?=E5=9B=BE=E6=A0=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/release.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/release.rb b/app/models/release.rb index 9704a897d..37bdb0181 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -51,7 +51,7 @@ def self.upload_file(params, source = 'Web') else # 处理 Android anydpi 自适应图标 icon_file = parser.icons.select {|f| File.extname(f[:file]) != '.xml' }.last.try(:[], :file) - release.icon = icon_file + release.icon = File.open(icon_file) if icon_file end # iOS 且是 AdHoc 尝试解析 UDID 列表 From 0cd03ebc05415c528a656f6df33bb13d923c095e Mon Sep 17 00:00:00 2001 From: icyleaf Date: Sat, 11 Jan 2020 18:34:41 +0800 Subject: [PATCH 0015/2165] =?UTF-8?q?fix(api):=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0=20app=20=E6=80=BB=E6=98=AF=E4=BC=9A=E6=A0=B9?= =?UTF-8?q?=E6=8D=AE=20app=20=E8=87=AA=E5=8A=A8=E5=88=9B=E5=BB=BA=E6=B8=A0?= =?UTF-8?q?=E9=81=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/api/apps/upload_controller.rb | 5 +++++ app/controllers/api/base_controller.rb | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/app/controllers/api/apps/upload_controller.rb b/app/controllers/api/apps/upload_controller.rb index 2e25a2b17..d890af808 100644 --- a/app/controllers/api/apps/upload_controller.rb +++ b/app/controllers/api/apps/upload_controller.rb @@ -2,6 +2,7 @@ class Api::Apps::UploadController < Api::BaseController before_action :validate_user_token + before_action :get_channel # Upload an App # @@ -127,4 +128,8 @@ def channel_params def app_info @app_info ||= AppInfo.parse(params[:file].path) end + + def get_channel + @channel = Channel.find_by(key: params[:channel_key]) + end end diff --git a/app/controllers/api/base_controller.rb b/app/controllers/api/base_controller.rb index d41be1257..82be1e68b 100644 --- a/app/controllers/api/base_controller.rb +++ b/app/controllers/api/base_controller.rb @@ -46,8 +46,8 @@ def render_unauthorized_user_key(exception) def render_unprocessable_entity_response(exception) render json: { - error: 'resource could not be processed with errors', - entry: Rails.env.development? ? exception.record.errors : nil + error: '参数错误,请检查请求的参数是否正确', + entry: exception.record.errors }, status: :unprocessable_entity end From 5cc50349ec2c4eba5ffe4329390b606f247a9fbb Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Sat, 11 Jan 2020 10:36:23 +0000 Subject: [PATCH 0016/2165] chore(deps): bump jb from 0.7.0 to 0.7.1 Bumps [jb](https://github.com/amatsuda/jb) from 0.7.0 to 0.7.1. - [Release notes](https://github.com/amatsuda/jb/releases) - [Commits](https://github.com/amatsuda/jb/compare/v0.7.0...v0.7.1) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 8a2abcbfc..87644f237 100644 --- a/Gemfile +++ b/Gemfile @@ -22,7 +22,7 @@ gem 'rack-cors', '~> 1.1.1' # View ## 模板引擎 -gem 'jb', '~> 0.7.0' +gem 'jb', '~> 0.7.1' gem 'slim-rails', '~> 3.2.0' ## 表单生成 gem 'simple_form', '~> 5.0' diff --git a/Gemfile.lock b/Gemfile.lock index 5e5c4deee..1e74a5915 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -195,7 +195,7 @@ GEM image_size (2.0.2) interception (0.5) jaro_winkler (1.5.4) - jb (0.7.0) + jb (0.7.1) multi_json jenkins_api_client (1.5.3) json (>= 1.0) @@ -458,7 +458,7 @@ DEPENDENCIES guard-sidekiq guard-webpacker http - jb (~> 0.7.0) + jb (~> 0.7.1) jenkins_api_client kaminari letter_opener (~> 1.7) From 1c5d0583895c51680a3a2337c8515ec45ad01306 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Sat, 11 Jan 2020 10:36:24 +0000 Subject: [PATCH 0017/2165] chore(deps): bump mini_magick from 4.9.5 to 4.10.1 Bumps [mini_magick](https://github.com/minimagick/minimagick) from 4.9.5 to 4.10.1. - [Release notes](https://github.com/minimagick/minimagick/releases) - [Commits](https://github.com/minimagick/minimagick/compare/v4.9.5...v4.10.1) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 5e5c4deee..aa81d1726 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -240,7 +240,7 @@ GEM mimemagic (~> 0.3.2) method_source (0.9.2) mimemagic (0.3.3) - mini_magick (4.9.5) + mini_magick (4.10.1) mini_mime (1.0.2) mini_portile2 (2.4.0) minitest (5.13.0) From e836cd210378016b0d08addc10e89ddd8a76cb1c Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Sat, 11 Jan 2020 10:36:26 +0000 Subject: [PATCH 0018/2165] chore(deps): bump http from 4.2.0 to 4.3.0 Bumps [http](https://github.com/httprb/http) from 4.2.0 to 4.3.0. - [Release notes](https://github.com/httprb/http/releases) - [Changelog](https://github.com/httprb/http/blob/master/CHANGES.md) - [Commits](https://github.com/httprb/http/compare/v4.2.0...v4.3.0) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 5e5c4deee..3e1f1f595 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -177,14 +177,14 @@ GEM guard (>= 2) guard-compat (~> 1.0) hashie (3.6.0) - http (4.2.0) + http (4.3.0) addressable (~> 2.3) http-cookie (~> 1.0) - http-form_data (~> 2.0) + http-form_data (~> 2.2) http-parser (~> 1.2.0) http-cookie (1.0.3) domain_name (~> 0.5) - http-form_data (2.1.1) + http-form_data (2.2.0) http-parser (1.2.1) ffi-compiler (>= 1.0, < 2.0) i18n (1.7.0) @@ -290,7 +290,7 @@ GEM pry-rescue (1.5.0) interception (>= 0.5) pry (>= 0.12.0) - public_suffix (4.0.1) + public_suffix (4.0.3) puma (4.3.1) nio4r (~> 2.0) pundit (2.1.0) From fb01a92ca49fe20f5babf96050bcb1456597c3a2 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 13 Jan 2020 11:38:12 +0800 Subject: [PATCH 0019/2165] =?UTF-8?q?feat(web):=20=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E5=91=98=E6=96=B0=E5=A2=9E=E7=94=A8=E6=88=B7=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E9=82=AE=E7=AE=B1=E7=A1=AE=E8=AE=A4=E9=93=BE=E6=8E=A5=E6=9D=A5?= =?UTF-8?q?=E9=81=BF=E5=85=8D=E5=9B=A0=E6=B2=A1=E6=9C=89=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E9=82=AE=E7=AE=B1=E6=97=A0=E6=B3=95=E7=A1=AE=E8=AE=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/admin/users_controller.rb | 7 ++----- app/views/admin/users/edit.html.slim | 7 +++++++ app/views/admin/users/index.html.slim | 12 ++++++++++++ app/views/admin/users/show.html.erb | 3 --- 4 files changed, 21 insertions(+), 8 deletions(-) delete mode 100644 app/views/admin/users/show.html.erb diff --git a/app/controllers/admin/users_controller.rb b/app/controllers/admin/users_controller.rb index 1749bd7bf..078080dcf 100644 --- a/app/controllers/admin/users_controller.rb +++ b/app/controllers/admin/users_controller.rb @@ -9,10 +9,6 @@ def index authorize @users end - def show - redirect_back fallback_location: root_path - end - def new @title = '新建用户' @user = User.new @@ -29,7 +25,8 @@ def create end def edit - @title = '编辑用户' + @title = @user.email + @token = @user.confirmation_token end def update diff --git a/app/views/admin/users/edit.html.slim b/app/views/admin/users/edit.html.slim index f925d8a68..8d5a1e6ee 100644 --- a/app/views/admin/users/edit.html.slim +++ b/app/views/admin/users/edit.html.slim @@ -6,6 +6,13 @@ .row .col-md-12 + - if @token + .card + .card-header.card-border + h3.card-title 激活链接 + .card-body + input.form-control value="#{confirmation_url(@user, confirmation_token: @token)}" disabled=true + small.form-text.text-muted 如果邮件系统设置有问题或对方没有收到可以把本链接发给他 .card .card-header.card-border h3.card-title 用户信息 diff --git a/app/views/admin/users/index.html.slim b/app/views/admin/users/index.html.slim index 8521b3866..1b130d7ec 100644 --- a/app/views/admin/users/index.html.slim +++ b/app/views/admin/users/index.html.slim @@ -20,6 +20,8 @@ th 用户昵称 th 邮箱 th 权限 + th 状态 + th 最后登录时间 th 操作 tbody - @users.each_with_index do |user, i| @@ -32,5 +34,15 @@ = user.email td = user.role_name + td + - if user.confirmed_at + | 已激活 + - else + = link_to '未激活', edit_admin_user_path(user) + td + - if user.last_sign_in_at + = time_ago_in_words(user.last_sign_in_at) + - else + | 从未登录 td = link_to '删除', admin_user_path(user), method: :delete, data: { confirm: '你确定?'} diff --git a/app/views/admin/users/show.html.erb b/app/views/admin/users/show.html.erb deleted file mode 100644 index 4cb394950..000000000 --- a/app/views/admin/users/show.html.erb +++ /dev/null @@ -1,3 +0,0 @@ -

User

-

Name: <%= @user.username if @user.username %>

-

Email: <%= @user.email if @user.email %>

From 9279433db4ccf9dbc340bd75b843555a128a636c Mon Sep 17 00:00:00 2001 From: icyleaf Date: Sat, 11 Jan 2020 16:47:01 +0800 Subject: [PATCH 0020/2165] =?UTF-8?q?feat:=20=E9=BB=98=E8=AE=A4=E5=90=AF?= =?UTF-8?q?=E7=94=A8=20sentry=20=E4=B8=8A=E6=8A=A5=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E5=B8=AE=E5=8A=A9=E6=94=B9=E8=BF=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 2 ++ Gemfile | 3 +++ Gemfile.lock | 3 +++ app/controllers/application_controller.rb | 7 +++++++ app/jobs/sentry_job.rb | 9 +++++++++ config/initializers/sentry.rb | 21 +++++++++++++++++++++ 6 files changed, 45 insertions(+) create mode 100644 app/jobs/sentry_job.rb create mode 100644 config/initializers/sentry.rb diff --git a/Dockerfile b/Dockerfile index f4b9d7d1e..3b7d3d9aa 100644 --- a/Dockerfile +++ b/Dockerfile @@ -20,6 +20,8 @@ ENV BUILD_PACKAGES="build-base libxml2 libxslt libxslt imagemagick tzdata git" \ ORIGINAL_REPO_URL="http://dl-cdn.alpinelinux.org" \ MIRROR_REPO_URL="https://mirrors.tuna.tsinghua.edu.cn" \ NPM_REGISTRY="https://registry.npm.taobao.org" \ + ZEALOT_VERSION="$VERSION" \ + ZEALOT_VCS_REF="$VCS_REF" \ TZ="Asia/Shanghai" \ RAILS_ENV="production" diff --git a/Gemfile b/Gemfile index 8a2abcbfc..ce7db1a4d 100644 --- a/Gemfile +++ b/Gemfile @@ -53,6 +53,9 @@ gem 'whenever', '~> 1.0.0', require: false gem 'sys-filesystem', '~> 1.3.2' gem 'vmstat', '~> 2.3.0' +# 异常报错上报 +gem "sentry-raven" + # Jenkins SDK gem 'jenkins_api_client' # 生成条形码/二维码 diff --git a/Gemfile.lock b/Gemfile.lock index 5e5c4deee..e17884c30 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -364,6 +364,8 @@ GEM rubyzip (>= 1.1.6) rubyntlm (0.6.2) rubyzip (2.0.0) + sentry-raven (2.13.0) + faraday (>= 0.7.6, < 1.0) settingslogic (2.0.9) shellany (0.0.1) sidekiq (6.0.4) @@ -482,6 +484,7 @@ DEPENDENCIES rqrcode rubocop (~> 0.77) ruby-debug-ide + sentry-raven settingslogic sidekiq (<= 7) simple_form (~> 5.0) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index fa6182f7e..006505637 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -1,6 +1,8 @@ # frozen_string_literal: true class ApplicationController < ActionController::Base + before_action :set_raven_context + include Pundit # Prevent CSRF attacks by raising an exception. @@ -14,6 +16,11 @@ class ApplicationController < ActionController::Base private + def set_raven_context + Raven.user_context(id: session[:current_user_id]) + Raven.extra_context(params: params.to_unsafe_h, url: request.url) + end + def user_not_authorized flash[:warning] = '没有权限进行本次操作。' redirect_to(request.referrer || root_path) diff --git a/app/jobs/sentry_job.rb b/app/jobs/sentry_job.rb new file mode 100644 index 000000000..de72df3c1 --- /dev/null +++ b/app/jobs/sentry_job.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +class SentryJob < ApplicationJob + queue_as :default + + def perform(event) + Raven.send_event(event) + end +end \ No newline at end of file diff --git a/config/initializers/sentry.rb b/config/initializers/sentry.rb new file mode 100644 index 000000000..7e0fa3874 --- /dev/null +++ b/config/initializers/sentry.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true + +# 默认开启 Sentry,如果不想使用设置 ZEALOT_SENTRY_DISABLE=1 +if ENV['ZEALOT_SENTRY_DISABLE'].blank? + Raven.configure do |config| + config.dsn = ENV['ZEALOT_SENTRY_DNS'] || 'https://133aefa9f52448a1a7900ba9d02f93e1@sentry.io/1878137' + config.excluded_exceptions += ['ActionController::RoutingError', 'ActiveRecord::RecordNotFound'] + config.sanitize_fields = Rails.application.config.filter_parameters.map(&:to_s) + config.sanitize_fields << 'token' + config.async = -> (event) { SentryJob.perform_later(event) } + + version = ENV['ZEALOT_VERSION'] || Setting.version + vcs_ref = ENV['ZEALOT_VCS_REF'] + version = "#{version}-#{vcs_ref}" if vcs_ref.present? + config.release = version + + tags = {} + tags[:docker] = true if vcs_ref.present? + config.tags = tags + end +end From 141e2a6581cb2ab28213c1fd0c8d0324e57c9d83 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 13 Jan 2020 13:40:38 +0800 Subject: [PATCH 0021/2165] =?UTF-8?q?feat(web):=20=E6=9B=B4=E6=94=B9?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=93=8D=E4=BD=9C=E4=BA=A7=E7=94=9F=E7=9A=84?= =?UTF-8?q?=E4=B8=B4=E6=97=B6=E7=9B=AE=E5=BD=95=E5=88=B0=20tmp=20=E4=B8=8B?= =?UTF-8?q?=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/initializers/carrierwave.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/initializers/carrierwave.rb b/config/initializers/carrierwave.rb index 4f0b42c90..4ffd80b48 100644 --- a/config/initializers/carrierwave.rb +++ b/config/initializers/carrierwave.rb @@ -2,6 +2,6 @@ CarrierWave.configure do |config| url_options = Rails.configuration.x.url_options - config.asset_host = "#{url_options[:protocol]}#{url_options[:host]}" + config.cache_dir = File.join(Rails.root, 'tmp', 'uploads', Rails.env) end From 4d7388d635bb6c42aadfefdeb4f09cf9d3f9ce04 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 13 Jan 2020 06:43:44 +0000 Subject: [PATCH 0022/2165] chore(deps): bump app-info from 2.1.1 to 2.1.2 Bumps [app-info](https://github.com/icyleaf/app-info) from 2.1.1 to 2.1.2. - [Release notes](https://github.com/icyleaf/app-info/releases) - [Changelog](https://github.com/icyleaf/app_info/blob/master/CHANGELOG.md) - [Commits](https://github.com/icyleaf/app-info/compare/v2.1.1...v2.1.2) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index fc89b5c56..83341e8d4 100644 --- a/Gemfile +++ b/Gemfile @@ -75,7 +75,7 @@ gem 'turbolinks', '~> 5' gem 'webpacker', '~> 4.2' # 用于解析 ipa 和 apk 包 -gem 'app-info', '~> 2.1.1', require: false +gem 'app-info', '~> 2.1.2', require: false # Reduces boot times through caching; required in config/boot.rb gem 'bootsnap', '>= 1.4.4', require: false diff --git a/Gemfile.lock b/Gemfile.lock index 4d345e880..b7920026f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -78,7 +78,7 @@ GEM zeitwerk (~> 2.2) addressable (2.7.0) public_suffix (>= 2.0.2, < 5.0) - app-info (2.1.1) + app-info (2.1.2) CFPropertyList (>= 2.3.4, < 3.1.0) image_size (>= 1.5, < 2.1) pngdefry (~> 0.1.2) @@ -440,7 +440,7 @@ PLATFORMS DEPENDENCIES active_model_serializers (~> 0.10.10) activejob-status - app-info (~> 2.1.1) + app-info (~> 2.1.2) awesome_print better_errors binding_of_caller From c68a1d77cd8bd2d7709db43b5122020abcc018b2 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 13 Jan 2020 17:37:34 +0800 Subject: [PATCH 0023/2165] =?UTF-8?q?feat(web):=20=E5=90=AF=E7=94=A8?= =?UTF-8?q?=E6=B8=85=E7=90=86=E8=80=81=E7=89=88=E6=9C=AC=E5=AE=9A=E6=97=B6?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .rubocop.yml | 2 +- .vscode/launch.json | 2 +- Gemfile | 8 ++---- Gemfile.lock | 10 +++++++ Guardfile | 33 +++++++++++----------- app/jobs/app_web_hook_job.rb | 2 +- app/jobs/clean_old_releases_job.rb | 44 +++++++++++++++++++++++++++++ app/jobs/debug_file_teardown_job.rb | 2 +- app/jobs/sentry_job.rb | 4 +-- app/models/channel.rb | 2 ++ app/views/layouts/_footer.html.slim | 2 +- config/application.rb | 5 ++-- config/initializers/sidekiq.rb | 7 ++++- config/routes.rb | 1 + config/schedule.rb | 15 ---------- config/sidekiq.yml | 9 ++++++ config/sidekiq.yml.erb | 5 ---- config/zealot.yml | 9 +++--- lib/tasks/apps.rake | 27 +++--------------- 19 files changed, 111 insertions(+), 78 deletions(-) create mode 100644 app/jobs/clean_old_releases_job.rb delete mode 100644 config/schedule.rb create mode 100644 config/sidekiq.yml delete mode 100644 config/sidekiq.yml.erb diff --git a/.rubocop.yml b/.rubocop.yml index bb4356a0c..d7d2317d1 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -4,7 +4,7 @@ AllCops: - "bin/**/*" - "db/**/*" -Metrics/LineLength: +Layout/LineLength: Max: 215 Metrics/MethodLength: diff --git a/.vscode/launch.json b/.vscode/launch.json index 70f60c954..014375b31 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -1,4 +1,4 @@ -{ +workspace{ "version": "0.2.0", "configurations": [ { diff --git a/Gemfile b/Gemfile index 83341e8d4..05f5036f0 100644 --- a/Gemfile +++ b/Gemfile @@ -47,25 +47,23 @@ gem 'omniauth-google-oauth2', '~> 0.8.0' gem 'omniauth-ldap', github: 'icyleaf/omniauth-ldap', branch: 'master' # 无法和 omniauth-oauth2 兼容,依赖 omniauth 版本比较低 gem 'pundit', '~> 2.1.0' -# Crontab -gem 'whenever', '~> 1.0.0', require: false # 系统信息 gem 'sys-filesystem', '~> 1.3.2' gem 'vmstat', '~> 2.3.0' # 异常报错上报 -gem "sentry-raven" +gem 'sentry-raven' # Jenkins SDK gem 'jenkins_api_client' + # 生成条形码/二维码 gem 'rqrcode' -# 个性化时间解析 -# gem 'chronic' # 异步队列 gem 'activejob-status' gem 'sidekiq', '<= 7' +gem 'sidekiq-cron', '~> 1.0' # Mobile config gem 'settingslogic' diff --git a/Gemfile.lock b/Gemfile.lock index b7920026f..eb5a5b3ca 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -134,6 +134,8 @@ GEM dotenv (= 2.7.5) railties (>= 3.2, < 6.1) erubi (1.9.0) + et-orbi (1.2.2) + tzinfo faraday (0.17.1) multipart-post (>= 1.2, < 3) ffi (1.11.3) @@ -143,6 +145,9 @@ GEM formatador (0.2.5) friendly_id (5.3.0) activerecord (>= 4.0.0) + fugit (1.3.3) + et-orbi (~> 1.1, >= 1.1.8) + raabro (~> 1.1) globalid (0.4.2) activesupport (>= 4.2.0) graphiql-rails (1.7.0) @@ -296,6 +301,7 @@ GEM pundit (2.1.0) activesupport (>= 3.0.0) pyu-ruby-sasl (0.0.3.3) + raabro (1.1.6) rack (2.0.8) rack-cors (1.1.1) rack (>= 2.0.0) @@ -373,6 +379,9 @@ GEM rack (>= 2.0.0) rack-protection (>= 2.0.0) redis (>= 4.1.0) + sidekiq-cron (1.1.0) + fugit (~> 1.1) + sidekiq (>= 4.2.1) simple_form (5.0.1) actionpack (>= 5.0) activemodel (>= 5.0) @@ -487,6 +496,7 @@ DEPENDENCIES sentry-raven settingslogic sidekiq (<= 7) + sidekiq-cron (~> 1.0) simple_form (~> 5.0) slim-rails (~> 3.2.0) spring diff --git a/Guardfile b/Guardfile index 28f8a04f1..a13c3a454 100644 --- a/Guardfile +++ b/Guardfile @@ -7,6 +7,23 @@ end environment = ENV.fetch('RAILS_ENV', 'development') +### Guard::Sidekiq +# available options: +# - :verbose +# - :queue (defaults to "default") can be an array +# - :concurrency (defaults to 1) +# - :timeout +# - :environment (corresponds to RAILS_ENV for the Sidekiq worker) +guard :sidekiq, environment: environment, concurrency: 5 do + watch(%r{^config/sidekiq.yml$}) + watch(%r{^app/jobs/(.+)\.rb$}) +end + +guard :webpacker do + watch('config/webpacker.yml') + watch(%r{^config/webpack/.*$}) +end + # Guard-Rails supports a lot options with default values: # daemon: false # runs the server as a daemon. # debugger: false # enable ruby-debug gem. @@ -42,23 +59,7 @@ guard :bundler do files.each { |file| watch(helper.real_path(file)) } end -### Guard::Sidekiq -# available options: -# - :verbose -# - :queue (defaults to "default") can be an array -# - :concurrency (defaults to 1) -# - :timeout -# - :environment (corresponds to RAILS_ENV for the Sidekiq worker) -guard :sidekiq, environment: environment do - watch(%r{^app/jobs/(.+)\.rb$}) -end - # guard :migrate do # watch(%r{^db/migrate/(\d+).+\.rb}) # watch('db/seeds.rb') # end - -guard :webpacker do - watch('config/webpacker.yml') - watch(%r{^config/webpack/.*$}) -end diff --git a/app/jobs/app_web_hook_job.rb b/app/jobs/app_web_hook_job.rb index fa59ac3fd..e5e311a6f 100644 --- a/app/jobs/app_web_hook_job.rb +++ b/app/jobs/app_web_hook_job.rb @@ -5,7 +5,7 @@ class AppWebHookJob < ApplicationJob include ActionView::Helpers::DateHelper include ActiveSupport::NumberHelper - queue_as :default + queue_as :webhook def perform(event, web_hook, channel) @event = event diff --git a/app/jobs/clean_old_releases_job.rb b/app/jobs/clean_old_releases_job.rb new file mode 100644 index 000000000..b3b7409b9 --- /dev/null +++ b/app/jobs/clean_old_releases_job.rb @@ -0,0 +1,44 @@ +# frozen_string_literal: true + +class CleanOldReleasesJob < ApplicationJob + queue_as :schedule + + def perform + channels = Channel.all + channels.each do |channel| + logger.info("channel #{channel.id}") + clean_old_releases(channel) + end + end + + def clean_old_releases(channel) + versions = channel.release_versions + return if versions.empty? + + latest_version = versions.max + previous_versions = versions.delete_if { |v| v == latest_version} + previous_versions.each do |value| + clean_previouse_build_version(channel, value) + end + end + + def clean_previouse_build_version(channel, release_version) + releases = channel.releases.where(release_version: release_version) + return if releases.size <= 1 + + versions = releases.map(&:version) + latest_version = versions.max + logger.info("Delete channel [#{channel.id}] has versions: #{versions} and latest verison is #{latest_version}") + + remove_releases(channel, releases, latest_version) + end + + def remove_releases(channel, releases, latest_version) + releases.each do |release| + next if release.version == latest_version + + logger.info("Deleting release version #{release.version} on channel [#{channel.id}]") + release.destroy + end + end +end diff --git a/app/jobs/debug_file_teardown_job.rb b/app/jobs/debug_file_teardown_job.rb index f695e90b8..01895b9a7 100644 --- a/app/jobs/debug_file_teardown_job.rb +++ b/app/jobs/debug_file_teardown_job.rb @@ -3,7 +3,7 @@ require 'app-info' class DebugFileTeardownJob < ApplicationJob - queue_as :default + queue_as :app_parse def perform(debug_file) parser = AppInfo.parse debug_file.file.path diff --git a/app/jobs/sentry_job.rb b/app/jobs/sentry_job.rb index de72df3c1..6a6f8c180 100644 --- a/app/jobs/sentry_job.rb +++ b/app/jobs/sentry_job.rb @@ -1,9 +1,9 @@ # frozen_string_literal: true class SentryJob < ApplicationJob - queue_as :default + queue_as :report def perform(event) Raven.send_event(event) end -end \ No newline at end of file +end diff --git a/app/models/channel.rb b/app/models/channel.rb index 90ef07eda..3893e700f 100644 --- a/app/models/channel.rb +++ b/app/models/channel.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + class Channel < ApplicationRecord include FriendlyId diff --git a/app/views/layouts/_footer.html.slim b/app/views/layouts/_footer.html.slim index 8eeda7df6..d16b81b6d 100644 --- a/app/views/layouts/_footer.html.slim +++ b/app/views/layouts/_footer.html.slim @@ -1,7 +1,7 @@ footer.main-footer .float-right.d-none.d-sm-block b Version - = " #{Setting.version}" + = " #{::Setting.version}" strong | Copyright © 2015-2019  a href="https://github.com/getzealot/zealot" Zealot diff --git a/config/application.rb b/config/application.rb index 839d8d253..878d36db0 100644 --- a/config/application.rb +++ b/config/application.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require_relative 'boot' require 'rails' @@ -59,9 +61,8 @@ class Application < Rails::Application } # Set Sidekiq as the back-end for Active Job. - active_job_queue_prefix = ENV['ACTIVE_JOB_QUEUE_PREFIX'] || 'zealot:jobs' + # Sidekiq not suggest to use perfix: https://github.com/mperham/sidekiq/issues/4034#issuecomment-442988685 config.active_job.queue_adapter = :sidekiq - config.active_job.queue_name_prefix = "#{active_job_queue_prefix}_#{Rails.env}" # Action Cable setting to de-couple it from the main Rails process. # config.action_cable.url = ENV['ACTION_CABLE_FRONTEND_URL'] || 'ws://localhost:28080' diff --git a/config/initializers/sidekiq.rb b/config/initializers/sidekiq.rb index 06026ad37..d3dbbda02 100644 --- a/config/initializers/sidekiq.rb +++ b/config/initializers/sidekiq.rb @@ -4,9 +4,14 @@ Sidekiq.configure_server do |config| config.redis = sidekiq_config - config.logger.level = ::Logger.const_get(ENV.fetch('RAILS_LOG_LEVEL', 'info').upcase.to_s) + + logger_level = ::Logger.const_get(ENV.fetch('RAILS_LOG_LEVEL', 'info').upcase.to_s) + logger_level = :debug if Rails.env.development? + config.logger.level = logger_level end Sidekiq.configure_client do |config| config.redis = sidekiq_config end + +Sidekiq::Cron::Job.load_from_hash ::Setting.cron_jobs if Sidekiq.server? diff --git a/config/routes.rb b/config/routes.rb index ed7cc4973..85fad784e 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -65,6 +65,7 @@ get :system_info, to: 'system_info#show' require 'sidekiq/web' + require 'sidekiq/cron/web' mount Sidekiq::Web => 'sidekiq', as: :sidekiq if Rails.env.development? diff --git a/config/schedule.rb b/config/schedule.rb deleted file mode 100644 index a266a2930..000000000 --- a/config/schedule.rb +++ /dev/null @@ -1,15 +0,0 @@ -# Use this file to easily define all of your cron jobs. -# -# It's helpful, but not entirely necessary to understand cron before proceeding. -# http://en.wikipedia.org/wiki/Cron - -# job_type :rake, "cd :path && RAILS_ENV=development bundle exec rake :task --silent :output" - -every 1.day, at: '4:30 am' do - rake 'apps:remove_old', output: { - standard: 'log/cron_apps_remove_old_clean.log', - error: 'log/cron_apps_remove_old.error.log' - } -end - -# Learn more: http://github.com/javan/whenever diff --git a/config/sidekiq.yml b/config/sidekiq.yml new file mode 100644 index 000000000..2b4a66791 --- /dev/null +++ b/config/sidekiq.yml @@ -0,0 +1,9 @@ +--- +:concurrency: 5 +:queues: + - [app_parse, 5] + - [webhook, 5] + - [report, 4] + - [mailers, 3] + - [schedule, 2] + - [default, 1] diff --git a/config/sidekiq.yml.erb b/config/sidekiq.yml.erb deleted file mode 100644 index 88a7bd794..000000000 --- a/config/sidekiq.yml.erb +++ /dev/null @@ -1,5 +0,0 @@ ---- - -:queues: - - <%= ENV['ACTIVE_JOB_QUEUE_PREFIX'] || 'zealot:jobs' %>_<%= ENV['RAILS_ENV'] || 'development' %>_default - - <%= ENV['ACTIVE_JOB_QUEUE_PREFIX'] || 'zealot:jobs' %>_<%= ENV['RAILS_ENV'] || 'development' %>_mailers diff --git a/config/zealot.yml b/config/zealot.yml index 8b0ba8cac..dc505c4cf 100644 --- a/config/zealot.yml +++ b/config/zealot.yml @@ -1,9 +1,10 @@ default: &base version: 4.0.0 - uploads: - path: '' - backup: - path: '' + cron_jobs: + clean_old_releases: + cron: '0 6 * * *' + class: 'CleanOldReleasesJob' + queue: schedule development: <<: *base diff --git a/lib/tasks/apps.rake b/lib/tasks/apps.rake index bfa1ff6d6..a9d36e4f4 100644 --- a/lib/tasks/apps.rake +++ b/lib/tasks/apps.rake @@ -1,7 +1,7 @@ require 'fileutils' -namespace :apps do - desc 'Mobile | Remove old app history versions except the latest build version by each release version' +namespace :zealot do + desc 'Zealot | Remove old app history versions except the latest build version by each release version' task remove_old: :environment do apps = App.all apps_count = apps.count @@ -47,10 +47,10 @@ namespace :apps do end end - Rake::Task['apps:cleanup'].invoke + # Rake::Task['apps:cleanup'].invoke end - desc 'Mobile | Reverse remove directory if release is not exist of app' + desc 'Zealot | Reverse remove directory if release is not exist of app' task cleanup: :environment do store_path = File.join(Rails.root, 'public', 'uploads') Dir.glob("#{store_path}/apps/*").each do |app_path| @@ -69,23 +69,4 @@ namespace :apps do `find #{File.join(store_path, 'apps')} -type d -depth -empty -exec rmdir "{}" \;` end - - desc 'Mobile | List all app details' - task list: :environment do - App.all.each do |app| - puts "#{app.id} - #{app.device_type} - #{app.name}" - app.release_versions.each do |version| - puts "-> #{version}" - end - end - end - - desc 'Mobile | Generate app key' - task update_app_key: :environment do - App.all.each do |app| - next unless app.key.blank? - app.key = Digest::MD5.hexdigest(SecureRandom.uuid + app.identifier) - app.save! - end - end end From f9dba45839cf9aacdbca0cd797f3eda3d1eb911b Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 13 Jan 2020 17:57:13 +0800 Subject: [PATCH 0024/2165] =?UTF-8?q?feat(web):=20=E6=B8=85=E7=90=86?= =?UTF-8?q?=E8=80=81=E7=89=88=E6=9C=AC=E4=BB=BB=E5=8A=A1=E5=8F=AF=E9=80=9A?= =?UTF-8?q?=E8=BF=87=E7=8E=AF=E5=A2=83=E5=8F=98=E9=87=8F=E7=A6=81=E6=AD=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/initializers/sidekiq.rb | 9 ++++- lib/tasks/apps.rake | 72 ---------------------------------- 2 files changed, 8 insertions(+), 73 deletions(-) delete mode 100644 lib/tasks/apps.rake diff --git a/config/initializers/sidekiq.rb b/config/initializers/sidekiq.rb index d3dbbda02..3e883afb7 100644 --- a/config/initializers/sidekiq.rb +++ b/config/initializers/sidekiq.rb @@ -14,4 +14,11 @@ config.redis = sidekiq_config end -Sidekiq::Cron::Job.load_from_hash ::Setting.cron_jobs if Sidekiq.server? +if Sidekiq.server? + cron_jobs = ::Setting.cron_jobs + + keep_uploads = ENV['ZEALOT_KEEP_UPLOADS'] + keep_uploads = keep_uploads.present? && keep_uploads.downcase != 'false' + cron_jobs.delete_if { |k, _| keep_uploads && k == 'clean_old_releases' } + Sidekiq::Cron::Job.load_from_hash cron_jobs +end diff --git a/lib/tasks/apps.rake b/lib/tasks/apps.rake deleted file mode 100644 index a9d36e4f4..000000000 --- a/lib/tasks/apps.rake +++ /dev/null @@ -1,72 +0,0 @@ -require 'fileutils' - -namespace :zealot do - desc 'Zealot | Remove old app history versions except the latest build version by each release version' - task remove_old: :environment do - apps = App.all - apps_count = apps.count - apps.each_with_index do |app, index| - puts "[#{index + 1}/#{apps_count}] #{app.id} - #{app.device_type} - #{app.name} - #{Time.zone.now.strftime('%Y%m%d%H%M')}" - - release_versions = app.release_versions - latest_version = release_versions.max - - puts " -> latest RELEASE version:\t#{latest_version}" - puts " -> avaiable RELEASE versions:\t#{release_versions.to_a.join(', ')}" - history_versions = release_versions.delete_if { |v| v == latest_version } - - next if history_versions.empty? - - puts " -> history RELEASE versions:\t#{history_versions.join(', ')}" - puts ' -> remove old versions with each history release version' - - history_versions.each do |version| - releases = Release.where(app: app, release_version: version) - print " * #{version} (#{releases.size})" - - if releases.size > 1 - build_versions = releases.map(&:version) - latest_build_version = build_versions.max - - puts ' [CLEAN & KEEP LATEST]' - puts " avaiable: #{build_versions.join(', ')}" - puts " latest: #{latest_build_version}" - print ' removed: ' - releases.each do |r| - next if r.version == latest_build_version - r.remove_file - r.remove_icon - FileUtils.rm_rf(File.join(Rails.root, 'public', 'uploads', 'apps', "a#{app.id}", "r#{r.id}")) - r.destroy - print "#{r.version}, " - end - puts '' - else - puts ' [SKIP]' - end - end - end - - # Rake::Task['apps:cleanup'].invoke - end - - desc 'Zealot | Reverse remove directory if release is not exist of app' - task cleanup: :environment do - store_path = File.join(Rails.root, 'public', 'uploads') - Dir.glob("#{store_path}/apps/*").each do |app_path| - Dir.glob("#{app_path}/*").each do |release_path| - print release_path - release_id = File.basename(release_path)[1..-1] - begin - Release.find(release_id) - rescue - print ' removed' - FileUtils.rm_rf release_path - end - puts '' - end - end - - `find #{File.join(store_path, 'apps')} -type d -depth -empty -exec rmdir "{}" \;` - end -end From 48707ce8ea862b8ac41989d055767a8701ae0001 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Sat, 11 Jan 2020 16:15:16 +0800 Subject: [PATCH 0025/2165] =?UTF-8?q?chore:=20=E6=8B=86=E5=88=86=E6=9E=84?= =?UTF-8?q?=E5=BB=BA=20docker=20=E9=95=9C=E5=83=8F=E6=9E=84=E5=BB=BA?= =?UTF-8?q?=E5=B9=B6=E5=87=8F=E5=B0=91=E4=BD=93=E7=A7=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 99 +++++++++++++++++++++++++++++++++------------- docker-endpoint.sh | 6 +-- 2 files changed, 75 insertions(+), 30 deletions(-) diff --git a/Dockerfile b/Dockerfile index 3b7d3d9aa..5a68f5d78 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,8 +1,69 @@ +FROM ruby:2.6-alpine as builder + +ARG BUILD_PACKAGES="build-base libxml2 libxslt git" +ARG DEV_PACKAGES="libxml2-dev libxslt-dev yaml-dev imagemagick-dev postgresql-dev nodejs npm yarn" +ARG RUBY_PACKAGES="tzdata" + +ARG REPLACE_CHINA_MIRROR="true" +ARG ORIGINAL_REPO_URL="http://dl-cdn.alpinelinux.org" +ARG MIRROR_REPO_URL="https://mirrors.tuna.tsinghua.edu.cn" +ARG RUBYGEMS_SOURCE="https://gems.ruby-china.com/" +ARG NPM_REGISTRY="https://registry.npm.taobao.org" +ARG RUBY_GEMS="bundler" +ARG APP_ROOT="/app" + +ENV BUNDLE_APP_CONFIG="$APP_ROOT/.bundle" \ + RAILS_ENV="production" + +# System dependencies +RUN set -ex && \ + if [[ "$REPLACE_CHINA_MIRROR" == "true" ]]; then \ + REPLACE_STRING=$(echo $MIRROR_REPO_URL | sed 's/\//\\\//g') && \ + SEARCH_STRING=$(echo $ORIGINAL_REPO_URL | sed 's/\//\\\//g') && \ + sed -i "s/$SEARCH_STRING/$REPLACE_STRING/g" /etc/apk/repositories && \ + gem sources --add $RUBYGEMS_SOURCE --remove https://rubygems.org/ && \ + bundle config mirror.https://rubygems.org $RUBYGEMS_SOURCE; \ + fi && \ + apk --update --no-cache add $BUILD_PACKAGES $DEV_PACKAGES $RUBY_PACKAGES && \ + if [[ "$REPLACE_CHINA_MIRROR" == "true" ]]; then \ + yarn config set registry $NPM_REGISTRY; \ + fi && \ + gem install $RUBY_GEMS + +WORKDIR $APP_ROOT + +# Node dependencies +COPY package.json yarn.lock ./ +RUN yarn install + +# Ruby dependencies +COPY Gemfile Gemfile.lock ./ +RUN bundle config --global frozen 1 && \ + bundle install --path=vendor/bundle --without development test \ + --jobs `expr $(cat /proc/cpuinfo | grep -c "cpu cores") - 1` --retry 3 + +COPY . $APP_ROOT +RUN SECRET_TOKEN=precompile_placeholder bin/rails assets:precompile + +# Remove folders not needed in resulting image +RUN rm -rf node_modules tmp/cache spec + +################################################################################## + FROM ruby:2.6-alpine ARG BUILD_DATE ARG VCS_REF ARG VERSION + +ARG REPLACE_CHINA_MIRROR="true" +ARG ORIGINAL_REPO_URL="http://dl-cdn.alpinelinux.org" +ARG MIRROR_REPO_URL="https://mirrors.tuna.tsinghua.edu.cn" +ARG RUBYGEMS_SOURCE="https://gems.ruby-china.com/" +ARG PACKAGES="tzdata imagemagick imagemagick-dev postgresql-dev" +ARG RUBY_GEMS="bundler" +ARG APP_ROOT=/app + LABEL im.ews.zealot.build-date=$BUILD_DATE \ im.ews.zealot.vcs-ref=$VCS_REF \ im.ews.zealot.version=$VERSION \ @@ -12,44 +73,28 @@ LABEL im.ews.zealot.build-date=$BUILD_DATE \ im.ews.zealot.vcs-url="https://github.com/getzealot/zealot" \ im.ews.zealot.maintaner="icyleaf " -ENV BUILD_PACKAGES="build-base libxml2 libxslt libxslt imagemagick tzdata git" \ - DEV_PACKAGES="ruby-dev curl-dev libxml2-dev libxslt-dev imagemagick-dev postgresql-dev" \ - RUBY_PACKAGES="ruby yaml nodejs npm yarn" \ - RUBY_GEMS="bundler" \ - RUBYGEMS_SOURCE="https://gems.ruby-china.com/" \ - ORIGINAL_REPO_URL="http://dl-cdn.alpinelinux.org" \ - MIRROR_REPO_URL="https://mirrors.tuna.tsinghua.edu.cn" \ - NPM_REGISTRY="https://registry.npm.taobao.org" \ +ENV TZ="Asia/Shanghai" \ + BUNDLE_APP_CONFIG="$APP_ROOT/.bundle" \ ZEALOT_VERSION="$VERSION" \ ZEALOT_VCS_REF="$VCS_REF" \ - TZ="Asia/Shanghai" \ RAILS_ENV="production" # System dependencies RUN set -ex && \ - REPLACE_STRING=$(echo $MIRROR_REPO_URL | sed 's/\//\\\//g') && \ - SEARCH_STRING=$(echo $ORIGINAL_REPO_URL | sed 's/\//\\\//g') && \ - sed -i "s/$SEARCH_STRING/$REPLACE_STRING/g" /etc/apk/repositories && \ - apk --update --no-cache add $BUILD_PACKAGES $DEV_PACKAGES $RUBY_PACKAGES && \ + if [[ "$REPLACE_CHINA_MIRROR" == "true" ]]; then \ + REPLACE_STRING=$(echo $MIRROR_REPO_URL | sed 's/\//\\\//g') && \ + SEARCH_STRING=$(echo $ORIGINAL_REPO_URL | sed 's/\//\\\//g') && \ + sed -i "s/$SEARCH_STRING/$REPLACE_STRING/g" /etc/apk/repositories && \ + gem sources --add $RUBYGEMS_SOURCE --remove https://rubygems.org/; \ + fi && \ + apk --update --no-cache add $PACKAGES && \ cp /usr/share/zoneinfo/$TZ /etc/localtime && \ echo $TZ > /etc/timezone && \ - gem sources --add $RUBYGEMS_SOURCE --remove https://rubygems.org/ && \ gem install $RUBY_GEMS -WORKDIR /app - -# Node dependencies -COPY package.json yarn.lock ./ -RUN yarn install - -# Ruby dependencies -COPY Gemfile Gemfile.lock ./ -RUN bundle install --without development test --jobs `expr $(cat /proc/cpuinfo | grep -c "cpu cores") - 1` --retry 3 +WORKDIR $APP_ROOT -# Compile Assets -COPY . . -RUN SECRET_TOKEN=precompile_placeholder rails assets:precompile && \ - yarn cache clean +COPY --from=builder $APP_ROOT $APP_ROOT ENV ZEALOT_VERSION="4.0.0" diff --git a/docker-endpoint.sh b/docker-endpoint.sh index 2f6ef65e2..7450d5625 100755 --- a/docker-endpoint.sh +++ b/docker-endpoint.sh @@ -11,9 +11,9 @@ ZEALOT_READY_FILE=/app/zealot.ready if [ ! -f "$ZEALOT_READY_FILE" ]; then echo "Waiting zealot to be ready please ... tea time" # Init database - rails db:create - rails db:migrate - rails db:seed + bin/rails db:create + bin/rails db:migrate + bin/rails db:seed # Update cron jobs bundle exec whenever --update-crontab From b4b01e22991033b3b2aa6090d8db36b92ca9e1e9 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 13 Jan 2020 19:39:54 +0800 Subject: [PATCH 0026/2165] =?UTF-8?q?chore:=20=E6=B8=85=E7=90=86=20docker?= =?UTF-8?q?=20=E5=AE=B9=E5=99=A8=E6=97=A0=E7=94=A8=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .dockerignore | 3 +++ Dockerfile | 3 ++- Gemfile.lock | 4 ---- lib/tasks/docker.rake | 7 +++++++ 4 files changed, 12 insertions(+), 5 deletions(-) create mode 100644 lib/tasks/docker.rake diff --git a/.dockerignore b/.dockerignore index a7d5fdb81..58d66218e 100644 --- a/.dockerignore +++ b/.dockerignore @@ -29,6 +29,9 @@ README.* .ruby-gemset .ruby-version .*env +.powenv +.rvmrc +.byebug_history .history .bundle .vscode diff --git a/Dockerfile b/Dockerfile index 5a68f5d78..e22ba59ba 100644 --- a/Dockerfile +++ b/Dockerfile @@ -46,7 +46,8 @@ COPY . $APP_ROOT RUN SECRET_TOKEN=precompile_placeholder bin/rails assets:precompile # Remove folders not needed in resulting image -RUN rm -rf node_modules tmp/cache spec +RUN rm -rf node_modules tmp/cache spec .browserslistrc babel.config.js \ + package.json postcss.config.js yarn.lock ################################################################################## diff --git a/Gemfile.lock b/Gemfile.lock index eb5a5b3ca..c930c6982 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -109,7 +109,6 @@ GEM mini_mime (>= 0.1.3) case_transform (0.2) activesupport - chronic (0.10.2) chunky_png (1.3.11) coderay (1.1.2) concurrent-ruby (1.1.5) @@ -439,8 +438,6 @@ GEM websocket-driver (0.7.1) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.4) - whenever (1.0.0) - chronic (>= 0.6.3) zeitwerk (2.2.2) PLATFORMS @@ -509,7 +506,6 @@ DEPENDENCIES vmstat (~> 2.3.0) web-console (>= 3.3.0) webpacker (~> 4.2) - whenever (~> 1.0.0) RUBY VERSION ruby 2.6.5p114 diff --git a/lib/tasks/docker.rake b/lib/tasks/docker.rake new file mode 100644 index 000000000..ae1594045 --- /dev/null +++ b/lib/tasks/docker.rake @@ -0,0 +1,7 @@ +# frozen_string_literal: true + +namespace :docker do + task :build do + system('docker build -t icyleafcn/zealot:dev .') + end +end From dd60e2482029f68aaeaae568d5bb638c92a33270 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 13 Jan 2020 20:14:40 +0800 Subject: [PATCH 0027/2165] =?UTF-8?q?chore:=20=E7=A7=BB=E9=99=A4=20tzinfo-?= =?UTF-8?q?data=20gem?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 7 ++++--- Gemfile.lock | 1 - docker-endpoint.sh | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Gemfile b/Gemfile index 05f5036f0..ef96e0e79 100644 --- a/Gemfile +++ b/Gemfile @@ -95,8 +95,8 @@ group :development do gem 'terminal-notifier-guard' # IDE tools(VSCode) - gem "ruby-debug-ide" - gem "debase" + gem 'debase' + gem 'ruby-debug-ide' # 加速开发环境 gem 'spring' @@ -121,4 +121,5 @@ group :development, :test do gem 'pry-rescue' end -gem 'tzinfo-data', platforms: %i[mingw mswin x64_mingw jruby] +# docker 部署无需此 gem +# gem 'tzinfo-data', platforms: %i[mingw mswin x64_mingw jruby] diff --git a/Gemfile.lock b/Gemfile.lock index c930c6982..f63ec5ef0 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -502,7 +502,6 @@ DEPENDENCIES terminal-notifier terminal-notifier-guard turbolinks (~> 5) - tzinfo-data vmstat (~> 2.3.0) web-console (>= 3.3.0) webpacker (~> 4.2) diff --git a/docker-endpoint.sh b/docker-endpoint.sh index 7450d5625..a398fdd0c 100755 --- a/docker-endpoint.sh +++ b/docker-endpoint.sh @@ -3,7 +3,7 @@ set -eo pipefail cd /app -mkdir -p tmp/pids tmp/cache tmp/sockets log +mkdir -p tmp/pids tmp/cache tmp/uploads tmp/sockets log ZEALOT_READY_FILE=/app/zealot.ready From 294ce424c00f95bb0861b85c298128d703f851de Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 14 Jan 2020 20:31:55 +0800 Subject: [PATCH 0028/2165] =?UTF-8?q?feat:=20sentry=20=E9=9D=99=E9=BB=98?= =?UTF-8?q?=E8=BF=90=E8=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/initializers/sentry.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/config/initializers/sentry.rb b/config/initializers/sentry.rb index 7e0fa3874..5e4933a2d 100644 --- a/config/initializers/sentry.rb +++ b/config/initializers/sentry.rb @@ -3,6 +3,7 @@ # 默认开启 Sentry,如果不想使用设置 ZEALOT_SENTRY_DISABLE=1 if ENV['ZEALOT_SENTRY_DISABLE'].blank? Raven.configure do |config| + config.silence_ready = true config.dsn = ENV['ZEALOT_SENTRY_DNS'] || 'https://133aefa9f52448a1a7900ba9d02f93e1@sentry.io/1878137' config.excluded_exceptions += ['ActionController::RoutingError', 'ActiveRecord::RecordNotFound'] config.sanitize_fields = Rails.application.config.filter_parameters.map(&:to_s) From 11163d909813b0073de1c8048f636ac412aa5cf0 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 14 Jan 2020 20:32:21 +0800 Subject: [PATCH 0029/2165] =?UTF-8?q?style:=20=E6=9B=B4=E6=96=B0=E4=BE=9D?= =?UTF-8?q?=E8=B5=96=E5=BA=93=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- yarn.lock | 5418 ++++++++++++++++++++++++++--------------------------- 1 file changed, 2676 insertions(+), 2742 deletions(-) diff --git a/yarn.lock b/yarn.lock index 11bcabce3..0c6a3fc62 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,823 +2,744 @@ # yarn lockfile v1 -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d" - integrity sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw== +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e" + integrity sha1-M+JZA9dIEYFTThLsCiXxa2/PQZ4= dependencies: - "@babel/highlight" "^7.0.0" + "@babel/highlight" "^7.8.3" + +"@babel/compat-data@^7.8.0", "@babel/compat-data@^7.8.1": + version "7.8.1" + resolved "https://registry.npm.taobao.org/@babel/compat-data/download/@babel/compat-data-7.8.1.tgz#fc0bbbb7991e4fb2b47e168e60f2cc2c41680be9" + integrity sha1-/Au7t5keT7K0fhaOYPLMLEFoC+k= + dependencies: + browserslist "^4.8.2" + invariant "^2.2.4" + semver "^5.5.0" "@babel/core@^7.7.2": - version "7.7.2" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.7.2.tgz#ea5b99693bcfc058116f42fa1dd54da412b29d91" - integrity sha512-eeD7VEZKfhK1KUXGiyPFettgF3m513f8FoBSWiQ1xTvl1RAopLs42Wp9+Ze911I6H0N9lNqJMDgoZT7gHsipeQ== - dependencies: - "@babel/code-frame" "^7.5.5" - "@babel/generator" "^7.7.2" - "@babel/helpers" "^7.7.0" - "@babel/parser" "^7.7.2" - "@babel/template" "^7.7.0" - "@babel/traverse" "^7.7.2" - "@babel/types" "^7.7.2" + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/core/download/@babel/core-7.8.3.tgz?cache=0&sync_timestamp=1578956762857&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.8.3.tgz#30b0ebb4dd1585de6923a0b4d179e0b9f5d82941" + integrity sha1-MLDrtN0Vhd5pI6C00XngufXYKUE= + dependencies: + "@babel/code-frame" "^7.8.3" + "@babel/generator" "^7.8.3" + "@babel/helpers" "^7.8.3" + "@babel/parser" "^7.8.3" + "@babel/template" "^7.8.3" + "@babel/traverse" "^7.8.3" + "@babel/types" "^7.8.3" convert-source-map "^1.7.0" debug "^4.1.0" + gensync "^1.0.0-beta.1" json5 "^2.1.0" lodash "^4.17.13" resolve "^1.3.2" semver "^5.4.1" source-map "^0.5.0" -"@babel/generator@^7.6.0": - version "7.6.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.6.0.tgz#e2c21efbfd3293ad819a2359b448f002bfdfda56" - integrity sha512-Ms8Mo7YBdMMn1BYuNtKuP/z0TgEIhbcyB8HVR6PPNYp4P61lMsABiS4A3VG1qznjXVCf3r+fVHhm4efTYVsySA== +"@babel/generator@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/generator/download/@babel/generator-7.8.3.tgz#0e22c005b0a94c1c74eafe19ef78ce53a4d45c03" + integrity sha1-DiLABbCpTBx06v4Z73jOU6TUXAM= dependencies: - "@babel/types" "^7.6.0" + "@babel/types" "^7.8.3" jsesc "^2.5.1" lodash "^4.17.13" source-map "^0.5.0" - trim-right "^1.0.1" - -"@babel/generator@^7.7.2": - version "7.7.2" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.7.2.tgz#2f4852d04131a5e17ea4f6645488b5da66ebf3af" - integrity sha512-WthSArvAjYLz4TcbKOi88me+KmDJdKSlfwwN8CnUYn9jBkzhq0ZEPuBfkAWIvjJ3AdEV1Cf/+eSQTnp3IDJKlQ== - dependencies: - "@babel/types" "^7.7.2" - jsesc "^2.5.1" - lodash "^4.17.13" - source-map "^0.5.0" - -"@babel/helper-annotate-as-pure@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.0.0.tgz#323d39dd0b50e10c7c06ca7d7638e6864d8c5c32" - integrity sha512-3UYcJUj9kvSLbLbUIfQTqzcy5VX7GRZ/CCDrnOaZorFFM01aXp1+GJwuFGV4NDDoAS+mOUyHcO6UD/RfqOks3Q== - dependencies: - "@babel/types" "^7.0.0" -"@babel/helper-annotate-as-pure@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.7.0.tgz#efc54032d43891fe267679e63f6860aa7dbf4a5e" - integrity sha512-k50CQxMlYTYo+GGyUGFwpxKVtxVJi9yh61sXZji3zYHccK9RYliZGSTOgci85T+r+0VFN2nWbGM04PIqwfrpMg== +"@babel/helper-annotate-as-pure@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/helper-annotate-as-pure/download/@babel/helper-annotate-as-pure-7.8.3.tgz#60bc0bc657f63a0924ff9a4b4a0b24a13cf4deee" + integrity sha1-YLwLxlf2Ogkk/5pLSgskoTz03u4= dependencies: - "@babel/types" "^7.7.0" + "@babel/types" "^7.8.3" -"@babel/helper-builder-binary-assignment-operator-visitor@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.1.0.tgz#6b69628dfe4087798e0c4ed98e3d4a6b2fbd2f5f" - integrity sha512-qNSR4jrmJ8M1VMM9tibvyRAHXQs2PmaksQF7c1CGJNipfe3D8p+wgNwgso/P2A2r2mdgBWAXljNWR0QRZAMW8w== - dependencies: - "@babel/helper-explode-assignable-expression" "^7.1.0" - "@babel/types" "^7.0.0" - -"@babel/helper-call-delegate@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/helper-call-delegate/-/helper-call-delegate-7.4.4.tgz#87c1f8ca19ad552a736a7a27b1c1fcf8b1ff1f43" - integrity sha512-l79boDFJ8S1c5hvQvG+rc+wHw6IuH7YldmRKsYtpbawsxURu/paVy57FZMomGK22/JckepaikOkY0MoAmdyOlQ== - dependencies: - "@babel/helper-hoist-variables" "^7.4.4" - "@babel/traverse" "^7.4.4" - "@babel/types" "^7.4.4" - -"@babel/helper-create-class-features-plugin@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.7.0.tgz#bcdc223abbfdd386f94196ae2544987f8df775e8" - integrity sha512-MZiB5qvTWoyiFOgootmRSDV1udjIqJW/8lmxgzKq6oDqxdmHUjeP2ZUOmgHdYjmUVNABqRrHjYAYRvj8Eox/UA== - dependencies: - "@babel/helper-function-name" "^7.7.0" - "@babel/helper-member-expression-to-functions" "^7.7.0" - "@babel/helper-optimise-call-expression" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.7.0" - "@babel/helper-split-export-declaration" "^7.7.0" - -"@babel/helper-create-regexp-features-plugin@^7.7.0": - version "7.7.2" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.7.2.tgz#6f20443778c8fce2af2ff4206284afc0ced65db6" - integrity sha512-pAil/ZixjTlrzNpjx+l/C/wJk002Wo7XbbZ8oujH/AoJ3Juv0iN/UTcPUHXKMFLqsfS0Hy6Aow8M31brUYBlQQ== - dependencies: - "@babel/helper-regex" "^7.4.4" - regexpu-core "^4.6.0" - -"@babel/helper-define-map@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.7.0.tgz#60b0e9fd60def9de5054c38afde8c8ee409c7529" - integrity sha512-kPKWPb0dMpZi+ov1hJiwse9dWweZsz3V9rP4KdytnX1E7z3cTNmFGglwklzFPuqIcHLIY3bgKSs4vkwXXdflQA== +"@babel/helper-builder-binary-assignment-operator-visitor@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/helper-builder-binary-assignment-operator-visitor/download/@babel/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz#c84097a427a061ac56a1c30ebf54b7b22d241503" + integrity sha1-yECXpCegYaxWocMOv1S3si0kFQM= dependencies: - "@babel/helper-function-name" "^7.7.0" - "@babel/types" "^7.7.0" - lodash "^4.17.13" + "@babel/helper-explode-assignable-expression" "^7.8.3" + "@babel/types" "^7.8.3" -"@babel/helper-explode-assignable-expression@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.1.0.tgz#537fa13f6f1674df745b0c00ec8fe4e99681c8f6" - integrity sha512-NRQpfHrJ1msCHtKjbzs9YcMmJZOg6mQMmGRB+hbamEdG5PNpaSm95275VD92DvJKuyl0s2sFiDmMZ+EnnvufqA== +"@babel/helper-call-delegate@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/helper-call-delegate/download/@babel/helper-call-delegate-7.8.3.tgz#de82619898aa605d409c42be6ffb8d7204579692" + integrity sha1-3oJhmJiqYF1AnEK+b/uNcgRXlpI= dependencies: - "@babel/traverse" "^7.1.0" - "@babel/types" "^7.0.0" + "@babel/helper-hoist-variables" "^7.8.3" + "@babel/traverse" "^7.8.3" + "@babel/types" "^7.8.3" -"@babel/helper-function-name@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.1.0.tgz#a0ceb01685f73355d4360c1247f582bfafc8ff53" - integrity sha512-A95XEoCpb3TO+KZzJ4S/5uW5fNe26DjBGqf1o9ucyLyCmi1dXq/B3c8iaWTfBk3VvetUxl16e8tIrd5teOCfGw== +"@babel/helper-compilation-targets@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/helper-compilation-targets/download/@babel/helper-compilation-targets-7.8.3.tgz#2deedc816fd41dca7355ef39fd40c9ea69f0719a" + integrity sha1-Le7cgW/UHcpzVe85/UDJ6mnwcZo= dependencies: - "@babel/helper-get-function-arity" "^7.0.0" - "@babel/template" "^7.1.0" - "@babel/types" "^7.0.0" + "@babel/compat-data" "^7.8.1" + browserslist "^4.8.2" + invariant "^2.2.4" + levenary "^1.1.0" + semver "^5.5.0" -"@babel/helper-function-name@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.7.0.tgz#44a5ad151cfff8ed2599c91682dda2ec2c8430a3" - integrity sha512-tDsJgMUAP00Ugv8O2aGEua5I2apkaQO7lBGUq1ocwN3G23JE5Dcq0uh3GvFTChPa4b40AWiAsLvCZOA2rdnQ7Q== +"@babel/helper-create-class-features-plugin@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/helper-create-class-features-plugin/download/@babel/helper-create-class-features-plugin-7.8.3.tgz#5b94be88c255f140fd2c10dd151e7f98f4bff397" + integrity sha1-W5S+iMJV8UD9LBDdFR5/mPS/85c= dependencies: - "@babel/helper-get-function-arity" "^7.7.0" - "@babel/template" "^7.7.0" - "@babel/types" "^7.7.0" + "@babel/helper-function-name" "^7.8.3" + "@babel/helper-member-expression-to-functions" "^7.8.3" + "@babel/helper-optimise-call-expression" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-replace-supers" "^7.8.3" + "@babel/helper-split-export-declaration" "^7.8.3" -"@babel/helper-get-function-arity@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.0.0.tgz#83572d4320e2a4657263734113c42868b64e49c3" - integrity sha512-r2DbJeg4svYvt3HOS74U4eWKsUAMRH01Z1ds1zx8KNTPtpTL5JAsdFv8BNyOpVqdFhHkkRDIg5B4AsxmkjAlmQ== +"@babel/helper-create-regexp-features-plugin@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/helper-create-regexp-features-plugin/download/@babel/helper-create-regexp-features-plugin-7.8.3.tgz#c774268c95ec07ee92476a3862b75cc2839beb79" + integrity sha1-x3QmjJXsB+6SR2o4YrdcwoOb63k= dependencies: - "@babel/types" "^7.0.0" - -"@babel/helper-get-function-arity@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.7.0.tgz#c604886bc97287a1d1398092bc666bc3d7d7aa2d" - integrity sha512-tLdojOTz4vWcEnHWHCuPN5P85JLZWbm5Fx5ZsMEMPhF3Uoe3O7awrbM2nQ04bDOUToH/2tH/ezKEOR8zEYzqyw== - dependencies: - "@babel/types" "^7.7.0" + "@babel/helper-regex" "^7.8.3" + regexpu-core "^4.6.0" -"@babel/helper-hoist-variables@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.4.4.tgz#0298b5f25c8c09c53102d52ac4a98f773eb2850a" - integrity sha512-VYk2/H/BnYbZDDg39hr3t2kKyifAm1W6zHRfhx8jGjIHpQEBv9dry7oQ2f3+J703TLu69nYdxsovl0XYfcnK4w== +"@babel/helper-define-map@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/helper-define-map/download/@babel/helper-define-map-7.8.3.tgz#a0655cad5451c3760b726eba875f1cd8faa02c15" + integrity sha1-oGVcrVRRw3YLcm66h18c2PqgLBU= dependencies: - "@babel/types" "^7.4.4" + "@babel/helper-function-name" "^7.8.3" + "@babel/types" "^7.8.3" + lodash "^4.17.13" -"@babel/helper-hoist-variables@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.7.0.tgz#b4552e4cfe5577d7de7b183e193e84e4ec538c81" - integrity sha512-LUe/92NqsDAkJjjCEWkNe+/PcpnisvnqdlRe19FahVapa4jndeuJ+FBiTX1rcAKWKcJGE+C3Q3tuEuxkSmCEiQ== +"@babel/helper-explode-assignable-expression@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/helper-explode-assignable-expression/download/@babel/helper-explode-assignable-expression-7.8.3.tgz#a728dc5b4e89e30fc2dfc7d04fa28a930653f982" + integrity sha1-pyjcW06J4w/C38fQT6KKkwZT+YI= dependencies: - "@babel/types" "^7.7.0" + "@babel/traverse" "^7.8.3" + "@babel/types" "^7.8.3" -"@babel/helper-member-expression-to-functions@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.5.5.tgz#1fb5b8ec4453a93c439ee9fe3aeea4a84b76b590" - integrity sha512-5qZ3D1uMclSNqYcXqiHoA0meVdv+xUEex9em2fqMnrk/scphGlGgg66zjMrPJESPwrFJ6sbfFQYUSa0Mz7FabA== +"@babel/helper-function-name@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/helper-function-name/download/@babel/helper-function-name-7.8.3.tgz#eeeb665a01b1f11068e9fb86ad56a1cb1a824cca" + integrity sha1-7utmWgGx8RBo6fuGrVahyxqCTMo= dependencies: - "@babel/types" "^7.5.5" + "@babel/helper-get-function-arity" "^7.8.3" + "@babel/template" "^7.8.3" + "@babel/types" "^7.8.3" -"@babel/helper-member-expression-to-functions@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.7.0.tgz#472b93003a57071f95a541ea6c2b098398bcad8a" - integrity sha512-QaCZLO2RtBcmvO/ekOLp8p7R5X2JriKRizeDpm5ChATAFWrrYDcDxPuCIBXKyBjY+i1vYSdcUTMIb8psfxHDPA== +"@babel/helper-get-function-arity@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.8.3.tgz#b894b947bd004381ce63ea1db9f08547e920abd5" + integrity sha1-uJS5R70AQ4HOY+odufCFR+kgq9U= dependencies: - "@babel/types" "^7.7.0" + "@babel/types" "^7.8.3" -"@babel/helper-module-imports@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.0.0.tgz#96081b7111e486da4d2cd971ad1a4fe216cc2e3d" - integrity sha512-aP/hlLq01DWNEiDg4Jn23i+CXxW/owM4WpDLFUbpjxe4NS3BhLVZQ5i7E0ZrxuQ/vwekIeciyamgB1UIYxxM6A== +"@babel/helper-hoist-variables@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/helper-hoist-variables/download/@babel/helper-hoist-variables-7.8.3.tgz#1dbe9b6b55d78c9b4183fc8cdc6e30ceb83b7134" + integrity sha1-Hb6ba1XXjJtBg/yM3G4wzrg7cTQ= dependencies: - "@babel/types" "^7.0.0" + "@babel/types" "^7.8.3" -"@babel/helper-module-imports@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.7.0.tgz#99c095889466e5f7b6d66d98dffc58baaf42654d" - integrity sha512-Dv3hLKIC1jyfTkClvyEkYP2OlkzNvWs5+Q8WgPbxM5LMeorons7iPP91JM+DU7tRbhqA1ZeooPaMFvQrn23RHw== +"@babel/helper-member-expression-to-functions@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/helper-member-expression-to-functions/download/@babel/helper-member-expression-to-functions-7.8.3.tgz#659b710498ea6c1d9907e0c73f206eee7dadc24c" + integrity sha1-ZZtxBJjqbB2ZB+DHPyBu7n2twkw= dependencies: - "@babel/types" "^7.7.0" + "@babel/types" "^7.8.3" -"@babel/helper-module-transforms@^7.1.0": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.5.5.tgz#f84ff8a09038dcbca1fd4355661a500937165b4a" - integrity sha512-jBeCvETKuJqeiaCdyaheF40aXnnU1+wkSiUs/IQg3tB85up1LyL8x77ClY8qJpuRJUcXQo+ZtdNESmZl4j56Pw== +"@babel/helper-module-imports@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/helper-module-imports/download/@babel/helper-module-imports-7.8.3.tgz#7fe39589b39c016331b6b8c3f441e8f0b1419498" + integrity sha1-f+OVibOcAWMxtrjD9EHo8LFBlJg= dependencies: - "@babel/helper-module-imports" "^7.0.0" - "@babel/helper-simple-access" "^7.1.0" - "@babel/helper-split-export-declaration" "^7.4.4" - "@babel/template" "^7.4.4" - "@babel/types" "^7.5.5" - lodash "^4.17.13" + "@babel/types" "^7.8.3" -"@babel/helper-module-transforms@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.7.0.tgz#154a69f0c5b8fd4d39e49750ff7ac4faa3f36786" - integrity sha512-rXEefBuheUYQyX4WjV19tuknrJFwyKw0HgzRwbkyTbB+Dshlq7eqkWbyjzToLrMZk/5wKVKdWFluiAsVkHXvuQ== +"@babel/helper-module-transforms@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/helper-module-transforms/download/@babel/helper-module-transforms-7.8.3.tgz#d305e35d02bee720fbc2c3c3623aa0c316c01590" + integrity sha1-0wXjXQK+5yD7wsPDYjqgwxbAFZA= dependencies: - "@babel/helper-module-imports" "^7.7.0" - "@babel/helper-simple-access" "^7.7.0" - "@babel/helper-split-export-declaration" "^7.7.0" - "@babel/template" "^7.7.0" - "@babel/types" "^7.7.0" + "@babel/helper-module-imports" "^7.8.3" + "@babel/helper-simple-access" "^7.8.3" + "@babel/helper-split-export-declaration" "^7.8.3" + "@babel/template" "^7.8.3" + "@babel/types" "^7.8.3" lodash "^4.17.13" -"@babel/helper-optimise-call-expression@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.0.0.tgz#a2920c5702b073c15de51106200aa8cad20497d5" - integrity sha512-u8nd9NQePYNQV8iPWu/pLLYBqZBa4ZaY1YWRFMuxrid94wKI1QNt67NEZ7GAe5Kc/0LLScbim05xZFWkAdrj9g== +"@babel/helper-optimise-call-expression@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/helper-optimise-call-expression/download/@babel/helper-optimise-call-expression-7.8.3.tgz#7ed071813d09c75298ef4f208956006b6111ecb9" + integrity sha1-ftBxgT0Jx1KY708giVYAa2ER7Lk= dependencies: - "@babel/types" "^7.0.0" + "@babel/types" "^7.8.3" -"@babel/helper-optimise-call-expression@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.7.0.tgz#4f66a216116a66164135dc618c5d8b7a959f9365" - integrity sha512-48TeqmbazjNU/65niiiJIJRc5JozB8acui1OS7bSd6PgxfuovWsvjfWSzlgx+gPFdVveNzUdpdIg5l56Pl5jqg== - dependencies: - "@babel/types" "^7.7.0" +"@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.8.3.tgz#9ea293be19babc0f52ff8ca88b34c3611b208670" + integrity sha1-nqKTvhm6vA9S/4yoizTDYRsghnA= -"@babel/helper-plugin-utils@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.0.0.tgz#bbb3fbee98661c569034237cc03967ba99b4f250" - integrity sha512-CYAOUCARwExnEixLdB6sDm2dIJ/YgEAKDM1MOeMeZu9Ld/bDgVo8aiWrXwcY7OBh+1Ea2uUcVRcxKk0GJvW7QA== - -"@babel/helper-regex@^7.0.0", "@babel/helper-regex@^7.4.4": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.5.5.tgz#0aa6824f7100a2e0e89c1527c23936c152cab351" - integrity sha512-CkCYQLkfkiugbRDO8eZn6lRuR8kzZoGXCg3149iTk5se7g6qykSpy3+hELSwquhu+TgHn8nkLiBwHvNX8Hofcw== +"@babel/helper-regex@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/helper-regex/download/@babel/helper-regex-7.8.3.tgz#139772607d51b93f23effe72105b319d2a4c6965" + integrity sha1-E5dyYH1RuT8j7/5yEFsxnSpMaWU= dependencies: lodash "^4.17.13" -"@babel/helper-remap-async-to-generator@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.7.0.tgz#4d69ec653e8bff5bce62f5d33fc1508f223c75a7" - integrity sha512-pHx7RN8X0UNHPB/fnuDnRXVZ316ZigkO8y8D835JlZ2SSdFKb6yH9MIYRU4fy/KPe5sPHDFOPvf8QLdbAGGiyw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.7.0" - "@babel/helper-wrap-function" "^7.7.0" - "@babel/template" "^7.7.0" - "@babel/traverse" "^7.7.0" - "@babel/types" "^7.7.0" - -"@babel/helper-replace-supers@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.5.5.tgz#f84ce43df031222d2bad068d2626cb5799c34bc2" - integrity sha512-XvRFWrNnlsow2u7jXDuH4jDDctkxbS7gXssrP4q2nUD606ukXHRvydj346wmNg+zAgpFx4MWf4+usfC93bElJg== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.5.5" - "@babel/helper-optimise-call-expression" "^7.0.0" - "@babel/traverse" "^7.5.5" - "@babel/types" "^7.5.5" - -"@babel/helper-replace-supers@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.7.0.tgz#d5365c8667fe7cbd13b8ddddceb9bd7f2b387512" - integrity sha512-5ALYEul5V8xNdxEeWvRsBzLMxQksT7MaStpxjJf9KsnLxpAKBtfw5NeMKZJSYDa0lKdOcy0g+JT/f5mPSulUgg== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.7.0" - "@babel/helper-optimise-call-expression" "^7.7.0" - "@babel/traverse" "^7.7.0" - "@babel/types" "^7.7.0" - -"@babel/helper-simple-access@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.1.0.tgz#65eeb954c8c245beaa4e859da6188f39d71e585c" - integrity sha512-Vk+78hNjRbsiu49zAPALxTb+JUQCz1aolpd8osOF16BGnLtseD21nbHgLPGUwrXEurZgiCOUmvs3ExTu4F5x6w== +"@babel/helper-remap-async-to-generator@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/helper-remap-async-to-generator/download/@babel/helper-remap-async-to-generator-7.8.3.tgz#273c600d8b9bf5006142c1e35887d555c12edd86" + integrity sha1-JzxgDYub9QBhQsHjWIfVVcEu3YY= + dependencies: + "@babel/helper-annotate-as-pure" "^7.8.3" + "@babel/helper-wrap-function" "^7.8.3" + "@babel/template" "^7.8.3" + "@babel/traverse" "^7.8.3" + "@babel/types" "^7.8.3" + +"@babel/helper-replace-supers@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/helper-replace-supers/download/@babel/helper-replace-supers-7.8.3.tgz#91192d25f6abbcd41da8a989d4492574fb1530bc" + integrity sha1-kRktJfarvNQdqKmJ1EkldPsVMLw= + dependencies: + "@babel/helper-member-expression-to-functions" "^7.8.3" + "@babel/helper-optimise-call-expression" "^7.8.3" + "@babel/traverse" "^7.8.3" + "@babel/types" "^7.8.3" + +"@babel/helper-simple-access@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/helper-simple-access/download/@babel/helper-simple-access-7.8.3.tgz#7f8109928b4dab4654076986af575231deb639ae" + integrity sha1-f4EJkotNq0ZUB2mGr1dSMd62Oa4= + dependencies: + "@babel/template" "^7.8.3" + "@babel/types" "^7.8.3" + +"@babel/helper-split-export-declaration@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.8.3.tgz#31a9f30070f91368a7182cf05f831781065fc7a9" + integrity sha1-ManzAHD5E2inGCzwX4MXgQZfx6k= + dependencies: + "@babel/types" "^7.8.3" + +"@babel/helper-wrap-function@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/helper-wrap-function/download/@babel/helper-wrap-function-7.8.3.tgz#9dbdb2bb55ef14aaa01fe8c99b629bd5352d8610" + integrity sha1-nb2yu1XvFKqgH+jJm2Kb1TUthhA= + dependencies: + "@babel/helper-function-name" "^7.8.3" + "@babel/template" "^7.8.3" + "@babel/traverse" "^7.8.3" + "@babel/types" "^7.8.3" + +"@babel/helpers@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/helpers/download/@babel/helpers-7.8.3.tgz#382fbb0382ce7c4ce905945ab9641d688336ce85" + integrity sha1-OC+7A4LOfEzpBZRauWQdaIM2zoU= + dependencies: + "@babel/template" "^7.8.3" + "@babel/traverse" "^7.8.3" + "@babel/types" "^7.8.3" + +"@babel/highlight@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/highlight/download/@babel/highlight-7.8.3.tgz#28f173d04223eaaa59bc1d439a3836e6d1265797" + integrity sha1-KPFz0EIj6qpZvB1Dmjg25tEmV5c= dependencies: - "@babel/template" "^7.1.0" - "@babel/types" "^7.0.0" - -"@babel/helper-simple-access@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.7.0.tgz#97a8b6c52105d76031b86237dc1852b44837243d" - integrity sha512-AJ7IZD7Eem3zZRuj5JtzFAptBw7pMlS3y8Qv09vaBWoFsle0d1kAn5Wq6Q9MyBXITPOKnxwkZKoAm4bopmv26g== - dependencies: - "@babel/template" "^7.7.0" - "@babel/types" "^7.7.0" + chalk "^2.0.0" + esutils "^2.0.2" + js-tokens "^4.0.0" -"@babel/helper-split-export-declaration@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.4.4.tgz#ff94894a340be78f53f06af038b205c49d993677" - integrity sha512-Ro/XkzLf3JFITkW6b+hNxzZ1n5OQ80NvIUdmHspih1XAhtN3vPTuUFT4eQnela+2MaZ5ulH+iyP513KJrxbN7Q== - dependencies: - "@babel/types" "^7.4.4" +"@babel/parser@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.8.3.tgz#790874091d2001c9be6ec426c2eed47bc7679081" + integrity sha1-eQh0CR0gAcm+bsQmwu7Ue8dnkIE= -"@babel/helper-split-export-declaration@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.7.0.tgz#1365e74ea6c614deeb56ebffabd71006a0eb2300" - integrity sha512-HgYSI8rH08neWlAH3CcdkFg9qX9YsZysZI5GD8LjhQib/mM0jGOZOVkoUiiV2Hu978fRtjtsGsW6w0pKHUWtqA== +"@babel/plugin-proposal-async-generator-functions@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-async-generator-functions/download/@babel/plugin-proposal-async-generator-functions-7.8.3.tgz#bad329c670b382589721b27540c7d288601c6e6f" + integrity sha1-utMpxnCzgliXIbJ1QMfSiGAcbm8= dependencies: - "@babel/types" "^7.7.0" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-remap-async-to-generator" "^7.8.3" + "@babel/plugin-syntax-async-generators" "^7.8.0" -"@babel/helper-wrap-function@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.7.0.tgz#15af3d3e98f8417a60554acbb6c14e75e0b33b74" - integrity sha512-sd4QjeMgQqzshSjecZjOp8uKfUtnpmCyQhKQrVJBBgeHAB/0FPi33h3AbVlVp07qQtMD4QgYSzaMI7VwncNK/w== +"@babel/plugin-proposal-class-properties@^7.7.0": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-class-properties/download/@babel/plugin-proposal-class-properties-7.8.3.tgz?cache=0&sync_timestamp=1578956763050&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-class-properties%2Fdownload%2F%40babel%2Fplugin-proposal-class-properties-7.8.3.tgz#5e06654af5cd04b608915aada9b2a6788004464e" + integrity sha1-XgZlSvXNBLYIkVqtqbKmeIAERk4= dependencies: - "@babel/helper-function-name" "^7.7.0" - "@babel/template" "^7.7.0" - "@babel/traverse" "^7.7.0" - "@babel/types" "^7.7.0" + "@babel/helper-create-class-features-plugin" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/helpers@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.7.0.tgz#359bb5ac3b4726f7c1fde0ec75f64b3f4275d60b" - integrity sha512-VnNwL4YOhbejHb7x/b5F39Zdg5vIQpUUNzJwx0ww1EcVRt41bbGRZWhAURrfY32T5zTT3qwNOQFWpn+P0i0a2g== +"@babel/plugin-proposal-dynamic-import@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-dynamic-import/download/@babel/plugin-proposal-dynamic-import-7.8.3.tgz#38c4fe555744826e97e2ae930b0fb4cc07e66054" + integrity sha1-OMT+VVdEgm6X4q6TCw+0zAfmYFQ= dependencies: - "@babel/template" "^7.7.0" - "@babel/traverse" "^7.7.0" - "@babel/types" "^7.7.0" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-dynamic-import" "^7.8.0" -"@babel/highlight@^7.0.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.5.0.tgz#56d11312bd9248fa619591d02472be6e8cb32540" - integrity sha512-7dV4eu9gBxoM0dAnj/BCFDW9LFU0zvTrkq0ugM7pnHEgguOEeOz1so2ZghEdzviYzQEED0r4EAgpsBChKy1TRQ== +"@babel/plugin-proposal-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-json-strings/download/@babel/plugin-proposal-json-strings-7.8.3.tgz#da5216b238a98b58a1e05d6852104b10f9a70d6b" + integrity sha1-2lIWsjipi1ih4F1oUhBLEPmnDWs= dependencies: - chalk "^2.0.0" - esutils "^2.0.2" - js-tokens "^4.0.0" - -"@babel/parser@^7.6.0": - version "7.6.0" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.6.0.tgz#3e05d0647432a8326cb28d0de03895ae5a57f39b" - integrity sha512-+o2q111WEx4srBs7L9eJmcwi655eD8sXniLqMB93TBK9GrNzGrxDWSjiqz2hLU0Ha8MTXFIP0yd9fNdP+m43ZQ== + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.0" -"@babel/parser@^7.7.0", "@babel/parser@^7.7.2": - version "7.7.3" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.7.3.tgz#5fad457c2529de476a248f75b0f090b3060af043" - integrity sha512-bqv+iCo9i+uLVbI0ILzKkvMorqxouI+GbV13ivcARXn9NNEabi2IEz912IgNpT/60BNXac5dgcfjb94NjsF33A== - -"@babel/plugin-proposal-async-generator-functions@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.7.0.tgz#83ef2d6044496b4c15d8b4904e2219e6dccc6971" - integrity sha512-ot/EZVvf3mXtZq0Pd0+tSOfGWMizqmOohXmNZg6LNFjHOV+wOPv7BvVYh8oPR8LhpIP3ye8nNooKL50YRWxpYA== +"@babel/plugin-proposal-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-nullish-coalescing-operator/download/@babel/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz#e4572253fdeed65cddeecfdab3f928afeb2fd5d2" + integrity sha1-5FciU/3u1lzd7s/as/kor+sv1dI= dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-remap-async-to-generator" "^7.7.0" - "@babel/plugin-syntax-async-generators" "^7.2.0" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" -"@babel/plugin-proposal-class-properties@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.7.0.tgz#ac54e728ecf81d90e8f4d2a9c05a890457107917" - integrity sha512-tufDcFA1Vj+eWvwHN+jvMN6QsV5o+vUlytNKrbMiCeDL0F2j92RURzUsUMWE5EJkLyWxjdUslCsMQa9FWth16A== +"@babel/plugin-proposal-object-rest-spread@^7.6.2", "@babel/plugin-proposal-object-rest-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-object-rest-spread/download/@babel/plugin-proposal-object-rest-spread-7.8.3.tgz?cache=0&sync_timestamp=1578956763418&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-object-rest-spread%2Fdownload%2F%40babel%2Fplugin-proposal-object-rest-spread-7.8.3.tgz#eb5ae366118ddca67bed583b53d7554cad9951bb" + integrity sha1-61rjZhGN3KZ77Vg7U9dVTK2ZUbs= dependencies: - "@babel/helper-create-class-features-plugin" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-object-rest-spread" "^7.8.0" -"@babel/plugin-proposal-dynamic-import@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.7.0.tgz#dc02a8bad8d653fb59daf085516fa416edd2aa7f" - integrity sha512-7poL3Xi+QFPC7sGAzEIbXUyYzGJwbc2+gSD0AkiC5k52kH2cqHdqxm5hNFfLW3cRSTcx9bN0Fl7/6zWcLLnKAQ== +"@babel/plugin-proposal-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-optional-catch-binding/download/@babel/plugin-proposal-optional-catch-binding-7.8.3.tgz#9dee96ab1650eed88646ae9734ca167ac4a9c5c9" + integrity sha1-ne6WqxZQ7tiGRq6XNMoWesSpxck= dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-dynamic-import" "^7.2.0" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" -"@babel/plugin-proposal-json-strings@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.2.0.tgz#568ecc446c6148ae6b267f02551130891e29f317" - integrity sha512-MAFV1CA/YVmYwZG0fBQyXhmj0BHCB5egZHCKWIFVv/XCxAeVGIHfos3SwDck4LvCllENIAg7xMKOG5kH0dzyUg== +"@babel/plugin-proposal-optional-chaining@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-optional-chaining/download/@babel/plugin-proposal-optional-chaining-7.8.3.tgz#ae10b3214cb25f7adb1f3bc87ba42ca10b7e2543" + integrity sha1-rhCzIUyyX3rbHzvIe6QsoQt+JUM= dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-json-strings" "^7.2.0" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.0" -"@babel/plugin-proposal-object-rest-spread@^7.6.2": - version "7.6.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.6.2.tgz#8ffccc8f3a6545e9f78988b6bf4fe881b88e8096" - integrity sha512-LDBXlmADCsMZV1Y9OQwMc0MyGZ8Ta/zlD9N67BfQT8uYwkRswiu2hU6nJKrjrt/58aH/vqfQlR/9yId/7A2gWw== +"@babel/plugin-proposal-unicode-property-regex@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-unicode-property-regex/download/@babel/plugin-proposal-unicode-property-regex-7.8.3.tgz#b646c3adea5f98800c9ab45105ac34d06cd4a47f" + integrity sha1-tkbDrepfmIAMmrRRBaw00GzUpH8= dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-object-rest-spread" "^7.2.0" + "@babel/helper-create-regexp-features-plugin" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-proposal-optional-catch-binding@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.2.0.tgz#135d81edb68a081e55e56ec48541ece8065c38f5" - integrity sha512-mgYj3jCcxug6KUcX4OBoOJz3CMrwRfQELPQ5560F70YQUBZB7uac9fqaWamKR1iWUzGiK2t0ygzjTScZnVz75g== +"@babel/plugin-syntax-async-generators@^7.8.0": + version "7.8.4" + resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-async-generators/download/@babel/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha1-qYP7Gusuw/btBCohD2QOkOeG/g0= dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" + "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-proposal-unicode-property-regex@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.7.0.tgz#549fe1717a1bd0a2a7e63163841cb37e78179d5d" - integrity sha512-mk34H+hp7kRBWJOOAR0ZMGCydgKMD4iN9TpDRp3IIcbunltxEY89XSimc6WbtSLCDrwcdy/EEw7h5CFCzxTchw== +"@babel/plugin-syntax-dynamic-import@^7.2.0", "@babel/plugin-syntax-dynamic-import@^7.8.0": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-dynamic-import/download/@babel/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" + integrity sha1-Yr+Ysto80h1iYVT8lu5bPLaOrLM= dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-async-generators@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.2.0.tgz#69e1f0db34c6f5a0cf7e2b3323bf159a76c8cb7f" - integrity sha512-1ZrIRBv2t0GSlcwVoQ6VgSLpLgiN/FVQUzt9znxo7v2Ov4jJrs8RY8tv0wvDmFN3qIdMKWrmMMW6yZ0G19MfGg== +"@babel/plugin-syntax-json-strings@^7.8.0": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-json-strings/download/@babel/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha1-AcohtmjNghjJ5kDLbdiMVBKyyWo= dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-dynamic-import@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.2.0.tgz#69c159ffaf4998122161ad8ebc5e6d1f55df8612" - integrity sha512-mVxuJ0YroI/h/tbFTPGZR8cv6ai+STMKNBq0f8hFxsxWjl94qqhsb+wXbpNMDPU3cfR1TIsVFzU3nXyZMqyK4w== +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-nullish-coalescing-operator/download/@babel/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha1-Fn7XA2iIYIH3S1w2xlqIwDtm0ak= dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-json-strings@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.2.0.tgz#72bd13f6ffe1d25938129d2a186b11fd62951470" - integrity sha512-5UGYnMSLRE1dqqZwug+1LISpA403HzlSfsg6P9VXU6TBjcSHeNlw4DxDx7LgpF+iKZoOG/+uzqoRHTdcUpiZNg== +"@babel/plugin-syntax-object-rest-spread@^7.8.0": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-object-rest-spread/download/@babel/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha1-YOIl7cvZimQDMqLnLdPmbxr1WHE= dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-object-rest-spread@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.2.0.tgz#3b7a3e733510c57e820b9142a6579ac8b0dfad2e" - integrity sha512-t0JKGgqk2We+9may3t0xDdmneaXmyxq0xieYcKHxIsrJO64n1OiMWNUtc5gQK1PA0NpdCRrtZp4z+IUaKugrSA== +"@babel/plugin-syntax-optional-catch-binding@^7.8.0": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-optional-catch-binding/download/@babel/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha1-YRGiZbz7Ag6579D9/X0mQCue1sE= dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-optional-catch-binding@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.2.0.tgz#a94013d6eda8908dfe6a477e7f9eda85656ecf5c" - integrity sha512-bDe4xKNhb0LI7IvZHiA13kff0KEfaGX/Hv4lMA9+7TEc63hMNvfKo6ZFpXhKuEp+II/q35Gc4NoMeDZyaUbj9w== +"@babel/plugin-syntax-optional-chaining@^7.8.0": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-optional-chaining/download/@babel/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha1-T2nCq5UWfgGAzVM2YT+MV4j31Io= dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-top-level-await@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.7.0.tgz#f5699549f50bbe8d12b1843a4e82f0a37bb65f4d" - integrity sha512-hi8FUNiFIY1fnUI2n1ViB1DR0R4QeK4iHcTlW6aJkrPoTdb8Rf1EMQ6GT3f67DDkYyWgew9DFoOZ6gOoEsdzTA== +"@babel/plugin-syntax-top-level-await@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-top-level-await/download/@babel/plugin-syntax-top-level-await-7.8.3.tgz#3acdece695e6b13aaf57fc291d1a800950c71391" + integrity sha1-Os3s5pXmsTqvV/wpHRqACVDHE5E= dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-arrow-functions@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.2.0.tgz#9aeafbe4d6ffc6563bf8f8372091628f00779550" - integrity sha512-ER77Cax1+8/8jCB9fo4Ud161OZzWN5qawi4GusDuRLcDbDG+bIGYY20zb2dfAFdTRGzrfq2xZPvF0R64EHnimg== +"@babel/plugin-transform-arrow-functions@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-arrow-functions/download/@babel/plugin-transform-arrow-functions-7.8.3.tgz#82776c2ed0cd9e1a49956daeb896024c9473b8b6" + integrity sha1-gndsLtDNnhpJlW2uuJYCTJRzuLY= dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-async-to-generator@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.7.0.tgz#e2b84f11952cf5913fe3438b7d2585042772f492" - integrity sha512-vLI2EFLVvRBL3d8roAMqtVY0Bm9C1QzLkdS57hiKrjUBSqsQYrBsMCeOg/0KK7B0eK9V71J5mWcha9yyoI2tZw== +"@babel/plugin-transform-async-to-generator@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-async-to-generator/download/@babel/plugin-transform-async-to-generator-7.8.3.tgz#4308fad0d9409d71eafb9b1a6ee35f9d64b64086" + integrity sha1-Qwj60NlAnXHq+5sabuNfnWS2QIY= dependencies: - "@babel/helper-module-imports" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-remap-async-to-generator" "^7.7.0" + "@babel/helper-module-imports" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-remap-async-to-generator" "^7.8.3" -"@babel/plugin-transform-block-scoped-functions@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.2.0.tgz#5d3cc11e8d5ddd752aa64c9148d0db6cb79fd190" - integrity sha512-ntQPR6q1/NKuphly49+QiQiTN0O63uOwjdD6dhIjSWBI5xlrbUFh720TIpzBhpnrLfv2tNH/BXvLIab1+BAI0w== +"@babel/plugin-transform-block-scoped-functions@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-block-scoped-functions/download/@babel/plugin-transform-block-scoped-functions-7.8.3.tgz#437eec5b799b5852072084b3ae5ef66e8349e8a3" + integrity sha1-Q37sW3mbWFIHIISzrl72boNJ6KM= dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-block-scoping@^7.6.3": - version "7.6.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.6.3.tgz#6e854e51fbbaa84351b15d4ddafe342f3a5d542a" - integrity sha512-7hvrg75dubcO3ZI2rjYTzUrEuh1E9IyDEhhB6qfcooxhDA33xx2MasuLVgdxzcP6R/lipAC6n9ub9maNW6RKdw== +"@babel/plugin-transform-block-scoping@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-block-scoping/download/@babel/plugin-transform-block-scoping-7.8.3.tgz#97d35dab66857a437c166358b91d09050c868f3a" + integrity sha1-l9Ndq2aFekN8FmNYuR0JBQyGjzo= dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" lodash "^4.17.13" -"@babel/plugin-transform-classes@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.7.0.tgz#b411ecc1b8822d24b81e5d184f24149136eddd4a" - integrity sha512-/b3cKIZwGeUesZheU9jNYcwrEA7f/Bo4IdPmvp7oHgvks2majB5BoT5byAql44fiNQYOPzhk2w8DbgfuafkMoA== - dependencies: - "@babel/helper-annotate-as-pure" "^7.7.0" - "@babel/helper-define-map" "^7.7.0" - "@babel/helper-function-name" "^7.7.0" - "@babel/helper-optimise-call-expression" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.7.0" - "@babel/helper-split-export-declaration" "^7.7.0" +"@babel/plugin-transform-classes@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-classes/download/@babel/plugin-transform-classes-7.8.3.tgz#46fd7a9d2bb9ea89ce88720477979fe0d71b21b8" + integrity sha1-Rv16nSu56onOiHIEd5ef4NcbIbg= + dependencies: + "@babel/helper-annotate-as-pure" "^7.8.3" + "@babel/helper-define-map" "^7.8.3" + "@babel/helper-function-name" "^7.8.3" + "@babel/helper-optimise-call-expression" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-replace-supers" "^7.8.3" + "@babel/helper-split-export-declaration" "^7.8.3" globals "^11.1.0" -"@babel/plugin-transform-computed-properties@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.2.0.tgz#83a7df6a658865b1c8f641d510c6f3af220216da" - integrity sha512-kP/drqTxY6Xt3NNpKiMomfgkNn4o7+vKxK2DDKcBG9sHj51vHqMBGy8wbDS/J4lMxnqs153/T3+DmCEAkC5cpA== +"@babel/plugin-transform-computed-properties@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-computed-properties/download/@babel/plugin-transform-computed-properties-7.8.3.tgz#96d0d28b7f7ce4eb5b120bb2e0e943343c86f81b" + integrity sha1-ltDSi3985OtbEguy4OlDNDyG+Bs= dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-destructuring@^7.6.0": - version "7.6.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.6.0.tgz#44bbe08b57f4480094d57d9ffbcd96d309075ba6" - integrity sha512-2bGIS5P1v4+sWTCnKNDZDxbGvEqi0ijeqM/YqHtVGrvG2y0ySgnEEhXErvE9dA0bnIzY9bIzdFK0jFA46ASIIQ== +"@babel/plugin-transform-destructuring@^7.6.0", "@babel/plugin-transform-destructuring@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-destructuring/download/@babel/plugin-transform-destructuring-7.8.3.tgz#20ddfbd9e4676906b1056ee60af88590cc7aaa0b" + integrity sha1-IN372eRnaQaxBW7mCviFkMx6qgs= dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-dotall-regex@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.7.0.tgz#c5c9ecacab3a5e0c11db6981610f0c32fd698b3b" - integrity sha512-3QQlF7hSBnSuM1hQ0pS3pmAbWLax/uGNCbPBND9y+oJ4Y776jsyujG2k0Sn2Aj2a0QwVOiOFL5QVPA7spjvzSA== +"@babel/plugin-transform-dotall-regex@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-dotall-regex/download/@babel/plugin-transform-dotall-regex-7.8.3.tgz#c3c6ec5ee6125c6993c5cbca20dc8621a9ea7a6e" + integrity sha1-w8bsXuYSXGmTxcvKINyGIanqem4= dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-create-regexp-features-plugin" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-duplicate-keys@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.5.0.tgz#c5dbf5106bf84cdf691222c0974c12b1df931853" - integrity sha512-igcziksHizyQPlX9gfSjHkE2wmoCH3evvD2qR5w29/Dk0SMKE/eOI7f1HhBdNhR/zxJDqrgpoDTq5YSLH/XMsQ== +"@babel/plugin-transform-duplicate-keys@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-duplicate-keys/download/@babel/plugin-transform-duplicate-keys-7.8.3.tgz#8d12df309aa537f272899c565ea1768e286e21f1" + integrity sha1-jRLfMJqlN/JyiZxWXqF2jihuIfE= dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-exponentiation-operator@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.2.0.tgz#a63868289e5b4007f7054d46491af51435766008" - integrity sha512-umh4hR6N7mu4Elq9GG8TOu9M0bakvlsREEC+ialrQN6ABS4oDQ69qJv1VtR3uxlKMCQMCvzk7vr17RHKcjx68A== +"@babel/plugin-transform-exponentiation-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-exponentiation-operator/download/@babel/plugin-transform-exponentiation-operator-7.8.3.tgz#581a6d7f56970e06bf51560cd64f5e947b70d7b7" + integrity sha1-WBptf1aXDga/UVYM1k9elHtw17c= dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.1.0" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-for-of@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.4.4.tgz#0267fc735e24c808ba173866c6c4d1440fc3c556" - integrity sha512-9T/5Dlr14Z9TIEXLXkt8T1DU7F24cbhwhMNUziN3hB1AXoZcdzPcTiKGRn/6iOymDqtTKWnr/BtRKN9JwbKtdQ== +"@babel/plugin-transform-for-of@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-for-of/download/@babel/plugin-transform-for-of-7.8.3.tgz#15f17bce2fc95c7d59a24b299e83e81cedc22e18" + integrity sha1-FfF7zi/JXH1ZokspnoPoHO3CLhg= dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-function-name@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.7.0.tgz#0fa786f1eef52e3b7d4fc02e54b2129de8a04c2a" - integrity sha512-P5HKu0d9+CzZxP5jcrWdpe7ZlFDe24bmqP6a6X8BHEBl/eizAsY8K6LX8LASZL0Jxdjm5eEfzp+FIrxCm/p8bA== +"@babel/plugin-transform-function-name@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-function-name/download/@babel/plugin-transform-function-name-7.8.3.tgz#279373cb27322aaad67c2683e776dfc47196ed8b" + integrity sha1-J5NzyycyKqrWfCaD53bfxHGW7Ys= dependencies: - "@babel/helper-function-name" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-function-name" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-literals@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.2.0.tgz#690353e81f9267dad4fd8cfd77eafa86aba53ea1" - integrity sha512-2ThDhm4lI4oV7fVQ6pNNK+sx+c/GM5/SaML0w/r4ZB7sAneD/piDJtwdKlNckXeyGK7wlwg2E2w33C/Hh+VFCg== +"@babel/plugin-transform-literals@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-literals/download/@babel/plugin-transform-literals-7.8.3.tgz#aef239823d91994ec7b68e55193525d76dbd5dc1" + integrity sha1-rvI5gj2RmU7Hto5VGTUl1229XcE= dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-member-expression-literals@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.2.0.tgz#fa10aa5c58a2cb6afcf2c9ffa8cb4d8b3d489a2d" - integrity sha512-HiU3zKkSU6scTidmnFJ0bMX8hz5ixC93b4MHMiYebmk2lUVNGOboPsqQvx5LzooihijUoLR/v7Nc1rbBtnc7FA== +"@babel/plugin-transform-member-expression-literals@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-member-expression-literals/download/@babel/plugin-transform-member-expression-literals-7.8.3.tgz#963fed4b620ac7cbf6029c755424029fa3a40410" + integrity sha1-lj/tS2IKx8v2Apx1VCQCn6OkBBA= dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-modules-amd@^7.5.0": - version "7.5.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.5.0.tgz#ef00435d46da0a5961aa728a1d2ecff063e4fb91" - integrity sha512-n20UsQMKnWrltocZZm24cRURxQnWIvsABPJlw/fvoy9c6AgHZzoelAIzajDHAQrDpuKFFPPcFGd7ChsYuIUMpg== +"@babel/plugin-transform-modules-amd@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-modules-amd/download/@babel/plugin-transform-modules-amd-7.8.3.tgz?cache=0&sync_timestamp=1578956828453&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-amd%2Fdownload%2F%40babel%2Fplugin-transform-modules-amd-7.8.3.tgz#65606d44616b50225e76f5578f33c568a0b876a5" + integrity sha1-ZWBtRGFrUCJedvVXjzPFaKC4dqU= dependencies: - "@babel/helper-module-transforms" "^7.1.0" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-module-transforms" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" babel-plugin-dynamic-import-node "^2.3.0" -"@babel/plugin-transform-modules-commonjs@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.7.0.tgz#3e5ffb4fd8c947feede69cbe24c9554ab4113fe3" - integrity sha512-KEMyWNNWnjOom8vR/1+d+Ocz/mILZG/eyHHO06OuBQ2aNhxT62fr4y6fGOplRx+CxCSp3IFwesL8WdINfY/3kg== +"@babel/plugin-transform-modules-commonjs@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-modules-commonjs/download/@babel/plugin-transform-modules-commonjs-7.8.3.tgz#df251706ec331bd058a34bdd72613915f82928a5" + integrity sha1-3yUXBuwzG9BYo0vdcmE5FfgpKKU= dependencies: - "@babel/helper-module-transforms" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-simple-access" "^7.7.0" + "@babel/helper-module-transforms" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-simple-access" "^7.8.3" babel-plugin-dynamic-import-node "^2.3.0" -"@babel/plugin-transform-modules-systemjs@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.7.0.tgz#9baf471213af9761c1617bb12fd278e629041417" - integrity sha512-ZAuFgYjJzDNv77AjXRqzQGlQl4HdUM6j296ee4fwKVZfhDR9LAGxfvXjBkb06gNETPnN0sLqRm9Gxg4wZH6dXg== +"@babel/plugin-transform-modules-systemjs@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-modules-systemjs/download/@babel/plugin-transform-modules-systemjs-7.8.3.tgz#d8bbf222c1dbe3661f440f2f00c16e9bb7d0d420" + integrity sha1-2LvyIsHb42YfRA8vAMFum7fQ1CA= dependencies: - "@babel/helper-hoist-variables" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-hoist-variables" "^7.8.3" + "@babel/helper-module-transforms" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" babel-plugin-dynamic-import-node "^2.3.0" -"@babel/plugin-transform-modules-umd@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.7.0.tgz#d62c7da16670908e1d8c68ca0b5d4c0097b69966" - integrity sha512-u7eBA03zmUswQ9LQ7Qw0/ieC1pcAkbp5OQatbWUzY1PaBccvuJXUkYzoN1g7cqp7dbTu6Dp9bXyalBvD04AANA== +"@babel/plugin-transform-modules-umd@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-modules-umd/download/@babel/plugin-transform-modules-umd-7.8.3.tgz#592d578ce06c52f5b98b02f913d653ffe972661a" + integrity sha1-WS1XjOBsUvW5iwL5E9ZT/+lyZho= dependencies: - "@babel/helper-module-transforms" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-module-transforms" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-named-capturing-groups-regex@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.7.0.tgz#358e6fd869b9a4d8f5cbc79e4ed4fc340e60dcaf" - integrity sha512-+SicSJoKouPctL+j1pqktRVCgy+xAch1hWWTMy13j0IflnyNjaoskj+DwRQFimHbLqO3sq2oN2CXMvXq3Bgapg== +"@babel/plugin-transform-named-capturing-groups-regex@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-named-capturing-groups-regex/download/@babel/plugin-transform-named-capturing-groups-regex-7.8.3.tgz#a2a72bffa202ac0e2d0506afd0939c5ecbc48c6c" + integrity sha1-oqcr/6ICrA4tBQav0JOcXsvEjGw= dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.7.0" + "@babel/helper-create-regexp-features-plugin" "^7.8.3" -"@babel/plugin-transform-new-target@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.4.4.tgz#18d120438b0cc9ee95a47f2c72bc9768fbed60a5" - integrity sha512-r1z3T2DNGQwwe2vPGZMBNjioT2scgWzK9BCnDEh+46z8EEwXBq24uRzd65I7pjtugzPSj921aM15RpESgzsSuA== +"@babel/plugin-transform-new-target@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-new-target/download/@babel/plugin-transform-new-target-7.8.3.tgz#60cc2ae66d85c95ab540eb34babb6434d4c70c43" + integrity sha1-YMwq5m2FyVq1QOs0urtkNNTHDEM= dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-object-super@^7.5.5": - version "7.5.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.5.5.tgz#c70021df834073c65eb613b8679cc4a381d1a9f9" - integrity sha512-un1zJQAhSosGFBduPgN/YFNvWVpRuHKU7IHBglLoLZsGmruJPOo6pbInneflUdmq7YvSVqhpPs5zdBvLnteltQ== +"@babel/plugin-transform-object-super@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-object-super/download/@babel/plugin-transform-object-super-7.8.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-object-super%2Fdownload%2F%40babel%2Fplugin-transform-object-super-7.8.3.tgz#ebb6a1e7a86ffa96858bd6ac0102d65944261725" + integrity sha1-67ah56hv+paFi9asAQLWWUQmFyU= dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-replace-supers" "^7.5.5" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-replace-supers" "^7.8.3" -"@babel/plugin-transform-parameters@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.4.4.tgz#7556cf03f318bd2719fe4c922d2d808be5571e16" - integrity sha512-oMh5DUO1V63nZcu/ZVLQFqiihBGo4OpxJxR1otF50GMeCLiRx5nUdtokd+u9SuVJrvvuIh9OosRFPP4pIPnwmw== +"@babel/plugin-transform-parameters@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-parameters/download/@babel/plugin-transform-parameters-7.8.3.tgz#7890576a13b17325d8b7d44cb37f21dc3bbdda59" + integrity sha1-eJBXahOxcyXYt9RMs38h3Du92lk= dependencies: - "@babel/helper-call-delegate" "^7.4.4" - "@babel/helper-get-function-arity" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-call-delegate" "^7.8.3" + "@babel/helper-get-function-arity" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-property-literals@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.2.0.tgz#03e33f653f5b25c4eb572c98b9485055b389e905" - integrity sha512-9q7Dbk4RhgcLp8ebduOpCbtjh7C0itoLYHXd9ueASKAG/is5PQtMR5VJGka9NKqGhYEGn5ITahd4h9QeBMylWQ== +"@babel/plugin-transform-property-literals@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-property-literals/download/@babel/plugin-transform-property-literals-7.8.3.tgz#33194300d8539c1ed28c62ad5087ba3807b98263" + integrity sha1-MxlDANhTnB7SjGKtUIe6OAe5gmM= dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-regenerator@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.7.0.tgz#f1b20b535e7716b622c99e989259d7dd942dd9cc" - integrity sha512-AXmvnC+0wuj/cFkkS/HFHIojxH3ffSXE+ttulrqWjZZRaUOonfJc60e1wSNT4rV8tIunvu/R3wCp71/tLAa9xg== +"@babel/plugin-transform-regenerator@^7.7.0", "@babel/plugin-transform-regenerator@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-regenerator/download/@babel/plugin-transform-regenerator-7.8.3.tgz#b31031e8059c07495bf23614c97f3d9698bc6ec8" + integrity sha1-sxAx6AWcB0lb8jYUyX89lpi8bsg= dependencies: regenerator-transform "^0.14.0" -"@babel/plugin-transform-reserved-words@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.2.0.tgz#4792af87c998a49367597d07fedf02636d2e1634" - integrity sha512-fz43fqW8E1tAB3DKF19/vxbpib1fuyCwSPE418ge5ZxILnBhWyhtPgz8eh1RCGGJlwvksHkyxMxh0eenFi+kFw== +"@babel/plugin-transform-reserved-words@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-reserved-words/download/@babel/plugin-transform-reserved-words-7.8.3.tgz#9a0635ac4e665d29b162837dd3cc50745dfdf1f5" + integrity sha1-mgY1rE5mXSmxYoN908xQdF398fU= dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-transform-runtime@^7.6.2": - version "7.6.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.6.2.tgz#2669f67c1fae0ae8d8bf696e4263ad52cb98b6f8" - integrity sha512-cqULw/QB4yl73cS5Y0TZlQSjDvNkzDbu0FurTZyHlJpWE5T3PCMdnyV+xXoH1opr1ldyHODe3QAX3OMAii5NxA== + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-runtime/download/@babel/plugin-transform-runtime-7.8.3.tgz?cache=0&sync_timestamp=1578956763605&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-runtime%2Fdownload%2F%40babel%2Fplugin-transform-runtime-7.8.3.tgz#c0153bc0a5375ebc1f1591cb7eea223adea9f169" + integrity sha1-wBU7wKU3XrwfFZHLfuoiOt6p8Wk= dependencies: - "@babel/helper-module-imports" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-module-imports" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" resolve "^1.8.1" semver "^5.5.1" -"@babel/plugin-transform-shorthand-properties@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.2.0.tgz#6333aee2f8d6ee7e28615457298934a3b46198f0" - integrity sha512-QP4eUM83ha9zmYtpbnyjTLAGKQritA5XW/iG9cjtuOI8s1RuL/3V6a3DeSHfKutJQ+ayUfeZJPcnCYEQzaPQqg== +"@babel/plugin-transform-shorthand-properties@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-shorthand-properties/download/@babel/plugin-transform-shorthand-properties-7.8.3.tgz#28545216e023a832d4d3a1185ed492bcfeac08c8" + integrity sha1-KFRSFuAjqDLU06EYXtSSvP6sCMg= dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-spread@^7.6.2": - version "7.6.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.6.2.tgz#fc77cf798b24b10c46e1b51b1b88c2bf661bb8dd" - integrity sha512-DpSvPFryKdK1x+EDJYCy28nmAaIMdxmhot62jAXF/o99iA33Zj2Lmcp3vDmz+MUh0LNYVPvfj5iC3feb3/+PFg== +"@babel/plugin-transform-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-spread/download/@babel/plugin-transform-spread-7.8.3.tgz#9c8ffe8170fdfb88b114ecb920b82fb6e95fe5e8" + integrity sha1-nI/+gXD9+4ixFOy5ILgvtulf5eg= dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-sticky-regex@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.2.0.tgz#a1e454b5995560a9c1e0d537dfc15061fd2687e1" - integrity sha512-KKYCoGaRAf+ckH8gEL3JHUaFVyNHKe3ASNsZ+AlktgHevvxGigoIttrEJb8iKN03Q7Eazlv1s6cx2B2cQ3Jabw== +"@babel/plugin-transform-sticky-regex@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-sticky-regex/download/@babel/plugin-transform-sticky-regex-7.8.3.tgz#be7a1290f81dae767475452199e1f76d6175b100" + integrity sha1-vnoSkPgdrnZ0dUUhmeH3bWF1sQA= dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/helper-regex" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-regex" "^7.8.3" -"@babel/plugin-transform-template-literals@^7.4.4": - version "7.4.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.4.4.tgz#9d28fea7bbce637fb7612a0750989d8321d4bcb0" - integrity sha512-mQrEC4TWkhLN0z8ygIvEL9ZEToPhG5K7KDW3pzGqOfIGZ28Jb0POUkeWcoz8HnHvhFy6dwAT1j8OzqN8s804+g== +"@babel/plugin-transform-template-literals@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-template-literals/download/@babel/plugin-transform-template-literals-7.8.3.tgz#7bfa4732b455ea6a43130adc0ba767ec0e402a80" + integrity sha1-e/pHMrRV6mpDEwrcC6dn7A5AKoA= dependencies: - "@babel/helper-annotate-as-pure" "^7.0.0" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-annotate-as-pure" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-typeof-symbol@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.2.0.tgz#117d2bcec2fbf64b4b59d1f9819894682d29f2b2" - integrity sha512-2LNhETWYxiYysBtrBTqL8+La0jIoQQnIScUJc74OYvUGRmkskNY4EzLCnjHBzdmb38wqtTaixpo1NctEcvMDZw== +"@babel/plugin-transform-typeof-symbol@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-typeof-symbol/download/@babel/plugin-transform-typeof-symbol-7.8.3.tgz#5cffb216fb25c8c64ba6bf5f76ce49d3ab079f4d" + integrity sha1-XP+yFvslyMZLpr9fds5J06sHn00= dependencies: - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-unicode-regex@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.7.0.tgz#743d9bcc44080e3cc7d49259a066efa30f9187a3" - integrity sha512-RrThb0gdrNwFAqEAAx9OWgtx6ICK69x7i9tCnMdVrxQwSDp/Abu9DXFU5Hh16VP33Rmxh04+NGW28NsIkFvFKA== +"@babel/plugin-transform-unicode-regex@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-unicode-regex/download/@babel/plugin-transform-unicode-regex-7.8.3.tgz#0cef36e3ba73e5c57273effb182f46b91a1ecaad" + integrity sha1-DO8247pz5cVyc+/7GC9GuRoeyq0= dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" + "@babel/helper-create-regexp-features-plugin" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" "@babel/preset-env@^7.7.1": - version "7.7.1" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.7.1.tgz#04a2ff53552c5885cf1083e291c8dd5490f744bb" - integrity sha512-/93SWhi3PxcVTDpSqC+Dp4YxUu3qZ4m7I76k0w73wYfn7bGVuRIO4QUz95aJksbS+AD1/mT1Ie7rbkT0wSplaA== - dependencies: - "@babel/helper-module-imports" "^7.7.0" - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-async-generator-functions" "^7.7.0" - "@babel/plugin-proposal-dynamic-import" "^7.7.0" - "@babel/plugin-proposal-json-strings" "^7.2.0" - "@babel/plugin-proposal-object-rest-spread" "^7.6.2" - "@babel/plugin-proposal-optional-catch-binding" "^7.2.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.7.0" - "@babel/plugin-syntax-async-generators" "^7.2.0" - "@babel/plugin-syntax-dynamic-import" "^7.2.0" - "@babel/plugin-syntax-json-strings" "^7.2.0" - "@babel/plugin-syntax-object-rest-spread" "^7.2.0" - "@babel/plugin-syntax-optional-catch-binding" "^7.2.0" - "@babel/plugin-syntax-top-level-await" "^7.7.0" - "@babel/plugin-transform-arrow-functions" "^7.2.0" - "@babel/plugin-transform-async-to-generator" "^7.7.0" - "@babel/plugin-transform-block-scoped-functions" "^7.2.0" - "@babel/plugin-transform-block-scoping" "^7.6.3" - "@babel/plugin-transform-classes" "^7.7.0" - "@babel/plugin-transform-computed-properties" "^7.2.0" - "@babel/plugin-transform-destructuring" "^7.6.0" - "@babel/plugin-transform-dotall-regex" "^7.7.0" - "@babel/plugin-transform-duplicate-keys" "^7.5.0" - "@babel/plugin-transform-exponentiation-operator" "^7.2.0" - "@babel/plugin-transform-for-of" "^7.4.4" - "@babel/plugin-transform-function-name" "^7.7.0" - "@babel/plugin-transform-literals" "^7.2.0" - "@babel/plugin-transform-member-expression-literals" "^7.2.0" - "@babel/plugin-transform-modules-amd" "^7.5.0" - "@babel/plugin-transform-modules-commonjs" "^7.7.0" - "@babel/plugin-transform-modules-systemjs" "^7.7.0" - "@babel/plugin-transform-modules-umd" "^7.7.0" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.7.0" - "@babel/plugin-transform-new-target" "^7.4.4" - "@babel/plugin-transform-object-super" "^7.5.5" - "@babel/plugin-transform-parameters" "^7.4.4" - "@babel/plugin-transform-property-literals" "^7.2.0" - "@babel/plugin-transform-regenerator" "^7.7.0" - "@babel/plugin-transform-reserved-words" "^7.2.0" - "@babel/plugin-transform-shorthand-properties" "^7.2.0" - "@babel/plugin-transform-spread" "^7.6.2" - "@babel/plugin-transform-sticky-regex" "^7.2.0" - "@babel/plugin-transform-template-literals" "^7.4.4" - "@babel/plugin-transform-typeof-symbol" "^7.2.0" - "@babel/plugin-transform-unicode-regex" "^7.7.0" - "@babel/types" "^7.7.1" - browserslist "^4.6.0" - core-js-compat "^3.1.1" + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/preset-env/download/@babel/preset-env-7.8.3.tgz?cache=0&sync_timestamp=1578956763831&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fpreset-env%2Fdownload%2F%40babel%2Fpreset-env-7.8.3.tgz#dc0fb2938f52bbddd79b3c861a4b3427dd3a6c54" + integrity sha1-3A+yk49Su93XmzyGGks0J906bFQ= + dependencies: + "@babel/compat-data" "^7.8.0" + "@babel/helper-compilation-targets" "^7.8.3" + "@babel/helper-module-imports" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-proposal-async-generator-functions" "^7.8.3" + "@babel/plugin-proposal-dynamic-import" "^7.8.3" + "@babel/plugin-proposal-json-strings" "^7.8.3" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-proposal-object-rest-spread" "^7.8.3" + "@babel/plugin-proposal-optional-catch-binding" "^7.8.3" + "@babel/plugin-proposal-optional-chaining" "^7.8.3" + "@babel/plugin-proposal-unicode-property-regex" "^7.8.3" + "@babel/plugin-syntax-async-generators" "^7.8.0" + "@babel/plugin-syntax-dynamic-import" "^7.8.0" + "@babel/plugin-syntax-json-strings" "^7.8.0" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" + "@babel/plugin-syntax-object-rest-spread" "^7.8.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" + "@babel/plugin-syntax-optional-chaining" "^7.8.0" + "@babel/plugin-syntax-top-level-await" "^7.8.3" + "@babel/plugin-transform-arrow-functions" "^7.8.3" + "@babel/plugin-transform-async-to-generator" "^7.8.3" + "@babel/plugin-transform-block-scoped-functions" "^7.8.3" + "@babel/plugin-transform-block-scoping" "^7.8.3" + "@babel/plugin-transform-classes" "^7.8.3" + "@babel/plugin-transform-computed-properties" "^7.8.3" + "@babel/plugin-transform-destructuring" "^7.8.3" + "@babel/plugin-transform-dotall-regex" "^7.8.3" + "@babel/plugin-transform-duplicate-keys" "^7.8.3" + "@babel/plugin-transform-exponentiation-operator" "^7.8.3" + "@babel/plugin-transform-for-of" "^7.8.3" + "@babel/plugin-transform-function-name" "^7.8.3" + "@babel/plugin-transform-literals" "^7.8.3" + "@babel/plugin-transform-member-expression-literals" "^7.8.3" + "@babel/plugin-transform-modules-amd" "^7.8.3" + "@babel/plugin-transform-modules-commonjs" "^7.8.3" + "@babel/plugin-transform-modules-systemjs" "^7.8.3" + "@babel/plugin-transform-modules-umd" "^7.8.3" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.8.3" + "@babel/plugin-transform-new-target" "^7.8.3" + "@babel/plugin-transform-object-super" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.8.3" + "@babel/plugin-transform-property-literals" "^7.8.3" + "@babel/plugin-transform-regenerator" "^7.8.3" + "@babel/plugin-transform-reserved-words" "^7.8.3" + "@babel/plugin-transform-shorthand-properties" "^7.8.3" + "@babel/plugin-transform-spread" "^7.8.3" + "@babel/plugin-transform-sticky-regex" "^7.8.3" + "@babel/plugin-transform-template-literals" "^7.8.3" + "@babel/plugin-transform-typeof-symbol" "^7.8.3" + "@babel/plugin-transform-unicode-regex" "^7.8.3" + "@babel/types" "^7.8.3" + browserslist "^4.8.2" + core-js-compat "^3.6.2" invariant "^2.2.2" - js-levenshtein "^1.1.3" + levenary "^1.1.0" semver "^5.5.0" -"@babel/runtime@^7.4.2", "@babel/runtime@^7.7.2": - version "7.7.2" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.7.2.tgz#111a78002a5c25fc8e3361bedc9529c696b85a6a" - integrity sha512-JONRbXbTXc9WQE2mAZd1p0Z3DZ/6vaQIkgYMSTP3KjRCyd7rCZCcfhCyX+YjwcKxcZ82UrxbRD358bpExNgrjw== +"@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/runtime/download/@babel/runtime-7.8.3.tgz#0811944f73a6c926bb2ad35e918dcc1bfab279f1" + integrity sha1-CBGUT3OmySa7KtNekY3MG/qyefE= dependencies: regenerator-runtime "^0.13.2" -"@babel/template@^7.1.0", "@babel/template@^7.4.4": - version "7.6.0" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.6.0.tgz#7f0159c7f5012230dad64cca42ec9bdb5c9536e6" - integrity sha512-5AEH2EXD8euCk446b7edmgFdub/qfH1SN6Nii3+fyXP807QRx9Q73A2N5hNwRRslC2H9sNzaFhsPubkS4L8oNQ== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/parser" "^7.6.0" - "@babel/types" "^7.6.0" - -"@babel/template@^7.7.0": - version "7.7.0" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.7.0.tgz#4fadc1b8e734d97f56de39c77de76f2562e597d0" - integrity sha512-OKcwSYOW1mhWbnTBgQY5lvg1Fxg+VyfQGjcBduZFljfc044J5iDlnDSfhQ867O17XHiSCxYHUxHg2b7ryitbUQ== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/parser" "^7.7.0" - "@babel/types" "^7.7.0" - -"@babel/traverse@^7.1.0", "@babel/traverse@^7.4.4", "@babel/traverse@^7.5.5": - version "7.6.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.6.0.tgz#389391d510f79be7ce2ddd6717be66d3fed4b516" - integrity sha512-93t52SaOBgml/xY74lsmt7xOR4ufYvhb5c5qiM6lu4J/dWGMAfAh6eKw4PjLes6DI6nQgearoxnFJk60YchpvQ== - dependencies: - "@babel/code-frame" "^7.5.5" - "@babel/generator" "^7.6.0" - "@babel/helper-function-name" "^7.1.0" - "@babel/helper-split-export-declaration" "^7.4.4" - "@babel/parser" "^7.6.0" - "@babel/types" "^7.6.0" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.13" - -"@babel/traverse@^7.7.0", "@babel/traverse@^7.7.2": - version "7.7.2" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.7.2.tgz#ef0a65e07a2f3c550967366b3d9b62a2dcbeae09" - integrity sha512-TM01cXib2+rgIZrGJOLaHV/iZUAxf4A0dt5auY6KNZ+cm6aschuJGqKJM3ROTt3raPUdIDk9siAufIFEleRwtw== - dependencies: - "@babel/code-frame" "^7.5.5" - "@babel/generator" "^7.7.2" - "@babel/helper-function-name" "^7.7.0" - "@babel/helper-split-export-declaration" "^7.7.0" - "@babel/parser" "^7.7.2" - "@babel/types" "^7.7.2" +"@babel/template@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.8.3.tgz#e02ad04fe262a657809327f578056ca15fd4d1b8" + integrity sha1-4CrQT+JipleAkyf1eAVsoV/U0bg= + dependencies: + "@babel/code-frame" "^7.8.3" + "@babel/parser" "^7.8.3" + "@babel/types" "^7.8.3" + +"@babel/traverse@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/traverse/download/@babel/traverse-7.8.3.tgz#a826215b011c9b4f73f3a893afbc05151358bf9a" + integrity sha1-qCYhWwEcm09z86iTr7wFFRNYv5o= + dependencies: + "@babel/code-frame" "^7.8.3" + "@babel/generator" "^7.8.3" + "@babel/helper-function-name" "^7.8.3" + "@babel/helper-split-export-declaration" "^7.8.3" + "@babel/parser" "^7.8.3" + "@babel/types" "^7.8.3" debug "^4.1.0" globals "^11.1.0" lodash "^4.17.13" -"@babel/types@^7.0.0", "@babel/types@^7.4.4", "@babel/types@^7.5.5", "@babel/types@^7.6.0": - version "7.6.1" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.6.1.tgz#53abf3308add3ac2a2884d539151c57c4b3ac648" - integrity sha512-X7gdiuaCmA0uRjCmRtYJNAVCc/q+5xSgsfKJHqMN4iNLILX39677fJE1O40arPMh0TTtS9ItH67yre6c7k6t0g== - dependencies: - esutils "^2.0.2" - lodash "^4.17.13" - to-fast-properties "^2.0.0" - -"@babel/types@^7.7.0", "@babel/types@^7.7.1", "@babel/types@^7.7.2": - version "7.7.2" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.7.2.tgz#550b82e5571dcd174af576e23f0adba7ffc683f7" - integrity sha512-YTf6PXoh3+eZgRCBzzP25Bugd2ngmpQVrk7kXX0i5N9BO7TFBtIgZYs7WtxtOGs8e6A4ZI7ECkbBCEHeXocvOA== +"@babel/types@^7.8.3": + version "7.8.3" + resolved "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.8.3.tgz#5a383dffa5416db1b73dedffd311ffd0788fb31c" + integrity sha1-Wjg9/6VBbbG3Pe3/0xH/0HiPsxw= dependencies: esutils "^2.0.2" lodash "^4.17.13" @@ -826,55 +747,55 @@ "@csstools/convert-colors@^1.4.0": version "1.4.0" - resolved "https://registry.yarnpkg.com/@csstools/convert-colors/-/convert-colors-1.4.0.tgz#ad495dc41b12e75d588c6db8b9834f08fa131eb7" - integrity sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw== + resolved "https://registry.npm.taobao.org/@csstools/convert-colors/download/@csstools/convert-colors-1.4.0.tgz#ad495dc41b12e75d588c6db8b9834f08fa131eb7" + integrity sha1-rUldxBsS511YjG24uYNPCPoTHrc= "@fortawesome/fontawesome-free@^5.11.2": - version "5.11.2" - resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-5.11.2.tgz#8644bc25b19475779a7b7c1fc104bc0a794f4465" - integrity sha512-XiUPoS79r1G7PcpnNtq85TJ7inJWe0v+b5oZJZKb0pGHNIV6+UiNeQWiFGmuQ0aj7GEhnD/v9iqxIsjuRKtEnQ== + version "5.12.0" + resolved "https://registry.npm.taobao.org/@fortawesome/fontawesome-free/download/@fortawesome/fontawesome-free-5.12.0.tgz#8ceb9f09edfb85ea18a6c7bf098f6f5dd5ffd62b" + integrity sha1-jOufCe37heoYpse/CY9vXdX/1is= "@fullcalendar/bootstrap@^4.3.0": version "4.3.0" - resolved "https://registry.yarnpkg.com/@fullcalendar/bootstrap/-/bootstrap-4.3.0.tgz#c989968f92c4ec26a0ff7dfc35b186aa38978ba1" - integrity sha512-Ue0Bm2m765jY2LKRsD7ZyoeYNJeeyXxyzSeMdYY4AHFZTevTlcxv1T7ZYPRDBhseewLwiFHP8e0Okfdiji+BCg== + resolved "https://registry.npm.taobao.org/@fullcalendar/bootstrap/download/@fullcalendar/bootstrap-4.3.0.tgz#c989968f92c4ec26a0ff7dfc35b186aa38978ba1" + integrity sha1-yYmWj5LE7Cag/338NbGGqjiXi6E= "@fullcalendar/core@^4.3.1": version "4.3.1" - resolved "https://registry.yarnpkg.com/@fullcalendar/core/-/core-4.3.1.tgz#a061c6d2e998d4155439dbc8aefdfe01cdf648d8" - integrity sha512-Eh+p/wpMkWGu26f8NpfQK9ecQMoZxX/aopv+0+4/CH+Ip0paP6iEc40JYgTz7RFl0bFqV1dvwyGyUZ4+9ZeySA== + resolved "https://registry.npm.taobao.org/@fullcalendar/core/download/@fullcalendar/core-4.3.1.tgz#a061c6d2e998d4155439dbc8aefdfe01cdf648d8" + integrity sha1-oGHG0umY1BVUOdvIrv3+Ac32SNg= "@fullcalendar/daygrid@^4.3.0", "@fullcalendar/daygrid@~4.3.0": version "4.3.0" - resolved "https://registry.yarnpkg.com/@fullcalendar/daygrid/-/daygrid-4.3.0.tgz#1b4ab9fdc238dba77921cb7c5bd2d813c834e905" - integrity sha512-OrGaRIGbELESOXOCXtoQVY4cOxnxmN7OrjDGbMoVITdoXWuIZ6sFNO84WcBQoRaIbkmqVM0SAU2MENwy+eEwqQ== + resolved "https://registry.npm.taobao.org/@fullcalendar/daygrid/download/@fullcalendar/daygrid-4.3.0.tgz#1b4ab9fdc238dba77921cb7c5bd2d813c834e905" + integrity sha1-G0q5/cI426d5Ict8W9LYE8g06QU= "@fullcalendar/interaction@^4.3.0": version "4.3.0" - resolved "https://registry.yarnpkg.com/@fullcalendar/interaction/-/interaction-4.3.0.tgz#a52d22e4fa2666d5032c77afde75ecfad95c0f3b" - integrity sha512-kaKV+tdgH/oIrwTSMGYFec989L5r+KMYJ9ybwLc8G3LbMVcebo8fAlN9VizmGQAuopKfyvOw8yzJdjfmVCCRYQ== + resolved "https://registry.npm.taobao.org/@fullcalendar/interaction/download/@fullcalendar/interaction-4.3.0.tgz#a52d22e4fa2666d5032c77afde75ecfad95c0f3b" + integrity sha1-pS0i5PomZtUDLHev3nXs+tlcDzs= "@fullcalendar/timegrid@^4.3.0": version "4.3.0" - resolved "https://registry.yarnpkg.com/@fullcalendar/timegrid/-/timegrid-4.3.0.tgz#bf003499319e5e66135bb7b8d8ed274b1a62ca91" - integrity sha512-9JCSZbzw2Hi+X893l5X9ViZaWjxh+sDy59o6nKx0gYKwSfs/vKpmk73GBQfKyUv8orkjpnTdPFfeLDZqlzBP4Q== + resolved "https://registry.npm.taobao.org/@fullcalendar/timegrid/download/@fullcalendar/timegrid-4.3.0.tgz#bf003499319e5e66135bb7b8d8ed274b1a62ca91" + integrity sha1-vwA0mTGeXmYTW7e42O0nSxpiypE= dependencies: "@fullcalendar/daygrid" "~4.3.0" "@lgaitan/pace-progress@^1.0.7": version "1.0.7" - resolved "https://registry.yarnpkg.com/@lgaitan/pace-progress/-/pace-progress-1.0.7.tgz#c96fbbd9fd4cf528feed34ea0c8f9d8b3e98f0dd" + resolved "https://registry.npm.taobao.org/@lgaitan/pace-progress/download/@lgaitan/pace-progress-1.0.7.tgz#c96fbbd9fd4cf528feed34ea0c8f9d8b3e98f0dd" integrity sha1-yW+72f1M9Sj+7TTqDI+diz6Y8N0= "@rails/ujs@^6.0.2": version "6.0.2" - resolved "https://registry.yarnpkg.com/@rails/ujs/-/ujs-6.0.2.tgz#8d32452d51c5e115374a218fb5475803dc17f4c0" - integrity sha512-KSQjJG8yzSWC1IT+UtFQglefABU37hpJ7uAz39K1/iWtoaJaI9ydGIaxxpJBT/PmYv4kS6lCSjXq13DELeJocw== + resolved "https://registry.npm.taobao.org/@rails/ujs/download/@rails/ujs-6.0.2.tgz#8d32452d51c5e115374a218fb5475803dc17f4c0" + integrity sha1-jTJFLVHF4RU3SiGPtUdYA9wX9MA= "@rails/webpacker@^4.2.2": version "4.2.2" - resolved "https://registry.yarnpkg.com/@rails/webpacker/-/webpacker-4.2.2.tgz#b9dd3235fdf4d0badbda8e33f6ebee742a9f3abb" - integrity sha512-jzw7qMfSCLdrt9j1X+2IvXjf63huXYqeIPwLujXa9pYFvxtEstbVYRDivuLhiDokzih+PrYpB+dLTGBNgVsnpw== + resolved "https://registry.npm.taobao.org/@rails/webpacker/download/@rails/webpacker-4.2.2.tgz#b9dd3235fdf4d0badbda8e33f6ebee742a9f3abb" + integrity sha1-ud0yNf300Lrb2o4z9uvudCqfOrs= dependencies: "@babel/core" "^7.7.2" "@babel/plugin-proposal-class-properties" "^7.7.0" @@ -917,23 +838,23 @@ "@sweetalert2/theme-bootstrap-4@^2.2.1": version "2.2.1" - resolved "https://registry.yarnpkg.com/@sweetalert2/theme-bootstrap-4/-/theme-bootstrap-4-2.2.1.tgz#a0e3496f2d5aa2993f8fe1c59dcec0673941cddb" - integrity sha512-EzAc/HFO16wuZCmawdv0mxRknXtQ5XYmms8gHCcRBqVJsolwl0xKanH8wC2tf4O6dFLou6ZndNqii8ArQO66pA== + resolved "https://registry.npm.taobao.org/@sweetalert2/theme-bootstrap-4/download/@sweetalert2/theme-bootstrap-4-2.2.1.tgz#a0e3496f2d5aa2993f8fe1c59dcec0673941cddb" + integrity sha1-oONJby1aopk/j+HFnc7AZzlBzds= "@ttskch/select2-bootstrap4-theme@^1.3.2": version "1.3.2" - resolved "https://registry.yarnpkg.com/@ttskch/select2-bootstrap4-theme/-/select2-bootstrap4-theme-1.3.2.tgz#c9e17e34fb2cfd9f41b8efe3584165ccbdd96969" - integrity sha512-wm5QbtsZAJs9+IMNa9IrMJiCwJFrvutYKYRZAg6gut4/x7RBANsoSA1xQ5v9QxwhZ+kmb9Sh0BjvWm3K8glunQ== + resolved "https://registry.npm.taobao.org/@ttskch/select2-bootstrap4-theme/download/@ttskch/select2-bootstrap4-theme-1.3.2.tgz#c9e17e34fb2cfd9f41b8efe3584165ccbdd96969" + integrity sha1-yeF+NPss/Z9BuO/jWEFlzL3ZaWk= "@types/events@*": version "3.0.0" - resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" - integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g== + resolved "https://registry.npm.taobao.org/@types/events/download/@types/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" + integrity sha1-KGLz9Yqaf3w+eNefEw3U1xwlwqc= "@types/glob@^7.1.1": version "7.1.1" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575" - integrity sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w== + resolved "https://registry.npm.taobao.org/@types/glob/download/@types/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575" + integrity sha1-qlmhxuP7xCHgfM0xqUTDDrpSFXU= dependencies: "@types/events" "*" "@types/minimatch" "*" @@ -941,23 +862,28 @@ "@types/minimatch@*": version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" - integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== + resolved "https://registry.npm.taobao.org/@types/minimatch/download/@types/minimatch-3.0.3.tgz?cache=0&sync_timestamp=1572464707542&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fminimatch%2Fdownload%2F%40types%2Fminimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" + integrity sha1-PcoOPzOyAPx9ETnAzZbBJoyt/Z0= "@types/node@*": - version "12.7.5" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.7.5.tgz#e19436e7f8e9b4601005d73673b6dc4784ffcc2f" - integrity sha512-9fq4jZVhPNW8r+UYKnxF1e2HkDWOWKM5bC2/7c9wPV835I0aOrVbS/Hw/pWPk2uKrNXQqg9Z959Kz+IYDd5p3w== + version "13.1.6" + resolved "https://registry.npm.taobao.org/@types/node/download/@types/node-13.1.6.tgz?cache=0&sync_timestamp=1578585994687&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-13.1.6.tgz#076028d0b0400be8105b89a0a55550c86684ffec" + integrity sha1-B2Ao0LBAC+gQW4mgpVVQyGaE/+w= + +"@types/parse-json@^4.0.0": + version "4.0.0" + resolved "https://registry.npm.taobao.org/@types/parse-json/download/@types/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" + integrity sha1-L4u0QUNNFjs1+4/9zNcTiSf/uMA= "@types/q@^1.5.1": version "1.5.2" - resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.2.tgz#690a1475b84f2a884fd07cd797c00f5f31356ea8" - integrity sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw== + resolved "https://registry.npm.taobao.org/@types/q/download/@types/q-1.5.2.tgz#690a1475b84f2a884fd07cd797c00f5f31356ea8" + integrity sha1-aQoUdbhPKohP0HzXl8APXzE1bqg= "@webassemblyjs/ast@1.8.5": version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.8.5.tgz#51b1c5fe6576a34953bf4b253df9f0d490d9e359" - integrity sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ== + resolved "https://registry.npm.taobao.org/@webassemblyjs/ast/download/@webassemblyjs/ast-1.8.5.tgz#51b1c5fe6576a34953bf4b253df9f0d490d9e359" + integrity sha1-UbHF/mV2o0lTv0slPfnw1JDZ41k= dependencies: "@webassemblyjs/helper-module-context" "1.8.5" "@webassemblyjs/helper-wasm-bytecode" "1.8.5" @@ -965,48 +891,48 @@ "@webassemblyjs/floating-point-hex-parser@1.8.5": version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz#1ba926a2923613edce496fd5b02e8ce8a5f49721" - integrity sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ== + resolved "https://registry.npm.taobao.org/@webassemblyjs/floating-point-hex-parser/download/@webassemblyjs/floating-point-hex-parser-1.8.5.tgz#1ba926a2923613edce496fd5b02e8ce8a5f49721" + integrity sha1-G6kmopI2E+3OSW/VsC6M6KX0lyE= "@webassemblyjs/helper-api-error@1.8.5": version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz#c49dad22f645227c5edb610bdb9697f1aab721f7" - integrity sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA== + resolved "https://registry.npm.taobao.org/@webassemblyjs/helper-api-error/download/@webassemblyjs/helper-api-error-1.8.5.tgz#c49dad22f645227c5edb610bdb9697f1aab721f7" + integrity sha1-xJ2tIvZFInxe22EL25aX8aq3Ifc= "@webassemblyjs/helper-buffer@1.8.5": version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz#fea93e429863dd5e4338555f42292385a653f204" - integrity sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q== + resolved "https://registry.npm.taobao.org/@webassemblyjs/helper-buffer/download/@webassemblyjs/helper-buffer-1.8.5.tgz#fea93e429863dd5e4338555f42292385a653f204" + integrity sha1-/qk+Qphj3V5DOFVfQikjhaZT8gQ= "@webassemblyjs/helper-code-frame@1.8.5": version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz#9a740ff48e3faa3022b1dff54423df9aa293c25e" - integrity sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ== + resolved "https://registry.npm.taobao.org/@webassemblyjs/helper-code-frame/download/@webassemblyjs/helper-code-frame-1.8.5.tgz#9a740ff48e3faa3022b1dff54423df9aa293c25e" + integrity sha1-mnQP9I4/qjAisd/1RCPfmqKTwl4= dependencies: "@webassemblyjs/wast-printer" "1.8.5" "@webassemblyjs/helper-fsm@1.8.5": version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz#ba0b7d3b3f7e4733da6059c9332275d860702452" - integrity sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow== + resolved "https://registry.npm.taobao.org/@webassemblyjs/helper-fsm/download/@webassemblyjs/helper-fsm-1.8.5.tgz#ba0b7d3b3f7e4733da6059c9332275d860702452" + integrity sha1-ugt9Oz9+RzPaYFnJMyJ12GBwJFI= "@webassemblyjs/helper-module-context@1.8.5": version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz#def4b9927b0101dc8cbbd8d1edb5b7b9c82eb245" - integrity sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g== + resolved "https://registry.npm.taobao.org/@webassemblyjs/helper-module-context/download/@webassemblyjs/helper-module-context-1.8.5.tgz#def4b9927b0101dc8cbbd8d1edb5b7b9c82eb245" + integrity sha1-3vS5knsBAdyMu9jR7bW3ucguskU= dependencies: "@webassemblyjs/ast" "1.8.5" mamacro "^0.0.3" "@webassemblyjs/helper-wasm-bytecode@1.8.5": version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz#537a750eddf5c1e932f3744206551c91c1b93e61" - integrity sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ== + resolved "https://registry.npm.taobao.org/@webassemblyjs/helper-wasm-bytecode/download/@webassemblyjs/helper-wasm-bytecode-1.8.5.tgz#537a750eddf5c1e932f3744206551c91c1b93e61" + integrity sha1-U3p1Dt31weky83RCBlUckcG5PmE= "@webassemblyjs/helper-wasm-section@1.8.5": version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz#74ca6a6bcbe19e50a3b6b462847e69503e6bfcbf" - integrity sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA== + resolved "https://registry.npm.taobao.org/@webassemblyjs/helper-wasm-section/download/@webassemblyjs/helper-wasm-section-1.8.5.tgz#74ca6a6bcbe19e50a3b6b462847e69503e6bfcbf" + integrity sha1-dMpqa8vhnlCjtrRihH5pUD5r/L8= dependencies: "@webassemblyjs/ast" "1.8.5" "@webassemblyjs/helper-buffer" "1.8.5" @@ -1015,27 +941,27 @@ "@webassemblyjs/ieee754@1.8.5": version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz#712329dbef240f36bf57bd2f7b8fb9bf4154421e" - integrity sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g== + resolved "https://registry.npm.taobao.org/@webassemblyjs/ieee754/download/@webassemblyjs/ieee754-1.8.5.tgz#712329dbef240f36bf57bd2f7b8fb9bf4154421e" + integrity sha1-cSMp2+8kDza/V70ve4+5v0FUQh4= dependencies: "@xtuc/ieee754" "^1.2.0" "@webassemblyjs/leb128@1.8.5": version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.8.5.tgz#044edeb34ea679f3e04cd4fd9824d5e35767ae10" - integrity sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A== + resolved "https://registry.npm.taobao.org/@webassemblyjs/leb128/download/@webassemblyjs/leb128-1.8.5.tgz#044edeb34ea679f3e04cd4fd9824d5e35767ae10" + integrity sha1-BE7es06mefPgTNT9mCTV41dnrhA= dependencies: "@xtuc/long" "4.2.2" "@webassemblyjs/utf8@1.8.5": version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.8.5.tgz#a8bf3b5d8ffe986c7c1e373ccbdc2a0915f0cedc" - integrity sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw== + resolved "https://registry.npm.taobao.org/@webassemblyjs/utf8/download/@webassemblyjs/utf8-1.8.5.tgz#a8bf3b5d8ffe986c7c1e373ccbdc2a0915f0cedc" + integrity sha1-qL87XY/+mGx8Hjc8y9wqCRXwztw= "@webassemblyjs/wasm-edit@1.8.5": version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz#962da12aa5acc1c131c81c4232991c82ce56e01a" - integrity sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q== + resolved "https://registry.npm.taobao.org/@webassemblyjs/wasm-edit/download/@webassemblyjs/wasm-edit-1.8.5.tgz#962da12aa5acc1c131c81c4232991c82ce56e01a" + integrity sha1-li2hKqWswcExyBxCMpkcgs5W4Bo= dependencies: "@webassemblyjs/ast" "1.8.5" "@webassemblyjs/helper-buffer" "1.8.5" @@ -1048,8 +974,8 @@ "@webassemblyjs/wasm-gen@1.8.5": version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz#54840766c2c1002eb64ed1abe720aded714f98bc" - integrity sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg== + resolved "https://registry.npm.taobao.org/@webassemblyjs/wasm-gen/download/@webassemblyjs/wasm-gen-1.8.5.tgz#54840766c2c1002eb64ed1abe720aded714f98bc" + integrity sha1-VIQHZsLBAC62TtGr5yCt7XFPmLw= dependencies: "@webassemblyjs/ast" "1.8.5" "@webassemblyjs/helper-wasm-bytecode" "1.8.5" @@ -1059,8 +985,8 @@ "@webassemblyjs/wasm-opt@1.8.5": version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz#b24d9f6ba50394af1349f510afa8ffcb8a63d264" - integrity sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q== + resolved "https://registry.npm.taobao.org/@webassemblyjs/wasm-opt/download/@webassemblyjs/wasm-opt-1.8.5.tgz#b24d9f6ba50394af1349f510afa8ffcb8a63d264" + integrity sha1-sk2fa6UDlK8TSfUQr6j/y4pj0mQ= dependencies: "@webassemblyjs/ast" "1.8.5" "@webassemblyjs/helper-buffer" "1.8.5" @@ -1069,8 +995,8 @@ "@webassemblyjs/wasm-parser@1.8.5": version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz#21576f0ec88b91427357b8536383668ef7c66b8d" - integrity sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw== + resolved "https://registry.npm.taobao.org/@webassemblyjs/wasm-parser/download/@webassemblyjs/wasm-parser-1.8.5.tgz#21576f0ec88b91427357b8536383668ef7c66b8d" + integrity sha1-IVdvDsiLkUJzV7hTY4NmjvfGa40= dependencies: "@webassemblyjs/ast" "1.8.5" "@webassemblyjs/helper-api-error" "1.8.5" @@ -1081,8 +1007,8 @@ "@webassemblyjs/wast-parser@1.8.5": version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz#e10eecd542d0e7bd394f6827c49f3df6d4eefb8c" - integrity sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg== + resolved "https://registry.npm.taobao.org/@webassemblyjs/wast-parser/download/@webassemblyjs/wast-parser-1.8.5.tgz#e10eecd542d0e7bd394f6827c49f3df6d4eefb8c" + integrity sha1-4Q7s1ULQ5705T2gnxJ899tTu+4w= dependencies: "@webassemblyjs/ast" "1.8.5" "@webassemblyjs/floating-point-hex-parser" "1.8.5" @@ -1093,8 +1019,8 @@ "@webassemblyjs/wast-printer@1.8.5": version "1.8.5" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz#114bbc481fd10ca0e23b3560fa812748b0bae5bc" - integrity sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg== + resolved "https://registry.npm.taobao.org/@webassemblyjs/wast-printer/download/@webassemblyjs/wast-printer-1.8.5.tgz#114bbc481fd10ca0e23b3560fa812748b0bae5bc" + integrity sha1-EUu8SB/RDKDiOzVg+oEnSLC65bw= dependencies: "@webassemblyjs/ast" "1.8.5" "@webassemblyjs/wast-parser" "1.8.5" @@ -1102,31 +1028,31 @@ "@xtuc/ieee754@^1.2.0": version "1.2.0" - resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" - integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + resolved "https://registry.npm.taobao.org/@xtuc/ieee754/download/@xtuc/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + integrity sha1-7vAUoxRa5Hehy8AM0eVSM23Ot5A= "@xtuc/long@4.2.2": version "4.2.2" - resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" - integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + resolved "https://registry.npm.taobao.org/@xtuc/long/download/@xtuc/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + integrity sha1-0pHGpOl5ibXGHZrPOWrk/hM6cY0= abbrev@1: version "1.1.1" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" - integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + resolved "https://registry.npm.taobao.org/abbrev/download/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha1-+PLIh60Qv2f2NPAFtph/7TF5qsg= accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: version "1.3.7" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" - integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== + resolved "https://registry.npm.taobao.org/accepts/download/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" + integrity sha1-UxvHJlF6OytB+FACHGzBXqq1B80= dependencies: mime-types "~2.1.24" negotiator "0.6.2" acorn-node@^1.3.0: version "1.8.2" - resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.8.2.tgz#114c95d64539e53dede23de8b9d96df7c7ae2af8" - integrity sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A== + resolved "https://registry.npm.taobao.org/acorn-node/download/acorn-node-1.8.2.tgz#114c95d64539e53dede23de8b9d96df7c7ae2af8" + integrity sha1-EUyV1kU55T3t4j3oudlt98euKvg= dependencies: acorn "^7.0.0" acorn-walk "^7.0.0" @@ -1134,28 +1060,28 @@ acorn-node@^1.3.0: acorn-walk@^7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.0.0.tgz#c8ba6f0f1aac4b0a9e32d1f0af12be769528f36b" - integrity sha512-7Bv1We7ZGuU79zZbb6rRqcpxo3OY+zrdtloZWoyD8fmGX+FeXRjE+iuGkZjSXLVovLzrsvMGMy0EkwA0E0umxg== + resolved "https://registry.npm.taobao.org/acorn-walk/download/acorn-walk-7.0.0.tgz#c8ba6f0f1aac4b0a9e32d1f0af12be769528f36b" + integrity sha1-yLpvDxqsSwqeMtHwrxK+dpUo82s= acorn@^5.0.0: version "5.7.3" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" - integrity sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw== + resolved "https://registry.npm.taobao.org/acorn/download/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" + integrity sha1-Z6ojG/iBKXS4UjWpZ3Hra9B+onk= acorn@^6.2.1: - version "6.3.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.3.0.tgz#0087509119ffa4fc0a0041d1e93a417e68cb856e" - integrity sha512-/czfa8BwS88b9gWQVhc8eknunSA2DoJpJyTQkhheIf5E48u1N0R4q/YxxsAeqRrmK9TQ/uYfgLDfZo91UlANIA== + version "6.4.0" + resolved "https://registry.npm.taobao.org/acorn/download/acorn-6.4.0.tgz#b659d2ffbafa24baf5db1cdbb2c94a983ecd2784" + integrity sha1-tlnS/7r6JLr12xzbsslKmD7NJ4Q= acorn@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.0.0.tgz#26b8d1cd9a9b700350b71c0905546f64d1284e7a" - integrity sha512-PaF/MduxijYYt7unVGRuds1vBC9bFxbNf+VWqhOClfdgy7RlVkQqt610ig1/yxTgsDIfW1cWDel5EBbOy3jdtQ== + version "7.1.0" + resolved "https://registry.npm.taobao.org/acorn/download/acorn-7.1.0.tgz#949d36f2c292535da602283586c2477c57eb2d6c" + integrity sha1-lJ028sKSU12mAig1hsJHfFfrLWw= admin-lte@^3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/admin-lte/-/admin-lte-3.0.1.tgz#5d6768330868bdc8f424960f7eabc3f38af7a0f4" - integrity sha512-rCZuAFLZfVNPTwoXxrfovWtgQMPBcqxsLo5DMsBAJEk86fp28R97Ey1YkURoOcm5ltB5tOXM634YUuyeAmqQ7g== + resolved "https://registry.npm.taobao.org/admin-lte/download/admin-lte-3.0.1.tgz#5d6768330868bdc8f424960f7eabc3f38af7a0f4" + integrity sha1-XWdoMwhovcj0JJYPfqvD84r3oPQ= dependencies: "@fortawesome/fontawesome-free" "^5.11.2" "@fullcalendar/bootstrap" "^4.3.0" @@ -1219,26 +1145,26 @@ admin-lte@^3.0.1: aggregate-error@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.0.1.tgz#db2fe7246e536f40d9b5442a39e117d7dd6a24e0" - integrity sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA== + resolved "https://registry.npm.taobao.org/aggregate-error/download/aggregate-error-3.0.1.tgz#db2fe7246e536f40d9b5442a39e117d7dd6a24e0" + integrity sha1-2y/nJG5Tb0DZtUQqOeEX191qJOA= dependencies: clean-stack "^2.0.0" indent-string "^4.0.0" ajv-errors@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" - integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== + resolved "https://registry.npm.taobao.org/ajv-errors/download/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" + integrity sha1-81mGrOuRr63sQQL72FAUlQzvpk0= ajv-keywords@^3.1.0, ajv-keywords@^3.4.1: version "3.4.1" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da" - integrity sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ== + resolved "https://registry.npm.taobao.org/ajv-keywords/download/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da" + integrity sha1-75FuJxxkrBIXH9g4TqrmsjRYVNo= ajv@^6.1.0, ajv@^6.10.2, ajv@^6.5.5: version "6.10.2" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52" - integrity sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw== + resolved "https://registry.npm.taobao.org/ajv/download/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52" + integrity sha1-086gTWsBeyiUrWkED+yLYj60vVI= dependencies: fast-deep-equal "^2.0.1" fast-json-stable-stringify "^2.0.0" @@ -1247,135 +1173,135 @@ ajv@^6.1.0, ajv@^6.10.2, ajv@^6.5.5: alphanum-sort@^1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" + resolved "https://registry.npm.taobao.org/alphanum-sort/download/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= amdefine@>=0.0.4: version "1.0.1" - resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" + resolved "https://registry.npm.taobao.org/amdefine/download/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU= ansi-colors@^3.0.0: version "3.2.4" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" - integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== + resolved "https://registry.npm.taobao.org/ansi-colors/download/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" + integrity sha1-46PaS/uubIapwoViXeEkojQCb78= ansi-html@0.0.7: version "0.0.7" - resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" + resolved "https://registry.npm.taobao.org/ansi-html/download/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4= ansi-regex@^2.0.0: version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + resolved "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= ansi-regex@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + resolved "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= ansi-regex@^4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" - integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + resolved "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc= ansi-styles@^2.2.1: version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + resolved "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= ansi-styles@^3.2.0, ansi-styles@^3.2.1: version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + resolved "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0= dependencies: color-convert "^1.9.0" anymatch@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" - integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== + resolved "https://registry.npm.taobao.org/anymatch/download/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + integrity sha1-vLJLTzeTTZqnrBe0ra+J58du8us= dependencies: micromatch "^3.1.4" normalize-path "^2.1.1" aproba@^1.0.3, aproba@^1.1.1: version "1.2.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" - integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== + resolved "https://registry.npm.taobao.org/aproba/download/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + integrity sha1-aALmJk79GMeQobDVF/DyYnvyyUo= are-we-there-yet@~1.1.2: version "1.1.5" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" - integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== + resolved "https://registry.npm.taobao.org/are-we-there-yet/download/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" + integrity sha1-SzXClE8GKov82mZBB2A1D+nd/CE= dependencies: delegates "^1.0.0" readable-stream "^2.0.6" argparse@^1.0.7: version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + resolved "https://registry.npm.taobao.org/argparse/download/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE= dependencies: sprintf-js "~1.0.2" arr-diff@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + resolved "https://registry.npm.taobao.org/arr-diff/download/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= arr-flatten@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== + resolved "https://registry.npm.taobao.org/arr-flatten/download/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + integrity sha1-NgSLv/TntH4TZkQxbJlmnqWukfE= arr-union@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + resolved "https://registry.npm.taobao.org/arr-union/download/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= array-find-index@^1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" + resolved "https://registry.npm.taobao.org/array-find-index/download/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= array-flatten@1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + resolved "https://registry.npm.taobao.org/array-flatten/download/array-flatten-1.1.1.tgz?cache=0&sync_timestamp=1574313315299&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-flatten%2Fdownload%2Farray-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= array-flatten@^2.1.0: version "2.1.2" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" - integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== + resolved "https://registry.npm.taobao.org/array-flatten/download/array-flatten-2.1.2.tgz?cache=0&sync_timestamp=1574313315299&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-flatten%2Fdownload%2Farray-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" + integrity sha1-JO+AoowaiTYX4hSbDG0NeIKTsJk= array-from@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/array-from/-/array-from-2.1.1.tgz#cfe9d8c26628b9dc5aecc62a9f5d8f1f352c1195" + resolved "https://registry.npm.taobao.org/array-from/download/array-from-2.1.1.tgz#cfe9d8c26628b9dc5aecc62a9f5d8f1f352c1195" integrity sha1-z+nYwmYoudxa7MYqn12PHzUsEZU= array-union@^1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + resolved "https://registry.npm.taobao.org/array-union/download/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= dependencies: array-uniq "^1.0.1" array-uniq@^1.0.1: version "1.0.3" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + resolved "https://registry.npm.taobao.org/array-uniq/download/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= array-unique@^0.3.2: version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + resolved "https://registry.npm.taobao.org/array-unique/download/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= asn1.js@^4.0.0: version "4.10.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" - integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== + resolved "https://registry.npm.taobao.org/asn1.js/download/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" + integrity sha1-ucK/WAXx5kqt7tbfOiv6+1pz9aA= dependencies: bn.js "^4.0.0" inherits "^2.0.1" @@ -1383,32 +1309,32 @@ asn1.js@^4.0.0: asn1@~0.2.3: version "0.2.4" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" - integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== + resolved "https://registry.npm.taobao.org/asn1/download/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" + integrity sha1-jSR136tVO7M+d7VOWeiAu4ziMTY= dependencies: safer-buffer "~2.1.0" assert-plus@1.0.0, assert-plus@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + resolved "https://registry.npm.taobao.org/assert-plus/download/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= assert@^1.1.1: version "1.5.0" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" - integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== + resolved "https://registry.npm.taobao.org/assert/download/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" + integrity sha1-VcEJqvbgrv2z3EtxJAxwv1dLGOs= dependencies: object-assign "^4.1.1" util "0.10.3" assign-symbols@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + resolved "https://registry.npm.taobao.org/assign-symbols/download/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= ast-transform@0.0.0: version "0.0.0" - resolved "https://registry.yarnpkg.com/ast-transform/-/ast-transform-0.0.0.tgz#74944058887d8283e189d954600947bc98fe0062" + resolved "https://registry.npm.taobao.org/ast-transform/download/ast-transform-0.0.0.tgz#74944058887d8283e189d954600947bc98fe0062" integrity sha1-dJRAWIh9goPhidlUYAlHvJj+AGI= dependencies: escodegen "~1.2.0" @@ -1417,68 +1343,68 @@ ast-transform@0.0.0: ast-types@^0.7.0: version "0.7.8" - resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.7.8.tgz#902d2e0d60d071bdcd46dc115e1809ed11c138a9" + resolved "https://registry.npm.taobao.org/ast-types/download/ast-types-0.7.8.tgz#902d2e0d60d071bdcd46dc115e1809ed11c138a9" integrity sha1-kC0uDWDQcb3NRtwRXhgJ7RHBOKk= async-each@^1.0.1: version "1.0.3" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" - integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== + resolved "https://registry.npm.taobao.org/async-each/download/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" + integrity sha1-tyfb+H12UWAvBvTUrDh/R9kbDL8= async-foreach@^0.1.3: version "0.1.3" - resolved "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542" + resolved "https://registry.npm.taobao.org/async-foreach/download/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542" integrity sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI= async-limiter@~1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" - integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== + resolved "https://registry.npm.taobao.org/async-limiter/download/async-limiter-1.0.1.tgz?cache=0&sync_timestamp=1574272018408&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fasync-limiter%2Fdownload%2Fasync-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" + integrity sha1-3TeelPDbgxCwgpH51kwyCXZmF/0= async@^2.6.2: version "2.6.3" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" - integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== + resolved "https://registry.npm.taobao.org/async/download/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" + integrity sha1-1yYl4jRKNlbjo61Pp0n6gymdgv8= dependencies: lodash "^4.17.14" asynckit@^0.4.0: version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + resolved "https://registry.npm.taobao.org/asynckit/download/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= -atob@^2.1.1: +atob@^2.1.2: version "2.1.2" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" - integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== + resolved "https://registry.npm.taobao.org/atob/download/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha1-bZUX654DDSQ2ZmZR6GvZ9vE1M8k= autoprefixer@^9.6.1: - version "9.6.1" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.6.1.tgz#51967a02d2d2300bb01866c1611ec8348d355a47" - integrity sha512-aVo5WxR3VyvyJxcJC3h4FKfwCQvQWb1tSI5VHNibddCVWrcD1NvlxEweg3TSgiPztMnWfjpy2FURKA2kvDE+Tw== + version "9.7.3" + resolved "https://registry.npm.taobao.org/autoprefixer/download/autoprefixer-9.7.3.tgz#fd42ed03f53de9beb4ca0d61fb4f7268a9bb50b4" + integrity sha1-/ULtA/U96b60yg1h+09yaKm7ULQ= dependencies: - browserslist "^4.6.3" - caniuse-lite "^1.0.30000980" + browserslist "^4.8.0" + caniuse-lite "^1.0.30001012" chalk "^2.4.2" normalize-range "^0.1.2" num2fraction "^1.2.2" - postcss "^7.0.17" - postcss-value-parser "^4.0.0" + postcss "^7.0.23" + postcss-value-parser "^4.0.2" aws-sign2@~0.7.0: version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + resolved "https://registry.npm.taobao.org/aws-sign2/download/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= aws4@^1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.8.0.tgz#f0e003d9ca9e7f59c7a508945d7b2ef9a04a542f" - integrity sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ== + version "1.9.1" + resolved "https://registry.npm.taobao.org/aws4/download/aws4-1.9.1.tgz?cache=0&sync_timestamp=1578958189607&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Faws4%2Fdownload%2Faws4-1.9.1.tgz#7e33d8f7d449b3f673cd72deb9abdc552dbe528e" + integrity sha1-fjPY99RJs/ZzzXLeuavcVS2+Uo4= babel-loader@^8.0.6: version "8.0.6" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.0.6.tgz#e33bdb6f362b03f4bb141a0c21ab87c501b70dfb" - integrity sha512-4BmWKtBOBm13uoUwd08UwjZlaw3O9GWf456R9j+5YykFZ6LUIjIKLc0zEZf+hauxPOJs96C8k6FvYD09vWzhYw== + resolved "https://registry.npm.taobao.org/babel-loader/download/babel-loader-8.0.6.tgz#e33bdb6f362b03f4bb141a0c21ab87c501b70dfb" + integrity sha1-4zvbbzYrA/S7FBoMIauHxQG3Dfs= dependencies: find-cache-dir "^2.0.0" loader-utils "^1.0.2" @@ -1487,23 +1413,23 @@ babel-loader@^8.0.6: babel-plugin-dynamic-import-node@^2.3.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.0.tgz#f00f507bdaa3c3e3ff6e7e5e98d90a7acab96f7f" - integrity sha512-o6qFkpeQEBxcqt0XYlWzAVxNCSCZdUgcR8IRlhD/8DylxjjO4foPcvTW0GGKa/cVt3rvxZ7o5ippJ+/0nvLhlQ== + resolved "https://registry.npm.taobao.org/babel-plugin-dynamic-import-node/download/babel-plugin-dynamic-import-node-2.3.0.tgz#f00f507bdaa3c3e3ff6e7e5e98d90a7acab96f7f" + integrity sha1-8A9Qe9qjw+P/bn5emNkKesq5b38= dependencies: object.assign "^4.1.0" babel-plugin-macros@^2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.6.1.tgz#41f7ead616fc36f6a93180e89697f69f51671181" - integrity sha512-6W2nwiXme6j1n2erPOnmRiWfObUhWH7Qw1LMi9XZy8cj+KtESu3T6asZvtk5bMQQjX8te35o7CFueiSdL/2NmQ== + version "2.8.0" + resolved "https://registry.npm.taobao.org/babel-plugin-macros/download/babel-plugin-macros-2.8.0.tgz#0f958a7cc6556b1e65344465d99111a1e5e10138" + integrity sha1-D5WKfMZVax5lNERl2ZERoeXhATg= dependencies: - "@babel/runtime" "^7.4.2" - cosmiconfig "^5.2.0" - resolve "^1.10.0" + "@babel/runtime" "^7.7.2" + cosmiconfig "^6.0.0" + resolve "^1.12.0" babel-runtime@^6.11.6: version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + resolved "https://registry.npm.taobao.org/babel-runtime/download/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= dependencies: core-js "^2.4.0" @@ -1511,23 +1437,23 @@ babel-runtime@^6.11.6: balanced-match@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + resolved "https://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= base64-js@0.0.8: version "0.0.8" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-0.0.8.tgz#1101e9544f4a76b1bc3b26d452ca96d7a35e7978" + resolved "https://registry.npm.taobao.org/base64-js/download/base64-js-0.0.8.tgz#1101e9544f4a76b1bc3b26d452ca96d7a35e7978" integrity sha1-EQHpVE9KdrG8OybUUsqW16NeeXg= base64-js@^1.0.2, base64-js@^1.1.2, base64-js@^1.3.0: version "1.3.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" - integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== + resolved "https://registry.npm.taobao.org/base64-js/download/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" + integrity sha1-WOzoy3XdB+ce0IxzarxfrE2/jfE= base@^0.11.1: version "0.11.2" - resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" - integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== + resolved "https://registry.npm.taobao.org/base/download/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + integrity sha1-e95c7RRbbVUakNuH+DxVi060io8= dependencies: cache-base "^1.0.1" class-utils "^0.3.5" @@ -1539,47 +1465,54 @@ base@^0.11.1: batch@0.6.1: version "0.6.1" - resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" + resolved "https://registry.npm.taobao.org/batch/download/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY= bcrypt-pbkdf@^1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" + resolved "https://registry.npm.taobao.org/bcrypt-pbkdf/download/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= dependencies: tweetnacl "^0.14.3" big.js@^5.2.2: version "5.2.2" - resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" - integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + resolved "https://registry.npm.taobao.org/big.js/download/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha1-ZfCvOC9Xi83HQr2cKB6cstd2gyg= binary-extensions@^1.0.0: version "1.13.1" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" - integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== + resolved "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" + integrity sha1-WYr+VHVbKGilMw0q/51Ou1Mgm2U= + +bindings@^1.5.0: + version "1.5.0" + resolved "https://registry.npm.taobao.org/bindings/download/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" + integrity sha1-EDU8npRTNLwFEabZCzj7x8nFBN8= + dependencies: + file-uri-to-path "1.0.0" block-stream@*: version "0.0.9" - resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" + resolved "https://registry.npm.taobao.org/block-stream/download/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" integrity sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo= dependencies: inherits "~2.0.0" bluebird@^3.5.5: - version "3.5.5" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.5.tgz#a8d0afd73251effbbd5fe384a77d73003c17a71f" - integrity sha512-5am6HnnfN+urzt4yfg7IgTbotDjIT/u8AJpEt0sIU9FtXfVeezXAPKswrG+xKUCOYAINpSdgZVDU6QFh+cuH3w== + version "3.7.2" + resolved "https://registry.npm.taobao.org/bluebird/download/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha1-nyKcFb4nJFT/qXOs4NvueaGww28= bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: version "4.11.8" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" - integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== + resolved "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" + integrity sha1-LN4J617jQfSEdGuwMJsyU7GxRC8= body-parser@1.19.0: version "1.19.0" - resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" - integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== + resolved "https://registry.npm.taobao.org/body-parser/download/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" + integrity sha1-lrJwnlfJxOCab9Zqj9l5hE9p8Io= dependencies: bytes "3.1.0" content-type "~1.0.4" @@ -1594,7 +1527,7 @@ body-parser@1.19.0: bonjour@^3.5.0: version "3.5.0" - resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" + resolved "https://registry.npm.taobao.org/bonjour/download/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" integrity sha1-jokKGD2O6aI5OzhExpGkK897yfU= dependencies: array-flatten "^2.1.0" @@ -1606,49 +1539,50 @@ bonjour@^3.5.0: boolbase@^1.0.0, boolbase@~1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + resolved "https://registry.npm.taobao.org/boolbase/download/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= bootstrap-colorpicker@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/bootstrap-colorpicker/-/bootstrap-colorpicker-3.1.2.tgz#42737d7fb3f52b42ad9e33ac97f021252307dfae" - integrity sha512-yUWegXox8GYoXVtYdrEIN3QMOeEFbcSFGDadZu2pWmmMgTaw4ECX9T8GvYQzJkRusvK9uzi39FjE0W2k8lQECA== + version "3.2.0" + resolved "https://registry.npm.taobao.org/bootstrap-colorpicker/download/bootstrap-colorpicker-3.2.0.tgz#42b053b865a866b2674527813cd59f90137b9704" + integrity sha1-QrBTuGWoZrJnRSeBPNWfkBN7lwQ= dependencies: bootstrap ">=4.0" jquery ">=2.1.0" + popper.js ">=1.10" bootstrap-slider@^10.6.2: version "10.6.2" - resolved "https://registry.yarnpkg.com/bootstrap-slider/-/bootstrap-slider-10.6.2.tgz#7341f468c012bdaa6a1d8625d989fdeb8ed7dd38" - integrity sha512-8JTPZB9QVOdrGzYF3YgC3YW6ssfPeBvBwZnXffiZ7YH/zz1D0EKlZvmQsm/w3N0XjVNYQEoQ0ax+jHrErV4K1Q== + resolved "https://registry.npm.taobao.org/bootstrap-slider/download/bootstrap-slider-10.6.2.tgz#7341f468c012bdaa6a1d8625d989fdeb8ed7dd38" + integrity sha1-c0H0aMASvapqHYYl2Yn9647X3Tg= bootstrap-switch@^3.4.0: version "3.4.0" - resolved "https://registry.yarnpkg.com/bootstrap-switch/-/bootstrap-switch-3.4.0.tgz#6bbb0445ad8b4264883d06366d48aad3c06988f4" - integrity sha512-P4Qdx7mLjqgilKQeeuDCf8AHWeO7992+NFfh0doAA/ExaJqr02QFHhq18GL8EYd2XRviJ16pUUyMRsfOVaPEVg== + resolved "https://registry.npm.taobao.org/bootstrap-switch/download/bootstrap-switch-3.4.0.tgz#6bbb0445ad8b4264883d06366d48aad3c06988f4" + integrity sha1-a7sERa2LQmSIPQY2bUiq08BpiPQ= bootstrap4-duallistbox@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/bootstrap4-duallistbox/-/bootstrap4-duallistbox-4.0.1.tgz#89fa6ece3496871bbdf0c63dc256dceb5324b203" - integrity sha512-DlIvIhCY8LtlnPe1QYIl+iHpNAvKv/TBqhNGKI/OcuFBoQ1Cx2hVBiqKEFi5fFn0zSRZZdxCJ2RsmBrQurNMiQ== + resolved "https://registry.npm.taobao.org/bootstrap4-duallistbox/download/bootstrap4-duallistbox-4.0.1.tgz#89fa6ece3496871bbdf0c63dc256dceb5324b203" + integrity sha1-ifpuzjSWhxu98MY9wlbc61MksgM= bootstrap@>=4.0, bootstrap@>=4.1.2, bootstrap@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-4.3.1.tgz#280ca8f610504d99d7b6b4bfc4b68cec601704ac" - integrity sha512-rXqOmH1VilAt2DyPzluTi2blhk17bO7ef+zLLPlWvG494pDxcM234pJ8wTc/6R40UWizAIIMgxjvxZg5kmsbag== + version "4.4.1" + resolved "https://registry.npm.taobao.org/bootstrap/download/bootstrap-4.4.1.tgz#8582960eea0c5cd2bede84d8b0baf3789c3e8b01" + integrity sha1-hYKWDuoMXNK+3oTYsLrzeJw+iwE= brace-expansion@^1.1.7: version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + resolved "https://registry.npm.taobao.org/brace-expansion/download/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0= dependencies: balanced-match "^1.0.0" concat-map "0.0.1" braces@^2.3.1, braces@^2.3.2: version "2.3.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" - integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== + resolved "https://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + integrity sha1-WXn9PxTNUxVl5fot8av/8d+u5yk= dependencies: arr-flatten "^1.1.0" array-unique "^0.3.2" @@ -1661,10 +1595,10 @@ braces@^2.3.1, braces@^2.3.2: split-string "^3.0.2" to-regex "^3.0.1" -brfs@^1.3.0, brfs@^1.4.0: +brfs@^1.4.0: version "1.6.1" - resolved "https://registry.yarnpkg.com/brfs/-/brfs-1.6.1.tgz#b78ce2336d818e25eea04a0947cba6d4fb8849c3" - integrity sha512-OfZpABRQQf+Xsmju8XE9bDjs+uU4vLREGolP7bDgcpsI17QREyZ4Bl+2KLxxx1kCgA0fAIhKQBaBYh+PEcCqYQ== + resolved "https://registry.npm.taobao.org/brfs/download/brfs-1.6.1.tgz#b78ce2336d818e25eea04a0947cba6d4fb8849c3" + integrity sha1-t4ziM22BjiXuoEoJR8um1PuIScM= dependencies: quote-stream "^1.0.1" resolve "^1.1.5" @@ -1673,8 +1607,8 @@ brfs@^1.3.0, brfs@^1.4.0: brfs@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/brfs/-/brfs-2.0.2.tgz#44237878fa82aa479ce4f5fe2c1796ec69f07845" - integrity sha512-IrFjVtwu4eTJZyu8w/V2gxU7iLTtcHih67sgEdzrhjLBMHp2uYefUBfdM4k2UvcuWMgV7PQDZHSLeNWnLFKWVQ== + resolved "https://registry.npm.taobao.org/brfs/download/brfs-2.0.2.tgz#44237878fa82aa479ce4f5fe2c1796ec69f07845" + integrity sha1-RCN4ePqCqkec5PX+LBeW7GnweEU= dependencies: quote-stream "^1.0.1" resolve "^1.1.5" @@ -1683,27 +1617,27 @@ brfs@^2.0.2: brorand@^1.0.1: version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + resolved "https://registry.npm.taobao.org/brorand/download/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= brotli@^1.2.0: version "1.3.2" - resolved "https://registry.yarnpkg.com/brotli/-/brotli-1.3.2.tgz#525a9cad4fcba96475d7d388f6aecb13eed52f46" + resolved "https://registry.npm.taobao.org/brotli/download/brotli-1.3.2.tgz#525a9cad4fcba96475d7d388f6aecb13eed52f46" integrity sha1-UlqcrU/LqWR119OI9q7LE+7VL0Y= dependencies: base64-js "^1.1.2" browser-resolve@^1.8.1: version "1.11.3" - resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" - integrity sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ== + resolved "https://registry.npm.taobao.org/browser-resolve/download/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" + integrity sha1-m3y7PQ9RDky4a9vXlhJNKLWJCvY= dependencies: resolve "1.1.7" browserify-aes@^1.0.0, browserify-aes@^1.0.4: version "1.2.0" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" - integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== + resolved "https://registry.npm.taobao.org/browserify-aes/download/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + integrity sha1-Mmc0ZC9APavDADIJhTu3CtQo70g= dependencies: buffer-xor "^1.0.3" cipher-base "^1.0.0" @@ -1714,8 +1648,8 @@ browserify-aes@^1.0.0, browserify-aes@^1.0.4: browserify-cipher@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" - integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== + resolved "https://registry.npm.taobao.org/browserify-cipher/download/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" + integrity sha1-jWR0wbhwv9q807z8wZNKEOlPFfA= dependencies: browserify-aes "^1.0.4" browserify-des "^1.0.0" @@ -1723,8 +1657,8 @@ browserify-cipher@^1.0.0: browserify-des@^1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" - integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== + resolved "https://registry.npm.taobao.org/browserify-des/download/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" + integrity sha1-OvTx9Zg5QDVy8cZiBDdfen9wPpw= dependencies: cipher-base "^1.0.1" des.js "^1.0.0" @@ -1733,7 +1667,7 @@ browserify-des@^1.0.0: browserify-optional@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/browserify-optional/-/browserify-optional-1.0.1.tgz#1e13722cfde0d85f121676c2a72ced533a018869" + resolved "https://registry.npm.taobao.org/browserify-optional/download/browserify-optional-1.0.1.tgz#1e13722cfde0d85f121676c2a72ced533a018869" integrity sha1-HhNyLP3g2F8SFnbCpyztUzoBiGk= dependencies: ast-transform "0.0.0" @@ -1742,7 +1676,7 @@ browserify-optional@^1.0.0: browserify-rsa@^4.0.0: version "4.0.1" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" + resolved "https://registry.npm.taobao.org/browserify-rsa/download/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= dependencies: bn.js "^4.1.0" @@ -1750,7 +1684,7 @@ browserify-rsa@^4.0.0: browserify-sign@^4.0.0: version "4.0.4" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" + resolved "https://registry.npm.taobao.org/browserify-sign/download/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" integrity sha1-qk62jl17ZYuqa/alfmMMvXqT0pg= dependencies: bn.js "^4.1.1" @@ -1763,49 +1697,49 @@ browserify-sign@^4.0.0: browserify-zlib@^0.2.0: version "0.2.0" - resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" - integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== + resolved "https://registry.npm.taobao.org/browserify-zlib/download/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" + integrity sha1-KGlFnZqjviRf6P4sofRuLn9U1z8= dependencies: pako "~1.0.5" -browserslist@^4.0.0, browserslist@^4.6.0, browserslist@^4.6.3, browserslist@^4.6.4, browserslist@^4.6.6: - version "4.7.0" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.7.0.tgz#9ee89225ffc07db03409f2fee524dc8227458a17" - integrity sha512-9rGNDtnj+HaahxiVV38Gn8n8Lr8REKsel68v1sPFfIGEK6uSXTY3h9acgiT1dZVtOOUtifo/Dn8daDQ5dUgVsA== +browserslist@^4.0.0, browserslist@^4.6.4, browserslist@^4.8.0, browserslist@^4.8.2, browserslist@^4.8.3: + version "4.8.3" + resolved "https://registry.npm.taobao.org/browserslist/download/browserslist-4.8.3.tgz#65802fcd77177c878e015f0e3189f2c4f627ba44" + integrity sha1-ZYAvzXcXfIeOAV8OMYnyxPYnukQ= dependencies: - caniuse-lite "^1.0.30000989" - electron-to-chromium "^1.3.247" - node-releases "^1.1.29" + caniuse-lite "^1.0.30001017" + electron-to-chromium "^1.3.322" + node-releases "^1.1.44" bs-custom-file-input@^1.3.2: version "1.3.2" - resolved "https://registry.yarnpkg.com/bs-custom-file-input/-/bs-custom-file-input-1.3.2.tgz#c141c94071cc5e9ac4ea98479a1c204dd18e3b9a" - integrity sha512-lzgtGX2GDo7nUmsTCcTvYkCc35d3/E14h+HXmFKV8z2EJmtkMcvYT8BsWOjK67+ogZR3kc8OfH5O8APjvDUtFg== + resolved "https://registry.npm.taobao.org/bs-custom-file-input/download/bs-custom-file-input-1.3.2.tgz#c141c94071cc5e9ac4ea98479a1c204dd18e3b9a" + integrity sha1-wUHJQHHMXprE6phHmhwgTdGOO5o= buffer-equal@0.0.1: version "0.0.1" - resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-0.0.1.tgz#91bc74b11ea405bc916bc6aa908faafa5b4aac4b" + resolved "https://registry.npm.taobao.org/buffer-equal/download/buffer-equal-0.0.1.tgz#91bc74b11ea405bc916bc6aa908faafa5b4aac4b" integrity sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs= buffer-from@^1.0.0: version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" - integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== + resolved "https://registry.npm.taobao.org/buffer-from/download/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8= buffer-indexof@^1.0.0: version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" - integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== + resolved "https://registry.npm.taobao.org/buffer-indexof/download/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" + integrity sha1-Uvq8xqYG0aADAoAmSO9o9jnaJow= buffer-xor@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + resolved "https://registry.npm.taobao.org/buffer-xor/download/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= buffer@^4.3.0: - version "4.9.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" - integrity sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg= + version "4.9.2" + resolved "https://registry.npm.taobao.org/buffer/download/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" + integrity sha1-Iw6tNEACmIZEhBqwJEr4xEu+Pvg= dependencies: base64-js "^1.0.2" ieee754 "^1.1.4" @@ -1813,43 +1747,23 @@ buffer@^4.3.0: builtin-status-codes@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" + resolved "https://registry.npm.taobao.org/builtin-status-codes/download/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= bytes@3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + resolved "https://registry.npm.taobao.org/bytes/download/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= bytes@3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" - integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== - -cacache@^11.2.0: - version "11.3.3" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-11.3.3.tgz#8bd29df8c6a718a6ebd2d010da4d7972ae3bbadc" - integrity sha512-p8WcneCytvzPxhDvYp31PD039vi77I12W+/KfR9S8AZbaiARFBCpsPJS+9uhWfeBfeAtW7o/4vt3MUqLkbY6nA== - dependencies: - bluebird "^3.5.5" - chownr "^1.1.1" - figgy-pudding "^3.5.1" - glob "^7.1.4" - graceful-fs "^4.1.15" - lru-cache "^5.1.1" - mississippi "^3.0.0" - mkdirp "^0.5.1" - move-concurrently "^1.0.1" - promise-inflight "^1.0.1" - rimraf "^2.6.3" - ssri "^6.0.1" - unique-filename "^1.1.1" - y18n "^4.0.0" + resolved "https://registry.npm.taobao.org/bytes/download/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" + integrity sha1-9s95M6Ng4FiPqf3oVlHNx/gF0fY= cacache@^12.0.2: version "12.0.3" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.3.tgz#be99abba4e1bf5df461cd5a2c1071fc432573390" - integrity sha512-kqdmfXEGFepesTuROHMs3MpFLWrPkSSpRqOw80RCflZXy/khxaArvFrQ7uJxSUduzAufc6G0g1VUCOZXxWavPw== + resolved "https://registry.npm.taobao.org/cacache/download/cacache-12.0.3.tgz#be99abba4e1bf5df461cd5a2c1071fc432573390" + integrity sha1-vpmruk4b9d9GHNWiwQcfxDJXM5A= dependencies: bluebird "^3.5.5" chownr "^1.1.1" @@ -1869,8 +1783,8 @@ cacache@^12.0.2: cacache@^13.0.1: version "13.0.1" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-13.0.1.tgz#a8000c21697089082f85287a1aec6e382024a71c" - integrity sha512-5ZvAxd05HDDU+y9BVvcqYu2LLXmPnQ0hW62h32g4xBTgL/MppR4/04NHfj/ycM2y6lmTnbw6HVi+1eN0Psba6w== + resolved "https://registry.npm.taobao.org/cacache/download/cacache-13.0.1.tgz#a8000c21697089082f85287a1aec6e382024a71c" + integrity sha1-qAAMIWlwiQgvhSh6GuxuOCAkpxw= dependencies: chownr "^1.1.2" figgy-pudding "^3.5.1" @@ -1893,8 +1807,8 @@ cacache@^13.0.1: cache-base@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" - integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== + resolved "https://registry.npm.taobao.org/cache-base/download/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + integrity sha1-Cn9GQWgxyLZi7jb+TnxZ129marI= dependencies: collection-visit "^1.0.0" component-emitter "^1.2.1" @@ -1908,26 +1822,31 @@ cache-base@^1.0.1: caller-callsite@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" + resolved "https://registry.npm.taobao.org/caller-callsite/download/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= dependencies: callsites "^2.0.0" caller-path@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" + resolved "https://registry.npm.taobao.org/caller-path/download/caller-path-2.0.0.tgz?cache=0&sync_timestamp=1574395542397&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcaller-path%2Fdownload%2Fcaller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= dependencies: caller-callsite "^2.0.0" callsites@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" + resolved "https://registry.npm.taobao.org/callsites/download/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.npm.taobao.org/callsites/download/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha1-s2MKvYlDQy9Us/BRkjjjPNffL3M= + camelcase-keys@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" + resolved "https://registry.npm.taobao.org/camelcase-keys/download/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" integrity sha1-MIvur/3ygRkFHvodkyITyRuPkuc= dependencies: camelcase "^2.0.0" @@ -1935,48 +1854,48 @@ camelcase-keys@^2.0.0: camelcase@^2.0.0: version "2.1.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" + resolved "https://registry.npm.taobao.org/camelcase/download/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8= camelcase@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" + resolved "https://registry.npm.taobao.org/camelcase/download/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" integrity sha1-MvxLn82vhF/N9+c7uXysImHwqwo= camelcase@^5.0.0, camelcase@^5.3.1: version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + resolved "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA= caniuse-api@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" - integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== + resolved "https://registry.npm.taobao.org/caniuse-api/download/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" + integrity sha1-Xk2Q4idJYdRikZl99Znj7QCO5MA= dependencies: browserslist "^4.0.0" caniuse-lite "^1.0.0" lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000980, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30000989: - version "1.0.30000989" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000989.tgz#b9193e293ccf7e4426c5245134b8f2a56c0ac4b9" - integrity sha512-vrMcvSuMz16YY6GSVZ0dWDTJP8jqk3iFQ/Aq5iqblPwxSVVZI+zxDyTX0VPqtQsDnfdrBDcsmhgTEOh5R8Lbpw== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001012, caniuse-lite@^1.0.30001017: + version "1.0.30001020" + resolved "https://registry.npm.taobao.org/caniuse-lite/download/caniuse-lite-1.0.30001020.tgz#3f04c1737500ffda78be9beb0b5c1e2070e15926" + integrity sha1-PwTBc3UA/9p4vpvrC1weIHDhWSY= case-sensitive-paths-webpack-plugin@^2.2.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.2.0.tgz#3371ef6365ef9c25fa4b81c16ace0e9c7dc58c3e" - integrity sha512-u5ElzokS8A1pm9vM3/iDgTcI3xqHxuCao94Oz8etI3cf0Tio0p8izkDYbTIn09uP3yUUr6+veaE6IkjnTYS46g== + resolved "https://registry.npm.taobao.org/case-sensitive-paths-webpack-plugin/download/case-sensitive-paths-webpack-plugin-2.2.0.tgz#3371ef6365ef9c25fa4b81c16ace0e9c7dc58c3e" + integrity sha1-M3HvY2XvnCX6S4HBas4OnH3FjD4= caseless@~0.12.0: version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + resolved "https://registry.npm.taobao.org/caseless/download/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= chalk@2.4.2, chalk@^2.0, chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + resolved "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz?cache=0&sync_timestamp=1573282949696&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ= dependencies: ansi-styles "^3.2.1" escape-string-regexp "^1.0.5" @@ -1984,7 +1903,7 @@ chalk@2.4.2, chalk@^2.0, chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2: chalk@^1.1.1: version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + resolved "https://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz?cache=0&sync_timestamp=1573282949696&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= dependencies: ansi-styles "^2.2.1" @@ -1995,31 +1914,31 @@ chalk@^1.1.1: chart.js@^2.9.2: version "2.9.3" - resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-2.9.3.tgz#ae3884114dafd381bc600f5b35a189138aac1ef7" - integrity sha512-+2jlOobSk52c1VU6fzkh3UwqHMdSlgH1xFv9FKMqHiNCpXsGPQa/+81AFa+i3jZ253Mq9aAycPwDjnn1XbRNNw== + resolved "https://registry.npm.taobao.org/chart.js/download/chart.js-2.9.3.tgz#ae3884114dafd381bc600f5b35a189138aac1ef7" + integrity sha1-rjiEEU2v04G8YA9bNaGJE4qsHvc= dependencies: chartjs-color "^2.1.0" moment "^2.10.2" chartjs-color-string@^0.6.0: version "0.6.0" - resolved "https://registry.yarnpkg.com/chartjs-color-string/-/chartjs-color-string-0.6.0.tgz#1df096621c0e70720a64f4135ea171d051402f71" - integrity sha512-TIB5OKn1hPJvO7JcteW4WY/63v6KwEdt6udfnDE9iCAZgy+V4SrbSxoIbTw/xkUIapjEI4ExGtD0+6D3KyFd7A== + resolved "https://registry.npm.taobao.org/chartjs-color-string/download/chartjs-color-string-0.6.0.tgz#1df096621c0e70720a64f4135ea171d051402f71" + integrity sha1-HfCWYhwOcHIKZPQTXqFx0FFAL3E= dependencies: color-name "^1.0.0" chartjs-color@^2.1.0: version "2.4.1" - resolved "https://registry.yarnpkg.com/chartjs-color/-/chartjs-color-2.4.1.tgz#6118bba202fe1ea79dd7f7c0f9da93467296c3b0" - integrity sha512-haqOg1+Yebys/Ts/9bLo/BqUcONQOdr/hoEr2LLTRl6C5LXctUdHxsCYfvQVg5JIxITrfCNUDr4ntqmQk9+/0w== + resolved "https://registry.npm.taobao.org/chartjs-color/download/chartjs-color-2.4.1.tgz?cache=0&sync_timestamp=1572037602422&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchartjs-color%2Fdownload%2Fchartjs-color-2.4.1.tgz#6118bba202fe1ea79dd7f7c0f9da93467296c3b0" + integrity sha1-YRi7ogL+Hqed1/fA+dqTRnKWw7A= dependencies: chartjs-color-string "^0.6.0" color-convert "^1.9.3" chokidar@^2.0.2, chokidar@^2.1.8: version "2.1.8" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" - integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== + resolved "https://registry.npm.taobao.org/chokidar/download/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" + integrity sha1-gEs6e2qZNYw8XGHnHYco8EHP+Rc= dependencies: anymatch "^2.0.0" async-each "^1.0.1" @@ -2035,35 +1954,30 @@ chokidar@^2.0.2, chokidar@^2.1.8: optionalDependencies: fsevents "^1.2.7" -chownr@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.2.tgz#a18f1e0b269c8a6a5d3c86eb298beb14c3dd7bf6" - integrity sha512-GkfeAQh+QNy3wquu9oIZr6SS5x7wGdSgNQvD10X3r+AZr1Oys22HW8kAmDMvNg2+Dm0TeGaEuO8gFwdBXxwO8A== - -chownr@^1.1.2: +chownr@^1.1.1, chownr@^1.1.2: version "1.1.3" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.3.tgz#42d837d5239688d55f303003a508230fa6727142" - integrity sha512-i70fVHhmV3DtTl6nqvZOnIjbY0Pe4kAUjwHj8z0zAdgBtYrJyYwLKCCuRBQ5ppkyL0AkN7HKRnETdmdp1zqNXw== + resolved "https://registry.npm.taobao.org/chownr/download/chownr-1.1.3.tgz#42d837d5239688d55f303003a508230fa6727142" + integrity sha1-Qtg31SOWiNVfMDADpQgjD6ZycUI= chrome-trace-event@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" - integrity sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ== + resolved "https://registry.npm.taobao.org/chrome-trace-event/download/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" + integrity sha1-I0CQ7pfH1K0aLEvq4nUF3v/GCKQ= dependencies: tslib "^1.9.0" cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" - integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== + resolved "https://registry.npm.taobao.org/cipher-base/download/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + integrity sha1-h2Dk7MJy9MNjUy+SbYdKriwTl94= dependencies: inherits "^2.0.1" safe-buffer "^5.0.1" class-utils@^0.3.5: version "0.3.6" - resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" - integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== + resolved "https://registry.npm.taobao.org/class-utils/download/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + integrity sha1-+TNprouafOAv1B+q0MqDAzGQxGM= dependencies: arr-union "^3.1.0" define-property "^0.2.5" @@ -2072,12 +1986,12 @@ class-utils@^0.3.5: clean-stack@^2.0.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" - integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + resolved "https://registry.npm.taobao.org/clean-stack/download/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha1-7oRy27Ep5yezHooQpCfe6d/kAIs= cliui@^3.2.0: version "3.2.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" + resolved "https://registry.npm.taobao.org/cliui/download/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" integrity sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0= dependencies: string-width "^1.0.1" @@ -2086,8 +2000,8 @@ cliui@^3.2.0: cliui@^4.0.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" - integrity sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ== + resolved "https://registry.npm.taobao.org/cliui/download/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" + integrity sha1-NIQi2+gtgAswIu709qwQvy5NG0k= dependencies: string-width "^2.1.1" strip-ansi "^4.0.0" @@ -2095,8 +2009,8 @@ cliui@^4.0.0: cliui@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" - integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== + resolved "https://registry.npm.taobao.org/cliui/download/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" + integrity sha1-3u/P2y6AB4SqNPRvoI4GhRx7u8U= dependencies: string-width "^3.1.0" strip-ansi "^5.2.0" @@ -2104,8 +2018,8 @@ cliui@^5.0.0: clone-deep@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" - integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== + resolved "https://registry.npm.taobao.org/clone-deep/download/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" + integrity sha1-wZ/Zvbv4WUK0/ZechNz31fB8I4c= dependencies: is-plain-object "^2.0.4" kind-of "^6.0.2" @@ -2113,13 +2027,13 @@ clone-deep@^4.0.1: clone@^1.0.1: version "1.0.4" - resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + resolved "https://registry.npm.taobao.org/clone/download/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= coa@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" - integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== + resolved "https://registry.npm.taobao.org/coa/download/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" + integrity sha1-Q/bCEVG07yv1cYfbDXPeIp4+fsM= dependencies: "@types/q" "^1.5.1" chalk "^2.4.1" @@ -2127,12 +2041,12 @@ coa@^2.0.2: code-point-at@^1.0.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + resolved "https://registry.npm.taobao.org/code-point-at/download/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= collection-visit@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + resolved "https://registry.npm.taobao.org/collection-visit/download/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= dependencies: map-visit "^1.0.0" @@ -2140,82 +2054,82 @@ collection-visit@^1.0.0: color-convert@^1.9.0, color-convert@^1.9.1, color-convert@^1.9.3: version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + resolved "https://registry.npm.taobao.org/color-convert/download/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg= dependencies: color-name "1.1.3" color-name@1.1.3: version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + resolved "https://registry.npm.taobao.org/color-name/download/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= color-name@^1.0.0: version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + resolved "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha1-wqCah6y95pVD3m9j+jmVyCbFNqI= color-string@^1.5.2: version "1.5.3" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.3.tgz#c9bbc5f01b58b5492f3d6857459cb6590ce204cc" - integrity sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw== + resolved "https://registry.npm.taobao.org/color-string/download/color-string-1.5.3.tgz#c9bbc5f01b58b5492f3d6857459cb6590ce204cc" + integrity sha1-ybvF8BtYtUkvPWhXRZy2WQziBMw= dependencies: color-name "^1.0.0" simple-swizzle "^0.2.2" color@^3.0.0: version "3.1.2" - resolved "https://registry.yarnpkg.com/color/-/color-3.1.2.tgz#68148e7f85d41ad7649c5fa8c8106f098d229e10" - integrity sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg== + resolved "https://registry.npm.taobao.org/color/download/color-3.1.2.tgz#68148e7f85d41ad7649c5fa8c8106f098d229e10" + integrity sha1-aBSOf4XUGtdknF+oyBBvCY0inhA= dependencies: color-convert "^1.9.1" color-string "^1.5.2" combined-stream@^1.0.6, combined-stream@~1.0.6: version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + resolved "https://registry.npm.taobao.org/combined-stream/download/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha1-w9RaizT9cwYxoRCoolIGgrMdWn8= dependencies: delayed-stream "~1.0.0" commander@^2.20.0: - version "2.20.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422" - integrity sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ== + version "2.20.3" + resolved "https://registry.npm.taobao.org/commander/download/commander-2.20.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha1-/UhehMA+tIgcIHIrpIA16FMa6zM= commondir@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + resolved "https://registry.npm.taobao.org/commondir/download/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= component-emitter@^1.2.1: version "1.3.0" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" - integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== + resolved "https://registry.npm.taobao.org/component-emitter/download/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" + integrity sha1-FuQHD7qK4ptnnyIVhT7hgasuq8A= compressible@~2.0.16: - version "2.0.17" - resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.17.tgz#6e8c108a16ad58384a977f3a482ca20bff2f38c1" - integrity sha512-BGHeLCK1GV7j1bSmQQAi26X+GgWcTjLr/0tzSvMCl3LH1w1IJ4PFSPoV5316b30cneTziC+B1a+3OjoSUcQYmw== + version "2.0.18" + resolved "https://registry.npm.taobao.org/compressible/download/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" + integrity sha1-r1PMprBw1MPAdQ+9dyhqbXzEb7o= dependencies: - mime-db ">= 1.40.0 < 2" + mime-db ">= 1.43.0 < 2" compression-webpack-plugin@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/compression-webpack-plugin/-/compression-webpack-plugin-3.0.0.tgz#097d2e4d95c3a14cb5c8ed20899009ab5b9bbca0" - integrity sha512-ls+oKw4eRbvaSv/hj9NmctihhBcR26j76JxV0bLRLcWhrUBdQFgd06z/Kgg7exyQvtWWP484wZxs0gIUX3NO0Q== + version "3.1.0" + resolved "https://registry.npm.taobao.org/compression-webpack-plugin/download/compression-webpack-plugin-3.1.0.tgz?cache=0&sync_timestamp=1578567974071&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcompression-webpack-plugin%2Fdownload%2Fcompression-webpack-plugin-3.1.0.tgz#9f510172a7b5fae5aad3b670652e8bd7997aeeca" + integrity sha1-n1EBcqe1+uWq07ZwZS6L15l67so= dependencies: - cacache "^11.2.0" + cacache "^13.0.1" find-cache-dir "^3.0.0" neo-async "^2.5.0" - schema-utils "^1.0.0" - serialize-javascript "^1.4.0" + schema-utils "^2.6.1" + serialize-javascript "^2.1.2" webpack-sources "^1.0.1" compression@^1.7.4: version "1.7.4" - resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" - integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== + resolved "https://registry.npm.taobao.org/compression/download/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" + integrity sha1-lVI+/xcMpXwpoMpB5v4TH0Hlu48= dependencies: accepts "~1.3.5" bytes "3.0.0" @@ -2227,13 +2141,13 @@ compression@^1.7.4: concat-map@0.0.1: version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + resolved "https://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= concat-stream@^1.5.0, concat-stream@~1.6.0: version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== + resolved "https://registry.npm.taobao.org/concat-stream/download/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha1-kEvfGUzTEi/Gdcd/xKw9T/D9GjQ= dependencies: buffer-from "^1.0.0" inherits "^2.0.3" @@ -2242,59 +2156,57 @@ concat-stream@^1.5.0, concat-stream@~1.6.0: connect-history-api-fallback@^1.6.0: version "1.6.0" - resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" - integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== + resolved "https://registry.npm.taobao.org/connect-history-api-fallback/download/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" + integrity sha1-izIIk1kwjRERFdgcrT/Oq4iPl7w= console-browserify@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" - integrity sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA= - dependencies: - date-now "^0.1.4" + version "1.2.0" + resolved "https://registry.npm.taobao.org/console-browserify/download/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" + integrity sha1-ZwY871fOts9Jk6KrOlWECujEkzY= console-control-strings@^1.0.0, console-control-strings@~1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + resolved "https://registry.npm.taobao.org/console-control-strings/download/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= constants-browserify@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + resolved "https://registry.npm.taobao.org/constants-browserify/download/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= content-disposition@0.5.3: version "0.5.3" - resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" - integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== + resolved "https://registry.npm.taobao.org/content-disposition/download/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" + integrity sha1-4TDK9+cnkIfFYWwgB9BIVpiYT70= dependencies: safe-buffer "5.1.2" content-type@~1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + resolved "https://registry.npm.taobao.org/content-type/download/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha1-4TjMdeBAxyexlm/l5fjJruJW/js= convert-source-map@^1.5.1, convert-source-map@^1.7.0: version "1.7.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" - integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== + resolved "https://registry.npm.taobao.org/convert-source-map/download/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" + integrity sha1-F6LLiC1/d9NJBYXizmxSRCSjpEI= dependencies: safe-buffer "~5.1.1" cookie-signature@1.0.6: version "1.0.6" - resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + resolved "https://registry.npm.taobao.org/cookie-signature/download/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= cookie@0.4.0: version "0.4.0" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" - integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== + resolved "https://registry.npm.taobao.org/cookie/download/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" + integrity sha1-vrQ35wIrO21JAZ0IhmUwPr6cFLo= copy-concurrently@^1.0.0: version "1.0.5" - resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" - integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== + resolved "https://registry.npm.taobao.org/copy-concurrently/download/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" + integrity sha1-kilzmMrjSTf8r9bsgTnBgFHwteA= dependencies: aproba "^1.1.1" fs-write-stream-atomic "^1.0.8" @@ -2305,54 +2217,65 @@ copy-concurrently@^1.0.0: copy-descriptor@^0.1.0: version "0.1.1" - resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + resolved "https://registry.npm.taobao.org/copy-descriptor/download/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= -core-js-compat@^3.1.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.2.1.tgz#0cbdbc2e386e8e00d3b85dc81c848effec5b8150" - integrity sha512-MwPZle5CF9dEaMYdDeWm73ao/IflDH+FjeJCWEADcEgFSE9TLimFKwJsfmkwzI8eC0Aj0mgvMDjeQjrElkz4/A== +core-js-compat@^3.6.2: + version "3.6.4" + resolved "https://registry.npm.taobao.org/core-js-compat/download/core-js-compat-3.6.4.tgz#938476569ebb6cda80d339bcf199fae4f16fff17" + integrity sha1-k4R2Vp67bNqA0zm88Zn65PFv/xc= dependencies: - browserslist "^4.6.6" - semver "^6.3.0" + browserslist "^4.8.3" + semver "7.0.0" core-js@^2.4.0: - version "2.6.10" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.10.tgz#8a5b8391f8cc7013da703411ce5b585706300d7f" - integrity sha512-I39t74+4t+zau64EN1fE5v2W31Adtc/REhzWN+gWRRXg6WH5qAsZm62DHpQ1+Yhe4047T55jvzz7MUqF/dBBlA== + version "2.6.11" + resolved "https://registry.npm.taobao.org/core-js/download/core-js-2.6.11.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" + integrity sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw= core-js@^3.4.0: - version "3.4.1" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.4.1.tgz#76dd6828412900ab27c8ce0b22e6114d7ce21b18" - integrity sha512-KX/dnuY/J8FtEwbnrzmAjUYgLqtk+cxM86hfG60LGiW3MmltIc2yAmDgBgEkfm0blZhUrdr1Zd84J2Y14mLxzg== + version "3.6.4" + resolved "https://registry.npm.taobao.org/core-js/download/core-js-3.6.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-3.6.4.tgz#440a83536b458114b9cb2ac1580ba377dc470647" + integrity sha1-RAqDU2tFgRS5yyrBWAujd9xHBkc= core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + resolved "https://registry.npm.taobao.org/core-util-is/download/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= -cosmiconfig@^5.0.0, cosmiconfig@^5.2.0: +cosmiconfig@^5.0.0: version "5.2.1" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" - integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== + resolved "https://registry.npm.taobao.org/cosmiconfig/download/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" + integrity sha1-BA9yaAnFked6F8CjYmykW08Wixo= dependencies: import-fresh "^2.0.0" is-directory "^0.3.1" js-yaml "^3.13.1" parse-json "^4.0.0" +cosmiconfig@^6.0.0: + version "6.0.0" + resolved "https://registry.npm.taobao.org/cosmiconfig/download/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" + integrity sha1-2k/uhTxS9rHmk19BwaL8UL1KmYI= + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.1.0" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.7.2" + create-ecdh@^4.0.0: version "4.0.3" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" - integrity sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw== + resolved "https://registry.npm.taobao.org/create-ecdh/download/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" + integrity sha1-yREbbzMEXEaX8UR4f5JUzcd8Rf8= dependencies: bn.js "^4.1.0" elliptic "^6.0.0" create-hash@^1.1.0, create-hash@^1.1.2: version "1.2.0" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" - integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== + resolved "https://registry.npm.taobao.org/create-hash/download/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + integrity sha1-iJB4rxGmN1a8+1m9IhmWvjqe8ZY= dependencies: cipher-base "^1.0.1" inherits "^2.0.1" @@ -2362,8 +2285,8 @@ create-hash@^1.1.0, create-hash@^1.1.2: create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: version "1.1.7" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" - integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== + resolved "https://registry.npm.taobao.org/create-hmac/download/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + integrity sha1-aRcMeLOrlXFHsriwRXLkfq0iQ/8= dependencies: cipher-base "^1.0.3" create-hash "^1.1.0" @@ -2374,8 +2297,8 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: cross-spawn@6.0.5, cross-spawn@^6.0.0: version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== + resolved "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + integrity sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q= dependencies: nice-try "^1.0.4" path-key "^2.0.1" @@ -2385,7 +2308,7 @@ cross-spawn@6.0.5, cross-spawn@^6.0.0: cross-spawn@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-3.0.1.tgz#1256037ecb9f0c5f79e3d6ef135e30770184b982" + resolved "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-3.0.1.tgz#1256037ecb9f0c5f79e3d6ef135e30770184b982" integrity sha1-ElYDfsufDF9549bvE14wdwGEuYI= dependencies: lru-cache "^4.0.1" @@ -2393,8 +2316,8 @@ cross-spawn@^3.0.0: crypto-browserify@^3.11.0: version "3.12.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" - integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== + resolved "https://registry.npm.taobao.org/crypto-browserify/download/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" + integrity sha1-OWz58xN/A+S45TLFj2mCVOAPgOw= dependencies: browserify-cipher "^1.0.0" browserify-sign "^4.0.0" @@ -2410,122 +2333,114 @@ crypto-browserify@^3.11.0: crypto-js@^3.1.9-1: version "3.1.9-1" - resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-3.1.9-1.tgz#fda19e761fc077e01ffbfdc6e9fdfc59e8806cd8" + resolved "https://registry.npm.taobao.org/crypto-js/download/crypto-js-3.1.9-1.tgz#fda19e761fc077e01ffbfdc6e9fdfc59e8806cd8" integrity sha1-/aGedh/Ad+Af+/3G6f38WeiAbNg= css-blank-pseudo@^0.1.4: version "0.1.4" - resolved "https://registry.yarnpkg.com/css-blank-pseudo/-/css-blank-pseudo-0.1.4.tgz#dfdefd3254bf8a82027993674ccf35483bfcb3c5" - integrity sha512-LHz35Hr83dnFeipc7oqFDmsjHdljj3TQtxGGiNWSOsTLIAubSm4TEz8qCaKFpk7idaQ1GfWscF4E6mgpBysA1w== + resolved "https://registry.npm.taobao.org/css-blank-pseudo/download/css-blank-pseudo-0.1.4.tgz#dfdefd3254bf8a82027993674ccf35483bfcb3c5" + integrity sha1-3979MlS/ioICeZNnTM81SDv8s8U= dependencies: postcss "^7.0.5" css-color-names@0.0.4, css-color-names@^0.0.4: version "0.0.4" - resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" + resolved "https://registry.npm.taobao.org/css-color-names/download/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= css-declaration-sorter@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22" - integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA== + resolved "https://registry.npm.taobao.org/css-declaration-sorter/download/css-declaration-sorter-4.0.1.tgz?cache=0&sync_timestamp=1576526465244&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-declaration-sorter%2Fdownload%2Fcss-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22" + integrity sha1-wZiUD2OnbX42wecQGLABchBUyyI= dependencies: postcss "^7.0.1" timsort "^0.3.0" css-has-pseudo@^0.10.0: version "0.10.0" - resolved "https://registry.yarnpkg.com/css-has-pseudo/-/css-has-pseudo-0.10.0.tgz#3c642ab34ca242c59c41a125df9105841f6966ee" - integrity sha512-Z8hnfsZu4o/kt+AuFzeGpLVhFOGO9mluyHBaA2bA8aCGTwah5sT3WV/fTHH8UNZUytOIImuGPrl/prlb4oX4qQ== + resolved "https://registry.npm.taobao.org/css-has-pseudo/download/css-has-pseudo-0.10.0.tgz#3c642ab34ca242c59c41a125df9105841f6966ee" + integrity sha1-PGQqs0yiQsWcQaEl35EFhB9pZu4= dependencies: postcss "^7.0.6" postcss-selector-parser "^5.0.0-rc.4" css-loader@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-3.2.0.tgz#bb570d89c194f763627fcf1f80059c6832d009b2" - integrity sha512-QTF3Ud5H7DaZotgdcJjGMvyDj5F3Pn1j/sC6VBEOVp94cbwqyIBdcs/quzj4MC1BKQSrTpQznegH/5giYbhnCQ== + version "3.4.2" + resolved "https://registry.npm.taobao.org/css-loader/download/css-loader-3.4.2.tgz?cache=0&sync_timestamp=1578676111891&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-loader%2Fdownload%2Fcss-loader-3.4.2.tgz#d3fdb3358b43f233b78501c5ed7b1c6da6133202" + integrity sha1-0/2zNYtD8jO3hQHF7XscbaYTMgI= dependencies: camelcase "^5.3.1" cssesc "^3.0.0" icss-utils "^4.1.1" loader-utils "^1.2.3" normalize-path "^3.0.0" - postcss "^7.0.17" + postcss "^7.0.23" postcss-modules-extract-imports "^2.0.0" postcss-modules-local-by-default "^3.0.2" - postcss-modules-scope "^2.1.0" + postcss-modules-scope "^2.1.1" postcss-modules-values "^3.0.0" - postcss-value-parser "^4.0.0" - schema-utils "^2.0.0" + postcss-value-parser "^4.0.2" + schema-utils "^2.6.0" css-prefers-color-scheme@^3.1.1: version "3.1.1" - resolved "https://registry.yarnpkg.com/css-prefers-color-scheme/-/css-prefers-color-scheme-3.1.1.tgz#6f830a2714199d4f0d0d0bb8a27916ed65cff1f4" - integrity sha512-MTu6+tMs9S3EUqzmqLXEcgNRbNkkD/TGFvowpeoWJn5Vfq7FMgsmRQs9X5NXAURiOBmOxm/lLjsDNXDE6k9bhg== + resolved "https://registry.npm.taobao.org/css-prefers-color-scheme/download/css-prefers-color-scheme-3.1.1.tgz#6f830a2714199d4f0d0d0bb8a27916ed65cff1f4" + integrity sha1-b4MKJxQZnU8NDQu4onkW7WXP8fQ= dependencies: postcss "^7.0.5" css-select-base-adapter@^0.1.1: version "0.1.1" - resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" - integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== + resolved "https://registry.npm.taobao.org/css-select-base-adapter/download/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" + integrity sha1-Oy/0lyzDYquIVhUHqVQIoUMhNdc= css-select@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.0.2.tgz#ab4386cec9e1f668855564b17c3733b43b2a5ede" - integrity sha512-dSpYaDVoWaELjvZ3mS6IKZM/y2PMPa/XYoEfYNZePL4U/XgyxZNroHEHReDx/d+VgXh9VbCTtFqLkFbmeqeaRQ== + version "2.1.0" + resolved "https://registry.npm.taobao.org/css-select/download/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" + integrity sha1-ajRlM1ZjWTSoG6ymjQJVQyEF2+8= dependencies: boolbase "^1.0.0" - css-what "^2.1.2" + css-what "^3.2.1" domutils "^1.7.0" nth-check "^1.0.2" -css-tree@1.0.0-alpha.29: - version "1.0.0-alpha.29" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.29.tgz#3fa9d4ef3142cbd1c301e7664c1f352bd82f5a39" - integrity sha512-sRNb1XydwkW9IOci6iB2xmy8IGCj6r/fr+JWitvJ2JxQRPzN3T4AGGVWCMlVmVwM1gtgALJRmGIlWv5ppnGGkg== - dependencies: - mdn-data "~1.1.0" - source-map "^0.5.3" - -css-tree@1.0.0-alpha.33: - version "1.0.0-alpha.33" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.33.tgz#970e20e5a91f7a378ddd0fc58d0b6c8d4f3be93e" - integrity sha512-SPt57bh5nQnpsTBsx/IXbO14sRc9xXu5MtMAVuo0BaQQmyf0NupNPPSoMaqiAF5tDFafYsTkfeH4Q/HCKXkg4w== +css-tree@1.0.0-alpha.37: + version "1.0.0-alpha.37" + resolved "https://registry.npm.taobao.org/css-tree/download/css-tree-1.0.0-alpha.37.tgz?cache=0&sync_timestamp=1575583542748&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-tree%2Fdownload%2Fcss-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" + integrity sha1-mL69YsTB2flg7DQM+fdSLjBwmiI= dependencies: mdn-data "2.0.4" - source-map "^0.5.3" + source-map "^0.6.1" css-unit-converter@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/css-unit-converter/-/css-unit-converter-1.1.1.tgz#d9b9281adcfd8ced935bdbaba83786897f64e996" + resolved "https://registry.npm.taobao.org/css-unit-converter/download/css-unit-converter-1.1.1.tgz#d9b9281adcfd8ced935bdbaba83786897f64e996" integrity sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY= -css-what@^2.1.2: - version "2.1.3" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2" - integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg== +css-what@^3.2.1: + version "3.2.1" + resolved "https://registry.npm.taobao.org/css-what/download/css-what-3.2.1.tgz#f4a8f12421064621b456755e34a03a2c22df5da1" + integrity sha1-9KjxJCEGRiG0VnVeNKA6LCLfXaE= cssdb@^4.4.0: version "4.4.0" - resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-4.4.0.tgz#3bf2f2a68c10f5c6a08abd92378331ee803cddb0" - integrity sha512-LsTAR1JPEM9TpGhl/0p3nQecC2LJ0kD8X5YARu1hk/9I1gril5vDtMZyNxcEpxxDj34YNck/ucjuoUd66K03oQ== + resolved "https://registry.npm.taobao.org/cssdb/download/cssdb-4.4.0.tgz#3bf2f2a68c10f5c6a08abd92378331ee803cddb0" + integrity sha1-O/LypowQ9cagir2SN4Mx7oA83bA= cssesc@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-2.0.0.tgz#3b13bd1bb1cb36e1bcb5a4dcd27f54c5dcb35703" - integrity sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg== + resolved "https://registry.npm.taobao.org/cssesc/download/cssesc-2.0.0.tgz#3b13bd1bb1cb36e1bcb5a4dcd27f54c5dcb35703" + integrity sha1-OxO9G7HLNuG8taTc0n9UxdyzVwM= cssesc@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" - integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + resolved "https://registry.npm.taobao.org/cssesc/download/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha1-N3QZGZA7hoVl4cCep0dEXNGJg+4= cssnano-preset-default@^4.0.7: version "4.0.7" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz#51ec662ccfca0f88b396dcd9679cdb931be17f76" - integrity sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA== + resolved "https://registry.npm.taobao.org/cssnano-preset-default/download/cssnano-preset-default-4.0.7.tgz#51ec662ccfca0f88b396dcd9679cdb931be17f76" + integrity sha1-UexmLM/KD4izltzZZ5zbkxvhf3Y= dependencies: css-declaration-sorter "^4.0.1" cssnano-util-raw-cache "^4.0.1" @@ -2560,74 +2475,74 @@ cssnano-preset-default@^4.0.7: cssnano-util-get-arguments@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" + resolved "https://registry.npm.taobao.org/cssnano-util-get-arguments/download/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" integrity sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8= cssnano-util-get-match@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" + resolved "https://registry.npm.taobao.org/cssnano-util-get-match/download/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" integrity sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0= cssnano-util-raw-cache@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282" - integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA== + resolved "https://registry.npm.taobao.org/cssnano-util-raw-cache/download/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282" + integrity sha1-sm1f1fcqEd/np4RvtMZyYPlr8oI= dependencies: postcss "^7.0.0" cssnano-util-same-parent@^4.0.0: version "4.0.1" - resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" - integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== + resolved "https://registry.npm.taobao.org/cssnano-util-same-parent/download/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" + integrity sha1-V0CC+yhZ0ttDOFWDXZqEVuoYu/M= cssnano@^4.1.10: version "4.1.10" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.10.tgz#0ac41f0b13d13d465487e111b778d42da631b8b2" - integrity sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ== + resolved "https://registry.npm.taobao.org/cssnano/download/cssnano-4.1.10.tgz#0ac41f0b13d13d465487e111b778d42da631b8b2" + integrity sha1-CsQfCxPRPUZUh+ERt3jULaYxuLI= dependencies: cosmiconfig "^5.0.0" cssnano-preset-default "^4.0.7" is-resolvable "^1.0.0" postcss "^7.0.0" -csso@^3.5.1: - version "3.5.1" - resolved "https://registry.yarnpkg.com/csso/-/csso-3.5.1.tgz#7b9eb8be61628973c1b261e169d2f024008e758b" - integrity sha512-vrqULLffYU1Q2tLdJvaCYbONStnfkfimRxXNaGjxMldI0C7JPBC4rB1RyjhfdZ4m1frm8pM9uRPKH3d2knZ8gg== +csso@^4.0.2: + version "4.0.2" + resolved "https://registry.npm.taobao.org/csso/download/csso-4.0.2.tgz#e5f81ab3a56b8eefb7f0092ce7279329f454de3d" + integrity sha1-5fgas6Vrju+38Aks5yeTKfRU3j0= dependencies: - css-tree "1.0.0-alpha.29" + css-tree "1.0.0-alpha.37" currently-unhandled@^0.4.1: version "0.4.1" - resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" + resolved "https://registry.npm.taobao.org/currently-unhandled/download/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" integrity sha1-mI3zP+qxke95mmE2nddsF635V+o= dependencies: array-find-index "^1.0.1" cyclist@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" + resolved "https://registry.npm.taobao.org/cyclist/download/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= d@1, d@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" - integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== + resolved "https://registry.npm.taobao.org/d/download/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" + integrity sha1-hpgJU3LVjb7jRv/Qxwk/mfj561o= dependencies: es5-ext "^0.10.50" type "^1.0.1" dashdash@^1.12.0: version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + resolved "https://registry.npm.taobao.org/dashdash/download/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= dependencies: assert-plus "^1.0.0" datatables.net-autofill-bs4@^2.3.4: version "2.3.4" - resolved "https://registry.yarnpkg.com/datatables.net-autofill-bs4/-/datatables.net-autofill-bs4-2.3.4.tgz#761fe2873f5350d1388a8edc6cf660e8047b186f" - integrity sha512-oqmR84gwsMFOj4OPwuGxSv6tbJWb8DDOqS3Ltg///gEPsgHgFgF0Si3GDLwNGtzF87T9G/q7HpVO3ZUmM5ChZw== + resolved "https://registry.npm.taobao.org/datatables.net-autofill-bs4/download/datatables.net-autofill-bs4-2.3.4.tgz#761fe2873f5350d1388a8edc6cf660e8047b186f" + integrity sha1-dh/ihz9TUNE4io7cbPZg6AR7GG8= dependencies: datatables.net-autofill "2.3.4" datatables.net-bs4 "^1.10.15" @@ -2635,24 +2550,24 @@ datatables.net-autofill-bs4@^2.3.4: datatables.net-autofill@2.3.4: version "2.3.4" - resolved "https://registry.yarnpkg.com/datatables.net-autofill/-/datatables.net-autofill-2.3.4.tgz#f509249fa58ebaf1be8ac3b470016037698a979c" - integrity sha512-0mVCKbtgz8bAxb7Rt0MKjduJiTQNkLM6nPFkqPlMiTzGqlDjixrPA8BV35N60CptKhH8A/twy1sr9lHVrg/Niw== + resolved "https://registry.npm.taobao.org/datatables.net-autofill/download/datatables.net-autofill-2.3.4.tgz#f509249fa58ebaf1be8ac3b470016037698a979c" + integrity sha1-9Qkkn6WOuvG+isO0cAFgN2mKl5w= dependencies: datatables.net "^1.10.15" jquery ">=1.7" datatables.net-bs4@^1.10.15, datatables.net-bs4@^1.10.20: version "1.10.20" - resolved "https://registry.yarnpkg.com/datatables.net-bs4/-/datatables.net-bs4-1.10.20.tgz#beff1c8d3510826c0678eaa055270607c0e53882" - integrity sha512-kQmMUMsHMOlAW96ztdoFqjSbLnlGZQ63iIM82kHbmldsfYdzuyhbb4hTx6YNBi481WCO3iPSvI6YodNec46ZAw== + resolved "https://registry.npm.taobao.org/datatables.net-bs4/download/datatables.net-bs4-1.10.20.tgz#beff1c8d3510826c0678eaa055270607c0e53882" + integrity sha1-vv8cjTUQgmwGeOqgVScGB8DlOII= dependencies: datatables.net "1.10.20" jquery ">=1.7" datatables.net-buttons-bs4@^1.6.1: version "1.6.1" - resolved "https://registry.yarnpkg.com/datatables.net-buttons-bs4/-/datatables.net-buttons-bs4-1.6.1.tgz#4abd9c83fbd753ffa4913adca1fae094df64b3ba" - integrity sha512-PdE1vrnRIeX+p++wnbpdnr97kgTCs+DDomtTccsQvMrFm29lxVa7uTz1awasfGRrCrJzpb5HjPrPJBzbGHrUyg== + resolved "https://registry.npm.taobao.org/datatables.net-buttons-bs4/download/datatables.net-buttons-bs4-1.6.1.tgz#4abd9c83fbd753ffa4913adca1fae094df64b3ba" + integrity sha1-Sr2cg/vXU/+kkTrcofrglN9ks7o= dependencies: datatables.net-bs4 "^1.10.15" datatables.net-buttons "1.6.1" @@ -2660,16 +2575,16 @@ datatables.net-buttons-bs4@^1.6.1: datatables.net-buttons@1.6.1: version "1.6.1" - resolved "https://registry.yarnpkg.com/datatables.net-buttons/-/datatables.net-buttons-1.6.1.tgz#f62847e7c6f905fcf7339e7541a40741bbb3b8fb" - integrity sha512-Lcgvi/xGB2X0jr1n/uQMmg43Z1JQO6aaGjPHO+sAQAMfBGBi9cK1hhfM4Vg8gzC5fz3sW4QrtjAdKvOPnQ1A3w== + resolved "https://registry.npm.taobao.org/datatables.net-buttons/download/datatables.net-buttons-1.6.1.tgz#f62847e7c6f905fcf7339e7541a40741bbb3b8fb" + integrity sha1-9ihH58b5Bfz3M551QaQHQbuzuPs= dependencies: datatables.net "^1.10.15" jquery ">=1.7" datatables.net-colreorder-bs4@^1.5.2: version "1.5.2" - resolved "https://registry.yarnpkg.com/datatables.net-colreorder-bs4/-/datatables.net-colreorder-bs4-1.5.2.tgz#4fe1a9ffe679e7e84f3ccb58c9c4d31ac0d49a1b" - integrity sha512-L5omHV0agczRZwR9eismTOq+/9/glQqZUeRfigEc+5oMKLnubJkVHQLOanY2duDl3stvsZ6ebWbXWEh6tndgDg== + resolved "https://registry.npm.taobao.org/datatables.net-colreorder-bs4/download/datatables.net-colreorder-bs4-1.5.2.tgz#4fe1a9ffe679e7e84f3ccb58c9c4d31ac0d49a1b" + integrity sha1-T+Gp/+Z55+hPPMtYycTTGsDUmhs= dependencies: datatables.net-bs4 "^1.10.15" datatables.net-colreorder "1.5.2" @@ -2677,16 +2592,16 @@ datatables.net-colreorder-bs4@^1.5.2: datatables.net-colreorder@1.5.2: version "1.5.2" - resolved "https://registry.yarnpkg.com/datatables.net-colreorder/-/datatables.net-colreorder-1.5.2.tgz#c425cee1f88b3246be0363c67a152be743ca6bce" - integrity sha512-77ShdeM7QjKI6M1jfWQ4ZempSYMmmpe9NqjimHBp+o9lAto789YdCLiFrW71dwn1v8Awp4qcMShqHNxGzR/HVg== + resolved "https://registry.npm.taobao.org/datatables.net-colreorder/download/datatables.net-colreorder-1.5.2.tgz#c425cee1f88b3246be0363c67a152be743ca6bce" + integrity sha1-xCXO4fiLMka+A2PGehUr50PKa84= dependencies: datatables.net "^1.10.15" jquery ">=1.7" datatables.net-fixedcolumns-bs4@^3.3.0: version "3.3.0" - resolved "https://registry.yarnpkg.com/datatables.net-fixedcolumns-bs4/-/datatables.net-fixedcolumns-bs4-3.3.0.tgz#15fc5e6cc7ccf5c60bbebe47185476b699a43e40" - integrity sha512-X6EVk0Y5pE4yfCM+Igk1nUrBu1ou1abyldWERqs0mc/x95TFPTc0pqy5XEb/bxvzi0oyYNR2Pojq4j48uLK+iQ== + resolved "https://registry.npm.taobao.org/datatables.net-fixedcolumns-bs4/download/datatables.net-fixedcolumns-bs4-3.3.0.tgz#15fc5e6cc7ccf5c60bbebe47185476b699a43e40" + integrity sha1-FfxebMfM9cYLvr5HGFR2tpmkPkA= dependencies: datatables.net-bs4 "^1.10.15" datatables.net-fixedcolumns "3.3.0" @@ -2694,16 +2609,16 @@ datatables.net-fixedcolumns-bs4@^3.3.0: datatables.net-fixedcolumns@3.3.0: version "3.3.0" - resolved "https://registry.yarnpkg.com/datatables.net-fixedcolumns/-/datatables.net-fixedcolumns-3.3.0.tgz#885b35b7f155ff5e08e1532e23363f14050bb1af" - integrity sha512-+/LJKQyOlUb7j9mD8oCDs5pd6egi1zPI65YaXPwKlwYlX+fI4BNkHhGwmxCrCDM2nS6/2tA59OuNkfLNCKlx1Q== + resolved "https://registry.npm.taobao.org/datatables.net-fixedcolumns/download/datatables.net-fixedcolumns-3.3.0.tgz#885b35b7f155ff5e08e1532e23363f14050bb1af" + integrity sha1-iFs1t/FV/14I4VMuIzY/FAULsa8= dependencies: datatables.net "^1.10.15" jquery ">=1.7" datatables.net-fixedheader-bs4@^3.1.6: version "3.1.6" - resolved "https://registry.yarnpkg.com/datatables.net-fixedheader-bs4/-/datatables.net-fixedheader-bs4-3.1.6.tgz#d1b12981bf127cfef658a0a742719aaeac6894eb" - integrity sha512-mat50UvCNhE5E2jhqEAO07LJ7I++pxFwpbNUfVtuFg866Tf3uHAKHgsXnsXW8kqiER931g4LbxO28axyquj1tw== + resolved "https://registry.npm.taobao.org/datatables.net-fixedheader-bs4/download/datatables.net-fixedheader-bs4-3.1.6.tgz#d1b12981bf127cfef658a0a742719aaeac6894eb" + integrity sha1-0bEpgb8SfP72WKCnQnGarqxolOs= dependencies: datatables.net-bs4 "^1.10.15" datatables.net-fixedheader "3.1.6" @@ -2711,16 +2626,16 @@ datatables.net-fixedheader-bs4@^3.1.6: datatables.net-fixedheader@3.1.6: version "3.1.6" - resolved "https://registry.yarnpkg.com/datatables.net-fixedheader/-/datatables.net-fixedheader-3.1.6.tgz#b139b88a213460dbeca5080c6251e81575697188" - integrity sha512-EMx2JogtXEQObaF7ylgB+pY4/vWhu/plTZNf5EvNMAboRha6FT4+14CHIyARVM/bjySPU+6advtft02pW3KxJg== + resolved "https://registry.npm.taobao.org/datatables.net-fixedheader/download/datatables.net-fixedheader-3.1.6.tgz#b139b88a213460dbeca5080c6251e81575697188" + integrity sha1-sTm4iiE0YNvspQgMYlHoFXVpcYg= dependencies: datatables.net "^1.10.15" jquery ">=1.7" datatables.net-keytable-bs4@^2.5.1: version "2.5.1" - resolved "https://registry.yarnpkg.com/datatables.net-keytable-bs4/-/datatables.net-keytable-bs4-2.5.1.tgz#011b1950322d9038b1a1958d0a3e58679d902cb2" - integrity sha512-K3WlmCxVsmUpIKNEbP+2gggJ4eVnHI8NUleSDagmpromxErxmvsli7Sa35ZCRaCkMn/81TwFMIA2cHKfYotJyQ== + resolved "https://registry.npm.taobao.org/datatables.net-keytable-bs4/download/datatables.net-keytable-bs4-2.5.1.tgz#011b1950322d9038b1a1958d0a3e58679d902cb2" + integrity sha1-ARsZUDItkDixoZWNCj5YZ52QLLI= dependencies: datatables.net-bs4 "^1.10.15" datatables.net-keytable "2.5.1" @@ -2728,16 +2643,16 @@ datatables.net-keytable-bs4@^2.5.1: datatables.net-keytable@2.5.1: version "2.5.1" - resolved "https://registry.yarnpkg.com/datatables.net-keytable/-/datatables.net-keytable-2.5.1.tgz#7a6ba0b8085eaacc2cdc20f6348e8abd77b899c6" - integrity sha512-06b1ilIyIaEK3jcCqHjcZCIBjgSBwW/Aj/H8TMS/J0pO//UR/N0t3O9lvklqZurTtKCkP2HDaS+hgTavgyWnJA== + resolved "https://registry.npm.taobao.org/datatables.net-keytable/download/datatables.net-keytable-2.5.1.tgz#7a6ba0b8085eaacc2cdc20f6348e8abd77b899c6" + integrity sha1-emuguAheqsws3CD2NI6KvXe4mcY= dependencies: datatables.net "^1.10.15" jquery ">=1.7" datatables.net-responsive-bs4@^2.2.3: version "2.2.3" - resolved "https://registry.yarnpkg.com/datatables.net-responsive-bs4/-/datatables.net-responsive-bs4-2.2.3.tgz#639de17c1d31210ebf2b3c25f1c774c13f729e94" - integrity sha512-SQaWI0uLuPcaiBBin9zX+MuQfTSIkK1bYxbXqUV6NLkHCVa6PMQK7Rvftj0ywG4R7uOtjbzY8nSVqxEKvQI0Vg== + resolved "https://registry.npm.taobao.org/datatables.net-responsive-bs4/download/datatables.net-responsive-bs4-2.2.3.tgz#639de17c1d31210ebf2b3c25f1c774c13f729e94" + integrity sha1-Y53hfB0xIQ6/Kzwl8cd0wT9ynpQ= dependencies: datatables.net-bs4 "^1.10.15" datatables.net-responsive "2.2.3" @@ -2745,16 +2660,16 @@ datatables.net-responsive-bs4@^2.2.3: datatables.net-responsive@2.2.3: version "2.2.3" - resolved "https://registry.yarnpkg.com/datatables.net-responsive/-/datatables.net-responsive-2.2.3.tgz#50a2b1b4955b16b32f573a3f00f473b0bfbee913" - integrity sha512-8D6VtZcyuH3FG0Hn5A4LPZQEOX3+HrRFM7HjpmsQc/nQDBbdeBLkJX4Sh/o1nzFTSneuT1Wh/lYZHVPpjcN+Sw== + resolved "https://registry.npm.taobao.org/datatables.net-responsive/download/datatables.net-responsive-2.2.3.tgz#50a2b1b4955b16b32f573a3f00f473b0bfbee913" + integrity sha1-UKKxtJVbFrMvVzo/APRzsL++6RM= dependencies: datatables.net "^1.10.15" jquery ">=1.7" datatables.net-rowgroup-bs4@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/datatables.net-rowgroup-bs4/-/datatables.net-rowgroup-bs4-1.1.1.tgz#57c17e611f8f8ec0aa456fd325bbf466545c230d" - integrity sha512-39+6bqlF5emY2VJOTgwEfbJMBjxveKGrKnZb5ltTzCp70q5mX+OTzJVJJlKI6wXjQXx5765B6xbFHNGKIRPNHw== + resolved "https://registry.npm.taobao.org/datatables.net-rowgroup-bs4/download/datatables.net-rowgroup-bs4-1.1.1.tgz#57c17e611f8f8ec0aa456fd325bbf466545c230d" + integrity sha1-V8F+YR+PjsCqRW/TJbv0ZlRcIw0= dependencies: datatables.net-bs4 "^1.10.15" datatables.net-rowgroup "1.1.1" @@ -2762,16 +2677,16 @@ datatables.net-rowgroup-bs4@^1.1.1: datatables.net-rowgroup@1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/datatables.net-rowgroup/-/datatables.net-rowgroup-1.1.1.tgz#616531e5fb3c8642f6a51fb14801f8aff50cf90e" - integrity sha512-uGdD7t7quFZ1Qnze0ScO4qmreoxK07rp9ukU68/ITkWCQjYOfXoqB8izJP9o+TYs7P8sM4Q8ecxzPm7z5pOauw== + resolved "https://registry.npm.taobao.org/datatables.net-rowgroup/download/datatables.net-rowgroup-1.1.1.tgz#616531e5fb3c8642f6a51fb14801f8aff50cf90e" + integrity sha1-YWUx5fs8hkL2pR+xSAH4r/UM+Q4= dependencies: datatables.net "^1.10.15" jquery ">=1.7" datatables.net-rowreorder-bs4@^1.2.6: version "1.2.6" - resolved "https://registry.yarnpkg.com/datatables.net-rowreorder-bs4/-/datatables.net-rowreorder-bs4-1.2.6.tgz#b3333ede3d84d6b5cce346d1aece1fb0d2a937ac" - integrity sha512-Ld1liPNlhOBXjZFg+OpzRdAcYvQNe2JgbXOc2rl2XcU89VHrT5LARt0oZoyuyJiuEIlBgoxNnBzXXw1dFrP5zg== + resolved "https://registry.npm.taobao.org/datatables.net-rowreorder-bs4/download/datatables.net-rowreorder-bs4-1.2.6.tgz#b3333ede3d84d6b5cce346d1aece1fb0d2a937ac" + integrity sha1-szM+3j2E1rXM40bRrs4fsNKpN6w= dependencies: datatables.net-bs4 "^1.10.15" datatables.net-rowreorder "1.2.6" @@ -2779,16 +2694,16 @@ datatables.net-rowreorder-bs4@^1.2.6: datatables.net-rowreorder@1.2.6: version "1.2.6" - resolved "https://registry.yarnpkg.com/datatables.net-rowreorder/-/datatables.net-rowreorder-1.2.6.tgz#e1788c4dea84b12223bc5dde3e4a70c316a12ae6" - integrity sha512-bGlFPR/0o4YxBAiU6MWB9TZgJHOI6NduQL4vGoQj9/KvqkgzT1EUTOxmv0NKTP7uDO1x5ZEyPhmscIae9ATIIA== + resolved "https://registry.npm.taobao.org/datatables.net-rowreorder/download/datatables.net-rowreorder-1.2.6.tgz#e1788c4dea84b12223bc5dde3e4a70c316a12ae6" + integrity sha1-4XiMTeqEsSIjvF3ePkpwwxahKuY= dependencies: datatables.net "^1.10.15" jquery ">=1.7" datatables.net-scroller-bs4@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/datatables.net-scroller-bs4/-/datatables.net-scroller-bs4-2.0.1.tgz#aa7d33eee1cd26e03c6e5598116292d91874acae" - integrity sha512-NMZNU36aAfNYmryZz8j5EsO6mnUxoyx+5j8PxSNfyrNhMVFtFmSCRJrWNfmfYN5zpOe3/XgjbXytaD5LdWHszg== + resolved "https://registry.npm.taobao.org/datatables.net-scroller-bs4/download/datatables.net-scroller-bs4-2.0.1.tgz#aa7d33eee1cd26e03c6e5598116292d91874acae" + integrity sha1-qn0z7uHNJuA8blWYEWKS2Rh0rK4= dependencies: datatables.net-bs4 "^1.10.15" datatables.net-scroller "2.0.1" @@ -2796,16 +2711,16 @@ datatables.net-scroller-bs4@^2.0.1: datatables.net-scroller@2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/datatables.net-scroller/-/datatables.net-scroller-2.0.1.tgz#17040d3f1da9b4e174729b6b7f0e36b6bf818adc" - integrity sha512-FnbJXT1Zu8FVK+wXcMuEVyFJkLXDi65i+jPCSVH2ZkNSPp+mfeBVtZH41MLGspNouP/IdudKIoCXzPNR/+OhpQ== + resolved "https://registry.npm.taobao.org/datatables.net-scroller/download/datatables.net-scroller-2.0.1.tgz#17040d3f1da9b4e174729b6b7f0e36b6bf818adc" + integrity sha1-FwQNPx2ptOF0cptrfw42tr+Bitw= dependencies: datatables.net "^1.10.15" jquery ">=1.7" datatables.net-select-bs4@^1.3.1: version "1.3.1" - resolved "https://registry.yarnpkg.com/datatables.net-select-bs4/-/datatables.net-select-bs4-1.3.1.tgz#1c39c7fd5bfb66b5c8402611c2c64fc47e3cfca4" - integrity sha512-8UOBxChTsn24nP/ZOsIMGZOdTJymQZ8WcQ81NcGgyDz6b4JlsQl8Bwb89AcVT7hncMquPJ3d5WUGG4I9WMhAlw== + resolved "https://registry.npm.taobao.org/datatables.net-select-bs4/download/datatables.net-select-bs4-1.3.1.tgz#1c39c7fd5bfb66b5c8402611c2c64fc47e3cfca4" + integrity sha1-HDnH/Vv7ZrXIQCYRwsZPxH48/KQ= dependencies: datatables.net-bs4 "^1.10.15" datatables.net-select "1.3.1" @@ -2813,79 +2728,62 @@ datatables.net-select-bs4@^1.3.1: datatables.net-select@1.3.1: version "1.3.1" - resolved "https://registry.yarnpkg.com/datatables.net-select/-/datatables.net-select-1.3.1.tgz#ec2c3ad7df2bc9c13c09587d0bfd0ceba52a8bff" - integrity sha512-PeVd/hlAX58QzL0+mGvxnXP7ylLtzZMeAots/uZkQi+6c/KI6JuP8LCJoEMHAsSjQM/BnG7Uw8E1YGOz1tZpQQ== + resolved "https://registry.npm.taobao.org/datatables.net-select/download/datatables.net-select-1.3.1.tgz#ec2c3ad7df2bc9c13c09587d0bfd0ceba52a8bff" + integrity sha1-7Cw6198rycE8CVh9C/0M66Uqi/8= dependencies: datatables.net "^1.10.15" jquery ">=1.7" datatables.net@1.10.20, datatables.net@^1.10.15, datatables.net@^1.10.20: version "1.10.20" - resolved "https://registry.yarnpkg.com/datatables.net/-/datatables.net-1.10.20.tgz#9d65ecc3c83cbe7baa4fa5a053405c8fe42c1350" - integrity sha512-4E4S7tTU607N3h0fZPkGmAtr9mwy462u+VJ6gxYZ8MxcRIjZqHy3Dv1GNry7i3zQCktTdWbULVKBbkAJkuHEnQ== + resolved "https://registry.npm.taobao.org/datatables.net/download/datatables.net-1.10.20.tgz#9d65ecc3c83cbe7baa4fa5a053405c8fe42c1350" + integrity sha1-nWXsw8g8vnuqT6WgU0Bcj+QsE1A= dependencies: jquery ">=1.7" -date-now@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" - integrity sha1-6vQ5/U1ISK105cx9vvIAZyueNFs= - daterangepicker@^3.0.5: version "3.0.5" - resolved "https://registry.yarnpkg.com/daterangepicker/-/daterangepicker-3.0.5.tgz#97180f233cf9c222cd0767b9c37c2926976d633a" - integrity sha512-BoVV+OjVARWNE15iF+3Y2QIMioAD2UODHvJwIq+NtG0vxh61dXRmOMXlw2dsvxS8KY4n5uvIcBfIPiEiiGJcBg== + resolved "https://registry.npm.taobao.org/daterangepicker/download/daterangepicker-3.0.5.tgz#97180f233cf9c222cd0767b9c37c2926976d633a" + integrity sha1-lxgPIzz5wiLNB2e5w3wpJpdtYzo= dependencies: jquery ">=1.10" moment "^2.9.0" debug@2.6.9, debug@^2.2.0, debug@^2.3.3: version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + resolved "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8= dependencies: ms "2.0.0" debug@^3.0.0, debug@^3.1.1, debug@^3.2.5, debug@^3.2.6: version "3.2.6" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" - integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== + resolved "https://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" + integrity sha1-6D0X3hbYp++3cX7b5fsQE17uYps= dependencies: ms "^2.1.1" debug@^4.1.0, debug@^4.1.1: version "4.1.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" - integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== + resolved "https://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E= dependencies: ms "^2.1.1" decamelize@^1.1.1, decamelize@^1.1.2, decamelize@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + resolved "https://registry.npm.taobao.org/decamelize/download/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= decode-uri-component@^0.2.0: version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + resolved "https://registry.npm.taobao.org/decode-uri-component/download/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= -deep-equal@^1.0.0: +deep-equal@^1.0.0, deep-equal@^1.0.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" - integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== - dependencies: - is-arguments "^1.0.4" - is-date-object "^1.0.1" - is-regex "^1.0.4" - object-is "^1.0.1" - object-keys "^1.1.1" - regexp.prototype.flags "^1.2.0" - -deep-equal@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.0.tgz#3103cdf8ab6d32cf4a8df7865458f2b8d33f3745" - integrity sha512-ZbfWJq/wN1Z273o7mUSjILYqehAktR2NVoSrOukDkU9kg2v/Uv89yU4Cvz8seJeAmtN5oqiefKq8FPuXOboqLw== + resolved "https://registry.npm.taobao.org/deep-equal/download/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" + integrity sha1-tcmMlCzv+vfLBR4k4UNKJaLmB2o= dependencies: is-arguments "^1.0.4" is-date-object "^1.0.1" @@ -2896,55 +2794,55 @@ deep-equal@^1.0.1: deep-extend@^0.6.0: version "0.6.0" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" - integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + resolved "https://registry.npm.taobao.org/deep-extend/download/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha1-xPp8lUBKF6nD6Mp+FTcxK3NjMKw= deep-is@~0.1.3: version "0.1.3" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + resolved "https://registry.npm.taobao.org/deep-is/download/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= default-gateway@^4.2.0: version "4.2.0" - resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" - integrity sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA== + resolved "https://registry.npm.taobao.org/default-gateway/download/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" + integrity sha1-FnEEx1AMIRX23WmwpTa7jtcgVSs= dependencies: execa "^1.0.0" ip-regex "^2.1.0" define-properties@^1.1.2, define-properties@^1.1.3: version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + resolved "https://registry.npm.taobao.org/define-properties/download/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE= dependencies: object-keys "^1.0.12" define-property@^0.2.5: version "0.2.5" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + resolved "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= dependencies: is-descriptor "^0.1.0" define-property@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + resolved "https://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= dependencies: is-descriptor "^1.0.0" define-property@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" - integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== + resolved "https://registry.npm.taobao.org/define-property/download/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + integrity sha1-1Flono1lS6d+AqgX+HENcCyxbp0= dependencies: is-descriptor "^1.0.2" isobject "^3.0.1" del@^4.1.1: version "4.1.1" - resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" - integrity sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ== + resolved "https://registry.npm.taobao.org/del/download/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" + integrity sha1-no8RciLqRKMf86FWwEm5kFKp8LQ= dependencies: "@types/glob" "^7.1.1" globby "^6.1.0" @@ -2956,56 +2854,56 @@ del@^4.1.1: delayed-stream@~1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + resolved "https://registry.npm.taobao.org/delayed-stream/download/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= delegates@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + resolved "https://registry.npm.taobao.org/delegates/download/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= depd@~1.1.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + resolved "https://registry.npm.taobao.org/depd/download/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= des.js@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" - integrity sha1-wHTS4qpqipoH29YfmhXCzYPsjsw= + version "1.0.1" + resolved "https://registry.npm.taobao.org/des.js/download/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" + integrity sha1-U4IULhvcU/hdhtU+X0qn3rkeCEM= dependencies: inherits "^2.0.1" minimalistic-assert "^1.0.0" destroy@~1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + resolved "https://registry.npm.taobao.org/destroy/download/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= detect-file@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" + resolved "https://registry.npm.taobao.org/detect-file/download/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= detect-libc@^1.0.2: version "1.0.3" - resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + resolved "https://registry.npm.taobao.org/detect-libc/download/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= detect-node@^2.0.4: version "2.0.4" - resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" - integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw== + resolved "https://registry.npm.taobao.org/detect-node/download/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" + integrity sha1-AU7o+PZpxcWAI9pkuBecCDooxGw= dfa@^1.0.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/dfa/-/dfa-1.2.0.tgz#96ac3204e2d29c49ea5b57af8d92c2ae12790657" - integrity sha512-ED3jP8saaweFTjeGX8HQPjeC1YYyZs98jGNZx6IiBvxW7JG5v492kamAQB3m2wop07CvU/RQmzcKr6bgcC5D/Q== + resolved "https://registry.npm.taobao.org/dfa/download/dfa-1.2.0.tgz#96ac3204e2d29c49ea5b57af8d92c2ae12790657" + integrity sha1-lqwyBOLSnEnqW1evjZLCrhJ5Blc= diffie-hellman@^5.0.0: version "5.0.3" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" - integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== + resolved "https://registry.npm.taobao.org/diffie-hellman/download/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" + integrity sha1-QOjumPVaIUlgcUaSHGPhrl89KHU= dependencies: bn.js "^4.1.0" miller-rabin "^4.0.0" @@ -3013,73 +2911,73 @@ diffie-hellman@^5.0.0: dns-equal@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" + resolved "https://registry.npm.taobao.org/dns-equal/download/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= dns-packet@^1.3.1: version "1.3.1" - resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a" - integrity sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg== + resolved "https://registry.npm.taobao.org/dns-packet/download/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a" + integrity sha1-EqpCaYEHW+UAuRDu3NC0fdfe2lo= dependencies: ip "^1.1.0" safe-buffer "^5.0.1" dns-txt@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" + resolved "https://registry.npm.taobao.org/dns-txt/download/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" integrity sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY= dependencies: buffer-indexof "^1.0.0" dom-serializer@0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.1.tgz#13650c850daffea35d8b626a4cfc4d3a17643fdb" - integrity sha512-sK3ujri04WyjwQXVoK4PU3y8ula1stq10GJZpqHIUgoGZdsGzAGu65BnU3d08aTVSvO7mGPZUc0wTEDL+qGE0Q== + version "0.2.2" + resolved "https://registry.npm.taobao.org/dom-serializer/download/dom-serializer-0.2.2.tgz?cache=0&sync_timestamp=1573447907918&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdom-serializer%2Fdownload%2Fdom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" + integrity sha1-GvuB9TNxcXXUeGVd68XjMtn5u1E= dependencies: domelementtype "^2.0.1" entities "^2.0.0" domain-browser@^1.1.1: version "1.2.0" - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" - integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== + resolved "https://registry.npm.taobao.org/domain-browser/download/domain-browser-1.2.0.tgz?cache=0&sync_timestamp=1575879334171&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomain-browser%2Fdownload%2Fdomain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" + integrity sha1-PTH1AZGmdJ3RN1p/Ui6CPULlTto= domelementtype@1: version "1.3.1" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" - integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== + resolved "https://registry.npm.taobao.org/domelementtype/download/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" + integrity sha1-0EjESzew0Qp/Kj1f7j9DM9eQSB8= domelementtype@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d" - integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ== + resolved "https://registry.npm.taobao.org/domelementtype/download/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d" + integrity sha1-H4vf6R9aeAYydOgDtL3O326U+U0= domutils@^1.7.0: version "1.7.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" - integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== + resolved "https://registry.npm.taobao.org/domutils/download/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" + integrity sha1-Vuo0HoNOBuZ0ivehyyXaZ+qfjCo= dependencies: dom-serializer "0" domelementtype "1" dot-prop@^4.1.1: version "4.2.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" - integrity sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ== + resolved "https://registry.npm.taobao.org/dot-prop/download/dot-prop-4.2.0.tgz?cache=0&sync_timestamp=1572620518450&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdot-prop%2Fdownload%2Fdot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" + integrity sha1-HxngwuGqDjJ5fEl5nyg3rGr2nFc= dependencies: is-obj "^1.0.0" duplexer2@~0.1.4: version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" + resolved "https://registry.npm.taobao.org/duplexer2/download/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" integrity sha1-ixLauHjA1p4+eJEFFmKjL8a93ME= dependencies: readable-stream "^2.0.2" duplexify@^3.4.2, duplexify@^3.6.0: version "3.7.1" - resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" - integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== + resolved "https://registry.npm.taobao.org/duplexify/download/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" + integrity sha1-Kk31MX9sz9kfhtb9JdjYoQO4gwk= dependencies: end-of-stream "^1.0.0" inherits "^2.0.1" @@ -3088,7 +2986,7 @@ duplexify@^3.4.2, duplexify@^3.6.0: ecc-jsbn@~0.1.1: version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + resolved "https://registry.npm.taobao.org/ecc-jsbn/download/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= dependencies: jsbn "~0.1.0" @@ -3096,23 +2994,23 @@ ecc-jsbn@~0.1.1: ee-first@1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + resolved "https://registry.npm.taobao.org/ee-first/download/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= ekko-lightbox@^5.3.0: version "5.3.0" - resolved "https://registry.yarnpkg.com/ekko-lightbox/-/ekko-lightbox-5.3.0.tgz#fbfcd9df93a8d1cdbf8770adc8c05aaac4d24f56" - integrity sha512-mbacwySuVD3Ad6F2hTkjSTvJt59bcVv2l/TmBerp4xZnLak8tPtA4AScUn4DL42c1ksTiAO6sGhJZ52P/1Qgew== + resolved "https://registry.npm.taobao.org/ekko-lightbox/download/ekko-lightbox-5.3.0.tgz#fbfcd9df93a8d1cdbf8770adc8c05aaac4d24f56" + integrity sha1-+/zZ35Oo0c2/h3CtyMBaqsTST1Y= -electron-to-chromium@^1.3.247: - version "1.3.255" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.255.tgz#9f4b4f9ffd559dd7a81fef962186fc918d118b66" - integrity sha512-SZ6NlaNw3h4WR5kA1BK8XltdJCax02P+lW+z78RYoLDqmpyYuDQ5bS+/O6MCJ/j761qoZIFox2qYYt+UwqGA5w== +electron-to-chromium@^1.3.322: + version "1.3.333" + resolved "https://registry.npm.taobao.org/electron-to-chromium/download/electron-to-chromium-1.3.333.tgz?cache=0&sync_timestamp=1578963913491&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Felectron-to-chromium%2Fdownload%2Felectron-to-chromium-1.3.333.tgz#b835de183afbaaf8655a14f542db06d67a00cba1" + integrity sha1-uDXeGDr7qvhlWhT1QtsG1noAy6E= elliptic@^6.0.0: - version "6.5.1" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.1.tgz#c380f5f909bf1b9b4428d028cd18d3b0efd6b52b" - integrity sha512-xvJINNLbTeWQjrl6X+7eQCrIy/YPv5XCpKW6kB5mKvtnGILoLDcySuwomfdzt0BMdLNVnuRNTuzKNHj0bva1Cg== + version "6.5.2" + resolved "https://registry.npm.taobao.org/elliptic/download/elliptic-6.5.2.tgz#05c5678d7173c049d8ca433552224a495d0e3762" + integrity sha1-BcVnjXFzwEnYykM1UiJKSV0ON2I= dependencies: bn.js "^4.4.0" brorand "^1.0.1" @@ -3124,74 +3022,84 @@ elliptic@^6.0.0: emoji-regex@^7.0.1: version "7.0.3" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" - integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== + resolved "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY= emojis-list@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" + resolved "https://registry.npm.taobao.org/emojis-list/download/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= encodeurl@~1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + resolved "https://registry.npm.taobao.org/encodeurl/download/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= end-of-stream@^1.0.0, end-of-stream@^1.1.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" - integrity sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q== + version "1.4.4" + resolved "https://registry.npm.taobao.org/end-of-stream/download/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha1-WuZKX0UFe682JuwU2gyl5LJDHrA= dependencies: once "^1.4.0" -enhanced-resolve@4.1.0, enhanced-resolve@^4.1.0: +enhanced-resolve@4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz#41c7e0bfdfe74ac1ffe1e57ad6a5c6c9f3742a7f" - integrity sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng== + resolved "https://registry.npm.taobao.org/enhanced-resolve/download/enhanced-resolve-4.1.0.tgz?cache=0&sync_timestamp=1572993058578&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fenhanced-resolve%2Fdownload%2Fenhanced-resolve-4.1.0.tgz#41c7e0bfdfe74ac1ffe1e57ad6a5c6c9f3742a7f" + integrity sha1-Qcfgv9/nSsH/4eV61qXGyfN0Kn8= dependencies: graceful-fs "^4.1.2" memory-fs "^0.4.0" tapable "^1.0.0" +enhanced-resolve@^4.1.0: + version "4.1.1" + resolved "https://registry.npm.taobao.org/enhanced-resolve/download/enhanced-resolve-4.1.1.tgz?cache=0&sync_timestamp=1572993058578&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fenhanced-resolve%2Fdownload%2Fenhanced-resolve-4.1.1.tgz#2937e2b8066cd0fe7ce0990a98f0d71a35189f66" + integrity sha1-KTfiuAZs0P584JkKmPDXGjUYn2Y= + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.5.0" + tapable "^1.0.0" + entities@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.0.tgz#68d6084cab1b079767540d80e56a39b423e4abf4" - integrity sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw== + resolved "https://registry.npm.taobao.org/entities/download/entities-2.0.0.tgz#68d6084cab1b079767540d80e56a39b423e4abf4" + integrity sha1-aNYITKsbB5dnVA2A5Wo5tCPkq/Q= errno@^0.1.3, errno@~0.1.7: version "0.1.7" - resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" - integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== + resolved "https://registry.npm.taobao.org/errno/download/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" + integrity sha1-RoTXF3mtOa8Xfj8AeZb3xnyFJhg= dependencies: prr "~1.0.1" error-ex@^1.2.0, error-ex@^1.3.1: version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + resolved "https://registry.npm.taobao.org/error-ex/download/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha1-tKxAZIEH/c3PriQvQovqihTU8b8= dependencies: is-arrayish "^0.2.1" -es-abstract@^1.12.0, es-abstract@^1.5.1: - version "1.14.2" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.14.2.tgz#7ce108fad83068c8783c3cdf62e504e084d8c497" - integrity sha512-DgoQmbpFNOofkjJtKwr87Ma5EW4Dc8fWhD0R+ndq7Oc456ivUfGOOP6oAZTTKl5/CcNMP+EN+e3/iUzgE0veZg== +es-abstract@^1.17.0-next.1: + version "1.17.0" + resolved "https://registry.npm.taobao.org/es-abstract/download/es-abstract-1.17.0.tgz#f42a517d0036a5591dbb2c463591dc8bb50309b1" + integrity sha1-9CpRfQA2pVkduyxGNZHci7UDCbE= dependencies: - es-to-primitive "^1.2.0" + es-to-primitive "^1.2.1" function-bind "^1.1.1" has "^1.0.3" - has-symbols "^1.0.0" - is-callable "^1.1.4" - is-regex "^1.0.4" - object-inspect "^1.6.0" + has-symbols "^1.0.1" + is-callable "^1.1.5" + is-regex "^1.0.5" + object-inspect "^1.7.0" object-keys "^1.1.1" - string.prototype.trimleft "^2.0.0" - string.prototype.trimright "^2.0.0" + object.assign "^4.1.0" + string.prototype.trimleft "^2.1.1" + string.prototype.trimright "^2.1.1" -es-to-primitive@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.0.tgz#edf72478033456e8dda8ef09e00ad9650707f377" - integrity sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg== +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.npm.taobao.org/es-to-primitive/download/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha1-5VzUyc3BiLzvsDs2bHNjI/xciYo= dependencies: is-callable "^1.1.4" is-date-object "^1.0.1" @@ -3199,8 +3107,8 @@ es-to-primitive@^1.2.0: es5-ext@^0.10.35, es5-ext@^0.10.50, es5-ext@~0.10.14: version "0.10.53" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1" - integrity sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q== + resolved "https://registry.npm.taobao.org/es5-ext/download/es5-ext-0.10.53.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fes5-ext%2Fdownload%2Fes5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1" + integrity sha1-k8WjrP2+8nUiCtcmRK0C7hg2jeE= dependencies: es6-iterator "~2.0.3" es6-symbol "~3.1.3" @@ -3208,7 +3116,7 @@ es5-ext@^0.10.35, es5-ext@^0.10.50, es5-ext@~0.10.14: es6-iterator@~2.0.1, es6-iterator@~2.0.3: version "2.0.3" - resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + resolved "https://registry.npm.taobao.org/es6-iterator/download/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= dependencies: d "1" @@ -3217,7 +3125,7 @@ es6-iterator@~2.0.1, es6-iterator@~2.0.3: es6-map@^0.1.5: version "0.1.5" - resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" + resolved "https://registry.npm.taobao.org/es6-map/download/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" integrity sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA= dependencies: d "1" @@ -3229,7 +3137,7 @@ es6-map@^0.1.5: es6-set@^0.1.5, es6-set@~0.1.5: version "0.1.5" - resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" + resolved "https://registry.npm.taobao.org/es6-set/download/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" integrity sha1-0rPsXU2ADO2BjbU40ol02wpzzLE= dependencies: d "1" @@ -3240,7 +3148,7 @@ es6-set@^0.1.5, es6-set@~0.1.5: es6-symbol@3.1.1: version "3.1.1" - resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" + resolved "https://registry.npm.taobao.org/es6-symbol/download/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" integrity sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc= dependencies: d "1" @@ -3248,26 +3156,26 @@ es6-symbol@3.1.1: es6-symbol@^3.1.1, es6-symbol@~3.1.1, es6-symbol@~3.1.3: version "3.1.3" - resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" - integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== + resolved "https://registry.npm.taobao.org/es6-symbol/download/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" + integrity sha1-utXTwbzawoJp9MszHkMceKxwXRg= dependencies: d "^1.0.1" ext "^1.1.2" escape-html@~1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + resolved "https://registry.npm.taobao.org/escape-html/download/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + resolved "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= escodegen@^1.11.1: - version "1.12.0" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.12.0.tgz#f763daf840af172bb3a2b6dd7219c0e17f7ff541" - integrity sha512-TuA+EhsanGcme5T3R0L80u4t8CpbXQjegRmf7+FPTJrtCTErXFeelblRgHQa1FofEzqYYJmJ/OqjTwREp9qgmg== + version "1.12.1" + resolved "https://registry.npm.taobao.org/escodegen/download/escodegen-1.12.1.tgz#08770602a74ac34c7a90ca9229e7d51e379abc76" + integrity sha1-CHcGAqdKw0x6kMqSKefVHjeavHY= dependencies: esprima "^3.1.3" estraverse "^4.2.0" @@ -3278,7 +3186,7 @@ escodegen@^1.11.1: escodegen@~1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.2.0.tgz#09de7967791cc958b7f89a2ddb6d23451af327e1" + resolved "https://registry.npm.taobao.org/escodegen/download/escodegen-1.2.0.tgz#09de7967791cc958b7f89a2ddb6d23451af327e1" integrity sha1-Cd55Z3kcyVi3+Jot220jRRrzJ+E= dependencies: esprima "~1.0.4" @@ -3289,8 +3197,8 @@ escodegen@~1.2.0: escodegen@~1.9.0: version "1.9.1" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.9.1.tgz#dbae17ef96c8e4bedb1356f4504fa4cc2f7cb7e2" - integrity sha512-6hTjO1NAWkHnDk3OqQ4YrCuwwmGHL9S3nPlzBOUG/R44rda3wLNrfvQ5fkSGjyhHFKM7ALPKcKGrwvCLe0lC7Q== + resolved "https://registry.npm.taobao.org/escodegen/download/escodegen-1.9.1.tgz#dbae17ef96c8e4bedb1356f4504fa4cc2f7cb7e2" + integrity sha1-264X75bI5L7bE1b0UE+kzC98t+I= dependencies: esprima "^3.1.3" estraverse "^4.2.0" @@ -3301,111 +3209,111 @@ escodegen@~1.9.0: eslint-scope@^4.0.3: version "4.0.3" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" - integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== + resolved "https://registry.npm.taobao.org/eslint-scope/download/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" + integrity sha1-ygODMxD2iJoyZHgaqC5j65z+eEg= dependencies: esrecurse "^4.1.0" estraverse "^4.1.1" esprima@^3.1.3: version "3.1.3" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" + resolved "https://registry.npm.taobao.org/esprima/download/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" integrity sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM= esprima@^4.0.0: version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + resolved "https://registry.npm.taobao.org/esprima/download/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha1-E7BM2z5sXRnfkatph6hpVhmwqnE= esprima@~1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-1.0.4.tgz#9f557e08fc3b4d26ece9dd34f8fbf476b62585ad" + resolved "https://registry.npm.taobao.org/esprima/download/esprima-1.0.4.tgz#9f557e08fc3b4d26ece9dd34f8fbf476b62585ad" integrity sha1-n1V+CPw7TSbs6d00+Pv0drYlha0= esrecurse@^4.1.0: version "4.2.1" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" - integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ== + resolved "https://registry.npm.taobao.org/esrecurse/download/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" + integrity sha1-AHo7n9vCs7uH5IeeoZyS/b05Qs8= dependencies: estraverse "^4.1.0" estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + resolved "https://registry.npm.taobao.org/estraverse/download/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0= estraverse@~1.5.0: version "1.5.1" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.5.1.tgz#867a3e8e58a9f84618afb6c2ddbcd916b7cbaf71" + resolved "https://registry.npm.taobao.org/estraverse/download/estraverse-1.5.1.tgz#867a3e8e58a9f84618afb6c2ddbcd916b7cbaf71" integrity sha1-hno+jlip+EYYr7bC3bzZFrfLr3E= estree-is-function@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/estree-is-function/-/estree-is-function-1.0.0.tgz#c0adc29806d7f18a74db7df0f3b2666702e37ad2" - integrity sha512-nSCWn1jkSq2QAtkaVLJZY2ezwcFO161HVc174zL1KPW3RJ+O6C3eJb8Nx7OXzvhoEv+nLgSR1g71oWUHUDTrJA== + resolved "https://registry.npm.taobao.org/estree-is-function/download/estree-is-function-1.0.0.tgz#c0adc29806d7f18a74db7df0f3b2666702e37ad2" + integrity sha1-wK3CmAbX8Yp0233w87JmZwLjetI= esutils@^2.0.2: version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + resolved "https://registry.npm.taobao.org/esutils/download/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q= esutils@~1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-1.0.0.tgz#8151d358e20c8acc7fb745e7472c0025fe496570" + resolved "https://registry.npm.taobao.org/esutils/download/esutils-1.0.0.tgz#8151d358e20c8acc7fb745e7472c0025fe496570" integrity sha1-gVHTWOIMisx/t0XnRywAJf5JZXA= etag@~1.8.1: version "1.8.1" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + resolved "https://registry.npm.taobao.org/etag/download/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= ev-emitter@^1.0.0: version "1.1.1" - resolved "https://registry.yarnpkg.com/ev-emitter/-/ev-emitter-1.1.1.tgz#8f18b0ce5c76a5d18017f71c0a795c65b9138f2a" - integrity sha512-ipiDYhdQSCZ4hSbX4rMW+XzNKMD1prg/sTvoVmSLkuQ1MVlwjJQQA+sW8tMYR3BLUr9KjodFV4pvzunvRhd33Q== + resolved "https://registry.npm.taobao.org/ev-emitter/download/ev-emitter-1.1.1.tgz#8f18b0ce5c76a5d18017f71c0a795c65b9138f2a" + integrity sha1-jxiwzlx2pdGAF/ccCnlcZbkTjyo= eve-raphael@0.5.0: version "0.5.0" - resolved "https://registry.yarnpkg.com/eve-raphael/-/eve-raphael-0.5.0.tgz#17c754b792beef3fa6684d79cf5a47c63c4cda30" + resolved "https://registry.npm.taobao.org/eve-raphael/download/eve-raphael-0.5.0.tgz#17c754b792beef3fa6684d79cf5a47c63c4cda30" integrity sha1-F8dUt5K+7z+maE15z1pHxjxM2jA= event-emitter@~0.3.5: version "0.3.5" - resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" + resolved "https://registry.npm.taobao.org/event-emitter/download/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" integrity sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk= dependencies: d "1" es5-ext "~0.10.14" -eventemitter3@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" - integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== +eventemitter3@^4.0.0: + version "4.0.0" + resolved "https://registry.npm.taobao.org/eventemitter3/download/eventemitter3-4.0.0.tgz#d65176163887ee59f386d64c82610b696a4a74eb" + integrity sha1-1lF2FjiH7lnzhtZMgmELaWpKdOs= events@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.0.0.tgz#9a0a0dfaf62893d92b875b8f2698ca4114973e88" - integrity sha512-Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA== + version "3.1.0" + resolved "https://registry.npm.taobao.org/events/download/events-3.1.0.tgz#84279af1b34cb75aa88bf5ff291f6d0bd9b31a59" + integrity sha1-hCea8bNMt1qoi/X/KR9tC9mzGlk= eventsource@^1.0.7: version "1.0.7" - resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.0.7.tgz#8fbc72c93fcd34088090bc0a4e64f4b5cee6d8d0" - integrity sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ== + resolved "https://registry.npm.taobao.org/eventsource/download/eventsource-1.0.7.tgz#8fbc72c93fcd34088090bc0a4e64f4b5cee6d8d0" + integrity sha1-j7xyyT/NNAiAkLwKTmT0tc7m2NA= dependencies: original "^1.0.0" evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" - integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== + resolved "https://registry.npm.taobao.org/evp_bytestokey/download/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + integrity sha1-f8vbGY3HGVlDLv4ThCaE4FJaywI= dependencies: md5.js "^1.3.4" safe-buffer "^5.1.1" execa@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" - integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== + resolved "https://registry.npm.taobao.org/execa/download/execa-1.0.0.tgz?cache=0&sync_timestamp=1576749101742&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + integrity sha1-xiNqW7TfbW8V6I5/AXeYIWdJ3dg= dependencies: cross-spawn "^6.0.0" get-stream "^4.0.0" @@ -3417,7 +3325,7 @@ execa@^1.0.0: expand-brackets@^2.1.4: version "2.1.4" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + resolved "https://registry.npm.taobao.org/expand-brackets/download/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= dependencies: debug "^2.3.3" @@ -3430,15 +3338,15 @@ expand-brackets@^2.1.4: expand-tilde@^2.0.0, expand-tilde@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" + resolved "https://registry.npm.taobao.org/expand-tilde/download/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= dependencies: homedir-polyfill "^1.0.1" express@^4.17.1: version "4.17.1" - resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" - integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== + resolved "https://registry.npm.taobao.org/express/download/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" + integrity sha1-RJH8OGBc9R+GKdOcK10Cb5ikwTQ= dependencies: accepts "~1.3.7" array-flatten "1.1.1" @@ -3472,22 +3380,22 @@ express@^4.17.1: vary "~1.1.2" ext@^1.1.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/ext/-/ext-1.2.0.tgz#8dd8d2dd21bcced3045be09621fa0cbf73908ba4" - integrity sha512-0ccUQK/9e3NreLFg6K6np8aPyRgwycx+oFGtfx1dSp7Wj00Ozw9r05FgBRlzjf2XBM7LAzwgLyDscRrtSU91hA== + version "1.4.0" + resolved "https://registry.npm.taobao.org/ext/download/ext-1.4.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fext%2Fdownload%2Fext-1.4.0.tgz#89ae7a07158f79d35517882904324077e4379244" + integrity sha1-ia56BxWPedNVF4gpBDJAd+Q3kkQ= dependencies: type "^2.0.0" extend-shallow@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + resolved "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= dependencies: is-extendable "^0.1.0" extend-shallow@^3.0.0, extend-shallow@^3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + resolved "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= dependencies: assign-symbols "^1.0.0" @@ -3495,13 +3403,13 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2: extend@~3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + resolved "https://registry.npm.taobao.org/extend/download/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo= extglob@^2.0.4: version "2.0.4" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" - integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== + resolved "https://registry.npm.taobao.org/extglob/download/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + integrity sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM= dependencies: array-unique "^0.3.2" define-property "^1.0.0" @@ -3514,17 +3422,17 @@ extglob@^2.0.4: extsprintf@1.3.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + resolved "https://registry.npm.taobao.org/extsprintf/download/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= extsprintf@^1.2.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + resolved "https://registry.npm.taobao.org/extsprintf/download/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= falafel@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/falafel/-/falafel-2.1.0.tgz#96bb17761daba94f46d001738b3cedf3a67fe06c" + resolved "https://registry.npm.taobao.org/falafel/download/falafel-2.1.0.tgz#96bb17761daba94f46d001738b3cedf3a67fe06c" integrity sha1-lrsXdh2rqU9G0AFzizzt86Z/4Gw= dependencies: acorn "^5.0.0" @@ -3534,64 +3442,69 @@ falafel@^2.1.0: fast-deep-equal@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" + resolved "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-2.0.1.tgz?cache=0&sync_timestamp=1575383928809&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-deep-equal%2Fdownload%2Ffast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= fast-json-stable-stringify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" - integrity sha1-1RQsDK7msRifh9OnYREGT4bIu/I= + version "2.1.0" + resolved "https://registry.npm.taobao.org/fast-json-stable-stringify/download/fast-json-stable-stringify-2.1.0.tgz?cache=0&sync_timestamp=1576340291001&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-json-stable-stringify%2Fdownload%2Ffast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM= fast-levenshtein@~2.0.6: version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + resolved "https://registry.npm.taobao.org/fast-levenshtein/download/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= fast-memoize@^2.5.1: version "2.5.1" - resolved "https://registry.yarnpkg.com/fast-memoize/-/fast-memoize-2.5.1.tgz#c3519241e80552ce395e1a32dcdde8d1fd680f5d" - integrity sha512-xdmw296PCL01tMOXx9mdJSmWY29jQgxyuZdq0rEHMu+Tpe1eOEtCycoG6chzlcrWsNgpZP7oL8RiQr7+G6Bl6g== + resolved "https://registry.npm.taobao.org/fast-memoize/download/fast-memoize-2.5.1.tgz#c3519241e80552ce395e1a32dcdde8d1fd680f5d" + integrity sha1-w1GSQegFUs45Xhoy3N3o0f1oD10= fastclick@^1.0.6: version "1.0.6" - resolved "https://registry.yarnpkg.com/fastclick/-/fastclick-1.0.6.tgz#161625b27b1a5806405936bda9a2c1926d06be6a" + resolved "https://registry.npm.taobao.org/fastclick/download/fastclick-1.0.6.tgz#161625b27b1a5806405936bda9a2c1926d06be6a" integrity sha1-FhYlsnsaWAZAWTa9qaLBkm0Gvmo= faye-websocket@^0.10.0: version "0.10.0" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" + resolved "https://registry.npm.taobao.org/faye-websocket/download/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" integrity sha1-TkkvjQTftviQA1B/btvy1QHnxvQ= dependencies: websocket-driver ">=0.5.1" faye-websocket@~0.11.1: version "0.11.3" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.3.tgz#5c0e9a8968e8912c286639fde977a8b209f2508e" - integrity sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA== + resolved "https://registry.npm.taobao.org/faye-websocket/download/faye-websocket-0.11.3.tgz#5c0e9a8968e8912c286639fde977a8b209f2508e" + integrity sha1-XA6aiWjokSwoZjn96XeosgnyUI4= dependencies: websocket-driver ">=0.5.1" figgy-pudding@^3.5.1: version "3.5.1" - resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790" - integrity sha512-vNKxJHTEKNThjfrdJwHc7brvM6eVevuO5nTj6ez8ZQ1qbXTvGthucRF7S4vf2cr71QVnT70V34v0S1DyQsti0w== + resolved "https://registry.npm.taobao.org/figgy-pudding/download/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790" + integrity sha1-hiRwESkBxyeg5JWoB0S9W6odZ5A= file-loader@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-4.2.0.tgz#5fb124d2369d7075d70a9a5abecd12e60a95215e" - integrity sha512-+xZnaK5R8kBJrHK0/6HRlrKNamvVS5rjyuju+rnyxRGuwUJwpAMsVzUl5dz6rK8brkzjV6JpcFNjp6NqV0g1OQ== + version "4.3.0" + resolved "https://registry.npm.taobao.org/file-loader/download/file-loader-4.3.0.tgz?cache=0&sync_timestamp=1574689320406&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffile-loader%2Fdownload%2Ffile-loader-4.3.0.tgz#780f040f729b3d18019f20605f723e844b8a58af" + integrity sha1-eA8ED3KbPRgBnyBgX3I+hEuKWK8= dependencies: loader-utils "^1.2.3" - schema-utils "^2.0.0" + schema-utils "^2.5.0" + +file-uri-to-path@1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/file-uri-to-path/download/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + integrity sha1-VTp7hEb/b2hDWcRF8eN6BdrMM90= filepond@^4.9.3: - version "4.9.3" - resolved "https://registry.yarnpkg.com/filepond/-/filepond-4.9.3.tgz#f5fb0c70043bd2185e493cf9a726c6675629f654" - integrity sha512-sHv8b/GdiCxo6R+0poXULtHu/T8VH1zmIN/mrI+4Dg/ECFnhr/23YnxlphKFU8WFwz09ix48MRw8Stdjnju/BQ== + version "4.9.4" + resolved "https://registry.npm.taobao.org/filepond/download/filepond-4.9.4.tgz#84889fa42fe2f920ab3664380ccf64d9690ddbea" + integrity sha1-hIifpC/i+SCrNmQ4DM9k2WkN2+o= fill-range@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + resolved "https://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= dependencies: extend-shallow "^2.0.1" @@ -3601,16 +3514,16 @@ fill-range@^4.0.0: filterizr@^2.2.3: version "2.2.3" - resolved "https://registry.yarnpkg.com/filterizr/-/filterizr-2.2.3.tgz#345f7bc5d861cdd63f15e7ad7fc312355752a03a" - integrity sha512-1u3/TadXM12uNUlxHBRM31maMXY4DA2+sbeji4KSHk/m3LE4fMkTst+6W5YBlcBC1umICDiwplWsMqr6VzY5ZA== + resolved "https://registry.npm.taobao.org/filterizr/download/filterizr-2.2.3.tgz#345f7bc5d861cdd63f15e7ad7fc312355752a03a" + integrity sha1-NF97xdhhzdY/Feetf8MSNVdSoDo= dependencies: fast-memoize "^2.5.1" imagesloaded "^4.1.4" finalhandler@~1.1.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" - integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== + resolved "https://registry.npm.taobao.org/finalhandler/download/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + integrity sha1-t+fQAP/RGTjQ/bBTUG9uur6fWH0= dependencies: debug "2.6.9" encodeurl "~1.0.2" @@ -3622,17 +3535,17 @@ finalhandler@~1.1.2: find-cache-dir@^2.0.0, find-cache-dir@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" - integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== + resolved "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" + integrity sha1-jQ+UzRP+Q8bHwmGg2GEVypGMBfc= dependencies: commondir "^1.0.1" make-dir "^2.0.0" pkg-dir "^3.0.0" -find-cache-dir@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.1.0.tgz#9935894999debef4cf9f677fdf646d002c4cdecb" - integrity sha512-zw+EFiNBNPgI2NTrKkDd1xd7q0cs6wr/iWnr/oUkI0yF9K9GqQ+riIt4aiyFaaqpaWbxPrJXHI+QvmNUQbX+0Q== +find-cache-dir@^3.0.0, find-cache-dir@^3.2.0: + version "3.2.0" + resolved "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-3.2.0.tgz#e7fe44c1abc1299f516146e563108fd1006c1874" + integrity sha1-5/5EwavBKZ9RYUblYxCP0QBsGHQ= dependencies: commondir "^1.0.1" make-dir "^3.0.0" @@ -3640,7 +3553,7 @@ find-cache-dir@^3.0.0: find-up@^1.0.0: version "1.1.2" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + resolved "https://registry.npm.taobao.org/find-up/download/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= dependencies: path-exists "^2.0.0" @@ -3648,23 +3561,23 @@ find-up@^1.0.0: find-up@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" - integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + resolved "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha1-SRafHXmTQwZG2mHsxa41XCHJe3M= dependencies: locate-path "^3.0.0" find-up@^4.0.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + resolved "https://registry.npm.taobao.org/find-up/download/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk= dependencies: locate-path "^5.0.0" path-exists "^4.0.0" findup-sync@3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1" - integrity sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg== + resolved "https://registry.npm.taobao.org/findup-sync/download/findup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1" + integrity sha1-F7EI+e5RLft6XH88iyfqnhqcCNE= dependencies: detect-file "^1.0.0" is-glob "^4.0.0" @@ -3673,38 +3586,38 @@ findup-sync@3.0.0: flag-icon-css@^3.4.5: version "3.4.5" - resolved "https://registry.yarnpkg.com/flag-icon-css/-/flag-icon-css-3.4.5.tgz#584d618563034e69cb9a5b7a7c8477ec8c029a49" - integrity sha512-COo/PuJY/JddBLkdi7jL3gWF0z/hcvBRA4kfMXUjLeLglFf5IsyAzKZuXaXfCubVrkraVizmEp7Bn05upTXofA== + resolved "https://registry.npm.taobao.org/flag-icon-css/download/flag-icon-css-3.4.5.tgz#584d618563034e69cb9a5b7a7c8477ec8c029a49" + integrity sha1-WE1hhWMDTmnLmlt6fIR37IwCmkk= dependencies: opencollective-postinstall "2.0.2" flatted@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.1.tgz#69e57caa8f0eacbc281d2e2cb458d46fdb449e08" - integrity sha512-a1hQMktqW9Nmqr5aktAux3JMNqaucxGcjtjWnZLHX7yyPCmlSV3M54nGYbqT8K+0GhF3NBgmJCc3ma+WOgX8Jg== + resolved "https://registry.npm.taobao.org/flatted/download/flatted-2.0.1.tgz#69e57caa8f0eacbc281d2e2cb458d46fdb449e08" + integrity sha1-aeV8qo8OrLwoHS4stFjUb9tEngg= flatten@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782" - integrity sha1-2uRqnXj74lKSJYzB54CkHZXAN4I= + version "1.0.3" + resolved "https://registry.npm.taobao.org/flatten/download/flatten-1.0.3.tgz#c1283ac9f27b368abc1e36d1ff7b04501a30356b" + integrity sha1-wSg6yfJ7Noq8HjbR/3sEUBowNWs= flot@^3.2.13: version "3.2.13" - resolved "https://registry.yarnpkg.com/flot/-/flot-3.2.13.tgz#f4457fd6042fe4ac4e4e124e7a7c7256e69f5362" - integrity sha512-ZJl8zazqgbn79YCdyzt9JV1r38Gk7Dkt+tBb5Kx1sMEDvLVz+ViwF/QTWKcYjyaPO+UW58FP+fFWZFp6dXeMAA== + resolved "https://registry.npm.taobao.org/flot/download/flot-3.2.13.tgz#f4457fd6042fe4ac4e4e124e7a7c7256e69f5362" + integrity sha1-9EV/1gQv5KxOThJOenxyVuafU2I= flush-write-stream@^1.0.0: version "1.1.1" - resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" - integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== + resolved "https://registry.npm.taobao.org/flush-write-stream/download/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" + integrity sha1-jdfYc6G6vCB9lOrQwuDkQnbr8ug= dependencies: inherits "^2.0.3" readable-stream "^2.3.6" follow-redirects@^1.0.0: version "1.9.0" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.9.0.tgz#8d5bcdc65b7108fe1508649c79c12d732dcedb4f" - integrity sha512-CRcPzsSIbXyVDl0QI01muNDu69S8trU4jArW9LpOt2WtC6LyUJetcIrmfHsRBx7/Jb6GHJUiuqyYxPooFfNt6A== + resolved "https://registry.npm.taobao.org/follow-redirects/download/follow-redirects-1.9.0.tgz#8d5bcdc65b7108fe1508649c79c12d732dcedb4f" + integrity sha1-jVvNxltxCP4VCGScecEtcy3O208= dependencies: debug "^3.0.0" @@ -3713,10 +3626,10 @@ font-awesome@^4.7.0: resolved "https://registry.npm.taobao.org/font-awesome/download/font-awesome-4.7.0.tgz#8fa8cf0411a1a31afd07b06d2902bb9fc815a133" integrity sha1-j6jPBBGhoxr9B7BtKQK7n8gVoTM= -fontkit@^1.0.0: +fontkit@^1.8.0: version "1.8.0" - resolved "https://registry.yarnpkg.com/fontkit/-/fontkit-1.8.0.tgz#deb9351619e90ddc91707b6156a9f14c8ab11554" - integrity sha512-EFDRCca7khfQWYu1iFhsqeABpi87f03MBdkT93ZE6YhqCdMzb5Eojb6c4dlJikGv5liuhByyzA7ikpIPTSBWbQ== + resolved "https://registry.npm.taobao.org/fontkit/download/fontkit-1.8.0.tgz#deb9351619e90ddc91707b6156a9f14c8ab11554" + integrity sha1-3rk1FhnpDdyRcHthVqnxTIqxFVQ= dependencies: babel-runtime "^6.11.6" brfs "^1.4.0" @@ -3732,23 +3645,23 @@ fontkit@^1.0.0: for-in@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + resolved "https://registry.npm.taobao.org/for-in/download/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= foreach@^2.0.5: version "2.0.5" - resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" + resolved "https://registry.npm.taobao.org/foreach/download/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" integrity sha1-C+4AUBiusmDQo6865ljdATbsG5k= forever-agent@~0.6.1: version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + resolved "https://registry.npm.taobao.org/forever-agent/download/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= form-data@~2.3.2: version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== + resolved "https://registry.npm.taobao.org/form-data/download/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" + integrity sha1-3M5SwF9kTymManq5Nr1yTO/786Y= dependencies: asynckit "^0.4.0" combined-stream "^1.0.6" @@ -3756,24 +3669,24 @@ form-data@~2.3.2: forwarded@~0.1.2: version "0.1.2" - resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" + resolved "https://registry.npm.taobao.org/forwarded/download/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= fragment-cache@^0.2.1: version "0.2.1" - resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + resolved "https://registry.npm.taobao.org/fragment-cache/download/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= dependencies: map-cache "^0.2.2" fresh@0.5.2: version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + resolved "https://registry.npm.taobao.org/fresh/download/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= from2@^2.1.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" + resolved "https://registry.npm.taobao.org/from2/download/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= dependencies: inherits "^2.0.1" @@ -3781,30 +3694,30 @@ from2@^2.1.0: fs-extra@^8.1.0: version "8.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" - integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + resolved "https://registry.npm.taobao.org/fs-extra/download/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha1-SdQ8RaiM2Wd2aMt74bRu/bjS4cA= dependencies: graceful-fs "^4.2.0" jsonfile "^4.0.0" universalify "^0.1.0" fs-minipass@^1.2.5: - version "1.2.6" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.6.tgz#2c5cc30ded81282bfe8a0d7c7c1853ddeb102c07" - integrity sha512-crhvyXcMejjv3Z5d2Fa9sf5xLYVCF5O1c71QxbVnbLsmYMBEvDAftewesN/HhY03YRoA7zOMxjNGrF5svGaaeQ== + version "1.2.7" + resolved "https://registry.npm.taobao.org/fs-minipass/download/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" + integrity sha1-zP+FcIQef+QmVpPaiJNsVa7X98c= dependencies: - minipass "^2.2.1" + minipass "^2.6.0" fs-minipass@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.0.0.tgz#a6415edab02fae4b9e9230bc87ee2e4472003cd1" - integrity sha512-40Qz+LFXmd9tzYVnnBmZvFfvAADfUA14TXPK1s7IfElJTIZ97rA8w4Kin7Wt5JBrC3ShnnFJO/5vPjPEeJIq9A== + resolved "https://registry.npm.taobao.org/fs-minipass/download/fs-minipass-2.0.0.tgz#a6415edab02fae4b9e9230bc87ee2e4472003cd1" + integrity sha1-pkFe2rAvrkuekjC8h+4uRHIAPNE= dependencies: minipass "^3.0.0" fs-write-stream-atomic@^1.0.8: version "1.0.10" - resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" + resolved "https://registry.npm.taobao.org/fs-write-stream-atomic/download/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= dependencies: graceful-fs "^4.1.2" @@ -3814,21 +3727,21 @@ fs-write-stream-atomic@^1.0.8: fs.realpath@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + resolved "https://registry.npm.taobao.org/fs.realpath/download/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= fsevents@^1.2.7: - version "1.2.9" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.9.tgz#3f5ed66583ccd6f400b5a00db6f7e861363e388f" - integrity sha512-oeyj2H3EjjonWcFjD5NvZNE9Rqe4UW+nQBU2HNeKw0koVLEFIhtyETyAakeAM3de7Z/SW5kcA+fZUait9EApnw== + version "1.2.11" + resolved "https://registry.npm.taobao.org/fsevents/download/fsevents-1.2.11.tgz#67bf57f4758f02ede88fb2a1712fef4d15358be3" + integrity sha1-Z79X9HWPAu3oj7KhcS/vTRU1i+M= dependencies: + bindings "^1.5.0" nan "^2.12.1" - node-pre-gyp "^0.12.0" fstream@^1.0.0, fstream@^1.0.12: version "1.0.12" - resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.12.tgz#4e8ba8ee2d48be4f7d0de505455548eae5932045" - integrity sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg== + resolved "https://registry.npm.taobao.org/fstream/download/fstream-1.0.12.tgz#4e8ba8ee2d48be4f7d0de505455548eae5932045" + integrity sha1-Touo7i1Ivk99DeUFRVVI6uWTIEU= dependencies: graceful-fs "^4.1.2" inherits "~2.0.0" @@ -3837,12 +3750,12 @@ fstream@^1.0.0, fstream@^1.0.12: function-bind@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + resolved "https://registry.npm.taobao.org/function-bind/download/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0= gauge@~2.7.3: version "2.7.4" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + resolved "https://registry.npm.taobao.org/gauge/download/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= dependencies: aproba "^1.0.3" @@ -3856,53 +3769,58 @@ gauge@~2.7.3: gaze@^1.0.0: version "1.1.3" - resolved "https://registry.yarnpkg.com/gaze/-/gaze-1.1.3.tgz#c441733e13b927ac8c0ff0b4c3b033f28812924a" - integrity sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g== + resolved "https://registry.npm.taobao.org/gaze/download/gaze-1.1.3.tgz#c441733e13b927ac8c0ff0b4c3b033f28812924a" + integrity sha1-xEFzPhO5J6yMD/C0w7Az8ogSkko= dependencies: globule "^1.0.0" +gensync@^1.0.0-beta.1: + version "1.0.0-beta.1" + resolved "https://registry.npm.taobao.org/gensync/download/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269" + integrity sha1-WPQ2H/mH5f9uHnohCCeqNx6qwmk= + get-assigned-identifiers@^1.1.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz#6dbf411de648cbaf8d9169ebb0d2d576191e2ff1" - integrity sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ== + resolved "https://registry.npm.taobao.org/get-assigned-identifiers/download/get-assigned-identifiers-1.2.0.tgz#6dbf411de648cbaf8d9169ebb0d2d576191e2ff1" + integrity sha1-bb9BHeZIy6+NkWnrsNLVdhkeL/E= get-caller-file@^1.0.1: version "1.0.3" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" - integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== + resolved "https://registry.npm.taobao.org/get-caller-file/download/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" + integrity sha1-+Xj6TJDR3+f/LWvtoqUV5xO9z0o= get-caller-file@^2.0.1: version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + resolved "https://registry.npm.taobao.org/get-caller-file/download/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha1-T5RBKoLbMvNuOwuXQfipf+sDH34= get-stdin@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" + resolved "https://registry.npm.taobao.org/get-stdin/download/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4= get-stream@^4.0.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + resolved "https://registry.npm.taobao.org/get-stream/download/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha1-wbJVV189wh1Zv8ec09K0axw6VLU= dependencies: pump "^3.0.0" get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + resolved "https://registry.npm.taobao.org/get-value/download/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= getpass@^0.1.1: version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + resolved "https://registry.npm.taobao.org/getpass/download/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= dependencies: assert-plus "^1.0.0" glob-parent@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + resolved "https://registry.npm.taobao.org/glob-parent/download/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= dependencies: is-glob "^3.1.0" @@ -3910,8 +3828,8 @@ glob-parent@^3.1.0: glob@^7.0.0, glob@^7.0.3, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@~7.1.1: version "7.1.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" - integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== + resolved "https://registry.npm.taobao.org/glob/download/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha1-FB8zuBp8JJLhJVlDB0gMRmeSeKY= dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" @@ -3922,15 +3840,15 @@ glob@^7.0.0, glob@^7.0.3, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, gl global-modules@2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" - integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== + resolved "https://registry.npm.taobao.org/global-modules/download/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" + integrity sha1-mXYFrSNF8n9RU5vqJldEISFcd4A= dependencies: global-prefix "^3.0.0" global-modules@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" - integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== + resolved "https://registry.npm.taobao.org/global-modules/download/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" + integrity sha1-bXcPDrUjrHgWTXK15xqIdyZcw+o= dependencies: global-prefix "^1.0.1" is-windows "^1.0.1" @@ -3938,7 +3856,7 @@ global-modules@^1.0.0: global-prefix@^1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" + resolved "https://registry.npm.taobao.org/global-prefix/download/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4= dependencies: expand-tilde "^2.0.2" @@ -3949,8 +3867,8 @@ global-prefix@^1.0.1: global-prefix@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" - integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== + resolved "https://registry.npm.taobao.org/global-prefix/download/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" + integrity sha1-/IX3MGTfafUEIfR/iD/luRO6m5c= dependencies: ini "^1.3.5" kind-of "^6.0.2" @@ -3958,12 +3876,12 @@ global-prefix@^3.0.0: globals@^11.1.0: version "11.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + resolved "https://registry.npm.taobao.org/globals/download/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha1-q4eVM4hooLq9hSV1gBjCp+uVxC4= globby@^6.1.0: version "6.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" + resolved "https://registry.npm.taobao.org/globby/download/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= dependencies: array-union "^1.0.1" @@ -3973,67 +3891,62 @@ globby@^6.1.0: pinkie-promise "^2.0.0" globule@^1.0.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/globule/-/globule-1.2.1.tgz#5dffb1b191f22d20797a9369b49eab4e9839696d" - integrity sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ== + version "1.3.0" + resolved "https://registry.npm.taobao.org/globule/download/globule-1.3.0.tgz#41d0e9fb44afd4b80d93a23263714f90b3dec904" + integrity sha1-QdDp+0Sv1LgNk6IyY3FPkLPeyQQ= dependencies: glob "~7.1.1" lodash "~4.17.10" minimatch "~3.0.2" -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.2.tgz#6f0952605d0140c1cfdb138ed005775b92d67b02" - integrity sha512-IItsdsea19BoLC7ELy13q1iJFNmd7ofZH5+X/pJr90/nRoPEX0DJo1dHDbgtYWOhJhcCgMDTOw84RZ72q6lB+Q== - -graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2: +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2: version "4.2.3" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" - integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ== + resolved "https://registry.npm.taobao.org/graceful-fs/download/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" + integrity sha1-ShL/G2A3bvCYYsIJPt2Qgyi+hCM= handle-thing@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.0.tgz#0e039695ff50c93fc288557d696f3c1dc6776754" - integrity sha512-d4sze1JNC454Wdo2fkuyzCr6aHcbL6PGGuFAz0Li/NcOm1tCHGnWDRmJP85dh9IhQErTc2svWFEX5xHIOo//kQ== + resolved "https://registry.npm.taobao.org/handle-thing/download/handle-thing-2.0.0.tgz#0e039695ff50c93fc288557d696f3c1dc6776754" + integrity sha1-DgOWlf9QyT/CiFV9aW88HcZ3Z1Q= har-schema@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + resolved "https://registry.npm.taobao.org/har-schema/download/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= har-validator@~5.1.0: version "5.1.3" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" - integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== + resolved "https://registry.npm.taobao.org/har-validator/download/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" + integrity sha1-HvievT5JllV2de7ZiTEQ3DUPoIA= dependencies: ajv "^6.5.5" har-schema "^2.0.0" has-ansi@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + resolved "https://registry.npm.taobao.org/has-ansi/download/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= dependencies: ansi-regex "^2.0.0" has-flag@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + resolved "https://registry.npm.taobao.org/has-flag/download/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= -has-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.0.tgz#ba1a8f1af2a0fc39650f5c850367704122063b44" - integrity sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q= +has-symbols@^1.0.0, has-symbols@^1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/has-symbols/download/has-symbols-1.0.1.tgz?cache=0&sync_timestamp=1573950719586&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-symbols%2Fdownload%2Fhas-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" + integrity sha1-n1IUdYpEGWxAbZvXbOv4HsLdMeg= has-unicode@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + resolved "https://registry.npm.taobao.org/has-unicode/download/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= has-value@^0.3.1: version "0.3.1" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + resolved "https://registry.npm.taobao.org/has-value/download/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= dependencies: get-value "^2.0.3" @@ -4042,7 +3955,7 @@ has-value@^0.3.1: has-value@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + resolved "https://registry.npm.taobao.org/has-value/download/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= dependencies: get-value "^2.0.6" @@ -4051,12 +3964,12 @@ has-value@^1.0.0: has-values@^0.1.4: version "0.1.4" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + resolved "https://registry.npm.taobao.org/has-values/download/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= has-values@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + resolved "https://registry.npm.taobao.org/has-values/download/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= dependencies: is-number "^3.0.0" @@ -4064,14 +3977,14 @@ has-values@^1.0.0: has@^1.0.0, has@^1.0.1, has@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + resolved "https://registry.npm.taobao.org/has/download/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y= dependencies: function-bind "^1.1.1" hash-base@^3.0.0: version "3.0.4" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" + resolved "https://registry.npm.taobao.org/hash-base/download/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" integrity sha1-X8hoaEfs1zSZQDMZprCj8/auSRg= dependencies: inherits "^2.0.1" @@ -4079,20 +3992,20 @@ hash-base@^3.0.0: hash.js@^1.0.0, hash.js@^1.0.3: version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== + resolved "https://registry.npm.taobao.org/hash.js/download/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + integrity sha1-C6vKU46NTuSg+JiNaIZlN6ADz0I= dependencies: inherits "^2.0.3" minimalistic-assert "^1.0.1" hex-color-regex@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" - integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== + resolved "https://registry.npm.taobao.org/hex-color-regex/download/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" + integrity sha1-TAb8y0YC/iYCs8k9+C1+fb8aio4= hmac-drbg@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + resolved "https://registry.npm.taobao.org/hmac-drbg/download/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= dependencies: hash.js "^1.0.3" @@ -4101,19 +4014,19 @@ hmac-drbg@^1.0.0: homedir-polyfill@^1.0.1: version "1.0.3" - resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" - integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== + resolved "https://registry.npm.taobao.org/homedir-polyfill/download/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" + integrity sha1-dDKYzvTlrz4ZQWH7rcwhUdOgWOg= dependencies: parse-passwd "^1.0.0" hosted-git-info@^2.1.4: - version "2.8.4" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.4.tgz#44119abaf4bc64692a16ace34700fed9c03e2546" - integrity sha512-pzXIvANXEFrc5oFFXRMkbLPQ2rXRoDERwDLyrcUxGhaZhgP54BBSl9Oheh7Vv0T090cszWBxPjkQQ5Sq1PbBRQ== + version "2.8.5" + resolved "https://registry.npm.taobao.org/hosted-git-info/download/hosted-git-info-2.8.5.tgz#759cfcf2c4d156ade59b0b2dfabddc42a6b9c70c" + integrity sha1-dZz88sTRVq3lmwst+r3cQqa5xww= hpack.js@^2.1.6: version "2.1.6" - resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" + resolved "https://registry.npm.taobao.org/hpack.js/download/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI= dependencies: inherits "^2.0.1" @@ -4123,33 +4036,33 @@ hpack.js@^2.1.6: hsl-regex@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" + resolved "https://registry.npm.taobao.org/hsl-regex/download/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4= hsla-regex@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" + resolved "https://registry.npm.taobao.org/hsla-regex/download/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= html-comment-regex@^1.1.0: version "1.1.2" - resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" - integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ== + resolved "https://registry.npm.taobao.org/html-comment-regex/download/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" + integrity sha1-l9RoiutcgYhqNk+qDK0d2hTUM6c= html-entities@^1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f" + resolved "https://registry.npm.taobao.org/html-entities/download/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f" integrity sha1-DfKTUfByEWNRXfueVUPl9u7VFi8= http-deceiver@^1.2.7: version "1.2.7" - resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" + resolved "https://registry.npm.taobao.org/http-deceiver/download/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= http-errors@1.7.2: version "1.7.2" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" - integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== + resolved "https://registry.npm.taobao.org/http-errors/download/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" + integrity sha1-T1ApzxMjnzEDblsuVSkrz7zIXI8= dependencies: depd "~1.1.2" inherits "2.0.3" @@ -4159,7 +4072,7 @@ http-errors@1.7.2: http-errors@~1.6.2: version "1.6.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + resolved "https://registry.npm.taobao.org/http-errors/download/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= dependencies: depd "~1.1.2" @@ -4169,8 +4082,8 @@ http-errors@~1.6.2: http-errors@~1.7.2: version "1.7.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" - integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== + resolved "https://registry.npm.taobao.org/http-errors/download/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" + integrity sha1-bGGeT5xgMIw4UZSYwU+7EKrOuwY= dependencies: depd "~1.1.2" inherits "2.0.4" @@ -4180,13 +4093,13 @@ http-errors@~1.7.2: "http-parser-js@>=0.4.0 <0.4.11": version "0.4.10" - resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.10.tgz#92c9c1374c35085f75db359ec56cc257cbb93fa4" + resolved "https://registry.npm.taobao.org/http-parser-js/download/http-parser-js-0.4.10.tgz#92c9c1374c35085f75db359ec56cc257cbb93fa4" integrity sha1-ksnBN0w1CF912zWexWzCV8u5P6Q= http-proxy-middleware@0.19.1: version "0.19.1" - resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" - integrity sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q== + resolved "https://registry.npm.taobao.org/http-proxy-middleware/download/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" + integrity sha1-GDx9xKoUeRUDBkmMIQza+WCApDo= dependencies: http-proxy "^1.17.0" is-glob "^4.0.0" @@ -4194,17 +4107,17 @@ http-proxy-middleware@0.19.1: micromatch "^3.1.10" http-proxy@^1.17.0: - version "1.17.0" - resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.17.0.tgz#7ad38494658f84605e2f6db4436df410f4e5be9a" - integrity sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g== + version "1.18.0" + resolved "https://registry.npm.taobao.org/http-proxy/download/http-proxy-1.18.0.tgz#dbe55f63e75a347db7f3d99974f2692a314a6a3a" + integrity sha1-2+VfY+daNH2389mZdPJpKjFKajo= dependencies: - eventemitter3 "^3.0.0" + eventemitter3 "^4.0.0" follow-redirects "^1.0.0" requires-port "^1.0.0" http-signature@~1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + resolved "https://registry.npm.taobao.org/http-signature/download/http-signature-1.2.0.tgz?cache=0&sync_timestamp=1572997300808&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-signature%2Fdownload%2Fhttp-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= dependencies: assert-plus "^1.0.0" @@ -4213,129 +4126,137 @@ http-signature@~1.2.0: https-browserify@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" + resolved "https://registry.npm.taobao.org/https-browserify/download/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= icheck-bootstrap@^3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/icheck-bootstrap/-/icheck-bootstrap-3.0.1.tgz#60c9c9a71524e1d9dd5bd05167a62fef05cc3a1b" - integrity sha512-Rj3SybdcMcayhsP4IJ+hmCNgCKclaFcs/5zwCuLXH1WMo468NegjhZVxbSNKhEjJjnwc4gKETogUmPYSQ9lEZQ== + resolved "https://registry.npm.taobao.org/icheck-bootstrap/download/icheck-bootstrap-3.0.1.tgz#60c9c9a71524e1d9dd5bd05167a62fef05cc3a1b" + integrity sha1-YMnJpxUk4dndW9BRZ6Yv7wXMOhs= iconv-lite@0.4.24, iconv-lite@^0.4.4: version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + resolved "https://registry.npm.taobao.org/iconv-lite/download/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha1-ICK0sl+93CHS9SSXSkdKr+czkIs= dependencies: safer-buffer ">= 2.1.2 < 3" iconv-lite@^0.5.0: version "0.5.0" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.5.0.tgz#59cdde0a2a297cc2aeb0c6445a195ee89f127550" - integrity sha512-NnEhI9hIEKHOzJ4f697DMz9IQEXr/MMJ5w64vN2/4Ai+wRnvV7SBrL0KLoRlwaKVghOc7LQ5YkPLuX146b6Ydw== + resolved "https://registry.npm.taobao.org/iconv-lite/download/iconv-lite-0.5.0.tgz#59cdde0a2a297cc2aeb0c6445a195ee89f127550" + integrity sha1-Wc3eCiopfMKusMZEWhle6J8SdVA= dependencies: safer-buffer ">= 2.1.2 < 3" icss-utils@^4.0.0, icss-utils@^4.1.1: version "4.1.1" - resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467" - integrity sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA== + resolved "https://registry.npm.taobao.org/icss-utils/download/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467" + integrity sha1-IRcLU3ie4nRHwvR91oMIFAP5pGc= dependencies: postcss "^7.0.14" ieee754@^1.1.4: version "1.1.13" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" - integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== + resolved "https://registry.npm.taobao.org/ieee754/download/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" + integrity sha1-7BaFWOlaoYH9h9N/VcMrvLZwi4Q= iferr@^0.1.5: version "0.1.5" - resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" + resolved "https://registry.npm.taobao.org/iferr/download/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= ignore-walk@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.2.tgz#99d83a246c196ea5c93ef9315ad7b0819c35069b" - integrity sha512-EXyErtpHbn75ZTsOADsfx6J/FPo6/5cjev46PXrcTpd8z3BoRkXgYu9/JVqrI7tusjmwCZutGeRJeU0Wo1e4Cw== + version "3.0.3" + resolved "https://registry.npm.taobao.org/ignore-walk/download/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37" + integrity sha1-AX4kRxhL/q3nwjjkrv3R6PlbHjc= dependencies: minimatch "^3.0.4" imagesloaded@^4.1.4: version "4.1.4" - resolved "https://registry.yarnpkg.com/imagesloaded/-/imagesloaded-4.1.4.tgz#1376efcd162bb768c34c3727ac89cc04051f3cc7" - integrity sha512-ltiBVcYpc/TYTF5nolkMNsnREHW+ICvfQ3Yla2Sgr71YFwQ86bDwV9hgpFhFtrGPuwEx5+LqOHIrdXBdoWwwsA== + resolved "https://registry.npm.taobao.org/imagesloaded/download/imagesloaded-4.1.4.tgz#1376efcd162bb768c34c3727ac89cc04051f3cc7" + integrity sha1-E3bvzRYrt2jDTDcnrInMBAUfPMc= dependencies: ev-emitter "^1.0.0" immediate@~3.0.5: version "3.0.6" - resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" + resolved "https://registry.npm.taobao.org/immediate/download/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" integrity sha1-nbHb0Pr43m++D13V5Wu2BigN5ps= import-cwd@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" + resolved "https://registry.npm.taobao.org/import-cwd/download/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" integrity sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk= dependencies: import-from "^2.1.0" import-fresh@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" + resolved "https://registry.npm.taobao.org/import-fresh/download/import-fresh-2.0.0.tgz?cache=0&sync_timestamp=1573665120798&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-fresh%2Fdownload%2Fimport-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= dependencies: caller-path "^2.0.0" resolve-from "^3.0.0" +import-fresh@^3.1.0: + version "3.2.1" + resolved "https://registry.npm.taobao.org/import-fresh/download/import-fresh-3.2.1.tgz?cache=0&sync_timestamp=1573665120798&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-fresh%2Fdownload%2Fimport-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" + integrity sha1-Yz/2GFBueTr1rJG/SLcmd+FcvmY= + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + import-from@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" + resolved "https://registry.npm.taobao.org/import-from/download/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" integrity sha1-M1238qev/VOqpHHUuAId7ja387E= dependencies: resolve-from "^3.0.0" import-local@2.0.0, import-local@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" - integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== + resolved "https://registry.npm.taobao.org/import-local/download/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" + integrity sha1-VQcL44pZk88Y72236WH1vuXFoJ0= dependencies: pkg-dir "^3.0.0" resolve-cwd "^2.0.0" imurmurhash@^0.1.4: version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + resolved "https://registry.npm.taobao.org/imurmurhash/download/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= in-publish@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/in-publish/-/in-publish-2.0.0.tgz#e20ff5e3a2afc2690320b6dc552682a9c7fadf51" + resolved "https://registry.npm.taobao.org/in-publish/download/in-publish-2.0.0.tgz#e20ff5e3a2afc2690320b6dc552682a9c7fadf51" integrity sha1-4g/146KvwmkDILbcVSaCqcf631E= indent-string@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" + resolved "https://registry.npm.taobao.org/indent-string/download/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" integrity sha1-ji1INIdCEhtKghi3oTfppSBJ3IA= dependencies: repeating "^2.0.0" indent-string@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" - integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + resolved "https://registry.npm.taobao.org/indent-string/download/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha1-Yk+PRJfWGbLZdoUx1Y9BIoVNclE= indexes-of@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" + resolved "https://registry.npm.taobao.org/indexes-of/download/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= infer-owner@^1.0.3, infer-owner@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" - integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== + resolved "https://registry.npm.taobao.org/infer-owner/download/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" + integrity sha1-xM78qo5RBRwqQLos6KPScpWvlGc= inflight@^1.0.4: version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + resolved "https://registry.npm.taobao.org/inflight/download/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= dependencies: once "^1.3.0" @@ -4343,145 +4264,143 @@ inflight@^1.0.4: inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + resolved "https://registry.npm.taobao.org/inherits/download/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w= inherits@2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + resolved "https://registry.npm.taobao.org/inherits/download/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= inherits@2.0.3: version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + resolved "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: version "1.3.5" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" - integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== + resolved "https://registry.npm.taobao.org/ini/download/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" + integrity sha1-7uJfVtscnsYIXgwid4CD9Zar+Sc= inputmask@^4.0.9: version "4.0.9" - resolved "https://registry.yarnpkg.com/inputmask/-/inputmask-4.0.9.tgz#a60fc46cee52a35a0ba5f50b5cca3a6733ece18c" - integrity sha512-EodaYhJKncXRBwvCE8YrRmAFmBJ6bWdgX4Qw8QSnK5GBDXE03jgpJhrS+a2N0v2Zsgp+OjKXy7qACktjYD83Uw== + resolved "https://registry.npm.taobao.org/inputmask/download/inputmask-4.0.9.tgz#a60fc46cee52a35a0ba5f50b5cca3a6733ece18c" + integrity sha1-pg/EbO5So1oLpfULXMo6ZzPs4Yw= internal-ip@^4.3.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" - integrity sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg== + resolved "https://registry.npm.taobao.org/internal-ip/download/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" + integrity sha1-hFRSuq2dLKO2nGNaE3rLmg2tCQc= dependencies: default-gateway "^4.2.0" ipaddr.js "^1.9.0" interpret@1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296" - integrity sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw== + resolved "https://registry.npm.taobao.org/interpret/download/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296" + integrity sha1-1QYaYiS+WOgIOYX1AU2EQ1lXYpY= -invariant@^2.2.2: +invariant@^2.2.2, invariant@^2.2.4: version "2.2.4" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" - integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== + resolved "https://registry.npm.taobao.org/invariant/download/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + integrity sha1-YQ88ksk1nOHbYW5TgAjSP/NRWOY= dependencies: loose-envify "^1.0.0" invert-kv@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" + resolved "https://registry.npm.taobao.org/invert-kv/download/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY= invert-kv@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" - integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== + resolved "https://registry.npm.taobao.org/invert-kv/download/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" + integrity sha1-c5P1r6Weyf9fZ6J2INEcIm4+7AI= ion-rangeslider@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/ion-rangeslider/-/ion-rangeslider-2.3.0.tgz#7957ce2e78acfc956b8c43009373da91f743347e" - integrity sha512-7TtH9/X4Aq/xCzboWxjwlv20gVqR90Ysc3aehMlTuH2/ULaSxpB80hq+yvD1N0FwWbPDtxQpjQrz/iX+LWXKmg== - dependencies: - jquery ">=1.8" + version "2.3.1" + resolved "https://registry.npm.taobao.org/ion-rangeslider/download/ion-rangeslider-2.3.1.tgz#92ade52cb56fc30b9162d0483ff02b6f9ed237c2" + integrity sha1-kq3lLLVvwwuRYtBIP/Arb57SN8I= ip-regex@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" + resolved "https://registry.npm.taobao.org/ip-regex/download/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= ip@^1.1.0, ip@^1.1.5: version "1.1.5" - resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" + resolved "https://registry.npm.taobao.org/ip/download/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= ipaddr.js@1.9.0: version "1.9.0" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.0.tgz#37df74e430a0e47550fe54a2defe30d8acd95f65" - integrity sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA== + resolved "https://registry.npm.taobao.org/ipaddr.js/download/ipaddr.js-1.9.0.tgz#37df74e430a0e47550fe54a2defe30d8acd95f65" + integrity sha1-N9905DCg5HVQ/lSi3v4w2KzZX2U= ipaddr.js@^1.9.0: version "1.9.1" - resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" - integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + resolved "https://registry.npm.taobao.org/ipaddr.js/download/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha1-v/OFQ+64mEglB5/zoqjmy9RngbM= is-absolute-url@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" + resolved "https://registry.npm.taobao.org/is-absolute-url/download/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= is-absolute-url@^3.0.3: version "3.0.3" - resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" - integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== + resolved "https://registry.npm.taobao.org/is-absolute-url/download/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" + integrity sha1-lsaiK2ojkpsR6gr7GDbDatSl1pg= is-accessor-descriptor@^0.1.6: version "0.1.6" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + resolved "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= dependencies: kind-of "^3.0.2" is-accessor-descriptor@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" - integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== + resolved "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + integrity sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY= dependencies: kind-of "^6.0.0" is-arguments@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3" - integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA== + resolved "https://registry.npm.taobao.org/is-arguments/download/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3" + integrity sha1-P6+WbHy6D/Q3+zH2JQCC/PBEjPM= is-arrayish@^0.2.1: version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + resolved "https://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= is-arrayish@^0.3.1: version "0.3.2" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" - integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== + resolved "https://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + integrity sha1-RXSirlb3qyBolvtDHq7tBm/fjwM= is-binary-path@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + resolved "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= dependencies: binary-extensions "^1.0.0" is-buffer@^1.1.5: version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + resolved "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha1-76ouqdqg16suoTqXsritUf776L4= -is-callable@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.4.tgz#1e1adf219e1eeb684d691f9d6a05ff0d30a24d75" - integrity sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA== +is-callable@^1.1.4, is-callable@^1.1.5: + version "1.1.5" + resolved "https://registry.npm.taobao.org/is-callable/download/is-callable-1.1.5.tgz#f7e46b596890456db74e7f6e976cb3273d06faab" + integrity sha1-9+RrWWiQRW23Tn9ul2yzJz0G+qs= is-color-stop@^1.0.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" + resolved "https://registry.npm.taobao.org/is-color-stop/download/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U= dependencies: css-color-names "^0.0.4" @@ -4493,27 +4412,27 @@ is-color-stop@^1.0.0: is-data-descriptor@^0.1.4: version "0.1.4" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + resolved "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= dependencies: kind-of "^3.0.2" is-data-descriptor@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" - integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== + resolved "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + integrity sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc= dependencies: kind-of "^6.0.0" is-date-object@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" - integrity sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY= + version "1.0.2" + resolved "https://registry.npm.taobao.org/is-date-object/download/is-date-object-1.0.2.tgz?cache=0&sync_timestamp=1576729182289&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-date-object%2Fdownload%2Fis-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" + integrity sha1-vac28s2P0G0yhE53Q7+nSUw7/X4= is-descriptor@^0.1.0: version "0.1.6" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" - integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== + resolved "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + integrity sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco= dependencies: is-accessor-descriptor "^0.1.6" is-data-descriptor "^0.1.4" @@ -4521,8 +4440,8 @@ is-descriptor@^0.1.0: is-descriptor@^1.0.0, is-descriptor@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" - integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== + resolved "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + integrity sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw= dependencies: is-accessor-descriptor "^1.0.0" is-data-descriptor "^1.0.0" @@ -4530,202 +4449,202 @@ is-descriptor@^1.0.0, is-descriptor@^1.0.2: is-directory@^0.3.1: version "0.3.1" - resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" + resolved "https://registry.npm.taobao.org/is-directory/download/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= is-extendable@^0.1.0, is-extendable@^0.1.1: version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + resolved "https://registry.npm.taobao.org/is-extendable/download/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= is-extendable@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== + resolved "https://registry.npm.taobao.org/is-extendable/download/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + integrity sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ= dependencies: is-plain-object "^2.0.4" is-extglob@^2.1.0, is-extglob@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + resolved "https://registry.npm.taobao.org/is-extglob/download/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= is-finite@^1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" + resolved "https://registry.npm.taobao.org/is-finite/download/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" integrity sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko= dependencies: number-is-nan "^1.0.0" is-fullwidth-code-point@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + resolved "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= dependencies: number-is-nan "^1.0.0" is-fullwidth-code-point@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + resolved "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= is-glob@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + resolved "https://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= dependencies: is-extglob "^2.1.0" is-glob@^4.0.0: version "4.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" - integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== + resolved "https://registry.npm.taobao.org/is-glob/download/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + integrity sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw= dependencies: is-extglob "^2.1.1" is-number@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + resolved "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= dependencies: kind-of "^3.0.2" is-obj@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + resolved "https://registry.npm.taobao.org/is-obj/download/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= is-path-cwd@^2.0.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" - integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== + resolved "https://registry.npm.taobao.org/is-path-cwd/download/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" + integrity sha1-Z9Q7gmZKe1GR/ZEZEn6zAASKn9s= is-path-in-cwd@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb" - integrity sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ== + resolved "https://registry.npm.taobao.org/is-path-in-cwd/download/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb" + integrity sha1-v+Lcomxp85cmWkAJljYCk1oFOss= dependencies: is-path-inside "^2.1.0" is-path-inside@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2" - integrity sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg== + resolved "https://registry.npm.taobao.org/is-path-inside/download/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2" + integrity sha1-fJgQWH1lmkDSe8201WFuqwWUlLI= dependencies: path-is-inside "^1.0.2" is-plain-obj@^1.0.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + resolved "https://registry.npm.taobao.org/is-plain-obj/download/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + resolved "https://registry.npm.taobao.org/is-plain-object/download/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc= dependencies: isobject "^3.0.1" -is-regex@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" - integrity sha1-VRdIm1RwkbCTDglWVM7SXul+lJE= +is-regex@^1.0.4, is-regex@^1.0.5: + version "1.0.5" + resolved "https://registry.npm.taobao.org/is-regex/download/is-regex-1.0.5.tgz#39d589a358bf18967f726967120b8fc1aed74eae" + integrity sha1-OdWJo1i/GJZ/cmlnEguPwa7XTq4= dependencies: - has "^1.0.1" + has "^1.0.3" is-resolvable@^1.0.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" - integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== + resolved "https://registry.npm.taobao.org/is-resolvable/download/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" + integrity sha1-+xj4fOH+uSUWnJpAfBkxijIG7Yg= is-stream@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + resolved "https://registry.npm.taobao.org/is-stream/download/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= is-svg@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-3.0.0.tgz#9321dbd29c212e5ca99c4fa9794c714bcafa2f75" - integrity sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ== + resolved "https://registry.npm.taobao.org/is-svg/download/is-svg-3.0.0.tgz#9321dbd29c212e5ca99c4fa9794c714bcafa2f75" + integrity sha1-kyHb0pwhLlypnE+peUxxS8r6L3U= dependencies: html-comment-regex "^1.1.0" is-symbol@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.2.tgz#a055f6ae57192caee329e7a860118b497a950f38" - integrity sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw== + version "1.0.3" + resolved "https://registry.npm.taobao.org/is-symbol/download/is-symbol-1.0.3.tgz?cache=0&sync_timestamp=1574296409833&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-symbol%2Fdownload%2Fis-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" + integrity sha1-OOEBS55jKb4N6dJKQU/XRB7GGTc= dependencies: - has-symbols "^1.0.0" + has-symbols "^1.0.1" is-typedarray@~1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + resolved "https://registry.npm.taobao.org/is-typedarray/download/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= is-utf8@^0.2.0: version "0.2.1" - resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + resolved "https://registry.npm.taobao.org/is-utf8/download/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= is-windows@^1.0.1, is-windows@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + resolved "https://registry.npm.taobao.org/is-windows/download/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0= is-wsl@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" + resolved "https://registry.npm.taobao.org/is-wsl/download/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= isarray@0.0.1: version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + resolved "https://registry.npm.taobao.org/isarray/download/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + resolved "https://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= isexe@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + resolved "https://registry.npm.taobao.org/isexe/download/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= isobject@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + resolved "https://registry.npm.taobao.org/isobject/download/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= dependencies: isarray "1.0.0" isobject@^3.0.0, isobject@^3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + resolved "https://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= isstream@~0.1.2: version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + resolved "https://registry.npm.taobao.org/isstream/download/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= jest-worker@^24.9.0: version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5" - integrity sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw== + resolved "https://registry.npm.taobao.org/jest-worker/download/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5" + integrity sha1-Xb/bWy0yLphWeJgjipaXvM5ns+U= dependencies: merge-stream "^2.0.0" supports-color "^6.1.0" jquery-knob-chif@^1.2.13: version "1.2.13" - resolved "https://registry.yarnpkg.com/jquery-knob-chif/-/jquery-knob-chif-1.2.13.tgz#5f1e462ef3745d27a9fd66ce1141fe82b44a5762" + resolved "https://registry.npm.taobao.org/jquery-knob-chif/download/jquery-knob-chif-1.2.13.tgz#5f1e462ef3745d27a9fd66ce1141fe82b44a5762" integrity sha1-Xx5GLvN0XSep/WbOEUH+grRKV2I= jquery-mapael@^2.2.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/jquery-mapael/-/jquery-mapael-2.2.0.tgz#a68850c680ef0ce3f8b865e8a48b2a018250ca73" - integrity sha512-B5cVcCkfs7Ezia1Zs8bEfVacYD/GvaASyqQeidApR/NJ1C4igcExk9VULVsgLcTPkxohcZrrz5uCaPXvuKeZWw== + resolved "https://registry.npm.taobao.org/jquery-mapael/download/jquery-mapael-2.2.0.tgz#a68850c680ef0ce3f8b865e8a48b2a018250ca73" + integrity sha1-pohQxoDvDOP4uGXopIsqAYJQynM= dependencies: jquery "^3.0 || ^2.0 || ^1.0" raphael "^2.2.0 || ^2.1.1" @@ -4734,123 +4653,118 @@ jquery-mapael@^2.2.0: jquery-mousewheel@^3.1, jquery-mousewheel@^3.1.13: version "3.1.13" - resolved "https://registry.yarnpkg.com/jquery-mousewheel/-/jquery-mousewheel-3.1.13.tgz#06f0335f16e353a695e7206bf50503cb523a6ee5" + resolved "https://registry.npm.taobao.org/jquery-mousewheel/download/jquery-mousewheel-3.1.13.tgz#06f0335f16e353a695e7206bf50503cb523a6ee5" integrity sha1-BvAzXxbjU6aV5yBr9QUDy1I6buU= jquery-ui-dist@^1.12.1: version "1.12.1" - resolved "https://registry.yarnpkg.com/jquery-ui-dist/-/jquery-ui-dist-1.12.1.tgz#5c0815d3cc6f90ff5faaf5b268a6e23b4ca904fa" + resolved "https://registry.npm.taobao.org/jquery-ui-dist/download/jquery-ui-dist-1.12.1.tgz#5c0815d3cc6f90ff5faaf5b268a6e23b4ca904fa" integrity sha1-XAgV08xvkP9fqvWyaKbiO0ypBPo= jquery-validation@^1.19.1: version "1.19.1" - resolved "https://registry.yarnpkg.com/jquery-validation/-/jquery-validation-1.19.1.tgz#a85043467dc2b70d9fff05778646d150e747742f" - integrity sha512-QNnrZBqSltWUEJx+shOY5WtfrIb0gWmDjFfQP8rZKqMMSfpRSwEkSqhfHPvDfkObD8Hnv5KHSYI8yg73sVFdqA== + resolved "https://registry.npm.taobao.org/jquery-validation/download/jquery-validation-1.19.1.tgz#a85043467dc2b70d9fff05778646d150e747742f" + integrity sha1-qFBDRn3Ctw2f/wV3hkbRUOdHdC8= -jquery@>=1.10, jquery@>=1.12.0, jquery@>=1.7, jquery@>=1.8, jquery@>=2.1.0, jquery@^3.0, "jquery@^3.0 || ^2.0 || ^1.0", jquery@^3.4.0, jquery@^3.4.1: +jquery@>=1.10, jquery@>=1.12.0, jquery@>=1.7, jquery@>=2.1.0, jquery@^3.0, "jquery@^3.0 || ^2.0 || ^1.0", jquery@^3.4.0, jquery@^3.4.1: version "3.4.1" - resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.4.1.tgz#714f1f8d9dde4bdfa55764ba37ef214630d80ef2" - integrity sha512-36+AdBzCL+y6qjw5Tx7HgzeGCzC81MDDgaUP8ld2zhx58HdqXGoBd+tHdrBMiyjGQs0Hxs/MLZTu/eHNJJuWPw== + resolved "https://registry.npm.taobao.org/jquery/download/jquery-3.4.1.tgz#714f1f8d9dde4bdfa55764ba37ef214630d80ef2" + integrity sha1-cU8fjZ3eS9+lV2S6N+8hRjDYDvI= jqvmap-novulnerability@^1.5.1: version "1.5.1" - resolved "https://registry.yarnpkg.com/jqvmap-novulnerability/-/jqvmap-novulnerability-1.5.1.tgz#140c42623ebbe9b9076ea2dd3b8d155fe9f38ae7" - integrity sha512-O6Jr7AGiut9iNJMelPdy8pH83tNXadOqmhJm5FZy9gtaZ5uuhZK3VNu+YLFuTpXeZI8YXUvlFUYbJJi5XHA+tw== + resolved "https://registry.npm.taobao.org/jqvmap-novulnerability/download/jqvmap-novulnerability-1.5.1.tgz#140c42623ebbe9b9076ea2dd3b8d155fe9f38ae7" + integrity sha1-FAxCYj676bkHbqLdO40VX+nziuc= dependencies: jquery "^3.4.0" js-base64@^2.1.8: version "2.5.1" - resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.5.1.tgz#1efa39ef2c5f7980bb1784ade4a8af2de3291121" - integrity sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw== - -js-levenshtein@^1.1.3: - version "1.1.6" - resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.6.tgz#c6cee58eb3550372df8deb85fad5ce66ce01d59d" - integrity sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g== + resolved "https://registry.npm.taobao.org/js-base64/download/js-base64-2.5.1.tgz#1efa39ef2c5f7980bb1784ade4a8af2de3291121" + integrity sha1-Hvo57yxfeYC7F4St5KivLeMpESE= "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + resolved "https://registry.npm.taobao.org/js-tokens/download/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha1-GSA/tZmR35jjoocFDUZHzerzJJk= js-yaml@^3.13.1: version "3.13.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" - integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== + resolved "https://registry.npm.taobao.org/js-yaml/download/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" + integrity sha1-r/FRswv9+o5J4F2iLnQV6d+jeEc= dependencies: argparse "^1.0.7" esprima "^4.0.0" jsbn@~0.1.0: version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + resolved "https://registry.npm.taobao.org/jsbn/download/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= jsesc@^2.5.1: version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + resolved "https://registry.npm.taobao.org/jsesc/download/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha1-gFZNLkg9rPbo7yCWUKZ98/DCg6Q= jsesc@~0.5.0: version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + resolved "https://registry.npm.taobao.org/jsesc/download/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= jsgrid@^1.5.3: version "1.5.3" - resolved "https://registry.yarnpkg.com/jsgrid/-/jsgrid-1.5.3.tgz#b15fc426483153bee2b6b567312f675d92834a0d" + resolved "https://registry.npm.taobao.org/jsgrid/download/jsgrid-1.5.3.tgz#b15fc426483153bee2b6b567312f675d92834a0d" integrity sha1-sV/EJkgxU77itrVnMS9nXZKDSg0= json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" - integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + resolved "https://registry.npm.taobao.org/json-parse-better-errors/download/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha1-u4Z8+zRQ5pEHwTHRxRS6s9yLyqk= json-schema-traverse@^0.4.1: version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + resolved "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha1-afaofZUTq4u4/mO9sJecRI5oRmA= json-schema@0.2.3: version "0.2.3" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + resolved "https://registry.npm.taobao.org/json-schema/download/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= json-stringify-safe@~5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + resolved "https://registry.npm.taobao.org/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= json3@^3.3.2: version "3.3.3" - resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" - integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== + resolved "https://registry.npm.taobao.org/json3/download/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" + integrity sha1-f8EON1/FrkLEcFpcwKpvYr4wW4E= json5@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" - integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + resolved "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" + integrity sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4= dependencies: minimist "^1.2.0" json5@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.0.tgz#e7a0c62c48285c628d20a10b85c89bb807c32850" - integrity sha512-8Mh9h6xViijj36g7Dxi+Y4S6hNGV96vcJZr/SrlHh1LR/pEn/8j/+qIBbs44YKl69Lrfctp4QD+AdWLTMqEZAQ== + version "2.1.1" + resolved "https://registry.npm.taobao.org/json5/download/json5-2.1.1.tgz#81b6cb04e9ba496f1c7005d07b4368a2638f90b6" + integrity sha1-gbbLBOm6SW8ccAXQe0NoomOPkLY= dependencies: minimist "^1.2.0" jsonfile@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + resolved "https://registry.npm.taobao.org/jsonfile/download/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= optionalDependencies: graceful-fs "^4.1.6" jsprim@^1.2.2: version "1.4.1" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + resolved "https://registry.npm.taobao.org/jsprim/download/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= dependencies: assert-plus "1.0.0" @@ -4860,8 +4774,8 @@ jsprim@^1.2.2: jszip@^3.2.2: version "3.2.2" - resolved "https://registry.yarnpkg.com/jszip/-/jszip-3.2.2.tgz#b143816df7e106a9597a94c77493385adca5bd1d" - integrity sha512-NmKajvAFQpbg3taXQXr/ccS2wcucR1AZ+NtyWp2Nq7HHVsXhcJFR8p0Baf32C2yVvBylFWVeKf+WI2AnvlPhpA== + resolved "https://registry.npm.taobao.org/jszip/download/jszip-3.2.2.tgz#b143816df7e106a9597a94c77493385adca5bd1d" + integrity sha1-sUOBbffhBqlZepTHdJM4WtylvR0= dependencies: lie "~3.3.0" pako "~1.0.2" @@ -4870,58 +4784,70 @@ jszip@^3.2.2: killable@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" - integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg== + resolved "https://registry.npm.taobao.org/killable/download/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" + integrity sha1-TIzkQRh6Bhx0dPuHygjipjgZSJI= kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + resolved "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= dependencies: is-buffer "^1.1.5" kind-of@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + resolved "https://registry.npm.taobao.org/kind-of/download/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= dependencies: is-buffer "^1.1.5" kind-of@^5.0.0: version "5.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" - integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== + resolved "https://registry.npm.taobao.org/kind-of/download/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + integrity sha1-cpyR4thXt6QZofmqZWhcTDP1hF0= kind-of@^6.0.0, kind-of@^6.0.2: version "6.0.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" - integrity sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA== + resolved "https://registry.npm.taobao.org/kind-of/download/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" + integrity sha1-ARRrNqYhjmTljzqNZt5df8b20FE= last-call-webpack-plugin@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz#9742df0e10e3cf46e5c0381c2de90d3a7a2d7555" - integrity sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w== + resolved "https://registry.npm.taobao.org/last-call-webpack-plugin/download/last-call-webpack-plugin-3.0.0.tgz#9742df0e10e3cf46e5c0381c2de90d3a7a2d7555" + integrity sha1-l0LfDhDjz0blwDgcLekNOnotdVU= dependencies: lodash "^4.17.5" webpack-sources "^1.1.0" lcid@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" + resolved "https://registry.npm.taobao.org/lcid/download/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU= dependencies: invert-kv "^1.0.0" lcid@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" - integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA== + resolved "https://registry.npm.taobao.org/lcid/download/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" + integrity sha1-bvXS32DlL4LrIopMNz6NHzlyU88= dependencies: invert-kv "^2.0.0" +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.npm.taobao.org/leven/download/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha1-d4kd6DQGTMy6gq54QrtrFKE+1/I= + +levenary@^1.1.0: + version "1.1.0" + resolved "https://registry.npm.taobao.org/levenary/download/levenary-1.1.0.tgz?cache=0&sync_timestamp=1578793882801&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flevenary%2Fdownload%2Flevenary-1.1.0.tgz#fc146fe75f32dc483a0a2c64aef720f602cd6210" + integrity sha1-/BRv518y3Eg6Cixkrvcg9gLNYhA= + dependencies: + leven "^3.1.0" + levn@~0.3.0: version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + resolved "https://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= dependencies: prelude-ls "~1.1.2" @@ -4929,32 +4855,28 @@ levn@~0.3.0: lie@~3.3.0: version "3.3.0" - resolved "https://registry.yarnpkg.com/lie/-/lie-3.3.0.tgz#dcf82dee545f46074daf200c7c1c5a08e0f40f6a" - integrity sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ== + resolved "https://registry.npm.taobao.org/lie/download/lie-3.3.0.tgz#dcf82dee545f46074daf200c7c1c5a08e0f40f6a" + integrity sha1-3Pgt7lRfRgdNryAMfBxaCOD0D2o= dependencies: immediate "~3.0.5" -linebreak@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/linebreak/-/linebreak-0.3.0.tgz#0526480a62c05bd679f3e9d99830e09c6a7d0ed6" - integrity sha1-BSZICmLAW9Z58+nZmDDgnGp9DtY= - dependencies: - base64-js "0.0.8" - brfs "^1.3.0" - unicode-trie "^0.3.0" - linebreak@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/linebreak/-/linebreak-1.0.2.tgz#4b5781733e9a9eb2849dba2f963e47c887f8aa06" - integrity sha512-bJwSRsJeAmaZYnkcwl5sCQNfSDAhBuXxb6L27tb+qkBRtUQSSTUa5bcgCPD6hFEkRNlpWHfK7nFMmcANU7ZP1w== + resolved "https://registry.npm.taobao.org/linebreak/download/linebreak-1.0.2.tgz#4b5781733e9a9eb2849dba2f963e47c887f8aa06" + integrity sha1-S1eBcz6anrKEnbovlj5HyIf4qgY= dependencies: base64-js "0.0.8" brfs "^2.0.2" unicode-trie "^1.0.0" +lines-and-columns@^1.1.6: + version "1.1.6" + resolved "https://registry.npm.taobao.org/lines-and-columns/download/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" + integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= + load-json-file@^1.0.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" + resolved "https://registry.npm.taobao.org/load-json-file/download/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA= dependencies: graceful-fs "^4.1.2" @@ -4965,13 +4887,13 @@ load-json-file@^1.0.0: loader-runner@^2.4.0: version "2.4.0" - resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" - integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== + resolved "https://registry.npm.taobao.org/loader-runner/download/loader-runner-2.4.0.tgz?cache=0&sync_timestamp=1574712098491&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-runner%2Fdownload%2Floader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" + integrity sha1-7UcGa/5TTX6ExMe5mYwqdWB9k1c= loader-utils@1.2.3, loader-utils@^1.0.1, loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3: version "1.2.3" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" - integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== + resolved "https://registry.npm.taobao.org/loader-utils/download/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" + integrity sha1-H/XcaRHJ8KBiUxpMBLYJQGEIwsc= dependencies: big.js "^5.2.2" emojis-list "^2.0.0" @@ -4979,84 +4901,84 @@ loader-utils@1.2.3, loader-utils@^1.0.1, loader-utils@^1.0.2, loader-utils@^1.1. locate-path@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" - integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + resolved "https://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4= dependencies: p-locate "^3.0.0" path-exists "^3.0.0" locate-path@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" - integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + resolved "https://registry.npm.taobao.org/locate-path/download/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha1-Gvujlq/WdqbUJQTQpno6frn2KqA= dependencies: p-locate "^4.1.0" lodash._reinterpolate@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" + resolved "https://registry.npm.taobao.org/lodash._reinterpolate/download/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= lodash.defaults@^4.2.0: version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" + resolved "https://registry.npm.taobao.org/lodash.defaults/download/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" integrity sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw= lodash.get@^4.0: version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + resolved "https://registry.npm.taobao.org/lodash.get/download/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= lodash.has@^4.0: version "4.5.2" - resolved "https://registry.yarnpkg.com/lodash.has/-/lodash.has-4.5.2.tgz#d19f4dc1095058cccbe2b0cdf4ee0fe4aa37c862" + resolved "https://registry.npm.taobao.org/lodash.has/download/lodash.has-4.5.2.tgz#d19f4dc1095058cccbe2b0cdf4ee0fe4aa37c862" integrity sha1-0Z9NwQlQWMzL4rDN9O4P5Ko3yGI= lodash.memoize@^4.1.2: version "4.1.2" - resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + resolved "https://registry.npm.taobao.org/lodash.memoize/download/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= lodash.template@^4.5.0: version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab" - integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A== + resolved "https://registry.npm.taobao.org/lodash.template/download/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab" + integrity sha1-+XYZXPPzR9DV9SSDVp/oAxzM6Ks= dependencies: lodash._reinterpolate "^3.0.0" lodash.templatesettings "^4.0.0" lodash.templatesettings@^4.0.0: version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33" - integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ== + resolved "https://registry.npm.taobao.org/lodash.templatesettings/download/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33" + integrity sha1-5IExDwSdPPbUfpEq0JMTsVTw+zM= dependencies: lodash._reinterpolate "^3.0.0" lodash.uniq@^4.5.0: version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + resolved "https://registry.npm.taobao.org/lodash.uniq/download/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= lodash@^4.0.0, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.5, lodash@~4.17.10: version "4.17.15" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" - integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== + resolved "https://registry.npm.taobao.org/lodash/download/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" + integrity sha1-tEf2ZwoEVbv+7dETku/zMOoJdUg= loglevel@^1.6.6: version "1.6.6" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.6.tgz#0ee6300cc058db6b3551fa1c4bf73b83bb771312" - integrity sha512-Sgr5lbboAUBo3eXCSPL4/KoVz3ROKquOjcctxmHIt+vol2DrqTQe3SwkKKuYhEiWB5kYa13YyopJ69deJ1irzQ== + resolved "https://registry.npm.taobao.org/loglevel/download/loglevel-1.6.6.tgz?cache=0&sync_timestamp=1573148697652&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floglevel%2Fdownload%2Floglevel-1.6.6.tgz#0ee6300cc058db6b3551fa1c4bf73b83bb771312" + integrity sha1-DuYwDMBY22s1UfocS/c7g7t3ExI= loose-envify@^1.0.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + resolved "https://registry.npm.taobao.org/loose-envify/download/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha1-ce5R+nvkyuwaY4OffmgtgTLTDK8= dependencies: js-tokens "^3.0.0 || ^4.0.0" loud-rejection@^1.0.0: version "1.6.0" - resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" + resolved "https://registry.npm.taobao.org/loud-rejection/download/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8= dependencies: currently-unhandled "^0.4.1" @@ -5064,74 +4986,74 @@ loud-rejection@^1.0.0: lru-cache@^4.0.1: version "4.1.5" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" - integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== + resolved "https://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + integrity sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80= dependencies: pseudomap "^1.0.2" yallist "^2.1.2" lru-cache@^5.1.1: version "5.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" - integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + resolved "https://registry.npm.taobao.org/lru-cache/download/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha1-HaJ+ZxAnGUdpXa9oSOhH8B2EuSA= dependencies: yallist "^3.0.2" magic-string@^0.22.4: version "0.22.5" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.22.5.tgz#8e9cf5afddf44385c1da5bc2a6a0dbd10b03657e" - integrity sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w== + resolved "https://registry.npm.taobao.org/magic-string/download/magic-string-0.22.5.tgz#8e9cf5afddf44385c1da5bc2a6a0dbd10b03657e" + integrity sha1-jpz1r930Q4XB2lvCpqDb0QsDZX4= dependencies: vlq "^0.2.2" make-dir@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" - integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== + resolved "https://registry.npm.taobao.org/make-dir/download/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" + integrity sha1-XwMQ4YuL6JjMBwCSlaMK5B6R5vU= dependencies: pify "^4.0.1" semver "^5.6.0" make-dir@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.0.0.tgz#1b5f39f6b9270ed33f9f054c5c0f84304989f801" - integrity sha512-grNJDhb8b1Jm1qeqW5R/O63wUo4UXo2v2HMic6YT9i/HBlF93S8jkMgH7yugvY9ABDShH4VZMn8I+U8+fCNegw== + resolved "https://registry.npm.taobao.org/make-dir/download/make-dir-3.0.0.tgz#1b5f39f6b9270ed33f9f054c5c0f84304989f801" + integrity sha1-G1859rknDtM/nwVMXA+EMEmJ+AE= dependencies: semver "^6.0.0" mamacro@^0.0.3: version "0.0.3" - resolved "https://registry.yarnpkg.com/mamacro/-/mamacro-0.0.3.tgz#ad2c9576197c9f1abf308d0787865bd975a3f3e4" - integrity sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA== + resolved "https://registry.npm.taobao.org/mamacro/download/mamacro-0.0.3.tgz#ad2c9576197c9f1abf308d0787865bd975a3f3e4" + integrity sha1-rSyVdhl8nxq/MI0Hh4Zb2XWj8+Q= map-age-cleaner@^0.1.1: version "0.1.3" - resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" - integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== + resolved "https://registry.npm.taobao.org/map-age-cleaner/download/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" + integrity sha1-fVg6cwZDTAVf5HSw9FB45uG0uSo= dependencies: p-defer "^1.0.0" map-cache@^0.2.2: version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + resolved "https://registry.npm.taobao.org/map-cache/download/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= map-obj@^1.0.0, map-obj@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + resolved "https://registry.npm.taobao.org/map-obj/download/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= map-visit@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + resolved "https://registry.npm.taobao.org/map-visit/download/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= dependencies: object-visit "^1.0.0" md5.js@^1.3.4: version "1.3.5" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" - integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== + resolved "https://registry.npm.taobao.org/md5.js/download/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + integrity sha1-tdB7jjIW4+J81yjXL3DR5qNCAF8= dependencies: hash-base "^3.0.0" inherits "^2.0.1" @@ -5139,23 +5061,18 @@ md5.js@^1.3.4: mdn-data@2.0.4: version "2.0.4" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" - integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== - -mdn-data@~1.1.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-1.1.4.tgz#50b5d4ffc4575276573c4eedb8780812a8419f01" - integrity sha512-FSYbp3lyKjyj3E7fMl6rYvUdX0FBXaluGqlFoYESWQlyUTq8R+wp0rkFxoYFqZlHCvsUXGjyJmLQSnXToYhOSA== + resolved "https://registry.npm.taobao.org/mdn-data/download/mdn-data-2.0.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmdn-data%2Fdownload%2Fmdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" + integrity sha1-aZs8OKxvHXKAkaZGULZdOIUC/Vs= media-typer@0.3.0: version "0.3.0" - resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + resolved "https://registry.npm.taobao.org/media-typer/download/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= mem@^4.0.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178" - integrity sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w== + resolved "https://registry.npm.taobao.org/mem/download/mem-4.3.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmem%2Fdownload%2Fmem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178" + integrity sha1-Rhr0l7xK4JYIzbLmDu+2m/90QXg= dependencies: map-age-cleaner "^0.1.1" mimic-fn "^2.0.0" @@ -5163,15 +5080,23 @@ mem@^4.0.0: memory-fs@^0.4.0, memory-fs@^0.4.1: version "0.4.1" - resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" + resolved "https://registry.npm.taobao.org/memory-fs/download/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= dependencies: errno "^0.1.3" readable-stream "^2.0.1" +memory-fs@^0.5.0: + version "0.5.0" + resolved "https://registry.npm.taobao.org/memory-fs/download/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" + integrity sha1-MkwBKIuIZSlm0WHbd4OHIIRajjw= + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + meow@^3.7.0: version "3.7.0" - resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" + resolved "https://registry.npm.taobao.org/meow/download/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" integrity sha1-cstmi0JSKCkKu/qFaJJYcwioAfs= dependencies: camelcase-keys "^2.0.0" @@ -5187,30 +5112,30 @@ meow@^3.7.0: merge-descriptors@1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + resolved "https://registry.npm.taobao.org/merge-descriptors/download/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= merge-source-map@1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.0.4.tgz#a5de46538dae84d4114cc5ea02b4772a6346701f" + resolved "https://registry.npm.taobao.org/merge-source-map/download/merge-source-map-1.0.4.tgz#a5de46538dae84d4114cc5ea02b4772a6346701f" integrity sha1-pd5GU42uhNQRTMXqArR3KmNGcB8= dependencies: source-map "^0.5.6" merge-stream@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + resolved "https://registry.npm.taobao.org/merge-stream/download/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha1-UoI2KaFN0AyXcPtq1H3GMQ8sH2A= methods@~1.1.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + resolved "https://registry.npm.taobao.org/methods/download/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: version "3.1.10" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" - integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== + resolved "https://registry.npm.taobao.org/micromatch/download/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + integrity sha1-cIWbyVyYQJUvNZoGij/En57PrCM= dependencies: arr-diff "^4.0.0" array-unique "^0.3.2" @@ -5228,48 +5153,43 @@ micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: miller-rabin@^4.0.0: version "4.0.1" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" - integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== + resolved "https://registry.npm.taobao.org/miller-rabin/download/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + integrity sha1-8IA1HIZbDcViqEYpZtqlNUPHik0= dependencies: bn.js "^4.0.0" brorand "^1.0.1" -mime-db@1.40.0: - version "1.40.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32" - integrity sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA== - -"mime-db@>= 1.40.0 < 2": - version "1.41.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.41.0.tgz#9110408e1f6aa1b34aef51f2c9df3caddf46b6a0" - integrity sha512-B5gxBI+2K431XW8C2rcc/lhppbuji67nf9v39eH8pkWoZDxnAL0PxdpH32KYRScniF8qDHBDlI+ipgg5WrCUYw== +mime-db@1.43.0, "mime-db@>= 1.43.0 < 2": + version "1.43.0" + resolved "https://registry.npm.taobao.org/mime-db/download/mime-db-1.43.0.tgz?cache=0&sync_timestamp=1578281193492&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-db%2Fdownload%2Fmime-db-1.43.0.tgz#0a12e0502650e473d735535050e7c8f4eb4fae58" + integrity sha1-ChLgUCZQ5HPXNVNQUOfI9OtPrlg= mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: - version "2.1.24" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81" - integrity sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ== + version "2.1.26" + resolved "https://registry.npm.taobao.org/mime-types/download/mime-types-2.1.26.tgz?cache=0&sync_timestamp=1578282566609&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-types%2Fdownload%2Fmime-types-2.1.26.tgz#9c921fc09b7e149a65dfdc0da4d20997200b0a06" + integrity sha1-nJIfwJt+FJpl39wNpNIJlyALCgY= dependencies: - mime-db "1.40.0" + mime-db "1.43.0" mime@1.6.0: version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + resolved "https://registry.npm.taobao.org/mime/download/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha1-Ms2eXGRVO9WNGaVor0Uqz/BJgbE= mime@^2.4.4: version "2.4.4" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.4.tgz#bd7b91135fc6b01cde3e9bae33d659b63d8857e5" - integrity sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA== + resolved "https://registry.npm.taobao.org/mime/download/mime-2.4.4.tgz#bd7b91135fc6b01cde3e9bae33d659b63d8857e5" + integrity sha1-vXuRE1/GsBzePpuuM9ZZtj2IV+U= mimic-fn@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + resolved "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs= mini-css-extract-plugin@^0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.8.0.tgz#81d41ec4fe58c713a96ad7c723cdb2d0bd4d70e1" - integrity sha512-MNpRGbNA52q6U92i0qbVpQNsgk7LExy41MdAlG84FeytfDOtRIf/mCHdEgG8rpTKOaNKiqUnZdlptF469hxqOw== + version "0.8.2" + resolved "https://registry.npm.taobao.org/mini-css-extract-plugin/download/mini-css-extract-plugin-0.8.2.tgz?cache=0&sync_timestamp=1576856580721&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmini-css-extract-plugin%2Fdownload%2Fmini-css-extract-plugin-0.8.2.tgz#a875e169beb27c88af77dd962771c9eedc3da161" + integrity sha1-qHXhab6yfIivd92WJ3HJ7tw9oWE= dependencies: loader-utils "^1.1.0" normalize-url "1.9.1" @@ -5278,78 +5198,78 @@ mini-css-extract-plugin@^0.8.0: minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + resolved "https://registry.npm.taobao.org/minimalistic-assert/download/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha1-LhlN4ERibUoQ5/f7wAznPoPk1cc= minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + resolved "https://registry.npm.taobao.org/minimalistic-crypto-utils/download/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= minimatch@^3.0.4, minimatch@~3.0.2: version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + resolved "https://registry.npm.taobao.org/minimatch/download/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM= dependencies: brace-expansion "^1.1.7" minimist@0.0.8: version "0.0.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + resolved "https://registry.npm.taobao.org/minimist/download/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= minimist@^1.1.3, minimist@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + resolved "https://registry.npm.taobao.org/minimist/download/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= minipass-collect@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" - integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== + resolved "https://registry.npm.taobao.org/minipass-collect/download/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" + integrity sha1-IrgTv3Rdxu26JXa5QAIq1u3Ixhc= dependencies: minipass "^3.0.0" minipass-flush@^1.0.5: version "1.0.5" - resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" - integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== + resolved "https://registry.npm.taobao.org/minipass-flush/download/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" + integrity sha1-gucTXX6JpQ/+ZGEKeHlTxMTLs3M= dependencies: minipass "^3.0.0" minipass-pipeline@^1.2.2: version "1.2.2" - resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.2.tgz#3dcb6bb4a546e32969c7ad710f2c79a86abba93a" - integrity sha512-3JS5A2DKhD2g0Gg8x3yamO0pj7YeKGwVlDS90pF++kxptwx/F+B//roxf9SqYil5tQo65bijy+dAuAFZmYOouA== + resolved "https://registry.npm.taobao.org/minipass-pipeline/download/minipass-pipeline-1.2.2.tgz#3dcb6bb4a546e32969c7ad710f2c79a86abba93a" + integrity sha1-PctrtKVG4ylpx61xDyx5qGq7qTo= dependencies: minipass "^3.0.0" -minipass@^2.2.1, minipass@^2.3.5: - version "2.5.1" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.5.1.tgz#cf435a9bf9408796ca3a3525a8b851464279c9b8" - integrity sha512-dmpSnLJtNQioZFI5HfQ55Ad0DzzsMAb+HfokwRTNXwEQjepbTkl5mtIlSVxGIkOkxlpX7wIn5ET/oAd9fZ/Y/Q== +minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: + version "2.9.0" + resolved "https://registry.npm.taobao.org/minipass/download/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" + integrity sha1-5xN2Ln0+Mv7YAxFc+T4EvKn8yaY= dependencies: safe-buffer "^5.1.2" yallist "^3.0.0" minipass@^3.0.0, minipass@^3.1.1: version "3.1.1" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.1.tgz#7607ce778472a185ad6d89082aa2070f79cedcd5" - integrity sha512-UFqVihv6PQgwj8/yTGvl9kPz7xIAY+R5z6XYjRInD3Gk3qx6QGSD6zEcpeG4Dy/lQnv1J6zv8ejV90hyYIKf3w== + resolved "https://registry.npm.taobao.org/minipass/download/minipass-3.1.1.tgz#7607ce778472a185ad6d89082aa2070f79cedcd5" + integrity sha1-dgfOd4RyoYWtbYkIKqIHD3nO3NU= dependencies: yallist "^4.0.0" minizlib@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.2.1.tgz#dd27ea6136243c7c880684e8672bb3a45fd9b614" - integrity sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA== + version "1.3.3" + resolved "https://registry.npm.taobao.org/minizlib/download/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" + integrity sha1-IpDeloGKNMKVUcio0wEha9Zahh0= dependencies: - minipass "^2.2.1" + minipass "^2.9.0" mississippi@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" - integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== + resolved "https://registry.npm.taobao.org/mississippi/download/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" + integrity sha1-6goykfl+C16HdrNj1fChLZTGcCI= dependencies: concat-stream "^1.5.0" duplexify "^3.4.2" @@ -5364,34 +5284,34 @@ mississippi@^3.0.0: mixin-deep@^1.2.0: version "1.3.2" - resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" - integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== + resolved "https://registry.npm.taobao.org/mixin-deep/download/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" + integrity sha1-ESC0PcNZp4Xc5ltVuC4lfM9HlWY= dependencies: for-in "^1.0.2" is-extendable "^1.0.1" "mkdirp@>=0.5 0", mkdirp@^0.5, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.1: version "0.5.1" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + resolved "https://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= dependencies: minimist "0.0.8" moment-timezone@^0.5.11: version "0.5.27" - resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.27.tgz#73adec8139b6fe30452e78f210f27b1f346b8877" - integrity sha512-EIKQs7h5sAsjhPCqN6ggx6cEbs94GK050254TIJySD1bzoM5JTYDwAU1IoVOeTOL6Gm27kYJ51/uuvq1kIlrbw== + resolved "https://registry.npm.taobao.org/moment-timezone/download/moment-timezone-0.5.27.tgz#73adec8139b6fe30452e78f210f27b1f346b8877" + integrity sha1-c63sgTm2/jBFLnjyEPJ7HzRriHc= dependencies: moment ">= 2.9.0" "moment@>= 2.9.0", moment@^2.10.2, moment@^2.22.2, moment@^2.24.0, moment@^2.9.0: version "2.24.0" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b" - integrity sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg== + resolved "https://registry.npm.taobao.org/moment/download/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b" + integrity sha1-DQVdU/UFKqZTyfbraLtdEr9cK1s= move-concurrently@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" + resolved "https://registry.npm.taobao.org/move-concurrently/download/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= dependencies: aproba "^1.1.1" @@ -5403,41 +5323,41 @@ move-concurrently@^1.0.1: ms@2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + resolved "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= ms@2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" - integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== + resolved "https://registry.npm.taobao.org/ms/download/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + integrity sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo= ms@^2.1.1: version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + resolved "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk= multicast-dns-service-types@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" + resolved "https://registry.npm.taobao.org/multicast-dns-service-types/download/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" integrity sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE= multicast-dns@^6.0.1: version "6.2.3" - resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" - integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g== + resolved "https://registry.npm.taobao.org/multicast-dns/download/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" + integrity sha1-oOx72QVcQoL3kMPIL04o2zsxsik= dependencies: dns-packet "^1.3.1" thunky "^1.0.2" nan@^2.12.1, nan@^2.13.2: version "2.14.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" - integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg== + resolved "https://registry.npm.taobao.org/nan/download/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" + integrity sha1-eBj3IgJ7JFmobwKV1DTR/CM2xSw= nanomatch@^1.2.9: version "1.2.13" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" - integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== + resolved "https://registry.npm.taobao.org/nanomatch/download/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + integrity sha1-uHqKpPwN6P5r6IiVs4mD/yZb0Rk= dependencies: arr-diff "^4.0.0" array-unique "^0.3.2" @@ -5453,8 +5373,8 @@ nanomatch@^1.2.9: needle@^2.2.1: version "2.4.0" - resolved "https://registry.yarnpkg.com/needle/-/needle-2.4.0.tgz#6833e74975c444642590e15a750288c5f939b57c" - integrity sha512-4Hnwzr3mi5L97hMYeNl8wRW/Onhy4nUKR/lVemJ8gJedxxUyBLm9kkrDColJvoSfwi0jCNhD+xCdOtiGDQiRZg== + resolved "https://registry.npm.taobao.org/needle/download/needle-2.4.0.tgz#6833e74975c444642590e15a750288c5f939b57c" + integrity sha1-aDPnSXXERGQlkOFadQKIxfk5tXw= dependencies: debug "^3.2.6" iconv-lite "^0.4.4" @@ -5462,33 +5382,33 @@ needle@^2.2.1: negotiator@0.6.2: version "0.6.2" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" - integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== + resolved "https://registry.npm.taobao.org/negotiator/download/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" + integrity sha1-/qz3zPUlp3rpY0Q2pkiD/+yjRvs= neo-async@^2.5.0, neo-async@^2.6.1: version "2.6.1" - resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" - integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw== + resolved "https://registry.npm.taobao.org/neo-async/download/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" + integrity sha1-rCetpmFn+ohJpq3dg39rGJrSCBw= next-tick@~1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" + resolved "https://registry.npm.taobao.org/next-tick/download/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= nice-try@^1.0.4: version "1.0.5" - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== + resolved "https://registry.npm.taobao.org/nice-try/download/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + integrity sha1-ozeKdpbOfSI+iPybdkvX7xCJ42Y= node-forge@0.9.0: version "0.9.0" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.9.0.tgz#d624050edbb44874adca12bb9a52ec63cb782579" - integrity sha512-7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ== + resolved "https://registry.npm.taobao.org/node-forge/download/node-forge-0.9.0.tgz#d624050edbb44874adca12bb9a52ec63cb782579" + integrity sha1-1iQFDtu0SHStyhK7mlLsY8t4JXk= node-gyp@^3.8.0: version "3.8.0" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.8.0.tgz#540304261c330e80d0d5edce253a68cb3964218c" - integrity sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA== + resolved "https://registry.npm.taobao.org/node-gyp/download/node-gyp-3.8.0.tgz#540304261c330e80d0d5edce253a68cb3964218c" + integrity sha1-VAMEJhwzDoDQ1e3OJTpoyzlkIYw= dependencies: fstream "^1.0.0" glob "^7.0.3" @@ -5505,8 +5425,8 @@ node-gyp@^3.8.0: node-libs-browser@^2.2.1: version "2.2.1" - resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" - integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== + resolved "https://registry.npm.taobao.org/node-libs-browser/download/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" + integrity sha1-tk9RPRgzhiX5A0bSew0jXmMfZCU= dependencies: assert "^1.1.1" browserify-zlib "^0.2.0" @@ -5532,10 +5452,10 @@ node-libs-browser@^2.2.1: util "^0.11.0" vm-browserify "^1.0.1" -node-pre-gyp@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.12.0.tgz#39ba4bb1439da030295f899e3b520b7785766149" - integrity sha512-4KghwV8vH5k+g2ylT+sLTjy5wmUOb9vPhnM8NHvRf9dHmnW/CndrFXy2aRPaPST6dugXSdHXfeaHQm77PIz/1A== +node-pre-gyp@*: + version "0.14.0" + resolved "https://registry.npm.taobao.org/node-pre-gyp/download/node-pre-gyp-0.14.0.tgz#9a0596533b877289bcad4e143982ca3d904ddc83" + integrity sha1-mgWWUzuHcom8rU4UOYLKPZBN3IM= dependencies: detect-libc "^1.0.2" mkdirp "^0.5.1" @@ -5546,19 +5466,19 @@ node-pre-gyp@^0.12.0: rc "^1.2.7" rimraf "^2.6.1" semver "^5.3.0" - tar "^4" + tar "^4.4.2" -node-releases@^1.1.29: - version "1.1.30" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.30.tgz#35eebf129c63baeb6d8ddeda3c35b05abfd37f7f" - integrity sha512-BHcr1g6NeUH12IL+X3Flvs4IOnl1TL0JczUhEZjDE+FXXPQcVCNr8NEPb01zqGxzhTpdyJL5GXemaCW7aw6Khw== +node-releases@^1.1.44: + version "1.1.45" + resolved "https://registry.npm.taobao.org/node-releases/download/node-releases-1.1.45.tgz?cache=0&sync_timestamp=1578496101773&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-releases%2Fdownload%2Fnode-releases-1.1.45.tgz#4cf7e9175d71b1317f15ffd68ce63bce1d53e9f2" + integrity sha1-TPfpF11xsTF/Ff/WjOY7zh1T6fI= dependencies: - semver "^5.3.0" + semver "^6.3.0" node-sass@^4.13.0: version "4.13.0" - resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.13.0.tgz#b647288babdd6a1cb726de4545516b31f90da066" - integrity sha512-W1XBrvoJ1dy7VsvTAS5q1V45lREbTlZQqFbiHb3R3OTTCma0XBtuG6xZ6Z4506nR4lmHPTqVRwxT6KgtWC97CA== + resolved "https://registry.npm.taobao.org/node-sass/download/node-sass-4.13.0.tgz#b647288babdd6a1cb726de4545516b31f90da066" + integrity sha1-tkcoi6vdahy3Jt5FRVFrMfkNoGY= dependencies: async-foreach "^0.1.3" chalk "^1.1.1" @@ -5580,14 +5500,14 @@ node-sass@^4.13.0: "nopt@2 || 3": version "3.0.6" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" + resolved "https://registry.npm.taobao.org/nopt/download/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" integrity sha1-xkZdvwirzU2zWTF/eaxopkayj/k= dependencies: abbrev "1" nopt@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" + resolved "https://registry.npm.taobao.org/nopt/download/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00= dependencies: abbrev "1" @@ -5595,8 +5515,8 @@ nopt@^4.0.1: normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: version "2.5.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" - integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + resolved "https://registry.npm.taobao.org/normalize-package-data/download/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha1-5m2xg4sgDB38IzIl0SyzZSDiNKg= dependencies: hosted-git-info "^2.1.4" resolve "^1.10.0" @@ -5605,24 +5525,24 @@ normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: normalize-path@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + resolved "https://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= dependencies: remove-trailing-separator "^1.0.1" normalize-path@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + resolved "https://registry.npm.taobao.org/normalize-path/download/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU= normalize-range@^0.1.2: version "0.1.2" - resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + resolved "https://registry.npm.taobao.org/normalize-range/download/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= normalize-url@1.9.1: version "1.9.1" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" + resolved "https://registry.npm.taobao.org/normalize-url/download/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" integrity sha1-LMDWazHqIwNkWENuNiDYWVTGbDw= dependencies: object-assign "^4.0.1" @@ -5632,33 +5552,40 @@ normalize-url@1.9.1: normalize-url@^3.0.0: version "3.3.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" - integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== + resolved "https://registry.npm.taobao.org/normalize-url/download/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" + integrity sha1-suHE3E98bVd0PfczpPWXjRhlBVk= npm-bundled@^1.0.1: - version "1.0.6" - resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.0.6.tgz#e7ba9aadcef962bb61248f91721cd932b3fe6bdd" - integrity sha512-8/JCaftHwbd//k6y2rEWp6k1wxVfpFzB6t1p825+cUb7Ym2XQfhwIC5KwhrvzZRJu+LtDE585zVaS32+CGtf0g== + version "1.1.1" + resolved "https://registry.npm.taobao.org/npm-bundled/download/npm-bundled-1.1.1.tgz#1edd570865a94cdb1bc8220775e29466c9fb234b" + integrity sha1-Ht1XCGWpTNsbyCIHdeKUZsn7I0s= + dependencies: + npm-normalize-package-bin "^1.0.1" + +npm-normalize-package-bin@^1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/npm-normalize-package-bin/download/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" + integrity sha1-bnmkHyP9I1wGIyGCKNp9nCO49uI= npm-packlist@^1.1.6: - version "1.4.4" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.4.tgz#866224233850ac534b63d1a6e76050092b5d2f44" - integrity sha512-zTLo8UcVYtDU3gdeaFu2Xu0n0EvelfHDGuqtNIn5RO7yQj4H1TqNdBc/yZjxnWA0PVB8D3Woyp0i5B43JwQ6Vw== + version "1.4.7" + resolved "https://registry.npm.taobao.org/npm-packlist/download/npm-packlist-1.4.7.tgz#9e954365a06b80b18111ea900945af4f88ed4848" + integrity sha1-npVDZaBrgLGBEeqQCUWvT4jtSEg= dependencies: ignore-walk "^3.0.1" npm-bundled "^1.0.1" npm-run-path@^2.0.0: version "2.0.2" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + resolved "https://registry.npm.taobao.org/npm-run-path/download/npm-run-path-2.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnpm-run-path%2Fdownload%2Fnpm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= dependencies: path-key "^2.0.0" "npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0, npmlog@^4.0.2: version "4.1.2" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" - integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== + resolved "https://registry.npm.taobao.org/npmlog/download/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + integrity sha1-CKfyqL9zRgR3mp76StXMcXq7lUs= dependencies: are-we-there-yet "~1.1.2" console-control-strings "~1.1.0" @@ -5667,71 +5594,71 @@ npm-run-path@^2.0.0: nth-check@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" - integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== + resolved "https://registry.npm.taobao.org/nth-check/download/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" + integrity sha1-sr0pXDfj3VijvwcAN2Zjuk2c8Fw= dependencies: boolbase "~1.0.0" num2fraction@^1.2.2: version "1.2.2" - resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" + resolved "https://registry.npm.taobao.org/num2fraction/download/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= number-is-nan@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + resolved "https://registry.npm.taobao.org/number-is-nan/download/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= oauth-sign@~0.9.0: version "0.9.0" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" - integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== + resolved "https://registry.npm.taobao.org/oauth-sign/download/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" + integrity sha1-R6ewFrqmi1+g7PPe4IqFxnmsZFU= object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + resolved "https://registry.npm.taobao.org/object-assign/download/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= object-copy@^0.1.0: version "0.1.0" - resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + resolved "https://registry.npm.taobao.org/object-copy/download/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= dependencies: copy-descriptor "^0.1.0" define-property "^0.2.5" kind-of "^3.0.3" -object-inspect@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.6.0.tgz#c70b6cbf72f274aab4c34c0c82f5167bf82cf15b" - integrity sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ== +object-inspect@^1.7.0: + version "1.7.0" + resolved "https://registry.npm.taobao.org/object-inspect/download/object-inspect-1.7.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-inspect%2Fdownload%2Fobject-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67" + integrity sha1-9Pa9GBrXfwBrXs5gvQtvOY/3Smc= object-inspect@~1.4.0: version "1.4.1" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.4.1.tgz#37ffb10e71adaf3748d05f713b4c9452f402cbc4" - integrity sha512-wqdhLpfCUbEsoEwl3FXwGyv8ief1k/1aUdIPCqVnupM6e8l63BEJdiF/0swtn04/8p05tG/T0FrpTlfwvljOdw== + resolved "https://registry.npm.taobao.org/object-inspect/download/object-inspect-1.4.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-inspect%2Fdownload%2Fobject-inspect-1.4.1.tgz#37ffb10e71adaf3748d05f713b4c9452f402cbc4" + integrity sha1-N/+xDnGtrzdI0F9xO0yUUvQCy8Q= object-is@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.0.1.tgz#0aa60ec9989a0b3ed795cf4d06f62cf1ad6539b6" - integrity sha1-CqYOyZiaCz7Xlc9NBvYs8a1lObY= + version "1.0.2" + resolved "https://registry.npm.taobao.org/object-is/download/object-is-1.0.2.tgz?cache=0&sync_timestamp=1576479714417&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-is%2Fdownload%2Fobject-is-1.0.2.tgz#6b80eb84fe451498f65007982f035a5b445edec4" + integrity sha1-a4DrhP5FFJj2UAeYLwNaW0Re3sQ= object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.0.6, object-keys@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + resolved "https://registry.npm.taobao.org/object-keys/download/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha1-HEfyct8nfzsdrwYWd9nILiMixg4= object-visit@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + resolved "https://registry.npm.taobao.org/object-visit/download/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= dependencies: isobject "^3.0.0" object.assign@^4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" - integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== + resolved "https://registry.npm.taobao.org/object.assign/download/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" + integrity sha1-lovxEA15Vrs8oIbwBvhGs7xACNo= dependencies: define-properties "^1.1.2" function-bind "^1.1.1" @@ -5739,78 +5666,78 @@ object.assign@^4.1.0: object-keys "^1.0.11" object.getownpropertydescriptors@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz#8758c846f5b407adab0f236e0986f14b051caa16" - integrity sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY= + version "2.1.0" + resolved "https://registry.npm.taobao.org/object.getownpropertydescriptors/download/object.getownpropertydescriptors-2.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.getownpropertydescriptors%2Fdownload%2Fobject.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649" + integrity sha1-Npvx+VktiridcS3O1cuBx8U1Jkk= dependencies: - define-properties "^1.1.2" - es-abstract "^1.5.1" + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" object.pick@^1.3.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + resolved "https://registry.npm.taobao.org/object.pick/download/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= dependencies: isobject "^3.0.1" object.values@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.0.tgz#bf6810ef5da3e5325790eaaa2be213ea84624da9" - integrity sha512-8mf0nKLAoFX6VlNVdhGj31SVYpaNFtUnuoOXWyFEstsWRgU837AK+JYM0iAxwkSzGRbwn8cbFmgbyxj1j4VbXg== + version "1.1.1" + resolved "https://registry.npm.taobao.org/object.values/download/object.values-1.1.1.tgz#68a99ecde356b7e9295a3c5e0ce31dc8c953de5e" + integrity sha1-aKmezeNWt+kpWjxeDOMdyMlT3l4= dependencies: define-properties "^1.1.3" - es-abstract "^1.12.0" + es-abstract "^1.17.0-next.1" function-bind "^1.1.1" has "^1.0.3" obuf@^1.0.0, obuf@^1.1.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" - integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== + resolved "https://registry.npm.taobao.org/obuf/download/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" + integrity sha1-Cb6jND1BhZ69RGKS0RydTbYZCE4= on-finished@~2.3.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + resolved "https://registry.npm.taobao.org/on-finished/download/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= dependencies: ee-first "1.1.1" on-headers@~1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" - integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== + resolved "https://registry.npm.taobao.org/on-headers/download/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" + integrity sha1-dysK5qqlJcOZ5Imt+tkMQD6zwo8= once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + resolved "https://registry.npm.taobao.org/once/download/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= dependencies: wrappy "1" opencollective-postinstall@2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/opencollective-postinstall/-/opencollective-postinstall-2.0.2.tgz#5657f1bede69b6e33a45939b061eb53d3c6c3a89" - integrity sha512-pVOEP16TrAO2/fjej1IdOyupJY8KDUM1CvsaScRbw6oddvpQoOfGk4ywha0HKKVAD6RkW4x6Q+tNBwhf3Bgpuw== + resolved "https://registry.npm.taobao.org/opencollective-postinstall/download/opencollective-postinstall-2.0.2.tgz#5657f1bede69b6e33a45939b061eb53d3c6c3a89" + integrity sha1-Vlfxvt5ptuM6RZObBh61PTxsOok= opn@^5.5.0: version "5.5.0" - resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" - integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA== + resolved "https://registry.npm.taobao.org/opn/download/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" + integrity sha1-/HFk+rVtI1kExRw7J9pnWMo7m/w= dependencies: is-wsl "^1.1.0" optimize-css-assets-webpack-plugin@^5.0.3: version "5.0.3" - resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.3.tgz#e2f1d4d94ad8c0af8967ebd7cf138dcb1ef14572" - integrity sha512-q9fbvCRS6EYtUKKSwI87qm2IxlyJK5b4dygW1rKUBT6mMDhdG5e5bZT63v6tnJR9F9FB/H5a0HTmtw+laUBxKA== + resolved "https://registry.npm.taobao.org/optimize-css-assets-webpack-plugin/download/optimize-css-assets-webpack-plugin-5.0.3.tgz#e2f1d4d94ad8c0af8967ebd7cf138dcb1ef14572" + integrity sha1-4vHU2UrYwK+JZ+vXzxONyx7xRXI= dependencies: cssnano "^4.1.10" last-call-webpack-plugin "^3.0.0" optionator@^0.8.1: version "0.8.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" - integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== + resolved "https://registry.npm.taobao.org/optionator/download/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha1-hPodA2/p08fiHZmIS2ARZ+yPtJU= dependencies: deep-is "~0.1.3" fast-levenshtein "~2.0.6" @@ -5821,32 +5748,32 @@ optionator@^0.8.1: original@^1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" - integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg== + resolved "https://registry.npm.taobao.org/original/download/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" + integrity sha1-5EKmHP/hxf0gpl8yYcJmY7MD8l8= dependencies: url-parse "^1.4.3" os-browserify@^0.3.0: version "0.3.0" - resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" + resolved "https://registry.npm.taobao.org/os-browserify/download/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= os-homedir@^1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + resolved "https://registry.npm.taobao.org/os-homedir/download/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= os-locale@^1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" + resolved "https://registry.npm.taobao.org/os-locale/download/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" integrity sha1-IPnxeuKe00XoveWDsT0gCYA8FNk= dependencies: lcid "^1.0.0" os-locale@^3.0.0, os-locale@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" - integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q== + resolved "https://registry.npm.taobao.org/os-locale/download/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" + integrity sha1-qAKm7hfyTBBIOrmTVxnO9O0Wvxo= dependencies: execa "^1.0.0" lcid "^2.0.0" @@ -5854,105 +5781,112 @@ os-locale@^3.0.0, os-locale@^3.1.0: os-tmpdir@^1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + resolved "https://registry.npm.taobao.org/os-tmpdir/download/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= osenv@0, osenv@^0.1.4: version "0.1.5" - resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" - integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== + resolved "https://registry.npm.taobao.org/osenv/download/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" + integrity sha1-hc36+uso6Gd/QW4odZK18/SepBA= dependencies: os-homedir "^1.0.0" os-tmpdir "^1.0.0" overlayscrollbars@^1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/overlayscrollbars/-/overlayscrollbars-1.10.0.tgz#f63c6c76f25416c821e0347797b573b351ce87ea" - integrity sha512-SFGaq9wmR6jkwb5L7Wx0JIyGrQOT2/7ZD4F0srMN0KyYRbsdQ1nzdLF+JLp7QIQT2U1lsG1c16aMjxMtwzHA3Q== + version "1.10.2" + resolved "https://registry.npm.taobao.org/overlayscrollbars/download/overlayscrollbars-1.10.2.tgz#7eaa04a9b6f17432ada9ae0e604517755544b33b" + integrity sha1-fqoEqbbxdDKtqa4OYEUXdVVEszs= p-defer@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" + resolved "https://registry.npm.taobao.org/p-defer/download/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= p-finally@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + resolved "https://registry.npm.taobao.org/p-finally/download/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= p-is-promise@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" - integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== + resolved "https://registry.npm.taobao.org/p-is-promise/download/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" + integrity sha1-kYzrrqJIpiz3/6uOO8qMX4gvxC4= p-limit@^2.0.0, p-limit@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.2.1.tgz#aa07a788cc3151c939b5131f63570f0dd2009537" - integrity sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg== + version "2.2.2" + resolved "https://registry.npm.taobao.org/p-limit/download/p-limit-2.2.2.tgz?cache=0&sync_timestamp=1577904218145&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-2.2.2.tgz#61279b67721f5287aa1c13a9a7fbbc48c9291b1e" + integrity sha1-YSebZ3IfUoeqHBOpp/u8SMkpGx4= dependencies: p-try "^2.0.0" p-locate@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" - integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + resolved "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ= dependencies: p-limit "^2.0.0" p-locate@^4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" - integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + resolved "https://registry.npm.taobao.org/p-locate/download/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha1-o0KLtwiLOmApL2aRkni3wpetTwc= dependencies: p-limit "^2.2.0" p-map@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" - integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== + resolved "https://registry.npm.taobao.org/p-map/download/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" + integrity sha1-MQko/u+cnsxltosXaTAYpmXOoXU= p-map@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-3.0.0.tgz#d704d9af8a2ba684e2600d9a215983d4141a979d" - integrity sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ== + resolved "https://registry.npm.taobao.org/p-map/download/p-map-3.0.0.tgz#d704d9af8a2ba684e2600d9a215983d4141a979d" + integrity sha1-1wTZr4orpoTiYA2aIVmD1BQal50= dependencies: aggregate-error "^3.0.0" p-retry@^3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328" - integrity sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w== + resolved "https://registry.npm.taobao.org/p-retry/download/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328" + integrity sha1-MWtMiJPiyNwc+okfQGxLQivr8yg= dependencies: retry "^0.12.0" p-try@^2.0.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + resolved "https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha1-yyhoVA4xPWHeWPr741zpAE1VQOY= pako@^0.2.5: version "0.2.9" - resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" + resolved "https://registry.npm.taobao.org/pako/download/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" integrity sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU= pako@~1.0.2, pako@~1.0.5: version "1.0.10" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.10.tgz#4328badb5086a426aa90f541977d4955da5c9732" - integrity sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw== + resolved "https://registry.npm.taobao.org/pako/download/pako-1.0.10.tgz#4328badb5086a426aa90f541977d4955da5c9732" + integrity sha1-Qyi621CGpCaqkPVBl31JVdpclzI= parallel-transform@^1.1.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" - integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg== + resolved "https://registry.npm.taobao.org/parallel-transform/download/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" + integrity sha1-kEnKN9bLIYLDsdLHIL6U0UpYFPw= dependencies: cyclist "^1.0.1" inherits "^2.0.3" readable-stream "^2.1.5" +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.npm.taobao.org/parent-module/download/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha1-aR0nCeeMefrjoVZiJFLQB2LKqqI= + dependencies: + callsites "^3.0.0" + parse-asn1@^5.0.0: - version "5.1.4" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.4.tgz#37f6628f823fbdeb2273b4d540434a22f3ef1fcc" - integrity sha512-Qs5duJcuvNExRfFZ99HDD3z4mAi3r9Wl/FOjEOijlxwCZs7E7mW2vjTpgQ4J8LpTF8x5v+1Vn5UQFejmWT11aw== + version "5.1.5" + resolved "https://registry.npm.taobao.org/parse-asn1/download/parse-asn1-5.1.5.tgz#003271343da58dc94cace494faef3d2147ecea0e" + integrity sha1-ADJxND2ljclMrOSU+u89IUfs6g4= dependencies: asn1.js "^4.0.0" browserify-aes "^1.0.0" @@ -5963,104 +5897,119 @@ parse-asn1@^5.0.0: parse-json@^2.2.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + resolved "https://registry.npm.taobao.org/parse-json/download/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= dependencies: error-ex "^1.2.0" parse-json@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + resolved "https://registry.npm.taobao.org/parse-json/download/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= dependencies: error-ex "^1.3.1" json-parse-better-errors "^1.0.1" +parse-json@^5.0.0: + version "5.0.0" + resolved "https://registry.npm.taobao.org/parse-json/download/parse-json-5.0.0.tgz#73e5114c986d143efa3712d4ea24db9a4266f60f" + integrity sha1-c+URTJhtFD76NxLU6iTbmkJm9g8= + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + lines-and-columns "^1.1.6" + parse-passwd@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" + resolved "https://registry.npm.taobao.org/parse-passwd/download/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= parseurl@~1.3.2, parseurl@~1.3.3: version "1.3.3" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + resolved "https://registry.npm.taobao.org/parseurl/download/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha1-naGee+6NEt/wUT7Vt2lXeTvC6NQ= pascalcase@^0.1.1: version "0.1.1" - resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + resolved "https://registry.npm.taobao.org/pascalcase/download/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= path-browserify@0.0.1: version "0.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" - integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== + resolved "https://registry.npm.taobao.org/path-browserify/download/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" + integrity sha1-5sTd1+06onxoogzE5Q4aTug7vEo= path-complete-extname@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/path-complete-extname/-/path-complete-extname-1.0.0.tgz#f889985dc91000c815515c0bfed06c5acda0752b" - integrity sha512-CVjiWcMRdGU8ubs08YQVzhutOR5DEfO97ipRIlOGMK5Bek5nQySknBpuxVAVJ36hseTNs+vdIcv57ZrWxH7zvg== + resolved "https://registry.npm.taobao.org/path-complete-extname/download/path-complete-extname-1.0.0.tgz#f889985dc91000c815515c0bfed06c5acda0752b" + integrity sha1-+ImYXckQAMgVUVwL/tBsWs2gdSs= path-dirname@^1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + resolved "https://registry.npm.taobao.org/path-dirname/download/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= path-exists@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + resolved "https://registry.npm.taobao.org/path-exists/download/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= dependencies: pinkie-promise "^2.0.0" path-exists@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + resolved "https://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= path-exists@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + resolved "https://registry.npm.taobao.org/path-exists/download/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha1-UTvb4tO5XXdi6METfvoZXGxhtbM= path-is-absolute@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + resolved "https://registry.npm.taobao.org/path-is-absolute/download/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= path-is-inside@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + resolved "https://registry.npm.taobao.org/path-is-inside/download/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= path-key@^2.0.0, path-key@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + resolved "https://registry.npm.taobao.org/path-key/download/path-key-2.0.1.tgz?cache=0&sync_timestamp=1574441322626&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-key%2Fdownload%2Fpath-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= path-parse@^1.0.6: version "1.0.6" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" - integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== + resolved "https://registry.npm.taobao.org/path-parse/download/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" + integrity sha1-1i27VnlAXXLEc37FhgDp3c8G0kw= path-to-regexp@0.1.7: version "0.1.7" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + resolved "https://registry.npm.taobao.org/path-to-regexp/download/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= path-type@^1.0.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" + resolved "https://registry.npm.taobao.org/path-type/download/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE= dependencies: graceful-fs "^4.1.2" pify "^2.0.0" pinkie-promise "^2.0.0" +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.npm.taobao.org/path-type/download/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha1-hO0BwKe6OAr+CdkKjBgNzZ0DBDs= + pbkdf2@^3.0.3: version "3.0.17" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" - integrity sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA== + resolved "https://registry.npm.taobao.org/pbkdf2/download/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" + integrity sha1-l2wgZTBhexTrsyEUI597CTNuk6Y= dependencies: create-hash "^1.1.2" create-hmac "^1.1.4" @@ -6068,88 +6017,88 @@ pbkdf2@^3.0.3: safe-buffer "^5.0.1" sha.js "^2.4.8" -pdfkit@>=0.8.1, pdfkit@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/pdfkit/-/pdfkit-0.10.0.tgz#88f2aa8e3cf9e1cc2caff6447b68dd4e435cb284" - integrity sha512-mRJ6iuDzpIQ4ftKp5GvijLXNVRK86xjnyIPBraYSPrUPubNqWM5/oYmc7FZKUWz3wusRTj3PLR9HJ1X5ooqfsg== +pdfkit@>=0.8.1, pdfkit@^0.11.0: + version "0.11.0" + resolved "https://registry.npm.taobao.org/pdfkit/download/pdfkit-0.11.0.tgz#9cdb2fc42bd2913587fe3ddf48cc5bbb3c36f7de" + integrity sha1-nNsvxCvSkTWH/j3fSMxbuzw2994= dependencies: crypto-js "^3.1.9-1" - fontkit "^1.0.0" - linebreak "^0.3.0" - png-js ">=0.1.0" + fontkit "^1.8.0" + linebreak "^1.0.2" + png-js "^1.0.0" pdfmake@^0.1.62: - version "0.1.62" - resolved "https://registry.yarnpkg.com/pdfmake/-/pdfmake-0.1.62.tgz#62f2400eba066cc271736b95c7d0cdf9c8e06983" - integrity sha512-2QIzijdkwFBChTFu5nVmMe+fLBQTAYTPTxi4jGbUTyGxZBq7YR1I17FBk1Cs+3nrYufNKNukT6OR1RNxbovsTA== + version "0.1.63" + resolved "https://registry.npm.taobao.org/pdfmake/download/pdfmake-0.1.63.tgz#0001ecffe4ab30843485ce08744393315721e3f1" + integrity sha1-AAHs/+SrMIQ0hc4IdEOTMVch4/E= dependencies: iconv-lite "^0.5.0" linebreak "^1.0.2" - pdfkit "^0.10.0" - svg-to-pdfkit "^0.1.7" + pdfkit "^0.11.0" + svg-to-pdfkit "^0.1.8" performance-now@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + resolved "https://registry.npm.taobao.org/performance-now/download/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= pify@^2.0.0, pify@^2.3.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + resolved "https://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= pify@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" - integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + resolved "https://registry.npm.taobao.org/pify/download/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + integrity sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE= pinkie-promise@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + resolved "https://registry.npm.taobao.org/pinkie-promise/download/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= dependencies: pinkie "^2.0.0" pinkie@^2.0.0: version "2.0.4" - resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + resolved "https://registry.npm.taobao.org/pinkie/download/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= pkg-dir@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" - integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== + resolved "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" + integrity sha1-J0kCDyOe2ZCIGx9xIQ1R62UjvqM= dependencies: find-up "^3.0.0" pkg-dir@^4.1.0: version "4.2.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" - integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + resolved "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha1-8JkTPfft5CLoHR2ESCcO6z5CYfM= dependencies: find-up "^4.0.0" -png-js@>=0.1.0: +png-js@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/png-js/-/png-js-1.0.0.tgz#e5484f1e8156996e383aceebb3789fd75df1874d" - integrity sha512-k+YsbhpA9e+EFfKjTCH3VW6aoKlyNYI6NYdTfDL4CIvFnvsuO84ttonmZE7rc+v23SLTH8XX+5w/Ak9v0xGY4g== + resolved "https://registry.npm.taobao.org/png-js/download/png-js-1.0.0.tgz#e5484f1e8156996e383aceebb3789fd75df1874d" + integrity sha1-5UhPHoFWmW44Os7rs3if113xh00= pnp-webpack-plugin@^1.5.0: version "1.5.0" - resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.5.0.tgz#62a1cd3068f46d564bb33c56eb250e4d586676eb" - integrity sha512-jd9olUr9D7do+RN8Wspzhpxhgp1n6Vd0NtQ4SFkmIACZoEL1nkyAdW9Ygrinjec0vgDcWjscFQQ1gDW8rsfKTg== + resolved "https://registry.npm.taobao.org/pnp-webpack-plugin/download/pnp-webpack-plugin-1.5.0.tgz#62a1cd3068f46d564bb33c56eb250e4d586676eb" + integrity sha1-YqHNMGj0bVZLszxW6yUOTVhmdus= dependencies: ts-pnp "^1.1.2" -popper.js@^1.14.3, popper.js@^1.16.0: +popper.js@>=1.10, popper.js@^1.14.3, popper.js@^1.16.0: version "1.16.0" - resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.16.0.tgz#2e1816bcbbaa518ea6c2e15a466f4cb9c6e2fbb3" - integrity sha512-+G+EkOPoE5S/zChTpmBSSDYmhXJ5PsW8eMhH8cP/CQHMFPBG/kC9Y5IIw6qNYgdJ+/COf0ddY2li28iHaZRSjw== + resolved "https://registry.npm.taobao.org/popper.js/download/popper.js-1.16.0.tgz#2e1816bcbbaa518ea6c2e15a466f4cb9c6e2fbb3" + integrity sha1-LhgWvLuqUY6mwuFaRm9Mucbi+7M= portfinder@^1.0.25: version "1.0.25" - resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.25.tgz#254fd337ffba869f4b9d37edc298059cb4d35eca" - integrity sha512-6ElJnHBbxVA1XSLgBp7G1FiCkQdlqGzuF7DswL5tcea+E8UpuvPU7beVAjjRwCioTS9ZluNbu+ZyRvgTsmqEBg== + resolved "https://registry.npm.taobao.org/portfinder/download/portfinder-1.0.25.tgz#254fd337ffba869f4b9d37edc298059cb4d35eca" + integrity sha1-JU/TN/+6hp9LnTftwpgFnLTTXso= dependencies: async "^2.6.2" debug "^3.1.1" @@ -6157,21 +6106,21 @@ portfinder@^1.0.25: posix-character-classes@^0.1.0: version "0.1.1" - resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + resolved "https://registry.npm.taobao.org/posix-character-classes/download/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= postcss-attribute-case-insensitive@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.1.tgz#b2a721a0d279c2f9103a36331c88981526428cc7" - integrity sha512-L2YKB3vF4PetdTIthQVeT+7YiSzMoNMLLYxPXXppOOP7NoazEAy45sh2LvJ8leCQjfBcfkYQs8TtCcQjeZTp8A== + resolved "https://registry.npm.taobao.org/postcss-attribute-case-insensitive/download/postcss-attribute-case-insensitive-4.0.1.tgz#b2a721a0d279c2f9103a36331c88981526428cc7" + integrity sha1-sqchoNJ5wvkQOjYzHIiYFSZCjMc= dependencies: postcss "^7.0.2" postcss-selector-parser "^5.0.0" postcss-calc@^7.0.1: version "7.0.1" - resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.1.tgz#36d77bab023b0ecbb9789d84dcb23c4941145436" - integrity sha512-oXqx0m6tb4N3JGdmeMSc/i91KppbYsFZKdH0xMOqK8V1rJlzrKlTdokz8ozUXLVejydRN6u2IddxpcijRj2FqQ== + resolved "https://registry.npm.taobao.org/postcss-calc/download/postcss-calc-7.0.1.tgz#36d77bab023b0ecbb9789d84dcb23c4941145436" + integrity sha1-Ntd7qwI7Dsu5eJ2E3LI8SUEUVDY= dependencies: css-unit-converter "^1.1.1" postcss "^7.0.5" @@ -6180,16 +6129,16 @@ postcss-calc@^7.0.1: postcss-color-functional-notation@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/postcss-color-functional-notation/-/postcss-color-functional-notation-2.0.1.tgz#5efd37a88fbabeb00a2966d1e53d98ced93f74e0" - integrity sha512-ZBARCypjEDofW4P6IdPVTLhDNXPRn8T2s1zHbZidW6rPaaZvcnCS2soYFIQJrMZSxiePJ2XIYTlcb2ztr/eT2g== + resolved "https://registry.npm.taobao.org/postcss-color-functional-notation/download/postcss-color-functional-notation-2.0.1.tgz#5efd37a88fbabeb00a2966d1e53d98ced93f74e0" + integrity sha1-Xv03qI+6vrAKKWbR5T2Yztk/dOA= dependencies: postcss "^7.0.2" postcss-values-parser "^2.0.0" postcss-color-gray@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-color-gray/-/postcss-color-gray-5.0.0.tgz#532a31eb909f8da898ceffe296fdc1f864be8547" - integrity sha512-q6BuRnAGKM/ZRpfDascZlIZPjvwsRye7UDNalqVz3s7GDxMtqPY6+Q871liNxsonUw8oC61OG+PSaysYpl1bnw== + resolved "https://registry.npm.taobao.org/postcss-color-gray/download/postcss-color-gray-5.0.0.tgz#532a31eb909f8da898ceffe296fdc1f864be8547" + integrity sha1-Uyox65CfjaiYzv/ilv3B+GS+hUc= dependencies: "@csstools/convert-colors" "^1.4.0" postcss "^7.0.5" @@ -6197,16 +6146,16 @@ postcss-color-gray@^5.0.0: postcss-color-hex-alpha@^5.0.3: version "5.0.3" - resolved "https://registry.yarnpkg.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-5.0.3.tgz#a8d9ca4c39d497c9661e374b9c51899ef0f87388" - integrity sha512-PF4GDel8q3kkreVXKLAGNpHKilXsZ6xuu+mOQMHWHLPNyjiUBOr75sp5ZKJfmv1MCus5/DWUGcK9hm6qHEnXYw== + resolved "https://registry.npm.taobao.org/postcss-color-hex-alpha/download/postcss-color-hex-alpha-5.0.3.tgz#a8d9ca4c39d497c9661e374b9c51899ef0f87388" + integrity sha1-qNnKTDnUl8lmHjdLnFGJnvD4c4g= dependencies: postcss "^7.0.14" postcss-values-parser "^2.0.1" postcss-color-mod-function@^3.0.3: version "3.0.3" - resolved "https://registry.yarnpkg.com/postcss-color-mod-function/-/postcss-color-mod-function-3.0.3.tgz#816ba145ac11cc3cb6baa905a75a49f903e4d31d" - integrity sha512-YP4VG+xufxaVtzV6ZmhEtc+/aTXH3d0JLpnYfxqTvwZPbJhWqp8bSY3nfNzNRFLgB4XSaBA82OE4VjOOKpCdVQ== + resolved "https://registry.npm.taobao.org/postcss-color-mod-function/download/postcss-color-mod-function-3.0.3.tgz#816ba145ac11cc3cb6baa905a75a49f903e4d31d" + integrity sha1-gWuhRawRzDy2uqkFp1pJ+QPk0x0= dependencies: "@csstools/convert-colors" "^1.4.0" postcss "^7.0.2" @@ -6214,16 +6163,16 @@ postcss-color-mod-function@^3.0.3: postcss-color-rebeccapurple@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-4.0.1.tgz#c7a89be872bb74e45b1e3022bfe5748823e6de77" - integrity sha512-aAe3OhkS6qJXBbqzvZth2Au4V3KieR5sRQ4ptb2b2O8wgvB3SJBsdG+jsn2BZbbwekDG8nTfcCNKcSfe/lEy8g== + resolved "https://registry.npm.taobao.org/postcss-color-rebeccapurple/download/postcss-color-rebeccapurple-4.0.1.tgz#c7a89be872bb74e45b1e3022bfe5748823e6de77" + integrity sha1-x6ib6HK7dORbHjAiv+V0iCPm3nc= dependencies: postcss "^7.0.2" postcss-values-parser "^2.0.0" postcss-colormin@^4.0.3: version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381" - integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw== + resolved "https://registry.npm.taobao.org/postcss-colormin/download/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381" + integrity sha1-rgYLzpPteUrHEmTwgTLVUJVr04E= dependencies: browserslist "^4.0.0" color "^3.0.0" @@ -6233,134 +6182,134 @@ postcss-colormin@^4.0.3: postcss-convert-values@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f" - integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ== + resolved "https://registry.npm.taobao.org/postcss-convert-values/download/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f" + integrity sha1-yjgT7U2g+BL51DcDWE5Enr4Ymn8= dependencies: postcss "^7.0.0" postcss-value-parser "^3.0.0" postcss-custom-media@^7.0.8: version "7.0.8" - resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-7.0.8.tgz#fffd13ffeffad73621be5f387076a28b00294e0c" - integrity sha512-c9s5iX0Ge15o00HKbuRuTqNndsJUbaXdiNsksnVH8H4gdc+zbLzr/UasOwNG6CTDpLFekVY4672eWdiiWu2GUg== + resolved "https://registry.npm.taobao.org/postcss-custom-media/download/postcss-custom-media-7.0.8.tgz#fffd13ffeffad73621be5f387076a28b00294e0c" + integrity sha1-//0T/+/61zYhvl84cHaiiwApTgw= dependencies: postcss "^7.0.14" postcss-custom-properties@^8.0.11: version "8.0.11" - resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-8.0.11.tgz#2d61772d6e92f22f5e0d52602df8fae46fa30d97" - integrity sha512-nm+o0eLdYqdnJ5abAJeXp4CEU1c1k+eB2yMCvhgzsds/e0umabFrN6HoTy/8Q4K5ilxERdl/JD1LO5ANoYBeMA== + resolved "https://registry.npm.taobao.org/postcss-custom-properties/download/postcss-custom-properties-8.0.11.tgz#2d61772d6e92f22f5e0d52602df8fae46fa30d97" + integrity sha1-LWF3LW6S8i9eDVJgLfj65G+jDZc= dependencies: postcss "^7.0.17" postcss-values-parser "^2.0.1" postcss-custom-selectors@^5.1.2: version "5.1.2" - resolved "https://registry.yarnpkg.com/postcss-custom-selectors/-/postcss-custom-selectors-5.1.2.tgz#64858c6eb2ecff2fb41d0b28c9dd7b3db4de7fba" - integrity sha512-DSGDhqinCqXqlS4R7KGxL1OSycd1lydugJ1ky4iRXPHdBRiozyMHrdu0H3o7qNOCiZwySZTUI5MV0T8QhCLu+w== + resolved "https://registry.npm.taobao.org/postcss-custom-selectors/download/postcss-custom-selectors-5.1.2.tgz#64858c6eb2ecff2fb41d0b28c9dd7b3db4de7fba" + integrity sha1-ZIWMbrLs/y+0HQsoyd17PbTef7o= dependencies: postcss "^7.0.2" postcss-selector-parser "^5.0.0-rc.3" postcss-dir-pseudo-class@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-5.0.0.tgz#6e3a4177d0edb3abcc85fdb6fbb1c26dabaeaba2" - integrity sha512-3pm4oq8HYWMZePJY+5ANriPs3P07q+LW6FAdTlkFH2XqDdP4HeeJYMOzn0HYLhRSjBO3fhiqSwwU9xEULSrPgw== + resolved "https://registry.npm.taobao.org/postcss-dir-pseudo-class/download/postcss-dir-pseudo-class-5.0.0.tgz#6e3a4177d0edb3abcc85fdb6fbb1c26dabaeaba2" + integrity sha1-bjpBd9Dts6vMhf22+7HCbauuq6I= dependencies: postcss "^7.0.2" postcss-selector-parser "^5.0.0-rc.3" postcss-discard-comments@^4.0.2: version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033" - integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg== + resolved "https://registry.npm.taobao.org/postcss-discard-comments/download/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033" + integrity sha1-H7q9LCRr/2qq15l7KwkY9NevQDM= dependencies: postcss "^7.0.0" postcss-discard-duplicates@^4.0.2: version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb" - integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ== + resolved "https://registry.npm.taobao.org/postcss-discard-duplicates/download/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb" + integrity sha1-P+EzzTyCKC5VD8myORdqkge3hOs= dependencies: postcss "^7.0.0" postcss-discard-empty@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765" - integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w== + resolved "https://registry.npm.taobao.org/postcss-discard-empty/download/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765" + integrity sha1-yMlR6fc+2UKAGUWERKAq2Qu592U= dependencies: postcss "^7.0.0" postcss-discard-overridden@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57" - integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg== + resolved "https://registry.npm.taobao.org/postcss-discard-overridden/download/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57" + integrity sha1-ZSrvipZybwKfXj4AFG7npOdV/1c= dependencies: postcss "^7.0.0" postcss-double-position-gradients@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/postcss-double-position-gradients/-/postcss-double-position-gradients-1.0.0.tgz#fc927d52fddc896cb3a2812ebc5df147e110522e" - integrity sha512-G+nV8EnQq25fOI8CH/B6krEohGWnF5+3A6H/+JEpOncu5dCnkS1QQ6+ct3Jkaepw1NGVqqOZH6lqrm244mCftA== + resolved "https://registry.npm.taobao.org/postcss-double-position-gradients/download/postcss-double-position-gradients-1.0.0.tgz#fc927d52fddc896cb3a2812ebc5df147e110522e" + integrity sha1-/JJ9Uv3ciWyzooEuvF3xR+EQUi4= dependencies: postcss "^7.0.5" postcss-values-parser "^2.0.0" postcss-env-function@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/postcss-env-function/-/postcss-env-function-2.0.2.tgz#0f3e3d3c57f094a92c2baf4b6241f0b0da5365d7" - integrity sha512-rwac4BuZlITeUbiBq60h/xbLzXY43qOsIErngWa4l7Mt+RaSkT7QBjXVGTcBHupykkblHMDrBFh30zchYPaOUw== + resolved "https://registry.npm.taobao.org/postcss-env-function/download/postcss-env-function-2.0.2.tgz#0f3e3d3c57f094a92c2baf4b6241f0b0da5365d7" + integrity sha1-Dz49PFfwlKksK69LYkHwsNpTZdc= dependencies: postcss "^7.0.2" postcss-values-parser "^2.0.0" postcss-flexbugs-fixes@^4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.1.0.tgz#e094a9df1783e2200b7b19f875dcad3b3aff8b20" - integrity sha512-jr1LHxQvStNNAHlgco6PzY308zvLklh7SJVYuWUwyUQncofaAlD2l+P/gxKHOdqWKe7xJSkVLFF/2Tp+JqMSZA== + resolved "https://registry.npm.taobao.org/postcss-flexbugs-fixes/download/postcss-flexbugs-fixes-4.1.0.tgz#e094a9df1783e2200b7b19f875dcad3b3aff8b20" + integrity sha1-4JSp3xeD4iALexn4ddytOzr/iyA= dependencies: postcss "^7.0.0" postcss-focus-visible@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-focus-visible/-/postcss-focus-visible-4.0.0.tgz#477d107113ade6024b14128317ade2bd1e17046e" - integrity sha512-Z5CkWBw0+idJHSV6+Bgf2peDOFf/x4o+vX/pwcNYrWpXFrSfTkQ3JQ1ojrq9yS+upnAlNRHeg8uEwFTgorjI8g== + resolved "https://registry.npm.taobao.org/postcss-focus-visible/download/postcss-focus-visible-4.0.0.tgz#477d107113ade6024b14128317ade2bd1e17046e" + integrity sha1-R30QcROt5gJLFBKDF63ivR4XBG4= dependencies: postcss "^7.0.2" postcss-focus-within@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-focus-within/-/postcss-focus-within-3.0.0.tgz#763b8788596cee9b874c999201cdde80659ef680" - integrity sha512-W0APui8jQeBKbCGZudW37EeMCjDeVxKgiYfIIEo8Bdh5SpB9sxds/Iq8SEuzS0Q4YFOlG7EPFulbbxujpkrV2w== + resolved "https://registry.npm.taobao.org/postcss-focus-within/download/postcss-focus-within-3.0.0.tgz#763b8788596cee9b874c999201cdde80659ef680" + integrity sha1-djuHiFls7puHTJmSAc3egGWe9oA= dependencies: postcss "^7.0.2" postcss-font-variant@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-font-variant/-/postcss-font-variant-4.0.0.tgz#71dd3c6c10a0d846c5eda07803439617bbbabacc" - integrity sha512-M8BFYKOvCrI2aITzDad7kWuXXTm0YhGdP9Q8HanmN4EF1Hmcgs1KK5rSHylt/lUJe8yLxiSwWAHdScoEiIxztg== + resolved "https://registry.npm.taobao.org/postcss-font-variant/download/postcss-font-variant-4.0.0.tgz#71dd3c6c10a0d846c5eda07803439617bbbabacc" + integrity sha1-cd08bBCg2EbF7aB4A0OWF7u6usw= dependencies: postcss "^7.0.2" postcss-gap-properties@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-gap-properties/-/postcss-gap-properties-2.0.0.tgz#431c192ab3ed96a3c3d09f2ff615960f902c1715" - integrity sha512-QZSqDaMgXCHuHTEzMsS2KfVDOq7ZFiknSpkrPJY6jmxbugUPTuSzs/vuE5I3zv0WAS+3vhrlqhijiprnuQfzmg== + resolved "https://registry.npm.taobao.org/postcss-gap-properties/download/postcss-gap-properties-2.0.0.tgz#431c192ab3ed96a3c3d09f2ff615960f902c1715" + integrity sha1-QxwZKrPtlqPD0J8v9hWWD5AsFxU= dependencies: postcss "^7.0.2" postcss-image-set-function@^3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/postcss-image-set-function/-/postcss-image-set-function-3.0.1.tgz#28920a2f29945bed4c3198d7df6496d410d3f288" - integrity sha512-oPTcFFip5LZy8Y/whto91L9xdRHCWEMs3e1MdJxhgt4jy2WYXfhkng59fH5qLXSCPN8k4n94p1Czrfe5IOkKUw== + resolved "https://registry.npm.taobao.org/postcss-image-set-function/download/postcss-image-set-function-3.0.1.tgz#28920a2f29945bed4c3198d7df6496d410d3f288" + integrity sha1-KJIKLymUW+1MMZjX32SW1BDT8og= dependencies: postcss "^7.0.2" postcss-values-parser "^2.0.0" postcss-import@^12.0.1: version "12.0.1" - resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-12.0.1.tgz#cf8c7ab0b5ccab5649024536e565f841928b7153" - integrity sha512-3Gti33dmCjyKBgimqGxL3vcV8w9+bsHwO5UrBawp796+jdardbcFl4RP5w/76BwNL7aGzpKstIfF9I+kdE8pTw== + resolved "https://registry.npm.taobao.org/postcss-import/download/postcss-import-12.0.1.tgz#cf8c7ab0b5ccab5649024536e565f841928b7153" + integrity sha1-z4x6sLXMq1ZJAkU25WX4QZKLcVM= dependencies: postcss "^7.0.1" postcss-value-parser "^3.2.3" @@ -6368,17 +6317,17 @@ postcss-import@^12.0.1: resolve "^1.1.7" postcss-initial@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/postcss-initial/-/postcss-initial-3.0.1.tgz#99d319669a13d6c06ef8e70d852f68cb1b399b61" - integrity sha512-I2Sz83ZSHybMNh02xQDK609lZ1/QOyYeuizCjzEhlMgeV/HcDJapQiH4yTqLjZss0X6/6VvKFXUeObaHpJoINw== + version "3.0.2" + resolved "https://registry.npm.taobao.org/postcss-initial/download/postcss-initial-3.0.2.tgz#f018563694b3c16ae8eaabe3c585ac6319637b2d" + integrity sha1-8BhWNpSzwWro6qvjxYWsYxljey0= dependencies: lodash.template "^4.5.0" postcss "^7.0.2" postcss-lab-function@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-2.0.1.tgz#bb51a6856cd12289ab4ae20db1e3821ef13d7d2e" - integrity sha512-whLy1IeZKY+3fYdqQFuDBf8Auw+qFuVnChWjmxm/UhHWqNHZx+B99EwxTvGYmUBqe3Fjxs4L1BoZTJmPu6usVg== + resolved "https://registry.npm.taobao.org/postcss-lab-function/download/postcss-lab-function-2.0.1.tgz#bb51a6856cd12289ab4ae20db1e3821ef13d7d2e" + integrity sha1-u1GmhWzRIomrSuINseOCHvE9fS4= dependencies: "@csstools/convert-colors" "^1.4.0" postcss "^7.0.2" @@ -6386,16 +6335,16 @@ postcss-lab-function@^2.0.1: postcss-load-config@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.0.tgz#c84d692b7bb7b41ddced94ee62e8ab31b417b003" - integrity sha512-4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q== + resolved "https://registry.npm.taobao.org/postcss-load-config/download/postcss-load-config-2.1.0.tgz#c84d692b7bb7b41ddced94ee62e8ab31b417b003" + integrity sha1-yE1pK3u3tB3c7ZTuYuirMbQXsAM= dependencies: cosmiconfig "^5.0.0" import-cwd "^2.0.0" postcss-loader@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-3.0.0.tgz#6b97943e47c72d845fa9e03f273773d4e8dd6c2d" - integrity sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA== + resolved "https://registry.npm.taobao.org/postcss-loader/download/postcss-loader-3.0.0.tgz#6b97943e47c72d845fa9e03f273773d4e8dd6c2d" + integrity sha1-a5eUPkfHLYRfqeA/Jzdz1OjdbC0= dependencies: loader-utils "^1.1.0" postcss "^7.0.0" @@ -6404,22 +6353,22 @@ postcss-loader@^3.0.0: postcss-logical@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-logical/-/postcss-logical-3.0.0.tgz#2495d0f8b82e9f262725f75f9401b34e7b45d5b5" - integrity sha512-1SUKdJc2vuMOmeItqGuNaC+N8MzBWFWEkAnRnLpFYj1tGGa7NqyVBujfRtgNa2gXR+6RkGUiB2O5Vmh7E2RmiA== + resolved "https://registry.npm.taobao.org/postcss-logical/download/postcss-logical-3.0.0.tgz#2495d0f8b82e9f262725f75f9401b34e7b45d5b5" + integrity sha1-JJXQ+LgunyYnJfdflAGzTntF1bU= dependencies: postcss "^7.0.2" postcss-media-minmax@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-media-minmax/-/postcss-media-minmax-4.0.0.tgz#b75bb6cbc217c8ac49433e12f22048814a4f5ed5" - integrity sha512-fo9moya6qyxsjbFAYl97qKO9gyre3qvbMnkOZeZwlsW6XYFsvs2DMGDlchVLfAd8LHPZDxivu/+qW2SMQeTHBw== + resolved "https://registry.npm.taobao.org/postcss-media-minmax/download/postcss-media-minmax-4.0.0.tgz#b75bb6cbc217c8ac49433e12f22048814a4f5ed5" + integrity sha1-t1u2y8IXyKxJQz4S8iBIgUpPXtU= dependencies: postcss "^7.0.2" postcss-merge-longhand@^4.0.11: version "4.0.11" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24" - integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw== + resolved "https://registry.npm.taobao.org/postcss-merge-longhand/download/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24" + integrity sha1-YvSaE+Sg7gTnuY9CuxYGLKJUniQ= dependencies: css-color-names "0.0.4" postcss "^7.0.0" @@ -6428,8 +6377,8 @@ postcss-merge-longhand@^4.0.11: postcss-merge-rules@^4.0.3: version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650" - integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ== + resolved "https://registry.npm.taobao.org/postcss-merge-rules/download/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650" + integrity sha1-NivqT/Wh+Y5AdacTxsslrv75plA= dependencies: browserslist "^4.0.0" caniuse-api "^3.0.0" @@ -6440,16 +6389,16 @@ postcss-merge-rules@^4.0.3: postcss-minify-font-values@^4.0.2: version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6" - integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg== + resolved "https://registry.npm.taobao.org/postcss-minify-font-values/download/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6" + integrity sha1-zUw0TM5HQ0P6xdgiBqssvLiv1aY= dependencies: postcss "^7.0.0" postcss-value-parser "^3.0.0" postcss-minify-gradients@^4.0.2: version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471" - integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q== + resolved "https://registry.npm.taobao.org/postcss-minify-gradients/download/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471" + integrity sha1-k7KcL/UJnFNe7NpWxKpuZlpmNHE= dependencies: cssnano-util-get-arguments "^4.0.0" is-color-stop "^1.0.0" @@ -6458,8 +6407,8 @@ postcss-minify-gradients@^4.0.2: postcss-minify-params@^4.0.2: version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874" - integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg== + resolved "https://registry.npm.taobao.org/postcss-minify-params/download/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874" + integrity sha1-a5zvAwwR41Jh+V9hjJADbWgNuHQ= dependencies: alphanum-sort "^1.0.0" browserslist "^4.0.0" @@ -6470,8 +6419,8 @@ postcss-minify-params@^4.0.2: postcss-minify-selectors@^4.0.2: version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8" - integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g== + resolved "https://registry.npm.taobao.org/postcss-minify-selectors/download/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8" + integrity sha1-4uXrQL/uUA0M2SQ1APX46kJi+9g= dependencies: alphanum-sort "^1.0.0" has "^1.0.0" @@ -6480,55 +6429,55 @@ postcss-minify-selectors@^4.0.2: postcss-modules-extract-imports@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e" - integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ== + resolved "https://registry.npm.taobao.org/postcss-modules-extract-imports/download/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e" + integrity sha1-gYcZoa4doyX5gyRGsBE27rSTzX4= dependencies: postcss "^7.0.5" postcss-modules-local-by-default@^3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.2.tgz#e8a6561be914aaf3c052876377524ca90dbb7915" - integrity sha512-jM/V8eqM4oJ/22j0gx4jrp63GSvDH6v86OqyTHHUvk4/k1vceipZsaymiZ5PvocqZOl5SFHiFJqjs3la0wnfIQ== + resolved "https://registry.npm.taobao.org/postcss-modules-local-by-default/download/postcss-modules-local-by-default-3.0.2.tgz#e8a6561be914aaf3c052876377524ca90dbb7915" + integrity sha1-6KZWG+kUqvPAUodjd1JMqQ27eRU= dependencies: icss-utils "^4.1.1" postcss "^7.0.16" postcss-selector-parser "^6.0.2" postcss-value-parser "^4.0.0" -postcss-modules-scope@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.1.0.tgz#ad3f5bf7856114f6fcab901b0502e2a2bc39d4eb" - integrity sha512-91Rjps0JnmtUB0cujlc8KIKCsJXWjzuxGeT/+Q2i2HXKZ7nBUeF9YQTZZTNvHVoNYj1AthsjnGLtqDUE0Op79A== +postcss-modules-scope@^2.1.1: + version "2.1.1" + resolved "https://registry.npm.taobao.org/postcss-modules-scope/download/postcss-modules-scope-2.1.1.tgz?cache=0&sync_timestamp=1574936968130&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-scope%2Fdownload%2Fpostcss-modules-scope-2.1.1.tgz#33d4fc946602eb5e9355c4165d68a10727689dba" + integrity sha1-M9T8lGYC616TVcQWXWihBydonbo= dependencies: postcss "^7.0.6" postcss-selector-parser "^6.0.0" postcss-modules-values@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz#5b5000d6ebae29b4255301b4a3a54574423e7f10" - integrity sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg== + resolved "https://registry.npm.taobao.org/postcss-modules-values/download/postcss-modules-values-3.0.0.tgz#5b5000d6ebae29b4255301b4a3a54574423e7f10" + integrity sha1-W1AA1uuuKbQlUwG0o6VFdEI+fxA= dependencies: icss-utils "^4.0.0" postcss "^7.0.6" postcss-nesting@^7.0.0: version "7.0.1" - resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-7.0.1.tgz#b50ad7b7f0173e5b5e3880c3501344703e04c052" - integrity sha512-FrorPb0H3nuVq0Sff7W2rnc3SmIcruVC6YwpcS+k687VxyxO33iE1amna7wHuRVzM8vfiYofXSBHNAZ3QhLvYg== + resolved "https://registry.npm.taobao.org/postcss-nesting/download/postcss-nesting-7.0.1.tgz#b50ad7b7f0173e5b5e3880c3501344703e04c052" + integrity sha1-tQrXt/AXPlteOIDDUBNEcD4EwFI= dependencies: postcss "^7.0.2" postcss-normalize-charset@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" - integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g== + resolved "https://registry.npm.taobao.org/postcss-normalize-charset/download/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" + integrity sha1-izWt067oOhNrBHHg1ZvlilAoXdQ= dependencies: postcss "^7.0.0" postcss-normalize-display-values@^4.0.2: version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a" - integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ== + resolved "https://registry.npm.taobao.org/postcss-normalize-display-values/download/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a" + integrity sha1-Db4EpM6QY9RmftK+R2u4MMglk1o= dependencies: cssnano-util-get-match "^4.0.0" postcss "^7.0.0" @@ -6536,8 +6485,8 @@ postcss-normalize-display-values@^4.0.2: postcss-normalize-positions@^4.0.2: version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f" - integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA== + resolved "https://registry.npm.taobao.org/postcss-normalize-positions/download/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f" + integrity sha1-BfdX+E8mBDc3g2ipH4ky1LECkX8= dependencies: cssnano-util-get-arguments "^4.0.0" has "^1.0.0" @@ -6546,8 +6495,8 @@ postcss-normalize-positions@^4.0.2: postcss-normalize-repeat-style@^4.0.2: version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c" - integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q== + resolved "https://registry.npm.taobao.org/postcss-normalize-repeat-style/download/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c" + integrity sha1-xOu8KJ85kaAo1EdRy90RkYsXkQw= dependencies: cssnano-util-get-arguments "^4.0.0" cssnano-util-get-match "^4.0.0" @@ -6556,8 +6505,8 @@ postcss-normalize-repeat-style@^4.0.2: postcss-normalize-string@^4.0.2: version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c" - integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA== + resolved "https://registry.npm.taobao.org/postcss-normalize-string/download/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c" + integrity sha1-zUTECrB6DHo23F6Zqs4eyk7CaQw= dependencies: has "^1.0.0" postcss "^7.0.0" @@ -6565,8 +6514,8 @@ postcss-normalize-string@^4.0.2: postcss-normalize-timing-functions@^4.0.2: version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9" - integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A== + resolved "https://registry.npm.taobao.org/postcss-normalize-timing-functions/download/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9" + integrity sha1-jgCcoqOUnNr4rSPmtquZy159KNk= dependencies: cssnano-util-get-match "^4.0.0" postcss "^7.0.0" @@ -6574,8 +6523,8 @@ postcss-normalize-timing-functions@^4.0.2: postcss-normalize-unicode@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb" - integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg== + resolved "https://registry.npm.taobao.org/postcss-normalize-unicode/download/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb" + integrity sha1-hBvUj9zzAZrUuqdJOj02O1KuHPs= dependencies: browserslist "^4.0.0" postcss "^7.0.0" @@ -6583,8 +6532,8 @@ postcss-normalize-unicode@^4.0.1: postcss-normalize-url@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1" - integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA== + resolved "https://registry.npm.taobao.org/postcss-normalize-url/download/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1" + integrity sha1-EOQ3+GvHx+WPe5ZS7YeNqqlfquE= dependencies: is-absolute-url "^2.0.0" normalize-url "^3.0.0" @@ -6593,16 +6542,16 @@ postcss-normalize-url@^4.0.1: postcss-normalize-whitespace@^4.0.2: version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82" - integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA== + resolved "https://registry.npm.taobao.org/postcss-normalize-whitespace/download/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82" + integrity sha1-vx1AcP5Pzqh9E0joJdjMDF+qfYI= dependencies: postcss "^7.0.0" postcss-value-parser "^3.0.0" postcss-ordered-values@^4.1.2: version "4.1.2" - resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee" - integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw== + resolved "https://registry.npm.taobao.org/postcss-ordered-values/download/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee" + integrity sha1-DPdcgg7H1cTSgBiVWeC1ceusDu4= dependencies: cssnano-util-get-arguments "^4.0.0" postcss "^7.0.0" @@ -6610,30 +6559,30 @@ postcss-ordered-values@^4.1.2: postcss-overflow-shorthand@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-overflow-shorthand/-/postcss-overflow-shorthand-2.0.0.tgz#31ecf350e9c6f6ddc250a78f0c3e111f32dd4c30" - integrity sha512-aK0fHc9CBNx8jbzMYhshZcEv8LtYnBIRYQD5i7w/K/wS9c2+0NSR6B3OVMu5y0hBHYLcMGjfU+dmWYNKH0I85g== + resolved "https://registry.npm.taobao.org/postcss-overflow-shorthand/download/postcss-overflow-shorthand-2.0.0.tgz#31ecf350e9c6f6ddc250a78f0c3e111f32dd4c30" + integrity sha1-MezzUOnG9t3CUKePDD4RHzLdTDA= dependencies: postcss "^7.0.2" postcss-page-break@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/postcss-page-break/-/postcss-page-break-2.0.0.tgz#add52d0e0a528cabe6afee8b46e2abb277df46bf" - integrity sha512-tkpTSrLpfLfD9HvgOlJuigLuk39wVTbbd8RKcy8/ugV2bNBUW3xU+AIqyxhDrQr1VUj1RmyJrBn1YWrqUm9zAQ== + resolved "https://registry.npm.taobao.org/postcss-page-break/download/postcss-page-break-2.0.0.tgz#add52d0e0a528cabe6afee8b46e2abb277df46bf" + integrity sha1-rdUtDgpSjKvmr+6LRuKrsnffRr8= dependencies: postcss "^7.0.2" postcss-place@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-place/-/postcss-place-4.0.1.tgz#e9f39d33d2dc584e46ee1db45adb77ca9d1dcc62" - integrity sha512-Zb6byCSLkgRKLODj/5mQugyuj9bvAAw9LqJJjgwz5cYryGeXfFZfSXoP1UfveccFmeq0b/2xxwcTEVScnqGxBg== + resolved "https://registry.npm.taobao.org/postcss-place/download/postcss-place-4.0.1.tgz#e9f39d33d2dc584e46ee1db45adb77ca9d1dcc62" + integrity sha1-6fOdM9LcWE5G7h20Wtt3yp0dzGI= dependencies: postcss "^7.0.2" postcss-values-parser "^2.0.0" postcss-preset-env@^6.7.0: version "6.7.0" - resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-6.7.0.tgz#c34ddacf8f902383b35ad1e030f178f4cdf118a5" - integrity sha512-eU4/K5xzSFwUFJ8hTdTQzo2RBLbDVt83QZrAvI07TULOkmyQlnYlpwep+2yIK+K+0KlZO4BvFcleOCCcUtwchg== + resolved "https://registry.npm.taobao.org/postcss-preset-env/download/postcss-preset-env-6.7.0.tgz#c34ddacf8f902383b35ad1e030f178f4cdf118a5" + integrity sha1-w03az4+QI4OzWtHgMPF49M3xGKU= dependencies: autoprefixer "^9.6.1" browserslist "^4.6.4" @@ -6675,16 +6624,16 @@ postcss-preset-env@^6.7.0: postcss-pseudo-class-any-link@^6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-6.0.0.tgz#2ed3eed393b3702879dec4a87032b210daeb04d1" - integrity sha512-lgXW9sYJdLqtmw23otOzrtbDXofUdfYzNm4PIpNE322/swES3VU9XlXHeJS46zT2onFO7V1QFdD4Q9LiZj8mew== + resolved "https://registry.npm.taobao.org/postcss-pseudo-class-any-link/download/postcss-pseudo-class-any-link-6.0.0.tgz#2ed3eed393b3702879dec4a87032b210daeb04d1" + integrity sha1-LtPu05OzcCh53sSocDKyENrrBNE= dependencies: postcss "^7.0.2" postcss-selector-parser "^5.0.0-rc.3" postcss-reduce-initial@^4.0.3: version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df" - integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA== + resolved "https://registry.npm.taobao.org/postcss-reduce-initial/download/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df" + integrity sha1-f9QuvqXpyBRgljniwuhK4nC6SN8= dependencies: browserslist "^4.0.0" caniuse-api "^3.0.0" @@ -6693,8 +6642,8 @@ postcss-reduce-initial@^4.0.3: postcss-reduce-transforms@^4.0.2: version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29" - integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg== + resolved "https://registry.npm.taobao.org/postcss-reduce-transforms/download/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29" + integrity sha1-F++kBerMbge+NBSlyi0QdGgdTik= dependencies: cssnano-util-get-match "^4.0.0" has "^1.0.0" @@ -6703,37 +6652,37 @@ postcss-reduce-transforms@^4.0.2: postcss-replace-overflow-wrap@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-3.0.0.tgz#61b360ffdaedca84c7c918d2b0f0d0ea559ab01c" - integrity sha512-2T5hcEHArDT6X9+9dVSPQdo7QHzG4XKclFT8rU5TzJPDN7RIRTbO9c4drUISOVemLj03aezStHCR2AIcr8XLpw== + resolved "https://registry.npm.taobao.org/postcss-replace-overflow-wrap/download/postcss-replace-overflow-wrap-3.0.0.tgz#61b360ffdaedca84c7c918d2b0f0d0ea559ab01c" + integrity sha1-YbNg/9rtyoTHyRjSsPDQ6lWasBw= dependencies: postcss "^7.0.2" postcss-safe-parser@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-4.0.1.tgz#8756d9e4c36fdce2c72b091bbc8ca176ab1fcdea" - integrity sha512-xZsFA3uX8MO3yAda03QrG3/Eg1LN3EPfjjf07vke/46HERLZyHrTsQ9E1r1w1W//fWEhtYNndo2hQplN2cVpCQ== + resolved "https://registry.npm.taobao.org/postcss-safe-parser/download/postcss-safe-parser-4.0.1.tgz#8756d9e4c36fdce2c72b091bbc8ca176ab1fcdea" + integrity sha1-h1bZ5MNv3OLHKwkbvIyhdqsfzeo= dependencies: postcss "^7.0.0" postcss-selector-matches@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-selector-matches/-/postcss-selector-matches-4.0.0.tgz#71c8248f917ba2cc93037c9637ee09c64436fcff" - integrity sha512-LgsHwQR/EsRYSqlwdGzeaPKVT0Ml7LAT6E75T8W8xLJY62CE4S/l03BWIt3jT8Taq22kXP08s2SfTSzaraoPww== + resolved "https://registry.npm.taobao.org/postcss-selector-matches/download/postcss-selector-matches-4.0.0.tgz#71c8248f917ba2cc93037c9637ee09c64436fcff" + integrity sha1-ccgkj5F7osyTA3yWN+4JxkQ2/P8= dependencies: balanced-match "^1.0.0" postcss "^7.0.2" postcss-selector-not@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/postcss-selector-not/-/postcss-selector-not-4.0.0.tgz#c68ff7ba96527499e832724a2674d65603b645c0" - integrity sha512-W+bkBZRhqJaYN8XAnbbZPLWMvZD1wKTu0UxtFKdhtGjWYmxhkUneoeOhRJKdAE5V7ZTlnbHfCR+6bNwK9e1dTQ== + resolved "https://registry.npm.taobao.org/postcss-selector-not/download/postcss-selector-not-4.0.0.tgz#c68ff7ba96527499e832724a2674d65603b645c0" + integrity sha1-xo/3upZSdJnoMnJKJnTWVgO2RcA= dependencies: balanced-match "^1.0.0" postcss "^7.0.2" postcss-selector-parser@^3.0.0: version "3.1.1" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.1.tgz#4f875f4afb0c96573d5cf4d74011aee250a7e865" + resolved "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-3.1.1.tgz#4f875f4afb0c96573d5cf4d74011aee250a7e865" integrity sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU= dependencies: dot-prop "^4.1.1" @@ -6742,8 +6691,8 @@ postcss-selector-parser@^3.0.0: postcss-selector-parser@^5.0.0, postcss-selector-parser@^5.0.0-rc.3, postcss-selector-parser@^5.0.0-rc.4: version "5.0.0" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz#249044356697b33b64f1a8f7c80922dddee7195c" - integrity sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ== + resolved "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-5.0.0.tgz#249044356697b33b64f1a8f7c80922dddee7195c" + integrity sha1-JJBENWaXsztk8aj3yAki3d7nGVw= dependencies: cssesc "^2.0.0" indexes-of "^1.0.1" @@ -6751,8 +6700,8 @@ postcss-selector-parser@^5.0.0, postcss-selector-parser@^5.0.0-rc.3, postcss-sel postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: version "6.0.2" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz#934cf799d016c83411859e09dcecade01286ec5c" - integrity sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg== + resolved "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-6.0.2.tgz#934cf799d016c83411859e09dcecade01286ec5c" + integrity sha1-k0z3mdAWyDQRhZ4J3Oyt4BKG7Fw= dependencies: cssesc "^3.0.0" indexes-of "^1.0.1" @@ -6760,8 +6709,8 @@ postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: postcss-svgo@^4.0.2: version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.2.tgz#17b997bc711b333bab143aaed3b8d3d6e3d38258" - integrity sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw== + resolved "https://registry.npm.taobao.org/postcss-svgo/download/postcss-svgo-4.0.2.tgz#17b997bc711b333bab143aaed3b8d3d6e3d38258" + integrity sha1-F7mXvHEbMzurFDqu07jT1uPTglg= dependencies: is-svg "^3.0.0" postcss "^7.0.0" @@ -6770,8 +6719,8 @@ postcss-svgo@^4.0.2: postcss-unique-selectors@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac" - integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg== + resolved "https://registry.npm.taobao.org/postcss-unique-selectors/download/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac" + integrity sha1-lEaRHzKJv9ZMbWgPBzwDsfnuS6w= dependencies: alphanum-sort "^1.0.0" postcss "^7.0.0" @@ -6779,36 +6728,27 @@ postcss-unique-selectors@^4.0.1: postcss-value-parser@^3.0.0, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.1: version "3.3.1" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" - integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== + resolved "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" + integrity sha1-n/giVH4okyE88cMO+lGsX9G6goE= -postcss-value-parser@^4.0.0: +postcss-value-parser@^4.0.0, postcss-value-parser@^4.0.2: version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.0.2.tgz#482282c09a42706d1fc9a069b73f44ec08391dc9" - integrity sha512-LmeoohTpp/K4UiyQCwuGWlONxXamGzCMtFxLq4W1nZVGIQLYvMCJx3yAF9qyyuFpflABI9yVdtJAqbihOsCsJQ== + resolved "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-4.0.2.tgz#482282c09a42706d1fc9a069b73f44ec08391dc9" + integrity sha1-SCKCwJpCcG0fyaBptz9E7Ag5Hck= postcss-values-parser@^2.0.0, postcss-values-parser@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz#da8b472d901da1e205b47bdc98637b9e9e550e5f" - integrity sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg== + resolved "https://registry.npm.taobao.org/postcss-values-parser/download/postcss-values-parser-2.0.1.tgz#da8b472d901da1e205b47bdc98637b9e9e550e5f" + integrity sha1-2otHLZAdoeIFtHvcmGN7np5VDl8= dependencies: flatten "^1.0.2" indexes-of "^1.0.1" uniq "^1.0.1" -postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.5, postcss@^7.0.6: - version "7.0.18" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.18.tgz#4b9cda95ae6c069c67a4d933029eddd4838ac233" - integrity sha512-/7g1QXXgegpF+9GJj4iN7ChGF40sYuGYJ8WZu8DZWnmhQ/G36hfdk3q9LBJmoK+lZ+yzZ5KYpOoxq7LF1BxE8g== - dependencies: - chalk "^2.4.2" - source-map "^0.6.1" - supports-color "^6.1.0" - -postcss@^7.0.16: - version "7.0.21" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.21.tgz#06bb07824c19c2021c5d056d5b10c35b989f7e17" - integrity sha512-uIFtJElxJo29QC753JzhidoAhvp/e/Exezkdhfmt8AymWT6/5B7W1WmponYWkHk2eg6sONyTch0A3nkMPun3SQ== +postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.16, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.23, postcss@^7.0.5, postcss@^7.0.6: + version "7.0.26" + resolved "https://registry.npm.taobao.org/postcss/download/postcss-7.0.26.tgz?cache=0&sync_timestamp=1577751092087&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.26.tgz#5ed615cfcab35ba9bbb82414a4fa88ea10429587" + integrity sha1-XtYVz8qzW6m7uCQUpPqI6hBClYc= dependencies: chalk "^2.4.2" source-map "^0.6.1" @@ -6816,61 +6756,61 @@ postcss@^7.0.16: prelude-ls@~1.1.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + resolved "https://registry.npm.taobao.org/prelude-ls/download/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= prepend-http@^1.0.0: version "1.0.4" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + resolved "https://registry.npm.taobao.org/prepend-http/download/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= private@^0.1.6: version "0.1.8" - resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" - integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== + resolved "https://registry.npm.taobao.org/private/download/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" + integrity sha1-I4Hts2ifelPWUxkAYPz4ItLzaP8= process-nextick-args@~2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + resolved "https://registry.npm.taobao.org/process-nextick-args/download/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha1-eCDZsWEgzFXKmud5JoCufbptf+I= process@^0.11.10: version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + resolved "https://registry.npm.taobao.org/process/download/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= promise-inflight@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + resolved "https://registry.npm.taobao.org/promise-inflight/download/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= proxy-addr@~2.0.5: version "2.0.5" - resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.5.tgz#34cbd64a2d81f4b1fd21e76f9f06c8a45299ee34" - integrity sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ== + resolved "https://registry.npm.taobao.org/proxy-addr/download/proxy-addr-2.0.5.tgz#34cbd64a2d81f4b1fd21e76f9f06c8a45299ee34" + integrity sha1-NMvWSi2B9LH9IedvnwbIpFKZ7jQ= dependencies: forwarded "~0.1.2" ipaddr.js "1.9.0" prr@~1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + resolved "https://registry.npm.taobao.org/prr/download/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= pseudomap@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + resolved "https://registry.npm.taobao.org/pseudomap/download/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= psl@^1.1.24: - version "1.4.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.4.0.tgz#5dd26156cdb69fa1fdb8ab1991667d3f80ced7c2" - integrity sha512-HZzqCGPecFLyoRj5HLfuDSKYTJkAfB5thKBIkRHtGjWwY7p1dAyveIbXIq4tO0KYfDF2tHqPUgY9SDnGm00uFw== + version "1.7.0" + resolved "https://registry.npm.taobao.org/psl/download/psl-1.7.0.tgz?cache=0&sync_timestamp=1577538558975&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpsl%2Fdownload%2Fpsl-1.7.0.tgz#f1c4c47a8ef97167dea5d6bbf4816d736e884a3c" + integrity sha1-8cTEeo75cWfepda79IFtc26ISjw= public-encrypt@^4.0.0: version "4.0.3" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" - integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== + resolved "https://registry.npm.taobao.org/public-encrypt/download/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" + integrity sha1-T8ydd6B+SLp1J+fL4N4z0HATMeA= dependencies: bn.js "^4.1.0" browserify-rsa "^4.0.0" @@ -6881,24 +6821,24 @@ public-encrypt@^4.0.0: pump@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" - integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== + resolved "https://registry.npm.taobao.org/pump/download/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" + integrity sha1-Ejma3W5M91Jtlzy8i1zi4pCLOQk= dependencies: end-of-stream "^1.1.0" once "^1.3.1" pump@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + resolved "https://registry.npm.taobao.org/pump/download/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ= dependencies: end-of-stream "^1.1.0" once "^1.3.1" pumpify@^1.3.3: version "1.5.1" - resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" - integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== + resolved "https://registry.npm.taobao.org/pumpify/download/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" + integrity sha1-NlE74karJ1cLGjdKXOJ4v9dDcM4= dependencies: duplexify "^3.6.0" inherits "^2.0.3" @@ -6906,37 +6846,37 @@ pumpify@^1.3.3: punycode@1.3.2: version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + resolved "https://registry.npm.taobao.org/punycode/download/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= punycode@^1.2.4, punycode@^1.4.1: version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + resolved "https://registry.npm.taobao.org/punycode/download/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= punycode@^2.1.0: version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + resolved "https://registry.npm.taobao.org/punycode/download/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha1-tYsBCsQMIsVldhbI0sLALHv0eew= q@^1.1.2: version "1.5.1" - resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" + resolved "https://registry.npm.taobao.org/q/download/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= qs@6.7.0: version "6.7.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" - integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== + resolved "https://registry.npm.taobao.org/qs/download/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" + integrity sha1-QdwaAV49WB8WIXdr4xr7KHapsbw= qs@~6.5.2: version "6.5.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" - integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== + resolved "https://registry.npm.taobao.org/qs/download/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" + integrity sha1-yzroBuh0BERYTvFUzo7pjUA/PjY= query-string@^4.1.0: version "4.3.4" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" + resolved "https://registry.npm.taobao.org/query-string/download/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" integrity sha1-u7aTucqRXCMlFbIosaArYJBD2+s= dependencies: object-assign "^4.1.0" @@ -6944,22 +6884,22 @@ query-string@^4.1.0: querystring-es3@^0.2.0: version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + resolved "https://registry.npm.taobao.org/querystring-es3/download/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= querystring@0.2.0: version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + resolved "https://registry.npm.taobao.org/querystring/download/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= querystringify@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.1.tgz#60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e" - integrity sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA== + resolved "https://registry.npm.taobao.org/querystringify/download/querystringify-2.1.1.tgz#60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e" + integrity sha1-YOWl/WSn+L+k0qsu1v30yFutFU4= quote-stream@^1.0.1, quote-stream@~1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/quote-stream/-/quote-stream-1.0.2.tgz#84963f8c9c26b942e153feeb53aae74652b7e0b2" + resolved "https://registry.npm.taobao.org/quote-stream/download/quote-stream-1.0.2.tgz#84963f8c9c26b942e153feeb53aae74652b7e0b2" integrity sha1-hJY/jJwmuULhU/7rU6rnRlK34LI= dependencies: buffer-equal "0.0.1" @@ -6968,43 +6908,43 @@ quote-stream@^1.0.1, quote-stream@~1.0.2: rails-erb-loader@^5.5.2: version "5.5.2" - resolved "https://registry.yarnpkg.com/rails-erb-loader/-/rails-erb-loader-5.5.2.tgz#db3fa8ac89600f09d179a1a70a2ca18c592576ea" - integrity sha512-cjQH9SuSvRPhnWkvjmmAW/S4AFVDfAtYnQO4XpKJ8xpRdZayT73iXoE+IPc3VzN03noZXhVmyvsCvKvHj4LY6w== + resolved "https://registry.npm.taobao.org/rails-erb-loader/download/rails-erb-loader-5.5.2.tgz#db3fa8ac89600f09d179a1a70a2ca18c592576ea" + integrity sha1-2z+orIlgDwnReaGnCiyhjFklduo= dependencies: loader-utils "^1.1.0" lodash.defaults "^4.2.0" randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + resolved "https://registry.npm.taobao.org/randombytes/download/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha1-32+ENy8CcNxlzfYpE0mrekc9Tyo= dependencies: safe-buffer "^5.1.0" randomfill@^1.0.3: version "1.0.4" - resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" - integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== + resolved "https://registry.npm.taobao.org/randomfill/download/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + integrity sha1-ySGW/IarQr6YPxvzF3giSTHWFFg= dependencies: randombytes "^2.0.5" safe-buffer "^5.1.0" range-parser@^1.2.1, range-parser@~1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + resolved "https://registry.npm.taobao.org/range-parser/download/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha1-PPNwI9GZ4cJNGlW4SADC8+ZGgDE= "raphael@^2.2.0 || ^2.1.1", raphael@^2.3.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/raphael/-/raphael-2.3.0.tgz#eabeb09dba861a1d4cee077eaafb8c53f3131f89" - integrity sha512-w2yIenZAQnp257XUWGni4bLMVxpUpcIl7qgxEgDIXtmSypYtlNxfXWpOBxs7LBTps5sDwhRnrToJrMUrivqNTQ== + resolved "https://registry.npm.taobao.org/raphael/download/raphael-2.3.0.tgz#eabeb09dba861a1d4cee077eaafb8c53f3131f89" + integrity sha1-6r6wnbqGGh1M7gd+qvuMU/MTH4k= dependencies: eve-raphael "0.5.0" raw-body@2.4.0: version "2.4.0" - resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" - integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== + resolved "https://registry.npm.taobao.org/raw-body/download/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" + integrity sha1-oc5vucm8NWylLoklarWQWeE9AzI= dependencies: bytes "3.1.0" http-errors "1.7.2" @@ -7013,8 +6953,8 @@ raw-body@2.4.0: rc@^1.2.7: version "1.2.8" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" - integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + resolved "https://registry.npm.taobao.org/rc/download/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha1-zZJL9SAKB1uDwYjNa54hG3/A0+0= dependencies: deep-extend "^0.6.0" ini "~1.3.0" @@ -7023,14 +6963,14 @@ rc@^1.2.7: read-cache@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" + resolved "https://registry.npm.taobao.org/read-cache/download/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" integrity sha1-5mTvMRYRZsl1HNvo28+GtftY93Q= dependencies: pify "^2.3.0" read-pkg-up@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" + resolved "https://registry.npm.taobao.org/read-pkg-up/download/read-pkg-up-1.0.1.tgz?cache=0&sync_timestamp=1575620436254&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fread-pkg-up%2Fdownload%2Fread-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI= dependencies: find-up "^1.0.0" @@ -7038,7 +6978,7 @@ read-pkg-up@^1.0.1: read-pkg@^1.0.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" + resolved "https://registry.npm.taobao.org/read-pkg/download/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg= dependencies: load-json-file "^1.0.0" @@ -7046,9 +6986,9 @@ read-pkg@^1.0.0: path-type "^1.0.0" "readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.3, readable-stream@~2.3.6: - version "2.3.6" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" - integrity sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw== + version "2.3.7" + resolved "https://registry.npm.taobao.org/readable-stream/download/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha1-Hsoc9xGu+BTAT2IlKjamL2yyO1c= dependencies: core-util-is "~1.0.0" inherits "~2.0.3" @@ -7060,8 +7000,8 @@ read-pkg@^1.0.0: readable-stream@^3.0.6: version "3.4.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.4.0.tgz#a51c26754658e0a3c21dbf59163bd45ba6f447fc" - integrity sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ== + resolved "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.4.0.tgz#a51c26754658e0a3c21dbf59163bd45ba6f447fc" + integrity sha1-pRwmdUZY4KPCHb9ZFjvUW6b0R/w= dependencies: inherits "^2.0.3" string_decoder "^1.1.1" @@ -7069,8 +7009,8 @@ readable-stream@^3.0.6: readdirp@^2.2.1: version "2.2.1" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" - integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== + resolved "https://registry.npm.taobao.org/readdirp/download/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" + integrity sha1-DodiKjMlqjPokihcr4tOhGUppSU= dependencies: graceful-fs "^4.1.11" micromatch "^3.1.10" @@ -7078,7 +7018,7 @@ readdirp@^2.2.1: redent@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" + resolved "https://registry.npm.taobao.org/redent/download/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" integrity sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94= dependencies: indent-string "^2.1.0" @@ -7086,52 +7026,53 @@ redent@^1.0.0: regenerate-unicode-properties@^8.1.0: version "8.1.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.1.0.tgz#ef51e0f0ea4ad424b77bf7cb41f3e015c70a3f0e" - integrity sha512-LGZzkgtLY79GeXLm8Dp0BVLdQlWICzBnJz/ipWUgo59qBaZ+BHtq51P2q1uVZlppMuUAT37SDk39qUbjTWB7bA== + resolved "https://registry.npm.taobao.org/regenerate-unicode-properties/download/regenerate-unicode-properties-8.1.0.tgz#ef51e0f0ea4ad424b77bf7cb41f3e015c70a3f0e" + integrity sha1-71Hg8OpK1CS3e/fLQfPgFccKPw4= dependencies: regenerate "^1.4.0" regenerate@^1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" - integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg== + resolved "https://registry.npm.taobao.org/regenerate/download/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" + integrity sha1-SoVuxLVuQHfFV1icroXnpMiGmhE= regenerator-runtime@^0.11.0: version "0.11.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" - integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== + resolved "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + integrity sha1-vgWtf5v30i4Fb5cmzuUBf78Z4uk= regenerator-runtime@^0.13.2, regenerator-runtime@^0.13.3: version "0.13.3" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz#7cf6a77d8f5c6f60eb73c5fc1955b2ceb01e6bf5" - integrity sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw== + resolved "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.13.3.tgz#7cf6a77d8f5c6f60eb73c5fc1955b2ceb01e6bf5" + integrity sha1-fPanfY9cb2Drc8X8GVWyzrAea/U= regenerator-transform@^0.14.0: version "0.14.1" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.1.tgz#3b2fce4e1ab7732c08f665dfdb314749c7ddd2fb" - integrity sha512-flVuee02C3FKRISbxhXl9mGzdbWUVHubl1SMaknjxkFB1/iqpJhArQUvRxOOPEc/9tAiX0BaQ28FJH10E4isSQ== + resolved "https://registry.npm.taobao.org/regenerator-transform/download/regenerator-transform-0.14.1.tgz#3b2fce4e1ab7732c08f665dfdb314749c7ddd2fb" + integrity sha1-Oy/OThq3cywI9mXf2zFHScfd0vs= dependencies: private "^0.1.6" regex-not@^1.0.0, regex-not@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" - integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== + resolved "https://registry.npm.taobao.org/regex-not/download/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + integrity sha1-H07OJ+ALC2XgJHpoEOaoXYOldSw= dependencies: extend-shallow "^3.0.2" safe-regex "^1.1.0" regexp.prototype.flags@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.2.0.tgz#6b30724e306a27833eeb171b66ac8890ba37e41c" - integrity sha512-ztaw4M1VqgMwl9HlPpOuiYgItcHlunW0He2fE6eNfT6E/CF2FtYi9ofOYe4mKntstYk0Fyh/rDRBdS3AnxjlrA== + version "1.3.0" + resolved "https://registry.npm.taobao.org/regexp.prototype.flags/download/regexp.prototype.flags-1.3.0.tgz?cache=0&sync_timestamp=1576388141321&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexp.prototype.flags%2Fdownload%2Fregexp.prototype.flags-1.3.0.tgz#7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75" + integrity sha1-erqJs8E6ZFCdq888qNn7ub31y3U= dependencies: - define-properties "^1.1.2" + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" regexpu-core@^4.6.0: version "4.6.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.6.0.tgz#2037c18b327cfce8a6fea2a4ec441f2432afb8b6" - integrity sha512-YlVaefl8P5BnFYOITTNzDvan1ulLOiXJzCNZxduTIosN17b87h3bvG9yHMoHaRuo88H4mQ06Aodj5VtYGGGiTg== + resolved "https://registry.npm.taobao.org/regexpu-core/download/regexpu-core-4.6.0.tgz#2037c18b327cfce8a6fea2a4ec441f2432afb8b6" + integrity sha1-IDfBizJ8/Oim/qKk7EQfJDKvuLY= dependencies: regenerate "^1.4.0" regenerate-unicode-properties "^8.1.0" @@ -7141,43 +7082,43 @@ regexpu-core@^4.6.0: unicode-match-property-value-ecmascript "^1.1.0" regjsgen@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.0.tgz#a7634dc08f89209c2049adda3525711fb97265dd" - integrity sha512-RnIrLhrXCX5ow/E5/Mh2O4e/oa1/jW0eaBKTSy3LaCj+M3Bqvm97GWDp2yUtzIs4LEn65zR2yiYGFqb2ApnzDA== + version "0.5.1" + resolved "https://registry.npm.taobao.org/regjsgen/download/regjsgen-0.5.1.tgz#48f0bf1a5ea205196929c0d9798b42d1ed98443c" + integrity sha1-SPC/Gl6iBRlpKcDZeYtC0e2YRDw= regjsparser@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.0.tgz#f1e6ae8b7da2bae96c99399b868cd6c933a2ba9c" - integrity sha512-RQ7YyokLiQBomUJuUG8iGVvkgOLxwyZM8k6d3q5SAXpg4r5TZJZigKFvC6PpD+qQ98bCDC5YelPeA3EucDoNeQ== + version "0.6.2" + resolved "https://registry.npm.taobao.org/regjsparser/download/regjsparser-0.6.2.tgz#fd62c753991467d9d1ffe0a9f67f27a529024b96" + integrity sha1-/WLHU5kUZ9nR/+Cp9n8npSkCS5Y= dependencies: jsesc "~0.5.0" remove-trailing-separator@^1.0.1: version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + resolved "https://registry.npm.taobao.org/remove-trailing-separator/download/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= repeat-element@^1.1.2: version "1.1.3" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" - integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== + resolved "https://registry.npm.taobao.org/repeat-element/download/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" + integrity sha1-eC4NglwMWjuzlzH4Tv7mt0Lmsc4= repeat-string@^1.6.1: version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + resolved "https://registry.npm.taobao.org/repeat-string/download/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= repeating@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + resolved "https://registry.npm.taobao.org/repeating/download/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo= dependencies: is-finite "^1.0.0" request@^2.87.0, request@^2.88.0: version "2.88.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" - integrity sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg== + resolved "https://registry.npm.taobao.org/request/download/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" + integrity sha1-nC/KT301tZLv5Xx/ClXoEFIST+8= dependencies: aws-sign2 "~0.7.0" aws4 "^1.8.0" @@ -7202,34 +7143,34 @@ request@^2.87.0, request@^2.88.0: require-directory@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + resolved "https://registry.npm.taobao.org/require-directory/download/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= require-main-filename@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" + resolved "https://registry.npm.taobao.org/require-main-filename/download/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= require-main-filename@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + resolved "https://registry.npm.taobao.org/require-main-filename/download/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha1-0LMp7MfMD2Fkn2IhW+aa9UqomJs= requires-port@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + resolved "https://registry.npm.taobao.org/requires-port/download/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= resolve-cwd@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" + resolved "https://registry.npm.taobao.org/resolve-cwd/download/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= dependencies: resolve-from "^3.0.0" resolve-dir@^1.0.0, resolve-dir@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" + resolved "https://registry.npm.taobao.org/resolve-dir/download/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= dependencies: expand-tilde "^2.0.0" @@ -7237,107 +7178,105 @@ resolve-dir@^1.0.0, resolve-dir@^1.0.1: resolve-from@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + resolved "https://registry.npm.taobao.org/resolve-from/download/resolve-from-3.0.0.tgz?cache=0&sync_timestamp=1578925695839&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve-from%2Fdownload%2Fresolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" integrity sha1-six699nWiBvItuZTM17rywoYh0g= +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.npm.taobao.org/resolve-from/download/resolve-from-4.0.0.tgz?cache=0&sync_timestamp=1578925695839&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve-from%2Fdownload%2Fresolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha1-SrzYUq0y3Xuqv+m0DgCjbbXzkuY= + resolve-url@^0.2.1: version "0.2.1" - resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + resolved "https://registry.npm.taobao.org/resolve-url/download/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= resolve@1.1.7: version "1.1.7" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" + resolved "https://registry.npm.taobao.org/resolve/download/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= -resolve@^1.1.5: - version "1.12.2" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.12.2.tgz#08b12496d9aa8659c75f534a8f05f0d892fff594" - integrity sha512-cAVTI2VLHWYsGOirfeYVVQ7ZDejtQ9fp4YhYckWDEkFfqbVjaT11iM8k6xSAfGFMM+gDpZjMnFssPu8we+mqFw== - dependencies: - path-parse "^1.0.6" - -resolve@^1.1.7, resolve@^1.10.0, resolve@^1.3.2, resolve@^1.8.1: - version "1.12.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.12.0.tgz#3fc644a35c84a48554609ff26ec52b66fa577df6" - integrity sha512-B/dOmuoAik5bKcD6s6nXDCjzUKnaDvdkRyAk6rsmsKLipWj4797iothd7jmmUhWTfinVMU+wc56rYKsit2Qy4w== +resolve@^1.1.5, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.12.0, resolve@^1.3.2, resolve@^1.8.1: + version "1.14.2" + resolved "https://registry.npm.taobao.org/resolve/download/resolve-1.14.2.tgz#dbf31d0fa98b1f29aa5169783b9c290cb865fea2" + integrity sha1-2/MdD6mLHymqUWl4O5wpDLhl/qI= dependencies: path-parse "^1.0.6" restructure@^0.5.3: version "0.5.4" - resolved "https://registry.yarnpkg.com/restructure/-/restructure-0.5.4.tgz#f54e7dd563590fb34fd6bf55876109aeccb28de8" + resolved "https://registry.npm.taobao.org/restructure/download/restructure-0.5.4.tgz#f54e7dd563590fb34fd6bf55876109aeccb28de8" integrity sha1-9U591WNZD7NP1r9Vh2EJrsyyjeg= dependencies: browserify-optional "^1.0.0" ret@~0.1.10: version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== + resolved "https://registry.npm.taobao.org/ret/download/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + integrity sha1-uKSCXVvbH8P29Twrwz+BOIaBx7w= retry@^0.12.0: version "0.12.0" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + resolved "https://registry.npm.taobao.org/retry/download/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= rgb-regex@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" + resolved "https://registry.npm.taobao.org/rgb-regex/download/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE= rgba-regex@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" + resolved "https://registry.npm.taobao.org/rgba-regex/download/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= rimraf@2, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.3, rimraf@^2.7.1: version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + resolved "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w= dependencies: glob "^7.1.3" ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" - integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== + resolved "https://registry.npm.taobao.org/ripemd160/download/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + integrity sha1-ocGm9iR1FXe6XQeRTLyShQWFiQw= dependencies: hash-base "^3.0.0" inherits "^2.0.1" run-queue@^1.0.0, run-queue@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" + resolved "https://registry.npm.taobao.org/run-queue/download/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= dependencies: aproba "^1.1.1" safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + resolved "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha1-mR7GnSluAxN0fVm9/St0XDX4go0= safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0: version "5.2.0" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" - integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== + resolved "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" + integrity sha1-t02uxJsRSPiMZLaNSbHoFcHy9Rk= safe-regex@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + resolved "https://registry.npm.taobao.org/safe-regex/download/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= dependencies: ret "~0.1.10" "safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + resolved "https://registry.npm.taobao.org/safer-buffer/download/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo= sass-graph@^2.2.4: version "2.2.4" - resolved "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.2.4.tgz#13fbd63cd1caf0908b9fd93476ad43a51d1e0b49" + resolved "https://registry.npm.taobao.org/sass-graph/download/sass-graph-2.2.4.tgz#13fbd63cd1caf0908b9fd93476ad43a51d1e0b49" integrity sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k= dependencies: glob "^7.0.0" @@ -7347,8 +7286,8 @@ sass-graph@^2.2.4: sass-loader@7.3.1: version "7.3.1" - resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-7.3.1.tgz#a5bf68a04bcea1c13ff842d747150f7ab7d0d23f" - integrity sha512-tuU7+zm0pTCynKYHpdqaPpe+MMTQ76I9TPZ7i4/5dZsigE350shQWe5EZNl5dBidM49TPET75tNqRbcsUZWeNA== + resolved "https://registry.npm.taobao.org/sass-loader/download/sass-loader-7.3.1.tgz?cache=0&sync_timestamp=1578921816923&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsass-loader%2Fdownload%2Fsass-loader-7.3.1.tgz#a5bf68a04bcea1c13ff842d747150f7ab7d0d23f" + integrity sha1-pb9ooEvOocE/+ELXRxUPerfQ0j8= dependencies: clone-deep "^4.0.1" loader-utils "^1.0.1" @@ -7358,30 +7297,30 @@ sass-loader@7.3.1: sax@^1.2.4, sax@~1.2.4: version "1.2.4" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" - integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + resolved "https://registry.npm.taobao.org/sax/download/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + integrity sha1-KBYjTiN4vdxOU1T6tcqold9xANk= schema-utils@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" - integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== + resolved "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz?cache=0&sync_timestamp=1574946791935&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" + integrity sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A= dependencies: ajv "^6.1.0" ajv-errors "^1.0.0" ajv-keywords "^3.1.0" -schema-utils@^2.0.0, schema-utils@^2.0.1, schema-utils@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.5.0.tgz#8f254f618d402cc80257486213c8970edfd7c22f" - integrity sha512-32ISrwW2scPXHUSusP8qMg5dLUawKkyV+/qIEV9JdXKx+rsM6mi8vZY8khg2M69Qom16rtroWXD3Ybtiws38gQ== +schema-utils@^2.0.1, schema-utils@^2.5.0, schema-utils@^2.6.0, schema-utils@^2.6.1: + version "2.6.1" + resolved "https://registry.npm.taobao.org/schema-utils/download/schema-utils-2.6.1.tgz?cache=0&sync_timestamp=1574946791935&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-2.6.1.tgz#eb78f0b945c7bcfa2082b3565e8db3548011dc4f" + integrity sha1-63jwuUXHvPoggrNWXo2zVIAR3E8= dependencies: ajv "^6.10.2" ajv-keywords "^3.4.1" scope-analyzer@^2.0.1: version "2.0.5" - resolved "https://registry.yarnpkg.com/scope-analyzer/-/scope-analyzer-2.0.5.tgz#72c9c6770c3e66984f84c7d3c7045998a1a7db8a" - integrity sha512-+U5H0417mnTEstCD5VwOYO7V4vYuSqwqjFap40ythe67bhMFL5C3UgPwyBv7KDJsqUBIKafOD57xMlh1rN7eaw== + resolved "https://registry.npm.taobao.org/scope-analyzer/download/scope-analyzer-2.0.5.tgz#72c9c6770c3e66984f84c7d3c7045998a1a7db8a" + integrity sha1-csnGdww+ZphPhMfTxwRZmKGn24o= dependencies: array-from "^2.1.1" es6-map "^0.1.5" @@ -7392,7 +7331,7 @@ scope-analyzer@^2.0.1: scss-tokenizer@^0.2.3: version "0.2.3" - resolved "https://registry.yarnpkg.com/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz#8eb06db9a9723333824d3f5530641149847ce5d1" + resolved "https://registry.npm.taobao.org/scss-tokenizer/download/scss-tokenizer-0.2.3.tgz#8eb06db9a9723333824d3f5530641149847ce5d1" integrity sha1-jrBtualyMzOCTT9VMGQRSYR85dE= dependencies: js-base64 "^2.1.8" @@ -7400,40 +7339,45 @@ scss-tokenizer@^0.2.3: select-hose@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" + resolved "https://registry.npm.taobao.org/select-hose/download/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= select2@^4.0.11: version "4.0.12" - resolved "https://registry.yarnpkg.com/select2/-/select2-4.0.12.tgz#9c0492d4d06948f2bd079f6e14718a41c7eaa60e" - integrity sha512-mbXC05AvjCboZcRlgJqN4mlI2qmqshpRC76sKNAdxS1lPLOh2m/NTyfL6xsvGoY6eIhjaya4dbumN99MudVQ2w== + resolved "https://registry.npm.taobao.org/select2/download/select2-4.0.12.tgz#9c0492d4d06948f2bd079f6e14718a41c7eaa60e" + integrity sha1-nASS1NBpSPK9B59uFHGKQcfqpg4= selfsigned@^1.10.7: version "1.10.7" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.7.tgz#da5819fd049d5574f28e88a9bcc6dbc6e6f3906b" - integrity sha512-8M3wBCzeWIJnQfl43IKwOmC4H/RAp50S8DF60znzjW5GVqTcSe2vWclt7hmYVPkKPlHWOu5EaWOMZ2Y6W8ZXTA== + resolved "https://registry.npm.taobao.org/selfsigned/download/selfsigned-1.10.7.tgz#da5819fd049d5574f28e88a9bcc6dbc6e6f3906b" + integrity sha1-2lgZ/QSdVXTyjoipvMbbxubzkGs= dependencies: node-forge "0.9.0" "semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + resolved "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha1-qVT5Ma66UI0we78Gnv8MAclhFvc= + +semver@7.0.0: + version "7.0.0" + resolved "https://registry.npm.taobao.org/semver/download/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" + integrity sha1-XzyjV2HkfgWyBsba/yz4FPAxa44= semver@^6.0.0, semver@^6.3.0: version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + resolved "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0= semver@~5.3.0: version "5.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" + resolved "https://registry.npm.taobao.org/semver/download/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" integrity sha1-myzl094C0XxgEq0yaqa00M9U+U8= send@0.17.1: version "0.17.1" - resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" - integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== + resolved "https://registry.npm.taobao.org/send/download/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" + integrity sha1-wdiwWfeQD3Rm3Uk4vcROEd2zdsg= dependencies: debug "2.6.9" depd "~1.1.2" @@ -7449,19 +7393,14 @@ send@0.17.1: range-parser "~1.2.1" statuses "~1.5.0" -serialize-javascript@^1.4.0, serialize-javascript@^1.7.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.9.1.tgz#cfc200aef77b600c47da9bb8149c943e798c2fdb" - integrity sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A== - -serialize-javascript@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-2.1.0.tgz#9310276819efd0eb128258bb341957f6eb2fc570" - integrity sha512-a/mxFfU00QT88umAJQsNWOnUKckhNCqOl028N48e7wFmo2/EHpTo9Wso+iJJCMrQnmFvcjto5RJdAHEvVhcyUQ== +serialize-javascript@^2.1.2: + version "2.1.2" + resolved "https://registry.npm.taobao.org/serialize-javascript/download/serialize-javascript-2.1.2.tgz#ecec53b0e0317bdc95ef76ab7074b7384785fa61" + integrity sha1-7OxTsOAxe9yV73arcHS3OEeF+mE= serve-index@^1.9.1: version "1.9.1" - resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" + resolved "https://registry.npm.taobao.org/serve-index/download/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk= dependencies: accepts "~1.3.4" @@ -7474,8 +7413,8 @@ serve-index@^1.9.1: serve-static@1.14.1: version "1.14.1" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" - integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== + resolved "https://registry.npm.taobao.org/serve-static/download/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" + integrity sha1-Zm5jbcTwEPfvKZcKiKZ0MgiYsvk= dependencies: encodeurl "~1.0.2" escape-html "~1.0.3" @@ -7484,18 +7423,18 @@ serve-static@1.14.1: set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + resolved "https://registry.npm.taobao.org/set-blocking/download/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= set-immediate-shim@~1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" + resolved "https://registry.npm.taobao.org/set-immediate-shim/download/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" integrity sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E= set-value@^2.0.0, set-value@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" - integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== + resolved "https://registry.npm.taobao.org/set-value/download/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" + integrity sha1-oY1AUw5vB95CKMfe/kInr4ytAFs= dependencies: extend-shallow "^2.0.1" is-extendable "^0.1.1" @@ -7504,67 +7443,67 @@ set-value@^2.0.0, set-value@^2.0.1: setimmediate@^1.0.4: version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + resolved "https://registry.npm.taobao.org/setimmediate/download/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= setprototypeof@1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" - integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== + resolved "https://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + integrity sha1-0L2FU2iHtv58DYGMuWLZ2RxU5lY= setprototypeof@1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" - integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== + resolved "https://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" + integrity sha1-fpWsskqpL1iF4KvvW6ExMw1K5oM= sha.js@^2.4.0, sha.js@^2.4.8: version "2.4.11" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" - integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== + resolved "https://registry.npm.taobao.org/sha.js/download/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + integrity sha1-N6XPC4HsvGlD3hCbopYNGyZYSuc= dependencies: inherits "^2.0.1" safe-buffer "^5.0.1" shallow-clone@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" - integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== + resolved "https://registry.npm.taobao.org/shallow-clone/download/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" + integrity sha1-jymBrZJTH1UDWwH7IwdppA4C76M= dependencies: kind-of "^6.0.2" shallow-copy@~0.0.1: version "0.0.1" - resolved "https://registry.yarnpkg.com/shallow-copy/-/shallow-copy-0.0.1.tgz#415f42702d73d810330292cc5ee86eae1a11a170" + resolved "https://registry.npm.taobao.org/shallow-copy/download/shallow-copy-0.0.1.tgz#415f42702d73d810330292cc5ee86eae1a11a170" integrity sha1-QV9CcC1z2BAzApLMXuhurhoRoXA= shebang-command@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + resolved "https://registry.npm.taobao.org/shebang-command/download/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= dependencies: shebang-regex "^1.0.0" shebang-regex@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + resolved "https://registry.npm.taobao.org/shebang-regex/download/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= signal-exit@^3.0.0: version "3.0.2" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + resolved "https://registry.npm.taobao.org/signal-exit/download/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= simple-swizzle@^0.2.2: version "0.2.2" - resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + resolved "https://registry.npm.taobao.org/simple-swizzle/download/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= dependencies: is-arrayish "^0.3.1" snapdragon-node@^2.0.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" - integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== + resolved "https://registry.npm.taobao.org/snapdragon-node/download/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + integrity sha1-bBdfhv8UvbByRWPo88GwIaKGhTs= dependencies: define-property "^1.0.0" isobject "^3.0.0" @@ -7572,15 +7511,15 @@ snapdragon-node@^2.0.1: snapdragon-util@^3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" - integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== + resolved "https://registry.npm.taobao.org/snapdragon-util/download/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + integrity sha1-+VZHlIbyrNeXAGk/b3uAXkWrVuI= dependencies: kind-of "^3.2.0" snapdragon@^0.8.1: version "0.8.2" - resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" - integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== + resolved "https://registry.npm.taobao.org/snapdragon/download/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + integrity sha1-ZJIufFZbDhQgS6GqfWlkJ40lGC0= dependencies: base "^0.11.1" debug "^2.2.0" @@ -7593,8 +7532,8 @@ snapdragon@^0.8.1: sockjs-client@1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.4.0.tgz#c9f2568e19c8fd8173b4997ea3420e0bb306c7d5" - integrity sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g== + resolved "https://registry.npm.taobao.org/sockjs-client/download/sockjs-client-1.4.0.tgz#c9f2568e19c8fd8173b4997ea3420e0bb306c7d5" + integrity sha1-yfJWjhnI/YFztJl+o0IOC7MGx9U= dependencies: debug "^3.2.5" eventsource "^1.0.7" @@ -7605,107 +7544,107 @@ sockjs-client@1.4.0: sockjs@0.3.19: version "0.3.19" - resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.19.tgz#d976bbe800af7bd20ae08598d582393508993c0d" - integrity sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw== + resolved "https://registry.npm.taobao.org/sockjs/download/sockjs-0.3.19.tgz#d976bbe800af7bd20ae08598d582393508993c0d" + integrity sha1-2Xa76ACve9IK4IWY1YI5NQiZPA0= dependencies: faye-websocket "^0.10.0" uuid "^3.0.1" sort-keys@^1.0.0: version "1.1.2" - resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" + resolved "https://registry.npm.taobao.org/sort-keys/download/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" integrity sha1-RBttTTRnmPG05J6JIK37oOVD+a0= dependencies: is-plain-obj "^1.0.0" source-list-map@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" - integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== + resolved "https://registry.npm.taobao.org/source-list-map/download/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" + integrity sha1-OZO9hzv8SEecyp6jpUeDXHwVSzQ= source-map-resolve@^0.5.0: - version "0.5.2" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.2.tgz#72e2cc34095543e43b2c62b2c4c10d4a9054f259" - integrity sha512-MjqsvNwyz1s0k81Goz/9vRBe9SZdB09Bdw+/zYyO+3CuPk6fouTaxscHkgtE8jKvf01kVfl8riHzERQ/kefaSA== + version "0.5.3" + resolved "https://registry.npm.taobao.org/source-map-resolve/download/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" + integrity sha1-GQhmvs51U+H48mei7oLGBrVQmho= dependencies: - atob "^2.1.1" + atob "^2.1.2" decode-uri-component "^0.2.0" resolve-url "^0.2.1" source-map-url "^0.4.0" urix "^0.1.0" source-map-support@~0.5.12: - version "0.5.13" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" - integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== + version "0.5.16" + resolved "https://registry.npm.taobao.org/source-map-support/download/source-map-support-0.5.16.tgz?cache=0&sync_timestamp=1572389965235&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-support%2Fdownload%2Fsource-map-support-0.5.16.tgz#0ae069e7fe3ba7538c64c98515e35339eac5a042" + integrity sha1-CuBp5/47p1OMZMmFFeNTOerFoEI= dependencies: buffer-from "^1.0.0" source-map "^0.6.0" source-map-url@^0.4.0: version "0.4.0" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" + resolved "https://registry.npm.taobao.org/source-map-url/download/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= source-map@^0.4.2: version "0.4.4" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" + resolved "https://registry.npm.taobao.org/source-map/download/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" integrity sha1-66T12pwNyZneaAMti092FzZSA2s= dependencies: amdefine ">=0.0.4" -source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6: +source-map@^0.5.0, source-map@^0.5.6: version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + resolved "https://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + resolved "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha1-dHIq8y6WFOnCh6jQu95IteLxomM= source-map@~0.1.30: version "0.1.43" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346" + resolved "https://registry.npm.taobao.org/source-map/download/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346" integrity sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y= dependencies: amdefine ">=0.0.4" sparklines@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/sparklines/-/sparklines-1.2.0.tgz#bbbf2dede9bc337749e430baf67c2b37f88f6fa0" - integrity sha512-6OFlZzdFXyfFGJ8R5wrc9GdjoeQpjFuwkMKF1yVehLATHVrf4dSyZ4veGOFQ0mQ3xdJ0bCQSbd0idsm1gd2qWg== + resolved "https://registry.npm.taobao.org/sparklines/download/sparklines-1.2.0.tgz#bbbf2dede9bc337749e430baf67c2b37f88f6fa0" + integrity sha1-u78t7em8M3dJ5DC69nwrN/iPb6A= spdx-correct@^3.0.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" - integrity sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q== + resolved "https://registry.npm.taobao.org/spdx-correct/download/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" + integrity sha1-+4PlBERSaPFUsHTiGMh8ADzTHfQ= dependencies: spdx-expression-parse "^3.0.0" spdx-license-ids "^3.0.0" spdx-exceptions@^2.1.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977" - integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA== + resolved "https://registry.npm.taobao.org/spdx-exceptions/download/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977" + integrity sha1-LqRQrudPKom/uUUZwH/Nb0EyKXc= spdx-expression-parse@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" - integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg== + resolved "https://registry.npm.taobao.org/spdx-expression-parse/download/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" + integrity sha1-meEZt6XaAOBUkcn6M4t5BII7QdA= dependencies: spdx-exceptions "^2.1.0" spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: version "3.0.5" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" - integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== + resolved "https://registry.npm.taobao.org/spdx-license-ids/download/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" + integrity sha1-NpS1gEVnpFjTyARYQqY1hjL2JlQ= spdy-transport@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" - integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== + resolved "https://registry.npm.taobao.org/spdy-transport/download/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" + integrity sha1-ANSGOmQArXXfkzYaFghgXl3NzzE= dependencies: debug "^4.1.0" detect-node "^2.0.4" @@ -7716,8 +7655,8 @@ spdy-transport@^3.0.0: spdy@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.1.tgz#6f12ed1c5db7ea4f24ebb8b89ba58c87c08257f2" - integrity sha512-HeZS3PBdMA+sZSu0qwpCxl3DeALD5ASx8pAX0jZdKXSpPWbQ6SYGnlg3BBmYLx5LtiZrmkAZfErCm2oECBcioA== + resolved "https://registry.npm.taobao.org/spdy/download/spdy-4.0.1.tgz#6f12ed1c5db7ea4f24ebb8b89ba58c87c08257f2" + integrity sha1-bxLtHF236k8k67i4m6WMh8CCV/I= dependencies: debug "^4.1.0" handle-thing "^2.0.0" @@ -7727,20 +7666,20 @@ spdy@^4.0.1: split-string@^3.0.1, split-string@^3.0.2: version "3.1.0" - resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" - integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== + resolved "https://registry.npm.taobao.org/split-string/download/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + integrity sha1-fLCd2jqGWFcFxks5pkZgOGguj+I= dependencies: extend-shallow "^3.0.0" sprintf-js@~1.0.2: version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + resolved "https://registry.npm.taobao.org/sprintf-js/download/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= sshpk@^1.7.0: version "1.16.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" - integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== + resolved "https://registry.npm.taobao.org/sshpk/download/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" + integrity sha1-+2YcC+8ps520B2nuOfpwCT1vaHc= dependencies: asn1 "~0.2.3" assert-plus "^1.0.0" @@ -7754,34 +7693,34 @@ sshpk@^1.7.0: ssri@^6.0.1: version "6.0.1" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" - integrity sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA== + resolved "https://registry.npm.taobao.org/ssri/download/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" + integrity sha1-KjxBso3UW2K2Nnbst0ABJlrp7dg= dependencies: figgy-pudding "^3.5.1" ssri@^7.0.0: version "7.1.0" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-7.1.0.tgz#92c241bf6de82365b5c7fb4bd76e975522e1294d" - integrity sha512-77/WrDZUWocK0mvA5NTRQyveUf+wsrIc6vyrxpS8tVvYBcX215QbafrJR3KtkpskIzoFLqqNuuYQvxaMjXJ/0g== + resolved "https://registry.npm.taobao.org/ssri/download/ssri-7.1.0.tgz#92c241bf6de82365b5c7fb4bd76e975522e1294d" + integrity sha1-ksJBv23oI2W1x/tL126XVSLhKU0= dependencies: figgy-pudding "^3.5.1" minipass "^3.1.1" stable@^0.1.8: version "0.1.8" - resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" - integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== + resolved "https://registry.npm.taobao.org/stable/download/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" + integrity sha1-g26zyDgv4pNv6vVEYxAXzn1Ho88= static-eval@^2.0.0, static-eval@^2.0.2: version "2.0.3" - resolved "https://registry.yarnpkg.com/static-eval/-/static-eval-2.0.3.tgz#cb62fc79946bd4d5f623a45ad428233adace4d72" - integrity sha512-zsxDGucfAh8T339sSKgpFbvg15Fms2IVaJGC+jqp0bVsxhcpM+iMeAI8weNo8dmf4OblgifTBUoyk1vGVtYw2w== + resolved "https://registry.npm.taobao.org/static-eval/download/static-eval-2.0.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstatic-eval%2Fdownload%2Fstatic-eval-2.0.3.tgz#cb62fc79946bd4d5f623a45ad428233adace4d72" + integrity sha1-y2L8eZRr1NX2I6Ra1CgjOtrOTXI= dependencies: escodegen "^1.11.1" static-extend@^0.1.1: version "0.1.2" - resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + resolved "https://registry.npm.taobao.org/static-extend/download/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= dependencies: define-property "^0.2.5" @@ -7789,8 +7728,8 @@ static-extend@^0.1.1: static-module@^2.2.0: version "2.2.5" - resolved "https://registry.yarnpkg.com/static-module/-/static-module-2.2.5.tgz#bd40abceae33da6b7afb84a0e4329ff8852bfbbf" - integrity sha512-D8vv82E/Kpmz3TXHKG8PPsCPg+RAX6cbCOyvjM6x04qZtQ47EtJFVwRsdov3n5d6/6ynrOY9XB4JkaZwB2xoRQ== + resolved "https://registry.npm.taobao.org/static-module/download/static-module-2.2.5.tgz#bd40abceae33da6b7afb84a0e4329ff8852bfbbf" + integrity sha1-vUCrzq4z2mt6+4Sg5DKf+IUr+78= dependencies: concat-stream "~1.6.0" convert-source-map "^1.5.1" @@ -7809,8 +7748,8 @@ static-module@^2.2.0: static-module@^3.0.2: version "3.0.3" - resolved "https://registry.yarnpkg.com/static-module/-/static-module-3.0.3.tgz#cc2301ed3fe353e2d2a2195137013853676f9960" - integrity sha512-RDaMYaI5o/ym0GkCqL/PlD1Pn216omp8fY81okxZ6f6JQxWW5tptOw9reXoZX85yt/scYvbWIt6uoszeyf+/MQ== + resolved "https://registry.npm.taobao.org/static-module/download/static-module-3.0.3.tgz#cc2301ed3fe353e2d2a2195137013853676f9960" + integrity sha1-zCMB7T/jU+LSohlRNwE4U2dvmWA= dependencies: acorn-node "^1.3.0" concat-stream "~1.6.0" @@ -7829,36 +7768,36 @@ static-module@^3.0.2: "statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + resolved "https://registry.npm.taobao.org/statuses/download/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= stdout-stream@^1.4.0: version "1.4.1" - resolved "https://registry.yarnpkg.com/stdout-stream/-/stdout-stream-1.4.1.tgz#5ac174cdd5cd726104aa0c0b2bd83815d8d535de" - integrity sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA== + resolved "https://registry.npm.taobao.org/stdout-stream/download/stdout-stream-1.4.1.tgz#5ac174cdd5cd726104aa0c0b2bd83815d8d535de" + integrity sha1-WsF0zdXNcmEEqgwLK9g4FdjVNd4= dependencies: readable-stream "^2.0.1" stream-browserify@^2.0.1: version "2.0.2" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" - integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== + resolved "https://registry.npm.taobao.org/stream-browserify/download/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" + integrity sha1-h1IdOKRKp+6RzhzSpH3wy0ndZgs= dependencies: inherits "~2.0.1" readable-stream "^2.0.2" stream-each@^1.1.0: version "1.2.3" - resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" - integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== + resolved "https://registry.npm.taobao.org/stream-each/download/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" + integrity sha1-6+J6DDibBPvMIzZClS4Qcxr6m64= dependencies: end-of-stream "^1.1.0" stream-shift "^1.0.0" stream-http@^2.7.2: version "2.8.3" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" - integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== + resolved "https://registry.npm.taobao.org/stream-http/download/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" + integrity sha1-stJCRpKIpaJ+xP6JM6z2I95lFPw= dependencies: builtin-status-codes "^3.0.0" inherits "^2.0.1" @@ -7867,18 +7806,18 @@ stream-http@^2.7.2: xtend "^4.0.0" stream-shift@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" - integrity sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI= + version "1.0.1" + resolved "https://registry.npm.taobao.org/stream-shift/download/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" + integrity sha1-1wiCgVWasneEJCebCHfaPDktWj0= strict-uri-encode@^1.0.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" + resolved "https://registry.npm.taobao.org/strict-uri-encode/download/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= string-width@^1.0.1, string-width@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + resolved "https://registry.npm.taobao.org/string-width/download/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= dependencies: code-point-at "^1.0.0" @@ -7887,155 +7826,157 @@ string-width@^1.0.1, string-width@^1.0.2: "string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + resolved "https://registry.npm.taobao.org/string-width/download/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4= dependencies: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" string-width@^3.0.0, string-width@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" - integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + resolved "https://registry.npm.taobao.org/string-width/download/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha1-InZ74htirxCBV0MG9prFG2IgOWE= dependencies: emoji-regex "^7.0.1" is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" -string.prototype.trimleft@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz#6cc47f0d7eb8d62b0f3701611715a3954591d634" - integrity sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw== +string.prototype.trimleft@^2.1.1: + version "2.1.1" + resolved "https://registry.npm.taobao.org/string.prototype.trimleft/download/string.prototype.trimleft-2.1.1.tgz#9bdb8ac6abd6d602b17a4ed321870d2f8dcefc74" + integrity sha1-m9uKxqvW1gKxek7TIYcNL43O/HQ= dependencies: define-properties "^1.1.3" function-bind "^1.1.1" -string.prototype.trimright@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz#669d164be9df9b6f7559fa8e89945b168a5a6c58" - integrity sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg== +string.prototype.trimright@^2.1.1: + version "2.1.1" + resolved "https://registry.npm.taobao.org/string.prototype.trimright/download/string.prototype.trimright-2.1.1.tgz#440314b15996c866ce8a0341894d45186200c5d9" + integrity sha1-RAMUsVmWyGbOigNBiU1FGGIAxdk= dependencies: define-properties "^1.1.3" function-bind "^1.1.1" string_decoder@^1.0.0, string_decoder@^1.1.1: version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + resolved "https://registry.npm.taobao.org/string_decoder/download/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha1-QvEUWUpGzxqOMLCoT1bHjD7awh4= dependencies: safe-buffer "~5.2.0" string_decoder@~1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + resolved "https://registry.npm.taobao.org/string_decoder/download/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha1-nPFhG6YmhdcDCunkujQUnDrwP8g= dependencies: safe-buffer "~5.1.0" strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + resolved "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= dependencies: ansi-regex "^2.0.0" strip-ansi@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + resolved "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= dependencies: ansi-regex "^3.0.0" strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + resolved "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4= dependencies: ansi-regex "^4.1.0" strip-bom@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + resolved "https://registry.npm.taobao.org/strip-bom/download/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= dependencies: is-utf8 "^0.2.0" strip-eof@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + resolved "https://registry.npm.taobao.org/strip-eof/download/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= strip-indent@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" + resolved "https://registry.npm.taobao.org/strip-indent/download/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" integrity sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI= dependencies: get-stdin "^4.0.1" strip-json-comments@~2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + resolved "https://registry.npm.taobao.org/strip-json-comments/download/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= style-loader@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-1.0.0.tgz#1d5296f9165e8e2c85d24eee0b7caf9ec8ca1f82" - integrity sha512-B0dOCFwv7/eY31a5PCieNwMgMhVGFe9w+rh7s/Bx8kfFkrth9zfTZquoYvdw8URgiqxObQKcpW51Ugz1HjfdZw== + version "1.1.2" + resolved "https://registry.npm.taobao.org/style-loader/download/style-loader-1.1.2.tgz?cache=0&sync_timestamp=1577278859892&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstyle-loader%2Fdownload%2Fstyle-loader-1.1.2.tgz#1b519c19faf548df6182b93e72ea1a4156022c2f" + integrity sha1-G1GcGfr1SN9hgrk+cuoaQVYCLC8= dependencies: loader-utils "^1.2.3" schema-utils "^2.0.1" stylehacks@^4.0.0: version "4.0.3" - resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" - integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g== + resolved "https://registry.npm.taobao.org/stylehacks/download/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" + integrity sha1-Zxj8r00eB9ihMYaQiB6NlnJqcdU= dependencies: browserslist "^4.0.0" postcss "^7.0.0" postcss-selector-parser "^3.0.0" summernote@^0.8.12: - version "0.8.12" - resolved "https://registry.yarnpkg.com/summernote/-/summernote-0.8.12.tgz#563502ed882abde9daab9db1e7eba330d37ac020" - integrity sha512-RVEJoIyztwPpopTwZvjag1WOvbmhUGFe6Mc9RADzzcX1ogG8pIXCB88icu/vjNYihITrzj2zZsoFMcDRHSlhEA== + version "0.8.15" + resolved "https://registry.npm.taobao.org/summernote/download/summernote-0.8.15.tgz#f783f23b2c1f85c1609855ad37205595147a3c39" + integrity sha1-94PyOywfhcFgmFWtNyBVlRR6PDk= + dependencies: + jquery "^3.4.1" supports-color@6.1.0, supports-color@^6.1.0: version "6.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" - integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== + resolved "https://registry.npm.taobao.org/supports-color/download/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" + integrity sha1-B2Srxpxj1ayELdSGfo0CXogN+PM= dependencies: has-flag "^3.0.0" supports-color@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + resolved "https://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= supports-color@^5.3.0: version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + resolved "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha1-4uaaRKyHcveKHsCzW2id9lMO/I8= dependencies: has-flag "^3.0.0" -svg-to-pdfkit@^0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/svg-to-pdfkit/-/svg-to-pdfkit-0.1.7.tgz#7db6d47e47b3888dce18060751a8de2417f85775" - integrity sha1-fbbUfkeziI3OGAYHUajeJBf4V3U= +svg-to-pdfkit@^0.1.8: + version "0.1.8" + resolved "https://registry.npm.taobao.org/svg-to-pdfkit/download/svg-to-pdfkit-0.1.8.tgz#5921765922044843f0c1a5b25ec1ef8a4a33b8af" + integrity sha1-WSF2WSIESEPwwaWyXsHvikozuK8= dependencies: pdfkit ">=0.8.1" svgo@^1.0.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.0.tgz#bae51ba95ded9a33a36b7c46ce9c359ae9154313" - integrity sha512-MLfUA6O+qauLDbym+mMZgtXCGRfIxyQoeH6IKVcFslyODEe/ElJNwr0FohQ3xG4C6HK6bk3KYPPXwHVJk3V5NQ== + version "1.3.2" + resolved "https://registry.npm.taobao.org/svgo/download/svgo-1.3.2.tgz?cache=0&sync_timestamp=1572433264480&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsvgo%2Fdownload%2Fsvgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" + integrity sha1-ttxRHAYzRsnkFbgeQ0ARRbltQWc= dependencies: chalk "^2.4.1" coa "^2.0.2" css-select "^2.0.0" css-select-base-adapter "^0.1.1" - css-tree "1.0.0-alpha.33" - csso "^3.5.1" + css-tree "1.0.0-alpha.37" + csso "^4.0.2" js-yaml "^3.13.1" mkdirp "~0.5.1" object.values "^1.1.0" @@ -8046,31 +7987,31 @@ svgo@^1.0.0: sweetalert2@^8.19.0: version "8.19.0" - resolved "https://registry.yarnpkg.com/sweetalert2/-/sweetalert2-8.19.0.tgz#692269bc8ddc5760e2b5070da2cf5e9e278bac0b" - integrity sha512-nFL++N3bitkEkd487Tv4i5ZxusmnoAAXHjtk7lp603Opxb8wlvVnz3hqa7qiIw6QFL04JC810E6qVQNf8s0vYQ== + resolved "https://registry.npm.taobao.org/sweetalert2/download/sweetalert2-8.19.0.tgz#692269bc8ddc5760e2b5070da2cf5e9e278bac0b" + integrity sha1-aSJpvI3cV2DitQcNos9enieLrAs= tapable@^1.0.0, tapable@^1.1.3: version "1.1.3" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" - integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== + resolved "https://registry.npm.taobao.org/tapable/download/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" + integrity sha1-ofzMBrWNth/XpF2i2kT186Pme6I= tar@^2.0.0: version "2.2.2" - resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.2.tgz#0ca8848562c7299b8b446ff6a4d60cdbb23edc40" - integrity sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA== + resolved "https://registry.npm.taobao.org/tar/download/tar-2.2.2.tgz#0ca8848562c7299b8b446ff6a4d60cdbb23edc40" + integrity sha1-DKiEhWLHKZuLRG/2pNYM27I+3EA= dependencies: block-stream "*" fstream "^1.0.12" inherits "2" -tar@^4: - version "4.4.10" - resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.10.tgz#946b2810b9a5e0b26140cf78bea6b0b0d689eba1" - integrity sha512-g2SVs5QIxvo6OLp0GudTqEf05maawKUxXru104iaayWA09551tFCTI8f1Asb4lPfkBr91k07iL4c11XO3/b0tA== +tar@^4.4.2: + version "4.4.13" + resolved "https://registry.npm.taobao.org/tar/download/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" + integrity sha1-Q7NkvFKIjVVSmGN7ENYHkCVKtSU= dependencies: chownr "^1.1.1" fs-minipass "^1.2.5" - minipass "^2.3.5" + minipass "^2.8.6" minizlib "^1.2.1" mkdirp "^0.5.0" safe-buffer "^5.1.2" @@ -8078,8 +8019,8 @@ tar@^4: tempusdominus-bootstrap-4@^5.1.2: version "5.1.2" - resolved "https://registry.yarnpkg.com/tempusdominus-bootstrap-4/-/tempusdominus-bootstrap-4-5.1.2.tgz#3c9906ca6e5d563faa0b81b2fdc6aa79cad9c0be" - integrity sha512-ksD8qc4wOJeE19wvryXmEpRzMUSZu4wSOdG6zKSn8l4ccad16249KOX1j0CccyZpuuES/n4FLqLAUB+Dd1LTBA== + resolved "https://registry.npm.taobao.org/tempusdominus-bootstrap-4/download/tempusdominus-bootstrap-4-5.1.2.tgz#3c9906ca6e5d563faa0b81b2fdc6aa79cad9c0be" + integrity sha1-PJkGym5dVj+qC4Gy/caqecrZwL4= dependencies: bootstrap ">=4.1.2" jquery "^3.0" @@ -8087,48 +8028,39 @@ tempusdominus-bootstrap-4@^5.1.2: moment-timezone "^0.5.11" popper.js "^1.14.3" -terser-webpack-plugin@^1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.1.tgz#61b18e40eaee5be97e771cdbb10ed1280888c2b4" - integrity sha512-ZXmmfiwtCLfz8WKZyYUuuHf3dMYEjg8NrjHMb0JqHVHVOSkzp3cW2/XG1fP3tRhqEqSzMwzzRQGtAPbs4Cncxg== +terser-webpack-plugin@^1.4.3: + version "1.4.3" + resolved "https://registry.npm.taobao.org/terser-webpack-plugin/download/terser-webpack-plugin-1.4.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fterser-webpack-plugin%2Fdownload%2Fterser-webpack-plugin-1.4.3.tgz#5ecaf2dbdc5fb99745fd06791f46fc9ddb1c9a7c" + integrity sha1-Xsry29xfuZdF/QZ5H0b8ndscmnw= dependencies: cacache "^12.0.2" find-cache-dir "^2.1.0" is-wsl "^1.1.0" schema-utils "^1.0.0" - serialize-javascript "^1.7.0" + serialize-javascript "^2.1.2" source-map "^0.6.1" terser "^4.1.2" webpack-sources "^1.4.0" worker-farm "^1.7.0" terser-webpack-plugin@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-2.2.1.tgz#5569e6c7d8be79e5e43d6da23acc3b6ba77d22bd" - integrity sha512-jwdauV5Al7zopR6OAYvIIRcxXCSvLjZjr7uZE8l2tIWb/ryrGN48sJftqGf5k9z09tWhajx53ldp0XPI080YnA== + version "2.3.2" + resolved "https://registry.npm.taobao.org/terser-webpack-plugin/download/terser-webpack-plugin-2.3.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fterser-webpack-plugin%2Fdownload%2Fterser-webpack-plugin-2.3.2.tgz#6d3d1b0590c8f729bfbaeb7fb2528b8b62db4c74" + integrity sha1-bT0bBZDI9ym/uut/slKLi2LbTHQ= dependencies: cacache "^13.0.1" - find-cache-dir "^3.0.0" + find-cache-dir "^3.2.0" jest-worker "^24.9.0" - schema-utils "^2.5.0" - serialize-javascript "^2.1.0" + schema-utils "^2.6.1" + serialize-javascript "^2.1.2" source-map "^0.6.1" - terser "^4.3.9" + terser "^4.4.3" webpack-sources "^1.4.3" -terser@^4.1.2: - version "4.3.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-4.3.1.tgz#09820bcb3398299c4b48d9a86aefc65127d0ed65" - integrity sha512-pnzH6dnFEsR2aa2SJaKb1uSCl3QmIsJ8dEkj0Fky+2AwMMcC9doMqLOQIH6wVTEKaVfKVvLSk5qxPBEZT9mywg== - dependencies: - commander "^2.20.0" - source-map "~0.6.1" - source-map-support "~0.5.12" - -terser@^4.3.9: - version "4.4.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-4.4.0.tgz#22c46b4817cf4c9565434bfe6ad47336af259ac3" - integrity sha512-oDG16n2WKm27JO8h4y/w3iqBGAOSCtq7k8dRmrn4Wf9NouL0b2WpMHGChFGZq4nFAQy1FsNJrVQHfurXOSTmOA== +terser@^4.1.2, terser@^4.4.3: + version "4.6.3" + resolved "https://registry.npm.taobao.org/terser/download/terser-4.6.3.tgz#e33aa42461ced5238d352d2df2a67f21921f8d87" + integrity sha1-4zqkJGHO1SONNS0t8qZ/IZIfjYc= dependencies: commander "^2.20.0" source-map "~0.6.1" @@ -8136,59 +8068,59 @@ terser@^4.3.9: through2@^2.0.0, through2@~2.0.3: version "2.0.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" - integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + resolved "https://registry.npm.taobao.org/through2/download/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha1-AcHjnrMdB8t9A6lqcIIyYLIxMs0= dependencies: readable-stream "~2.3.6" xtend "~4.0.1" through@~2.3.4: version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + resolved "https://registry.npm.taobao.org/through/download/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= thunky@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.0.3.tgz#f5df732453407b09191dae73e2a8cc73f381a826" - integrity sha512-YwT8pjmNcAXBZqrubu22P4FYsh2D4dxRmnWBOL8Jk8bUcRUtc5326kx32tuTmFDAZtLOGEVNl8POAR8j896Iow== + version "1.1.0" + resolved "https://registry.npm.taobao.org/thunky/download/thunky-1.1.0.tgz?cache=0&sync_timestamp=1578482069419&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fthunky%2Fdownload%2Fthunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" + integrity sha1-Wrr3FKlAXbBQRzK7zNLO3Z75U30= timers-browserify@^2.0.4: version "2.0.11" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.11.tgz#800b1f3eee272e5bc53ee465a04d0e804c31211f" - integrity sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ== + resolved "https://registry.npm.taobao.org/timers-browserify/download/timers-browserify-2.0.11.tgz#800b1f3eee272e5bc53ee465a04d0e804c31211f" + integrity sha1-gAsfPu4nLlvFPuRloE0OgEwxIR8= dependencies: setimmediate "^1.0.4" timsort@^0.3.0: version "0.3.0" - resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" + resolved "https://registry.npm.taobao.org/timsort/download/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= tiny-inflate@^1.0.0, tiny-inflate@^1.0.2: version "1.0.3" - resolved "https://registry.yarnpkg.com/tiny-inflate/-/tiny-inflate-1.0.3.tgz#122715494913a1805166aaf7c93467933eea26c4" - integrity sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw== + resolved "https://registry.npm.taobao.org/tiny-inflate/download/tiny-inflate-1.0.3.tgz#122715494913a1805166aaf7c93467933eea26c4" + integrity sha1-EicVSUkToYBRZqr3yTRnkz7qJsQ= to-arraybuffer@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" + resolved "https://registry.npm.taobao.org/to-arraybuffer/download/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= to-fast-properties@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + resolved "https://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= to-object-path@^0.3.0: version "0.3.0" - resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + resolved "https://registry.npm.taobao.org/to-object-path/download/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= dependencies: kind-of "^3.0.2" to-regex-range@^2.1.0: version "2.1.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + resolved "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= dependencies: is-number "^3.0.0" @@ -8196,8 +8128,8 @@ to-regex-range@^2.1.0: to-regex@^3.0.1, to-regex@^3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" - integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== + resolved "https://registry.npm.taobao.org/to-regex/download/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + integrity sha1-E8/dmzNlUvMLUfM6iuG0Knp1mc4= dependencies: define-property "^2.0.2" extend-shallow "^3.0.2" @@ -8206,137 +8138,132 @@ to-regex@^3.0.1, to-regex@^3.0.2: toastr@^2.1.4: version "2.1.4" - resolved "https://registry.yarnpkg.com/toastr/-/toastr-2.1.4.tgz#8b43be64fb9d0c414871446f2db8e8ca4e95f181" + resolved "https://registry.npm.taobao.org/toastr/download/toastr-2.1.4.tgz#8b43be64fb9d0c414871446f2db8e8ca4e95f181" integrity sha1-i0O+ZPudDEFIcURvLbjoyk6V8YE= dependencies: jquery ">=1.12.0" toidentifier@1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" - integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== + resolved "https://registry.npm.taobao.org/toidentifier/download/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" + integrity sha1-fhvjRw8ed5SLxD2Uo8j013UrpVM= tough-cookie@~2.4.3: version "2.4.3" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" - integrity sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ== + resolved "https://registry.npm.taobao.org/tough-cookie/download/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" + integrity sha1-U/Nto/R3g7CSWvoG/587FlKA94E= dependencies: psl "^1.1.24" punycode "^1.4.1" trim-newlines@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" + resolved "https://registry.npm.taobao.org/trim-newlines/download/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" integrity sha1-WIeWa7WCpFA6QetST301ARgVphM= -trim-right@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" - integrity sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM= - "true-case-path@^1.0.2": version "1.0.3" - resolved "https://registry.yarnpkg.com/true-case-path/-/true-case-path-1.0.3.tgz#f813b5a8c86b40da59606722b144e3225799f47d" - integrity sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew== + resolved "https://registry.npm.taobao.org/true-case-path/download/true-case-path-1.0.3.tgz#f813b5a8c86b40da59606722b144e3225799f47d" + integrity sha1-+BO1qMhrQNpZYGcisUTjIleZ9H0= dependencies: glob "^7.1.2" ts-pnp@^1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.1.4.tgz#ae27126960ebaefb874c6d7fa4729729ab200d90" - integrity sha512-1J/vefLC+BWSo+qe8OnJQfWTYRS6ingxjwqmHMqaMxXMj7kFtKLgAaYW3JeX3mktjgUL+etlU8/B4VUAUI9QGw== + version "1.1.5" + resolved "https://registry.npm.taobao.org/ts-pnp/download/ts-pnp-1.1.5.tgz#840e0739c89fce5f3abd9037bb091dbff16d9dec" + integrity sha1-hA4HOcifzl86vZA3uwkdv/Ftnew= tslib@^1.9.0: version "1.10.0" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" - integrity sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ== + resolved "https://registry.npm.taobao.org/tslib/download/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" + integrity sha1-w8GflZc/sKYpc/sJ2Q2WHuQ+XIo= tty-browserify@0.0.0: version "0.0.0" - resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" + resolved "https://registry.npm.taobao.org/tty-browserify/download/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= tunnel-agent@^0.6.0: version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + resolved "https://registry.npm.taobao.org/tunnel-agent/download/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= dependencies: safe-buffer "^5.0.1" turbolinks@^5.2.0: version "5.2.0" - resolved "https://registry.yarnpkg.com/turbolinks/-/turbolinks-5.2.0.tgz#e6877a55ea5c1cb3bb225f0a4ae303d6d32ff77c" - integrity sha512-pMiez3tyBo6uRHFNNZoYMmrES/IaGgMhQQM+VFF36keryjb5ms0XkVpmKHkfW/4Vy96qiGW3K9bz0tF5sK9bBw== + resolved "https://registry.npm.taobao.org/turbolinks/download/turbolinks-5.2.0.tgz#e6877a55ea5c1cb3bb225f0a4ae303d6d32ff77c" + integrity sha1-5od6VepcHLO7Il8KSuMD1tMv93w= tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + resolved "https://registry.npm.taobao.org/tweetnacl/download/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= type-check@~0.3.2: version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + resolved "https://registry.npm.taobao.org/type-check/download/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= dependencies: prelude-ls "~1.1.2" type-is@~1.6.17, type-is@~1.6.18: version "1.6.18" - resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" - integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + resolved "https://registry.npm.taobao.org/type-is/download/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha1-TlUs0F3wlGfcvE73Od6J8s83wTE= dependencies: media-typer "0.3.0" mime-types "~2.1.24" type@^1.0.1: version "1.2.0" - resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" - integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== + resolved "https://registry.npm.taobao.org/type/download/type-1.2.0.tgz?cache=0&sync_timestamp=1570722894467&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype%2Fdownload%2Ftype-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" + integrity sha1-hI3XaY2vo+VKbEeedZxLw/GIR6A= type@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/type/-/type-2.0.0.tgz#5f16ff6ef2eb44f260494dae271033b29c09a9c3" - integrity sha512-KBt58xCHry4Cejnc2ISQAF7QY+ORngsWfxezO68+12hKV6lQY8P/psIkcbjeHWn7MqcgciWJyCCevFMJdIXpow== + resolved "https://registry.npm.taobao.org/type/download/type-2.0.0.tgz?cache=0&sync_timestamp=1570722894467&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype%2Fdownload%2Ftype-2.0.0.tgz#5f16ff6ef2eb44f260494dae271033b29c09a9c3" + integrity sha1-Xxb/bvLrRPJgSU2uJxAzspwJqcM= typedarray@^0.0.6: version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + resolved "https://registry.npm.taobao.org/typedarray/download/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= unicode-canonical-property-names-ecmascript@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" - integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== + resolved "https://registry.npm.taobao.org/unicode-canonical-property-names-ecmascript/download/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" + integrity sha1-JhmADEyCWADv3YNDr33Zkzy+KBg= unicode-match-property-ecmascript@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" - integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== + resolved "https://registry.npm.taobao.org/unicode-match-property-ecmascript/download/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" + integrity sha1-jtKjJWmWG86SJ9Cc0/+7j+1fAgw= dependencies: unicode-canonical-property-names-ecmascript "^1.0.4" unicode-property-aliases-ecmascript "^1.0.4" unicode-match-property-value-ecmascript@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.1.0.tgz#5b4b426e08d13a80365e0d657ac7a6c1ec46a277" - integrity sha512-hDTHvaBk3RmFzvSl0UVrUmC3PuW9wKVnpoUDYH0JDkSIovzw+J5viQmeYHxVSBptubnr7PbH2e0fnpDRQnQl5g== + resolved "https://registry.npm.taobao.org/unicode-match-property-value-ecmascript/download/unicode-match-property-value-ecmascript-1.1.0.tgz#5b4b426e08d13a80365e0d657ac7a6c1ec46a277" + integrity sha1-W0tCbgjROoA2Xg1lesemwexGonc= unicode-properties@^1.0.0: version "1.3.1" - resolved "https://registry.yarnpkg.com/unicode-properties/-/unicode-properties-1.3.1.tgz#cc642b6314bde2c691d65dd94cece09ed84f1282" - integrity sha512-nIV3Tf3LcUEZttY/2g4ZJtGXhWwSkuLL+rCu0DIAMbjyVPj+8j5gNVz4T/sVbnQybIsd5SFGkPKg/756OY6jlA== + resolved "https://registry.npm.taobao.org/unicode-properties/download/unicode-properties-1.3.1.tgz#cc642b6314bde2c691d65dd94cece09ed84f1282" + integrity sha1-zGQrYxS94saR1l3ZTOzgnthPEoI= dependencies: base64-js "^1.3.0" unicode-trie "^2.0.0" unicode-property-aliases-ecmascript@^1.0.4: version "1.0.5" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.0.5.tgz#a9cc6cc7ce63a0a3023fc99e341b94431d405a57" - integrity sha512-L5RAqCfXqAwR3RriF8pM0lU0w4Ryf/GgzONwi6KnL1taJQa7x1TCxdJnILX59WIGOwR57IVxn7Nej0fz1Ny6fw== + resolved "https://registry.npm.taobao.org/unicode-property-aliases-ecmascript/download/unicode-property-aliases-ecmascript-1.0.5.tgz#a9cc6cc7ce63a0a3023fc99e341b94431d405a57" + integrity sha1-qcxsx85joKMCP8meNBuUQx1AWlc= unicode-trie@^0.3.0: version "0.3.1" - resolved "https://registry.yarnpkg.com/unicode-trie/-/unicode-trie-0.3.1.tgz#d671dddd89101a08bac37b6a5161010602052085" + resolved "https://registry.npm.taobao.org/unicode-trie/download/unicode-trie-0.3.1.tgz#d671dddd89101a08bac37b6a5161010602052085" integrity sha1-1nHd3YkQGgi6w3tqUWEBBgIFIIU= dependencies: pako "^0.2.5" @@ -8344,24 +8271,24 @@ unicode-trie@^0.3.0: unicode-trie@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/unicode-trie/-/unicode-trie-1.0.0.tgz#f649afdca127135edb55ca0ad7c8c60656d92ad1" - integrity sha512-v5raLKsobbFbWLMoX9+bChts/VhPPj3XpkNr/HbqkirXR1DPk8eo9IYKyvk0MQZFkaoRsFj2Rmaqgi2rfAZYtA== + resolved "https://registry.npm.taobao.org/unicode-trie/download/unicode-trie-1.0.0.tgz#f649afdca127135edb55ca0ad7c8c60656d92ad1" + integrity sha1-9kmv3KEnE17bVcoK18jGBlbZKtE= dependencies: pako "^0.2.5" tiny-inflate "^1.0.0" unicode-trie@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/unicode-trie/-/unicode-trie-2.0.0.tgz#8fd8845696e2e14a8b67d78fa9e0dd2cad62fec8" - integrity sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ== + resolved "https://registry.npm.taobao.org/unicode-trie/download/unicode-trie-2.0.0.tgz#8fd8845696e2e14a8b67d78fa9e0dd2cad62fec8" + integrity sha1-j9iEVpbi4UqLZ9ePqeDdLK1i/sg= dependencies: pako "^0.2.5" tiny-inflate "^1.0.0" union-value@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" - integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== + resolved "https://registry.npm.taobao.org/union-value/download/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" + integrity sha1-C2/nuDWuzaYcbqTU8CwUIh4QmEc= dependencies: arr-union "^3.1.0" get-value "^2.0.6" @@ -8370,46 +8297,46 @@ union-value@^1.0.0: uniq@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" + resolved "https://registry.npm.taobao.org/uniq/download/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= uniqs@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" + resolved "https://registry.npm.taobao.org/uniqs/download/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= unique-filename@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" - integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== + resolved "https://registry.npm.taobao.org/unique-filename/download/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" + integrity sha1-HWl2k2mtoFgxA6HmrodoG1ZXMjA= dependencies: unique-slug "^2.0.0" unique-slug@^2.0.0: version "2.0.2" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" - integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== + resolved "https://registry.npm.taobao.org/unique-slug/download/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" + integrity sha1-uqvOkQg/xk6UWw861hPiZPfNTmw= dependencies: imurmurhash "^0.1.4" universalify@^0.1.0: version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + resolved "https://registry.npm.taobao.org/universalify/download/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha1-tkb2m+OULavOzJ1mOcgNwQXvqmY= unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + resolved "https://registry.npm.taobao.org/unpipe/download/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= unquote@~1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" + resolved "https://registry.npm.taobao.org/unquote/download/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= unset-value@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + resolved "https://registry.npm.taobao.org/unset-value/download/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= dependencies: has-value "^0.3.1" @@ -8417,32 +8344,32 @@ unset-value@^1.0.0: upath@^1.1.1: version "1.2.0" - resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" - integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== + resolved "https://registry.npm.taobao.org/upath/download/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" + integrity sha1-j2bbzVWog6za5ECK+LA1pQRMGJQ= uri-js@^4.2.2: version "4.2.2" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" - integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== + resolved "https://registry.npm.taobao.org/uri-js/download/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" + integrity sha1-lMVA4f93KVbiKZUHwBCupsiDjrA= dependencies: punycode "^2.1.0" urix@^0.1.0: version "0.1.0" - resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + resolved "https://registry.npm.taobao.org/urix/download/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= url-parse@^1.4.3: version "1.4.7" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278" - integrity sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg== + resolved "https://registry.npm.taobao.org/url-parse/download/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278" + integrity sha1-qKg1NejACjFuQDpdtKwbm4U64ng= dependencies: querystringify "^2.1.1" requires-port "^1.0.0" url@^0.11.0: version "0.11.0" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + resolved "https://registry.npm.taobao.org/url/download/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= dependencies: punycode "1.3.2" @@ -8450,72 +8377,72 @@ url@^0.11.0: use@^3.1.0: version "3.1.1" - resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" - integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== + resolved "https://registry.npm.taobao.org/use/download/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + integrity sha1-1QyMrHmhn7wg8pEfVuuXP04QBw8= util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + resolved "https://registry.npm.taobao.org/util-deprecate/download/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= util.promisify@~1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" - integrity sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA== + resolved "https://registry.npm.taobao.org/util.promisify/download/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" + integrity sha1-RA9xZaRZyaFtwUXrjnLzVocJcDA= dependencies: define-properties "^1.1.2" object.getownpropertydescriptors "^2.0.3" util@0.10.3: version "0.10.3" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + resolved "https://registry.npm.taobao.org/util/download/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= dependencies: inherits "2.0.1" util@^0.11.0: version "0.11.1" - resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" - integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== + resolved "https://registry.npm.taobao.org/util/download/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" + integrity sha1-MjZzNyDsZLsn9uJvQhqqLhtYjWE= dependencies: inherits "2.0.3" utils-merge@1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + resolved "https://registry.npm.taobao.org/utils-merge/download/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= uuid@^3.0.1, uuid@^3.3.2: version "3.3.3" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.3.tgz#4568f0216e78760ee1dbf3a4d2cf53e224112866" - integrity sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ== + resolved "https://registry.npm.taobao.org/uuid/download/uuid-3.3.3.tgz#4568f0216e78760ee1dbf3a4d2cf53e224112866" + integrity sha1-RWjwIW54dg7h2/Ok0s9T4iQRKGY= v8-compile-cache@2.0.3: version "2.0.3" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz#00f7494d2ae2b688cfe2899df6ed2c54bef91dbe" - integrity sha512-CNmdbwQMBjwr9Gsmohvm0pbL954tJrNzf6gWL3K+QMQf00PF7ERGrEiLgjuU3mKreLC2MeGhUsNV9ybTbLgd3w== + resolved "https://registry.npm.taobao.org/v8-compile-cache/download/v8-compile-cache-2.0.3.tgz#00f7494d2ae2b688cfe2899df6ed2c54bef91dbe" + integrity sha1-APdJTSritojP4omd9u0sVL75Hb4= validate-npm-package-license@^3.0.1: version "3.0.4" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" - integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + resolved "https://registry.npm.taobao.org/validate-npm-package-license/download/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha1-/JH2uce6FchX9MssXe/uw51PQQo= dependencies: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" vary@~1.1.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + resolved "https://registry.npm.taobao.org/vary/download/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= vendors@^1.0.0: version "1.0.3" - resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.3.tgz#a6467781abd366217c050f8202e7e50cc9eef8c0" - integrity sha512-fOi47nsJP5Wqefa43kyWSg80qF+Q3XA6MUkgi7Hp1HQaKDQW4cQrK2D0P7mmbFtsV1N89am55Yru/nyEwRubcw== + resolved "https://registry.npm.taobao.org/vendors/download/vendors-1.0.3.tgz#a6467781abd366217c050f8202e7e50cc9eef8c0" + integrity sha1-pkZ3gavTZiF8BQ+CAuflDMnu+MA= verror@1.10.0: version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + resolved "https://registry.npm.taobao.org/verror/download/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= dependencies: assert-plus "^1.0.0" @@ -8524,18 +8451,18 @@ verror@1.10.0: vlq@^0.2.2: version "0.2.3" - resolved "https://registry.yarnpkg.com/vlq/-/vlq-0.2.3.tgz#8f3e4328cf63b1540c0d67e1b2778386f8975b26" - integrity sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow== + resolved "https://registry.npm.taobao.org/vlq/download/vlq-0.2.3.tgz#8f3e4328cf63b1540c0d67e1b2778386f8975b26" + integrity sha1-jz5DKM9jsVQMDWfhsneDhviXWyY= vm-browserify@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.0.tgz#bd76d6a23323e2ca8ffa12028dc04559c75f9019" - integrity sha512-iq+S7vZJE60yejDYM0ek6zg308+UZsdtPExWP9VZoCFCz1zkJoXFnAX7aZfd/ZwrkidzdUZL0C/ryW+JwAiIGw== + version "1.1.2" + resolved "https://registry.npm.taobao.org/vm-browserify/download/vm-browserify-1.1.2.tgz?cache=0&sync_timestamp=1572870776965&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvm-browserify%2Fdownload%2Fvm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" + integrity sha1-eGQcSIuObKkadfUR56OzKobl3aA= watchpack@^1.6.0: version "1.6.0" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00" - integrity sha512-i6dHe3EyLjMmDlU1/bGQpEw25XSjkJULPuAVKCbNRefQVq48yXKUpwg538F7AZTf9kyr57zj++pQFltUa5H7yA== + resolved "https://registry.npm.taobao.org/watchpack/download/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00" + integrity sha1-S8EsLr6KonenHx0/FNaFx7RGzQA= dependencies: chokidar "^2.0.2" graceful-fs "^4.1.2" @@ -8543,15 +8470,15 @@ watchpack@^1.6.0: wbuf@^1.1.0, wbuf@^1.7.3: version "1.7.3" - resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" - integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== + resolved "https://registry.npm.taobao.org/wbuf/download/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" + integrity sha1-wdjRSTFtPqhShIiVy2oL/oh7h98= dependencies: minimalistic-assert "^1.0.0" webpack-assets-manifest@^3.1.1: version "3.1.1" - resolved "https://registry.yarnpkg.com/webpack-assets-manifest/-/webpack-assets-manifest-3.1.1.tgz#39bbc3bf2ee57fcd8ba07cda51c9ba4a3c6ae1de" - integrity sha512-JV9V2QKc5wEWQptdIjvXDUL1ucbPLH2f27toAY3SNdGZp+xSaStAgpoMcvMZmqtFrBc9a5pTS1058vxyMPOzRQ== + resolved "https://registry.npm.taobao.org/webpack-assets-manifest/download/webpack-assets-manifest-3.1.1.tgz#39bbc3bf2ee57fcd8ba07cda51c9ba4a3c6ae1de" + integrity sha1-ObvDvy7lf82LoHzaUcm6Sjxq4d4= dependencies: chalk "^2.0" lodash.get "^4.0" @@ -8563,8 +8490,8 @@ webpack-assets-manifest@^3.1.1: webpack-cli@^3.3.10: version "3.3.10" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.10.tgz#17b279267e9b4fb549023fae170da8e6e766da13" - integrity sha512-u1dgND9+MXaEt74sJR4PR7qkPxXUSQ0RXYq8x1L6Jg1MYVEmGPrH6Ah6C4arD4r0J1P5HKjRqpab36k0eIzPqg== + resolved "https://registry.npm.taobao.org/webpack-cli/download/webpack-cli-3.3.10.tgz#17b279267e9b4fb549023fae170da8e6e766da13" + integrity sha1-F7J5Jn6bT7VJAj+uFw2o5udm2hM= dependencies: chalk "2.4.2" cross-spawn "6.0.5" @@ -8580,8 +8507,8 @@ webpack-cli@^3.3.10: webpack-dev-middleware@^3.7.2: version "3.7.2" - resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz#0019c3db716e3fa5cecbf64f2ab88a74bab331f3" - integrity sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw== + resolved "https://registry.npm.taobao.org/webpack-dev-middleware/download/webpack-dev-middleware-3.7.2.tgz#0019c3db716e3fa5cecbf64f2ab88a74bab331f3" + integrity sha1-ABnD23FuP6XOy/ZPKriKdLqzMfM= dependencies: memory-fs "^0.4.1" mime "^2.4.4" @@ -8591,8 +8518,8 @@ webpack-dev-middleware@^3.7.2: webpack-dev-server@^3.10.1: version "3.10.1" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.10.1.tgz#1ff3e5cccf8e0897aa3f5909c654e623f69b1c0e" - integrity sha512-AGG4+XrrXn4rbZUueyNrQgO4KGnol+0wm3MPdqGLmmA+NofZl3blZQKxZ9BND6RDNuvAK9OMYClhjOSnxpWRoA== + resolved "https://registry.npm.taobao.org/webpack-dev-server/download/webpack-dev-server-3.10.1.tgz#1ff3e5cccf8e0897aa3f5909c654e623f69b1c0e" + integrity sha1-H/PlzM+OCJeqP1kJxlTmI/abHA4= dependencies: ansi-html "0.0.7" bonjour "^3.5.0" @@ -8630,24 +8557,24 @@ webpack-dev-server@^3.10.1: webpack-log@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" - integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg== + resolved "https://registry.npm.taobao.org/webpack-log/download/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" + integrity sha1-W3ko4GN1k/EZ0y9iJ8HgrDHhtH8= dependencies: ansi-colors "^3.0.0" uuid "^3.3.2" webpack-sources@^1.0.0, webpack-sources@^1.0.1, webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3: version "1.4.3" - resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" - integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== + resolved "https://registry.npm.taobao.org/webpack-sources/download/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" + integrity sha1-7t2OwLko+/HL/plOItLYkPMwqTM= dependencies: source-list-map "^2.0.0" source-map "~0.6.1" webpack@^4.41.2: - version "4.41.2" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.41.2.tgz#c34ec76daa3a8468c9b61a50336d8e3303dce74e" - integrity sha512-Zhw69edTGfbz9/8JJoyRQ/pq8FYUoY0diOXqW0T6yhgdhCv6wr0hra5DwwWexNRns2Z2+gsnrNcbe9hbGBgk/A== + version "4.41.5" + resolved "https://registry.npm.taobao.org/webpack/download/webpack-4.41.5.tgz#3210f1886bce5310e62bb97204d18c263341b77c" + integrity sha1-MhDxiGvOUxDmK7lyBNGMJjNBt3w= dependencies: "@webassemblyjs/ast" "1.8.5" "@webassemblyjs/helper-module-context" "1.8.5" @@ -8669,14 +8596,14 @@ webpack@^4.41.2: node-libs-browser "^2.2.1" schema-utils "^1.0.0" tapable "^1.1.3" - terser-webpack-plugin "^1.4.1" + terser-webpack-plugin "^1.4.3" watchpack "^1.6.0" webpack-sources "^1.4.1" websocket-driver@>=0.5.1: version "0.7.3" - resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.3.tgz#a2d4e0d4f4f116f1e6297eba58b05d430100e9f9" - integrity sha512-bpxWlvbbB459Mlipc5GBzzZwhoZgGEZLuqPaR0INBGnPAY1vdBX6hPnoFXiw+3yWxDuHyQjO2oXTMyS8A5haFg== + resolved "https://registry.npm.taobao.org/websocket-driver/download/websocket-driver-0.7.3.tgz#a2d4e0d4f4f116f1e6297eba58b05d430100e9f9" + integrity sha1-otTg1PTxFvHmKX66WLBdQwEA6fk= dependencies: http-parser-js ">=0.4.0 <0.4.11" safe-buffer ">=5.1.0" @@ -8684,48 +8611,48 @@ websocket-driver@>=0.5.1: websocket-extensions@>=0.1.1: version "0.1.3" - resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29" - integrity sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg== + resolved "https://registry.npm.taobao.org/websocket-extensions/download/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29" + integrity sha1-XS/yKXcAPsaHpLhwc9+7rBRszyk= which-module@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" + resolved "https://registry.npm.taobao.org/which-module/download/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" integrity sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8= which-module@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + resolved "https://registry.npm.taobao.org/which-module/download/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= which@1, which@^1.2.14, which@^1.2.9, which@^1.3.1: version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + resolved "https://registry.npm.taobao.org/which/download/which-1.3.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo= dependencies: isexe "^2.0.0" wide-align@^1.1.0: version "1.1.3" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" - integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== + resolved "https://registry.npm.taobao.org/wide-align/download/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + integrity sha1-rgdOa9wMFKQx6ATmJFScYzsABFc= dependencies: string-width "^1.0.2 || 2" word-wrap@~1.2.3: version "1.2.3" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + resolved "https://registry.npm.taobao.org/word-wrap/download/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha1-YQY29rH3A4kb00dxzLF/uTtHB5w= worker-farm@^1.7.0: version "1.7.0" - resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" - integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== + resolved "https://registry.npm.taobao.org/worker-farm/download/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" + integrity sha1-JqlMU5G7ypJhUgAvabhKS/dy5ag= dependencies: errno "~0.1.7" wrap-ansi@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + resolved "https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= dependencies: string-width "^1.0.1" @@ -8733,8 +8660,8 @@ wrap-ansi@^2.0.0: wrap-ansi@^5.1.0: version "5.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" - integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== + resolved "https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" + integrity sha1-H9H2cjXVttD+54EFYAG/tpTAOwk= dependencies: ansi-styles "^3.2.0" string-width "^3.0.0" @@ -8742,73 +8669,80 @@ wrap-ansi@^5.1.0: wrappy@1: version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + resolved "https://registry.npm.taobao.org/wrappy/download/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= ws@^6.2.1: version "6.2.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" - integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== + resolved "https://registry.npm.taobao.org/ws/download/ws-6.2.1.tgz?cache=0&sync_timestamp=1576314828024&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fws%2Fdownload%2Fws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" + integrity sha1-RC/fCkftZPWbal2P8TD0dI7VJPs= dependencies: async-limiter "~1.0.0" xtend@^4.0.0, xtend@^4.0.2, xtend@~4.0.1: version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + resolved "https://registry.npm.taobao.org/xtend/download/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha1-u3J3n1+kZRhrH0OPZ0+jR/2121Q= y18n@^3.2.1: version "3.2.1" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" + resolved "https://registry.npm.taobao.org/y18n/download/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" integrity sha1-bRX7qITAhnnA136I53WegR4H+kE= "y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" - integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== + resolved "https://registry.npm.taobao.org/y18n/download/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" + integrity sha1-le+U+F7MgdAHwmThkKEg8KPIVms= yallist@^2.1.2: version "2.1.2" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + resolved "https://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.3.tgz#b4b049e314be545e3ce802236d6cd22cd91c3de9" - integrity sha512-S+Zk8DEWE6oKpV+vI3qWkaK+jSbIK86pCwe2IF/xwIpQ8jEuxpw9NyaGjmp9+BoJv5FV2piqCDcoCtStppiq2A== + version "3.1.1" + resolved "https://registry.npm.taobao.org/yallist/download/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha1-27fa+b/YusmrRev2ArjLrQ1dCP0= yallist@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + resolved "https://registry.npm.taobao.org/yallist/download/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI= + +yaml@^1.7.2: + version "1.7.2" + resolved "https://registry.npm.taobao.org/yaml/download/yaml-1.7.2.tgz#f26aabf738590ab61efaca502358e48dc9f348b2" + integrity sha1-8mqr9zhZCrYe+spQI1jkjcnzSLI= + dependencies: + "@babel/runtime" "^7.6.3" yargs-parser@^11.1.1: version "11.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" - integrity sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ== + resolved "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" + integrity sha1-h5oIZZc7yp9rq1y987HGfsfTvPQ= dependencies: camelcase "^5.0.0" decamelize "^1.2.0" yargs-parser@^13.1.0: version "13.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0" - integrity sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ== + resolved "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0" + integrity sha1-0mBYUyqgbTZf4JH2ofwGsvfl7KA= dependencies: camelcase "^5.0.0" decamelize "^1.2.0" yargs-parser@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a" + resolved "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a" integrity sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo= dependencies: camelcase "^3.0.0" yargs@12.0.5: version "12.0.5" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" - integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw== + resolved "https://registry.npm.taobao.org/yargs/download/yargs-12.0.5.tgz?cache=0&sync_timestamp=1577940731931&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" + integrity sha1-BfWZe2CWR7ZPZrgeO0sQo2jnrRM= dependencies: cliui "^4.0.0" decamelize "^1.2.0" @@ -8825,8 +8759,8 @@ yargs@12.0.5: yargs@13.2.4: version "13.2.4" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.2.4.tgz#0b562b794016eb9651b98bd37acf364aa5d6dc83" - integrity sha512-HG/DWAJa1PAnHT9JAhNa8AbAv3FPaiLzioSjCcmuXXhP8MlpHO5vwls4g4j6n30Z74GVQj8Xa62dWVx1QCGklg== + resolved "https://registry.npm.taobao.org/yargs/download/yargs-13.2.4.tgz?cache=0&sync_timestamp=1577940731931&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-13.2.4.tgz#0b562b794016eb9651b98bd37acf364aa5d6dc83" + integrity sha1-C1YreUAW65ZRuYvTes82SqXW3IM= dependencies: cliui "^5.0.0" find-up "^3.0.0" @@ -8842,7 +8776,7 @@ yargs@13.2.4: yargs@^7.0.0: version "7.1.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8" + resolved "https://registry.npm.taobao.org/yargs/download/yargs-7.1.0.tgz?cache=0&sync_timestamp=1577940731931&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8" integrity sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg= dependencies: camelcase "^3.0.0" From 283e9323ad29a1100b9786a94d37ce805d552a88 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 14 Jan 2020 20:33:16 +0800 Subject: [PATCH 0030/2165] =?UTF-8?q?feat(web):=20=E6=96=B0=E5=A2=9E=20zea?= =?UTF-8?q?lot:upgrade=20rake=20=E5=91=BD=E4=BB=A4=E7=94=A8=E6=9D=A5?= =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96=E5=92=8C=E5=8D=87=E7=BA=A7=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=BA=93=E7=AD=89=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/services/application_service.rb | 2 ++ app/services/create_admin_service.rb | 2 ++ lib/tasks/zealot.rake | 27 +++++++++++++++++++++++++++ 3 files changed, 31 insertions(+) create mode 100644 lib/tasks/zealot.rake diff --git a/app/services/application_service.rb b/app/services/application_service.rb index 783b2009a..52d1f21f0 100644 --- a/app/services/application_service.rb +++ b/app/services/application_service.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + class ApplicationService def self.call(**args) new.call(**args) diff --git a/app/services/create_admin_service.rb b/app/services/create_admin_service.rb index e8518db67..874f813ae 100644 --- a/app/services/create_admin_service.rb +++ b/app/services/create_admin_service.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + class CreateAdminService def call User.find_or_create_by!(email: Rails.application.secrets.admin_email) do |user| diff --git a/lib/tasks/zealot.rake b/lib/tasks/zealot.rake new file mode 100644 index 000000000..0588f603a --- /dev/null +++ b/lib/tasks/zealot.rake @@ -0,0 +1,27 @@ +# frozen_string_literal: true + +namespace :zealot do + desc 'Zealot | Upgrade zealot or setting up database' + task upgrade: :environment do + Rake::Task['zealot:upgrade_db'].invoke + end + + task upgrade_db: :environment do + db_version = Rake::Task['db:version'].invoke.split(': ').last + if db_version == '0' + # 初始化 + Rake::Task['db:create'].invoke + Rake::Task['db:migrate'].invoke + Rake::Task['db:seed'].invoke + else + # 升级 + Rake::Task['db:migrate'].invoke + end + end + + task version: :environment do + require_relative '../setting' + + puts ::Setting.version + end +end From 64deeedcfd0a6581749ea651a38bf91e85ce264b Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 14 Jan 2020 20:48:00 +0800 Subject: [PATCH 0031/2165] =?UTF-8?q?refactor(docker):=20Docker=20?= =?UTF-8?q?=E9=95=9C=E5=83=8F=E4=B8=8D=E5=86=8D=E7=AE=A1=E7=90=86=E5=88=9D?= =?UTF-8?q?=E5=A7=8B=E5=8C=96=20db=20=E7=9A=84=E6=93=8D=E4=BD=9C=E6=94=B9?= =?UTF-8?q?=E7=94=B1=E9=83=A8=E7=BD=B2=E6=97=B6=E6=94=B6=E5=88=B0=E5=88=9D?= =?UTF-8?q?=E5=A7=8B=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-endpoint.sh | 20 +++----------------- 1 file changed, 3 insertions(+), 17 deletions(-) diff --git a/docker-endpoint.sh b/docker-endpoint.sh index a398fdd0c..5be61b42e 100755 --- a/docker-endpoint.sh +++ b/docker-endpoint.sh @@ -3,24 +3,10 @@ set -eo pipefail cd /app -mkdir -p tmp/pids tmp/cache tmp/uploads tmp/sockets log - -ZEALOT_READY_FILE=/app/zealot.ready - -# Prepare works -if [ ! -f "$ZEALOT_READY_FILE" ]; then - echo "Waiting zealot to be ready please ... tea time" - # Init database - bin/rails db:create - bin/rails db:migrate - bin/rails db:seed +# 清除可能异常退出但没有请 pid 的问题 +rm -f tmp/pids/.pid - # Update cron jobs - bundle exec whenever --update-crontab - - echo "$ZEALOT_VERSION" > $ZEALOT_READY_FILE - echo $(date) >> $ZEALOT_READY_FILE -fi +mkdir -p tmp/pids tmp/cache tmp/uploads tmp/sockets log if [ "$1" = 'run_server' ]; then # Start the server From 92ccdaf1d6664e9e45c3cc6dcd2a1026e7b6b3c4 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 15 Jan 2020 10:17:39 +0800 Subject: [PATCH 0032/2165] =?UTF-8?q?doc:=20=E6=B7=BB=E5=8A=A0=20ios=20?= =?UTF-8?q?=E5=92=8C=20android=20sdk=20=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b786bc396..4913be986 100644 --- a/README.md +++ b/README.md @@ -18,8 +18,8 @@ - [x] 可接入 Gitlab 服务直接挂钩源码管理 - [x] 支持丰富的 REST APIs - [x] 支持 OAuth 认证登录(目前以接入 Google,LDAP) -- [x] 提供 fastlane 插件 [zealot](https://github.com/getzealot/fastlane-plugin-zealot) 提供上传服务 -- [ ] 提供检查新版本和安装服务的 iOS 和 Android 组件 +- [x] 提供 fastlane 插件 [zealot][fastlan-plugin-link] 提供上传服务 +- [x] 提供检查新版本和安装服务的 [iOS][ios-sdk-link] 和 [Android][android-sdk-link] 组件 - [ ] 支持 GraphGL 接口(进行中) - [ ] 提供 cli 命令行工具(旧插件需要移植即可但貌似没有啥必要,有用没用先列在这) @@ -50,3 +50,8 @@ https://zealot.ews.im 对 Zealot 有疑问或者建议,发个问题告知下 https://github.com/getzealot/zealot/issues/new + + +[fastlan-plugin-link]: https://github.com/getzealot/fastlane-plugin-zealot +[ios-sdk-link]: https://github.com/getzealot/zealot-ios +[android-sdk-link]: https://github.com/getzealot/zealot-android \ No newline at end of file From 7663521fdd028da55c97df140d46de4437f89758 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 15 Jan 2020 10:41:25 +0800 Subject: [PATCH 0033/2165] =?UTF-8?q?doc:=20=E6=B7=BB=E5=8A=A0=20changelog?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 46 ++++++++++++++++++++++++++++++++++++++++++++++ README.md | 3 ++- 2 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 000000000..b24b8d2b2 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,46 @@ +# 变更日志 + +## [未发布] + +> 如下罗列的变更是还未发布的列表 + +## [4.0.0.beta3] (2020-01-15) + +### 新功能 + +- [Web] 管理员添加的用户在邮箱未激活会提示并显示确认邮箱的链接 +- [Web] 默认开启 Sentry 匿名上报机制(可关闭) + +### 修复 + +- [API] 修复上传应用总会创建新渠道 +- [Web/API] 修复上传 Android 应用无法显示图标 + +### 变更 + +- [Docker] 初始化数据从镜像移出到 [zealot-docker](https://github.com/getzealot/zealot-docker) 操作 [#120](https://github.com/getzealot/zealot/pull/120) +- [Docker] 精简镜像的体积大小从 1.18G 降到 308M [#114](https://github.com/getzealot/zealot/issues/114) +- [Worker] 使用异步任务代替传统 cron job 来实现定时清理老版本历史包文件(可关闭) +- [Worker] 对异步任务进行分组和设置优先级 +- [API] 所有报错信息改成中文显示,因数据库写操作会返回具体错误信息 + +## [4.0.0.beta2] (2020-01-10) + +### 新功能 + +- [Web] 新增上传到具体应用渠道的全部版本列表同时支持删除操作 + +### 修复 + +- [Web] 对于上传应用不是有效 ipa 或 apk 的会给予错误提示而不是报错 +- [API] 修复获取应用最新版本列表因查询版本号不存在数据库无法返回最新版本列表 +- [API] 只针对写操作的接口才会要求 token 验证(之前是绝大部分都需要) + +## 4.0.0.beta1 + +🌈 第一个公测版本发布啦 + +[未发布]: https://github.com/getzealot/zealot/compare/4.0.0.beta3..HEAD +[4.0.0.beta3]: https://github.com/getzealot/zealot/compare/4.0.0.beta2...4.0.0.beta3 +[4.0.0.beta2]: https://github.com/getzealot/zealot/compare/4.0.0.beta1...4.0.0.beta2 + diff --git a/README.md b/README.md index 4913be986..cf212c890 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,9 @@ # Zealot -[![GitHub release](https://img.shields.io/github/v/release/getzealot/zealot?include_prereleases)](https://github.com/getzealot/zealot/releases) +[![GitHub release](https://img.shields.io/github/v/release/getzealot/zealot?include_prereleases)](https://github.com/getzealot/zealot/blob/develop/CHANGELOG.md) [![Docker Pulls](https://img.shields.io/docker/pulls/icyleafcn/zealot.svg)](https://hub.docker.com/r/icyleafcn/zealot/) [![Maintainability](https://codeclimate.com/github/getzealot/zealot/badges/gpa.svg)](https://codeclimate.com/github/getzealot/zealot) +[![Codacy Badge](https://api.codacy.com/project/badge/Grade/bcff7d9de5ba48528bc80aa01bd525c6)](https://www.codacy.com/manual/icyleaf/zealot) [![License](https://img.shields.io/github/license/getzealot/zealot)](LICENSE) 移动应用上传竟然如此简单、解放开发打包的烦恼,轻松放权给测试、产品、运营等使用 App 的人员,提供丰富组件库,打包流程一键上传,iOS 和 Android 轻松接入,深度与 Jenkins 和 Gitlab 集成。 From 1a48f676828f98cda20b3b7e64bd1b5ab652588c Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 15 Jan 2020 14:33:02 +0800 Subject: [PATCH 0034/2165] =?UTF-8?q?style:=20=E4=BF=AE=E6=AD=A3=E9=9C=80?= =?UTF-8?q?=E8=A6=81=E5=AF=86=E7=A0=81=E9=AA=8C=E8=AF=81=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/releases/show.html.slim | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/app/views/releases/show.html.slim b/app/views/releases/show.html.slim index 6450f244f..5b209e443 100644 --- a/app/views/releases/show.html.slim +++ b/app/views/releases/show.html.slim @@ -20,12 +20,15 @@ a.btn.btn-default.btn-block href="#{channel_path(@channel)}" 应用管理 - else .login-box - .login-box-body - .login-box-msg 访问密码 - form.form action="#{auth_channel_release_path(@channel, @release)}" method="post" role="form" - .input-group.input-group - span.input-group-addon - i.fa.fa-key - input.form-control name="password" placeholder='******' type="password" - span.input-group-btn - button.btn.btn-danger.btn-flat 验证 \ No newline at end of file + .card + .card-body.login-card-body + p.login-box-msg 访问密码 + form.form action="#{auth_channel_release_path(@channel, @release)}" method="post" role="form" + .input-group + .input-group-prepend + span.input-group-text style="border-left: 1px solid #ced4da" + i.fa.fa-key + input.form-control name="password" placeholder='******' type="password" + span.input-group-append + button.btn.btn-default.btn-flat + i.fa.fa-arrow-right \ No newline at end of file From a1bab40145bf75f4f50925afc3b8af3bfc241c0c Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 15 Jan 2020 12:29:33 +0800 Subject: [PATCH 0035/2165] =?UTF-8?q?refactor:=20=E4=B8=A5=E6=A0=BC?= =?UTF-8?q?=E6=89=A7=E8=A1=8C=20rubocop=20lint?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .rubocop.yml | 79 +++++++++++++-- Gemfile | 7 +- Gemfile.lock | 4 + Guardfile | 5 +- Rakefile | 2 +- app/channels/application_cable/channel.rb | 2 + app/channels/application_cable/connection.rb | 3 + .../admin/system_info_controller.rb | 46 ++++++--- app/controllers/admin/users_controller.rb | 2 +- app/controllers/admin/web_hooks_controller.rb | 7 +- app/controllers/api/apps/upload_controller.rb | 2 +- .../api/apps/versions_controller.rb | 2 + app/controllers/api/apps_controller.rb | 2 +- .../api/debug_files/download_controller.rb | 56 ++++++++--- app/controllers/api/debug_files_controller.rb | 14 ++- .../api/jenkins/build_controller.rb | 55 +++++++---- .../api/jenkins/projects_controller.rb | 4 +- .../api/jenkins/status_controller.rb | 3 +- app/controllers/api/jenkins_controller.rb | 1 + app/controllers/apps_controller.rb | 4 +- .../channels/versions_controller.rb | 2 + app/controllers/channels_controller.rb | 6 +- app/controllers/dashboards_controller.rb | 2 + app/controllers/debug_files_controller.rb | 4 +- app/controllers/graphql_controller.rb | 21 ++-- app/controllers/releases_controller.rb | 10 +- app/controllers/schemes_controller.rb | 10 +- app/controllers/teardowns_controller.rb | 4 +- .../users/activations_controller.rb | 8 +- app/controllers/web_hooks_controller.rb | 2 + app/controllers/wechat_controller.rb | 16 --- app/graphql/mutations/.keep | 0 app/graphql/types/.keep | 0 app/graphql/types/base_enum.rb | 2 + app/graphql/types/mutation_type.rb | 2 +- app/graphql/types/query_type.rb | 2 + app/helpers/apps_helper.rb | 98 +------------------ app/helpers/users_helper.rb | 2 +- app/jobs/clean_old_releases_job.rb | 2 +- app/jobs/debug_file_teardown_job.rb | 6 +- app/models/application_record.rb | 4 +- app/models/channel.rb | 7 +- app/models/channels_web_hook.rb | 2 + app/models/debug_file.rb | 2 + app/models/debug_file_metadatum.rb | 2 + app/models/release.rb | 26 ++--- app/models/user.rb | 4 +- app/models/user_provider.rb | 2 + app/models/web_hook.rb | 2 + app/serializers/api/app_serializer.rb | 4 +- .../api/app_versions_serializer.rb | 2 + app/serializers/api/debug_file_serializer.rb | 2 + app/serializers/api/latest_app_serializer.rb | 2 + app/serializers/api/upload_app_serializer.rb | 2 + app/serializers/app_serializer.rb | 4 +- app/serializers/application_serializer.rb | 2 + app/serializers/channel_serializer.rb | 6 +- app/serializers/release_serializer.rb | 2 + app/serializers/scheme_serializer.rb | 4 +- app/services/create_sample_apps_service.rb | 35 +++---- app/uploaders/app_file_uploader.rb | 17 +--- app/uploaders/app_icon_uploader.rb | 23 +---- app/uploaders/application_uploader.rb | 18 ++++ app/uploaders/debug_file_uploader.rb | 17 +--- cable/config.ru | 2 + config/environments/development.rb | 4 +- config/environments/production.rb | 2 + config/environments/test.rb | 4 +- config/initializers/assets.rb | 6 +- .../initializers/content_security_policy.rb | 20 ++-- config/initializers/devise.rb | 2 +- .../initializers/filter_parameter_logging.rb | 4 +- config/initializers/sentry.rb | 2 +- config/initializers/server_runtime.rb | 4 +- config/initializers/simple_form.rb | 2 +- config/initializers/simple_form_bootstrap.rb | 9 +- config/puma.rb | 2 +- config/routes.rb | 12 +-- config/spring.rb | 8 +- lib/backup/config.rb | 2 + lib/backup/database.rb | 4 +- lib/backup/manager.rb | 2 + lib/backup/upload.rb | 4 +- lib/setting.rb | 2 + lib/tasks/backup.rake | 2 +- 85 files changed, 426 insertions(+), 363 deletions(-) delete mode 100644 app/controllers/wechat_controller.rb delete mode 100644 app/graphql/mutations/.keep delete mode 100644 app/graphql/types/.keep create mode 100644 app/uploaders/application_uploader.rb diff --git a/.rubocop.yml b/.rubocop.yml index d7d2317d1..d9a4dca75 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -1,11 +1,41 @@ +# require: rubocop-rails + AllCops: TargetRubyVersion: 2.6 + # TargetRailsVersion: 6.0 Exclude: - - "bin/**/*" + - 'vendor/**/*' + - 'node_modules/**/*' + - 'tmp/**/*' + - 'bin/**/*' - "db/**/*" + CacheRootDirectory: tmp + +Style/FrozenStringLiteralComment: + Enabled: true + Exclude: + - 'config.ru' + - 'Gemfile' + - 'Rakefile' + - 'Guardfile' + - 'config/**/*' + - 'db/**/*' + - 'lib/tasks/**/*' + +# Some blocks are longer. +Metrics/BlockLength: + ExcludedMethods: + - 'namespace' + - 'create_table' + Exclude: + - 'config/**/*.rb' + - 'spec/**/*.rb' + - 'lib/tasks/**/*' Layout/LineLength: - Max: 215 + Max: 120 + Exclude: + - 'config/**/*.rb' Metrics/MethodLength: Max: 60 @@ -13,6 +43,13 @@ Metrics/MethodLength: Metrics/ClassLength: Max: 150 +Metrics/ModuleLength: + Max: 150 + +# Raise complexity metrics +Metrics/AbcSize: + Max: 20 + Style/AsciiComments: Enabled: false @@ -25,14 +62,38 @@ Style/SpecialGlobalVars: Style/ClassAndModuleChildren: Enabled: false +# We do not need to support Ruby 1.9, so this is good to use. Style/SymbolArray: + Enabled: true + +Lint/EmptyWhen: Enabled: false -# Some blocks are longer. -Metrics/BlockLength: - ExcludedMethods: - - "namespace" - - "create_table" +Style/EmptyMethod: + Enabled: false + +# Disable %w or %W instead for an array of words +Style/WordArray: + Enabled: false + +Naming/AccessorMethodName: + Enabled: true + Exclude: + - 'app/controllers/**/*' + +Style/RescueStandardError: + Enabled: false + +Lint/AssignmentInCondition: + Enabled: false + +Style/TrailingCommaInHashLiteral: + Enabled: false + +Naming/PredicateName: + Enabled: true Exclude: - - "config/**/*.rb" - - "spec/**/*.rb" \ No newline at end of file + - 'app/serializers/channel_serializer.rb' + +Layout/HashAlignment: + Enabled: false \ No newline at end of file diff --git a/Gemfile b/Gemfile index ef96e0e79..e6f4ba1c9 100644 --- a/Gemfile +++ b/Gemfile @@ -73,7 +73,7 @@ gem 'turbolinks', '~> 5' gem 'webpacker', '~> 4.2' # 用于解析 ipa 和 apk 包 -gem 'app-info', '~> 2.1.2', require: false +gem 'app-info', '~> 2.1.2' # Reduces boot times through caching; required in config/boot.rb gem 'bootsnap', '>= 1.4.4', require: false @@ -85,7 +85,7 @@ group :development do gem 'web-console', '>= 3.3.0' # 调试器 - gem 'byebug', platforms: [:mri, :mingw, :x64_mingw] + gem 'byebug', platforms: %i[mri mingw x64_mingw] gem 'guard-bundler' gem 'guard-migrate' gem 'guard-rails' @@ -114,7 +114,8 @@ end group :development, :test do gem 'dotenv-rails' - gem 'rubocop', '~> 0.77' + gem 'rubocop', '~> 0.77', require: false + gem 'rubocop-rails', '~> 2.4.0', require: false gem 'pry-byebug' gem 'pry-rails' diff --git a/Gemfile.lock b/Gemfile.lock index f63ec5ef0..bf5d0cab9 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -359,6 +359,9 @@ GEM rainbow (>= 2.2.2, < 4.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 1.4.0, < 1.7) + rubocop-rails (2.4.1) + rack (>= 1.1) + rubocop (>= 0.72.0) ruby-debug-ide (0.7.0) rake (>= 0.8.1) ruby-macho (2.2.0) @@ -489,6 +492,7 @@ DEPENDENCIES redis (~> 4.1.3) rqrcode rubocop (~> 0.77) + rubocop-rails (~> 2.4.0) ruby-debug-ide sentry-raven settingslogic diff --git a/Guardfile b/Guardfile index a13c3a454..45abf4e81 100644 --- a/Guardfile +++ b/Guardfile @@ -28,7 +28,8 @@ end # daemon: false # runs the server as a daemon. # debugger: false # enable ruby-debug gem. # environment: 'development' # changes server environment. -# force_run: false # kills any process that's holding the listen port before attempting to (re)start Rails. +# force_run: false # kills any process that's holding the listen +# port before attempting to (re)start Rails. # pid_file: 'tmp/pids/[RAILS_ENV].pid' # specify your pid_file. # host: 'localhost' # server hostname. # port: 3000 # server port number. @@ -39,7 +40,7 @@ end # zeus_plan: server # custom plan in zeus, only works with `zeus: true`. # zeus: false # enables zeus gem. # CLI: 'rails server' # customizes runner command. Omits all options except `pid_file`! -guard :rails, host: '0.0.0.0', environment: environment do +guard :rails, host: '0.0.0.0', environment: environment do ignore(%r{^config/(locales|webpack)/.*}) watch('Gemfile.lock') diff --git a/Rakefile b/Rakefile index 290ace643..9f2d1b0cb 100644 --- a/Rakefile +++ b/Rakefile @@ -4,4 +4,4 @@ require_relative 'config/application' # require 'awesome_print' -Rails.application.load_tasks \ No newline at end of file +Rails.application.load_tasks diff --git a/app/channels/application_cable/channel.rb b/app/channels/application_cable/channel.rb index d67269728..9aec23053 100644 --- a/app/channels/application_cable/channel.rb +++ b/app/channels/application_cable/channel.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + module ApplicationCable class Channel < ActionCable::Channel::Base end diff --git a/app/channels/application_cable/connection.rb b/app/channels/application_cable/connection.rb index 0ff5442f4..6ebbca60a 100644 --- a/app/channels/application_cable/connection.rb +++ b/app/channels/application_cable/connection.rb @@ -1,3 +1,6 @@ +# frozen_string_literal: true +# frozen_string_literal: true + module ApplicationCable class Connection < ActionCable::Connection::Base end diff --git a/app/controllers/admin/system_info_controller.rb b/app/controllers/admin/system_info_controller.rb index e8858b286..5a3a869e7 100644 --- a/app/controllers/admin/system_info_controller.rb +++ b/app/controllers/admin/system_info_controller.rb @@ -60,12 +60,40 @@ class Admin::SystemInfoController < ApplicationController # GET /admin/system_info def show @title = '系统信息' - - @cpus = Vmstat.cpu rescue nil - @memory = Vmstat.memory rescue nil @booted_at = Rails.application.config.booted_at - mounts = ::Sys::Filesystem.mounts + set_cpus + set_memory + set_disks + set_env + end + + private + + def set_cpus + Vmstat.cpu + rescue + nil + end + + def set_memory + Vmstat.memory + rescue + nil + end + + def set_env + @env = ENV.each_with_object({}) do |(key, value), obj| + obj[key] = if HIDDEN_ENV_VALUES.select { |k| key.downcase.include?(k) }.empty? + value + else + '*' * 10 + end + end + end + + def set_disks + mounts = ::Sys::Filesystem.mounts @disks = mounts.each_with_object([]) do |mount, obj| mount_options = mount.options.split(',') @@ -81,16 +109,8 @@ def show mount_path: disk.path ) rescue Sys::Filesystem::Error - # do nothing + next end end - - @env = ENV.each_with_object({}) do |(key, value), obj| - obj[key] = if HIDDEN_ENV_VALUES.select { |k| key.downcase.include?(k) }.empty? - value - else - '*' * 10 - end - end end end diff --git a/app/controllers/admin/users_controller.rb b/app/controllers/admin/users_controller.rb index 078080dcf..4f63a816c 100644 --- a/app/controllers/admin/users_controller.rb +++ b/app/controllers/admin/users_controller.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true class Admin::UsersController < ApplicationController - before_action :set_user, only: [:show, :edit, :update, :destroy] + before_action :set_user, only: %i[show edit update destroy] def index @title = '用户管理' diff --git a/app/controllers/admin/web_hooks_controller.rb b/app/controllers/admin/web_hooks_controller.rb index 04fc4d4f2..086531873 100644 --- a/app/controllers/admin/web_hooks_controller.rb +++ b/app/controllers/admin/web_hooks_controller.rb @@ -1,9 +1,11 @@ +# frozen_string_literal: true + class Admin::WebHooksController < ApplicationController - before_action :set_web_hook, only: [:show, :edit, :update, :destroy] + before_action :set_web_hook, only: %i[show edit update destroy] def index @title = '网络钩子管理' - @web_hooks = WebHook.all + @web_hooks = WebHook.all authorize @web_hooks end @@ -51,5 +53,4 @@ def set_web_hook def web_hook_params params.require(:web_hook).permit(:url, :upload_events, :download_events, :changelog_events) end - end diff --git a/app/controllers/api/apps/upload_controller.rb b/app/controllers/api/apps/upload_controller.rb index d890af808..1e13ee4b9 100644 --- a/app/controllers/api/apps/upload_controller.rb +++ b/app/controllers/api/apps/upload_controller.rb @@ -1,4 +1,4 @@ -require 'app-info' +# frozen_string_literal: true class Api::Apps::UploadController < Api::BaseController before_action :validate_user_token diff --git a/app/controllers/api/apps/versions_controller.rb b/app/controllers/api/apps/versions_controller.rb index 24836fc2a..17f5da5c5 100644 --- a/app/controllers/api/apps/versions_controller.rb +++ b/app/controllers/api/apps/versions_controller.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + class Api::Apps::VersionsController < Api::BaseController before_action :validate_channel_key diff --git a/app/controllers/api/apps_controller.rb b/app/controllers/api/apps_controller.rb index 90575fb51..adad455bb 100644 --- a/app/controllers/api/apps_controller.rb +++ b/app/controllers/api/apps_controller.rb @@ -2,7 +2,7 @@ class Api::AppsController < Api::BaseController before_action :validate_user_token - before_action :set_app, only: [ :show ] + before_action :set_app, only: %i[show] # GET /api/apps def index diff --git a/app/controllers/api/debug_files/download_controller.rb b/app/controllers/api/debug_files/download_controller.rb index e61988ea7..372b7a271 100644 --- a/app/controllers/api/debug_files/download_controller.rb +++ b/app/controllers/api/debug_files/download_controller.rb @@ -1,7 +1,8 @@ # frozen_string_literal: true class Api::DebugFiles::DownloadController < Api::BaseController - before_action :validate_channel_key, only: [:show] + before_action :validate_channel_key + before_action :set_app # GET /api/debug_files/download def show @@ -9,22 +10,12 @@ def show build_version = params[:build_version] order = convert_order(params[:order]) - @app = @channel.app - @debug_file = if !release_version.blank? && !build_version.blank? - @app.debug_files - .where(release_version: release_version, build_version: build_version) - .order(order => :desc) - .first - elsif !release_version.blank? && build_version.blank? - @app.debug_files - .where(release_version: release_version) - .order(order => :desc) - .first + @debug_file = if both_version?(release_version, build_version) + find_by_both_version(release_version, build_version, order) + elsif release_version?(release_version, build_version) + find_by_releaes_version(order) else - @app.debug_files - .where(device_type: @channel.device_type) - .order(order => :desc) - .first + find_by_device_type(order) end if @debug_file && File.exist?(@debug_file.file.path) @@ -36,6 +27,39 @@ def show private + def both_version?(release_version, build_version) + !release_version.blank? && !build_version.blank? + end + + def release_version?(release_version, build_version) + !release_version.blank? && build_version.blank? + end + + def find_by_both_version(release_version, build_version, order) + @app.debug_files + .where(release_version: release_version, build_version: build_version) + .order(order => :desc) + .first + end + + def find_by_releaes_version(release_version, order) + @app.debug_files + .where(release_version: release_version) + .order(order => :desc) + .first + end + + def find_by_device_type(order) + @app.debug_files + .where(device_type: @channel.device_type) + .order(order => :desc) + .first + end + + def set_app + @channel.app + end + def convert_order(value) value == 'upload' ? :id : :build_version end diff --git a/app/controllers/api/debug_files_controller.rb b/app/controllers/api/debug_files_controller.rb index f9d0332d2..e84a899ed 100644 --- a/app/controllers/api/debug_files_controller.rb +++ b/app/controllers/api/debug_files_controller.rb @@ -1,18 +1,16 @@ # frozen_string_literal: true -require 'app-info' - class Api::DebugFilesController < Api::BaseController - before_action :validate_user_token, only: [:create] - before_action :validate_channel_key, only: [:index, :create] - before_action :set_debug_file, only: [:show, :destroy] + before_action :validate_user_token, only: :create + before_action :validate_channel_key, only: %i[index create] + before_action :set_debug_file, only: %i[show destroy] # GET /api/debug_files def index @debug_files = DebugFile.where(app: @channel.app) - .page(params.fetch(:page, 1).to_i) - .per(params.fetch(:per_page, 10).to_i) - .order(id: :desc) + .page(params.fetch(:page, 1).to_i) + .per(params.fetch(:per_page, 10).to_i) + .order(id: :desc) @debug_files = @debug_files.where(device_type: @channel.device_type) diff --git a/app/controllers/api/jenkins/build_controller.rb b/app/controllers/api/jenkins/build_controller.rb index b521345e4..32727c6f9 100644 --- a/app/controllers/api/jenkins/build_controller.rb +++ b/app/controllers/api/jenkins/build_controller.rb @@ -1,30 +1,43 @@ +# frozen_string_literal: true class Api::Jenkins::BuildController < Api::JenkinsController + before_action :set_project_status def create - status = project_status - if status[:status] != 'running' - if @client.job.build(params[:project]).to_i != 201 - return render json: { - code: 500, - message: '构建请求失败,请重新尝试' - } - end - - project = @client.job.list_details(params[:project]) - number = project['nextBuildNumber'] - url = "#{project['url']}#{number}/" - code = 201 - else - url = status[:project]['url'] - number = status[:number] - code = 200 - end + return render_running_status if running? + return render_build_failed if @client.job.build(params[:project]).to_i != 201 + project = @client.job.list_details(params[:project]) + number = project['nextBuildNumber'] render json: { - code: code, + code: 201, number: number, - url: url + url: "#{project['url']}#{number}/" } end -end \ No newline at end of file + + private + + def render_running_status + render json: { + code: 200, + number: @status[:number], + url: @status[:project]['url'] + } + end + + def render_build_failed + render json: { + code: 500, + message: '构建请求失败,请重新尝试' + } + end + + def running? + @status[:status] == 'running' + end + + def set_project_status + @status = project_status + end +end diff --git a/app/controllers/api/jenkins/projects_controller.rb b/app/controllers/api/jenkins/projects_controller.rb index d4711d60f..bb180e4e0 100644 --- a/app/controllers/api/jenkins/projects_controller.rb +++ b/app/controllers/api/jenkins/projects_controller.rb @@ -1,6 +1,6 @@ +# frozen_string_literal: true class Api::Jenkins::ProjectsController < Api::JenkinsController - def index projects = [] @client.job.list_all.each do |j| @@ -14,4 +14,4 @@ def show project = @client.job.list_details(params[:project]) render json: project end -end \ No newline at end of file +end diff --git a/app/controllers/api/jenkins/status_controller.rb b/app/controllers/api/jenkins/status_controller.rb index b235cda38..966daa5e7 100644 --- a/app/controllers/api/jenkins/status_controller.rb +++ b/app/controllers/api/jenkins/status_controller.rb @@ -1,6 +1,7 @@ +# frozen_string_literal: true class Api::Jenkins::StatusController < Api::JenkinsController def show render json: project_status end -end \ No newline at end of file +end diff --git a/app/controllers/api/jenkins_controller.rb b/app/controllers/api/jenkins_controller.rb index bdcd2e7f1..4b3a5175e 100644 --- a/app/controllers/api/jenkins_controller.rb +++ b/app/controllers/api/jenkins_controller.rb @@ -1,3 +1,4 @@ +# frozen_string_literal: true class Api::JenkinsController < ActionController::API before_action :set_client diff --git a/app/controllers/apps_controller.rb b/app/controllers/apps_controller.rb index 04a7bf657..9c2caaf11 100644 --- a/app/controllers/apps_controller.rb +++ b/app/controllers/apps_controller.rb @@ -1,6 +1,8 @@ +# frozen_string_literal: true + class AppsController < ApplicationController before_action :authenticate_user! - before_action :set_app, only: [:show, :edit, :update, :destroy] + before_action :set_app, only: %i[show edit update destroy] def index @title = '应用管理' diff --git a/app/controllers/channels/versions_controller.rb b/app/controllers/channels/versions_controller.rb index 1c1a6df50..51a83a74a 100644 --- a/app/controllers/channels/versions_controller.rb +++ b/app/controllers/channels/versions_controller.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + class Channels::VersionsController < ApplicationController before_action :set_channel diff --git a/app/controllers/channels_controller.rb b/app/controllers/channels_controller.rb index 92a46da51..3e5aab9ae 100644 --- a/app/controllers/channels_controller.rb +++ b/app/controllers/channels_controller.rb @@ -1,7 +1,9 @@ +# frozen_string_literal: true + class ChannelsController < ApplicationController before_action :authenticate_user!, except: :show - before_action :set_channel, only: [:show, :edit, :update, :destroy] - before_action :set_scheme, except: [:index, :show] + before_action :set_channel, only: %i[show edit update destroy] + before_action :set_scheme, except: %i[index show] def show @web_hook = @channel.web_hooks.new diff --git a/app/controllers/dashboards_controller.rb b/app/controllers/dashboards_controller.rb index bf3d1a1a3..fe0db0e4a 100644 --- a/app/controllers/dashboards_controller.rb +++ b/app/controllers/dashboards_controller.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + class DashboardsController < ApplicationController before_action :authenticate_user! diff --git a/app/controllers/debug_files_controller.rb b/app/controllers/debug_files_controller.rb index b2eb534ba..4d47f03f6 100644 --- a/app/controllers/debug_files_controller.rb +++ b/app/controllers/debug_files_controller.rb @@ -1,6 +1,8 @@ +# frozen_string_literal: true + class DebugFilesController < ApplicationController before_action :authenticate_user! - before_action :set_debug_file, only: [:show, :edit, :update, :destroy] + before_action :set_debug_file, only: %i[show edit update destroy] def index @title = '调试文件列表' diff --git a/app/controllers/graphql_controller.rb b/app/controllers/graphql_controller.rb index f8f6e60a1..b6d6763bc 100644 --- a/app/controllers/graphql_controller.rb +++ b/app/controllers/graphql_controller.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + class GraphqlController < ApplicationController # If accessing from outside this domain, nullify the session # This allows for outside API access while preventing CSRF attacks, @@ -8,13 +10,12 @@ def execute variables = ensure_hash(params[:variables]) query = params[:query] operation_name = params[:operationName] - context = { - current_user: current_user, - } + context = { current_user: current_user } result = ZealotSchema.execute(query, variables: variables, context: context, operation_name: operation_name) render json: result rescue => e raise e unless Rails.env.development? + handle_error_in_development e end @@ -38,10 +39,16 @@ def ensure_hash(ambiguous_param) end end - def handle_error_in_development(e) - logger.error e.message - logger.error e.backtrace.join("\n") + def handle_error_in_development(exception) + logger.error exception.message + logger.error exception.backtrace.join("\n") - render json: { error: { message: e.message, backtrace: e.backtrace }, data: {} }, status: 500 + render json: { + error: { + message: exception.message, + backtrace: exception.backtrace + }, + data: {} + }, status: 500 end end diff --git a/app/controllers/releases_controller.rb b/app/controllers/releases_controller.rb index f7bd401c3..3cee17455 100644 --- a/app/controllers/releases_controller.rb +++ b/app/controllers/releases_controller.rb @@ -1,13 +1,9 @@ # frozen_string_literal: true -require 'app-info' - class ReleasesController < ApplicationController - include AppsHelper - - before_action :check_user_logged_in, except: [:show, :auth] + before_action :check_user_logged_in, except: %i[show auth] before_action :set_channel - before_action :set_release, only: [:show, :auth, :destroy] + before_action :set_release, only: %i[show auth destroy] def show redirect_to new_user_session_path unless !wechat? || @channel.password.blank? || !user_signed_in? @@ -41,7 +37,7 @@ def destroy def auth if @channel.password == params[:password] - cookies[app_release_auth_key(@release)] = encode_password(@channel) + cookies[app_release_auth_key(@release)] = @channel.encode_password redirect_to channel_release_path(@channel, @release) else flash[:danger] = '密码错误,请重新输入' diff --git a/app/controllers/schemes_controller.rb b/app/controllers/schemes_controller.rb index c0e398c58..a411d2323 100644 --- a/app/controllers/schemes_controller.rb +++ b/app/controllers/schemes_controller.rb @@ -1,6 +1,8 @@ +# frozen_string_literal: true + class SchemesController < ApplicationController before_action :authenticate_user!, except: :show - before_action :set_scheme, except: [:index, :create, :new] + before_action :set_scheme, except: %i[index create new] before_action :set_app def show @@ -28,13 +30,13 @@ def create def edit @title = "编辑#{@app.name}类型" - raise ActionController::RoutingError.new('这里没有你找的东西') unless @scheme + raise ActionController::RoutingError, '这里没有你找的东西' unless @scheme end def update - raise ActionController::RoutingError.new('这里没有你找的东西') unless @scheme - @scheme.update(scheme_params) + raise ActionController::RoutingError, '这里没有你找的东西' unless @scheme + @scheme.update(scheme_params) redirect_to app_path(@app) end diff --git a/app/controllers/teardowns_controller.rb b/app/controllers/teardowns_controller.rb index 59865f659..7fa9b64ba 100644 --- a/app/controllers/teardowns_controller.rb +++ b/app/controllers/teardowns_controller.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'app-info' - class TeardownsController < ApplicationController # GET /teardowns/ def show @@ -17,7 +15,7 @@ def create file = params[:file] @app_info = AppInfo.parse(file.tempfile) rescue AppInfo::UnkownFileTypeError - flash.now[:message] = "无法识别上传的应用类型" + flash.now[:message] = '无法识别上传的应用类型' render :new end end diff --git a/app/controllers/users/activations_controller.rb b/app/controllers/users/activations_controller.rb index 3f5977852..47a0694d8 100644 --- a/app/controllers/users/activations_controller.rb +++ b/app/controllers/users/activations_controller.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + class Users::ActivationsController < ApplicationController before_action :verify_user rescue_from ActiveRecord::RecordNotFound, with: :render_unprocessable_entity_response @@ -16,15 +18,13 @@ def update private def verify_user - if current_user - return redirect_back fallback_location: root_path , notice: '你已经登录,无法激活其他账户。' - end + return redirect_back fallback_location: root_path, notice: '你已经登录,无法激活其他账户。' if current_user @title = '激活你的账户' @user = User.find_by!(activation_token: params[:token]) end - def render_unprocessable_entity_response(exception) + def render_unprocessable_entity_response(_) flash[:alert] = '无效的激活码' render 'empty' end diff --git a/app/controllers/web_hooks_controller.rb b/app/controllers/web_hooks_controller.rb index efeb0e77a..588b944ce 100644 --- a/app/controllers/web_hooks_controller.rb +++ b/app/controllers/web_hooks_controller.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + class WebHooksController < ApplicationController before_action :authenticate_user! before_action :set_channel diff --git a/app/controllers/wechat_controller.rb b/app/controllers/wechat_controller.rb deleted file mode 100644 index 7dfd61d8b..000000000 --- a/app/controllers/wechat_controller.rb +++ /dev/null @@ -1,16 +0,0 @@ -class WechatController < ApplicationController - TOKEN = '63da844381a4dfa25d76a4d0c0b9925d'.freeze - - before_action :signature_vaild? - - protected - - def signature_vaild? - signature_data = [TOKEN, params[:timestamp], params[:nonce]].sort.join - current_signature = Digest::SHA1.hexdigest(signature_data) - - raise ActionCable::Connection::Authorization::UnauthorizedError, 'unauthorized signature' if current_signature != params[:signature] - - return render text: params[:echostr] if params[:echostr] - end -end diff --git a/app/graphql/mutations/.keep b/app/graphql/mutations/.keep deleted file mode 100644 index e69de29bb..000000000 diff --git a/app/graphql/types/.keep b/app/graphql/types/.keep deleted file mode 100644 index e69de29bb..000000000 diff --git a/app/graphql/types/base_enum.rb b/app/graphql/types/base_enum.rb index b45a845f7..cf43fea45 100644 --- a/app/graphql/types/base_enum.rb +++ b/app/graphql/types/base_enum.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + module Types class BaseEnum < GraphQL::Schema::Enum end diff --git a/app/graphql/types/mutation_type.rb b/app/graphql/types/mutation_type.rb index 7e53687cc..69c2747bc 100644 --- a/app/graphql/types/mutation_type.rb +++ b/app/graphql/types/mutation_type.rb @@ -3,7 +3,7 @@ module Types class MutationType < Types::BaseObject field :test_field, String, null: false, - description: 'An example field added by the generator' + description: 'An example field added by the generator' def test_field 'Hello World' diff --git a/app/graphql/types/query_type.rb b/app/graphql/types/query_type.rb index a0fb524d6..7958fe4a1 100644 --- a/app/graphql/types/query_type.rb +++ b/app/graphql/types/query_type.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + module Types class QueryType < Types::BaseObject description 'The query root of this schema' diff --git a/app/helpers/apps_helper.rb b/app/helpers/apps_helper.rb index 0a27e4dfa..b5a52f853 100644 --- a/app/helpers/apps_helper.rb +++ b/app/helpers/apps_helper.rb @@ -19,7 +19,9 @@ def default_channels end def app_icon(release, options = {}) - return image_pack_tag('media/images/touch-icon.png', options) unless release&.icon && release.icon.file && release.icon.file.exists? + unless release&.icon && release.icon.file && release.icon.file.exists? + return image_pack_tag('media/images/touch-icon.png', options) + end size = options.delete(:size) || :thumb image_tag(release.icon_url(size), options) @@ -40,101 +42,9 @@ def matched_password?(release) # no password euqal matched password return true if password.blank? - cookies[app_release_auth_key(release)] == encode_password(channel) - end - - def encode_password(channel) - Digest::MD5.hexdigest(channel.password) - end - - def create_or_update_release - ActiveRecord::Base.transaction do - if new_record? - create_new_build - else - update_new_build - end - end - end - - def new_record? - @channel.blank? + cookies[app_release_auth_key(release)] == channel.encode_password end - # 创建 App 并创建新版本 - def create_new_build - create_release with_channel and_scheme and_app - end - - # 使用现有 App 创建新版本 - def update_new_build - message = "bundle id `#{app_info.bundle_id}` not matched with `#{@channel.bundle_id}` in channel #{@channel.id}" - raise TypeError, message unless @channel.bundle_id_matched? app_info.bundle_id - - create_release with_updated_channel - end - - def with_updated_channel - @channel.update! channel_params - @channel - end - - def create_release(channel) - @release = channel.releases.create! release_params do |release| - release.bundle_id = app_info.bundle_id - release.release_version = app_info.release_version - release.build_version = app_info.build_version - release.release_type ||= app_info.release_type if app_info.os == AppInfo::Platform::IOS - release.icon = File.open(app_info.icons.last[:file]) - end - end - - def with_channel(scheme) - scheme.channels.create! channel_params do |channel| - channel.name = app_info.os - channel.device_type = app_info.os - end - end - - def and_scheme(app) - name = parse_scheme_name || '测试版' - app.schemes.create! name: name - end - - def and_app - permitted = params.permit(:name) - permitted[:name] = app_info.name unless permitted.key?(:name) - - App.create! permitted do |app| - app.users << @user - end - end - - def parse_scheme_name - return unless app_info.os == AppInfo::Platform::IOS - - case app_info.release_type - when AppInfo::IPA::ExportType::DEBUG - '开发版' - when AppInfo::IPA::ExportType::ADHOC - '测试版' - when AppInfo::IPA::ExportType::INHOUSE - '企业版' - when AppInfo::IPA::ExportType::RELEASE - '线上版' - end - end - - # def qr_code(url) - # qrcode = RQRCode::QRCode.new(url, level: :h) - # raw qrcode.as_svg( - # color: '465960', - # fill: 'F4F5F6', - # module_size: 7, - # offset: 15 - # ) - # end - def git_commit_url(git_url, commit, commit_length = 8) commit_name = commit[0..(commit_length - 1)] return commit_name if git_url.blank? diff --git a/app/helpers/users_helper.rb b/app/helpers/users_helper.rb index 4a57f1fb7..c352ca8a1 100644 --- a/app/helpers/users_helper.rb +++ b/app/helpers/users_helper.rb @@ -2,6 +2,6 @@ module UsersHelper def roles - User.roles.to_a.collect{|c| [User::ROLE_NAMES[c[0].to_sym], c[0]]} + User.roles.to_a.collect { |c| [User::ROLE_NAMES[c[0].to_sym], c[0]] } end end diff --git a/app/jobs/clean_old_releases_job.rb b/app/jobs/clean_old_releases_job.rb index b3b7409b9..aec965168 100644 --- a/app/jobs/clean_old_releases_job.rb +++ b/app/jobs/clean_old_releases_job.rb @@ -16,7 +16,7 @@ def clean_old_releases(channel) return if versions.empty? latest_version = versions.max - previous_versions = versions.delete_if { |v| v == latest_version} + previous_versions = versions.delete_if { |v| v == latest_version } previous_versions.each do |value| clean_previouse_build_version(channel, value) end diff --git a/app/jobs/debug_file_teardown_job.rb b/app/jobs/debug_file_teardown_job.rb index 01895b9a7..00db2c70b 100644 --- a/app/jobs/debug_file_teardown_job.rb +++ b/app/jobs/debug_file_teardown_job.rb @@ -1,12 +1,10 @@ # frozen_string_literal: true -require 'app-info' - class DebugFileTeardownJob < ApplicationJob queue_as :app_parse def perform(debug_file) - parser = AppInfo.parse debug_file.file.path + parser = AppInfo.parse(debug_file.file.path) case parser.file_type when AppInfo::Platform::DSYM @@ -42,7 +40,7 @@ def parse_proguard(debug_file, parser) def update_debug_file_version(debug_file, parser) if (release_version = parser.release_version) && - (build_version = parser.build_version) + (build_version = parser.build_version) debug_file.update!( release_version: release_version, build_version: build_version diff --git a/app/models/application_record.rb b/app/models/application_record.rb index 71a1a03cc..71fbba5b3 100644 --- a/app/models/application_record.rb +++ b/app/models/application_record.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + class ApplicationRecord < ActiveRecord::Base self.abstract_class = true -end \ No newline at end of file +end diff --git a/app/models/channel.rb b/app/models/channel.rb index 3893e700f..c33919898 100644 --- a/app/models/channel.rb +++ b/app/models/channel.rb @@ -65,7 +65,7 @@ def perform_web_hook(event_name) end def enabled_web_hooks - self.web_hooks + web_hooks end def available_web_hooks @@ -73,11 +73,14 @@ def available_web_hooks .where.not(web_hook_id: web_hooks.select(:id)) .where.not(channel_id: id) .each_with_object([]) do |item, obj| - obj << item.web_hook end end + def encode_password + Digest::MD5.hexdigest(password) + end + # def self.find_by_release(release) # instance = release.app # instance.current_release = release diff --git a/app/models/channels_web_hook.rb b/app/models/channels_web_hook.rb index b6bcb1132..0366ae87f 100644 --- a/app/models/channels_web_hook.rb +++ b/app/models/channels_web_hook.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + class ChannelsWebHook < ApplicationRecord belongs_to :channel belongs_to :web_hook diff --git a/app/models/debug_file.rb b/app/models/debug_file.rb index 70ede3ac7..7566ce3fc 100644 --- a/app/models/debug_file.rb +++ b/app/models/debug_file.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + class DebugFile < ApplicationRecord mount_uploader :file, DebugFileUploader diff --git a/app/models/debug_file_metadatum.rb b/app/models/debug_file_metadatum.rb index b255a8e33..3245b925c 100644 --- a/app/models/debug_file_metadatum.rb +++ b/app/models/debug_file_metadatum.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + class DebugFileMetadatum < ApplicationRecord belongs_to :debug_file diff --git a/app/models/release.rb b/app/models/release.rb index 37bdb0181..c4767bbf3 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'app-info' - class Release < ApplicationRecord include Rails.application.routes.url_helpers @@ -13,7 +11,7 @@ class Release < ApplicationRecord belongs_to :channel validates :bundle_id, :release_version, :build_version, :file, presence: true - validate :force_bundle_id, on: :create + validate :bundle_id_matched, on: :create before_create :auto_release_version before_create :default_source @@ -50,7 +48,7 @@ def self.upload_file(params, source = 'Web') release.icon = decode_icon(icon_file) if icon_file else # 处理 Android anydpi 自适应图标 - icon_file = parser.icons.select {|f| File.extname(f[:file]) != '.xml' }.last.try(:[], :file) + icon_file = parser.icons.reject { |f| File.extname(f[:file]) == '.xml' }.last.try(:[], :file) release.icon = File.open(icon_file) if icon_file end @@ -157,12 +155,9 @@ def mime_type def empty_changelog(use_default_changelog = true) return [] unless use_default_changelog - @empty_changelog ||= [ - { - 'message' => "没有找到更新日志,可能的原因:\n\n- 开发者很懒没有留下更新日志😂\n- 有不可抗拒的因素造成日志丢失👽", - # date: Time.now.strftime("%Y-%m-%d %H:%M:%S %z") - } - ] + @empty_changelog ||= [{ + 'message' => "没有找到更新日志,可能的原因:\n\n- 开发者很懒没有留下更新日志😂\n- 有不可抗拒的因素造成日志丢失👽", + }] end def outdated? @@ -171,12 +166,9 @@ def outdated? return lastest if lastest.id > id end - def force_bundle_id - return if file.blank? - return if channel.blank? - return if channel.bundle_id.blank? - return if app_info.blank? - return if channel.bundle_id_matched?(app_info.bundle_id) + def bundle_id_matched + return if file.blank? || channel&.bundle_id.blank? + return if app_info.blank? || channel.bundle_id_matched?(app_info.bundle_id) message = "#{channel.app_name} 的 bundle id `#{app_info.bundle_id}` 无法和 `#{channel.bundle_id}` 匹配" errors.add(:file, message) @@ -186,7 +178,7 @@ def app_info @app_info ||= AppInfo.parse(file.path) rescue AppInfo::UnkownFileTypeError errors.add(:file, '上传的文件不是有效应用格式') - return nil + nil end private diff --git a/app/models/user.rb b/app/models/user.rb index e6c9da7c6..53c0d63af 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -6,9 +6,9 @@ class User < ApplicationRecord devise :database_authenticatable, :registerable, :confirmable, :rememberable, :trackable, :validatable, :recoverable, - :omniauthable, omniauth_providers: [:google_oauth2, :ldap] + :omniauthable, omniauth_providers: %i[google_oauth2 ldap] - enum role: [:user, :developer, :admin] + enum role: %i[user developer admin] has_and_belongs_to_many :apps has_many :user_providers diff --git a/app/models/user_provider.rb b/app/models/user_provider.rb index 338af0842..3a4ad92db 100644 --- a/app/models/user_provider.rb +++ b/app/models/user_provider.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + class UserProvider < ApplicationRecord belongs_to :user diff --git a/app/models/web_hook.rb b/app/models/web_hook.rb index 264eb0fe1..4b445d7ae 100644 --- a/app/models/web_hook.rb +++ b/app/models/web_hook.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + class WebHook < ApplicationRecord has_and_belongs_to_many :channels, dependent: :destroy diff --git a/app/serializers/api/app_serializer.rb b/app/serializers/api/app_serializer.rb index ca63ceb33..93faa1166 100644 --- a/app/serializers/api/app_serializer.rb +++ b/app/serializers/api/app_serializer.rb @@ -1,5 +1,7 @@ +# frozen_string_literal: true + class Api::AppSerializer < ApplicationSerializer attributes :id, :name has_many :schemes -end \ No newline at end of file +end diff --git a/app/serializers/api/app_versions_serializer.rb b/app/serializers/api/app_versions_serializer.rb index 54eaa557c..6e7f8fef3 100644 --- a/app/serializers/api/app_versions_serializer.rb +++ b/app/serializers/api/app_versions_serializer.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + class Api::AppVersionsSerializer < ApplicationSerializer # channel model based attributes :app_name, :bundle_id, :git_url diff --git a/app/serializers/api/debug_file_serializer.rb b/app/serializers/api/debug_file_serializer.rb index 4371d7f0c..8612dedef 100644 --- a/app/serializers/api/debug_file_serializer.rb +++ b/app/serializers/api/debug_file_serializer.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + class Api::DebugFileSerializer < ApplicationSerializer # DebugFIle model based attributes :id, :app_name, :device_type, :release_version, :build_version, :file_url diff --git a/app/serializers/api/latest_app_serializer.rb b/app/serializers/api/latest_app_serializer.rb index b9f6571a6..b5b36af54 100644 --- a/app/serializers/api/latest_app_serializer.rb +++ b/app/serializers/api/latest_app_serializer.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + class Api::LatestAppSerializer < ApplicationSerializer # channel model based attributes :app_name, :bundle_id, :git_url diff --git a/app/serializers/api/upload_app_serializer.rb b/app/serializers/api/upload_app_serializer.rb index 28701324e..622f84110 100644 --- a/app/serializers/api/upload_app_serializer.rb +++ b/app/serializers/api/upload_app_serializer.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + class Api::UploadAppSerializer < ApplicationSerializer # release model based attributes :version, :app_name, :bundle_id, :release_version, :build_version, diff --git a/app/serializers/app_serializer.rb b/app/serializers/app_serializer.rb index f8c1ab302..f4683db1a 100644 --- a/app/serializers/app_serializer.rb +++ b/app/serializers/app_serializer.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + class AppSerializer < ApplicationSerializer attributes :id, :name -end \ No newline at end of file +end diff --git a/app/serializers/application_serializer.rb b/app/serializers/application_serializer.rb index f83fe8adb..d5e0f0c01 100644 --- a/app/serializers/application_serializer.rb +++ b/app/serializers/application_serializer.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + class ApplicationSerializer < ActiveModel::Serializer include Rails.application.routes.url_helpers end diff --git a/app/serializers/channel_serializer.rb b/app/serializers/channel_serializer.rb index 02f176c03..f26fd63ad 100644 --- a/app/serializers/channel_serializer.rb +++ b/app/serializers/channel_serializer.rb @@ -1,7 +1,9 @@ +# frozen_string_literal: true + class ChannelSerializer < ApplicationSerializer attributes :slug, :name, :device_type, :bundle_id, :git_url, :has_password def has_password - !object.password.blank? + object.password.persent? end -end \ No newline at end of file +end diff --git a/app/serializers/release_serializer.rb b/app/serializers/release_serializer.rb index 4adb5dcbb..17186ccd4 100644 --- a/app/serializers/release_serializer.rb +++ b/app/serializers/release_serializer.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + class ReleaseSerializer < ApplicationSerializer attributes :version, :app_name, :bundle_id, :release_version, :build_version, :source, :branch, :git_commit, :ci_url, :size, diff --git a/app/serializers/scheme_serializer.rb b/app/serializers/scheme_serializer.rb index e61787b5e..7cc069f24 100644 --- a/app/serializers/scheme_serializer.rb +++ b/app/serializers/scheme_serializer.rb @@ -1,5 +1,7 @@ +# frozen_string_literal: true + class SchemeSerializer < ApplicationSerializer attributes :id, :name has_many :channels -end \ No newline at end of file +end diff --git a/app/services/create_sample_apps_service.rb b/app/services/create_sample_apps_service.rb index 84f92105c..0aa43ca2d 100644 --- a/app/services/create_sample_apps_service.rb +++ b/app/services/create_sample_apps_service.rb @@ -49,16 +49,7 @@ def stardford_app(user) end 2.times do - release = channel.releases.new - release.bundle_id = bundle_id - release.release_version = '1.0.0' - release.build_version = '1' - release.release_type = release_type - release.source = 'API' - release.branch = 'develop' - release.git_commit = SecureRandom.hex - release.changelog = changelog - release.save validate: false + generate_release(channel, bundle_id, release_type, changelog) end end end @@ -78,20 +69,24 @@ def android_channels_app(user) channels.each do |channel_name| channel = scheme.channels.find_or_create_by name: channel_name, device_type: :android - release = channel.releases.new - release.bundle_id = app_bundle_id - release.release_version = '1.0.0' - release.build_version = '1' - release.release_type = 'release' - release.source = 'API' - release.branch = 'develop' - release.git_commit = SecureRandom.hex - release.changelog = changelog - release.save validate: false + generate_release(channel, app_bundle_id, 'release', changelog) end end end + def generate_release(channel, app_bundle_id, release_type, changelog) + release = channel.releases.new + release.bundle_id = app_bundle_id + release.release_version = '1.0.0' + release.build_version = '1' + release.release_type = release_type + release.source = 'API' + release.branch = 'develop' + release.git_commit = SecureRandom.hex + release.changelog = changelog + release.save validate: false + end + def create_app(name, user) App.find_or_create_by name: name do |a| a.users << user diff --git a/app/uploaders/app_file_uploader.rb b/app/uploaders/app_file_uploader.rb index 6aac53067..801c8362c 100644 --- a/app/uploaders/app_file_uploader.rb +++ b/app/uploaders/app_file_uploader.rb @@ -1,24 +1,11 @@ -class AppFileUploader < CarrierWave::Uploader::Base - storage :file +# frozen_string_literal: true +class AppFileUploader < ApplicationUploader def store_dir "uploads/apps/a#{model.app.id}/r#{model.id}/binary" end - def size - @size = file&.size - end - def extension_white_list %w[ipa apk].freeze end - - def md5 - chunk = model.send(mounted_as) - @md5 ||= Digest::MD5.hexdigest(chunk.read.to_s) - end - - def filename - @name ||= "#{md5}#{File.extname(super)}" if super - end end diff --git a/app/uploaders/app_icon_uploader.rb b/app/uploaders/app_icon_uploader.rb index 8b40592d2..7d59401fb 100644 --- a/app/uploaders/app_icon_uploader.rb +++ b/app/uploaders/app_icon_uploader.rb @@ -1,21 +1,17 @@ -class AppIconUploader < CarrierWave::Uploader::Base - include CarrierWave::MiniMagick +# frozen_string_literal: true - # Choose what kind of storage to use for this uploader: - storage :file +class AppIconUploader < ApplicationUploader + include CarrierWave::MiniMagick - # Override the directory where uploaded files will be stored. - # This is a sensible default for uploaders that are meant to be mounted: def store_dir "uploads/apps/a#{model.app.id}/r#{model.id}/icons" end - # Provide a default URL as a default if there hasn't been a file uploaded: # def default_url # # For Rails 3.1+ asset pipeline compatibility: # # ActionController::Base.helpers.asset_path("fallback/" + [version_name, "default.png"].compact.join('_')) - # - # "/images/fallback/" + [version_name, "default.png"].compact.join('_') + + # "/media/images/touch-icon.png" # end version :thumb do @@ -33,13 +29,4 @@ def store_dir def extension_white_list [:png] end - - def checksum - chunk = model.send(mounted_as) - @checksum ||= Digest::MD5.hexdigest(chunk.read.to_s) - end - - def filename - @name ||= "#{checksum}#{File.extname(super)}" if super - end end diff --git a/app/uploaders/application_uploader.rb b/app/uploaders/application_uploader.rb new file mode 100644 index 000000000..1d174d5ff --- /dev/null +++ b/app/uploaders/application_uploader.rb @@ -0,0 +1,18 @@ +# frozen_string_literal: true + +class ApplicationUploader < CarrierWave::Uploader::Base + storage :file + + def size + @size = file&.size + end + + def checksum + chunk = model.send(mounted_as) + @checksum ||= Digest::MD5.hexdigest(chunk.read.to_s) + end + + def filename + @name ||= "#{checksum}#{File.extname(super)}" if super + end +end \ No newline at end of file diff --git a/app/uploaders/debug_file_uploader.rb b/app/uploaders/debug_file_uploader.rb index 3a641f376..8240a0491 100644 --- a/app/uploaders/debug_file_uploader.rb +++ b/app/uploaders/debug_file_uploader.rb @@ -1,24 +1,11 @@ -class DebugFileUploader < CarrierWave::Uploader::Base - storage :file +# frozen_string_literal: true +class DebugFileUploader < ApplicationUploader def store_dir "uploads/debug_files/a#{model.app.id}/" end - def size - @size = file.size - end - def extension_white_list %w[zip] end - - def checksum - chunk = model.send(mounted_as) - @checksum ||= Digest::MD5.hexdigest(chunk.read.to_s) - end - - def filename - @name ||= "#{checksum}#{File.extname(super)}" if super - end end diff --git a/cable/config.ru b/cable/config.ru index d23f64a98..767387ddc 100755 --- a/cable/config.ru +++ b/cable/config.ru @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require_relative '../config/environment' Rails.application.eager_load! diff --git a/config/environments/development.rb b/config/environments/development.rb index e3f04e482..a7cb07b51 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Rails.application.configure do # Settings specified here will take precedence over those in config/application.rb. @@ -43,7 +45,7 @@ # If using a Heroku, Vagrant or generic remote development environment, # use letter_opener_web, accessible at /letter_opener. # Otherwise, use letter_opener, which launches a browser window to view sent mail. - config.action_mailer.delivery_method = (ENV['HEROKU'] || ENV['VAGRANT'] || ENV['REMOTE_DEV']) ? :letter_opener_web : :letter_opener + config.action_mailer.delivery_method = %w[HEROKU VAGRANT REMOTE_DEV].select { |k| ENV.present?(k) }.empty? ? :letter_opener_web : :letter_opener # Print deprecation notices to the Rails logger. config.active_support.deprecation = :log diff --git a/config/environments/production.rb b/config/environments/production.rb index 269e8ec90..8b32fc992 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Rails.application.configure do # Settings specified here will take precedence over those in config/application.rb. diff --git a/config/environments/test.rb b/config/environments/test.rb index de83a778b..e5cbfe5bb 100644 --- a/config/environments/test.rb +++ b/config/environments/test.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + # The test environment is used exclusively to run your application's # test suite. You never need to work with it otherwise. Remember that # your test database is "scratch space" for the test suite and is wiped @@ -5,7 +7,7 @@ Rails.application.configure do # Settings specified here will take precedence over those in config/application.rb. - + config.cache_classes = false # Do not eager load code on boot. This avoids loading your whole application diff --git a/config/initializers/assets.rb b/config/initializers/assets.rb index eab3f1dfc..91bef6ddd 100644 --- a/config/initializers/assets.rb +++ b/config/initializers/assets.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + # Be sure to restart your server when you modify this file. # Version of your assets, change this if you want to expire all your assets. @@ -13,4 +15,6 @@ # application.js, application.css, and all non-JS/CSS in the app/assets # folder are already added. -Rails.application.config.assets.precompile += %w[graphiql/rails/application.js graphiql/rails/application.css] if Rails.env.development? \ No newline at end of file +if Rails.env.development? + Rails.application.config.assets.precompile += %w[graphiql/rails/application.js graphiql/rails/application.css] +end diff --git a/config/initializers/content_security_policy.rb b/config/initializers/content_security_policy.rb index 131b9a81b..af9f02687 100644 --- a/config/initializers/content_security_policy.rb +++ b/config/initializers/content_security_policy.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + # Be sure to restart your server when you modify this file. # Define an application-wide content security policy @@ -5,17 +7,17 @@ # https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy Rails.application.config.content_security_policy do |policy| -# policy.default_src :self, :https -# policy.font_src :self, :https, :data -# policy.img_src :self, :https, :data -# policy.object_src :none -# policy.script_src :self, :https -# policy.style_src :self, :https -# # If you are using webpack-dev-server then specify webpack-dev-server host + # policy.default_src :self, :https + # policy.font_src :self, :https, :data + # policy.img_src :self, :https, :data + # policy.object_src :none + # policy.script_src :self, :https + # policy.style_src :self, :https + # If you are using webpack-dev-server then specify webpack-dev-server host policy.connect_src :self, :https, 'http://localhost:3035', 'ws://localhost:3035' if Rails.env.development? -# # Specify URI for violation reports -# # policy.report_uri "/csp-violation-report-endpoint" + # Specify URI for violation reports + # policy.report_uri "/csp-violation-report-endpoint" end # If you are using UJS then enable automatic nonce generation diff --git a/config/initializers/devise.rb b/config/initializers/devise.rb index a13e2525c..2b6923251 100644 --- a/config/initializers/devise.rb +++ b/config/initializers/devise.rb @@ -8,7 +8,7 @@ # confirmation, reset password and unlock tokens in the database. # Devise will use the `secret_key_base` as its `secret_key` # by default. You can change it below and use your own secret key. - # config.secret_key = '70ad107d3d390856ccf70b5d67bd9c14bb1f40ae8d13881f8b4a515ca1fb07896a32dfb6277f0e8615bf198703f10a15cb277100aa038b744cb7ac716090183f' + # config.secret_key = '' # ==> Mailer Configuration # Configure the e-mail address which will be shown in Devise::Mailer, diff --git a/config/initializers/filter_parameter_logging.rb b/config/initializers/filter_parameter_logging.rb index 2ab23e63c..dc8fe9e03 100644 --- a/config/initializers/filter_parameter_logging.rb +++ b/config/initializers/filter_parameter_logging.rb @@ -1,4 +1,4 @@ -# Be sure to restart your server when you modify this file. +# frozen_string_literal: true # Configure sensitive parameters which will be filtered from the log file. -Rails.application.config.filter_parameters += [:password, :password_confirmation] +Rails.application.config.filter_parameters += %i[password password_confirmation] diff --git a/config/initializers/sentry.rb b/config/initializers/sentry.rb index 5e4933a2d..85b470e0d 100644 --- a/config/initializers/sentry.rb +++ b/config/initializers/sentry.rb @@ -8,7 +8,7 @@ config.excluded_exceptions += ['ActionController::RoutingError', 'ActiveRecord::RecordNotFound'] config.sanitize_fields = Rails.application.config.filter_parameters.map(&:to_s) config.sanitize_fields << 'token' - config.async = -> (event) { SentryJob.perform_later(event) } + config.async = ->(event) { SentryJob.perform_later(event) } version = ENV['ZEALOT_VERSION'] || Setting.version vcs_ref = ENV['ZEALOT_VCS_REF'] diff --git a/config/initializers/server_runtime.rb b/config/initializers/server_runtime.rb index 3f659b9a1..9e58a8480 100644 --- a/config/initializers/server_runtime.rb +++ b/config/initializers/server_runtime.rb @@ -1 +1,3 @@ -Rails.application.config.booted_at = Time.now \ No newline at end of file +# frozen_string_literal: true + +Rails.application.config.booted_at = Time.now diff --git a/config/initializers/simple_form.rb b/config/initializers/simple_form.rb index 0dc88e8c1..a13e7ad7c 100644 --- a/config/initializers/simple_form.rb +++ b/config/initializers/simple_form.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true -# + # Uncomment this and change the path if necessary to include your own # components. # See https://github.com/plataformatec/simple_form#custom-components to know diff --git a/config/initializers/simple_form_bootstrap.rb b/config/initializers/simple_form_bootstrap.rb index 246d1566e..1413705b0 100644 --- a/config/initializers/simple_form_bootstrap.rb +++ b/config/initializers/simple_form_bootstrap.rb @@ -21,7 +21,7 @@ config.boolean_label_class = 'form-check-label' # How the label text should be generated altogether with the required text. - config.label_text = lambda { |label, required, explicit_label| "#{label} #{required}" } + config.label_text = ->(label, required, _) { "#{label} #{required}" } # Define the way to render check boxes / radio buttons with labels. config.boolean_style = :inline @@ -45,7 +45,6 @@ config.input_field_error_class = 'is-invalid' config.input_field_valid_class = 'is-valid' - # vertical forms # # vertical default_wrapper @@ -136,7 +135,6 @@ b.use :hint, wrap_with: { tag: 'small', class: 'form-text text-muted' } end - # horizontal forms # # horizontal default_wrapper @@ -240,7 +238,6 @@ end end - # inline forms # # inline default_wrapper @@ -269,7 +266,6 @@ b.optional :hint, wrap_with: { tag: 'small', class: 'form-text text-muted' } end - # bootstrap custom forms # # custom input for boolean @@ -360,7 +356,6 @@ b.use :hint, wrap_with: { tag: 'small', class: 'form-text text-muted' } end - # Input Group - custom component # see example app and config at https://github.com/rafaelfranca/simple_form-bootstrap # config.wrappers :input_group, tag: 'div', class: 'form-group', error_class: 'form-group-invalid', valid_class: 'form-group-valid' do |b| @@ -381,7 +376,6 @@ # b.use :hint, wrap_with: { tag: 'small', class: 'form-text text-muted' } # end - # Floating Labels form # # floating labels default_wrapper @@ -409,7 +403,6 @@ b.use :hint, wrap_with: { tag: 'small', class: 'form-text text-muted' } end - # The default wrapper to be used by the FormBuilder. config.default_wrapper = :vertical_form diff --git a/config/puma.rb b/config/puma.rb index fa972307c..234918667 100644 --- a/config/puma.rb +++ b/config/puma.rb @@ -63,4 +63,4 @@ # We need to connect to the database. Pooling is handled automatically since # we'll set the connection pool value in the DATABASE_URL later. # defined?(ActiveRecord::Base) and ActiveRecord::Base.establish_connection -# end \ No newline at end of file +# end diff --git a/config/routes.rb b/config/routes.rb index 85fad784e..a8581bea3 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -28,7 +28,7 @@ end end - resources :releases, except: :index, path_names: { new: 'upload' } do # , param: :version, constraints: { version: /\d+/ } + resources :releases, except: :index, path_names: { new: 'upload' } do scope module: :releases do get :qrcode, to: 'qrcode#show' end @@ -39,19 +39,19 @@ end scope module: :channels do - resources :versions, only: [:index, :show], id: /(.+)+/ + resources :versions, only: %i[index show], id: /(.+)+/ end end ############################################# # Debug File ############################################# - resources :debug_files, except: [:show] + resources :debug_files, except: %i[show] ############################################# # Teardown ############################################# - resources :teardowns, only: [:show, :new, :create], path_names: { new: 'upload' } + resources :teardowns, only: %i[show new create], path_names: { new: 'upload' } ############################################# # Admin @@ -59,7 +59,7 @@ authenticate :user, ->(user) { user.admin? } do namespace :admin do resources :users, except: :show - resources :web_hooks, except: [:edit, :update] + resources :web_hooks, except: %i[edit update] get :background_jobs, to: 'background_jobs#show' get :system_info, to: 'system_info#show' @@ -96,7 +96,7 @@ post 'debug_files/upload', to: 'debug_files#create' get 'debug_files/download', to: 'debug_files/download#show' - resources :debug_files, except: [:create, :new, :edit] + resources :debug_files, except: %i[create new edit] namespace :jenkins do get 'projects', to: 'projects#index' diff --git a/config/spring.rb b/config/spring.rb index db5bf1307..8f6432bf6 100644 --- a/config/spring.rb +++ b/config/spring.rb @@ -1,6 +1,6 @@ Spring.watch( - ".ruby-version", - ".rbenv-vars", - "tmp/restart.txt", - "tmp/caching-dev.txt" + '.ruby-version', + '.rbenv-vars', + 'tmp/restart.txt', + 'tmp/caching-dev.txt' ) diff --git a/lib/backup/config.rb b/lib/backup/config.rb index 169e94d8f..e7f6febc4 100644 --- a/lib/backup/config.rb +++ b/lib/backup/config.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + module Backup module Config def backup_path diff --git a/lib/backup/database.rb b/lib/backup/database.rb index d2e8ff35b..e6f16cf82 100644 --- a/lib/backup/database.rb +++ b/lib/backup/database.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require_relative 'config' module Backup @@ -66,4 +68,4 @@ def prepare FileUtils.rm_f(db_backup_file_path) end end -end \ No newline at end of file +end diff --git a/lib/backup/manager.rb b/lib/backup/manager.rb index 0c9a512fc..b261241c7 100644 --- a/lib/backup/manager.rb +++ b/lib/backup/manager.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require_relative 'config' require_relative '../setting' require 'yaml' diff --git a/lib/backup/upload.rb b/lib/backup/upload.rb index 270b8c57f..10ae7894e 100644 --- a/lib/backup/upload.rb +++ b/lib/backup/upload.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + require_relative 'config' module Backup @@ -60,4 +62,4 @@ def prepare FileUtils.mkdir_p(apps_backup_path, mode: 0_700) end end -end \ No newline at end of file +end diff --git a/lib/setting.rb b/lib/setting.rb index 85c60e358..9cc830968 100644 --- a/lib/setting.rb +++ b/lib/setting.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + class Setting < Settingslogic source "#{Rails.root}/config/zealot.yml" namespace Rails.env diff --git a/lib/tasks/backup.rake b/lib/tasks/backup.rake index 06f4c231a..9235d12d7 100644 --- a/lib/tasks/backup.rake +++ b/lib/tasks/backup.rake @@ -112,4 +112,4 @@ def ask_to_continue puts 'Please enter yes or no, try again.' ask_to_continue end -end \ No newline at end of file +end From d42324f9381f83d1e258618c44e1420c6d5d5771 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 15 Jan 2020 15:56:07 +0800 Subject: [PATCH 0036/2165] =?UTF-8?q?refactor:=20=E7=A7=BB=E9=99=A4?= =?UTF-8?q?=E8=80=81=E7=9A=84=E5=A4=87=E4=BB=BD=E5=B7=A5=E5=85=B7=E5=92=8C?= =?UTF-8?q?=20init=20=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/backup/config.rb | 37 --- lib/backup/database.rb | 71 ----- lib/backup/manager.rb | 142 ---------- lib/backup/upload.rb | 65 ----- lib/support/init.d/zealot | 299 -------------------- lib/tasks/backup.rake | 115 -------- lib/templates/slim/scaffold/_form.html.slim | 1 - 7 files changed, 730 deletions(-) delete mode 100644 lib/backup/config.rb delete mode 100644 lib/backup/database.rb delete mode 100644 lib/backup/manager.rb delete mode 100644 lib/backup/upload.rb delete mode 100755 lib/support/init.d/zealot delete mode 100644 lib/tasks/backup.rake diff --git a/lib/backup/config.rb b/lib/backup/config.rb deleted file mode 100644 index e7f6febc4..000000000 --- a/lib/backup/config.rb +++ /dev/null @@ -1,37 +0,0 @@ -# frozen_string_literal: true - -module Backup - module Config - def backup_path - File.join(Rails.root, 'tmp', 'backups') - end - - def db_config - ActiveRecord::Base.connection_config - end - - def db_backup_path - File.join(backup_path, 'db') - end - - def db_backup_file_path - File.join(db_backup_path, 'database.sql.gz') - end - - def app_uploads_path - File.join(Rails.root, 'public', 'uploads') - end - - def apps_stored_path - File.join(app_uploads_path, 'apps') - end - - def apps_backup_path - File.join(backup_path, 'apps') - end - - def keep_max_time - 15 - end - end -end diff --git a/lib/backup/database.rb b/lib/backup/database.rb deleted file mode 100644 index e6f16cf82..000000000 --- a/lib/backup/database.rb +++ /dev/null @@ -1,71 +0,0 @@ -# frozen_string_literal: true - -require_relative 'config' - -module Backup - class Database - include Backup::Config - - def dump - prepare - - compress_rd, compress_wr = IO.pipe - compress_pid = spawn(*%W(gzip -1 -c), in: compress_rd, out: [db_backup_file_path, 'w', 0600]) - compress_rd.close - - dump_pid = case db_config[:adapter] - when /^mysql/ then - print "Dumping MySQL database #{db_config[:database]} ... " - # Workaround warnings from MySQL 5.6 about passwords on cmd line - ENV['MYSQL_PWD'] = db_config[:password].to_s if db_config[:password] - spawn('mysqldump', *mysql_args, db_config[:database], out: compress_wr) - else - abort 'Unkown database adapter, only support mysql.' - end - compress_wr.close - - success = [compress_pid, dump_pid].all? { |pid| Process.waitpid(pid); $?.success? } - abort 'Backup failed' unless success - - puts '[DONE]' - end - - def restore - decompress_rd, decompress_wr = IO.pipe - decompress_pid = spawn(*%W(gzip -cd), out: decompress_wr, in: db_backup_file_path) - decompress_wr.close - - restore_pid = case db_config[:adapter] - when /^mysql/ then - print "Restoring MySQL database #{db_config[:database]} ... #{db_config['backup_created_at']}" - # Workaround warnings from MySQL 5.6 about passwords on cmd line - ENV['MYSQL_PWD'] = db_config[:password].to_s if db_config[:password] - spawn('mysql', *mysql_args, db_config[:database], in: decompress_rd) - end - decompress_rd.close - - success = [decompress_pid, restore_pid].all? { |pid| Process.waitpid(pid); $?.success? } - abort 'Restore failed' unless success - - puts '[DONE]' - end - - protected - - def mysql_args - args = { - host: '--host', - port: '--port', - socket: '--socket', - username: '--user', - encoding: '--default-character-set' - } - args.map { |opt, arg| "#{arg}=#{db_config[opt]}" if db_config[opt] }.compact - end - - def prepare - FileUtils.mkdir_p(db_backup_path) - FileUtils.rm_f(db_backup_file_path) - end - end -end diff --git a/lib/backup/manager.rb b/lib/backup/manager.rb deleted file mode 100644 index b261241c7..000000000 --- a/lib/backup/manager.rb +++ /dev/null @@ -1,142 +0,0 @@ -# frozen_string_literal: true - -require_relative 'config' -require_relative '../setting' -require 'yaml' - -module Backup - class Manager - include Backup::Config - - ZIP_FILE = 'zealot_backup.tar'.freeze - INFO_FILE = 'backup_information.yml'.freeze - - FOLDERS_TO_BACKUP = %w[apps db] - - def pack - # Make sure there is a connection - ActiveRecord::Base.connection.reconnect! - - # saving additional informations - s = {} - s[:rails_env] = Rails.env.to_s - s[:app_version] = Setting.version - s[:db_adapter] = db_config[:adapter] - s[:db_host] = db_config[:host] - s[:db_port] = db_config[:port] || 3306 - s[:db_database] = db_config[:database] - s[:db_user] = db_config[:username] - s[:db_migrator_version] = ActiveRecord::Migrator.current_version - s[:backup_created_at] = Time.zone.now.strftime('%Y%m%d%H%M%S') - - tar_file = tarchive_file(s[:backup_created_at]) - Dir.chdir(backup_path) do - File.open(File.join(backup_path, INFO_FILE), 'w+') do |file| - file << s.to_yaml.gsub(/^---\n/, '') - end - - print "Creating backup archive: #{File.join(backup_path, tar_file)} ... " - tar_system_options = { out: [tar_file, 'w', 0_600] } - unless Kernel.system('tar', '-cf', '-', *backup_contents, tar_system_options) - puts "creating archive #{tar_file} failed" - abort 'Backup failed' - end - - puts '[DONE]' - end - end - - def cleanup - print 'Deleting tmp directories ... ' - - backup_contents.each do |dir| - next unless File.exist?(File.join(backup_path, dir)) - - unless FileUtils.rm_rf(File.join(backup_path, dir)) - puts "deleting tmp directory '#{dir}' failed" - abort 'Backup failed' - end - end - - puts '[DONE]' - end - - def remove_old - print 'Deleting old backups ... ' - if keep_max_time.positive? - removed = 0 - - Dir.chdir(backup_path) do - file_list = Dir.glob(tarchive_file('*')) - file_list.map! { |f| $1.to_i if f =~ /(\d+)_zealot_backup.tar/ } - file_list.sort.each do |timestamp| - if Time.at(timestamp) < (Time.zone.now - keep_max_time) - if Kernel.system(*%W(rm #{tarchive_file(timestamp)})) - removed += 1 - end - end - end - end - else - puts 'skipping' - end - - puts '[DONE]' - end - - def unpack - Dir.chdir(backup_path) - - puts 'No backups found' if backups_list.count.zero? - - if backups_list.count > 1 && ENV['BACKUP'].nil? - puts 'Found more than one backup, please specify which one you want to restore:' - puts 'rake mobile:restore BACKUP=file_name_of_backup' - exit 1 - end - - tar_file = ENV['BACKUP'].nil? ? backups_list.first : ENV['BACKUP'] - unless File.exist?(tar_file) - puts 'The specified backup doesn\'t exist!' - exit 1 - end - - print "Unpacking backup ... #{tar_file} " - unless Kernel.system(*%W(tar -xf #{tar_file})) - puts 'unpacking backup failed' - exit 1 - else - puts '[DONE]' - end - - if backup_information[:app_version] != Setting.version - puts 'Zealot version mismatch:' - puts " Your current Zealot version (#{Setting.version}) differs from the Zealot version in the backup!" - puts ' Please switch to the following version and try again:' - puts " version: #{backup_information[:app_version]}" - puts - puts "Hint: git checkout #{backup_information[:app_version]}" - exit 1 - end - end - - def backups_list - Dir.chdir(backup_path) - @backups_list ||= Dir.glob("#{tarchive_file('*')}*") - end - - private - - def tarchive_file(prefix) - "#{prefix}_#{ZIP_FILE}" - end - - def backup_contents - FOLDERS_TO_BACKUP.push(INFO_FILE) - end - - def backup_information - @backup_information ||= YAML.load_file(INFO_FILE) - end - end -end diff --git a/lib/backup/upload.rb b/lib/backup/upload.rb deleted file mode 100644 index 10ae7894e..000000000 --- a/lib/backup/upload.rb +++ /dev/null @@ -1,65 +0,0 @@ -# frozen_string_literal: true - -require_relative 'config' - -module Backup - class Upload - include Backup::Config - - def dump - prepare - print "Dumping uploaded apps from #{apps_stored_path} ... " - Dir.glob("#{apps_stored_path}/*").each do |app_path| - Dir.glob("#{app_path}/*").each do |release_path| - relative_path = release_path.gsub(apps_stored_path, '') - app_dirname, release_dirname = relative_path[1..-1].split('/') - backup_path = File.join(apps_backup_path, app_dirname) - - print " * #{app_dirname}/#{release_dirname} ... " - FileUtils.mkdir_p(backup_path) - FileUtils.cp_r(release_path, backup_path) - print '[DONE]' - puts '' - end - end - - puts '[DONE]' - end - - def restore - puts "Restore uploaded apps to #{apps_stored_path} ... " - unless File.exist?(apps_backup_path) - puts 'No uploaded apps found' - exit 1 - end - - if File.exist?(apps_stored_path) - backup_apps_path = File.join(app_uploads_path, "apps.old.#{Time.zone.now.strftime('%Y%m%d%H%M%S')}") - - FileUtils.mv(apps_stored_path, backup_apps_path) - FileUtils.mkdir_p(apps_stored_path) - end - - Dir.glob("#{apps_backup_path}/*").each do |app_path| - Dir.glob("#{app_path}/*").each do |release_path| - relative_path = release_path.gsub(apps_backup_path, '') - app_dirname, release_dirname = relative_path[1..-1].split('/') - restore_path = File.join(apps_stored_path, app_dirname) - - print " * #{app_dirname}/#{release_dirname} ... " - FileUtils.mkdir_p(restore_path) unless File.exist?(restore_path) - FileUtils.mv(release_path, restore_path) - puts '[DONE]' - end - end - end - - protected - - def prepare - FileUtils.rm_rf(apps_backup_path) - # Fail if somebody raced to create backup_repos_path before us - FileUtils.mkdir_p(apps_backup_path, mode: 0_700) - end - end -end diff --git a/lib/support/init.d/zealot b/lib/support/init.d/zealot deleted file mode 100755 index b70c36d7e..000000000 --- a/lib/support/init.d/zealot +++ /dev/null @@ -1,299 +0,0 @@ -#! /bin/sh - -# MOBILE -# Maintainer: @icyleaf -# Authors: icyleaf.cn@gmail.com - -### BEGIN INIT INFO -# Provides: zealot -# Required-Start: $local_fs $remote_fs $network $syslog redis-server -# Required-Stop: $local_fs $remote_fs $network $syslog -# Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 -# Short-Description: Zealot management -# Description: Zealot management -# chkconfig: - 85 14 -### END INIT INFO - - -### -# DO NOT EDIT THIS FILE! -# This file will be overwritten on update. -# Instead add/change your variables in /etc/default/gitlab -# An example defaults file can be found in lib/support/init.d/gitlab.default.example -### - - -### Environment variables -RAILS_ENV="production" -app_user="wangshen" - -# Script variable names should be lower-case not to conflict with -# internal /bin/sh variables such as PATH, EDITOR or SHELL. -app_root="/home/$app_user/www/mobile/current" -shared_path="$app_root/../../shared" -pid_path="$shared_path/tmp/pids" -socket_path="$shared_path/tmp/sockets" - -rails_socket="$socket_path/puma.socket" - -web_server_pid_path="$pid_path/puma.pid" -sidekiq_pid_path="$pid_path/sidekiq-0.pid" -shell_path="/bin/bash" - -# Read configuration variable file if it is present -test -f /etc/default/zealot && . /etc/default/zealot - -# Switch to the app_user if it is not he/she who is running the script. -if [ `whoami` != "$app_user" ]; then - eval su - "$app_user" -c $(echo \")$shell_path -l -c \'$0 "$@"\'$(echo \"); exit; -fi - -# Switch to the gitlab path, exit on failure. -if ! cd "$app_root" ; then - echo "Failed to cd into $app_root, exiting!"; exit 1 -fi - - -### Init Script functions - -## Gets the pids from the files -check_pids(){ - if ! mkdir -p "$pid_path"; then - echo "Could not create the path $pid_path needed to store the pids." - exit 1 - fi - # If there exists a file which should hold the value of the Puma pid: read it. - if [ -f "$web_server_pid_path" ]; then - wpid=$(cat "$web_server_pid_path") - else - wpid=0 - fi - if [ -f "$sidekiq_pid_path" ]; then - spid=$(cat "$sidekiq_pid_path") - else - spid=0 - fi -} - -## Called when we have started the two processes and are waiting for their pid files. -wait_for_pids(){ - # We are sleeping a bit here mostly because sidekiq is slow at writing its pid - i=0; - while [ ! -f $web_server_pid_path ] || [ ! -f $sidekiq_pid_path ]; do - sleep 0.1; - i=$((i+1)) - if [ $((i%10)) = 0 ]; then - echo -n "." - elif [ $((i)) = 301 ]; then - echo "Waited 30s for the processes to write their pids, something probably went wrong." - exit 1; - fi - done - echo -} - -# We use the pids in so many parts of the script it makes sense to always check them. -# Only after start() is run should the pids change. Sidekiq sets its own pid. -check_pids - - -## Checks whether the different parts of the service are already running or not. -check_status(){ - check_pids - # If the web server is running kill -0 $wpid returns true, or rather 0. - # Checks of *_status should only check for == 0 or != 0, never anything else. - if [ $wpid -ne 0 ]; then - kill -0 "$wpid" 2>/dev/null - web_status="$?" - else - web_status="-1" - fi - if [ $spid -ne 0 ]; then - kill -0 "$spid" 2>/dev/null - sidekiq_status="$?" - else - sidekiq_status="-1" - fi - if [ $web_status = 0 ] && [ $sidekiq_status = 0 ]; then - zealot_status=0 - else - # http://refspecs.linuxbase.org/LSB_4.1.0/LSB-Core-generic/LSB-Core-generic/iniscrptact.html - # code 3 means 'program is not running' - zealot_status=3 - fi -} - -## Check for stale pids and remove them if necessary. -check_stale_pids(){ - check_status - # If there is a pid it is something else than 0, the service is running if - # *_status is == 0. - if [ "$wpid" != "0" ] && [ "$web_status" != "0" ]; then - echo "Removing stale Puma web server pid. This is most likely caused by the web server crashing the last time it ran." - if ! rm "$web_server_pid_path"; then - echo "Unable to remove stale pid, exiting." - exit 1 - fi - fi - if [ "$spid" != "0" ] && [ "$sidekiq_status" != "0" ]; then - echo "Removing stale Sidekiq job dispatcher pid. This is most likely caused by Sidekiq crashing the last time it ran." - if ! rm "$sidekiq_pid_path"; then - echo "Unable to remove stale pid, exiting" - exit 1 - fi - fi -} - -## If no parts of the service is running, bail out. -exit_if_not_running(){ - check_stale_pids - if [ "$web_status" != "0" ] && [ "$sidekiq_status" != "0" ]; then - echo "Zealot is not running." - exit - fi -} - -## Starts Puma and Sidekiq if they're not running. -start_zealot() { - check_stale_pids - - if [ "$web_status" != "0" ]; then - echo "Starting Zealot Puma" - fi - if [ "$sidekiq_status" != "0" ]; then - echo "Starting Zealot Sidekiq" - fi - - # Then check if the service is running. If it is: don't start again. - if [ "$web_status" = "0" ]; then - echo "The Puma web server already running with pid $wpid, not restarting." - else - # Remove old socket if it exists - rm -f "$rails_socket" 2>/dev/null - # Start the web server - RAILS_ENV=$RAILS_ENV bin/web start - fi - - # If sidekiq is already running, don't start it again. - if [ "$sidekiq_status" = "0" ]; then - echo "The Sidekiq job dispatcher is already running with pid $spid, not restarting" - else - RAILS_ENV=$RAILS_ENV bin/background_jobs start & - fi - - # Wait for the pids to be planted - wait_for_pids - # Finally check the status to tell wether or not Zealot is running - print_status -} - -## Asks Puma, Sidekiq and MailRoom if they would be so kind as to stop, if not kills them. -stop_zealot() { - exit_if_not_running - - if [ "$web_status" = "0" ]; then - echo "Shutting down Zealot Puma" - RAILS_ENV=$RAILS_ENV bin/web stop - fi - if [ "$sidekiq_status" = "0" ]; then - echo "Shutting down Zealot Sidekiq" - RAILS_ENV=$RAILS_ENV bin/background_jobs stop - fi - - # If something needs to be stopped, lets wait for it to stop. Never use SIGKILL in a script. - while [ "$web_status" = "0" ] || [ "$sidekiq_status" = "0" ]; do - sleep 1 - check_status - printf "." - if [ "$web_status" != "0" ] && [ "$sidekiq_status" != "0" ]; then - printf "\n" - break - fi - done - - sleep 1 - # Cleaning up unused pids - rm "$web_server_pid_path" 2>/dev/null - # rm "$sidekiq_pid_path" 2>/dev/null # Sidekiq seems to be cleaning up its own pid. - - print_status -} - -## Prints the status of Zealot and its components. -print_status() { - check_status - if [ "$web_status" != "0" ] && [ "$sidekiq_status" != "0" ]; then - echo "Zealot is not running." - return - fi - if [ "$web_status" = "0" ]; then - echo "The Zealot Puma web server with pid $wpid is running." - else - printf "The Zealot Puma web server is \033[31mnot running\033[0m.\n" - fi - if [ "$sidekiq_status" = "0" ]; then - echo "The Zealot Sidekiq job dispatcher with pid $spid is running." - else - printf "The Zealot Sidekiq job dispatcher is \033[31mnot running\033[0m.\n" - fi - - if [ "$web_status" = "0" ] && [ "$sidekiq_status" = "0" ]; then - printf "Zealot and all its components are \033[32mup and running\033[0m.\n" - fi -} - -## Tells puma to reload its config and Sidekiq to restart -reload_mobile(){ - exit_if_not_running - if [ "$wpid" = "0" ];then - echo "The Zealot Puma Web server is not running thus its configuration can't be reloaded." - exit 1 - fi - printf "Reloading Zealot Puma configuration... " - RAILS_ENV=$RAILS_ENV bin/web reload - echo "Done." - - echo "Restarting Zealot Sidekiq since it isn't capable of reloading its config..." - RAILS_ENV=$RAILS_ENV bin/background_jobs restart - - wait_for_pids - print_status -} - -## Restarts Sidekiq and Puma. -restart_zealot(){ - check_status - if [ "$web_status" = "0" ] || [ "$sidekiq_status" = "0" ]; then - stop_zealot - fi - start_zealot -} - - -### Finally the input handling. - -case "$1" in - start) - start_zealot - ;; - stop) - stop_zealot - ;; - restart) - restart_zealot - ;; - reload|force-reload) - reload_mobile - ;; - status) - print_status - exit $zealot_status - ;; - *) - echo "Usage: service zealot {start|stop|restart|reload|status}" - exit 1 - ;; -esac - -exit diff --git a/lib/tasks/backup.rake b/lib/tasks/backup.rake deleted file mode 100644 index 9235d12d7..000000000 --- a/lib/tasks/backup.rake +++ /dev/null @@ -1,115 +0,0 @@ -require_relative '../backup/manager' -require_relative '../backup/database' -require_relative '../backup/upload' -require 'fileutils' - -# USAGE -# ===== -# bundle exec rake zealot:backup RAILS_ENV=production MAX=15 DIR=db/db.bak -# bundle exec rake zealot:restore RAILS_ENV=production BACKUP_FILE=db/db.bak/backup_file.sql.gz -namespace :zealot do - desc 'Zealot | Create a backup of the Zealot. Options: DIR=backups RAILS_ENV=production MAX=7' - task backup: :environment do - Rake::Task['zealot:db:backup'].invoke - Rake::Task['zealot:upload:backup'].invoke - - backup = Backup::Manager.new - backup.pack - backup.cleanup - backup.remove_old - end - - desc 'Zealot | Restore a previously created backup. Options: RAILS_ENV=production BACKUP=backup_file.tar' - task restore: :environment do - backup = Backup::Manager.new - - unless File.exist?(backup.db_backup_file_path) - backup.unpack - else - puts 'Found and using previously database file.' - end - - warning = <<-MSG.strip_heredoc - Before restoring the database we recommend removing all existing tables - to avoid future upgrade problems. Be aware that if you have custom tables - in the GitLab database these tables and all data will be removed. - MSG - - puts warning - ask_to_continue - puts 'Removing all tables. Press `Ctrl-C` within 5 seconds to abort' - sleep(5) - - print 'Cleaning the database ... ' - Rake::Task['db:drop'].invoke - Rake::Task['db:create'].invoke - puts '[DONE]' - - Rake::Task['zealot:db:restore'].invoke - - unless File.exist?(backup.apps_backup_path) - puts 'No apps found, automitac clean old data ...' - puts 'Please try again' - - backup.cleanup - exit 1 - end - - Rake::Task['zealot:upload:restore'].invoke - backup.cleanup - end - - desc 'Zealot | List backups files' - task list_backups: :environment do - backup = Backup::Manager.new - files_list = backup.backups_list - - if files_list.count.zero? - puts 'No backups found' - exit 1 - end - - puts "Zealot backups found (#{files_list.count}):\n\n" - files_list.each do |f| - puts " * #{f}" - end - end - - namespace :db do - task backup: :environment do - Backup::Database.new.dump - end - - task restore: :environment do - Backup::Database.new.restore - end - end - - namespace :upload do - task backup: :environment do - Backup::Upload.new.dump - end - - task restore: :environment do - Backup::Upload.new.restore - end - end -end - -def prompt(*args) - print(*args) - STDIN.gets.strip -end - -def ask_to_continue - answer = prompt('Do you want to continue (yes/no)? ') - case answer - when 'no', 'NO', 'n' - exit 1 - when 'yes', 'YES', 'y' - # Nothing - else - puts 'Please enter yes or no, try again.' - ask_to_continue - end -end diff --git a/lib/templates/slim/scaffold/_form.html.slim b/lib/templates/slim/scaffold/_form.html.slim index 34279286b..a2ff775ac 100644 --- a/lib/templates/slim/scaffold/_form.html.slim +++ b/lib/templates/slim/scaffold/_form.html.slim @@ -1,6 +1,5 @@ = simple_form_for(@<%= singular_table_name %>) do |f| = f.error_notification - = f.error_notification message: f.object.errors[:base].to_sentence if f.object.errors[:base].present? .form-inputs <%- attributes.each do |attribute| -%> From 3bb7043fdade0396e0b3642e66235bcafb4c3bd3 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 15 Jan 2020 16:31:08 +0800 Subject: [PATCH 0037/2165] =?UTF-8?q?refactor(web):=20=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=20rubocop-rails=20lint?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .rubocop.yml | 4 +- app/controllers/admin/users_controller.rb | 2 +- .../api/apps/download_controller.rb | 22 ++++--- .../api/apps/install_url_controller.rb | 2 +- .../api/debug_files/download_controller.rb | 58 ++++++++++--------- app/controllers/api/debug_files_controller.rb | 2 +- .../api/jenkins/build_controller.rb | 2 +- app/controllers/api/jenkins_controller.rb | 12 +--- app/controllers/application_controller.rb | 2 +- app/controllers/channels_controller.rb | 2 +- app/controllers/debug_files_controller.rb | 2 +- app/controllers/graphql_controller.rb | 2 +- app/controllers/schemes_controller.rb | 2 +- app/helpers/application_helper.rb | 14 +++-- app/helpers/apps_helper.rb | 2 +- app/jobs/app_web_hook_job.rb | 2 +- app/models/channel.rb | 9 +-- app/models/debug_file.rb | 2 +- app/models/release.rb | 21 ++----- app/models/user.rb | 2 +- app/policies/application_policy.rb | 2 +- app/services/create_admin_service.rb | 2 +- app/uploaders/application_uploader.rb | 2 +- .../dashboards/_recently_upload.html.slim | 2 +- app/views/teardowns/_ios.html.slim | 2 +- config/environments/development.rb | 4 +- config/environments/production.rb | 2 +- config/initializers/carrierwave.rb | 2 +- config/initializers/server_runtime.rb | 2 +- lib/setting.rb | 2 +- lib/tasks/docker.rake | 2 +- 31 files changed, 89 insertions(+), 101 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index d9a4dca75..1edabe85b 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -1,8 +1,8 @@ -# require: rubocop-rails +require: rubocop-rails AllCops: TargetRubyVersion: 2.6 - # TargetRailsVersion: 6.0 + TargetRailsVersion: 6.0 Exclude: - 'vendor/**/*' - 'node_modules/**/*' diff --git a/app/controllers/admin/users_controller.rb b/app/controllers/admin/users_controller.rb index 4f63a816c..28cca177a 100644 --- a/app/controllers/admin/users_controller.rb +++ b/app/controllers/admin/users_controller.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true class Admin::UsersController < ApplicationController - before_action :set_user, only: %i[show edit update destroy] + before_action :set_user, only: %i[edit update destroy] def index @title = '用户管理' diff --git a/app/controllers/api/apps/download_controller.rb b/app/controllers/api/apps/download_controller.rb index 15eae0e0a..b25071731 100644 --- a/app/controllers/api/apps/download_controller.rb +++ b/app/controllers/api/apps/download_controller.rb @@ -3,18 +3,22 @@ class Api::Apps::DownloadController < Api::BaseController # GET /api/apps/download def show - @release = Release.find_by_channel params[:slug], params[:version] + @release = Release.version_by_channel(params[:slug], params[:version]) + + return render_not_found unless @release && File.exist?(@release.file.path) # 触发 web_hook @release.channel.perform_web_hook('download_events') - if @release && File.exist?(@release.file.path) - headers['Content-Length'] = @release.file.size - send_file @release.file.path, - filename: @release.download_filename, - disposition: 'attachment' - else - render json: { error: '没有找到应用安装文件' }, status: :not_found - end + headers['Content-Length'] = @release.file.size + send_file @release.file.path, + filename: @release.download_filename, + disposition: 'attachment' + end + + private + + def render_not_found + render json: { error: '没有找到应用安装文件' }, status: :not_found end end diff --git a/app/controllers/api/apps/install_url_controller.rb b/app/controllers/api/apps/install_url_controller.rb index 97a74b8bd..df6627da9 100644 --- a/app/controllers/api/apps/install_url_controller.rb +++ b/app/controllers/api/apps/install_url_controller.rb @@ -4,7 +4,7 @@ class Api::Apps::InstallUrlController < ApplicationController # GET /api/apps/install def show - @release = Release.find_by_channel params[:slug], params[:version] + @release = Release.version_by_channel(params[:slug], params[:version]) if @release render content_type: 'text/xml', layout: false else diff --git a/app/controllers/api/debug_files/download_controller.rb b/app/controllers/api/debug_files/download_controller.rb index 372b7a271..f45ee66eb 100644 --- a/app/controllers/api/debug_files/download_controller.rb +++ b/app/controllers/api/debug_files/download_controller.rb @@ -10,50 +10,52 @@ def show build_version = params[:build_version] order = convert_order(params[:order]) - @debug_file = if both_version?(release_version, build_version) - find_by_both_version(release_version, build_version, order) - elsif release_version?(release_version, build_version) - find_by_releaes_version(order) - else - find_by_device_type(order) - end - - if @debug_file && File.exist?(@debug_file.file.path) - redirect_to @debug_file.file.url, status: :found + if both_version?(release_version, build_version) + search_by_both_version(release_version, build_version, order) + elsif release_version?(release_version, build_version) + search_by_releaes_version(order) else - render json: { error: '没有找到调试文件' }, status: :not_found + search_by_device_type(order) end + + return render_not_found unless @debug_file && File.exist?(@debug_file.file.path) + + redirect_to @debug_file.file.url, status: :found end private + def render_not_found + render json: { error: '没有找到调试文件' }, status: :not_found + end + def both_version?(release_version, build_version) - !release_version.blank? && !build_version.blank? + release_version.present? && build_version.present? end def release_version?(release_version, build_version) - !release_version.blank? && build_version.blank? + release_version.present? && build_version.blank? end - def find_by_both_version(release_version, build_version, order) - @app.debug_files - .where(release_version: release_version, build_version: build_version) - .order(order => :desc) - .first + def search_by_both_version(release_version, build_version, order) + @debug_file = @app.debug_files + .where(release_version: release_version, build_version: build_version) + .order(order => :desc) + .first end - def find_by_releaes_version(release_version, order) - @app.debug_files - .where(release_version: release_version) - .order(order => :desc) - .first + def search_by_releaes_version(release_version, order) + @debug_file = @app.debug_files + .where(release_version: release_version) + .order(order => :desc) + .first end - def find_by_device_type(order) - @app.debug_files - .where(device_type: @channel.device_type) - .order(order => :desc) - .first + def search_by_device_type(order) + @debug_file = @app.debug_files + .where(device_type: @channel.device_type) + .order(order => :desc) + .first end def set_app diff --git a/app/controllers/api/debug_files_controller.rb b/app/controllers/api/debug_files_controller.rb index e84a899ed..63a025fb4 100644 --- a/app/controllers/api/debug_files_controller.rb +++ b/app/controllers/api/debug_files_controller.rb @@ -29,7 +29,7 @@ def create @debug_file.device_type = @channel.device_type if @debug_file.save! DebugFileTeardownJob.perform_now @debug_file - render json: @debug_file, serializer: Api::DebugFileSerializer, status: 201 + render json: @debug_file, serializer: Api::DebugFileSerializer, status: :created else render json: @debug_file.errors end diff --git a/app/controllers/api/jenkins/build_controller.rb b/app/controllers/api/jenkins/build_controller.rb index 32727c6f9..82fdcaf3d 100644 --- a/app/controllers/api/jenkins/build_controller.rb +++ b/app/controllers/api/jenkins/build_controller.rb @@ -10,7 +10,7 @@ def create project = @client.job.list_details(params[:project]) number = project['nextBuildNumber'] render json: { - code: 201, + code: :created, number: number, url: "#{project['url']}#{number}/" } diff --git a/app/controllers/api/jenkins_controller.rb b/app/controllers/api/jenkins_controller.rb index 4b3a5175e..ce3178393 100644 --- a/app/controllers/api/jenkins_controller.rb +++ b/app/controllers/api/jenkins_controller.rb @@ -18,19 +18,11 @@ def project_status private def build_number - if params[:id].to_s.blank? - @client.job.get_current_build_number(params[:project]) - else - params[:id].to_s - end + params[:id].presence || @client.job.get_current_build_number(params[:project]) end def build_status(build_detail) - if build_detail['result'].to_s.empty? - 'running' - else - build_detail['result'].downcase - end + build_detail['result']&.downcase || 'running' end def set_client diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 006505637..64ebd456b 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -23,7 +23,7 @@ def set_raven_context def user_not_authorized flash[:warning] = '没有权限进行本次操作。' - redirect_to(request.referrer || root_path) + redirect_to(request.referer || root_path) end # before_action :cors_preflight_check diff --git a/app/controllers/channels_controller.rb b/app/controllers/channels_controller.rb index 3e5aab9ae..e7ca07495 100644 --- a/app/controllers/channels_controller.rb +++ b/app/controllers/channels_controller.rb @@ -3,7 +3,7 @@ class ChannelsController < ApplicationController before_action :authenticate_user!, except: :show before_action :set_channel, only: %i[show edit update destroy] - before_action :set_scheme, except: %i[index show] + before_action :set_scheme, except: %i[show] def show @web_hook = @channel.web_hooks.new diff --git a/app/controllers/debug_files_controller.rb b/app/controllers/debug_files_controller.rb index 4d47f03f6..0ad643991 100644 --- a/app/controllers/debug_files_controller.rb +++ b/app/controllers/debug_files_controller.rb @@ -2,7 +2,7 @@ class DebugFilesController < ApplicationController before_action :authenticate_user! - before_action :set_debug_file, only: %i[show edit update destroy] + before_action :set_debug_file, only: %i[destroy] def index @title = '调试文件列表' diff --git a/app/controllers/graphql_controller.rb b/app/controllers/graphql_controller.rb index b6d6763bc..74b5cdf3e 100644 --- a/app/controllers/graphql_controller.rb +++ b/app/controllers/graphql_controller.rb @@ -49,6 +49,6 @@ def handle_error_in_development(exception) backtrace: exception.backtrace }, data: {} - }, status: 500 + }, status: :internal_server_error end end diff --git a/app/controllers/schemes_controller.rb b/app/controllers/schemes_controller.rb index a411d2323..acb870ea2 100644 --- a/app/controllers/schemes_controller.rb +++ b/app/controllers/schemes_controller.rb @@ -2,7 +2,7 @@ class SchemesController < ApplicationController before_action :authenticate_user!, except: :show - before_action :set_scheme, except: %i[index create new] + before_action :set_scheme, except: %i[create new] before_action :set_app def show diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index c758c6313..c7aee4989 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -10,9 +10,13 @@ def devise_page? def button_link_to(title, url, icon = nil, **options) options[:class] += ' btn' - title = %(#{title}) unless icon.blank? + content = title + if icon.present? + content = tag.i(class: "fa fa-#{icon}") + content += title + end - link_to raw(title), url, **options + link_to content, url, **options end def random_color @@ -71,13 +75,11 @@ def device_icon(device_type) 'fa-adn' end - raw %() + tag.i(class: "fa #{icon}") end # 获取浏览器 user agent - def user_agent - request.user_agent - end + delegate :user_agent, to: :request def wechat? user_agent.include?('MicroMessenger') diff --git a/app/helpers/apps_helper.rb b/app/helpers/apps_helper.rb index b5a52f853..de332b50c 100644 --- a/app/helpers/apps_helper.rb +++ b/app/helpers/apps_helper.rb @@ -55,7 +55,7 @@ def git_commit_url(git_url, commit, commit_length = 8) end commit_url = File.join(git_url, 'commit', commit) - raw "#{commit_name}" + content_tag(:a, commit_name, href: commit_url) end def display_app_device(channel) diff --git a/app/jobs/app_web_hook_job.rb b/app/jobs/app_web_hook_job.rb index e5e311a6f..82a563942 100644 --- a/app/jobs/app_web_hook_job.rb +++ b/app/jobs/app_web_hook_job.rb @@ -32,7 +32,7 @@ def send_request end def json_body - return build_body unless @web_hook.body.blank? + return build_body if @web_hook.body.present? WebHooks::PushSerializer.new(@channel).to_json end diff --git a/app/models/channel.rb b/app/models/channel.rb index c33919898..e16ac3d16 100644 --- a/app/models/channel.rb +++ b/app/models/channel.rb @@ -13,6 +13,7 @@ class Channel < ApplicationRecord delegate :count, to: :enabled_web_hooks, prefix: true delegate :count, to: :available_web_hooks, prefix: true + delegate :app, to: :scheme before_create :generate_default_values @@ -33,10 +34,6 @@ def find_since_version(release_version, build_version) .order(id: :desc) end - def app - scheme.app - end - def app_name "#{app.name} #{name} #{scheme.name}" end @@ -59,7 +56,7 @@ def bundle_id_matched?(value) end def perform_web_hook(event_name) - web_hooks.where(event_name => 1).each do |web_hook| + web_hooks.where(event_name => 1).find_each do |web_hook| AppWebHookJob.perform_later event_name, web_hook, self end end @@ -180,6 +177,6 @@ def encode_password def generate_default_values self.key = Digest::MD5.hexdigest(File.join(SecureRandom.uuid, name)) - self.slug = Digest::SHA1.base64digest(key).gsub(%r{[+\/=]}, '')[0..4] unless slug.present? + self.slug = Digest::SHA1.base64digest(key).gsub(%r{[+\/=]}, '')[0..4] if slug.blank? end end diff --git a/app/models/debug_file.rb b/app/models/debug_file.rb index 7566ce3fc..5ef20dcb0 100644 --- a/app/models/debug_file.rb +++ b/app/models/debug_file.rb @@ -10,7 +10,7 @@ class DebugFile < ApplicationRecord validates :app_id, :device_type, :file, presence: true validates :release_version, :build_version, presence: true, if: :upload_is_android? - validates_uniqueness_of :checksum, on: :create + validates :checksum, uniqueness: true, on: :create before_validation :generate_checksum diff --git a/app/models/release.rb b/app/models/release.rb index c4767bbf3..71f38de76 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -18,10 +18,13 @@ class Release < ApplicationRecord before_create :default_changelog before_save :changelog_format, if: :changelog_is_plaintext? + delegate :scheme, :device_type, to: :channel + delegate :app, to: :scheme + paginates_per 20 max_paginates_per 50 - def self.find_by_channel(slug, version = nil) + def self.version_by_channel(slug, version = nil) channel = Channel.friendly.find slug if version channel.releases.find_by version: version @@ -33,7 +36,7 @@ def self.find_by_channel(slug, version = nil) # 上传 App def self.upload_file(params, source = 'Web') create(params) do |release| - unless release.file.blank? + if release.file.present? begin parser = AppInfo.parse(release.file.path) release.source = source @@ -55,7 +58,7 @@ def self.upload_file(params, source = 'Web') # iOS 且是 AdHoc 尝试解析 UDID 列表 if parser.os == AppInfo::Platform::IOS && parser.release_type == AppInfo::IPA::ExportType::ADHOC && - !parser.devices.blank? + parser.devices.present? release.devices = parser.devices end rescue AppInfo::UnkownFileTypeError @@ -71,22 +74,10 @@ def self.decode_icon(icon_file) end private_class_method :decode_icon - def scheme - channel.scheme - end - - def app - scheme.app - end - def app_name "#{app.name} #{channel.name} #{scheme.name}" end - def device_type - channel.device_type - end - def size file&.size end diff --git a/app/models/user.rb b/app/models/user.rb index 53c0d63af..7a7eb6bdc 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -11,7 +11,7 @@ class User < ApplicationRecord enum role: %i[user developer admin] has_and_belongs_to_many :apps - has_many :user_providers + has_many :user_providers, dependent: :destroy validates :username, presence: true validates :email, presence: true diff --git a/app/policies/application_policy.rb b/app/policies/application_policy.rb index 95e694988..fb2ccd0b7 100644 --- a/app/policies/application_policy.rb +++ b/app/policies/application_policy.rb @@ -58,6 +58,6 @@ def resolve private def user_signed_in? - !user.blank? + user.present? end end diff --git a/app/services/create_admin_service.rb b/app/services/create_admin_service.rb index 874f813ae..487867fe4 100644 --- a/app/services/create_admin_service.rb +++ b/app/services/create_admin_service.rb @@ -7,7 +7,7 @@ def call user.password = Rails.application.secrets.admin_password user.password_confirmation = Rails.application.secrets.admin_password user.role = :admin - user.confirmed_at = Time.now + user.confirmed_at = Time.current end end end diff --git a/app/uploaders/application_uploader.rb b/app/uploaders/application_uploader.rb index 1d174d5ff..9e07eaca9 100644 --- a/app/uploaders/application_uploader.rb +++ b/app/uploaders/application_uploader.rb @@ -15,4 +15,4 @@ def checksum def filename @name ||= "#{checksum}#{File.extname(super)}" if super end -end \ No newline at end of file +end diff --git a/app/views/dashboards/_recently_upload.html.slim b/app/views/dashboards/_recently_upload.html.slim index d541725d5..9e4c53114 100644 --- a/app/views/dashboards/_recently_upload.html.slim +++ b/app/views/dashboards/_recently_upload.html.slim @@ -13,7 +13,7 @@ section - unless @releases.empty? .timeline ruby: - loop_date = Time.now + loop_date = Time.current - @releases.each_with_index do |release, i| - if i == 0 || (loop_date.to_date != release.created_at.to_date) ruby: diff --git a/app/views/teardowns/_ios.html.slim b/app/views/teardowns/_ios.html.slim index 4cecb0b7b..4c722c8cc 100644 --- a/app/views/teardowns/_ios.html.slim +++ b/app/views/teardowns/_ios.html.slim @@ -50,7 +50,7 @@ pre = "#{@app_info.expired_date} (" span.text-green.text-bold - = "还有#{distance_of_time_in_words(Time.now, @app_info.expired_date)}过期" + = "还有#{distance_of_time_in_words(Time.current, @app_info.expired_date)}过期" | ) .card .card-header diff --git a/config/environments/development.rb b/config/environments/development.rb index a7cb07b51..ac9234220 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -20,7 +20,7 @@ # Enable/disable caching. By default caching is disabled. # Run rails dev:cache to toggle caching. - if Rails.root.join('tmp', 'caching-dev.txt').exist? + if Rails.root.join('tmp/caching-dev.txt').exist? config.action_controller.perform_caching = true config.action_controller.enable_fragment_cache_logging = true @@ -45,7 +45,7 @@ # If using a Heroku, Vagrant or generic remote development environment, # use letter_opener_web, accessible at /letter_opener. # Otherwise, use letter_opener, which launches a browser window to view sent mail. - config.action_mailer.delivery_method = %w[HEROKU VAGRANT REMOTE_DEV].select { |k| ENV.present?(k) }.empty? ? :letter_opener_web : :letter_opener + config.action_mailer.delivery_method = %w[HEROKU VAGRANT REMOTE_DEV].select { |k| ENV[k].present? }.empty? ? :letter_opener_web : :letter_opener # Print deprecation notices to the Rails logger. config.active_support.deprecation = :log diff --git a/config/environments/production.rb b/config/environments/production.rb index 8b32fc992..c370a8990 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -39,7 +39,7 @@ # config.action_controller.asset_host = Rails.application.secrets.domain # Specifies the header that your server uses for sending files. - unless ENV['RAILS_SERVE_STATIC_FILES'].present? + if ENV['RAILS_SERVE_STATIC_FILES'].blank? # config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX end diff --git a/config/initializers/carrierwave.rb b/config/initializers/carrierwave.rb index 4ffd80b48..0d29916b0 100644 --- a/config/initializers/carrierwave.rb +++ b/config/initializers/carrierwave.rb @@ -3,5 +3,5 @@ CarrierWave.configure do |config| url_options = Rails.configuration.x.url_options config.asset_host = "#{url_options[:protocol]}#{url_options[:host]}" - config.cache_dir = File.join(Rails.root, 'tmp', 'uploads', Rails.env) + config.cache_dir = Rails.root.join('tmp', 'uploads', Rails.env) end diff --git a/config/initializers/server_runtime.rb b/config/initializers/server_runtime.rb index 9e58a8480..55a31b0a7 100644 --- a/config/initializers/server_runtime.rb +++ b/config/initializers/server_runtime.rb @@ -1,3 +1,3 @@ # frozen_string_literal: true -Rails.application.config.booted_at = Time.now +Rails.application.config.booted_at = Time.current diff --git a/lib/setting.rb b/lib/setting.rb index 9cc830968..92b0eb7ea 100644 --- a/lib/setting.rb +++ b/lib/setting.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true class Setting < Settingslogic - source "#{Rails.root}/config/zealot.yml" + source Rails.root.join('config/zealot.yml') namespace Rails.env end diff --git a/lib/tasks/docker.rake b/lib/tasks/docker.rake index ae1594045..fc00dac19 100644 --- a/lib/tasks/docker.rake +++ b/lib/tasks/docker.rake @@ -1,7 +1,7 @@ # frozen_string_literal: true namespace :docker do - task :build do + task build: :environment do system('docker build -t icyleafcn/zealot:dev .') end end From 49d2e5ce085e9e7d6aac2cd299447ffeeefea318 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 16 Jan 2020 10:35:58 +0800 Subject: [PATCH 0038/2165] =?UTF-8?q?refactor(worker):=20=E4=B8=8A?= =?UTF-8?q?=E6=8A=A5=20sentry=20=E4=B8=8D=E5=86=8D=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E5=BC=82=E6=AD=A5=E4=BB=BB=E5=8A=A1=E4=BC=9A=E5=9B=A0=E4=B8=BA?= =?UTF-8?q?=E4=B8=8A=E6=8A=A5=E8=B6=85=E6=97=B6=E5=B0=B1=E4=B8=8D=E5=86=8D?= =?UTF-8?q?=E4=B8=8A=E6=8A=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/channels_controller.rb | 2 +- app/jobs/sentry_job.rb | 9 --------- config/initializers/sentry.rb | 1 - 3 files changed, 1 insertion(+), 11 deletions(-) delete mode 100644 app/jobs/sentry_job.rb diff --git a/app/controllers/channels_controller.rb b/app/controllers/channels_controller.rb index e7ca07495..3000173b1 100644 --- a/app/controllers/channels_controller.rb +++ b/app/controllers/channels_controller.rb @@ -52,7 +52,7 @@ def destroy protected def set_scheme - @scheme = Scheme.find params[:scheme_id] + @scheme = Scheme.find(params[:scheme_id]) end def set_channel diff --git a/app/jobs/sentry_job.rb b/app/jobs/sentry_job.rb deleted file mode 100644 index 6a6f8c180..000000000 --- a/app/jobs/sentry_job.rb +++ /dev/null @@ -1,9 +0,0 @@ -# frozen_string_literal: true - -class SentryJob < ApplicationJob - queue_as :report - - def perform(event) - Raven.send_event(event) - end -end diff --git a/config/initializers/sentry.rb b/config/initializers/sentry.rb index 85b470e0d..67f251c5c 100644 --- a/config/initializers/sentry.rb +++ b/config/initializers/sentry.rb @@ -8,7 +8,6 @@ config.excluded_exceptions += ['ActionController::RoutingError', 'ActiveRecord::RecordNotFound'] config.sanitize_fields = Rails.application.config.filter_parameters.map(&:to_s) config.sanitize_fields << 'token' - config.async = ->(event) { SentryJob.perform_later(event) } version = ENV['ZEALOT_VERSION'] || Setting.version vcs_ref = ENV['ZEALOT_VCS_REF'] From 64b649c8810ce6509e6cb3672bf68942362e7b72 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 16 Jan 2020 10:36:31 +0800 Subject: [PATCH 0039/2165] =?UTF-8?q?fix(docker):=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E8=BF=90=E8=A1=8C=E5=BC=82=E6=AD=A5=E4=BB=BB=E5=8A=A1=E5=8F=96?= =?UTF-8?q?=E9=94=99=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-endpoint.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-endpoint.sh b/docker-endpoint.sh index 5be61b42e..a00047310 100755 --- a/docker-endpoint.sh +++ b/docker-endpoint.sh @@ -15,7 +15,7 @@ if [ "$1" = 'run_server' ]; then elif [ "$1" = 'run_worker' ]; then # Start the sidekiq echo "Zealot worker is wait the comming job ..." - bundle exec sidekiq -C config/sidekiq.yml.erb + bundle exec sidekiq -C config/sidekiq.yml fi exec "$@" \ No newline at end of file From 65217ed036811d98c0f98b1a695e3ec6a310b9f8 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 16 Jan 2020 10:51:26 +0800 Subject: [PATCH 0040/2165] =?UTF-8?q?fix(Web):=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0=20apk=20=E6=9C=89=E4=B8=80=E5=AE=9A=E5=87=A0?= =?UTF-8?q?=E7=8E=87=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 2 +- Gemfile.lock | 4 ++-- app/models/release.rb | 7 +++++-- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/Gemfile b/Gemfile index e6f4ba1c9..8af8ab560 100644 --- a/Gemfile +++ b/Gemfile @@ -73,7 +73,7 @@ gem 'turbolinks', '~> 5' gem 'webpacker', '~> 4.2' # 用于解析 ipa 和 apk 包 -gem 'app-info', '~> 2.1.2' +gem 'app-info', '~> 2.1.3' # Reduces boot times through caching; required in config/boot.rb gem 'bootsnap', '>= 1.4.4', require: false diff --git a/Gemfile.lock b/Gemfile.lock index bf5d0cab9..a2825d3d0 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -78,7 +78,7 @@ GEM zeitwerk (~> 2.2) addressable (2.7.0) public_suffix (>= 2.0.2, < 5.0) - app-info (2.1.2) + app-info (2.1.3) CFPropertyList (>= 2.3.4, < 3.1.0) image_size (>= 1.5, < 2.1) pngdefry (~> 0.1.2) @@ -449,7 +449,7 @@ PLATFORMS DEPENDENCIES active_model_serializers (~> 0.10.10) activejob-status - app-info (~> 2.1.2) + app-info (~> 2.1.3) awesome_print better_errors binding_of_caller diff --git a/app/models/release.rb b/app/models/release.rb index 71f38de76..268e7f99c 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -51,8 +51,11 @@ def self.upload_file(params, source = 'Web') release.icon = decode_icon(icon_file) if icon_file else # 处理 Android anydpi 自适应图标 - icon_file = parser.icons.reject { |f| File.extname(f[:file]) == '.xml' }.last.try(:[], :file) - release.icon = File.open(icon_file) if icon_file + icon_file = parser.icons + .reject { |f| File.extname(f[:file]) == '.xml' } + .last + .try(:[], :file) + release.icon = File.open(icon_file, 'rb') if icon_file end # iOS 且是 AdHoc 尝试解析 UDID 列表 From fcb4b8ccd2da5985487e8bd690847ab6025d5841 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 16 Jan 2020 17:09:06 +0800 Subject: [PATCH 0041/2165] =?UTF-8?q?fix(Web):=20=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E5=BA=94=E7=94=A8=E5=92=8C=E8=B0=83=E8=AF=95=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E6=8A=8A=E7=94=9F=E6=88=90=E7=9A=84=E7=BB=93=E6=9E=84=E7=9B=AE?= =?UTF-8?q?=E5=BD=95=E4=B8=80=E5=90=8C=E5=88=A0=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/uploaders/app_file_uploader.rb | 2 +- app/uploaders/app_icon_uploader.rb | 2 +- app/uploaders/application_uploader.rb | 18 ++++++++++++++++++ app/uploaders/debug_file_uploader.rb | 2 +- 4 files changed, 21 insertions(+), 3 deletions(-) diff --git a/app/uploaders/app_file_uploader.rb b/app/uploaders/app_file_uploader.rb index 801c8362c..d3e73ba16 100644 --- a/app/uploaders/app_file_uploader.rb +++ b/app/uploaders/app_file_uploader.rb @@ -2,7 +2,7 @@ class AppFileUploader < ApplicationUploader def store_dir - "uploads/apps/a#{model.app.id}/r#{model.id}/binary" + "#{base_store_dir}/apps/a#{model.app.id}/r#{model.id}/binary" end def extension_white_list diff --git a/app/uploaders/app_icon_uploader.rb b/app/uploaders/app_icon_uploader.rb index 7d59401fb..58fa388ab 100644 --- a/app/uploaders/app_icon_uploader.rb +++ b/app/uploaders/app_icon_uploader.rb @@ -4,7 +4,7 @@ class AppIconUploader < ApplicationUploader include CarrierWave::MiniMagick def store_dir - "uploads/apps/a#{model.app.id}/r#{model.id}/icons" + "#{base_store_dir}/apps/a#{model.app.id}/r#{model.id}/icons" end # def default_url diff --git a/app/uploaders/application_uploader.rb b/app/uploaders/application_uploader.rb index 9e07eaca9..a8f2e108a 100644 --- a/app/uploaders/application_uploader.rb +++ b/app/uploaders/application_uploader.rb @@ -2,6 +2,11 @@ class ApplicationUploader < CarrierWave::Uploader::Base storage :file + after :remove, :delete_empty_upstream_dirs + + def base_store_dir + 'uploads' + end def size @size = file&.size @@ -15,4 +20,17 @@ def checksum def filename @name ||= "#{checksum}#{File.extname(super)}" if super end + + protected + + # Copy from https://github.com/carrierwaveuploader/carrierwave/wiki/how-to:-make-a-fast-lookup-able-storage-directory-structure + def delete_empty_upstream_dirs + path = ::File.expand_path(store_dir, root) + Dir.delete(path) # fails if path not empty dir + + path = ::File.expand_path(base_store_dir, root) + Dir.delete(path) # fails if path not empty dir + rescue SystemCallError + true # nothing, the dir is not empty + end end diff --git a/app/uploaders/debug_file_uploader.rb b/app/uploaders/debug_file_uploader.rb index 8240a0491..786337d99 100644 --- a/app/uploaders/debug_file_uploader.rb +++ b/app/uploaders/debug_file_uploader.rb @@ -2,7 +2,7 @@ class DebugFileUploader < ApplicationUploader def store_dir - "uploads/debug_files/a#{model.app.id}/" + "#{base_store_dir}/debug_files/a#{model.app.id}" end def extension_white_list From ae1ad250461e53ee42c149de10b4cfd456a0b5b0 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 16 Jan 2020 18:10:32 +0800 Subject: [PATCH 0042/2165] =?UTF-8?q?feat(docker):=20=E6=96=B0=E5=A2=9E=20?= =?UTF-8?q?run=5Fupgrade=20=E5=8D=87=E7=BA=A7=E5=BF=AB=E6=8D=B7=E5=91=BD?= =?UTF-8?q?=E4=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-endpoint.sh | 3 +++ lib/tasks/zealot.rake | 31 ++++++++++++++++++++++++------- 2 files changed, 27 insertions(+), 7 deletions(-) diff --git a/docker-endpoint.sh b/docker-endpoint.sh index a00047310..9f9f864dc 100755 --- a/docker-endpoint.sh +++ b/docker-endpoint.sh @@ -16,6 +16,9 @@ elif [ "$1" = 'run_worker' ]; then # Start the sidekiq echo "Zealot worker is wait the comming job ..." bundle exec sidekiq -C config/sidekiq.yml +elif [ "$1" = 'run_upgrade' ]; then + ./bin/rails zealot:upgrade + exit 0 fi exec "$@" \ No newline at end of file diff --git a/lib/tasks/zealot.rake b/lib/tasks/zealot.rake index 0588f603a..6fb2244ff 100644 --- a/lib/tasks/zealot.rake +++ b/lib/tasks/zealot.rake @@ -3,18 +3,35 @@ namespace :zealot do desc 'Zealot | Upgrade zealot or setting up database' task upgrade: :environment do - Rake::Task['zealot:upgrade_db'].invoke + Rake::Task['zealot:db:upgrade'].invoke end - task upgrade_db: :environment do - db_version = Rake::Task['db:version'].invoke.split(': ').last - if db_version == '0' - # 初始化 + namespace :db do + task upgrade: :environment do + begin + db_version = Rake::Task['db:version'].invoke.split(': ').last + if db_version == '0' + Rake::Task['zealot:db:setup'].invoke + else + Rake::Task['zealot:db:migrate'].invoke + end + rescue PG::ConnectionBad, ActiveRecord::NoDatabaseError + # 无法连接数据库 + Rake::Task['zealot:db:setup'].invoke + end + end + + # 初始化 + task setup: :environment do + puts "Zealot setup database ..." Rake::Task['db:create'].invoke Rake::Task['db:migrate'].invoke Rake::Task['db:seed'].invoke - else - # 升级 + end + + # 升级 + task migrate: :environment do + puts "Zealot upgrade database ..." Rake::Task['db:migrate'].invoke end end From 7fc646b89d079087bbde888893de9b0cbb9cb6e1 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 16 Jan 2020 18:52:35 +0800 Subject: [PATCH 0043/2165] =?UTF-8?q?doc:=20=E5=87=86=E5=A4=87=204.0.0.bet?= =?UTF-8?q?a3=20=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b24b8d2b2..7fc3d2373 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,7 +4,7 @@ > 如下罗列的变更是还未发布的列表 -## [4.0.0.beta3] (2020-01-15) +## [4.0.0.beta3] (2020-01-16) ### 新功能 @@ -23,6 +23,7 @@ - [Worker] 使用异步任务代替传统 cron job 来实现定时清理老版本历史包文件(可关闭) - [Worker] 对异步任务进行分组和设置优先级 - [API] 所有报错信息改成中文显示,因数据库写操作会返回具体错误信息 +- [Web] 使用 Rubocop Lint 规范化代码 ## [4.0.0.beta2] (2020-01-10) From ea94c1a28ceacc1c2b04566f126a204c17a3decd Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 20 Jan 2020 06:40:33 +0000 Subject: [PATCH 0044/2165] chore(deps): bump admin-lte from 3.0.1 to 3.0.2 Bumps [admin-lte](https://github.com/ColorlibHQ/AdminLTE) from 3.0.1 to 3.0.2. - [Release notes](https://github.com/ColorlibHQ/AdminLTE/releases) - [Commits](https://github.com/ColorlibHQ/AdminLTE/compare/v3.0.1...v3.0.2) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 162 +++++++-------------------------------------------- 2 files changed, 22 insertions(+), 142 deletions(-) diff --git a/package.json b/package.json index 7b10ab47b..3b218b5e8 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "dependencies": { "@rails/ujs": "^6.0.2", "@rails/webpacker": "^4.2.2", - "admin-lte": "^3.0.1", + "admin-lte": "^3.0.2", "filepond": "^4.9.3", "font-awesome": "^4.7.0", "jquery": "^3.4.1", diff --git a/yarn.lock b/yarn.lock index 0c6a3fc62..7a621a653 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1078,10 +1078,10 @@ acorn@^7.0.0: resolved "https://registry.npm.taobao.org/acorn/download/acorn-7.1.0.tgz#949d36f2c292535da602283586c2477c57eb2d6c" integrity sha1-lJ028sKSU12mAig1hsJHfFfrLWw= -admin-lte@^3.0.1: - version "3.0.1" - resolved "https://registry.npm.taobao.org/admin-lte/download/admin-lte-3.0.1.tgz#5d6768330868bdc8f424960f7eabc3f38af7a0f4" - integrity sha1-XWdoMwhovcj0JJYPfqvD84r3oPQ= +admin-lte@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/admin-lte/-/admin-lte-3.0.2.tgz#8335714263af8b049799cc9effabd4fe9debdbb0" + integrity sha512-D5eoQRAIXjUDDDO4/WK4Cd4ZJOjvVOP0bYYC38INV0XlmjQmOEvEZbcgKPraTjwEgNBFHctNIRtXFJbm8KpCOg== dependencies: "@fortawesome/fontawesome-free" "^5.11.2" "@fullcalendar/bootstrap" "^4.3.0" @@ -1098,7 +1098,7 @@ admin-lte@^3.0.1: bootstrap-switch "^3.4.0" bootstrap4-duallistbox "^4.0.1" bs-custom-file-input "^1.3.2" - chart.js "^2.9.2" + chart.js "^2.9.3" datatables.net "^1.10.20" datatables.net-autofill-bs4 "^2.3.4" datatables.net-bs4 "^1.10.20" @@ -1136,7 +1136,7 @@ admin-lte@^3.0.1: pdfmake "^0.1.62" popper.js "^1.16.0" raphael "^2.3.0" - select2 "^4.0.11" + select2 "^4.0.12" sparklines "^1.2.0" summernote "^0.8.12" sweetalert2 "^8.19.0" @@ -1912,10 +1912,10 @@ chalk@^1.1.1: strip-ansi "^3.0.0" supports-color "^2.0.0" -chart.js@^2.9.2: +chart.js@^2.9.3: version "2.9.3" - resolved "https://registry.npm.taobao.org/chart.js/download/chart.js-2.9.3.tgz#ae3884114dafd381bc600f5b35a189138aac1ef7" - integrity sha1-rjiEEU2v04G8YA9bNaGJE4qsHvc= + resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-2.9.3.tgz#ae3884114dafd381bc600f5b35a189138aac1ef7" + integrity sha512-+2jlOobSk52c1VU6fzkh3UwqHMdSlgH1xFv9FKMqHiNCpXsGPQa/+81AFa+i3jZ253Mq9aAycPwDjnn1XbRNNw== dependencies: chartjs-color "^2.1.0" moment "^2.10.2" @@ -2756,7 +2756,7 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3: dependencies: ms "2.0.0" -debug@^3.0.0, debug@^3.1.1, debug@^3.2.5, debug@^3.2.6: +debug@^3.0.0, debug@^3.1.1, debug@^3.2.5: version "3.2.6" resolved "https://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" integrity sha1-6D0X3hbYp++3cX7b5fsQE17uYps= @@ -2792,11 +2792,6 @@ deep-equal@^1.0.0, deep-equal@^1.0.1: object-keys "^1.1.1" regexp.prototype.flags "^1.2.0" -deep-extend@^0.6.0: - version "0.6.0" - resolved "https://registry.npm.taobao.org/deep-extend/download/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" - integrity sha1-xPp8lUBKF6nD6Mp+FTcxK3NjMKw= - deep-is@~0.1.3: version "0.1.3" resolved "https://registry.npm.taobao.org/deep-is/download/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" @@ -2885,11 +2880,6 @@ detect-file@^1.0.0: resolved "https://registry.npm.taobao.org/detect-file/download/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= -detect-libc@^1.0.2: - version "1.0.3" - resolved "https://registry.npm.taobao.org/detect-libc/download/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" - integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= - detect-node@^2.0.4: version "2.0.4" resolved "https://registry.npm.taobao.org/detect-node/download/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" @@ -3701,13 +3691,6 @@ fs-extra@^8.1.0: jsonfile "^4.0.0" universalify "^0.1.0" -fs-minipass@^1.2.5: - version "1.2.7" - resolved "https://registry.npm.taobao.org/fs-minipass/download/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" - integrity sha1-zP+FcIQef+QmVpPaiJNsVa7X98c= - dependencies: - minipass "^2.6.0" - fs-minipass@^2.0.0: version "2.0.0" resolved "https://registry.npm.taobao.org/fs-minipass/download/fs-minipass-2.0.0.tgz#a6415edab02fae4b9e9230bc87ee2e4472003cd1" @@ -4134,7 +4117,7 @@ icheck-bootstrap@^3.0.1: resolved "https://registry.npm.taobao.org/icheck-bootstrap/download/icheck-bootstrap-3.0.1.tgz#60c9c9a71524e1d9dd5bd05167a62fef05cc3a1b" integrity sha1-YMnJpxUk4dndW9BRZ6Yv7wXMOhs= -iconv-lite@0.4.24, iconv-lite@^0.4.4: +iconv-lite@0.4.24: version "0.4.24" resolved "https://registry.npm.taobao.org/iconv-lite/download/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha1-ICK0sl+93CHS9SSXSkdKr+czkIs= @@ -4165,13 +4148,6 @@ iferr@^0.1.5: resolved "https://registry.npm.taobao.org/iferr/download/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= -ignore-walk@^3.0.1: - version "3.0.3" - resolved "https://registry.npm.taobao.org/ignore-walk/download/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37" - integrity sha1-AX4kRxhL/q3nwjjkrv3R6PlbHjc= - dependencies: - minimatch "^3.0.4" - imagesloaded@^4.1.4: version "4.1.4" resolved "https://registry.npm.taobao.org/imagesloaded/download/imagesloaded-4.1.4.tgz#1376efcd162bb768c34c3727ac89cc04051f3cc7" @@ -4277,7 +4253,7 @@ inherits@2.0.3: resolved "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= -ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: +ini@^1.3.4, ini@^1.3.5: version "1.3.5" resolved "https://registry.npm.taobao.org/ini/download/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" integrity sha1-7uJfVtscnsYIXgwid4CD9Zar+Sc= @@ -5244,14 +5220,6 @@ minipass-pipeline@^1.2.2: dependencies: minipass "^3.0.0" -minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: - version "2.9.0" - resolved "https://registry.npm.taobao.org/minipass/download/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" - integrity sha1-5xN2Ln0+Mv7YAxFc+T4EvKn8yaY= - dependencies: - safe-buffer "^5.1.2" - yallist "^3.0.0" - minipass@^3.0.0, minipass@^3.1.1: version "3.1.1" resolved "https://registry.npm.taobao.org/minipass/download/minipass-3.1.1.tgz#7607ce778472a185ad6d89082aa2070f79cedcd5" @@ -5259,13 +5227,6 @@ minipass@^3.0.0, minipass@^3.1.1: dependencies: yallist "^4.0.0" -minizlib@^1.2.1: - version "1.3.3" - resolved "https://registry.npm.taobao.org/minizlib/download/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" - integrity sha1-IpDeloGKNMKVUcio0wEha9Zahh0= - dependencies: - minipass "^2.9.0" - mississippi@^3.0.0: version "3.0.0" resolved "https://registry.npm.taobao.org/mississippi/download/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" @@ -5371,15 +5332,6 @@ nanomatch@^1.2.9: snapdragon "^0.8.1" to-regex "^3.0.1" -needle@^2.2.1: - version "2.4.0" - resolved "https://registry.npm.taobao.org/needle/download/needle-2.4.0.tgz#6833e74975c444642590e15a750288c5f939b57c" - integrity sha1-aDPnSXXERGQlkOFadQKIxfk5tXw= - dependencies: - debug "^3.2.6" - iconv-lite "^0.4.4" - sax "^1.2.4" - negotiator@0.6.2: version "0.6.2" resolved "https://registry.npm.taobao.org/negotiator/download/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" @@ -5452,22 +5404,6 @@ node-libs-browser@^2.2.1: util "^0.11.0" vm-browserify "^1.0.1" -node-pre-gyp@*: - version "0.14.0" - resolved "https://registry.npm.taobao.org/node-pre-gyp/download/node-pre-gyp-0.14.0.tgz#9a0596533b877289bcad4e143982ca3d904ddc83" - integrity sha1-mgWWUzuHcom8rU4UOYLKPZBN3IM= - dependencies: - detect-libc "^1.0.2" - mkdirp "^0.5.1" - needle "^2.2.1" - nopt "^4.0.1" - npm-packlist "^1.1.6" - npmlog "^4.0.2" - rc "^1.2.7" - rimraf "^2.6.1" - semver "^5.3.0" - tar "^4.4.2" - node-releases@^1.1.44: version "1.1.45" resolved "https://registry.npm.taobao.org/node-releases/download/node-releases-1.1.45.tgz?cache=0&sync_timestamp=1578496101773&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-releases%2Fdownload%2Fnode-releases-1.1.45.tgz#4cf7e9175d71b1317f15ffd68ce63bce1d53e9f2" @@ -5505,14 +5441,6 @@ node-sass@^4.13.0: dependencies: abbrev "1" -nopt@^4.0.1: - version "4.0.1" - resolved "https://registry.npm.taobao.org/nopt/download/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" - integrity sha1-0NRoWv1UFRk8jHUFYC0NF81kR00= - dependencies: - abbrev "1" - osenv "^0.1.4" - normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: version "2.5.0" resolved "https://registry.npm.taobao.org/normalize-package-data/download/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" @@ -5555,26 +5483,6 @@ normalize-url@^3.0.0: resolved "https://registry.npm.taobao.org/normalize-url/download/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" integrity sha1-suHE3E98bVd0PfczpPWXjRhlBVk= -npm-bundled@^1.0.1: - version "1.1.1" - resolved "https://registry.npm.taobao.org/npm-bundled/download/npm-bundled-1.1.1.tgz#1edd570865a94cdb1bc8220775e29466c9fb234b" - integrity sha1-Ht1XCGWpTNsbyCIHdeKUZsn7I0s= - dependencies: - npm-normalize-package-bin "^1.0.1" - -npm-normalize-package-bin@^1.0.1: - version "1.0.1" - resolved "https://registry.npm.taobao.org/npm-normalize-package-bin/download/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" - integrity sha1-bnmkHyP9I1wGIyGCKNp9nCO49uI= - -npm-packlist@^1.1.6: - version "1.4.7" - resolved "https://registry.npm.taobao.org/npm-packlist/download/npm-packlist-1.4.7.tgz#9e954365a06b80b18111ea900945af4f88ed4848" - integrity sha1-npVDZaBrgLGBEeqQCUWvT4jtSEg= - dependencies: - ignore-walk "^3.0.1" - npm-bundled "^1.0.1" - npm-run-path@^2.0.0: version "2.0.2" resolved "https://registry.npm.taobao.org/npm-run-path/download/npm-run-path-2.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnpm-run-path%2Fdownload%2Fnpm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" @@ -5582,7 +5490,7 @@ npm-run-path@^2.0.0: dependencies: path-key "^2.0.0" -"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0, npmlog@^4.0.2: +"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0: version "4.1.2" resolved "https://registry.npm.taobao.org/npmlog/download/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" integrity sha1-CKfyqL9zRgR3mp76StXMcXq7lUs= @@ -5784,7 +5692,7 @@ os-tmpdir@^1.0.0: resolved "https://registry.npm.taobao.org/os-tmpdir/download/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= -osenv@0, osenv@^0.1.4: +osenv@0: version "0.1.5" resolved "https://registry.npm.taobao.org/osenv/download/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" integrity sha1-hc36+uso6Gd/QW4odZK18/SepBA= @@ -6951,16 +6859,6 @@ raw-body@2.4.0: iconv-lite "0.4.24" unpipe "1.0.0" -rc@^1.2.7: - version "1.2.8" - resolved "https://registry.npm.taobao.org/rc/download/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" - integrity sha1-zZJL9SAKB1uDwYjNa54hG3/A0+0= - dependencies: - deep-extend "^0.6.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - read-cache@^1.0.0: version "1.0.0" resolved "https://registry.npm.taobao.org/read-cache/download/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" @@ -7230,7 +7128,7 @@ rgba-regex@^1.0.0: resolved "https://registry.npm.taobao.org/rgba-regex/download/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= -rimraf@2, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.3, rimraf@^2.7.1: +rimraf@2, rimraf@^2.5.4, rimraf@^2.6.3, rimraf@^2.7.1: version "2.7.1" resolved "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" integrity sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w= @@ -7295,7 +7193,7 @@ sass-loader@7.3.1: pify "^4.0.1" semver "^6.3.0" -sax@^1.2.4, sax@~1.2.4: +sax@~1.2.4: version "1.2.4" resolved "https://registry.npm.taobao.org/sax/download/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha1-KBYjTiN4vdxOU1T6tcqold9xANk= @@ -7342,10 +7240,10 @@ select-hose@^2.0.0: resolved "https://registry.npm.taobao.org/select-hose/download/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= -select2@^4.0.11: +select2@^4.0.12: version "4.0.12" - resolved "https://registry.npm.taobao.org/select2/download/select2-4.0.12.tgz#9c0492d4d06948f2bd079f6e14718a41c7eaa60e" - integrity sha1-nASS1NBpSPK9B59uFHGKQcfqpg4= + resolved "https://registry.yarnpkg.com/select2/-/select2-4.0.12.tgz#9c0492d4d06948f2bd079f6e14718a41c7eaa60e" + integrity sha512-mbXC05AvjCboZcRlgJqN4mlI2qmqshpRC76sKNAdxS1lPLOh2m/NTyfL6xsvGoY6eIhjaya4dbumN99MudVQ2w== selfsigned@^1.10.7: version "1.10.7" @@ -7354,7 +7252,7 @@ selfsigned@^1.10.7: dependencies: node-forge "0.9.0" -"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: +"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: version "5.7.1" resolved "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha1-qVT5Ma66UI0we78Gnv8MAclhFvc= @@ -7911,11 +7809,6 @@ strip-indent@^1.0.1: dependencies: get-stdin "^4.0.1" -strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.npm.taobao.org/strip-json-comments/download/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= - style-loader@^1.0.0: version "1.1.2" resolved "https://registry.npm.taobao.org/style-loader/download/style-loader-1.1.2.tgz?cache=0&sync_timestamp=1577278859892&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstyle-loader%2Fdownload%2Fstyle-loader-1.1.2.tgz#1b519c19faf548df6182b93e72ea1a4156022c2f" @@ -8004,19 +7897,6 @@ tar@^2.0.0: fstream "^1.0.12" inherits "2" -tar@^4.4.2: - version "4.4.13" - resolved "https://registry.npm.taobao.org/tar/download/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" - integrity sha1-Q7NkvFKIjVVSmGN7ENYHkCVKtSU= - dependencies: - chownr "^1.1.1" - fs-minipass "^1.2.5" - minipass "^2.8.6" - minizlib "^1.2.1" - mkdirp "^0.5.0" - safe-buffer "^5.1.2" - yallist "^3.0.3" - tempusdominus-bootstrap-4@^5.1.2: version "5.1.2" resolved "https://registry.npm.taobao.org/tempusdominus-bootstrap-4/download/tempusdominus-bootstrap-4-5.1.2.tgz#3c9906ca6e5d563faa0b81b2fdc6aa79cad9c0be" @@ -8699,7 +8579,7 @@ yallist@^2.1.2: resolved "https://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= -yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3: +yallist@^3.0.2: version "3.1.1" resolved "https://registry.npm.taobao.org/yallist/download/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha1-27fa+b/YusmrRev2ArjLrQ1dCP0= From cdbff599e73ec6024781280864ee73c9b11868dd Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 20 Jan 2020 15:34:15 +0800 Subject: [PATCH 0045/2165] =?UTF-8?q?fix(Web):=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E5=BD=93=E5=89=8D=E7=94=A8=E6=88=B7=E5=AF=86=E7=A0=81=E6=8F=8F?= =?UTF-8?q?=E8=BF=B0=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/devise/registrations/edit.html.slim | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/app/views/devise/registrations/edit.html.slim b/app/views/devise/registrations/edit.html.slim index 8960fd8ea..bd4ba972b 100644 --- a/app/views/devise/registrations/edit.html.slim +++ b/app/views/devise/registrations/edit.html.slim @@ -18,18 +18,12 @@ | 等待确认邮件: = resource.unconfirmed_email - = f.input :password, label: '当前密码', - hint: '如果不修改密码的话请留空', - required: false, + = f.input :current_password, label: '当前密码', + input_html: { autocomplete: "current-password" } + = f.input :password, label: '新密码', input_html: { autocomplete: "new-password" } - = f.input :password_confirmation, label: '新密码', - required: false, + = f.input :password_confirmation, label: '重复新密码', input_html: { autocomplete: "new-password" } - = f.input :current_password, label: '重复新密码', - hint: "请重复输入新密码保证输入的是正确的", - required: false, - input_html: { autocomplete: "current-password" } - = f.submit '更新', class: 'btn btn-lg btn-primary' .card.card-info From 2a138bfd9e51684930babd4040aaf7e8d2b0d9cd Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 20 Jan 2020 16:21:48 +0800 Subject: [PATCH 0046/2165] =?UTF-8?q?style:=20=E4=BF=AE=E5=A4=8D=E5=8D=87?= =?UTF-8?q?=E7=BA=A7=20adminlte=203.0.2=20=E6=B8=B8=E5=AE=A2=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E6=98=BE=E7=A4=BA=E7=A9=BA=E7=99=BD=E5=B7=A6=E4=BE=A7?= =?UTF-8?q?=E6=A0=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/layouts/_navigation.html.slim | 14 +++++++------- public/config/zealot_config | 5 ----- yarn.lock | 4 ++-- 3 files changed, 9 insertions(+), 14 deletions(-) delete mode 100644 public/config/zealot_config diff --git a/app/views/layouts/_navigation.html.slim b/app/views/layouts/_navigation.html.slim index c4ac1699a..478024ecf 100644 --- a/app/views/layouts/_navigation.html.slim +++ b/app/views/layouts/_navigation.html.slim @@ -25,13 +25,13 @@ nav.main-header.navbar.navbar-expand.navbar-white.navbar-light a href="#{ root_path }" style="color: black" Zealot // Main Sidebar Container -aside.main-sidebar.sidebar-light-primary.elevation-4 - // Brand Logo - a.brand-link href="#{ root_path }" - / span.brand-image Z - span.brand-bighead-text Z - span.brand-text.font-weight-light ealot +- if user_signed_in? + aside.main-sidebar.sidebar-light-primary.elevation-4 + // Brand Logo + a.brand-link href="#{ root_path }" + / span.brand-image Z + span.brand-bighead-text Z + span.brand-text.font-weight-light ealot - - if user_signed_in? // Sidebar == render 'layouts/main_sidebar' diff --git a/public/config/zealot_config b/public/config/zealot_config deleted file mode 100644 index bc33b70dd..000000000 --- a/public/config/zealot_config +++ /dev/null @@ -1,5 +0,0 @@ ---- -key: {private_key} -host: - external: http://external.zealot.com - intranet: http://17.0.0.1:3000 diff --git a/yarn.lock b/yarn.lock index 7a621a653..27ecd37b7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1080,8 +1080,8 @@ acorn@^7.0.0: admin-lte@^3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/admin-lte/-/admin-lte-3.0.2.tgz#8335714263af8b049799cc9effabd4fe9debdbb0" - integrity sha512-D5eoQRAIXjUDDDO4/WK4Cd4ZJOjvVOP0bYYC38INV0XlmjQmOEvEZbcgKPraTjwEgNBFHctNIRtXFJbm8KpCOg== + resolved "https://registry.npm.taobao.org/admin-lte/download/admin-lte-3.0.2.tgz#8335714263af8b049799cc9effabd4fe9debdbb0" + integrity sha1-gzVxQmOviwSXmcye/6vU/p3r27A= dependencies: "@fortawesome/fontawesome-free" "^5.11.2" "@fullcalendar/bootstrap" "^4.3.0" From 9a364cd7bb5f1cc82232975a9af542b35a7d9b9f Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 20 Jan 2020 16:46:26 +0800 Subject: [PATCH 0047/2165] cleanup --- app/controllers/application_controller.rb | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 64ebd456b..8ad0374b9 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true class ApplicationController < ActionController::Base - before_action :set_raven_context - include Pundit # Prevent CSRF attacks by raising an exception. @@ -11,6 +9,8 @@ class ApplicationController < ActionController::Base skip_before_action :verify_authenticity_token + before_action :set_raven_context + # Handle pundit error rescue_from Pundit::NotAuthorizedError, with: :user_not_authorized @@ -50,8 +50,4 @@ def user_not_authorized # headers['Access-Control-Allow-Headers'] = '*' # headers['Access-Control-Max-Age'] = '1728000' # end - # - # def user_not_authorized - # redirect_to root_url, alert: '你没有相应的权限访问该资源。' - # end end From ef435eba7d115244a7d7cd836a341012b31d7312 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 20 Jan 2020 18:45:46 +0800 Subject: [PATCH 0048/2165] =?UTF-8?q?refactor(Web):=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=20autoloader=20=E8=B7=AF=E5=BE=84=E5=92=8C=E7=A6=81=E7=94=A8?= =?UTF-8?q?=20assets=20=E9=A2=84=E7=BC=96=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 6 +++--- app/controllers/admin/system_info_controller.rb | 2 -- app/views/admin/system_info/show.html.slim | 2 +- app/views/layouts/_footer.html.slim | 2 +- config/application.rb | 16 ++++++++++++++-- config/environments/development.rb | 2 +- config/environments/production.rb | 2 +- config/environments/test.rb | 2 +- config/initializers/sentry.rb | 4 +++- config/initializers/sidekiq.rb | 2 +- lib/tasks/zealot.rake | 4 +--- lib/{ => zealot}/setting.rb | 4 +++- 12 files changed, 30 insertions(+), 18 deletions(-) rename lib/{ => zealot}/setting.rb (62%) diff --git a/Gemfile b/Gemfile index 8af8ab560..acd454b71 100644 --- a/Gemfile +++ b/Gemfile @@ -65,9 +65,6 @@ gem 'activejob-status' gem 'sidekiq', '<= 7' gem 'sidekiq-cron', '~> 1.0' -# Mobile config -gem 'settingslogic' - # Assets gem 'turbolinks', '~> 5' gem 'webpacker', '~> 4.2' @@ -75,6 +72,9 @@ gem 'webpacker', '~> 4.2' # 用于解析 ipa 和 apk 包 gem 'app-info', '~> 2.1.3' +# Mobile config +gem 'settingslogic', require: false + # Reduces boot times through caching; required in config/boot.rb gem 'bootsnap', '>= 1.4.4', require: false diff --git a/app/controllers/admin/system_info_controller.rb b/app/controllers/admin/system_info_controller.rb index 5a3a869e7..21026139b 100644 --- a/app/controllers/admin/system_info_controller.rb +++ b/app/controllers/admin/system_info_controller.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require 'setting' - class Admin::SystemInfoController < ApplicationController VERSION_URL = 'https://api.github.com/repos/getzealot/zealot/releases/latest' diff --git a/app/views/admin/system_info/show.html.slim b/app/views/admin/system_info/show.html.slim index f1b108541..ecca7a0c1 100644 --- a/app/views/admin/system_info/show.html.slim +++ b/app/views/admin/system_info/show.html.slim @@ -13,7 +13,7 @@ dl.system-info dt Zealot 版本 dd - pre = ::Setting.version + pre = Zealot::Setting.version dt Ruby 版本 dd pre = RUBY_DESCRIPTION diff --git a/app/views/layouts/_footer.html.slim b/app/views/layouts/_footer.html.slim index d16b81b6d..3ae69d8f2 100644 --- a/app/views/layouts/_footer.html.slim +++ b/app/views/layouts/_footer.html.slim @@ -1,7 +1,7 @@ footer.main-footer .float-right.d-none.d-sm-block b Version - = " #{::Setting.version}" + = " #{Zealot::Setting.version}" strong | Copyright © 2015-2019  a href="https://github.com/getzealot/zealot" Zealot diff --git a/config/application.rb b/config/application.rb index 878d36db0..5d9b9d387 100644 --- a/config/application.rb +++ b/config/application.rb @@ -2,12 +2,14 @@ require_relative 'boot' + + require 'rails' # Pick the frameworks you want: require 'active_model/railtie' require 'active_job/railtie' require 'active_record/railtie' -require 'active_storage/engine' +# require 'active_storage/engine' require 'action_controller/railtie' require 'action_mailer/railtie' # require 'action_mailbox/engine' @@ -74,10 +76,20 @@ class Application < Rails::Application # config.action_cable.allowed_request_origins = origins # end + # Disable Asset Pipeline/Sprockets + config.assets.enabled = false + config.assets.compile = false + ################################################################ # Auto load path - config.autoload_paths << Rails.root.join('lib') + config.autoload_paths += %W( + #{config.root}/lib + ) + + config.eager_load_paths += %W( + #{config.root}/lib + ) # Don't generate system test files. config.generators.system_tests = nil diff --git a/config/environments/development.rb b/config/environments/development.rb index ac9234220..08b6866ba 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -35,7 +35,7 @@ end # Store uploaded files on the local file system (see config/storage.yml for options). - config.active_storage.service = :local + # config.active_storage.service = :local # Don't care if the mailer can't send. config.action_mailer.raise_delivery_errors = false diff --git a/config/environments/production.rb b/config/environments/production.rb index c370a8990..448c16176 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -46,7 +46,7 @@ # Store uploaded files on the local file system # (see config/storage.yml for options) - config.active_storage.service = :local + # config.active_storage.service = :local # Mount Action Cable outside main process or domain # config.action_cable.mount_path = nil diff --git a/config/environments/test.rb b/config/environments/test.rb index e5cbfe5bb..50ecdf227 100644 --- a/config/environments/test.rb +++ b/config/environments/test.rb @@ -33,7 +33,7 @@ config.action_controller.allow_forgery_protection = false # Store uploaded files on the local file system in a temporary directory. - config.active_storage.service = :test + # config.active_storage.service = :test config.action_mailer.perform_caching = false diff --git a/config/initializers/sentry.rb b/config/initializers/sentry.rb index 67f251c5c..9ae63ba7b 100644 --- a/config/initializers/sentry.rb +++ b/config/initializers/sentry.rb @@ -2,6 +2,8 @@ # 默认开启 Sentry,如果不想使用设置 ZEALOT_SENTRY_DISABLE=1 if ENV['ZEALOT_SENTRY_DISABLE'].blank? + require 'zealot/setting' + Raven.configure do |config| config.silence_ready = true config.dsn = ENV['ZEALOT_SENTRY_DNS'] || 'https://133aefa9f52448a1a7900ba9d02f93e1@sentry.io/1878137' @@ -9,7 +11,7 @@ config.sanitize_fields = Rails.application.config.filter_parameters.map(&:to_s) config.sanitize_fields << 'token' - version = ENV['ZEALOT_VERSION'] || Setting.version + version = ENV['ZEALOT_VERSION'] || Zealot::Setting.version vcs_ref = ENV['ZEALOT_VCS_REF'] version = "#{version}-#{vcs_ref}" if vcs_ref.present? config.release = version diff --git a/config/initializers/sidekiq.rb b/config/initializers/sidekiq.rb index 3e883afb7..37590ccc0 100644 --- a/config/initializers/sidekiq.rb +++ b/config/initializers/sidekiq.rb @@ -15,7 +15,7 @@ end if Sidekiq.server? - cron_jobs = ::Setting.cron_jobs + cron_jobs = Zealot::Setting.cron_jobs keep_uploads = ENV['ZEALOT_KEEP_UPLOADS'] keep_uploads = keep_uploads.present? && keep_uploads.downcase != 'false' diff --git a/lib/tasks/zealot.rake b/lib/tasks/zealot.rake index 6fb2244ff..1fbdfbeb2 100644 --- a/lib/tasks/zealot.rake +++ b/lib/tasks/zealot.rake @@ -37,8 +37,6 @@ namespace :zealot do end task version: :environment do - require_relative '../setting' - - puts ::Setting.version + puts Zealot::Setting.version end end diff --git a/lib/setting.rb b/lib/zealot/setting.rb similarity index 62% rename from lib/setting.rb rename to lib/zealot/setting.rb index 92b0eb7ea..5800ee405 100644 --- a/lib/setting.rb +++ b/lib/zealot/setting.rb @@ -1,6 +1,8 @@ # frozen_string_literal: true -class Setting < Settingslogic +require 'settingslogic' + +class Zealot::Setting < Settingslogic source Rails.root.join('config/zealot.yml') namespace Rails.env end From 90e6bd1733f879afb8b1a7c7a1eef6aa94ec9acd Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 21 Jan 2020 14:04:03 +0800 Subject: [PATCH 0049/2165] =?UTF-8?q?feat:=20=E5=BF=BD=E7=95=A5=20ActiveRe?= =?UTF-8?q?cord::RecordInvalid=20=E9=94=99=E8=AF=AF=E4=B8=8A=E6=8A=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/initializers/sentry.rb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/config/initializers/sentry.rb b/config/initializers/sentry.rb index 9ae63ba7b..a7996f32f 100644 --- a/config/initializers/sentry.rb +++ b/config/initializers/sentry.rb @@ -7,7 +7,11 @@ Raven.configure do |config| config.silence_ready = true config.dsn = ENV['ZEALOT_SENTRY_DNS'] || 'https://133aefa9f52448a1a7900ba9d02f93e1@sentry.io/1878137' - config.excluded_exceptions += ['ActionController::RoutingError', 'ActiveRecord::RecordNotFound'] + config.excluded_exceptions += [ + 'ActionController::RoutingError', + 'ActiveRecord::RecordNotFound', + 'ActiveRecord::RecordInvalid' + ] config.sanitize_fields = Rails.application.config.filter_parameters.map(&:to_s) config.sanitize_fields << 'token' From b30289e6e9adde5e5bc1efe1e0a5b216ae7e3d74 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 21 Jan 2020 16:56:37 +0800 Subject: [PATCH 0050/2165] =?UTF-8?q?feat:=20=E8=A7=A3=E6=9E=90=E8=B0=83?= =?UTF-8?q?=E8=AF=95=E6=96=87=E4=BB=B6=E5=A4=B1=E8=B4=A5=E4=BC=9A=E4=B8=8A?= =?UTF-8?q?=E6=8A=A5=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/jobs/debug_file_teardown_job.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/app/jobs/debug_file_teardown_job.rb b/app/jobs/debug_file_teardown_job.rb index 00db2c70b..6c5e90dbb 100644 --- a/app/jobs/debug_file_teardown_job.rb +++ b/app/jobs/debug_file_teardown_job.rb @@ -17,6 +17,7 @@ def perform(debug_file) rescue => e logger.error "Can not teardown debug file: #{e}" logger.error e.backtrace.join("\n") + Raven.capture_exception(e) end private From 560926d041d4b548c70144b7e4321cf85a66cf84 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 21 Jan 2020 16:56:55 +0800 Subject: [PATCH 0051/2165] =?UTF-8?q?chore:=20=E5=8D=87=E7=BA=A7=20app-inf?= =?UTF-8?q?o=20gem?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index acd454b71..a4ba5ff2e 100644 --- a/Gemfile +++ b/Gemfile @@ -70,7 +70,7 @@ gem 'turbolinks', '~> 5' gem 'webpacker', '~> 4.2' # 用于解析 ipa 和 apk 包 -gem 'app-info', '~> 2.1.3' +gem 'app-info', '~> 2.1.4' # Mobile config gem 'settingslogic', require: false diff --git a/Gemfile.lock b/Gemfile.lock index a2825d3d0..49b3bc904 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -78,7 +78,7 @@ GEM zeitwerk (~> 2.2) addressable (2.7.0) public_suffix (>= 2.0.2, < 5.0) - app-info (2.1.3) + app-info (2.1.4) CFPropertyList (>= 2.3.4, < 3.1.0) image_size (>= 1.5, < 2.1) pngdefry (~> 0.1.2) @@ -449,7 +449,7 @@ PLATFORMS DEPENDENCIES active_model_serializers (~> 0.10.10) activejob-status - app-info (~> 2.1.3) + app-info (~> 2.1.4) awesome_print better_errors binding_of_caller From 82ee27c0623f2d39c7611f50248a839a7fa12cdd Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 31 Jan 2020 06:33:13 +0000 Subject: [PATCH 0052/2165] chore(deps): bump kaminari from 1.1.1 to 1.2.0 Bumps [kaminari](https://github.com/kaminari/kaminari) from 1.1.1 to 1.2.0. - [Release notes](https://github.com/kaminari/kaminari/releases) - [Changelog](https://github.com/kaminari/kaminari/blob/master/CHANGELOG.md) - [Commits](https://github.com/kaminari/kaminari/compare/v1.1.1...v1.2.0) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 49b3bc904..beaba1765 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -113,7 +113,7 @@ GEM coderay (1.1.2) concurrent-ruby (1.1.5) connection_pool (2.2.2) - crass (1.0.5) + crass (1.0.6) debase (0.2.4.1) debase-ruby_core_source (>= 0.10.2) debase-ruby_core_source (0.10.9) @@ -191,7 +191,7 @@ GEM http-form_data (2.2.0) http-parser (1.2.1) ffi-compiler (>= 1.0, < 2.0) - i18n (1.7.0) + i18n (1.8.2) concurrent-ruby (~> 1.0) image_processing (1.10.0) mini_magick (>= 4.9.5, < 5) @@ -211,18 +211,18 @@ GEM json (2.3.0) jsonapi-renderer (0.2.2) jwt (2.2.1) - kaminari (1.1.1) + kaminari (1.2.0) activesupport (>= 4.1.0) - kaminari-actionview (= 1.1.1) - kaminari-activerecord (= 1.1.1) - kaminari-core (= 1.1.1) - kaminari-actionview (1.1.1) + kaminari-actionview (= 1.2.0) + kaminari-activerecord (= 1.2.0) + kaminari-core (= 1.2.0) + kaminari-actionview (1.2.0) actionview - kaminari-core (= 1.1.1) - kaminari-activerecord (1.1.1) + kaminari-core (= 1.2.0) + kaminari-activerecord (1.2.0) activerecord - kaminari-core (= 1.1.1) - kaminari-core (1.1.1) + kaminari-core (= 1.2.0) + kaminari-core (1.2.0) launchy (2.4.3) addressable (~> 2.3) letter_opener (1.7.0) @@ -247,7 +247,7 @@ GEM mini_magick (4.10.1) mini_mime (1.0.2) mini_portile2 (2.4.0) - minitest (5.13.0) + minitest (5.14.0) mixlib-shellout (3.0.7) msgpack (1.3.1) multi_json (1.14.1) @@ -419,7 +419,7 @@ GEM turbolinks (5.2.1) turbolinks-source (~> 5.2) turbolinks-source (5.2.0) - tzinfo (1.2.5) + tzinfo (1.2.6) thread_safe (~> 0.1) unf (0.1.4) unf_ext From 3483429e5fab68c8712f6889627a19df17fed312 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 3 Feb 2020 06:45:45 +0000 Subject: [PATCH 0053/2165] chore(deps-dev): bump webpack-dev-server from 3.10.1 to 3.10.2 Bumps [webpack-dev-server](https://github.com/webpack/webpack-dev-server) from 3.10.1 to 3.10.2. - [Release notes](https://github.com/webpack/webpack-dev-server/releases) - [Changelog](https://github.com/webpack/webpack-dev-server/blob/master/CHANGELOG.md) - [Commits](https://github.com/webpack/webpack-dev-server/compare/v3.10.1...v3.10.2) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 3b218b5e8..45af25543 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "turbolinks": "^5.2.0" }, "devDependencies": { - "webpack-dev-server": "^3.10.1" + "webpack-dev-server": "^3.10.2" }, "version": "4.0.0" } diff --git a/yarn.lock b/yarn.lock index 27ecd37b7..11494fd4f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8396,10 +8396,10 @@ webpack-dev-middleware@^3.7.2: range-parser "^1.2.1" webpack-log "^2.0.0" -webpack-dev-server@^3.10.1: - version "3.10.1" - resolved "https://registry.npm.taobao.org/webpack-dev-server/download/webpack-dev-server-3.10.1.tgz#1ff3e5cccf8e0897aa3f5909c654e623f69b1c0e" - integrity sha1-H/PlzM+OCJeqP1kJxlTmI/abHA4= +webpack-dev-server@^3.10.2: + version "3.10.2" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.10.2.tgz#3403287d674c7407aab6d9b3f72259ecd0aa0874" + integrity sha512-pxZKPYb+n77UN8u9YxXT4IaIrGcNtijh/mi8TXbErHmczw0DtPnMTTjHj+eNjkqLOaAZM/qD7V59j/qJsEiaZA== dependencies: ansi-html "0.0.7" bonjour "^3.5.0" From 20224ce8ddca41baed4e891fda58f4c1efd2491b Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Thu, 6 Feb 2020 06:30:41 +0000 Subject: [PATCH 0054/2165] chore(deps-dev): bump webpack-dev-server from 3.10.2 to 3.10.3 Bumps [webpack-dev-server](https://github.com/webpack/webpack-dev-server) from 3.10.2 to 3.10.3. - [Release notes](https://github.com/webpack/webpack-dev-server/releases) - [Changelog](https://github.com/webpack/webpack-dev-server/blob/master/CHANGELOG.md) - [Commits](https://github.com/webpack/webpack-dev-server/compare/v3.10.2...v3.10.3) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 45af25543..bb34f4e18 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "turbolinks": "^5.2.0" }, "devDependencies": { - "webpack-dev-server": "^3.10.2" + "webpack-dev-server": "^3.10.3" }, "version": "4.0.0" } diff --git a/yarn.lock b/yarn.lock index 11494fd4f..fc7afd459 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8396,10 +8396,10 @@ webpack-dev-middleware@^3.7.2: range-parser "^1.2.1" webpack-log "^2.0.0" -webpack-dev-server@^3.10.2: - version "3.10.2" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.10.2.tgz#3403287d674c7407aab6d9b3f72259ecd0aa0874" - integrity sha512-pxZKPYb+n77UN8u9YxXT4IaIrGcNtijh/mi8TXbErHmczw0DtPnMTTjHj+eNjkqLOaAZM/qD7V59j/qJsEiaZA== +webpack-dev-server@^3.10.3: + version "3.10.3" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.10.3.tgz#f35945036813e57ef582c2420ef7b470e14d3af0" + integrity sha512-e4nWev8YzEVNdOMcNzNeCN947sWJNd43E5XvsJzbAL08kGc2frm1tQ32hTJslRS+H65LCb/AaUCYU7fjHCpDeQ== dependencies: ansi-html "0.0.7" bonjour "^3.5.0" From f3ef844a03d69200a0a95906959efa5f0ccbb538 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 14 Feb 2020 06:27:33 +0000 Subject: [PATCH 0055/2165] chore(deps): bump sidekiq from 6.0.4 to 6.0.5 Bumps [sidekiq](https://github.com/mperham/sidekiq) from 6.0.4 to 6.0.5. - [Release notes](https://github.com/mperham/sidekiq/releases) - [Changelog](https://github.com/mperham/sidekiq/blob/master/Changes.md) - [Commits](https://github.com/mperham/sidekiq/compare/v6.0.4...v6.0.5) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 49b3bc904..1c9dcdefe 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -301,10 +301,10 @@ GEM activesupport (>= 3.0.0) pyu-ruby-sasl (0.0.3.3) raabro (1.1.6) - rack (2.0.8) + rack (2.2.2) rack-cors (1.1.1) rack (>= 2.0.0) - rack-protection (2.0.7) + rack-protection (2.0.8.1) rack rack-proxy (0.6.5) rack @@ -376,9 +376,9 @@ GEM faraday (>= 0.7.6, < 1.0) settingslogic (2.0.9) shellany (0.0.1) - sidekiq (6.0.4) + sidekiq (6.0.5) connection_pool (>= 2.2.2) - rack (>= 2.0.0) + rack (~> 2.0) rack-protection (>= 2.0.0) redis (>= 4.1.0) sidekiq-cron (1.1.0) From 696be734d1bc377b2968fd5a768c6cd683f68251 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 19 Feb 2020 06:29:04 +0000 Subject: [PATCH 0056/2165] chore(deps): bump sys-filesystem from 1.3.2 to 1.3.3 Bumps [sys-filesystem](https://github.com/djberg96/sys-filesystem) from 1.3.2 to 1.3.3. - [Release notes](https://github.com/djberg96/sys-filesystem/releases) - [Changelog](https://github.com/djberg96/sys-filesystem/blob/ffi/CHANGES.rdoc) - [Commits](https://github.com/djberg96/sys-filesystem/compare/sys-filesystem-1.3.2...sys-filesystem-1.3.3) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index a4ba5ff2e..ae9787d4f 100644 --- a/Gemfile +++ b/Gemfile @@ -48,7 +48,7 @@ gem 'omniauth-ldap', github: 'icyleaf/omniauth-ldap', branch: 'master' # 无法 gem 'pundit', '~> 2.1.0' # 系统信息 -gem 'sys-filesystem', '~> 1.3.2' +gem 'sys-filesystem', '~> 1.3.3' gem 'vmstat', '~> 2.3.0' # 异常报错上报 diff --git a/Gemfile.lock b/Gemfile.lock index 1c9dcdefe..0832ab766 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -137,7 +137,7 @@ GEM tzinfo faraday (0.17.1) multipart-post (>= 1.2, < 3) - ffi (1.11.3) + ffi (1.12.2) ffi-compiler (1.0.1) ffi (>= 1.0.0) rake @@ -406,7 +406,7 @@ GEM actionpack (>= 4.0) activesupport (>= 4.0) sprockets (>= 3.0.0) - sys-filesystem (1.3.2) + sys-filesystem (1.3.3) ffi temple (0.8.2) terminal-notifier (2.0.0) @@ -502,7 +502,7 @@ DEPENDENCIES slim-rails (~> 3.2.0) spring spring-watcher-listen (~> 2.0.0) - sys-filesystem (~> 1.3.2) + sys-filesystem (~> 1.3.3) terminal-notifier terminal-notifier-guard turbolinks (~> 5) From facd19d86e7f3b4c4fdb9c7ecdca657c32ef0587 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 24 Feb 2020 19:51:49 +0000 Subject: [PATCH 0057/2165] chore(deps): [security] bump nokogiri from 1.10.7 to 1.10.8 Bumps [nokogiri](https://github.com/sparklemotion/nokogiri) from 1.10.7 to 1.10.8. **This update includes a security fix.** - [Release notes](https://github.com/sparklemotion/nokogiri/releases) - [Changelog](https://github.com/sparklemotion/nokogiri/blob/master/CHANGELOG.md) - [Commits](https://github.com/sparklemotion/nokogiri/compare/v1.10.7...v1.10.8) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 0832ab766..845024a46 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -256,7 +256,7 @@ GEM nenv (0.3.0) net-ldap (0.16.2) nio4r (2.5.2) - nokogiri (1.10.7) + nokogiri (1.10.8) mini_portile2 (~> 2.4.0) notiffany (0.1.3) nenv (~> 0.1) From 42fb2bc31ba34bbaa298a47a4d851d56878b5d8e Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 25 Feb 2020 06:26:40 +0000 Subject: [PATCH 0058/2165] chore(deps): bump bootsnap from 1.4.5 to 1.4.6 Bumps [bootsnap](https://github.com/Shopify/bootsnap) from 1.4.5 to 1.4.6. - [Release notes](https://github.com/Shopify/bootsnap/releases) - [Changelog](https://github.com/Shopify/bootsnap/blob/master/CHANGELOG.md) - [Commits](https://github.com/Shopify/bootsnap/compare/v1.4.5...v1.4.6) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 0832ab766..a2576adc8 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -96,7 +96,7 @@ GEM bindex (0.8.1) binding_of_caller (0.8.0) debug_inspector (>= 0.0.1) - bootsnap (1.4.5) + bootsnap (1.4.6) msgpack (~> 1.0) builder (3.2.4) byebug (11.0.1) @@ -249,7 +249,7 @@ GEM mini_portile2 (2.4.0) minitest (5.13.0) mixlib-shellout (3.0.7) - msgpack (1.3.1) + msgpack (1.3.3) multi_json (1.14.1) multi_xml (0.6.0) multipart-post (2.1.1) From aa920b2473d9b2a7b2c35e147092aaa0b7984ab0 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 26 Feb 2020 06:29:37 +0000 Subject: [PATCH 0059/2165] chore(deps-dev): bump better_errors from 2.5.1 to 2.6.0 Bumps [better_errors](https://github.com/BetterErrors/better_errors) from 2.5.1 to 2.6.0. - [Release notes](https://github.com/BetterErrors/better_errors/releases) - [Commits](https://github.com/BetterErrors/better_errors/compare/v2.5.1...v2.6.0) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 0832ab766..f7430fd63 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -89,7 +89,7 @@ GEM ast (2.4.0) awesome_print (1.8.0) bcrypt (3.1.13) - better_errors (2.5.1) + better_errors (2.6.0) coderay (>= 1.0.0) erubi (>= 1.0.0) rack (>= 0.9.0) From 0cbc2c934d75e00b2864c85aa7831ddcbed35ed0 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 28 Feb 2020 06:30:18 +0000 Subject: [PATCH 0060/2165] chore(deps): bump puma from 4.3.1 to 4.3.2 Bumps [puma](https://github.com/puma/puma) from 4.3.1 to 4.3.2. - [Release notes](https://github.com/puma/puma/releases) - [Changelog](https://github.com/puma/puma/blob/master/History.md) - [Commits](https://github.com/puma/puma/compare/v4.3.1...v4.3.2) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index ae9787d4f..f9dcb3bd9 100644 --- a/Gemfile +++ b/Gemfile @@ -6,7 +6,7 @@ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" } ruby '>= 2.3.0', '< 2.8.0' -gem 'puma', '~> 4.3.1' +gem 'puma', '~> 4.3.2' gem 'rails', '~> 6.0.2' gem 'rails-i18n', '~> 6.0.0' gem 'rake', '~> 13.0.1' diff --git a/Gemfile.lock b/Gemfile.lock index f7430fd63..b1f7bc3dc 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -295,7 +295,7 @@ GEM interception (>= 0.5) pry (>= 0.12.0) public_suffix (4.0.3) - puma (4.3.1) + puma (4.3.2) nio4r (~> 2.0) pundit (2.1.0) activesupport (>= 3.0.0) @@ -483,7 +483,7 @@ DEPENDENCIES pry-byebug pry-rails pry-rescue - puma (~> 4.3.1) + puma (~> 4.3.2) pundit (~> 2.1.0) rack-cors (~> 1.1.1) rails (~> 6.0.2) From 44d9aa886a61fd3e94f02f737936daed2bf5b6da Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Sun, 1 Mar 2020 23:07:11 +0000 Subject: [PATCH 0061/2165] chore(deps): [security] bump puma from 4.3.2 to 4.3.3 Bumps [puma](https://github.com/puma/puma) from 4.3.2 to 4.3.3. **This update includes a security fix.** - [Release notes](https://github.com/puma/puma/releases) - [Changelog](https://github.com/puma/puma/blob/master/History.md) - [Commits](https://github.com/puma/puma/compare/v4.3.2...v4.3.3) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index f9dcb3bd9..6c5bb6d7c 100644 --- a/Gemfile +++ b/Gemfile @@ -6,7 +6,7 @@ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" } ruby '>= 2.3.0', '< 2.8.0' -gem 'puma', '~> 4.3.2' +gem 'puma', '~> 4.3.3' gem 'rails', '~> 6.0.2' gem 'rails-i18n', '~> 6.0.0' gem 'rake', '~> 13.0.1' diff --git a/Gemfile.lock b/Gemfile.lock index b1f7bc3dc..00a2dcae0 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -295,7 +295,7 @@ GEM interception (>= 0.5) pry (>= 0.12.0) public_suffix (4.0.3) - puma (4.3.2) + puma (4.3.3) nio4r (~> 2.0) pundit (2.1.0) activesupport (>= 3.0.0) @@ -483,7 +483,7 @@ DEPENDENCIES pry-byebug pry-rails pry-rescue - puma (~> 4.3.2) + puma (~> 4.3.3) pundit (~> 2.1.0) rack-cors (~> 1.1.1) rails (~> 6.0.2) From 22c11b3ea894c1fc31dc35afed98d92d20454b48 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Mar 2020 02:33:16 +0000 Subject: [PATCH 0062/2165] chore(deps): bump nokogiri from 1.10.7 to 1.10.9 Bumps [nokogiri](https://github.com/sparklemotion/nokogiri) from 1.10.7 to 1.10.9. - [Release notes](https://github.com/sparklemotion/nokogiri/releases) - [Changelog](https://github.com/sparklemotion/nokogiri/blob/v1.10.9/CHANGELOG.md) - [Commits](https://github.com/sparklemotion/nokogiri/compare/v1.10.7...v1.10.9) Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 00a2dcae0..75c3bc38d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -256,7 +256,7 @@ GEM nenv (0.3.0) net-ldap (0.16.2) nio4r (2.5.2) - nokogiri (1.10.7) + nokogiri (1.10.9) mini_portile2 (~> 2.4.0) notiffany (0.1.3) nenv (~> 0.1) From c9887f19d9a04372bc07449001e8312610fc827e Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 2 Mar 2020 02:35:51 +0000 Subject: [PATCH 0063/2165] chore(deps): bump simple_form from 5.0.1 to 5.0.2 Bumps [simple_form](https://github.com/plataformatec/simple_form) from 5.0.1 to 5.0.2. - [Release notes](https://github.com/plataformatec/simple_form/releases) - [Changelog](https://github.com/heartcombo/simple_form/blob/master/CHANGELOG.md) - [Commits](https://github.com/plataformatec/simple_form/compare/v5.0.1...v5.0.2) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 75c3bc38d..42529652f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -111,9 +111,9 @@ GEM activesupport chunky_png (1.3.11) coderay (1.1.2) - concurrent-ruby (1.1.5) + concurrent-ruby (1.1.6) connection_pool (2.2.2) - crass (1.0.5) + crass (1.0.6) debase (0.2.4.1) debase-ruby_core_source (>= 0.10.2) debase-ruby_core_source (0.10.9) @@ -191,7 +191,7 @@ GEM http-form_data (2.2.0) http-parser (1.2.1) ffi-compiler (>= 1.0, < 2.0) - i18n (1.7.0) + i18n (1.8.2) concurrent-ruby (~> 1.0) image_processing (1.10.0) mini_magick (>= 4.9.5, < 5) @@ -247,7 +247,7 @@ GEM mini_magick (4.10.1) mini_mime (1.0.2) mini_portile2 (2.4.0) - minitest (5.13.0) + minitest (5.14.0) mixlib-shellout (3.0.7) msgpack (1.3.1) multi_json (1.14.1) @@ -384,7 +384,7 @@ GEM sidekiq-cron (1.1.0) fugit (~> 1.1) sidekiq (>= 4.2.1) - simple_form (5.0.1) + simple_form (5.0.2) actionpack (>= 5.0) activemodel (>= 5.0) slim (4.0.1) @@ -419,7 +419,7 @@ GEM turbolinks (5.2.1) turbolinks-source (~> 5.2) turbolinks-source (5.2.0) - tzinfo (1.2.5) + tzinfo (1.2.6) thread_safe (~> 0.1) unf (0.1.4) unf_ext From 856576306bd4572fe39840a399ea990060618e9d Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 3 Mar 2020 06:29:42 +0000 Subject: [PATCH 0064/2165] chore(deps): [security] bump omniauth from 1.9.0 to 1.9.1 Bumps [omniauth](https://github.com/omniauth/omniauth) from 1.9.0 to 1.9.1. **This update includes a security fix.** - [Release notes](https://github.com/omniauth/omniauth/releases) - [Commits](https://github.com/omniauth/omniauth/compare/v1.9.0...v1.9.1) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 75c3bc38d..91a6fff58 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -180,7 +180,7 @@ GEM guard-webpacker (0.2.1) guard (>= 2) guard-compat (~> 1.0) - hashie (3.6.0) + hashie (4.1.0) http (4.3.0) addressable (~> 2.3) http-cookie (~> 1.0) @@ -267,8 +267,8 @@ GEM multi_json (~> 1.3) multi_xml (~> 0.5) rack (>= 1.2, < 3) - omniauth (1.9.0) - hashie (>= 3.4.6, < 3.7.0) + omniauth (1.9.1) + hashie (>= 3.4.6) rack (>= 1.6.2, < 3) omniauth-google-oauth2 (0.8.0) jwt (>= 2.0) From c4c4478e0667fb76f005367269c944bca3f929bd Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 3 Mar 2020 06:30:27 +0000 Subject: [PATCH 0065/2165] chore(deps): bump sentry-raven from 2.13.0 to 3.0.0 Bumps [sentry-raven](https://github.com/getsentry/raven-ruby) from 2.13.0 to 3.0.0. - [Release notes](https://github.com/getsentry/raven-ruby/releases) - [Changelog](https://github.com/getsentry/raven-ruby/blob/master/changelog.md) - [Commits](https://github.com/getsentry/raven-ruby/compare/v2.13.0...v3.0.0) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 75c3bc38d..61ebe2008 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -135,7 +135,7 @@ GEM erubi (1.9.0) et-orbi (1.2.2) tzinfo - faraday (0.17.1) + faraday (1.0.0) multipart-post (>= 1.2, < 3) ffi (1.12.2) ffi-compiler (1.0.1) @@ -372,8 +372,8 @@ GEM rubyzip (>= 1.1.6) rubyntlm (0.6.2) rubyzip (2.0.0) - sentry-raven (2.13.0) - faraday (>= 0.7.6, < 1.0) + sentry-raven (3.0.0) + faraday (>= 1.0) settingslogic (2.0.9) shellany (0.0.1) sidekiq (6.0.5) From 9660d6af6419534673f7d092942634fc163c481b Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 13 Mar 2020 14:06:46 +0800 Subject: [PATCH 0066/2165] =?UTF-8?q?chore:=20=E6=B7=BB=E5=8A=A0=20Procfil?= =?UTF-8?q?e=20=E9=83=A8=E7=BD=B2=20heroku?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Procfile | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 Procfile diff --git a/Procfile b/Procfile new file mode 100644 index 000000000..3ca346150 --- /dev/null +++ b/Procfile @@ -0,0 +1,3 @@ +# Used fro heroku +web: bundle exec puma -C config/puma.rb +sidekid: bundle exec sidekiq -C config/sidekiq.yml \ No newline at end of file From 962924dc0bfb6e4f2b6601e62c95bb969a82bad8 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 13 Mar 2020 06:25:02 +0000 Subject: [PATCH 0067/2165] chore(deps): bump graphql from 1.9.17 to 1.10.5 Bumps [graphql](https://github.com/rmosolgo/graphql-ruby) from 1.9.17 to 1.10.5. - [Release notes](https://github.com/rmosolgo/graphql-ruby/releases) - [Changelog](https://github.com/rmosolgo/graphql-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/rmosolgo/graphql-ruby/commits) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 6c5bb6d7c..e4bc8f25f 100644 --- a/Gemfile +++ b/Gemfile @@ -17,7 +17,7 @@ gem 'redis', '~> 4.1.3' # API gem 'active_model_serializers', '~> 0.10.10' -gem 'graphql', '~> 1.9.17' +gem 'graphql', '~> 1.10.5' gem 'rack-cors', '~> 1.1.1' # View diff --git a/Gemfile.lock b/Gemfile.lock index 42b2e0ee5..e5b552f6e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -152,7 +152,7 @@ GEM graphiql-rails (1.7.0) railties sprockets-rails - graphql (1.9.17) + graphql (1.10.5) guard (2.16.1) formatador (>= 0.2.4) listen (>= 2.7, < 4.0) @@ -462,7 +462,7 @@ DEPENDENCIES dotenv-rails friendly_id graphiql-rails (~> 1.7.0) - graphql (~> 1.9.17) + graphql (~> 1.10.5) guard-bundler guard-migrate guard-rails From 87e2db9d4a12f9c29013795f1601f8a55b707131 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 13 Mar 2020 14:26:40 +0800 Subject: [PATCH 0068/2165] =?UTF-8?q?refactor:=20=E4=BF=AE=E6=94=B9=20REDI?= =?UTF-8?q?S=5FCACHE=5FURL=20=E4=B8=BA=20REDIS=5FURL?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/application.rb | 4 ++-- config/initializers/sidekiq.rb | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/config/application.rb b/config/application.rb index 5d9b9d387..d00e3b93d 100644 --- a/config/application.rb +++ b/config/application.rb @@ -58,8 +58,8 @@ class Application < Rails::Application # Set Redis as the back-end for the cache. config.cache_store = :redis_cache_store, { - url: (ENV['REDIS_CACHE_URL'] || 'redis://localhost:6379/0'), - namespace: ENV['REDIS_CACHE_NAMESPACE'] || 'cache' + url: (ENV['REDIS_URL'] || 'redis://localhost:6379/0'), + namespace: ENV['REDIS_NAMESPACE'] || 'cache' } # Set Sidekiq as the back-end for Active Job. diff --git a/config/initializers/sidekiq.rb b/config/initializers/sidekiq.rb index 37590ccc0..858183cce 100644 --- a/config/initializers/sidekiq.rb +++ b/config/initializers/sidekiq.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -sidekiq_config = { url: ENV['ACTIVE_JOB_URL'] || 'redis://localhost:6379/0' } +sidekiq_config = { url: ENV['REDIS_URL'] || 'redis://localhost:6379/0' } Sidekiq.configure_server do |config| config.redis = sidekiq_config From 0ba897b657235d1059f938781993f8b2c45a2248 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 13 Mar 2020 14:26:55 +0800 Subject: [PATCH 0069/2165] =?UTF-8?q?chore:=20=E4=BF=AE=E6=94=B9=20Procfil?= =?UTF-8?q?e=20=E9=83=A8=E7=BD=B2=20web=20=E7=9A=84=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Procfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Procfile b/Procfile index 3ca346150..ba534aa6b 100644 --- a/Procfile +++ b/Procfile @@ -1,3 +1,3 @@ # Used fro heroku -web: bundle exec puma -C config/puma.rb -sidekid: bundle exec sidekiq -C config/sidekiq.yml \ No newline at end of file +web: bin/rails server -p $PORT -e $RAILS_ENV +worker: bundle exec sidekiq -C config/sidekiq.yml \ No newline at end of file From 1f865e05bd787b36c57a507afc41c02fa8a27306 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 13 Mar 2020 21:44:02 +0000 Subject: [PATCH 0070/2165] chore(deps): [security] bump acorn from 5.7.3 to 5.7.4 Bumps [acorn](https://github.com/acornjs/acorn) from 5.7.3 to 5.7.4. **This update includes a security fix.** - [Release notes](https://github.com/acornjs/acorn/releases) - [Commits](https://github.com/acornjs/acorn/compare/5.7.3...5.7.4) Signed-off-by: dependabot-preview[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index fc7afd459..9fc8051b6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1064,9 +1064,9 @@ acorn-walk@^7.0.0: integrity sha1-yLpvDxqsSwqeMtHwrxK+dpUo82s= acorn@^5.0.0: - version "5.7.3" - resolved "https://registry.npm.taobao.org/acorn/download/acorn-5.7.3.tgz#67aa231bf8812974b85235a96771eb6bd07ea279" - integrity sha1-Z6ojG/iBKXS4UjWpZ3Hra9B+onk= + version "5.7.4" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e" + integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg== acorn@^6.2.1: version "6.4.0" From fa14f4a5487f4b022dd63d32a8e8842ebabd5655 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 18 Mar 2020 06:24:39 +0000 Subject: [PATCH 0071/2165] chore(deps): bump sys-filesystem from 1.3.3 to 1.3.4 Bumps [sys-filesystem](https://github.com/djberg96/sys-filesystem) from 1.3.3 to 1.3.4. - [Release notes](https://github.com/djberg96/sys-filesystem/releases) - [Changelog](https://github.com/djberg96/sys-filesystem/blob/ffi/CHANGES.rdoc) - [Commits](https://github.com/djberg96/sys-filesystem/compare/sys-filesystem-1.3.3...sys-filesystem-1.3.4) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 6c5bb6d7c..7a10555e0 100644 --- a/Gemfile +++ b/Gemfile @@ -48,7 +48,7 @@ gem 'omniauth-ldap', github: 'icyleaf/omniauth-ldap', branch: 'master' # 无法 gem 'pundit', '~> 2.1.0' # 系统信息 -gem 'sys-filesystem', '~> 1.3.3' +gem 'sys-filesystem', '~> 1.3.4' gem 'vmstat', '~> 2.3.0' # 异常报错上报 diff --git a/Gemfile.lock b/Gemfile.lock index 42b2e0ee5..44a1b2c05 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -406,7 +406,7 @@ GEM actionpack (>= 4.0) activesupport (>= 4.0) sprockets (>= 3.0.0) - sys-filesystem (1.3.3) + sys-filesystem (1.3.4) ffi temple (0.8.2) terminal-notifier (2.0.0) @@ -502,7 +502,7 @@ DEPENDENCIES slim-rails (~> 3.2.0) spring spring-watcher-listen (~> 2.0.0) - sys-filesystem (~> 1.3.3) + sys-filesystem (~> 1.3.4) terminal-notifier terminal-notifier-guard turbolinks (~> 5) From 46c7a171db11eb6a7162724d07a7e646d8c467d6 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 20 Mar 2020 06:29:32 +0000 Subject: [PATCH 0072/2165] chore(deps): bump rails from 6.0.2.1 to 6.0.2.2 Bumps [rails](https://github.com/rails/rails) from 6.0.2.1 to 6.0.2.2. - [Release notes](https://github.com/rails/rails/releases) - [Commits](https://github.com/rails/rails/compare/v6.0.2.1...v6.0.2.2) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 114 +++++++++++++++++++++++++-------------------------- 1 file changed, 57 insertions(+), 57 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 42b2e0ee5..a20560e26 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -13,38 +13,38 @@ GEM remote: https://rubygems.org/ specs: CFPropertyList (3.0.2) - actioncable (6.0.2.1) - actionpack (= 6.0.2.1) + actioncable (6.0.2.2) + actionpack (= 6.0.2.2) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (6.0.2.1) - actionpack (= 6.0.2.1) - activejob (= 6.0.2.1) - activerecord (= 6.0.2.1) - activestorage (= 6.0.2.1) - activesupport (= 6.0.2.1) + actionmailbox (6.0.2.2) + actionpack (= 6.0.2.2) + activejob (= 6.0.2.2) + activerecord (= 6.0.2.2) + activestorage (= 6.0.2.2) + activesupport (= 6.0.2.2) mail (>= 2.7.1) - actionmailer (6.0.2.1) - actionpack (= 6.0.2.1) - actionview (= 6.0.2.1) - activejob (= 6.0.2.1) + actionmailer (6.0.2.2) + actionpack (= 6.0.2.2) + actionview (= 6.0.2.2) + activejob (= 6.0.2.2) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (6.0.2.1) - actionview (= 6.0.2.1) - activesupport (= 6.0.2.1) + actionpack (6.0.2.2) + actionview (= 6.0.2.2) + activesupport (= 6.0.2.2) rack (~> 2.0, >= 2.0.8) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (6.0.2.1) - actionpack (= 6.0.2.1) - activerecord (= 6.0.2.1) - activestorage (= 6.0.2.1) - activesupport (= 6.0.2.1) + actiontext (6.0.2.2) + actionpack (= 6.0.2.2) + activerecord (= 6.0.2.2) + activestorage (= 6.0.2.2) + activesupport (= 6.0.2.2) nokogiri (>= 1.8.5) - actionview (6.0.2.1) - activesupport (= 6.0.2.1) + actionview (6.0.2.2) + activesupport (= 6.0.2.2) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) @@ -54,23 +54,23 @@ GEM activemodel (>= 4.1, < 6.1) case_transform (>= 0.2) jsonapi-renderer (>= 0.1.1.beta1, < 0.3) - activejob (6.0.2.1) - activesupport (= 6.0.2.1) + activejob (6.0.2.2) + activesupport (= 6.0.2.2) globalid (>= 0.3.6) activejob-status (0.1.5) activejob (>= 4.2) activesupport (>= 4.2) - activemodel (6.0.2.1) - activesupport (= 6.0.2.1) - activerecord (6.0.2.1) - activemodel (= 6.0.2.1) - activesupport (= 6.0.2.1) - activestorage (6.0.2.1) - actionpack (= 6.0.2.1) - activejob (= 6.0.2.1) - activerecord (= 6.0.2.1) + activemodel (6.0.2.2) + activesupport (= 6.0.2.2) + activerecord (6.0.2.2) + activemodel (= 6.0.2.2) + activesupport (= 6.0.2.2) + activestorage (6.0.2.2) + actionpack (= 6.0.2.2) + activejob (= 6.0.2.2) + activerecord (= 6.0.2.2) marcel (~> 0.3.1) - activesupport (6.0.2.1) + activesupport (6.0.2.2) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 0.7, < 2) minitest (~> 5.1) @@ -111,9 +111,9 @@ GEM activesupport chunky_png (1.3.11) coderay (1.1.2) - concurrent-ruby (1.1.5) + concurrent-ruby (1.1.6) connection_pool (2.2.2) - crass (1.0.5) + crass (1.0.6) debase (0.2.4.1) debase-ruby_core_source (>= 0.10.2) debase-ruby_core_source (0.10.9) @@ -191,7 +191,7 @@ GEM http-form_data (2.2.0) http-parser (1.2.1) ffi-compiler (>= 1.0, < 2.0) - i18n (1.7.0) + i18n (1.8.2) concurrent-ruby (~> 1.0) image_processing (1.10.0) mini_magick (>= 4.9.5, < 5) @@ -243,11 +243,11 @@ GEM marcel (0.3.3) mimemagic (~> 0.3.2) method_source (0.9.2) - mimemagic (0.3.3) + mimemagic (0.3.4) mini_magick (4.10.1) mini_mime (1.0.2) mini_portile2 (2.4.0) - minitest (5.13.0) + minitest (5.14.0) mixlib-shellout (3.0.7) msgpack (1.3.1) multi_json (1.14.1) @@ -310,20 +310,20 @@ GEM rack rack-test (1.1.0) rack (>= 1.0, < 3) - rails (6.0.2.1) - actioncable (= 6.0.2.1) - actionmailbox (= 6.0.2.1) - actionmailer (= 6.0.2.1) - actionpack (= 6.0.2.1) - actiontext (= 6.0.2.1) - actionview (= 6.0.2.1) - activejob (= 6.0.2.1) - activemodel (= 6.0.2.1) - activerecord (= 6.0.2.1) - activestorage (= 6.0.2.1) - activesupport (= 6.0.2.1) + rails (6.0.2.2) + actioncable (= 6.0.2.2) + actionmailbox (= 6.0.2.2) + actionmailer (= 6.0.2.2) + actionpack (= 6.0.2.2) + actiontext (= 6.0.2.2) + actionview (= 6.0.2.2) + activejob (= 6.0.2.2) + activemodel (= 6.0.2.2) + activerecord (= 6.0.2.2) + activestorage (= 6.0.2.2) + activesupport (= 6.0.2.2) bundler (>= 1.3.0) - railties (= 6.0.2.1) + railties (= 6.0.2.2) sprockets-rails (>= 2.0.0) rails-dom-testing (2.0.3) activesupport (>= 4.2.0) @@ -333,9 +333,9 @@ GEM rails-i18n (6.0.0) i18n (>= 0.7, < 2) railties (>= 6.0.0, < 7) - railties (6.0.2.1) - actionpack (= 6.0.2.1) - activesupport (= 6.0.2.1) + railties (6.0.2.2) + actionpack (= 6.0.2.2) + activesupport (= 6.0.2.2) method_source rake (>= 0.8.7) thor (>= 0.20.3, < 2.0) @@ -419,7 +419,7 @@ GEM turbolinks (5.2.1) turbolinks-source (~> 5.2) turbolinks-source (5.2.0) - tzinfo (1.2.5) + tzinfo (1.2.6) thread_safe (~> 0.1) unf (0.1.4) unf_ext @@ -441,7 +441,7 @@ GEM websocket-driver (0.7.1) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.4) - zeitwerk (2.2.2) + zeitwerk (2.3.0) PLATFORMS ruby From f9bc8337397f51924604ad8291e669310cdb73b1 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 20 Mar 2020 18:17:56 +0800 Subject: [PATCH 0073/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=20webhook?= =?UTF-8?q?=20=E7=9A=84=E5=9C=B0=E5=9D=80=E6=98=AF=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/jobs/app_web_hook_job.rb | 4 ++-- config/secrets.yml | 5 +---- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/app/jobs/app_web_hook_job.rb b/app/jobs/app_web_hook_job.rb index 82a563942..6ccd9a2a2 100644 --- a/app/jobs/app_web_hook_job.rb +++ b/app/jobs/app_web_hook_job.rb @@ -71,7 +71,7 @@ def title def app_url url_for( - host: Rails.application.secrets.domain_name, + host: Rails.configuration.x.url_options[:host], controller: 'apps', action: 'show', slug: @app.slug @@ -80,7 +80,7 @@ def app_url def release_url url_for( - host: Rails.application.secrets.domain_name, + host: Rails.configuration.x.url_options[:host], controller: 'apps', action: 'show', slug: @app.slug, diff --git a/config/secrets.yml b/config/secrets.yml index cdec5417a..42a18a360 100644 --- a/config/secrets.yml +++ b/config/secrets.yml @@ -13,8 +13,6 @@ development: &default admin_email: admin@zealot.com admin_password: password - domain_protocol: http - domain_name: localhost:3000 secret_key_base: <%= ENV['SECRET_TOKEN'] || 'd42f6363da844381a4dfa25d76a4d0c0b992b5de907a165a21fa9a01662e05792915e6537ecbc4d3d55c0de5e9d159d96ba035ff517f9cff27d5bf0c2d55830b' %> google_oauth_enabled: <%= ENV['GOOGLE_OAUTH_ENABLED'] %> @@ -38,5 +36,4 @@ test: production: <<: *default admin_email: admin@zealot.com - admin_password: ze@l0t - domain_name: localhost \ No newline at end of file + admin_password: ze@l0t \ No newline at end of file From 802a55632ab1466e15d39a1f79481f44ec8a2d7d Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 23 Mar 2020 06:55:39 +0000 Subject: [PATCH 0074/2165] chore(deps-dev): bump pry-byebug from 3.7.0 to 3.9.0 Bumps [pry-byebug](https://github.com/deivid-rodriguez/pry-byebug) from 3.7.0 to 3.9.0. - [Release notes](https://github.com/deivid-rodriguez/pry-byebug/releases) - [Changelog](https://github.com/deivid-rodriguez/pry-byebug/blob/master/CHANGELOG.md) - [Commits](https://github.com/deivid-rodriguez/pry-byebug/compare/v3.7.0...v3.9.0) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index a20560e26..61b93f4ce 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -242,7 +242,7 @@ GEM mini_mime (>= 0.1.1) marcel (0.3.3) mimemagic (~> 0.3.2) - method_source (0.9.2) + method_source (1.0.0) mimemagic (0.3.4) mini_magick (4.10.1) mini_mime (1.0.2) @@ -283,12 +283,12 @@ GEM ast (~> 2.4.0) pg (1.2.1) pngdefry (0.1.3) - pry (0.12.2) - coderay (~> 1.1.0) - method_source (~> 0.9.0) - pry-byebug (3.7.0) + pry (0.13.0) + coderay (~> 1.1) + method_source (~> 1.0) + pry-byebug (3.9.0) byebug (~> 11.0) - pry (~> 0.10) + pry (~> 0.13.0) pry-rails (0.3.9) pry (>= 0.10.4) pry-rescue (1.5.0) From adb31a20755c716bc83301e0c191a0b24bed9621 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 24 Mar 2020 06:39:21 +0000 Subject: [PATCH 0075/2165] chore(deps): bump sidekiq from 6.0.5 to 6.0.6 Bumps [sidekiq](https://github.com/mperham/sidekiq) from 6.0.5 to 6.0.6. - [Release notes](https://github.com/mperham/sidekiq/releases) - [Changelog](https://github.com/mperham/sidekiq/blob/master/Changes.md) - [Commits](https://github.com/mperham/sidekiq/compare/v6.0.5...v6.0.6) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index a20560e26..50865a309 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -376,7 +376,7 @@ GEM faraday (>= 1.0) settingslogic (2.0.9) shellany (0.0.1) - sidekiq (6.0.5) + sidekiq (6.0.6) connection_pool (>= 2.2.2) rack (~> 2.0) rack-protection (>= 2.0.0) From c24a86a618f9ffc719a300ed20f6753c41c15758 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 24 Mar 2020 06:39:57 +0000 Subject: [PATCH 0076/2165] chore(deps-dev): bump rubocop-rails from 2.4.1 to 2.5.0 Bumps [rubocop-rails](https://github.com/rubocop-hq/rubocop-rails) from 2.4.1 to 2.5.0. - [Release notes](https://github.com/rubocop-hq/rubocop-rails/releases) - [Changelog](https://github.com/rubocop-hq/rubocop-rails/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop-hq/rubocop-rails/compare/v2.4.1...v2.5.0) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/Gemfile b/Gemfile index 6c5bb6d7c..1e04da7e6 100644 --- a/Gemfile +++ b/Gemfile @@ -115,7 +115,7 @@ end group :development, :test do gem 'dotenv-rails' gem 'rubocop', '~> 0.77', require: false - gem 'rubocop-rails', '~> 2.4.0', require: false + gem 'rubocop-rails', '~> 2.5.0', require: false gem 'pry-byebug' gem 'pry-rails' diff --git a/Gemfile.lock b/Gemfile.lock index a20560e26..d8052fb17 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -279,7 +279,7 @@ GEM omniauth (~> 1.9) orm_adapter (0.5.0) parallel (1.19.1) - parser (2.6.5.0) + parser (2.7.0.5) ast (~> 2.4.0) pg (1.2.1) pngdefry (0.1.3) @@ -359,7 +359,8 @@ GEM rainbow (>= 2.2.2, < 4.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 1.4.0, < 1.7) - rubocop-rails (2.4.1) + rubocop-rails (2.5.0) + activesupport rack (>= 1.1) rubocop (>= 0.72.0) ruby-debug-ide (0.7.0) @@ -424,7 +425,7 @@ GEM unf (0.1.4) unf_ext unf_ext (0.0.7.6) - unicode-display_width (1.6.0) + unicode-display_width (1.6.1) uuidtools (2.1.5) vmstat (2.3.1) warden (1.2.8) @@ -492,7 +493,7 @@ DEPENDENCIES redis (~> 4.1.3) rqrcode rubocop (~> 0.77) - rubocop-rails (~> 2.4.0) + rubocop-rails (~> 2.5.0) ruby-debug-ide sentry-raven settingslogic From 78fca1000c21ed664fe2e7321d34edf0868d5ca8 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 25 Mar 2020 06:34:33 +0000 Subject: [PATCH 0077/2165] chore(deps): bump webpacker from 4.2.2 to 5.0.1 Bumps [webpacker](https://github.com/rails/webpacker) from 4.2.2 to 5.0.1. - [Release notes](https://github.com/rails/webpacker/releases) - [Changelog](https://github.com/rails/webpacker/blob/master/CHANGELOG.md) - [Commits](https://github.com/rails/webpacker/compare/v4.2.2...v5.0.1) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/Gemfile b/Gemfile index 6c5bb6d7c..603c871bf 100644 --- a/Gemfile +++ b/Gemfile @@ -67,7 +67,7 @@ gem 'sidekiq-cron', '~> 1.0' # Assets gem 'turbolinks', '~> 5' -gem 'webpacker', '~> 4.2' +gem 'webpacker', '~> 5.0' # 用于解析 ipa 和 apk 包 gem 'app-info', '~> 2.1.4' diff --git a/Gemfile.lock b/Gemfile.lock index 50865a309..ad8c49d99 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -372,6 +372,7 @@ GEM rubyzip (>= 1.1.6) rubyntlm (0.6.2) rubyzip (2.0.0) + semantic_range (2.3.0) sentry-raven (3.0.0) faraday (>= 1.0) settingslogic (2.0.9) @@ -434,10 +435,11 @@ GEM activemodel (>= 6.0.0) bindex (>= 0.4.0) railties (>= 6.0.0) - webpacker (4.2.2) - activesupport (>= 4.2) + webpacker (5.0.1) + activesupport (>= 5.2) rack-proxy (>= 0.6.1) - railties (>= 4.2) + railties (>= 5.2) + semantic_range (>= 2.3.0) websocket-driver (0.7.1) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.4) @@ -508,7 +510,7 @@ DEPENDENCIES turbolinks (~> 5) vmstat (~> 2.3.0) web-console (>= 3.3.0) - webpacker (~> 4.2) + webpacker (~> 5.0) RUBY VERSION ruby 2.6.5p114 From 25a91f6b63b0fdd33c0cddb7b8e97e50982e8fc0 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Thu, 2 Apr 2020 06:35:26 +0000 Subject: [PATCH 0078/2165] chore(deps): bump admin-lte from 3.0.2 to 3.0.4 Bumps [admin-lte](https://github.com/ColorlibHQ/AdminLTE) from 3.0.2 to 3.0.4. - [Release notes](https://github.com/ColorlibHQ/AdminLTE/releases) - [Commits](https://github.com/ColorlibHQ/AdminLTE/compare/v3.0.2...v3.0.4) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 1387 ++++++++++++++++++++++++++++++++++++++++++++------ 2 files changed, 1222 insertions(+), 167 deletions(-) diff --git a/package.json b/package.json index bb34f4e18..48cce3d6f 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "dependencies": { "@rails/ujs": "^6.0.2", "@rails/webpacker": "^4.2.2", - "admin-lte": "^3.0.2", + "admin-lte": "^3.0.4", "filepond": "^4.9.3", "font-awesome": "^4.7.0", "jquery": "^3.4.1", diff --git a/yarn.lock b/yarn.lock index 9fc8051b6..d08fbc36c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -750,43 +750,78 @@ resolved "https://registry.npm.taobao.org/@csstools/convert-colors/download/@csstools/convert-colors-1.4.0.tgz#ad495dc41b12e75d588c6db8b9834f08fa131eb7" integrity sha1-rUldxBsS511YjG24uYNPCPoTHrc= -"@fortawesome/fontawesome-free@^5.11.2": - version "5.12.0" - resolved "https://registry.npm.taobao.org/@fortawesome/fontawesome-free/download/@fortawesome/fontawesome-free-5.12.0.tgz#8ceb9f09edfb85ea18a6c7bf098f6f5dd5ffd62b" - integrity sha1-jOufCe37heoYpse/CY9vXdX/1is= +"@fortawesome/fontawesome-free@^5.13.0": + version "5.13.0" + resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-5.13.0.tgz#fcb113d1aca4b471b709e8c9c168674fbd6e06d9" + integrity sha512-xKOeQEl5O47GPZYIMToj6uuA2syyFlq9EMSl2ui0uytjY9xbe8XS0pexNWmxrdcCyNGyDmLyYw5FtKsalBUeOg== -"@fullcalendar/bootstrap@^4.3.0": - version "4.3.0" - resolved "https://registry.npm.taobao.org/@fullcalendar/bootstrap/download/@fullcalendar/bootstrap-4.3.0.tgz#c989968f92c4ec26a0ff7dfc35b186aa38978ba1" - integrity sha1-yYmWj5LE7Cag/338NbGGqjiXi6E= +"@fullcalendar/bootstrap@^4.4.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@fullcalendar/bootstrap/-/bootstrap-4.4.0.tgz#4d77d19b4e2d3aaf518f1ade187d8e4db341d2a1" + integrity sha512-2YYM2tPhTwNtYFBcIm4Cf/72pJ3qzRRmzGZx13mJeVYjbSOe1rn/tquff/mMDPPtfCZ4+XqXOLCzAeW7eWHGgw== -"@fullcalendar/core@^4.3.1": - version "4.3.1" - resolved "https://registry.npm.taobao.org/@fullcalendar/core/download/@fullcalendar/core-4.3.1.tgz#a061c6d2e998d4155439dbc8aefdfe01cdf648d8" - integrity sha1-oGHG0umY1BVUOdvIrv3+Ac32SNg= +"@fullcalendar/core@^4.4.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@fullcalendar/core/-/core-4.4.0.tgz#79dbc0cca836ce628a07e739a456da11ff141373" + integrity sha512-PC4mmXHJHAlXmUEmZVnePyA8yYCOBdxBNq8yjJqedEtT1X0x36yTFz/Y0Ux6bniICZDqYtk0xoxe6jaxi++e0g== -"@fullcalendar/daygrid@^4.3.0", "@fullcalendar/daygrid@~4.3.0": - version "4.3.0" - resolved "https://registry.npm.taobao.org/@fullcalendar/daygrid/download/@fullcalendar/daygrid-4.3.0.tgz#1b4ab9fdc238dba77921cb7c5bd2d813c834e905" - integrity sha1-G0q5/cI426d5Ict8W9LYE8g06QU= +"@fullcalendar/daygrid@^4.4.0", "@fullcalendar/daygrid@~4.4.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@fullcalendar/daygrid/-/daygrid-4.4.0.tgz#25fcae7226b62688b4e086a611582e72253b5229" + integrity sha512-pDfvL0XZxKHTZ4VFOmwaYe3LmuABEIZsEopeqQ8y5O6BDen9KCbJqgHeCI8FpASSBd6bNlUx7il7EHdSoHhgIw== -"@fullcalendar/interaction@^4.3.0": - version "4.3.0" - resolved "https://registry.npm.taobao.org/@fullcalendar/interaction/download/@fullcalendar/interaction-4.3.0.tgz#a52d22e4fa2666d5032c77afde75ecfad95c0f3b" - integrity sha1-pS0i5PomZtUDLHev3nXs+tlcDzs= +"@fullcalendar/interaction@^4.4.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@fullcalendar/interaction/-/interaction-4.4.0.tgz#fc8f8baaf5cb3533d6ce0a684d6f9952a4430685" + integrity sha512-nGu0ZzYYlNpIhqfyv3JupteWKFETs3W1MzbRJcEZkuPncn4BooEi4A2blgHfacHAmmpaNkT84tAmhzi734MFBA== -"@fullcalendar/timegrid@^4.3.0": - version "4.3.0" - resolved "https://registry.npm.taobao.org/@fullcalendar/timegrid/download/@fullcalendar/timegrid-4.3.0.tgz#bf003499319e5e66135bb7b8d8ed274b1a62ca91" - integrity sha1-vwA0mTGeXmYTW7e42O0nSxpiypE= +"@fullcalendar/timegrid@^4.4.0": + version "4.4.0" + resolved "https://registry.yarnpkg.com/@fullcalendar/timegrid/-/timegrid-4.4.0.tgz#c5837cfd676afff0d95535ac4cc054ed65965976" + integrity sha512-QwJ9oM87/ZTbXaE8PMIVp20GPtVCFmroaeR1GydJ6BKYtbxG/nsaSv7RhqvDa2jLjHaTWC2NjHo9hRfjQjtCZA== dependencies: - "@fullcalendar/daygrid" "~4.3.0" + "@fullcalendar/daygrid" "~4.4.0" "@lgaitan/pace-progress@^1.0.7": version "1.0.7" resolved "https://registry.npm.taobao.org/@lgaitan/pace-progress/download/@lgaitan/pace-progress-1.0.7.tgz#c96fbbd9fd4cf528feed34ea0c8f9d8b3e98f0dd" integrity sha1-yW+72f1M9Sj+7TTqDI+diz6Y8N0= +"@npmcli/ci-detect@^1.0.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@npmcli/ci-detect/-/ci-detect-1.2.0.tgz#0df142a1ac3bba6cbf2e9da1a6994cd898e32c95" + integrity sha512-JtktVH7ASBVIWsQTFlFpeOzhBJskvoBCTfeeRhhZy7ybATcUvwiwotZ8j5rkqUUyB69lIy/AvboiiiGBjYBKBA== + +"@npmcli/git@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-2.0.1.tgz#d7ecaa9c945de6bb1af5a7e6ea634771193c168b" + integrity sha512-hVatexiBtx71F01Ars38Hr5AFUGmJgHAfQtRlO5fJlnAawRGSXwEFgjB5i3XdUUmElZU/RXy7fefN02dZKxgPw== + dependencies: + "@npmcli/promise-spawn" "^1.1.0" + mkdirp "^1.0.3" + npm-pick-manifest "^6.0.0" + promise-inflight "^1.0.1" + promise-retry "^1.1.1" + unique-filename "^1.1.1" + which "^2.0.2" + +"@npmcli/installed-package-contents@^1.0.5": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@npmcli/installed-package-contents/-/installed-package-contents-1.0.5.tgz#cc78565e55d9f14d46acf46a96f70934e516fa3d" + integrity sha512-aKIwguaaqb6ViwSOFytniGvLPb9SMCUm39TgM3SfUo7n0TxUMbwoXfpwyvQ4blm10lzbAwTsvjr7QZ85LvTi4A== + dependencies: + npm-bundled "^1.1.1" + npm-normalize-package-bin "^1.0.1" + read-package-json-fast "^1.1.1" + readdir-scoped-modules "^1.1.0" + +"@npmcli/promise-spawn@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@npmcli/promise-spawn/-/promise-spawn-1.1.0.tgz#660009a5c54209142ec7c469c190d212834b6087" + integrity sha512-FwbuYN9KXBkloLeIR3xRgI8dyOdfK/KzaJlChszNuwmUXD1lHXfLlSeo4n4KrKt2udIK9K9/TzlnyCA3ubM2fA== + dependencies: + infer-owner "^1.0.4" + "@rails/ujs@^6.0.2": version "6.0.2" resolved "https://registry.npm.taobao.org/@rails/ujs/download/@rails/ujs-6.0.2.tgz#8d32452d51c5e115374a218fb5475803dc17f4c0" @@ -836,16 +871,38 @@ webpack-cli "^3.3.10" webpack-sources "^1.4.3" -"@sweetalert2/theme-bootstrap-4@^2.2.1": - version "2.2.1" - resolved "https://registry.npm.taobao.org/@sweetalert2/theme-bootstrap-4/download/@sweetalert2/theme-bootstrap-4-2.2.1.tgz#a0e3496f2d5aa2993f8fe1c59dcec0673941cddb" - integrity sha1-oONJby1aopk/j+HFnc7AZzlBzds= +"@sindresorhus/is@^0.14.0": + version "0.14.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" + integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== + +"@sweetalert2/theme-bootstrap-4@^3.1.4": + version "3.1.4" + resolved "https://registry.yarnpkg.com/@sweetalert2/theme-bootstrap-4/-/theme-bootstrap-4-3.1.4.tgz#93b72df6b7aeb6f52597670434cdd3283cfdbd27" + integrity sha512-F9ltvRbEP3CNyLCW3p0vmrDOOqZgSUvK5mLIQso7bJ/JnbVdVLiZ6GRnzdhzf5Rz6LO0U9YS++RWdpN+32UHjw== + +"@szmarczak/http-timer@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" + integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== + dependencies: + defer-to-connect "^1.0.1" + +"@tootallnate/once@1": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.0.0.tgz#9c13c2574c92d4503b005feca8f2e16cc1611506" + integrity sha512-KYyTT/T6ALPkIRd2Ge080X/BsXvy9O0hcWTtMWkPvwAwF99+vn6Dv4GzrFT/Nn1LePr+FFDbRXXlqmsy9lw2zA== "@ttskch/select2-bootstrap4-theme@^1.3.2": version "1.3.2" resolved "https://registry.npm.taobao.org/@ttskch/select2-bootstrap4-theme/download/@ttskch/select2-bootstrap4-theme-1.3.2.tgz#c9e17e34fb2cfd9f41b8efe3584165ccbdd96969" integrity sha1-yeF+NPss/Z9BuO/jWEFlzL3ZaWk= +"@types/color-name@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" + integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== + "@types/events@*": version "3.0.0" resolved "https://registry.npm.taobao.org/@types/events/download/@types/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" @@ -1078,26 +1135,26 @@ acorn@^7.0.0: resolved "https://registry.npm.taobao.org/acorn/download/acorn-7.1.0.tgz#949d36f2c292535da602283586c2477c57eb2d6c" integrity sha1-lJ028sKSU12mAig1hsJHfFfrLWw= -admin-lte@^3.0.2: - version "3.0.2" - resolved "https://registry.npm.taobao.org/admin-lte/download/admin-lte-3.0.2.tgz#8335714263af8b049799cc9effabd4fe9debdbb0" - integrity sha1-gzVxQmOviwSXmcye/6vU/p3r27A= - dependencies: - "@fortawesome/fontawesome-free" "^5.11.2" - "@fullcalendar/bootstrap" "^4.3.0" - "@fullcalendar/core" "^4.3.1" - "@fullcalendar/daygrid" "^4.3.0" - "@fullcalendar/interaction" "^4.3.0" - "@fullcalendar/timegrid" "^4.3.0" +admin-lte@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/admin-lte/-/admin-lte-3.0.4.tgz#c80d0b1e2c7e657c9557a653318437c722e31842" + integrity sha512-OsA/yzAPyZgm3WsQYBXOMO8FZx2+kYoiSV6vYWwluSvenTYW/8CRrsIZFck2WndcZnMx9/HReWo5ePJXD3Xc2g== + dependencies: + "@fortawesome/fontawesome-free" "^5.13.0" + "@fullcalendar/bootstrap" "^4.4.0" + "@fullcalendar/core" "^4.4.0" + "@fullcalendar/daygrid" "^4.4.0" + "@fullcalendar/interaction" "^4.4.0" + "@fullcalendar/timegrid" "^4.4.0" "@lgaitan/pace-progress" "^1.0.7" - "@sweetalert2/theme-bootstrap-4" "^2.2.1" + "@sweetalert2/theme-bootstrap-4" "^3.1.4" "@ttskch/select2-bootstrap4-theme" "^1.3.2" - bootstrap "^4.3.1" - bootstrap-colorpicker "^3.1.2" + bootstrap "^4.4.1" + bootstrap-colorpicker "^3.2.0" bootstrap-slider "^10.6.2" - bootstrap-switch "^3.4.0" + bootstrap-switch "3.3.4" bootstrap4-duallistbox "^4.0.1" - bs-custom-file-input "^1.3.2" + bs-custom-file-input "^1.3.4" chart.js "^2.9.3" datatables.net "^1.10.20" datatables.net-autofill-bs4 "^2.3.4" @@ -1116,12 +1173,12 @@ admin-lte@^3.0.2: ekko-lightbox "^5.3.0" fastclick "^1.0.6" filterizr "^2.2.3" - flag-icon-css "^3.4.5" - flot "^3.2.13" - fs-extra "^8.1.0" + flag-icon-css "^3.4.6" + flot "^4.2.0" + fs-extra "^9.0.0" icheck-bootstrap "^3.0.1" - inputmask "^4.0.9" - ion-rangeslider "^2.3.0" + inputmask "^5.0.3" + ion-rangeslider "^2.3.1" jquery "^3.4.1" jquery-knob-chif "^1.2.13" jquery-mapael "^2.2.0" @@ -1130,19 +1187,35 @@ admin-lte@^3.0.2: jquery-validation "^1.19.1" jqvmap-novulnerability "^1.5.1" jsgrid "^1.5.3" - jszip "^3.2.2" + jszip "^3.3.0" moment "^2.24.0" - overlayscrollbars "^1.10.0" - pdfmake "^0.1.62" - popper.js "^1.16.0" + overlayscrollbars "^1.11.0" + pdfmake "^0.1.65" + popper.js "^1.16.1" raphael "^2.3.0" - select2 "^4.0.12" + select2 "^4.0.13" sparklines "^1.2.0" - summernote "^0.8.12" - sweetalert2 "^8.19.0" + summernote "^0.8.16" + sweetalert2 "^9.10.8" tempusdominus-bootstrap-4 "^5.1.2" toastr "^2.1.4" +agent-base@6: + version "6.0.0" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.0.tgz#5d0101f19bbfaed39980b22ae866de153b93f09a" + integrity sha512-j1Q7cSCqN+AwrmDd+pzgqc0/NpC655x2bUf5ZjRIO77DcNBFmh+OgRNzF6OKdCC9RSCb19fGd99+bhXFdkRNqw== + dependencies: + debug "4" + +agentkeepalive@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.1.0.tgz#a48e040ed16745dd29ce923675f60c9c90f39ee0" + integrity sha512-CW/n1wxF8RpEuuiq6Vbn9S8m0VSYDMnZESqaJ6F2cWN9fY8rei2qaxweIaRgq+ek8TqfoFIsUjaGNKGGEHElSg== + dependencies: + debug "^4.1.0" + depd "^1.1.2" + humanize-ms "^1.2.1" + aggregate-error@^3.0.0: version "3.0.1" resolved "https://registry.npm.taobao.org/aggregate-error/download/aggregate-error-3.0.1.tgz#db2fe7246e536f40d9b5442a39e117d7dd6a24e0" @@ -1181,6 +1254,13 @@ amdefine@>=0.0.4: resolved "https://registry.npm.taobao.org/amdefine/download/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU= +ansi-align@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb" + integrity sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw== + dependencies: + string-width "^3.0.0" + ansi-colors@^3.0.0: version "3.2.4" resolved "https://registry.npm.taobao.org/ansi-colors/download/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" @@ -1206,6 +1286,11 @@ ansi-regex@^4.1.0: resolved "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" integrity sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc= +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" @@ -1218,6 +1303,14 @@ ansi-styles@^3.2.0, ansi-styles@^3.2.1: dependencies: color-convert "^1.9.0" +ansi-styles@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" + integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== + dependencies: + "@types/color-name" "^1.1.1" + color-convert "^2.0.1" + anymatch@^2.0.0: version "2.0.0" resolved "https://registry.npm.taobao.org/anymatch/download/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" @@ -1298,6 +1391,11 @@ array-unique@^0.3.2: resolved "https://registry.npm.taobao.org/array-unique/download/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= +asap@^2.0.0: + version "2.0.6" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= + asn1.js@^4.0.0: version "4.10.1" resolved "https://registry.npm.taobao.org/asn1.js/download/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" @@ -1373,6 +1471,11 @@ asynckit@^0.4.0: resolved "https://registry.npm.taobao.org/asynckit/download/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= +at-least-node@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== + atob@^2.1.2: version "2.1.2" resolved "https://registry.npm.taobao.org/atob/download/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" @@ -1542,10 +1645,10 @@ boolbase@^1.0.0, boolbase@~1.0.0: resolved "https://registry.npm.taobao.org/boolbase/download/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= -bootstrap-colorpicker@^3.1.2: +bootstrap-colorpicker@^3.2.0: version "3.2.0" - resolved "https://registry.npm.taobao.org/bootstrap-colorpicker/download/bootstrap-colorpicker-3.2.0.tgz#42b053b865a866b2674527813cd59f90137b9704" - integrity sha1-QrBTuGWoZrJnRSeBPNWfkBN7lwQ= + resolved "https://registry.yarnpkg.com/bootstrap-colorpicker/-/bootstrap-colorpicker-3.2.0.tgz#42b053b865a866b2674527813cd59f90137b9704" + integrity sha512-twW93EFLf4MzZ/st+MkfdLCWEEA7r43WPlPnGckzm3Lj2FsbmVS/qgJH2c9IcmO3re5Q1320NO9bhuViwHR9Qw== dependencies: bootstrap ">=4.0" jquery ">=2.1.0" @@ -1556,21 +1659,35 @@ bootstrap-slider@^10.6.2: resolved "https://registry.npm.taobao.org/bootstrap-slider/download/bootstrap-slider-10.6.2.tgz#7341f468c012bdaa6a1d8625d989fdeb8ed7dd38" integrity sha1-c0H0aMASvapqHYYl2Yn9647X3Tg= -bootstrap-switch@^3.4.0: - version "3.4.0" - resolved "https://registry.npm.taobao.org/bootstrap-switch/download/bootstrap-switch-3.4.0.tgz#6bbb0445ad8b4264883d06366d48aad3c06988f4" - integrity sha1-a7sERa2LQmSIPQY2bUiq08BpiPQ= +bootstrap-switch@3.3.4: + version "3.3.4" + resolved "https://registry.yarnpkg.com/bootstrap-switch/-/bootstrap-switch-3.3.4.tgz#70e0aeb2a877c0dc766991de108e2170fc29a2ff" + integrity sha1-cOCusqh3wNx2aZHeEI4hcPwpov8= bootstrap4-duallistbox@^4.0.1: version "4.0.1" resolved "https://registry.npm.taobao.org/bootstrap4-duallistbox/download/bootstrap4-duallistbox-4.0.1.tgz#89fa6ece3496871bbdf0c63dc256dceb5324b203" integrity sha1-ifpuzjSWhxu98MY9wlbc61MksgM= -bootstrap@>=4.0, bootstrap@>=4.1.2, bootstrap@^4.3.1: +bootstrap@>=4.0, bootstrap@>=4.1.2, bootstrap@^4.4.1: version "4.4.1" resolved "https://registry.npm.taobao.org/bootstrap/download/bootstrap-4.4.1.tgz#8582960eea0c5cd2bede84d8b0baf3789c3e8b01" integrity sha1-hYKWDuoMXNK+3oTYsLrzeJw+iwE= +boxen@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-4.2.0.tgz#e411b62357d6d6d36587c8ac3d5d974daa070e64" + integrity sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ== + dependencies: + ansi-align "^3.0.0" + camelcase "^5.3.1" + chalk "^3.0.0" + cli-boxes "^2.2.0" + string-width "^4.1.0" + term-size "^2.1.0" + type-fest "^0.8.1" + widest-line "^3.1.0" + brace-expansion@^1.1.7: version "1.1.11" resolved "https://registry.npm.taobao.org/brace-expansion/download/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" @@ -1711,10 +1828,10 @@ browserslist@^4.0.0, browserslist@^4.6.4, browserslist@^4.8.0, browserslist@^4.8 electron-to-chromium "^1.3.322" node-releases "^1.1.44" -bs-custom-file-input@^1.3.2: - version "1.3.2" - resolved "https://registry.npm.taobao.org/bs-custom-file-input/download/bs-custom-file-input-1.3.2.tgz#c141c94071cc5e9ac4ea98479a1c204dd18e3b9a" - integrity sha1-wUHJQHHMXprE6phHmhwgTdGOO5o= +bs-custom-file-input@^1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/bs-custom-file-input/-/bs-custom-file-input-1.3.4.tgz#c275cb8d4f1c02ba026324292509fa9a747dbda8" + integrity sha512-NBsQzTnef3OW1MvdKBbMHAYHssCd613MSeJV7z2McXznWtVMnJCy7Ckyc+PwxV6Pk16cu6YBcYWh/ZE0XWNKCA== buffer-equal@0.0.1: version "0.0.1" @@ -1750,6 +1867,11 @@ builtin-status-codes@^3.0.0: resolved "https://registry.npm.taobao.org/builtin-status-codes/download/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= +builtins@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" + integrity sha1-y5T662HIaWRR2zZTThQi+U8K7og= + bytes@3.0.0: version "3.0.0" resolved "https://registry.npm.taobao.org/bytes/download/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" @@ -1805,6 +1927,29 @@ cacache@^13.0.1: ssri "^7.0.0" unique-filename "^1.1.1" +cacache@^15.0.0: + version "15.0.0" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.0.0.tgz#133b59edbd2a37ea8ef2d54964c6f247e47e5059" + integrity sha512-L0JpXHhplbJSiDGzyJJnJCTL7er7NzbBgxzVqLswEb4bO91Zbv17OUMuUeu/q0ZwKn3V+1HM4wb9tO4eVE/K8g== + dependencies: + chownr "^1.1.2" + fs-minipass "^2.0.0" + glob "^7.1.4" + infer-owner "^1.0.4" + lru-cache "^5.1.1" + minipass "^3.1.1" + minipass-collect "^1.0.2" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.2" + mkdirp "^1.0.3" + move-concurrently "^1.0.1" + p-map "^3.0.0" + promise-inflight "^1.0.1" + rimraf "^2.7.1" + ssri "^8.0.0" + tar "^6.0.1" + unique-filename "^1.1.1" + cache-base@^1.0.1: version "1.0.1" resolved "https://registry.npm.taobao.org/cache-base/download/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" @@ -1820,6 +1965,19 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" +cacheable-request@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" + integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== + dependencies: + clone-response "^1.0.2" + get-stream "^5.1.0" + http-cache-semantics "^4.0.0" + keyv "^3.0.0" + lowercase-keys "^2.0.0" + normalize-url "^4.1.0" + responselike "^1.0.2" + caller-callsite@^2.0.0: version "2.0.0" resolved "https://registry.npm.taobao.org/caller-callsite/download/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" @@ -1912,6 +2070,14 @@ chalk@^1.1.1: strip-ansi "^3.0.0" supports-color "^2.0.0" +chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + chart.js@^2.9.3: version "2.9.3" resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-2.9.3.tgz#ae3884114dafd381bc600f5b35a189138aac1ef7" @@ -1959,6 +2125,11 @@ chownr@^1.1.1, chownr@^1.1.2: resolved "https://registry.npm.taobao.org/chownr/download/chownr-1.1.3.tgz#42d837d5239688d55f303003a508230fa6727142" integrity sha1-Qtg31SOWiNVfMDADpQgjD6ZycUI= +chownr@^1.1.3, chownr@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== + chrome-trace-event@^1.0.2: version "1.0.2" resolved "https://registry.npm.taobao.org/chrome-trace-event/download/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" @@ -1966,6 +2137,16 @@ chrome-trace-event@^1.0.2: dependencies: tslib "^1.9.0" +ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== + +cint@^8.2.1: + version "8.2.1" + resolved "https://registry.yarnpkg.com/cint/-/cint-8.2.1.tgz#70386b1b48e2773d0d63166a55aff94ef4456a12" + integrity sha1-cDhrG0jidz0NYxZqVa/5TvRFahI= + cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" resolved "https://registry.npm.taobao.org/cipher-base/download/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" @@ -1989,6 +2170,18 @@ clean-stack@^2.0.0: resolved "https://registry.npm.taobao.org/clean-stack/download/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" integrity sha1-7oRy27Ep5yezHooQpCfe6d/kAIs= +cli-boxes@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.0.tgz#538ecae8f9c6ca508e3c3c95b453fe93cb4c168d" + integrity sha512-gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w== + +cli-table@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/cli-table/-/cli-table-0.3.1.tgz#f53b05266a8b1a0b934b3d0821e6e2dc5914ae23" + integrity sha1-9TsFJmqLGguTSz0IIebi3FkUriM= + dependencies: + colors "1.0.3" + cliui@^3.2.0: version "3.2.0" resolved "https://registry.npm.taobao.org/cliui/download/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" @@ -2025,6 +2218,13 @@ clone-deep@^4.0.1: kind-of "^6.0.2" shallow-clone "^3.0.0" +clone-response@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" + integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= + dependencies: + mimic-response "^1.0.0" + clone@^1.0.1: version "1.0.4" resolved "https://registry.npm.taobao.org/clone/download/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" @@ -2059,12 +2259,19 @@ color-convert@^1.9.0, color-convert@^1.9.1, color-convert@^1.9.3: dependencies: color-name "1.1.3" +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + color-name@1.1.3: version "1.1.3" resolved "https://registry.npm.taobao.org/color-name/download/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= -color-name@^1.0.0: +color-name@^1.0.0, color-name@~1.1.4: version "1.1.4" resolved "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha1-wqCah6y95pVD3m9j+jmVyCbFNqI= @@ -2085,6 +2292,11 @@ color@^3.0.0: color-convert "^1.9.1" color-string "^1.5.2" +colors@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" + integrity sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs= + combined-stream@^1.0.6, combined-stream@~1.0.6: version "1.0.8" resolved "https://registry.npm.taobao.org/combined-stream/download/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" @@ -2097,6 +2309,11 @@ commander@^2.20.0: resolved "https://registry.npm.taobao.org/commander/download/commander-2.20.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha1-/UhehMA+tIgcIHIrpIA16FMa6zM= +commander@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-5.0.0.tgz#dbf1909b49e5044f8fdaf0adc809f0c0722bdfd0" + integrity sha512-JrDGPAKjMGSP1G0DUoaceEJ3DZgAfr/q6X7FVk4+U5KxUSKviYGM2k6zWkfyyBHy5rAtzgYJFa1ro2O9PtoxwQ== + commondir@^1.0.1: version "1.0.1" resolved "https://registry.npm.taobao.org/commondir/download/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" @@ -2154,6 +2371,18 @@ concat-stream@^1.5.0, concat-stream@~1.6.0: readable-stream "^2.2.2" typedarray "^0.0.6" +configstore@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96" + integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA== + dependencies: + dot-prop "^5.2.0" + graceful-fs "^4.1.2" + make-dir "^3.0.0" + unique-string "^2.0.0" + write-file-atomic "^3.0.0" + xdg-basedir "^4.0.0" + connect-history-api-fallback@^1.6.0: version "1.6.0" resolved "https://registry.npm.taobao.org/connect-history-api-fallback/download/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" @@ -2336,6 +2565,11 @@ crypto-js@^3.1.9-1: resolved "https://registry.npm.taobao.org/crypto-js/download/crypto-js-3.1.9-1.tgz#fda19e761fc077e01ffbfdc6e9fdfc59e8806cd8" integrity sha1-/aGedh/Ad+Af+/3G6f38WeiAbNg= +crypto-random-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" + integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== + css-blank-pseudo@^0.1.4: version "0.1.4" resolved "https://registry.npm.taobao.org/css-blank-pseudo/download/css-blank-pseudo-0.1.4.tgz#dfdefd3254bf8a82027993674ccf35483bfcb3c5" @@ -2756,6 +2990,13 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3: dependencies: ms "2.0.0" +debug@4, debug@^4.1.0, debug@^4.1.1: + version "4.1.1" + resolved "https://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E= + dependencies: + ms "^2.1.1" + debug@^3.0.0, debug@^3.1.1, debug@^3.2.5: version "3.2.6" resolved "https://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" @@ -2763,12 +3004,10 @@ debug@^3.0.0, debug@^3.1.1, debug@^3.2.5: dependencies: ms "^2.1.1" -debug@^4.1.0, debug@^4.1.1: - version "4.1.1" - resolved "https://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" - integrity sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E= - dependencies: - ms "^2.1.1" +debuglog@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" + integrity sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI= decamelize@^1.1.1, decamelize@^1.1.2, decamelize@^1.2.0: version "1.2.0" @@ -2780,6 +3019,13 @@ decode-uri-component@^0.2.0: resolved "https://registry.npm.taobao.org/decode-uri-component/download/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= +decompress-response@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" + integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= + dependencies: + mimic-response "^1.0.0" + deep-equal@^1.0.0, deep-equal@^1.0.1: version "1.1.1" resolved "https://registry.npm.taobao.org/deep-equal/download/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" @@ -2792,6 +3038,11 @@ deep-equal@^1.0.0, deep-equal@^1.0.1: object-keys "^1.1.1" regexp.prototype.flags "^1.2.0" +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + deep-is@~0.1.3: version "0.1.3" resolved "https://registry.npm.taobao.org/deep-is/download/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" @@ -2805,6 +3056,11 @@ default-gateway@^4.2.0: execa "^1.0.0" ip-regex "^2.1.0" +defer-to-connect@^1.0.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" + integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== + define-properties@^1.1.2, define-properties@^1.1.3: version "1.1.3" resolved "https://registry.npm.taobao.org/define-properties/download/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" @@ -2857,7 +3113,7 @@ delegates@^1.0.0: resolved "https://registry.npm.taobao.org/delegates/download/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= -depd@~1.1.2: +depd@^1.1.2, depd@~1.1.2: version "1.1.2" resolved "https://registry.npm.taobao.org/depd/download/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= @@ -2885,6 +3141,14 @@ detect-node@^2.0.4: resolved "https://registry.npm.taobao.org/detect-node/download/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" integrity sha1-AU7o+PZpxcWAI9pkuBecCDooxGw= +dezalgo@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.3.tgz#7f742de066fc748bc8db820569dddce49bf0d456" + integrity sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY= + dependencies: + asap "^2.0.0" + wrappy "1" + dfa@^1.0.0: version "1.2.0" resolved "https://registry.npm.taobao.org/dfa/download/dfa-1.2.0.tgz#96ac3204e2d29c49ea5b57af8d92c2ae12790657" @@ -2957,6 +3221,13 @@ dot-prop@^4.1.1: dependencies: is-obj "^1.0.0" +dot-prop@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.2.0.tgz#c34ecc29556dc45f1f4c22697b6f4904e0cc4fcb" + integrity sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A== + dependencies: + is-obj "^2.0.0" + duplexer2@~0.1.4: version "0.1.4" resolved "https://registry.npm.taobao.org/duplexer2/download/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" @@ -2964,6 +3235,11 @@ duplexer2@~0.1.4: dependencies: readable-stream "^2.0.2" +duplexer3@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" + integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= + duplexify@^3.4.2, duplexify@^3.6.0: version "3.7.1" resolved "https://registry.npm.taobao.org/duplexify/download/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" @@ -3015,6 +3291,11 @@ emoji-regex@^7.0.1: resolved "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" integrity sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY= +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + emojis-list@^2.0.0: version "2.1.0" resolved "https://registry.npm.taobao.org/emojis-list/download/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" @@ -3025,6 +3306,13 @@ encodeurl@~1.0.2: resolved "https://registry.npm.taobao.org/encodeurl/download/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= +encoding@^0.1.12: + version "0.1.12" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" + integrity sha1-U4tm8+5izRq1HsMjgp0flIDHS+s= + dependencies: + iconv-lite "~0.4.13" + end-of-stream@^1.0.0, end-of-stream@^1.1.0: version "1.4.4" resolved "https://registry.npm.taobao.org/end-of-stream/download/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" @@ -3055,6 +3343,11 @@ entities@^2.0.0: resolved "https://registry.npm.taobao.org/entities/download/entities-2.0.0.tgz#68d6084cab1b079767540d80e56a39b423e4abf4" integrity sha1-aNYITKsbB5dnVA2A5Wo5tCPkq/Q= +err-code@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/err-code/-/err-code-1.1.2.tgz#06e0116d3028f6aef4806849eb0ea6a748ae6960" + integrity sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA= + errno@^0.1.3, errno@~0.1.7: version "0.1.7" resolved "https://registry.npm.taobao.org/errno/download/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" @@ -3152,6 +3445,11 @@ es6-symbol@^3.1.1, es6-symbol@~3.1.1, es6-symbol@~3.1.3: d "^1.0.1" ext "^1.1.2" +escape-goat@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675" + integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q== + escape-html@~1.0.3: version "1.0.3" resolved "https://registry.npm.taobao.org/escape-html/download/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" @@ -3435,6 +3733,11 @@ fast-deep-equal@^2.0.1: resolved "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-2.0.1.tgz?cache=0&sync_timestamp=1575383928809&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-deep-equal%2Fdownload%2Ffast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= +fast-diff@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" + integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== + fast-json-stable-stringify@^2.0.0: version "2.1.0" resolved "https://registry.npm.taobao.org/fast-json-stable-stringify/download/fast-json-stable-stringify-2.1.0.tgz?cache=0&sync_timestamp=1576340291001&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-json-stable-stringify%2Fdownload%2Ffast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" @@ -3541,6 +3844,14 @@ find-cache-dir@^3.0.0, find-cache-dir@^3.2.0: make-dir "^3.0.0" pkg-dir "^4.1.0" +find-up@4.1.0, find-up@^4.0.0: + version "4.1.0" + resolved "https://registry.npm.taobao.org/find-up/download/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk= + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + find-up@^1.0.0: version "1.1.2" resolved "https://registry.npm.taobao.org/find-up/download/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" @@ -3556,14 +3867,6 @@ find-up@^3.0.0: dependencies: locate-path "^3.0.0" -find-up@^4.0.0: - version "4.1.0" - resolved "https://registry.npm.taobao.org/find-up/download/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk= - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - findup-sync@3.0.0: version "3.0.0" resolved "https://registry.npm.taobao.org/findup-sync/download/findup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1" @@ -3574,12 +3877,10 @@ findup-sync@3.0.0: micromatch "^3.0.4" resolve-dir "^1.0.1" -flag-icon-css@^3.4.5: - version "3.4.5" - resolved "https://registry.npm.taobao.org/flag-icon-css/download/flag-icon-css-3.4.5.tgz#584d618563034e69cb9a5b7a7c8477ec8c029a49" - integrity sha1-WE1hhWMDTmnLmlt6fIR37IwCmkk= - dependencies: - opencollective-postinstall "2.0.2" +flag-icon-css@^3.4.6: + version "3.4.6" + resolved "https://registry.yarnpkg.com/flag-icon-css/-/flag-icon-css-3.4.6.tgz#7e51099c85648c65f86d9ebb9c0ec6f5d8826714" + integrity sha512-rF69rt19Hr63SRQTiPBzQABaYB20LAgZhDkr/AxqSdgmCIN+tC5PRMz56Y0gxehFXJmdRwv55+GMi7R1fCRTwg== flatted@^2.0.1: version "2.0.1" @@ -3591,10 +3892,10 @@ flatten@^1.0.2: resolved "https://registry.npm.taobao.org/flatten/download/flatten-1.0.3.tgz#c1283ac9f27b368abc1e36d1ff7b04501a30356b" integrity sha1-wSg6yfJ7Noq8HjbR/3sEUBowNWs= -flot@^3.2.13: - version "3.2.13" - resolved "https://registry.npm.taobao.org/flot/download/flot-3.2.13.tgz#f4457fd6042fe4ac4e4e124e7a7c7256e69f5362" - integrity sha1-9EV/1gQv5KxOThJOenxyVuafU2I= +flot@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/flot/-/flot-4.2.0.tgz#25ec79d9c773fff4cb9816e30714bfcaa9ecc702" + integrity sha512-Uy+0hPOpi8X2mvTG2MOnuI8fbQt5mz/vewyoxA5DZXWhYmywZS+PfFnLANb0Os5VXongqKos9ahF+Wu2U4Cp1g== flush-write-stream@^1.0.0: version "1.1.1" @@ -3682,14 +3983,15 @@ from2@^2.1.0: inherits "^2.0.1" readable-stream "^2.0.0" -fs-extra@^8.1.0: - version "8.1.0" - resolved "https://registry.npm.taobao.org/fs-extra/download/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" - integrity sha1-SdQ8RaiM2Wd2aMt74bRu/bjS4cA= +fs-extra@^9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.0.0.tgz#b6afc31036e247b2466dc99c29ae797d5d4580a3" + integrity sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g== dependencies: + at-least-node "^1.0.0" graceful-fs "^4.2.0" - jsonfile "^4.0.0" - universalify "^0.1.0" + jsonfile "^6.0.1" + universalify "^1.0.0" fs-minipass@^2.0.0: version "2.0.0" @@ -3698,6 +4000,13 @@ fs-minipass@^2.0.0: dependencies: minipass "^3.0.0" +fs-minipass@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" + integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== + dependencies: + minipass "^3.0.0" + fs-write-stream-atomic@^1.0.8: version "1.0.10" resolved "https://registry.npm.taobao.org/fs-write-stream-atomic/download/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" @@ -3782,13 +4091,25 @@ get-stdin@^4.0.1: resolved "https://registry.npm.taobao.org/get-stdin/download/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4= -get-stream@^4.0.0: +get-stdin@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-7.0.0.tgz#8d5de98f15171a125c5e516643c7a6d0ea8a96f6" + integrity sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ== + +get-stream@^4.0.0, get-stream@^4.1.0: version "4.1.0" resolved "https://registry.npm.taobao.org/get-stream/download/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" integrity sha1-wbJVV189wh1Zv8ec09K0axw6VLU= dependencies: pump "^3.0.0" +get-stream@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9" + integrity sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw== + dependencies: + pump "^3.0.0" + get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" resolved "https://registry.npm.taobao.org/get-value/download/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" @@ -3821,6 +4142,13 @@ glob@^7.0.0, glob@^7.0.3, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, gl once "^1.3.0" path-is-absolute "^1.0.0" +global-dirs@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-2.0.1.tgz#acdf3bb6685bcd55cb35e8a052266569e9469201" + integrity sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A== + dependencies: + ini "^1.3.5" + global-modules@2.0.0: version "2.0.0" resolved "https://registry.npm.taobao.org/global-modules/download/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" @@ -3882,6 +4210,23 @@ globule@^1.0.0: lodash "~4.17.10" minimatch "~3.0.2" +got@^9.6.0: + version "9.6.0" + resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" + integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== + dependencies: + "@sindresorhus/is" "^0.14.0" + "@szmarczak/http-timer" "^1.1.2" + cacheable-request "^6.0.0" + decompress-response "^3.3.0" + duplexer3 "^0.1.4" + get-stream "^4.1.0" + lowercase-keys "^1.0.1" + mimic-response "^1.0.1" + p-cancelable "^1.0.0" + to-readable-stream "^1.0.0" + url-parse-lax "^3.0.0" + graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2: version "4.2.3" resolved "https://registry.npm.taobao.org/graceful-fs/download/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" @@ -3917,6 +4262,11 @@ has-flag@^3.0.0: resolved "https://registry.npm.taobao.org/has-flag/download/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + has-symbols@^1.0.0, has-symbols@^1.0.1: version "1.0.1" resolved "https://registry.npm.taobao.org/has-symbols/download/has-symbols-1.0.1.tgz?cache=0&sync_timestamp=1573950719586&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-symbols%2Fdownload%2Fhas-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" @@ -3958,6 +4308,11 @@ has-values@^1.0.0: is-number "^3.0.0" kind-of "^4.0.0" +has-yarn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" + integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== + has@^1.0.0, has@^1.0.1, has@^1.0.3: version "1.0.3" resolved "https://registry.npm.taobao.org/has/download/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" @@ -4007,6 +4362,13 @@ hosted-git-info@^2.1.4: resolved "https://registry.npm.taobao.org/hosted-git-info/download/hosted-git-info-2.8.5.tgz#759cfcf2c4d156ade59b0b2dfabddc42a6b9c70c" integrity sha1-dZz88sTRVq3lmwst+r3cQqa5xww= +hosted-git-info@^3.0.2: + version "3.0.4" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.4.tgz#be4973eb1fd2737b11c9c7c19380739bb249f60d" + integrity sha512-4oT62d2jwSDBbLLFLZE+1vPuQ1h8p9wjrJ8Mqx5TjsyWmBMV5B13eJqn8pvluqubLf3cJPTfiYCIwNwDNmzScQ== + dependencies: + lru-cache "^5.1.1" + hpack.js@^2.1.6: version "2.1.6" resolved "https://registry.npm.taobao.org/hpack.js/download/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" @@ -4037,6 +4399,11 @@ html-entities@^1.2.1: resolved "https://registry.npm.taobao.org/html-entities/download/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f" integrity sha1-DfKTUfByEWNRXfueVUPl9u7VFi8= +http-cache-semantics@^4.0.0, http-cache-semantics@^4.0.4: + version "4.1.0" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" + integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== + http-deceiver@^1.2.7: version "1.2.7" resolved "https://registry.npm.taobao.org/http-deceiver/download/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" @@ -4079,6 +4446,15 @@ http-errors@~1.7.2: resolved "https://registry.npm.taobao.org/http-parser-js/download/http-parser-js-0.4.10.tgz#92c9c1374c35085f75db359ec56cc257cbb93fa4" integrity sha1-ksnBN0w1CF912zWexWzCV8u5P6Q= +http-proxy-agent@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" + integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== + dependencies: + "@tootallnate/once" "1" + agent-base "6" + debug "4" + http-proxy-middleware@0.19.1: version "0.19.1" resolved "https://registry.npm.taobao.org/http-proxy-middleware/download/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" @@ -4112,22 +4488,37 @@ https-browserify@^1.0.0: resolved "https://registry.npm.taobao.org/https-browserify/download/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= +https-proxy-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" + integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== + dependencies: + agent-base "6" + debug "4" + +humanize-ms@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" + integrity sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0= + dependencies: + ms "^2.0.0" + icheck-bootstrap@^3.0.1: version "3.0.1" resolved "https://registry.npm.taobao.org/icheck-bootstrap/download/icheck-bootstrap-3.0.1.tgz#60c9c9a71524e1d9dd5bd05167a62fef05cc3a1b" integrity sha1-YMnJpxUk4dndW9BRZ6Yv7wXMOhs= -iconv-lite@0.4.24: +iconv-lite@0.4.24, iconv-lite@~0.4.13: version "0.4.24" resolved "https://registry.npm.taobao.org/iconv-lite/download/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha1-ICK0sl+93CHS9SSXSkdKr+czkIs= dependencies: safer-buffer ">= 2.1.2 < 3" -iconv-lite@^0.5.0: - version "0.5.0" - resolved "https://registry.npm.taobao.org/iconv-lite/download/iconv-lite-0.5.0.tgz#59cdde0a2a297cc2aeb0c6445a195ee89f127550" - integrity sha1-Wc3eCiopfMKusMZEWhle6J8SdVA= +iconv-lite@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.5.1.tgz#b2425d3c7b18f7219f2ca663d103bddb91718d64" + integrity sha512-ONHr16SQvKZNSqjQT9gy5z24Jw+uqfO02/ngBSBoqChZ+W8qXX7GPRa1RoUnzGADw8K63R1BXUMzarCVQBpY8Q== dependencies: safer-buffer ">= 2.1.2 < 3" @@ -4148,6 +4539,13 @@ iferr@^0.1.5: resolved "https://registry.npm.taobao.org/iferr/download/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= +ignore-walk@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37" + integrity sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw== + dependencies: + minimatch "^3.0.4" + imagesloaded@^4.1.4: version "4.1.4" resolved "https://registry.npm.taobao.org/imagesloaded/download/imagesloaded-4.1.4.tgz#1376efcd162bb768c34c3727ac89cc04051f3cc7" @@ -4190,6 +4588,11 @@ import-from@^2.1.0: dependencies: resolve-from "^3.0.0" +import-lazy@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" + integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= + import-local@2.0.0, import-local@^2.0.0: version "2.0.0" resolved "https://registry.npm.taobao.org/import-local/download/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" @@ -4253,15 +4656,15 @@ inherits@2.0.3: resolved "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= -ini@^1.3.4, ini@^1.3.5: +ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: version "1.3.5" resolved "https://registry.npm.taobao.org/ini/download/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" integrity sha1-7uJfVtscnsYIXgwid4CD9Zar+Sc= -inputmask@^4.0.9: - version "4.0.9" - resolved "https://registry.npm.taobao.org/inputmask/download/inputmask-4.0.9.tgz#a60fc46cee52a35a0ba5f50b5cca3a6733ece18c" - integrity sha1-pg/EbO5So1oLpfULXMo6ZzPs4Yw= +inputmask@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/inputmask/-/inputmask-5.0.3.tgz#f6758de84b7a67c3c246f520c5f3e2c383b3fd68" + integrity sha512-v1l5IoJK6NE8TapI2g6n/y1/ksMwyVLkkaIS6VPTkdvpgEITLzDtSi7n9Jpp471hL2DdJlae9HpMnFmTpf5VXA== internal-ip@^4.3.0: version "4.3.0" @@ -4293,17 +4696,17 @@ invert-kv@^2.0.0: resolved "https://registry.npm.taobao.org/invert-kv/download/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" integrity sha1-c5P1r6Weyf9fZ6J2INEcIm4+7AI= -ion-rangeslider@^2.3.0: +ion-rangeslider@^2.3.1: version "2.3.1" - resolved "https://registry.npm.taobao.org/ion-rangeslider/download/ion-rangeslider-2.3.1.tgz#92ade52cb56fc30b9162d0483ff02b6f9ed237c2" - integrity sha1-kq3lLLVvwwuRYtBIP/Arb57SN8I= + resolved "https://registry.yarnpkg.com/ion-rangeslider/-/ion-rangeslider-2.3.1.tgz#92ade52cb56fc30b9162d0483ff02b6f9ed237c2" + integrity sha512-6V+24FD13/feliI485gnRHZYD9Ev64M5NAFTxnVib516ATHa9PlXQrC+nOiPngouRYTCLPJyokAJEi3e1Umi5g== ip-regex@^2.1.0: version "2.1.0" resolved "https://registry.npm.taobao.org/ip-regex/download/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= -ip@^1.1.0, ip@^1.1.5: +ip@1.1.5, ip@^1.1.0, ip@^1.1.5: version "1.1.5" resolved "https://registry.npm.taobao.org/ip/download/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= @@ -4374,6 +4777,13 @@ is-callable@^1.1.4, is-callable@^1.1.5: resolved "https://registry.npm.taobao.org/is-callable/download/is-callable-1.1.5.tgz#f7e46b596890456db74e7f6e976cb3273d06faab" integrity sha1-9+RrWWiQRW23Tn9ul2yzJz0G+qs= +is-ci@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" + integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== + dependencies: + ci-info "^2.0.0" + is-color-stop@^1.0.0: version "1.1.0" resolved "https://registry.npm.taobao.org/is-color-stop/download/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" @@ -4464,6 +4874,11 @@ is-fullwidth-code-point@^2.0.0: resolved "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + is-glob@^3.1.0: version "3.1.0" resolved "https://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" @@ -4478,6 +4893,24 @@ is-glob@^4.0.0: dependencies: is-extglob "^2.1.1" +is-installed-globally@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.3.1.tgz#679afef819347a72584617fd19497f010b8ed35f" + integrity sha512-oiEcGoQbGc+3/iijAijrK2qFpkNoNjsHOm/5V5iaeydyrS/hnwaRCEgH5cpW0P3T1lSjV5piB7S5b5lEugNLhg== + dependencies: + global-dirs "^2.0.1" + is-path-inside "^3.0.1" + +is-lambda@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" + integrity sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU= + +is-npm@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-4.0.0.tgz#c90dd8380696df87a7a6d823c20d0b12bbe3c84d" + integrity sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig== + is-number@^3.0.0: version "3.0.0" resolved "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" @@ -4490,6 +4923,11 @@ is-obj@^1.0.0: resolved "https://registry.npm.taobao.org/is-obj/download/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= +is-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== + is-path-cwd@^2.0.0: version "2.2.0" resolved "https://registry.npm.taobao.org/is-path-cwd/download/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" @@ -4509,6 +4947,11 @@ is-path-inside@^2.1.0: dependencies: path-is-inside "^1.0.2" +is-path-inside@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.2.tgz#f5220fc82a3e233757291dddc9c5877f2a1f3017" + integrity sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg== + is-plain-obj@^1.0.0: version "1.1.0" resolved "https://registry.npm.taobao.org/is-plain-obj/download/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" @@ -4552,7 +4995,7 @@ is-symbol@^1.0.2: dependencies: has-symbols "^1.0.1" -is-typedarray@~1.0.0: +is-typedarray@^1.0.0, is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.npm.taobao.org/is-typedarray/download/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= @@ -4572,6 +5015,11 @@ is-wsl@^1.1.0: resolved "https://registry.npm.taobao.org/is-wsl/download/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= +is-yarn-global@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" + integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== + isarray@0.0.1: version "0.0.1" resolved "https://registry.npm.taobao.org/isarray/download/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" @@ -4612,6 +5060,11 @@ jest-worker@^24.9.0: merge-stream "^2.0.0" supports-color "^6.1.0" +jju@^1.1.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/jju/-/jju-1.4.0.tgz#a3abe2718af241a2b2904f84a625970f389ae32a" + integrity sha1-o6vicYryQaKykE+EpiWXDzia4yo= + jquery-knob-chif@^1.2.13: version "1.2.13" resolved "https://registry.npm.taobao.org/jquery-knob-chif/download/jquery-knob-chif-1.2.13.tgz#5f1e462ef3745d27a9fd66ce1141fe82b44a5762" @@ -4664,7 +5117,7 @@ js-base64@^2.1.8: resolved "https://registry.npm.taobao.org/js-tokens/download/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha1-GSA/tZmR35jjoocFDUZHzerzJJk= -js-yaml@^3.13.1: +js-yaml@^3.12.0, js-yaml@^3.13.1: version "3.13.1" resolved "https://registry.npm.taobao.org/js-yaml/download/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" integrity sha1-r/FRswv9+o5J4F2iLnQV6d+jeEc= @@ -4692,11 +5145,28 @@ jsgrid@^1.5.3: resolved "https://registry.npm.taobao.org/jsgrid/download/jsgrid-1.5.3.tgz#b15fc426483153bee2b6b567312f675d92834a0d" integrity sha1-sV/EJkgxU77itrVnMS9nXZKDSg0= +json-buffer@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" + integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= + json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: version "1.0.2" resolved "https://registry.npm.taobao.org/json-parse-better-errors/download/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" integrity sha1-u4Z8+zRQ5pEHwTHRxRS6s9yLyqk= +json-parse-even-better-errors@^2.0.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.2.0.tgz#304d29aa54bb01156a1328c454034ff0ac8a7bf4" + integrity sha512-2tLgY7LRNZ9Hd6gmCuBG5/OjRHQpSgJQqJoYyLLOhUgn8LdOYrjaZLcxkWnDads+AD/haWWioPNziXQcgvQJ/g== + +json-parse-helpfulerror@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/json-parse-helpfulerror/-/json-parse-helpfulerror-1.0.3.tgz#13f14ce02eed4e981297b64eb9e3b932e2dd13dc" + integrity sha1-E/FM4C7tTpgSl7ZOueO5MuLdE9w= + dependencies: + jju "^1.1.0" + json-schema-traverse@^0.4.1: version "0.4.1" resolved "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" @@ -4731,13 +5201,27 @@ json5@^2.1.0: dependencies: minimist "^1.2.0" -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.npm.taobao.org/jsonfile/download/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= +json5@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.2.tgz#43ef1f0af9835dd624751a6b7fa48874fb2d608e" + integrity sha512-MoUOQ4WdiN3yxhm7NEVJSJrieAo5hNSLQ5sj05OTRHPL9HOBy8u4Bu88jsC1jvqAdN+E1bJmsUcZH+1HQxliqQ== + dependencies: + minimist "^1.2.5" + +jsonfile@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.0.1.tgz#98966cba214378c8c84b82e085907b40bf614179" + integrity sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg== + dependencies: + universalify "^1.0.0" optionalDependencies: graceful-fs "^4.1.6" +jsonparse@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" + integrity sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA= + jsprim@^1.2.2: version "1.4.1" resolved "https://registry.npm.taobao.org/jsprim/download/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" @@ -4748,16 +5232,23 @@ jsprim@^1.2.2: json-schema "0.2.3" verror "1.10.0" -jszip@^3.2.2: - version "3.2.2" - resolved "https://registry.npm.taobao.org/jszip/download/jszip-3.2.2.tgz#b143816df7e106a9597a94c77493385adca5bd1d" - integrity sha1-sUOBbffhBqlZepTHdJM4WtylvR0= +jszip@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/jszip/-/jszip-3.3.0.tgz#29d72c21a54990fa885b11fc843db320640d5271" + integrity sha512-EJ9k766htB1ZWnsV5ZMDkKLgA+201r/ouFF8R2OigVjVdcm2rurcBrrdXaeqBJbqnUVMko512PYmlncBKE1Huw== dependencies: lie "~3.3.0" pako "~1.0.2" readable-stream "~2.3.6" set-immediate-shim "~1.0.1" +keyv@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" + integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== + dependencies: + json-buffer "3.0.0" + killable@^1.0.1: version "1.0.1" resolved "https://registry.npm.taobao.org/killable/download/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" @@ -4787,6 +5278,11 @@ kind-of@^6.0.0, kind-of@^6.0.2: resolved "https://registry.npm.taobao.org/kind-of/download/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" integrity sha1-ARRrNqYhjmTljzqNZt5df8b20FE= +kleur@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + last-call-webpack-plugin@^3.0.0: version "3.0.0" resolved "https://registry.npm.taobao.org/last-call-webpack-plugin/download/last-call-webpack-plugin-3.0.0.tgz#9742df0e10e3cf46e5c0381c2de90d3a7a2d7555" @@ -4795,6 +5291,13 @@ last-call-webpack-plugin@^3.0.0: lodash "^4.17.5" webpack-sources "^1.1.0" +latest-version@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" + integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== + dependencies: + package-json "^6.3.0" + lcid@^1.0.0: version "1.0.0" resolved "https://registry.npm.taobao.org/lcid/download/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" @@ -4829,6 +5332,15 @@ levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" +libnpmconfig@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/libnpmconfig/-/libnpmconfig-1.2.1.tgz#c0c2f793a74e67d4825e5039e7a02a0044dfcbc0" + integrity sha512-9esX8rTQAHqarx6qeZqmGQKBNZR5OIbl/Ayr0qQDy3oXja2iFVQQI81R6GZ2a02bSNZ9p3YOGX1O6HHCb1X7kA== + dependencies: + figgy-pudding "^3.5.1" + find-up "^3.0.0" + ini "^1.3.5" + lie@~3.3.0: version "3.3.0" resolved "https://registry.npm.taobao.org/lie/download/lie-3.3.0.tgz#dcf82dee545f46074daf200c7c1c5a08e0f40f6a" @@ -4935,7 +5447,7 @@ lodash.uniq@^4.5.0: resolved "https://registry.npm.taobao.org/lodash.uniq/download/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= -lodash@^4.0.0, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.5, lodash@~4.17.10: +lodash@^4.0.0, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.5, lodash@^4.2.0, lodash@~4.17.10: version "4.17.15" resolved "https://registry.npm.taobao.org/lodash/download/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha1-tEf2ZwoEVbv+7dETku/zMOoJdUg= @@ -4960,6 +5472,16 @@ loud-rejection@^1.0.0: currently-unhandled "^0.4.1" signal-exit "^3.0.0" +lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" + integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== + +lowercase-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" + integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== + lru-cache@^4.0.1: version "4.1.5" resolved "https://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" @@ -4997,6 +5519,27 @@ make-dir@^3.0.0: dependencies: semver "^6.0.0" +make-fetch-happen@^8.0.2: + version "8.0.4" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-8.0.4.tgz#d3451baf5b43d6230c4eea7009c5aa6b6bccf9d4" + integrity sha512-hIFoqGq1db0QMiy/Atr/pI1Rs4rDV+ZdGSey2SQyF3KK3u1z4aj9mS5UdNnZkdQpA+H3pGn0J3KlEwsi2x4EqA== + dependencies: + agentkeepalive "^4.1.0" + cacache "^15.0.0" + http-cache-semantics "^4.0.4" + http-proxy-agent "^4.0.1" + https-proxy-agent "^5.0.0" + is-lambda "^1.0.1" + lru-cache "^5.1.1" + minipass "^3.0.0" + minipass-collect "^1.0.2" + minipass-fetch "^1.1.2" + minipass-flush "^1.0.5" + minipass-pipeline "^1.2.2" + promise-retry "^1.1.1" + socks-proxy-agent "^5.0.0" + ssri "^8.0.0" + mamacro@^0.0.3: version "0.0.3" resolved "https://registry.npm.taobao.org/mamacro/download/mamacro-0.0.3.tgz#ad2c9576197c9f1abf308d0787865bd975a3f3e4" @@ -5162,6 +5705,11 @@ mimic-fn@^2.0.0: resolved "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs= +mimic-response@^1.0.0, mimic-response@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" + integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== + mini-css-extract-plugin@^0.8.0: version "0.8.2" resolved "https://registry.npm.taobao.org/mini-css-extract-plugin/download/mini-css-extract-plugin-0.8.2.tgz?cache=0&sync_timestamp=1576856580721&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmini-css-extract-plugin%2Fdownload%2Fmini-css-extract-plugin-0.8.2.tgz#a875e169beb27c88af77dd962771c9eedc3da161" @@ -5199,6 +5747,11 @@ minimist@^1.1.3, minimist@^1.2.0: resolved "https://registry.npm.taobao.org/minimist/download/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= +minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + minipass-collect@^1.0.2: version "1.0.2" resolved "https://registry.npm.taobao.org/minipass-collect/download/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" @@ -5206,6 +5759,18 @@ minipass-collect@^1.0.2: dependencies: minipass "^3.0.0" +minipass-fetch@^1.1.2, minipass-fetch@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-1.2.1.tgz#1b97ecb559be56b09812d45b2e9509f1f59ece2f" + integrity sha512-ssHt0dkljEDaKmTgQ04DQgx2ag6G2gMPxA5hpcsoeTbfDgRf2fC2gNSRc6kISjD7ckCpHwwQvXxuTBK8402fXg== + dependencies: + minipass "^3.1.0" + minipass-pipeline "^1.2.2" + minipass-sized "^1.0.3" + minizlib "^2.0.0" + optionalDependencies: + encoding "^0.1.12" + minipass-flush@^1.0.5: version "1.0.5" resolved "https://registry.npm.taobao.org/minipass-flush/download/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" @@ -5213,6 +5778,14 @@ minipass-flush@^1.0.5: dependencies: minipass "^3.0.0" +minipass-json-stream@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz#7edbb92588fbfc2ff1db2fc10397acb7b6b44aa7" + integrity sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg== + dependencies: + jsonparse "^1.3.1" + minipass "^3.0.0" + minipass-pipeline@^1.2.2: version "1.2.2" resolved "https://registry.npm.taobao.org/minipass-pipeline/download/minipass-pipeline-1.2.2.tgz#3dcb6bb4a546e32969c7ad710f2c79a86abba93a" @@ -5220,13 +5793,28 @@ minipass-pipeline@^1.2.2: dependencies: minipass "^3.0.0" -minipass@^3.0.0, minipass@^3.1.1: +minipass-sized@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/minipass-sized/-/minipass-sized-1.0.3.tgz#70ee5a7c5052070afacfbc22977ea79def353b70" + integrity sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g== + dependencies: + minipass "^3.0.0" + +minipass@^3.0.0, minipass@^3.0.1, minipass@^3.1.0, minipass@^3.1.1: version "3.1.1" resolved "https://registry.npm.taobao.org/minipass/download/minipass-3.1.1.tgz#7607ce778472a185ad6d89082aa2070f79cedcd5" integrity sha1-dgfOd4RyoYWtbYkIKqIHD3nO3NU= dependencies: yallist "^4.0.0" +minizlib@^2.0.0, minizlib@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.0.tgz#fd52c645301ef09a63a2c209697c294c6ce02cf3" + integrity sha512-EzTZN/fjSvifSX0SlqUERCN39o6T40AMarPbv0MrarSFtIITCBh7bi+dU8nxGFHuqs9jdIAeoYoKuQAAASsPPA== + dependencies: + minipass "^3.0.0" + yallist "^4.0.0" + mississippi@^3.0.0: version "3.0.0" resolved "https://registry.npm.taobao.org/mississippi/download/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" @@ -5258,6 +5846,11 @@ mixin-deep@^1.2.0: dependencies: minimist "0.0.8" +mkdirp@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.3.tgz#4cf2e30ad45959dddea53ad97d518b6c8205e1ea" + integrity sha512-6uCP4Qc0sWsgMLy1EOqqS/3rjDHOEnsStVr/4vtAIK2Y5i2kA7lFFejYrpIyiN9w0pYf4ckeCYT9f1r1P9KX5g== + moment-timezone@^0.5.11: version "0.5.27" resolved "https://registry.npm.taobao.org/moment-timezone/download/moment-timezone-0.5.27.tgz#73adec8139b6fe30452e78f210f27b1f346b8877" @@ -5292,7 +5885,7 @@ ms@2.1.1: resolved "https://registry.npm.taobao.org/ms/download/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" integrity sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo= -ms@^2.1.1: +ms@^2.0.0, ms@^2.1.1: version "2.1.2" resolved "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk= @@ -5342,6 +5935,11 @@ neo-async@^2.5.0, neo-async@^2.6.1: resolved "https://registry.npm.taobao.org/neo-async/download/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" integrity sha1-rCetpmFn+ohJpq3dg39rGJrSCBw= +nested-error-stacks@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/nested-error-stacks/-/nested-error-stacks-2.0.1.tgz#d2cc9fc5235ddb371fc44d506234339c8e4b0a4b" + integrity sha512-SrQrok4CATudVzBS7coSz26QRSmlK9TzzoFbeKfcPBUFPjcQM9Rqvr/DlJkOrwI/0KcgvMub1n1g5Jt9EgRn4A== + next-tick@~1.0.0: version "1.0.0" resolved "https://registry.npm.taobao.org/next-tick/download/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" @@ -5352,6 +5950,14 @@ nice-try@^1.0.4: resolved "https://registry.npm.taobao.org/nice-try/download/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" integrity sha1-ozeKdpbOfSI+iPybdkvX7xCJ42Y= +node-alias@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/node-alias/-/node-alias-1.0.4.tgz#1f1b916b56b9ea241c0135f97ced6940f556f292" + integrity sha1-HxuRa1a56iQcATX5fO1pQPVW8pI= + dependencies: + chalk "^1.1.1" + lodash "^4.2.0" + node-forge@0.9.0: version "0.9.0" resolved "https://registry.npm.taobao.org/node-forge/download/node-forge-0.9.0.tgz#d624050edbb44874adca12bb9a52ec63cb782579" @@ -5483,6 +6089,99 @@ normalize-url@^3.0.0: resolved "https://registry.npm.taobao.org/normalize-url/download/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" integrity sha1-suHE3E98bVd0PfczpPWXjRhlBVk= +normalize-url@^4.1.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" + integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== + +npm-bundled@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.1.tgz#1edd570865a94cdb1bc8220775e29466c9fb234b" + integrity sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA== + dependencies: + npm-normalize-package-bin "^1.0.1" + +npm-check-updates@^4.0.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/npm-check-updates/-/npm-check-updates-4.1.1.tgz#2c18837f43161fa63d328e78ce905133b8da5ac0" + integrity sha512-O1LuwX8hB06+fCEHJ4cOUB87fPU44KDAo0X5RXgGsgU0xaQRqaW3rZtdcuFC7nOnJYVafn93RTl9HY4cq72C8g== + dependencies: + chalk "^3.0.0" + cint "^8.2.1" + cli-table "^0.3.1" + commander "^5.0.0" + fast-diff "^1.2.0" + find-up "4.1.0" + get-stdin "^7.0.0" + json-parse-helpfulerror "^1.0.3" + libnpmconfig "^1.2.1" + lodash "^4.17.15" + node-alias "^1.0.4" + p-map "^4.0.0" + pacote "^11.1.4" + progress "^2.0.3" + prompts "^2.3.2" + rc-config-loader "^3.0.0" + requireg "^0.2.2" + semver "^7.1.3" + semver-utils "^1.1.4" + spawn-please "^0.3.0" + update-notifier "^4.1.0" + +npm-install-checks@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-4.0.0.tgz#a37facc763a2fde0497ef2c6d0ac7c3fbe00d7b4" + integrity sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w== + dependencies: + semver "^7.1.1" + +npm-normalize-package-bin@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" + integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== + +npm-package-arg@^8.0.0, npm-package-arg@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-8.0.1.tgz#9d76f8d7667b2373ffda60bb801a27ef71e3e270" + integrity sha512-/h5Fm6a/exByzFSTm7jAyHbgOqErl9qSNJDQF32Si/ZzgwT2TERVxRxn3Jurw1wflgyVVAxnFR4fRHPM7y1ClQ== + dependencies: + hosted-git-info "^3.0.2" + semver "^7.0.0" + validate-npm-package-name "^3.0.0" + +npm-packlist@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-2.1.1.tgz#08806a1df79acdc43d02d20c83a3d5472d96c90c" + integrity sha512-95TSDvGwujIhqfSpIiRRLodEF+y6mJMopuZdahoGzqtRDFZXGav46S0p6ngeWaiAkb5R72w6eVARhzej0HvZeQ== + dependencies: + glob "^7.1.6" + ignore-walk "^3.0.3" + npm-bundled "^1.1.1" + npm-normalize-package-bin "^1.0.1" + +npm-pick-manifest@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-6.0.0.tgz#bfde7abe95f2670aed1629a3c18245ccb3cc2eb8" + integrity sha512-PdJpXMvjqt4nftNEDpCgjBUF8yI3Q3MyuAmVB9nemnnCg32F4BPL/JFBfdj8DubgHCYUFQhtLWmBPvdsFtjWMg== + dependencies: + npm-install-checks "^4.0.0" + npm-package-arg "^8.0.0" + semver "^7.0.0" + +npm-registry-fetch@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-8.0.0.tgz#65bb51dd2b9634b8363019aac9c76c003e5c5eaf" + integrity sha512-975WwLvZjX97y9UWWQ8nAyr7bw02s9xKPHqvEm5T900LQsB1HXb8Gb9ebYtCBLSX+K8gSOrO5KS/9yV/naLZmQ== + dependencies: + "@npmcli/ci-detect" "^1.0.0" + lru-cache "^5.1.1" + make-fetch-happen "^8.0.2" + minipass "^3.0.0" + minipass-fetch "^1.1.2" + minipass-json-stream "^1.0.1" + minizlib "^2.0.0" + npm-package-arg "^8.0.0" + npm-run-path@^2.0.0: version "2.0.2" resolved "https://registry.npm.taobao.org/npm-run-path/download/npm-run-path-2.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnpm-run-path%2Fdownload%2Fnpm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" @@ -5622,11 +6321,6 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: dependencies: wrappy "1" -opencollective-postinstall@2.0.2: - version "2.0.2" - resolved "https://registry.npm.taobao.org/opencollective-postinstall/download/opencollective-postinstall-2.0.2.tgz#5657f1bede69b6e33a45939b061eb53d3c6c3a89" - integrity sha1-Vlfxvt5ptuM6RZObBh61PTxsOok= - opn@^5.5.0: version "5.5.0" resolved "https://registry.npm.taobao.org/opn/download/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" @@ -5700,10 +6394,15 @@ osenv@0: os-homedir "^1.0.0" os-tmpdir "^1.0.0" -overlayscrollbars@^1.10.0: - version "1.10.2" - resolved "https://registry.npm.taobao.org/overlayscrollbars/download/overlayscrollbars-1.10.2.tgz#7eaa04a9b6f17432ada9ae0e604517755544b33b" - integrity sha1-fqoEqbbxdDKtqa4OYEUXdVVEszs= +overlayscrollbars@^1.11.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/overlayscrollbars/-/overlayscrollbars-1.11.0.tgz#374a14f37b78214e0166db50c1a489b6af53eddb" + integrity sha512-Wdzzfdta5/5Tc77FoibH14Cr34r7op0jh3eI9z1zvz9K4YiRIzNxvNIh3Rbezr8cs4Bn7NTNKzT8OHsJB58CxQ== + +p-cancelable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" + integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== p-defer@^1.0.0: version "1.0.0" @@ -5753,6 +6452,13 @@ p-map@^3.0.0: dependencies: aggregate-error "^3.0.0" +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== + dependencies: + aggregate-error "^3.0.0" + p-retry@^3.0.1: version "3.0.1" resolved "https://registry.npm.taobao.org/p-retry/download/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328" @@ -5765,6 +6471,45 @@ p-try@^2.0.0: resolved "https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha1-yyhoVA4xPWHeWPr741zpAE1VQOY= +package-json@^6.3.0: + version "6.5.0" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0" + integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ== + dependencies: + got "^9.6.0" + registry-auth-token "^4.0.0" + registry-url "^5.0.0" + semver "^6.2.0" + +pacote@^11.1.4: + version "11.1.4" + resolved "https://registry.yarnpkg.com/pacote/-/pacote-11.1.4.tgz#5529a453c59881b7f059da8af6903b0f79c124b2" + integrity sha512-eUGJvSSpWFZKn3z8gig/HgnBmUl6gIWByIIaHzSyEr3tOWX0w8tFEADXtpu8HGv5E0ShCeTP6enRq8iHKCHSvw== + dependencies: + "@npmcli/git" "^2.0.1" + "@npmcli/installed-package-contents" "^1.0.5" + "@npmcli/promise-spawn" "^1.1.0" + cacache "^15.0.0" + chownr "^1.1.4" + fs-minipass "^2.1.0" + infer-owner "^1.0.4" + lru-cache "^5.1.1" + minipass "^3.0.1" + minipass-fetch "^1.2.1" + mkdirp "^1.0.3" + npm-package-arg "^8.0.1" + npm-packlist "^2.1.0" + npm-pick-manifest "^6.0.0" + npm-registry-fetch "^8.0.0" + promise-inflight "^1.0.1" + promise-retry "^1.1.1" + read-package-json-fast "^1.1.3" + rimraf "^2.7.1" + semver "^7.1.3" + ssri "^8.0.0" + tar "^6.0.1" + which "^2.0.2" + pako@^0.2.5: version "0.2.9" resolved "https://registry.npm.taobao.org/pako/download/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" @@ -5890,7 +6635,7 @@ path-key@^2.0.0, path-key@^2.0.1: resolved "https://registry.npm.taobao.org/path-key/download/path-key-2.0.1.tgz?cache=0&sync_timestamp=1574441322626&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-key%2Fdownload%2Fpath-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= -path-parse@^1.0.6: +path-parse@^1.0.5, path-parse@^1.0.6: version "1.0.6" resolved "https://registry.npm.taobao.org/path-parse/download/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" integrity sha1-1i27VnlAXXLEc37FhgDp3c8G0kw= @@ -5935,12 +6680,12 @@ pdfkit@>=0.8.1, pdfkit@^0.11.0: linebreak "^1.0.2" png-js "^1.0.0" -pdfmake@^0.1.62: - version "0.1.63" - resolved "https://registry.npm.taobao.org/pdfmake/download/pdfmake-0.1.63.tgz#0001ecffe4ab30843485ce08744393315721e3f1" - integrity sha1-AAHs/+SrMIQ0hc4IdEOTMVch4/E= +pdfmake@^0.1.65: + version "0.1.65" + resolved "https://registry.yarnpkg.com/pdfmake/-/pdfmake-0.1.65.tgz#09c4cf796809ec5fce789343560a36780ff47e37" + integrity sha512-MgzRyiKSP3IEUH7vm4oj3lpikmk5oCD9kYxiJM6Z2Xf6CP9EcikeSDey2rGd4WVvn79Y0TGqz2+to8FtWP8MrA== dependencies: - iconv-lite "^0.5.0" + iconv-lite "^0.5.1" linebreak "^1.0.2" pdfkit "^0.11.0" svg-to-pdfkit "^0.1.8" @@ -5998,10 +6743,10 @@ pnp-webpack-plugin@^1.5.0: dependencies: ts-pnp "^1.1.2" -popper.js@>=1.10, popper.js@^1.14.3, popper.js@^1.16.0: - version "1.16.0" - resolved "https://registry.npm.taobao.org/popper.js/download/popper.js-1.16.0.tgz#2e1816bcbbaa518ea6c2e15a466f4cb9c6e2fbb3" - integrity sha1-LhgWvLuqUY6mwuFaRm9Mucbi+7M= +popper.js@>=1.10, popper.js@^1.14.3, popper.js@^1.16.1: + version "1.16.1" + resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.16.1.tgz#2a223cb3dc7b6213d740e40372be40de43e65b1b" + integrity sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ== portfinder@^1.0.25: version "1.0.25" @@ -6672,6 +7417,11 @@ prepend-http@^1.0.0: resolved "https://registry.npm.taobao.org/prepend-http/download/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= +prepend-http@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" + integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= + private@^0.1.6: version "0.1.8" resolved "https://registry.npm.taobao.org/private/download/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" @@ -6687,11 +7437,32 @@ process@^0.11.10: resolved "https://registry.npm.taobao.org/process/download/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= +progress@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + promise-inflight@^1.0.1: version "1.0.1" resolved "https://registry.npm.taobao.org/promise-inflight/download/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= +promise-retry@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-1.1.1.tgz#6739e968e3051da20ce6497fb2b50f6911df3d6d" + integrity sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0= + dependencies: + err-code "^1.0.0" + retry "^0.10.0" + +prompts@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.3.2.tgz#480572d89ecf39566d2bd3fe2c9fccb7c4c0b068" + integrity sha512-Q06uKs2CkNYVID0VqwfAl9mipo99zkBv/n2JtWY89Yxa3ZabWSrs0e2KTudKVa3peLUvYXMefDqIleLPVUBZMA== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.4" + proxy-addr@~2.0.5: version "2.0.5" resolved "https://registry.npm.taobao.org/proxy-addr/download/proxy-addr-2.0.5.tgz#34cbd64a2d81f4b1fd21e76f9f06c8a45299ee34" @@ -6767,6 +7538,13 @@ punycode@^2.1.0: resolved "https://registry.npm.taobao.org/punycode/download/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha1-tYsBCsQMIsVldhbI0sLALHv0eew= +pupa@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pupa/-/pupa-2.0.1.tgz#dbdc9ff48ffbea4a26a069b6f9f7abb051008726" + integrity sha512-hEJH0s8PXLY/cdXh66tNEQGndDrIKNqNC5xmrysZy3i5C3oEoLna7YAOad+7u125+zH1HNXUmGEkrhb3c2VriA== + dependencies: + escape-goat "^2.0.0" + q@^1.1.2: version "1.5.1" resolved "https://registry.npm.taobao.org/q/download/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" @@ -6859,6 +7637,26 @@ raw-body@2.4.0: iconv-lite "0.4.24" unpipe "1.0.0" +rc-config-loader@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/rc-config-loader/-/rc-config-loader-3.0.0.tgz#1484ed55d6fb8b21057699c8426370f7529c52a7" + integrity sha512-bwfUSB37TWkHfP+PPjb/x8BUjChFmmBK44JMfVnU7paisWqZl/o5k7ttCH+EQLnrbn2Aq8Fo1LAsyUiz+WF4CQ== + dependencies: + debug "^4.1.1" + js-yaml "^3.12.0" + json5 "^2.1.1" + require-from-string "^2.0.2" + +rc@^1.2.8, rc@~1.2.7: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + read-cache@^1.0.0: version "1.0.0" resolved "https://registry.npm.taobao.org/read-cache/download/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" @@ -6866,6 +7664,14 @@ read-cache@^1.0.0: dependencies: pify "^2.3.0" +read-package-json-fast@^1.1.1, read-package-json-fast@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/read-package-json-fast/-/read-package-json-fast-1.1.3.tgz#3b78464ea8f3c4447f3358635390b6946dc0737e" + integrity sha512-MmFqiyfCXV2Dmm4jH24DEGhxdkUDFivJQj4oPZQPOKywxR7HWBE6WnMWDAapfFHi3wm1b+mhR+XHlUH0CL8axg== + dependencies: + json-parse-even-better-errors "^2.0.1" + npm-normalize-package-bin "^1.0.1" + read-pkg-up@^1.0.1: version "1.0.1" resolved "https://registry.npm.taobao.org/read-pkg-up/download/read-pkg-up-1.0.1.tgz?cache=0&sync_timestamp=1575620436254&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fread-pkg-up%2Fdownload%2Fread-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" @@ -6905,6 +7711,16 @@ readable-stream@^3.0.6: string_decoder "^1.1.1" util-deprecate "^1.0.1" +readdir-scoped-modules@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz#8d45407b4f870a0dcaebc0e28670d18e74514309" + integrity sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw== + dependencies: + debuglog "^1.0.1" + dezalgo "^1.0.0" + graceful-fs "^4.1.2" + once "^1.3.0" + readdirp@^2.2.1: version "2.2.1" resolved "https://registry.npm.taobao.org/readdirp/download/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" @@ -6979,6 +7795,20 @@ regexpu-core@^4.6.0: unicode-match-property-ecmascript "^1.0.4" unicode-match-property-value-ecmascript "^1.1.0" +registry-auth-token@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.1.1.tgz#40a33be1e82539460f94328b0f7f0f84c16d9479" + integrity sha512-9bKS7nTl9+/A1s7tnPeGrUpRcVY+LUh7bfFgzpndALdPfXQBfQV77rQVtqgUV3ti4vc/Ik81Ex8UJDWDQ12zQA== + dependencies: + rc "^1.2.8" + +registry-url@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009" + integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw== + dependencies: + rc "^1.2.8" + regjsgen@^0.5.0: version "0.5.1" resolved "https://registry.npm.taobao.org/regjsgen/download/regjsgen-0.5.1.tgz#48f0bf1a5ea205196929c0d9798b42d1ed98443c" @@ -7044,6 +7874,11 @@ require-directory@^2.1.1: resolved "https://registry.npm.taobao.org/require-directory/download/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== + require-main-filename@^1.0.1: version "1.0.1" resolved "https://registry.npm.taobao.org/require-main-filename/download/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" @@ -7054,6 +7889,15 @@ require-main-filename@^2.0.0: resolved "https://registry.npm.taobao.org/require-main-filename/download/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" integrity sha1-0LMp7MfMD2Fkn2IhW+aa9UqomJs= +requireg@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/requireg/-/requireg-0.2.2.tgz#437e77a5316a54c9bcdbbf5d1f755fe093089830" + integrity sha512-nYzyjnFcPNGR3lx9lwPPPnuQxv6JWEZd2Ci0u9opN7N5zUEPIhY/GbL3vMGOr2UXwEg9WwSyV9X9Y/kLFgPsOg== + dependencies: + nested-error-stacks "~2.0.1" + rc "~1.2.7" + resolve "~1.7.1" + requires-port@^1.0.0: version "1.0.0" resolved "https://registry.npm.taobao.org/requires-port/download/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" @@ -7101,6 +7945,20 @@ resolve@^1.1.5, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.12.0, resolve@^1.3.2 dependencies: path-parse "^1.0.6" +resolve@~1.7.1: + version "1.7.1" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.7.1.tgz#aadd656374fd298aee895bc026b8297418677fd3" + integrity sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw== + dependencies: + path-parse "^1.0.5" + +responselike@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" + integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= + dependencies: + lowercase-keys "^1.0.0" + restructure@^0.5.3: version "0.5.4" resolved "https://registry.npm.taobao.org/restructure/download/restructure-0.5.4.tgz#f54e7dd563590fb34fd6bf55876109aeccb28de8" @@ -7113,6 +7971,11 @@ ret@~0.1.10: resolved "https://registry.npm.taobao.org/ret/download/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" integrity sha1-uKSCXVvbH8P29Twrwz+BOIaBx7w= +retry@^0.10.0: + version "0.10.1" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.10.1.tgz#e76388d217992c252750241d3d3956fed98d8ff4" + integrity sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q= + retry@^0.12.0: version "0.12.0" resolved "https://registry.npm.taobao.org/retry/download/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" @@ -7240,10 +8103,10 @@ select-hose@^2.0.0: resolved "https://registry.npm.taobao.org/select-hose/download/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= -select2@^4.0.12: - version "4.0.12" - resolved "https://registry.yarnpkg.com/select2/-/select2-4.0.12.tgz#9c0492d4d06948f2bd079f6e14718a41c7eaa60e" - integrity sha512-mbXC05AvjCboZcRlgJqN4mlI2qmqshpRC76sKNAdxS1lPLOh2m/NTyfL6xsvGoY6eIhjaya4dbumN99MudVQ2w== +select2@^4.0.13: + version "4.0.13" + resolved "https://registry.yarnpkg.com/select2/-/select2-4.0.13.tgz#0dbe377df3f96167c4c1626033e924372d8ef44d" + integrity sha512-1JeB87s6oN/TDxQQYCvS5EFoQyvV6eYMZZ0AeA4tdFDYWN3BAGZ8npr17UBFddU0lgAt3H0yjX3X6/ekOj1yjw== selfsigned@^1.10.7: version "1.10.7" @@ -7252,6 +8115,18 @@ selfsigned@^1.10.7: dependencies: node-forge "0.9.0" +semver-diff@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b" + integrity sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg== + dependencies: + semver "^6.3.0" + +semver-utils@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/semver-utils/-/semver-utils-1.1.4.tgz#cf0405e669a57488913909fc1c3f29bf2a4871e2" + integrity sha512-EjnoLE5OGmDAVV/8YDoN5KiajNadjzIp9BAHOhYeQHt7j0UWxjmgsx4YD48wp4Ue1Qogq38F1GNUJNqF1kKKxA== + "semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: version "5.7.1" resolved "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" @@ -7262,11 +8137,16 @@ semver@7.0.0: resolved "https://registry.npm.taobao.org/semver/download/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" integrity sha1-XzyjV2HkfgWyBsba/yz4FPAxa44= -semver@^6.0.0, semver@^6.3.0: +semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0= +semver@^7.0.0, semver@^7.1.1, semver@^7.1.3: + version "7.1.3" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.1.3.tgz#e4345ce73071c53f336445cfc19efb1c311df2a6" + integrity sha512-ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA== + semver@~5.3.0: version "5.3.0" resolved "https://registry.npm.taobao.org/semver/download/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" @@ -7391,6 +8271,11 @@ signal-exit@^3.0.0: resolved "https://registry.npm.taobao.org/signal-exit/download/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= +signal-exit@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" + integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== + simple-swizzle@^0.2.2: version "0.2.2" resolved "https://registry.npm.taobao.org/simple-swizzle/download/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" @@ -7398,6 +8283,16 @@ simple-swizzle@^0.2.2: dependencies: is-arrayish "^0.3.1" +sisteransi@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + +smart-buffer@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.1.0.tgz#91605c25d91652f4661ea69ccf45f1b331ca21ba" + integrity sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw== + snapdragon-node@^2.0.1: version "2.1.1" resolved "https://registry.npm.taobao.org/snapdragon-node/download/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" @@ -7448,6 +8343,23 @@ sockjs@0.3.19: faye-websocket "^0.10.0" uuid "^3.0.1" +socks-proxy-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-5.0.0.tgz#7c0f364e7b1cf4a7a437e71253bed72e9004be60" + integrity sha512-lEpa1zsWCChxiynk+lCycKuC502RxDWLKJZoIhnxrWNjLSDGYRFflHA1/228VkRcnv9TIb8w98derGbpKxJRgA== + dependencies: + agent-base "6" + debug "4" + socks "^2.3.3" + +socks@^2.3.3: + version "2.3.3" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.3.3.tgz#01129f0a5d534d2b897712ed8aceab7ee65d78e3" + integrity sha512-o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA== + dependencies: + ip "1.1.5" + smart-buffer "^4.1.0" + sort-keys@^1.0.0: version "1.1.2" resolved "https://registry.npm.taobao.org/sort-keys/download/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" @@ -7513,6 +8425,11 @@ sparklines@^1.2.0: resolved "https://registry.npm.taobao.org/sparklines/download/sparklines-1.2.0.tgz#bbbf2dede9bc337749e430baf67c2b37f88f6fa0" integrity sha1-u78t7em8M3dJ5DC69nwrN/iPb6A= +spawn-please@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/spawn-please/-/spawn-please-0.3.0.tgz#db338ec4cff63abc69f1d0e08cee9eb8bebd9d11" + integrity sha1-2zOOxM/2Orxp8dDgjO6euL69nRE= + spdx-correct@^3.0.0: version "3.1.0" resolved "https://registry.npm.taobao.org/spdx-correct/download/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" @@ -7604,6 +8521,13 @@ ssri@^7.0.0: figgy-pudding "^3.5.1" minipass "^3.1.1" +ssri@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.0.tgz#79ca74e21f8ceaeddfcb4b90143c458b8d988808" + integrity sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA== + dependencies: + minipass "^3.1.1" + stable@^0.1.8: version "0.1.8" resolved "https://registry.npm.taobao.org/stable/download/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" @@ -7739,6 +8663,15 @@ string-width@^3.0.0, string-width@^3.1.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" +string-width@^4.0.0, string-width@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" + integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.0" + string.prototype.trimleft@^2.1.1: version "2.1.1" resolved "https://registry.npm.taobao.org/string.prototype.trimleft/download/string.prototype.trimleft-2.1.1.tgz#9bdb8ac6abd6d602b17a4ed321870d2f8dcefc74" @@ -7790,6 +8723,13 @@ strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: dependencies: ansi-regex "^4.1.0" +strip-ansi@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== + dependencies: + ansi-regex "^5.0.0" + strip-bom@^2.0.0: version "2.0.0" resolved "https://registry.npm.taobao.org/strip-bom/download/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" @@ -7809,6 +8749,11 @@ strip-indent@^1.0.1: dependencies: get-stdin "^4.0.1" +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= + style-loader@^1.0.0: version "1.1.2" resolved "https://registry.npm.taobao.org/style-loader/download/style-loader-1.1.2.tgz?cache=0&sync_timestamp=1577278859892&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstyle-loader%2Fdownload%2Fstyle-loader-1.1.2.tgz#1b519c19faf548df6182b93e72ea1a4156022c2f" @@ -7826,12 +8771,12 @@ stylehacks@^4.0.0: postcss "^7.0.0" postcss-selector-parser "^3.0.0" -summernote@^0.8.12: - version "0.8.15" - resolved "https://registry.npm.taobao.org/summernote/download/summernote-0.8.15.tgz#f783f23b2c1f85c1609855ad37205595147a3c39" - integrity sha1-94PyOywfhcFgmFWtNyBVlRR6PDk= +summernote@^0.8.16: + version "0.8.16" + resolved "https://registry.yarnpkg.com/summernote/-/summernote-0.8.16.tgz#73f03a0cfac81d3c473de73ee8cc819cd6189b31" + integrity sha512-eheLC4jXAw+GEzmg5+/pCwMchempcU4i+T+/y99rZhALqPW7R1XRQD7rO/VUBboz6awApjPRRD30rRD4XJdEaQ== dependencies: - jquery "^3.4.1" + npm-check-updates "^4.0.1" supports-color@6.1.0, supports-color@^6.1.0: version "6.1.0" @@ -7852,6 +8797,13 @@ supports-color@^5.3.0: dependencies: has-flag "^3.0.0" +supports-color@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" + integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== + dependencies: + has-flag "^4.0.0" + svg-to-pdfkit@^0.1.8: version "0.1.8" resolved "https://registry.npm.taobao.org/svg-to-pdfkit/download/svg-to-pdfkit-0.1.8.tgz#5921765922044843f0c1a5b25ec1ef8a4a33b8af" @@ -7878,10 +8830,10 @@ svgo@^1.0.0: unquote "~1.1.1" util.promisify "~1.0.0" -sweetalert2@^8.19.0: - version "8.19.0" - resolved "https://registry.npm.taobao.org/sweetalert2/download/sweetalert2-8.19.0.tgz#692269bc8ddc5760e2b5070da2cf5e9e278bac0b" - integrity sha1-aSJpvI3cV2DitQcNos9enieLrAs= +sweetalert2@^9.10.8: + version "9.10.8" + resolved "https://registry.yarnpkg.com/sweetalert2/-/sweetalert2-9.10.8.tgz#8cb2367c9eb2b2d9c560f47ef6ef943287902924" + integrity sha512-OqHgFs0QWbNN4qdOt9hkvDTA1+pHTrw8yNARECQdCpBmTKxC5OttgXmnGE5kXsgrT7h7BlCjDFqSAZ+Qnk3S3A== tapable@^1.0.0, tapable@^1.1.3: version "1.1.3" @@ -7897,6 +8849,18 @@ tar@^2.0.0: fstream "^1.0.12" inherits "2" +tar@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.0.1.tgz#7b3bd6c313cb6e0153770108f8d70ac298607efa" + integrity sha512-bKhKrrz2FJJj5s7wynxy/fyxpE0CmCjmOQ1KV4KkgXFWOgoIT/NbTMnB1n+LFNrNk0SSBVGGxcK5AGsyC+pW5Q== + dependencies: + chownr "^1.1.3" + fs-minipass "^2.0.0" + minipass "^3.0.0" + minizlib "^2.1.0" + mkdirp "^1.0.3" + yallist "^4.0.0" + tempusdominus-bootstrap-4@^5.1.2: version "5.1.2" resolved "https://registry.npm.taobao.org/tempusdominus-bootstrap-4/download/tempusdominus-bootstrap-4-5.1.2.tgz#3c9906ca6e5d563faa0b81b2fdc6aa79cad9c0be" @@ -7908,6 +8872,11 @@ tempusdominus-bootstrap-4@^5.1.2: moment-timezone "^0.5.11" popper.js "^1.14.3" +term-size@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/term-size/-/term-size-2.2.0.tgz#1f16adedfe9bdc18800e1776821734086fcc6753" + integrity sha512-a6sumDlzyHVJWb8+YofY4TW112G6p2FCPEAFk+59gIYHv3XHRhm9ltVQ9kli4hNWeQBwSpe8cRN25x0ROunMOw== + terser-webpack-plugin@^1.4.3: version "1.4.3" resolved "https://registry.npm.taobao.org/terser-webpack-plugin/download/terser-webpack-plugin-1.4.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fterser-webpack-plugin%2Fdownload%2Fterser-webpack-plugin-1.4.3.tgz#5ecaf2dbdc5fb99745fd06791f46fc9ddb1c9a7c" @@ -7998,6 +8967,11 @@ to-object-path@^0.3.0: dependencies: kind-of "^3.0.2" +to-readable-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" + integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== + to-regex-range@^2.1.0: version "2.1.1" resolved "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" @@ -8087,6 +9061,11 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" +type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + type-is@~1.6.17, type-is@~1.6.18: version "1.6.18" resolved "https://registry.npm.taobao.org/type-is/download/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" @@ -8105,6 +9084,13 @@ type@^2.0.0: resolved "https://registry.npm.taobao.org/type/download/type-2.0.0.tgz?cache=0&sync_timestamp=1570722894467&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype%2Fdownload%2Ftype-2.0.0.tgz#5f16ff6ef2eb44f260494dae271033b29c09a9c3" integrity sha1-Xxb/bvLrRPJgSU2uJxAzspwJqcM= +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + typedarray@^0.0.6: version "0.0.6" resolved "https://registry.npm.taobao.org/typedarray/download/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" @@ -8199,10 +9185,17 @@ unique-slug@^2.0.0: dependencies: imurmurhash "^0.1.4" -universalify@^0.1.0: - version "0.1.2" - resolved "https://registry.npm.taobao.org/universalify/download/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha1-tkb2m+OULavOzJ1mOcgNwQXvqmY= +unique-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" + integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== + dependencies: + crypto-random-string "^2.0.0" + +universalify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-1.0.0.tgz#b61a1da173e8435b2fe3c67d29b9adf8594bd16d" + integrity sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug== unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" @@ -8227,6 +9220,25 @@ upath@^1.1.1: resolved "https://registry.npm.taobao.org/upath/download/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" integrity sha1-j2bbzVWog6za5ECK+LA1pQRMGJQ= +update-notifier@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-4.1.0.tgz#4866b98c3bc5b5473c020b1250583628f9a328f3" + integrity sha512-w3doE1qtI0/ZmgeoDoARmI5fjDoT93IfKgEGqm26dGUOh8oNpaSTsGNdYRN/SjOuo10jcJGwkEL3mroKzktkew== + dependencies: + boxen "^4.2.0" + chalk "^3.0.0" + configstore "^5.0.1" + has-yarn "^2.1.0" + import-lazy "^2.1.0" + is-ci "^2.0.0" + is-installed-globally "^0.3.1" + is-npm "^4.0.0" + is-yarn-global "^0.3.0" + latest-version "^5.0.0" + pupa "^2.0.1" + semver-diff "^3.1.1" + xdg-basedir "^4.0.0" + uri-js@^4.2.2: version "4.2.2" resolved "https://registry.npm.taobao.org/uri-js/download/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" @@ -8239,6 +9251,13 @@ urix@^0.1.0: resolved "https://registry.npm.taobao.org/urix/download/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= +url-parse-lax@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" + integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= + dependencies: + prepend-http "^2.0.0" + url-parse@^1.4.3: version "1.4.7" resolved "https://registry.npm.taobao.org/url-parse/download/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278" @@ -8310,6 +9329,13 @@ validate-npm-package-license@^3.0.1: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" +validate-npm-package-name@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e" + integrity sha1-X6kS2B630MdK/BQN5zF/DKffQ34= + dependencies: + builtins "^1.0.3" + vary@~1.1.2: version "1.1.2" resolved "https://registry.npm.taobao.org/vary/download/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" @@ -8511,6 +9537,13 @@ which@1, which@^1.2.14, which@^1.2.9, which@^1.3.1: dependencies: isexe "^2.0.0" +which@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + wide-align@^1.1.0: version "1.1.3" resolved "https://registry.npm.taobao.org/wide-align/download/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" @@ -8518,6 +9551,13 @@ wide-align@^1.1.0: dependencies: string-width "^1.0.2 || 2" +widest-line@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" + integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== + dependencies: + string-width "^4.0.0" + word-wrap@~1.2.3: version "1.2.3" resolved "https://registry.npm.taobao.org/word-wrap/download/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" @@ -8552,6 +9592,16 @@ wrappy@1: resolved "https://registry.npm.taobao.org/wrappy/download/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= +write-file-atomic@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" + integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== + dependencies: + imurmurhash "^0.1.4" + is-typedarray "^1.0.0" + signal-exit "^3.0.2" + typedarray-to-buffer "^3.1.5" + ws@^6.2.1: version "6.2.1" resolved "https://registry.npm.taobao.org/ws/download/ws-6.2.1.tgz?cache=0&sync_timestamp=1576314828024&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fws%2Fdownload%2Fws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" @@ -8559,6 +9609,11 @@ ws@^6.2.1: dependencies: async-limiter "~1.0.0" +xdg-basedir@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" + integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== + xtend@^4.0.0, xtend@^4.0.2, xtend@~4.0.1: version "4.0.2" resolved "https://registry.npm.taobao.org/xtend/download/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" From 72ab76ccfcc156a4d22234b3dd0ff47e4a6160b1 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Thu, 2 Apr 2020 08:24:55 +0000 Subject: [PATCH 0079/2165] chore(deps): bump http from 4.3.0 to 4.4.1 Bumps [http](https://github.com/httprb/http) from 4.3.0 to 4.4.1. - [Release notes](https://github.com/httprb/http/releases) - [Changelog](https://github.com/httprb/http/blob/master/CHANGES.md) - [Commits](https://github.com/httprb/http/compare/v4.3.0...v4.4.1) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 125a0b541..de459110f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -181,14 +181,14 @@ GEM guard (>= 2) guard-compat (~> 1.0) hashie (4.1.0) - http (4.3.0) + http (4.4.1) addressable (~> 2.3) http-cookie (~> 1.0) http-form_data (~> 2.2) http-parser (~> 1.2.0) http-cookie (1.0.3) domain_name (~> 0.5) - http-form_data (2.2.0) + http-form_data (2.3.0) http-parser (1.2.1) ffi-compiler (>= 1.0, < 2.0) i18n (1.8.2) @@ -424,7 +424,7 @@ GEM thread_safe (~> 0.1) unf (0.1.4) unf_ext - unf_ext (0.0.7.6) + unf_ext (0.0.7.7) unicode-display_width (1.6.1) uuidtools (2.1.5) vmstat (2.3.1) From 49eb28cc37062d511a6d2a5efb2379ce04a66a48 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Thu, 2 Apr 2020 08:25:06 +0000 Subject: [PATCH 0080/2165] chore(deps): bump carrierwave from 2.0.2 to 2.1.0 Bumps [carrierwave](https://github.com/carrierwaveuploader/carrierwave) from 2.0.2 to 2.1.0. - [Release notes](https://github.com/carrierwaveuploader/carrierwave/releases) - [Changelog](https://github.com/carrierwaveuploader/carrierwave/blob/master/CHANGELOG.md) - [Commits](https://github.com/carrierwaveuploader/carrierwave/compare/v2.0.2...v2.1.0) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 125a0b541..1053501cd 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -100,7 +100,7 @@ GEM msgpack (~> 1.0) builder (3.2.4) byebug (11.0.1) - carrierwave (2.0.2) + carrierwave (2.1.0) activemodel (>= 5.0.0) activesupport (>= 5.0.0) addressable (~> 2.6) @@ -193,9 +193,9 @@ GEM ffi-compiler (>= 1.0, < 2.0) i18n (1.8.2) concurrent-ruby (~> 1.0) - image_processing (1.10.0) + image_processing (1.10.3) mini_magick (>= 4.9.5, < 5) - ruby-vips (>= 2.0.13, < 3) + ruby-vips (>= 2.0.17, < 3) image_size (2.0.2) interception (0.5) jaro_winkler (1.5.4) @@ -367,7 +367,7 @@ GEM rake (>= 0.8.1) ruby-macho (2.2.0) ruby-progressbar (1.10.1) - ruby-vips (2.0.16) + ruby-vips (2.0.17) ffi (~> 1.9) ruby_android (0.7.7) rubyzip (>= 1.1.6) From 8f1022f9b12642e6a810946ef17aaf8483cad00c Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Thu, 2 Apr 2020 08:26:13 +0000 Subject: [PATCH 0081/2165] chore(deps): bump @rails/webpacker from 4.2.2 to 5.0.1 Bumps [@rails/webpacker](https://github.com/rails/webpacker) from 4.2.2 to 5.0.1. - [Release notes](https://github.com/rails/webpacker/releases) - [Changelog](https://github.com/rails/webpacker/blob/master/CHANGELOG.md) - [Commits](https://github.com/rails/webpacker/compare/v4.2.2...v5.0.1) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 1110 +++++++++++++++++++++++++++++++------------------- 2 files changed, 681 insertions(+), 431 deletions(-) diff --git a/package.json b/package.json index 48cce3d6f..09a963765 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "private": true, "dependencies": { "@rails/ujs": "^6.0.2", - "@rails/webpacker": "^4.2.2", + "@rails/webpacker": "^5.0.1", "admin-lte": "^3.0.4", "filepond": "^4.9.3", "font-awesome": "^4.7.0", diff --git a/yarn.lock b/yarn.lock index d08fbc36c..d2a9d726c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9,31 +9,32 @@ dependencies: "@babel/highlight" "^7.8.3" -"@babel/compat-data@^7.8.0", "@babel/compat-data@^7.8.1": - version "7.8.1" - resolved "https://registry.npm.taobao.org/@babel/compat-data/download/@babel/compat-data-7.8.1.tgz#fc0bbbb7991e4fb2b47e168e60f2cc2c41680be9" - integrity sha1-/Au7t5keT7K0fhaOYPLMLEFoC+k= +"@babel/compat-data@^7.8.6", "@babel/compat-data@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.9.0.tgz#04815556fc90b0c174abd2c0c1bb966faa036a6c" + integrity sha512-zeFQrr+284Ekvd9e7KAX954LkapWiOmQtsfHirhxqfdlX6MEC32iRE+pqUGlYIBchdevaCwvzxWGSy/YBNI85g== dependencies: - browserslist "^4.8.2" + browserslist "^4.9.1" invariant "^2.2.4" semver "^5.5.0" -"@babel/core@^7.7.2": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/core/download/@babel/core-7.8.3.tgz?cache=0&sync_timestamp=1578956762857&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.8.3.tgz#30b0ebb4dd1585de6923a0b4d179e0b9f5d82941" - integrity sha1-MLDrtN0Vhd5pI6C00XngufXYKUE= +"@babel/core@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.9.0.tgz#ac977b538b77e132ff706f3b8a4dbad09c03c56e" + integrity sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w== dependencies: "@babel/code-frame" "^7.8.3" - "@babel/generator" "^7.8.3" - "@babel/helpers" "^7.8.3" - "@babel/parser" "^7.8.3" - "@babel/template" "^7.8.3" - "@babel/traverse" "^7.8.3" - "@babel/types" "^7.8.3" + "@babel/generator" "^7.9.0" + "@babel/helper-module-transforms" "^7.9.0" + "@babel/helpers" "^7.9.0" + "@babel/parser" "^7.9.0" + "@babel/template" "^7.8.6" + "@babel/traverse" "^7.9.0" + "@babel/types" "^7.9.0" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.1" - json5 "^2.1.0" + json5 "^2.1.2" lodash "^4.17.13" resolve "^1.3.2" semver "^5.4.1" @@ -49,6 +50,16 @@ lodash "^4.17.13" source-map "^0.5.0" +"@babel/generator@^7.9.0": + version "7.9.4" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.9.4.tgz#12441e90c3b3c4159cdecf312075bf1a8ce2dbce" + integrity sha512-rjP8ahaDy/ouhrvCoU1E5mqaitWrxwuNGU+dy1EpaoK48jZay4MdkskKGIMHLZNewg8sAsqpGSREJwP0zH3YQA== + dependencies: + "@babel/types" "^7.9.0" + jsesc "^2.5.1" + lodash "^4.17.13" + source-map "^0.5.0" + "@babel/helper-annotate-as-pure@^7.8.3": version "7.8.3" resolved "https://registry.npm.taobao.org/@babel/helper-annotate-as-pure/download/@babel/helper-annotate-as-pure-7.8.3.tgz#60bc0bc657f63a0924ff9a4b4a0b24a13cf4deee" @@ -64,24 +75,15 @@ "@babel/helper-explode-assignable-expression" "^7.8.3" "@babel/types" "^7.8.3" -"@babel/helper-call-delegate@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/helper-call-delegate/download/@babel/helper-call-delegate-7.8.3.tgz#de82619898aa605d409c42be6ffb8d7204579692" - integrity sha1-3oJhmJiqYF1AnEK+b/uNcgRXlpI= - dependencies: - "@babel/helper-hoist-variables" "^7.8.3" - "@babel/traverse" "^7.8.3" - "@babel/types" "^7.8.3" - -"@babel/helper-compilation-targets@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/helper-compilation-targets/download/@babel/helper-compilation-targets-7.8.3.tgz#2deedc816fd41dca7355ef39fd40c9ea69f0719a" - integrity sha1-Le7cgW/UHcpzVe85/UDJ6mnwcZo= +"@babel/helper-compilation-targets@^7.8.7": + version "7.8.7" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.7.tgz#dac1eea159c0e4bd46e309b5a1b04a66b53c1dde" + integrity sha512-4mWm8DCK2LugIS+p1yArqvG1Pf162upsIsjE7cNBjez+NjliQpVhj20obE520nao0o14DaTnFJv+Fw5a0JpoUw== dependencies: - "@babel/compat-data" "^7.8.1" - browserslist "^4.8.2" + "@babel/compat-data" "^7.8.6" + browserslist "^4.9.1" invariant "^2.2.4" - levenary "^1.1.0" + levenary "^1.1.1" semver "^5.5.0" "@babel/helper-create-class-features-plugin@^7.8.3": @@ -104,6 +106,15 @@ "@babel/helper-regex" "^7.8.3" regexpu-core "^4.6.0" +"@babel/helper-create-regexp-features-plugin@^7.8.8": + version "7.8.8" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.8.tgz#5d84180b588f560b7864efaeea89243e58312087" + integrity sha512-LYVPdwkrQEiX9+1R29Ld/wTrmQu1SSKYnuOk3g0CkcZMA1p0gsNxJFj/3gBdaJ7Cg0Fnek5z0DsMULePP7Lrqg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.8.3" + "@babel/helper-regex" "^7.8.3" + regexpu-core "^4.7.0" + "@babel/helper-define-map@^7.8.3": version "7.8.3" resolved "https://registry.npm.taobao.org/@babel/helper-define-map/download/@babel/helper-define-map-7.8.3.tgz#a0655cad5451c3760b726eba875f1cd8faa02c15" @@ -158,16 +169,17 @@ dependencies: "@babel/types" "^7.8.3" -"@babel/helper-module-transforms@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/helper-module-transforms/download/@babel/helper-module-transforms-7.8.3.tgz#d305e35d02bee720fbc2c3c3623aa0c316c01590" - integrity sha1-0wXjXQK+5yD7wsPDYjqgwxbAFZA= +"@babel/helper-module-transforms@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz#43b34dfe15961918707d247327431388e9fe96e5" + integrity sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA== dependencies: "@babel/helper-module-imports" "^7.8.3" + "@babel/helper-replace-supers" "^7.8.6" "@babel/helper-simple-access" "^7.8.3" "@babel/helper-split-export-declaration" "^7.8.3" - "@babel/template" "^7.8.3" - "@babel/types" "^7.8.3" + "@babel/template" "^7.8.6" + "@babel/types" "^7.9.0" lodash "^4.17.13" "@babel/helper-optimise-call-expression@^7.8.3": @@ -177,7 +189,7 @@ dependencies: "@babel/types" "^7.8.3" -"@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": version "7.8.3" resolved "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.8.3.tgz#9ea293be19babc0f52ff8ca88b34c3611b208670" integrity sha1-nqKTvhm6vA9S/4yoizTDYRsghnA= @@ -210,6 +222,16 @@ "@babel/traverse" "^7.8.3" "@babel/types" "^7.8.3" +"@babel/helper-replace-supers@^7.8.6": + version "7.8.6" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz#5ada744fd5ad73203bf1d67459a27dcba67effc8" + integrity sha512-PeMArdA4Sv/Wf4zXwBKPqVj7n9UF/xg6slNRtZW84FM7JpE1CbG8B612FyM4cxrf4fMAMGO0kR7voy1ForHHFA== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.8.3" + "@babel/helper-optimise-call-expression" "^7.8.3" + "@babel/traverse" "^7.8.6" + "@babel/types" "^7.8.6" + "@babel/helper-simple-access@^7.8.3": version "7.8.3" resolved "https://registry.npm.taobao.org/@babel/helper-simple-access/download/@babel/helper-simple-access-7.8.3.tgz#7f8109928b4dab4654076986af575231deb639ae" @@ -225,6 +247,11 @@ dependencies: "@babel/types" "^7.8.3" +"@babel/helper-validator-identifier@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.0.tgz#ad53562a7fc29b3b9a91bbf7d10397fd146346ed" + integrity sha512-6G8bQKjOh+of4PV/ThDm/rRqlU7+IGoJuofpagU5GlEl29Vv0RGqqt86ZGRV8ZuSOY3o+8yXl5y782SMcG7SHw== + "@babel/helper-wrap-function@^7.8.3": version "7.8.3" resolved "https://registry.npm.taobao.org/@babel/helper-wrap-function/download/@babel/helper-wrap-function-7.8.3.tgz#9dbdb2bb55ef14aaa01fe8c99b629bd5352d8610" @@ -235,14 +262,14 @@ "@babel/traverse" "^7.8.3" "@babel/types" "^7.8.3" -"@babel/helpers@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/helpers/download/@babel/helpers-7.8.3.tgz#382fbb0382ce7c4ce905945ab9641d688336ce85" - integrity sha1-OC+7A4LOfEzpBZRauWQdaIM2zoU= +"@babel/helpers@^7.9.0": + version "7.9.2" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.9.2.tgz#b42a81a811f1e7313b88cba8adc66b3d9ae6c09f" + integrity sha512-JwLvzlXVPjO8eU9c/wF9/zOIN7X6h8DYf7mG4CiFRZRvZNKEF5dQ3H3V+ASkHoIB3mWhatgl5ONhyqHRI6MppA== dependencies: "@babel/template" "^7.8.3" - "@babel/traverse" "^7.8.3" - "@babel/types" "^7.8.3" + "@babel/traverse" "^7.9.0" + "@babel/types" "^7.9.0" "@babel/highlight@^7.8.3": version "7.8.3" @@ -258,6 +285,11 @@ resolved "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.8.3.tgz#790874091d2001c9be6ec426c2eed47bc7679081" integrity sha1-eQh0CR0gAcm+bsQmwu7Ue8dnkIE= +"@babel/parser@^7.8.6", "@babel/parser@^7.9.0": + version "7.9.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.9.4.tgz#68a35e6b0319bbc014465be43828300113f2f2e8" + integrity sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA== + "@babel/plugin-proposal-async-generator-functions@^7.8.3": version "7.8.3" resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-async-generator-functions/download/@babel/plugin-proposal-async-generator-functions-7.8.3.tgz#bad329c670b382589721b27540c7d288601c6e6f" @@ -267,10 +299,10 @@ "@babel/helper-remap-async-to-generator" "^7.8.3" "@babel/plugin-syntax-async-generators" "^7.8.0" -"@babel/plugin-proposal-class-properties@^7.7.0": +"@babel/plugin-proposal-class-properties@^7.8.3": version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-class-properties/download/@babel/plugin-proposal-class-properties-7.8.3.tgz?cache=0&sync_timestamp=1578956763050&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-class-properties%2Fdownload%2F%40babel%2Fplugin-proposal-class-properties-7.8.3.tgz#5e06654af5cd04b608915aada9b2a6788004464e" - integrity sha1-XgZlSvXNBLYIkVqtqbKmeIAERk4= + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.8.3.tgz#5e06654af5cd04b608915aada9b2a6788004464e" + integrity sha512-EqFhbo7IosdgPgZggHaNObkmO1kNUe3slaKu54d5OWvy+p9QIKOzK1GAEpAIsZtWVtPXUHSMcT4smvDrCfY4AA== dependencies: "@babel/helper-create-class-features-plugin" "^7.8.3" "@babel/helper-plugin-utils" "^7.8.3" @@ -299,10 +331,18 @@ "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" -"@babel/plugin-proposal-object-rest-spread@^7.6.2", "@babel/plugin-proposal-object-rest-spread@^7.8.3": +"@babel/plugin-proposal-numeric-separator@^7.8.3": version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-object-rest-spread/download/@babel/plugin-proposal-object-rest-spread-7.8.3.tgz?cache=0&sync_timestamp=1578956763418&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-object-rest-spread%2Fdownload%2F%40babel%2Fplugin-proposal-object-rest-spread-7.8.3.tgz#eb5ae366118ddca67bed583b53d7554cad9951bb" - integrity sha1-61rjZhGN3KZ77Vg7U9dVTK2ZUbs= + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.8.3.tgz#5d6769409699ec9b3b68684cd8116cedff93bad8" + integrity sha512-jWioO1s6R/R+wEHizfaScNsAx+xKgwTLNXSh7tTC4Usj3ItsPEhYkEpU4h+lpnBwq7NBVOJXfO6cRFYcX69JUQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.8.3" + +"@babel/plugin-proposal-object-rest-spread@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.0.tgz#a28993699fc13df165995362693962ba6b061d6f" + integrity sha512-UgqBv6bjq4fDb8uku9f+wcm1J7YxJ5nT7WO/jBr0cl0PLKb7t1O6RNR1kZbjgx2LQtsDI9hwoQVmn0yhXeQyow== dependencies: "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-object-rest-spread" "^7.8.0" @@ -315,14 +355,22 @@ "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" -"@babel/plugin-proposal-optional-chaining@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-optional-chaining/download/@babel/plugin-proposal-optional-chaining-7.8.3.tgz#ae10b3214cb25f7adb1f3bc87ba42ca10b7e2543" - integrity sha1-rhCzIUyyX3rbHzvIe6QsoQt+JUM= +"@babel/plugin-proposal-optional-chaining@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.9.0.tgz#31db16b154c39d6b8a645292472b98394c292a58" + integrity sha512-NDn5tu3tcv4W30jNhmc2hyD5c56G6cXx4TesJubhxrJeCvuuMpttxr0OnNCqbZGhFjLrg+NIhxxC+BK5F6yS3w== dependencies: "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-syntax-optional-chaining" "^7.8.0" +"@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.8.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.8.tgz#ee3a95e90cdc04fe8cd92ec3279fa017d68a0d1d" + integrity sha512-EVhjVsMpbhLw9ZfHWSx2iy13Q8Z/eg8e8ccVWt23sWQK5l1UdkoLJPN5w69UA4uITGBnEZD2JOe4QOHycYKv8A== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.8.8" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-proposal-unicode-property-regex@^7.8.3": version "7.8.3" resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-unicode-property-regex/download/@babel/plugin-proposal-unicode-property-regex-7.8.3.tgz#b646c3adea5f98800c9ab45105ac34d06cd4a47f" @@ -338,10 +386,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-dynamic-import@^7.2.0", "@babel/plugin-syntax-dynamic-import@^7.8.0": +"@babel/plugin-syntax-dynamic-import@^7.8.0", "@babel/plugin-syntax-dynamic-import@^7.8.3": version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-dynamic-import/download/@babel/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" - integrity sha1-Yr+Ysto80h1iYVT8lu5bPLaOrLM= + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" + integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== dependencies: "@babel/helper-plugin-utils" "^7.8.0" @@ -359,6 +407,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" +"@babel/plugin-syntax-numeric-separator@^7.8.0", "@babel/plugin-syntax-numeric-separator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.8.3.tgz#0e3fb63e09bea1b11e96467271c8308007e7c41f" + integrity sha512-H7dCMAdN83PcCmqmkHB5dtp+Xa9a6LKSvA2hiFBC/5alSHxM5VgWZXFqDi0YFe8XNGT6iCa+z4V4zSt/PdZ7Dw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-object-rest-spread@^7.8.0": version "7.8.3" resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-object-rest-spread/download/@babel/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" @@ -418,17 +473,17 @@ "@babel/helper-plugin-utils" "^7.8.3" lodash "^4.17.13" -"@babel/plugin-transform-classes@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-classes/download/@babel/plugin-transform-classes-7.8.3.tgz#46fd7a9d2bb9ea89ce88720477979fe0d71b21b8" - integrity sha1-Rv16nSu56onOiHIEd5ef4NcbIbg= +"@babel/plugin-transform-classes@^7.9.0": + version "7.9.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.9.2.tgz#8603fc3cc449e31fdbdbc257f67717536a11af8d" + integrity sha512-TC2p3bPzsfvSsqBZo0kJnuelnoK9O3welkUpqSqBQuBF6R5MN2rysopri8kNvtlGIb2jmUO7i15IooAZJjZuMQ== dependencies: "@babel/helper-annotate-as-pure" "^7.8.3" "@babel/helper-define-map" "^7.8.3" "@babel/helper-function-name" "^7.8.3" "@babel/helper-optimise-call-expression" "^7.8.3" "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-replace-supers" "^7.8.3" + "@babel/helper-replace-supers" "^7.8.6" "@babel/helper-split-export-declaration" "^7.8.3" globals "^11.1.0" @@ -439,14 +494,14 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-destructuring@^7.6.0", "@babel/plugin-transform-destructuring@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-destructuring/download/@babel/plugin-transform-destructuring-7.8.3.tgz#20ddfbd9e4676906b1056ee60af88590cc7aaa0b" - integrity sha1-IN372eRnaQaxBW7mCviFkMx6qgs= +"@babel/plugin-transform-destructuring@^7.8.3", "@babel/plugin-transform-destructuring@^7.8.8": + version "7.8.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.8.8.tgz#fadb2bc8e90ccaf5658de6f8d4d22ff6272a2f4b" + integrity sha512-eRJu4Vs2rmttFCdhPUM3bV0Yo/xPSdPw6ML9KHs/bjB4bLA5HXlbvYXPOD5yASodGod+krjYx21xm1QmL8dCJQ== dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-dotall-regex@^7.8.3": +"@babel/plugin-transform-dotall-regex@^7.4.4", "@babel/plugin-transform-dotall-regex@^7.8.3": version "7.8.3" resolved "https://registry.npm.taobao.org/@babel/plugin-transform-dotall-regex/download/@babel/plugin-transform-dotall-regex-7.8.3.tgz#c3c6ec5ee6125c6993c5cbca20dc8621a9ea7a6e" integrity sha1-w8bsXuYSXGmTxcvKINyGIanqem4= @@ -469,10 +524,10 @@ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.8.3" "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-for-of@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-for-of/download/@babel/plugin-transform-for-of-7.8.3.tgz#15f17bce2fc95c7d59a24b299e83e81cedc22e18" - integrity sha1-FfF7zi/JXH1ZokspnoPoHO3CLhg= +"@babel/plugin-transform-for-of@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.9.0.tgz#0f260e27d3e29cd1bb3128da5e76c761aa6c108e" + integrity sha512-lTAnWOpMwOXpyDx06N+ywmF3jNbafZEqZ96CGYabxHrxNX8l5ny7dt4bK/rGwAh9utyP2b2Hv7PlZh1AAS54FQ== dependencies: "@babel/helper-plugin-utils" "^7.8.3" @@ -498,41 +553,41 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-modules-amd@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-modules-amd/download/@babel/plugin-transform-modules-amd-7.8.3.tgz?cache=0&sync_timestamp=1578956828453&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-amd%2Fdownload%2F%40babel%2Fplugin-transform-modules-amd-7.8.3.tgz#65606d44616b50225e76f5578f33c568a0b876a5" - integrity sha1-ZWBtRGFrUCJedvVXjzPFaKC4dqU= +"@babel/plugin-transform-modules-amd@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.9.0.tgz#19755ee721912cf5bb04c07d50280af3484efef4" + integrity sha512-vZgDDF003B14O8zJy0XXLnPH4sg+9X5hFBBGN1V+B2rgrB+J2xIypSN6Rk9imB2hSTHQi5OHLrFWsZab1GMk+Q== dependencies: - "@babel/helper-module-transforms" "^7.8.3" + "@babel/helper-module-transforms" "^7.9.0" "@babel/helper-plugin-utils" "^7.8.3" babel-plugin-dynamic-import-node "^2.3.0" -"@babel/plugin-transform-modules-commonjs@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-modules-commonjs/download/@babel/plugin-transform-modules-commonjs-7.8.3.tgz#df251706ec331bd058a34bdd72613915f82928a5" - integrity sha1-3yUXBuwzG9BYo0vdcmE5FfgpKKU= +"@babel/plugin-transform-modules-commonjs@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.9.0.tgz#e3e72f4cbc9b4a260e30be0ea59bdf5a39748940" + integrity sha512-qzlCrLnKqio4SlgJ6FMMLBe4bySNis8DFn1VkGmOcxG9gqEyPIOzeQrA//u0HAKrWpJlpZbZMPB1n/OPa4+n8g== dependencies: - "@babel/helper-module-transforms" "^7.8.3" + "@babel/helper-module-transforms" "^7.9.0" "@babel/helper-plugin-utils" "^7.8.3" "@babel/helper-simple-access" "^7.8.3" babel-plugin-dynamic-import-node "^2.3.0" -"@babel/plugin-transform-modules-systemjs@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-modules-systemjs/download/@babel/plugin-transform-modules-systemjs-7.8.3.tgz#d8bbf222c1dbe3661f440f2f00c16e9bb7d0d420" - integrity sha1-2LvyIsHb42YfRA8vAMFum7fQ1CA= +"@babel/plugin-transform-modules-systemjs@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.9.0.tgz#e9fd46a296fc91e009b64e07ddaa86d6f0edeb90" + integrity sha512-FsiAv/nao/ud2ZWy4wFacoLOm5uxl0ExSQ7ErvP7jpoihLR6Cq90ilOFyX9UXct3rbtKsAiZ9kFt5XGfPe/5SQ== dependencies: "@babel/helper-hoist-variables" "^7.8.3" - "@babel/helper-module-transforms" "^7.8.3" + "@babel/helper-module-transforms" "^7.9.0" "@babel/helper-plugin-utils" "^7.8.3" babel-plugin-dynamic-import-node "^2.3.0" -"@babel/plugin-transform-modules-umd@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-modules-umd/download/@babel/plugin-transform-modules-umd-7.8.3.tgz#592d578ce06c52f5b98b02f913d653ffe972661a" - integrity sha1-WS1XjOBsUvW5iwL5E9ZT/+lyZho= +"@babel/plugin-transform-modules-umd@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.9.0.tgz#e909acae276fec280f9b821a5f38e1f08b480697" + integrity sha512-uTWkXkIVtg/JGRSIABdBoMsoIeoHQHPTL0Y2E7xf5Oj7sLqwVsNXOkNk0VJc7vF0IMBsPeikHxFjGe+qmwPtTQ== dependencies: - "@babel/helper-module-transforms" "^7.8.3" + "@babel/helper-module-transforms" "^7.9.0" "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-transform-named-capturing-groups-regex@^7.8.3": @@ -557,12 +612,11 @@ "@babel/helper-plugin-utils" "^7.8.3" "@babel/helper-replace-supers" "^7.8.3" -"@babel/plugin-transform-parameters@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-parameters/download/@babel/plugin-transform-parameters-7.8.3.tgz#7890576a13b17325d8b7d44cb37f21dc3bbdda59" - integrity sha1-eJBXahOxcyXYt9RMs38h3Du92lk= +"@babel/plugin-transform-parameters@^7.8.7": + version "7.9.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.9.3.tgz#3028d0cc20ddc733166c6e9c8534559cee09f54a" + integrity sha512-fzrQFQhp7mIhOzmOtPiKffvCYQSK10NR8t6BBz2yPbeUHb9OLW8RZGtgDRBn8z2hGcwvKDL3vC7ojPTLNxmqEg== dependencies: - "@babel/helper-call-delegate" "^7.8.3" "@babel/helper-get-function-arity" "^7.8.3" "@babel/helper-plugin-utils" "^7.8.3" @@ -573,12 +627,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-regenerator@^7.7.0", "@babel/plugin-transform-regenerator@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-regenerator/download/@babel/plugin-transform-regenerator-7.8.3.tgz#b31031e8059c07495bf23614c97f3d9698bc6ec8" - integrity sha1-sxAx6AWcB0lb8jYUyX89lpi8bsg= +"@babel/plugin-transform-regenerator@^7.8.7": + version "7.8.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.7.tgz#5e46a0dca2bee1ad8285eb0527e6abc9c37672f8" + integrity sha512-TIg+gAl4Z0a3WmD3mbYSk+J9ZUH6n/Yc57rtKRnlA/7rcCvpekHXe0CMZHP1gYp7/KLe9GHTuIba0vXmls6drA== dependencies: - regenerator-transform "^0.14.0" + regenerator-transform "^0.14.2" "@babel/plugin-transform-reserved-words@^7.8.3": version "7.8.3" @@ -587,10 +641,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-runtime@^7.6.2": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-runtime/download/@babel/plugin-transform-runtime-7.8.3.tgz?cache=0&sync_timestamp=1578956763605&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-runtime%2Fdownload%2F%40babel%2Fplugin-transform-runtime-7.8.3.tgz#c0153bc0a5375ebc1f1591cb7eea223adea9f169" - integrity sha1-wBU7wKU3XrwfFZHLfuoiOt6p8Wk= +"@babel/plugin-transform-runtime@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.9.0.tgz#45468c0ae74cc13204e1d3b1f4ce6ee83258af0b" + integrity sha512-pUu9VSf3kI1OqbWINQ7MaugnitRss1z533436waNXp+0N3ur3zfut37sXiQMxkuCF4VUjwZucen/quskCh7NHw== dependencies: "@babel/helper-module-imports" "^7.8.3" "@babel/helper-plugin-utils" "^7.8.3" @@ -627,10 +681,10 @@ "@babel/helper-annotate-as-pure" "^7.8.3" "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-transform-typeof-symbol@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-typeof-symbol/download/@babel/plugin-transform-typeof-symbol-7.8.3.tgz#5cffb216fb25c8c64ba6bf5f76ce49d3ab079f4d" - integrity sha1-XP+yFvslyMZLpr9fds5J06sHn00= +"@babel/plugin-transform-typeof-symbol@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.4.tgz#ede4062315ce0aaf8a657a920858f1a2f35fc412" + integrity sha512-2QKyfjGdvuNfHsb7qnBBlKclbD4CfshH2KvDabiijLMGXPHJXGxtDzwIF7bQP+T0ysw8fYTtxPafgfs/c1Lrqg== dependencies: "@babel/helper-plugin-utils" "^7.8.3" @@ -642,27 +696,29 @@ "@babel/helper-create-regexp-features-plugin" "^7.8.3" "@babel/helper-plugin-utils" "^7.8.3" -"@babel/preset-env@^7.7.1": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/preset-env/download/@babel/preset-env-7.8.3.tgz?cache=0&sync_timestamp=1578956763831&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fpreset-env%2Fdownload%2F%40babel%2Fpreset-env-7.8.3.tgz#dc0fb2938f52bbddd79b3c861a4b3427dd3a6c54" - integrity sha1-3A+yk49Su93XmzyGGks0J906bFQ= +"@babel/preset-env@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.9.0.tgz#a5fc42480e950ae8f5d9f8f2bbc03f52722df3a8" + integrity sha512-712DeRXT6dyKAM/FMbQTV/FvRCms2hPCx+3weRjZ8iQVQWZejWWk1wwG6ViWMyqb/ouBbGOl5b6aCk0+j1NmsQ== dependencies: - "@babel/compat-data" "^7.8.0" - "@babel/helper-compilation-targets" "^7.8.3" + "@babel/compat-data" "^7.9.0" + "@babel/helper-compilation-targets" "^7.8.7" "@babel/helper-module-imports" "^7.8.3" "@babel/helper-plugin-utils" "^7.8.3" "@babel/plugin-proposal-async-generator-functions" "^7.8.3" "@babel/plugin-proposal-dynamic-import" "^7.8.3" "@babel/plugin-proposal-json-strings" "^7.8.3" "@babel/plugin-proposal-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-proposal-object-rest-spread" "^7.8.3" + "@babel/plugin-proposal-numeric-separator" "^7.8.3" + "@babel/plugin-proposal-object-rest-spread" "^7.9.0" "@babel/plugin-proposal-optional-catch-binding" "^7.8.3" - "@babel/plugin-proposal-optional-chaining" "^7.8.3" + "@babel/plugin-proposal-optional-chaining" "^7.9.0" "@babel/plugin-proposal-unicode-property-regex" "^7.8.3" "@babel/plugin-syntax-async-generators" "^7.8.0" "@babel/plugin-syntax-dynamic-import" "^7.8.0" "@babel/plugin-syntax-json-strings" "^7.8.0" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" + "@babel/plugin-syntax-numeric-separator" "^7.8.0" "@babel/plugin-syntax-object-rest-spread" "^7.8.0" "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" "@babel/plugin-syntax-optional-chaining" "^7.8.0" @@ -671,46 +727,58 @@ "@babel/plugin-transform-async-to-generator" "^7.8.3" "@babel/plugin-transform-block-scoped-functions" "^7.8.3" "@babel/plugin-transform-block-scoping" "^7.8.3" - "@babel/plugin-transform-classes" "^7.8.3" + "@babel/plugin-transform-classes" "^7.9.0" "@babel/plugin-transform-computed-properties" "^7.8.3" "@babel/plugin-transform-destructuring" "^7.8.3" "@babel/plugin-transform-dotall-regex" "^7.8.3" "@babel/plugin-transform-duplicate-keys" "^7.8.3" "@babel/plugin-transform-exponentiation-operator" "^7.8.3" - "@babel/plugin-transform-for-of" "^7.8.3" + "@babel/plugin-transform-for-of" "^7.9.0" "@babel/plugin-transform-function-name" "^7.8.3" "@babel/plugin-transform-literals" "^7.8.3" "@babel/plugin-transform-member-expression-literals" "^7.8.3" - "@babel/plugin-transform-modules-amd" "^7.8.3" - "@babel/plugin-transform-modules-commonjs" "^7.8.3" - "@babel/plugin-transform-modules-systemjs" "^7.8.3" - "@babel/plugin-transform-modules-umd" "^7.8.3" + "@babel/plugin-transform-modules-amd" "^7.9.0" + "@babel/plugin-transform-modules-commonjs" "^7.9.0" + "@babel/plugin-transform-modules-systemjs" "^7.9.0" + "@babel/plugin-transform-modules-umd" "^7.9.0" "@babel/plugin-transform-named-capturing-groups-regex" "^7.8.3" "@babel/plugin-transform-new-target" "^7.8.3" "@babel/plugin-transform-object-super" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.8.7" "@babel/plugin-transform-property-literals" "^7.8.3" - "@babel/plugin-transform-regenerator" "^7.8.3" + "@babel/plugin-transform-regenerator" "^7.8.7" "@babel/plugin-transform-reserved-words" "^7.8.3" "@babel/plugin-transform-shorthand-properties" "^7.8.3" "@babel/plugin-transform-spread" "^7.8.3" "@babel/plugin-transform-sticky-regex" "^7.8.3" "@babel/plugin-transform-template-literals" "^7.8.3" - "@babel/plugin-transform-typeof-symbol" "^7.8.3" + "@babel/plugin-transform-typeof-symbol" "^7.8.4" "@babel/plugin-transform-unicode-regex" "^7.8.3" - "@babel/types" "^7.8.3" - browserslist "^4.8.2" + "@babel/preset-modules" "^0.1.3" + "@babel/types" "^7.9.0" + browserslist "^4.9.1" core-js-compat "^3.6.2" invariant "^2.2.2" - levenary "^1.1.0" + levenary "^1.1.1" semver "^5.5.0" -"@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/runtime/download/@babel/runtime-7.8.3.tgz#0811944f73a6c926bb2ad35e918dcc1bfab279f1" - integrity sha1-CBGUT3OmySa7KtNekY3MG/qyefE= +"@babel/preset-modules@^0.1.3": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.3.tgz#13242b53b5ef8c883c3cf7dddd55b36ce80fbc72" + integrity sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" + "@babel/plugin-transform-dotall-regex" "^7.4.4" + "@babel/types" "^7.4.4" + esutils "^2.0.2" + +"@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2": + version "7.9.2" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.9.2.tgz#d90df0583a3a252f09aaa619665367bae518db06" + integrity sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q== dependencies: - regenerator-runtime "^0.13.2" + regenerator-runtime "^0.13.4" "@babel/template@^7.8.3": version "7.8.3" @@ -721,6 +789,15 @@ "@babel/parser" "^7.8.3" "@babel/types" "^7.8.3" +"@babel/template@^7.8.6": + version "7.8.6" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.8.6.tgz#86b22af15f828dfb086474f964dcc3e39c43ce2b" + integrity sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg== + dependencies: + "@babel/code-frame" "^7.8.3" + "@babel/parser" "^7.8.6" + "@babel/types" "^7.8.6" + "@babel/traverse@^7.8.3": version "7.8.3" resolved "https://registry.npm.taobao.org/@babel/traverse/download/@babel/traverse-7.8.3.tgz#a826215b011c9b4f73f3a893afbc05151358bf9a" @@ -736,6 +813,30 @@ globals "^11.1.0" lodash "^4.17.13" +"@babel/traverse@^7.8.6", "@babel/traverse@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.9.0.tgz#d3882c2830e513f4fe4cec9fe76ea1cc78747892" + integrity sha512-jAZQj0+kn4WTHO5dUZkZKhbFrqZE7K5LAQ5JysMnmvGij+wOdr+8lWqPeW0BcF4wFwrEXXtdGO7wcV6YPJcf3w== + dependencies: + "@babel/code-frame" "^7.8.3" + "@babel/generator" "^7.9.0" + "@babel/helper-function-name" "^7.8.3" + "@babel/helper-split-export-declaration" "^7.8.3" + "@babel/parser" "^7.9.0" + "@babel/types" "^7.9.0" + debug "^4.1.0" + globals "^11.1.0" + lodash "^4.17.13" + +"@babel/types@^7.4.4", "@babel/types@^7.8.6", "@babel/types@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.9.0.tgz#00b064c3df83ad32b2dbf5ff07312b15c7f1efb5" + integrity sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng== + dependencies: + "@babel/helper-validator-identifier" "^7.9.0" + lodash "^4.17.13" + to-fast-properties "^2.0.0" + "@babel/types@^7.8.3": version "7.8.3" resolved "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.8.3.tgz#5a383dffa5416db1b73dedffd311ffd0788fb31c" @@ -827,48 +928,48 @@ resolved "https://registry.npm.taobao.org/@rails/ujs/download/@rails/ujs-6.0.2.tgz#8d32452d51c5e115374a218fb5475803dc17f4c0" integrity sha1-jTJFLVHF4RU3SiGPtUdYA9wX9MA= -"@rails/webpacker@^4.2.2": - version "4.2.2" - resolved "https://registry.npm.taobao.org/@rails/webpacker/download/@rails/webpacker-4.2.2.tgz#b9dd3235fdf4d0badbda8e33f6ebee742a9f3abb" - integrity sha1-ud0yNf300Lrb2o4z9uvudCqfOrs= - dependencies: - "@babel/core" "^7.7.2" - "@babel/plugin-proposal-class-properties" "^7.7.0" - "@babel/plugin-proposal-object-rest-spread" "^7.6.2" - "@babel/plugin-syntax-dynamic-import" "^7.2.0" - "@babel/plugin-transform-destructuring" "^7.6.0" - "@babel/plugin-transform-regenerator" "^7.7.0" - "@babel/plugin-transform-runtime" "^7.6.2" - "@babel/preset-env" "^7.7.1" - "@babel/runtime" "^7.7.2" - babel-loader "^8.0.6" +"@rails/webpacker@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@rails/webpacker/-/webpacker-5.0.1.tgz#f7bdb8d0b36e41aa2f219aad332f50194ad4fc46" + integrity sha512-r74Od+YO5OxkrePNLL9M3Mi3DQNPLSXkv+cGDdiFvTGeFc+VtI8j0sNGoulBMlEZFH8GVlb7LLy/FVLjPJq1/Q== + dependencies: + "@babel/core" "^7.9.0" + "@babel/plugin-proposal-class-properties" "^7.8.3" + "@babel/plugin-proposal-object-rest-spread" "^7.9.0" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-transform-destructuring" "^7.8.8" + "@babel/plugin-transform-regenerator" "^7.8.7" + "@babel/plugin-transform-runtime" "^7.9.0" + "@babel/preset-env" "^7.9.0" + "@babel/runtime" "^7.9.2" + babel-loader "^8.1.0" babel-plugin-dynamic-import-node "^2.3.0" - babel-plugin-macros "^2.6.1" - case-sensitive-paths-webpack-plugin "^2.2.0" - compression-webpack-plugin "^3.0.0" - core-js "^3.4.0" - css-loader "^3.2.0" - file-loader "^4.2.0" + babel-plugin-macros "^2.8.0" + case-sensitive-paths-webpack-plugin "^2.3.0" + compression-webpack-plugin "^3.1.0" + core-js "^3.6.4" + css-loader "^3.4.2" + file-loader "^6.0.0" flatted "^2.0.1" glob "^7.1.6" js-yaml "^3.13.1" - mini-css-extract-plugin "^0.8.0" - node-sass "^4.13.0" + mini-css-extract-plugin "^0.9.0" + node-sass "^4.13.1" optimize-css-assets-webpack-plugin "^5.0.3" path-complete-extname "^1.0.0" - pnp-webpack-plugin "^1.5.0" - postcss-flexbugs-fixes "^4.1.0" + pnp-webpack-plugin "^1.6.4" + postcss-flexbugs-fixes "^4.2.0" postcss-import "^12.0.1" postcss-loader "^3.0.0" postcss-preset-env "^6.7.0" - postcss-safe-parser "^4.0.1" - regenerator-runtime "^0.13.3" - sass-loader "7.3.1" - style-loader "^1.0.0" - terser-webpack-plugin "^2.2.1" - webpack "^4.41.2" + postcss-safe-parser "^4.0.2" + regenerator-runtime "^0.13.5" + sass-loader "^8.0.2" + style-loader "^1.1.3" + terser-webpack-plugin "^2.3.5" + webpack "^4.42.1" webpack-assets-manifest "^3.1.1" - webpack-cli "^3.3.10" + webpack-cli "^3.3.11" webpack-sources "^1.4.3" "@sindresorhus/is@^0.14.0": @@ -937,150 +1038,149 @@ resolved "https://registry.npm.taobao.org/@types/q/download/@types/q-1.5.2.tgz#690a1475b84f2a884fd07cd797c00f5f31356ea8" integrity sha1-aQoUdbhPKohP0HzXl8APXzE1bqg= -"@webassemblyjs/ast@1.8.5": - version "1.8.5" - resolved "https://registry.npm.taobao.org/@webassemblyjs/ast/download/@webassemblyjs/ast-1.8.5.tgz#51b1c5fe6576a34953bf4b253df9f0d490d9e359" - integrity sha1-UbHF/mV2o0lTv0slPfnw1JDZ41k= - dependencies: - "@webassemblyjs/helper-module-context" "1.8.5" - "@webassemblyjs/helper-wasm-bytecode" "1.8.5" - "@webassemblyjs/wast-parser" "1.8.5" - -"@webassemblyjs/floating-point-hex-parser@1.8.5": - version "1.8.5" - resolved "https://registry.npm.taobao.org/@webassemblyjs/floating-point-hex-parser/download/@webassemblyjs/floating-point-hex-parser-1.8.5.tgz#1ba926a2923613edce496fd5b02e8ce8a5f49721" - integrity sha1-G6kmopI2E+3OSW/VsC6M6KX0lyE= - -"@webassemblyjs/helper-api-error@1.8.5": - version "1.8.5" - resolved "https://registry.npm.taobao.org/@webassemblyjs/helper-api-error/download/@webassemblyjs/helper-api-error-1.8.5.tgz#c49dad22f645227c5edb610bdb9697f1aab721f7" - integrity sha1-xJ2tIvZFInxe22EL25aX8aq3Ifc= - -"@webassemblyjs/helper-buffer@1.8.5": - version "1.8.5" - resolved "https://registry.npm.taobao.org/@webassemblyjs/helper-buffer/download/@webassemblyjs/helper-buffer-1.8.5.tgz#fea93e429863dd5e4338555f42292385a653f204" - integrity sha1-/qk+Qphj3V5DOFVfQikjhaZT8gQ= - -"@webassemblyjs/helper-code-frame@1.8.5": - version "1.8.5" - resolved "https://registry.npm.taobao.org/@webassemblyjs/helper-code-frame/download/@webassemblyjs/helper-code-frame-1.8.5.tgz#9a740ff48e3faa3022b1dff54423df9aa293c25e" - integrity sha1-mnQP9I4/qjAisd/1RCPfmqKTwl4= - dependencies: - "@webassemblyjs/wast-printer" "1.8.5" - -"@webassemblyjs/helper-fsm@1.8.5": - version "1.8.5" - resolved "https://registry.npm.taobao.org/@webassemblyjs/helper-fsm/download/@webassemblyjs/helper-fsm-1.8.5.tgz#ba0b7d3b3f7e4733da6059c9332275d860702452" - integrity sha1-ugt9Oz9+RzPaYFnJMyJ12GBwJFI= - -"@webassemblyjs/helper-module-context@1.8.5": - version "1.8.5" - resolved "https://registry.npm.taobao.org/@webassemblyjs/helper-module-context/download/@webassemblyjs/helper-module-context-1.8.5.tgz#def4b9927b0101dc8cbbd8d1edb5b7b9c82eb245" - integrity sha1-3vS5knsBAdyMu9jR7bW3ucguskU= - dependencies: - "@webassemblyjs/ast" "1.8.5" - mamacro "^0.0.3" - -"@webassemblyjs/helper-wasm-bytecode@1.8.5": - version "1.8.5" - resolved "https://registry.npm.taobao.org/@webassemblyjs/helper-wasm-bytecode/download/@webassemblyjs/helper-wasm-bytecode-1.8.5.tgz#537a750eddf5c1e932f3744206551c91c1b93e61" - integrity sha1-U3p1Dt31weky83RCBlUckcG5PmE= - -"@webassemblyjs/helper-wasm-section@1.8.5": - version "1.8.5" - resolved "https://registry.npm.taobao.org/@webassemblyjs/helper-wasm-section/download/@webassemblyjs/helper-wasm-section-1.8.5.tgz#74ca6a6bcbe19e50a3b6b462847e69503e6bfcbf" - integrity sha1-dMpqa8vhnlCjtrRihH5pUD5r/L8= - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-buffer" "1.8.5" - "@webassemblyjs/helper-wasm-bytecode" "1.8.5" - "@webassemblyjs/wasm-gen" "1.8.5" - -"@webassemblyjs/ieee754@1.8.5": - version "1.8.5" - resolved "https://registry.npm.taobao.org/@webassemblyjs/ieee754/download/@webassemblyjs/ieee754-1.8.5.tgz#712329dbef240f36bf57bd2f7b8fb9bf4154421e" - integrity sha1-cSMp2+8kDza/V70ve4+5v0FUQh4= +"@webassemblyjs/ast@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" + integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA== + dependencies: + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/wast-parser" "1.9.0" + +"@webassemblyjs/floating-point-hex-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" + integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== + +"@webassemblyjs/helper-api-error@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" + integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== + +"@webassemblyjs/helper-buffer@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" + integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== + +"@webassemblyjs/helper-code-frame@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27" + integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA== + dependencies: + "@webassemblyjs/wast-printer" "1.9.0" + +"@webassemblyjs/helper-fsm@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8" + integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== + +"@webassemblyjs/helper-module-context@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07" + integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g== + dependencies: + "@webassemblyjs/ast" "1.9.0" + +"@webassemblyjs/helper-wasm-bytecode@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" + integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== + +"@webassemblyjs/helper-wasm-section@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" + integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + +"@webassemblyjs/ieee754@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" + integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg== dependencies: "@xtuc/ieee754" "^1.2.0" -"@webassemblyjs/leb128@1.8.5": - version "1.8.5" - resolved "https://registry.npm.taobao.org/@webassemblyjs/leb128/download/@webassemblyjs/leb128-1.8.5.tgz#044edeb34ea679f3e04cd4fd9824d5e35767ae10" - integrity sha1-BE7es06mefPgTNT9mCTV41dnrhA= +"@webassemblyjs/leb128@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" + integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw== dependencies: "@xtuc/long" "4.2.2" -"@webassemblyjs/utf8@1.8.5": - version "1.8.5" - resolved "https://registry.npm.taobao.org/@webassemblyjs/utf8/download/@webassemblyjs/utf8-1.8.5.tgz#a8bf3b5d8ffe986c7c1e373ccbdc2a0915f0cedc" - integrity sha1-qL87XY/+mGx8Hjc8y9wqCRXwztw= - -"@webassemblyjs/wasm-edit@1.8.5": - version "1.8.5" - resolved "https://registry.npm.taobao.org/@webassemblyjs/wasm-edit/download/@webassemblyjs/wasm-edit-1.8.5.tgz#962da12aa5acc1c131c81c4232991c82ce56e01a" - integrity sha1-li2hKqWswcExyBxCMpkcgs5W4Bo= - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-buffer" "1.8.5" - "@webassemblyjs/helper-wasm-bytecode" "1.8.5" - "@webassemblyjs/helper-wasm-section" "1.8.5" - "@webassemblyjs/wasm-gen" "1.8.5" - "@webassemblyjs/wasm-opt" "1.8.5" - "@webassemblyjs/wasm-parser" "1.8.5" - "@webassemblyjs/wast-printer" "1.8.5" - -"@webassemblyjs/wasm-gen@1.8.5": - version "1.8.5" - resolved "https://registry.npm.taobao.org/@webassemblyjs/wasm-gen/download/@webassemblyjs/wasm-gen-1.8.5.tgz#54840766c2c1002eb64ed1abe720aded714f98bc" - integrity sha1-VIQHZsLBAC62TtGr5yCt7XFPmLw= - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-wasm-bytecode" "1.8.5" - "@webassemblyjs/ieee754" "1.8.5" - "@webassemblyjs/leb128" "1.8.5" - "@webassemblyjs/utf8" "1.8.5" - -"@webassemblyjs/wasm-opt@1.8.5": - version "1.8.5" - resolved "https://registry.npm.taobao.org/@webassemblyjs/wasm-opt/download/@webassemblyjs/wasm-opt-1.8.5.tgz#b24d9f6ba50394af1349f510afa8ffcb8a63d264" - integrity sha1-sk2fa6UDlK8TSfUQr6j/y4pj0mQ= - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-buffer" "1.8.5" - "@webassemblyjs/wasm-gen" "1.8.5" - "@webassemblyjs/wasm-parser" "1.8.5" - -"@webassemblyjs/wasm-parser@1.8.5": - version "1.8.5" - resolved "https://registry.npm.taobao.org/@webassemblyjs/wasm-parser/download/@webassemblyjs/wasm-parser-1.8.5.tgz#21576f0ec88b91427357b8536383668ef7c66b8d" - integrity sha1-IVdvDsiLkUJzV7hTY4NmjvfGa40= - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-api-error" "1.8.5" - "@webassemblyjs/helper-wasm-bytecode" "1.8.5" - "@webassemblyjs/ieee754" "1.8.5" - "@webassemblyjs/leb128" "1.8.5" - "@webassemblyjs/utf8" "1.8.5" - -"@webassemblyjs/wast-parser@1.8.5": - version "1.8.5" - resolved "https://registry.npm.taobao.org/@webassemblyjs/wast-parser/download/@webassemblyjs/wast-parser-1.8.5.tgz#e10eecd542d0e7bd394f6827c49f3df6d4eefb8c" - integrity sha1-4Q7s1ULQ5705T2gnxJ899tTu+4w= - dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/floating-point-hex-parser" "1.8.5" - "@webassemblyjs/helper-api-error" "1.8.5" - "@webassemblyjs/helper-code-frame" "1.8.5" - "@webassemblyjs/helper-fsm" "1.8.5" +"@webassemblyjs/utf8@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" + integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== + +"@webassemblyjs/wasm-edit@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" + integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/helper-wasm-section" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/wasm-opt" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + "@webassemblyjs/wast-printer" "1.9.0" + +"@webassemblyjs/wasm-gen@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" + integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/ieee754" "1.9.0" + "@webassemblyjs/leb128" "1.9.0" + "@webassemblyjs/utf8" "1.9.0" + +"@webassemblyjs/wasm-opt@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" + integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + +"@webassemblyjs/wasm-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" + integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-api-error" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/ieee754" "1.9.0" + "@webassemblyjs/leb128" "1.9.0" + "@webassemblyjs/utf8" "1.9.0" + +"@webassemblyjs/wast-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914" + integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/floating-point-hex-parser" "1.9.0" + "@webassemblyjs/helper-api-error" "1.9.0" + "@webassemblyjs/helper-code-frame" "1.9.0" + "@webassemblyjs/helper-fsm" "1.9.0" "@xtuc/long" "4.2.2" -"@webassemblyjs/wast-printer@1.8.5": - version "1.8.5" - resolved "https://registry.npm.taobao.org/@webassemblyjs/wast-printer/download/@webassemblyjs/wast-printer-1.8.5.tgz#114bbc481fd10ca0e23b3560fa812748b0bae5bc" - integrity sha1-EUu8SB/RDKDiOzVg+oEnSLC65bw= +"@webassemblyjs/wast-printer@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" + integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA== dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/wast-parser" "1.8.5" + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/wast-parser" "1.9.0" "@xtuc/long" "4.2.2" "@xtuc/ieee754@^1.2.0": @@ -1244,6 +1344,16 @@ ajv@^6.1.0, ajv@^6.10.2, ajv@^6.5.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" +ajv@^6.12.0: + version "6.12.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.0.tgz#06d60b96d87b8454a5adaba86e7854da629db4b7" + integrity sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + alphanum-sort@^1.0.0: version "1.0.2" resolved "https://registry.npm.taobao.org/alphanum-sort/download/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" @@ -1504,15 +1614,16 @@ aws4@^1.8.0: resolved "https://registry.npm.taobao.org/aws4/download/aws4-1.9.1.tgz?cache=0&sync_timestamp=1578958189607&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Faws4%2Fdownload%2Faws4-1.9.1.tgz#7e33d8f7d449b3f673cd72deb9abdc552dbe528e" integrity sha1-fjPY99RJs/ZzzXLeuavcVS2+Uo4= -babel-loader@^8.0.6: - version "8.0.6" - resolved "https://registry.npm.taobao.org/babel-loader/download/babel-loader-8.0.6.tgz#e33bdb6f362b03f4bb141a0c21ab87c501b70dfb" - integrity sha1-4zvbbzYrA/S7FBoMIauHxQG3Dfs= +babel-loader@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.1.0.tgz#c611d5112bd5209abe8b9fa84c3e4da25275f1c3" + integrity sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw== dependencies: - find-cache-dir "^2.0.0" - loader-utils "^1.0.2" - mkdirp "^0.5.1" + find-cache-dir "^2.1.0" + loader-utils "^1.4.0" + mkdirp "^0.5.3" pify "^4.0.1" + schema-utils "^2.6.5" babel-plugin-dynamic-import-node@^2.3.0: version "2.3.0" @@ -1521,10 +1632,10 @@ babel-plugin-dynamic-import-node@^2.3.0: dependencies: object.assign "^4.1.0" -babel-plugin-macros@^2.6.1: +babel-plugin-macros@^2.8.0: version "2.8.0" - resolved "https://registry.npm.taobao.org/babel-plugin-macros/download/babel-plugin-macros-2.8.0.tgz#0f958a7cc6556b1e65344465d99111a1e5e10138" - integrity sha1-D5WKfMZVax5lNERl2ZERoeXhATg= + resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz#0f958a7cc6556b1e65344465d99111a1e5e10138" + integrity sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg== dependencies: "@babel/runtime" "^7.7.2" cosmiconfig "^6.0.0" @@ -1819,7 +1930,7 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@^4.0.0, browserslist@^4.6.4, browserslist@^4.8.0, browserslist@^4.8.2, browserslist@^4.8.3: +browserslist@^4.0.0, browserslist@^4.6.4, browserslist@^4.8.0, browserslist@^4.8.3: version "4.8.3" resolved "https://registry.npm.taobao.org/browserslist/download/browserslist-4.8.3.tgz#65802fcd77177c878e015f0e3189f2c4f627ba44" integrity sha1-ZYAvzXcXfIeOAV8OMYnyxPYnukQ= @@ -1828,6 +1939,16 @@ browserslist@^4.0.0, browserslist@^4.6.4, browserslist@^4.8.0, browserslist@^4.8 electron-to-chromium "^1.3.322" node-releases "^1.1.44" +browserslist@^4.9.1: + version "4.11.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.11.1.tgz#92f855ee88d6e050e7e7311d987992014f1a1f1b" + integrity sha512-DCTr3kDrKEYNw6Jb9HFxVLQNaue8z+0ZfRBRjmCunKDEXEBajKDj2Y+Uelg+Pi29OnvaSGwjOsnRyNEkXzHg5g== + dependencies: + caniuse-lite "^1.0.30001038" + electron-to-chromium "^1.3.390" + node-releases "^1.1.53" + pkg-up "^2.0.0" + bs-custom-file-input@^1.3.4: version "1.3.4" resolved "https://registry.yarnpkg.com/bs-custom-file-input/-/bs-custom-file-input-1.3.4.tgz#c275cb8d4f1c02ba026324292509fa9a747dbda8" @@ -2040,10 +2161,15 @@ caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001012, can resolved "https://registry.npm.taobao.org/caniuse-lite/download/caniuse-lite-1.0.30001020.tgz#3f04c1737500ffda78be9beb0b5c1e2070e15926" integrity sha1-PwTBc3UA/9p4vpvrC1weIHDhWSY= -case-sensitive-paths-webpack-plugin@^2.2.0: - version "2.2.0" - resolved "https://registry.npm.taobao.org/case-sensitive-paths-webpack-plugin/download/case-sensitive-paths-webpack-plugin-2.2.0.tgz#3371ef6365ef9c25fa4b81c16ace0e9c7dc58c3e" - integrity sha1-M3HvY2XvnCX6S4HBas4OnH3FjD4= +caniuse-lite@^1.0.30001038: + version "1.0.30001038" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001038.tgz#44da3cbca2ab6cb6aa83d1be5d324e17f141caff" + integrity sha512-zii9quPo96XfOiRD4TrfYGs+QsGZpb2cGiMAzPjtf/hpFgB6zCPZgJb7I1+EATeMw/o+lG8FyRAnI+CWStHcaQ== + +case-sensitive-paths-webpack-plugin@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.3.0.tgz#23ac613cc9a856e4f88ff8bb73bbb5e989825cf7" + integrity sha512-/4YgnZS8y1UXXmC02xD5rRrBEu6T5ub+mQHLNRj0fzTRbgdBYhsNo2V5EqwgqrExjxsjtF/OpAKAMkKsxbD5XQ== caseless@~0.12.0: version "0.12.0" @@ -2331,10 +2457,10 @@ compressible@~2.0.16: dependencies: mime-db ">= 1.43.0 < 2" -compression-webpack-plugin@^3.0.0: +compression-webpack-plugin@^3.1.0: version "3.1.0" - resolved "https://registry.npm.taobao.org/compression-webpack-plugin/download/compression-webpack-plugin-3.1.0.tgz?cache=0&sync_timestamp=1578567974071&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcompression-webpack-plugin%2Fdownload%2Fcompression-webpack-plugin-3.1.0.tgz#9f510172a7b5fae5aad3b670652e8bd7997aeeca" - integrity sha1-n1EBcqe1+uWq07ZwZS6L15l67so= + resolved "https://registry.yarnpkg.com/compression-webpack-plugin/-/compression-webpack-plugin-3.1.0.tgz#9f510172a7b5fae5aad3b670652e8bd7997aeeca" + integrity sha512-iqTHj3rADN4yHwXMBrQa/xrncex/uEQy8QHlaTKxGchT/hC0SdlJlmL/5eRqffmWq2ep0/Romw6Ld39JjTR/ug== dependencies: cacache "^13.0.1" find-cache-dir "^3.0.0" @@ -2462,10 +2588,10 @@ core-js@^2.4.0: resolved "https://registry.npm.taobao.org/core-js/download/core-js-2.6.11.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" integrity sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw= -core-js@^3.4.0: +core-js@^3.6.4: version "3.6.4" - resolved "https://registry.npm.taobao.org/core-js/download/core-js-3.6.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-3.6.4.tgz#440a83536b458114b9cb2ac1580ba377dc470647" - integrity sha1-RAqDU2tFgRS5yyrBWAujd9xHBkc= + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.6.4.tgz#440a83536b458114b9cb2ac1580ba377dc470647" + integrity sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw== core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" @@ -2598,10 +2724,10 @@ css-has-pseudo@^0.10.0: postcss "^7.0.6" postcss-selector-parser "^5.0.0-rc.4" -css-loader@^3.2.0: +css-loader@^3.4.2: version "3.4.2" - resolved "https://registry.npm.taobao.org/css-loader/download/css-loader-3.4.2.tgz?cache=0&sync_timestamp=1578676111891&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-loader%2Fdownload%2Fcss-loader-3.4.2.tgz#d3fdb3358b43f233b78501c5ed7b1c6da6133202" - integrity sha1-0/2zNYtD8jO3hQHF7XscbaYTMgI= + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-3.4.2.tgz#d3fdb3358b43f233b78501c5ed7b1c6da6133202" + integrity sha512-jYq4zdZT0oS0Iykt+fqnzVLRIeiPWhka+7BqPn+oSIpWJAHak5tmB/WZrJ2a21JhCeFyNnnlroSl8c+MtVndzA== dependencies: camelcase "^5.3.1" cssesc "^3.0.0" @@ -3273,6 +3399,11 @@ electron-to-chromium@^1.3.322: resolved "https://registry.npm.taobao.org/electron-to-chromium/download/electron-to-chromium-1.3.333.tgz?cache=0&sync_timestamp=1578963913491&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Felectron-to-chromium%2Fdownload%2Felectron-to-chromium-1.3.333.tgz#b835de183afbaaf8655a14f542db06d67a00cba1" integrity sha1-uDXeGDr7qvhlWhT1QtsG1noAy6E= +electron-to-chromium@^1.3.390: + version "1.3.393" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.393.tgz#d13fa4cbf5065e18451c84465d22aef6aca9a911" + integrity sha512-Ko3/VdhZAaMaJBLBFqEJ+M1qMiBI8sJfPY/hSJvDrkB3Do8LJsL9tmXy4w7o9nPXif/jFaZGSlXTQWU8XVsYtg== + elliptic@^6.0.0: version "6.5.2" resolved "https://registry.npm.taobao.org/elliptic/download/elliptic-6.5.2.tgz#05c5678d7173c049d8ca433552224a495d0e3762" @@ -3301,6 +3432,11 @@ emojis-list@^2.0.0: resolved "https://registry.npm.taobao.org/emojis-list/download/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.npm.taobao.org/encodeurl/download/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" @@ -3733,6 +3869,11 @@ fast-deep-equal@^2.0.1: resolved "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-2.0.1.tgz?cache=0&sync_timestamp=1575383928809&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-deep-equal%2Fdownload%2Ffast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= +fast-deep-equal@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4" + integrity sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA== + fast-diff@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" @@ -3777,13 +3918,13 @@ figgy-pudding@^3.5.1: resolved "https://registry.npm.taobao.org/figgy-pudding/download/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790" integrity sha1-hiRwESkBxyeg5JWoB0S9W6odZ5A= -file-loader@^4.2.0: - version "4.3.0" - resolved "https://registry.npm.taobao.org/file-loader/download/file-loader-4.3.0.tgz?cache=0&sync_timestamp=1574689320406&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffile-loader%2Fdownload%2Ffile-loader-4.3.0.tgz#780f040f729b3d18019f20605f723e844b8a58af" - integrity sha1-eA8ED3KbPRgBnyBgX3I+hEuKWK8= +file-loader@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.0.0.tgz#97bbfaab7a2460c07bcbd72d3a6922407f67649f" + integrity sha512-/aMOAYEFXDdjG0wytpTL5YQLfZnnTmLNjn+AIrJ/6HVnTfDqLsVKUUwkDf4I4kgex36BvjuXEn/TX9B/1ESyqQ== dependencies: - loader-utils "^1.2.3" - schema-utils "^2.5.0" + loader-utils "^2.0.0" + schema-utils "^2.6.5" file-uri-to-path@1.0.0: version "1.0.0" @@ -3826,7 +3967,7 @@ finalhandler@~1.1.2: statuses "~1.5.0" unpipe "~1.0.0" -find-cache-dir@^2.0.0, find-cache-dir@^2.1.0: +find-cache-dir@^2.1.0: version "2.1.0" resolved "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" integrity sha1-jQ+UzRP+Q8bHwmGg2GEVypGMBfc= @@ -3860,6 +4001,13 @@ find-up@^1.0.0: path-exists "^2.0.0" pinkie-promise "^2.0.0" +find-up@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= + dependencies: + locate-path "^2.0.0" + find-up@^3.0.0: version "3.0.0" resolved "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" @@ -5052,13 +5200,13 @@ isstream@~0.1.2: resolved "https://registry.npm.taobao.org/isstream/download/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= -jest-worker@^24.9.0: - version "24.9.0" - resolved "https://registry.npm.taobao.org/jest-worker/download/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5" - integrity sha1-Xb/bWy0yLphWeJgjipaXvM5ns+U= +jest-worker@^25.1.0: + version "25.2.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-25.2.1.tgz#209617015c768652646aa33a7828cc2ab472a18a" + integrity sha512-IHnpekk8H/hCUbBlfeaPZzU6v75bqwJp3n4dUrQuQOAgOneI4tx3jV2o8pvlXnDfcRsfkFIUD//HWXpCmR+evQ== dependencies: merge-stream "^2.0.0" - supports-color "^6.1.0" + supports-color "^7.0.0" jju@^1.1.0: version "1.4.0" @@ -5194,14 +5342,7 @@ json5@^1.0.1: dependencies: minimist "^1.2.0" -json5@^2.1.0: - version "2.1.1" - resolved "https://registry.npm.taobao.org/json5/download/json5-2.1.1.tgz#81b6cb04e9ba496f1c7005d07b4368a2638f90b6" - integrity sha1-gbbLBOm6SW8ccAXQe0NoomOPkLY= - dependencies: - minimist "^1.2.0" - -json5@^2.1.1: +json5@^2.1.1, json5@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.2.tgz#43ef1f0af9835dd624751a6b7fa48874fb2d608e" integrity sha512-MoUOQ4WdiN3yxhm7NEVJSJrieAo5hNSLQ5sj05OTRHPL9HOBy8u4Bu88jsC1jvqAdN+E1bJmsUcZH+1HQxliqQ== @@ -5317,10 +5458,10 @@ leven@^3.1.0: resolved "https://registry.npm.taobao.org/leven/download/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" integrity sha1-d4kd6DQGTMy6gq54QrtrFKE+1/I= -levenary@^1.1.0: - version "1.1.0" - resolved "https://registry.npm.taobao.org/levenary/download/levenary-1.1.0.tgz?cache=0&sync_timestamp=1578793882801&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flevenary%2Fdownload%2Flevenary-1.1.0.tgz#fc146fe75f32dc483a0a2c64aef720f602cd6210" - integrity sha1-/BRv518y3Eg6Cixkrvcg9gLNYhA= +levenary@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/levenary/-/levenary-1.1.1.tgz#842a9ee98d2075aa7faeedbe32679e9205f46f77" + integrity sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ== dependencies: leven "^3.1.0" @@ -5378,7 +5519,7 @@ loader-runner@^2.4.0: resolved "https://registry.npm.taobao.org/loader-runner/download/loader-runner-2.4.0.tgz?cache=0&sync_timestamp=1574712098491&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-runner%2Fdownload%2Floader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" integrity sha1-7UcGa/5TTX6ExMe5mYwqdWB9k1c= -loader-utils@1.2.3, loader-utils@^1.0.1, loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3: +loader-utils@1.2.3, loader-utils@^1.1.0, loader-utils@^1.2.3: version "1.2.3" resolved "https://registry.npm.taobao.org/loader-utils/download/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" integrity sha1-H/XcaRHJ8KBiUxpMBLYJQGEIwsc= @@ -5387,6 +5528,32 @@ loader-utils@1.2.3, loader-utils@^1.0.1, loader-utils@^1.0.2, loader-utils@^1.1. emojis-list "^2.0.0" json5 "^1.0.1" +loader-utils@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" + integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^1.0.1" + +loader-utils@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0" + integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^2.1.2" + +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + locate-path@^3.0.0: version "3.0.0" resolved "https://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" @@ -5540,11 +5707,6 @@ make-fetch-happen@^8.0.2: socks-proxy-agent "^5.0.0" ssri "^8.0.0" -mamacro@^0.0.3: - version "0.0.3" - resolved "https://registry.npm.taobao.org/mamacro/download/mamacro-0.0.3.tgz#ad2c9576197c9f1abf308d0787865bd975a3f3e4" - integrity sha1-rSyVdhl8nxq/MI0Hh4Zb2XWj8+Q= - map-age-cleaner@^0.1.1: version "0.1.3" resolved "https://registry.npm.taobao.org/map-age-cleaner/download/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" @@ -5710,10 +5872,10 @@ mimic-response@^1.0.0, mimic-response@^1.0.1: resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== -mini-css-extract-plugin@^0.8.0: - version "0.8.2" - resolved "https://registry.npm.taobao.org/mini-css-extract-plugin/download/mini-css-extract-plugin-0.8.2.tgz?cache=0&sync_timestamp=1576856580721&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmini-css-extract-plugin%2Fdownload%2Fmini-css-extract-plugin-0.8.2.tgz#a875e169beb27c88af77dd962771c9eedc3da161" - integrity sha1-qHXhab6yfIivd92WJ3HJ7tw9oWE= +mini-css-extract-plugin@^0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.9.0.tgz#47f2cf07aa165ab35733b1fc97d4c46c0564339e" + integrity sha512-lp3GeY7ygcgAmVIcRPBVhIkf8Us7FZjA+ILpal44qLdSu11wmjKQ3d9k15lfD7pO4esu9eUIAW7qiYIBppv40A== dependencies: loader-utils "^1.1.0" normalize-url "1.9.1" @@ -5846,6 +6008,13 @@ mixin-deep@^1.2.0: dependencies: minimist "0.0.8" +mkdirp@^0.5.3: + version "0.5.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.4.tgz#fd01504a6797ec5c9be81ff43d204961ed64a512" + integrity sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw== + dependencies: + minimist "^1.2.5" + mkdirp@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.3.tgz#4cf2e30ad45959dddea53ad97d518b6c8205e1ea" @@ -6017,10 +6186,15 @@ node-releases@^1.1.44: dependencies: semver "^6.3.0" -node-sass@^4.13.0: - version "4.13.0" - resolved "https://registry.npm.taobao.org/node-sass/download/node-sass-4.13.0.tgz#b647288babdd6a1cb726de4545516b31f90da066" - integrity sha1-tkcoi6vdahy3Jt5FRVFrMfkNoGY= +node-releases@^1.1.53: + version "1.1.53" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.53.tgz#2d821bfa499ed7c5dffc5e2f28c88e78a08ee3f4" + integrity sha512-wp8zyQVwef2hpZ/dJH7SfSrIPD6YoJz6BDQDpGEkcA0s3LpAQoxBIYmfIq6QAhC1DhwsyCgTaTTcONwX8qzCuQ== + +node-sass@^4.13.1: + version "4.13.1" + resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.13.1.tgz#9db5689696bb2eec2c32b98bfea4c7a2e992d0a3" + integrity sha512-TTWFx+ZhyDx1Biiez2nB0L3YrCZ/8oHagaDalbuBSlqXgUPsdkUSzJsVxeDO9LtPB49+Fh3WQl3slABo6AotNw== dependencies: async-foreach "^0.1.3" chalk "^1.1.1" @@ -6419,13 +6593,27 @@ p-is-promise@^2.0.0: resolved "https://registry.npm.taobao.org/p-is-promise/download/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" integrity sha1-kYzrrqJIpiz3/6uOO8qMX4gvxC4= -p-limit@^2.0.0, p-limit@^2.2.0: +p-limit@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== + dependencies: + p-try "^1.0.0" + +p-limit@^2.0.0, p-limit@^2.2.0, p-limit@^2.2.2: version "2.2.2" resolved "https://registry.npm.taobao.org/p-limit/download/p-limit-2.2.2.tgz?cache=0&sync_timestamp=1577904218145&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-2.2.2.tgz#61279b67721f5287aa1c13a9a7fbbc48c9291b1e" integrity sha1-YSebZ3IfUoeqHBOpp/u8SMkpGx4= dependencies: p-try "^2.0.0" +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= + dependencies: + p-limit "^1.1.0" + p-locate@^3.0.0: version "3.0.0" resolved "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" @@ -6466,6 +6654,11 @@ p-retry@^3.0.1: dependencies: retry "^0.12.0" +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= + p-try@^2.0.0: version "2.2.0" resolved "https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" @@ -6731,17 +6924,24 @@ pkg-dir@^4.1.0: dependencies: find-up "^4.0.0" +pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f" + integrity sha1-yBmscoBZpGHKscOImivjxJoATX8= + dependencies: + find-up "^2.1.0" + png-js@^1.0.0: version "1.0.0" resolved "https://registry.npm.taobao.org/png-js/download/png-js-1.0.0.tgz#e5484f1e8156996e383aceebb3789fd75df1874d" integrity sha1-5UhPHoFWmW44Os7rs3if113xh00= -pnp-webpack-plugin@^1.5.0: - version "1.5.0" - resolved "https://registry.npm.taobao.org/pnp-webpack-plugin/download/pnp-webpack-plugin-1.5.0.tgz#62a1cd3068f46d564bb33c56eb250e4d586676eb" - integrity sha1-YqHNMGj0bVZLszxW6yUOTVhmdus= +pnp-webpack-plugin@^1.6.4: + version "1.6.4" + resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz#c9711ac4dc48a685dabafc86f8b6dd9f8df84149" + integrity sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg== dependencies: - ts-pnp "^1.1.2" + ts-pnp "^1.1.6" popper.js@>=1.10, popper.js@^1.14.3, popper.js@^1.16.1: version "1.16.1" @@ -6916,12 +7116,12 @@ postcss-env-function@^2.0.2: postcss "^7.0.2" postcss-values-parser "^2.0.0" -postcss-flexbugs-fixes@^4.1.0: - version "4.1.0" - resolved "https://registry.npm.taobao.org/postcss-flexbugs-fixes/download/postcss-flexbugs-fixes-4.1.0.tgz#e094a9df1783e2200b7b19f875dcad3b3aff8b20" - integrity sha1-4JSp3xeD4iALexn4ddytOzr/iyA= +postcss-flexbugs-fixes@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.2.0.tgz#662b3dcb6354638b9213a55eed8913bcdc8d004a" + integrity sha512-QRE0n3hpkxxS/OGvzOa+PDuy4mh/Jg4o9ui22/ko5iGYOG3M5dfJabjnAZjTdh2G9F85c7Hv8hWcEDEKW/xceQ== dependencies: - postcss "^7.0.0" + postcss "^7.0.26" postcss-focus-visible@^4.0.0: version "4.0.0" @@ -7310,12 +7510,12 @@ postcss-replace-overflow-wrap@^3.0.0: dependencies: postcss "^7.0.2" -postcss-safe-parser@^4.0.1: - version "4.0.1" - resolved "https://registry.npm.taobao.org/postcss-safe-parser/download/postcss-safe-parser-4.0.1.tgz#8756d9e4c36fdce2c72b091bbc8ca176ab1fcdea" - integrity sha1-h1bZ5MNv3OLHKwkbvIyhdqsfzeo= +postcss-safe-parser@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-4.0.2.tgz#a6d4e48f0f37d9f7c11b2a581bf00f8ba4870b96" + integrity sha512-Uw6ekxSWNLCPesSv/cmqf2bY/77z11O7jZGPax3ycZMFU/oi2DMH9i89AdHc1tRwFg/arFoEwX0IS3LCUxJh1g== dependencies: - postcss "^7.0.0" + postcss "^7.0.26" postcss-selector-matches@^4.0.0: version "4.0.0" @@ -7407,6 +7607,15 @@ postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.16, postcss@^7.0.1 source-map "^0.6.1" supports-color "^6.1.0" +postcss@^7.0.26: + version "7.0.27" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.27.tgz#cc67cdc6b0daa375105b7c424a85567345fc54d9" + integrity sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ== + dependencies: + chalk "^2.4.2" + source-map "^0.6.1" + supports-color "^6.1.0" + prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.npm.taobao.org/prelude-ls/download/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" @@ -7422,10 +7631,10 @@ prepend-http@^2.0.0: resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= -private@^0.1.6: +private@^0.1.8: version "0.1.8" - resolved "https://registry.npm.taobao.org/private/download/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" - integrity sha1-I4Hts2ifelPWUxkAYPz4ItLzaP8= + resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" + integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== process-nextick-args@~2.0.0: version "2.0.1" @@ -7745,6 +7954,13 @@ regenerate-unicode-properties@^8.1.0: dependencies: regenerate "^1.4.0" +regenerate-unicode-properties@^8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" + integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA== + dependencies: + regenerate "^1.4.0" + regenerate@^1.4.0: version "1.4.0" resolved "https://registry.npm.taobao.org/regenerate/download/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" @@ -7755,17 +7971,18 @@ regenerator-runtime@^0.11.0: resolved "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" integrity sha1-vgWtf5v30i4Fb5cmzuUBf78Z4uk= -regenerator-runtime@^0.13.2, regenerator-runtime@^0.13.3: - version "0.13.3" - resolved "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.13.3.tgz#7cf6a77d8f5c6f60eb73c5fc1955b2ceb01e6bf5" - integrity sha1-fPanfY9cb2Drc8X8GVWyzrAea/U= +regenerator-runtime@^0.13.4, regenerator-runtime@^0.13.5: + version "0.13.5" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697" + integrity sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA== -regenerator-transform@^0.14.0: - version "0.14.1" - resolved "https://registry.npm.taobao.org/regenerator-transform/download/regenerator-transform-0.14.1.tgz#3b2fce4e1ab7732c08f665dfdb314749c7ddd2fb" - integrity sha1-Oy/OThq3cywI9mXf2zFHScfd0vs= +regenerator-transform@^0.14.2: + version "0.14.4" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.4.tgz#5266857896518d1616a78a0479337a30ea974cc7" + integrity sha512-EaJaKPBI9GvKpvUz2mz4fhx7WPgvwRLY9v3hlNHWmAuJHI13T4nwKnNvm5RWJzEdnI5g5UwtOww+S8IdoUC2bw== dependencies: - private "^0.1.6" + "@babel/runtime" "^7.8.4" + private "^0.1.8" regex-not@^1.0.0, regex-not@^1.0.2: version "1.0.2" @@ -7795,6 +8012,18 @@ regexpu-core@^4.6.0: unicode-match-property-ecmascript "^1.0.4" unicode-match-property-value-ecmascript "^1.1.0" +regexpu-core@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.0.tgz#fcbf458c50431b0bb7b45d6967b8192d91f3d938" + integrity sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ== + dependencies: + regenerate "^1.4.0" + regenerate-unicode-properties "^8.2.0" + regjsgen "^0.5.1" + regjsparser "^0.6.4" + unicode-match-property-ecmascript "^1.0.4" + unicode-match-property-value-ecmascript "^1.2.0" + registry-auth-token@^4.0.0: version "4.1.1" resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.1.1.tgz#40a33be1e82539460f94328b0f7f0f84c16d9479" @@ -7809,7 +8038,7 @@ registry-url@^5.0.0: dependencies: rc "^1.2.8" -regjsgen@^0.5.0: +regjsgen@^0.5.0, regjsgen@^0.5.1: version "0.5.1" resolved "https://registry.npm.taobao.org/regjsgen/download/regjsgen-0.5.1.tgz#48f0bf1a5ea205196929c0d9798b42d1ed98443c" integrity sha1-SPC/Gl6iBRlpKcDZeYtC0e2YRDw= @@ -7821,6 +8050,13 @@ regjsparser@^0.6.0: dependencies: jsesc "~0.5.0" +regjsparser@^0.6.4: + version "0.6.4" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.4.tgz#a769f8684308401a66e9b529d2436ff4d0666272" + integrity sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw== + dependencies: + jsesc "~0.5.0" + remove-trailing-separator@^1.0.1: version "1.1.0" resolved "https://registry.npm.taobao.org/remove-trailing-separator/download/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" @@ -8045,15 +8281,15 @@ sass-graph@^2.2.4: scss-tokenizer "^0.2.3" yargs "^7.0.0" -sass-loader@7.3.1: - version "7.3.1" - resolved "https://registry.npm.taobao.org/sass-loader/download/sass-loader-7.3.1.tgz?cache=0&sync_timestamp=1578921816923&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsass-loader%2Fdownload%2Fsass-loader-7.3.1.tgz#a5bf68a04bcea1c13ff842d747150f7ab7d0d23f" - integrity sha1-pb9ooEvOocE/+ELXRxUPerfQ0j8= +sass-loader@^8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-8.0.2.tgz#debecd8c3ce243c76454f2e8290482150380090d" + integrity sha512-7o4dbSK8/Ol2KflEmSco4jTjQoV988bM82P9CZdmo9hR3RLnvNc0ufMNdMrB0caq38JQ/FgF4/7RcbcfKzxoFQ== dependencies: clone-deep "^4.0.1" - loader-utils "^1.0.1" - neo-async "^2.5.0" - pify "^4.0.1" + loader-utils "^1.2.3" + neo-async "^2.6.1" + schema-utils "^2.6.1" semver "^6.3.0" sax@~1.2.4: @@ -8070,7 +8306,7 @@ schema-utils@^1.0.0: ajv-errors "^1.0.0" ajv-keywords "^3.1.0" -schema-utils@^2.0.1, schema-utils@^2.5.0, schema-utils@^2.6.0, schema-utils@^2.6.1: +schema-utils@^2.6.0, schema-utils@^2.6.1: version "2.6.1" resolved "https://registry.npm.taobao.org/schema-utils/download/schema-utils-2.6.1.tgz?cache=0&sync_timestamp=1574946791935&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-2.6.1.tgz#eb78f0b945c7bcfa2082b3565e8db3548011dc4f" integrity sha1-63jwuUXHvPoggrNWXo2zVIAR3E8= @@ -8078,6 +8314,14 @@ schema-utils@^2.0.1, schema-utils@^2.5.0, schema-utils@^2.6.0, schema-utils@^2.6 ajv "^6.10.2" ajv-keywords "^3.4.1" +schema-utils@^2.6.4, schema-utils@^2.6.5: + version "2.6.5" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.6.5.tgz#c758f0a7e624263073d396e29cd40aa101152d8a" + integrity sha512-5KXuwKziQrTVHh8j/Uxz+QUbxkaLW9X/86NBlx/gnKgtsZA2GIVMUn17qWhRFwF8jdYb3Dig5hRO/W5mZqy6SQ== + dependencies: + ajv "^6.12.0" + ajv-keywords "^3.4.1" + scope-analyzer@^2.0.1: version "2.0.5" resolved "https://registry.npm.taobao.org/scope-analyzer/download/scope-analyzer-2.0.5.tgz#72c9c6770c3e66984f84c7d3c7045998a1a7db8a" @@ -8754,13 +8998,13 @@ strip-json-comments@~2.0.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= -style-loader@^1.0.0: - version "1.1.2" - resolved "https://registry.npm.taobao.org/style-loader/download/style-loader-1.1.2.tgz?cache=0&sync_timestamp=1577278859892&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstyle-loader%2Fdownload%2Fstyle-loader-1.1.2.tgz#1b519c19faf548df6182b93e72ea1a4156022c2f" - integrity sha1-G1GcGfr1SN9hgrk+cuoaQVYCLC8= +style-loader@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-1.1.3.tgz#9e826e69c683c4d9bf9db924f85e9abb30d5e200" + integrity sha512-rlkH7X/22yuwFYK357fMN/BxYOorfnfq0eD7+vqlemSK4wEcejFF1dg4zxP0euBW8NrYx2WZzZ8PPFevr7D+Kw== dependencies: loader-utils "^1.2.3" - schema-utils "^2.0.1" + schema-utils "^2.6.4" stylehacks@^4.0.0: version "4.0.3" @@ -8797,7 +9041,7 @@ supports-color@^5.3.0: dependencies: has-flag "^3.0.0" -supports-color@^7.1.0: +supports-color@^7.0.0, supports-color@^7.1.0: version "7.1.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== @@ -8892,15 +9136,16 @@ terser-webpack-plugin@^1.4.3: webpack-sources "^1.4.0" worker-farm "^1.7.0" -terser-webpack-plugin@^2.2.1: - version "2.3.2" - resolved "https://registry.npm.taobao.org/terser-webpack-plugin/download/terser-webpack-plugin-2.3.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fterser-webpack-plugin%2Fdownload%2Fterser-webpack-plugin-2.3.2.tgz#6d3d1b0590c8f729bfbaeb7fb2528b8b62db4c74" - integrity sha1-bT0bBZDI9ym/uut/slKLi2LbTHQ= +terser-webpack-plugin@^2.3.5: + version "2.3.5" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-2.3.5.tgz#5ad971acce5c517440ba873ea4f09687de2f4a81" + integrity sha512-WlWksUoq+E4+JlJ+h+U+QUzXpcsMSSNXkDy9lBVkSqDn1w23Gg29L/ary9GeJVYCGiNJJX7LnVc4bwL1N3/g1w== dependencies: cacache "^13.0.1" find-cache-dir "^3.2.0" - jest-worker "^24.9.0" - schema-utils "^2.6.1" + jest-worker "^25.1.0" + p-limit "^2.2.2" + schema-utils "^2.6.4" serialize-javascript "^2.1.2" source-map "^0.6.1" terser "^4.4.3" @@ -9022,10 +9267,10 @@ trim-newlines@^1.0.0: dependencies: glob "^7.1.2" -ts-pnp@^1.1.2: - version "1.1.5" - resolved "https://registry.npm.taobao.org/ts-pnp/download/ts-pnp-1.1.5.tgz#840e0739c89fce5f3abd9037bb091dbff16d9dec" - integrity sha1-hA4HOcifzl86vZA3uwkdv/Ftnew= +ts-pnp@^1.1.6: + version "1.2.0" + resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" + integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw== tslib@^1.9.0: version "1.10.0" @@ -9114,6 +9359,11 @@ unicode-match-property-value-ecmascript@^1.1.0: resolved "https://registry.npm.taobao.org/unicode-match-property-value-ecmascript/download/unicode-match-property-value-ecmascript-1.1.0.tgz#5b4b426e08d13a80365e0d657ac7a6c1ec46a277" integrity sha1-W0tCbgjROoA2Xg1lesemwexGonc= +unicode-match-property-value-ecmascript@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531" + integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ== + unicode-properties@^1.0.0: version "1.3.1" resolved "https://registry.npm.taobao.org/unicode-properties/download/unicode-properties-1.3.1.tgz#cc642b6314bde2c691d65dd94cece09ed84f1282" @@ -9394,10 +9644,10 @@ webpack-assets-manifest@^3.1.1: tapable "^1.0.0" webpack-sources "^1.0.0" -webpack-cli@^3.3.10: - version "3.3.10" - resolved "https://registry.npm.taobao.org/webpack-cli/download/webpack-cli-3.3.10.tgz#17b279267e9b4fb549023fae170da8e6e766da13" - integrity sha1-F7J5Jn6bT7VJAj+uFw2o5udm2hM= +webpack-cli@^3.3.11: + version "3.3.11" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.11.tgz#3bf21889bf597b5d82c38f215135a411edfdc631" + integrity sha512-dXlfuml7xvAFwYUPsrtQAA9e4DOe58gnzSxhgrO/ZM/gyXTBowrsYeubyN4mqGhYdpXMFNyQ6emjJS9M7OBd4g== dependencies: chalk "2.4.2" cross-spawn "6.0.5" @@ -9477,15 +9727,15 @@ webpack-sources@^1.0.0, webpack-sources@^1.0.1, webpack-sources@^1.1.0, webpack- source-list-map "^2.0.0" source-map "~0.6.1" -webpack@^4.41.2: - version "4.41.5" - resolved "https://registry.npm.taobao.org/webpack/download/webpack-4.41.5.tgz#3210f1886bce5310e62bb97204d18c263341b77c" - integrity sha1-MhDxiGvOUxDmK7lyBNGMJjNBt3w= +webpack@^4.42.1: + version "4.42.1" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.42.1.tgz#ae707baf091f5ca3ef9c38b884287cfe8f1983ef" + integrity sha512-SGfYMigqEfdGchGhFFJ9KyRpQKnipvEvjc1TwrXEPCM6H5Wywu10ka8o3KGrMzSMxMQKt8aCHUFh5DaQ9UmyRg== dependencies: - "@webassemblyjs/ast" "1.8.5" - "@webassemblyjs/helper-module-context" "1.8.5" - "@webassemblyjs/wasm-edit" "1.8.5" - "@webassemblyjs/wasm-parser" "1.8.5" + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/wasm-edit" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" acorn "^6.2.1" ajv "^6.10.2" ajv-keywords "^3.4.1" @@ -9497,7 +9747,7 @@ webpack@^4.41.2: loader-utils "^1.2.3" memory-fs "^0.4.1" micromatch "^3.1.10" - mkdirp "^0.5.1" + mkdirp "^0.5.3" neo-async "^2.6.1" node-libs-browser "^2.2.1" schema-utils "^1.0.0" From 9a624658b29df32d5663cfa403ef8358f70bbc5a Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 2 Apr 2020 16:47:32 +0800 Subject: [PATCH 0082/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=20has=5Fpassword=20=E6=96=B9=E6=B3=95=E9=94=99?= =?UTF-8?q?=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/serializers/channel_serializer.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/serializers/channel_serializer.rb b/app/serializers/channel_serializer.rb index f26fd63ad..9d82263ed 100644 --- a/app/serializers/channel_serializer.rb +++ b/app/serializers/channel_serializer.rb @@ -4,6 +4,6 @@ class ChannelSerializer < ApplicationSerializer attributes :slug, :name, :device_type, :bundle_id, :git_url, :has_password def has_password - object.password.persent? + object.password.present? end end From 4b564c9045f37acf11bab3cd14a8fcab11c2b3dc Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 2 Apr 2020 17:01:30 +0800 Subject: [PATCH 0083/2165] =?UTF-8?q?chore:=20=E5=8D=87=E7=BA=A7=20guard?= =?UTF-8?q?=20=E8=A7=A3=E5=86=B3=20pry=20=E5=85=BC=E5=AE=B9=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 1 + Gemfile.lock | 7 ++++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 1edbf25ed..637568fa4 100644 --- a/Gemfile +++ b/Gemfile @@ -86,6 +86,7 @@ group :development do # 调试器 gem 'byebug', platforms: %i[mri mingw x64_mingw] + gem 'guard', '~> 2.16.2' gem 'guard-bundler' gem 'guard-migrate' gem 'guard-rails' diff --git a/Gemfile.lock b/Gemfile.lock index 2ce2bff52..a948c7340 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -153,7 +153,7 @@ GEM railties sprockets-rails graphql (1.10.5) - guard (2.16.1) + guard (2.16.2) formatador (>= 0.2.4) listen (>= 2.7, < 4.0) lumberjack (>= 1.0.12, < 2.0) @@ -237,7 +237,7 @@ GEM loofah (2.4.0) crass (~> 1.0.2) nokogiri (>= 1.5.9) - lumberjack (1.0.13) + lumberjack (1.2.4) mail (2.7.1) mini_mime (>= 0.1.1) marcel (0.3.3) @@ -342,7 +342,7 @@ GEM rainbow (3.0.0) rake (13.0.1) rb-fsevent (0.10.3) - rb-inotify (0.10.0) + rb-inotify (0.10.1) ffi (~> 1.0) redis (4.1.3) responders (3.0.0) @@ -466,6 +466,7 @@ DEPENDENCIES friendly_id graphiql-rails (~> 1.7.0) graphql (~> 1.10.5) + guard (~> 2.16.2) guard-bundler guard-migrate guard-rails From 6f166564ac1e32825fd44a4ca148e1c694306787 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 2 Apr 2020 19:24:47 +0800 Subject: [PATCH 0084/2165] =?UTF-8?q?fix:=20=E5=9B=9E=E6=BB=9A=20sidekiq?= =?UTF-8?q?=20=E5=88=B0=206.0.5=20=E8=A7=A3=E5=86=B3=20webpacker=20?= =?UTF-8?q?=E7=BC=96=E8=AF=91=E8=B5=84=E6=BA=90=E4=BC=9A=E8=BF=9E=E6=8E=A5?= =?UTF-8?q?=20redis=20(mperham/sidekiq#4502)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 637568fa4..c4f5454ec 100644 --- a/Gemfile +++ b/Gemfile @@ -62,7 +62,7 @@ gem 'rqrcode' # 异步队列 gem 'activejob-status' -gem 'sidekiq', '<= 7' +gem 'sidekiq', '6.0.5' # 6.0.6 有 bug:https://github.com/mperham/sidekiq/pull/4502 gem 'sidekiq-cron', '~> 1.0' # Assets diff --git a/Gemfile.lock b/Gemfile.lock index a948c7340..87fcc126f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -378,7 +378,7 @@ GEM faraday (>= 1.0) settingslogic (2.0.9) shellany (0.0.1) - sidekiq (6.0.6) + sidekiq (6.0.5) connection_pool (>= 2.2.2) rack (~> 2.0) rack-protection (>= 2.0.0) @@ -500,7 +500,7 @@ DEPENDENCIES ruby-debug-ide sentry-raven settingslogic - sidekiq (<= 7) + sidekiq (= 6.0.5) sidekiq-cron (~> 1.0) simple_form (~> 5.0) slim-rails (~> 3.2.0) From 1418c8f8157f95bd98141246d22675025e1a27a6 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 2 Apr 2020 19:27:11 +0800 Subject: [PATCH 0085/2165] =?UTF-8?q?refactor:=20=E4=BD=BF=E7=94=A8=20gitl?= =?UTF-8?q?ab=5Fomniauth-ldap=20=E6=9B=BF=E6=8D=A2=E8=80=81=E6=97=A7?= =?UTF-8?q?=E7=9A=84=20omniauth-ldap?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 2 +- Gemfile.lock | 18 ++++++------------ 2 files changed, 7 insertions(+), 13 deletions(-) diff --git a/Gemfile b/Gemfile index c4f5454ec..0065d9e08 100644 --- a/Gemfile +++ b/Gemfile @@ -44,7 +44,7 @@ gem 'devise', '~> 4.7.1' gem 'devise-i18n', '~> 1.9.0' gem 'omniauth', '~> 1.9' gem 'omniauth-google-oauth2', '~> 0.8.0' -gem 'omniauth-ldap', github: 'icyleaf/omniauth-ldap', branch: 'master' # 无法和 omniauth-oauth2 兼容,依赖 omniauth 版本比较低 +gem 'gitlab_omniauth-ldap', '~> 2.1.1' gem 'pundit', '~> 2.1.0' # 系统信息 diff --git a/Gemfile.lock b/Gemfile.lock index 87fcc126f..d541d64bb 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,14 +1,3 @@ -GIT - remote: https://github.com/icyleaf/omniauth-ldap - revision: e70a456c4cc36720a79c2fac1d0a71950b20df25 - branch: master - specs: - omniauth-ldap (2.0.0) - net-ldap (~> 0.16) - omniauth (~> 1.9) - pyu-ruby-sasl (~> 0.0.3.3) - rubyntlm (~> 0.6.2) - GEM remote: https://rubygems.org/ specs: @@ -147,6 +136,11 @@ GEM fugit (1.3.3) et-orbi (~> 1.1, >= 1.1.8) raabro (~> 1.1) + gitlab_omniauth-ldap (2.1.1) + net-ldap (~> 0.16) + omniauth (~> 1.3) + pyu-ruby-sasl (>= 0.0.3.3, < 0.1) + rubyntlm (~> 0.5) globalid (0.4.2) activesupport (>= 4.2.0) graphiql-rails (1.7.0) @@ -464,6 +458,7 @@ DEPENDENCIES devise-i18n (~> 1.9.0) dotenv-rails friendly_id + gitlab_omniauth-ldap (~> 2.1.1) graphiql-rails (~> 1.7.0) graphql (~> 1.10.5) guard (~> 2.16.2) @@ -482,7 +477,6 @@ DEPENDENCIES mini_magick omniauth (~> 1.9) omniauth-google-oauth2 (~> 0.8.0) - omniauth-ldap! pg (>= 0.18, < 2.0) pry-byebug pry-rails From fd1c6823864b421972c95f5238ecc7e1011eb989 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 3 Apr 2020 14:28:12 +0800 Subject: [PATCH 0086/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0=20source=20=E9=83=BD=E6=98=AF=20web=20=E6=9D=A5?= =?UTF-8?q?=E6=BA=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/api/apps/upload_controller.rb | 2 +- app/models/release.rb | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/controllers/api/apps/upload_controller.rb b/app/controllers/api/apps/upload_controller.rb index 1e13ee4b9..2036c1287 100644 --- a/app/controllers/api/apps/upload_controller.rb +++ b/app/controllers/api/apps/upload_controller.rb @@ -72,7 +72,7 @@ def with_updated_channel end def create_release(channel) - @release = channel.releases.upload_file release_params + @release = channel.releases.upload_file(release_params) @release.save! end diff --git a/app/models/release.rb b/app/models/release.rb index 268e7f99c..ad1d0da2b 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -34,12 +34,12 @@ def self.version_by_channel(slug, version = nil) end # 上传 App - def self.upload_file(params, source = 'Web') + def self.upload_file(params) create(params) do |release| if release.file.present? begin parser = AppInfo.parse(release.file.path) - release.source = source + release.source ||= 'Web' release.bundle_id = parser.bundle_id release.release_version = parser.release_version release.build_version = parser.build_version From 7167bc16d0da925cb7be085af429ae3d6055ae39 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 3 Apr 2020 14:42:59 +0800 Subject: [PATCH 0087/2165] =?UTF-8?q?fix:=20=E5=85=BC=E5=AE=B9=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0=20app=20=E4=BC=A0=E7=9A=84=20changelog=20=E6=98=AF=20?= =?UTF-8?q?json=20=E5=AD=97=E7=AC=A6=E4=B8=B2=E8=BF=9B=E8=A1=8C=E6=A0=BC?= =?UTF-8?q?=E5=BC=8F=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/release.rb | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/app/models/release.rb b/app/models/release.rb index ad1d0da2b..8b39c6984 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -16,7 +16,7 @@ class Release < ApplicationRecord before_create :auto_release_version before_create :default_source before_create :default_changelog - before_save :changelog_format, if: :changelog_is_plaintext? + before_save :changelog_format delegate :scheme, :device_type, to: :channel delegate :app, to: :scheme @@ -183,13 +183,19 @@ def auto_release_version end def changelog_format - hash = [] - changelog.split("\n").each do |message| - next if message.blank? - - hash << { message: message } + if changelog_is_json_string? + self.changelog = JSON.parse(changelog) + elsif changelog.blank? + self.changelog = [] + elsif changelog.is_a?(String) + hash = [] + changelog.split("\n").each do |message| + next if message.blank? + + hash << { message: message } + end + self.changelog = hash end - self.changelog = hash end def default_source @@ -200,10 +206,11 @@ def default_changelog self.changelog ||= [] end - def changelog_is_plaintext? - return false if changelog.blank? - - changelog.is_a?(String) + def changelog_is_json_string? + JSON.parse(changelog) + true + rescue + false end def enabled_validate_bundle_id? From ae4c3fb68b38af91d77ad7552284bb876538c378 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 6 Apr 2020 06:57:08 +0000 Subject: [PATCH 0088/2165] chore(deps): bump sidekiq-cron from 1.1.0 to 1.2.0 Bumps [sidekiq-cron](https://github.com/ondrejbartas/sidekiq-cron) from 1.1.0 to 1.2.0. - [Release notes](https://github.com/ondrejbartas/sidekiq-cron/releases) - [Changelog](https://github.com/ondrejbartas/sidekiq-cron/blob/master/Changes.md) - [Commits](https://github.com/ondrejbartas/sidekiq-cron/compare/v1.1.0...v1.2.0) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Gemfile b/Gemfile index 0065d9e08..cf5305f9c 100644 --- a/Gemfile +++ b/Gemfile @@ -63,7 +63,7 @@ gem 'rqrcode' # 异步队列 gem 'activejob-status' gem 'sidekiq', '6.0.5' # 6.0.6 有 bug:https://github.com/mperham/sidekiq/pull/4502 -gem 'sidekiq-cron', '~> 1.0' +gem 'sidekiq-cron', '~> 1.2' # Assets gem 'turbolinks', '~> 5' diff --git a/Gemfile.lock b/Gemfile.lock index d541d64bb..bbf57ee53 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -122,7 +122,7 @@ GEM dotenv (= 2.7.5) railties (>= 3.2, < 6.1) erubi (1.9.0) - et-orbi (1.2.2) + et-orbi (1.2.4) tzinfo faraday (1.0.0) multipart-post (>= 1.2, < 3) @@ -133,7 +133,7 @@ GEM formatador (0.2.5) friendly_id (5.3.0) activerecord (>= 4.0.0) - fugit (1.3.3) + fugit (1.3.4) et-orbi (~> 1.1, >= 1.1.8) raabro (~> 1.1) gitlab_omniauth-ldap (2.1.1) @@ -377,7 +377,7 @@ GEM rack (~> 2.0) rack-protection (>= 2.0.0) redis (>= 4.1.0) - sidekiq-cron (1.1.0) + sidekiq-cron (1.2.0) fugit (~> 1.1) sidekiq (>= 4.2.1) simple_form (5.0.2) @@ -415,7 +415,7 @@ GEM turbolinks (5.2.1) turbolinks-source (~> 5.2) turbolinks-source (5.2.0) - tzinfo (1.2.6) + tzinfo (1.2.7) thread_safe (~> 0.1) unf (0.1.4) unf_ext @@ -495,7 +495,7 @@ DEPENDENCIES sentry-raven settingslogic sidekiq (= 6.0.5) - sidekiq-cron (~> 1.0) + sidekiq-cron (~> 1.2) simple_form (~> 5.0) slim-rails (~> 3.2.0) spring From 39f47a5e44fa5d8c3e1b48f332d1f44cd78f2e3b Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 10 Apr 2020 06:37:35 +0000 Subject: [PATCH 0089/2165] chore(deps-dev): bump rubocop-rails from 2.5.0 to 2.5.2 Bumps [rubocop-rails](https://github.com/rubocop-hq/rubocop-rails) from 2.5.0 to 2.5.2. - [Release notes](https://github.com/rubocop-hq/rubocop-rails/releases) - [Changelog](https://github.com/rubocop-hq/rubocop-rails/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop-hq/rubocop-rails/compare/v2.5.0...v2.5.2) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index cf5305f9c..6afacb439 100644 --- a/Gemfile +++ b/Gemfile @@ -116,7 +116,7 @@ end group :development, :test do gem 'dotenv-rails' gem 'rubocop', '~> 0.77', require: false - gem 'rubocop-rails', '~> 2.5.0', require: false + gem 'rubocop-rails', '~> 2.5.2', require: false gem 'pry-byebug' gem 'pry-rails' diff --git a/Gemfile.lock b/Gemfile.lock index bbf57ee53..55c8426f7 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -273,7 +273,7 @@ GEM omniauth (~> 1.9) orm_adapter (0.5.0) parallel (1.19.1) - parser (2.7.0.5) + parser (2.7.1.0) ast (~> 2.4.0) pg (1.2.1) pngdefry (0.1.3) @@ -353,7 +353,7 @@ GEM rainbow (>= 2.2.2, < 4.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 1.4.0, < 1.7) - rubocop-rails (2.5.0) + rubocop-rails (2.5.2) activesupport rack (>= 1.1) rubocop (>= 0.72.0) @@ -490,7 +490,7 @@ DEPENDENCIES redis (~> 4.1.3) rqrcode rubocop (~> 0.77) - rubocop-rails (~> 2.5.0) + rubocop-rails (~> 2.5.2) ruby-debug-ide sentry-raven settingslogic From 97281efa0701e6a9bc7f0c7b89b380caf477d67e Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 15 Apr 2020 06:32:39 +0000 Subject: [PATCH 0090/2165] chore(deps): bump activejob-status from 0.1.5 to 0.1.6 Bumps [activejob-status](https://github.com/inkstak/activejob-status) from 0.1.5 to 0.1.6. - [Release notes](https://github.com/inkstak/activejob-status/releases) - [Commits](https://github.com/inkstak/activejob-status/commits) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index bbf57ee53..5e22e2c74 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -46,7 +46,7 @@ GEM activejob (6.0.2.2) activesupport (= 6.0.2.2) globalid (>= 0.3.6) - activejob-status (0.1.5) + activejob-status (0.1.6) activejob (>= 4.2) activesupport (>= 4.2) activemodel (6.0.2.2) From 6e3b188e3f8758caa1c586bcf57ae7de6e257d84 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 16 Apr 2020 18:51:54 +0800 Subject: [PATCH 0091/2165] =?UTF-8?q?feat:=20=E6=B8=B8=E5=AE=A2=E5=85=81?= =?UTF-8?q?=E8=AE=B8=E6=9F=A5=E7=9C=8B=E5=BA=94=E7=94=A8=E8=AF=A6=E6=83=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/channels/_web_hooks.slim | 3 +++ app/views/releases/show.html.slim | 3 +-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/app/views/channels/_web_hooks.slim b/app/views/channels/_web_hooks.slim index 386a5144e..a6f13452d 100644 --- a/app/views/channels/_web_hooks.slim +++ b/app/views/channels/_web_hooks.slim @@ -1,6 +1,9 @@ .card .card-header h3.card-title 网络钩子 + .card-tools + button.btn.btn-tool data-card-widget="collapse" + i.fa.fa-minus .card-body section#add-webhooks h5 添加网络钩子 diff --git a/app/views/releases/show.html.slim b/app/views/releases/show.html.slim index 5b209e443..93170bb4d 100644 --- a/app/views/releases/show.html.slim +++ b/app/views/releases/show.html.slim @@ -16,8 +16,7 @@ == render 'releases/sidebar/qrcode' == render 'releases/sidebar/devices' == render 'releases/sidebar/version' - - if user_signed_in? - a.btn.btn-default.btn-block href="#{channel_path(@channel)}" 应用管理 + a.btn.btn-default.btn-block href="#{channel_path(@channel)}" 应用管理 - else .login-box .card From 80534082a0b9aff450c64ba6bb7f7effc6b5c6d2 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 17 Apr 2020 10:19:12 +0800 Subject: [PATCH 0092/2165] =?UTF-8?q?fix:=20=E8=A7=A3=E5=86=B3=20cpu=20?= =?UTF-8?q?=E5=92=8C=E5=86=85=E5=AD=98=E4=B8=8D=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/admin/system_info_controller.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/controllers/admin/system_info_controller.rb b/app/controllers/admin/system_info_controller.rb index 21026139b..c92b56c49 100644 --- a/app/controllers/admin/system_info_controller.rb +++ b/app/controllers/admin/system_info_controller.rb @@ -69,15 +69,15 @@ def show private def set_cpus - Vmstat.cpu + @cpus = Vmstat.cpu rescue - nil + @cpus = nil end def set_memory - Vmstat.memory + @memory = Vmstat.memory rescue - nil + @memory = nil end def set_env From 117dc5ff2c7002dba62b1c5611fd4bcdb5ab8c97 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 17 Apr 2020 10:21:35 +0800 Subject: [PATCH 0093/2165] =?UTF-8?q?feat:=20=E7=8E=AF=E5=A2=83=E5=8F=98?= =?UTF-8?q?=E9=87=8F=E6=8E=92=E5=BA=8F=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/admin/system_info_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/admin/system_info_controller.rb b/app/controllers/admin/system_info_controller.rb index c92b56c49..f9cc4ba34 100644 --- a/app/controllers/admin/system_info_controller.rb +++ b/app/controllers/admin/system_info_controller.rb @@ -87,7 +87,7 @@ def set_env else '*' * 10 end - end + end.sort end def set_disks From fd7b6263b025f0d24998eda361588c1a6bb1d604 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 17 Apr 2020 11:08:02 +0800 Subject: [PATCH 0094/2165] =?UTF-8?q?refactor:=20=E5=BC=80=E5=8F=91?= =?UTF-8?q?=E7=8E=AF=E5=A2=83=E7=A7=BB=E9=99=A4=20graphql=20=E6=8E=A7?= =?UTF-8?q?=E5=88=B6=E5=8F=B0=E5=8A=9F=E8=83=BD=EF=BC=8C=E6=8E=A8=E8=8D=90?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E5=A6=82=E4=B8=8B=E5=B7=A5=E5=85=B7=EF=BC=9A?= =?UTF-8?q?=20https://github.com/prisma-labs/graphql-playground?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 1 - Gemfile.lock | 4 ---- app/controllers/admin/graphql_console_controller.rb | 8 -------- app/views/admin/graphql_console/show.html.slim | 11 ----------- app/views/layouts/_main_sidebar.html.slim | 7 ------- config/initializers/assets.rb | 5 +---- config/routes.rb | 5 ----- 7 files changed, 1 insertion(+), 40 deletions(-) delete mode 100644 app/controllers/admin/graphql_console_controller.rb delete mode 100644 app/views/admin/graphql_console/show.html.slim diff --git a/Gemfile b/Gemfile index cf5305f9c..2815973f2 100644 --- a/Gemfile +++ b/Gemfile @@ -80,7 +80,6 @@ gem 'bootsnap', '>= 1.4.4', require: false group :development do # 调试控制台 - gem 'graphiql-rails', '~> 1.7.0' gem 'listen', '>= 3.0.5', '< 3.3' gem 'web-console', '>= 3.3.0' diff --git a/Gemfile.lock b/Gemfile.lock index 5e22e2c74..581311f67 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -143,9 +143,6 @@ GEM rubyntlm (~> 0.5) globalid (0.4.2) activesupport (>= 4.2.0) - graphiql-rails (1.7.0) - railties - sprockets-rails graphql (1.10.5) guard (2.16.2) formatador (>= 0.2.4) @@ -459,7 +456,6 @@ DEPENDENCIES dotenv-rails friendly_id gitlab_omniauth-ldap (~> 2.1.1) - graphiql-rails (~> 1.7.0) graphql (~> 1.10.5) guard (~> 2.16.2) guard-bundler diff --git a/app/controllers/admin/graphql_console_controller.rb b/app/controllers/admin/graphql_console_controller.rb deleted file mode 100644 index 80584f2d7..000000000 --- a/app/controllers/admin/graphql_console_controller.rb +++ /dev/null @@ -1,8 +0,0 @@ -# frozen_string_literal: true - -class Admin::GraphqlConsoleController < ApplicationController - # GET /admin/graphql_console - def show - @title = 'GraphQL 控制台' - end -end diff --git a/app/views/admin/graphql_console/show.html.slim b/app/views/admin/graphql_console/show.html.slim deleted file mode 100644 index 3bc0e4f85..000000000 --- a/app/views/admin/graphql_console/show.html.slim +++ /dev/null @@ -1,11 +0,0 @@ -- content_for :title do - = @title - -- content_for :section_title do - = @title - -.row - .col-md-12 - .card - .card-body.p-0 - iframe src="#{admin_graphiql_path}" style="border: 0" width="100%" height="970" \ No newline at end of file diff --git a/app/views/layouts/_main_sidebar.html.slim b/app/views/layouts/_main_sidebar.html.slim index 436a3ac19..de931685c 100644 --- a/app/views/layouts/_main_sidebar.html.slim +++ b/app/views/layouts/_main_sidebar.html.slim @@ -33,13 +33,6 @@ a.nav-link href="#{admin_background_jobs_path}" class="#{active_class(admin_background_jobs_path)}" i.nav-icon.fa.fa-bar-chart p 后台任务 - - if Rails.env.development? - li class="nav-item" - a.nav-link href="#{admin_graphql_console_path}" class="#{active_class(admin_graphql_console_path)}" - i.nav-icon.fa.fa-columns - p - | GraphQL 控制台 - span.badge.badge-success.right 测试 li class="nav-item" a.nav-link href="#{admin_system_info_path}" class="#{active_class(admin_system_info_path)}" i.nav-icon.fa.fa-desktop diff --git a/config/initializers/assets.rb b/config/initializers/assets.rb index 91bef6ddd..c044c0300 100644 --- a/config/initializers/assets.rb +++ b/config/initializers/assets.rb @@ -14,7 +14,4 @@ # end # application.js, application.css, and all non-JS/CSS in the app/assets -# folder are already added. -if Rails.env.development? - Rails.application.config.assets.precompile += %w[graphiql/rails/application.js graphiql/rails/application.css] -end +# folder are already added. \ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb index a8581bea3..af6f77066 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -67,11 +67,6 @@ require 'sidekiq/web' require 'sidekiq/cron/web' mount Sidekiq::Web => 'sidekiq', as: :sidekiq - - if Rails.env.development? - get :graphql_console, to: 'graphql_console#show' - mount GraphiQL::Rails::Engine, at: 'graphiql', graphql_path: '/graphql', as: :graphiql - end end end From 4570841b74741bb0551e30bbf8034f53859b9492 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 16 Apr 2020 18:53:33 +0800 Subject: [PATCH 0095/2165] =?UTF-8?q?feat:=20=E4=B8=8A=E4=BC=A0=20app=20?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E5=A2=9E=E5=8A=A0=E8=87=AA=E5=AE=9A=E4=B9=89?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E7=94=A8=E4=BA=8E=E5=9C=A8=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E8=AF=A6=E6=83=85=E9=A1=B5=E9=9D=A2=E6=98=BE?= =?UTF-8?q?=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/api/apps/upload_controller.rb | 5 ++- app/models/release.rb | 31 ++++++++++++------- app/views/releases/body/_metadata.html.slim | 24 ++++++++------ ...3093411_append_custom_fields_to_release.rb | 9 ++++++ db/schema.rb | 3 +- 5 files changed, 50 insertions(+), 22 deletions(-) create mode 100644 db/migrate/20200403093411_append_custom_fields_to_release.rb diff --git a/app/controllers/api/apps/upload_controller.rb b/app/controllers/api/apps/upload_controller.rb index 2036c1287..d1f72a3d3 100644 --- a/app/controllers/api/apps/upload_controller.rb +++ b/app/controllers/api/apps/upload_controller.rb @@ -118,7 +118,10 @@ def decode_icon(icon_file) end def release_params - params.permit(:file, :release_type, :source, :branch, :git_commit, :ci_url, :changelog, :devices) + params.permit( + :file, :release_type, :source, :branch, :git_commit, + :ci_url, :changelog, :devices, :custom_fields + ) end def channel_params diff --git a/app/models/release.rb b/app/models/release.rb index 8b39c6984..2757a7c29 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -15,8 +15,8 @@ class Release < ApplicationRecord before_create :auto_release_version before_create :default_source - before_create :default_changelog - before_save :changelog_format + before_save :convert_changelog + before_save :convert_custom_fields delegate :scheme, :device_type, to: :channel delegate :app, to: :scheme @@ -33,8 +33,9 @@ def self.version_by_channel(slug, version = nil) end end - # 上传 App + # 上传pp def self.upload_file(params) + logger.debug "upload file params: #{params}" create(params) do |release| if release.file.present? begin @@ -182,8 +183,8 @@ def auto_release_version self.version = latest_version ? (latest_version.version + 1) : 1 end - def changelog_format - if changelog_is_json_string? + def convert_changelog + if json_string?(changelog) self.changelog = JSON.parse(changelog) elsif changelog.blank? self.changelog = [] @@ -195,19 +196,27 @@ def changelog_format hash << { message: message } end self.changelog = hash + else + self.changelog ||= [] end end - def default_source - self.source ||= 'API' + def convert_custom_fields + if json_string?(custom_fields) + self.custom_fields = JSON.parse(custom_fields) + elsif custom_fields.blank? + self.custom_fields = [] + else + self.custom_fields ||= [] + end end - def default_changelog - self.changelog ||= [] + def default_source + self.source ||= 'API' end - def changelog_is_json_string? - JSON.parse(changelog) + def json_string?(value) + JSON.parse(value) true rescue false diff --git a/app/views/releases/body/_metadata.html.slim b/app/views/releases/body/_metadata.html.slim index 90b990115..31d03eb22 100644 --- a/app/views/releases/body/_metadata.html.slim +++ b/app/views/releases/body/_metadata.html.slim @@ -20,40 +20,46 @@ = @release.bundle_id .card-body ul.app-metadata - li + li title="上传版本" i.fa.fa-gg = @release.version - li + li title="平台" i.fa.fa-archive = display_app_device(@release.channel) - li + li title="主版本" i.fa.fa-server = "#{@release.release_version} (#{@release.build_version})" - unless @release.release_type.blank? - li + li title="类型" i.fa.fa-cubes = @release.release_type - unless @release.branch.blank? - li + li title="分支" i.fa.fa-code-fork = @release.branch - unless @release.file.blank? - li + li title="文件体积" i.fa.fa-retweet = " #{number_to_human_size(@release.file.size)}" - unless @release.git_commit.blank? - li + li title="Git Commit" i.fa.fa-git = git_commit_url(@release.channel.git_url, @release.git_commit) - li + + - @release.custom_fields.each do |field| + li title="#{field['name']}" + i.fa class="fa-#{field['icon']}" + = field['value'] + li title="上传来源" i.fa.fa-gears - if @release.ci_url.blank? = @release.source - else = link_to @release.source, @release.ci_url - li + li title="上传时间" i.fa.fa-calendar = time_ago_in_words(@release.created_at) + .app-actions - unless wechat? - if detect_device(@release.channel.device_type) == :ios diff --git a/db/migrate/20200403093411_append_custom_fields_to_release.rb b/db/migrate/20200403093411_append_custom_fields_to_release.rb new file mode 100644 index 000000000..2ec408a92 --- /dev/null +++ b/db/migrate/20200403093411_append_custom_fields_to_release.rb @@ -0,0 +1,9 @@ +class AppendCustomFieldsToRelease < ActiveRecord::Migration[6.0] + def up + add_column :releases, :custom_fields, :jsonb, null: false, default: [] + end + + def down + remove_column :releases, :custom_fields + end +end diff --git a/db/schema.rb b/db/schema.rb index c622799d4..e099dafe0 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 2019_12_20_112323) do +ActiveRecord::Schema.define(version: 2020_04_03_093411) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -96,6 +96,7 @@ t.jsonb "devices", default: [], null: false t.datetime "created_at", precision: 6, null: false t.datetime "updated_at", precision: 6, null: false + t.jsonb "custom_fields", default: [], null: false t.index ["build_version"], name: "index_releases_on_build_version" t.index ["bundle_id"], name: "index_releases_on_bundle_id" t.index ["channel_id", "version"], name: "index_releases_on_channel_id_and_version", unique: true From 4afa67c1942c301d4c82c522ce20990acc6580e4 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 17 Apr 2020 05:56:11 +0000 Subject: [PATCH 0096/2165] chore(deps): bump graphql from 1.10.5 to 1.10.7 Bumps [graphql](https://github.com/rmosolgo/graphql-ruby) from 1.10.5 to 1.10.7. - [Release notes](https://github.com/rmosolgo/graphql-ruby/releases) - [Changelog](https://github.com/rmosolgo/graphql-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/rmosolgo/graphql-ruby/compare/v1.10.5...v1.10.7) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 2815973f2..4428ebece 100644 --- a/Gemfile +++ b/Gemfile @@ -17,7 +17,7 @@ gem 'redis', '~> 4.1.3' # API gem 'active_model_serializers', '~> 0.10.10' -gem 'graphql', '~> 1.10.5' +gem 'graphql', '~> 1.10.7' gem 'rack-cors', '~> 1.1.1' # View diff --git a/Gemfile.lock b/Gemfile.lock index 581311f67..7d11e9d8d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -143,7 +143,7 @@ GEM rubyntlm (~> 0.5) globalid (0.4.2) activesupport (>= 4.2.0) - graphql (1.10.5) + graphql (1.10.7) guard (2.16.2) formatador (>= 0.2.4) listen (>= 2.7, < 4.0) @@ -456,7 +456,7 @@ DEPENDENCIES dotenv-rails friendly_id gitlab_omniauth-ldap (~> 2.1.1) - graphql (~> 1.10.5) + graphql (~> 1.10.7) guard (~> 2.16.2) guard-bundler guard-migrate From 79e863129f39194bd2ce0dbe9dcf6d9d1b71d5b0 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 17 Apr 2020 15:28:03 +0800 Subject: [PATCH 0097/2165] =?UTF-8?q?style:=20=E4=B8=8D=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=20footbar?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/layouts/application.html.slim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/layouts/application.html.slim b/app/views/layouts/application.html.slim index ee6779c1f..ba3d15f7f 100644 --- a/app/views/layouts/application.html.slim +++ b/app/views/layouts/application.html.slim @@ -29,4 +29,4 @@ html .content-wrapper == render 'layouts/content' - == render 'layouts/footer' \ No newline at end of file + / == render 'layouts/footer' \ No newline at end of file From 8a2baea9ff3e73101d42bb3f29763444ff7afc79 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 17 Apr 2020 16:09:07 +0800 Subject: [PATCH 0098/2165] =?UTF-8?q?doc:=20=E6=9B=B4=E6=96=B0=20CHANGELOG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7fc3d2373..e7fd0c86a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,27 @@ > 如下罗列的变更是还未发布的列表 +### 新功能 + +- [Docker] 支持 Heroku 部署 +- [Web] 游客模式允许查看 App 详情、列表和上传 App 详情 +- [API] 上传 App 支持自定义字段 [#178](https://github.com/getzealot/zealot/issues/178) + +### 修复 + +- [Web] 修正用户密码描述文案 +- [Web] 修复网络钩子包含 url 字段的地址错误 +- [Web/API] 修复上传 iOS dSYM 文件上传报错 +- [API] 修复获取 App 接口 has_password 参数异常 +- [API] 修复上传 App 记录的 source 来源都是 Web +- [API] 修复并支持上传 App 传递字符串类型的 json 格式的 changelog +- [Web] 修复系统信息没有正常获取 CPU 和内存信息 + +### 变更 + +- [Web] 开发环境移除 GraphQL 控制台功能,推荐使用 [graphql-playground](https://github.com/prisma-labs/graphql-playground) +- [Web] 页面底部移除 footbar,版本信息可以在系统信息查看 + ## [4.0.0.beta3] (2020-01-16) ### 新功能 @@ -41,7 +62,7 @@ 🌈 第一个公测版本发布啦 -[未发布]: https://github.com/getzealot/zealot/compare/4.0.0.beta3..HEAD +[未发布]: https://github.com/getzealot/zealot/compare/4.0.0.beta3...HEAD [4.0.0.beta3]: https://github.com/getzealot/zealot/compare/4.0.0.beta2...4.0.0.beta3 [4.0.0.beta2]: https://github.com/getzealot/zealot/compare/4.0.0.beta1...4.0.0.beta2 From 50832d87e229f62df827f072bda58a1928adbd1d Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 17 Apr 2020 17:26:23 +0800 Subject: [PATCH 0099/2165] test: fix codeclimate ruby lint --- .rubocop.yml | 4 +++- Gemfile | 4 ++-- Gemfile.lock | 4 ++-- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index 1edabe85b..f310c221d 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -1,8 +1,10 @@ -require: rubocop-rails +require: + - rubocop-rails AllCops: TargetRubyVersion: 2.6 TargetRailsVersion: 6.0 + DisabledByDefault: true Exclude: - 'vendor/**/*' - 'node_modules/**/*' diff --git a/Gemfile b/Gemfile index 6f6f91fbe..fc20cc278 100644 --- a/Gemfile +++ b/Gemfile @@ -114,8 +114,8 @@ end group :development, :test do gem 'dotenv-rails' - gem 'rubocop', '~> 0.77', require: false - gem 'rubocop-rails', '~> 2.5.2', require: false + gem 'rubocop', '>= 0.70', require: false + gem 'rubocop-rails', require: false gem 'pry-byebug' gem 'pry-rails' diff --git a/Gemfile.lock b/Gemfile.lock index 7987d0e59..0efd00cca 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -485,8 +485,8 @@ DEPENDENCIES rake (~> 13.0.1) redis (~> 4.1.3) rqrcode - rubocop (~> 0.77) - rubocop-rails (~> 2.5.2) + rubocop (>= 0.70) + rubocop-rails ruby-debug-ide sentry-raven settingslogic From 7d7bbbe1f24ca9cbc03850f880211ca8f62f5ec4 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 17 Apr 2020 19:47:54 +0800 Subject: [PATCH 0100/2165] =?UTF-8?q?fix:=20=E8=A7=A3=E5=86=B3=20ldap=20?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E4=BD=BF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index fc20cc278..7777dcf88 100644 --- a/Gemfile +++ b/Gemfile @@ -44,7 +44,7 @@ gem 'devise', '~> 4.7.1' gem 'devise-i18n', '~> 1.9.0' gem 'omniauth', '~> 1.9' gem 'omniauth-google-oauth2', '~> 0.8.0' -gem 'gitlab_omniauth-ldap', '~> 2.1.1' +gem 'gitlab_omniauth-ldap', '~> 2.1.1', require: 'omniauth-ldap' gem 'pundit', '~> 2.1.0' # 系统信息 From c7289bf6c0e3869b0a5b63b6ac684c7d02e95d0b Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 20 Apr 2020 18:02:14 +0800 Subject: [PATCH 0101/2165] =?UTF-8?q?refactor:=20=E9=83=A8=E5=88=86?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E7=9A=84=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/dashboards/_recently_upload.html.slim | 4 ++-- app/views/layouts/_content_header.html.slim | 4 ++-- app/views/releases/body/_activity.html.slim | 4 ++-- app/views/releases/body/_metadata.html.slim | 10 +++++----- app/views/teardowns/_android.html.slim | 14 +++++++------- 5 files changed, 18 insertions(+), 18 deletions(-) diff --git a/app/views/dashboards/_recently_upload.html.slim b/app/views/dashboards/_recently_upload.html.slim index 9e4c53114..1ce49d41b 100644 --- a/app/views/dashboards/_recently_upload.html.slim +++ b/app/views/dashboards/_recently_upload.html.slim @@ -33,10 +33,10 @@ section = link_to " #{release.app_name}", channel_release_path(release.channel, release) | 上传了新版本 = " #{release.release_version} (#{release.build_version})" - - unless release.changelog.blank? + - if release.changelog.present? .timeline-body.pb-1 = changelog_format release.changelog_list, class: 'mb-0' - - if !release.release_type.blank? || !release.branch.blank? || !release.short_git_commit.blank? + - if release.release_type.present? || release.branch.present? || release.short_git_commit.present? .timeline-footer - if release.release_type small.badge diff --git a/app/views/layouts/_content_header.html.slim b/app/views/layouts/_content_header.html.slim index f609d08d8..682f24f97 100644 --- a/app/views/layouts/_content_header.html.slim +++ b/app/views/layouts/_content_header.html.slim @@ -12,11 +12,11 @@ ruby: .col-sm-6 h1 = yield :section_title .col-sm-6 - - unless right_panel.blank? + - if right_panel.present? div.float-sm-right = right_panel - - unless breadcrumb.blank? + - if breadcrumb.present? ol.breadcrumb.float-sm-right = breadcrumb - else diff --git a/app/views/releases/body/_activity.html.slim b/app/views/releases/body/_activity.html.slim index c5b37dafe..73589a12b 100644 --- a/app/views/releases/body/_activity.html.slim +++ b/app/views/releases/body/_activity.html.slim @@ -23,10 +23,10 @@ ruby: h3.timeline-header = link_to release.app_name, channel_release_path(@release.channel, release) = " 上传了新版本 #{release.release_version} (#{release.build_version})" - - unless release.changelog.blank? + - if release.changelog.present? .timeline-body.pb-0 = changelog_format release.changelog_list, class: 'mb-0' - - if !release.release_type.blank? || !release.branch.blank? || !release.short_git_commit.blank? + - if release.release_type.present? || release.branch.present? || release.short_git_commit.present? .timeline-footer - if release.release_type small.badge diff --git a/app/views/releases/body/_metadata.html.slim b/app/views/releases/body/_metadata.html.slim index 31d03eb22..e616725b7 100644 --- a/app/views/releases/body/_metadata.html.slim +++ b/app/views/releases/body/_metadata.html.slim @@ -29,19 +29,19 @@ li title="主版本" i.fa.fa-server = "#{@release.release_version} (#{@release.build_version})" - - unless @release.release_type.blank? + - if @release.release_type.present? li title="类型" i.fa.fa-cubes = @release.release_type - - unless @release.branch.blank? + - if @release.branch.present? li title="分支" i.fa.fa-code-fork = @release.branch - - unless @release.file.blank? + - if @release.file.present? li title="文件体积" i.fa.fa-retweet = " #{number_to_human_size(@release.file.size)}" - - unless @release.git_commit.blank? + - if @release.git_commit.present? li title="Git Commit" i.fa.fa-git = git_commit_url(@release.channel.git_url, @release.git_commit) @@ -74,7 +74,7 @@ | 本地下载 span style=("margin:0 5px") - - unless @release.ci_url.blank? + - if @release.ci_url.present? button#build_it.btn.btn-icon.bg-success.btn-social data-app-id="#{@release.app.id}" data-job="#{@release.ci_url}" data-loading-text=(" 正在构建...") data-toggle="modal" onclick="build()" style=("margin-left: 10px") i.fa.fa-wrench | 构建新版 diff --git a/app/views/teardowns/_android.html.slim b/app/views/teardowns/_android.html.slim index a9d5e3486..745884253 100644 --- a/app/views/teardowns/_android.html.slim +++ b/app/views/teardowns/_android.html.slim @@ -40,12 +40,12 @@ ruby: .card-body table.table.table-striped - @app_info.activities.each do |activity| - - unless activity.blank? + - if activity.present? tr td = activity.name .col-md-4 - - unless @app_info.use_permissions.blank? + - if @app_info.use_permissions.present? .card .card-header h3.card-title Permissions @@ -55,11 +55,11 @@ ruby: .card-body table.table.table-striped - @app_info.use_permissions.sort.each do |permission| - - unless permission.blank? + - if permission.present? tr td = permission - - unless @app_info.use_features.blank? + - if @app_info.use_features.present? .card .card-header h3.card-title Features @@ -69,11 +69,11 @@ ruby: .card-body table.table.table-striped - @app_info.use_features.sort.each do |feature| - - unless feature.blank? + - if feature.present? tr td = feature - - unless @app_info.services.blank? + - if @app_info.services.present? .card .card-header h3.card-title Services @@ -83,7 +83,7 @@ ruby: .card-body table.table.table-striped - @app_info.services.sort_by(&:name).each do |service| - - unless service.blank? + - if service.present? tr td = service.name / .col-md-4 From fada8aa59743b47436cbac49338377d571c7c5c6 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 21 Apr 2020 10:58:17 +0800 Subject: [PATCH 0102/2165] =?UTF-8?q?chore:=20=E6=B7=BB=E5=8A=A0=20github?= =?UTF-8?q?=20actions=20=E6=9D=A5=E8=87=AA=E5=8A=A8=E5=A4=84=E7=90=86=20is?= =?UTF-8?q?sues=20=E5=92=8C=20PR?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/config.yml | 11 +++++++++++ .github/stale.yml | 16 ++++++++++++++++ .github/workflows/publish_nighty.yml | 1 + 3 files changed, 28 insertions(+) create mode 100644 .github/config.yml create mode 100644 .github/stale.yml diff --git a/.github/config.yml b/.github/config.yml new file mode 100644 index 000000000..ae4a4b014 --- /dev/null +++ b/.github/config.yml @@ -0,0 +1,11 @@ +newIssueWelcomeComment: > + 感谢你提交的问题或反馈,我会在有时间的时候回复在此期间你可以看看 + [之前被解决的反馈](https://github.com/getzealot/zealot/issues?q=is%3Aissue+is%3Aclosed)说不定有你需要的答案。 + +newPRWelcomeComment: > + 感谢你提交的问题或反馈,我会在有时间的时候来审查代码。 + +firstPRMergeComment: > + 感谢贡献 PR 来支持 Zealot! :tada: + + ![Congrats!](https://media.giphy.com/media/Tugu78Y5vg0Ss/giphy.gif) \ No newline at end of file diff --git a/.github/stale.yml b/.github/stale.yml new file mode 100644 index 000000000..4041b9c62 --- /dev/null +++ b/.github/stale.yml @@ -0,0 +1,16 @@ +# Number of days of inactivity before an issue becomes stale +daysUntilStale: 60 +# Number of days of inactivity before a stale issue is closed +daysUntilClose: 5 +# Issues with these labels will never be considered stale +exemptLabels: + - pinned + - security +# Label to use when marking an issue as stale +staleLabel: wontfix +# Comment to post when marking an issue as stale. Set to `false` to disable +markComment: > + 由于太长时间没有得到恢复本问题会自动被关闭,如果您还有问题可以重新开启或提交新问题。感谢你对于 Zealot 的关注! + +# Comment to post when closing a stale issue. Set to `false` to disable +closeComment: false \ No newline at end of file diff --git a/.github/workflows/publish_nighty.yml b/.github/workflows/publish_nighty.yml index 272e9d75e..f5f5ab6d0 100644 --- a/.github/workflows/publish_nighty.yml +++ b/.github/workflows/publish_nighty.yml @@ -2,6 +2,7 @@ name: Publish Nightly Docker Image on: push: paths-ignore: + - '.gitlab/*' - '*.md' - '.*' - 'LICENSE' From debce898a694191e9db0412bb221f51bb27f511b Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 21 Apr 2020 10:58:17 +0800 Subject: [PATCH 0103/2165] =?UTF-8?q?chore:=20=E6=B7=BB=E5=8A=A0=20github?= =?UTF-8?q?=20actions=20=E6=9D=A5=E8=87=AA=E5=8A=A8=E5=A4=84=E7=90=86=20is?= =?UTF-8?q?sues=20=E5=92=8C=20PR?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/config.yml | 11 +++++++++++ .github/stale.yml | 16 ++++++++++++++++ .github/workflows/publish_nighty.yml | 1 + 3 files changed, 28 insertions(+) create mode 100644 .github/config.yml create mode 100644 .github/stale.yml diff --git a/.github/config.yml b/.github/config.yml new file mode 100644 index 000000000..ae4a4b014 --- /dev/null +++ b/.github/config.yml @@ -0,0 +1,11 @@ +newIssueWelcomeComment: > + 感谢你提交的问题或反馈,我会在有时间的时候回复在此期间你可以看看 + [之前被解决的反馈](https://github.com/getzealot/zealot/issues?q=is%3Aissue+is%3Aclosed)说不定有你需要的答案。 + +newPRWelcomeComment: > + 感谢你提交的问题或反馈,我会在有时间的时候来审查代码。 + +firstPRMergeComment: > + 感谢贡献 PR 来支持 Zealot! :tada: + + ![Congrats!](https://media.giphy.com/media/Tugu78Y5vg0Ss/giphy.gif) \ No newline at end of file diff --git a/.github/stale.yml b/.github/stale.yml new file mode 100644 index 000000000..4041b9c62 --- /dev/null +++ b/.github/stale.yml @@ -0,0 +1,16 @@ +# Number of days of inactivity before an issue becomes stale +daysUntilStale: 60 +# Number of days of inactivity before a stale issue is closed +daysUntilClose: 5 +# Issues with these labels will never be considered stale +exemptLabels: + - pinned + - security +# Label to use when marking an issue as stale +staleLabel: wontfix +# Comment to post when marking an issue as stale. Set to `false` to disable +markComment: > + 由于太长时间没有得到恢复本问题会自动被关闭,如果您还有问题可以重新开启或提交新问题。感谢你对于 Zealot 的关注! + +# Comment to post when closing a stale issue. Set to `false` to disable +closeComment: false \ No newline at end of file diff --git a/.github/workflows/publish_nighty.yml b/.github/workflows/publish_nighty.yml index 272e9d75e..94015a322 100644 --- a/.github/workflows/publish_nighty.yml +++ b/.github/workflows/publish_nighty.yml @@ -2,6 +2,7 @@ name: Publish Nightly Docker Image on: push: paths-ignore: + - '.github/*.yml' - '*.md' - '.*' - 'LICENSE' From f604ae31929fcfdd670962c8022aa8a27f5a0e51 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 23 Apr 2020 11:31:03 +0800 Subject: [PATCH 0104/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=20Android?= =?UTF-8?q?=20=E8=A7=A3=E6=9E=90=20use=5Ffeatures=20=E6=95=B0=E7=BB=84?= =?UTF-8?q?=E4=BC=9A=E5=87=BA=E7=8E=B0=20nil=20=E5=BC=95=E5=8F=91=E6=8A=A5?= =?UTF-8?q?=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/teardowns/_android.html.slim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/teardowns/_android.html.slim b/app/views/teardowns/_android.html.slim index 745884253..dc4cbf811 100644 --- a/app/views/teardowns/_android.html.slim +++ b/app/views/teardowns/_android.html.slim @@ -68,7 +68,7 @@ ruby: i.fa.fa-minus .card-body table.table.table-striped - - @app_info.use_features.sort.each do |feature| + - @app_info.use_features.compact.sort.each do |feature| - if feature.present? tr td = feature From 380d2b01fff227b7e60cafbd0fc0c0512df69319 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 23 Apr 2020 11:33:25 +0800 Subject: [PATCH 0105/2165] =?UTF-8?q?doc:=20=E6=9B=B4=E6=96=B0=20CHANGELOG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e7fd0c86a..0f531b3ea 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,7 @@ - [API] 修复上传 App 记录的 source 来源都是 Web - [API] 修复并支持上传 App 传递字符串类型的 json 格式的 changelog - [Web] 修复系统信息没有正常获取 CPU 和内存信息 +- [Web] 修复在线解析 Android 应用偶尔报错 ### 变更 From f1f5bd6c7492e0b20f10ae578dcbd76ef356abe8 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 23 Apr 2020 15:50:04 +0800 Subject: [PATCH 0106/2165] =?UTF-8?q?feat:=20=E6=94=AF=E6=8C=81=E5=85=B3?= =?UTF-8?q?=E9=97=AD=E6=B3=A8=E5=86=8C=E6=9C=8D=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 设置环境变量 ZEALOT_REGISTER_ENABLED=false 可以关闭 --- .github/workflows/publish_nighty.yml | 1 + app/views/devise/registrations/new.html.slim | 57 +++++++++++--------- app/views/devise/shared/_links.html.slim | 2 +- config/zealot.yml | 1 + 4 files changed, 35 insertions(+), 26 deletions(-) diff --git a/.github/workflows/publish_nighty.yml b/.github/workflows/publish_nighty.yml index 94015a322..99ca3df80 100644 --- a/.github/workflows/publish_nighty.yml +++ b/.github/workflows/publish_nighty.yml @@ -20,6 +20,7 @@ jobs: - name: Publish to Registry uses: elgohr/Publish-Docker-Github-Action@master env: + REPLACE_CHINA_MIRROR: false VCS_REF: ${{ github.sha }} BUILD_DATE: ${{ steps.date.outputs.date }} VERSION: nightly diff --git a/app/views/devise/registrations/new.html.slim b/app/views/devise/registrations/new.html.slim index 4a7613b5d..4017741d5 100644 --- a/app/views/devise/registrations/new.html.slim +++ b/app/views/devise/registrations/new.html.slim @@ -1,31 +1,38 @@ - content_for :title do | 用户注册 -.login-box - .card - .card-body.login-card-body - p.login-box-msg 用户注册 - = simple_form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| - = render "devise/shared/error_messages", resource: resource +- if Zealot::Setting.register_enabled + .login-box + .card + .card-body.login-card-body + p.login-box-msg 用户注册 + = simple_form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| + = render "devise/shared/error_messages", resource: resource - = f.input :username, - required: true, - autofocus: true, - hint: '', - input_html: { autocomplete: "username", class: 'form-control' } - = f.input :email, - required: true, - autofocus: true, - hint: '', - input_html: { autocomplete: "email", class: 'form-control' } - = f.input :password, - required: true, - hint: ("最小 #{@minimum_password_length} 个字符" if @minimum_password_length), - input_html: { autocomplete: "new-password" } - = f.input :password_confirmation, - required: true, - input_html: { autocomplete: "new-password" } + = f.input :username, + required: true, + autofocus: true, + hint: '', + input_html: { autocomplete: "username", class: 'form-control' } + = f.input :email, + required: true, + autofocus: true, + hint: '', + input_html: { autocomplete: "email", class: 'form-control' } + = f.input :password, + required: true, + hint: ("最小 #{@minimum_password_length} 个字符" if @minimum_password_length), + input_html: { autocomplete: "new-password" } + = f.input :password_confirmation, + required: true, + input_html: { autocomplete: "new-password" } - = f.button :submit, '注册', class: 'btn-block' + = f.button :submit, '注册', class: 'btn-block' - == render 'devise/shared/links' \ No newline at end of file + == render 'devise/shared/links' +- else + .alert.alert-warning + h5 + i.icon.fa.fa-exclamation-triangle + | 错误! + | 服务没有开放注册功能!请联系管理员开通账户。 diff --git a/app/views/devise/shared/_links.html.slim b/app/views/devise/shared/_links.html.slim index 09975abcc..1e7476737 100644 --- a/app/views/devise/shared/_links.html.slim +++ b/app/views/devise/shared/_links.html.slim @@ -13,7 +13,7 @@ p.mb-1 = link_to "登录账户", new_session_path(resource_name) -- if devise_mapping.registerable? && controller_name != 'registrations' +- if Zealot::Setting.register_enabled && devise_mapping.registerable? && controller_name != 'registrations' p.mb-1 = link_to "注册账号", new_registration_path(resource_name) diff --git a/config/zealot.yml b/config/zealot.yml index dc505c4cf..230f2ecba 100644 --- a/config/zealot.yml +++ b/config/zealot.yml @@ -1,5 +1,6 @@ default: &base version: 4.0.0 + register_enabled: <%= ENV['ZEALOT_REGISTER_ENABLED'] || 'true' %> cron_jobs: clean_old_releases: cron: '0 6 * * *' From 8025c1fc0a2529c35edc27975641364da6c06f7b Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 23 Apr 2020 16:06:52 +0800 Subject: [PATCH 0107/2165] =?UTF-8?q?chore:=20=E5=B0=9D=E8=AF=95=E6=9E=84?= =?UTF-8?q?=E5=BB=BA=20nightly=20=E7=89=88=E6=9C=AC=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E5=8F=98=E9=87=8F=E7=89=88=E6=9C=AC=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/publish_nighty.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/publish_nighty.yml b/.github/workflows/publish_nighty.yml index 99ca3df80..6411bf672 100644 --- a/.github/workflows/publish_nighty.yml +++ b/.github/workflows/publish_nighty.yml @@ -25,10 +25,10 @@ jobs: BUILD_DATE: ${{ steps.date.outputs.date }} VERSION: nightly with: - name: icyleafcn/zealot:nightly + name: icyleafcn/zealot:${{ env.VERSION }} username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - buildargs: BUILD_DATE,VCS_REF,VERSION + buildargs: BUILD_DATE,VCS_REF,VERSION,REPLACE_CHINA_MIRROR - name: Docker Hub Description uses: peter-evans/dockerhub-description@v2.1.0 env: From ca85a66f25e1c99959a2d3aae1345cf50f364b4c Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 23 Apr 2020 16:41:09 +0800 Subject: [PATCH 0108/2165] =?UTF-8?q?style:=20=E7=94=A8=E6=88=B7=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E4=B8=80=E7=B3=BB=E5=88=97=E9=A1=B5=E9=9D=A2=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=20intro?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/devise/confirmations/new.html.slim | 31 ++++++------ app/views/devise/passwords/edit.html.slim | 50 +++++++++--------- app/views/devise/passwords/new.html.slim | 27 +++++----- app/views/devise/registrations/new.html.slim | 53 +++++++++++--------- app/views/devise/sessions/new.html.slim | 31 ++++++------ app/views/devise/shared/_intro.html.slim | 3 ++ app/views/layouts/_content.html.slim | 2 +- 7 files changed, 108 insertions(+), 89 deletions(-) create mode 100644 app/views/devise/shared/_intro.html.slim diff --git a/app/views/devise/confirmations/new.html.slim b/app/views/devise/confirmations/new.html.slim index 39a411a89..070a06246 100644 --- a/app/views/devise/confirmations/new.html.slim +++ b/app/views/devise/confirmations/new.html.slim @@ -1,20 +1,23 @@ - content_for :title do | 邮箱确认 -.login-box - .card - .card-body.login-card-body - p.login-box-msg 邮箱确认 - = simple_form_for(resource, as: resource_name, url: confirmation_path(resource_name), html: { method: :post }) do |f| - = render "devise/shared/error_messages", resource: resource +.row.mb-3.mt-3 + .col-sm-7.order-12.order-sm-1 + == render 'devise/shared/intro' + .login-box.col-sm-5.order-1.order-sm-12 + .card + .card-body.login-card-body + p.login-box-msg 邮箱确认 + = simple_form_for(resource, as: resource_name, url: confirmation_path(resource_name), html: { method: :post }) do |f| + = render "devise/shared/error_messages", resource: resource - = f.input :email, - required: true, - autofocus: true, - hint: '', - value: (resource.pending_reconfirmation? ? resource.unconfirmed_email : resource.email), - input_html: { autocomplete: 'email', class: 'form-control' } + = f.input :email, + required: true, + autofocus: true, + hint: '', + value: (resource.pending_reconfirmation? ? resource.unconfirmed_email : resource.email), + input_html: { autocomplete: 'email', class: 'form-control' } - = f.button :submit, '重新发送确认邮件', class: 'btn-block' + = f.button :submit, '重新发送确认邮件', class: 'btn-block' - == render 'devise/shared/links' + == render 'devise/shared/links' diff --git a/app/views/devise/passwords/edit.html.slim b/app/views/devise/passwords/edit.html.slim index e5885a8e4..bbfd3b9fa 100644 --- a/app/views/devise/passwords/edit.html.slim +++ b/app/views/devise/passwords/edit.html.slim @@ -1,29 +1,33 @@ - content_for :title do | 修改密码 -.login-box - .login-box-body - p.login-box-msg 修改密码 - = simple_form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :put }) do |f| - = f.error_notification +.row.mb-3.mt-3 + .col-sm-7.order-12.order-sm-1 + == render 'devise/shared/intro' + .login-box.col-sm-5.order-1.order-sm-12 + .card + .login-box-body + p.login-box-msg 修改密码 + = simple_form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :put }) do |f| + = f.error_notification - = f.input :reset_password_token, as: :hidden - = f.full_error :reset_password_token + = f.input :reset_password_token, as: :hidden + = f.full_error :reset_password_token - .form-group.has-feedback - = f.input :password, - label: "新密码", - required: true, - autofocus: true, - hint: ("最小 #{@minimum_password_length} 个字符" if @minimum_password_length), - input_html: { autocomplete: "new-password" } - .form-group.has-feedback - = f.input :password_confirmation, - label: "重复新密码", - required: true, - input_html: { autocomplete: "new-password" } - .row - .col-xs-4 - = f.submit '重置密码', class: 'btn btn-primary btn-flat' + .form-group.has-feedback + = f.input :password, + label: "新密码", + required: true, + autofocus: true, + hint: ("最小 #{@minimum_password_length} 个字符" if @minimum_password_length), + input_html: { autocomplete: "new-password" } + .form-group.has-feedback + = f.input :password_confirmation, + label: "重复新密码", + required: true, + input_html: { autocomplete: "new-password" } + .row + .col-xs-4 + = f.submit '重置密码', class: 'btn btn-primary btn-flat' - == render 'devise/shared/links' \ No newline at end of file + == render 'devise/shared/links' \ No newline at end of file diff --git a/app/views/devise/passwords/new.html.slim b/app/views/devise/passwords/new.html.slim index de0204f6f..1c3755c7f 100644 --- a/app/views/devise/passwords/new.html.slim +++ b/app/views/devise/passwords/new.html.slim @@ -2,18 +2,21 @@ - content_for :title do | 找回密码 -.login-box - .card - .card-body.login-card-body - p.login-box-msg 找回密码 - = simple_form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :post }) do |f| - = f.error_notification +.row.mb-3.mt-3 + .col-sm-7.order-12.order-sm-1 + == render 'devise/shared/intro' + .login-box.col-sm-5.order-1.order-sm-12 + .card + .card-body.login-card-body + p.login-box-msg 找回密码 + = simple_form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :post }) do |f| + = f.error_notification - = f.input :email, hint: '', - required: true, - autofocus: true, - input_html: { autocomplete: "email" } + = f.input :email, hint: '', + required: true, + autofocus: true, + input_html: { autocomplete: "email" } - = f.button :submit, '发送重置邮件', class: 'btn-block' + = f.button :submit, '发送重置邮件', class: 'btn-block' - == render 'devise/shared/links' \ No newline at end of file + == render 'devise/shared/links' \ No newline at end of file diff --git a/app/views/devise/registrations/new.html.slim b/app/views/devise/registrations/new.html.slim index 4017741d5..84a1719ab 100644 --- a/app/views/devise/registrations/new.html.slim +++ b/app/views/devise/registrations/new.html.slim @@ -2,34 +2,37 @@ | 用户注册 - if Zealot::Setting.register_enabled - .login-box - .card - .card-body.login-card-body - p.login-box-msg 用户注册 - = simple_form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| - = render "devise/shared/error_messages", resource: resource + .row.mb-3.mt-3 + .col-sm-7.order-12.order-sm-1 + == render 'devise/shared/intro' + .login-box.col-sm-5.order-1.order-sm-12 + .card + .card-body.login-card-body + p.login-box-msg 用户注册 + = simple_form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| + = render "devise/shared/error_messages", resource: resource - = f.input :username, - required: true, - autofocus: true, - hint: '', - input_html: { autocomplete: "username", class: 'form-control' } - = f.input :email, - required: true, - autofocus: true, - hint: '', - input_html: { autocomplete: "email", class: 'form-control' } - = f.input :password, - required: true, - hint: ("最小 #{@minimum_password_length} 个字符" if @minimum_password_length), - input_html: { autocomplete: "new-password" } - = f.input :password_confirmation, - required: true, - input_html: { autocomplete: "new-password" } + = f.input :username, + required: true, + autofocus: true, + hint: '', + input_html: { autocomplete: "username", class: 'form-control' } + = f.input :email, + required: true, + autofocus: true, + hint: '', + input_html: { autocomplete: "email", class: 'form-control' } + = f.input :password, + required: true, + hint: ("最小 #{@minimum_password_length} 个字符" if @minimum_password_length), + input_html: { autocomplete: "new-password" } + = f.input :password_confirmation, + required: true, + input_html: { autocomplete: "new-password" } - = f.button :submit, '注册', class: 'btn-block' + = f.button :submit, '注册', class: 'btn-block' - == render 'devise/shared/links' + == render 'devise/shared/links' - else .alert.alert-warning h5 diff --git a/app/views/devise/sessions/new.html.slim b/app/views/devise/sessions/new.html.slim index cc9a2909a..fc7767b70 100644 --- a/app/views/devise/sessions/new.html.slim +++ b/app/views/devise/sessions/new.html.slim @@ -1,19 +1,22 @@ - content_for :title do | 用户登录 -.login-box - .card - .card-body.login-card-body - p.login-box-msg 用户登录 - = simple_form_for(resource, as: resource_name, url: session_path(resource_name)) do |f| - == render 'layouts/messages' +.row.mb-3.mt-3 + .col-sm-7.order-12.order-sm-1 + == render 'devise/shared/intro' + .login-box.col-sm-5.order-1.order-sm-12 + .card.card-primary.card-outline.card-outline-tabs + .card-body + p.login-box-msg 用户登录 + = simple_form_for(resource, as: resource_name, url: session_path(resource_name)) do |f| + == render 'layouts/messages' - = f.input :email, required: true, autofocus: true, hint: '', input_html: { autocomplete: "email", class: 'form-control' } - = f.input :password, required: true, input_html: { autocomplete: "current-password" } - .row - .col-8 - = f.input :remember_me, as: :boolean, wrapper_html: {class: 'icheck-primary', style: 'margin-top: 6px!important'}, label_html: { style: 'font-weight: 700'} if devise_mapping.rememberable? - .col-4 - = f.button :submit, '登录', class: 'btn-block' + = f.input :email, required: true, autofocus: true, hint: '', input_html: { autocomplete: "email", class: 'form-control' } + = f.input :password, required: true, input_html: { autocomplete: "current-password" } + .row + .col-8 + = f.input :remember_me, as: :boolean, wrapper_html: {class: 'icheck-primary', style: 'margin-top: 6px!important'}, label_html: { style: 'font-weight: 700'} if devise_mapping.rememberable? + .col-4 + = f.button :submit, '登录', class: 'btn-block' - == render 'devise/shared/links' \ No newline at end of file + == render 'devise/shared/links' \ No newline at end of file diff --git a/app/views/devise/shared/_intro.html.slim b/app/views/devise/shared/_intro.html.slim new file mode 100644 index 000000000..788c0ff59 --- /dev/null +++ b/app/views/devise/shared/_intro.html.slim @@ -0,0 +1,3 @@ +h4.mb-3.font-weight-normal 移动应用上传竟然如此简单、移动 App 应用分发系统 +h5.mb-3 The Air Server for deployment of Android and iOS apps +p 解放开发打包的烦恼,轻松放权给测试、产品、运营等使用 App 的人员,提供丰富组件库,打包流程一键上传,iOS 和 Android 轻松接入,深度与 Jenkins 和 Gitlab 集成。 \ No newline at end of file diff --git a/app/views/layouts/_content.html.slim b/app/views/layouts/_content.html.slim index 08c7d8ba9..e99e24f64 100644 --- a/app/views/layouts/_content.html.slim +++ b/app/views/layouts/_content.html.slim @@ -4,5 +4,5 @@ section.content - if user_signed_in? == render 'layouts/messages' - .container-fluid + .container == yield \ No newline at end of file From 8b66234a200e0a0fb08de564ae106a4665117f28 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 24 Apr 2020 10:25:08 +0800 Subject: [PATCH 0109/2165] =?UTF-8?q?chore:=20=E6=B5=8B=E8=AF=95=E6=9E=84?= =?UTF-8?q?=E5=BB=BA=20docker=20action=20=E4=B9=9F=E4=B8=8D=E6=9B=BF?= =?UTF-8?q?=E6=8D=A2=E5=9B=BD=E5=86=85=E9=95=9C=E5=83=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/test_docker_build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test_docker_build.yml b/.github/workflows/test_docker_build.yml index 38bfd12a4..7360dfeaf 100644 --- a/.github/workflows/test_docker_build.yml +++ b/.github/workflows/test_docker_build.yml @@ -6,4 +6,4 @@ jobs: steps: - uses: actions/checkout@master - name: Build the Docker image - run: docker build . + run: docker build --build-arg REPLACE_CHINA_MIRROR=false . From 8872885e64e5aaecd7a1b69cd5cda1fc0b53ea08 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 27 Apr 2020 10:46:19 +0800 Subject: [PATCH 0110/2165] Update stale.yml --- .github/stale.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/stale.yml b/.github/stale.yml index 4041b9c62..4d6ca25ce 100644 --- a/.github/stale.yml +++ b/.github/stale.yml @@ -10,7 +10,7 @@ exemptLabels: staleLabel: wontfix # Comment to post when marking an issue as stale. Set to `false` to disable markComment: > - 由于太长时间没有得到恢复本问题会自动被关闭,如果您还有问题可以重新开启或提交新问题。感谢你对于 Zealot 的关注! + 由于太长时间没有得到回复本问题会自动被关闭,如果您还有问题可以重新开启或提交新问题。感谢你对于 Zealot 的关注! # Comment to post when closing a stale issue. Set to `false` to disable -closeComment: false \ No newline at end of file +closeComment: false From 6f3a8e7135c63bcacc6c386f498d0233d749ffd4 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 27 Apr 2020 06:54:02 +0000 Subject: [PATCH 0111/2165] chore(deps-dev): bump better_errors from 2.6.0 to 2.7.0 Bumps [better_errors](https://github.com/BetterErrors/better_errors) from 2.6.0 to 2.7.0. - [Release notes](https://github.com/BetterErrors/better_errors/releases) - [Commits](https://github.com/BetterErrors/better_errors/compare/v2.6.0...v2.7.0) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 0efd00cca..1117294f2 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -78,7 +78,7 @@ GEM ast (2.4.0) awesome_print (1.8.0) bcrypt (3.1.13) - better_errors (2.6.0) + better_errors (2.7.0) coderay (>= 1.0.0) erubi (>= 1.0.0) rack (>= 0.9.0) From 6d5a10317decdaffd76e2a9952cd40f5e3ba5428 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 28 Apr 2020 06:39:23 +0000 Subject: [PATCH 0112/2165] chore(deps): bump graphql from 1.10.7 to 1.10.8 Bumps [graphql](https://github.com/rmosolgo/graphql-ruby) from 1.10.7 to 1.10.8. - [Release notes](https://github.com/rmosolgo/graphql-ruby/releases) - [Changelog](https://github.com/rmosolgo/graphql-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/rmosolgo/graphql-ruby/compare/v1.10.7...v1.10.8) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 7777dcf88..171a3a759 100644 --- a/Gemfile +++ b/Gemfile @@ -17,7 +17,7 @@ gem 'redis', '~> 4.1.3' # API gem 'active_model_serializers', '~> 0.10.10' -gem 'graphql', '~> 1.10.7' +gem 'graphql', '~> 1.10.8' gem 'rack-cors', '~> 1.1.1' # View diff --git a/Gemfile.lock b/Gemfile.lock index 1117294f2..eb2ee56a2 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -143,7 +143,7 @@ GEM rubyntlm (~> 0.5) globalid (0.4.2) activesupport (>= 4.2.0) - graphql (1.10.7) + graphql (1.10.8) guard (2.16.2) formatador (>= 0.2.4) listen (>= 2.7, < 4.0) @@ -456,7 +456,7 @@ DEPENDENCIES dotenv-rails friendly_id gitlab_omniauth-ldap (~> 2.1.1) - graphql (~> 1.10.7) + graphql (~> 1.10.8) guard (~> 2.16.2) guard-bundler guard-migrate From 55d024ba8c06629bb7a979510c3f384c480b1daa Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 28 Apr 2020 19:16:49 +0800 Subject: [PATCH 0113/2165] =?UTF-8?q?style:=20=E7=89=88=E6=9C=AC=E8=AF=A6?= =?UTF-8?q?=E6=83=85=E6=8A=8A=E6=B6=89=E5=8F=8A=E7=9A=84=E8=AE=BE=E5=A4=87?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E7=A7=BB=E5=8A=A8=E5=88=B0=E5=B7=A6=E4=BE=A7?= =?UTF-8?q?=E5=B9=B6=E9=BB=98=E8=AE=A4=E6=94=B6=E8=B5=B7=E4=B8=8D=E6=98=BE?= =?UTF-8?q?=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/releases/{sidebar => body}/_devices.html.slim | 4 ++-- app/views/releases/show.html.slim | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) rename app/views/releases/{sidebar => body}/_devices.html.slim (88%) diff --git a/app/views/releases/sidebar/_devices.html.slim b/app/views/releases/body/_devices.html.slim similarity index 88% rename from app/views/releases/sidebar/_devices.html.slim rename to app/views/releases/body/_devices.html.slim index 789fd4d19..23f3479f9 100644 --- a/app/views/releases/sidebar/_devices.html.slim +++ b/app/views/releases/body/_devices.html.slim @@ -1,13 +1,13 @@ - unless @release.devices.empty? .devices - .card + .card.collapsed-card .card-header h3.card-title i.fa.fa-mobile-phone = " #{@release.devices.count} 台测试设备 (UDID)" .card-tools button.btn.btn-tool data-card-widget="collapse" - i.fa.fa-minus + i.fa.fa-plus .card-body.p-0 table.table - @release.devices.each do |device| diff --git a/app/views/releases/show.html.slim b/app/views/releases/show.html.slim index 93170bb4d..31893f925 100644 --- a/app/views/releases/show.html.slim +++ b/app/views/releases/show.html.slim @@ -8,13 +8,13 @@ == render 'releases/body/wechat' == render 'releases/body/metadata' == render 'releases/body/changelog' + == render 'releases/body/devices' == render 'releases/body/activity' .col-md-4 - if user_signed_in? a.btn.btn-success.btn-block.mb-3 href="#{new_channel_release_path(@channel)}" 上传应用 == render 'releases/sidebar/qrcode' - == render 'releases/sidebar/devices' == render 'releases/sidebar/version' a.btn.btn-default.btn-block href="#{channel_path(@channel)}" 应用管理 - else From b5777d6b37cadb1e8e6839fb081c6fbd49751331 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 28 Apr 2020 19:17:17 +0800 Subject: [PATCH 0114/2165] =?UTF-8?q?style:=20=E8=B0=83=E6=95=B4=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0=E7=89=88=E6=9C=AC=E8=AF=A6=E6=83=85=E5=85=83=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E7=9A=84=E6=98=BE=E7=A4=BA=E9=A1=BA=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/releases/body/_metadata.html.slim | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/app/views/releases/body/_metadata.html.slim b/app/views/releases/body/_metadata.html.slim index e616725b7..242449607 100644 --- a/app/views/releases/body/_metadata.html.slim +++ b/app/views/releases/body/_metadata.html.slim @@ -33,19 +33,21 @@ li title="类型" i.fa.fa-cubes = @release.release_type - - if @release.branch.present? - li title="分支" - i.fa.fa-code-fork - = @release.branch - if @release.file.present? li title="文件体积" i.fa.fa-retweet = " #{number_to_human_size(@release.file.size)}" + li title="上传时间" + i.fa.fa-calendar + = time_ago_in_words(@release.created_at) + - if @release.branch.present? + li title="Git 分支" + i.fa.fa-code-fork + = @release.branch - if @release.git_commit.present? li title="Git Commit" i.fa.fa-git = git_commit_url(@release.channel.git_url, @release.git_commit) - - @release.custom_fields.each do |field| li title="#{field['name']}" i.fa class="fa-#{field['icon']}" @@ -56,9 +58,6 @@ = @release.source - else = link_to @release.source, @release.ci_url - li title="上传时间" - i.fa.fa-calendar - = time_ago_in_words(@release.created_at) .app-actions - unless wechat? From 045700182270763e7043aebba692b27b5c3c747b Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 30 Apr 2020 18:43:26 +0800 Subject: [PATCH 0115/2165] =?UTF-8?q?feat:=20=E6=A3=80=E6=9F=A5=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E5=A2=9E=E5=8A=A0=20bundle=5Fid=20=E7=9A=84=E7=BA=AC?= =?UTF-8?q?=E5=BA=A6=E9=98=B2=E6=AD=A2=E4=B8=8D=E5=90=8C=20bundle=5Fid=20?= =?UTF-8?q?=E7=9A=84=E6=B7=B7=E8=BF=9B=E6=9D=A5=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/api/apps/latest_controller.rb | 1 + app/models/channel.rb | 3 ++- app/serializers/api/latest_app_serializer.rb | 5 +++-- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/app/controllers/api/apps/latest_controller.rb b/app/controllers/api/apps/latest_controller.rb index 06d961489..957694890 100644 --- a/app/controllers/api/apps/latest_controller.rb +++ b/app/controllers/api/apps/latest_controller.rb @@ -9,6 +9,7 @@ def show render json: @channel, serializer: Api::LatestAppSerializer, + bundle_id: params[:bundle_id], release_version: params[:release_version], build_version: params[:build_version] end diff --git a/app/models/channel.rb b/app/models/channel.rb index e16ac3d16..5becf5176 100644 --- a/app/models/channel.rb +++ b/app/models/channel.rb @@ -28,9 +28,10 @@ def recently_releases(limit = 10) releases.limit(limit).order(id: :desc) end - def find_since_version(release_version, build_version) + def find_since_version(bundle_id, release_version, build_version) releases.where("release_version >= '#{release_version}'") .where("build_version > '#{build_version}'") + .where(bundle_id: bundle_id) .order(id: :desc) end diff --git a/app/serializers/api/latest_app_serializer.rb b/app/serializers/api/latest_app_serializer.rb index b5b36af54..8316241e1 100644 --- a/app/serializers/api/latest_app_serializer.rb +++ b/app/serializers/api/latest_app_serializer.rb @@ -9,12 +9,13 @@ class Api::LatestAppSerializer < ApplicationSerializer has_many :releases def releases + bundle_id = instance_options[:bundle_id] release_version = instance_options[:release_version] build_version = instance_options[:build_version] if release_version.blank? && build_version.blank? - object.releases.last + object.releases.find_by(bundle_id: bundle_id) else - object.find_since_version(release_version, build_version) + object.find_since_version(bundle_id, release_version, build_version) end end end From 656b97319d4dd7edcc070543d6c29a2a9e7ac472 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 30 Apr 2020 18:51:25 +0800 Subject: [PATCH 0116/2165] =?UTF-8?q?style:=20=E7=89=88=E6=9C=AC=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E5=A2=9E=E5=8A=A0=20git=5Fcommit=20=E7=9A=84=E9=93=BE?= =?UTF-8?q?=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/apps_helper.rb | 2 ++ app/views/channels/versions/_list.slim | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/app/helpers/apps_helper.rb b/app/helpers/apps_helper.rb index de332b50c..a6b25b6cc 100644 --- a/app/helpers/apps_helper.rb +++ b/app/helpers/apps_helper.rb @@ -46,6 +46,8 @@ def matched_password?(release) end def git_commit_url(git_url, commit, commit_length = 8) + return if commit.blank? + commit_name = commit[0..(commit_length - 1)] return commit_name if git_url.blank? diff --git a/app/views/channels/versions/_list.slim b/app/views/channels/versions/_list.slim index f90e343f1..bf4e816f0 100644 --- a/app/views/channels/versions/_list.slim +++ b/app/views/channels/versions/_list.slim @@ -1,6 +1,7 @@ table.table.table-striped.table-hover tr th ID + th 主版本 th 开发版本 th 打包类型 th 分支 @@ -13,6 +14,8 @@ table.table.table-striped.table-hover tr td = index + 1 + td + = link_to release.release_version, channel_version_path(release.channel, release.release_version) td = link_to release.build_version, channel_release_path(release.channel, release) td @@ -20,7 +23,7 @@ table.table.table-striped.table-hover td = release.branch td - = release.short_git_commit + = git_commit_url(release.channel.git_url, release.git_commit) td = link_to '下载本地', release.download_url, { target: '_blank' } td From 72b0c2517d850c57064991de7aebc45f2441251b Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 30 Apr 2020 18:58:13 +0800 Subject: [PATCH 0117/2165] =?UTF-8?q?feat:=20=E4=BF=9D=E5=AD=98=20git=20br?= =?UTF-8?q?anch=20=E4=BC=9A=E8=87=AA=E5=8A=A8=E5=8E=BB=E9=99=A4=E5=BC=80?= =?UTF-8?q?=E5=A4=B4=E7=9A=84=20"origin/"=20=E5=89=8D=E7=BC=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/release.rb | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/app/models/release.rb b/app/models/release.rb index 2757a7c29..60a0fbef2 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -17,6 +17,7 @@ class Release < ApplicationRecord before_create :default_source before_save :convert_changelog before_save :convert_custom_fields + before_save :trip_git_branch delegate :scheme, :device_type, to: :channel delegate :app, to: :scheme @@ -211,6 +212,13 @@ def convert_custom_fields end end + ORIGIN_PREFIX = 'origin/' + def trip_git_branch + return unless git_branch.start_with?(ORIGIN_PREFIX) + + self.git_branch = git_branch[ORIGIN_PREFIX.length..-1] + end + def default_source self.source ||= 'API' end From 32e0e70bb4878d60c2cb79c917a833e221011a79 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 4 May 2020 06:48:49 +0000 Subject: [PATCH 0118/2165] chore(deps): bump redis from 4.1.3 to 4.1.4 Bumps [redis](https://github.com/redis/redis-rb) from 4.1.3 to 4.1.4. - [Release notes](https://github.com/redis/redis-rb/releases) - [Changelog](https://github.com/redis/redis-rb/blob/master/CHANGELOG.md) - [Commits](https://github.com/redis/redis-rb/compare/v4.1.3...v4.1.4) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 171a3a759..fed199443 100644 --- a/Gemfile +++ b/Gemfile @@ -13,7 +13,7 @@ gem 'rake', '~> 13.0.1' # DB & Cache gem 'pg', '>= 0.18', '< 2.0' -gem 'redis', '~> 4.1.3' +gem 'redis', '~> 4.1.4' # API gem 'active_model_serializers', '~> 0.10.10' diff --git a/Gemfile.lock b/Gemfile.lock index eb2ee56a2..f5f18b631 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -335,7 +335,7 @@ GEM rb-fsevent (0.10.3) rb-inotify (0.10.1) ffi (~> 1.0) - redis (4.1.3) + redis (4.1.4) responders (3.0.0) actionpack (>= 5.0) railties (>= 5.0) @@ -483,7 +483,7 @@ DEPENDENCIES rails (~> 6.0.2) rails-i18n (~> 6.0.0) rake (~> 13.0.1) - redis (~> 4.1.3) + redis (~> 4.1.4) rqrcode rubocop (>= 0.70) rubocop-rails From 7c0892e345b31f07b950f301ce286987199d442f Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 5 May 2020 06:29:59 +0000 Subject: [PATCH 0119/2165] chore(deps): bump graphql from 1.10.8 to 1.10.9 Bumps [graphql](https://github.com/rmosolgo/graphql-ruby) from 1.10.8 to 1.10.9. - [Release notes](https://github.com/rmosolgo/graphql-ruby/releases) - [Changelog](https://github.com/rmosolgo/graphql-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/rmosolgo/graphql-ruby/compare/v1.10.8...v1.10.9) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 171a3a759..733e5844f 100644 --- a/Gemfile +++ b/Gemfile @@ -17,7 +17,7 @@ gem 'redis', '~> 4.1.3' # API gem 'active_model_serializers', '~> 0.10.10' -gem 'graphql', '~> 1.10.8' +gem 'graphql', '~> 1.10.9' gem 'rack-cors', '~> 1.1.1' # View diff --git a/Gemfile.lock b/Gemfile.lock index eb2ee56a2..76eaeb22a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -143,7 +143,7 @@ GEM rubyntlm (~> 0.5) globalid (0.4.2) activesupport (>= 4.2.0) - graphql (1.10.8) + graphql (1.10.9) guard (2.16.2) formatador (>= 0.2.4) listen (>= 2.7, < 4.0) @@ -456,7 +456,7 @@ DEPENDENCIES dotenv-rails friendly_id gitlab_omniauth-ldap (~> 2.1.1) - graphql (~> 1.10.8) + graphql (~> 1.10.9) guard (~> 2.16.2) guard-bundler guard-migrate From f701b75d672095aedecb3be191488fe4b4588fba Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 6 May 2020 17:41:38 +0800 Subject: [PATCH 0120/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0=20release=20=E5=A4=84=E7=90=86=20branch=20=E5=8F=98?= =?UTF-8?q?=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/release.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/models/release.rb b/app/models/release.rb index 60a0fbef2..46eed2a29 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -17,7 +17,7 @@ class Release < ApplicationRecord before_create :default_source before_save :convert_changelog before_save :convert_custom_fields - before_save :trip_git_branch + before_save :trip_branch delegate :scheme, :device_type, to: :channel delegate :app, to: :scheme @@ -213,10 +213,10 @@ def convert_custom_fields end ORIGIN_PREFIX = 'origin/' - def trip_git_branch - return unless git_branch.start_with?(ORIGIN_PREFIX) + def trip_branch + return unless branch.start_with?(ORIGIN_PREFIX) - self.git_branch = git_branch[ORIGIN_PREFIX.length..-1] + self.branch = branch[ORIGIN_PREFIX.length..-1] end def default_source From 528328a2f493276a27b9d1bf07106b7293adb9c5 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 7 May 2020 14:17:15 +0800 Subject: [PATCH 0121/2165] =?UTF-8?q?style:=20=E5=BE=AE=E4=BF=A1=E6=89=93?= =?UTF-8?q?=E5=BC=80=E5=90=8E=E4=BB=85=E5=9C=A8=E7=89=88=E6=9C=AC=E8=AF=A6?= =?UTF-8?q?=E6=83=85=E6=98=BE=E7=A4=BA=E6=8F=90=E7=A4=BA=E5=92=8C=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E5=AE=89=E8=A3=85=E5=BC=95=E5=AF=BC=E6=96=87=E6=A1=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/layouts/application.html.slim | 1 - app/views/{layouts => releases}/_tips.html.slim | 2 +- app/views/releases/body/_wechat.html.slim | 17 +++++++++++------ app/views/releases/show.html.slim | 3 +-- 4 files changed, 13 insertions(+), 10 deletions(-) rename app/views/{layouts => releases}/_tips.html.slim (68%) diff --git a/app/views/layouts/application.html.slim b/app/views/layouts/application.html.slim index ba3d15f7f..9410050c1 100644 --- a/app/views/layouts/application.html.slim +++ b/app/views/layouts/application.html.slim @@ -23,7 +23,6 @@ html body class="#{body_class}" .wrapper - == render 'layouts/tips' == render 'layouts/navigation' .content-wrapper diff --git a/app/views/layouts/_tips.html.slim b/app/views/releases/_tips.html.slim similarity index 68% rename from app/views/layouts/_tips.html.slim rename to app/views/releases/_tips.html.slim index 9ac57939b..623efb478 100644 --- a/app/views/layouts/_tips.html.slim +++ b/app/views/releases/_tips.html.slim @@ -5,4 +5,4 @@ = "点击右上角菜单" br = "在 Safari 中打开并安装" - = image_pack_path('media/images/wechat/short-arrow.png') \ No newline at end of file + = image_pack_tag('media/images/wechat/short-arrow.png') \ No newline at end of file diff --git a/app/views/releases/body/_wechat.html.slim b/app/views/releases/body/_wechat.html.slim index 5730afd48..095cefc32 100644 --- a/app/views/releases/body/_wechat.html.slim +++ b/app/views/releases/body/_wechat.html.slim @@ -1,6 +1,11 @@ -div.alert.alert-danger.alert-dismissible.fade.in role="alert" - p 由于微信的限制,麻烦按照操作提示进行操作。 - ol - li 点击右上角菜单 - li 在 Safari 中打开 - li 登录或密码授权后就可以安装应用 \ No newline at end of file +- if wechat? + = render "releases/tips" + + .alert.alert-danger.alert-dismissible + button.close data-dismiss="alert" aria-hidden="true" × + h4 + p 微信限制请按照提示安装: + ol style="padding-left: 20px" + li 点击右上角微信菜单 + li 选择在 “Safari 中打开” + li 账户登录或密码确认后就进行安装 \ No newline at end of file diff --git a/app/views/releases/show.html.slim b/app/views/releases/show.html.slim index 31893f925..7a5e1c402 100644 --- a/app/views/releases/show.html.slim +++ b/app/views/releases/show.html.slim @@ -4,8 +4,7 @@ - if logged_in_or_without_auth?(@release) .row .col-md-8 - - if wechat? - == render 'releases/body/wechat' + == render 'releases/body/wechat' == render 'releases/body/metadata' == render 'releases/body/changelog' == render 'releases/body/devices' From f8cd380ade3eb92974defefa9e6c5405e3cc7d9e Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 7 May 2020 16:50:00 +0800 Subject: [PATCH 0122/2165] =?UTF-8?q?=E5=8F=91=E5=B8=83=204.0.0=20beta4=20?= =?UTF-8?q?(#195)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: 修复上传 app 处理 branch 异常 * feat: 上传 app 后返回应用版本的自增 id(提供给 fastlane-plugin-zealot) * release: 发布 4.0.0 beta4 --- CHANGELOG.md | 10 +++++++++- app/models/release.rb | 1 + app/serializers/api/upload_app_serializer.rb | 2 +- config/zealot.yml | 2 +- 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0f531b3ea..eea8326ef 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,25 +4,33 @@ > 如下罗列的变更是还未发布的列表 +## [4.0.0.beta4] (2020-05-07) + ### 新功能 - [Docker] 支持 Heroku 部署 - [Web] 游客模式允许查看 App 详情、列表和上传 App 详情 - [API] 上传 App 支持自定义字段 [#178](https://github.com/getzealot/zealot/issues/178) +- [Web/API] 上传 App 传递了 `branch` 值开头包含 `origin/` 开头会自动清理掉 +- [Web] 登录、注册、找回密码、重设密码等用户认证界面增加项目简介 ### 修复 - [Web] 修正用户密码描述文案 -- [Web] 修复网络钩子包含 url 字段的地址错误 +- [Web] 修复网络钩子(WebHook)包含 url 字段的地址错误 - [Web/API] 修复上传 iOS dSYM 文件上传报错 - [API] 修复获取 App 接口 has_password 参数异常 - [API] 修复上传 App 记录的 source 来源都是 Web - [API] 修复并支持上传 App 传递字符串类型的 json 格式的 changelog - [Web] 修复系统信息没有正常获取 CPU 和内存信息 - [Web] 修复在线解析 Android 应用偶尔报错 +- [Web] 修复使用微信扫描二维码页面报错 ### 变更 +- [API] 应用最新版本接口(`apps/latest`)增加 bundle_id 纬度的验证 +- [Web] 游客模式可以访问应用版本详情和下载操作 +- [Web] 应用版本详情对于 iOS AdHoc 右侧的设备列表左移并默认收起状态 - [Web] 开发环境移除 GraphQL 控制台功能,推荐使用 [graphql-playground](https://github.com/prisma-labs/graphql-playground) - [Web] 页面底部移除 footbar,版本信息可以在系统信息查看 diff --git a/app/models/release.rb b/app/models/release.rb index 46eed2a29..398a271ff 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -214,6 +214,7 @@ def convert_custom_fields ORIGIN_PREFIX = 'origin/' def trip_branch + return if branch.blank? return unless branch.start_with?(ORIGIN_PREFIX) self.branch = branch[ORIGIN_PREFIX.length..-1] diff --git a/app/serializers/api/upload_app_serializer.rb b/app/serializers/api/upload_app_serializer.rb index 622f84110..5a4b95614 100644 --- a/app/serializers/api/upload_app_serializer.rb +++ b/app/serializers/api/upload_app_serializer.rb @@ -2,7 +2,7 @@ class Api::UploadAppSerializer < ApplicationSerializer # release model based - attributes :version, :app_name, :bundle_id, :release_version, :build_version, + attributes :id, :version, :app_name, :bundle_id, :release_version, :build_version, :source, :branch, :git_commit, :ci_url, :size, :icon_url, :release_url, :install_url, :qrcode_url, :changelog_list, :created_at diff --git a/config/zealot.yml b/config/zealot.yml index 230f2ecba..6f117368d 100644 --- a/config/zealot.yml +++ b/config/zealot.yml @@ -1,5 +1,5 @@ default: &base - version: 4.0.0 + version: 4.0.0.beta4 register_enabled: <%= ENV['ZEALOT_REGISTER_ENABLED'] || 'true' %> cron_jobs: clean_old_releases: From 64a20c283050af406c5231c0241bc479f8290b24 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 8 May 2020 15:41:55 +0800 Subject: [PATCH 0123/2165] =?UTF-8?q?feat:=20=E5=9C=A8=E7=BA=BF=E8=A7=A3?= =?UTF-8?q?=E6=9E=90=20iOS=20=E4=BC=98=E5=8C=96=E6=98=BE=E7=A4=BA=E7=9A=84?= =?UTF-8?q?=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/teardowns/_ios.html.slim | 99 ++++++++++++++++-------------- 1 file changed, 54 insertions(+), 45 deletions(-) diff --git a/app/views/teardowns/_ios.html.slim b/app/views/teardowns/_ios.html.slim index 4c722c8cc..56fe31dcc 100644 --- a/app/views/teardowns/_ios.html.slim +++ b/app/views/teardowns/_ios.html.slim @@ -30,18 +30,15 @@ h3.card-title 描述文件 .card-body dl.system-info - dt 名称 + dt 名称 (类型) dd - pre = @app_info.profile_name + pre = "#{@app_info.profile_name} (#{@app_info.release_type})" dt UUID dd pre = @app_info.mobileprovision.UUID - dt 类型 + dt 团队名称 (Team ID) dd - pre = @app_info.release_type - dt 团队名称 - dd - pre = "#{@app_info.team_name} (#{@app_info.team_identifier.first}" + pre = "#{@app_info.team_name} (#{@app_info.team_identifier.first})" dt 创建时间 dd pre = @app_info.mobileprovision.created_date @@ -52,53 +49,65 @@ span.text-green.text-bold = "还有#{distance_of_time_in_words(Time.current, @app_info.expired_date)}过期" | ) + + - if @app_info.mobileprovision.developer_certs.present? + .card + .card-header + h3.card-title + | 开发者证书 ( + = @app_info.mobileprovision.developer_certs.size + | ) + .card-body + dl.system-info + - @app_info.mobileprovision.developer_certs.each_with_index do |cert, i| + dt + | 证书 + = i + 1 + dd + pre = cert.name + dt 创建时间 + dd + pre = cert.created_date + dt 过期时间 + dd + pre = cert.expired_date + + - if @app_info.release_type == AppInfo::IPA::ExportType::ADHOC .card .card-header - h3.card-title 开发者证书 + h3.card-title 设备列表 + .card-tools + button.btn.btn-tool data-card-widget="collapse" + i.fa.fa-plus .card-body - dl.system-info - dt 名称 - dd - pre = @app_info.profile_name - dt 过期时间 - dd - pre = @app_info.mobileprovision.UUID - - - if @app_info.release_type == AppInfo::IPA::ExportType::ADHOC - .card - .card-header - h3.card-title 设备列表 - .card-body - table.table.table-striped - tr - th UDID - tr - td 18cf53cddee60c5af9c97b1521e7cbf8342628da - tr - td 18cf53cddee60c5af9c97b1521e7cbf8342628da - tr - td 18cf53cddee60c5af9c97b1521e7cbf8342628da - tr - td 18cf53cddee60c5af9c97b1521e7cbf8342628da - - .col-md-4 - .card - .card-header - h3.card-title URL Schemes - .card-body - table.table.table-striped - - @app_info.info['CFBundleURLTypes'].each do |type| + table.table.table-striped tr - td = type['CFBundleURLSchemes'].join(', ') + th UDID + - @app_info.devices.each do |device| + tr + td = device + - if @app_info.mobileprovision.Entitlements + .card + .card-header + h3.card-title Entitlements + .card-tools + button.btn.btn-tool data-card-widget="collapse" + i.fa.fa-plus + .card-body + table.table.table-striped + - @app_info.mobileprovision.Entitlements.each do |scheme| + tr + td = scheme[0] + td = scheme[1] - - if @app_info.mobileprovision.Entitlements['com.apple.developer.'] + - if @app_info.info['CFBundleURLTypes'].present? .col-md-4 .card .card-header - h3.card-title Universal Links + h3.card-title URL Schemes .card-body table.table.table-striped - - @app_info.mobileprovision.Entitlements.each do |scheme| + - @app_info.info['CFBundleURLTypes'].each do |type| tr - td = scheme \ No newline at end of file + td = type['CFBundleURLSchemes'].join(', ') From 6c1cccbeee0820b579e8847f59c3611cbd227a13 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 8 May 2020 16:22:17 +0800 Subject: [PATCH 0124/2165] =?UTF-8?q?feat:=20=E7=89=88=E6=9C=AC=E8=AF=A6?= =?UTF-8?q?=E6=83=85=E6=98=BE=E7=A4=BA=E5=8E=9F=E6=9C=AC=E5=BA=94=E7=94=A8?= =?UTF-8?q?=E5=90=8D=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/api/apps/upload_controller.rb | 2 +- app/models/release.rb | 1 + db/migrate/20200508074228_append_name_to_releases.rb | 9 +++++++++ db/schema.rb | 3 ++- 4 files changed, 13 insertions(+), 2 deletions(-) create mode 100644 db/migrate/20200508074228_append_name_to_releases.rb diff --git a/app/controllers/api/apps/upload_controller.rb b/app/controllers/api/apps/upload_controller.rb index d1f72a3d3..a94359d2b 100644 --- a/app/controllers/api/apps/upload_controller.rb +++ b/app/controllers/api/apps/upload_controller.rb @@ -9,8 +9,8 @@ class Api::Apps::UploadController < Api::BaseController # POST /api/apps/upload # # @param token [String] required user token - # @param channel_key [String] required channel key of app # @param file [String] required file of app + # @param channel_key [String] optional channel key of app # @param name [String] optional name of app # @param password [String] optional password to download app # @param release_type [String] optional release type(debug, beta, adhoc, release, enterprise etc) diff --git a/app/models/release.rb b/app/models/release.rb index 398a271ff..2165b85c5 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -42,6 +42,7 @@ def self.upload_file(params) begin parser = AppInfo.parse(release.file.path) release.source ||= 'Web' + release.name = parser.name release.bundle_id = parser.bundle_id release.release_version = parser.release_version release.build_version = parser.build_version diff --git a/db/migrate/20200508074228_append_name_to_releases.rb b/db/migrate/20200508074228_append_name_to_releases.rb new file mode 100644 index 000000000..d295cdcbf --- /dev/null +++ b/db/migrate/20200508074228_append_name_to_releases.rb @@ -0,0 +1,9 @@ +class AppendNameToReleases < ActiveRecord::Migration[6.0] + def up + add_column :releases, :name, :string, null: true + end + + def down + remove_column :releases, :name + end +end diff --git a/db/schema.rb b/db/schema.rb index e099dafe0..2b7fdb6fa 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 2020_04_03_093411) do +ActiveRecord::Schema.define(version: 2020_05_08_074228) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -97,6 +97,7 @@ t.datetime "created_at", precision: 6, null: false t.datetime "updated_at", precision: 6, null: false t.jsonb "custom_fields", default: [], null: false + t.string "name" t.index ["build_version"], name: "index_releases_on_build_version" t.index ["bundle_id"], name: "index_releases_on_bundle_id" t.index ["channel_id", "version"], name: "index_releases_on_channel_id_and_version", unique: true From 10cfbcba1ba17496cf2026d0d9091b51aba9ee43 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 8 May 2020 17:27:35 +0800 Subject: [PATCH 0125/2165] =?UTF-8?q?style:=20=E4=BC=98=E5=8C=96=E5=88=86?= =?UTF-8?q?=E9=A1=B5=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/kaminari/_gap.html.slim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/kaminari/_gap.html.slim b/app/views/kaminari/_gap.html.slim index a97d7aa57..8357d924e 100644 --- a/app/views/kaminari/_gap.html.slim +++ b/app/views/kaminari/_gap.html.slim @@ -1,2 +1,2 @@ li.disabled - = content_tag :a, raw(t 'views.pagination.truncate') + = content_tag :a, raw(t 'views.pagination.truncate'), class: 'page-link' From 831848c4fbeebeaf0b591ca38c87d637f3be9173 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 8 May 2020 18:00:59 +0800 Subject: [PATCH 0126/2165] =?UTF-8?q?style:=20=E7=A7=BB=E9=99=A4=E8=80=81?= =?UTF-8?q?=E7=89=88=E6=9C=AC=20font-awesome=20=E9=87=87=E7=94=A8=20adminl?= =?UTF-8?q?te=20=E4=BE=9D=E8=B5=96=E7=9A=84=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 -- yarn.lock | 5 ----- 2 files changed, 7 deletions(-) diff --git a/package.json b/package.json index 09a963765..dbbabb5d0 100644 --- a/package.json +++ b/package.json @@ -6,8 +6,6 @@ "@rails/webpacker": "^5.0.1", "admin-lte": "^3.0.4", "filepond": "^4.9.3", - "font-awesome": "^4.7.0", - "jquery": "^3.4.1", "rails-erb-loader": "^5.5.2", "turbolinks": "^5.2.0" }, diff --git a/yarn.lock b/yarn.lock index d2a9d726c..c26d75d30 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4060,11 +4060,6 @@ follow-redirects@^1.0.0: dependencies: debug "^3.0.0" -font-awesome@^4.7.0: - version "4.7.0" - resolved "https://registry.npm.taobao.org/font-awesome/download/font-awesome-4.7.0.tgz#8fa8cf0411a1a31afd07b06d2902bb9fc815a133" - integrity sha1-j6jPBBGhoxr9B7BtKQK7n8gVoTM= - fontkit@^1.8.0: version "1.8.0" resolved "https://registry.npm.taobao.org/fontkit/download/fontkit-1.8.0.tgz#deb9351619e90ddc91707b6156a9f14c8ab11554" From 3788cc0d8189f4643e2f24316bbbee5325f798cc Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 8 May 2020 18:15:17 +0800 Subject: [PATCH 0127/2165] =?UTF-8?q?style:=20pull-right=20=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=20float-right?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/javascript/packs/application.js | 2 +- app/views/apps/_list.html.slim | 2 +- app/views/channels/_activity.html.slim | 2 +- app/views/channels/_schemes.html.slim | 2 +- app/views/dashboards/_recently_upload.html.slim | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/javascript/packs/application.js b/app/javascript/packs/application.js index 6642eccce..71585a7ac 100644 --- a/app/javascript/packs/application.js +++ b/app/javascript/packs/application.js @@ -18,7 +18,7 @@ const imagePath = (name) => images(name, true) // Import CSS import 'bootstrap/dist/css/bootstrap' import 'admin-lte/dist/css/adminlte' -import 'font-awesome/css/font-awesome' +import '@fortawesome/fontawesome-free/css/all.css' import 'stylesheets/application' // Import JS diff --git a/app/views/apps/_list.html.slim b/app/views/apps/_list.html.slim index 33de42d77..c39778825 100644 --- a/app/views/apps/_list.html.slim +++ b/app/views/apps/_list.html.slim @@ -25,7 +25,7 @@ tr td = link_to scheme.name, app_scheme_path(app, scheme) td - span.pull-right.badge.bg-blue = scheme.total_releases + span.float-right.badge.bg-blue = scheme.total_releases - else .p-3 | 还没有任何应用类型和渠道,开始 diff --git a/app/views/channels/_activity.html.slim b/app/views/channels/_activity.html.slim index 09c66a4bb..553e4489f 100644 --- a/app/views/channels/_activity.html.slim +++ b/app/views/channels/_activity.html.slim @@ -28,5 +28,5 @@ | 吧。 - if @releases.total_pages > 1 .card-footer.clearfix - .pull-right + .float-right = paginate @releases diff --git a/app/views/channels/_schemes.html.slim b/app/views/channels/_schemes.html.slim index fc4b1ed31..8977d86af 100644 --- a/app/views/channels/_schemes.html.slim +++ b/app/views/channels/_schemes.html.slim @@ -10,4 +10,4 @@ ruby: li.nav-item a.nav-link href="#{app_scheme_path(@app, scheme)}" class="#{@channel.scheme.name == scheme.name ? 'active' : ''}" = scheme.name - / span.label.label-primary.pull-right 12 \ No newline at end of file + / span.label.label-primary.float-right 12 \ No newline at end of file diff --git a/app/views/dashboards/_recently_upload.html.slim b/app/views/dashboards/_recently_upload.html.slim index 1ce49d41b..1bed2ec01 100644 --- a/app/views/dashboards/_recently_upload.html.slim +++ b/app/views/dashboards/_recently_upload.html.slim @@ -55,5 +55,5 @@ section - unless @releases.empty? .card-footer - .pull-right + .float-right = paginate @releases From 257a41180d8bffeee4c62a3b8149a4b5667f70e0 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 8 May 2020 19:59:29 +0800 Subject: [PATCH 0128/2165] =?UTF-8?q?style:=20font-awesome=20=E5=8D=87?= =?UTF-8?q?=E7=BA=A7=205.13.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/application_helper.rb | 2 +- app/javascript/stylesheets/app.scss | 8 +---- app/javascript/stylesheets/dashboard.scss | 4 --- app/javascript/stylesheets/layout.scss | 2 +- app/services/create_sample_apps_service.rb | 2 +- app/views/admin/users/edit.html.slim | 2 +- app/views/admin/users/index.html.slim | 2 +- app/views/admin/users/new.html.slim | 2 +- app/views/admin/web_hooks/index.html.slim | 2 +- app/views/admin/web_hooks/show.html.slim | 2 +- app/views/apps/_form.html.slim | 2 +- app/views/apps/_list.html.slim | 12 ++++---- app/views/apps/index.html.slim | 2 +- app/views/apps/show.html.slim | 14 ++++----- app/views/channels/_activity.html.slim | 2 +- app/views/channels/_form.html.slim | 2 +- app/views/channels/_install_cert.html.slim | 30 ------------------- app/views/channels/_web_hooks.slim | 2 +- app/views/channels/versions/_list.slim | 2 +- app/views/channels/versions/index.slim | 2 +- app/views/channels/versions/show.html.slim | 2 +- app/views/dashboards/_analytics.html.slim | 8 ++--- .../dashboards/_recently_upload.html.slim | 8 ++--- app/views/debug_files/_debug_file.html.slim | 8 ++--- app/views/debug_files/index.html.slim | 2 +- app/views/debug_files/new.html.slim | 2 +- app/views/devise/registrations/new.html.slim | 2 +- .../devise/shared/_error_messages.html.slim | 2 +- app/views/layouts/_main_sidebar.html.slim | 16 +++++----- app/views/layouts/_navigation.html.slim | 2 +- app/views/releases/_install_cert.html.slim | 30 ------------------- app/views/releases/body/_activity.html.slim | 10 +++---- app/views/releases/body/_changelog.html.slim | 4 +-- app/views/releases/body/_devices.html.slim | 4 +-- .../releases/body/_install_cert.html.slim | 2 +- app/views/releases/body/_metadata.html.slim | 28 ++++++++--------- app/views/releases/new.html.slim | 2 +- app/views/releases/show.html.slim | 4 +-- app/views/releases/sidebar/_qrcode.html.slim | 4 +-- app/views/releases/sidebar/_version.html.slim | 4 +-- app/views/schemes/_form.html.slim | 2 +- app/views/teardowns/_android.html.slim | 8 ++--- app/views/teardowns/_ios.html.slim | 4 +-- app/views/web_hooks/_item.html.slim | 8 ++--- 44 files changed, 97 insertions(+), 167 deletions(-) delete mode 100644 app/views/channels/_install_cert.html.slim delete mode 100644 app/views/releases/_install_cert.html.slim diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index c7aee4989..947679a59 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -12,7 +12,7 @@ def button_link_to(title, url, icon = nil, **options) content = title if icon.present? - content = tag.i(class: "fa fa-#{icon}") + content = tag.i(class: "fas fa-#{icon}") content += title end diff --git a/app/javascript/stylesheets/app.scss b/app/javascript/stylesheets/app.scss index 08e2080a2..95bd1d4f4 100644 --- a/app/javascript/stylesheets/app.scss +++ b/app/javascript/stylesheets/app.scss @@ -1,8 +1,3 @@ -// Place all the styles related to the App controller here. -// They will automatically be included in application.css. -// You can use Sass (SCSS) here: http://sass-lang.com/ - - // index page .card-body { .direct-chat-messages { @@ -10,7 +5,6 @@ } } - // show page .cover { @@ -50,7 +44,7 @@ display: inline-block; vertical-align: middle; margin-bottom: 13px; - margin-right: 10px; + margin-right: 30px; } diff --git a/app/javascript/stylesheets/dashboard.scss b/app/javascript/stylesheets/dashboard.scss index 35a921b17..63fc0c64e 100644 --- a/app/javascript/stylesheets/dashboard.scss +++ b/app/javascript/stylesheets/dashboard.scss @@ -4,10 +4,6 @@ background-color: #f8f8f8; } - .fa { - margin-top: 4px; - } - .timeline-footer { .badge { margin-left: 5px; diff --git a/app/javascript/stylesheets/layout.scss b/app/javascript/stylesheets/layout.scss index 82a6dc369..6375505eb 100644 --- a/app/javascript/stylesheets/layout.scss +++ b/app/javascript/stylesheets/layout.scss @@ -47,7 +47,7 @@ } .btn-icon { - .fa { + .fa, .fab, .far, .fab, .fas { margin-right: 5px; } } diff --git a/app/services/create_sample_apps_service.rb b/app/services/create_sample_apps_service.rb index 0aa43ca2d..dd8c8628c 100644 --- a/app/services/create_sample_apps_service.rb +++ b/app/services/create_sample_apps_service.rb @@ -48,7 +48,7 @@ def stardford_app(user) 'release' end - 2.times do + 100.times do generate_release(channel, bundle_id, release_type, changelog) end end diff --git a/app/views/admin/users/edit.html.slim b/app/views/admin/users/edit.html.slim index 8d5a1e6ee..861323e22 100644 --- a/app/views/admin/users/edit.html.slim +++ b/app/views/admin/users/edit.html.slim @@ -18,6 +18,6 @@ h3.card-title 用户信息 .card-tools a href="#{admin_users_path}" - i.fa.fa-list-alt + i.far.fa-list-alt | 返回列表 == render 'form' diff --git a/app/views/admin/users/index.html.slim b/app/views/admin/users/index.html.slim index 1b130d7ec..1e967466b 100644 --- a/app/views/admin/users/index.html.slim +++ b/app/views/admin/users/index.html.slim @@ -6,7 +6,7 @@ - content_for :section_rightpanel do a.btn.btn-icon.bg-green href="#{new_admin_user_path}" - i.fa.fa-plus-circle + i.fas.fa-plus-square | 新建用户 .row diff --git a/app/views/admin/users/new.html.slim b/app/views/admin/users/new.html.slim index 20d3565b3..46bc9c068 100644 --- a/app/views/admin/users/new.html.slim +++ b/app/views/admin/users/new.html.slim @@ -11,6 +11,6 @@ h3.card-title 用户信息 .card-tools a href="#{admin_users_path}" - i.fa.fa-list-alt + i.far.fa-list-alt | 返回列表 == render 'form' \ No newline at end of file diff --git a/app/views/admin/web_hooks/index.html.slim b/app/views/admin/web_hooks/index.html.slim index ebe1dc6a6..132c5c532 100644 --- a/app/views/admin/web_hooks/index.html.slim +++ b/app/views/admin/web_hooks/index.html.slim @@ -6,7 +6,7 @@ / - content_for :section_rightpanel do / a.btn.btn-icon.bg-green href="#{new_admin_web_hook_path}" -/ i.fa.fa-plus-circle +/ i.fas.fa-plus-square / | 新建网络钩子 .row diff --git a/app/views/admin/web_hooks/show.html.slim b/app/views/admin/web_hooks/show.html.slim index e27bef44a..6cee14b5d 100644 --- a/app/views/admin/web_hooks/show.html.slim +++ b/app/views/admin/web_hooks/show.html.slim @@ -6,7 +6,7 @@ / - content_for :section_rightpanel do / a.btn.bg-green href="#{new_admin_web_hook_path}" -/ i.fa.fa-plus-circle +/ i.fas.fa-plus-square / | 新建网络钩子 .row diff --git a/app/views/apps/_form.html.slim b/app/views/apps/_form.html.slim index 017fff515..001d3b075 100644 --- a/app/views/apps/_form.html.slim +++ b/app/views/apps/_form.html.slim @@ -12,7 +12,7 @@ ruby: = @title .card-tools a href="#{back_url}" - i.fa.fa-list-alt + i.far.fa-list-alt = " #{head_title}" .card-body = simple_form_for @app do |f| diff --git a/app/views/apps/_list.html.slim b/app/views/apps/_list.html.slim index c39778825..598905893 100644 --- a/app/views/apps/_list.html.slim +++ b/app/views/apps/_list.html.slim @@ -9,11 +9,11 @@ = link_to app.name, app_path(app), style: "color: #000" .card-tools a.btn.btn-tool href="#{new_app_scheme_path(app)}" - i.fa.fa-plus-square-o + i.fas.fa-plus-square a.btn.btn-tool href="#{edit_app_path(app)}" - i.fa.fa-edit + i.fas.fa-edit a.btn.btn-tool href="#{app_path(app)}" data-confirm="确定删除【#{app.name}】及其所有的数据?" data-method="delete" - i.fa.fa-remove + i.fas.fa-trash-alt .card-body.p-0 .app-schemes - if app.schemes.count > 0 @@ -35,11 +35,11 @@ | 右上角的按钮是本应用的功能区: ul li.btn-icon - i.fa.fa-plus-square-o + i.fas.fa-plus-square | 创建应用类型和渠道 li.btn-icon - i.fa.fa-edit + i.fas.fa-edit | 编辑应用类型 li.btn-icon - i.fa.fa-remove + i.fas.fa-trash-alt | 删除应用类型 \ No newline at end of file diff --git a/app/views/apps/index.html.slim b/app/views/apps/index.html.slim index fe5f40ab2..a0d770c89 100644 --- a/app/views/apps/index.html.slim +++ b/app/views/apps/index.html.slim @@ -6,7 +6,7 @@ - content_for :section_rightpanel do a.btn.btn-icon.bg-green href="#{new_app_path}" - i.fa.fa-plus-circle + i.far.fa-plus-square | 新建应用 .row diff --git a/app/views/apps/show.html.slim b/app/views/apps/show.html.slim index a527e7b3d..016f4531e 100644 --- a/app/views/apps/show.html.slim +++ b/app/views/apps/show.html.slim @@ -6,9 +6,9 @@ - content_for :section_rightpanel do .btn-group - = button_link_to '新增类型', new_app_scheme_path(@app), 'plus-square-o', class: 'btn-icon btn-default btn-sm btn-flat' + = button_link_to '新增类型', new_app_scheme_path(@app), 'plus-square', class: 'btn-icon btn-default btn-sm btn-flat' = button_link_to '编辑应用', edit_app_path(@app), 'edit', class: 'btn-icon btn-default btn-sm btn-flat' - = button_link_to '删除应用', app_path(@app), 'remove', class: 'btn-icon btn-default btn-sm btn-flat', data: { confirm: "确定删除【#{@app.name}】应用及其下面所有频道和上传的版本?", method: "delete" } + = button_link_to '删除应用', app_path(@app), 'trash-alt', class: 'btn-icon btn-default btn-sm btn-flat', data: { confirm: "确定删除【#{@app.name}】应用及其下面所有频道和上传的版本?", method: "delete" } .row .col-md-12 @@ -20,9 +20,9 @@ = scheme.name .card-tools .sections-actions.btn-group - = button_link_to '新增渠道', new_app_scheme_channel_path(@app, scheme), 'plus-square-o', class: 'btn-icon btn-default btn-sm btn-flat' + = button_link_to '新增渠道', new_app_scheme_channel_path(@app, scheme), 'plus-square', class: 'btn-icon btn-default btn-sm btn-flat' = button_link_to '编辑渠道', edit_app_scheme_path(@app, scheme), 'edit', class: 'btn-icon btn-default btn-sm btn-flat' - = button_link_to '删除渠道', app_scheme_path(@app, scheme), 'remove', class: 'btn-icon btn-default btn-sm btn-flat', data: { confirm: "确定删除#{scheme.app_name}类型?", method: "delete" } + = button_link_to '删除渠道', app_scheme_path(@app, scheme), 'trash-alt', class: 'btn-icon btn-default btn-sm btn-flat', data: { confirm: "确定删除#{scheme.app_name}类型?", method: "delete" } .card-body.p-0 section.app-section id="scheme-#{scheme.id}" @@ -32,15 +32,15 @@ tr td = link_to channel.name, channel_path(channel) - td style="width: 130px" + td style="width: 120px" = button_link_to '', edit_app_scheme_channel_path(@app, scheme, channel), 'edit', class: 'btn-box-tool' - = button_link_to '', app_scheme_channel_path(@app, scheme, channel), 'remove', class: 'btn-box-tool', data: { confirm: "确定删除#{channel.app_name}渠道?", method: "delete" } + = button_link_to '', app_scheme_channel_path(@app, scheme, channel), 'trash-alt', class: 'btn-box-tool', data: { confirm: "确定删除#{channel.app_name}渠道?", method: "delete" } - else tr td colspan="2" small | 没有发现任何渠道,选择上面  - i.fa.fa-plus-square-o + i.fas.fa-plus-square | 添加新渠道。 - else .callout.callout-warning diff --git a/app/views/channels/_activity.html.slim b/app/views/channels/_activity.html.slim index 553e4489f..c1bc267e2 100644 --- a/app/views/channels/_activity.html.slim +++ b/app/views/channels/_activity.html.slim @@ -1,7 +1,7 @@ .card .card-header h3.card-title - i.fa.fa-history + i.fas.fa-history | 最近上传动态 .card-tools = paginate @releases diff --git a/app/views/channels/_form.html.slim b/app/views/channels/_form.html.slim index 69d529179..03b3f3548 100644 --- a/app/views/channels/_form.html.slim +++ b/app/views/channels/_form.html.slim @@ -8,7 +8,7 @@ ruby: = @title .card-tools a href="#{app_path(@scheme.app)}" - i.fa.fa-list-alt + i.far.fa-list-alt | 返回应用 .card-body = simple_form_for(@channel, url: form_url) do |f| diff --git a/app/views/channels/_install_cert.html.slim b/app/views/channels/_install_cert.html.slim deleted file mode 100644 index 6c1210e43..000000000 --- a/app/views/channels/_install_cert.html.slim +++ /dev/null @@ -1,30 +0,0 @@ -- if ios? - #install-tips.modal.fade role="dialog" tabindex="-1" style="display: none" aria-labelledby="install-tips-label" - .modal-dialog role="document" - .modal-content - .modal-header - h4#install-tips-label.modal-title - i.fa.fa-circle-o-notch.fa-spin - span style="padding-left:5px" 正在安装,请按 Home 键在桌面查看 - button.close aria-label="Close" data-dismiss="modal" type="button" - span aria-hidden="true" × - .modal-body - ol - li - | 如果你的手机第一次安装,请 - strong 务必 - a href="#{root_url}/server.crt" - | 点击这里安装证书 - | ,要不然你永远无法下载安装 ●-● - li - | 在 iOS 9 以上版本,苹果对企业签名的应用做了运行限制。请安装后进 "设置" - "通用" - "描述文件", - | 选择对应的企业证书,点击文字 "信任企业开发者"。 - li - | 如果本服务部署的证书是自签名的还需在 iOS 10 以上版本还需要在另外一个地方对证书进行信任:"设置" - "通用" - "关于本机" - "证书信任设置" - | 找到 "mobile.2b6.me" 在右侧选中(绿色状态)。 - li - | 安装 AdHoc 版本前请确认已经 - strong 卸载 - | 该 App 的线上版本,否则无法进行安装。这个是 Apple 的限制。 - .modal-footer - button.btn.btn-primary data-dismiss="modal" 确定 \ No newline at end of file diff --git a/app/views/channels/_web_hooks.slim b/app/views/channels/_web_hooks.slim index a6f13452d..7a908d7be 100644 --- a/app/views/channels/_web_hooks.slim +++ b/app/views/channels/_web_hooks.slim @@ -3,7 +3,7 @@ h3.card-title 网络钩子 .card-tools button.btn.btn-tool data-card-widget="collapse" - i.fa.fa-minus + i.fas.fa-minus .card-body section#add-webhooks h5 添加网络钩子 diff --git a/app/views/channels/versions/_list.slim b/app/views/channels/versions/_list.slim index bf4e816f0..ba61b44c2 100644 --- a/app/views/channels/versions/_list.slim +++ b/app/views/channels/versions/_list.slim @@ -31,7 +31,7 @@ table.table.table-striped.table-hover = time_ago_in_words(release.created_at) td a.btn.btn-tool href="#{channel_release_path(@channel, release)}" data-confirm="确定删除?" data-method="delete" - i.fa.fa-remove + i.fas.fa-trash-alt - else tr th colspan="5" 该版本没有任何上传记录! diff --git a/app/views/channels/versions/index.slim b/app/views/channels/versions/index.slim index 58de9b2ab..45a9b48d2 100644 --- a/app/views/channels/versions/index.slim +++ b/app/views/channels/versions/index.slim @@ -12,7 +12,7 @@ | 上传版本列表 .card-tools a href="#{channel_path(@channel)}" - i.fa.fa-list-alt + i.far.fa-list-alt | 返回上级页面 .card-body.table-responsive.p-0 == render 'list' diff --git a/app/views/channels/versions/show.html.slim b/app/views/channels/versions/show.html.slim index 82b7b0c54..397bd7760 100644 --- a/app/views/channels/versions/show.html.slim +++ b/app/views/channels/versions/show.html.slim @@ -13,7 +13,7 @@ | 开发版本列表 .card-tools a href="#{@back_url}" - i.fa.fa-list-alt + i.far.fa-list-alt | 返回上级页面 .card-body.table-responsive.p-0 == render 'list' \ No newline at end of file diff --git a/app/views/dashboards/_analytics.html.slim b/app/views/dashboards/_analytics.html.slim index a2ebab81d..8a2fcb3ce 100644 --- a/app/views/dashboards/_analytics.html.slim +++ b/app/views/dashboards/_analytics.html.slim @@ -3,7 +3,7 @@ section.analytics .col-md-3.col-sm-6.col-xs-12 .info-box span.info-box-icon.bg-navy - i.fa.fa-adn + i.fab.fa-adn .info-box-content span.info-box-text a href="#{apps_path}" data-no-turbolink="true" 应用 @@ -13,7 +13,7 @@ section.analytics .col-md-3.col-sm-6.col-xs-12 .info-box span.info-box-icon.bg-red - i.fa.fa-bug + i.fas.fa-bug .info-box-content span.info-box-text a href="#{debug_files_path}" data-no-turbolink="true" Debug Files 数量 @@ -24,7 +24,7 @@ section.analytics .col-md-3.col-sm-6.col-xs-12 .info-box span.info-box-icon.bg-warning - i.fa.fa-user-o + i.fas.fa-user .info-box-content span.info-box-text a href="#{admin_users_path}" data-no-turbolink="true" 用户数量 @@ -34,7 +34,7 @@ section.analytics .col-md-3.col-sm-6.col-xs-12 .info-box span.info-box-icon.bg-teal - i.fa.fa-paper-plane-o + i.fas.fa-paper-plane .info-box-content span.info-box-text 上传次数 span.info-box-number diff --git a/app/views/dashboards/_recently_upload.html.slim b/app/views/dashboards/_recently_upload.html.slim index 1bed2ec01..851b1e29a 100644 --- a/app/views/dashboards/_recently_upload.html.slim +++ b/app/views/dashboards/_recently_upload.html.slim @@ -4,7 +4,7 @@ section .card .card-header h3.card-title - i.fa.fa-history + i.fas.fa-history | 上传时间线 .card-tools = paginate @releases @@ -23,10 +23,10 @@ section = release.created_at.strftime('%Y-%m-%d') div - i.fa class="#{timeline_app_icon(release.channel.device_type)}" style="margin-top: 4px" + i.fab class="#{timeline_app_icon(release.channel.device_type)}" style="margin-top: 4px" .timeline-item span.time data-toggle="tooltip" data-placement="left" title="#{release.created_at}" - i.fa.fa-clock-o + i.fas.fa-clock |   = time_ago_in_words(release.created_at) h3.timeline-header @@ -49,7 +49,7 @@ section = release.short_git_commit div - i.fa.fa-clock-o.bg-gray + i.bg-gray.fas.fa-clock - else .time-label 没有任何上传,快快上传吧。 diff --git a/app/views/debug_files/_debug_file.html.slim b/app/views/debug_files/_debug_file.html.slim index d79a37a66..23869667e 100644 --- a/app/views/debug_files/_debug_file.html.slim +++ b/app/views/debug_files/_debug_file.html.slim @@ -24,13 +24,13 @@ ruby: = debug_file.build_version .debug-file-section-size - a.btn.btn-sm.btn-success.btn-flat href="#{debug_file.file.url}" - i.fa.fa-download + a.btn.btn-icon.btn-sm.btn-success.btn-flat href="#{debug_file.file.url}" + i.fas.fa-download | 下载 ( = number_to_human_size(debug_file.file.size) | ) - button.btn.btn-sm.btn-danger.btn-flat.destroy-debug-file data-id="#{debug_file.id}" data-url="#{debug_file_path(debug_file)}" data-toggle="modal" - i.fa.fa-close + button.btn.btn-icon.btn-sm.btn-danger.btn-flat.destroy-debug-file data-id="#{debug_file.id}" data-url="#{debug_file_path(debug_file)}" data-toggle="modal" + i.fas.fa-trash-alt | 删除 .div.text-center small style="color: #999" diff --git a/app/views/debug_files/index.html.slim b/app/views/debug_files/index.html.slim index 2dda3b23c..ce31b36da 100644 --- a/app/views/debug_files/index.html.slim +++ b/app/views/debug_files/index.html.slim @@ -6,7 +6,7 @@ - content_for :section_rightpanel do a.btn.btn-icon.bg-green href="#{new_debug_file_path}" - i.fa.fa-plus-circle + i.fas.fa-plus-square | 上传 Debug File 文件 .row diff --git a/app/views/debug_files/new.html.slim b/app/views/debug_files/new.html.slim index 5451e25cd..692e31379 100644 --- a/app/views/debug_files/new.html.slim +++ b/app/views/debug_files/new.html.slim @@ -9,7 +9,7 @@ = @title .card-tools a href="#{debug_files_path}" - i.fa.fa-list-alt + i.far.fa-list-alt | 返回列表 .card-body == render 'form' diff --git a/app/views/devise/registrations/new.html.slim b/app/views/devise/registrations/new.html.slim index 84a1719ab..4e9e65d83 100644 --- a/app/views/devise/registrations/new.html.slim +++ b/app/views/devise/registrations/new.html.slim @@ -36,6 +36,6 @@ - else .alert.alert-warning h5 - i.icon.fa.fa-exclamation-triangle + i.icon.fas.fa-exclamation-triangle | 错误! | 服务没有开放注册功能!请联系管理员开通账户。 diff --git a/app/views/devise/shared/_error_messages.html.slim b/app/views/devise/shared/_error_messages.html.slim index e00f1d57c..d7ce0bf57 100644 --- a/app/views/devise/shared/_error_messages.html.slim +++ b/app/views/devise/shared/_error_messages.html.slim @@ -2,7 +2,7 @@ .alert.alert-danger.alert-dismissible button.close data-dismiss="alert" aria-hidden="true" × h4 - i.icon.fa.fa-ban + i.icon.fas.fa-ban = I18n.t("errors.messages.not_saved", count: resource.errors.count, resource: resource.class.model_name.human.downcase) ul style="padding-left: 20px" - resource.errors.full_messages.each do |message| diff --git a/app/views/layouts/_main_sidebar.html.slim b/app/views/layouts/_main_sidebar.html.slim index de931685c..97bae534a 100644 --- a/app/views/layouts/_main_sidebar.html.slim +++ b/app/views/layouts/_main_sidebar.html.slim @@ -4,36 +4,36 @@ li.nav-header 功能区域 li class="nav-item" a.nav-link href="#{ root_path }" class="#{active_class(root_path)}" - i.nav-icon.fa.fa-th + i.nav-icon.fas.fa-th p 控制台 li class="nav-item" a.nav-link href="#{apps_path}" class="#{active_class(apps_path)}" - i.nav-icon.fa.fa-adn + i.nav-icon.fab.fa-adn p 应用管理 li class="nav-item" a.nav-link href="#{debug_files_path}" class="#{active_class(debug_files_path)}" - i.nav-icon.fa.fa-bug + i.nav-icon.fas.fa-bug p 调试文件管理 li class="nav-item" a.nav-link href="#{new_teardown_path}" class="#{active_class(new_teardown_path)}" - i.nav-icon.fa.fa-gavel + i.nav-icon.fas.fa-gavel p 应用解析 - if current_user.admin? li.nav-header 管理区域 li class="nav-item" a.nav-link href="#{admin_users_path}" class="#{active_class(admin_users_path)}" - i.nav-icon.fa.fa-user + i.nav-icon.fas.fa-user p 用户管理 li class="nav-item" a.nav-link href="#{admin_web_hooks_path}" class="#{active_class(admin_web_hooks_path)}" - i.nav-icon.fa.fa-anchor + i.nav-icon.fas.fa-anchor p 网络钩子管理 li class="nav-item" a.nav-link href="#{admin_background_jobs_path}" class="#{active_class(admin_background_jobs_path)}" - i.nav-icon.fa.fa-bar-chart + i.nav-icon.fas.fa-chart-bar p 后台任务 li class="nav-item" a.nav-link href="#{admin_system_info_path}" class="#{active_class(admin_system_info_path)}" - i.nav-icon.fa.fa-desktop + i.nav-icon.fas.fa-desktop p 系统信息 diff --git a/app/views/layouts/_navigation.html.slim b/app/views/layouts/_navigation.html.slim index 478024ecf..b3b07bc7c 100644 --- a/app/views/layouts/_navigation.html.slim +++ b/app/views/layouts/_navigation.html.slim @@ -4,7 +4,7 @@ nav.main-header.navbar.navbar-expand.navbar-white.navbar-light ul.navbar-nav li.nav-item a.nav-link data-widget="pushmenu" href="#" - i.fa.fa-bars + i.fas.fa-bars // Right navbar links ul.navbar-nav.ml-auto diff --git a/app/views/releases/_install_cert.html.slim b/app/views/releases/_install_cert.html.slim deleted file mode 100644 index 6c1210e43..000000000 --- a/app/views/releases/_install_cert.html.slim +++ /dev/null @@ -1,30 +0,0 @@ -- if ios? - #install-tips.modal.fade role="dialog" tabindex="-1" style="display: none" aria-labelledby="install-tips-label" - .modal-dialog role="document" - .modal-content - .modal-header - h4#install-tips-label.modal-title - i.fa.fa-circle-o-notch.fa-spin - span style="padding-left:5px" 正在安装,请按 Home 键在桌面查看 - button.close aria-label="Close" data-dismiss="modal" type="button" - span aria-hidden="true" × - .modal-body - ol - li - | 如果你的手机第一次安装,请 - strong 务必 - a href="#{root_url}/server.crt" - | 点击这里安装证书 - | ,要不然你永远无法下载安装 ●-● - li - | 在 iOS 9 以上版本,苹果对企业签名的应用做了运行限制。请安装后进 "设置" - "通用" - "描述文件", - | 选择对应的企业证书,点击文字 "信任企业开发者"。 - li - | 如果本服务部署的证书是自签名的还需在 iOS 10 以上版本还需要在另外一个地方对证书进行信任:"设置" - "通用" - "关于本机" - "证书信任设置" - | 找到 "mobile.2b6.me" 在右侧选中(绿色状态)。 - li - | 安装 AdHoc 版本前请确认已经 - strong 卸载 - | 该 App 的线上版本,否则无法进行安装。这个是 Apple 的限制。 - .modal-footer - button.btn.btn-primary data-dismiss="modal" 确定 \ No newline at end of file diff --git a/app/views/releases/body/_activity.html.slim b/app/views/releases/body/_activity.html.slim index 73589a12b..7346897d9 100644 --- a/app/views/releases/body/_activity.html.slim +++ b/app/views/releases/body/_activity.html.slim @@ -5,19 +5,19 @@ ruby: .card .card-header h3.card-title - i.fa.fa-history + i.fas.fa-history | 最近 10 次上传 .card-tools button.btn.btn-tool data-card-widget="collapse" - i.fa.fa-minus + i.fas.fa-minus .card-body .timeline - releases.each do |release| div - i.fa class="#{@release == release ? 'fa-circle' : ' fa-circle-o'}" + i.fa-circle class="#{@release == release ? 'fas' : ' far'}" .timeline-item span.time - i.fa.fa-clock-o + i.fas.fa-clock |   = time_ago_in_words(release.created_at) h3.timeline-header @@ -38,4 +38,4 @@ ruby: small.badge = release.short_git_commit div - i.fa.fa-clock-o.bg-gray \ No newline at end of file + i.fas.fa-clock.bg-gray \ No newline at end of file diff --git a/app/views/releases/body/_changelog.html.slim b/app/views/releases/body/_changelog.html.slim index 7d1e63427..80c279354 100644 --- a/app/views/releases/body/_changelog.html.slim +++ b/app/views/releases/body/_changelog.html.slim @@ -1,11 +1,11 @@ .card .card-header h3.card-title - i.fa.fa-info-circle + i.fas.fa-info-circle | 更新日志 .card-tools button.btn.btn-tool data-card-widget="collapse" - i.fa.fa-minus + i.fas.fa-minus .card-body.p-0 ul.products-list.product-list-in-card - @release.changelog_list.each do |changelog| diff --git a/app/views/releases/body/_devices.html.slim b/app/views/releases/body/_devices.html.slim index 23f3479f9..5c3839288 100644 --- a/app/views/releases/body/_devices.html.slim +++ b/app/views/releases/body/_devices.html.slim @@ -3,11 +3,11 @@ .card.collapsed-card .card-header h3.card-title - i.fa.fa-mobile-phone + i.fas.fa-mobile-alt = " #{@release.devices.count} 台测试设备 (UDID)" .card-tools button.btn.btn-tool data-card-widget="collapse" - i.fa.fa-plus + i.fas.fa-plus .card-body.p-0 table.table - @release.devices.each do |device| diff --git a/app/views/releases/body/_install_cert.html.slim b/app/views/releases/body/_install_cert.html.slim index 9f75662f4..027362b57 100644 --- a/app/views/releases/body/_install_cert.html.slim +++ b/app/views/releases/body/_install_cert.html.slim @@ -4,7 +4,7 @@ .modal-content .modal-header h4#install-tips-label.modal-title - i.fa.fa-circle-o-notch.fa-spin + i.fas.fa-pulse.fa-spinner span style="padding-left:5px" 正在安装,返回主屏幕在桌面查看 button.close aria-label="Close" data-dismiss="modal" type="button" span aria-hidden="true" × diff --git a/app/views/releases/body/_metadata.html.slim b/app/views/releases/body/_metadata.html.slim index 242449607..10f16c4c3 100644 --- a/app/views/releases/body/_metadata.html.slim +++ b/app/views/releases/body/_metadata.html.slim @@ -2,7 +2,7 @@ - if latest_release = @release.outdated? .callout.callout-warning h5 - i.icon.fa.fa-info + i.icon.fas.fa-info | 当前不是最新版本! p = " #{latest_release.release_version} (#{latest_release.build_version}) " @@ -21,39 +21,39 @@ .card-body ul.app-metadata li title="上传版本" - i.fa.fa-gg + i.fab.fa-gg = @release.version li title="平台" - i.fa.fa-archive + i.fas.fa-archive = display_app_device(@release.channel) li title="主版本" - i.fa.fa-server + i.fas.fa-server = "#{@release.release_version} (#{@release.build_version})" - if @release.release_type.present? li title="类型" - i.fa.fa-cubes + i.fas.fa-cubes = @release.release_type - if @release.file.present? li title="文件体积" - i.fa.fa-retweet + i.fas.fa-retweet = " #{number_to_human_size(@release.file.size)}" li title="上传时间" - i.fa.fa-calendar + i.fas.fa-calendar = time_ago_in_words(@release.created_at) - if @release.branch.present? li title="Git 分支" - i.fa.fa-code-fork + i.fas.fa-code-fork = @release.branch - if @release.git_commit.present? li title="Git Commit" - i.fa.fa-git + i.fas.fa-git = git_commit_url(@release.channel.git_url, @release.git_commit) - @release.custom_fields.each do |field| li title="#{field['name']}" - i.fa class="fa-#{field['icon']}" + i.fas class="fa-#{field['icon']}" = field['value'] li title="上传来源" - i.fa.fa-gears + i.fas.fa-cogs - if @release.ci_url.blank? = @release.source - else @@ -65,17 +65,17 @@ == render 'releases/body/install_cert' button.btn.btn-icon.bg-success.btn-lg id="download_it" data-install-url="#{@release.install_url}" data-release-version="#{@release.version}" data-slug="#{@release.channel.slug}" data-toggle="modal" data-loading-text=" 正在安装..." data-target="#install-tips" - i.fa.fa-paper-plane + i.fas.fa-paper-plane | 在线安装 - else a.btn.btn-icon.bg-success.btn-social href="#{@release.download_url}" target="_blank" - i.fa.fa-download + i.fas.fa-download | 本地下载 span style=("margin:0 5px") - if @release.ci_url.present? button#build_it.btn.btn-icon.bg-success.btn-social data-app-id="#{@release.app.id}" data-job="#{@release.ci_url}" data-loading-text=(" 正在构建...") data-toggle="modal" onclick="build()" style=("margin-left: 10px") - i.fa.fa-wrench + i.fas.fa-wrench | 构建新版 p#jekins_buld_alert.alert.alert-warning.d-none role="alert" style=("margin-top: 10px") diff --git a/app/views/releases/new.html.slim b/app/views/releases/new.html.slim index 4473359c5..c9e3d2548 100644 --- a/app/views/releases/new.html.slim +++ b/app/views/releases/new.html.slim @@ -12,7 +12,7 @@ = @title .card-tools a href="#{channel_path(@channel)}" - i.fa.fa-list-alt + i.far.fa-list-alt | 返回应用 .card-body == render 'form' \ No newline at end of file diff --git a/app/views/releases/show.html.slim b/app/views/releases/show.html.slim index 7a5e1c402..f45130dd5 100644 --- a/app/views/releases/show.html.slim +++ b/app/views/releases/show.html.slim @@ -25,8 +25,8 @@ .input-group .input-group-prepend span.input-group-text style="border-left: 1px solid #ced4da" - i.fa.fa-key + i.fas.fa-key input.form-control name="password" placeholder='******' type="password" span.input-group-append button.btn.btn-default.btn-flat - i.fa.fa-arrow-right \ No newline at end of file + i.fas.fa-arrow-right \ No newline at end of file diff --git a/app/views/releases/sidebar/_qrcode.html.slim b/app/views/releases/sidebar/_qrcode.html.slim index bb64f1d3b..c2ebd8289 100644 --- a/app/views/releases/sidebar/_qrcode.html.slim +++ b/app/views/releases/sidebar/_qrcode.html.slim @@ -2,11 +2,11 @@ .card .card-header h3.card-title - i.fa.fa-qrcode + i.fas.fa-qrcode | 二维码安装 .card-tools button.btn.btn-tool data-card-widget="collapse" - i.fa.fa-minus + i.fas.fa-minus .card-body.text-center .qr_code = image_tag channel_release_qrcode_path(@release.channel, @release, size: :large) diff --git a/app/views/releases/sidebar/_version.html.slim b/app/views/releases/sidebar/_version.html.slim index d03ff4bd6..ddc491fea 100644 --- a/app/views/releases/sidebar/_version.html.slim +++ b/app/views/releases/sidebar/_version.html.slim @@ -5,11 +5,11 @@ ruby: .card .card-header h3.card-title - i.fa.fa-archive + i.fas.fa-archive | 历史主版本 .card-tools button.btn.btn-tool data-card-widget="collapse" - i.fa.fa-minus + i.fas.fa-minus .card-body.p-0 table.table - channel.release_versions.each do |version| diff --git a/app/views/schemes/_form.html.slim b/app/views/schemes/_form.html.slim index 0d73f90e1..dabda7a29 100644 --- a/app/views/schemes/_form.html.slim +++ b/app/views/schemes/_form.html.slim @@ -8,7 +8,7 @@ ruby: = @title .card-tools a href="#{app_path(@app)}" - i.fa.fa-list-alt + i.far.fa-list-alt | 返回应用 .card-body = simple_form_for(@scheme, url: form_url) do |f| diff --git a/app/views/teardowns/_android.html.slim b/app/views/teardowns/_android.html.slim index dc4cbf811..1a0be17b7 100644 --- a/app/views/teardowns/_android.html.slim +++ b/app/views/teardowns/_android.html.slim @@ -36,7 +36,7 @@ ruby: h3.card-title Activities .card-tools button.btn.btn-tool data-card-widget="collapse" - i.fa.fa-minus + i.fas.fa-minus .card-body table.table.table-striped - @app_info.activities.each do |activity| @@ -51,7 +51,7 @@ ruby: h3.card-title Permissions .card-tools button.btn.btn-tool data-card-widget="collapse" - i.fa.fa-minus + i.fas.fa-minus .card-body table.table.table-striped - @app_info.use_permissions.sort.each do |permission| @@ -65,7 +65,7 @@ ruby: h3.card-title Features .card-tools button.btn.btn-tool data-card-widget="collapse" - i.fa.fa-minus + i.fas.fa-minus .card-body table.table.table-striped - @app_info.use_features.compact.sort.each do |feature| @@ -79,7 +79,7 @@ ruby: h3.card-title Services .card-tools button.btn.btn-tool data-card-widget="collapse" - i.fa.fa-minus + i.fas.fa-minus .card-body table.table.table-striped - @app_info.services.sort_by(&:name).each do |service| diff --git a/app/views/teardowns/_ios.html.slim b/app/views/teardowns/_ios.html.slim index 56fe31dcc..b396dfa18 100644 --- a/app/views/teardowns/_ios.html.slim +++ b/app/views/teardowns/_ios.html.slim @@ -78,7 +78,7 @@ h3.card-title 设备列表 .card-tools button.btn.btn-tool data-card-widget="collapse" - i.fa.fa-plus + i.fas.fa-plus .card-body table.table.table-striped tr @@ -93,7 +93,7 @@ h3.card-title Entitlements .card-tools button.btn.btn-tool data-card-widget="collapse" - i.fa.fa-plus + i.fas.fa-plus .card-body table.table.table-striped - @app_info.mobileprovision.Entitlements.each do |scheme| diff --git a/app/views/web_hooks/_item.html.slim b/app/views/web_hooks/_item.html.slim index 4cb2c3d9c..77ac4e6e4 100644 --- a/app/views/web_hooks/_item.html.slim +++ b/app/views/web_hooks/_item.html.slim @@ -24,7 +24,7 @@ tr .btn-group-vertical .btn-group button.btn.btn-sm.btn-default data-toggle="tooltip" data-placement="top" title="测试" - i.fa.fa-bullhorn + i.fas.fa-bullhorn button.btn.btn-sm.btn-default.dropdown-toggle.dropdown-icon.dropdown-hover data-toggle="dropdown" ul.dropdown-menu role="menu" x-placement="bottom-start" li @@ -35,10 +35,10 @@ tr a.dropdown-item href="#{test_channel_web_hook_path(@channel, web_hook, 'changelog_events')}" 日志变更事件 - if web_hook.channels_count == 1 a.btn.btn-sm.btn-danger data-toggle="tooltip" data-placement="bottom" title="删除" data-confirm="确定删除?" rel="nofollow" data-method="delete" href="#{channel_web_hook_path(@channel, web_hook)}" - i.fa.fa-trash + i.fas.fa-trash-alt - else a.btn.btn-sm.btn-warning data-toggle="tooltip" data-placement="bottom" title="禁用" href="#{disable_channel_web_hook_path(@channel, web_hook)}" - i.fa.fa-ban + i.fas.fa-ban - elsif type == :shared a.btn.btn-sm.btn-default del="nofollow" data-toggle="tooltip" data-placement="bottom" title="启用" href="#{enable_channel_web_hook_path(@channel, web_hook)}" - i.fa.fa-check + i.fas.fa-check From a3a63f7af01f149a6fcc205709bab102275cabb6 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 8 May 2020 20:11:40 +0800 Subject: [PATCH 0129/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E6=AD=A3=E5=BA=94?= =?UTF-8?q?=E7=94=A8=E6=B8=A0=E9=81=93=E4=B8=80=E4=BA=9B=E5=80=BC=E4=B8=BA?= =?UTF-8?q?=E7=A9=BA=E4=B8=8D=E6=98=BE=E7=A4=BA=E9=BB=98=E8=AE=A4=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/channels/_metadata.slim | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/app/views/channels/_metadata.slim b/app/views/channels/_metadata.slim index 806b4d7a3..f42b5aab6 100644 --- a/app/views/channels/_metadata.slim +++ b/app/views/channels/_metadata.slim @@ -10,15 +10,18 @@ span.text-muted 唯一地址 p.d-flex.flex-column.border-bottom.pl-3.pb-3 span.font-weight-bold = @channel.bundle_id - span.text-muted 匹配模式 + span.text-muted + | 匹配模式, + code * + | 表示不限制上传包的包名 p.d-flex.flex-column.border-bottom.pl-3.pb-3 span.font-weight-bold = @channel.releases.count span.text-muted 上传版本 p.d-flex.flex-column.border-bottom.pl-3.pb-3 - span.font-weight-bold = @channel.git_url || '未设置' + span.font-weight-bold = @channel.git_url == '' ? '未设置' : @channel.git_url span.text-muted Git 仓库地址 p.d-flex.flex-column.border-bottom.pl-3.pb-3 - span.font-weight-bold = @channel.password || '未设置' + span.font-weight-bold = @channel.password == '' ? '未设置' : @channel.password span.text-muted 访问密码 p.d-flex.flex-column.border-bottom.pl-3.pb-3 span.font-weight-bold = @channel.key From df4dc65fc300a6e58e8647ed7cb831d8636353f1 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 8 May 2020 20:13:44 +0800 Subject: [PATCH 0130/2165] =?UTF-8?q?style:=20=E8=B0=83=E6=95=B4=E9=82=80?= =?UTF-8?q?=E8=AF=B7=E9=82=AE=E4=BB=B6=E7=9A=84=E6=96=87=E6=A1=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/admin/users/edit.html.slim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/admin/users/edit.html.slim b/app/views/admin/users/edit.html.slim index 861323e22..9569b4d7b 100644 --- a/app/views/admin/users/edit.html.slim +++ b/app/views/admin/users/edit.html.slim @@ -12,7 +12,7 @@ h3.card-title 激活链接 .card-body input.form-control value="#{confirmation_url(@user, confirmation_token: @token)}" disabled=true - small.form-text.text-muted 如果邮件系统设置有问题或对方没有收到可以把本链接发给他 + small.form-text.text-muted 若发送邮件设置错误或邀请用户没有收到激活邮件,可通过本链接激活。 .card .card-header.card-border h3.card-title 用户信息 From c2ba81fc637b261b21c406cc0f5c9c375cf24c69 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Sat, 9 May 2020 15:39:51 +0800 Subject: [PATCH 0131/2165] =?UTF-8?q?style:=20=E8=A7=84=E8=8C=83=E5=8C=96?= =?UTF-8?q?=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/javascript/stylesheets/layout.scss | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/javascript/stylesheets/layout.scss b/app/javascript/stylesheets/layout.scss index 6375505eb..c6eab6f9f 100644 --- a/app/javascript/stylesheets/layout.scss +++ b/app/javascript/stylesheets/layout.scss @@ -47,7 +47,10 @@ } .btn-icon { - .fa, .fab, .far, .fab, .fas { + .fa, + .fab, + .far, + .fas { margin-right: 5px; } } From a004af4811a1bd1f314b0d9ff6a085cafb852e7b Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 11 May 2020 11:34:42 +0800 Subject: [PATCH 0132/2165] =?UTF-8?q?chore:=20=E8=A7=A3=E5=86=B3=20docker?= =?UTF-8?q?=20=E9=83=A8=E7=BD=B2=E6=9B=B4=E6=96=B0=20volume=20=E7=9A=84?= =?UTF-8?q?=E9=9D=99=E6=80=81=E8=B5=84=E6=BA=90=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 3 ++- docker-endpoint.sh | 19 ++++++++++++++++++- public/favicon.ico | Bin 1150 -> 0 bytes 3 files changed, 20 insertions(+), 2 deletions(-) delete mode 100644 public/favicon.ico diff --git a/Dockerfile b/Dockerfile index e22ba59ba..3d87b9536 100644 --- a/Dockerfile +++ b/Dockerfile @@ -43,7 +43,8 @@ RUN bundle config --global frozen 1 && \ --jobs `expr $(cat /proc/cpuinfo | grep -c "cpu cores") - 1` --retry 3 COPY . $APP_ROOT -RUN SECRET_TOKEN=precompile_placeholder bin/rails assets:precompile +RUN SECRET_TOKEN=precompile_placeholder bin/rails assets:precompile && \ + cp -r public/ new_public/ # Remove folders not needed in resulting image RUN rm -rf node_modules tmp/cache spec .browserslistrc babel.config.js \ diff --git a/docker-endpoint.sh b/docker-endpoint.sh index 9f9f864dc..4ad8c0bb2 100755 --- a/docker-endpoint.sh +++ b/docker-endpoint.sh @@ -3,12 +3,29 @@ set -eo pipefail cd /app -# 清除可能异常退出但没有请 pid 的问题 +# Clear pid if unexpected exception exit rm -f tmp/pids/.pid mkdir -p tmp/pids tmp/cache tmp/uploads tmp/sockets log if [ "$1" = 'run_server' ]; then + if [ -d "new_public" ]; then + echo "Zealot updating public ..." + for x in public/*; do + if [ -z `echo $x | grep uploads` ]; then + rm -rf $x + fi + done + + for x in new_public/*; do + if [ -z `echo $x | grep uploads` ]; then + mv $x public + fi + done + + rm -rf new_public + fi + # Start the server echo "Zealot server is ready to run ..." bundle exec puma -C config/puma.rb diff --git a/public/favicon.ico b/public/favicon.ico deleted file mode 100644 index bfa3040ced39dcd90a20a13705ce6a656afc7c0f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1150 zcmbW1SxA&o6o7AyQYO_jj@n9r1wBPQ)QizW%R`t27WovDS)dgylt>#i(L%eXWkG2+ zqtPDLOxi5bMp04O*i`B)(S|Y8j6;#jj9>Tv2SFoW`Y-3+^PhXZbI&=K{}*DA99pfA z^CVG_AViuFVyYBrl9sq#E<(sXU2?t2N1Z?&@(_`=6=A zXp**;yD2!Xj%3kR!E?72m(N1!(R&mue@*VL2~?glFbf>`c?J>s6WmKF}__P7} zW?BEknYvUH==49oB!%{f~bIB|kt*N}QXfc=TF_r05{iS4T zN@uD*im$@N`<_CxZ3GR~(=e6Jz~>OS>IUPnCGn&#TNOobx~0MA6w+rp4Hu@Vj1t3L zujDfZgTce9m9M#BK27jr8DD&M!r?HXaEPz|d$f5@aHXo8{JcgCD_bQqT4mk!qi|VL z$gb1v-O8$)>_Kf4JAgZ%grBpB+TvpdF4W0cwRP<<69&Zfz}X)taxGjAcR-w>g* zqk~wqi%29QV+06=0t5nWtX&^ceT>^oD&w-G$v)_1ElJqTbI8t#lC`80_qz_6L5!}h zDDCYLe*FsY@>M|H%g*V>UNc8!6jte>OZMC2NTBjqv08&st)Yu(w-lL2Pb|##UBA`b z&q*J}S7Ca;o%lWIX|*SEsUnZuTp!hD=urnec+^8-p`Y6FJjo`iIrn9IbtR_PsiE=q hSgMX1cxKy=`^f>UCIjw Date: Mon, 11 May 2020 11:40:32 +0800 Subject: [PATCH 0133/2165] =?UTF-8?q?chore:=20=E8=A7=84=E8=8C=83=E5=8C=96?= =?UTF-8?q?=20bash=20=E8=AF=AD=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-endpoint.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docker-endpoint.sh b/docker-endpoint.sh index 4ad8c0bb2..becb4c99d 100755 --- a/docker-endpoint.sh +++ b/docker-endpoint.sh @@ -12,14 +12,14 @@ if [ "$1" = 'run_server' ]; then if [ -d "new_public" ]; then echo "Zealot updating public ..." for x in public/*; do - if [ -z `echo $x | grep uploads` ]; then - rm -rf $x + if [ -z $(echo "$x" | grep uploads) ]; then + rm -rf "$x" fi done for x in new_public/*; do - if [ -z `echo $x | grep uploads` ]; then - mv $x public + if [ -z $(echo "$x" | grep uploads) ]; then + mv "$x" "public" fi done From fcf15e9373d3ac30574ff81ba89d20b1a1e1ecbc Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 11 May 2020 12:05:08 +0800 Subject: [PATCH 0134/2165] =?UTF-8?q?feat:=20=E5=8D=87=E7=BA=A7=20rails=20?= =?UTF-8?q?6.0.3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 2 +- Gemfile.lock | 108 +++++++++++++++++++++++++-------------------------- package.json | 2 +- yarn.lock | 8 ++-- 4 files changed, 60 insertions(+), 60 deletions(-) diff --git a/Gemfile b/Gemfile index e1509d99d..7ac74bc22 100644 --- a/Gemfile +++ b/Gemfile @@ -7,7 +7,7 @@ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" } ruby '>= 2.3.0', '< 2.8.0' gem 'puma', '~> 4.3.3' -gem 'rails', '~> 6.0.2' +gem 'rails', '~> 6.0.3' gem 'rails-i18n', '~> 6.0.0' gem 'rake', '~> 13.0.1' diff --git a/Gemfile.lock b/Gemfile.lock index b02f15ef8..5265b3e09 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -2,38 +2,38 @@ GEM remote: https://rubygems.org/ specs: CFPropertyList (3.0.2) - actioncable (6.0.2.2) - actionpack (= 6.0.2.2) + actioncable (6.0.3) + actionpack (= 6.0.3) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (6.0.2.2) - actionpack (= 6.0.2.2) - activejob (= 6.0.2.2) - activerecord (= 6.0.2.2) - activestorage (= 6.0.2.2) - activesupport (= 6.0.2.2) + actionmailbox (6.0.3) + actionpack (= 6.0.3) + activejob (= 6.0.3) + activerecord (= 6.0.3) + activestorage (= 6.0.3) + activesupport (= 6.0.3) mail (>= 2.7.1) - actionmailer (6.0.2.2) - actionpack (= 6.0.2.2) - actionview (= 6.0.2.2) - activejob (= 6.0.2.2) + actionmailer (6.0.3) + actionpack (= 6.0.3) + actionview (= 6.0.3) + activejob (= 6.0.3) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (6.0.2.2) - actionview (= 6.0.2.2) - activesupport (= 6.0.2.2) + actionpack (6.0.3) + actionview (= 6.0.3) + activesupport (= 6.0.3) rack (~> 2.0, >= 2.0.8) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (6.0.2.2) - actionpack (= 6.0.2.2) - activerecord (= 6.0.2.2) - activestorage (= 6.0.2.2) - activesupport (= 6.0.2.2) + actiontext (6.0.3) + actionpack (= 6.0.3) + activerecord (= 6.0.3) + activestorage (= 6.0.3) + activesupport (= 6.0.3) nokogiri (>= 1.8.5) - actionview (6.0.2.2) - activesupport (= 6.0.2.2) + actionview (6.0.3) + activesupport (= 6.0.3) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) @@ -43,28 +43,28 @@ GEM activemodel (>= 4.1, < 6.1) case_transform (>= 0.2) jsonapi-renderer (>= 0.1.1.beta1, < 0.3) - activejob (6.0.2.2) - activesupport (= 6.0.2.2) + activejob (6.0.3) + activesupport (= 6.0.3) globalid (>= 0.3.6) activejob-status (0.1.6) activejob (>= 4.2) activesupport (>= 4.2) - activemodel (6.0.2.2) - activesupport (= 6.0.2.2) - activerecord (6.0.2.2) - activemodel (= 6.0.2.2) - activesupport (= 6.0.2.2) - activestorage (6.0.2.2) - actionpack (= 6.0.2.2) - activejob (= 6.0.2.2) - activerecord (= 6.0.2.2) + activemodel (6.0.3) + activesupport (= 6.0.3) + activerecord (6.0.3) + activemodel (= 6.0.3) + activesupport (= 6.0.3) + activestorage (6.0.3) + actionpack (= 6.0.3) + activejob (= 6.0.3) + activerecord (= 6.0.3) marcel (~> 0.3.1) - activesupport (6.0.2.2) + activesupport (6.0.3) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 0.7, < 2) minitest (~> 5.1) tzinfo (~> 1.1) - zeitwerk (~> 2.2) + zeitwerk (~> 2.2, >= 2.2.2) addressable (2.7.0) public_suffix (>= 2.0.2, < 5.0) app-info (2.1.4) @@ -225,7 +225,7 @@ GEM listen (3.2.1) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) - loofah (2.4.0) + loofah (2.5.0) crass (~> 1.0.2) nokogiri (>= 1.5.9) lumberjack (1.2.4) @@ -234,7 +234,7 @@ GEM marcel (0.3.3) mimemagic (~> 0.3.2) method_source (1.0.0) - mimemagic (0.3.4) + mimemagic (0.3.5) mini_magick (4.10.1) mini_mime (1.0.2) mini_portile2 (2.4.0) @@ -301,20 +301,20 @@ GEM rack rack-test (1.1.0) rack (>= 1.0, < 3) - rails (6.0.2.2) - actioncable (= 6.0.2.2) - actionmailbox (= 6.0.2.2) - actionmailer (= 6.0.2.2) - actionpack (= 6.0.2.2) - actiontext (= 6.0.2.2) - actionview (= 6.0.2.2) - activejob (= 6.0.2.2) - activemodel (= 6.0.2.2) - activerecord (= 6.0.2.2) - activestorage (= 6.0.2.2) - activesupport (= 6.0.2.2) + rails (6.0.3) + actioncable (= 6.0.3) + actionmailbox (= 6.0.3) + actionmailer (= 6.0.3) + actionpack (= 6.0.3) + actiontext (= 6.0.3) + actionview (= 6.0.3) + activejob (= 6.0.3) + activemodel (= 6.0.3) + activerecord (= 6.0.3) + activestorage (= 6.0.3) + activesupport (= 6.0.3) bundler (>= 1.3.0) - railties (= 6.0.2.2) + railties (= 6.0.3) sprockets-rails (>= 2.0.0) rails-dom-testing (2.0.3) activesupport (>= 4.2.0) @@ -324,9 +324,9 @@ GEM rails-i18n (6.0.0) i18n (>= 0.7, < 2) railties (>= 6.0.0, < 7) - railties (6.0.2.2) - actionpack (= 6.0.2.2) - activesupport (= 6.0.2.2) + railties (6.0.3) + actionpack (= 6.0.3) + activesupport (= 6.0.3) method_source rake (>= 0.8.7) thor (>= 0.20.3, < 2.0) @@ -480,7 +480,7 @@ DEPENDENCIES puma (~> 4.3.3) pundit (~> 2.1.0) rack-cors (~> 1.1.1) - rails (~> 6.0.2) + rails (~> 6.0.3) rails-i18n (~> 6.0.0) rake (~> 13.0.1) redis (~> 4.1.4) diff --git a/package.json b/package.json index dbbabb5d0..720dc62e5 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "zealot", "private": true, "dependencies": { - "@rails/ujs": "^6.0.2", + "@rails/ujs": "^6.0.3", "@rails/webpacker": "^5.0.1", "admin-lte": "^3.0.4", "filepond": "^4.9.3", diff --git a/yarn.lock b/yarn.lock index c26d75d30..6efb1596a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -923,10 +923,10 @@ dependencies: infer-owner "^1.0.4" -"@rails/ujs@^6.0.2": - version "6.0.2" - resolved "https://registry.npm.taobao.org/@rails/ujs/download/@rails/ujs-6.0.2.tgz#8d32452d51c5e115374a218fb5475803dc17f4c0" - integrity sha1-jTJFLVHF4RU3SiGPtUdYA9wX9MA= +"@rails/ujs@^6.0.3": + version "6.0.3" + resolved "https://registry.npm.taobao.org/@rails/ujs/download/@rails/ujs-6.0.3.tgz#e68a03278e30daea6a110aac5dfa33c60c53055d" + integrity sha1-5ooDJ44w2upqEQqsXfozxgxTBV0= "@rails/webpacker@^5.0.1": version "5.0.1" From a2e268f4b75a78b2ac8766e7b0adc8503c38c1f8 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 11 May 2020 06:52:10 +0000 Subject: [PATCH 0135/2165] chore(deps-dev): bump webpack-dev-server from 3.10.3 to 3.11.0 Bumps [webpack-dev-server](https://github.com/webpack/webpack-dev-server) from 3.10.3 to 3.11.0. - [Release notes](https://github.com/webpack/webpack-dev-server/releases) - [Changelog](https://github.com/webpack/webpack-dev-server/blob/master/CHANGELOG.md) - [Commits](https://github.com/webpack/webpack-dev-server/compare/v3.10.3...v3.11.0) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 152 +++++++++++++++++++++++++-------------------------- 2 files changed, 74 insertions(+), 80 deletions(-) diff --git a/package.json b/package.json index 720dc62e5..5f63f5f9c 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "turbolinks": "^5.2.0" }, "devDependencies": { - "webpack-dev-server": "^3.10.3" + "webpack-dev-server": "^3.11.0" }, "version": "4.0.0" } diff --git a/yarn.lock b/yarn.lock index 6efb1596a..2f7279c59 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2317,15 +2317,6 @@ cliui@^3.2.0: strip-ansi "^3.0.1" wrap-ansi "^2.0.0" -cliui@^4.0.0: - version "4.1.0" - resolved "https://registry.npm.taobao.org/cliui/download/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" - integrity sha1-NIQi2+gtgAswIu709qwQvy5NG0k= - dependencies: - string-width "^2.1.1" - strip-ansi "^4.0.0" - wrap-ansi "^2.0.0" - cliui@^5.0.0: version "5.0.0" resolved "https://registry.npm.taobao.org/cliui/download/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" @@ -4537,10 +4528,10 @@ html-comment-regex@^1.1.0: resolved "https://registry.npm.taobao.org/html-comment-regex/download/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" integrity sha1-l9RoiutcgYhqNk+qDK0d2hTUM6c= -html-entities@^1.2.1: - version "1.2.1" - resolved "https://registry.npm.taobao.org/html-entities/download/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f" - integrity sha1-DfKTUfByEWNRXfueVUPl9u7VFi8= +html-entities@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.3.1.tgz#fb9a1a4b5b14c5daba82d3e34c6ae4fe701a0e44" + integrity sha512-rhE/4Z3hIhzHAUKbW8jVcCyuT5oJCXXqhN/6mXXVCpzTmvJnoH2HL/bt3EZ6p55jbFJBeAe1ZNpL5BugLujxNA== http-cache-semantics@^4.0.0, http-cache-semantics@^4.0.4: version "4.1.0" @@ -5614,10 +5605,10 @@ lodash@^4.0.0, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.1 resolved "https://registry.npm.taobao.org/lodash/download/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha1-tEf2ZwoEVbv+7dETku/zMOoJdUg= -loglevel@^1.6.6: - version "1.6.6" - resolved "https://registry.npm.taobao.org/loglevel/download/loglevel-1.6.6.tgz?cache=0&sync_timestamp=1573148697652&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floglevel%2Fdownload%2Floglevel-1.6.6.tgz#0ee6300cc058db6b3551fa1c4bf73b83bb771312" - integrity sha1-DuYwDMBY22s1UfocS/c7g7t3ExI= +loglevel@^1.6.8: + version "1.6.8" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.8.tgz#8a25fb75d092230ecd4457270d80b54e28011171" + integrity sha512-bsU7+gc9AJ2SqpzxwU3+1fedl8zAntbtC5XYlt3s2j1hJcn2PsXSmgN8TaLG/J1/2mod4+cE/3vNL70/c1RNCA== loose-envify@^1.0.0: version "1.4.0" @@ -6541,7 +6532,7 @@ os-locale@^1.4.0: dependencies: lcid "^1.0.0" -os-locale@^3.0.0, os-locale@^3.1.0: +os-locale@^3.1.0: version "3.1.0" resolved "https://registry.npm.taobao.org/os-locale/download/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" integrity sha1-qAKm7hfyTBBIOrmTVxnO9O0Wvxo= @@ -6943,10 +6934,10 @@ popper.js@>=1.10, popper.js@^1.14.3, popper.js@^1.16.1: resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.16.1.tgz#2a223cb3dc7b6213d740e40372be40de43e65b1b" integrity sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ== -portfinder@^1.0.25: - version "1.0.25" - resolved "https://registry.npm.taobao.org/portfinder/download/portfinder-1.0.25.tgz#254fd337ffba869f4b9d37edc298059cb4d35eca" - integrity sha1-JU/TN/+6hp9LnTftwpgFnLTTXso= +portfinder@^1.0.26: + version "1.0.26" + resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.26.tgz#475658d56ca30bed72ac7f1378ed350bd1b64e70" + integrity sha512-Xi7mKxJHHMI3rIUrnm/jjUgwhbYMkp/XKEcZX3aG4BrumLpq3nmoQMX+ClYnDZnZ/New7IatC1no5RX0zo1vXQ== dependencies: async "^2.6.2" debug "^3.1.1" @@ -8301,15 +8292,7 @@ schema-utils@^1.0.0: ajv-errors "^1.0.0" ajv-keywords "^3.1.0" -schema-utils@^2.6.0, schema-utils@^2.6.1: - version "2.6.1" - resolved "https://registry.npm.taobao.org/schema-utils/download/schema-utils-2.6.1.tgz?cache=0&sync_timestamp=1574946791935&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-2.6.1.tgz#eb78f0b945c7bcfa2082b3565e8db3548011dc4f" - integrity sha1-63jwuUXHvPoggrNWXo2zVIAR3E8= - dependencies: - ajv "^6.10.2" - ajv-keywords "^3.4.1" - -schema-utils@^2.6.4, schema-utils@^2.6.5: +schema-utils@^2.6.0, schema-utils@^2.6.1, schema-utils@^2.6.4, schema-utils@^2.6.5: version "2.6.5" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.6.5.tgz#c758f0a7e624263073d396e29cd40aa101152d8a" integrity sha512-5KXuwKziQrTVHh8j/Uxz+QUbxkaLW9X/86NBlx/gnKgtsZA2GIVMUn17qWhRFwF8jdYb3Dig5hRO/W5mZqy6SQ== @@ -8574,13 +8557,14 @@ sockjs-client@1.4.0: json3 "^3.3.2" url-parse "^1.4.3" -sockjs@0.3.19: - version "0.3.19" - resolved "https://registry.npm.taobao.org/sockjs/download/sockjs-0.3.19.tgz#d976bbe800af7bd20ae08598d582393508993c0d" - integrity sha1-2Xa76ACve9IK4IWY1YI5NQiZPA0= +sockjs@0.3.20: + version "0.3.20" + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.20.tgz#b26a283ec562ef8b2687b44033a4eeceac75d855" + integrity sha512-SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA== dependencies: faye-websocket "^0.10.0" - uuid "^3.0.1" + uuid "^3.4.0" + websocket-driver "0.6.5" socks-proxy-agent@^5.0.0: version "5.0.0" @@ -8707,10 +8691,10 @@ spdy-transport@^3.0.0: readable-stream "^3.0.6" wbuf "^1.7.3" -spdy@^4.0.1: - version "4.0.1" - resolved "https://registry.npm.taobao.org/spdy/download/spdy-4.0.1.tgz#6f12ed1c5db7ea4f24ebb8b89ba58c87c08257f2" - integrity sha1-bxLtHF236k8k67i4m6WMh8CCV/I= +spdy@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" + integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== dependencies: debug "^4.1.0" handle-thing "^2.0.0" @@ -8885,7 +8869,7 @@ string-width@^1.0.1, string-width@^1.0.2: is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" -"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.1: +"string-width@^1.0.2 || 2": version "2.1.1" resolved "https://registry.npm.taobao.org/string-width/download/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" integrity sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4= @@ -9556,11 +9540,16 @@ utils-merge@1.0.1: resolved "https://registry.npm.taobao.org/utils-merge/download/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= -uuid@^3.0.1, uuid@^3.3.2: +uuid@^3.3.2: version "3.3.3" resolved "https://registry.npm.taobao.org/uuid/download/uuid-3.3.3.tgz#4568f0216e78760ee1dbf3a4d2cf53e224112866" integrity sha1-RWjwIW54dg7h2/Ok0s9T4iQRKGY= +uuid@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + v8-compile-cache@2.0.3: version "2.0.3" resolved "https://registry.npm.taobao.org/v8-compile-cache/download/v8-compile-cache-2.0.3.tgz#00f7494d2ae2b688cfe2899df6ed2c54bef91dbe" @@ -9667,10 +9656,10 @@ webpack-dev-middleware@^3.7.2: range-parser "^1.2.1" webpack-log "^2.0.0" -webpack-dev-server@^3.10.3: - version "3.10.3" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.10.3.tgz#f35945036813e57ef582c2420ef7b470e14d3af0" - integrity sha512-e4nWev8YzEVNdOMcNzNeCN947sWJNd43E5XvsJzbAL08kGc2frm1tQ32hTJslRS+H65LCb/AaUCYU7fjHCpDeQ== +webpack-dev-server@^3.11.0: + version "3.11.0" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz#8f154a3bce1bcfd1cc618ef4e703278855e7ff8c" + integrity sha512-PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg== dependencies: ansi-html "0.0.7" bonjour "^3.5.0" @@ -9680,31 +9669,31 @@ webpack-dev-server@^3.10.3: debug "^4.1.1" del "^4.1.1" express "^4.17.1" - html-entities "^1.2.1" + html-entities "^1.3.1" http-proxy-middleware "0.19.1" import-local "^2.0.0" internal-ip "^4.3.0" ip "^1.1.5" is-absolute-url "^3.0.3" killable "^1.0.1" - loglevel "^1.6.6" + loglevel "^1.6.8" opn "^5.5.0" p-retry "^3.0.1" - portfinder "^1.0.25" + portfinder "^1.0.26" schema-utils "^1.0.0" selfsigned "^1.10.7" semver "^6.3.0" serve-index "^1.9.1" - sockjs "0.3.19" + sockjs "0.3.20" sockjs-client "1.4.0" - spdy "^4.0.1" + spdy "^4.0.2" strip-ansi "^3.0.1" supports-color "^6.1.0" url "^0.11.0" webpack-dev-middleware "^3.7.2" webpack-log "^2.0.0" ws "^6.2.1" - yargs "12.0.5" + yargs "^13.3.2" webpack-log@^2.0.0: version "2.0.0" @@ -9751,6 +9740,13 @@ webpack@^4.42.1: watchpack "^1.6.0" webpack-sources "^1.4.1" +websocket-driver@0.6.5: + version "0.6.5" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.6.5.tgz#5cb2556ceb85f4373c6d8238aa691c8454e13a36" + integrity sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY= + dependencies: + websocket-extensions ">=0.1.1" + websocket-driver@>=0.5.1: version "0.7.3" resolved "https://registry.npm.taobao.org/websocket-driver/download/websocket-driver-0.7.3.tgz#a2d4e0d4f4f116f1e6297eba58b05d430100e9f9" @@ -9869,7 +9865,7 @@ y18n@^3.2.1: resolved "https://registry.npm.taobao.org/y18n/download/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" integrity sha1-bRX7qITAhnnA136I53WegR4H+kE= -"y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0: +y18n@^4.0.0: version "4.0.0" resolved "https://registry.npm.taobao.org/y18n/download/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" integrity sha1-le+U+F7MgdAHwmThkKEg8KPIVms= @@ -9896,14 +9892,6 @@ yaml@^1.7.2: dependencies: "@babel/runtime" "^7.6.3" -yargs-parser@^11.1.1: - version "11.1.1" - resolved "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" - integrity sha1-h5oIZZc7yp9rq1y987HGfsfTvPQ= - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - yargs-parser@^13.1.0: version "13.1.1" resolved "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0" @@ -9912,6 +9900,14 @@ yargs-parser@^13.1.0: camelcase "^5.0.0" decamelize "^1.2.0" +yargs-parser@^13.1.2: + version "13.1.2" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" + integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + yargs-parser@^5.0.0: version "5.0.0" resolved "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a" @@ -9919,24 +9915,6 @@ yargs-parser@^5.0.0: dependencies: camelcase "^3.0.0" -yargs@12.0.5: - version "12.0.5" - resolved "https://registry.npm.taobao.org/yargs/download/yargs-12.0.5.tgz?cache=0&sync_timestamp=1577940731931&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" - integrity sha1-BfWZe2CWR7ZPZrgeO0sQo2jnrRM= - dependencies: - cliui "^4.0.0" - decamelize "^1.2.0" - find-up "^3.0.0" - get-caller-file "^1.0.1" - os-locale "^3.0.0" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^2.0.0" - which-module "^2.0.0" - y18n "^3.2.1 || ^4.0.0" - yargs-parser "^11.1.1" - yargs@13.2.4: version "13.2.4" resolved "https://registry.npm.taobao.org/yargs/download/yargs-13.2.4.tgz?cache=0&sync_timestamp=1577940731931&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-13.2.4.tgz#0b562b794016eb9651b98bd37acf364aa5d6dc83" @@ -9954,6 +9932,22 @@ yargs@13.2.4: y18n "^4.0.0" yargs-parser "^13.1.0" +yargs@^13.3.2: + version "13.3.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" + integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== + dependencies: + cliui "^5.0.0" + find-up "^3.0.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^3.0.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^13.1.2" + yargs@^7.0.0: version "7.1.0" resolved "https://registry.npm.taobao.org/yargs/download/yargs-7.1.0.tgz?cache=0&sync_timestamp=1577940731931&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8" From d6df2620ebadbc901af68782f8d2532387e15746 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 11 May 2020 17:09:30 +0800 Subject: [PATCH 0136/2165] =?UTF-8?q?feat:=20=E6=98=BE=E7=A4=BA=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E5=8E=9F=E5=A7=8B=E5=BA=94=E7=94=A8=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/releases/body/_metadata.html.slim | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/app/views/releases/body/_metadata.html.slim b/app/views/releases/body/_metadata.html.slim index 10f16c4c3..31dd632e2 100644 --- a/app/views/releases/body/_metadata.html.slim +++ b/app/views/releases/body/_metadata.html.slim @@ -26,6 +26,10 @@ li title="平台" i.fas.fa-archive = display_app_device(@release.channel) + - if @release.name.present? + li title="应用名" + i.fas.fa-file + = @release.name li title="主版本" i.fas.fa-server = "#{@release.release_version} (#{@release.build_version})" @@ -42,18 +46,18 @@ = time_ago_in_words(@release.created_at) - if @release.branch.present? li title="Git 分支" - i.fas.fa-code-fork + i.fas.fa-code-branch = @release.branch - if @release.git_commit.present? li title="Git Commit" - i.fas.fa-git + i.fab.fa-git-alt = git_commit_url(@release.channel.git_url, @release.git_commit) - @release.custom_fields.each do |field| li title="#{field['name']}" i.fas class="fa-#{field['icon']}" = field['value'] li title="上传来源" - i.fas.fa-cogs + i.fas.fa-compass - if @release.ci_url.blank? = @release.source - else From c33187f482c25edcdcf5787e816c750bfa980ae2 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 11 May 2020 17:15:24 +0800 Subject: [PATCH 0137/2165] =?UTF-8?q?style:=20=E4=BC=98=E5=8C=96=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E8=AF=A6=E6=83=85=E9=83=A8=E5=88=86=20icon?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/application_helper.rb | 10 +++++----- app/views/releases/body/_metadata.html.slim | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 947679a59..8df9b5839 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -23,10 +23,6 @@ def random_color "bg-#{RANDOM_COLORS[rand(RANDOM_COLORS.size - 1)]}" end - def timeline_app_icon(device_type) - device_type == 'android' ? 'fa-android bg-green' : 'fa-apple bg-black' - end - # 激活 li 的 class def active_class(link_path = nil) if link_path @@ -75,7 +71,11 @@ def device_icon(device_type) 'fa-adn' end - tag.i(class: "fa #{icon}") + tag.i(class: "fab #{icon}") + end + + def timeline_app_icon(device_type) + device_type == 'android' ? 'fa-android bg-green' : 'fa-apple bg-black' end # 获取浏览器 user agent diff --git a/app/views/releases/body/_metadata.html.slim b/app/views/releases/body/_metadata.html.slim index 31dd632e2..26610a90d 100644 --- a/app/views/releases/body/_metadata.html.slim +++ b/app/views/releases/body/_metadata.html.slim @@ -24,7 +24,7 @@ i.fab.fa-gg = @release.version li title="平台" - i.fas.fa-archive + = device_icon(@release.device_type) = display_app_device(@release.channel) - if @release.name.present? li title="应用名" @@ -39,7 +39,7 @@ = @release.release_type - if @release.file.present? li title="文件体积" - i.fas.fa-retweet + i.fas.fa-weight = " #{number_to_human_size(@release.file.size)}" li title="上传时间" i.fas.fa-calendar From 3bf7ad9ab081ecd7085b9aae7d2917db52b9d61d Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 11 May 2020 17:19:55 +0800 Subject: [PATCH 0138/2165] =?UTF-8?q?style:=20=E8=A7=A3=E5=86=B3=E4=BA=8C?= =?UTF-8?q?=E7=BB=B4=E7=A0=81=E5=9C=A8=E4=B8=AD=E7=AD=89=E5=88=86=E8=BE=A8?= =?UTF-8?q?=E7=8E=87=E4=BC=9A=E8=B6=85=E5=87=BA=E7=88=B6=E8=A7=86=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/javascript/stylesheets/app.scss | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/app/javascript/stylesheets/app.scss b/app/javascript/stylesheets/app.scss index 95bd1d4f4..f9d9066ca 100644 --- a/app/javascript/stylesheets/app.scss +++ b/app/javascript/stylesheets/app.scss @@ -3,6 +3,12 @@ .direct-chat-messages { padding: 0; } + + .qr_code { + img { + width: 100%; + } + } } // show page @@ -106,6 +112,7 @@ } } } + // App 最近上传 .release-changelogs-toggle { From ec3b87ab88bd3da54441260c8178f2c7089bdaf1 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 11 May 2020 17:40:37 +0800 Subject: [PATCH 0139/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E6=9B=B4=E6=96=B0=E6=97=A5=E5=BF=97=E4=B8=8D=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E7=94=A8=E6=88=B7=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/services/create_sample_apps_service.rb | 15 +++++++++------ app/views/admin/users/index.html.slim | 2 +- app/views/admin/web_hooks/index.html.slim | 2 +- app/views/admin/web_hooks/show.html.slim | 2 +- app/views/apps/_list.html.slim | 4 ++-- app/views/apps/show.html.slim | 2 +- app/views/debug_files/index.html.slim | 2 +- app/views/releases/body/_changelog.html.slim | 6 +++--- 8 files changed, 19 insertions(+), 16 deletions(-) diff --git a/app/services/create_sample_apps_service.rb b/app/services/create_sample_apps_service.rb index dd8c8628c..6e76a1cd6 100644 --- a/app/services/create_sample_apps_service.rb +++ b/app/services/create_sample_apps_service.rb @@ -15,19 +15,22 @@ def stardford_app(user) channels = %i[Android iOS].freeze changelog = [ { - user: '管理员', + author: '管理员', date: '2019-10-24 23:0:24 +0800', - message: 'release: 发布 0.1.0' + message: 'release: 发布 0.1.0', + email: 'admin@zealt.com' }, { - user: '管理员', + author: '管理员', date: '2019-10-23 17:41:41 +0800', - message: 'fix: 修复 xxx 问题' + message: 'fix: 修复 xxx 问题', + email: 'admin@zealt.com' }, { - user: '管理员', + author: '管理员', date: '2019-10-22 11:11:11 +0800', - message: 'feat: 初始化项目' + message: 'feat: 初始化项目', + email: 'admin@zealt.com' } ] diff --git a/app/views/admin/users/index.html.slim b/app/views/admin/users/index.html.slim index 1e967466b..a80fef651 100644 --- a/app/views/admin/users/index.html.slim +++ b/app/views/admin/users/index.html.slim @@ -6,7 +6,7 @@ - content_for :section_rightpanel do a.btn.btn-icon.bg-green href="#{new_admin_user_path}" - i.fas.fa-plus-square + i.far.fa-plus-square | 新建用户 .row diff --git a/app/views/admin/web_hooks/index.html.slim b/app/views/admin/web_hooks/index.html.slim index 132c5c532..d0a7d1df8 100644 --- a/app/views/admin/web_hooks/index.html.slim +++ b/app/views/admin/web_hooks/index.html.slim @@ -6,7 +6,7 @@ / - content_for :section_rightpanel do / a.btn.btn-icon.bg-green href="#{new_admin_web_hook_path}" -/ i.fas.fa-plus-square +/ i.far.fa-plus-square / | 新建网络钩子 .row diff --git a/app/views/admin/web_hooks/show.html.slim b/app/views/admin/web_hooks/show.html.slim index 6cee14b5d..897561406 100644 --- a/app/views/admin/web_hooks/show.html.slim +++ b/app/views/admin/web_hooks/show.html.slim @@ -6,7 +6,7 @@ / - content_for :section_rightpanel do / a.btn.bg-green href="#{new_admin_web_hook_path}" -/ i.fas.fa-plus-square +/ i.far.fa-plus-square / | 新建网络钩子 .row diff --git a/app/views/apps/_list.html.slim b/app/views/apps/_list.html.slim index 598905893..4952372a8 100644 --- a/app/views/apps/_list.html.slim +++ b/app/views/apps/_list.html.slim @@ -9,7 +9,7 @@ = link_to app.name, app_path(app), style: "color: #000" .card-tools a.btn.btn-tool href="#{new_app_scheme_path(app)}" - i.fas.fa-plus-square + i.far.fa-plus-square a.btn.btn-tool href="#{edit_app_path(app)}" i.fas.fa-edit a.btn.btn-tool href="#{app_path(app)}" data-confirm="确定删除【#{app.name}】及其所有的数据?" data-method="delete" @@ -35,7 +35,7 @@ | 右上角的按钮是本应用的功能区: ul li.btn-icon - i.fas.fa-plus-square + i.far.fa-plus-square | 创建应用类型和渠道 li.btn-icon i.fas.fa-edit diff --git a/app/views/apps/show.html.slim b/app/views/apps/show.html.slim index 016f4531e..23cd9da2c 100644 --- a/app/views/apps/show.html.slim +++ b/app/views/apps/show.html.slim @@ -40,7 +40,7 @@ td colspan="2" small | 没有发现任何渠道,选择上面  - i.fas.fa-plus-square + i.far.fa-plus-square | 添加新渠道。 - else .callout.callout-warning diff --git a/app/views/debug_files/index.html.slim b/app/views/debug_files/index.html.slim index ce31b36da..41a7d4692 100644 --- a/app/views/debug_files/index.html.slim +++ b/app/views/debug_files/index.html.slim @@ -6,7 +6,7 @@ - content_for :section_rightpanel do a.btn.btn-icon.bg-green href="#{new_debug_file_path}" - i.fas.fa-plus-square + i.far.fa-plus-square | 上传 Debug File 文件 .row diff --git a/app/views/releases/body/_changelog.html.slim b/app/views/releases/body/_changelog.html.slim index 80c279354..891b6bc14 100644 --- a/app/views/releases/body/_changelog.html.slim +++ b/app/views/releases/body/_changelog.html.slim @@ -15,9 +15,9 @@ small.float-right span.badge.badge-light data-toggle="tooltip" title="#{date}" = time_ago_in_words(date) - - if changelog['user'] + - if changelog['author'] small.float-right.mr-1 - span.badge.badge-info - = changelog['user'] + span.badge.badge-info data-toggle="tooltip" title="#{changelog['email']}" + = changelog['author'] = simple_format changelog['message'], class: 'mb-1' \ No newline at end of file From 46c3188f83452f358a5171ca2095a461c6dec412 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 12 May 2020 10:18:54 +0800 Subject: [PATCH 0140/2165] =?UTF-8?q?feat:=20=E7=89=88=E6=9C=AC=E8=AF=A6?= =?UTF-8?q?=E6=83=85=E6=9C=80=E8=BF=91=E4=B8=8A=E4=BC=A0=E5=85=B3=E8=81=94?= =?UTF-8?q?=20git=20commit=20=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/releases/body/_activity.html.slim | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/app/views/releases/body/_activity.html.slim b/app/views/releases/body/_activity.html.slim index 7346897d9..388ddd341 100644 --- a/app/views/releases/body/_activity.html.slim +++ b/app/views/releases/body/_activity.html.slim @@ -28,14 +28,17 @@ ruby: = changelog_format release.changelog_list, class: 'mb-0' - if release.release_type.present? || release.branch.present? || release.short_git_commit.present? .timeline-footer - - if release.release_type + - if release.release_type.present? small.badge = release.release_type - - if release.branch + - if release.branch.present? small.badge = release.branch - - if release.short_git_commit + - if release.short_git_commit.present? small.badge - = release.short_git_commit + - if release.channel.git_url.present? + = git_commit_url(@release.channel.git_url, @release.git_commit) + - else + = release.short_git_commit div i.fas.fa-clock.bg-gray \ No newline at end of file From 83d93b454c82a905689cdf4c5f6246cbe840c42e Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 12 May 2020 11:59:06 +0800 Subject: [PATCH 0141/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E7=BC=96?= =?UTF-8?q?=E8=BE=91=E6=B8=A0=E9=81=93=E6=97=B6=E9=80=89=E6=8B=A9=E7=9A=84?= =?UTF-8?q?=E5=BA=94=E7=94=A8=E5=B9=B3=E5=8F=B0=E6=98=AF=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/channels/_form.html.slim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/channels/_form.html.slim b/app/views/channels/_form.html.slim index 03b3f3548..7890a7ef6 100644 --- a/app/views/channels/_form.html.slim +++ b/app/views/channels/_form.html.slim @@ -16,7 +16,7 @@ ruby: = f.input :scheme_id, as: :hidden, input_html: { value: params[:scheme_id] } = f.input :name, required: true - = f.input :device_type, collection: Channel.device_types, label_method: :last, value_method: :first, selected: Channel.device_types.first + = f.input :device_type, collection: Channel.device_types, label_method: :last, value_method: :first, selected: @channel.device_type ? @channel.device_type : Channel.device_types.first = f.input :bundle_id = f.input :git_url = f.input :slug From 1613579ac4cd5195bd473ade2367b6413aa9573d Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 13 May 2020 17:10:33 +0800 Subject: [PATCH 0142/2165] =?UTF-8?q?fix:=20=E6=81=A2=E5=A4=8D=E5=A4=A7?= =?UTF-8?q?=E9=87=8F=E5=88=9B=E5=BB=BA=E6=BC=94=E7=A4=BA=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/services/create_sample_apps_service.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/services/create_sample_apps_service.rb b/app/services/create_sample_apps_service.rb index 6e76a1cd6..e5783a687 100644 --- a/app/services/create_sample_apps_service.rb +++ b/app/services/create_sample_apps_service.rb @@ -1,6 +1,8 @@ # frozen_string_literal: true class CreateSampleAppsService + RELEASE_COUNT = 3 + def call(user) stardford_app user android_channels_app user @@ -51,7 +53,7 @@ def stardford_app(user) 'release' end - 100.times do + RELEASE_COUNT.times do generate_release(channel, bundle_id, release_type, changelog) end end From f2334c9391b6eb4448453805c5e914e8068986ad Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 13 May 2020 17:15:03 +0800 Subject: [PATCH 0143/2165] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E6=BC=94?= =?UTF-8?q?=E7=A4=BA=E6=A8=A1=E5=BC=8F=E5=AE=9A=E6=9C=9F=E5=88=9D=E5=A7=8B?= =?UTF-8?q?=E5=8C=96=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/jobs/reset_for_demo_mode_job.rb | 45 +++++++++++++++++++++++++++++ config/initializers/sidekiq.rb | 19 ++++++++++-- config/zealot.yml | 4 +++ lib/tasks/zealot.rake | 5 ++++ 4 files changed, 71 insertions(+), 2 deletions(-) create mode 100644 app/jobs/reset_for_demo_mode_job.rb diff --git a/app/jobs/reset_for_demo_mode_job.rb b/app/jobs/reset_for_demo_mode_job.rb new file mode 100644 index 000000000..0207ea345 --- /dev/null +++ b/app/jobs/reset_for_demo_mode_job.rb @@ -0,0 +1,45 @@ +# frozen_string_literal: true + +class ResetForDemoModeJob < ApplicationJob + queue_as :schedule + + def perform + return unless demo_mode? + + clean_apps + clean_users + init_demo_data + end + + private + + def demo_mode? + if (value = ENV['ZEALOT_DEMO_MODE']) && value.present? + return true if value.to_i == 1 + return true if value.downcase == 'true' + end + + logger.warn("Zealot is not in demo mode, can not execute ResetForDemoModeJob.") + + false + end + + def clean_apps + apps = App.all + apps.each do |app| + app.destroy + end + end + + def clean_users + users = User.all + users.each do |user| + user.destroy + end + end + + def init_demo_data + user = CreateAdminService.new.call + CreateSampleAppsService.new.call(user) + end +end diff --git a/config/initializers/sidekiq.rb b/config/initializers/sidekiq.rb index 858183cce..778bd1e4f 100644 --- a/config/initializers/sidekiq.rb +++ b/config/initializers/sidekiq.rb @@ -1,5 +1,14 @@ # frozen_string_literal: true +def env_key_enabled?(key) + return false unless value = ENV[key] + return false if value.blank? + return true if value.to_i == 1 + return true if value.downcase == 'true' + + false +end + sidekiq_config = { url: ENV['REDIS_URL'] || 'redis://localhost:6379/0' } Sidekiq.configure_server do |config| @@ -17,8 +26,14 @@ if Sidekiq.server? cron_jobs = Zealot::Setting.cron_jobs - keep_uploads = ENV['ZEALOT_KEEP_UPLOADS'] - keep_uploads = keep_uploads.present? && keep_uploads.downcase != 'false' + keep_uploads = env_key_enabled?('ZEALOT_KEEP_UPLOADS') cron_jobs.delete_if { |k, _| keep_uploads && k == 'clean_old_releases' } + + demo_mode = env_key_enabled?('ZEALOT_DEMO_MODE') + cron_jobs.delete_if { |k, _| !demo_mode && k == 'reset_for_demo_mode' } + + # 从 demo mode 禁用后需要删除定时任务 + Sidekiq::Cron::Job.destroy('reset_for_demo_mode') unless demo_mode + Sidekiq::Cron::Job.load_from_hash cron_jobs end diff --git a/config/zealot.yml b/config/zealot.yml index 6f117368d..4a0d3a384 100644 --- a/config/zealot.yml +++ b/config/zealot.yml @@ -6,6 +6,10 @@ default: &base cron: '0 6 * * *' class: 'CleanOldReleasesJob' queue: schedule + reset_for_demo_mode: + cron: '0 0 * * *' + class: 'ResetForDemoModeJob' + queue: schedule development: <<: *base diff --git a/lib/tasks/zealot.rake b/lib/tasks/zealot.rake index 1fbdfbeb2..ccc426cb4 100644 --- a/lib/tasks/zealot.rake +++ b/lib/tasks/zealot.rake @@ -6,6 +6,11 @@ namespace :zealot do Rake::Task['zealot:db:upgrade'].invoke end + desc 'Zealot | Remove all data and init demo data and user' + task reset: :environment do + ResetForDemoModeJob.perform_now + end + namespace :db do task upgrade: :environment do begin From 8174e2433e72023e320a165ca07bcc1e9522c451 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 13 May 2020 17:45:21 +0800 Subject: [PATCH 0144/2165] =?UTF-8?q?style:=20=E8=A7=A3=E5=86=B3=20Google?= =?UTF-8?q?=20=E7=99=BB=E5=BD=95=E6=B2=A1=E6=9C=89=E6=98=BE=E7=A4=BA=20ico?= =?UTF-8?q?n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Guardfile | 1 + app/views/devise/shared/_links.html.slim | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Guardfile b/Guardfile index 45abf4e81..3f474ab32 100644 --- a/Guardfile +++ b/Guardfile @@ -43,6 +43,7 @@ end guard :rails, host: '0.0.0.0', environment: environment do ignore(%r{^config/(locales|webpack)/.*}) + watch('.env') watch('Gemfile.lock') watch(%r{^(config|lib)/.*}) watch('app/assets/config/manifest.js') diff --git a/app/views/devise/shared/_links.html.slim b/app/views/devise/shared/_links.html.slim index 1e7476737..c9c0f2b8d 100644 --- a/app/views/devise/shared/_links.html.slim +++ b/app/views/devise/shared/_links.html.slim @@ -6,7 +6,7 @@ name = omniauth_display_name(provider) a.btn.btn-icon.btn-block href="#{public_send("user_#{provider}_omniauth_authorize_path")}" class="#{provider == :google_oauth2 ? 'btn-danger' : 'btn-default'}" - i.fa class="fa-#{name.downcase}" + i.fab class="fa-#{name.downcase}" = "使用 #{name} 账号登录" - if controller_name != 'sessions' From 911bd1dac89c9d027ff80dfb2e9043d78668463b Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 13 May 2020 19:32:44 +0800 Subject: [PATCH 0145/2165] =?UTF-8?q?feat:=20=E6=BC=94=E7=A4=BA=E6=A8=A1?= =?UTF-8?q?=E5=BC=8F=E9=83=A8=E5=88=86=E6=8E=A5=E5=8F=A3=E9=99=90=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/admin/users_controller.rb | 8 ++++++++ app/controllers/application_controller.rb | 15 +++++++++++++++ config/routes.rb | 17 ++++++++++++++++- 3 files changed, 39 insertions(+), 1 deletion(-) diff --git a/app/controllers/admin/users_controller.rb b/app/controllers/admin/users_controller.rb index 28cca177a..8d37243f2 100644 --- a/app/controllers/admin/users_controller.rb +++ b/app/controllers/admin/users_controller.rb @@ -30,6 +30,10 @@ def edit end def update + if admin_email? && demo_mode? + return redirect_to admin_users_url, alert: '演示模式不能编辑默认管理员' + end + # 没有设置密码的情况下不更新该字段 user_params.delete(:password) if user_params[:password].blank? return render :edit unless @user.update(user_params) @@ -38,6 +42,10 @@ def update end def destroy + if admin_email? && demo_mode? + return redirect_to admin_users_url, alert: '演示模式不能删除默认管理员!' + end + @user.destroy redirect_to admin_users_url, notice: '用户已经删除' end diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 8ad0374b9..efbd4adca 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -14,6 +14,21 @@ class ApplicationController < ActionController::Base # Handle pundit error rescue_from Pundit::NotAuthorizedError, with: :user_not_authorized + protected + + def demo_mode? + if (value = ENV['ZEALOT_DEMO_MODE']) && value.present? + return true if value.to_i == 1 + return true if value.downcase == 'true' + end + + false + end + + def admin_email? + @user.email == Rails.application.secrets.admin_email + end + private def set_raven_context diff --git a/config/routes.rb b/config/routes.rb index af6f77066..76c2f5a55 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -8,8 +8,23 @@ ############################################# # User ############################################# - devise_for :users, controllers: { omniauth_callbacks: 'users/omniauth_callbacks' } + devise_for :users, skip: :registrations, controllers: { omniauth_callbacks: 'users/omniauth_callbacks' } + devise_scope :user do + devise_registration_actions = [:new, :create, :edit, :update] + if ENV['ZEALOT_DEMO_MODE'] == 'true' + devise_registration_actions.delete(:edit) + devise_registration_actions.delete(:update) + end + resource :registration, + only: devise_registration_actions, + path: 'users', + path_names: { new: 'sign_up' }, + controller: 'devise/registrations', + as: :user_registration do + get :cancel + end + end ############################################# # App ############################################# From 7b09834f96a607f9315ac3657a2a07be5cbeab75 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 13 May 2020 19:33:01 +0800 Subject: [PATCH 0146/2165] =?UTF-8?q?doc:=20=E5=A2=9E=E5=8A=A0=E6=BC=94?= =?UTF-8?q?=E7=A4=BA=E5=9C=B0=E5=9D=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index cf212c890..bb08f6c79 100644 --- a/README.md +++ b/README.md @@ -29,6 +29,14 @@ - [ ] 稳定版本 - v4.0.0 - `icyleafcn/zealot:latest` - 还在研发测试中,尚未发布。 - [x] 测试版本 - develop - `icyleafcn/zealot:nightly` - 基于 develop 分支每次提交构建的版本 +## 演示 + +- 演示地址:https://tryzealot.herokuapp.com/ +- 电子邮箱: `admin@zealot.com` +- 登录密码:`ze@l0t` + +> **注意**: 演示服务的数据每日都会重新初始化,请勿上传重要数据! + ## 快速上手 ``` From 85f0f130c180b9ab65e7bb3b01131fb8b08db9c5 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 13 May 2020 19:42:06 +0800 Subject: [PATCH 0147/2165] =?UTF-8?q?doc:=20=E5=8F=98=E6=9B=B4=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E7=A7=BB=E5=88=B0=20zealot-docs=20=E9=A1=B9=E7=9B=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 76 +--------------------------------------------------- README.md | 2 +- 2 files changed, 2 insertions(+), 76 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index eea8326ef..f0483ef0a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,77 +1,3 @@ # 变更日志 -## [未发布] - -> 如下罗列的变更是还未发布的列表 - -## [4.0.0.beta4] (2020-05-07) - -### 新功能 - -- [Docker] 支持 Heroku 部署 -- [Web] 游客模式允许查看 App 详情、列表和上传 App 详情 -- [API] 上传 App 支持自定义字段 [#178](https://github.com/getzealot/zealot/issues/178) -- [Web/API] 上传 App 传递了 `branch` 值开头包含 `origin/` 开头会自动清理掉 -- [Web] 登录、注册、找回密码、重设密码等用户认证界面增加项目简介 - -### 修复 - -- [Web] 修正用户密码描述文案 -- [Web] 修复网络钩子(WebHook)包含 url 字段的地址错误 -- [Web/API] 修复上传 iOS dSYM 文件上传报错 -- [API] 修复获取 App 接口 has_password 参数异常 -- [API] 修复上传 App 记录的 source 来源都是 Web -- [API] 修复并支持上传 App 传递字符串类型的 json 格式的 changelog -- [Web] 修复系统信息没有正常获取 CPU 和内存信息 -- [Web] 修复在线解析 Android 应用偶尔报错 -- [Web] 修复使用微信扫描二维码页面报错 - -### 变更 - -- [API] 应用最新版本接口(`apps/latest`)增加 bundle_id 纬度的验证 -- [Web] 游客模式可以访问应用版本详情和下载操作 -- [Web] 应用版本详情对于 iOS AdHoc 右侧的设备列表左移并默认收起状态 -- [Web] 开发环境移除 GraphQL 控制台功能,推荐使用 [graphql-playground](https://github.com/prisma-labs/graphql-playground) -- [Web] 页面底部移除 footbar,版本信息可以在系统信息查看 - -## [4.0.0.beta3] (2020-01-16) - -### 新功能 - -- [Web] 管理员添加的用户在邮箱未激活会提示并显示确认邮箱的链接 -- [Web] 默认开启 Sentry 匿名上报机制(可关闭) - -### 修复 - -- [API] 修复上传应用总会创建新渠道 -- [Web/API] 修复上传 Android 应用无法显示图标 - -### 变更 - -- [Docker] 初始化数据从镜像移出到 [zealot-docker](https://github.com/getzealot/zealot-docker) 操作 [#120](https://github.com/getzealot/zealot/pull/120) -- [Docker] 精简镜像的体积大小从 1.18G 降到 308M [#114](https://github.com/getzealot/zealot/issues/114) -- [Worker] 使用异步任务代替传统 cron job 来实现定时清理老版本历史包文件(可关闭) -- [Worker] 对异步任务进行分组和设置优先级 -- [API] 所有报错信息改成中文显示,因数据库写操作会返回具体错误信息 -- [Web] 使用 Rubocop Lint 规范化代码 - -## [4.0.0.beta2] (2020-01-10) - -### 新功能 - -- [Web] 新增上传到具体应用渠道的全部版本列表同时支持删除操作 - -### 修复 - -- [Web] 对于上传应用不是有效 ipa 或 apk 的会给予错误提示而不是报错 -- [API] 修复获取应用最新版本列表因查询版本号不存在数据库无法返回最新版本列表 -- [API] 只针对写操作的接口才会要求 token 验证(之前是绝大部分都需要) - -## 4.0.0.beta1 - -🌈 第一个公测版本发布啦 - -[未发布]: https://github.com/getzealot/zealot/compare/4.0.0.beta3...HEAD -[4.0.0.beta3]: https://github.com/getzealot/zealot/compare/4.0.0.beta2...4.0.0.beta3 -[4.0.0.beta2]: https://github.com/getzealot/zealot/compare/4.0.0.beta1...4.0.0.beta2 - +请移步:https://zealot.ews.im/#/changelog \ No newline at end of file diff --git a/README.md b/README.md index bb08f6c79..29ced0823 100644 --- a/README.md +++ b/README.md @@ -26,8 +26,8 @@ ## 最新版本 -- [ ] 稳定版本 - v4.0.0 - `icyleafcn/zealot:latest` - 还在研发测试中,尚未发布。 - [x] 测试版本 - develop - `icyleafcn/zealot:nightly` - 基于 develop 分支每次提交构建的版本 +- [ ] 稳定版本 - v4.0.0 - `icyleafcn/zealot:latest` - 还在研发测试中,尚未发布。 ## 演示 From 4c61dcc577ff089a3b0f5040f2f00fccc2517325 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 13 May 2020 21:07:41 +0800 Subject: [PATCH 0148/2165] =?UTF-8?q?refactor:=20=E5=BD=93=E5=89=8D?= =?UTF-8?q?=E7=99=BB=E5=BD=95=E7=94=A8=E6=88=B7=E7=BC=96=E8=BE=91=E4=B8=8D?= =?UTF-8?q?=E5=86=8D=E9=9C=80=E8=A6=81=E5=AF=86=E7=A0=81,=E5=90=8C?= =?UTF-8?q?=E6=97=B6=E6=BC=94=E7=A4=BA=E6=A8=A1=E5=BC=8F=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E5=91=98=E4=B8=8D=E5=85=81=E8=AE=B8=E4=BF=AE=E6=94=B9=E8=B5=84?= =?UTF-8?q?=E6=96=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/admin/users_controller.rb | 4 ++-- app/controllers/application_controller.rb | 15 -------------- .../users/registrations_controller.rb | 17 ++++++++++++++++ app/helpers/demomode_helper.rb | 20 +++++++++++++++++++ app/jobs/reset_for_demo_mode_job.rb | 18 ++++++----------- app/views/devise/registrations/edit.html.slim | 2 -- config/routes.rb | 10 ++-------- 7 files changed, 47 insertions(+), 39 deletions(-) create mode 100644 app/controllers/users/registrations_controller.rb create mode 100644 app/helpers/demomode_helper.rb diff --git a/app/controllers/admin/users_controller.rb b/app/controllers/admin/users_controller.rb index 8d37243f2..b138cd95a 100644 --- a/app/controllers/admin/users_controller.rb +++ b/app/controllers/admin/users_controller.rb @@ -30,7 +30,7 @@ def edit end def update - if admin_email? && demo_mode? + if helpers.default_admin_in_demo_mode?(@user) return redirect_to admin_users_url, alert: '演示模式不能编辑默认管理员' end @@ -42,7 +42,7 @@ def update end def destroy - if admin_email? && demo_mode? + if helpers.default_admin_in_demo_mode?(@user) return redirect_to admin_users_url, alert: '演示模式不能删除默认管理员!' end diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index efbd4adca..8ad0374b9 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -14,21 +14,6 @@ class ApplicationController < ActionController::Base # Handle pundit error rescue_from Pundit::NotAuthorizedError, with: :user_not_authorized - protected - - def demo_mode? - if (value = ENV['ZEALOT_DEMO_MODE']) && value.present? - return true if value.to_i == 1 - return true if value.downcase == 'true' - end - - false - end - - def admin_email? - @user.email == Rails.application.secrets.admin_email - end - private def set_raven_context diff --git a/app/controllers/users/registrations_controller.rb b/app/controllers/users/registrations_controller.rb new file mode 100644 index 000000000..fbd9bfee5 --- /dev/null +++ b/app/controllers/users/registrations_controller.rb @@ -0,0 +1,17 @@ +# frozen_string_literal: true + +class Users::RegistrationsController < Devise::RegistrationsController + def update + if helpers.default_admin_in_demo_mode?(resource) + return redirect_to edit_user_registration_url, alert: '演示模式不能编辑默认管理员' + end + + super + end + + protected + + def update_resource(resource, params) + resource.update_without_password(params) + end +end diff --git a/app/helpers/demomode_helper.rb b/app/helpers/demomode_helper.rb new file mode 100644 index 000000000..afdf4d3e2 --- /dev/null +++ b/app/helpers/demomode_helper.rb @@ -0,0 +1,20 @@ +# frozen_string_literal: true + +module DemomodeHelper + def demo_mode? + if (value = ENV['ZEALOT_DEMO_MODE']) && value.present? + return true if value.to_i == 1 + return true if value.downcase == 'true' + end + + false + end + + def default_admin?(user) + user.email == Rails.application.secrets.admin_email + end + + def default_admin_in_demo_mode?(user) + default_admin?(user) && demo_mode? + end +end \ No newline at end of file diff --git a/app/jobs/reset_for_demo_mode_job.rb b/app/jobs/reset_for_demo_mode_job.rb index 0207ea345..d8aa5a523 100644 --- a/app/jobs/reset_for_demo_mode_job.rb +++ b/app/jobs/reset_for_demo_mode_job.rb @@ -1,10 +1,15 @@ # frozen_string_literal: true class ResetForDemoModeJob < ApplicationJob + include DemomodeHelper + queue_as :schedule def perform - return unless demo_mode? + unless demo_mode? + logger.warn("Zealot is not in demo mode, can not execute ResetForDemoModeJob.") + return + end clean_apps clean_users @@ -13,17 +18,6 @@ def perform private - def demo_mode? - if (value = ENV['ZEALOT_DEMO_MODE']) && value.present? - return true if value.to_i == 1 - return true if value.downcase == 'true' - end - - logger.warn("Zealot is not in demo mode, can not execute ResetForDemoModeJob.") - - false - end - def clean_apps apps = App.all apps.each do |app| diff --git a/app/views/devise/registrations/edit.html.slim b/app/views/devise/registrations/edit.html.slim index bd4ba972b..404b323c9 100644 --- a/app/views/devise/registrations/edit.html.slim +++ b/app/views/devise/registrations/edit.html.slim @@ -18,8 +18,6 @@ | 等待确认邮件: = resource.unconfirmed_email - = f.input :current_password, label: '当前密码', - input_html: { autocomplete: "current-password" } = f.input :password, label: '新密码', input_html: { autocomplete: "new-password" } = f.input :password_confirmation, label: '重复新密码', diff --git a/config/routes.rb b/config/routes.rb index 76c2f5a55..96c6caf7b 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -10,17 +10,11 @@ ############################################# devise_for :users, skip: :registrations, controllers: { omniauth_callbacks: 'users/omniauth_callbacks' } devise_scope :user do - devise_registration_actions = [:new, :create, :edit, :update] - if ENV['ZEALOT_DEMO_MODE'] == 'true' - devise_registration_actions.delete(:edit) - devise_registration_actions.delete(:update) - end - resource :registration, - only: devise_registration_actions, + only: [:new, :create, :edit, :update], path: 'users', path_names: { new: 'sign_up' }, - controller: 'devise/registrations', + controller: 'users/registrations', as: :user_registration do get :cancel end From 752c6d9566ebb93a92d2ec8b8874b987146f38e7 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Thu, 14 May 2020 06:37:23 +0000 Subject: [PATCH 0149/2165] chore(deps-dev): bump better_errors from 2.7.0 to 2.7.1 Bumps [better_errors](https://github.com/BetterErrors/better_errors) from 2.7.0 to 2.7.1. - [Release notes](https://github.com/BetterErrors/better_errors/releases) - [Commits](https://github.com/BetterErrors/better_errors/compare/v2.7.0...v2.7.1) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 5265b3e09..96015dace 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -78,7 +78,7 @@ GEM ast (2.4.0) awesome_print (1.8.0) bcrypt (3.1.13) - better_errors (2.7.0) + better_errors (2.7.1) coderay (>= 1.0.0) erubi (>= 1.0.0) rack (>= 0.9.0) From a9b53106b873f53dc0d22bb2a3f0ccb6a9f31a4c Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 14 May 2020 18:46:58 +0800 Subject: [PATCH 0150/2165] =?UTF-8?q?style:=20=E4=BC=98=E5=8C=96=20iOS=20?= =?UTF-8?q?=E6=89=8B=E6=9C=BA=E7=82=B9=E5=87=BB=E5=9C=A8=E7=BA=BF=E5=AE=89?= =?UTF-8?q?=E8=A3=85=E7=9A=84=E6=8F=90=E9=86=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/javascript/javascripts/releases/index.js | 16 +++++++++----- app/javascript/stylesheets/app.scss | 15 +++++++++++++ .../releases/body/_install_cert.html.slim | 18 ++++++--------- app/views/releases/body/_metadata.html.slim | 22 +++++++++++++------ 4 files changed, 48 insertions(+), 23 deletions(-) diff --git a/app/javascript/javascripts/releases/index.js b/app/javascript/javascripts/releases/index.js index 0ab229272..b80543d3f 100644 --- a/app/javascript/javascripts/releases/index.js +++ b/app/javascript/javascripts/releases/index.js @@ -50,11 +50,13 @@ $(document).on('turbolinks:load', function () { $('.navbar-fixed-top').css('z-index', 0); } - that.button('loading'); + var text = $(that).html(); + that.html(that.data('loading-text')); setTimeout(function () { - that.button('reset'); - }, 8000) + that.html(text); + $('.ios-install-issues').removeClass('d-none'); + }, 8000); var install_url = that.data('install-url'); @@ -66,5 +68,9 @@ $(document).on('turbolinks:load', function () { $(this).addClass('hide'); $('.wechat-tips').addClass('hide'); $('.navbar-fixed-top').css('z-index', 1030); - }) -}); + }); + + $('.ios-install-issues a').click(function () { + $('#install-issues').modal('toggle'); + }); +}); \ No newline at end of file diff --git a/app/javascript/stylesheets/app.scss b/app/javascript/stylesheets/app.scss index f9d9066ca..014db2dd9 100644 --- a/app/javascript/stylesheets/app.scss +++ b/app/javascript/stylesheets/app.scss @@ -1,3 +1,5 @@ +$ios-install-issue-color: rgb(245, 39, 90); + // index page .card-body { .direct-chat-messages { @@ -111,6 +113,19 @@ } } } + + .app-actions { + .ios-install-issues { + padding-top: 10px; + font-size: 0.3em; + color: $ios-install-issue-color; + + a { + color: $ios-install-issue-color; + padding-left: 3px; + } + } + } } // App 最近上传 diff --git a/app/views/releases/body/_install_cert.html.slim b/app/views/releases/body/_install_cert.html.slim index 027362b57..700952318 100644 --- a/app/views/releases/body/_install_cert.html.slim +++ b/app/views/releases/body/_install_cert.html.slim @@ -1,21 +1,17 @@ - if ios? - #install-tips.modal.fade role="dialog" tabindex="-1" style="display: none" aria-labelledby="install-tips-label" + #install-issues.modal.fade role="dialog" tabindex="-1" style="display: none" aria-labelledby="install-issues-label" .modal-dialog role="document" .modal-content .modal-header - h4#install-tips-label.modal-title - i.fas.fa-pulse.fa-spinner - span style="padding-left:5px" 正在安装,返回主屏幕在桌面查看 - button.close aria-label="Close" data-dismiss="modal" type="button" - span aria-hidden="true" × + h4.modal-title 安装中的错误及解决办法 .modal-body ol - li - | 安装 AdHoc 版本前请确认已经 - strong 卸载 - | 该 App 的线上版本,否则无法进行安装。这个是 Apple 的限制。 li | 在 iOS 9 以上版本,苹果对企业签名的应用做了运行限制。请安装后进 "设置" - "通用" - "描述文件", | 选择该应用对应的企业证书,点击文字 "信任企业开发者"。 + li + | 受苹果系统生态限制,安装 AdHoc 版本前请确认已经 + strong 卸载 + | 应用商店安装的应用,否则无法进行安装!! .modal-footer - button.btn.btn-primary data-dismiss="modal" 确定 \ No newline at end of file + button.btn.btn-default data-dismiss="modal" type="button" 明白了 \ No newline at end of file diff --git a/app/views/releases/body/_metadata.html.slim b/app/views/releases/body/_metadata.html.slim index 26610a90d..2a023f4f4 100644 --- a/app/views/releases/body/_metadata.html.slim +++ b/app/views/releases/body/_metadata.html.slim @@ -68,18 +68,26 @@ - if detect_device(@release.channel.device_type) == :ios == render 'releases/body/install_cert' - button.btn.btn-icon.bg-success.btn-lg id="download_it" data-install-url="#{@release.install_url}" data-release-version="#{@release.version}" data-slug="#{@release.channel.slug}" data-toggle="modal" data-loading-text=" 正在安装..." data-target="#install-tips" + button.btn.btn-icon.bg-success.btn-lg[ + id="download_it" + data-install-url="#{@release.install_url}" + data-loading-text=" 等待系统弹窗确认安装 ..."] i.fas.fa-paper-plane | 在线安装 + - else a.btn.btn-icon.bg-success.btn-social href="#{@release.download_url}" target="_blank" i.fas.fa-download | 本地下载 - span style=("margin:0 5px") - - if @release.ci_url.present? - button#build_it.btn.btn-icon.bg-success.btn-social data-app-id="#{@release.app.id}" data-job="#{@release.ci_url}" data-loading-text=(" 正在构建...") data-toggle="modal" onclick="build()" style=("margin-left: 10px") - i.fas.fa-wrench - | 构建新版 + / span style=("margin:0 5px") + / - if @release.ci_url.present? + / button#build_it.btn.btn-icon.bg-success.btn-social data-app-id="#{@release.app.id}" data-job="#{@release.ci_url}" data-loading-text=(" 正在构建...") data-toggle="modal" onclick="build()" style=("margin-left: 10px") + / i.fas.fa-wrench + / | 构建新版 + + div.ios-install-issues.d-none + i.fas.fa-asterisk + a href="javascript:void();" 无法安装或遇到 "未受信任的企业级开发者" 错误? - p#jekins_buld_alert.alert.alert-warning.d-none role="alert" style=("margin-top: 10px") + p#jekins_buld_alert.alert.alert-warning.d-none role="alert" style=("margin-top: 10px") \ No newline at end of file From 5dbc48b88a2d9ac36fcb972c88cf6fef552ba7b6 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 14 May 2020 21:10:15 +0800 Subject: [PATCH 0151/2165] =?UTF-8?q?refactor:=20API=20=E6=8A=A5=E9=94=99?= =?UTF-8?q?=E5=9C=A8=E5=BC=80=E5=8F=91=E7=8E=AF=E5=A2=83=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E5=A0=86=E6=A0=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/api/base_controller.rb | 19 ++++++++++++++++--- config/application.rb | 11 +++++------ 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/app/controllers/api/base_controller.rb b/app/controllers/api/base_controller.rb index 82be1e68b..87fd954f5 100644 --- a/app/controllers/api/base_controller.rb +++ b/app/controllers/api/base_controller.rb @@ -21,24 +21,28 @@ def validate_channel_key rescue_from ActionController::ParameterMissing, with: :render_missing_params_error def render_not_found_entity_response(exception) + logger_error exception render json: { error: exception.message }, status: :not_found end def render_missing_params_error(exception) + logger_error exception render json: { error: exception.message }, status: :unprocessable_entity end def render_unmatched_bundle_id_serror(exception) + logger_error exception render json: { - error: exception.message + error: exception.message, }, status: :unauthorized end def render_unauthorized_user_key(exception) + logger_error exception render json: { error: exception.message }, status: :unprocessable_entity @@ -52,9 +56,18 @@ def render_unprocessable_entity_response(exception) end def render_internal_server_error(exception) + logger_error exception render json: { - error: exception.message, - entry: Rails.env.development? ? exception.backtrace : nil + error: exception.message }, status: :internal_server_error end + + private + + def logger_error(exception) + return unless Rails.env.development? + + logger.error exception + logger.error exception.backtrace.join("\n") + end end diff --git a/config/application.rb b/config/application.rb index d00e3b93d..bec3c2717 100644 --- a/config/application.rb +++ b/config/application.rb @@ -2,8 +2,6 @@ require_relative 'boot' - - require 'rails' # Pick the frameworks you want: require 'active_model/railtie' @@ -46,10 +44,11 @@ class Application < Rails::Application # Log to STDOUT because Docker expects all processes to log here. You could # the framework and any gems in your application. # or a third party host such as Loggly, etc.. - logger = ActiveSupport::Logger.new(STDOUT) - logger.formatter = config.log_formatter - config.log_tags = %i[subdomain uuid] - config.logger = ActiveSupport::TaggedLogging.new(logger) + config.log_tags = [ :subdomain, :request_id ] + ActiveSupport::Logger.new(STDOUT).tap do |logger| + logger.formatter = config.log_formatter + config.logger = ActiveSupport::TaggedLogging.new(logger) + end # Action mailer settings. config.action_mailer.default_options = { From d42af26b4a029885a7d3c020e1fe55c1e3ce47a4 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 15 May 2020 16:27:46 +0800 Subject: [PATCH 0152/2165] =?UTF-8?q?refactor:=20=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E6=A3=80=E6=9F=A5=E4=B8=8D=E5=86=8D=20js=20=E4=B8=AD=E8=8E=B7?= =?UTF-8?q?=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/system_info_controller.rb | 23 +++++- .../javascripts/admin/system_info/index.js | 79 ------------------- app/javascript/stylesheets/system_info.scss | 9 +++ app/views/admin/system_info/show.html.slim | 9 ++- config/routes.rb | 4 + config/zealot.yml | 4 +- 6 files changed, 45 insertions(+), 83 deletions(-) delete mode 100644 app/javascript/javascripts/admin/system_info/index.js diff --git a/app/controllers/admin/system_info_controller.rb b/app/controllers/admin/system_info_controller.rb index f9cc4ba34..599ab2784 100644 --- a/app/controllers/admin/system_info_controller.rb +++ b/app/controllers/admin/system_info_controller.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true class Admin::SystemInfoController < ApplicationController - VERSION_URL = 'https://api.github.com/repos/getzealot/zealot/releases/latest' + VERSION_CHECK_URL = 'https://api.github.com/repos/getzealot/zealot/releases/latest' EXCLUDED_MOUNT_OPTIONS = [ 'nobrowse', @@ -64,6 +64,7 @@ def show set_memory set_disks set_env + get_version end private @@ -111,4 +112,24 @@ def set_disks end end end + + def get_version + version = Rails.cache.fetch('zealot_version_check', expires_in: 1.hours) do + HTTP.headers(accept: 'application/vnd.github.v3+json') + .get(VERSION_CHECK_URL) + .parse + end + + latest_version = version['tag_name'] + @version = { + update_available: update_available?(latest_version), + current_version: Zealot::Setting.version, + latest_version: latest_version, + release_link: version['html_url'], + } + end + + def update_available?(new_version) + Gem::Version.new(new_version) > Gem::Version.new(Zealot::Setting.version) + end end diff --git a/app/javascript/javascripts/admin/system_info/index.js b/app/javascript/javascripts/admin/system_info/index.js deleted file mode 100644 index 9354ee83b..000000000 --- a/app/javascript/javascripts/admin/system_info/index.js +++ /dev/null @@ -1,79 +0,0 @@ - -function compare_version(v1, v2) { - if (typeof v1 !== 'string') return false; - if (typeof v2 !== 'string') return false; - v1 = v1.split('.'); - v2 = v2.split('.'); - const k = Math.min(v1.length, v2.length); - for (let i = 0; i < k; ++ i) { - v1[i] = parseInt(v1[i], 10); - v2[i] = parseInt(v2[i], 10); - if (v1[i] > v2[i]) return 1; - if (v1[i] < v2[i]) return -1; - } - return v1.length == v2.length ? 0: (v1.length < v2.length ? -1 : 1); -} - -function set_cookie(name, value, days) { - var expires = ""; - if (days) { - var date = new Date(); - date.setTime(date.getTime() + (days*24*60*60*1000)); - expires = "; expires=" + date.toUTCString(); - } - document.cookie = name + "=" + (value || "") + expires + "; path=/"; -} - -function get_cookie(name) { - var nameEQ = name + "="; - var ca = document.cookie.split(';'); - for(var i=0;i < ca.length;i++) { - var c = ca[i]; - while (c.charAt(0)==' ') c = c.substring(1,c.length); - if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); - } - return null; -} - -function show_new_version() { - url = $('#zealot_latest_version_url').html(); - version = get_cookie('zealot_latest_version_full'); - - $('#latest_version').html('' + version + ''); -} - -function check_new_version() { - var current_version = $('#current_version').html(); - var stored_version = get_cookie('zealot_latest_version'); - if (stored_version == null) { - $.ajax({ - url: 'https://api.github.com/repos/getzealot/zealot/releases/latest?client_id=44389300f0e99215e109&client_secret=6e70de02dc2fe43a7737b2dff96e919226c0a26a', - headers: { - accept: 'application/vnd.github.v3+json', - } - }).done(function (response) { - latest_version = response['tag_name'].replace('v', ''); - console.info(latest_version); - - if (compare_version(latest_version, current_version) > 0) { - set_cookie('zealot_latest_version', latest_version, 1); - set_cookie('zealot_latest_version_full', response['name'], 1); - set_cookie('zealot_latest_version_url', response['html_url'], 1); - - show_new_version(); - } - }); - } else { - if (compare_version(stored_version, current_version) > 0) { - show_new_version(); - } - } -} - -$(document).on('turbolinks:load', function () { - $('#latest_version').ready(function () { - if (window.location.pathname == '/admin/system_info') { - check_new_version(); - } - }); -}); \ No newline at end of file diff --git a/app/javascript/stylesheets/system_info.scss b/app/javascript/stylesheets/system_info.scss index 5ef9fb706..e8e67da9a 100644 --- a/app/javascript/stylesheets/system_info.scss +++ b/app/javascript/stylesheets/system_info.scss @@ -9,10 +9,19 @@ dl.system-info { dd { margin-bottom: 20px; + pre { border: 0; background-color: #f7f8f9; color: #2f2936; + + a.new-version { + color: rgb(233, 120, 120); + + i { + padding-right: 5px; + } + } } } } \ No newline at end of file diff --git a/app/views/admin/system_info/show.html.slim b/app/views/admin/system_info/show.html.slim index ecca7a0c1..d62732202 100644 --- a/app/views/admin/system_info/show.html.slim +++ b/app/views/admin/system_info/show.html.slim @@ -6,14 +6,19 @@ .row .col-md-6 - .card + .card.system_info .card-header h3.card-title 服务器信息 .card-body dl.system-info dt Zealot 版本 dd - pre = Zealot::Setting.version + pre + - if @version[:update_available] + a.new-version.float-right href="#{@version[:release_link]}" target="_blank" + i.fas.fa-rainbow + | 发现新版本: #{@version[:latest_version]} + = @version[:current_version] dt Ruby 版本 dd pre = RUBY_DESCRIPTION diff --git a/config/routes.rb b/config/routes.rb index 96c6caf7b..a30693587 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -108,6 +108,10 @@ get 'projects/:project/build', to: 'build#create', as: 'project_build' get 'projects/:project/status/(:id)', to: 'status#show', as: 'project_status' end + + namespace :zealot do + resources :version, only: :index + end end ############################################# diff --git a/config/zealot.yml b/config/zealot.yml index 4a0d3a384..2be6ac1f6 100644 --- a/config/zealot.yml +++ b/config/zealot.yml @@ -1,5 +1,7 @@ default: &base - version: 4.0.0.beta4 + version: <%= ENV['VERSION'] || '4.0.0.beta3' %> + vcs_ref: <%= ENV['VCS_REF'] %> + build_date: <%= ENV['BUILD_DATE'] %> register_enabled: <%= ENV['ZEALOT_REGISTER_ENABLED'] || 'true' %> cron_jobs: clean_old_releases: From f9fec7196ae264cf8f4f4a7b172be29a2b1072b4 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Sat, 16 May 2020 14:59:23 +0800 Subject: [PATCH 0153/2165] =?UTF-8?q?refactor:=20=E5=BC=80=E5=8F=91?= =?UTF-8?q?=E7=8E=AF=E5=A2=83=E7=89=88=E6=9C=AC=E6=94=B9=E4=B8=BA=20develo?= =?UTF-8?q?pment=20=E4=B8=94=E6=B0=B8=E8=BF=9C=E4=BC=9A=E6=A3=80=E6=9F=A5?= =?UTF-8?q?=E6=96=B0=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/publish_nighty.yml | 6 +++--- Dockerfile | 8 +++++--- app/controllers/admin/system_info_controller.rb | 2 ++ config/initializers/sentry.rb | 13 ++++++++----- config/zealot.yml | 5 ++--- 5 files changed, 20 insertions(+), 14 deletions(-) diff --git a/.github/workflows/publish_nighty.yml b/.github/workflows/publish_nighty.yml index 6411bf672..498624b33 100644 --- a/.github/workflows/publish_nighty.yml +++ b/.github/workflows/publish_nighty.yml @@ -23,12 +23,12 @@ jobs: REPLACE_CHINA_MIRROR: false VCS_REF: ${{ github.sha }} BUILD_DATE: ${{ steps.date.outputs.date }} - VERSION: nightly + TAG: nightly with: - name: icyleafcn/zealot:${{ env.VERSION }} + name: icyleafcn/zealot:${{ env.TAG }} username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - buildargs: BUILD_DATE,VCS_REF,VERSION,REPLACE_CHINA_MIRROR + buildargs: BUILD_DATE,VCS_REF,TAG,REPLACE_CHINA_MIRROR - name: Docker Hub Description uses: peter-evans/dockerhub-description@v2.1.0 env: diff --git a/Dockerfile b/Dockerfile index 3d87b9536..9abdb0ed3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -56,8 +56,9 @@ FROM ruby:2.6-alpine ARG BUILD_DATE ARG VCS_REF -ARG VERSION +ARG TAG +ARG ZEALOT_VERSION="4.0.0.beta4" ARG REPLACE_CHINA_MIRROR="true" ARG ORIGINAL_REPO_URL="http://dl-cdn.alpinelinux.org" ARG MIRROR_REPO_URL="https://mirrors.tuna.tsinghua.edu.cn" @@ -68,7 +69,7 @@ ARG APP_ROOT=/app LABEL im.ews.zealot.build-date=$BUILD_DATE \ im.ews.zealot.vcs-ref=$VCS_REF \ - im.ews.zealot.version=$VERSION \ + im.ews.zealot.version="$ZEALOT_VERSION-$VERSION" \ im.ews.zealot.name="Zealot" \ im.ews.zealot.description="Over The Air Server for deployment of Android and iOS apps" \ im.ews.zealot.url="https://zealot.ews.im/" \ @@ -76,9 +77,10 @@ LABEL im.ews.zealot.build-date=$BUILD_DATE \ im.ews.zealot.maintaner="icyleaf " ENV TZ="Asia/Shanghai" \ + DOCKER_TAG="$TAG" \ BUNDLE_APP_CONFIG="$APP_ROOT/.bundle" \ - ZEALOT_VERSION="$VERSION" \ ZEALOT_VCS_REF="$VCS_REF" \ + ZEALOT_VERSION="$ZEALOT_VERSION" \ RAILS_ENV="production" # System dependencies diff --git a/app/controllers/admin/system_info_controller.rb b/app/controllers/admin/system_info_controller.rb index 599ab2784..49b0f89f9 100644 --- a/app/controllers/admin/system_info_controller.rb +++ b/app/controllers/admin/system_info_controller.rb @@ -130,6 +130,8 @@ def get_version end def update_available?(new_version) + return true if Rails.env.development? + Gem::Version.new(new_version) > Gem::Version.new(Zealot::Setting.version) end end diff --git a/config/initializers/sentry.rb b/config/initializers/sentry.rb index a7996f32f..241b029ef 100644 --- a/config/initializers/sentry.rb +++ b/config/initializers/sentry.rb @@ -15,13 +15,16 @@ config.sanitize_fields = Rails.application.config.filter_parameters.map(&:to_s) config.sanitize_fields << 'token' - version = ENV['ZEALOT_VERSION'] || Zealot::Setting.version - vcs_ref = ENV['ZEALOT_VCS_REF'] + version = Zealot::Setting.version + vcs_ref = Zealot::Setting.vcs_ref version = "#{version}-#{vcs_ref}" if vcs_ref.present? config.release = version - tags = {} - tags[:docker] = true if vcs_ref.present? - config.tags = tags + if vcs_ref.present? + config.tags = { + docker: true, + docker_tag: ENV['DOCKER_TAG'] + } + end end end diff --git a/config/zealot.yml b/config/zealot.yml index 2be6ac1f6..b3d436080 100644 --- a/config/zealot.yml +++ b/config/zealot.yml @@ -1,7 +1,6 @@ default: &base - version: <%= ENV['VERSION'] || '4.0.0.beta3' %> - vcs_ref: <%= ENV['VCS_REF'] %> - build_date: <%= ENV['BUILD_DATE'] %> + version: <%= ENV['ZEALOT_VERSION'] || 'development' %> + vcs_ref: <%= ENV['ZEALOT_VCS_REF'] %> register_enabled: <%= ENV['ZEALOT_REGISTER_ENABLED'] || 'true' %> cron_jobs: clean_old_releases: From 857493a27c0f2bcedc033452752f6f6ba91b0919 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Sat, 16 May 2020 17:29:33 +0800 Subject: [PATCH 0154/2165] =?UTF-8?q?chore:=20=E4=BF=AE=E5=A4=8D=20Docker?= =?UTF-8?q?=20=E5=AE=B9=E5=99=A8=E7=89=88=E6=9C=AC=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 9abdb0ed3..5071ee7b6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -69,7 +69,7 @@ ARG APP_ROOT=/app LABEL im.ews.zealot.build-date=$BUILD_DATE \ im.ews.zealot.vcs-ref=$VCS_REF \ - im.ews.zealot.version="$ZEALOT_VERSION-$VERSION" \ + im.ews.zealot.version="$ZEALOT_VERSION-$TAG" \ im.ews.zealot.name="Zealot" \ im.ews.zealot.description="Over The Air Server for deployment of Android and iOS apps" \ im.ews.zealot.url="https://zealot.ews.im/" \ @@ -100,8 +100,6 @@ WORKDIR $APP_ROOT COPY --from=builder $APP_ROOT $APP_ROOT -ENV ZEALOT_VERSION="4.0.0" - EXPOSE 3000 ENTRYPOINT [ "./docker-endpoint.sh" ] From a37359c6fefe905856b3c330a55e60d91cd13494 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 18 May 2020 15:15:18 +0800 Subject: [PATCH 0155/2165] =?UTF-8?q?refactor:=20=E5=AE=89=E8=A3=85?= =?UTF-8?q?=E5=92=8C=E4=B8=8B=E8=BD=BD=20app=20=E8=B7=AF=E5=BE=84=E5=86=85?= =?UTF-8?q?=E9=83=A8=E5=8F=98=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../releases_controller.rb} | 15 ++++++----- .../install_controller.rb} | 8 +++--- app/models/release.rb | 7 ++---- .../install}/show.html.erb | 0 config/routes.rb | 25 ++++++++++++++++--- 5 files changed, 36 insertions(+), 19 deletions(-) rename app/controllers/{api/apps/download_controller.rb => download/releases_controller.rb} (69%) rename app/controllers/{api/apps/install_url_controller.rb => releases/install_controller.rb} (51%) rename app/views/{api/apps/install_url => releases/install}/show.html.erb (100%) diff --git a/app/controllers/api/apps/download_controller.rb b/app/controllers/download/releases_controller.rb similarity index 69% rename from app/controllers/api/apps/download_controller.rb rename to app/controllers/download/releases_controller.rb index b25071731..575042b6c 100644 --- a/app/controllers/api/apps/download_controller.rb +++ b/app/controllers/download/releases_controller.rb @@ -1,11 +1,8 @@ -# frozen_string_literal: true +class Download::ReleasesController < ApplicationController + before_action :set_release -class Api::Apps::DownloadController < Api::BaseController - # GET /api/apps/download def show - @release = Release.version_by_channel(params[:slug], params[:version]) - - return render_not_found unless @release && File.exist?(@release.file.path) + return render_not_found unless @release && File.exist?(@release.file.path.to_s) # 触发 web_hook @release.channel.perform_web_hook('download_events') @@ -18,7 +15,13 @@ def show private + def set_release + @release = Release.find(params[:id]) + end + def render_not_found render json: { error: '没有找到应用安装文件' }, status: :not_found end end + + diff --git a/app/controllers/api/apps/install_url_controller.rb b/app/controllers/releases/install_controller.rb similarity index 51% rename from app/controllers/api/apps/install_url_controller.rb rename to app/controllers/releases/install_controller.rb index df6627da9..6d598edce 100644 --- a/app/controllers/api/apps/install_url_controller.rb +++ b/app/controllers/releases/install_controller.rb @@ -1,10 +1,9 @@ # frozen_string_literal: true -# 依赖 view 只能继承 ApplicationController -class Api::Apps::InstallUrlController < ApplicationController - # GET /api/apps/install +class Releases::InstallController < ApplicationController def show - @release = Release.version_by_channel(params[:slug], params[:version]) + @release = Release.version_by_channel(params[:channel_id], params[:id]) + if @release render content_type: 'text/xml', layout: false else @@ -12,3 +11,4 @@ def show end end end + diff --git a/app/models/release.rb b/app/models/release.rb index 2165b85c5..457ef8144 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -102,16 +102,13 @@ def changelog_list(use_default_changelog = true) end def download_url - api_apps_download_url(channel.slug, version) + download_release_url(id) end def install_url return download_url if channel.device_type.casecmp('android').zero? - download_url = api_apps_install_url( - channel.slug, version, - protocol: Rails.env.development? ? 'http' : 'https' - ) + download_url = channel_release_install_url(channel.slug, id) "itms-services://?action=download-manifest&url=#{download_url}" end diff --git a/app/views/api/apps/install_url/show.html.erb b/app/views/releases/install/show.html.erb similarity index 100% rename from app/views/api/apps/install_url/show.html.erb rename to app/views/releases/install/show.html.erb diff --git a/config/routes.rb b/config/routes.rb index a30693587..20750d976 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true Rails.application.routes.draw do - mount LetterOpenerWeb::Engine, at: 'letter_opener' if Rails.env.development? - root to: 'dashboards#index' ############################################# @@ -38,6 +36,10 @@ end resources :releases, except: :index, path_names: { new: 'upload' } do + scope module: :releases do + get :install, to: 'install#show' + end + scope module: :releases do get :qrcode, to: 'qrcode#show' end @@ -62,6 +64,17 @@ ############################################# resources :teardowns, only: %i[show new create], path_names: { new: 'upload' } + ############################################# + # Install & Download + ############################################# + namespace :download do + resources :releases, only: :show + resources :debug_files, only: :show + end + + # get ':slug(/:version)/install', to: 'install_url#show', as: 'install' + # get ':slug(/:version)/download', to: 'download#show', as: 'download' + ############################################# # Admin ############################################# @@ -79,6 +92,11 @@ end end + ############################################# + # Development Only + ############################################# + mount LetterOpenerWeb::Engine, at: 'letter_opener' if Rails.env.development? + ############################################# # API v1 ############################################# @@ -90,8 +108,7 @@ get 'version_exist', to: 'version_exist#show' get 'versions', to: 'versions#index' get 'versions/(:release_version)', to: 'versions#show' - get ':slug(/:version)/install', to: 'install_url#show', as: 'install' - get ':slug(/:version)/download', to: 'download#show', as: 'download' + get ':id', action: :show patch ':id', action: :update delete ':id', action: :destroy From 1143ee6be6c2b68fef5b9b744019b8eab25a9926 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 18 May 2020 15:20:06 +0800 Subject: [PATCH 0156/2165] =?UTF-8?q?style:=20=E8=B0=83=E6=95=B4=E6=97=A0?= =?UTF-8?q?=E6=B3=95=E5=AE=89=E8=A3=85=E5=92=8C=E9=81=87=E5=88=B0=E5=AE=89?= =?UTF-8?q?=E8=A3=85=E9=94=99=E8=AF=AF=E7=9A=84=E6=96=87=E5=AD=97=E5=A4=A7?= =?UTF-8?q?=E5=B0=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/javascript/stylesheets/app.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/javascript/stylesheets/app.scss b/app/javascript/stylesheets/app.scss index 014db2dd9..64cfc8895 100644 --- a/app/javascript/stylesheets/app.scss +++ b/app/javascript/stylesheets/app.scss @@ -117,7 +117,7 @@ $ios-install-issue-color: rgb(245, 39, 90); .app-actions { .ios-install-issues { padding-top: 10px; - font-size: 0.3em; + font-size: 0.8em; color: $ios-install-issue-color; a { From a70c83f16eff810936c898b50a2f28095f9719c7 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 18 May 2020 15:32:53 +0800 Subject: [PATCH 0157/2165] =?UTF-8?q?refactor:=20debug=5Ffile=20=E4=B8=8B?= =?UTF-8?q?=E8=BD=BD=E5=9C=B0=E5=9D=80=E4=B9=9F=E8=BD=AC=E7=A7=BB=E5=88=B0?= =?UTF-8?q?=E7=BB=9F=E4=B8=80=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/debug_files/download_controller.rb | 2 +- .../download/debug_files_controller.rb | 24 +++++++++++++++++++ app/jobs/app_web_hook_job.rb | 21 +--------------- app/models/debug_file.rb | 10 ++++++++ app/models/release.rb | 2 +- app/serializers/api/debug_file_serializer.rb | 4 ---- app/views/debug_files/_debug_file.html.slim | 2 +- config/routes.rb | 2 +- 8 files changed, 39 insertions(+), 28 deletions(-) create mode 100644 app/controllers/download/debug_files_controller.rb diff --git a/app/controllers/api/debug_files/download_controller.rb b/app/controllers/api/debug_files/download_controller.rb index f45ee66eb..c893c2597 100644 --- a/app/controllers/api/debug_files/download_controller.rb +++ b/app/controllers/api/debug_files/download_controller.rb @@ -20,7 +20,7 @@ def show return render_not_found unless @debug_file && File.exist?(@debug_file.file.path) - redirect_to @debug_file.file.url, status: :found + redirect_to @debug_file.file_url, status: :found end private diff --git a/app/controllers/download/debug_files_controller.rb b/app/controllers/download/debug_files_controller.rb new file mode 100644 index 000000000..8f3057491 --- /dev/null +++ b/app/controllers/download/debug_files_controller.rb @@ -0,0 +1,24 @@ +# frozen_string_literal: true + +class Download::DebugFilesController < ApplicationController + before_action :set_debug_file + + def show + return render_not_found unless @debug_file && File.exist?(@debug_file.file.path.to_s) + + headers['Content-Length'] = @debug_file.file.size + send_file @debug_file.file.path, + filename: @debug_file.download_filename, + disposition: 'attachment' + end + + private + + def render_not_found + render json: { error: '没有找到调试文件' }, status: :not_found + end + + def set_debug_file + @debug_file = DebugFile.find(params[:id]) + end +end diff --git a/app/jobs/app_web_hook_job.rb b/app/jobs/app_web_hook_job.rb index 6ccd9a2a2..6a0838b2a 100644 --- a/app/jobs/app_web_hook_job.rb +++ b/app/jobs/app_web_hook_job.rb @@ -50,7 +50,7 @@ def build_body bundle_id: @release.bundle_id, changelog: @release.changelog, file_size: @release.file.size, - app_url: @release.release_url, + release_url: @release.release_url, install_url: @release.install_url, icon_url: @release.icon_url(:medium), qrcode_url: @release.qrcode_url, @@ -69,25 +69,6 @@ def title end end - def app_url - url_for( - host: Rails.configuration.x.url_options[:host], - controller: 'apps', - action: 'show', - slug: @app.slug - ) - end - - def release_url - url_for( - host: Rails.configuration.x.url_options[:host], - controller: 'apps', - action: 'show', - slug: @app.slug, - version: @release.version - ) - end - def description [ "平台:#{@app.device_type}", diff --git a/app/models/debug_file.rb b/app/models/debug_file.rb index 5ef20dcb0..81dd8d0ec 100644 --- a/app/models/debug_file.rb +++ b/app/models/debug_file.rb @@ -1,6 +1,8 @@ # frozen_string_literal: true class DebugFile < ApplicationRecord + include Rails.application.routes.url_helpers + mount_uploader :file, DebugFileUploader belongs_to :app @@ -14,6 +16,14 @@ class DebugFile < ApplicationRecord before_validation :generate_checksum + def download_filename + "#{app.name}_#{device_type}_#{release_version}_#{build_version}_#{file.file.filename}" + end + + def file_url + download_debug_file_url(id) + end + private def generate_checksum diff --git a/app/models/release.rb b/app/models/release.rb index 457ef8144..f65d5da10 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -113,7 +113,7 @@ def install_url end def release_url - channel_release_url channel, self + channel_release_url(channel, self) end def qrcode_url(size = :thumb) diff --git a/app/serializers/api/debug_file_serializer.rb b/app/serializers/api/debug_file_serializer.rb index 8612dedef..9df6c3864 100644 --- a/app/serializers/api/debug_file_serializer.rb +++ b/app/serializers/api/debug_file_serializer.rb @@ -8,8 +8,4 @@ class Api::DebugFileSerializer < ApplicationSerializer def app_name object.app.name end - - def file_url - object.file.url - end end diff --git a/app/views/debug_files/_debug_file.html.slim b/app/views/debug_files/_debug_file.html.slim index 23869667e..dbf3ca531 100644 --- a/app/views/debug_files/_debug_file.html.slim +++ b/app/views/debug_files/_debug_file.html.slim @@ -24,7 +24,7 @@ ruby: = debug_file.build_version .debug-file-section-size - a.btn.btn-icon.btn-sm.btn-success.btn-flat href="#{debug_file.file.url}" + a.btn.btn-icon.btn-sm.btn-success.btn-flat href="#{debug_file.file_url}" i.fas.fa-download | 下载 ( = number_to_human_size(debug_file.file.size) diff --git a/config/routes.rb b/config/routes.rb index 20750d976..dd5b175ac 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -65,7 +65,7 @@ resources :teardowns, only: %i[show new create], path_names: { new: 'upload' } ############################################# - # Install & Download + # Download ############################################# namespace :download do resources :releases, only: :show From fde5e2fd73baaa0935476c0128ea60809d0da271 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 18 May 2020 15:50:48 +0800 Subject: [PATCH 0158/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E8=B0=83=E8=AF=95=E6=96=87=E4=BB=B6=E7=A1=AE=E8=AE=A4?= =?UTF-8?q?=E5=BC=B9=E7=AA=97=E7=9A=84=E5=86=85=E5=AE=B9=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/debug_files/_debug_file.html.slim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/debug_files/_debug_file.html.slim b/app/views/debug_files/_debug_file.html.slim index 23869667e..9b17c1ffb 100644 --- a/app/views/debug_files/_debug_file.html.slim +++ b/app/views/debug_files/_debug_file.html.slim @@ -7,7 +7,7 @@ ruby: - debug_files.each do |debug_file| tr td - .debug-file-section id="debug-file-info-#{app.id}-#{debug_file.id}" data-app-name="#{app.name}" + .debug-file-section id="debug-file-info-#{debug_file.id}" data-app-name="#{app.name}" .debug-file-section-header .debug-file-toggle data-id="#{debug_file.id}" h3.debug-file-section-title From 5b6cc2fecc6a356f3e882fd726bea7789f2c26cf Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 18 May 2020 16:29:52 +0800 Subject: [PATCH 0159/2165] =?UTF-8?q?feat:=20=E6=96=B0=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E4=B8=8B=E8=BD=BD=E8=B0=83=E8=AF=95=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/debug_files/_debug_file.html.slim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/debug_files/_debug_file.html.slim b/app/views/debug_files/_debug_file.html.slim index daae26cfa..f65fd6d48 100644 --- a/app/views/debug_files/_debug_file.html.slim +++ b/app/views/debug_files/_debug_file.html.slim @@ -24,7 +24,7 @@ ruby: = debug_file.build_version .debug-file-section-size - a.btn.btn-icon.btn-sm.btn-success.btn-flat href="#{debug_file.file_url}" + a.btn.btn-icon.btn-sm.btn-success.btn-flat href="#{debug_file.file_url}" target="_blank" i.fas.fa-download | 下载 ( = number_to_human_size(debug_file.file.size) From 8f785d930c522cc571d16f41d752cd1442596cfd Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 18 May 2020 16:42:21 +0800 Subject: [PATCH 0160/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E4=B8=8B?= =?UTF-8?q?=E8=BD=BD=E4=B8=8D=E5=AD=98=E5=9C=A8=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../download/debug_files_controller.rb | 12 ++++++++---- app/controllers/download/releases_controller.rb | 15 ++++++++++----- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/app/controllers/download/debug_files_controller.rb b/app/controllers/download/debug_files_controller.rb index 8f3057491..c42bccf1b 100644 --- a/app/controllers/download/debug_files_controller.rb +++ b/app/controllers/download/debug_files_controller.rb @@ -3,8 +3,10 @@ class Download::DebugFilesController < ApplicationController before_action :set_debug_file + rescue_from ActiveRecord::RecordNotFound, with: :render_not_found_entity_response + def show - return render_not_found unless @debug_file && File.exist?(@debug_file.file.path.to_s) + return render_not_found_entity_response unless File.exist?(@debug_file.file.path.to_s) headers['Content-Length'] = @debug_file.file.size send_file @debug_file.file.path, @@ -14,11 +16,13 @@ def show private - def render_not_found - render json: { error: '没有找到调试文件' }, status: :not_found + def render_not_found_entity_response + render json: { + error: '没有找到调试文件' + }, status: :not_found end def set_debug_file - @debug_file = DebugFile.find(params[:id]) + authorize @debug_file = DebugFile.find(params[:id]) end end diff --git a/app/controllers/download/releases_controller.rb b/app/controllers/download/releases_controller.rb index 575042b6c..53b65671e 100644 --- a/app/controllers/download/releases_controller.rb +++ b/app/controllers/download/releases_controller.rb @@ -1,8 +1,10 @@ class Download::ReleasesController < ApplicationController before_action :set_release + rescue_from ActiveRecord::RecordNotFound, with: :render_not_found_entity_response + def show - return render_not_found unless @release && File.exist?(@release.file.path.to_s) + return render_not_found_entity_response unless File.exist?(@release.file.path.to_s) # 触发 web_hook @release.channel.perform_web_hook('download_events') @@ -15,12 +17,15 @@ def show private - def set_release - @release = Release.find(params[:id]) + def render_not_found_entity_response + render json: { + error: '没有找到应用文件' + }, status: :not_found end - def render_not_found - render json: { error: '没有找到应用安装文件' }, status: :not_found + + def set_release + @release = Release.find(params[:id]) end end From ae449b227b710b05daf9768b6b61f2388ad4a33f Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 18 May 2020 20:05:30 +0800 Subject: [PATCH 0161/2165] =?UTF-8?q?style:=20=E6=89=8B=E6=9C=BA=E5=B1=95?= =?UTF-8?q?=E7=A4=BA=E6=B5=8B=E8=AF=95=20udid=20=E8=B6=85=E9=95=BF?= =?UTF-8?q?=E4=BC=9A=E6=8D=A2=E8=A1=8C=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/javascript/stylesheets/app.scss | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/app/javascript/stylesheets/app.scss b/app/javascript/stylesheets/app.scss index 64cfc8895..8993d55fc 100644 --- a/app/javascript/stylesheets/app.scss +++ b/app/javascript/stylesheets/app.scss @@ -128,6 +128,14 @@ $ios-install-issue-color: rgb(245, 39, 90); } } +.devices { + .table { + td { + word-break: break-all; + } + } +} + // App 最近上传 .release-changelogs-toggle { From 40b0e5378f9f7a354d69b7e9180a10db0f944b08 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 18 May 2020 20:15:50 +0800 Subject: [PATCH 0162/2165] =?UTF-8?q?style:=20=E4=BC=98=E5=8C=96=E6=89=8B?= =?UTF-8?q?=E6=9C=BA=E5=B1=95=E7=A4=BA=E6=9C=80=E8=BF=91=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=E7=9A=84=E6=98=BE=E7=A4=BA=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/javascript/stylesheets/dashboard.scss | 14 ++++++++++++++ app/views/releases/body/_activity.html.slim | 2 +- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/app/javascript/stylesheets/dashboard.scss b/app/javascript/stylesheets/dashboard.scss index 63fc0c64e..7eaae2d07 100644 --- a/app/javascript/stylesheets/dashboard.scss +++ b/app/javascript/stylesheets/dashboard.scss @@ -1,6 +1,20 @@ +.timeline::before { + left: 13px; +} + .timeline { div { + margin-right: 0; + + .fas, + .fa, + .fab, + .far { + left: 0; + } + .timeline-item { + margin-left: 40px; background-color: #f8f8f8; } diff --git a/app/views/releases/body/_activity.html.slim b/app/views/releases/body/_activity.html.slim index 388ddd341..4a4c48d25 100644 --- a/app/views/releases/body/_activity.html.slim +++ b/app/views/releases/body/_activity.html.slim @@ -14,7 +14,7 @@ ruby: .timeline - releases.each do |release| div - i.fa-circle class="#{@release == release ? 'fas' : ' far'}" + i.fa-circle class="#{@release == release ? 'fas' : 'far'}" .timeline-item span.time i.fas.fa-clock From ceed37547f3ef31265f2d7f7790af8a70ebe2859 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 19 May 2020 06:34:35 +0000 Subject: [PATCH 0163/2165] chore(deps): bump puma from 4.3.3 to 4.3.4 Bumps [puma](https://github.com/puma/puma) from 4.3.3 to 4.3.4. - [Release notes](https://github.com/puma/puma/releases) - [Changelog](https://github.com/puma/puma/blob/master/History.md) - [Commits](https://github.com/puma/puma/compare/v4.3.3...v4.3.4) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 7ac74bc22..a8b9eefd7 100644 --- a/Gemfile +++ b/Gemfile @@ -6,7 +6,7 @@ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" } ruby '>= 2.3.0', '< 2.8.0' -gem 'puma', '~> 4.3.3' +gem 'puma', '~> 4.3.4' gem 'rails', '~> 6.0.3' gem 'rails-i18n', '~> 6.0.0' gem 'rake', '~> 13.0.1' diff --git a/Gemfile.lock b/Gemfile.lock index 96015dace..d896eef52 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -286,7 +286,7 @@ GEM interception (>= 0.5) pry (>= 0.12.0) public_suffix (4.0.3) - puma (4.3.3) + puma (4.3.4) nio4r (~> 2.0) pundit (2.1.0) activesupport (>= 3.0.0) @@ -477,7 +477,7 @@ DEPENDENCIES pry-byebug pry-rails pry-rescue - puma (~> 4.3.3) + puma (~> 4.3.4) pundit (~> 2.1.0) rack-cors (~> 1.1.1) rails (~> 6.0.3) From c0a011ef2ff86816d0a748d51d5672892ca12edb Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 19 May 2020 06:33:54 +0000 Subject: [PATCH 0164/2165] chore(deps): bump rails from 6.0.3 to 6.0.3.1 Bumps [rails](https://github.com/rails/rails) from 6.0.3 to 6.0.3.1. - [Release notes](https://github.com/rails/rails/releases) - [Commits](https://github.com/rails/rails/compare/v6.0.3...v6.0.3.1) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 102 +++++++++++++++++++++++++-------------------------- 1 file changed, 51 insertions(+), 51 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index d896eef52..7d2aa0709 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -2,38 +2,38 @@ GEM remote: https://rubygems.org/ specs: CFPropertyList (3.0.2) - actioncable (6.0.3) - actionpack (= 6.0.3) + actioncable (6.0.3.1) + actionpack (= 6.0.3.1) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (6.0.3) - actionpack (= 6.0.3) - activejob (= 6.0.3) - activerecord (= 6.0.3) - activestorage (= 6.0.3) - activesupport (= 6.0.3) + actionmailbox (6.0.3.1) + actionpack (= 6.0.3.1) + activejob (= 6.0.3.1) + activerecord (= 6.0.3.1) + activestorage (= 6.0.3.1) + activesupport (= 6.0.3.1) mail (>= 2.7.1) - actionmailer (6.0.3) - actionpack (= 6.0.3) - actionview (= 6.0.3) - activejob (= 6.0.3) + actionmailer (6.0.3.1) + actionpack (= 6.0.3.1) + actionview (= 6.0.3.1) + activejob (= 6.0.3.1) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (6.0.3) - actionview (= 6.0.3) - activesupport (= 6.0.3) + actionpack (6.0.3.1) + actionview (= 6.0.3.1) + activesupport (= 6.0.3.1) rack (~> 2.0, >= 2.0.8) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (6.0.3) - actionpack (= 6.0.3) - activerecord (= 6.0.3) - activestorage (= 6.0.3) - activesupport (= 6.0.3) + actiontext (6.0.3.1) + actionpack (= 6.0.3.1) + activerecord (= 6.0.3.1) + activestorage (= 6.0.3.1) + activesupport (= 6.0.3.1) nokogiri (>= 1.8.5) - actionview (6.0.3) - activesupport (= 6.0.3) + actionview (6.0.3.1) + activesupport (= 6.0.3.1) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) @@ -43,23 +43,23 @@ GEM activemodel (>= 4.1, < 6.1) case_transform (>= 0.2) jsonapi-renderer (>= 0.1.1.beta1, < 0.3) - activejob (6.0.3) - activesupport (= 6.0.3) + activejob (6.0.3.1) + activesupport (= 6.0.3.1) globalid (>= 0.3.6) activejob-status (0.1.6) activejob (>= 4.2) activesupport (>= 4.2) - activemodel (6.0.3) - activesupport (= 6.0.3) - activerecord (6.0.3) - activemodel (= 6.0.3) - activesupport (= 6.0.3) - activestorage (6.0.3) - actionpack (= 6.0.3) - activejob (= 6.0.3) - activerecord (= 6.0.3) + activemodel (6.0.3.1) + activesupport (= 6.0.3.1) + activerecord (6.0.3.1) + activemodel (= 6.0.3.1) + activesupport (= 6.0.3.1) + activestorage (6.0.3.1) + actionpack (= 6.0.3.1) + activejob (= 6.0.3.1) + activerecord (= 6.0.3.1) marcel (~> 0.3.1) - activesupport (6.0.3) + activesupport (6.0.3.1) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 0.7, < 2) minitest (~> 5.1) @@ -238,7 +238,7 @@ GEM mini_magick (4.10.1) mini_mime (1.0.2) mini_portile2 (2.4.0) - minitest (5.14.0) + minitest (5.14.1) mixlib-shellout (3.0.7) msgpack (1.3.3) multi_json (1.14.1) @@ -301,20 +301,20 @@ GEM rack rack-test (1.1.0) rack (>= 1.0, < 3) - rails (6.0.3) - actioncable (= 6.0.3) - actionmailbox (= 6.0.3) - actionmailer (= 6.0.3) - actionpack (= 6.0.3) - actiontext (= 6.0.3) - actionview (= 6.0.3) - activejob (= 6.0.3) - activemodel (= 6.0.3) - activerecord (= 6.0.3) - activestorage (= 6.0.3) - activesupport (= 6.0.3) + rails (6.0.3.1) + actioncable (= 6.0.3.1) + actionmailbox (= 6.0.3.1) + actionmailer (= 6.0.3.1) + actionpack (= 6.0.3.1) + actiontext (= 6.0.3.1) + actionview (= 6.0.3.1) + activejob (= 6.0.3.1) + activemodel (= 6.0.3.1) + activerecord (= 6.0.3.1) + activestorage (= 6.0.3.1) + activesupport (= 6.0.3.1) bundler (>= 1.3.0) - railties (= 6.0.3) + railties (= 6.0.3.1) sprockets-rails (>= 2.0.0) rails-dom-testing (2.0.3) activesupport (>= 4.2.0) @@ -324,9 +324,9 @@ GEM rails-i18n (6.0.0) i18n (>= 0.7, < 2) railties (>= 6.0.0, < 7) - railties (6.0.3) - actionpack (= 6.0.3) - activesupport (= 6.0.3) + railties (6.0.3.1) + actionpack (= 6.0.3.1) + activesupport (= 6.0.3.1) method_source rake (>= 0.8.7) thor (>= 0.20.3, < 2.0) From 335e4845085bf9c8a1ca11c751d5bc22923cfaf7 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 20 May 2020 14:32:48 +0800 Subject: [PATCH 0165/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=88=87?= =?UTF-8?q?=E6=8D=A2=E4=B8=BA=20download=20=E8=B7=AF=E5=BE=84=E5=90=8E?= =?UTF-8?q?=E4=B8=8B=E8=BD=BD=E7=9A=84=E7=89=88=E6=9C=AC=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/release.rb | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/app/models/release.rb b/app/models/release.rb index f65d5da10..97fd8a3bf 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -25,13 +25,9 @@ class Release < ApplicationRecord paginates_per 20 max_paginates_per 50 - def self.version_by_channel(slug, version = nil) - channel = Channel.friendly.find slug - if version - channel.releases.find_by version: version - else - channel.releases.latest - end + def self.version_by_channel(slug, id = nil) + channel = Channel.friendly.find(slug) + id.present? ? channel.releases.find(id) : channel.releases.latest end # 上传pp From f785d1a814b312426bfc93e705da42544d172e10 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 20 May 2020 14:33:28 +0800 Subject: [PATCH 0166/2165] =?UTF-8?q?feat:=20=E7=89=88=E6=9C=AC=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E6=94=AF=E6=8C=81=E6=8C=89=E7=85=A7=E5=88=86=E6=94=AF?= =?UTF-8?q?=E5=92=8C=E6=89=93=E5=8C=85=E7=B1=BB=E5=9E=8B=E8=BF=87=E6=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../channels/branches_controller.rb | 27 ++++++++++++++++++ .../channels/release_types_controller.rb | 28 +++++++++++++++++++ .../channels/versions_controller.rb | 7 ++++- .../channels/{versions => filters}/_list.slim | 8 +++--- .../channels/{versions => filters}/index.slim | 5 ++-- app/views/channels/versions/show.html.slim | 19 ------------- config/routes.rb | 2 ++ 7 files changed, 69 insertions(+), 27 deletions(-) create mode 100644 app/controllers/channels/branches_controller.rb create mode 100644 app/controllers/channels/release_types_controller.rb rename app/views/channels/{versions => filters}/_list.slim (75%) rename app/views/channels/{versions => filters}/index.slim (79%) delete mode 100644 app/views/channels/versions/show.html.slim diff --git a/app/controllers/channels/branches_controller.rb b/app/controllers/channels/branches_controller.rb new file mode 100644 index 000000000..440ed1c01 --- /dev/null +++ b/app/controllers/channels/branches_controller.rb @@ -0,0 +1,27 @@ +# frozen_string_literal: true + +class Channels::BranchesController < ApplicationController + before_action :set_channel + before_action :set_releases + + def index + @title = @channel.app_name + @subtitle = "#{@branch} 分支版本列表" + render 'channels/filters/index' + end + + private + + def set_releases + @branch = params[:name] + @releases = @channel.releases + .where(branch: @branch) + .order(id: :desc) + .page(params.fetch(:page, 1)) + .per(params.fetch(:per_page, 10)) + end + + def set_channel + @channel = Channel.friendly.find params[:channel_id] + end +end diff --git a/app/controllers/channels/release_types_controller.rb b/app/controllers/channels/release_types_controller.rb new file mode 100644 index 000000000..94da49dbb --- /dev/null +++ b/app/controllers/channels/release_types_controller.rb @@ -0,0 +1,28 @@ +# frozen_string_literal: true + +class Channels::ReleaseTypesController < ApplicationController + before_action :set_channel + before_action :set_releases + + def index + @title = @channel.app_name + @subtitle = "#{@type} 类型版本列表" + + render 'channels/filters/index' + end + + private + + def set_releases + @type = params[:name] + @releases = @channel.releases + .where(release_type: @type) + .order(id: :desc) + .page(params.fetch(:page, 1)) + .per(params.fetch(:per_page, 10)) + end + + def set_channel + @channel = Channel.friendly.find params[:channel_id] + end +end diff --git a/app/controllers/channels/versions_controller.rb b/app/controllers/channels/versions_controller.rb index 51a83a74a..f0f00e25c 100644 --- a/app/controllers/channels/versions_controller.rb +++ b/app/controllers/channels/versions_controller.rb @@ -5,20 +5,25 @@ class Channels::VersionsController < ApplicationController def index @title = @channel.app_name + @subtitle = '上传版本列表' @releases = @channel.releases .order(id: :desc) .page(params.fetch(:page, 1)) .per(params.fetch(:per_page, 10)) + + render 'channels/filters/index' end def show @version = params[:id] @title = @channel.app_name - + @subtitle = "#{@version} 上传版本列表" @back_url = URI(request.referer || '').path @releases = @channel.releases .where(release_version: @version) .order(id: :desc) + + render 'channels/filters/index' end private diff --git a/app/views/channels/versions/_list.slim b/app/views/channels/filters/_list.slim similarity index 75% rename from app/views/channels/versions/_list.slim rename to app/views/channels/filters/_list.slim index ba61b44c2..0128b7697 100644 --- a/app/views/channels/versions/_list.slim +++ b/app/views/channels/filters/_list.slim @@ -13,15 +13,15 @@ table.table.table-striped.table-hover - @releases.each_with_index do |release, index| tr td - = index + 1 + = link_to index + 1, channel_release_path(release.channel, release) td = link_to release.release_version, channel_version_path(release.channel, release.release_version) td - = link_to release.build_version, channel_release_path(release.channel, release) + = release.build_version td - = release.release_type + = link_to release.release_type, channel_release_types_path(release.channel, name: release.release_type) td - = release.branch + = link_to release.branch, channel_branches_path(release.channel, name: release.branch) td = git_commit_url(release.channel.git_url, release.git_commit) td diff --git a/app/views/channels/versions/index.slim b/app/views/channels/filters/index.slim similarity index 79% rename from app/views/channels/versions/index.slim rename to app/views/channels/filters/index.slim index 45a9b48d2..17336f1d8 100644 --- a/app/views/channels/versions/index.slim +++ b/app/views/channels/filters/index.slim @@ -8,11 +8,10 @@ .col-md-12 .card .card-header - h3.card-title - | 上传版本列表 + h3.card-title = @subtitle .card-tools a href="#{channel_path(@channel)}" i.far.fa-list-alt | 返回上级页面 .card-body.table-responsive.p-0 - == render 'list' + == render 'channels/filters/list' diff --git a/app/views/channels/versions/show.html.slim b/app/views/channels/versions/show.html.slim deleted file mode 100644 index 397bd7760..000000000 --- a/app/views/channels/versions/show.html.slim +++ /dev/null @@ -1,19 +0,0 @@ -- content_for :title do - = @title - -- content_for :section_title do - = @title - -.row - .col-md-12 - .card - .card-header - h3.card-title - = @version - | 开发版本列表 - .card-tools - a href="#{@back_url}" - i.far.fa-list-alt - | 返回上级页面 - .card-body.table-responsive.p-0 - == render 'list' \ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb index dd5b175ac..d562629d3 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -51,6 +51,8 @@ scope module: :channels do resources :versions, only: %i[index show], id: /(.+)+/ + resources :branches, only: %i[index] + resources :release_types, only: %i[index] end end From de535828d3aa87fb056c90497eec99f3f5974f74 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 20 May 2020 15:35:42 +0800 Subject: [PATCH 0167/2165] =?UTF-8?q?style:=20=E7=89=88=E6=9C=AC=E8=AF=A6?= =?UTF-8?q?=E6=83=85=E5=A2=9E=E5=8A=A0=E6=89=93=E5=8C=85=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E5=92=8C=E5=88=86=E6=94=AF=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/apps_helper.rb | 14 ++++++++++++++ app/views/channels/filters/_list.slim | 4 ++-- app/views/releases/body/_metadata.html.slim | 4 ++-- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/app/helpers/apps_helper.rb b/app/helpers/apps_helper.rb index a6b25b6cc..e7663b29d 100644 --- a/app/helpers/apps_helper.rb +++ b/app/helpers/apps_helper.rb @@ -60,6 +60,20 @@ def git_commit_url(git_url, commit, commit_length = 8) content_tag(:a, commit_name, href: commit_url) end + def git_branch_url(release) + return unless branch = release.branch + return if branch.blank? + + link_to(branch, channel_branches_path(release.channel, name: branch)) + end + + def release_type_url(release) + return unless release_type = release.release_type + return if release_type.blank? + + link_to(release_type, channel_release_types_path(release.channel, name: release_type)) + end + def display_app_device(channel) return channel.name if channel.name.downcase == channel.device_type.downcase diff --git a/app/views/channels/filters/_list.slim b/app/views/channels/filters/_list.slim index 0128b7697..ab27db68c 100644 --- a/app/views/channels/filters/_list.slim +++ b/app/views/channels/filters/_list.slim @@ -19,9 +19,9 @@ table.table.table-striped.table-hover td = release.build_version td - = link_to release.release_type, channel_release_types_path(release.channel, name: release.release_type) + = release_type_url(release) td - = link_to release.branch, channel_branches_path(release.channel, name: release.branch) + = git_branch_url(release) td = git_commit_url(release.channel.git_url, release.git_commit) td diff --git a/app/views/releases/body/_metadata.html.slim b/app/views/releases/body/_metadata.html.slim index 2a023f4f4..e445dd3af 100644 --- a/app/views/releases/body/_metadata.html.slim +++ b/app/views/releases/body/_metadata.html.slim @@ -36,7 +36,7 @@ - if @release.release_type.present? li title="类型" i.fas.fa-cubes - = @release.release_type + = release_type_url(@release) - if @release.file.present? li title="文件体积" i.fas.fa-weight @@ -47,7 +47,7 @@ - if @release.branch.present? li title="Git 分支" i.fas.fa-code-branch - = @release.branch + = git_branch_url(@release) - if @release.git_commit.present? li title="Git Commit" i.fab.fa-git-alt From c7a306641bcefaceed21c71f0c29117600e045bc Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 20 May 2020 06:31:06 +0000 Subject: [PATCH 0168/2165] chore(deps): bump admin-lte from 3.0.4 to 3.0.5 Bumps [admin-lte](https://github.com/ColorlibHQ/AdminLTE) from 3.0.4 to 3.0.5. - [Release notes](https://github.com/ColorlibHQ/AdminLTE/releases) - [Commits](https://github.com/ColorlibHQ/AdminLTE/compare/v3.0.4...v3.0.5) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 5f63f5f9c..cbb694f65 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "dependencies": { "@rails/ujs": "^6.0.3", "@rails/webpacker": "^5.0.1", - "admin-lte": "^3.0.4", + "admin-lte": "^3.0.5", "filepond": "^4.9.3", "rails-erb-loader": "^5.5.2", "turbolinks": "^5.2.0" diff --git a/yarn.lock b/yarn.lock index 2f7279c59..4125dcf5b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1235,10 +1235,10 @@ acorn@^7.0.0: resolved "https://registry.npm.taobao.org/acorn/download/acorn-7.1.0.tgz#949d36f2c292535da602283586c2477c57eb2d6c" integrity sha1-lJ028sKSU12mAig1hsJHfFfrLWw= -admin-lte@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/admin-lte/-/admin-lte-3.0.4.tgz#c80d0b1e2c7e657c9557a653318437c722e31842" - integrity sha512-OsA/yzAPyZgm3WsQYBXOMO8FZx2+kYoiSV6vYWwluSvenTYW/8CRrsIZFck2WndcZnMx9/HReWo5ePJXD3Xc2g== +admin-lte@^3.0.5: + version "3.0.5" + resolved "https://registry.yarnpkg.com/admin-lte/-/admin-lte-3.0.5.tgz#664664863bb7a5bf306b3a7b76fd16b345f0b00f" + integrity sha512-VkwBy6KukhuQk8A0GrryZorkDHVK52azkCu4l2Kw5kJt4tMQD2ezb268ssFpd6uKM8swLJ64td2Dx6y/MHA7Ew== dependencies: "@fortawesome/fontawesome-free" "^5.13.0" "@fullcalendar/bootstrap" "^4.4.0" From 96b5cc1afc7ff4f5f8f933878991224e35cf6165 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 20 May 2020 06:35:47 +0000 Subject: [PATCH 0169/2165] chore(deps): bump puma from 4.3.4 to 4.3.5 Bumps [puma](https://github.com/puma/puma) from 4.3.4 to 4.3.5. - [Release notes](https://github.com/puma/puma/releases) - [Changelog](https://github.com/puma/puma/blob/master/History.md) - [Commits](https://github.com/puma/puma/commits) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index a8b9eefd7..57b629116 100644 --- a/Gemfile +++ b/Gemfile @@ -6,7 +6,7 @@ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" } ruby '>= 2.3.0', '< 2.8.0' -gem 'puma', '~> 4.3.4' +gem 'puma', '~> 4.3.5' gem 'rails', '~> 6.0.3' gem 'rails-i18n', '~> 6.0.0' gem 'rake', '~> 13.0.1' diff --git a/Gemfile.lock b/Gemfile.lock index 7d2aa0709..b3baef244 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -286,7 +286,7 @@ GEM interception (>= 0.5) pry (>= 0.12.0) public_suffix (4.0.3) - puma (4.3.4) + puma (4.3.5) nio4r (~> 2.0) pundit (2.1.0) activesupport (>= 3.0.0) @@ -477,7 +477,7 @@ DEPENDENCIES pry-byebug pry-rails pry-rescue - puma (~> 4.3.4) + puma (~> 4.3.5) pundit (~> 2.1.0) rack-cors (~> 1.1.1) rails (~> 6.0.3) From e70649fc977d0e0851277a02c4ab3bec2111daf2 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 21 May 2020 16:47:00 +0800 Subject: [PATCH 0170/2165] =?UTF-8?q?fix:=20=E6=89=BE=E4=B8=8D=E5=88=B0?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E5=92=8C=E6=B8=A0=E9=81=93=E4=BC=9A=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E8=B7=B3=E8=BD=AC=E5=AF=B9=E5=BA=94=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/application_controller.rb | 5 +++++ app/controllers/apps_controller.rb | 4 ++++ app/controllers/channels_controller.rb | 4 ++++ app/controllers/releases_controller.rb | 8 ++++++++ app/views/releases/sidebar/_version.html.slim | 2 +- config/routes.rb | 2 +- 6 files changed, 23 insertions(+), 2 deletions(-) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 8ad0374b9..20a563c6f 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -13,6 +13,7 @@ class ApplicationController < ActionController::Base # Handle pundit error rescue_from Pundit::NotAuthorizedError, with: :user_not_authorized + rescue_from ActiveRecord::RecordNotFound, with: :render_not_found_entity_response private @@ -50,4 +51,8 @@ def user_not_authorized # headers['Access-Control-Allow-Headers'] = '*' # headers['Access-Control-Max-Age'] = '1728000' # end + + def render_not_found_entity_response(e) + redirect_to apps_path, notice: "没有找到 ID #{e.id},跳转至应用列表" + end end diff --git a/app/controllers/apps_controller.rb b/app/controllers/apps_controller.rb index 9c2caaf11..f3876c9aa 100644 --- a/app/controllers/apps_controller.rb +++ b/app/controllers/apps_controller.rb @@ -107,4 +107,8 @@ def app_params schemes_attributes: { name: [] } ) end + + def render_not_found_entity_response(e) + redirect_to apps_path, notice: "没有找到应用 #{e.id},跳转至应用列表" + end end diff --git a/app/controllers/channels_controller.rb b/app/controllers/channels_controller.rb index 3000173b1..e87428e87 100644 --- a/app/controllers/channels_controller.rb +++ b/app/controllers/channels_controller.rb @@ -70,4 +70,8 @@ def channel_params :slug, :password, :git_url ) end + + def render_not_found_entity_response(e) + redirect_to apps_path, notice: "没有找到应用渠道 #{e.id},跳转至应用列表" + end end diff --git a/app/controllers/releases_controller.rb b/app/controllers/releases_controller.rb index 3cee17455..93d530d33 100644 --- a/app/controllers/releases_controller.rb +++ b/app/controllers/releases_controller.rb @@ -5,6 +5,10 @@ class ReleasesController < ApplicationController before_action :set_channel before_action :set_release, only: %i[show auth destroy] + def index + redirect_to channel_release_path(@channel, @channel.releases.last) + end + def show redirect_to new_user_session_path unless !wechat? || @channel.password.blank? || !user_signed_in? @@ -68,4 +72,8 @@ def release_params :file, :changelog, :release_type, :branch, :git_commit, :ci_url ) end + + def render_not_found_entity_response(e) + redirect_to channel_releases_path, notice: "没有找到版本 #{e.id},跳转至最新版本" + end end diff --git a/app/views/releases/sidebar/_version.html.slim b/app/views/releases/sidebar/_version.html.slim index ddc491fea..212e713fb 100644 --- a/app/views/releases/sidebar/_version.html.slim +++ b/app/views/releases/sidebar/_version.html.slim @@ -15,5 +15,5 @@ ruby: - channel.release_versions.each do |version| tr td - = link_to version, channel_version_path(channel_id: channel.id, id: version) + = link_to version, channel_version_path(channel.slug, version) diff --git a/config/routes.rb b/config/routes.rb index d562629d3..eb0fd10c5 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -35,7 +35,7 @@ end end - resources :releases, except: :index, path_names: { new: 'upload' } do + resources :releases, path_names: { new: 'upload' } do scope module: :releases do get :install, to: 'install#show' end From 159e4f25b2b6fd9b5028de61ef46c31268fb743f Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 21 May 2020 22:14:35 +0800 Subject: [PATCH 0171/2165] chore: fix codeclimate --- .codeclimate.yml | 5 +++++ Gemfile.lock | 17 ++++++++++------- app/controllers/download/releases_controller.rb | 3 +++ config/application.rb | 2 +- config/routes.rb | 2 +- 5 files changed, 20 insertions(+), 9 deletions(-) create mode 100644 .codeclimate.yml diff --git a/.codeclimate.yml b/.codeclimate.yml new file mode 100644 index 000000000..8dbf29f33 --- /dev/null +++ b/.codeclimate.yml @@ -0,0 +1,5 @@ +version: "2" +plugins: + rubocop: + enabled: true + channel: "rubocop-0-83" \ No newline at end of file diff --git a/Gemfile.lock b/Gemfile.lock index b3baef244..4c03e0aa6 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -189,7 +189,6 @@ GEM ruby-vips (>= 2.0.17, < 3) image_size (2.0.2) interception (0.5) - jaro_winkler (1.5.4) jb (0.7.1) multi_json jenkins_api_client (1.5.3) @@ -270,7 +269,7 @@ GEM omniauth (~> 1.9) orm_adapter (0.5.0) parallel (1.19.1) - parser (2.7.1.0) + parser (2.7.1.2) ast (~> 2.4.0) pg (1.2.1) pngdefry (0.1.3) @@ -339,17 +338,21 @@ GEM responders (3.0.0) actionpack (>= 5.0) railties (>= 5.0) + rexml (3.2.4) rqrcode (1.1.2) chunky_png (~> 1.0) rqrcode_core (~> 0.1) rqrcode_core (0.1.1) - rubocop (0.78.0) - jaro_winkler (~> 1.5.1) + rubocop (0.84.0) parallel (~> 1.10) - parser (>= 2.6) + parser (>= 2.7.0.1) rainbow (>= 2.2.2, < 4.0) + rexml + rubocop-ast (>= 0.0.3) ruby-progressbar (~> 1.7) - unicode-display_width (>= 1.4.0, < 1.7) + unicode-display_width (>= 1.4.0, < 2.0) + rubocop-ast (0.0.3) + parser (>= 2.7.0.1) rubocop-rails (2.5.2) activesupport rack (>= 1.1) @@ -417,7 +420,7 @@ GEM unf (0.1.4) unf_ext unf_ext (0.0.7.7) - unicode-display_width (1.6.1) + unicode-display_width (1.7.0) uuidtools (2.1.5) vmstat (2.3.1) warden (1.2.8) diff --git a/app/controllers/download/releases_controller.rb b/app/controllers/download/releases_controller.rb index 53b65671e..2e449131c 100644 --- a/app/controllers/download/releases_controller.rb +++ b/app/controllers/download/releases_controller.rb @@ -1,3 +1,6 @@ +# frozen_string_literal: true +# frozen_string_literal: true + class Download::ReleasesController < ApplicationController before_action :set_release diff --git a/config/application.rb b/config/application.rb index bec3c2717..5bec3b656 100644 --- a/config/application.rb +++ b/config/application.rb @@ -44,7 +44,7 @@ class Application < Rails::Application # Log to STDOUT because Docker expects all processes to log here. You could # the framework and any gems in your application. # or a third party host such as Loggly, etc.. - config.log_tags = [ :subdomain, :request_id ] + config.log_tags = %i[subdomain request_id] ActiveSupport::Logger.new(STDOUT).tap do |logger| logger.formatter = config.log_formatter config.logger = ActiveSupport::TaggedLogging.new(logger) diff --git a/config/routes.rb b/config/routes.rb index eb0fd10c5..47602e183 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -9,7 +9,7 @@ devise_for :users, skip: :registrations, controllers: { omniauth_callbacks: 'users/omniauth_callbacks' } devise_scope :user do resource :registration, - only: [:new, :create, :edit, :update], + only: %i[new create edit update], path: 'users', path_names: { new: 'sign_up' }, controller: 'users/registrations', From 718053a443778ce284f2eb8948ade2c96bf9d374 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 21 May 2020 21:55:21 +0800 Subject: [PATCH 0172/2165] =?UTF-8?q?feat:=20=E9=80=9A=E8=BF=87=20rails=20?= =?UTF-8?q?zealot:backup:create|restore=20=E5=8F=AF=E4=BB=A5=E5=88=9B?= =?UTF-8?q?=E5=BB=BA=E3=80=81=E6=81=A2=E5=A4=8D=E5=A4=87=E4=BB=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + config/zealot.yml | 5 + db/schema.rb | 1 - lib/backup/database.rb | 132 ++++++++++++++++++ lib/backup/helper.rb | 111 +++++++++++++++ lib/backup/manager.rb | 211 +++++++++++++++++++++++++++++ lib/backup/uploads.rb | 123 +++++++++++++++++ lib/tasks/zealot/backup.rake | 83 ++++++++++++ lib/tasks/{ => zealot}/zealot.rake | 0 public/uploads/.keep | 0 10 files changed, 666 insertions(+), 1 deletion(-) create mode 100644 lib/backup/database.rb create mode 100644 lib/backup/helper.rb create mode 100644 lib/backup/manager.rb create mode 100644 lib/backup/uploads.rb create mode 100644 lib/tasks/zealot/backup.rake rename lib/tasks/{ => zealot}/zealot.rake (100%) delete mode 100644 public/uploads/.keep diff --git a/.gitignore b/.gitignore index cf5b9e8db..2e5a11990 100644 --- a/.gitignore +++ b/.gitignore @@ -27,6 +27,7 @@ db/*.sqlite3 /doc/specs.html /public/assets /public/packs +/public/backup /public/packs-test /public/system/ /public/uploads diff --git a/config/zealot.yml b/config/zealot.yml index b3d436080..9d7e913e8 100644 --- a/config/zealot.yml +++ b/config/zealot.yml @@ -11,6 +11,11 @@ default: &base cron: '0 0 * * *' class: 'ResetForDemoModeJob' queue: schedule + backup: + path: 'public/backup' + keep_time: 604800 + pg_schema: public + development: <<: *base diff --git a/db/schema.rb b/db/schema.rb index 2b7fdb6fa..c8c4bb415 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -157,7 +157,6 @@ create_table "web_hooks", force: :cascade do |t| t.bigint "channel_id" - t.string "title" t.string "url" t.text "body" t.integer "upload_events", limit: 2 diff --git a/lib/backup/database.rb b/lib/backup/database.rb new file mode 100644 index 000000000..d5149f640 --- /dev/null +++ b/lib/backup/database.rb @@ -0,0 +1,132 @@ +# frozen_string_literal: true + +# Copyright (c) 2011-present GitLab B.V. + +# Portions of this software are licensed as follows: + +# * All content residing under the "doc/" directory of this repository is licensed under "Creative Commons: CC BY-SA 4.0 license". +# * All content that resides under the "ee/" directory of this repository, if that directory exists, is licensed under the license defined in "ee/LICENSE". +# * All client-side JavaScript (when served directly or after being compiled, arranged, augmented, or combined), is licensed under the "MIT Expat" license. +# * All third party components incorporated into the GitLab Software are licensed under the original license provided by the owner of the applicable component. +# * Content outside of the above mentioned directories or restrictions above is available under the "MIT Expat" license as defined below. + +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: + +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. + +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +module Backup + class Database + include Backup::Helper + + class Error < StandardError; end + + attr_reader :config, :db_file_name + + def self.dump + new.dump + end + + def self.restore + new.restore + end + + def dump + FileUtils.mkdir_p(File.dirname(db_file_name)) + FileUtils.rm_f(db_file_name) + + compress_rd, compress_wr = IO.pipe + compress_pid = spawn(gzip_cmd, in: compress_rd, out: [db_file_name, 'w', 0600]) + compress_rd.close + + dump_pid = + case config["adapter"] + when "postgresql" then + puts_time("Dumping PostgreSQL database #{config['database']} ... ", false) + pg_env + pgsql_args = ["--clean"] # Pass '--clean' to include 'DROP TABLE' statements in the DB dump. + if Zealot::Setting.backup.pg_schema + pgsql_args << "-n" + pgsql_args << Zealot::Setting.backup.pg_schema + end + + spawn('pg_dump', *pgsql_args, config['database'], out: compress_wr) + end + compress_wr.close + + success = [compress_pid, dump_pid].all? do |pid| + Process.waitpid(pid) + $?.success? + end + + report_result(success) + raise Backup::Database::Error, 'Backup failed' unless success + end + + def restore + decompress_rd, decompress_wr = IO.pipe + decompress_pid = spawn(*%w(gzip -cd), out: decompress_wr, in: db_file_name) + decompress_wr.close + + restore_pid = + case config["adapter"] + when "postgresql" then + puts_time("Restoring PostgreSQL database #{config['database']} ... ", false) + pg_env + spawn('psql', config['database'], in: decompress_rd) + end + decompress_rd.close + + success = [decompress_pid, restore_pid].all? do |pid| + Process.waitpid(pid) + $?.success? + end + + report_result(success) + raise Backup::Database::Error, 'Restore failed' unless success + end + + private + + def pg_env + args = { + 'username' => 'PGUSER', + 'host' => 'PGHOST', + 'port' => 'PGPORT', + 'password' => 'PGPASSWORD', + # SSL + 'sslmode' => 'PGSSLMODE', + 'sslkey' => 'PGSSLKEY', + 'sslcert' => 'PGSSLCERT', + 'sslrootcert' => 'PGSSLROOTCERT', + 'sslcrl' => 'PGSSLCRL', + 'sslcompression' => 'PGSSLCOMPRESSION' + } + args.each { |opt, arg| ENV[arg] = config[opt].to_s if config[opt] } + end + + def config + return @config if @config + + config = ERB.new(File.read(Rails.root.join('config', 'database.yml'))).result() + @config = YAML.load(config)[Rails.env] + end + + def db_file_name + @db_file_name ||= File.join(backup_path, 'db', 'database.sql.gz') + end + end +end \ No newline at end of file diff --git a/lib/backup/helper.rb b/lib/backup/helper.rb new file mode 100644 index 000000000..7b9265979 --- /dev/null +++ b/lib/backup/helper.rb @@ -0,0 +1,111 @@ +# frozen_string_literal: true + +# Copyright (c) 2011-present GitLab B.V. + +# Portions of this software are licensed as follows: + +# * All content residing under the "doc/" directory of this repository is licensed under "Creative Commons: CC BY-SA 4.0 license". +# * All content that resides under the "ee/" directory of this repository, if that directory exists, is licensed under the license defined in "ee/LICENSE". +# * All client-side JavaScript (when served directly or after being compiled, arranged, augmented, or combined), is licensed under the "MIT Expat" license. +# * All third party components incorporated into the GitLab Software are licensed under the original license provided by the owner of the applicable component. +# * Content outside of the above mentioned directories or restrictions above is available under the "MIT Expat" license as defined below. + +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: + +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. + +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +module Backup + module Helper + + def access_denied_error(path) + message = <<~EOS + + ### NOTICE ### + As part of restore, the task tried to move existing content from #{path}. + However, it seems that directory contains files/folders that are not owned. + To proceed, please move the files or folders inside #{path} to a secure + location so that #{path} is empty and run restore task again. + + EOS + raise message + end + + def resource_busy_error(path) + message = <<~EOS + + ### NOTICE ### + As part of restore, the task tried to rename `#{path}` before restoring. + This could not be completed, perhaps `#{path}` is a mountpoint? + + To complete the restore, please move the contents of `#{path}` to a + different location and run the restore task again. + + EOS + raise message + end + + def logger + if ENV['CRON'] + # We need an object we can say 'puts' and 'print' to; let's use a + # StringIO. + require 'stringio' + StringIO.new + else + $stdout + end + end + + def gzip_cmd + @gzip_cmd ||= if ENV['GZIP_RSYNCABLE'] == 'yes' + "gzip --rsyncable -c -1" + else + "gzip -c -1" + end + end + + def tar + @tar ||= if system(*%w[gtar --version], out: '/dev/null') + # It looks like we can get GNU tar by running 'gtar' + 'gtar' + else + 'tar' + end + end + + def backup_path + Rails.root.join(Zealot::Setting.backup.path) + end + + def puts_time(msg, new_line = true) + if new_line + logger.puts "#{Time.now} -- #{msg}" + else + logger.print "#{Time.now} -- #{msg}" + end + end + + def report_result(success, message = nil) + message = " #{message}" unless message.to_s.empty? + + if success + logger.puts "[DONE]#{message}" + else + logger.puts "[FAILED]#{message}" + end + end + end +end \ No newline at end of file diff --git a/lib/backup/manager.rb b/lib/backup/manager.rb new file mode 100644 index 000000000..514b58869 --- /dev/null +++ b/lib/backup/manager.rb @@ -0,0 +1,211 @@ +# frozen_string_literal: true + +# Copyright (c) 2011-present GitLab B.V. + +# Portions of this software are licensed as follows: + +# * All content residing under the "doc/" directory of this repository is licensed under "Creative Commons: CC BY-SA 4.0 license". +# * All content that resides under the "ee/" directory of this repository, if that directory exists, is licensed under the license defined in "ee/LICENSE". +# * All client-side JavaScript (when served directly or after being compiled, arranged, augmented, or combined), is licensed under the "MIT Expat" license. +# * All third party components incorporated into the GitLab Software are licensed under the original license provided by the owner of the applicable component. +# * Content outside of the above mentioned directories or restrictions above is available under the "MIT Expat" license as defined below. + +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: + +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. + +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +module Backup + class Manager + include Backup::Helper + + class Error < StandardError; end + + ARCHIVES_TO_BACKUP = %w[uploads.tar.gz] + FOLDERS_TO_BACKUP = %w[db] + FILE_NAME_SUFFIX = '_zealot_backup.tar' + + def write_info + # Make sure there is a connection + ActiveRecord::Base.connection.reconnect! + + File.open(backup_information_file, "w") do |file| + file << backup_information.to_yaml.gsub(/^---\n/, '') + end + end + + def pack + Dir.chdir(backup_path) do + # create archive + puts_time("Creating backup archive: #{tar_file} ... ", false) + # Set file permissions on open to prevent chmod races. + tar_system_options = { out: [tar_file, 'w', 0640] } + if Kernel.system('tar', '-cf', '-', *backup_contents, tar_system_options) + report_result(true) + else + report_result(false) + raise Backup::Manager::Error, "Backup failed: creating archive #{tar_file} failed" + end + end + end + + def cleanup + puts_time('Deleting tmp directories ... ', false) + + backup_contents.each do |dir| + next unless File.exist?(File.join(backup_path, dir)) + + unless FileUtils.rm_rf(File.join(backup_path, dir)) + raise Backup::Manager::Error, "Backup failed: deleting tmp directory '#{dir}' failed" + end + end + + report_result(true) + end + + def remove_old + puts_time('Deleting old backups ... ', false) + keep_time = Zealot::Setting.backup.keep_time.to_i + + if keep_time > 0 + removed = 0 + + Dir.chdir(backup_path) do + backup_file_list.each do |file| + # For compatibility, there are 4 names the backups can have: + # - 1590060675_2020_05_21_zealot_backup.tar + # - 1590060675_2020_05_21_development_zealot_backup.tar + # - 1590060675_2020_05_21_4.0.0-beta4_zealot_backup.tar + # - 1590060675_2020_05_21_4.0.0-beta4-development_zealot_backup.tar + next unless file =~ /^(\d{10})(_\d{4}_\d{2}_\d{2})(_\d+\.\d+\.\d+((-|\.)(beta\d|pre\d|rc\d)?)?)?((_|-)development)?_zealot_backup\.tar$/ + + timestamp = $1.to_i + + if Time.at(timestamp) < (Time.now - keep_time) + begin + FileUtils.rm(file) + removed += 1 + rescue => e + puts_time "Deleting #{file} failed: #{e.message}" + end + end + end + end + + report_result(true, "(#{removed} removed)") + else + report_result(true, "(skipped, keep forever)") + end + end + + def unpack + FileUtils.mkdir_p(backup_path) + + Dir.chdir(backup_path) do + # check for existing backups in the backup dir + if backup_file_list.empty? + puts_time "No backups found in #{backup_path}" + puts_time "Please make sure that file name ends with #{FILE_NAME_SUFFIX}" + exit 1 + elsif backup_file_list.many? && ENV["BACKUP"].nil? + puts_time 'Found more than one backup:' + # print list of available backups + puts_time " " + available_timestamps.join("\n ") + puts_time 'Please specify which one you want to restore:' + puts_time 'rake gitlab:backup:restore BACKUP=timestamp_of_backup' + exit 1 + end + + tar_file = backup_file_list.first + unless File.exist?(tar_file) + puts_time "The backup file #{tar_file} does not exist!" + exit 1 + end + + puts_time 'Unpacking backup ... ', false + if Kernel.system(*%W(tar -xf #{tar_file})) + report_result(true) + return true + else + report_result(false, 'unpacking backup failed') + exit 1 + end + end + end + + def verify_backup_version + Dir.chdir(backup_path) do + # restoring mismatching backups can lead to unexpected problems + current_version = Zealot::Setting.version + if settings[:zealot_version] != current_version + logger.puts(<<~HEREDOC.color(:red)) + Zealot version mismatch: + Your current Zealot version (#{current_version}) differs from the Zealot version in the backup! + Please switch to the following version and try again: + version: #{settings[:zealot_version]} + HEREDOC + logger.puts + logger.puts "Hint:" + logger.puts " 1. git checkout v#{settings[:zealot_version]}" + logger.puts " 2. docker pull icyleafcn/zealot:#{settings[:zealot_version]}" + exit 1 + end + end + end + + private + + def backup_information + @backup_information ||= { + db_version: ActiveRecord::Migrator.current_version.to_s, + backup_created_at: Time.now, + zealot_version: Zealot::Setting.version, + tar_version: tar_version, + vcs_ref: Zealot::Setting.vcs_ref || false, + docker_tag: ENV['DOCKER_TAG'] || false + } + end + + def backup_file_list + @backup_file_list ||= Dir.glob("*#{FILE_NAME_SUFFIX}") + end + + def backup_contents + ARCHIVES_TO_BACKUP + FOLDERS_TO_BACKUP + ['backup_information.yml'] + end + + def settings + @settings ||= YAML.load_file('backup_information.yml') + end + + def tar_file + @tar_file ||= if ENV['BACKUP'].present? + File.basename(ENV['BACKUP']) + FILE_NAME_SUFFIX + else + "#{backup_information[:backup_created_at].strftime('%s_%Y_%m_%d_')}#{backup_information[:zealot_version]}#{FILE_NAME_SUFFIX}" + end + end + + def tar_version + tar_version = `tar --version` + tar_version.dup.force_encoding('locale').split("\n").first + end + + def backup_information_file + @backup_information_file ||= File.join(backup_path, 'backup_information.yml') + end + end +end \ No newline at end of file diff --git a/lib/backup/uploads.rb b/lib/backup/uploads.rb new file mode 100644 index 000000000..9b6d84f7f --- /dev/null +++ b/lib/backup/uploads.rb @@ -0,0 +1,123 @@ +# frozen_string_literal: true + +# Copyright (c) 2011-present GitLab B.V. + +# Portions of this software are licensed as follows: + +# * All content residing under the "doc/" directory of this repository is licensed under "Creative Commons: CC BY-SA 4.0 license". +# * All content that resides under the "ee/" directory of this repository, if that directory exists, is licensed under the license defined in "ee/LICENSE". +# * All client-side JavaScript (when served directly or after being compiled, arranged, augmented, or combined), is licensed under the "MIT Expat" license. +# * All third party components incorporated into the GitLab Software are licensed under the original license provided by the owner of the applicable component. +# * Content outside of the above mentioned directories or restrictions above is available under the "MIT Expat" license as defined below. + +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: + +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. + +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +require 'open3' + +module Backup + class Uploads + include Backup::Helper + + class Error < StandardError; end + + def self.dump + new.dump + end + + def self.restore + new.restore + end + + attr_reader :uploads_path, :backup_tarball + + def dump + FileUtils.mkdir_p(backup_path) + FileUtils.rm_f(backup_tarball) + + puts_time("Dumping uploads data ... ", false) + + success = run_pipeline!([%W(#{tar} --exclude=lost+found -C #{uploads_path} -cf - .), gzip_cmd], out: [backup_tarball, 'w', 0600]) + report_result(success) + end + + def restore + puts_time("Restoring uploads data ... ", false) + + backup_existing_uploads_dir + FileUtils.mkdir_p(uploads_path) + success = run_pipeline!([%w(gzip -cd), %W(#{tar} #{gzip_args} -C #{uploads_path} -xf -)], in: backup_tarball) + report_result(success) + end + + private + + def backup_existing_uploads_dir + timestamped_files_path = File.join(backup_path, "tmp", "uploads.old.#{Time.now.to_i}") + if File.exist?(uploads_path) + # Move all files in the existing repos directory except . and .. to + # uploads.old. directory + FileUtils.mkdir_p(timestamped_files_path, mode: 0700) + files = Dir.glob(File.join(uploads_path, "*"), File::FNM_DOTMATCH) - [File.join(uploads_path, "."), File.join(uploads_path, "..")] + + begin + FileUtils.mv(files, timestamped_files_path) + rescue Errno::EACCES + access_denied_error(uploads_path) + rescue Errno::EBUSY + resource_busy_error(uploads_path) + end + end + end + + def run_pipeline!(cmd_list, options = {}) + err_r, err_w = IO.pipe + options[:err] = err_w + + status = Open3.pipeline(*cmd_list, options) + err_w.close + return true if status.compact.all?(&:success?) + + regex = /^g?tar: \.: Cannot mkdir: No such file or directory$/ + error = err_r.read + raise Backup::Uploads::Error, "Backup failed: #{error}" unless error =~ regex + end + + def gzip_args + require 'rbconfig' + + # https://www.gnu.org/software/tar/manual/html_node/Unlink-First.html + args = ['--unlink-first'] + + unless RbConfig::CONFIG['host_os'] =~ /darwin|mac os/ + # https://www.gnu.org/software/tar/manual/html_node/Recursive-Unlink.html + args << '--recursive-unlink' + end + + args.join(' ') + end + + def backup_tarball + @backup_tarball ||= File.join(backup_path, 'uploads.tar.gz') + end + + def uploads_path + @uploads_path ||= Rails.root.join('public', 'uploads') + end + end +end \ No newline at end of file diff --git a/lib/tasks/zealot/backup.rake b/lib/tasks/zealot/backup.rake new file mode 100644 index 000000000..ba06e6199 --- /dev/null +++ b/lib/tasks/zealot/backup.rake @@ -0,0 +1,83 @@ +# frozen_string_literal: true + +# Copyright (c) 2011-present GitLab B.V. + +# Portions of this software are licensed as follows: + +# * All content residing under the "doc/" directory of this repository is licensed under "Creative Commons: CC BY-SA 4.0 license". +# * All content that resides under the "ee/" directory of this repository, if that directory exists, is licensed under the license defined in "ee/LICENSE". +# * All client-side JavaScript (when served directly or after being compiled, arranged, augmented, or combined), is licensed under the "MIT Expat" license. +# * All third party components incorporated into the GitLab Software are licensed under the original license provided by the owner of the applicable component. +# * Content outside of the above mentioned directories or restrictions above is available under the "MIT Expat" license as defined below. + +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: + +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. + +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +require_relative '../../backup/helper' + +extend Backup::Helper + +namespace :zealot do + namespace :backup do + desc 'Zealot | Backup | Create a backup of the Zealot system' + task create: :environment do + Rake::Task['zealot:backup:db:create'].invoke + Rake::Task['zealot:backup:uploads:create'].invoke + + backup = Backup::Manager.new + backup.write_info + backup.pack + backup.cleanup + backup.remove_old + end + + desc 'Zealot | Backup | Restore a previously created backup' + task restore: :environment do + backup = Backup::Manager.new + cleanup_required = backup.unpack + backup.verify_backup_version + + Rake::Task['zealot:backup:db:restore'].invoke + Rake::Task['zealot:backup:uploads:restore'].invoke + + backup.cleanup if cleanup_required + + puts "Restore task is done." + end + + namespace :uploads do + task create: :environment do + Backup::Uploads.dump + end + + task restore: :environment do + Backup::Uploads.restore + end + end + + namespace :db do + task create: :environment do + Backup::Database.dump + end + + task restore: :environment do + Backup::Database.restore + end + end + end +end \ No newline at end of file diff --git a/lib/tasks/zealot.rake b/lib/tasks/zealot/zealot.rake similarity index 100% rename from lib/tasks/zealot.rake rename to lib/tasks/zealot/zealot.rake diff --git a/public/uploads/.keep b/public/uploads/.keep deleted file mode 100644 index e69de29bb..000000000 From 8456455de7c06d359f859989b96a18421537d63f Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Thu, 21 May 2020 06:32:57 +0000 Subject: [PATCH 0173/2165] chore(deps): bump graphql from 1.10.9 to 1.10.10 Bumps [graphql](https://github.com/rmosolgo/graphql-ruby) from 1.10.9 to 1.10.10. - [Release notes](https://github.com/rmosolgo/graphql-ruby/releases) - [Changelog](https://github.com/rmosolgo/graphql-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/rmosolgo/graphql-ruby/compare/v1.10.9...v1.10.10) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 57b629116..f0c86a23b 100644 --- a/Gemfile +++ b/Gemfile @@ -17,7 +17,7 @@ gem 'redis', '~> 4.1.4' # API gem 'active_model_serializers', '~> 0.10.10' -gem 'graphql', '~> 1.10.9' +gem 'graphql', '~> 1.10.10' gem 'rack-cors', '~> 1.1.1' # View diff --git a/Gemfile.lock b/Gemfile.lock index 4c03e0aa6..9189ea73e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -143,7 +143,7 @@ GEM rubyntlm (~> 0.5) globalid (0.4.2) activesupport (>= 4.2.0) - graphql (1.10.9) + graphql (1.10.10) guard (2.16.2) formatador (>= 0.2.4) listen (>= 2.7, < 4.0) @@ -459,7 +459,7 @@ DEPENDENCIES dotenv-rails friendly_id gitlab_omniauth-ldap (~> 2.1.1) - graphql (~> 1.10.9) + graphql (~> 1.10.10) guard (~> 2.16.2) guard-bundler guard-migrate From 4934293797ee2ffb4c1b02386e4b308a70512293 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 21 May 2020 15:15:31 +0800 Subject: [PATCH 0174/2165] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=20udid=20=E7=9A=84=E6=B5=81=E7=A8=8B=EF=BC=88?= =?UTF-8?q?=E8=BF=98=E6=B2=A1=E6=9C=89=E5=85=A5=E5=8F=A3=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 2 +- Gemfile | 17 +++++--- Gemfile.lock | 4 ++ Guardfile | 4 +- app/controllers/udid_controller.rb | 45 ++++++++++++++++++++++ app/policies/download/debug_file_policy.rb | 9 +++++ app/views/udid/index.html.slim | 2 + app/views/udid/install.html.erb | 36 +++++++++++++++++ app/views/udid/show.html.slim | 25 ++++++++++++ config/routes.rb | 8 +++- 10 files changed, 142 insertions(+), 10 deletions(-) create mode 100644 app/controllers/udid_controller.rb create mode 100644 app/policies/download/debug_file_policy.rb create mode 100644 app/views/udid/index.html.slim create mode 100644 app/views/udid/install.html.erb create mode 100644 app/views/udid/show.html.slim diff --git a/Dockerfile b/Dockerfile index 5071ee7b6..0795727dc 100644 --- a/Dockerfile +++ b/Dockerfile @@ -63,7 +63,7 @@ ARG REPLACE_CHINA_MIRROR="true" ARG ORIGINAL_REPO_URL="http://dl-cdn.alpinelinux.org" ARG MIRROR_REPO_URL="https://mirrors.tuna.tsinghua.edu.cn" ARG RUBYGEMS_SOURCE="https://gems.ruby-china.com/" -ARG PACKAGES="tzdata imagemagick imagemagick-dev postgresql-dev" +ARG PACKAGES="tzdata imagemagick imagemagick-dev postgresql-dev postgresql-client openssl openssl-dev" ARG RUBY_GEMS="bundler" ARG APP_ROOT=/app diff --git a/Gemfile b/Gemfile index f0c86a23b..36c2cdc99 100644 --- a/Gemfile +++ b/Gemfile @@ -24,6 +24,7 @@ gem 'rack-cors', '~> 1.1.1' ## 模板引擎 gem 'jb', '~> 0.7.1' gem 'slim-rails', '~> 3.2.0' + ## 表单生成 gem 'simple_form', '~> 5.0' @@ -37,9 +38,9 @@ gem 'carrierwave' gem 'mini_magick' # Helper -# HTTP 请求 +## HTTP 请求 gem 'http' -# 用户认证 +## 用户认证 gem 'devise', '~> 4.7.1' gem 'devise-i18n', '~> 1.9.0' gem 'omniauth', '~> 1.9' @@ -47,17 +48,21 @@ gem 'omniauth-google-oauth2', '~> 0.8.0' gem 'gitlab_omniauth-ldap', '~> 2.1.1', require: 'omniauth-ldap' gem 'pundit', '~> 2.1.0' -# 系统信息 +## UDID +gem 'openssl', '~> 2.2.0' +gem 'plist', '~> 3.5.0' + +## 系统信息 gem 'sys-filesystem', '~> 1.3.4' gem 'vmstat', '~> 2.3.0' -# 异常报错上报 +## 异常报错上报 gem 'sentry-raven' -# Jenkins SDK +## Jenkins SDK gem 'jenkins_api_client' -# 生成条形码/二维码 +## 生成条形码/二维码 gem 'rqrcode' # 异步队列 diff --git a/Gemfile.lock b/Gemfile.lock index 9189ea73e..64b914fa6 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -267,11 +267,13 @@ GEM omniauth-oauth2 (1.6.0) oauth2 (~> 1.1) omniauth (~> 1.9) + openssl (2.2.0) orm_adapter (0.5.0) parallel (1.19.1) parser (2.7.1.2) ast (~> 2.4.0) pg (1.2.1) + plist (3.5.0) pngdefry (0.1.3) pry (0.13.0) coderay (~> 1.1) @@ -476,7 +478,9 @@ DEPENDENCIES mini_magick omniauth (~> 1.9) omniauth-google-oauth2 (~> 0.8.0) + openssl (~> 2.2.0) pg (>= 0.18, < 2.0) + plist (~> 3.5.0) pry-byebug pry-rails pry-rescue diff --git a/Guardfile b/Guardfile index 3f474ab32..2439ca553 100644 --- a/Guardfile +++ b/Guardfile @@ -5,6 +5,8 @@ if `uname`.match?(/Darwin/) notification :terminal_notifier end +ignore_rails = ENV['IGNORE_RAILS'] || 'false' + environment = ENV.fetch('RAILS_ENV', 'development') ### Guard::Sidekiq @@ -47,7 +49,7 @@ guard :rails, host: '0.0.0.0', environment: environment do watch('Gemfile.lock') watch(%r{^(config|lib)/.*}) watch('app/assets/config/manifest.js') -end +end if ignore_rails == 'false' guard :bundler do require 'guard/bundler' diff --git a/app/controllers/udid_controller.rb b/app/controllers/udid_controller.rb new file mode 100644 index 000000000..2302426cd --- /dev/null +++ b/app/controllers/udid_controller.rb @@ -0,0 +1,45 @@ +class UdidController < ApplicationController + def index + end + + def create + body = request.body.read + + p7sign = OpenSSL::PKCS7.new(body) + store = OpenSSL::X509::Store.new + p7sign.verify(nil, store, nil, OpenSSL::PKCS7::NOVERIFY) + + attrs = Plist::parse_xml(p7sign.data) + + redirect_to udid_result_url( + udid: attrs['UDID'], + product: attrs['PRODUCT'], + serial: attrs['SERIAL'], + version: attrs['VERSION'] + ), status: 301 + end + + def show + end + + def install + @udid = Rails.cache.fetch('ios-udid', expires_in: 1.week) { SecureRandom.uuid.upcase } + + content_type = params[:preview].present? ? 'html/text' : 'application/x-apple-aspen-config' + + plist = render_to_string(layout: false) + + server = File.read('public/certs/server.pem') + server_key = File.read('public/certs/key.pem') + + server_pem = OpenSSL::X509::Certificate.new(server) + server_key_pem = OpenSSL::PKey::RSA.new(server_key) + + sigend_plist = OpenSSL::PKCS7.sign( + server_pem, server_key_pem, + plist, [], OpenSSL::PKCS7::BINARY + ) + + render plain: plist, content_type: content_type, layout: false + end +end diff --git a/app/policies/download/debug_file_policy.rb b/app/policies/download/debug_file_policy.rb new file mode 100644 index 000000000..69211b067 --- /dev/null +++ b/app/policies/download/debug_file_policy.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +class Download::DebugFilePolicy < ApplicationPolicy + class Scope < Scope + def resolve + scope.all + end + end +end diff --git a/app/views/udid/index.html.slim b/app/views/udid/index.html.slim new file mode 100644 index 000000000..dfcdbd38b --- /dev/null +++ b/app/views/udid/index.html.slim @@ -0,0 +1,2 @@ +h1 Udid#index +p Find me in app/views/udid/index.html.slim diff --git a/app/views/udid/install.html.erb b/app/views/udid/install.html.erb new file mode 100644 index 000000000..af0719fa2 --- /dev/null +++ b/app/views/udid/install.html.erb @@ -0,0 +1,36 @@ + + + + + PayloadContent + + URL + <%= udid_retrieve_url %> + DeviceAttributes + + UDID + IMEI + SERIAL + VERSION + PRODUCT + + + PayloadOrganization + Zealot + PayloadIdentifier + im.ews.zealot.profile-service + PayloadDisplayName + 获取设备UDID + PayloadDescription + 本描述文件仅用来获取本机设备 UDID,获取信息后会自动删除掉本描述文件。 + +本服务由 <%= root_url %> 提供。 + + PayloadType + Profile Service + PayloadVersion + 1 + PayloadUUID + <%= @udid %> + + \ No newline at end of file diff --git a/app/views/udid/show.html.slim b/app/views/udid/show.html.slim new file mode 100644 index 000000000..7a40f6f9b --- /dev/null +++ b/app/views/udid/show.html.slim @@ -0,0 +1,25 @@ +- content_for :title do + = @title + +- content_for :section_title do + = @title + +.row + .col-md-6 + .card.system_info + .card-header + h3.card-title 设备信息 + .card-body + dl.system-info + dt UDID + dd + pre = params[:udid] + dt 型号 + dd + pre = params[:product] + dt 序列号 + dd + pre = params[:serial] + dt 版本 + dd + pre = params[:version] \ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb index 47602e183..870ae2411 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -74,8 +74,12 @@ resources :debug_files, only: :show end - # get ':slug(/:version)/install', to: 'install_url#show', as: 'install' - # get ':slug(/:version)/download', to: 'download#show', as: 'download' + ############################################# + # UDID (iOS) + ############################################# + get 'udid/install', to: 'udid#install' + post 'udid/retrieve', to: 'udid#create' + get 'udid/:udid', to: 'udid#show', as: 'udid_result' ############################################# # Admin From e8d60812113b2039bd671f6c3ab4696f59d4475b Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 21 May 2020 16:21:22 +0800 Subject: [PATCH 0175/2165] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=20clipboar?= =?UTF-8?q?d.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Rakefile | 5 +++ app/controllers/udid_controller.rb | 25 ++++++------ app/javascript/javascripts/udid/index.js | 41 +++++++++++++++++++ app/javascript/packs/application.js | 50 ++++++++++++------------ app/views/udid/show.html.slim | 26 +++++++++--- config/webpack/environment.js | 19 ++++----- package.json | 1 + yarn.lock | 31 +++++++++++++++ 8 files changed, 147 insertions(+), 51 deletions(-) create mode 100644 app/javascript/javascripts/udid/index.js diff --git a/Rakefile b/Rakefile index 9f2d1b0cb..a4b3d0b68 100644 --- a/Rakefile +++ b/Rakefile @@ -5,3 +5,8 @@ require_relative 'config/application' # require 'awesome_print' Rails.application.load_tasks + +task rails_ssl: :environment do + ENV['ZEALOT_USE_HTTPS'] = 'true' + system("#{Rails.root}/bin/rails server -p 3000 -e development -b 'ssl://172.16.217.119:3000?key=public/certs/key.pem&cert=public/certs/server.pem'") +end diff --git a/app/controllers/udid_controller.rb b/app/controllers/udid_controller.rb index 2302426cd..d96380773 100644 --- a/app/controllers/udid_controller.rb +++ b/app/controllers/udid_controller.rb @@ -9,7 +9,7 @@ def create store = OpenSSL::X509::Store.new p7sign.verify(nil, store, nil, OpenSSL::PKCS7::NOVERIFY) - attrs = Plist::parse_xml(p7sign.data) + attrs = Plist.parse_xml(p7sign.data) redirect_to udid_result_url( udid: attrs['UDID'], @@ -26,20 +26,19 @@ def install @udid = Rails.cache.fetch('ios-udid', expires_in: 1.week) { SecureRandom.uuid.upcase } content_type = params[:preview].present? ? 'html/text' : 'application/x-apple-aspen-config' + render content_type: content_type, layout: false - plist = render_to_string(layout: false) + # plist = render_to_string(layout: false) - server = File.read('public/certs/server.pem') - server_key = File.read('public/certs/key.pem') + # server = File.read('public/certs/server.pem') + # server_key = File.read('public/certs/key.pem') + # server_pem = OpenSSL::X509::Certificate.new(server) + # server_key_pem = OpenSSL::PKey::RSA.new(server_key) - server_pem = OpenSSL::X509::Certificate.new(server) - server_key_pem = OpenSSL::PKey::RSA.new(server_key) - - sigend_plist = OpenSSL::PKCS7.sign( - server_pem, server_key_pem, - plist, [], OpenSSL::PKCS7::BINARY - ) - - render plain: plist, content_type: content_type, layout: false + # sigend_plist = OpenSSL::PKCS7.sign( + # server_pem, server_key_pem, + # plist, [], OpenSSL::PKCS7::BINARY + # ) + # render plain: plist, content_type: content_type, layout: false end end diff --git a/app/javascript/javascripts/udid/index.js b/app/javascript/javascripts/udid/index.js new file mode 100644 index 000000000..e8cad43b2 --- /dev/null +++ b/app/javascript/javascripts/udid/index.js @@ -0,0 +1,41 @@ +function clearTooltip(e) { + $(e).tooltip("hide"); + $(e).tooltip("disable"); +} + +function showTooltip(e, msg) { + $(e).attr("title", msg); + $(e).tooltip("enable"); + $(e).tooltip("show"); +} + +function fallbackMessage(action) { + var actionMsg = ""; + var actionKey = (action === "cut" ? "X" : "C"); + if (/iPhone|iPad/i.test(navigator.userAgent)) { + actionMsg = "无法复制到剪切板 :("; + } else if (/Mac/i.test(navigator.userAgent)) { + actionMsg = "按 ⌘-" + actionKey + " 复制文本"; + } else { + actionMsg = "按 Ctrl-" + actionKey + " 复制文本"; + } + return actionMsg; +} + +$(document).on("turbolinks:load", function () { + var clipboardButton = ".btn-clipboard"; + $(clipboardButton).on("mouseleave", function () { + clearTooltip(this); + }); + + var clipboard = new ClipboardJS(clipboardButton); + clipboard.on("success", function (e) { + e.clearSelection(); + + showTooltip(e.trigger, "已复制到剪切板"); + }); + + clipboard.on("error", function (e) { + showTooltip(e.trigger, fallbackMessage(e.action)); + }); +}); \ No newline at end of file diff --git a/app/javascript/packs/application.js b/app/javascript/packs/application.js index 2cf271e19..128fc4bf3 100644 --- a/app/javascript/packs/application.js +++ b/app/javascript/packs/application.js @@ -12,41 +12,43 @@ // them with the image_pack_tag helper in views (e.g <%= image_pack_tag 'rails.png' %>) // or the `imagePath` JavaScript helper below. // -const images = require.context('../images', true) -const imagePath = (name) => images(name, true) +const images = require.context("../images", true); +const imagePath = (name) => images(name, true); // Import CSS -import 'bootstrap/dist/css/bootstrap' -import 'admin-lte/dist/css/adminlte' -import '@fortawesome/fontawesome-free/css/all.css' -import 'stylesheets/application' +import "bootstrap/dist/css/bootstrap"; +import "admin-lte/dist/css/adminlte"; +import "@fortawesome/fontawesome-free/css/all"; +import "stylesheets/application"; // Import JS -import 'jquery' -import 'bootstrap' -import 'admin-lte' +import "jquery"; +import "bootstrap"; +import "admin-lte"; +import "clipboard"; -require('@rails/ujs').start() -require('turbolinks').start() -require('javascripts/debug_files') -require('javascripts/releases') -require('javascripts/teardown/upload') +require("@rails/ujs").start(); +require("turbolinks").start(); +require("javascripts/debug_files"); +require("javascripts/releases"); +require("javascripts/teardown/upload"); +require("javascripts/udid"); -var HOST = location.protocol + "//" + location.hostname + (location.port ? ':' + location.port : '') + '/'; +var HOST = location.protocol + "//" + location.hostname + (location.port ? ":" + location.port : "") + "/"; -document.addEventListener('turbolinks:load', function () { +document.addEventListener("turbolinks:load", function () { // fix body height for AdminLTE 2.4.0 and turbolinks 5 - $(window).trigger('resize'); + $(window).trigger("resize"); // enable tooltip global - $('[data-toggle="tooltip"]').tooltip() + $("[data-toggle='tooltip']").tooltip(); // fix collapse with no response - // $('[data-widget="collapse"]').each(function () { - // $(this).on('click', function () { - // var card = $(this).parents('.card'); - // $(card).removeClass('collapsed-box'); - // $(card).boxWidget('toggle'); + // $("[data-widget="collapse"]").each(function () { + // $(this).on("click", function () { + // var card = $(this).parents(".card"); + // $(card).removeClass("collapsed-box"); + // $(card).boxWidget("toggle"); // }) // }); }); @@ -55,6 +57,6 @@ document.addEventListener('turbolinks:load', function () { // $(document).ready(function () { // var isDarkMode = window.matchMedia("(prefers-color-scheme: dark)").matches; // if (isDarkMode) { -// $('body').removeClass('skin-black-light').addClass('skin-black'); +// $("body").removeClass("skin-black-light").addClass("skin-black"); // } // }); \ No newline at end of file diff --git a/app/views/udid/show.html.slim b/app/views/udid/show.html.slim index 7a40f6f9b..cb3573649 100644 --- a/app/views/udid/show.html.slim +++ b/app/views/udid/show.html.slim @@ -5,7 +5,7 @@ = @title .row - .col-md-6 + .col-md-12 .card.system_info .card-header h3.card-title 设备信息 @@ -13,13 +13,29 @@ dl.system-info dt UDID dd - pre = params[:udid] + .input-group.mb-3 + input#udid-text.form-control.rounded-0 value="#{params[:udid]}" readonly="true" + span.input-group-append + button.btn.btn-success.btn-flat.btn-clipboard data-clipboard-target="#udid-text" + i.far.fa-clipboard dt 型号 dd - pre = params[:product] + .input-group.mb-3 + input#product-text.form-control.rounded-0 value="#{params[:product]}" readonly="true" + span.input-group-append + button.btn.btn-success.btn-flat.btn-clipboard data-clipboard-target="#product-text" + i.far.fa-clipboard dt 序列号 dd - pre = params[:serial] + .input-group.mb-3 + input#serial-text.form-control.rounded-0 value="#{params[:serial]}" readonly="true" + span.input-group-append + button.btn.btn-success.btn-flat.btn-clipboard data-clipboard-target="#serial-text" + i.far.fa-clipboard dt 版本 dd - pre = params[:version] \ No newline at end of file + .input-group.mb-3 + input#version-text.form-control.rounded-0 value="#{params[:version]}" readonly="true" + span.input-group-append + button.btn.btn-success.btn-flat.btn-clipboard data-clipboard-target="#version-text" + i.far.fa-clipboard \ No newline at end of file diff --git a/config/webpack/environment.js b/config/webpack/environment.js index 4dc497400..57d56a590 100644 --- a/config/webpack/environment.js +++ b/config/webpack/environment.js @@ -1,16 +1,17 @@ -const { environment } = require('@rails/webpacker') -const erb = require('./loaders/erb') -const webpack = require('webpack') +const { environment } = require("@rails/webpacker") +const erb = require("./loaders/erb") +const webpack = require("webpack") -environment.loaders.prepend('erb', erb) +environment.loaders.prepend("erb", erb) environment.plugins.append( - 'Provide', + "Provide", new webpack.ProvidePlugin({ - $: 'jquery', - jQuery: 'jquery', - 'window.jQuery': 'jquery', - Popper: ['popper.js', 'default'] + $: "jquery", + jQuery: "jquery", + "window.jQuery": "jquery", + Popper: ["popper.js", "default"], + ClipboardJS: "clipboard" }) ) diff --git a/package.json b/package.json index cbb694f65..938bd581c 100644 --- a/package.json +++ b/package.json @@ -5,6 +5,7 @@ "@rails/ujs": "^6.0.3", "@rails/webpacker": "^5.0.1", "admin-lte": "^3.0.5", + "clipboard": "^2.0.6", "filepond": "^4.9.3", "rails-erb-loader": "^5.5.2", "turbolinks": "^5.2.0" diff --git a/yarn.lock b/yarn.lock index 4125dcf5b..a2621f0c3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2308,6 +2308,15 @@ cli-table@^0.3.1: dependencies: colors "1.0.3" +clipboard@^2.0.6: + version "2.0.6" + resolved "https://registry.npm.taobao.org/clipboard/download/clipboard-2.0.6.tgz?cache=0&sync_timestamp=1583389667105&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fclipboard%2Fdownload%2Fclipboard-2.0.6.tgz#52921296eec0fdf77ead1749421b21c968647376" + integrity sha1-UpISlu7A/fd+rRdJQhshyWhkc3Y= + dependencies: + good-listener "^1.2.2" + select "^1.1.2" + tiny-emitter "^2.0.0" + cliui@^3.2.0: version "3.2.0" resolved "https://registry.npm.taobao.org/cliui/download/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" @@ -3225,6 +3234,11 @@ delayed-stream@~1.0.0: resolved "https://registry.npm.taobao.org/delayed-stream/download/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= +delegate@^3.1.2: + version "3.2.0" + resolved "https://registry.npm.taobao.org/delegate/download/delegate-3.2.0.tgz#b66b71c3158522e8ab5744f720d8ca0c2af59166" + integrity sha1-tmtxwxWFIuirV0T3INjKDCr1kWY= + delegates@^1.0.0: version "1.0.0" resolved "https://registry.npm.taobao.org/delegates/download/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" @@ -4344,6 +4358,13 @@ globule@^1.0.0: lodash "~4.17.10" minimatch "~3.0.2" +good-listener@^1.2.2: + version "1.2.2" + resolved "https://registry.npm.taobao.org/good-listener/download/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50" + integrity sha1-1TswzfkxPf+33JoNR3CWqm0UXFA= + dependencies: + delegate "^3.1.2" + got@^9.6.0: version "9.6.0" resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" @@ -8330,6 +8351,11 @@ select2@^4.0.13: resolved "https://registry.yarnpkg.com/select2/-/select2-4.0.13.tgz#0dbe377df3f96167c4c1626033e924372d8ef44d" integrity sha512-1JeB87s6oN/TDxQQYCvS5EFoQyvV6eYMZZ0AeA4tdFDYWN3BAGZ8npr17UBFddU0lgAt3H0yjX3X6/ekOj1yjw== +select@^1.1.2: + version "1.1.2" + resolved "https://registry.npm.taobao.org/select/download/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d" + integrity sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0= + selfsigned@^1.10.7: version "1.10.7" resolved "https://registry.npm.taobao.org/selfsigned/download/selfsigned-1.10.7.tgz#da5819fd049d5574f28e88a9bcc6dbc6e6f3906b" @@ -9169,6 +9195,11 @@ timsort@^0.3.0: resolved "https://registry.npm.taobao.org/timsort/download/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= +tiny-emitter@^2.0.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/tiny-emitter/download/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423" + integrity sha1-HRpW7fxRxD6GPLtTgqcjMONVVCM= + tiny-inflate@^1.0.0, tiny-inflate@^1.0.2: version "1.0.3" resolved "https://registry.npm.taobao.org/tiny-inflate/download/tiny-inflate-1.0.3.tgz#122715494913a1805166aaf7c93467933eea26c4" From a01b18326164acbfef004dcbe72ea055fe4b46e4 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 22 May 2020 16:01:26 +0800 Subject: [PATCH 0176/2165] chore: fix rubocop --- .rubocop.yml | 6 ++++++ app/controllers/udid_controller.rb | 2 ++ 2 files changed, 8 insertions(+) diff --git a/.rubocop.yml b/.rubocop.yml index f310c221d..6864994c9 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -33,11 +33,15 @@ Metrics/BlockLength: - 'config/**/*.rb' - 'spec/**/*.rb' - 'lib/tasks/**/*' + - 'lib/backup/**/*' Layout/LineLength: Max: 120 Exclude: + - 'Rakefile' - 'config/**/*.rb' + - 'lib/tasks/**/*' + - 'lib/backup/**/*' Metrics/MethodLength: Max: 60 @@ -51,6 +55,8 @@ Metrics/ModuleLength: # Raise complexity metrics Metrics/AbcSize: Max: 20 + Exclude: + - 'lib/backup/**/*' Style/AsciiComments: Enabled: false diff --git a/app/controllers/udid_controller.rb b/app/controllers/udid_controller.rb index d96380773..0296be658 100644 --- a/app/controllers/udid_controller.rb +++ b/app/controllers/udid_controller.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + class UdidController < ApplicationController def index end From 17edcfa74bab16f282bfce0d3491731953709d83 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 22 May 2020 19:05:53 +0800 Subject: [PATCH 0177/2165] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=20iOS=20=E8=AE=BE=E5=A4=87=20UDID=20=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E5=85=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/udid_controller.rb | 4 ++- app/helpers/application_helper.rb | 4 +++ app/views/layouts/_main_sidebar.html.slim | 6 ++++ app/views/releases/body/_metadata.html.slim | 2 +- app/views/udid/index.html.slim | 36 +++++++++++++++++++-- config/routes.rb | 1 + 6 files changed, 49 insertions(+), 4 deletions(-) diff --git a/app/controllers/udid_controller.rb b/app/controllers/udid_controller.rb index 0296be658..a7c4410f3 100644 --- a/app/controllers/udid_controller.rb +++ b/app/controllers/udid_controller.rb @@ -2,6 +2,8 @@ class UdidController < ApplicationController def index + @title = '获取设备 UDID' + @qrcode = RQRCode::QRCode.new(udid_url) end def create @@ -27,7 +29,7 @@ def show def install @udid = Rails.cache.fetch('ios-udid', expires_in: 1.week) { SecureRandom.uuid.upcase } - content_type = params[:preview].present? ? 'html/text' : 'application/x-apple-aspen-config' + content_type = params[:preview].present? ? 'application/xml' : 'application/x-apple-aspen-config' render content_type: content_type, layout: false # plist = render_to_string(layout: false) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 8df9b5839..ddb8eb42f 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -95,6 +95,10 @@ def android?(source = nil) !(source =~ /Android|android/i).nil? end + def phone? + ios? || android? + end + # 检查移动设备 def detect_device(device) if ios?(user_agent) && ios?(device) diff --git a/app/views/layouts/_main_sidebar.html.slim b/app/views/layouts/_main_sidebar.html.slim index 97bae534a..7f4314a1a 100644 --- a/app/views/layouts/_main_sidebar.html.slim +++ b/app/views/layouts/_main_sidebar.html.slim @@ -14,10 +14,16 @@ a.nav-link href="#{debug_files_path}" class="#{active_class(debug_files_path)}" i.nav-icon.fas.fa-bug p 调试文件管理 + + li.nav-header 工具箱 li class="nav-item" a.nav-link href="#{new_teardown_path}" class="#{active_class(new_teardown_path)}" i.nav-icon.fas.fa-gavel p 应用解析 + li class="nav-item" + a.nav-link href="#{udid_path}" class="#{active_class(udid_path)}" + i.nav-icon.fas.fa-mobile + p 获取 iOS 设备 UDID - if current_user.admin? li.nav-header 管理区域 diff --git a/app/views/releases/body/_metadata.html.slim b/app/views/releases/body/_metadata.html.slim index e445dd3af..751c05b72 100644 --- a/app/views/releases/body/_metadata.html.slim +++ b/app/views/releases/body/_metadata.html.slim @@ -71,7 +71,7 @@ button.btn.btn-icon.bg-success.btn-lg[ id="download_it" data-install-url="#{@release.install_url}" - data-loading-text=" 等待系统弹窗确认安装 ..."] + data-loading-text=" 等待系统弹窗确认安装 ..."] i.fas.fa-paper-plane | 在线安装 diff --git a/app/views/udid/index.html.slim b/app/views/udid/index.html.slim index dfcdbd38b..db3e4f43b 100644 --- a/app/views/udid/index.html.slim +++ b/app/views/udid/index.html.slim @@ -1,2 +1,34 @@ -h1 Udid#index -p Find me in app/views/udid/index.html.slim +- content_for :title do + = @title + +- content_for :section_title do + = @title + +.row + .col-md-12 + == render 'releases/body/wechat' + + .card + .card-body.text-center + - if phone? + = link_to '点击获取设备 UDID', udid_install_path, class: 'btn bg-success btn-lg btn-block' + - else + = raw @qrcode.as_svg + - unless phone? + .card-footer.text-center 请使用 iPhone 或 iPad 上的 Safari 浏览器打开本页面或者扫描上面的二维码,即可快速获取 UDID + + .col-md-12 + .card + .card-header.card-border + h3.card-title 使用帮助 + .card-body + strong 获取步骤 + ol + li 点击系统会弹窗的"允许”下载描述文件 + li 打开手机“设置” 找到顶部的 "已下载描述文件" 点击可以待安装的 "获取设备UDID" 的描述文件 + li 一路点击”安装“并输入锁屏密码允许安装描述文件 + li 安装之后描述文件会自动删除并跳转一个结果页面 + strong 什么是UDID? + p + | UDID,是 iOS 设备的一个唯一识别码,每台 iOS 设备都有一个独一无二的编码,这个编码, + | 我们称之为识别码,也叫做UDID( Unique Device Identifier)。 \ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb index 870ae2411..319133f4e 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -77,6 +77,7 @@ ############################################# # UDID (iOS) ############################################# + get 'udid', to: 'udid#index' get 'udid/install', to: 'udid#install' post 'udid/retrieve', to: 'udid#create' get 'udid/:udid', to: 'udid#show', as: 'udid_result' From 7dbe84521925b31a9a8ed398582d0981036d69b8 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Sat, 23 May 2020 13:30:39 +0800 Subject: [PATCH 0178/2165] =?UTF-8?q?style:=20=E4=BF=AE=E5=A4=8D=E6=89=80?= =?UTF-8?q?=E6=9C=89=E8=A1=A8=E6=A0=BC=E5=8D=95=E8=A1=8C=E5=86=85=E5=AE=B9?= =?UTF-8?q?=E8=B6=85=E9=95=BF=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/javascript/stylesheets/app.scss | 8 -------- app/javascript/stylesheets/dashboard.scss | 9 +++++++++ app/views/teardowns/_android.html.slim | 8 ++++---- 3 files changed, 13 insertions(+), 12 deletions(-) diff --git a/app/javascript/stylesheets/app.scss b/app/javascript/stylesheets/app.scss index 8993d55fc..64cfc8895 100644 --- a/app/javascript/stylesheets/app.scss +++ b/app/javascript/stylesheets/app.scss @@ -128,14 +128,6 @@ $ios-install-issue-color: rgb(245, 39, 90); } } -.devices { - .table { - td { - word-break: break-all; - } - } -} - // App 最近上传 .release-changelogs-toggle { diff --git a/app/javascript/stylesheets/dashboard.scss b/app/javascript/stylesheets/dashboard.scss index 7eaae2d07..c96353110 100644 --- a/app/javascript/stylesheets/dashboard.scss +++ b/app/javascript/stylesheets/dashboard.scss @@ -27,4 +27,13 @@ } } } +} + +// 适配 card 内内容超长 +.card-body { + .table { + td { + word-break: break-all; + } + } } \ No newline at end of file diff --git a/app/views/teardowns/_android.html.slim b/app/views/teardowns/_android.html.slim index 1a0be17b7..5053a04d5 100644 --- a/app/views/teardowns/_android.html.slim +++ b/app/views/teardowns/_android.html.slim @@ -37,7 +37,7 @@ ruby: .card-tools button.btn.btn-tool data-card-widget="collapse" i.fas.fa-minus - .card-body + .card-body.p-0 table.table.table-striped - @app_info.activities.each do |activity| - if activity.present? @@ -52,7 +52,7 @@ ruby: .card-tools button.btn.btn-tool data-card-widget="collapse" i.fas.fa-minus - .card-body + .card-body.p-0 table.table.table-striped - @app_info.use_permissions.sort.each do |permission| - if permission.present? @@ -66,7 +66,7 @@ ruby: .card-tools button.btn.btn-tool data-card-widget="collapse" i.fas.fa-minus - .card-body + .card-body.p-0 table.table.table-striped - @app_info.use_features.compact.sort.each do |feature| - if feature.present? @@ -80,7 +80,7 @@ ruby: .card-tools button.btn.btn-tool data-card-widget="collapse" i.fas.fa-minus - .card-body + .card-body.p-0 table.table.table-striped - @app_info.services.sort_by(&:name).each do |service| - if service.present? From 9ec627e27f3523fb409911693eb043e29807dde6 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Sat, 23 May 2020 14:58:57 +0800 Subject: [PATCH 0179/2165] =?UTF-8?q?feat:=20=E6=94=AF=E6=8C=81=E8=A7=A3?= =?UTF-8?q?=E6=9E=90=E5=B7=B2=E4=B8=8A=E4=BC=A0=E5=BA=94=E7=94=A8=E7=9A=84?= =?UTF-8?q?=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .dockerignore | 3 +- app/controllers/teardowns_controller.rb | 41 ++++++++++++++++--- app/views/layouts/_main_sidebar.html.slim | 4 +- app/views/teardowns/_exists_form.html.slim | 6 +++ ..._form.html.slim => _upload_form.html.slim} | 0 app/views/teardowns/new.html.slim | 14 ++++++- config/routes.rb | 2 +- 7 files changed, 58 insertions(+), 12 deletions(-) create mode 100644 app/views/teardowns/_exists_form.html.slim rename app/views/teardowns/{_form.html.slim => _upload_form.html.slim} (100%) diff --git a/.dockerignore b/.dockerignore index 58d66218e..6e36b531d 100644 --- a/.dockerignore +++ b/.dockerignore @@ -37,4 +37,5 @@ README.* .vscode .DS_Store .ruby-gemset -.ruby-version \ No newline at end of file +.ruby-version +.codeclimate.yml \ No newline at end of file diff --git a/app/controllers/teardowns_controller.rb b/app/controllers/teardowns_controller.rb index 7fa9b64ba..de633959d 100644 --- a/app/controllers/teardowns_controller.rb +++ b/app/controllers/teardowns_controller.rb @@ -1,21 +1,50 @@ # frozen_string_literal: true class TeardownsController < ApplicationController - # GET /teardowns/ + + def index + redirect_to new_teardown_path, alert: "链接失效,请重新解析文件" + end + def show end - # GET /teardowns/upload def new @title = '应用解析' end - # POST /teardowns def create - file = params[:file] - @app_info = AppInfo.parse(file.tempfile) + if params[:file] + parse_file + else + parse_exists_app + end + + rescue ActionController::RoutingError => e + flash[:error] = e.message + render :new rescue AppInfo::UnkownFileTypeError - flash.now[:message] = '无法识别上传的应用类型' + flash[:error] = '无法识别上传的应用类型' + render :new + rescue AppInfo::NotFoundError => e + flash[:error] = "无法找到安装包: #{e}" render :new end + + private + + def parse_file + file = params[:file] + @app_info = AppInfo.parse(file.tempfile) + end + + def parse_exists_app + data = Rails.application.routes.recognize_path(params[:url]) + unless data[:controller] == 'releases' && data[:action] == 'show' + raise ActionController::RoutingError, '不是正确的版本详情链接,请重试' + end + + release = Release.find(data[:id]) + @app_info = AppInfo.parse(release.file.file.path) + end end diff --git a/app/views/layouts/_main_sidebar.html.slim b/app/views/layouts/_main_sidebar.html.slim index 7f4314a1a..cde28655b 100644 --- a/app/views/layouts/_main_sidebar.html.slim +++ b/app/views/layouts/_main_sidebar.html.slim @@ -18,8 +18,8 @@ li.nav-header 工具箱 li class="nav-item" a.nav-link href="#{new_teardown_path}" class="#{active_class(new_teardown_path)}" - i.nav-icon.fas.fa-gavel - p 应用解析 + i.nav-icon.fas.fa-layer-group + p 文件解析 li class="nav-item" a.nav-link href="#{udid_path}" class="#{active_class(udid_path)}" i.nav-icon.fas.fa-mobile diff --git a/app/views/teardowns/_exists_form.html.slim b/app/views/teardowns/_exists_form.html.slim new file mode 100644 index 000000000..c290588c4 --- /dev/null +++ b/app/views/teardowns/_exists_form.html.slim @@ -0,0 +1,6 @@ += form_tag(teardowns_path, class:'form') do |form| + .form-group + input.form-control name="url" value="#{params[:url]}" placeholder="#{channel_release_url(Channel.take, Release.take)}" + + .form-group + = submit_tag '开始解析', class: 'btn btn-primary' \ No newline at end of file diff --git a/app/views/teardowns/_form.html.slim b/app/views/teardowns/_upload_form.html.slim similarity index 100% rename from app/views/teardowns/_form.html.slim rename to app/views/teardowns/_upload_form.html.slim diff --git a/app/views/teardowns/new.html.slim b/app/views/teardowns/new.html.slim index 9aacad772..cd40595d2 100644 --- a/app/views/teardowns/new.html.slim +++ b/app/views/teardowns/new.html.slim @@ -6,6 +6,16 @@ .row .col-md-12 - .card + .card.card-outline-tabs.card-primary.card-outline + .card-header.p-0.border-bottom-0 + ul.nav.nav-tabs role="tablist" + li.nav-item + a.nav-link.active data-toggle="tab" href="#tab-upload" 上传应用 + li.nav-item + a.nav-link data-toggle="tab" href="#tab-exists" 已上传应用 .card-body - == render 'form' \ No newline at end of file + .tab-content + .tab-pane.active id="tab-upload" + == render 'upload_form' + .tab-pane id="tab-exists" + == render 'exists_form' diff --git a/config/routes.rb b/config/routes.rb index 319133f4e..a5d574bb2 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -64,7 +64,7 @@ ############################################# # Teardown ############################################# - resources :teardowns, only: %i[show new create], path_names: { new: 'upload' } + resources :teardowns, only: %i[index show new create], path_names: { new: 'upload' } ############################################# # Download From 8494d209bbd2d2a15abec64ab56e147184e7f4ef Mon Sep 17 00:00:00 2001 From: icyleaf Date: Sat, 23 May 2020 15:02:40 +0800 Subject: [PATCH 0180/2165] =?UTF-8?q?doc:=20=E6=9B=B4=E6=96=B0=20README?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 29ced0823..4abe5a366 100644 --- a/README.md +++ b/README.md @@ -15,12 +15,13 @@ - [x] 支持 iOS dSYM 和 Android Progruard 文件的备份管理和解析 - [x] 支持单次上传解析 iOS 和 Android 包信息 - [x] 支持自定义网络(WebHooks)数据来实时发送给通知服务(钉钉、企业微信、Slack 等) -- [x] 可接入 Jenkins 服务实现远程构建 -- [x] 可接入 Gitlab 服务直接挂钩源码管理 +- [x] 支持获取 iOS 设备 UDID - [x] 支持丰富的 REST APIs - [x] 支持 OAuth 认证登录(目前以接入 Google,LDAP) -- [x] 提供 fastlane 插件 [zealot][fastlan-plugin-link] 提供上传服务 -- [x] 提供检查新版本和安装服务的 [iOS][ios-sdk-link] 和 [Android][android-sdk-link] 组件 +- [x] 提供检查新版本和安装服务的 iOS 和 Android 组件 +- [x] 提供 fastlane 插件 [zealot](https://github.com/getzealot/fastlane-plugin-zealot) 提供上传服务 +- [x] 可接入 Gitlab 服务直接挂钩源码管理 +- [ ] 可接入 Jenkins 服务实现远程构建 - [ ] 支持 GraphGL 接口(进行中) - [ ] 提供 cli 命令行工具(旧插件需要移植即可但貌似没有啥必要,有用没用先列在这) From c8237409079440734f37715b5cb1674fb7988c00 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 25 May 2020 19:51:25 +0800 Subject: [PATCH 0181/2165] =?UTF-8?q?refactor:=20=E5=9C=A8=E7=BA=BF?= =?UTF-8?q?=E8=A7=A3=E5=8C=85=E9=9C=80=E7=99=BB=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/teardowns_controller.rb | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/controllers/teardowns_controller.rb b/app/controllers/teardowns_controller.rb index de633959d..dc5e0bae3 100644 --- a/app/controllers/teardowns_controller.rb +++ b/app/controllers/teardowns_controller.rb @@ -1,6 +1,7 @@ # frozen_string_literal: true class TeardownsController < ApplicationController + before_action :authenticate_user! def index redirect_to new_teardown_path, alert: "链接失效,请重新解析文件" @@ -17,6 +18,7 @@ def create if params[:file] parse_file else + authorize :teardown, :create? parse_exists_app end @@ -35,7 +37,7 @@ def create def parse_file file = params[:file] - @app_info = AppInfo.parse(file.tempfile) + authorize @app_info = AppInfo.parse(file.tempfile) end def parse_exists_app @@ -45,6 +47,6 @@ def parse_exists_app end release = Release.find(data[:id]) - @app_info = AppInfo.parse(release.file.file.path) + authorize @app_info = AppInfo.parse(release.file.file.path) end end From c8192246c3dea7691aec5595bf7f111953d2633b Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 25 May 2020 19:52:34 +0800 Subject: [PATCH 0182/2165] =?UTF-8?q?refactor:=20=E9=87=8D=E6=9E=84=20devi?= =?UTF-8?q?ecs=20=E6=95=B0=E6=8D=AE=E5=B1=95=E7=A4=BA=E5=B9=B6=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E4=B8=8A=E4=BC=A0=E5=90=8C=E6=AD=A5=E8=AE=BE=E5=A4=87?= =?UTF-8?q?=E5=90=8D=E7=A7=B0=20(#211)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .rubocop.yml | 3 ++ Guardfile | 1 + .../admin/system_info_controller.rb | 23 +++++++++----- app/controllers/api/devices_controller.rb | 25 +++++++++++++++ app/controllers/teardowns_controller.rb | 20 +++++++----- app/models/device.rb | 5 +++ app/models/release.rb | 8 +++-- app/views/releases/body/_devices.html.slim | 17 ++++++++-- app/views/teardowns/_exists_form.html.slim | 1 + app/views/teardowns/_upload_form.html.slim | 1 + config/routes.rb | 1 + db/migrate/20140926021348_create_users.rb | 2 +- db/migrate/20200523073900_create_devices.rb | 10 ++++++ ...74639_create_join_table_release_devices.rb | 8 +++++ ...me_table_release_devices_to_old_devices.rb | 9 ++++++ db/schema.rb | 19 ++++++++++-- lib/tasks/zealot/migration.rake | 31 +++++++++++++++++++ lib/tasks/zealot/zealot.rake | 5 +-- 18 files changed, 166 insertions(+), 23 deletions(-) create mode 100644 app/controllers/api/devices_controller.rb create mode 100644 app/models/device.rb create mode 100644 db/migrate/20200523073900_create_devices.rb create mode 100644 db/migrate/20200523074639_create_join_table_release_devices.rb create mode 100644 db/migrate/20200523081718_rename_table_release_devices_to_old_devices.rb create mode 100644 lib/tasks/zealot/migration.rake diff --git a/.rubocop.yml b/.rubocop.yml index 6864994c9..21af07cf6 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -58,6 +58,9 @@ Metrics/AbcSize: Exclude: - 'lib/backup/**/*' +Style/Alias: + EnforcedStyle: prefer_alias_method + Style/AsciiComments: Enabled: false diff --git a/Guardfile b/Guardfile index 2439ca553..f6a324b24 100644 --- a/Guardfile +++ b/Guardfile @@ -44,6 +44,7 @@ end # CLI: 'rails server' # customizes runner command. Omits all options except `pid_file`! guard :rails, host: '0.0.0.0', environment: environment do ignore(%r{^config/(locales|webpack)/.*}) + ignore(%r{^lib/tasks/.*}) watch('.env') watch('Gemfile.lock') diff --git a/app/controllers/admin/system_info_controller.rb b/app/controllers/admin/system_info_controller.rb index 49b0f89f9..c5a6fab02 100644 --- a/app/controllers/admin/system_info_controller.rb +++ b/app/controllers/admin/system_info_controller.rb @@ -114,18 +114,27 @@ def set_disks end def get_version - version = Rails.cache.fetch('zealot_version_check', expires_in: 1.hours) do - HTTP.headers(accept: 'application/vnd.github.v3+json') - .get(VERSION_CHECK_URL) - .parse + begin + version = Rails.cache.fetch('zealot_version_check', expires_in: 1.hours) do + HTTP.headers(accept: 'application/vnd.github.v3+json') + .get(VERSION_CHECK_URL) + .parse + end + + latest_version = version['tag_name'] + update_available = update_available?(latest_version) + release_link = version['html_url'] + rescue HTTP::ConnectionError + update_available = false + latest_version = nil + release_link = nil end - latest_version = version['tag_name'] @version = { - update_available: update_available?(latest_version), + update_available: update_available, current_version: Zealot::Setting.version, latest_version: latest_version, - release_link: version['html_url'], + release_link: release_link, } end diff --git a/app/controllers/api/devices_controller.rb b/app/controllers/api/devices_controller.rb new file mode 100644 index 000000000..074ac3a45 --- /dev/null +++ b/app/controllers/api/devices_controller.rb @@ -0,0 +1,25 @@ +# frozen_string_literal: true + +class Api::DevicesController < Api::BaseController + before_action :validate_user_token + before_action :set_device + + # POST /api/devices/:id?name=MyiPhone + def update + raise ActiveRecord::RecordNotFound, "设备 UDID (#{params[:id]}) 不存在" unless @device + raise ActionController::ParameterMissing, 'name' if device_params[:name].blank? + + @device.update(device_params) + render json: @device + end + + protected + + def set_device + @device = Device.find_by(udid: params[:id]) + end + + def device_params + params.permit(:name) + end +end diff --git a/app/controllers/teardowns_controller.rb b/app/controllers/teardowns_controller.rb index dc5e0bae3..90a5c5f15 100644 --- a/app/controllers/teardowns_controller.rb +++ b/app/controllers/teardowns_controller.rb @@ -15,13 +15,16 @@ def new end def create - if params[:file] + # return render json: params + case params[:type] + when 'upload' parse_file - else - authorize :teardown, :create? + when 'url' parse_exists_app + else + flash[:error] = '错误请求,无法解析' + render :new end - rescue ActionController::RoutingError => e flash[:error] = e.message render :new @@ -36,8 +39,11 @@ def create private def parse_file - file = params[:file] - authorize @app_info = AppInfo.parse(file.tempfile) + unless file = params[:file] + raise ActionController::RoutingError, '请选择需要解析的 ipa 或 apk 安装包' + end + + @app_info = AppInfo.parse(file.tempfile) end def parse_exists_app @@ -47,6 +53,6 @@ def parse_exists_app end release = Release.find(data[:id]) - authorize @app_info = AppInfo.parse(release.file.file.path) + @app_info = AppInfo.parse(release.file.file.path) end end diff --git a/app/models/device.rb b/app/models/device.rb new file mode 100644 index 000000000..8d23c21c5 --- /dev/null +++ b/app/models/device.rb @@ -0,0 +1,5 @@ +# frozen_string_literal: true + +class Device < ApplicationRecord + has_and_belongs_to_many :releases +end diff --git a/app/models/release.rb b/app/models/release.rb index 97fd8a3bf..d838383d4 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -9,6 +9,7 @@ class Release < ApplicationRecord scope :latest, -> { order(version: :desc).first } belongs_to :channel + has_and_belongs_to_many :devices validates :bundle_id, :release_version, :build_version, :file, presence: true validate :bundle_id_matched, on: :create @@ -61,7 +62,10 @@ def self.upload_file(params) if parser.os == AppInfo::Platform::IOS && parser.release_type == AppInfo::IPA::ExportType::ADHOC && parser.devices.present? - release.devices = parser.devices + + parser.devices.each do |udid| + release.devices << Device.find_or_create_by(udid: udid) + end end rescue AppInfo::UnkownFileTypeError release.errors.add(:file, '上传的应用无法正确识别') @@ -83,7 +87,7 @@ def app_name def size file&.size end - alias file_size size + alias_method :file_size, :size def short_git_commit return nil if git_commit.blank? diff --git a/app/views/releases/body/_devices.html.slim b/app/views/releases/body/_devices.html.slim index 5c3839288..f03a42a81 100644 --- a/app/views/releases/body/_devices.html.slim +++ b/app/views/releases/body/_devices.html.slim @@ -6,10 +6,23 @@ i.fas.fa-mobile-alt = " #{@release.devices.count} 台测试设备 (UDID)" .card-tools + button.btn.btn-tool data-toggle="dropdown" title="显示设备名称需要使用 zealot_sync_device fastlane 插件" + i.fas.fa-info-circle + .dropdown-menu.dropdown-menu-right + small.dropdown-item + | 使用  + a href="http://zealot.ews.im/#/modules?id=zealot_sync_devices" target="_blank" zealot_sync_device + | 同步设备名称 + button.btn.btn-tool data-card-widget="collapse" i.fas.fa-plus .card-body.p-0 table.table - - @release.devices.each do |device| + - @release.devices.sort_by(&:name).each do |device| tr - td = device \ No newline at end of file + td + span = device.udid + - if device.name.present? + .float-right + small.badge.badge-light + = device.name \ No newline at end of file diff --git a/app/views/teardowns/_exists_form.html.slim b/app/views/teardowns/_exists_form.html.slim index c290588c4..6b096807a 100644 --- a/app/views/teardowns/_exists_form.html.slim +++ b/app/views/teardowns/_exists_form.html.slim @@ -1,6 +1,7 @@ = form_tag(teardowns_path, class:'form') do |form| .form-group input.form-control name="url" value="#{params[:url]}" placeholder="#{channel_release_url(Channel.take, Release.take)}" + input name="type" value="url" type="hidden" .form-group = submit_tag '开始解析', class: 'btn btn-primary' \ No newline at end of file diff --git a/app/views/teardowns/_upload_form.html.slim b/app/views/teardowns/_upload_form.html.slim index 6388b3131..acab8c682 100644 --- a/app/views/teardowns/_upload_form.html.slim +++ b/app/views/teardowns/_upload_form.html.slim @@ -6,6 +6,7 @@ | 应用文件 .input-group = file_field_tag 'file', class: 'custom-file-input2' + input name="type" value="upload" type="hidden" p.help-block 支持 .apk 和 .ipa 文件 diff --git a/config/routes.rb b/config/routes.rb index a5d574bb2..a9d881ce6 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -125,6 +125,7 @@ post 'debug_files/upload', to: 'debug_files#create' get 'debug_files/download', to: 'debug_files/download#show' resources :debug_files, except: %i[create new edit] + resources :devices, only: %i[update] namespace :jenkins do get 'projects', to: 'projects#index' diff --git a/db/migrate/20140926021348_create_users.rb b/db/migrate/20140926021348_create_users.rb index 21e48df5f..69bb6498d 100644 --- a/db/migrate/20140926021348_create_users.rb +++ b/db/migrate/20140926021348_create_users.rb @@ -1,6 +1,6 @@ class CreateUsers < ActiveRecord::Migration[6.0] def change - create_table(:users) do |t| + create_table :users do |t| ## Database authenticatable t.string :username, unique: true t.string :email, null: false, default: '', unique: true diff --git a/db/migrate/20200523073900_create_devices.rb b/db/migrate/20200523073900_create_devices.rb new file mode 100644 index 000000000..b45a9e7a3 --- /dev/null +++ b/db/migrate/20200523073900_create_devices.rb @@ -0,0 +1,10 @@ +class CreateDevices < ActiveRecord::Migration[6.0] + def change + create_table :devices do |t| + t.string :udid, unique: true, null: false, index: true + t.string :name + + t.timestamps + end + end +end diff --git a/db/migrate/20200523074639_create_join_table_release_devices.rb b/db/migrate/20200523074639_create_join_table_release_devices.rb new file mode 100644 index 000000000..9d501b287 --- /dev/null +++ b/db/migrate/20200523074639_create_join_table_release_devices.rb @@ -0,0 +1,8 @@ +class CreateJoinTableReleaseDevices < ActiveRecord::Migration[6.0] + def change + create_join_table :releases, :devices do |t| + t.index [:release_id, :device_id]#, unique: true + t.index [:device_id, :release_id]#, unique: true + end + end +end diff --git a/db/migrate/20200523081718_rename_table_release_devices_to_old_devices.rb b/db/migrate/20200523081718_rename_table_release_devices_to_old_devices.rb new file mode 100644 index 000000000..ced041d6b --- /dev/null +++ b/db/migrate/20200523081718_rename_table_release_devices_to_old_devices.rb @@ -0,0 +1,9 @@ +class RenameTableReleaseDevicesToOldDevices < ActiveRecord::Migration[6.0] + def up + rename_column :releases, :devices, :legacy_devices + end + + def down + rename_column :releases, :legacy_devices, :devices + end +end diff --git a/db/schema.rb b/db/schema.rb index c8c4bb415..201c6f123 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 2020_05_08_074228) do +ActiveRecord::Schema.define(version: 2020_05_23_081718) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -79,6 +79,21 @@ t.index ["app_id"], name: "index_debug_files_on_app_id" end + create_table "devices", force: :cascade do |t| + t.string "udid", null: false + t.string "name" + t.datetime "created_at", precision: 6, null: false + t.datetime "updated_at", precision: 6, null: false + t.index ["udid"], name: "index_devices_on_udid" + end + + create_table "devices_releases", id: false, force: :cascade do |t| + t.bigint "release_id", null: false + t.bigint "device_id", null: false + t.index ["device_id", "release_id"], name: "index_devices_releases_on_device_id_and_release_id" + t.index ["release_id", "device_id"], name: "index_devices_releases_on_release_id_and_device_id" + end + create_table "releases", force: :cascade do |t| t.bigint "channel_id" t.string "bundle_id", null: false @@ -93,7 +108,7 @@ t.string "ci_url" t.jsonb "changelog", null: false t.string "file" - t.jsonb "devices", default: [], null: false + t.jsonb "legacy_devices", default: [], null: false t.datetime "created_at", precision: 6, null: false t.datetime "updated_at", precision: 6, null: false t.jsonb "custom_fields", default: [], null: false diff --git a/lib/tasks/zealot/migration.rake b/lib/tasks/zealot/migration.rake new file mode 100644 index 000000000..ad746d5fa --- /dev/null +++ b/lib/tasks/zealot/migration.rake @@ -0,0 +1,31 @@ +# frozen_string_literal: true + +namespace :zealot do + namespace :migration do + task upgrade: :environment do + Rake::Task['zealot:migration:upgrade_devices'].invoke if Device.count.zero? || Device.take.releases.empty? + end + + # 把 Release.devices JSON 字符串转移到独立表 Device + task upgrade_devices: :environment do + puts 'Moving devices data from Release table into Device table' + + udids = [] + Release.find_each do |release| + next if release.legacy_devices.empty? + + release.legacy_devices.each do |udid| + udids << udid unless udids.include?(udid) + + device = Device.find_or_create_by!(udid: udid) + release.devices << device + end + end + + puts "Valiting device data" + if Device.count == udids.count + + end + end + end +end diff --git a/lib/tasks/zealot/zealot.rake b/lib/tasks/zealot/zealot.rake index ccc426cb4..78c2e60a7 100644 --- a/lib/tasks/zealot/zealot.rake +++ b/lib/tasks/zealot/zealot.rake @@ -14,11 +14,12 @@ namespace :zealot do namespace :db do task upgrade: :environment do begin - db_version = Rake::Task['db:version'].invoke.split(': ').last - if db_version == '0' + db_version = ActiveRecord::Migrator.current_version + if db_version == 0 Rake::Task['zealot:db:setup'].invoke else Rake::Task['zealot:db:migrate'].invoke + Rake::Task['zealot:migration:upgrade'].invoke end rescue PG::ConnectionBad, ActiveRecord::NoDatabaseError # 无法连接数据库 From dee14dabe49fee6110bfde20692c76062c8abf28 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 26 May 2020 10:47:22 +0800 Subject: [PATCH 0183/2165] =?UTF-8?q?style:=20=E6=9B=B4=E6=96=B0=20favicon?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/javascript/images/touch-icon.png | Bin 963 -> 1442 bytes app/javascript/images/touch-icon@2x.png | Bin 1212 -> 2232 bytes app/javascript/images/touch-icon@3x.png | Bin 3599 -> 2787 bytes app/views/layouts/application.html.slim | 1 + public/favicon.ico | Bin 0 -> 1150 bytes 5 files changed, 1 insertion(+) create mode 100644 public/favicon.ico diff --git a/app/javascript/images/touch-icon.png b/app/javascript/images/touch-icon.png index 039e84f1f24fa561f37b73b8cc15674bb5dd491b..b7f30eed71132108171b93fff80fc6ea3c178241 100644 GIT binary patch literal 1442 zcmeAS@N?(olHy`uVBq!ia0vp^6(G#P1|%(0%q{^b#^NA%Cx&(BWL^R}E~ycoX}-P; zT0k}j17mw80}DtA5K93u0|WB{Mh0de%?J`(zyz1ASip>6gA{T+3Vp}Gz{=z4;uuoF z_;&8?ED=Y6Heuo34uyHH`co~UdscrzR{=*?0ausS z28FH)2a%5gYn9gIT=Tv2?&Yd=tNt)6-n_eV)w=hyUwWpcn=vy-I54mfKnoZf53+5% zv@kj3!Ge;BPCwrV&0}vZ67@BXF^RsJ@_5QSpPN&XZk`KHo7^eOx=&_Js)wPC8R$aEY73@^MIG;K->vfdapE(X6!rv8XnHw0sGhbV; zZ0MHz^+a%qcjqJLRiDFFh84|R(d6E7#Kow0PlI-4qE%oZ>u1rKr%MI+95x8OIA^48 zEzj}q&y1q|LTBz%GDGf-0RL&+BKy^<%f%)(trO$myP!~ zKS}CTs_4k@*Agr@wl(h8X!;(kzgmQ4|6(aM`&Ehi?k(oHX0@|$uEV)A?3W*X4rIxe zt&jCRzvrNHSmY+v}aYD&$z;-DweD{xx`I*hV9PJN91U&*$yF{ZX%i z*L2JJ-I|TZ<29b=Htu<(xtH6{uf?QlhiB=&?%M(y3mDxKZqx^7{jGfRZu@gH#q&+m z1BKmh_j1(zciWlI`AppRZRCeUrOi%L&gB%@eX9#yp&WE*^Mh#|6YD4M`tx?@T{f2O zo?rg`Yo0gn)!#||>3g~Ec~+QfD(rJMwbQ;LsQob1VA*p!b54$V@>le$I`7*S?X3{m zGqK}+(1N=DtUci?l%ozUPVhO;Ih%#$d)v|LF*|pfY%Ay9e7;KfjJnw|@vIdWvTLsY zo9(o7)v}Lj6-^nLF;cI8J#l+3_SAR7wb|SPcXm$I_LG`}#QxUgv3Yy2 zdgaEenrBnjz5cfLVBFs-p*ydxHXJBUT$Y~p*mJ|NkJpa^)k$v^KN!7o<;5w-jIQ&V z+8Q(KH$~4p6m;0h_q>2j_)R|$Z~7i;PS|Hs zwxaq0Q~zPv`k52i4@w=64=;baJm=0e*3Xsc_nMbZ&ki|o7HEmV8g9A8X+I8!E}1^z zva$1Ky@=$hXS=_>_s)0R`pNmjo6>OOtt=kbx9ZHWpH$Fo!f;BytSYT+8f&)C`S~4< zyLW$!jM;xWN&L;Hb${!geyR#%UB7(eThC0D;=30v8yicWVNsSXo5eL}vYyk=_zU5k z=kM-tsMOQyG2eNlps2;K;n>IN);Hr;%-!1hNyI<7ulNOS+@4BLl<6e(pbstU$g(vPY0F z14ES>14Ba#1H&(%P{RubhEf9thF1v;3|2E37{m+a>X{yi`E!QOR}vWorKf8b`z)03I4kMmA%*4uD^iCYImtYP2h{eO;1TltFi zy|ypRYyuy0a_|TCZa)?R*hdI?AT!@1{zABMhQ+cABc zLd)ZjAA;|{@QNP0e>(2n-wK{Xr$c_6ZTO%nYS)xk-pl3hTru&M!@e4UeG3jnz9 z`9Y}V`Ocjy`46RsSn%K7#wB{MpHH&3lAN2d$MiH$`5ui1ufEn%N6DA<^gn{xSqC5J431KDvK=QCbO*#DPj0n7dD6AWG- zrnLc?{TU}1v_5pZJF^8e@|UJCh*~UCX4W_`e=SGf%#a^4?@Fd|AK#L~z`DcTn{9>s zzN?cNU$qOL_!_$7gF;ifkJg_xn#@;t-#hKF|4|)e^|0`D{f{mG9#!WTah%&B+mt@H ziP`U99WWL^QStAzAUH;De5zrdt+?vd!!^ATz+~Z)8sVAd>&u`8WOFbuwr4W109lMc zECs|249p7{8JK}IBS>rk6I`}p0W*RPQpoWr^c|2=Epd$~Nl7e8wMs5Z1yT$~28Ncp zhDJaXVrXP#U}|M*tZiUmWni#;tE&WxhTQy=%(P0}8m_(gy9B5~5M)DYMP{0nbAC>K zQE)+Gaw>x%|7<2tprjC7(iNz}KP{~|wS>XQELeI`Do|DeE*p?pk(v|Xl9`*DSDcxj i$6#n=P{N}09#c&uikg?)hi3xSFnGH9xvXzY?^zb*4SebQFBY~JT_~lzQ|?! z7Q!OwBF1c)OJVd)SVKK!O0LiR@;raQ_jx@(ywCe{&UwGjIiJt#bzbLWdV8W&l=dnC z000&A2^Sw3H*G^vLDnL83N|tVUiCpa16Tw5KFK;Rq5kMF4-bHeELH>n(<1?(ZHWwf zWdH!=Du4hv83VV+Dt7#5wy8qyzwx&4>~KkfYzYIj%Q4@702k?fcc8~LCKm$yvyHvncjQ)nRd6Xy*p)u_=ppt6>p)2@&s;oT){ zydTN0C3k)+3Qua2_|m^@Ri6G3^f#^jSP?We7%&2FfRH+ ztewKVf(wg(*U_~wXUhL9f6N~+TWOc(#uVMHm?ITB7ksQi0+90&=K02yl03{oG`Qhj zvr82uz&VU=Xx(&YM7``n#ICZqf|mk^0Jo4VCM;wGt^R*9JQzHS`$Db6Hq}VzT5CM5 zX?v9oKOtaVfbA80X*TPDn!k?Sd%Z3)B~HvQIKVi$agF&1waPaL>fe7D=LDvsifHEj zbqUVR>N9THtBI!hY4WcG37~|5=lghjYKx6@AFCh6d2j1_`f>u@zB=Evokn#D5^S@g z#j$3uuuJ!~9hE3CtT%hKKIG2^2W0CtPFzlfaN2SW7<2?2EIN;Wpvc}i@I8?>&c88N zniN&er0FBVL>sR&DzzRoHfEr9+SI7TGhOp(KhS1a2i0!2fovL^^HZaot$FG7AwD3*s=LtdAX5-*6!V?P~J*~9Z= zXm+lHHtf9~gmc%Zx_(@4nG-*#j3lMDl^>IxY{Qk?GE>1S*%dC1YNs?DU^7CWV(c~W z>zc@1;fciL2`Zv&ga~UeWXFKfc(Hz_bX1oAlvxg2c-oi^qp(m+~-&I2Q2j^ZO&gV1y_B=bB%ArlTtK;R^DPO{;ohmtgo~Zu>-Q$bxLfeY-y5ee0~UotVR#Al&mI3~BGQ?2PTIbRQ1)(}^{*!#^T&!il_J4O zRt+`b;f#mUv_E#bb<>|8k2YX4tffHi70TV+v%z)O$(txs_C{BjUbAe24-oQi4L#xE zF;)Ge(QGXwKV8Vc>Qt7@bnno%lA4vn>m>`(aT(N0v{#-PWgt3;a#wQ}R+q&&1MJJe zbo?4+B?aB-kh2)&*_=)VFXxzbgCx^>7}%ETW1oE(VWdVC)(wM z6QfUT^uF*$ofno9^QJZP_XTY28-qqvCr0_@oLI_Ia#$hajRGS zniiIEX6W?Oqm<9fl`MuO4bJX`HyHrpkZWH1blE-ib+cynQF&+WiJc0K7Myi_T6CPX zcOL4l2e_Px+i={qd>e_}?M-eVQf%fH4Zx*X`UWhXnN!d|se=qp`KK`` zd=9KP4Bn`*hL_zq2i0#qUwWgK%DlIEsE4(#-M^qe1QzjMnv);{17#T|+N(9zORpOY zv@AwLeUA4EWY_Rd_Xz^!-D4d5sGP}b9~#mBWn3&0KblioQjnY zn_UAh9w@T;IjFKY{?TNe;hm)mojb*0VjS%s_mJg{-U&8+f3z(Zq`k9)c|T$%(JZHu z(+pfHLXf&@gZaKYK_~5O4V2ZN2~sOd%WWtYn82WjZ*A*B5;UfjLvE4pCU+ZBZ^gs0oT2J~@H7nUfOgA;W&vTrh(6c+U^>+(kF+sEx4VoUArpI;Zh z?tJ`*SGT{uh`q0M`avkC?v@Kq+z7(A?OoQ|H@n1{_G*XUd@CB2v9MJPop|wP;qUJH z{lyBu1cFWXvM>5QmM6A_sScaOA7u9*KN}?TF8E|w8vnff5Nj~ zx0ZSN2QECHdExK_tG1aJ#0`oU8!p_Q@M5#i3&R3gXP+0ZXY5Su;S(vrBV%abMf;i-Pbk*0eaYvn}rqU64K264$>_-e}?dwUC2GwVmHI;zq*6JzUSQk!VBiBo&V2yVY$H$ zp8UKo|5vT{-*{FnMQzF9q-e>If; zS1-0!{zJb~o?>7s%LtZ#}{400MZ#t6=RAZ?2|M#Nma1uiT}-Hm2zjyL|i&s!_w^xjbI%b!&T z{=9Fklb!j0?}fV)f8OWbE9n%!)Ty59?0>%(*$aQ(=e#R4>woP9;clnT`}u#><^22Z zDBpNNeC37B+6rHywZ43Q@aKKgv3-}sc3gP9Vg01_|0)-Md~q>m>2`+r4f^SVdzG7C ztpCZg=y$QC%l32u+tBHbUjp=+Ura(tX`nP0JO@SS@BD@T8D4uISp9T!_8ee-a7m5u zO!M_+&;qhK7#Q0#8CZZUMj(~~Vg?501&j>LK$;OGwtxvPyJZ10f(=p_c6C}MkWwvi zjVMV;EJ?LWE=mPb3`Pcqmb!*UKonwVWMyD#WooQ#U|?lnuzahl1d4{-{FKbJO57T* zz4*HXs6h~9Luy54nw4{YPJU5vL1J<$gCYNHCQqQG5M0s~sKP%jtvI!W!N@FFdQmD+ zRst>?kXezM6XBAXo0?agnV-jCXkpOz`VbP0l+XkKWVQgz diff --git a/app/javascript/images/touch-icon@3x.png b/app/javascript/images/touch-icon@3x.png index 8ad89770601bd67707d6a12256f4f263f850ea38..b00c1c5b222327868b6e7c79dd0b873b27404738 100644 GIT binary patch literal 2787 zcmcgu`9Bou8Xr=j5xP@`$r4$HW11t(iH0&W%-9NH~{p;u{1y;CIBGygCaH+ zu>k=4o=X7siM_-R?78H>W?9eo{X70aBn+h80RUtjaOm@{VG{FY1V*%_o%o2mXsF#O)itIdup@K(4qS)&tctYY*8J&L*9Dz_4TnnKE0$gEg^&8;AL zI4|LB@$~pi6ES>_Fu)+hMFONW020#Y0Fny-N%%lbiu`5q{*&N|3di!ag(Q(d<-p2F_^^m=q?Pd}OI2K5Za1r-`x&1DCwk|0~p3Fa=>2NpfHxQl@c&gCI^H(S$C z0&07tSoqGDq`MRt6YKcZff1z645l_VsT19fDCp4uG?-2*rCkbcY@rt`PV^a+1E^0A z@}#|md3`v4xUt&*7Cu*d=gf{o?Oc}ZhmrE25sdPy3a+maD}F7T0WQ5Ko>y?H(DecH zpi^C9)WHIh?!yIoPkaE>XQaPuOS}^IuUe4iMwk!#25vqptxqgIJN=3@uw6*fB{pks z9GblaC3*|nTrAFPl+;uNptgPCQ_(pd<_qyxg>4Gk@0#pl{Zs~5?|XFq9s=Eml22Px zVr6}M9T(a+o!nOa^wi4&AQ0&;(5>-k?;1RN`L_L*ovkvsfhyQ_t#gvjPlYVJpXfW$ z@=isJecm1Y!y4+ro(u*~)J=|HJ|3V|-`Iz3b8cKv(3go7i8UNCQNf7XIR;I3lD>dUepZk>T)Wq zC1}ZThNBzRm3oS%umnQ!+N zPEpcR4R#1^N?7VUvs|{*m1nGnH-}TcUE472RVpMQwAiCq6N89vAkLl~Er(aI%Uz~U zs+dj5O#ZpXVCtn^Hu37-RpGc$ceRw{ax|>J=*%?pd zROf|XsTR{^JIgNp+p0ihF6Y3T>0x@_0MB%V1)6{OLZ?Fph_qC)Q2x#I;)9-eyFM2B zr*i-lFXl9}E-!v@OZY65Alih^?H;Bz(>W@;LUwNc*l)fl9=5kz!vsq37DARM?Z$FS zH1G`Z8LD2|p3|t5mH>upJ;&_|E61^uYtK^qxZPK@mBCwP<#$*6>f)$<-?5X~^n3n9 z!KKa8llxFtil!l(>gk%P5HiEkJ7y=!{TYDP%oRp@ZK)+-CzIPQL08LmE*^^V;&L`y&qi=1Z*cUoD9>-919*rF* z#2eb2F?9yvXp7!2uE#(Y=+qUj1P}}{o}7`|;zOu{Y*{QWSG$rgwO72g=;7tmGMQaJPOEDbkc8H>Ct)3QYO;A?n*4h zXo#ymZJpf?*z-48p;iiDn37z^A-`$$)^Fz_LM4#9VXcF5(sQ8Cxu!!Rur8m1a>ESQ z6*W<33mmPpOIl5K%Y0q#>PLGjS_bOUZ7b;OXX2R1i)|jzz7$sTM;`BVv*9L*=pVKX zs~Jz?_OtU})G<2vFvOfGM}xfrUU_<+P*(3a!WR+r%#6TPwvkYa(*H`}d10_lj>yU! zV*_=gD;VJ@OD!30*d)D8EX{Mc=v-f(^~GzJR!c{Uj?Z2w{anTH<`qJy**EL=qjY~= zs)41ENj%Rw`=z9#^vH9ww6!LPV$7E#?xmSOW)ePdHcBerq>+W4tyQ1=#P5t>ef40L z*k`p?4gdf06pK?axrD_S)9r%@PSf#1h`=R+m;$pyN3n6X5#wC>cht`XUlV<568WN! mH!k=mO-1heFSKcqQlf)ovg#i(ANzkassJ3u5nW;B9rbtepA|v? literal 3599 zcmb_fdpML^+kYnIJVOpi49Pa55+jH9jGZ#rPC0Cpa}s0N4#PAK5k@miDHGd-9AcXgf^~Qz15q_i^p_+wb*W-}U|RUGFt6SB-@kjUdDd^O`?;U1 zP7YR3$$gRl06=Z5Et~-W613gKK?C4RH{QGXSW&A+_PR3%uU%Z|!Uk0C5Na zAX5Qg9W;>z01$-&fZ1~ZfXM{_rHF#&Uw#4|JI>o#SpZwK8{I7MN+QDA;{pIk$!#}C z|7hX{XcQya*jtKCNJ~raG7kDGkq(+51fqj0q^~3<4+Q>UV`1hR`+i|GIKvyKC^}wR zCs|hWUL{gGWlsT%1=D&6vALtEor>tMw`pc*ZG?ceJwM-)4nI7i0e;$SqYwu zH(7FWvUyw`to&cXG6>W_Q7>-)m)OIUunz)7&jG`~ga;L2$lMm!xKsq`#^Ffs`JiaS zimhV*gy=8r$KZqQYln?)?dDcIkMu#A7Z1HmWj3JwQO z0Z#j0SF6nM5~K10kxrC&=XlgLdIw7S^3diY|Ad&CY|9FJKP{z=;nm?hOK$0-k0lDe z&iK6kNWv6q6>h!xZENe>*QD=#MLDXNMluC9`9K-cDq=K}=(S6<@aklEy2R)LtNnZb zvmQZ*iKJc+gFecdW{Su7mA0x?=%@_0&h((x$U%%3!wefkYxD4I zD!Z9iuyF2qQc?k?OLZy#!As_ah%8OFOyoB5ryn4~P`Ath1fz^z4NrJz(WKI!?fvNv zv&S5XSuwjefoVp}iG#q(tY6hu8k}>o*oCL)rsU0(20uKEr8V?8Qb;-0X>eCEUPs4u zNVS$;zzM;gU_6L z`fxX02>VW^)*9vx{Z`?P&R2)K*-9CgEI}_mdox)JEfh@qkGUqph4<^}W6$V9Q}h`- z@)Hf{lq9})km&}<#3X806xhQCxL3nX6mt!T%=ic->)8cDMkSRhT4Im!W^4>~TI4^!z;$5Hr8fnocTxcQJqS!9IH`BSQfW#OsZR%5rd9qzzh3%{Eo0)OW3tG2>u$l z7?|_M^SYP;(%z*;D1458=R@c1Gtnm&Pe+q%t+vEtn?kx8kNl`Ybs%j7c=zsCdP&)X zpqYVNC_^sP!foZ!kT}z&I7ut)?SSpL;WXjW&qWlkGgC%|FE);tBiCzM7i(qe7MD8H z=LL+eFYzO%8srAo!Jjm@5uWpF`&b3Idk3$fL?bjOVrj z#%f0eNXYLaxB#L%#ep=xbL7GOOVPcuOcw%UkT+9Uvr`6Myl}^N=P+HJ z#IrXIkUghhUf^o!?VgR8v0St>freF;>amYhELPATtqs#0NXxD93XzV7%k1~YMV|ka z_>*XhMwrT#wfqHv`ox3ul(ghr7RXp*f@+RIc~_U$LIL`e8GD_f;HTLftT9bcjMEYx zdS7EQJk1wlKhb;ImNu0$Mb)><>Xapw=*<^dPD!_9d;8yKLe1E5$8_--Ax*>61Xiiu z)54OF#m%1I5j42K-3rDBPv(`-XB%PI6W2M)llvBHtGfKeFg*2fSj_X*8zax?4v}i# zWapO%eIJdJhPidsS^FZ~-cVj3Xc__)KePy|rH`pOFEIRAe=gr?!&>*@bm%V3;L~FY zPB&5>b8Wl%2bKwu>Pb0#HK;shs+-Brkd2BQ%An^RKFsapwUukTBaX^19TS7k6-8!g zews4Qjn^|A;JI}eXT~un!a!Q(M=y2f+m(0va2&e%AP-6G1X_K|xiMMhKylJ#j`Ge2 z)(h!D^4lo^9?ko3Y|5Ad4cmbk#NPpi@lIeyEi>El^lW-L`fg=9_147b0SPlr%)lds zrN&)_0#QARXNHG1hCfZ%gBd*Wp}Ir_9pWsHjrk;ifV-5)>fwVYEPt$CX_ofm63#_G z$%R|Dd3v_oWGjU@OI>`O+0Q#cg$s{ndK2oIqvpuwuRpl=w$}`&t$AIhf0gjar5vxi zL>if%tOXLX8h)WYdE||M{jTHsrfR6XE%R5MX@WRra3+RQ^|&JMEy(M-?prW@y&_ih zRx{<_Xw?=ZE9HWAh4m@Qis+Q|Mt?OsJkYAlo-U@fGd-vVr#nr!SIQFmmYn8&&Oe`J z3GNwHJsdaQFKY0Y{I|T|EPtpjp4*_bbZqB$gAoMdMw#WcEf!Llg2Xng~gJd@QlabSwe7vf*=EJ}khhEM1WEYRN3C^Ty!s^iLzms% z8ykA~dr6h%^%u&i&Mx8lV_aS47MY{$di}))^d$1Wk{v*-ex>~4mJjxZ>dG0X-u4i$ z^feVS{i}w=NzLYS#?yq7(i(8seZ+O+2|NrB&R(dk$c<-?=Ca}i?nAb4#e#dUJh5fi zE!AuTZ7^R>BWapozU*ThnwP>JoL(3>4|QO;?aalAy3%>UYkC_NE8U>(NnbNb1y6s%6AHrW z_u%k+7I+NZN{OP0!F`%%aaLu~%aX4@^j$J?k3!#E+B&**qh654yINdb(t0xc z*CNI>UL8n=Hiw-Zt@~csJlT>TzqwUB!@b(JC>(WS<&WPCV9#FuCrZTv)S)Me^zx%Hn%2wL)S zXO2*%Z>Jwn$JVm^6?O0@1qV&m zO`340skb{WE;squd0;QSW76obWh7_tFs@Cj+uA-JEONn$H*hytux^Y0 zSH*1Xx+MymKM-KJn|L2A{i!&2n?QSe;1H;b1G^w{fXMa>0r&+V`+)7&4^RVaAu50C z&JgW?Vs-!kEg0DOPmCwnZ-1=8wjJ|VFH#Ko*NDYC{s#>SDi-;dz8zMMcR2%gS|m$% zQh*-`hw&%kzz#Ty(nlZBKMMX_^^amuMi?W5!zdI6g(`b!x%b}!!UzGuffxVpfI-3c zJ7B=>?HO>f!GRcaLMVag65;2M1N3F`ci4bVxxby3Ai^;)@B)qmpiv&z$MQk%-oL$0 u!LhhdcZ=XKT=<1xLO5VxjFO)>NcrCwkAK6^C;FE_3}9pFU{Q@dcljSfo_kXO diff --git a/app/views/layouts/application.html.slim b/app/views/layouts/application.html.slim index 9410050c1..9aecde3ff 100644 --- a/app/views/layouts/application.html.slim +++ b/app/views/layouts/application.html.slim @@ -17,6 +17,7 @@ html link[rel="apple-touch-icon" sizes="120x120" href="#{asset_pack_path('media/images/touch-icon@2x.png')}"] link[rel="apple-touch-icon" sizes="180x180" href="#{asset_pack_path('media/images/touch-icon@3x.png')}"] link[rel="icon" type="image/x-icon" href="#{asset_pack_path('media/images/touch-icon@3x.png')}"] + == favicon_link_tag asset_pack_path('media/images/touch-icon.png') == stylesheet_pack_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' == javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' == csrf_meta_tags diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..da7245df4237ef196fde8996655ce5689368de79 GIT binary patch literal 1150 zcmZQzU<5(|0R|wcz>vYhz#zuJz@P!dKp~(AL>x#lFaYJ~09t`|oX3G>h_JsKsOBaP zEJuX?0yMqHf&AT2EJcKVJv9A|MCd_Q0t)5BNM?Z8q=q~w43WdY1jr`^H~|$S>#rh3 zGf*uT5QE|nX2yOXn+b?X0n>qsVfsNdC|pSaAwb2*`b$XB3{(rs2G^0y*a>74;|EaI z0i{6@Mh*jzTZlD9NP!0)$^a21cQ&G(T literal 0 HcmV?d00001 From 4fd2a6906cd64db328c79389d7c6059abedd20e9 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 20 Apr 2020 06:51:59 +0000 Subject: [PATCH 0184/2165] chore(deps): bump sidekiq from 6.0.5 to 6.0.7 Bumps [sidekiq](https://github.com/mperham/sidekiq) from 6.0.5 to 6.0.7. - [Release notes](https://github.com/mperham/sidekiq/releases) - [Changelog](https://github.com/mperham/sidekiq/blob/master/Changes.md) - [Commits](https://github.com/mperham/sidekiq/compare/v6.0.5...v6.0.7) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 36c2cdc99..4aa322f3e 100644 --- a/Gemfile +++ b/Gemfile @@ -67,7 +67,7 @@ gem 'rqrcode' # 异步队列 gem 'activejob-status' -gem 'sidekiq', '6.0.5' # 6.0.6 有 bug:https://github.com/mperham/sidekiq/pull/4502 +gem 'sidekiq', '6.0.7' # 6.0.6 有 bug:https://github.com/mperham/sidekiq/pull/4502 gem 'sidekiq-cron', '~> 1.2' # Assets diff --git a/Gemfile.lock b/Gemfile.lock index 64b914fa6..2cf70ea6b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -374,7 +374,7 @@ GEM faraday (>= 1.0) settingslogic (2.0.9) shellany (0.0.1) - sidekiq (6.0.5) + sidekiq (6.0.7) connection_pool (>= 2.2.2) rack (~> 2.0) rack-protection (>= 2.0.0) @@ -497,7 +497,7 @@ DEPENDENCIES ruby-debug-ide sentry-raven settingslogic - sidekiq (= 6.0.5) + sidekiq (= 6.0.7) sidekiq-cron (~> 1.2) simple_form (~> 5.0) slim-rails (~> 3.2.0) From 96dc4d952e74599e13fdeab9a6ba8ae986618ff8 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 27 May 2020 11:08:05 +0800 Subject: [PATCH 0185/2165] =?UTF-8?q?style:=20=E5=9C=A8=E5=BE=AE=E4=BF=A1?= =?UTF-8?q?=E4=B8=AD=E6=89=93=E5=BC=80=E4=BC=98=E5=8C=96=20Android=20?= =?UTF-8?q?=E7=9A=84=E6=96=87=E6=A1=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/releases/_tips.html.slim | 5 ++++- app/views/udid/index.html.slim | 11 ++++++----- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/app/views/releases/_tips.html.slim b/app/views/releases/_tips.html.slim index 623efb478..e82d2cb98 100644 --- a/app/views/releases/_tips.html.slim +++ b/app/views/releases/_tips.html.slim @@ -4,5 +4,8 @@ span = "点击右上角菜单" br - = "在 Safari 中打开并安装" + - if ios? + = "在 Safari 中打开并安装" + - else + = "在任意浏览器中打开并安装" = image_pack_tag('media/images/wechat/short-arrow.png') \ No newline at end of file diff --git a/app/views/udid/index.html.slim b/app/views/udid/index.html.slim index db3e4f43b..35d6ec88e 100644 --- a/app/views/udid/index.html.slim +++ b/app/views/udid/index.html.slim @@ -24,11 +24,12 @@ .card-body strong 获取步骤 ol - li 点击系统会弹窗的"允许”下载描述文件 - li 打开手机“设置” 找到顶部的 "已下载描述文件" 点击可以待安装的 "获取设备UDID" 的描述文件 - li 一路点击”安装“并输入锁屏密码允许安装描述文件 + li 点击系统会弹窗的 “允许” 下载描述文件 + li 打开手机 ”设置” 找到顶部的 ”已下载描述文件“ 点击可以待安装的 ”获取设备UDID“ 的描述文件 + li 一路点击 ”安装“ 并输入锁屏密码允许安装描述文件 li 安装之后描述文件会自动删除并跳转一个结果页面 strong 什么是UDID? p - | UDID,是 iOS 设备的一个唯一识别码,每台 iOS 设备都有一个独一无二的编码,这个编码, - | 我们称之为识别码,也叫做UDID( Unique Device Identifier)。 \ No newline at end of file + | UDID 全称 Unique Device Identifier, 是 iOS 设备的一个唯一且独一无二的识别码这个编码, + | iOS 6 之前可以从应用获取,之后版本不再允许从应用内随意获取,因此需要通过外部安装描述文件的方式 + | 一次性授权获取。 \ No newline at end of file From e0f447114f1034589a7078450c885bf3dd4a5f8b Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 27 May 2020 13:14:48 +0800 Subject: [PATCH 0186/2165] =?UTF-8?q?feat:=20=E6=9F=A5=E8=AF=A2=20iOS=20?= =?UTF-8?q?=E8=AE=BE=E5=A4=87=20UDID=20=E6=98=AF=E5=90=A6=E5=85=B3?= =?UTF-8?q?=E8=81=94=E9=A1=B9=E7=9B=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/application_controller.rb | 2 +- app/controllers/udid_controller.rb | 1 + app/models/channel.rb | 4 ++ app/models/device.rb | 11 ++++++ app/views/udid/show.html.slim | 45 ++++++++++++++++++++++- 5 files changed, 61 insertions(+), 2 deletions(-) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 20a563c6f..19864c425 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -53,6 +53,6 @@ def user_not_authorized # end def render_not_found_entity_response(e) - redirect_to apps_path, notice: "没有找到 ID #{e.id},跳转至应用列表" + # redirect_to apps_path, notice: "没有找到 ID #{e.id},跳转至应用列表" end end diff --git a/app/controllers/udid_controller.rb b/app/controllers/udid_controller.rb index a7c4410f3..71339e147 100644 --- a/app/controllers/udid_controller.rb +++ b/app/controllers/udid_controller.rb @@ -24,6 +24,7 @@ def create end def show + @device = Device.find_by(udid: params[:udid]) end def install diff --git a/app/models/channel.rb b/app/models/channel.rb index 5becf5176..64340d9ca 100644 --- a/app/models/channel.rb +++ b/app/models/channel.rb @@ -79,6 +79,10 @@ def encode_password Digest::MD5.hexdigest(password) end + def devices + releases.distinct.left_joins(:devices) + end + # def self.find_by_release(release) # instance = release.app # instance.current_release = release diff --git a/app/models/device.rb b/app/models/device.rb index 8d23c21c5..3f743aaf0 100644 --- a/app/models/device.rb +++ b/app/models/device.rb @@ -2,4 +2,15 @@ class Device < ApplicationRecord has_and_belongs_to_many :releases + + def channels + Channel.where(id: Device.find_by(udid: self.udid) + .releases + .distinct + .select(:channel_id)) + end + + def last_release + releases.last + end end diff --git a/app/views/udid/show.html.slim b/app/views/udid/show.html.slim index cb3573649..85094fc5e 100644 --- a/app/views/udid/show.html.slim +++ b/app/views/udid/show.html.slim @@ -38,4 +38,47 @@ input#version-text.form-control.rounded-0 value="#{params[:version]}" readonly="true" span.input-group-append button.btn.btn-success.btn-flat.btn-clipboard data-clipboard-target="#version-text" - i.far.fa-clipboard \ No newline at end of file + i.far.fa-clipboard + + .col-md-12 + .card + .card-header + h3.card-title 关联的应用 + .card-body + - if @device && @device.channels.present? + .timeline + - @device.channels.each do |channel| + ruby: + release = @device.last_release + div + i.far.fa-circle + .timeline-item + span.time + i.fas.fa-clock + |   + = time_ago_in_words(release.created_at) + h3.timeline-header + = link_to release.app_name, channel_release_path(channel, release) + = " 上传了新版本 #{release.release_version} (#{release.build_version})" + - if release.changelog.present? + .timeline-body.pb-0 + = changelog_format release.changelog_list, class: 'mb-0' + - if release.release_type.present? || release.branch.present? || release.short_git_commit.present? + .timeline-footer + - if release.release_type.present? + small.badge + = release.release_type + - if release.branch.present? + small.badge + = release.branch + - if release.short_git_commit.present? + small.badge + - if release.channel.git_url.present? + = git_commit_url(channel.git_url, release.git_commit) + - else + = release.short_git_commit + div + i.fas.fa-clock.bg-gray + - else + p 没有关联设备 + From 2d4bd419f898709e19dbea61c9bf033b540ecc28 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 27 May 2020 14:31:55 +0800 Subject: [PATCH 0187/2165] =?UTF-8?q?feat:=20udid=20=E8=AE=BE=E5=A4=87?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/channel.rb | 2 +- app/models/device.rb | 5 ++--- app/views/udid/show.html.slim | 31 +++++++++++++++++++++++++++---- 3 files changed, 30 insertions(+), 8 deletions(-) diff --git a/app/models/channel.rb b/app/models/channel.rb index 64340d9ca..928968b12 100644 --- a/app/models/channel.rb +++ b/app/models/channel.rb @@ -21,7 +21,7 @@ class Channel < ApplicationRecord validates :slug, uniqueness: true def latest_release - releases.take.order(id: :desc) + releases.last end def recently_releases(limit = 10) diff --git a/app/models/device.rb b/app/models/device.rb index 3f743aaf0..94b5a94db 100644 --- a/app/models/device.rb +++ b/app/models/device.rb @@ -4,13 +4,12 @@ class Device < ApplicationRecord has_and_belongs_to_many :releases def channels - Channel.where(id: Device.find_by(udid: self.udid) + Channel.distinct.where(id: Device.find_by(udid: self.udid) .releases - .distinct .select(:channel_id)) end - def last_release + def lastest_release releases.last end end diff --git a/app/views/udid/show.html.slim b/app/views/udid/show.html.slim index 85094fc5e..1fd1c40b6 100644 --- a/app/views/udid/show.html.slim +++ b/app/views/udid/show.html.slim @@ -8,8 +8,25 @@ .col-md-12 .card.system_info .card-header - h3.card-title 设备信息 + h3.card-title + i.fas.fa-info-circle + | 设备信息 .card-body + .pl-2.pr-2 + - if @device + .alert.alert-success + strong Wooh! + | 本设备已注册 + - if @device.name.present? + | 【 + = @device.name + | 】 + | ,快往下看看有没有关联的应用吧! + - else + .alert.alert-warning + strong Ta-Da! + | 发现一台未注册的设备,复制 UDID 给 iOS 工程师哦! + dl.system-info dt UDID dd @@ -43,13 +60,15 @@ .col-md-12 .card .card-header - h3.card-title 关联的应用 + h3.card-title + i.fas.fa-cubes + | 可安装应用 .card-body - if @device && @device.channels.present? .timeline - @device.channels.each do |channel| ruby: - release = @device.last_release + release = channel.latest_release div i.far.fa-circle .timeline-item @@ -80,5 +99,9 @@ div i.fas.fa-clock.bg-gray - else - p 没有关联设备 + .p-2 + p + strong 没有发现可安装应用! + | 请复制上面设备 UDID 并发给 iOS 工程师来添加测试设备并重新打包。 + | 新安装包上传之后可以刷新本页面检查是否出现对应的应用。 From 5cf6aab602011c94d9af43e32f4cfb5f3e536013 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 27 May 2020 14:50:04 +0800 Subject: [PATCH 0188/2165] =?UTF-8?q?style:=20=E8=B0=83=E6=95=B4=20udid=20?= =?UTF-8?q?=E6=96=87=E6=A1=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/udid/index.html.slim | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/app/views/udid/index.html.slim b/app/views/udid/index.html.slim index 35d6ec88e..898e71b31 100644 --- a/app/views/udid/index.html.slim +++ b/app/views/udid/index.html.slim @@ -30,6 +30,5 @@ li 安装之后描述文件会自动删除并跳转一个结果页面 strong 什么是UDID? p - | UDID 全称 Unique Device Identifier, 是 iOS 设备的一个唯一且独一无二的识别码这个编码, - | iOS 6 之前可以从应用获取,之后版本不再允许从应用内随意获取,因此需要通过外部安装描述文件的方式 - | 一次性授权获取。 \ No newline at end of file + | UDID 全称 Unique Device Identifier 是 iOS 设备唯一且独一无二的识别码,iOS 7 之前可以从应用获取, + | 之后版本不再允许从应用内随意获取,因此需要通过外部安装描述文件的方式单次授权获取。 \ No newline at end of file From 058637ebf49bffacd5632a14778c983f1b15e9f5 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 27 May 2020 15:30:37 +0800 Subject: [PATCH 0189/2165] =?UTF-8?q?feat:=20=E5=BA=94=E7=94=A8=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E5=88=87=E6=8D=A2=E6=B8=A0=E9=81=93=E4=BC=9A=E8=81=94?= =?UTF-8?q?=E5=8A=A8=E4=BF=9D=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/schemes_controller.rb | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/app/controllers/schemes_controller.rb b/app/controllers/schemes_controller.rb index acb870ea2..70f4dd4d2 100644 --- a/app/controllers/schemes_controller.rb +++ b/app/controllers/schemes_controller.rb @@ -6,8 +6,17 @@ class SchemesController < ApplicationController before_action :set_app def show - @channel = @scheme.latest_channel - redirect_to controller: :channels, action: :show, id: @channel.slug if @channel + if (referer = request.referer) && + (segment = Rails.application.routes.recognize_path(referer)) && + segment[:controller] == 'channels' && + segment[:action] == 'show' + previouse_channel = Channel.friendly.find(segment[:id]) + @channel = @scheme.channels.find_by(device_type: previouse_channel.device_type) + else + @channel = @scheme.latest_channel + end + + redirect_to channel_path(@channel) end def new From db0907cbb636bfd16a5e0c11afccb435df05762a Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 27 May 2020 16:23:45 +0800 Subject: [PATCH 0190/2165] style: typo --- app/views/udid/show.html.slim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/udid/show.html.slim b/app/views/udid/show.html.slim index 1fd1c40b6..a85826caf 100644 --- a/app/views/udid/show.html.slim +++ b/app/views/udid/show.html.slim @@ -15,7 +15,7 @@ .pl-2.pr-2 - if @device .alert.alert-success - strong Wooh! + strong Woo-ha! | 本设备已注册 - if @device.name.present? | 【 From 2b5e7f378429929adb42b12ad9e59f9f59d5cd9b Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 27 May 2020 17:31:58 +0800 Subject: [PATCH 0191/2165] =?UTF-8?q?feat:=20=E6=9B=B4=E6=96=B0=E8=AE=BE?= =?UTF-8?q?=E5=A4=87=E6=97=B6=E4=B8=8D=E5=AD=98=E5=9C=A8=E7=9B=B4=E6=8E=A5?= =?UTF-8?q?=E5=88=9B=E5=BB=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/api/devices_controller.rb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/controllers/api/devices_controller.rb b/app/controllers/api/devices_controller.rb index 074ac3a45..c53cdb623 100644 --- a/app/controllers/api/devices_controller.rb +++ b/app/controllers/api/devices_controller.rb @@ -6,7 +6,6 @@ class Api::DevicesController < Api::BaseController # POST /api/devices/:id?name=MyiPhone def update - raise ActiveRecord::RecordNotFound, "设备 UDID (#{params[:id]}) 不存在" unless @device raise ActionController::ParameterMissing, 'name' if device_params[:name].blank? @device.update(device_params) @@ -16,7 +15,7 @@ def update protected def set_device - @device = Device.find_by(udid: params[:id]) + @device = Device.find_or_create_by(udid: params[:id]) end def device_params From b633c9ee068b5db0ced21094b8a7ac0fd45113f7 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 27 May 2020 18:45:46 +0800 Subject: [PATCH 0192/2165] =?UTF-8?q?feat:=20=E6=94=AF=E6=8C=81=E5=9C=A8?= =?UTF-8?q?=E7=BA=BF=E8=A7=A3=E6=9E=90=20.mobileprovision=20=E6=96=87?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/teardowns_controller.rb | 6 +- app/views/teardowns/_ios.html.slim | 23 +++--- .../teardowns/_mobileprovision.html.slim | 70 +++++++++++++++++++ app/views/teardowns/_upload_form.html.slim | 4 +- app/views/teardowns/create.html.slim | 9 ++- 5 files changed, 95 insertions(+), 17 deletions(-) create mode 100644 app/views/teardowns/_mobileprovision.html.slim diff --git a/app/controllers/teardowns_controller.rb b/app/controllers/teardowns_controller.rb index 90a5c5f15..edcd164b0 100644 --- a/app/controllers/teardowns_controller.rb +++ b/app/controllers/teardowns_controller.rb @@ -11,7 +11,7 @@ def show end def new - @title = '应用解析' + @title = '文件解析' end def create @@ -32,7 +32,7 @@ def create flash[:error] = '无法识别上传的应用类型' render :new rescue AppInfo::NotFoundError => e - flash[:error] = "无法找到安装包: #{e}" + flash[:error] = "无法找到解析文件: #{e}" render :new end @@ -40,7 +40,7 @@ def create def parse_file unless file = params[:file] - raise ActionController::RoutingError, '请选择需要解析的 ipa 或 apk 安装包' + raise ActionController::RoutingError, '请选择需要解析的 ipa、apk 安装包或 .mobileprovision 文件' end @app_info = AppInfo.parse(file.tempfile) diff --git a/app/views/teardowns/_ios.html.slim b/app/views/teardowns/_ios.html.slim index b396dfa18..927e52e0b 100644 --- a/app/views/teardowns/_ios.html.slim +++ b/app/views/teardowns/_ios.html.slim @@ -75,17 +75,20 @@ - if @app_info.release_type == AppInfo::IPA::ExportType::ADHOC .card .card-header - h3.card-title 设备列表 - .card-tools - button.btn.btn-tool data-card-widget="collapse" - i.fas.fa-plus - .card-body - table.table.table-striped - tr - th UDID - - @app_info.devices.each do |device| + h3.card-title + | 设备列表 ( + = @app_info.devices.size + | ) + .card-body.p-0 + table.table + - @app_info.devices.each do |udid| tr - td = device + td + span = udid + - if (device = Device.find_by(udid: udid)) && device.name.present? + .float-right + small.badge.badge-light + = device.name - if @app_info.mobileprovision.Entitlements .card diff --git a/app/views/teardowns/_mobileprovision.html.slim b/app/views/teardowns/_mobileprovision.html.slim new file mode 100644 index 000000000..3859ea5f9 --- /dev/null +++ b/app/views/teardowns/_mobileprovision.html.slim @@ -0,0 +1,70 @@ +ruby: + expired_left = @app_info.expired_date - Time.current + alert_left_class = case Time.at(expired_left).day + when 180..365 + 'alert-success' + when 31..179 + 'alert-warning' + when 0..30 + 'alert-warning' + else + 'alert-danger' + end + +.row + .col-md-12 + .card + .card-header + h3.card-title 描述文件 + .card-body + .alert class="#{alert_left_class}" + = "描述文件还有#{distance_of_time_in_words(Time.current, @app_info.expired_date)}过期" + dl.system-info + dt 名称 + dd + pre = @app_info.name + dt 应用标识 + dd + pre = @app_info.app_name + dt UUID + dd + pre = @app_info.UUID + dt 团队名称 (Team ID) + dd + pre = "#{@app_info.team_name} (#{@app_info.team_identifier.first})" + dt 创建时间 + dd + pre = @app_info.created_date + dt 过期时间 + dd + pre + = @app_info.expired_date + .card + .card-header + h3.card-title Entitlements + .card-body + table.table.table-striped + - @app_info.entitlements.each do |name, value| + tr + td = name + td = value + + - if @app_info.devices.present? + .card + .card-header + h3.card-title + | 设备列表 ( + = @app_info.devices.size + | ) + .card-body.p-0 + table.table + - @app_info.devices.each do |udid| + tr + td + span = udid + - if (device = Device.find_by(udid: udid)) && device.name.present? + .float-right + small.badge.badge-light + = device.name + + diff --git a/app/views/teardowns/_upload_form.html.slim b/app/views/teardowns/_upload_form.html.slim index acab8c682..3842bb716 100644 --- a/app/views/teardowns/_upload_form.html.slim +++ b/app/views/teardowns/_upload_form.html.slim @@ -3,12 +3,12 @@ .form-group label.control-label.required for="file" abbr title="必填项" * - | 应用文件 + | 解析文件 .input-group = file_field_tag 'file', class: 'custom-file-input2' input name="type" value="upload" type="hidden" - p.help-block 支持 .apk 和 .ipa 文件 + p.help-block 支持 .apk、 .ipa 以及 .mobileprovision 文件 = submit_tag '开始解析', class: 'btn btn-primary' diff --git a/app/views/teardowns/create.html.slim b/app/views/teardowns/create.html.slim index d5ebea900..ed7cae50c 100644 --- a/app/views/teardowns/create.html.slim +++ b/app/views/teardowns/create.html.slim @@ -1,4 +1,9 @@ - content_for :title do - | 应用解析结果 + | 文件解析结果 -== render "#{@app_info.os.downcase.to_s}" +- if @app_info.respond_to?(:os) + == render "#{@app_info.os.downcase.to_s}" +- elsif @app_info.respond_to?(:mobileprovision) + == render "mobileprovision" +- else + p 抱歉无法解析,类型无法匹配! \ No newline at end of file From b5b25ad779a5dbb5e0006b000c190c43c1d67bf9 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 27 May 2020 20:19:13 +0800 Subject: [PATCH 0193/2165] =?UTF-8?q?feat:=20Devices=20=E8=A1=A8=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=20model=20=E5=AD=97=E6=AE=B5=E3=80=81Releases=20?= =?UTF-8?q?=E8=A1=A8=E5=88=A0=E9=99=A4=20legacy=5Fdevices=E3=80=81?= =?UTF-8?q?=E9=87=8D=E5=86=99=20db=20=E5=90=88=E5=B9=B6=E3=80=81=E5=9B=9E?= =?UTF-8?q?=E6=BB=9A=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/api/devices_controller.rb | 2 +- ...74639_create_join_table_release_devices.rb | 4 +-- ...me_table_release_devices_to_old_devices.rb | 22 +++++++++++++ .../20200527113757_add_model_to_devices.rb | 5 +++ ...707_remove_legacy_devices_from_releases.rb | 5 +++ db/schema.rb | 4 +-- lib/tasks/zealot/migration.rake | 31 ------------------- lib/tasks/zealot/zealot.rake | 1 - 8 files changed, 37 insertions(+), 37 deletions(-) create mode 100644 db/migrate/20200527113757_add_model_to_devices.rb create mode 100644 db/migrate/20200527121707_remove_legacy_devices_from_releases.rb delete mode 100644 lib/tasks/zealot/migration.rake diff --git a/app/controllers/api/devices_controller.rb b/app/controllers/api/devices_controller.rb index c53cdb623..c717bdaa7 100644 --- a/app/controllers/api/devices_controller.rb +++ b/app/controllers/api/devices_controller.rb @@ -19,6 +19,6 @@ def set_device end def device_params - params.permit(:name) + params.permit(:name, :model) end end diff --git a/db/migrate/20200523074639_create_join_table_release_devices.rb b/db/migrate/20200523074639_create_join_table_release_devices.rb index 9d501b287..7c32ac376 100644 --- a/db/migrate/20200523074639_create_join_table_release_devices.rb +++ b/db/migrate/20200523074639_create_join_table_release_devices.rb @@ -1,8 +1,8 @@ class CreateJoinTableReleaseDevices < ActiveRecord::Migration[6.0] def change create_join_table :releases, :devices do |t| - t.index [:release_id, :device_id]#, unique: true - t.index [:device_id, :release_id]#, unique: true + t.index [:release_id, :device_id] + t.index [:device_id, :release_id] end end end diff --git a/db/migrate/20200523081718_rename_table_release_devices_to_old_devices.rb b/db/migrate/20200523081718_rename_table_release_devices_to_old_devices.rb index ced041d6b..8f0104149 100644 --- a/db/migrate/20200523081718_rename_table_release_devices_to_old_devices.rb +++ b/db/migrate/20200523081718_rename_table_release_devices_to_old_devices.rb @@ -1,9 +1,31 @@ class RenameTableReleaseDevicesToOldDevices < ActiveRecord::Migration[6.0] def up rename_column :releases, :devices, :legacy_devices + migrate_devices end def down + rollback_device rename_column :releases, :legacy_devices, :devices end + + private + + def migrate_devices + Release.find_each do |release| + next if release.legacy_devices.empty? + + release.legacy_devices.each do |udid| + device = Device.find_or_create_by!(udid: udid) + release.devices << device + end + end + end + + def rollback_device + Release.find_each do |release| + devices = release.devices.map { |d| d.udid } + release.update_column(:legacy_devices, devices) + end + end end diff --git a/db/migrate/20200527113757_add_model_to_devices.rb b/db/migrate/20200527113757_add_model_to_devices.rb new file mode 100644 index 000000000..07e5a0652 --- /dev/null +++ b/db/migrate/20200527113757_add_model_to_devices.rb @@ -0,0 +1,5 @@ +class AddModelToDevices < ActiveRecord::Migration[6.0] + def change + add_column :devices, :model, :string + end +end diff --git a/db/migrate/20200527121707_remove_legacy_devices_from_releases.rb b/db/migrate/20200527121707_remove_legacy_devices_from_releases.rb new file mode 100644 index 000000000..4f1163d07 --- /dev/null +++ b/db/migrate/20200527121707_remove_legacy_devices_from_releases.rb @@ -0,0 +1,5 @@ +class RemoveLegacyDevicesFromReleases < ActiveRecord::Migration[6.0] + def change + remove_column :releases, :legacy_devices, :string + end +end diff --git a/db/schema.rb b/db/schema.rb index 201c6f123..b754a6442 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 2020_05_23_081718) do +ActiveRecord::Schema.define(version: 2020_05_27_121707) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -84,6 +84,7 @@ t.string "name" t.datetime "created_at", precision: 6, null: false t.datetime "updated_at", precision: 6, null: false + t.string "model" t.index ["udid"], name: "index_devices_on_udid" end @@ -108,7 +109,6 @@ t.string "ci_url" t.jsonb "changelog", null: false t.string "file" - t.jsonb "legacy_devices", default: [], null: false t.datetime "created_at", precision: 6, null: false t.datetime "updated_at", precision: 6, null: false t.jsonb "custom_fields", default: [], null: false diff --git a/lib/tasks/zealot/migration.rake b/lib/tasks/zealot/migration.rake deleted file mode 100644 index ad746d5fa..000000000 --- a/lib/tasks/zealot/migration.rake +++ /dev/null @@ -1,31 +0,0 @@ -# frozen_string_literal: true - -namespace :zealot do - namespace :migration do - task upgrade: :environment do - Rake::Task['zealot:migration:upgrade_devices'].invoke if Device.count.zero? || Device.take.releases.empty? - end - - # 把 Release.devices JSON 字符串转移到独立表 Device - task upgrade_devices: :environment do - puts 'Moving devices data from Release table into Device table' - - udids = [] - Release.find_each do |release| - next if release.legacy_devices.empty? - - release.legacy_devices.each do |udid| - udids << udid unless udids.include?(udid) - - device = Device.find_or_create_by!(udid: udid) - release.devices << device - end - end - - puts "Valiting device data" - if Device.count == udids.count - - end - end - end -end diff --git a/lib/tasks/zealot/zealot.rake b/lib/tasks/zealot/zealot.rake index 78c2e60a7..9112aad8c 100644 --- a/lib/tasks/zealot/zealot.rake +++ b/lib/tasks/zealot/zealot.rake @@ -19,7 +19,6 @@ namespace :zealot do Rake::Task['zealot:db:setup'].invoke else Rake::Task['zealot:db:migrate'].invoke - Rake::Task['zealot:migration:upgrade'].invoke end rescue PG::ConnectionBad, ActiveRecord::NoDatabaseError # 无法连接数据库 From 23edbeadd69f829fc821399ccd13c0192aa0eb29 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Thu, 28 May 2020 06:35:42 +0000 Subject: [PATCH 0194/2165] chore(deps): bump kaminari from 1.2.0 to 1.2.1 Bumps [kaminari](https://github.com/kaminari/kaminari) from 1.2.0 to 1.2.1. - [Release notes](https://github.com/kaminari/kaminari/releases) - [Changelog](https://github.com/kaminari/kaminari/blob/master/CHANGELOG.md) - [Commits](https://github.com/kaminari/kaminari/compare/v1.2.0...v1.2.1) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 2cf70ea6b..0610099ec 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -201,18 +201,18 @@ GEM json (2.3.0) jsonapi-renderer (0.2.2) jwt (2.2.1) - kaminari (1.2.0) + kaminari (1.2.1) activesupport (>= 4.1.0) - kaminari-actionview (= 1.2.0) - kaminari-activerecord (= 1.2.0) - kaminari-core (= 1.2.0) - kaminari-actionview (1.2.0) + kaminari-actionview (= 1.2.1) + kaminari-activerecord (= 1.2.1) + kaminari-core (= 1.2.1) + kaminari-actionview (1.2.1) actionview - kaminari-core (= 1.2.0) - kaminari-activerecord (1.2.0) + kaminari-core (= 1.2.1) + kaminari-activerecord (1.2.1) activerecord - kaminari-core (= 1.2.0) - kaminari-core (1.2.0) + kaminari-core (= 1.2.1) + kaminari-core (1.2.1) launchy (2.4.3) addressable (~> 2.3) letter_opener (1.7.0) From da1d557559b71072df1c97549657b9ab139f6be7 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 29 May 2020 06:28:41 +0000 Subject: [PATCH 0195/2165] chore(deps-dev): bump pry-rescue from 1.5.0 to 1.5.1 Bumps [pry-rescue](https://github.com/ConradIrwin/pry-rescue) from 1.5.0 to 1.5.1. - [Release notes](https://github.com/ConradIrwin/pry-rescue/releases) - [Changelog](https://github.com/ConradIrwin/pry-rescue/blob/master/CHANGELOG.md) - [Commits](https://github.com/ConradIrwin/pry-rescue/compare/v1.5.0...v1.5.1) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 0610099ec..8356173af 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -275,7 +275,7 @@ GEM pg (1.2.1) plist (3.5.0) pngdefry (0.1.3) - pry (0.13.0) + pry (0.13.1) coderay (~> 1.1) method_source (~> 1.0) pry-byebug (3.9.0) @@ -283,7 +283,7 @@ GEM pry (~> 0.13.0) pry-rails (0.3.9) pry (>= 0.10.4) - pry-rescue (1.5.0) + pry-rescue (1.5.1) interception (>= 0.5) pry (>= 0.12.0) public_suffix (4.0.3) From 6dc4cf5c180f5bd18243b171e6be7a706da6e613 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 5 Jun 2020 14:34:20 +0000 Subject: [PATCH 0196/2165] chore(deps): [security] bump websocket-extensions from 0.1.4 to 0.1.5 Bumps [websocket-extensions](https://github.com/faye/websocket-extensions-ruby) from 0.1.4 to 0.1.5. **This update includes a security fix.** - [Release notes](https://github.com/faye/websocket-extensions-ruby/releases) - [Changelog](https://github.com/faye/websocket-extensions-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/faye/websocket-extensions-ruby/compare/0.1.4...0.1.5) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 0610099ec..6ad983019 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -439,7 +439,7 @@ GEM semantic_range (>= 2.3.0) websocket-driver (0.7.1) websocket-extensions (>= 0.1.0) - websocket-extensions (0.1.4) + websocket-extensions (0.1.5) zeitwerk (2.3.0) PLATFORMS From f664507e918618060251a058b3f821f94eb0bbee Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 5 Jun 2020 16:37:22 +0000 Subject: [PATCH 0197/2165] chore(deps): [security] bump websocket-extensions from 0.1.3 to 0.1.4 Bumps [websocket-extensions](https://github.com/faye/websocket-extensions-node) from 0.1.3 to 0.1.4. **This update includes a security fix.** - [Release notes](https://github.com/faye/websocket-extensions-node/releases) - [Changelog](https://github.com/faye/websocket-extensions-node/blob/master/CHANGELOG.md) - [Commits](https://github.com/faye/websocket-extensions-node/compare/0.1.3...0.1.4) Signed-off-by: dependabot-preview[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index a2621f0c3..00049507a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9788,9 +9788,9 @@ websocket-driver@>=0.5.1: websocket-extensions ">=0.1.1" websocket-extensions@>=0.1.1: - version "0.1.3" - resolved "https://registry.npm.taobao.org/websocket-extensions/download/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29" - integrity sha1-XS/yKXcAPsaHpLhwc9+7rBRszyk= + version "0.1.4" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" + integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== which-module@^1.0.0: version "1.0.0" From 388db46d4ca6dafd066413d6e4ec4b33f613ef00 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 8 Jun 2020 06:44:09 +0000 Subject: [PATCH 0198/2165] chore(deps-dev): bump rubocop from 0.84.0 to 0.85.1 Bumps [rubocop](https://github.com/rubocop-hq/rubocop) from 0.84.0 to 0.85.1. - [Release notes](https://github.com/rubocop-hq/rubocop/releases) - [Changelog](https://github.com/rubocop-hq/rubocop/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop-hq/rubocop/compare/v0.84.0...v0.85.1) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 0610099ec..e13c18e73 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -270,7 +270,7 @@ GEM openssl (2.2.0) orm_adapter (0.5.0) parallel (1.19.1) - parser (2.7.1.2) + parser (2.7.1.3) ast (~> 2.4.0) pg (1.2.1) plist (3.5.0) @@ -337,6 +337,7 @@ GEM rb-inotify (0.10.1) ffi (~> 1.0) redis (4.1.4) + regexp_parser (1.7.1) responders (3.0.0) actionpack (>= 5.0) railties (>= 5.0) @@ -345,10 +346,11 @@ GEM chunky_png (~> 1.0) rqrcode_core (~> 0.1) rqrcode_core (0.1.1) - rubocop (0.84.0) + rubocop (0.85.1) parallel (~> 1.10) parser (>= 2.7.0.1) rainbow (>= 2.2.2, < 4.0) + regexp_parser (>= 1.7) rexml rubocop-ast (>= 0.0.3) ruby-progressbar (~> 1.7) From 6f8b1f409b29bd84f9a3ca806341495f9db9a746 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 9 Jun 2020 06:10:37 +0000 Subject: [PATCH 0199/2165] chore(deps): bump websocket-extensions from 0.1.4 to 0.1.5 Bumps [websocket-extensions](https://github.com/faye/websocket-extensions-ruby) from 0.1.4 to 0.1.5. - [Release notes](https://github.com/faye/websocket-extensions-ruby/releases) - [Changelog](https://github.com/faye/websocket-extensions-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/faye/websocket-extensions-ruby/compare/0.1.4...0.1.5) Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 0610099ec..6ad983019 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -439,7 +439,7 @@ GEM semantic_range (>= 2.3.0) websocket-driver (0.7.1) websocket-extensions (>= 0.1.0) - websocket-extensions (0.1.4) + websocket-extensions (0.1.5) zeitwerk (2.3.0) PLATFORMS From 05918e0d86c518282b2be01a0e476a421c243325 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 9 Jun 2020 06:27:19 +0000 Subject: [PATCH 0200/2165] chore(deps-dev): bump rubocop-rails from 2.5.2 to 2.6.0 Bumps [rubocop-rails](https://github.com/rubocop-hq/rubocop-rails) from 2.5.2 to 2.6.0. - [Release notes](https://github.com/rubocop-hq/rubocop-rails/releases) - [Changelog](https://github.com/rubocop-hq/rubocop-rails/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop-hq/rubocop-rails/compare/v2.5.2...v2.6.0) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 6bee5ffbf..14946eb51 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -182,7 +182,7 @@ GEM http-form_data (2.3.0) http-parser (1.2.1) ffi-compiler (>= 1.0, < 2.0) - i18n (1.8.2) + i18n (1.8.3) concurrent-ruby (~> 1.0) image_processing (1.10.3) mini_magick (>= 4.9.5, < 5) @@ -357,10 +357,10 @@ GEM unicode-display_width (>= 1.4.0, < 2.0) rubocop-ast (0.0.3) parser (>= 2.7.0.1) - rubocop-rails (2.5.2) - activesupport + rubocop-rails (2.6.0) + activesupport (>= 4.2.0) rack (>= 1.1) - rubocop (>= 0.72.0) + rubocop (>= 0.82.0) ruby-debug-ide (0.7.0) rake (>= 0.8.1) ruby-macho (2.2.0) From de103eedca796ba4688f67c0587e2140e77e6ddd Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 9 Jun 2020 19:50:17 +0800 Subject: [PATCH 0201/2165] =?UTF-8?q?refactor:=20=E8=8E=B7=E5=8F=96=20file?= =?UTF-8?q?name=20=E6=96=B9=E6=B3=95=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/uploaders/application_uploader.rb | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/app/uploaders/application_uploader.rb b/app/uploaders/application_uploader.rb index a8f2e108a..cc54e82ef 100644 --- a/app/uploaders/application_uploader.rb +++ b/app/uploaders/application_uploader.rb @@ -18,7 +18,12 @@ def checksum end def filename - @name ||= "#{checksum}#{File.extname(super)}" if super + @filename ||= case + when identifier + identifier + when super + "#{checksum}#{File.extname(super)}" + end end protected From ba486b3af79105afefa1230980f10163580aecce Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Thu, 11 Jun 2020 06:29:40 +0000 Subject: [PATCH 0202/2165] chore(deps): bump devise from 4.7.1 to 4.7.2 Bumps [devise](https://github.com/plataformatec/devise) from 4.7.1 to 4.7.2. - [Release notes](https://github.com/plataformatec/devise/releases) - [Changelog](https://github.com/heartcombo/devise/blob/master/CHANGELOG.md) - [Commits](https://github.com/plataformatec/devise/compare/v4.7.1...v4.7.2) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index 4aa322f3e..faf60cfad 100644 --- a/Gemfile +++ b/Gemfile @@ -41,7 +41,7 @@ gem 'mini_magick' ## HTTP 请求 gem 'http' ## 用户认证 -gem 'devise', '~> 4.7.1' +gem 'devise', '~> 4.7.2' gem 'devise-i18n', '~> 1.9.0' gem 'omniauth', '~> 1.9' gem 'omniauth-google-oauth2', '~> 0.8.0' diff --git a/Gemfile.lock b/Gemfile.lock index 14946eb51..fa8fad82e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -107,7 +107,7 @@ GEM debase-ruby_core_source (>= 0.10.2) debase-ruby_core_source (0.10.9) debug_inspector (0.0.3) - devise (4.7.1) + devise (4.7.2) bcrypt (~> 3.0) orm_adapter (~> 0.1) railties (>= 4.1.0) @@ -338,7 +338,7 @@ GEM ffi (~> 1.0) redis (4.1.4) regexp_parser (1.7.1) - responders (3.0.0) + responders (3.0.1) actionpack (>= 5.0) railties (>= 5.0) rexml (3.2.4) @@ -458,7 +458,7 @@ DEPENDENCIES byebug carrierwave debase - devise (~> 4.7.1) + devise (~> 4.7.2) devise-i18n (~> 1.9.0) dotenv-rails friendly_id From fdfbda81155d2f8d28ce2b1bca5468791335268a Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 12 Jun 2020 06:25:37 +0000 Subject: [PATCH 0203/2165] chore(deps): bump redis from 4.1.4 to 4.2.1 Bumps [redis](https://github.com/redis/redis-rb) from 4.1.4 to 4.2.1. - [Release notes](https://github.com/redis/redis-rb/releases) - [Changelog](https://github.com/redis/redis-rb/blob/master/CHANGELOG.md) - [Commits](https://github.com/redis/redis-rb/compare/v4.1.4...v4.2.1) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 4aa322f3e..112b62045 100644 --- a/Gemfile +++ b/Gemfile @@ -13,7 +13,7 @@ gem 'rake', '~> 13.0.1' # DB & Cache gem 'pg', '>= 0.18', '< 2.0' -gem 'redis', '~> 4.1.4' +gem 'redis', '~> 4.2.1' # API gem 'active_model_serializers', '~> 0.10.10' diff --git a/Gemfile.lock b/Gemfile.lock index 14946eb51..9b41918ec 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -336,7 +336,7 @@ GEM rb-fsevent (0.10.3) rb-inotify (0.10.1) ffi (~> 1.0) - redis (4.1.4) + redis (4.2.1) regexp_parser (1.7.1) responders (3.0.0) actionpack (>= 5.0) @@ -492,7 +492,7 @@ DEPENDENCIES rails (~> 6.0.3) rails-i18n (~> 6.0.0) rake (~> 13.0.1) - redis (~> 4.1.4) + redis (~> 4.2.1) rqrcode rubocop (>= 0.70) rubocop-rails From a090c5d2a38b958ae6582ffa27410a4e16779148 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Thu, 18 Jun 2020 06:28:27 +0000 Subject: [PATCH 0204/2165] chore(deps): bump rails from 6.0.3.1 to 6.0.3.2 Bumps [rails](https://github.com/rails/rails) from 6.0.3.1 to 6.0.3.2. - [Release notes](https://github.com/rails/rails/releases) - [Commits](https://github.com/rails/rails/compare/v6.0.3.1...v6.0.3.2) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 108 +++++++++++++++++++++++++-------------------------- 1 file changed, 54 insertions(+), 54 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 14946eb51..3908e8710 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -2,38 +2,38 @@ GEM remote: https://rubygems.org/ specs: CFPropertyList (3.0.2) - actioncable (6.0.3.1) - actionpack (= 6.0.3.1) + actioncable (6.0.3.2) + actionpack (= 6.0.3.2) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (6.0.3.1) - actionpack (= 6.0.3.1) - activejob (= 6.0.3.1) - activerecord (= 6.0.3.1) - activestorage (= 6.0.3.1) - activesupport (= 6.0.3.1) + actionmailbox (6.0.3.2) + actionpack (= 6.0.3.2) + activejob (= 6.0.3.2) + activerecord (= 6.0.3.2) + activestorage (= 6.0.3.2) + activesupport (= 6.0.3.2) mail (>= 2.7.1) - actionmailer (6.0.3.1) - actionpack (= 6.0.3.1) - actionview (= 6.0.3.1) - activejob (= 6.0.3.1) + actionmailer (6.0.3.2) + actionpack (= 6.0.3.2) + actionview (= 6.0.3.2) + activejob (= 6.0.3.2) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (6.0.3.1) - actionview (= 6.0.3.1) - activesupport (= 6.0.3.1) + actionpack (6.0.3.2) + actionview (= 6.0.3.2) + activesupport (= 6.0.3.2) rack (~> 2.0, >= 2.0.8) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (6.0.3.1) - actionpack (= 6.0.3.1) - activerecord (= 6.0.3.1) - activestorage (= 6.0.3.1) - activesupport (= 6.0.3.1) + actiontext (6.0.3.2) + actionpack (= 6.0.3.2) + activerecord (= 6.0.3.2) + activestorage (= 6.0.3.2) + activesupport (= 6.0.3.2) nokogiri (>= 1.8.5) - actionview (6.0.3.1) - activesupport (= 6.0.3.1) + actionview (6.0.3.2) + activesupport (= 6.0.3.2) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) @@ -43,23 +43,23 @@ GEM activemodel (>= 4.1, < 6.1) case_transform (>= 0.2) jsonapi-renderer (>= 0.1.1.beta1, < 0.3) - activejob (6.0.3.1) - activesupport (= 6.0.3.1) + activejob (6.0.3.2) + activesupport (= 6.0.3.2) globalid (>= 0.3.6) activejob-status (0.1.6) activejob (>= 4.2) activesupport (>= 4.2) - activemodel (6.0.3.1) - activesupport (= 6.0.3.1) - activerecord (6.0.3.1) - activemodel (= 6.0.3.1) - activesupport (= 6.0.3.1) - activestorage (6.0.3.1) - actionpack (= 6.0.3.1) - activejob (= 6.0.3.1) - activerecord (= 6.0.3.1) + activemodel (6.0.3.2) + activesupport (= 6.0.3.2) + activerecord (6.0.3.2) + activemodel (= 6.0.3.2) + activesupport (= 6.0.3.2) + activestorage (6.0.3.2) + actionpack (= 6.0.3.2) + activejob (= 6.0.3.2) + activerecord (= 6.0.3.2) marcel (~> 0.3.1) - activesupport (6.0.3.1) + activesupport (6.0.3.2) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 0.7, < 2) minitest (~> 5.1) @@ -224,7 +224,7 @@ GEM listen (3.2.1) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) - loofah (2.5.0) + loofah (2.6.0) crass (~> 1.0.2) nokogiri (>= 1.5.9) lumberjack (1.2.4) @@ -293,7 +293,7 @@ GEM activesupport (>= 3.0.0) pyu-ruby-sasl (0.0.3.3) raabro (1.1.6) - rack (2.2.2) + rack (2.2.3) rack-cors (1.1.1) rack (>= 2.0.0) rack-protection (2.0.8.1) @@ -302,20 +302,20 @@ GEM rack rack-test (1.1.0) rack (>= 1.0, < 3) - rails (6.0.3.1) - actioncable (= 6.0.3.1) - actionmailbox (= 6.0.3.1) - actionmailer (= 6.0.3.1) - actionpack (= 6.0.3.1) - actiontext (= 6.0.3.1) - actionview (= 6.0.3.1) - activejob (= 6.0.3.1) - activemodel (= 6.0.3.1) - activerecord (= 6.0.3.1) - activestorage (= 6.0.3.1) - activesupport (= 6.0.3.1) + rails (6.0.3.2) + actioncable (= 6.0.3.2) + actionmailbox (= 6.0.3.2) + actionmailer (= 6.0.3.2) + actionpack (= 6.0.3.2) + actiontext (= 6.0.3.2) + actionview (= 6.0.3.2) + activejob (= 6.0.3.2) + activemodel (= 6.0.3.2) + activerecord (= 6.0.3.2) + activestorage (= 6.0.3.2) + activesupport (= 6.0.3.2) bundler (>= 1.3.0) - railties (= 6.0.3.1) + railties (= 6.0.3.2) sprockets-rails (>= 2.0.0) rails-dom-testing (2.0.3) activesupport (>= 4.2.0) @@ -325,9 +325,9 @@ GEM rails-i18n (6.0.0) i18n (>= 0.7, < 2) railties (>= 6.0.0, < 7) - railties (6.0.3.1) - actionpack (= 6.0.3.1) - activesupport (= 6.0.3.1) + railties (6.0.3.2) + actionpack (= 6.0.3.2) + activesupport (= 6.0.3.2) method_source rake (>= 0.8.7) thor (>= 0.20.3, < 2.0) @@ -399,7 +399,7 @@ GEM spring-watcher-listen (2.0.1) listen (>= 2.7, < 4.0) spring (>= 1.2, < 3.0) - sprockets (4.0.0) + sprockets (4.0.2) concurrent-ruby (~> 1.0) rack (> 1, < 3) sprockets-rails (3.2.1) @@ -439,7 +439,7 @@ GEM rack-proxy (>= 0.6.1) railties (>= 5.2) semantic_range (>= 2.3.0) - websocket-driver (0.7.1) + websocket-driver (0.7.2) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) zeitwerk (2.3.0) From 800f074fbf07e641cdc3f16294eaec6540ec53e7 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Thu, 18 Jun 2020 06:29:01 +0000 Subject: [PATCH 0205/2165] chore(deps-dev): bump web-console from 4.0.1 to 4.0.3 Bumps [web-console](https://github.com/rails/web-console) from 4.0.1 to 4.0.3. - [Release notes](https://github.com/rails/web-console/releases) - [Changelog](https://github.com/rails/web-console/blob/master/CHANGELOG.markdown) - [Commits](https://github.com/rails/web-console/compare/v4.0.1...v4.0.3) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 14946eb51..05c809e24 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -224,7 +224,7 @@ GEM listen (3.2.1) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) - loofah (2.5.0) + loofah (2.6.0) crass (~> 1.0.2) nokogiri (>= 1.5.9) lumberjack (1.2.4) @@ -293,7 +293,7 @@ GEM activesupport (>= 3.0.0) pyu-ruby-sasl (0.0.3.3) raabro (1.1.6) - rack (2.2.2) + rack (2.2.3) rack-cors (1.1.1) rack (>= 2.0.0) rack-protection (2.0.8.1) @@ -429,7 +429,7 @@ GEM vmstat (2.3.1) warden (1.2.8) rack (>= 2.0.6) - web-console (4.0.1) + web-console (4.0.3) actionview (>= 6.0.0) activemodel (>= 6.0.0) bindex (>= 0.4.0) From 90a6414410a7053f1ca296d97df5a7bca99cf1f3 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 18 Jun 2020 16:43:50 +0800 Subject: [PATCH 0206/2165] =?UTF-8?q?style:=20=E4=BC=98=E5=8C=96=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E5=88=97=E8=A1=A8=E5=9C=A8=E6=89=8B=E6=9C=BA=E6=9F=A5?= =?UTF-8?q?=E7=9C=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/channels/filters/_list.slim | 5 +---- app/views/channels/filters/index.slim | 2 +- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/app/views/channels/filters/_list.slim b/app/views/channels/filters/_list.slim index ab27db68c..54ad9cf83 100644 --- a/app/views/channels/filters/_list.slim +++ b/app/views/channels/filters/_list.slim @@ -1,4 +1,4 @@ -table.table.table-striped.table-hover +table.table.table-hover tr th ID th 主版本 @@ -6,7 +6,6 @@ table.table.table-striped.table-hover th 打包类型 th 分支 th Git 提交信息 - th 包信息 th 上传时间 th 操作 - unless @releases.empty? @@ -24,8 +23,6 @@ table.table.table-striped.table-hover = git_branch_url(release) td = git_commit_url(release.channel.git_url, release.git_commit) - td - = link_to '下载本地', release.download_url, { target: '_blank' } td span data-toggle="tooltip" title="#{release.created_at}" = time_ago_in_words(release.created_at) diff --git a/app/views/channels/filters/index.slim b/app/views/channels/filters/index.slim index 17336f1d8..a913db9a6 100644 --- a/app/views/channels/filters/index.slim +++ b/app/views/channels/filters/index.slim @@ -13,5 +13,5 @@ a href="#{channel_path(@channel)}" i.far.fa-list-alt | 返回上级页面 - .card-body.table-responsive.p-0 + .table-responsive == render 'channels/filters/list' From 443c7de3e5af50cb55550ed4b919adfdb1ba3db3 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 18 Jun 2020 16:50:11 +0800 Subject: [PATCH 0207/2165] =?UTF-8?q?style:=20=E6=B8=A0=E9=81=93=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E7=9A=84=E6=9C=80=E8=BF=91=E4=B8=8A=E4=BC=A0=E5=8A=A8?= =?UTF-8?q?=E6=80=81=E4=BB=85=E6=98=BE=E7=A4=BA=E5=BA=95=E9=83=A8=E5=88=86?= =?UTF-8?q?=E9=A1=B5=EF=BC=8C=E4=B8=8A=E9=83=A8=E6=94=B9=E4=B8=BA=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E6=80=BB=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/channels/_activity.html.slim | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/views/channels/_activity.html.slim b/app/views/channels/_activity.html.slim index c1bc267e2..372e31ae1 100644 --- a/app/views/channels/_activity.html.slim +++ b/app/views/channels/_activity.html.slim @@ -4,7 +4,8 @@ i.fas.fa-history | 最近上传动态 .card-tools - = paginate @releases + span.badge.bg-yellow + = @channel.releases.count .card-body.p-0 ul.products-list.product-list-in-card From 8e0792bb77fadb9baaafd335930c0dec8ddb134b Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 19 Jun 2020 12:00:38 +0800 Subject: [PATCH 0208/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E5=91=98=E7=BC=96=E8=BE=91=E7=94=A8=E6=88=B7=E5=BF=85?= =?UTF-8?q?=E9=A1=BB=E8=BE=93=E5=85=A5=E5=AF=86=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/admin/users_controller.rb | 5 +++-- app/views/admin/users/_form.html.slim | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/app/controllers/admin/users_controller.rb b/app/controllers/admin/users_controller.rb index b138cd95a..7fdddd21f 100644 --- a/app/controllers/admin/users_controller.rb +++ b/app/controllers/admin/users_controller.rb @@ -35,8 +35,9 @@ def update end # 没有设置密码的情况下不更新该字段 - user_params.delete(:password) if user_params[:password].blank? - return render :edit unless @user.update(user_params) + params = user_params.dup + params = params.delete(:password) if params[:password].blank? + return render :edit unless @user.update(params) redirect_to admin_users_url, notice: '用户已经更新' end diff --git a/app/views/admin/users/_form.html.slim b/app/views/admin/users/_form.html.slim index 830dd9c0b..4095f7130 100644 --- a/app/views/admin/users/_form.html.slim +++ b/app/views/admin/users/_form.html.slim @@ -4,7 +4,7 @@ = f.input :username, required: true = f.input :email, required: true - = f.input :password, required: true + = f.input :password = f.input :role, collection: roles, include_blank: false .card-footer From d3ea1816a9e0924f343b3c63cc82da5c3df4fd01 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 19 Jun 2020 14:56:23 +0800 Subject: [PATCH 0209/2165] =?UTF-8?q?chore:=20=E6=97=A5=E5=BF=97=E8=BE=93?= =?UTF-8?q?=E5=87=BA=20STDOT=20=E5=90=8C=E6=97=B6=E4=BF=9D=E5=AD=98?= =?UTF-8?q?=E5=88=B0=20log=20=E7=9B=AE=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-endpoint.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docker-endpoint.sh b/docker-endpoint.sh index becb4c99d..6506c072e 100755 --- a/docker-endpoint.sh +++ b/docker-endpoint.sh @@ -28,11 +28,11 @@ if [ "$1" = 'run_server' ]; then # Start the server echo "Zealot server is ready to run ..." - bundle exec puma -C config/puma.rb + bundle exec puma -C config/puma.rb | tee /app/log/zealot.log elif [ "$1" = 'run_worker' ]; then # Start the sidekiq echo "Zealot worker is wait the comming job ..." - bundle exec sidekiq -C config/sidekiq.yml + bundle exec sidekiq -C config/sidekiq.yml | tee /app/log/sidekiq.log elif [ "$1" = 'run_upgrade' ]; then ./bin/rails zealot:upgrade exit 0 From 04fa363c2e7f82ce18e5d664d0376c18ae33aa11 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 19 Jun 2020 15:02:39 +0800 Subject: [PATCH 0210/2165] =?UTF-8?q?fix:=20=E6=B8=85=E7=90=86=E6=97=A7?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E7=89=88=E6=9C=AC=E5=88=A4=E6=96=AD=E6=96=B9?= =?UTF-8?q?=E6=B3=95=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 之前使用 max 方法会造成 4.9.0 和 4.10.0 结果前者的版本更大 --- app/jobs/clean_old_releases_job.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/jobs/clean_old_releases_job.rb b/app/jobs/clean_old_releases_job.rb index aec965168..37dbca36f 100644 --- a/app/jobs/clean_old_releases_job.rb +++ b/app/jobs/clean_old_releases_job.rb @@ -6,7 +6,7 @@ class CleanOldReleasesJob < ApplicationJob def perform channels = Channel.all channels.each do |channel| - logger.info("channel #{channel.id}") + logger.debug("Checking channel #{channel.id}") clean_old_releases(channel) end end @@ -15,7 +15,7 @@ def clean_old_releases(channel) versions = channel.release_versions return if versions.empty? - latest_version = versions.max + latest_version = versions.max { |a,b| Gem::Version.new(a) <=> Gem::Version.new(b) } previous_versions = versions.delete_if { |v| v == latest_version } previous_versions.each do |value| clean_previouse_build_version(channel, value) @@ -27,7 +27,7 @@ def clean_previouse_build_version(channel, release_version) return if releases.size <= 1 versions = releases.map(&:version) - latest_version = versions.max + latest_version = versions.max { |a,b| Gem::Version.new(a) <=> Gem::Version.new(b) } logger.info("Delete channel [#{channel.id}] has versions: #{versions} and latest verison is #{latest_version}") remove_releases(channel, releases, latest_version) From 01eea0eeb3714afee723d36767f26eada89e0b2d Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 19 Jun 2020 15:03:54 +0800 Subject: [PATCH 0211/2165] =?UTF-8?q?chore:=20=E5=9B=9E=E6=BB=9A=20redis?= =?UTF-8?q?=204.1.4=20=E6=9C=80=E6=96=B0=E7=89=88=E6=9C=AC=E5=92=8C=20side?= =?UTF-8?q?kiq=20=E4=B8=8D=E5=85=BC=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 547d51ef1..faf60cfad 100644 --- a/Gemfile +++ b/Gemfile @@ -13,7 +13,7 @@ gem 'rake', '~> 13.0.1' # DB & Cache gem 'pg', '>= 0.18', '< 2.0' -gem 'redis', '~> 4.2.1' +gem 'redis', '~> 4.1.4' # API gem 'active_model_serializers', '~> 0.10.10' diff --git a/Gemfile.lock b/Gemfile.lock index a70d6d6c4..12f16796b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -336,7 +336,7 @@ GEM rb-fsevent (0.10.3) rb-inotify (0.10.1) ffi (~> 1.0) - redis (4.2.1) + redis (4.1.4) regexp_parser (1.7.1) responders (3.0.1) actionpack (>= 5.0) @@ -492,7 +492,7 @@ DEPENDENCIES rails (~> 6.0.3) rails-i18n (~> 6.0.0) rake (~> 13.0.1) - redis (~> 4.2.1) + redis (~> 4.1.4) rqrcode rubocop (>= 0.70) rubocop-rails From 337c95001386f456fd0c3a9c49238189e7ccacde Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 19 Jun 2020 15:07:41 +0800 Subject: [PATCH 0212/2165] =?UTF-8?q?chore:=20=E5=A2=9E=E5=8A=A0=E6=B8=85?= =?UTF-8?q?=E7=90=86=20/tmp=20=E4=B8=B4=E6=97=B6=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E7=9A=84=20crontab=20=E5=88=B0=20Dockerfile?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 0795727dc..f9f012262 100644 --- a/Dockerfile +++ b/Dockerfile @@ -94,7 +94,11 @@ RUN set -ex && \ apk --update --no-cache add $PACKAGES && \ cp /usr/share/zoneinfo/$TZ /etc/localtime && \ echo $TZ > /etc/timezone && \ - gem install $RUBY_GEMS + gem install $RUBY_GEMS && \ + echo "0 */5 * * * /bin/sh -l -c 'find /tmp -type f -mmin +300 -exec rm -f {} \;' >> /var/log/clean_tmp_cron.log 2>&1" > /etc/crontabs/clean_tmp && \ + chmod 0644 /etc/crontabs/clean_tmp && \ + touch /var/log/clean_tmp_cron.log && \ + crontab /etc/crontabs/clean_tmp WORKDIR $APP_ROOT From 328825e714758dc863503b9c7f21f1dda7cccbce Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 19 Jun 2020 17:56:30 +0800 Subject: [PATCH 0213/2165] =?UTF-8?q?refactor:=20=E6=B8=A0=E9=81=93?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E7=9A=84=E4=B8=BB=E7=89=88=E6=9C=AC=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E6=8C=89=E7=85=A7=E7=89=88=E6=9C=AC=E5=80=92=E5=BA=8F?= =?UTF-8?q?=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/channel.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/channel.rb b/app/models/channel.rb index 928968b12..88c98f02e 100644 --- a/app/models/channel.rb +++ b/app/models/channel.rb @@ -43,7 +43,7 @@ def release_versions releases.select(:release_version) .group(:release_version) .map(&:release_version) - .reverse + .sort { |a,b| Gem::Version.new(b) <=> Gem::Version.new(a) } end def release_version_count(version) From bc36bf6a231453f0f71ddc2272f39061bcd48936 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Thu, 25 Jun 2020 06:30:53 +0000 Subject: [PATCH 0214/2165] chore(deps-dev): bump pry-rescue from 1.5.1 to 1.5.2 Bumps [pry-rescue](https://github.com/ConradIrwin/pry-rescue) from 1.5.1 to 1.5.2. - [Release notes](https://github.com/ConradIrwin/pry-rescue/releases) - [Changelog](https://github.com/ConradIrwin/pry-rescue/blob/master/CHANGELOG.md) - [Commits](https://github.com/ConradIrwin/pry-rescue/compare/v1.5.1...v1.5.2) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 12f16796b..2d019f032 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -99,7 +99,7 @@ GEM case_transform (0.2) activesupport chunky_png (1.3.11) - coderay (1.1.2) + coderay (1.1.3) concurrent-ruby (1.1.6) connection_pool (2.2.2) crass (1.0.6) @@ -283,7 +283,7 @@ GEM pry (~> 0.13.0) pry-rails (0.3.9) pry (>= 0.10.4) - pry-rescue (1.5.1) + pry-rescue (1.5.2) interception (>= 0.5) pry (>= 0.12.0) public_suffix (4.0.3) From 9a4ee30afb6a1845c9a8ea08e8b2e6aeb335aba4 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Sun, 28 Jun 2020 18:35:28 +0800 Subject: [PATCH 0215/2165] =?UTF-8?q?refactor:=20=E4=B8=8B=E8=BD=BD=20app?= =?UTF-8?q?=20=E5=92=8C=20debug=5Ffile=20=E4=BC=9A=20301=20=E5=88=B0?= =?UTF-8?q?=E4=B8=80=E4=B8=AA=E6=96=B0=E5=9C=B0=E5=9D=80=E4=BB=85=E4=BE=9B?= =?UTF-8?q?=E5=8F=AF=E8=AF=BB=E5=92=8C=E7=BC=93=E5=AD=98=E4=BD=BF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/download/debug_files_controller.rb | 4 ++++ app/controllers/download/releases_controller.rb | 4 ++++ app/policies/debug_file_policy.rb | 5 +++++ app/policies/download/debug_file_policy.rb | 9 --------- config/routes.rb | 13 +++++++++++-- 5 files changed, 24 insertions(+), 11 deletions(-) delete mode 100644 app/policies/download/debug_file_policy.rb diff --git a/app/controllers/download/debug_files_controller.rb b/app/controllers/download/debug_files_controller.rb index c42bccf1b..151b270a9 100644 --- a/app/controllers/download/debug_files_controller.rb +++ b/app/controllers/download/debug_files_controller.rb @@ -8,6 +8,10 @@ class Download::DebugFilesController < ApplicationController def show return render_not_found_entity_response unless File.exist?(@debug_file.file.path.to_s) + redirect_to filename_download_debug_file_url(@debug_file, @debug_file.download_filename) + end + + def download headers['Content-Length'] = @debug_file.file.size send_file @debug_file.file.path, filename: @debug_file.download_filename, diff --git a/app/controllers/download/releases_controller.rb b/app/controllers/download/releases_controller.rb index 2e449131c..eb0235e6d 100644 --- a/app/controllers/download/releases_controller.rb +++ b/app/controllers/download/releases_controller.rb @@ -9,6 +9,10 @@ class Download::ReleasesController < ApplicationController def show return render_not_found_entity_response unless File.exist?(@release.file.path.to_s) + redirect_to filename_download_release_url(@release, @release.download_filename) + end + + def download # 触发 web_hook @release.channel.perform_web_hook('download_events') diff --git a/app/policies/debug_file_policy.rb b/app/policies/debug_file_policy.rb index 57024b8dc..ab2346cfe 100644 --- a/app/policies/debug_file_policy.rb +++ b/app/policies/debug_file_policy.rb @@ -1,6 +1,11 @@ # frozen_string_literal: true class DebugFilePolicy < ApplicationPolicy + + def download? + manage? + end + class Scope < Scope def resolve scope.all diff --git a/app/policies/download/debug_file_policy.rb b/app/policies/download/debug_file_policy.rb deleted file mode 100644 index 69211b067..000000000 --- a/app/policies/download/debug_file_policy.rb +++ /dev/null @@ -1,9 +0,0 @@ -# frozen_string_literal: true - -class Download::DebugFilePolicy < ApplicationPolicy - class Scope < Scope - def resolve - scope.all - end - end -end diff --git a/config/routes.rb b/config/routes.rb index a9d881ce6..cce4be963 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -70,8 +70,17 @@ # Download ############################################# namespace :download do - resources :releases, only: :show - resources :debug_files, only: :show + resources :releases, only: :show do + member do + get ':filename', action: :download, filename: /.+/, as: 'filename' + end + end + + resources :debug_files, only: :show do + member do + get ':filename', action: :download, filename: /.+/, as: 'filename' + end + end end ############################################# From 0b41f583cf31a1fe996d3c8e5e90edbb998a6602 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Sun, 28 Jun 2020 18:57:01 +0800 Subject: [PATCH 0216/2165] =?UTF-8?q?style:=20=E4=BF=AE=E6=94=B9=E8=B0=83?= =?UTF-8?q?=E8=AF=95=E6=96=87=E4=BB=B6=E7=9A=84=E6=96=87=E6=A1=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/dashboards/_analytics.html.slim | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/dashboards/_analytics.html.slim b/app/views/dashboards/_analytics.html.slim index 8a2fcb3ce..f3169bd53 100644 --- a/app/views/dashboards/_analytics.html.slim +++ b/app/views/dashboards/_analytics.html.slim @@ -16,7 +16,7 @@ section.analytics i.fas.fa-bug .info-box-content span.info-box-text - a href="#{debug_files_path}" data-no-turbolink="true" Debug Files 数量 + a href="#{debug_files_path}" data-no-turbolink="true" 调试文件 span.info-box-number = @analytics[:debug_files] @@ -27,7 +27,7 @@ section.analytics i.fas.fa-user .info-box-content span.info-box-text - a href="#{admin_users_path}" data-no-turbolink="true" 用户数量 + a href="#{admin_users_path}" data-no-turbolink="true" 用户 span.info-box-number = @analytics[:users] From f90b73d08d6277d0a75c8a5c22007a4cb46ab3a2 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Sun, 28 Jun 2020 19:02:07 +0800 Subject: [PATCH 0217/2165] fix: method names deflined twice --- lib/backup/database.rb | 2 -- lib/backup/uploads.rb | 2 -- 2 files changed, 4 deletions(-) diff --git a/lib/backup/database.rb b/lib/backup/database.rb index d5149f640..480832a65 100644 --- a/lib/backup/database.rb +++ b/lib/backup/database.rb @@ -34,8 +34,6 @@ class Database class Error < StandardError; end - attr_reader :config, :db_file_name - def self.dump new.dump end diff --git a/lib/backup/uploads.rb b/lib/backup/uploads.rb index 9b6d84f7f..0dc792e79 100644 --- a/lib/backup/uploads.rb +++ b/lib/backup/uploads.rb @@ -44,8 +44,6 @@ def self.restore new.restore end - attr_reader :uploads_path, :backup_tarball - def dump FileUtils.mkdir_p(backup_path) FileUtils.rm_f(backup_tarball) From 2bb13bfc4ac9b4f5164f78288ff82c8772234921 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 29 Jun 2020 14:50:23 +0800 Subject: [PATCH 0218/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=9C=A8?= =?UTF-8?q?=E7=BA=BF=E5=AE=89=E8=A3=85=20iOS=20ipa=20=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E4=B8=8D=E5=AD=98=E5=9C=A8=E6=8C=87=E5=90=91=E6=9C=80=E6=96=B0?= =?UTF-8?q?=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/releases/install_controller.rb | 13 +++++++------ app/models/release.rb | 6 +++--- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/app/controllers/releases/install_controller.rb b/app/controllers/releases/install_controller.rb index 6d598edce..95c439f58 100644 --- a/app/controllers/releases/install_controller.rb +++ b/app/controllers/releases/install_controller.rb @@ -2,13 +2,14 @@ class Releases::InstallController < ApplicationController def show - @release = Release.version_by_channel(params[:channel_id], params[:id]) + @release = Release.version_by_channel(params[:channel_id], params[:release_id]) + render content_type: 'text/xml', layout: false + end + + private - if @release - render content_type: 'text/xml', layout: false - else - render json: { error: '没有找到对应的应用或版本' }, status: :not_found - end + def render_not_found_entity_response + render json: { error: '没有找到对应的应用或版本' }, status: :not_found end end diff --git a/app/models/release.rb b/app/models/release.rb index d838383d4..aaed64193 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -26,9 +26,9 @@ class Release < ApplicationRecord paginates_per 20 max_paginates_per 50 - def self.version_by_channel(slug, id = nil) - channel = Channel.friendly.find(slug) - id.present? ? channel.releases.find(id) : channel.releases.latest + def self.version_by_channel(channel_slug, release_id) + channel = Channel.friendly.find(channel_slug) + channel.releases.find(release_id) end # 上传pp From fdabeb784a48ff486288e4294163779f50d6aaaf Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 8 Jul 2020 06:22:49 +0000 Subject: [PATCH 0219/2165] chore(deps-dev): bump rubocop from 0.85.1 to 0.87.1 Bumps [rubocop](https://github.com/rubocop-hq/rubocop) from 0.85.1 to 0.87.1. - [Release notes](https://github.com/rubocop-hq/rubocop/releases) - [Changelog](https://github.com/rubocop-hq/rubocop/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop-hq/rubocop/compare/v0.85.1...v0.87.1) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 12f16796b..1803dc658 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -75,7 +75,7 @@ GEM ruby_android (~> 0.7.7) rubyzip (>= 1.2, < 3.0) uuidtools (~> 2.1.5) - ast (2.4.0) + ast (2.4.1) awesome_print (1.8.0) bcrypt (3.1.13) better_errors (2.7.1) @@ -269,9 +269,9 @@ GEM omniauth (~> 1.9) openssl (2.2.0) orm_adapter (0.5.0) - parallel (1.19.1) - parser (2.7.1.3) - ast (~> 2.4.0) + parallel (1.19.2) + parser (2.7.1.4) + ast (~> 2.4.1) pg (1.2.1) plist (3.5.0) pngdefry (0.1.3) @@ -346,16 +346,16 @@ GEM chunky_png (~> 1.0) rqrcode_core (~> 0.1) rqrcode_core (0.1.1) - rubocop (0.85.1) + rubocop (0.87.1) parallel (~> 1.10) - parser (>= 2.7.0.1) + parser (>= 2.7.1.1) rainbow (>= 2.2.2, < 4.0) regexp_parser (>= 1.7) rexml - rubocop-ast (>= 0.0.3) + rubocop-ast (>= 0.1.0, < 1.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 1.4.0, < 2.0) - rubocop-ast (0.0.3) + rubocop-ast (0.1.0) parser (>= 2.7.0.1) rubocop-rails (2.6.0) activesupport (>= 4.2.0) From f5fad3f547eefd946ed90d4f5b19a364540ca9b4 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 13 Jul 2020 06:40:37 +0000 Subject: [PATCH 0220/2165] chore(deps-dev): bump web-console from 4.0.3 to 4.0.4 Bumps [web-console](https://github.com/rails/web-console) from 4.0.3 to 4.0.4. - [Release notes](https://github.com/rails/web-console/releases) - [Changelog](https://github.com/rails/web-console/blob/master/CHANGELOG.markdown) - [Commits](https://github.com/rails/web-console/compare/v4.0.3...v4.0.4) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 12f16796b..fd247a6b4 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -246,7 +246,7 @@ GEM nenv (0.3.0) net-ldap (0.16.2) nio4r (2.5.2) - nokogiri (1.10.9) + nokogiri (1.10.10) mini_portile2 (~> 2.4.0) notiffany (0.1.3) nenv (~> 0.1) @@ -429,7 +429,7 @@ GEM vmstat (2.3.1) warden (1.2.8) rack (>= 2.0.6) - web-console (4.0.3) + web-console (4.0.4) actionview (>= 6.0.0) activemodel (>= 6.0.0) bindex (>= 0.4.0) @@ -442,7 +442,7 @@ GEM websocket-driver (0.7.2) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) - zeitwerk (2.3.0) + zeitwerk (2.3.1) PLATFORMS ruby From fb97e7ad84702dd96f9dc0ece251a0d2ba54a9a1 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 13 Jul 2020 06:40:50 +0000 Subject: [PATCH 0221/2165] chore(deps-dev): bump dotenv-rails from 2.7.5 to 2.7.6 Bumps [dotenv-rails](https://github.com/bkeepers/dotenv) from 2.7.5 to 2.7.6. - [Release notes](https://github.com/bkeepers/dotenv/releases) - [Changelog](https://github.com/bkeepers/dotenv/blob/master/Changelog.md) - [Commits](https://github.com/bkeepers/dotenv/compare/v2.7.5...v2.7.6) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 12f16796b..4745c1da7 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -117,10 +117,10 @@ GEM devise (>= 4.7.1) domain_name (0.5.20190701) unf (>= 0.0.5, < 1.0.0) - dotenv (2.7.5) - dotenv-rails (2.7.5) - dotenv (= 2.7.5) - railties (>= 3.2, < 6.1) + dotenv (2.7.6) + dotenv-rails (2.7.6) + dotenv (= 2.7.6) + railties (>= 3.2) erubi (1.9.0) et-orbi (1.2.4) tzinfo @@ -246,7 +246,7 @@ GEM nenv (0.3.0) net-ldap (0.16.2) nio4r (2.5.2) - nokogiri (1.10.9) + nokogiri (1.10.10) mini_portile2 (~> 2.4.0) notiffany (0.1.3) nenv (~> 0.1) @@ -442,7 +442,7 @@ GEM websocket-driver (0.7.2) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) - zeitwerk (2.3.0) + zeitwerk (2.3.1) PLATFORMS ruby From d568698484bec3054706cb4065a2bfe70f3ab6f5 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 13 Jul 2020 06:41:45 +0000 Subject: [PATCH 0222/2165] chore(deps): [security] bump npm-registry-fetch from 8.0.0 to 8.1.2 Bumps [npm-registry-fetch](https://github.com/npm/registry-fetch) from 8.0.0 to 8.1.2. **This update includes a security fix.** - [Release notes](https://github.com/npm/registry-fetch/releases) - [Changelog](https://github.com/npm/npm-registry-fetch/blob/latest/CHANGELOG.md) - [Commits](https://github.com/npm/registry-fetch/compare/v8.0.0...v8.1.2) Signed-off-by: dependabot-preview[bot] --- yarn.lock | 247 ++++++++++++++++++++++++++++++++---------------------- 1 file changed, 145 insertions(+), 102 deletions(-) diff --git a/yarn.lock b/yarn.lock index 00049507a..308b0e7e4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -916,6 +916,13 @@ read-package-json-fast "^1.1.1" readdir-scoped-modules "^1.1.0" +"@npmcli/move-file@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.0.1.tgz#de103070dac0f48ce49cf6693c23af59c0f70464" + integrity sha512-Uv6h1sT+0DrblvIrolFtbvM1FgWm+/sy4B3pvLp67Zys+thcukzS5ekn7HsZFGpWP4Q3fYJCljbWQE/XivMRLw== + dependencies: + mkdirp "^1.0.4" + "@npmcli/promise-spawn@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@npmcli/promise-spawn/-/promise-spawn-1.1.0.tgz#660009a5c54209142ec7c469c190d212834b6087" @@ -990,9 +997,9 @@ defer-to-connect "^1.0.1" "@tootallnate/once@1": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.0.0.tgz#9c13c2574c92d4503b005feca8f2e16cc1611506" - integrity sha512-KYyTT/T6ALPkIRd2Ge080X/BsXvy9O0hcWTtMWkPvwAwF99+vn6Dv4GzrFT/Nn1LePr+FFDbRXXlqmsy9lw2zA== + version "1.1.2" + resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" + integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== "@ttskch/select2-bootstrap4-theme@^1.3.2": version "1.3.2" @@ -1301,16 +1308,16 @@ admin-lte@^3.0.5: toastr "^2.1.4" agent-base@6: - version "6.0.0" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.0.tgz#5d0101f19bbfaed39980b22ae866de153b93f09a" - integrity sha512-j1Q7cSCqN+AwrmDd+pzgqc0/NpC655x2bUf5ZjRIO77DcNBFmh+OgRNzF6OKdCC9RSCb19fGd99+bhXFdkRNqw== + version "6.0.1" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.1.tgz#808007e4e5867decb0ab6ab2f928fbdb5a596db4" + integrity sha512-01q25QQDwLSsyfhrKbn8yuur+JNw0H+0Y4JiGIKd3z9aYk/w/2kxD/Upc+t2ZBBSUNff50VjPsSW2YxM8QYKVg== dependencies: debug "4" agentkeepalive@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.1.0.tgz#a48e040ed16745dd29ce923675f60c9c90f39ee0" - integrity sha512-CW/n1wxF8RpEuuiq6Vbn9S8m0VSYDMnZESqaJ6F2cWN9fY8rei2qaxweIaRgq+ek8TqfoFIsUjaGNKGGEHElSg== + version "4.1.3" + resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.1.3.tgz#360a09d743a1f4fde749f9ba07caa6575d08259a" + integrity sha512-wn8fw19xKZwdGPO47jivonaHRTd+nGOMP1z11sgGeQzDy2xd5FG0R67dIMcKHDE2cJ5y+YXV30XVGUBPRSY7Hg== dependencies: debug "^4.1.0" depd "^1.1.2" @@ -1318,8 +1325,8 @@ agentkeepalive@^4.1.0: aggregate-error@^3.0.0: version "3.0.1" - resolved "https://registry.npm.taobao.org/aggregate-error/download/aggregate-error-3.0.1.tgz#db2fe7246e536f40d9b5442a39e117d7dd6a24e0" - integrity sha1-2y/nJG5Tb0DZtUQqOeEX191qJOA= + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.0.1.tgz#db2fe7246e536f40d9b5442a39e117d7dd6a24e0" + integrity sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA== dependencies: clean-stack "^2.0.0" indent-string "^4.0.0" @@ -1651,7 +1658,7 @@ babel-runtime@^6.11.6: balanced-match@^1.0.0: version "1.0.0" - resolved "https://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= base64-js@0.0.8: @@ -1801,8 +1808,8 @@ boxen@^4.2.0: brace-expansion@^1.1.7: version "1.1.11" - resolved "https://registry.npm.taobao.org/brace-expansion/download/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0= + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== dependencies: balanced-match "^1.0.0" concat-map "0.0.1" @@ -2049,26 +2056,26 @@ cacache@^13.0.1: unique-filename "^1.1.1" cacache@^15.0.0: - version "15.0.0" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.0.0.tgz#133b59edbd2a37ea8ef2d54964c6f247e47e5059" - integrity sha512-L0JpXHhplbJSiDGzyJJnJCTL7er7NzbBgxzVqLswEb4bO91Zbv17OUMuUeu/q0ZwKn3V+1HM4wb9tO4eVE/K8g== + version "15.0.5" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.0.5.tgz#69162833da29170d6732334643c60e005f5f17d0" + integrity sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A== dependencies: - chownr "^1.1.2" + "@npmcli/move-file" "^1.0.1" + chownr "^2.0.0" fs-minipass "^2.0.0" glob "^7.1.4" infer-owner "^1.0.4" - lru-cache "^5.1.1" + lru-cache "^6.0.0" minipass "^3.1.1" minipass-collect "^1.0.2" minipass-flush "^1.0.5" minipass-pipeline "^1.2.2" mkdirp "^1.0.3" - move-concurrently "^1.0.1" - p-map "^3.0.0" + p-map "^4.0.0" promise-inflight "^1.0.1" - rimraf "^2.7.1" + rimraf "^3.0.2" ssri "^8.0.0" - tar "^6.0.1" + tar "^6.0.2" unique-filename "^1.1.1" cache-base@^1.0.1: @@ -2256,6 +2263,11 @@ chownr@^1.1.3, chownr@^1.1.4: resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== +chownr@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" + integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== + chrome-trace-event@^1.0.2: version "1.0.2" resolved "https://registry.npm.taobao.org/chrome-trace-event/download/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" @@ -2293,8 +2305,8 @@ class-utils@^0.3.5: clean-stack@^2.0.0: version "2.2.0" - resolved "https://registry.npm.taobao.org/clean-stack/download/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" - integrity sha1-7oRy27Ep5yezHooQpCfe6d/kAIs= + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== cli-boxes@^2.2.0: version "2.2.0" @@ -2484,7 +2496,7 @@ compression@^1.7.4: concat-map@0.0.1: version "0.0.1" - resolved "https://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= concat-stream@^1.5.0, concat-stream@~1.6.0: @@ -3118,8 +3130,8 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3: debug@4, debug@^4.1.0, debug@^4.1.1: version "4.1.1" - resolved "https://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" - integrity sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E= + resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== dependencies: ms "^2.1.1" @@ -3246,7 +3258,7 @@ delegates@^1.0.0: depd@^1.1.2, depd@~1.1.2: version "1.1.2" - resolved "https://registry.npm.taobao.org/depd/download/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= des.js@^1.0.0: @@ -3448,11 +3460,11 @@ encodeurl@~1.0.2: integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= encoding@^0.1.12: - version "0.1.12" - resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" - integrity sha1-U4tm8+5izRq1HsMjgp0flIDHS+s= + version "0.1.13" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" + integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== dependencies: - iconv-lite "~0.4.13" + iconv-lite "^0.6.2" end-of-stream@^1.0.0, end-of-stream@^1.1.0: version "1.4.4" @@ -4141,14 +4153,7 @@ fs-extra@^9.0.0: jsonfile "^6.0.1" universalify "^1.0.0" -fs-minipass@^2.0.0: - version "2.0.0" - resolved "https://registry.npm.taobao.org/fs-minipass/download/fs-minipass-2.0.0.tgz#a6415edab02fae4b9e9230bc87ee2e4472003cd1" - integrity sha1-pkFe2rAvrkuekjC8h+4uRHIAPNE= - dependencies: - minipass "^3.0.0" - -fs-minipass@^2.1.0: +fs-minipass@^2.0.0, fs-minipass@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== @@ -4167,7 +4172,7 @@ fs-write-stream-atomic@^1.0.8: fs.realpath@^1.0.0: version "1.0.0" - resolved "https://registry.npm.taobao.org/fs.realpath/download/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= fsevents@^1.2.7: @@ -4518,11 +4523,11 @@ hosted-git-info@^2.1.4: integrity sha1-dZz88sTRVq3lmwst+r3cQqa5xww= hosted-git-info@^3.0.2: - version "3.0.4" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.4.tgz#be4973eb1fd2737b11c9c7c19380739bb249f60d" - integrity sha512-4oT62d2jwSDBbLLFLZE+1vPuQ1h8p9wjrJ8Mqx5TjsyWmBMV5B13eJqn8pvluqubLf3cJPTfiYCIwNwDNmzScQ== + version "3.0.5" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.5.tgz#bea87905ef7317442e8df3087faa3c842397df03" + integrity sha512-i4dpK6xj9BIpVOTboXIlKG9+8HMKggcrMX7WA24xZtKwX0TPelq/rbaS5rCKeNX8sJXZJGdSxpnEGtta+wismQ== dependencies: - lru-cache "^5.1.1" + lru-cache "^6.0.0" hpack.js@^2.1.6: version "2.1.6" @@ -4663,7 +4668,7 @@ icheck-bootstrap@^3.0.1: resolved "https://registry.npm.taobao.org/icheck-bootstrap/download/icheck-bootstrap-3.0.1.tgz#60c9c9a71524e1d9dd5bd05167a62fef05cc3a1b" integrity sha1-YMnJpxUk4dndW9BRZ6Yv7wXMOhs= -iconv-lite@0.4.24, iconv-lite@~0.4.13: +iconv-lite@0.4.24: version "0.4.24" resolved "https://registry.npm.taobao.org/iconv-lite/download/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha1-ICK0sl+93CHS9SSXSkdKr+czkIs= @@ -4677,6 +4682,13 @@ iconv-lite@^0.5.1: dependencies: safer-buffer ">= 2.1.2 < 3" +iconv-lite@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.2.tgz#ce13d1875b0c3a674bd6a04b7f76b01b1b6ded01" + integrity sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ== + dependencies: + safer-buffer ">= 2.1.2 < 3.0.0" + icss-utils@^4.0.0, icss-utils@^4.1.1: version "4.1.1" resolved "https://registry.npm.taobao.org/icss-utils/download/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467" @@ -4758,7 +4770,7 @@ import-local@2.0.0, import-local@^2.0.0: imurmurhash@^0.1.4: version "0.1.4" - resolved "https://registry.npm.taobao.org/imurmurhash/download/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= in-publish@^2.0.0: @@ -4775,8 +4787,8 @@ indent-string@^2.1.0: indent-string@^4.0.0: version "4.0.0" - resolved "https://registry.npm.taobao.org/indent-string/download/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" - integrity sha1-Yk+PRJfWGbLZdoUx1Y9BIoVNclE= + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== indexes-of@^1.0.1: version "1.0.1" @@ -4785,12 +4797,12 @@ indexes-of@^1.0.1: infer-owner@^1.0.3, infer-owner@^1.0.4: version "1.0.4" - resolved "https://registry.npm.taobao.org/infer-owner/download/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" - integrity sha1-xM78qo5RBRwqQLos6KPScpWvlGc= + resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" + integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== inflight@^1.0.4: version "1.0.6" - resolved "https://registry.npm.taobao.org/inflight/download/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= dependencies: once "^1.3.0" @@ -4798,8 +4810,8 @@ inflight@^1.0.4: inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: version "2.0.4" - resolved "https://registry.npm.taobao.org/inherits/download/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w= + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== inherits@2.0.1: version "2.0.1" @@ -4863,7 +4875,7 @@ ip-regex@^2.1.0: ip@1.1.5, ip@^1.1.0, ip@^1.1.5: version "1.1.5" - resolved "https://registry.npm.taobao.org/ip/download/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" + resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= ipaddr.js@1.9.0: @@ -5671,6 +5683,13 @@ lru-cache@^5.1.1: dependencies: yallist "^3.0.2" +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + magic-string@^0.22.4: version "0.22.5" resolved "https://registry.npm.taobao.org/magic-string/download/magic-string-0.22.5.tgz#8e9cf5afddf44385c1da5bc2a6a0dbd10b03657e" @@ -5693,10 +5712,10 @@ make-dir@^3.0.0: dependencies: semver "^6.0.0" -make-fetch-happen@^8.0.2: - version "8.0.4" - resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-8.0.4.tgz#d3451baf5b43d6230c4eea7009c5aa6b6bccf9d4" - integrity sha512-hIFoqGq1db0QMiy/Atr/pI1Rs4rDV+ZdGSey2SQyF3KK3u1z4aj9mS5UdNnZkdQpA+H3pGn0J3KlEwsi2x4EqA== +make-fetch-happen@^8.0.8: + version "8.0.8" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-8.0.8.tgz#12e8281b83db47324380b9967bb7d38756a4454c" + integrity sha512-kILd4WtBFqylc65LRq9sTx/GG0r9yMoomjz9ZMGxzZKWXhnidDhROhnjtZEQDHSWbwQJ5ojI4XZk46DdHwslGg== dependencies: agentkeepalive "^4.1.0" cacache "^15.0.0" @@ -5704,8 +5723,8 @@ make-fetch-happen@^8.0.2: http-proxy-agent "^4.0.1" https-proxy-agent "^5.0.0" is-lambda "^1.0.1" - lru-cache "^5.1.1" - minipass "^3.0.0" + lru-cache "^6.0.0" + minipass "^3.1.3" minipass-collect "^1.0.2" minipass-fetch "^1.1.2" minipass-flush "^1.0.5" @@ -5901,8 +5920,8 @@ minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: minimatch@^3.0.4, minimatch@~3.0.2: version "3.0.4" - resolved "https://registry.npm.taobao.org/minimatch/download/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM= + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== dependencies: brace-expansion "^1.1.7" @@ -5923,8 +5942,8 @@ minimist@^1.2.5: minipass-collect@^1.0.2: version "1.0.2" - resolved "https://registry.npm.taobao.org/minipass-collect/download/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" - integrity sha1-IrgTv3Rdxu26JXa5QAIq1u3Ixhc= + resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" + integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== dependencies: minipass "^3.0.0" @@ -5942,8 +5961,8 @@ minipass-fetch@^1.1.2, minipass-fetch@^1.2.1: minipass-flush@^1.0.5: version "1.0.5" - resolved "https://registry.npm.taobao.org/minipass-flush/download/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" - integrity sha1-gucTXX6JpQ/+ZGEKeHlTxMTLs3M= + resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" + integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== dependencies: minipass "^3.0.0" @@ -5956,9 +5975,9 @@ minipass-json-stream@^1.0.1: minipass "^3.0.0" minipass-pipeline@^1.2.2: - version "1.2.2" - resolved "https://registry.npm.taobao.org/minipass-pipeline/download/minipass-pipeline-1.2.2.tgz#3dcb6bb4a546e32969c7ad710f2c79a86abba93a" - integrity sha1-PctrtKVG4ylpx61xDyx5qGq7qTo= + version "1.2.3" + resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.3.tgz#55f7839307d74859d6e8ada9c3ebe72cec216a34" + integrity sha512-cFOknTvng5vqnwOpDsZTWhNll6Jf8o2x+/diplafmxpuIymAjzoOolZG0VvQf3V2HgqzJNhnuKHYp2BqDgz8IQ== dependencies: minipass "^3.0.0" @@ -5969,10 +5988,10 @@ minipass-sized@^1.0.3: dependencies: minipass "^3.0.0" -minipass@^3.0.0, minipass@^3.0.1, minipass@^3.1.0, minipass@^3.1.1: - version "3.1.1" - resolved "https://registry.npm.taobao.org/minipass/download/minipass-3.1.1.tgz#7607ce778472a185ad6d89082aa2070f79cedcd5" - integrity sha1-dgfOd4RyoYWtbYkIKqIHD3nO3NU= +minipass@^3.0.0, minipass@^3.0.1, minipass@^3.1.0, minipass@^3.1.1, minipass@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.3.tgz#7d42ff1f39635482e15f9cdb53184deebd5815fd" + integrity sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg== dependencies: yallist "^4.0.0" @@ -6022,10 +6041,10 @@ mkdirp@^0.5.3: dependencies: minimist "^1.2.5" -mkdirp@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.3.tgz#4cf2e30ad45959dddea53ad97d518b6c8205e1ea" - integrity sha512-6uCP4Qc0sWsgMLy1EOqqS/3rjDHOEnsStVr/4vtAIK2Y5i2kA7lFFejYrpIyiN9w0pYf4ckeCYT9f1r1P9KX5g== +mkdirp@^1.0.3, mkdirp@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== moment-timezone@^0.5.11: version "0.5.27" @@ -6063,8 +6082,8 @@ ms@2.1.1: ms@^2.0.0, ms@^2.1.1: version "2.1.2" - resolved "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk= + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== multicast-dns-service-types@^1.1.0: version "1.1.0" @@ -6350,14 +6369,14 @@ npm-pick-manifest@^6.0.0: semver "^7.0.0" npm-registry-fetch@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-8.0.0.tgz#65bb51dd2b9634b8363019aac9c76c003e5c5eaf" - integrity sha512-975WwLvZjX97y9UWWQ8nAyr7bw02s9xKPHqvEm5T900LQsB1HXb8Gb9ebYtCBLSX+K8gSOrO5KS/9yV/naLZmQ== + version "8.1.2" + resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-8.1.2.tgz#8afa37f52e613bfe2464a1ff63c68a3f6ca94af0" + integrity sha512-/m5W4t5xSAO0vwI+nDMh/msTimROztmrQcMxWRoWqWQsNYUavE4zSQCvpfDZb+V6CVs4J2tHvCP0g3me2nNU7w== dependencies: "@npmcli/ci-detect" "^1.0.0" - lru-cache "^5.1.1" - make-fetch-happen "^8.0.2" - minipass "^3.0.0" + lru-cache "^6.0.0" + make-fetch-happen "^8.0.8" + minipass "^3.1.3" minipass-fetch "^1.1.2" minipass-json-stream "^1.0.1" minizlib "^2.0.0" @@ -6497,7 +6516,7 @@ on-headers@~1.0.2: once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" - resolved "https://registry.npm.taobao.org/once/download/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= dependencies: wrappy "1" @@ -6822,7 +6841,7 @@ path-exists@^4.0.0: path-is-absolute@^1.0.0: version "1.0.1" - resolved "https://registry.npm.taobao.org/path-is-absolute/download/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= path-is-inside@^1.0.2: @@ -7660,7 +7679,7 @@ progress@^2.0.3: promise-inflight@^1.0.1: version "1.0.1" - resolved "https://registry.npm.taobao.org/promise-inflight/download/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= promise-retry@^1.1.1: @@ -8241,6 +8260,13 @@ rimraf@2, rimraf@^2.5.4, rimraf@^2.6.3, rimraf@^2.7.1: dependencies: glob "^7.1.3" +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" resolved "https://registry.npm.taobao.org/ripemd160/download/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" @@ -8273,7 +8299,7 @@ safe-regex@^1.1.0: dependencies: ret "~0.1.10" -"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.npm.taobao.org/safer-buffer/download/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo= @@ -8390,7 +8416,12 @@ semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: resolved "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0= -semver@^7.0.0, semver@^7.1.1, semver@^7.1.3: +semver@^7.0.0: + version "7.3.2" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" + integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== + +semver@^7.1.1, semver@^7.1.3: version "7.1.3" resolved "https://registry.yarnpkg.com/semver/-/semver-7.1.3.tgz#e4345ce73071c53f336445cfc19efb1c311df2a6" integrity sha512-ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA== @@ -8602,9 +8633,9 @@ socks-proxy-agent@^5.0.0: socks "^2.3.3" socks@^2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/socks/-/socks-2.3.3.tgz#01129f0a5d534d2b897712ed8aceab7ee65d78e3" - integrity sha512-o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA== + version "2.4.1" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.4.1.tgz#cea68a280a3bf7cb6333dbb40cfb243d10725e9d" + integrity sha512-8mWHeYC1OA0500qzb+sqwm0Hzi8oBpeuI1JugoBVMEJtJvxSgco8xFSK+NRnZcHeeWjTbF82KUDo5sXH22TY5A== dependencies: ip "1.1.5" smart-buffer "^4.1.0" @@ -9110,6 +9141,18 @@ tar@^6.0.1: mkdirp "^1.0.3" yallist "^4.0.0" +tar@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.0.2.tgz#5df17813468a6264ff14f766886c622b84ae2f39" + integrity sha512-Glo3jkRtPcvpDlAs/0+hozav78yoXKFr+c4wgw62NNMO3oo4AaJdCo21Uu7lcwr55h39W2XD1LMERc64wtbItg== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^3.0.0" + minizlib "^2.1.0" + mkdirp "^1.0.3" + yallist "^4.0.0" + tempusdominus-bootstrap-4@^5.1.2: version "5.1.2" resolved "https://registry.npm.taobao.org/tempusdominus-bootstrap-4/download/tempusdominus-bootstrap-4-5.1.2.tgz#3c9906ca6e5d563faa0b81b2fdc6aa79cad9c0be" @@ -9433,15 +9476,15 @@ uniqs@^2.0.0: unique-filename@^1.1.1: version "1.1.1" - resolved "https://registry.npm.taobao.org/unique-filename/download/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" - integrity sha1-HWl2k2mtoFgxA6HmrodoG1ZXMjA= + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" + integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== dependencies: unique-slug "^2.0.0" unique-slug@^2.0.0: version "2.0.2" - resolved "https://registry.npm.taobao.org/unique-slug/download/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" - integrity sha1-uqvOkQg/xk6UWw861hPiZPfNTmw= + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" + integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== dependencies: imurmurhash "^0.1.4" @@ -9861,7 +9904,7 @@ wrap-ansi@^5.1.0: wrappy@1: version "1.0.2" - resolved "https://registry.npm.taobao.org/wrappy/download/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= write-file-atomic@^3.0.0: @@ -9913,8 +9956,8 @@ yallist@^3.0.2: yallist@^4.0.0: version "4.0.0" - resolved "https://registry.npm.taobao.org/yallist/download/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI= + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== yaml@^1.7.2: version "1.7.2" From ab328c3488e50127ff0375016c0712cf8d295122 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 15 Jul 2020 14:22:54 +0800 Subject: [PATCH 0223/2165] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E6=B8=B8?= =?UTF-8?q?=E5=AE=A2=E6=A8=A1=E5=BC=8F=EF=BC=8C=E6=8E=A8=E8=8D=90=E7=94=A8?= =?UTF-8?q?=E4=BA=8E=E5=86=85=E7=BD=91=E5=86=8D=E4=B8=8D=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E7=9A=84=E6=83=85=E5=86=B5=E4=B8=8B=E4=BD=BF=E7=94=A8=E5=A4=A7?= =?UTF-8?q?=E9=83=A8=E5=88=86=E8=AF=BB=E6=93=8D=E4=BD=9C=E7=9A=84=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/apps_controller.rb | 2 +- app/controllers/dashboards_controller.rb | 2 +- app/controllers/debug_files_controller.rb | 2 +- app/controllers/teardowns_controller.rb | 2 +- app/policies/application_policy.rb | 4 ++-- app/views/apps/_list.html.slim | 15 ++++++++------- app/views/apps/index.html.slim | 7 ++++--- app/views/channels/_metadata.slim | 7 ++++--- app/views/channels/filters/_list.slim | 10 ++++++---- app/views/channels/show.html.slim | 6 +++--- app/views/dashboards/_analytics.html.slim | 2 +- app/views/debug_files/_debug_file.html.slim | 7 ++++--- app/views/debug_files/index.html.slim | 7 ++++--- app/views/layouts/_main_sidebar.html.slim | 2 +- app/views/layouts/_navigation.html.slim | 7 +++++-- app/views/layouts/application.html.slim | 2 +- config/zealot.yml | 1 + 17 files changed, 48 insertions(+), 37 deletions(-) diff --git a/app/controllers/apps_controller.rb b/app/controllers/apps_controller.rb index f3876c9aa..7674df871 100644 --- a/app/controllers/apps_controller.rb +++ b/app/controllers/apps_controller.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true class AppsController < ApplicationController - before_action :authenticate_user! + before_action :authenticate_user! unless Zealot::Setting.guest_mode before_action :set_app, only: %i[show edit update destroy] def index diff --git a/app/controllers/dashboards_controller.rb b/app/controllers/dashboards_controller.rb index fe0db0e4a..a9c77cab0 100644 --- a/app/controllers/dashboards_controller.rb +++ b/app/controllers/dashboards_controller.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true class DashboardsController < ApplicationController - before_action :authenticate_user! + before_action :authenticate_user! unless Zealot::Setting.guest_mode def index @title = '我的控制台' diff --git a/app/controllers/debug_files_controller.rb b/app/controllers/debug_files_controller.rb index 0ad643991..061ab7586 100644 --- a/app/controllers/debug_files_controller.rb +++ b/app/controllers/debug_files_controller.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true class DebugFilesController < ApplicationController - before_action :authenticate_user! + before_action :authenticate_user!, except: %i[index show] before_action :set_debug_file, only: %i[destroy] def index diff --git a/app/controllers/teardowns_controller.rb b/app/controllers/teardowns_controller.rb index edcd164b0..898ca88b3 100644 --- a/app/controllers/teardowns_controller.rb +++ b/app/controllers/teardowns_controller.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true class TeardownsController < ApplicationController - before_action :authenticate_user! + before_action :authenticate_user! unless Zealot::Setting.guest_mode def index redirect_to new_teardown_path, alert: "链接失效,请重新解析文件" diff --git a/app/policies/application_policy.rb b/app/policies/application_policy.rb index fb2ccd0b7..55c57c96b 100644 --- a/app/policies/application_policy.rb +++ b/app/policies/application_policy.rb @@ -9,11 +9,11 @@ def initialize(user, record) end def index? - user_signed_in? + Zealot::Setting.guest_mode || user_signed_in? end def show? - scope.where(id: record.id).exists? || user? + scope.where(id: record.id).exists? || Zealot::Setting.guest_mode || user? end def create? diff --git a/app/views/apps/_list.html.slim b/app/views/apps/_list.html.slim index 4952372a8..14deaec49 100644 --- a/app/views/apps/_list.html.slim +++ b/app/views/apps/_list.html.slim @@ -7,13 +7,14 @@ h3.card-title = app_icon(app.recently_release, class: 'app-icon img-circle') = link_to app.name, app_path(app), style: "color: #000" - .card-tools - a.btn.btn-tool href="#{new_app_scheme_path(app)}" - i.far.fa-plus-square - a.btn.btn-tool href="#{edit_app_path(app)}" - i.fas.fa-edit - a.btn.btn-tool href="#{app_path(app)}" data-confirm="确定删除【#{app.name}】及其所有的数据?" data-method="delete" - i.fas.fa-trash-alt + - if user_signed_in? + .card-tools + a.btn.btn-tool href="#{new_app_scheme_path(app)}" + i.far.fa-plus-square + a.btn.btn-tool href="#{edit_app_path(app)}" + i.fas.fa-edit + a.btn.btn-tool href="#{app_path(app)}" data-confirm="确定删除【#{app.name}】及其所有的数据?" data-method="delete" + i.fas.fa-trash-alt .card-body.p-0 .app-schemes - if app.schemes.count > 0 diff --git a/app/views/apps/index.html.slim b/app/views/apps/index.html.slim index a0d770c89..40dfbff56 100644 --- a/app/views/apps/index.html.slim +++ b/app/views/apps/index.html.slim @@ -5,9 +5,10 @@ = @title - content_for :section_rightpanel do - a.btn.btn-icon.bg-green href="#{new_app_path}" - i.far.fa-plus-square - | 新建应用 + - if user_signed_in? + a.btn.btn-icon.bg-green href="#{new_app_path}" + i.far.fa-plus-square + | 新建应用 .row == render 'list' diff --git a/app/views/channels/_metadata.slim b/app/views/channels/_metadata.slim index f42b5aab6..462b88d20 100644 --- a/app/views/channels/_metadata.slim +++ b/app/views/channels/_metadata.slim @@ -20,9 +20,10 @@ p.d-flex.flex-column.border-bottom.pl-3.pb-3 span.font-weight-bold = @channel.git_url == '' ? '未设置' : @channel.git_url span.text-muted Git 仓库地址 - p.d-flex.flex-column.border-bottom.pl-3.pb-3 - span.font-weight-bold = @channel.password == '' ? '未设置' : @channel.password - span.text-muted 访问密码 + - if user_signed_in? + p.d-flex.flex-column.border-bottom.pl-3.pb-3 + span.font-weight-bold = @channel.password == '' ? '未设置' : @channel.password + span.text-muted 访问密码 p.d-flex.flex-column.border-bottom.pl-3.pb-3 span.font-weight-bold = @channel.key span.text-muted 渠道 KEY diff --git a/app/views/channels/filters/_list.slim b/app/views/channels/filters/_list.slim index 54ad9cf83..255fea812 100644 --- a/app/views/channels/filters/_list.slim +++ b/app/views/channels/filters/_list.slim @@ -7,7 +7,8 @@ table.table.table-hover th 分支 th Git 提交信息 th 上传时间 - th 操作 + - if user_signed_in? + th 操作 - unless @releases.empty? - @releases.each_with_index do |release, index| tr @@ -26,9 +27,10 @@ table.table.table-hover td span data-toggle="tooltip" title="#{release.created_at}" = time_ago_in_words(release.created_at) - td - a.btn.btn-tool href="#{channel_release_path(@channel, release)}" data-confirm="确定删除?" data-method="delete" - i.fas.fa-trash-alt + - if user_signed_in? + td + a.btn.btn-tool href="#{channel_release_path(@channel, release)}" data-confirm="确定删除?" data-method="delete" + i.fas.fa-trash-alt - else tr th colspan="5" 该版本没有任何上传记录! diff --git a/app/views/channels/show.html.slim b/app/views/channels/show.html.slim index dba1206d8..28ca528f6 100644 --- a/app/views/channels/show.html.slim +++ b/app/views/channels/show.html.slim @@ -12,9 +12,9 @@ - if user_signed_in? && current_user.manage? == render 'web_hooks' .col-md-4 - a.btn.btn-success.btn-block.mb-3 href="#{new_channel_release_path(@channel)}" 上传应用 + - if user_signed_in? + a.btn.btn-success.btn-block.mb-3 href="#{new_channel_release_path(@channel)}" 上传应用 == render 'schemes' == render 'channels' == render 'versions' - - if user_signed_in? - == render 'metadata' \ No newline at end of file + == render 'metadata' \ No newline at end of file diff --git a/app/views/dashboards/_analytics.html.slim b/app/views/dashboards/_analytics.html.slim index f3169bd53..b681f66ca 100644 --- a/app/views/dashboards/_analytics.html.slim +++ b/app/views/dashboards/_analytics.html.slim @@ -20,7 +20,7 @@ section.analytics span.info-box-number = @analytics[:debug_files] - - if current_user.admin? + - if user_signed_in? && current_user.admin? .col-md-3.col-sm-6.col-xs-12 .info-box span.info-box-icon.bg-warning diff --git a/app/views/debug_files/_debug_file.html.slim b/app/views/debug_files/_debug_file.html.slim index f65fd6d48..a6c391580 100644 --- a/app/views/debug_files/_debug_file.html.slim +++ b/app/views/debug_files/_debug_file.html.slim @@ -29,9 +29,10 @@ ruby: | 下载 ( = number_to_human_size(debug_file.file.size) | ) - button.btn.btn-icon.btn-sm.btn-danger.btn-flat.destroy-debug-file data-id="#{debug_file.id}" data-url="#{debug_file_path(debug_file)}" data-toggle="modal" - i.fas.fa-trash-alt - | 删除 + - if user_signed_in? + button.btn.btn-icon.btn-sm.btn-danger.btn-flat.destroy-debug-file data-id="#{debug_file.id}" data-url="#{debug_file_path(debug_file)}" data-toggle="modal" + i.fas.fa-trash-alt + | 删除 .div.text-center small style="color: #999" | 上传于 diff --git a/app/views/debug_files/index.html.slim b/app/views/debug_files/index.html.slim index 41a7d4692..ee178fe5e 100644 --- a/app/views/debug_files/index.html.slim +++ b/app/views/debug_files/index.html.slim @@ -5,9 +5,10 @@ = @title - content_for :section_rightpanel do - a.btn.btn-icon.bg-green href="#{new_debug_file_path}" - i.far.fa-plus-square - | 上传 Debug File 文件 + - if user_signed_in? + a.btn.btn-icon.bg-green href="#{new_debug_file_path}" + i.far.fa-plus-square + | 上传 Debug File 文件 .row .col-md-12 diff --git a/app/views/layouts/_main_sidebar.html.slim b/app/views/layouts/_main_sidebar.html.slim index cde28655b..33abf0390 100644 --- a/app/views/layouts/_main_sidebar.html.slim +++ b/app/views/layouts/_main_sidebar.html.slim @@ -25,7 +25,7 @@ i.nav-icon.fas.fa-mobile p 获取 iOS 设备 UDID - - if current_user.admin? + - if user_signed_in? && current_user.admin? li.nav-header 管理区域 li class="nav-item" a.nav-link href="#{admin_users_path}" class="#{active_class(admin_users_path)}" diff --git a/app/views/layouts/_navigation.html.slim b/app/views/layouts/_navigation.html.slim index b3b07bc7c..92fc298dc 100644 --- a/app/views/layouts/_navigation.html.slim +++ b/app/views/layouts/_navigation.html.slim @@ -1,6 +1,6 @@ // Navbar nav.main-header.navbar.navbar-expand.navbar-white.navbar-light - - if user_signed_in? + - if Zealot::Setting.guest_mode ul.navbar-nav li.nav-item a.nav-link data-widget="pushmenu" href="#" @@ -19,13 +19,16 @@ nav.main-header.navbar.navbar-expand.navbar-white.navbar-light = link_to '详情', edit_user_registration_path, class: 'dropdown-item' .dropdown-divider = link_to '登出', destroy_user_session_path, method: :delete, class: 'dropdown-item' + - else + li.nav-item + = link_to '登录', new_user_session_path, class: 'dropdown-item' - else div.navbar-collapse.justify-content-md-center h4 a href="#{ root_path }" style="color: black" Zealot // Main Sidebar Container -- if user_signed_in? +- if Zealot::Setting.guest_mode || user_signed_in? aside.main-sidebar.sidebar-light-primary.elevation-4 // Brand Logo a.brand-link href="#{ root_path }" diff --git a/app/views/layouts/application.html.slim b/app/views/layouts/application.html.slim index 9aecde3ff..1c64d530e 100644 --- a/app/views/layouts/application.html.slim +++ b/app/views/layouts/application.html.slim @@ -1,6 +1,6 @@ ruby: body_class = 'skin-black-light' - if user_signed_in? + if Zealot::Setting.guest_mode || user_signed_in? body_class += ' sidebar-mini' elsif devise_page? body_class += ' layout-top-nav' diff --git a/config/zealot.yml b/config/zealot.yml index 9d7e913e8..8d4925717 100644 --- a/config/zealot.yml +++ b/config/zealot.yml @@ -2,6 +2,7 @@ default: &base version: <%= ENV['ZEALOT_VERSION'] || 'development' %> vcs_ref: <%= ENV['ZEALOT_VCS_REF'] %> register_enabled: <%= ENV['ZEALOT_REGISTER_ENABLED'] || 'true' %> + guest_mode: <%= ENV['ZEALOT_GUEST_MODE'] || 'false' %> cron_jobs: clean_old_releases: cron: '0 6 * * *' From a9dd12ba1be7f47a6d7fdd0366fcfedbba95803a Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 16 Jul 2020 10:43:13 +0800 Subject: [PATCH 0224/2165] =?UTF-8?q?fix:=20=E6=B3=A8=E5=86=8C=E6=A8=A1?= =?UTF-8?q?=E5=BC=8F=E5=92=8C=E6=B8=B8=E5=AE=A2=E6=A8=A1=E5=BC=8F=E7=9A=84?= =?UTF-8?q?=E5=88=A4=E5=AE=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/zealot.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/zealot.yml b/config/zealot.yml index 8d4925717..51750a5af 100644 --- a/config/zealot.yml +++ b/config/zealot.yml @@ -1,8 +1,8 @@ default: &base version: <%= ENV['ZEALOT_VERSION'] || 'development' %> vcs_ref: <%= ENV['ZEALOT_VCS_REF'] %> - register_enabled: <%= ENV['ZEALOT_REGISTER_ENABLED'] || 'true' %> - guest_mode: <%= ENV['ZEALOT_GUEST_MODE'] || 'false' %> + register_enabled: <%= (ENV['ZEALOT_REGISTER_ENABLED'] || 'true') == 'true' %> + guest_mode: <%= (ENV['ZEALOT_GUEST_MODE'] || 'false') == 'true' %> cron_jobs: clean_old_releases: cron: '0 6 * * *' From b425c31fdec31203906003aa1bd1c0b267200a2a Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 16 Jul 2020 15:03:05 +0800 Subject: [PATCH 0225/2165] =?UTF-8?q?refactor:=20=E5=85=A8=E5=B1=80?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E9=87=8D=E6=96=B0=E7=BB=84=E7=BB=87=EF=BC=8C?= =?UTF-8?q?=E9=83=A8=E5=88=86=E5=8F=AF=E4=BB=A5=E6=94=BE=E5=9C=A8=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=BA=93=E6=96=B9=E4=BE=BF=E9=9A=8F=E6=97=B6=E6=9B=B4?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 2 +- Gemfile.lock | 6 + .../admin/system_info_controller.rb | 4 +- app/controllers/apps_controller.rb | 2 +- app/controllers/dashboards_controller.rb | 2 +- app/controllers/teardowns_controller.rb | 2 +- app/models/setting.rb | 49 + app/policies/application_policy.rb | 4 +- app/views/devise/registrations/new.html.slim | 2 +- app/views/devise/shared/_links.html.slim | 2 +- app/views/layouts/_footer.html.slim | 2 +- app/views/layouts/_navigation.html.slim | 4 +- app/views/layouts/application.html.slim | 2 +- config/app.yml | 13 + config/initializers/0_hosts.rb | 11 +- config/initializers/sentry.rb | 6 +- config/initializers/sidekiq.rb | 25 - config/initializers/sidekiq_scheduled.rb | 29 + config/zealot.yml | 28 - db/migrate/20200716041345_create_settings.rb | 15 + db/schema.rb | 10 +- lib/backup/database.rb | 4 +- lib/backup/helper.rb | 2 +- lib/backup/manager.rb | 8 +- lib/tasks/zealot/zealot.rake | 2 +- lib/zealot/.gitkeep | 0 lib/zealot/setting.rb | 8 - yarn.lock | 4855 ++++++----------- 28 files changed, 1874 insertions(+), 3225 deletions(-) create mode 100644 app/models/setting.rb create mode 100644 config/app.yml create mode 100644 config/initializers/sidekiq_scheduled.rb delete mode 100644 config/zealot.yml create mode 100644 db/migrate/20200716041345_create_settings.rb create mode 100644 lib/zealot/.gitkeep delete mode 100644 lib/zealot/setting.rb diff --git a/Gemfile b/Gemfile index faf60cfad..57ec7e8fa 100644 --- a/Gemfile +++ b/Gemfile @@ -78,7 +78,7 @@ gem 'webpacker', '~> 5.0' gem 'app-info', '~> 2.1.4' # Mobile config -gem 'settingslogic', require: false +gem 'rails-settings-cached', '~> 2.2' # Reduces boot times through caching; required in config/boot.rb gem 'bootsnap', '>= 1.4.4', require: false diff --git a/Gemfile.lock b/Gemfile.lock index be5cb7f23..d09db3578 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -325,6 +325,9 @@ GEM rails-i18n (6.0.0) i18n (>= 0.7, < 2) railties (>= 6.0.0, < 7) + rails-settings-cached (2.2.0) + rails (>= 4.2.0) + request_store railties (6.0.3.2) actionpack (= 6.0.3.2) activesupport (= 6.0.3.2) @@ -338,6 +341,8 @@ GEM ffi (~> 1.0) redis (4.1.4) regexp_parser (1.7.1) + request_store (1.5.0) + rack (>= 1.4) responders (3.0.1) actionpack (>= 5.0) railties (>= 5.0) @@ -491,6 +496,7 @@ DEPENDENCIES rack-cors (~> 1.1.1) rails (~> 6.0.3) rails-i18n (~> 6.0.0) + rails-settings-cached (~> 2.2) rake (~> 13.0.1) redis (~> 4.1.4) rqrcode diff --git a/app/controllers/admin/system_info_controller.rb b/app/controllers/admin/system_info_controller.rb index c5a6fab02..f45572a5e 100644 --- a/app/controllers/admin/system_info_controller.rb +++ b/app/controllers/admin/system_info_controller.rb @@ -132,7 +132,7 @@ def get_version @version = { update_available: update_available, - current_version: Zealot::Setting.version, + current_version: Setting.version, latest_version: latest_version, release_link: release_link, } @@ -141,6 +141,6 @@ def get_version def update_available?(new_version) return true if Rails.env.development? - Gem::Version.new(new_version) > Gem::Version.new(Zealot::Setting.version) + Gem::Version.new(new_version) > Gem::Version.new(Setting.version) end end diff --git a/app/controllers/apps_controller.rb b/app/controllers/apps_controller.rb index 7674df871..cf85e3974 100644 --- a/app/controllers/apps_controller.rb +++ b/app/controllers/apps_controller.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true class AppsController < ApplicationController - before_action :authenticate_user! unless Zealot::Setting.guest_mode + before_action :authenticate_user! unless Setting.guest_mode before_action :set_app, only: %i[show edit update destroy] def index diff --git a/app/controllers/dashboards_controller.rb b/app/controllers/dashboards_controller.rb index a9c77cab0..5ba15c85a 100644 --- a/app/controllers/dashboards_controller.rb +++ b/app/controllers/dashboards_controller.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true class DashboardsController < ApplicationController - before_action :authenticate_user! unless Zealot::Setting.guest_mode + before_action :authenticate_user! unless Setting.guest_mode def index @title = '我的控制台' diff --git a/app/controllers/teardowns_controller.rb b/app/controllers/teardowns_controller.rb index 898ca88b3..b0bbeec37 100644 --- a/app/controllers/teardowns_controller.rb +++ b/app/controllers/teardowns_controller.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true class TeardownsController < ApplicationController - before_action :authenticate_user! unless Zealot::Setting.guest_mode + before_action :authenticate_user! unless Setting.guest_mode def index redirect_to new_teardown_path, alert: "链接失效,请重新解析文件" diff --git a/app/models/setting.rb b/app/models/setting.rb new file mode 100644 index 000000000..9438755d9 --- /dev/null +++ b/app/models/setting.rb @@ -0,0 +1,49 @@ +# frozen_string_literal: true + +# RailsSettings Model +class Setting < RailsSettings::Base + cache_prefix { 'v1' } + + # 系统配置 + field :site_title, default: 'Zealot', type: :string + field :site_https, default: ENV['ZEALOT_USE_HTTPS'].present?, type: :boolean, readonly: true + field :site_domain, default: (ENV['ZEALOT_DOMAIN'] || site_https ? 'localhost' : "localhost:#{ENV['ZEALOT_PORT'] || 3000}"), type: :string, readonly: true + + # 模式 + field :registrations_mode, default: (ENV['ZEALOT_REGISTER_ENABLED'] || 'true'), type: :boolean + field :guest_mode, default: (ENV['ZEALOT_GUEST_MODE'] || 'false'), type: :boolean + + # 邮件配置 + field :mailer_default_from, default: ENV['ACTION_MAILER_DEFAULT_FROM'], type: :string + field :mailer_default_to, default: ENV['ACTION_MAILER_DEFAULT_TO'], type: :string + field :mailer_options, type: :hash, readonly: true, default: { + address: ENV['SMTP_ADDRESS'], + port: ENV['SMTP_PORT'].to_i, + domain: ENV['SMTP_DOMAIN'], + username: ENV['SMTP_USERNAME'], + password: ENV['SMTP_PASSWORD'], + auth_method: ENV['SMTP_AUTH_METHOD'], + enable_starttls_auto: ENV['SMTP_ENABLE_STARTTLS_AUTO'], + } + + # 系统信息(只读) + field :demo_mode, default: (ENV['ZEALOT_DEMO_MODE'] || 'false'), type: :boolean, readonly: true + field :keep_uploads, default: (ENV['ZEALOT_KEEP_UPLOADS']), type: :boolean, readonly: true + + field :version, default: (ENV['ZEALOT_VERSION'] || 'development'), type: :string, readonly: true + field :vcs_ref, default: (ENV['ZEALOT_VCS_REF']), type: :string, readonly: true + field :version, default: (ENV['ZEALOT_VERSION'] || 'development'), type: :string, readonly: true + field :build_date, default: ENV['BUILD_DATE'], type: :string, readonly: true + + field :backup, type: :hash, readonly: true, default: { + path: 'public/backup', + keep_time: 604800, + pg_schema: 'public', + } + + # field :default_locale, default: "en", type: :string + # field :confirmable_enable, default: "0", type: :boolean + # field :admin_emails, default: "admin@rubyonrails.org", type: :array + # field :omniauth_google_client_id, default: (ENV["OMNIAUTH_GOOGLE_CLIENT_ID"] || ""), type: :string, readonly: true + # field :omniauth_google_client_secret, default: (ENV["OMNIAUTH_GOOGLE_CLIENT_SECRET"] || ""), type: :string, readonly: true +end diff --git a/app/policies/application_policy.rb b/app/policies/application_policy.rb index 55c57c96b..788ba2952 100644 --- a/app/policies/application_policy.rb +++ b/app/policies/application_policy.rb @@ -9,11 +9,11 @@ def initialize(user, record) end def index? - Zealot::Setting.guest_mode || user_signed_in? + Setting.guest_mode || user_signed_in? end def show? - scope.where(id: record.id).exists? || Zealot::Setting.guest_mode || user? + scope.where(id: record.id).exists? || Setting.guest_mode || user? end def create? diff --git a/app/views/devise/registrations/new.html.slim b/app/views/devise/registrations/new.html.slim index 4e9e65d83..5327b4c9b 100644 --- a/app/views/devise/registrations/new.html.slim +++ b/app/views/devise/registrations/new.html.slim @@ -1,7 +1,7 @@ - content_for :title do | 用户注册 -- if Zealot::Setting.register_enabled +- if Setting.registrations_mode .row.mb-3.mt-3 .col-sm-7.order-12.order-sm-1 == render 'devise/shared/intro' diff --git a/app/views/devise/shared/_links.html.slim b/app/views/devise/shared/_links.html.slim index c9c0f2b8d..9710929d4 100644 --- a/app/views/devise/shared/_links.html.slim +++ b/app/views/devise/shared/_links.html.slim @@ -13,7 +13,7 @@ p.mb-1 = link_to "登录账户", new_session_path(resource_name) -- if Zealot::Setting.register_enabled && devise_mapping.registerable? && controller_name != 'registrations' +- if Setting.registrations_mode && devise_mapping.registerable? && controller_name != 'registrations' p.mb-1 = link_to "注册账号", new_registration_path(resource_name) diff --git a/app/views/layouts/_footer.html.slim b/app/views/layouts/_footer.html.slim index 3ae69d8f2..8eeda7df6 100644 --- a/app/views/layouts/_footer.html.slim +++ b/app/views/layouts/_footer.html.slim @@ -1,7 +1,7 @@ footer.main-footer .float-right.d-none.d-sm-block b Version - = " #{Zealot::Setting.version}" + = " #{Setting.version}" strong | Copyright © 2015-2019  a href="https://github.com/getzealot/zealot" Zealot diff --git a/app/views/layouts/_navigation.html.slim b/app/views/layouts/_navigation.html.slim index 92fc298dc..500ed8211 100644 --- a/app/views/layouts/_navigation.html.slim +++ b/app/views/layouts/_navigation.html.slim @@ -1,6 +1,6 @@ // Navbar nav.main-header.navbar.navbar-expand.navbar-white.navbar-light - - if Zealot::Setting.guest_mode + - if Setting.guest_mode ul.navbar-nav li.nav-item a.nav-link data-widget="pushmenu" href="#" @@ -28,7 +28,7 @@ nav.main-header.navbar.navbar-expand.navbar-white.navbar-light a href="#{ root_path }" style="color: black" Zealot // Main Sidebar Container -- if Zealot::Setting.guest_mode || user_signed_in? +- if Setting.guest_mode || user_signed_in? aside.main-sidebar.sidebar-light-primary.elevation-4 // Brand Logo a.brand-link href="#{ root_path }" diff --git a/app/views/layouts/application.html.slim b/app/views/layouts/application.html.slim index 1c64d530e..ef146c175 100644 --- a/app/views/layouts/application.html.slim +++ b/app/views/layouts/application.html.slim @@ -1,6 +1,6 @@ ruby: body_class = 'skin-black-light' - if Zealot::Setting.guest_mode || user_signed_in? + if Setting.guest_mode || user_signed_in? body_class += ' sidebar-mini' elsif devise_page? body_class += ' layout-top-nav' diff --git a/config/app.yml b/config/app.yml new file mode 100644 index 000000000..7c846cef8 --- /dev/null +++ b/config/app.yml @@ -0,0 +1,13 @@ +# config/app.yml for rails-settings-cached +defaults: &defaults + foo: "Foo" + bar: 123 + +development: + <<: *defaults + +test: + <<: *defaults + +production: + <<: *defaults diff --git a/config/initializers/0_hosts.rb b/config/initializers/0_hosts.rb index fa23636a0..18329eb44 100644 --- a/config/initializers/0_hosts.rb +++ b/config/initializers/0_hosts.rb @@ -1,11 +1,14 @@ # frozen_string_literal: true -https = Rails.env.production? || ENV['ZEALOT_USE_HTTPS'].present? -port = ENV.fetch('ZEALOT_PORT') { 3000 } -host = ENV.fetch('ZEALOT_DOMAIN') { https ? 'localhost' : "localhost:#{port}" } +https = Setting.site_https +host = Setting.site_domain Rails.application.configure do - url_options = { host: host, protocol: https ? 'https://' : 'http://', trailing_slash: false } + url_options = { + host: host, + protocol: https ? 'https://' : 'http://', + trailing_slash: false + } config.x.url_options = url_options config.x.use_https = https diff --git a/config/initializers/sentry.rb b/config/initializers/sentry.rb index 241b029ef..41dd9c0b9 100644 --- a/config/initializers/sentry.rb +++ b/config/initializers/sentry.rb @@ -2,8 +2,6 @@ # 默认开启 Sentry,如果不想使用设置 ZEALOT_SENTRY_DISABLE=1 if ENV['ZEALOT_SENTRY_DISABLE'].blank? - require 'zealot/setting' - Raven.configure do |config| config.silence_ready = true config.dsn = ENV['ZEALOT_SENTRY_DNS'] || 'https://133aefa9f52448a1a7900ba9d02f93e1@sentry.io/1878137' @@ -15,8 +13,8 @@ config.sanitize_fields = Rails.application.config.filter_parameters.map(&:to_s) config.sanitize_fields << 'token' - version = Zealot::Setting.version - vcs_ref = Zealot::Setting.vcs_ref + version = Setting.version + vcs_ref = Setting.vcs_ref version = "#{version}-#{vcs_ref}" if vcs_ref.present? config.release = version diff --git a/config/initializers/sidekiq.rb b/config/initializers/sidekiq.rb index 778bd1e4f..0de57c6c0 100644 --- a/config/initializers/sidekiq.rb +++ b/config/initializers/sidekiq.rb @@ -1,14 +1,4 @@ # frozen_string_literal: true - -def env_key_enabled?(key) - return false unless value = ENV[key] - return false if value.blank? - return true if value.to_i == 1 - return true if value.downcase == 'true' - - false -end - sidekiq_config = { url: ENV['REDIS_URL'] || 'redis://localhost:6379/0' } Sidekiq.configure_server do |config| @@ -22,18 +12,3 @@ def env_key_enabled?(key) Sidekiq.configure_client do |config| config.redis = sidekiq_config end - -if Sidekiq.server? - cron_jobs = Zealot::Setting.cron_jobs - - keep_uploads = env_key_enabled?('ZEALOT_KEEP_UPLOADS') - cron_jobs.delete_if { |k, _| keep_uploads && k == 'clean_old_releases' } - - demo_mode = env_key_enabled?('ZEALOT_DEMO_MODE') - cron_jobs.delete_if { |k, _| !demo_mode && k == 'reset_for_demo_mode' } - - # 从 demo mode 禁用后需要删除定时任务 - Sidekiq::Cron::Job.destroy('reset_for_demo_mode') unless demo_mode - - Sidekiq::Cron::Job.load_from_hash cron_jobs -end diff --git a/config/initializers/sidekiq_scheduled.rb b/config/initializers/sidekiq_scheduled.rb new file mode 100644 index 000000000..c086aa0bb --- /dev/null +++ b/config/initializers/sidekiq_scheduled.rb @@ -0,0 +1,29 @@ +# frozen_string_literal: true + +DEFAULT_JOBS = { + clean_old_releases: { + cron: '0 6 * * *', + class: 'CleanOldReleasesJob', + queue: 'schedule' + }, + reset_for_demo_mode: { + cron: '0 0 * * *', + class: 'ResetForDemoModeJob', + queue: 'schedule' + } +} + +if Sidekiq.server? + cron_jobs = DEFAULT_JOBS + + keep_uploads = Setting.keep_uploads + cron_jobs.delete_if { |k, _| keep_uploads && k == 'clean_old_releases' } + + demo_mode = Setting.demo_mode + cron_jobs.delete_if { |k, _| !demo_mode && k == 'reset_for_demo_mode' } + + # 从 demo mode 禁用后需要删除定时任务 + Sidekiq::Cron::Job.destroy('reset_for_demo_mode') unless demo_mode + + Sidekiq::Cron::Job.load_from_hash cron_jobs +end \ No newline at end of file diff --git a/config/zealot.yml b/config/zealot.yml deleted file mode 100644 index 51750a5af..000000000 --- a/config/zealot.yml +++ /dev/null @@ -1,28 +0,0 @@ -default: &base - version: <%= ENV['ZEALOT_VERSION'] || 'development' %> - vcs_ref: <%= ENV['ZEALOT_VCS_REF'] %> - register_enabled: <%= (ENV['ZEALOT_REGISTER_ENABLED'] || 'true') == 'true' %> - guest_mode: <%= (ENV['ZEALOT_GUEST_MODE'] || 'false') == 'true' %> - cron_jobs: - clean_old_releases: - cron: '0 6 * * *' - class: 'CleanOldReleasesJob' - queue: schedule - reset_for_demo_mode: - cron: '0 0 * * *' - class: 'ResetForDemoModeJob' - queue: schedule - backup: - path: 'public/backup' - keep_time: 604800 - pg_schema: public - - -development: - <<: *base - -test: - <<: *base - -production: - <<: *base \ No newline at end of file diff --git a/db/migrate/20200716041345_create_settings.rb b/db/migrate/20200716041345_create_settings.rb new file mode 100644 index 000000000..c24eded74 --- /dev/null +++ b/db/migrate/20200716041345_create_settings.rb @@ -0,0 +1,15 @@ +class CreateSettings < ActiveRecord::Migration[6.0] + def self.up + create_table :settings do |t| + t.string :var, null: false + t.text :value, null: true + t.timestamps + end + + add_index :settings, %i(var), unique: true + end + + def self.down + drop_table :settings + end +end diff --git a/db/schema.rb b/db/schema.rb index b754a6442..5441da05b 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 2020_05_27_121707) do +ActiveRecord::Schema.define(version: 2020_07_16_041345) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -131,6 +131,14 @@ t.index ["name"], name: "index_schemes_on_name" end + create_table "settings", force: :cascade do |t| + t.string "var", null: false + t.text "value" + t.datetime "created_at", precision: 6, null: false + t.datetime "updated_at", precision: 6, null: false + t.index ["var"], name: "index_settings_on_var", unique: true + end + create_table "user_providers", force: :cascade do |t| t.bigint "user_id" t.string "name" diff --git a/lib/backup/database.rb b/lib/backup/database.rb index 480832a65..1a501302f 100644 --- a/lib/backup/database.rb +++ b/lib/backup/database.rb @@ -56,9 +56,9 @@ def dump puts_time("Dumping PostgreSQL database #{config['database']} ... ", false) pg_env pgsql_args = ["--clean"] # Pass '--clean' to include 'DROP TABLE' statements in the DB dump. - if Zealot::Setting.backup.pg_schema + if Setting.backup[:pg_schema] pgsql_args << "-n" - pgsql_args << Zealot::Setting.backup.pg_schema + pgsql_args << Setting.backup[:pg_schema] end spawn('pg_dump', *pgsql_args, config['database'], out: compress_wr) diff --git a/lib/backup/helper.rb b/lib/backup/helper.rb index 7b9265979..433223745 100644 --- a/lib/backup/helper.rb +++ b/lib/backup/helper.rb @@ -87,7 +87,7 @@ def tar end def backup_path - Rails.root.join(Zealot::Setting.backup.path) + Rails.root.join(Setting.backup[:path]) end def puts_time(msg, new_line = true) diff --git a/lib/backup/manager.rb b/lib/backup/manager.rb index 514b58869..2f99311c4 100644 --- a/lib/backup/manager.rb +++ b/lib/backup/manager.rb @@ -78,7 +78,7 @@ def cleanup def remove_old puts_time('Deleting old backups ... ', false) - keep_time = Zealot::Setting.backup.keep_time.to_i + keep_time = Setting.backup[:keep_time] if keep_time > 0 removed = 0 @@ -149,7 +149,7 @@ def unpack def verify_backup_version Dir.chdir(backup_path) do # restoring mismatching backups can lead to unexpected problems - current_version = Zealot::Setting.version + current_version = Setting.version if settings[:zealot_version] != current_version logger.puts(<<~HEREDOC.color(:red)) Zealot version mismatch: @@ -172,9 +172,9 @@ def backup_information @backup_information ||= { db_version: ActiveRecord::Migrator.current_version.to_s, backup_created_at: Time.now, - zealot_version: Zealot::Setting.version, + zealot_version: Setting.version, tar_version: tar_version, - vcs_ref: Zealot::Setting.vcs_ref || false, + vcs_ref: Setting.vcs_ref || false, docker_tag: ENV['DOCKER_TAG'] || false } end diff --git a/lib/tasks/zealot/zealot.rake b/lib/tasks/zealot/zealot.rake index 9112aad8c..9c6a09ade 100644 --- a/lib/tasks/zealot/zealot.rake +++ b/lib/tasks/zealot/zealot.rake @@ -42,6 +42,6 @@ namespace :zealot do end task version: :environment do - puts Zealot::Setting.version + puts Setting.version end end diff --git a/lib/zealot/.gitkeep b/lib/zealot/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/lib/zealot/setting.rb b/lib/zealot/setting.rb deleted file mode 100644 index 5800ee405..000000000 --- a/lib/zealot/setting.rb +++ /dev/null @@ -1,8 +0,0 @@ -# frozen_string_literal: true - -require 'settingslogic' - -class Zealot::Setting < Settingslogic - source Rails.root.join('config/zealot.yml') - namespace Rails.env -end diff --git a/yarn.lock b/yarn.lock index 308b0e7e4..9aa0021b5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,382 +2,349 @@ # yarn lockfile v1 -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e" - integrity sha1-M+JZA9dIEYFTThLsCiXxa2/PQZ4= +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4": + version "7.10.4" + resolved "https://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a" + integrity sha1-Fo2ho26Q2miujUnA8bSMfGJJITo= dependencies: - "@babel/highlight" "^7.8.3" + "@babel/highlight" "^7.10.4" -"@babel/compat-data@^7.8.6", "@babel/compat-data@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.9.0.tgz#04815556fc90b0c174abd2c0c1bb966faa036a6c" - integrity sha512-zeFQrr+284Ekvd9e7KAX954LkapWiOmQtsfHirhxqfdlX6MEC32iRE+pqUGlYIBchdevaCwvzxWGSy/YBNI85g== +"@babel/compat-data@^7.10.4": + version "7.10.5" + resolved "https://registry.npm.taobao.org/@babel/compat-data/download/@babel/compat-data-7.10.5.tgz?cache=0&sync_timestamp=1594749441533&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcompat-data%2Fdownload%2F%40babel%2Fcompat-data-7.10.5.tgz#d38425e67ea96b1480a3f50404d1bf85676301a6" + integrity sha1-04Ql5n6paxSAo/UEBNG/hWdjAaY= dependencies: - browserslist "^4.9.1" + browserslist "^4.12.0" invariant "^2.2.4" semver "^5.5.0" "@babel/core@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.9.0.tgz#ac977b538b77e132ff706f3b8a4dbad09c03c56e" - integrity sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w== - dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/generator" "^7.9.0" - "@babel/helper-module-transforms" "^7.9.0" - "@babel/helpers" "^7.9.0" - "@babel/parser" "^7.9.0" - "@babel/template" "^7.8.6" - "@babel/traverse" "^7.9.0" - "@babel/types" "^7.9.0" + version "7.10.5" + resolved "https://registry.npm.taobao.org/@babel/core/download/@babel/core-7.10.5.tgz?cache=0&sync_timestamp=1594750809694&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz#1f15e2cca8ad9a1d78a38ddba612f5e7cdbbd330" + integrity sha1-HxXizKitmh14o43bphL158270zA= + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/generator" "^7.10.5" + "@babel/helper-module-transforms" "^7.10.5" + "@babel/helpers" "^7.10.4" + "@babel/parser" "^7.10.5" + "@babel/template" "^7.10.4" + "@babel/traverse" "^7.10.5" + "@babel/types" "^7.10.5" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.1" json5 "^2.1.2" - lodash "^4.17.13" + lodash "^4.17.19" resolve "^1.3.2" semver "^5.4.1" source-map "^0.5.0" -"@babel/generator@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/generator/download/@babel/generator-7.8.3.tgz#0e22c005b0a94c1c74eafe19ef78ce53a4d45c03" - integrity sha1-DiLABbCpTBx06v4Z73jOU6TUXAM= - dependencies: - "@babel/types" "^7.8.3" - jsesc "^2.5.1" - lodash "^4.17.13" - source-map "^0.5.0" - -"@babel/generator@^7.9.0": - version "7.9.4" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.9.4.tgz#12441e90c3b3c4159cdecf312075bf1a8ce2dbce" - integrity sha512-rjP8ahaDy/ouhrvCoU1E5mqaitWrxwuNGU+dy1EpaoK48jZay4MdkskKGIMHLZNewg8sAsqpGSREJwP0zH3YQA== +"@babel/generator@^7.10.5": + version "7.10.5" + resolved "https://registry.npm.taobao.org/@babel/generator/download/@babel/generator-7.10.5.tgz?cache=0&sync_timestamp=1594750806381&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fgenerator%2Fdownload%2F%40babel%2Fgenerator-7.10.5.tgz#1b903554bc8c583ee8d25f1e8969732e6b829a69" + integrity sha1-G5A1VLyMWD7o0l8eiWlzLmuCmmk= dependencies: - "@babel/types" "^7.9.0" + "@babel/types" "^7.10.5" jsesc "^2.5.1" - lodash "^4.17.13" source-map "^0.5.0" -"@babel/helper-annotate-as-pure@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/helper-annotate-as-pure/download/@babel/helper-annotate-as-pure-7.8.3.tgz#60bc0bc657f63a0924ff9a4b4a0b24a13cf4deee" - integrity sha1-YLwLxlf2Ogkk/5pLSgskoTz03u4= +"@babel/helper-annotate-as-pure@^7.10.4": + version "7.10.4" + resolved "https://registry.npm.taobao.org/@babel/helper-annotate-as-pure/download/@babel/helper-annotate-as-pure-7.10.4.tgz?cache=0&sync_timestamp=1593522926826&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-annotate-as-pure%2Fdownload%2F%40babel%2Fhelper-annotate-as-pure-7.10.4.tgz#5bf0d495a3f757ac3bda48b5bf3b3ba309c72ba3" + integrity sha1-W/DUlaP3V6w72ki1vzs7ownHK6M= dependencies: - "@babel/types" "^7.8.3" + "@babel/types" "^7.10.4" -"@babel/helper-builder-binary-assignment-operator-visitor@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/helper-builder-binary-assignment-operator-visitor/download/@babel/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz#c84097a427a061ac56a1c30ebf54b7b22d241503" - integrity sha1-yECXpCegYaxWocMOv1S3si0kFQM= +"@babel/helper-builder-binary-assignment-operator-visitor@^7.10.4": + version "7.10.4" + resolved "https://registry.npm.taobao.org/@babel/helper-builder-binary-assignment-operator-visitor/download/@babel/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz#bb0b75f31bf98cbf9ff143c1ae578b87274ae1a3" + integrity sha1-uwt18xv5jL+f8UPBrleLhydK4aM= dependencies: - "@babel/helper-explode-assignable-expression" "^7.8.3" - "@babel/types" "^7.8.3" + "@babel/helper-explode-assignable-expression" "^7.10.4" + "@babel/types" "^7.10.4" -"@babel/helper-compilation-targets@^7.8.7": - version "7.8.7" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.7.tgz#dac1eea159c0e4bd46e309b5a1b04a66b53c1dde" - integrity sha512-4mWm8DCK2LugIS+p1yArqvG1Pf162upsIsjE7cNBjez+NjliQpVhj20obE520nao0o14DaTnFJv+Fw5a0JpoUw== +"@babel/helper-compilation-targets@^7.10.4": + version "7.10.4" + resolved "https://registry.npm.taobao.org/@babel/helper-compilation-targets/download/@babel/helper-compilation-targets-7.10.4.tgz?cache=0&sync_timestamp=1593521093775&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-compilation-targets%2Fdownload%2F%40babel%2Fhelper-compilation-targets-7.10.4.tgz#804ae8e3f04376607cc791b9d47d540276332bd2" + integrity sha1-gEro4/BDdmB8x5G51H1UAnYzK9I= dependencies: - "@babel/compat-data" "^7.8.6" - browserslist "^4.9.1" + "@babel/compat-data" "^7.10.4" + browserslist "^4.12.0" invariant "^2.2.4" levenary "^1.1.1" semver "^5.5.0" -"@babel/helper-create-class-features-plugin@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/helper-create-class-features-plugin/download/@babel/helper-create-class-features-plugin-7.8.3.tgz#5b94be88c255f140fd2c10dd151e7f98f4bff397" - integrity sha1-W5S+iMJV8UD9LBDdFR5/mPS/85c= - dependencies: - "@babel/helper-function-name" "^7.8.3" - "@babel/helper-member-expression-to-functions" "^7.8.3" - "@babel/helper-optimise-call-expression" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-replace-supers" "^7.8.3" - "@babel/helper-split-export-declaration" "^7.8.3" - -"@babel/helper-create-regexp-features-plugin@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/helper-create-regexp-features-plugin/download/@babel/helper-create-regexp-features-plugin-7.8.3.tgz#c774268c95ec07ee92476a3862b75cc2839beb79" - integrity sha1-x3QmjJXsB+6SR2o4YrdcwoOb63k= - dependencies: - "@babel/helper-regex" "^7.8.3" - regexpu-core "^4.6.0" - -"@babel/helper-create-regexp-features-plugin@^7.8.8": - version "7.8.8" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.8.tgz#5d84180b588f560b7864efaeea89243e58312087" - integrity sha512-LYVPdwkrQEiX9+1R29Ld/wTrmQu1SSKYnuOk3g0CkcZMA1p0gsNxJFj/3gBdaJ7Cg0Fnek5z0DsMULePP7Lrqg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.8.3" - "@babel/helper-regex" "^7.8.3" +"@babel/helper-create-class-features-plugin@^7.10.4": + version "7.10.5" + resolved "https://registry.npm.taobao.org/@babel/helper-create-class-features-plugin/download/@babel/helper-create-class-features-plugin-7.10.5.tgz?cache=0&sync_timestamp=1594749163935&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-create-class-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-class-features-plugin-7.10.5.tgz#9f61446ba80e8240b0a5c85c6fdac8459d6f259d" + integrity sha1-n2FEa6gOgkCwpchcb9rIRZ1vJZ0= + dependencies: + "@babel/helper-function-name" "^7.10.4" + "@babel/helper-member-expression-to-functions" "^7.10.5" + "@babel/helper-optimise-call-expression" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-replace-supers" "^7.10.4" + "@babel/helper-split-export-declaration" "^7.10.4" + +"@babel/helper-create-regexp-features-plugin@^7.10.4": + version "7.10.4" + resolved "https://registry.npm.taobao.org/@babel/helper-create-regexp-features-plugin/download/@babel/helper-create-regexp-features-plugin-7.10.4.tgz#fdd60d88524659a0b6959c0579925e425714f3b8" + integrity sha1-/dYNiFJGWaC2lZwFeZJeQlcU87g= + dependencies: + "@babel/helper-annotate-as-pure" "^7.10.4" + "@babel/helper-regex" "^7.10.4" regexpu-core "^4.7.0" -"@babel/helper-define-map@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/helper-define-map/download/@babel/helper-define-map-7.8.3.tgz#a0655cad5451c3760b726eba875f1cd8faa02c15" - integrity sha1-oGVcrVRRw3YLcm66h18c2PqgLBU= - dependencies: - "@babel/helper-function-name" "^7.8.3" - "@babel/types" "^7.8.3" - lodash "^4.17.13" - -"@babel/helper-explode-assignable-expression@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/helper-explode-assignable-expression/download/@babel/helper-explode-assignable-expression-7.8.3.tgz#a728dc5b4e89e30fc2dfc7d04fa28a930653f982" - integrity sha1-pyjcW06J4w/C38fQT6KKkwZT+YI= - dependencies: - "@babel/traverse" "^7.8.3" - "@babel/types" "^7.8.3" - -"@babel/helper-function-name@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/helper-function-name/download/@babel/helper-function-name-7.8.3.tgz#eeeb665a01b1f11068e9fb86ad56a1cb1a824cca" - integrity sha1-7utmWgGx8RBo6fuGrVahyxqCTMo= - dependencies: - "@babel/helper-get-function-arity" "^7.8.3" - "@babel/template" "^7.8.3" - "@babel/types" "^7.8.3" - -"@babel/helper-get-function-arity@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.8.3.tgz#b894b947bd004381ce63ea1db9f08547e920abd5" - integrity sha1-uJS5R70AQ4HOY+odufCFR+kgq9U= - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-hoist-variables@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/helper-hoist-variables/download/@babel/helper-hoist-variables-7.8.3.tgz#1dbe9b6b55d78c9b4183fc8cdc6e30ceb83b7134" - integrity sha1-Hb6ba1XXjJtBg/yM3G4wzrg7cTQ= - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-member-expression-to-functions@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/helper-member-expression-to-functions/download/@babel/helper-member-expression-to-functions-7.8.3.tgz#659b710498ea6c1d9907e0c73f206eee7dadc24c" - integrity sha1-ZZtxBJjqbB2ZB+DHPyBu7n2twkw= - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-module-imports@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/helper-module-imports/download/@babel/helper-module-imports-7.8.3.tgz#7fe39589b39c016331b6b8c3f441e8f0b1419498" - integrity sha1-f+OVibOcAWMxtrjD9EHo8LFBlJg= - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-module-transforms@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz#43b34dfe15961918707d247327431388e9fe96e5" - integrity sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA== - dependencies: - "@babel/helper-module-imports" "^7.8.3" - "@babel/helper-replace-supers" "^7.8.6" - "@babel/helper-simple-access" "^7.8.3" - "@babel/helper-split-export-declaration" "^7.8.3" - "@babel/template" "^7.8.6" - "@babel/types" "^7.9.0" - lodash "^4.17.13" - -"@babel/helper-optimise-call-expression@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/helper-optimise-call-expression/download/@babel/helper-optimise-call-expression-7.8.3.tgz#7ed071813d09c75298ef4f208956006b6111ecb9" - integrity sha1-ftBxgT0Jx1KY708giVYAa2ER7Lk= - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.8.3.tgz#9ea293be19babc0f52ff8ca88b34c3611b208670" - integrity sha1-nqKTvhm6vA9S/4yoizTDYRsghnA= - -"@babel/helper-regex@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/helper-regex/download/@babel/helper-regex-7.8.3.tgz#139772607d51b93f23effe72105b319d2a4c6965" - integrity sha1-E5dyYH1RuT8j7/5yEFsxnSpMaWU= - dependencies: - lodash "^4.17.13" - -"@babel/helper-remap-async-to-generator@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/helper-remap-async-to-generator/download/@babel/helper-remap-async-to-generator-7.8.3.tgz#273c600d8b9bf5006142c1e35887d555c12edd86" - integrity sha1-JzxgDYub9QBhQsHjWIfVVcEu3YY= - dependencies: - "@babel/helper-annotate-as-pure" "^7.8.3" - "@babel/helper-wrap-function" "^7.8.3" - "@babel/template" "^7.8.3" - "@babel/traverse" "^7.8.3" - "@babel/types" "^7.8.3" - -"@babel/helper-replace-supers@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/helper-replace-supers/download/@babel/helper-replace-supers-7.8.3.tgz#91192d25f6abbcd41da8a989d4492574fb1530bc" - integrity sha1-kRktJfarvNQdqKmJ1EkldPsVMLw= - dependencies: - "@babel/helper-member-expression-to-functions" "^7.8.3" - "@babel/helper-optimise-call-expression" "^7.8.3" - "@babel/traverse" "^7.8.3" - "@babel/types" "^7.8.3" - -"@babel/helper-replace-supers@^7.8.6": - version "7.8.6" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz#5ada744fd5ad73203bf1d67459a27dcba67effc8" - integrity sha512-PeMArdA4Sv/Wf4zXwBKPqVj7n9UF/xg6slNRtZW84FM7JpE1CbG8B612FyM4cxrf4fMAMGO0kR7voy1ForHHFA== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.8.3" - "@babel/helper-optimise-call-expression" "^7.8.3" - "@babel/traverse" "^7.8.6" - "@babel/types" "^7.8.6" - -"@babel/helper-simple-access@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/helper-simple-access/download/@babel/helper-simple-access-7.8.3.tgz#7f8109928b4dab4654076986af575231deb639ae" - integrity sha1-f4EJkotNq0ZUB2mGr1dSMd62Oa4= - dependencies: - "@babel/template" "^7.8.3" - "@babel/types" "^7.8.3" - -"@babel/helper-split-export-declaration@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.8.3.tgz#31a9f30070f91368a7182cf05f831781065fc7a9" - integrity sha1-ManzAHD5E2inGCzwX4MXgQZfx6k= - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-validator-identifier@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.0.tgz#ad53562a7fc29b3b9a91bbf7d10397fd146346ed" - integrity sha512-6G8bQKjOh+of4PV/ThDm/rRqlU7+IGoJuofpagU5GlEl29Vv0RGqqt86ZGRV8ZuSOY3o+8yXl5y782SMcG7SHw== - -"@babel/helper-wrap-function@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/helper-wrap-function/download/@babel/helper-wrap-function-7.8.3.tgz#9dbdb2bb55ef14aaa01fe8c99b629bd5352d8610" - integrity sha1-nb2yu1XvFKqgH+jJm2Kb1TUthhA= - dependencies: - "@babel/helper-function-name" "^7.8.3" - "@babel/template" "^7.8.3" - "@babel/traverse" "^7.8.3" - "@babel/types" "^7.8.3" - -"@babel/helpers@^7.9.0": - version "7.9.2" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.9.2.tgz#b42a81a811f1e7313b88cba8adc66b3d9ae6c09f" - integrity sha512-JwLvzlXVPjO8eU9c/wF9/zOIN7X6h8DYf7mG4CiFRZRvZNKEF5dQ3H3V+ASkHoIB3mWhatgl5ONhyqHRI6MppA== - dependencies: - "@babel/template" "^7.8.3" - "@babel/traverse" "^7.9.0" - "@babel/types" "^7.9.0" - -"@babel/highlight@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/highlight/download/@babel/highlight-7.8.3.tgz#28f173d04223eaaa59bc1d439a3836e6d1265797" - integrity sha1-KPFz0EIj6qpZvB1Dmjg25tEmV5c= +"@babel/helper-define-map@^7.10.4": + version "7.10.5" + resolved "https://registry.npm.taobao.org/@babel/helper-define-map/download/@babel/helper-define-map-7.10.5.tgz#b53c10db78a640800152692b13393147acb9bb30" + integrity sha1-tTwQ23imQIABUmkrEzkxR6y5uzA= + dependencies: + "@babel/helper-function-name" "^7.10.4" + "@babel/types" "^7.10.5" + lodash "^4.17.19" + +"@babel/helper-explode-assignable-expression@^7.10.4": + version "7.10.4" + resolved "https://registry.npm.taobao.org/@babel/helper-explode-assignable-expression/download/@babel/helper-explode-assignable-expression-7.10.4.tgz?cache=0&sync_timestamp=1593522841702&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-explode-assignable-expression%2Fdownload%2F%40babel%2Fhelper-explode-assignable-expression-7.10.4.tgz#40a1cd917bff1288f699a94a75b37a1a2dbd8c7c" + integrity sha1-QKHNkXv/Eoj2malKdbN6Gi29jHw= + dependencies: + "@babel/traverse" "^7.10.4" + "@babel/types" "^7.10.4" + +"@babel/helper-function-name@^7.10.4": + version "7.10.4" + resolved "https://registry.npm.taobao.org/@babel/helper-function-name/download/@babel/helper-function-name-7.10.4.tgz#d2d3b20c59ad8c47112fa7d2a94bc09d5ef82f1a" + integrity sha1-0tOyDFmtjEcRL6fSqUvAnV74Lxo= dependencies: + "@babel/helper-get-function-arity" "^7.10.4" + "@babel/template" "^7.10.4" + "@babel/types" "^7.10.4" + +"@babel/helper-get-function-arity@^7.10.4": + version "7.10.4" + resolved "https://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.10.4.tgz?cache=0&sync_timestamp=1593522926422&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-get-function-arity%2Fdownload%2F%40babel%2Fhelper-get-function-arity-7.10.4.tgz#98c1cbea0e2332f33f9a4661b8ce1505b2c19ba2" + integrity sha1-mMHL6g4jMvM/mkZhuM4VBbLBm6I= + dependencies: + "@babel/types" "^7.10.4" + +"@babel/helper-hoist-variables@^7.10.4": + version "7.10.4" + resolved "https://registry.npm.taobao.org/@babel/helper-hoist-variables/download/@babel/helper-hoist-variables-7.10.4.tgz?cache=0&sync_timestamp=1593522926518&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-hoist-variables%2Fdownload%2F%40babel%2Fhelper-hoist-variables-7.10.4.tgz#d49b001d1d5a68ca5e6604dda01a6297f7c9381e" + integrity sha1-1JsAHR1aaMpeZgTdoBpil/fJOB4= + dependencies: + "@babel/types" "^7.10.4" + +"@babel/helper-member-expression-to-functions@^7.10.4", "@babel/helper-member-expression-to-functions@^7.10.5": + version "7.10.5" + resolved "https://registry.npm.taobao.org/@babel/helper-member-expression-to-functions/download/@babel/helper-member-expression-to-functions-7.10.5.tgz?cache=0&sync_timestamp=1594750806986&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-member-expression-to-functions%2Fdownload%2F%40babel%2Fhelper-member-expression-to-functions-7.10.5.tgz#172f56e7a63e78112f3a04055f24365af702e7ee" + integrity sha1-Fy9W56Y+eBEvOgQFXyQ2WvcC5+4= + dependencies: + "@babel/types" "^7.10.5" + +"@babel/helper-module-imports@^7.10.4": + version "7.10.4" + resolved "https://registry.npm.taobao.org/@babel/helper-module-imports/download/@babel/helper-module-imports-7.10.4.tgz#4c5c54be04bd31670a7382797d75b9fa2e5b5620" + integrity sha1-TFxUvgS9MWcKc4J5fXW5+i5bViA= + dependencies: + "@babel/types" "^7.10.4" + +"@babel/helper-module-transforms@^7.10.4", "@babel/helper-module-transforms@^7.10.5": + version "7.10.5" + resolved "https://registry.npm.taobao.org/@babel/helper-module-transforms/download/@babel/helper-module-transforms-7.10.5.tgz?cache=0&sync_timestamp=1594750806669&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-module-transforms%2Fdownload%2F%40babel%2Fhelper-module-transforms-7.10.5.tgz#120c271c0b3353673fcdfd8c053db3c544a260d6" + integrity sha1-EgwnHAszU2c/zf2MBT2zxUSiYNY= + dependencies: + "@babel/helper-module-imports" "^7.10.4" + "@babel/helper-replace-supers" "^7.10.4" + "@babel/helper-simple-access" "^7.10.4" + "@babel/helper-split-export-declaration" "^7.10.4" + "@babel/template" "^7.10.4" + "@babel/types" "^7.10.5" + lodash "^4.17.19" + +"@babel/helper-optimise-call-expression@^7.10.4": + version "7.10.4" + resolved "https://registry.npm.taobao.org/@babel/helper-optimise-call-expression/download/@babel/helper-optimise-call-expression-7.10.4.tgz?cache=0&sync_timestamp=1593522928231&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-optimise-call-expression%2Fdownload%2F%40babel%2Fhelper-optimise-call-expression-7.10.4.tgz#50dc96413d594f995a77905905b05893cd779673" + integrity sha1-UNyWQT1ZT5lad5BZBbBYk813lnM= + dependencies: + "@babel/types" "^7.10.4" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.8.0": + version "7.10.4" + resolved "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz?cache=0&sync_timestamp=1593521089859&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375" + integrity sha1-L3WoMSadT2d95JmG3/WZJ1M883U= + +"@babel/helper-regex@^7.10.4": + version "7.10.5" + resolved "https://registry.npm.taobao.org/@babel/helper-regex/download/@babel/helper-regex-7.10.5.tgz?cache=0&sync_timestamp=1594749174690&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-regex%2Fdownload%2F%40babel%2Fhelper-regex-7.10.5.tgz#32dfbb79899073c415557053a19bd055aae50ae0" + integrity sha1-Mt+7eYmQc8QVVXBToZvQVarlCuA= + dependencies: + lodash "^4.17.19" + +"@babel/helper-remap-async-to-generator@^7.10.4": + version "7.10.4" + resolved "https://registry.npm.taobao.org/@babel/helper-remap-async-to-generator/download/@babel/helper-remap-async-to-generator-7.10.4.tgz?cache=0&sync_timestamp=1593521228698&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-remap-async-to-generator%2Fdownload%2F%40babel%2Fhelper-remap-async-to-generator-7.10.4.tgz#fce8bea4e9690bbe923056ded21e54b4e8b68ed5" + integrity sha1-/Oi+pOlpC76SMFbe0h5UtOi2jtU= + dependencies: + "@babel/helper-annotate-as-pure" "^7.10.4" + "@babel/helper-wrap-function" "^7.10.4" + "@babel/template" "^7.10.4" + "@babel/traverse" "^7.10.4" + "@babel/types" "^7.10.4" + +"@babel/helper-replace-supers@^7.10.4": + version "7.10.4" + resolved "https://registry.npm.taobao.org/@babel/helper-replace-supers/download/@babel/helper-replace-supers-7.10.4.tgz#d585cd9388ea06e6031e4cd44b6713cbead9e6cf" + integrity sha1-1YXNk4jqBuYDHkzUS2cTy+rZ5s8= + dependencies: + "@babel/helper-member-expression-to-functions" "^7.10.4" + "@babel/helper-optimise-call-expression" "^7.10.4" + "@babel/traverse" "^7.10.4" + "@babel/types" "^7.10.4" + +"@babel/helper-simple-access@^7.10.4": + version "7.10.4" + resolved "https://registry.npm.taobao.org/@babel/helper-simple-access/download/@babel/helper-simple-access-7.10.4.tgz#0f5ccda2945277a2a7a2d3a821e15395edcf3461" + integrity sha1-D1zNopRSd6KnotOoIeFTle3PNGE= + dependencies: + "@babel/template" "^7.10.4" + "@babel/types" "^7.10.4" + +"@babel/helper-split-export-declaration@^7.10.4": + version "7.10.4" + resolved "https://registry.npm.taobao.org/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.10.4.tgz?cache=0&sync_timestamp=1593522967620&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-split-export-declaration%2Fdownload%2F%40babel%2Fhelper-split-export-declaration-7.10.4.tgz#2c70576eaa3b5609b24cb99db2888cc3fc4251d1" + integrity sha1-LHBXbqo7VgmyTLmdsoiMw/xCUdE= + dependencies: + "@babel/types" "^7.10.4" + +"@babel/helper-validator-identifier@^7.10.4": + version "7.10.4" + resolved "https://registry.npm.taobao.org/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.10.4.tgz?cache=0&sync_timestamp=1593521090675&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2" + integrity sha1-p4x6clHgH2FlEtMbEK3PUq2l4NI= + +"@babel/helper-wrap-function@^7.10.4": + version "7.10.4" + resolved "https://registry.npm.taobao.org/@babel/helper-wrap-function/download/@babel/helper-wrap-function-7.10.4.tgz#8a6f701eab0ff39f765b5a1cfef409990e624b87" + integrity sha1-im9wHqsP8592W1oc/vQJmQ5iS4c= + dependencies: + "@babel/helper-function-name" "^7.10.4" + "@babel/template" "^7.10.4" + "@babel/traverse" "^7.10.4" + "@babel/types" "^7.10.4" + +"@babel/helpers@^7.10.4": + version "7.10.4" + resolved "https://registry.npm.taobao.org/@babel/helpers/download/@babel/helpers-7.10.4.tgz?cache=0&sync_timestamp=1593522841291&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelpers%2Fdownload%2F%40babel%2Fhelpers-7.10.4.tgz#2abeb0d721aff7c0a97376b9e1f6f65d7a475044" + integrity sha1-Kr6w1yGv98Cpc3a54fb2XXpHUEQ= + dependencies: + "@babel/template" "^7.10.4" + "@babel/traverse" "^7.10.4" + "@babel/types" "^7.10.4" + +"@babel/highlight@^7.10.4": + version "7.10.4" + resolved "https://registry.npm.taobao.org/@babel/highlight/download/@babel/highlight-7.10.4.tgz?cache=0&sync_timestamp=1593521118780&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhighlight%2Fdownload%2F%40babel%2Fhighlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143" + integrity sha1-fRvf1ldTU4+r5sOFls23bZrGAUM= + dependencies: + "@babel/helper-validator-identifier" "^7.10.4" chalk "^2.0.0" - esutils "^2.0.2" js-tokens "^4.0.0" -"@babel/parser@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.8.3.tgz#790874091d2001c9be6ec426c2eed47bc7679081" - integrity sha1-eQh0CR0gAcm+bsQmwu7Ue8dnkIE= - -"@babel/parser@^7.8.6", "@babel/parser@^7.9.0": - version "7.9.4" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.9.4.tgz#68a35e6b0319bbc014465be43828300113f2f2e8" - integrity sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA== +"@babel/parser@^7.10.4", "@babel/parser@^7.10.5": + version "7.10.5" + resolved "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.10.5.tgz?cache=0&sync_timestamp=1594750803040&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.10.5.tgz#e7c6bf5a7deff957cec9f04b551e2762909d826b" + integrity sha1-58a/Wn3v+VfOyfBLVR4nYpCdgms= -"@babel/plugin-proposal-async-generator-functions@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-async-generator-functions/download/@babel/plugin-proposal-async-generator-functions-7.8.3.tgz#bad329c670b382589721b27540c7d288601c6e6f" - integrity sha1-utMpxnCzgliXIbJ1QMfSiGAcbm8= +"@babel/plugin-proposal-async-generator-functions@^7.10.4": + version "7.10.5" + resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-async-generator-functions/download/@babel/plugin-proposal-async-generator-functions-7.10.5.tgz#3491cabf2f7c179ab820606cec27fed15e0e8558" + integrity sha1-NJHKvy98F5q4IGBs7Cf+0V4OhVg= dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-remap-async-to-generator" "^7.8.3" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-remap-async-to-generator" "^7.10.4" "@babel/plugin-syntax-async-generators" "^7.8.0" -"@babel/plugin-proposal-class-properties@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.8.3.tgz#5e06654af5cd04b608915aada9b2a6788004464e" - integrity sha512-EqFhbo7IosdgPgZggHaNObkmO1kNUe3slaKu54d5OWvy+p9QIKOzK1GAEpAIsZtWVtPXUHSMcT4smvDrCfY4AA== +"@babel/plugin-proposal-class-properties@^7.10.4", "@babel/plugin-proposal-class-properties@^7.8.3": + version "7.10.4" + resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-class-properties/download/@babel/plugin-proposal-class-properties-7.10.4.tgz?cache=0&sync_timestamp=1593522874177&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-class-properties%2Fdownload%2F%40babel%2Fplugin-proposal-class-properties-7.10.4.tgz#a33bf632da390a59c7a8c570045d1115cd778807" + integrity sha1-ozv2Mto5ClnHqMVwBF0RFc13iAc= dependencies: - "@babel/helper-create-class-features-plugin" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-create-class-features-plugin" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-proposal-dynamic-import@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-dynamic-import/download/@babel/plugin-proposal-dynamic-import-7.8.3.tgz#38c4fe555744826e97e2ae930b0fb4cc07e66054" - integrity sha1-OMT+VVdEgm6X4q6TCw+0zAfmYFQ= +"@babel/plugin-proposal-dynamic-import@^7.10.4": + version "7.10.4" + resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-dynamic-import/download/@babel/plugin-proposal-dynamic-import-7.10.4.tgz#ba57a26cb98b37741e9d5bca1b8b0ddf8291f17e" + integrity sha1-uleibLmLN3QenVvKG4sN34KR8X4= dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-dynamic-import" "^7.8.0" -"@babel/plugin-proposal-json-strings@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-json-strings/download/@babel/plugin-proposal-json-strings-7.8.3.tgz#da5216b238a98b58a1e05d6852104b10f9a70d6b" - integrity sha1-2lIWsjipi1ih4F1oUhBLEPmnDWs= +"@babel/plugin-proposal-json-strings@^7.10.4": + version "7.10.4" + resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-json-strings/download/@babel/plugin-proposal-json-strings-7.10.4.tgz?cache=0&sync_timestamp=1593521092651&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-json-strings%2Fdownload%2F%40babel%2Fplugin-proposal-json-strings-7.10.4.tgz#593e59c63528160233bd321b1aebe0820c2341db" + integrity sha1-WT5ZxjUoFgIzvTIbGuvgggwjQds= dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-json-strings" "^7.8.0" -"@babel/plugin-proposal-nullish-coalescing-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-nullish-coalescing-operator/download/@babel/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz#e4572253fdeed65cddeecfdab3f928afeb2fd5d2" - integrity sha1-5FciU/3u1lzd7s/as/kor+sv1dI= +"@babel/plugin-proposal-nullish-coalescing-operator@^7.10.4": + version "7.10.4" + resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-nullish-coalescing-operator/download/@babel/plugin-proposal-nullish-coalescing-operator-7.10.4.tgz?cache=0&sync_timestamp=1593521095740&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-nullish-coalescing-operator%2Fdownload%2F%40babel%2Fplugin-proposal-nullish-coalescing-operator-7.10.4.tgz#02a7e961fc32e6d5b2db0649e01bf80ddee7e04a" + integrity sha1-AqfpYfwy5tWy2wZJ4Bv4Dd7n4Eo= dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" -"@babel/plugin-proposal-numeric-separator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.8.3.tgz#5d6769409699ec9b3b68684cd8116cedff93bad8" - integrity sha512-jWioO1s6R/R+wEHizfaScNsAx+xKgwTLNXSh7tTC4Usj3ItsPEhYkEpU4h+lpnBwq7NBVOJXfO6cRFYcX69JUQ== +"@babel/plugin-proposal-numeric-separator@^7.10.4": + version "7.10.4" + resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-numeric-separator/download/@babel/plugin-proposal-numeric-separator-7.10.4.tgz#ce1590ff0a65ad12970a609d78855e9a4c1aef06" + integrity sha1-zhWQ/wplrRKXCmCdeIVemkwa7wY= dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.8.3" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-proposal-object-rest-spread@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.0.tgz#a28993699fc13df165995362693962ba6b061d6f" - integrity sha512-UgqBv6bjq4fDb8uku9f+wcm1J7YxJ5nT7WO/jBr0cl0PLKb7t1O6RNR1kZbjgx2LQtsDI9hwoQVmn0yhXeQyow== +"@babel/plugin-proposal-object-rest-spread@^7.10.4", "@babel/plugin-proposal-object-rest-spread@^7.9.0": + version "7.10.4" + resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-object-rest-spread/download/@babel/plugin-proposal-object-rest-spread-7.10.4.tgz#50129ac216b9a6a55b3853fdd923e74bf553a4c0" + integrity sha1-UBKawha5pqVbOFP92SPnS/VTpMA= dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-object-rest-spread" "^7.8.0" + "@babel/plugin-transform-parameters" "^7.10.4" -"@babel/plugin-proposal-optional-catch-binding@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-optional-catch-binding/download/@babel/plugin-proposal-optional-catch-binding-7.8.3.tgz#9dee96ab1650eed88646ae9734ca167ac4a9c5c9" - integrity sha1-ne6WqxZQ7tiGRq6XNMoWesSpxck= +"@babel/plugin-proposal-optional-catch-binding@^7.10.4": + version "7.10.4" + resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-optional-catch-binding/download/@babel/plugin-proposal-optional-catch-binding-7.10.4.tgz?cache=0&sync_timestamp=1594336462969&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-optional-catch-binding%2Fdownload%2F%40babel%2Fplugin-proposal-optional-catch-binding-7.10.4.tgz#31c938309d24a78a49d68fdabffaa863758554dd" + integrity sha1-Mck4MJ0kp4pJ1o/av/qoY3WFVN0= dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" -"@babel/plugin-proposal-optional-chaining@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.9.0.tgz#31db16b154c39d6b8a645292472b98394c292a58" - integrity sha512-NDn5tu3tcv4W30jNhmc2hyD5c56G6cXx4TesJubhxrJeCvuuMpttxr0OnNCqbZGhFjLrg+NIhxxC+BK5F6yS3w== +"@babel/plugin-proposal-optional-chaining@^7.10.4": + version "7.10.4" + resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-optional-chaining/download/@babel/plugin-proposal-optional-chaining-7.10.4.tgz?cache=0&sync_timestamp=1593522924461&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-optional-chaining%2Fdownload%2F%40babel%2Fplugin-proposal-optional-chaining-7.10.4.tgz#750f1255e930a1f82d8cdde45031f81a0d0adff7" + integrity sha1-dQ8SVekwofgtjN3kUDH4Gg0K3/c= dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-optional-chaining" "^7.8.0" -"@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.8.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.8.tgz#ee3a95e90cdc04fe8cd92ec3279fa017d68a0d1d" - integrity sha512-EVhjVsMpbhLw9ZfHWSx2iy13Q8Z/eg8e8ccVWt23sWQK5l1UdkoLJPN5w69UA4uITGBnEZD2JOe4QOHycYKv8A== +"@babel/plugin-proposal-private-methods@^7.10.4": + version "7.10.4" + resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-private-methods/download/@babel/plugin-proposal-private-methods-7.10.4.tgz#b160d972b8fdba5c7d111a145fc8c421fc2a6909" + integrity sha1-sWDZcrj9ulx9ERoUX8jEIfwqaQk= dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.8.8" - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-create-class-features-plugin" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-proposal-unicode-property-regex@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-unicode-property-regex/download/@babel/plugin-proposal-unicode-property-regex-7.8.3.tgz#b646c3adea5f98800c9ab45105ac34d06cd4a47f" - integrity sha1-tkbDrepfmIAMmrRRBaw00GzUpH8= +"@babel/plugin-proposal-unicode-property-regex@^7.10.4", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.10.4" + resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-unicode-property-regex/download/@babel/plugin-proposal-unicode-property-regex-7.10.4.tgz#4483cda53041ce3413b7fe2f00022665ddfaa75d" + integrity sha1-RIPNpTBBzjQTt/4vAAImZd36p10= dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-create-regexp-features-plugin" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-async-generators@^7.8.0": version "7.8.4" @@ -386,10 +353,17 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" +"@babel/plugin-syntax-class-properties@^7.10.4": + version "7.10.4" + resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-class-properties/download/@babel/plugin-syntax-class-properties-7.10.4.tgz?cache=0&sync_timestamp=1593521094537&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-class-properties%2Fdownload%2F%40babel%2Fplugin-syntax-class-properties-7.10.4.tgz#6644e6a0baa55a61f9e3231f6c9eeb6ee46c124c" + integrity sha1-ZkTmoLqlWmH54yMfbJ7rbuRsEkw= + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-dynamic-import@^7.8.0", "@babel/plugin-syntax-dynamic-import@^7.8.3": version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" - integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== + resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-dynamic-import/download/@babel/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" + integrity sha1-Yr+Ysto80h1iYVT8lu5bPLaOrLM= dependencies: "@babel/helper-plugin-utils" "^7.8.0" @@ -407,12 +381,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-numeric-separator@^7.8.0", "@babel/plugin-syntax-numeric-separator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.8.3.tgz#0e3fb63e09bea1b11e96467271c8308007e7c41f" - integrity sha512-H7dCMAdN83PcCmqmkHB5dtp+Xa9a6LKSvA2hiFBC/5alSHxM5VgWZXFqDi0YFe8XNGT6iCa+z4V4zSt/PdZ7Dw== +"@babel/plugin-syntax-numeric-separator@^7.10.4": + version "7.10.4" + resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-numeric-separator/download/@babel/plugin-syntax-numeric-separator-7.10.4.tgz?cache=0&sync_timestamp=1593521791666&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-numeric-separator%2Fdownload%2F%40babel%2Fplugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + integrity sha1-ubBws+M1cM2f0Hun+pHA3Te5r5c= dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-object-rest-spread@^7.8.0": version "7.8.3" @@ -435,328 +409,338 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-top-level-await@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-top-level-await/download/@babel/plugin-syntax-top-level-await-7.8.3.tgz#3acdece695e6b13aaf57fc291d1a800950c71391" - integrity sha1-Os3s5pXmsTqvV/wpHRqACVDHE5E= +"@babel/plugin-syntax-top-level-await@^7.10.4": + version "7.10.4" + resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-top-level-await/download/@babel/plugin-syntax-top-level-await-7.10.4.tgz#4bbeb8917b54fcf768364e0a81f560e33a3ef57d" + integrity sha1-S764kXtU/PdoNk4KgfVg4zo+9X0= dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-arrow-functions@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-arrow-functions/download/@babel/plugin-transform-arrow-functions-7.8.3.tgz#82776c2ed0cd9e1a49956daeb896024c9473b8b6" - integrity sha1-gndsLtDNnhpJlW2uuJYCTJRzuLY= +"@babel/plugin-transform-arrow-functions@^7.10.4": + version "7.10.4" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-arrow-functions/download/@babel/plugin-transform-arrow-functions-7.10.4.tgz#e22960d77e697c74f41c501d44d73dbf8a6a64cd" + integrity sha1-4ilg135pfHT0HFAdRNc9v4pqZM0= dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-async-to-generator@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-async-to-generator/download/@babel/plugin-transform-async-to-generator-7.8.3.tgz#4308fad0d9409d71eafb9b1a6ee35f9d64b64086" - integrity sha1-Qwj60NlAnXHq+5sabuNfnWS2QIY= +"@babel/plugin-transform-async-to-generator@^7.10.4": + version "7.10.4" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-async-to-generator/download/@babel/plugin-transform-async-to-generator-7.10.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-async-to-generator%2Fdownload%2F%40babel%2Fplugin-transform-async-to-generator-7.10.4.tgz#41a5017e49eb6f3cda9392a51eef29405b245a37" + integrity sha1-QaUBfknrbzzak5KlHu8pQFskWjc= dependencies: - "@babel/helper-module-imports" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-remap-async-to-generator" "^7.8.3" + "@babel/helper-module-imports" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-remap-async-to-generator" "^7.10.4" -"@babel/plugin-transform-block-scoped-functions@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-block-scoped-functions/download/@babel/plugin-transform-block-scoped-functions-7.8.3.tgz#437eec5b799b5852072084b3ae5ef66e8349e8a3" - integrity sha1-Q37sW3mbWFIHIISzrl72boNJ6KM= +"@babel/plugin-transform-block-scoped-functions@^7.10.4": + version "7.10.4" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-block-scoped-functions/download/@babel/plugin-transform-block-scoped-functions-7.10.4.tgz#1afa595744f75e43a91af73b0d998ecfe4ebc2e8" + integrity sha1-GvpZV0T3XkOpGvc7DZmOz+Trwug= dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-block-scoping@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-block-scoping/download/@babel/plugin-transform-block-scoping-7.8.3.tgz#97d35dab66857a437c166358b91d09050c868f3a" - integrity sha1-l9Ndq2aFekN8FmNYuR0JBQyGjzo= - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - lodash "^4.17.13" - -"@babel/plugin-transform-classes@^7.9.0": - version "7.9.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.9.2.tgz#8603fc3cc449e31fdbdbc257f67717536a11af8d" - integrity sha512-TC2p3bPzsfvSsqBZo0kJnuelnoK9O3welkUpqSqBQuBF6R5MN2rysopri8kNvtlGIb2jmUO7i15IooAZJjZuMQ== - dependencies: - "@babel/helper-annotate-as-pure" "^7.8.3" - "@babel/helper-define-map" "^7.8.3" - "@babel/helper-function-name" "^7.8.3" - "@babel/helper-optimise-call-expression" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-replace-supers" "^7.8.6" - "@babel/helper-split-export-declaration" "^7.8.3" +"@babel/plugin-transform-block-scoping@^7.10.4": + version "7.10.5" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-block-scoping/download/@babel/plugin-transform-block-scoping-7.10.5.tgz#b81b8aafefbfe68f0f65f7ef397b9ece68a6037d" + integrity sha1-uBuKr++/5o8PZffvOXuezmimA30= + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-classes@^7.10.4": + version "7.10.4" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-classes/download/@babel/plugin-transform-classes-7.10.4.tgz?cache=0&sync_timestamp=1593522856487&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-classes%2Fdownload%2F%40babel%2Fplugin-transform-classes-7.10.4.tgz#405136af2b3e218bc4a1926228bc917ab1a0adc7" + integrity sha1-QFE2rys+IYvEoZJiKLyRerGgrcc= + dependencies: + "@babel/helper-annotate-as-pure" "^7.10.4" + "@babel/helper-define-map" "^7.10.4" + "@babel/helper-function-name" "^7.10.4" + "@babel/helper-optimise-call-expression" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-replace-supers" "^7.10.4" + "@babel/helper-split-export-declaration" "^7.10.4" globals "^11.1.0" -"@babel/plugin-transform-computed-properties@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-computed-properties/download/@babel/plugin-transform-computed-properties-7.8.3.tgz#96d0d28b7f7ce4eb5b120bb2e0e943343c86f81b" - integrity sha1-ltDSi3985OtbEguy4OlDNDyG+Bs= +"@babel/plugin-transform-computed-properties@^7.10.4": + version "7.10.4" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-computed-properties/download/@babel/plugin-transform-computed-properties-7.10.4.tgz#9ded83a816e82ded28d52d4b4ecbdd810cdfc0eb" + integrity sha1-ne2DqBboLe0o1S1LTsvdgQzfwOs= dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-destructuring@^7.8.3", "@babel/plugin-transform-destructuring@^7.8.8": - version "7.8.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.8.8.tgz#fadb2bc8e90ccaf5658de6f8d4d22ff6272a2f4b" - integrity sha512-eRJu4Vs2rmttFCdhPUM3bV0Yo/xPSdPw6ML9KHs/bjB4bLA5HXlbvYXPOD5yASodGod+krjYx21xm1QmL8dCJQ== +"@babel/plugin-transform-destructuring@^7.10.4", "@babel/plugin-transform-destructuring@^7.8.8": + version "7.10.4" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-destructuring/download/@babel/plugin-transform-destructuring-7.10.4.tgz#70ddd2b3d1bea83d01509e9bb25ddb3a74fc85e5" + integrity sha1-cN3Ss9G+qD0BUJ6bsl3bOnT8heU= dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-dotall-regex@^7.4.4", "@babel/plugin-transform-dotall-regex@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-dotall-regex/download/@babel/plugin-transform-dotall-regex-7.8.3.tgz#c3c6ec5ee6125c6993c5cbca20dc8621a9ea7a6e" - integrity sha1-w8bsXuYSXGmTxcvKINyGIanqem4= +"@babel/plugin-transform-dotall-regex@^7.10.4", "@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.10.4" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-dotall-regex/download/@babel/plugin-transform-dotall-regex-7.10.4.tgz#469c2062105c1eb6a040eaf4fac4b488078395ee" + integrity sha1-RpwgYhBcHragQOr0+sS0iAeDle4= dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-create-regexp-features-plugin" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-duplicate-keys@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-duplicate-keys/download/@babel/plugin-transform-duplicate-keys-7.8.3.tgz#8d12df309aa537f272899c565ea1768e286e21f1" - integrity sha1-jRLfMJqlN/JyiZxWXqF2jihuIfE= +"@babel/plugin-transform-duplicate-keys@^7.10.4": + version "7.10.4" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-duplicate-keys/download/@babel/plugin-transform-duplicate-keys-7.10.4.tgz#697e50c9fee14380fe843d1f306b295617431e47" + integrity sha1-aX5Qyf7hQ4D+hD0fMGspVhdDHkc= dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-exponentiation-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-exponentiation-operator/download/@babel/plugin-transform-exponentiation-operator-7.8.3.tgz#581a6d7f56970e06bf51560cd64f5e947b70d7b7" - integrity sha1-WBptf1aXDga/UVYM1k9elHtw17c= +"@babel/plugin-transform-exponentiation-operator@^7.10.4": + version "7.10.4" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-exponentiation-operator/download/@babel/plugin-transform-exponentiation-operator-7.10.4.tgz?cache=0&sync_timestamp=1593522848226&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-exponentiation-operator%2Fdownload%2F%40babel%2Fplugin-transform-exponentiation-operator-7.10.4.tgz#5ae338c57f8cf4001bdb35607ae66b92d665af2e" + integrity sha1-WuM4xX+M9AAb2zVgeuZrktZlry4= dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-for-of@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.9.0.tgz#0f260e27d3e29cd1bb3128da5e76c761aa6c108e" - integrity sha512-lTAnWOpMwOXpyDx06N+ywmF3jNbafZEqZ96CGYabxHrxNX8l5ny7dt4bK/rGwAh9utyP2b2Hv7PlZh1AAS54FQ== +"@babel/plugin-transform-for-of@^7.10.4": + version "7.10.4" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-for-of/download/@babel/plugin-transform-for-of-7.10.4.tgz#c08892e8819d3a5db29031b115af511dbbfebae9" + integrity sha1-wIiS6IGdOl2ykDGxFa9RHbv+uuk= dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-function-name@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-function-name/download/@babel/plugin-transform-function-name-7.8.3.tgz#279373cb27322aaad67c2683e776dfc47196ed8b" - integrity sha1-J5NzyycyKqrWfCaD53bfxHGW7Ys= +"@babel/plugin-transform-function-name@^7.10.4": + version "7.10.4" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-function-name/download/@babel/plugin-transform-function-name-7.10.4.tgz#6a467880e0fc9638514ba369111811ddbe2644b7" + integrity sha1-akZ4gOD8ljhRS6NpERgR3b4mRLc= dependencies: - "@babel/helper-function-name" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-function-name" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-literals@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-literals/download/@babel/plugin-transform-literals-7.8.3.tgz#aef239823d91994ec7b68e55193525d76dbd5dc1" - integrity sha1-rvI5gj2RmU7Hto5VGTUl1229XcE= +"@babel/plugin-transform-literals@^7.10.4": + version "7.10.4" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-literals/download/@babel/plugin-transform-literals-7.10.4.tgz#9f42ba0841100a135f22712d0e391c462f571f3c" + integrity sha1-n0K6CEEQChNfInEtDjkcRi9XHzw= dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-member-expression-literals@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-member-expression-literals/download/@babel/plugin-transform-member-expression-literals-7.8.3.tgz#963fed4b620ac7cbf6029c755424029fa3a40410" - integrity sha1-lj/tS2IKx8v2Apx1VCQCn6OkBBA= +"@babel/plugin-transform-member-expression-literals@^7.10.4": + version "7.10.4" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-member-expression-literals/download/@babel/plugin-transform-member-expression-literals-7.10.4.tgz?cache=0&sync_timestamp=1593522925001&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-member-expression-literals%2Fdownload%2F%40babel%2Fplugin-transform-member-expression-literals-7.10.4.tgz#b1ec44fcf195afcb8db2c62cd8e551c881baf8b7" + integrity sha1-sexE/PGVr8uNssYs2OVRyIG6+Lc= dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-modules-amd@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.9.0.tgz#19755ee721912cf5bb04c07d50280af3484efef4" - integrity sha512-vZgDDF003B14O8zJy0XXLnPH4sg+9X5hFBBGN1V+B2rgrB+J2xIypSN6Rk9imB2hSTHQi5OHLrFWsZab1GMk+Q== +"@babel/plugin-transform-modules-amd@^7.10.4": + version "7.10.5" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-modules-amd/download/@babel/plugin-transform-modules-amd-7.10.5.tgz?cache=0&sync_timestamp=1594749164106&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-amd%2Fdownload%2F%40babel%2Fplugin-transform-modules-amd-7.10.5.tgz#1b9cddaf05d9e88b3aad339cb3e445c4f020a9b1" + integrity sha1-G5zdrwXZ6Is6rTOcs+RFxPAgqbE= dependencies: - "@babel/helper-module-transforms" "^7.9.0" - "@babel/helper-plugin-utils" "^7.8.3" - babel-plugin-dynamic-import-node "^2.3.0" + "@babel/helper-module-transforms" "^7.10.5" + "@babel/helper-plugin-utils" "^7.10.4" + babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-commonjs@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.9.0.tgz#e3e72f4cbc9b4a260e30be0ea59bdf5a39748940" - integrity sha512-qzlCrLnKqio4SlgJ6FMMLBe4bySNis8DFn1VkGmOcxG9gqEyPIOzeQrA//u0HAKrWpJlpZbZMPB1n/OPa4+n8g== +"@babel/plugin-transform-modules-commonjs@^7.10.4": + version "7.10.4" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-modules-commonjs/download/@babel/plugin-transform-modules-commonjs-7.10.4.tgz?cache=0&sync_timestamp=1593522846595&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-commonjs%2Fdownload%2F%40babel%2Fplugin-transform-modules-commonjs-7.10.4.tgz#66667c3eeda1ebf7896d41f1f16b17105a2fbca0" + integrity sha1-ZmZ8Pu2h6/eJbUHx8WsXEFovvKA= dependencies: - "@babel/helper-module-transforms" "^7.9.0" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-simple-access" "^7.8.3" - babel-plugin-dynamic-import-node "^2.3.0" + "@babel/helper-module-transforms" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-simple-access" "^7.10.4" + babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-systemjs@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.9.0.tgz#e9fd46a296fc91e009b64e07ddaa86d6f0edeb90" - integrity sha512-FsiAv/nao/ud2ZWy4wFacoLOm5uxl0ExSQ7ErvP7jpoihLR6Cq90ilOFyX9UXct3rbtKsAiZ9kFt5XGfPe/5SQ== +"@babel/plugin-transform-modules-systemjs@^7.10.4": + version "7.10.5" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-modules-systemjs/download/@babel/plugin-transform-modules-systemjs-7.10.5.tgz?cache=0&sync_timestamp=1594749163311&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-systemjs%2Fdownload%2F%40babel%2Fplugin-transform-modules-systemjs-7.10.5.tgz#6270099c854066681bae9e05f87e1b9cadbe8c85" + integrity sha1-YnAJnIVAZmgbrp4F+H4bnK2+jIU= dependencies: - "@babel/helper-hoist-variables" "^7.8.3" - "@babel/helper-module-transforms" "^7.9.0" - "@babel/helper-plugin-utils" "^7.8.3" - babel-plugin-dynamic-import-node "^2.3.0" + "@babel/helper-hoist-variables" "^7.10.4" + "@babel/helper-module-transforms" "^7.10.5" + "@babel/helper-plugin-utils" "^7.10.4" + babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-umd@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.9.0.tgz#e909acae276fec280f9b821a5f38e1f08b480697" - integrity sha512-uTWkXkIVtg/JGRSIABdBoMsoIeoHQHPTL0Y2E7xf5Oj7sLqwVsNXOkNk0VJc7vF0IMBsPeikHxFjGe+qmwPtTQ== +"@babel/plugin-transform-modules-umd@^7.10.4": + version "7.10.4" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-modules-umd/download/@babel/plugin-transform-modules-umd-7.10.4.tgz?cache=0&sync_timestamp=1593522846765&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-umd%2Fdownload%2F%40babel%2Fplugin-transform-modules-umd-7.10.4.tgz#9a8481fe81b824654b3a0b65da3df89f3d21839e" + integrity sha1-moSB/oG4JGVLOgtl2j34nz0hg54= dependencies: - "@babel/helper-module-transforms" "^7.9.0" - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-module-transforms" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-named-capturing-groups-regex@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-named-capturing-groups-regex/download/@babel/plugin-transform-named-capturing-groups-regex-7.8.3.tgz#a2a72bffa202ac0e2d0506afd0939c5ecbc48c6c" - integrity sha1-oqcr/6ICrA4tBQav0JOcXsvEjGw= +"@babel/plugin-transform-named-capturing-groups-regex@^7.10.4": + version "7.10.4" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-named-capturing-groups-regex/download/@babel/plugin-transform-named-capturing-groups-regex-7.10.4.tgz#78b4d978810b6f3bcf03f9e318f2fc0ed41aecb6" + integrity sha1-eLTZeIELbzvPA/njGPL8DtQa7LY= dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.8.3" + "@babel/helper-create-regexp-features-plugin" "^7.10.4" -"@babel/plugin-transform-new-target@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-new-target/download/@babel/plugin-transform-new-target-7.8.3.tgz#60cc2ae66d85c95ab540eb34babb6434d4c70c43" - integrity sha1-YMwq5m2FyVq1QOs0urtkNNTHDEM= +"@babel/plugin-transform-new-target@^7.10.4": + version "7.10.4" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-new-target/download/@babel/plugin-transform-new-target-7.10.4.tgz?cache=0&sync_timestamp=1593521205540&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-new-target%2Fdownload%2F%40babel%2Fplugin-transform-new-target-7.10.4.tgz#9097d753cb7b024cb7381a3b2e52e9513a9c6888" + integrity sha1-kJfXU8t7Aky3OBo7LlLpUTqcaIg= dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-object-super@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-object-super/download/@babel/plugin-transform-object-super-7.8.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-object-super%2Fdownload%2F%40babel%2Fplugin-transform-object-super-7.8.3.tgz#ebb6a1e7a86ffa96858bd6ac0102d65944261725" - integrity sha1-67ah56hv+paFi9asAQLWWUQmFyU= +"@babel/plugin-transform-object-super@^7.10.4": + version "7.10.4" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-object-super/download/@babel/plugin-transform-object-super-7.10.4.tgz#d7146c4d139433e7a6526f888c667e314a093894" + integrity sha1-1xRsTROUM+emUm+IjGZ+MUoJOJQ= dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-replace-supers" "^7.8.3" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-replace-supers" "^7.10.4" -"@babel/plugin-transform-parameters@^7.8.7": - version "7.9.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.9.3.tgz#3028d0cc20ddc733166c6e9c8534559cee09f54a" - integrity sha512-fzrQFQhp7mIhOzmOtPiKffvCYQSK10NR8t6BBz2yPbeUHb9OLW8RZGtgDRBn8z2hGcwvKDL3vC7ojPTLNxmqEg== +"@babel/plugin-transform-parameters@^7.10.4": + version "7.10.5" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-parameters/download/@babel/plugin-transform-parameters-7.10.5.tgz#59d339d58d0b1950435f4043e74e2510005e2c4a" + integrity sha1-WdM51Y0LGVBDX0BD504lEABeLEo= dependencies: - "@babel/helper-get-function-arity" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-get-function-arity" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-property-literals@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-property-literals/download/@babel/plugin-transform-property-literals-7.8.3.tgz#33194300d8539c1ed28c62ad5087ba3807b98263" - integrity sha1-MxlDANhTnB7SjGKtUIe6OAe5gmM= +"@babel/plugin-transform-property-literals@^7.10.4": + version "7.10.4" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-property-literals/download/@babel/plugin-transform-property-literals-7.10.4.tgz?cache=0&sync_timestamp=1593522925254&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-property-literals%2Fdownload%2F%40babel%2Fplugin-transform-property-literals-7.10.4.tgz#f6fe54b6590352298785b83edd815d214c42e3c0" + integrity sha1-9v5UtlkDUimHhbg+3YFdIUxC48A= dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-regenerator@^7.8.7": - version "7.8.7" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.7.tgz#5e46a0dca2bee1ad8285eb0527e6abc9c37672f8" - integrity sha512-TIg+gAl4Z0a3WmD3mbYSk+J9ZUH6n/Yc57rtKRnlA/7rcCvpekHXe0CMZHP1gYp7/KLe9GHTuIba0vXmls6drA== +"@babel/plugin-transform-regenerator@^7.10.4", "@babel/plugin-transform-regenerator@^7.8.7": + version "7.10.4" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-regenerator/download/@babel/plugin-transform-regenerator-7.10.4.tgz?cache=0&sync_timestamp=1593521089707&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-regenerator%2Fdownload%2F%40babel%2Fplugin-transform-regenerator-7.10.4.tgz#2015e59d839074e76838de2159db421966fd8b63" + integrity sha1-IBXlnYOQdOdoON4hWdtCGWb9i2M= dependencies: regenerator-transform "^0.14.2" -"@babel/plugin-transform-reserved-words@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-reserved-words/download/@babel/plugin-transform-reserved-words-7.8.3.tgz#9a0635ac4e665d29b162837dd3cc50745dfdf1f5" - integrity sha1-mgY1rE5mXSmxYoN908xQdF398fU= +"@babel/plugin-transform-reserved-words@^7.10.4": + version "7.10.4" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-reserved-words/download/@babel/plugin-transform-reserved-words-7.10.4.tgz?cache=0&sync_timestamp=1593522924889&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-reserved-words%2Fdownload%2F%40babel%2Fplugin-transform-reserved-words-7.10.4.tgz#8f2682bcdcef9ed327e1b0861585d7013f8a54dd" + integrity sha1-jyaCvNzvntMn4bCGFYXXAT+KVN0= dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-transform-runtime@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.9.0.tgz#45468c0ae74cc13204e1d3b1f4ce6ee83258af0b" - integrity sha512-pUu9VSf3kI1OqbWINQ7MaugnitRss1z533436waNXp+0N3ur3zfut37sXiQMxkuCF4VUjwZucen/quskCh7NHw== + version "7.10.5" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-runtime/download/@babel/plugin-transform-runtime-7.10.5.tgz?cache=0&sync_timestamp=1594750872068&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-runtime%2Fdownload%2F%40babel%2Fplugin-transform-runtime-7.10.5.tgz#3b39b7b24830e0c2d8ff7a4489fe5cf99fbace86" + integrity sha1-Ozm3skgw4MLY/3pEif5c+Z+6zoY= dependencies: - "@babel/helper-module-imports" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-module-imports" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" resolve "^1.8.1" semver "^5.5.1" -"@babel/plugin-transform-shorthand-properties@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-shorthand-properties/download/@babel/plugin-transform-shorthand-properties-7.8.3.tgz#28545216e023a832d4d3a1185ed492bcfeac08c8" - integrity sha1-KFRSFuAjqDLU06EYXtSSvP6sCMg= +"@babel/plugin-transform-shorthand-properties@^7.10.4": + version "7.10.4" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-shorthand-properties/download/@babel/plugin-transform-shorthand-properties-7.10.4.tgz?cache=0&sync_timestamp=1593522925435&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-shorthand-properties%2Fdownload%2F%40babel%2Fplugin-transform-shorthand-properties-7.10.4.tgz#9fd25ec5cdd555bb7f473e5e6ee1c971eede4dd6" + integrity sha1-n9Jexc3VVbt/Rz5ebuHJce7eTdY= dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-spread@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-spread/download/@babel/plugin-transform-spread-7.8.3.tgz#9c8ffe8170fdfb88b114ecb920b82fb6e95fe5e8" - integrity sha1-nI/+gXD9+4ixFOy5ILgvtulf5eg= +"@babel/plugin-transform-spread@^7.10.4": + version "7.10.4" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-spread/download/@babel/plugin-transform-spread-7.10.4.tgz#4e2c85ea0d6abaee1b24dcfbbae426fe8d674cff" + integrity sha1-TiyF6g1quu4bJNz7uuQm/o1nTP8= dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-sticky-regex@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-sticky-regex/download/@babel/plugin-transform-sticky-regex-7.8.3.tgz#be7a1290f81dae767475452199e1f76d6175b100" - integrity sha1-vnoSkPgdrnZ0dUUhmeH3bWF1sQA= +"@babel/plugin-transform-sticky-regex@^7.10.4": + version "7.10.4" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-sticky-regex/download/@babel/plugin-transform-sticky-regex-7.10.4.tgz?cache=0&sync_timestamp=1593522926947&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-sticky-regex%2Fdownload%2F%40babel%2Fplugin-transform-sticky-regex-7.10.4.tgz#8f3889ee8657581130a29d9cc91d7c73b7c4a28d" + integrity sha1-jziJ7oZXWBEwop2cyR18c7fEoo0= dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/helper-regex" "^7.8.3" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-regex" "^7.10.4" -"@babel/plugin-transform-template-literals@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-template-literals/download/@babel/plugin-transform-template-literals-7.8.3.tgz#7bfa4732b455ea6a43130adc0ba767ec0e402a80" - integrity sha1-e/pHMrRV6mpDEwrcC6dn7A5AKoA= +"@babel/plugin-transform-template-literals@^7.10.4": + version "7.10.5" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-template-literals/download/@babel/plugin-transform-template-literals-7.10.5.tgz#78bc5d626a6642db3312d9d0f001f5e7639fde8c" + integrity sha1-eLxdYmpmQtszEtnQ8AH152Of3ow= dependencies: - "@babel/helper-annotate-as-pure" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-annotate-as-pure" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-typeof-symbol@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.4.tgz#ede4062315ce0aaf8a657a920858f1a2f35fc412" - integrity sha512-2QKyfjGdvuNfHsb7qnBBlKclbD4CfshH2KvDabiijLMGXPHJXGxtDzwIF7bQP+T0ysw8fYTtxPafgfs/c1Lrqg== +"@babel/plugin-transform-typeof-symbol@^7.10.4": + version "7.10.4" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-typeof-symbol/download/@babel/plugin-transform-typeof-symbol-7.10.4.tgz#9509f1a7eec31c4edbffe137c16cc33ff0bc5bfc" + integrity sha1-lQnxp+7DHE7b/+E3wWzDP/C8W/w= dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-unicode-regex@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-unicode-regex/download/@babel/plugin-transform-unicode-regex-7.8.3.tgz#0cef36e3ba73e5c57273effb182f46b91a1ecaad" - integrity sha1-DO8247pz5cVyc+/7GC9GuRoeyq0= +"@babel/plugin-transform-unicode-escapes@^7.10.4": + version "7.10.4" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-unicode-escapes/download/@babel/plugin-transform-unicode-escapes-7.10.4.tgz#feae523391c7651ddac115dae0a9d06857892007" + integrity sha1-/q5SM5HHZR3awRXa4KnQaFeJIAc= + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-transform-unicode-regex@^7.10.4": + version "7.10.4" + resolved "https://registry.npm.taobao.org/@babel/plugin-transform-unicode-regex/download/@babel/plugin-transform-unicode-regex-7.10.4.tgz#e56d71f9282fac6db09c82742055576d5e6d80a8" + integrity sha1-5W1x+SgvrG2wnIJ0IFVXbV5tgKg= dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-create-regexp-features-plugin" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" "@babel/preset-env@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.9.0.tgz#a5fc42480e950ae8f5d9f8f2bbc03f52722df3a8" - integrity sha512-712DeRXT6dyKAM/FMbQTV/FvRCms2hPCx+3weRjZ8iQVQWZejWWk1wwG6ViWMyqb/ouBbGOl5b6aCk0+j1NmsQ== - dependencies: - "@babel/compat-data" "^7.9.0" - "@babel/helper-compilation-targets" "^7.8.7" - "@babel/helper-module-imports" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" - "@babel/plugin-proposal-async-generator-functions" "^7.8.3" - "@babel/plugin-proposal-dynamic-import" "^7.8.3" - "@babel/plugin-proposal-json-strings" "^7.8.3" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-proposal-numeric-separator" "^7.8.3" - "@babel/plugin-proposal-object-rest-spread" "^7.9.0" - "@babel/plugin-proposal-optional-catch-binding" "^7.8.3" - "@babel/plugin-proposal-optional-chaining" "^7.9.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.8.3" + version "7.10.4" + resolved "https://registry.npm.taobao.org/@babel/preset-env/download/@babel/preset-env-7.10.4.tgz?cache=0&sync_timestamp=1593521234560&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fpreset-env%2Fdownload%2F%40babel%2Fpreset-env-7.10.4.tgz#fbf57f9a803afd97f4f32e4f798bb62e4b2bef5f" + integrity sha1-+/V/moA6/Zf08y5PeYu2Lksr718= + dependencies: + "@babel/compat-data" "^7.10.4" + "@babel/helper-compilation-targets" "^7.10.4" + "@babel/helper-module-imports" "^7.10.4" + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-proposal-async-generator-functions" "^7.10.4" + "@babel/plugin-proposal-class-properties" "^7.10.4" + "@babel/plugin-proposal-dynamic-import" "^7.10.4" + "@babel/plugin-proposal-json-strings" "^7.10.4" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.10.4" + "@babel/plugin-proposal-numeric-separator" "^7.10.4" + "@babel/plugin-proposal-object-rest-spread" "^7.10.4" + "@babel/plugin-proposal-optional-catch-binding" "^7.10.4" + "@babel/plugin-proposal-optional-chaining" "^7.10.4" + "@babel/plugin-proposal-private-methods" "^7.10.4" + "@babel/plugin-proposal-unicode-property-regex" "^7.10.4" "@babel/plugin-syntax-async-generators" "^7.8.0" + "@babel/plugin-syntax-class-properties" "^7.10.4" "@babel/plugin-syntax-dynamic-import" "^7.8.0" "@babel/plugin-syntax-json-strings" "^7.8.0" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" - "@babel/plugin-syntax-numeric-separator" "^7.8.0" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" "@babel/plugin-syntax-object-rest-spread" "^7.8.0" "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" "@babel/plugin-syntax-optional-chaining" "^7.8.0" - "@babel/plugin-syntax-top-level-await" "^7.8.3" - "@babel/plugin-transform-arrow-functions" "^7.8.3" - "@babel/plugin-transform-async-to-generator" "^7.8.3" - "@babel/plugin-transform-block-scoped-functions" "^7.8.3" - "@babel/plugin-transform-block-scoping" "^7.8.3" - "@babel/plugin-transform-classes" "^7.9.0" - "@babel/plugin-transform-computed-properties" "^7.8.3" - "@babel/plugin-transform-destructuring" "^7.8.3" - "@babel/plugin-transform-dotall-regex" "^7.8.3" - "@babel/plugin-transform-duplicate-keys" "^7.8.3" - "@babel/plugin-transform-exponentiation-operator" "^7.8.3" - "@babel/plugin-transform-for-of" "^7.9.0" - "@babel/plugin-transform-function-name" "^7.8.3" - "@babel/plugin-transform-literals" "^7.8.3" - "@babel/plugin-transform-member-expression-literals" "^7.8.3" - "@babel/plugin-transform-modules-amd" "^7.9.0" - "@babel/plugin-transform-modules-commonjs" "^7.9.0" - "@babel/plugin-transform-modules-systemjs" "^7.9.0" - "@babel/plugin-transform-modules-umd" "^7.9.0" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.8.3" - "@babel/plugin-transform-new-target" "^7.8.3" - "@babel/plugin-transform-object-super" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.8.7" - "@babel/plugin-transform-property-literals" "^7.8.3" - "@babel/plugin-transform-regenerator" "^7.8.7" - "@babel/plugin-transform-reserved-words" "^7.8.3" - "@babel/plugin-transform-shorthand-properties" "^7.8.3" - "@babel/plugin-transform-spread" "^7.8.3" - "@babel/plugin-transform-sticky-regex" "^7.8.3" - "@babel/plugin-transform-template-literals" "^7.8.3" - "@babel/plugin-transform-typeof-symbol" "^7.8.4" - "@babel/plugin-transform-unicode-regex" "^7.8.3" + "@babel/plugin-syntax-top-level-await" "^7.10.4" + "@babel/plugin-transform-arrow-functions" "^7.10.4" + "@babel/plugin-transform-async-to-generator" "^7.10.4" + "@babel/plugin-transform-block-scoped-functions" "^7.10.4" + "@babel/plugin-transform-block-scoping" "^7.10.4" + "@babel/plugin-transform-classes" "^7.10.4" + "@babel/plugin-transform-computed-properties" "^7.10.4" + "@babel/plugin-transform-destructuring" "^7.10.4" + "@babel/plugin-transform-dotall-regex" "^7.10.4" + "@babel/plugin-transform-duplicate-keys" "^7.10.4" + "@babel/plugin-transform-exponentiation-operator" "^7.10.4" + "@babel/plugin-transform-for-of" "^7.10.4" + "@babel/plugin-transform-function-name" "^7.10.4" + "@babel/plugin-transform-literals" "^7.10.4" + "@babel/plugin-transform-member-expression-literals" "^7.10.4" + "@babel/plugin-transform-modules-amd" "^7.10.4" + "@babel/plugin-transform-modules-commonjs" "^7.10.4" + "@babel/plugin-transform-modules-systemjs" "^7.10.4" + "@babel/plugin-transform-modules-umd" "^7.10.4" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.10.4" + "@babel/plugin-transform-new-target" "^7.10.4" + "@babel/plugin-transform-object-super" "^7.10.4" + "@babel/plugin-transform-parameters" "^7.10.4" + "@babel/plugin-transform-property-literals" "^7.10.4" + "@babel/plugin-transform-regenerator" "^7.10.4" + "@babel/plugin-transform-reserved-words" "^7.10.4" + "@babel/plugin-transform-shorthand-properties" "^7.10.4" + "@babel/plugin-transform-spread" "^7.10.4" + "@babel/plugin-transform-sticky-regex" "^7.10.4" + "@babel/plugin-transform-template-literals" "^7.10.4" + "@babel/plugin-transform-typeof-symbol" "^7.10.4" + "@babel/plugin-transform-unicode-escapes" "^7.10.4" + "@babel/plugin-transform-unicode-regex" "^7.10.4" "@babel/preset-modules" "^0.1.3" - "@babel/types" "^7.9.0" - browserslist "^4.9.1" + "@babel/types" "^7.10.4" + browserslist "^4.12.0" core-js-compat "^3.6.2" invariant "^2.2.2" levenary "^1.1.1" @@ -764,8 +748,8 @@ "@babel/preset-modules@^0.1.3": version "0.1.3" - resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.3.tgz#13242b53b5ef8c883c3cf7dddd55b36ce80fbc72" - integrity sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg== + resolved "https://registry.npm.taobao.org/@babel/preset-modules/download/@babel/preset-modules-0.1.3.tgz#13242b53b5ef8c883c3cf7dddd55b36ce80fbc72" + integrity sha1-EyQrU7XvjIg8PPfd3VWzbOgPvHI= dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" @@ -773,77 +757,44 @@ "@babel/types" "^7.4.4" esutils "^2.0.2" -"@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2": - version "7.9.2" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.9.2.tgz#d90df0583a3a252f09aaa619665367bae518db06" - integrity sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q== +"@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2": + version "7.10.5" + resolved "https://registry.npm.taobao.org/@babel/runtime/download/@babel/runtime-7.10.5.tgz?cache=0&sync_timestamp=1594749160928&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.10.5.tgz#303d8bd440ecd5a491eae6117fd3367698674c5c" + integrity sha1-MD2L1EDs1aSR6uYRf9M2dphnTFw= dependencies: regenerator-runtime "^0.13.4" -"@babel/template@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.8.3.tgz#e02ad04fe262a657809327f578056ca15fd4d1b8" - integrity sha1-4CrQT+JipleAkyf1eAVsoV/U0bg= - dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/parser" "^7.8.3" - "@babel/types" "^7.8.3" - -"@babel/template@^7.8.6": - version "7.8.6" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.8.6.tgz#86b22af15f828dfb086474f964dcc3e39c43ce2b" - integrity sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg== - dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/parser" "^7.8.6" - "@babel/types" "^7.8.6" - -"@babel/traverse@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/traverse/download/@babel/traverse-7.8.3.tgz#a826215b011c9b4f73f3a893afbc05151358bf9a" - integrity sha1-qCYhWwEcm09z86iTr7wFFRNYv5o= - dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/generator" "^7.8.3" - "@babel/helper-function-name" "^7.8.3" - "@babel/helper-split-export-declaration" "^7.8.3" - "@babel/parser" "^7.8.3" - "@babel/types" "^7.8.3" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.13" - -"@babel/traverse@^7.8.6", "@babel/traverse@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.9.0.tgz#d3882c2830e513f4fe4cec9fe76ea1cc78747892" - integrity sha512-jAZQj0+kn4WTHO5dUZkZKhbFrqZE7K5LAQ5JysMnmvGij+wOdr+8lWqPeW0BcF4wFwrEXXtdGO7wcV6YPJcf3w== - dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/generator" "^7.9.0" - "@babel/helper-function-name" "^7.8.3" - "@babel/helper-split-export-declaration" "^7.8.3" - "@babel/parser" "^7.9.0" - "@babel/types" "^7.9.0" +"@babel/template@^7.10.4": + version "7.10.4" + resolved "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.10.4.tgz#3251996c4200ebc71d1a8fc405fba940f36ba278" + integrity sha1-MlGZbEIA68cdGo/EBfupQPNrong= + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/parser" "^7.10.4" + "@babel/types" "^7.10.4" + +"@babel/traverse@^7.10.4", "@babel/traverse@^7.10.5": + version "7.10.5" + resolved "https://registry.npm.taobao.org/@babel/traverse/download/@babel/traverse-7.10.5.tgz?cache=0&sync_timestamp=1594750808293&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.10.5.tgz#77ce464f5b258be265af618d8fddf0536f20b564" + integrity sha1-d85GT1sli+Jlr2GNj93wU28gtWQ= + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/generator" "^7.10.5" + "@babel/helper-function-name" "^7.10.4" + "@babel/helper-split-export-declaration" "^7.10.4" + "@babel/parser" "^7.10.5" + "@babel/types" "^7.10.5" debug "^4.1.0" globals "^11.1.0" - lodash "^4.17.13" + lodash "^4.17.19" -"@babel/types@^7.4.4", "@babel/types@^7.8.6", "@babel/types@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.9.0.tgz#00b064c3df83ad32b2dbf5ff07312b15c7f1efb5" - integrity sha512-BS9JKfXkzzJl8RluW4JGknzpiUV7ZrvTayM6yfqLTVBEnFtyowVIOu6rqxRd5cVO6yGoWf4T8u8dgK9oB+GCng== +"@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.4.4": + version "7.10.5" + resolved "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.10.5.tgz?cache=0&sync_timestamp=1594750805733&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.10.5.tgz#d88ae7e2fde86bfbfe851d4d81afa70a997b5d15" + integrity sha1-2Irn4v3oa/v+hR1Nga+nCpl7XRU= dependencies: - "@babel/helper-validator-identifier" "^7.9.0" - lodash "^4.17.13" - to-fast-properties "^2.0.0" - -"@babel/types@^7.8.3": - version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.8.3.tgz#5a383dffa5416db1b73dedffd311ffd0788fb31c" - integrity sha1-Wjg9/6VBbbG3Pe3/0xH/0HiPsxw= - dependencies: - esutils "^2.0.2" - lodash "^4.17.13" + "@babel/helper-validator-identifier" "^7.10.4" + lodash "^4.17.19" to-fast-properties "^2.0.0" "@csstools/convert-colors@^1.4.0": @@ -852,34 +803,34 @@ integrity sha1-rUldxBsS511YjG24uYNPCPoTHrc= "@fortawesome/fontawesome-free@^5.13.0": - version "5.13.0" - resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-5.13.0.tgz#fcb113d1aca4b471b709e8c9c168674fbd6e06d9" - integrity sha512-xKOeQEl5O47GPZYIMToj6uuA2syyFlq9EMSl2ui0uytjY9xbe8XS0pexNWmxrdcCyNGyDmLyYw5FtKsalBUeOg== + version "5.14.0" + resolved "https://registry.npm.taobao.org/@fortawesome/fontawesome-free/download/@fortawesome/fontawesome-free-5.14.0.tgz#a371e91029ebf265015e64f81bfbf7d228c9681f" + integrity sha1-o3HpECnr8mUBXmT4G/v30ijJaB8= "@fullcalendar/bootstrap@^4.4.0": - version "4.4.0" - resolved "https://registry.yarnpkg.com/@fullcalendar/bootstrap/-/bootstrap-4.4.0.tgz#4d77d19b4e2d3aaf518f1ade187d8e4db341d2a1" - integrity sha512-2YYM2tPhTwNtYFBcIm4Cf/72pJ3qzRRmzGZx13mJeVYjbSOe1rn/tquff/mMDPPtfCZ4+XqXOLCzAeW7eWHGgw== + version "4.4.2" + resolved "https://registry.npm.taobao.org/@fullcalendar/bootstrap/download/@fullcalendar/bootstrap-4.4.2.tgz#b396aa39fd2e49c1bfb68deb677df5a5544bb924" + integrity sha1-s5aqOf0uScG/to3rZ331pVRLuSQ= "@fullcalendar/core@^4.4.0": - version "4.4.0" - resolved "https://registry.yarnpkg.com/@fullcalendar/core/-/core-4.4.0.tgz#79dbc0cca836ce628a07e739a456da11ff141373" - integrity sha512-PC4mmXHJHAlXmUEmZVnePyA8yYCOBdxBNq8yjJqedEtT1X0x36yTFz/Y0Ux6bniICZDqYtk0xoxe6jaxi++e0g== + version "4.4.2" + resolved "https://registry.npm.taobao.org/@fullcalendar/core/download/@fullcalendar/core-4.4.2.tgz#864abe98cce4497a163c01a8fc30389f15d3d4e1" + integrity sha1-hkq+mMzkSXoWPAGo/DA4nxXT1OE= "@fullcalendar/daygrid@^4.4.0", "@fullcalendar/daygrid@~4.4.0": - version "4.4.0" - resolved "https://registry.yarnpkg.com/@fullcalendar/daygrid/-/daygrid-4.4.0.tgz#25fcae7226b62688b4e086a611582e72253b5229" - integrity sha512-pDfvL0XZxKHTZ4VFOmwaYe3LmuABEIZsEopeqQ8y5O6BDen9KCbJqgHeCI8FpASSBd6bNlUx7il7EHdSoHhgIw== + version "4.4.2" + resolved "https://registry.npm.taobao.org/@fullcalendar/daygrid/download/@fullcalendar/daygrid-4.4.2.tgz#568bfb3c7cc97f83b57cf3aef0fa3ed1bf6eda16" + integrity sha1-Vov7PHzJf4O1fPOu8Po+0b9u2hY= "@fullcalendar/interaction@^4.4.0": - version "4.4.0" - resolved "https://registry.yarnpkg.com/@fullcalendar/interaction/-/interaction-4.4.0.tgz#fc8f8baaf5cb3533d6ce0a684d6f9952a4430685" - integrity sha512-nGu0ZzYYlNpIhqfyv3JupteWKFETs3W1MzbRJcEZkuPncn4BooEi4A2blgHfacHAmmpaNkT84tAmhzi734MFBA== + version "4.4.2" + resolved "https://registry.npm.taobao.org/@fullcalendar/interaction/download/@fullcalendar/interaction-4.4.2.tgz#0a6be06538f843b6f0f4e9b4de87a5e3ec3629fb" + integrity sha1-CmvgZTj4Q7bw9Om03oel4+w2Kfs= "@fullcalendar/timegrid@^4.4.0": - version "4.4.0" - resolved "https://registry.yarnpkg.com/@fullcalendar/timegrid/-/timegrid-4.4.0.tgz#c5837cfd676afff0d95535ac4cc054ed65965976" - integrity sha512-QwJ9oM87/ZTbXaE8PMIVp20GPtVCFmroaeR1GydJ6BKYtbxG/nsaSv7RhqvDa2jLjHaTWC2NjHo9hRfjQjtCZA== + version "4.4.2" + resolved "https://registry.npm.taobao.org/@fullcalendar/timegrid/download/@fullcalendar/timegrid-4.4.2.tgz#9d5b26204cd2b0928e7498c54f758a6d07b15191" + integrity sha1-nVsmIEzSsJKOdJjFT3WKbQexUZE= dependencies: "@fullcalendar/daygrid" "~4.4.0" @@ -888,57 +839,15 @@ resolved "https://registry.npm.taobao.org/@lgaitan/pace-progress/download/@lgaitan/pace-progress-1.0.7.tgz#c96fbbd9fd4cf528feed34ea0c8f9d8b3e98f0dd" integrity sha1-yW+72f1M9Sj+7TTqDI+diz6Y8N0= -"@npmcli/ci-detect@^1.0.0": - version "1.2.0" - resolved "https://registry.yarnpkg.com/@npmcli/ci-detect/-/ci-detect-1.2.0.tgz#0df142a1ac3bba6cbf2e9da1a6994cd898e32c95" - integrity sha512-JtktVH7ASBVIWsQTFlFpeOzhBJskvoBCTfeeRhhZy7ybATcUvwiwotZ8j5rkqUUyB69lIy/AvboiiiGBjYBKBA== - -"@npmcli/git@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-2.0.1.tgz#d7ecaa9c945de6bb1af5a7e6ea634771193c168b" - integrity sha512-hVatexiBtx71F01Ars38Hr5AFUGmJgHAfQtRlO5fJlnAawRGSXwEFgjB5i3XdUUmElZU/RXy7fefN02dZKxgPw== - dependencies: - "@npmcli/promise-spawn" "^1.1.0" - mkdirp "^1.0.3" - npm-pick-manifest "^6.0.0" - promise-inflight "^1.0.1" - promise-retry "^1.1.1" - unique-filename "^1.1.1" - which "^2.0.2" - -"@npmcli/installed-package-contents@^1.0.5": - version "1.0.5" - resolved "https://registry.yarnpkg.com/@npmcli/installed-package-contents/-/installed-package-contents-1.0.5.tgz#cc78565e55d9f14d46acf46a96f70934e516fa3d" - integrity sha512-aKIwguaaqb6ViwSOFytniGvLPb9SMCUm39TgM3SfUo7n0TxUMbwoXfpwyvQ4blm10lzbAwTsvjr7QZ85LvTi4A== - dependencies: - npm-bundled "^1.1.1" - npm-normalize-package-bin "^1.0.1" - read-package-json-fast "^1.1.1" - readdir-scoped-modules "^1.1.0" - -"@npmcli/move-file@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.0.1.tgz#de103070dac0f48ce49cf6693c23af59c0f70464" - integrity sha512-Uv6h1sT+0DrblvIrolFtbvM1FgWm+/sy4B3pvLp67Zys+thcukzS5ekn7HsZFGpWP4Q3fYJCljbWQE/XivMRLw== - dependencies: - mkdirp "^1.0.4" - -"@npmcli/promise-spawn@^1.1.0": - version "1.1.0" - resolved "https://registry.yarnpkg.com/@npmcli/promise-spawn/-/promise-spawn-1.1.0.tgz#660009a5c54209142ec7c469c190d212834b6087" - integrity sha512-FwbuYN9KXBkloLeIR3xRgI8dyOdfK/KzaJlChszNuwmUXD1lHXfLlSeo4n4KrKt2udIK9K9/TzlnyCA3ubM2fA== - dependencies: - infer-owner "^1.0.4" - "@rails/ujs@^6.0.3": version "6.0.3" resolved "https://registry.npm.taobao.org/@rails/ujs/download/@rails/ujs-6.0.3.tgz#e68a03278e30daea6a110aac5dfa33c60c53055d" integrity sha1-5ooDJ44w2upqEQqsXfozxgxTBV0= "@rails/webpacker@^5.0.1": - version "5.0.1" - resolved "https://registry.yarnpkg.com/@rails/webpacker/-/webpacker-5.0.1.tgz#f7bdb8d0b36e41aa2f219aad332f50194ad4fc46" - integrity sha512-r74Od+YO5OxkrePNLL9M3Mi3DQNPLSXkv+cGDdiFvTGeFc+VtI8j0sNGoulBMlEZFH8GVlb7LLy/FVLjPJq1/Q== + version "5.1.1" + resolved "https://registry.npm.taobao.org/@rails/webpacker/download/@rails/webpacker-5.1.1.tgz#3c937aa719e46341f037a3f37349ef58085950df" + integrity sha1-PJN6pxnkY0HwN6Pzc0nvWAhZUN8= dependencies: "@babel/core" "^7.9.0" "@babel/plugin-proposal-class-properties" "^7.8.3" @@ -979,76 +888,53 @@ webpack-cli "^3.3.11" webpack-sources "^1.4.3" -"@sindresorhus/is@^0.14.0": - version "0.14.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" - integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== - "@sweetalert2/theme-bootstrap-4@^3.1.4": - version "3.1.4" - resolved "https://registry.yarnpkg.com/@sweetalert2/theme-bootstrap-4/-/theme-bootstrap-4-3.1.4.tgz#93b72df6b7aeb6f52597670434cdd3283cfdbd27" - integrity sha512-F9ltvRbEP3CNyLCW3p0vmrDOOqZgSUvK5mLIQso7bJ/JnbVdVLiZ6GRnzdhzf5Rz6LO0U9YS++RWdpN+32UHjw== - -"@szmarczak/http-timer@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" - integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== - dependencies: - defer-to-connect "^1.0.1" - -"@tootallnate/once@1": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" - integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== + version "3.2.0" + resolved "https://registry.npm.taobao.org/@sweetalert2/theme-bootstrap-4/download/@sweetalert2/theme-bootstrap-4-3.2.0.tgz#9580fcefd7c624863e5a7cd35cb6b253e0ac8592" + integrity sha1-lYD879fGJIY+WnzTXLayU+CshZI= "@ttskch/select2-bootstrap4-theme@^1.3.2": - version "1.3.2" - resolved "https://registry.npm.taobao.org/@ttskch/select2-bootstrap4-theme/download/@ttskch/select2-bootstrap4-theme-1.3.2.tgz#c9e17e34fb2cfd9f41b8efe3584165ccbdd96969" - integrity sha1-yeF+NPss/Z9BuO/jWEFlzL3ZaWk= - -"@types/color-name@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" - integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== - -"@types/events@*": - version "3.0.0" - resolved "https://registry.npm.taobao.org/@types/events/download/@types/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" - integrity sha1-KGLz9Yqaf3w+eNefEw3U1xwlwqc= + version "1.4.0" + resolved "https://registry.npm.taobao.org/@ttskch/select2-bootstrap4-theme/download/@ttskch/select2-bootstrap4-theme-1.4.0.tgz#1e15ed14c5adbd6f86940811e195bde984aa9882" + integrity sha1-HhXtFMWtvW+GlAgR4ZW96YSqmII= "@types/glob@^7.1.1": - version "7.1.1" - resolved "https://registry.npm.taobao.org/@types/glob/download/@types/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575" - integrity sha1-qlmhxuP7xCHgfM0xqUTDDrpSFXU= + version "7.1.3" + resolved "https://registry.npm.taobao.org/@types/glob/download/@types/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183" + integrity sha1-5rqA82t9qtLGhazZJmOC5omFwYM= dependencies: - "@types/events" "*" "@types/minimatch" "*" "@types/node" "*" +"@types/json-schema@^7.0.4": + version "7.0.5" + resolved "https://registry.npm.taobao.org/@types/json-schema/download/@types/json-schema-7.0.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fjson-schema%2Fdownload%2F%40types%2Fjson-schema-7.0.5.tgz#dcce4430e64b443ba8945f0290fb564ad5bac6dd" + integrity sha1-3M5EMOZLRDuolF8CkPtWStW6xt0= + "@types/minimatch@*": version "3.0.3" - resolved "https://registry.npm.taobao.org/@types/minimatch/download/@types/minimatch-3.0.3.tgz?cache=0&sync_timestamp=1572464707542&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fminimatch%2Fdownload%2F%40types%2Fminimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" + resolved "https://registry.npm.taobao.org/@types/minimatch/download/@types/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" integrity sha1-PcoOPzOyAPx9ETnAzZbBJoyt/Z0= "@types/node@*": - version "13.1.6" - resolved "https://registry.npm.taobao.org/@types/node/download/@types/node-13.1.6.tgz?cache=0&sync_timestamp=1578585994687&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-13.1.6.tgz#076028d0b0400be8105b89a0a55550c86684ffec" - integrity sha1-B2Ao0LBAC+gQW4mgpVVQyGaE/+w= + version "14.0.23" + resolved "https://registry.npm.taobao.org/@types/node/download/@types/node-14.0.23.tgz?cache=0&sync_timestamp=1594655965952&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-14.0.23.tgz#676fa0883450ed9da0bb24156213636290892806" + integrity sha1-Z2+giDRQ7Z2guyQVYhNjYpCJKAY= "@types/parse-json@^4.0.0": version "4.0.0" - resolved "https://registry.npm.taobao.org/@types/parse-json/download/@types/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" + resolved "https://registry.npm.taobao.org/@types/parse-json/download/@types/parse-json-4.0.0.tgz?cache=0&sync_timestamp=1588201631592&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fparse-json%2Fdownload%2F%40types%2Fparse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" integrity sha1-L4u0QUNNFjs1+4/9zNcTiSf/uMA= "@types/q@^1.5.1": - version "1.5.2" - resolved "https://registry.npm.taobao.org/@types/q/download/@types/q-1.5.2.tgz#690a1475b84f2a884fd07cd797c00f5f31356ea8" - integrity sha1-aQoUdbhPKohP0HzXl8APXzE1bqg= + version "1.5.4" + resolved "https://registry.npm.taobao.org/@types/q/download/@types/q-1.5.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fq%2Fdownload%2F%40types%2Fq-1.5.4.tgz#15925414e0ad2cd765bfef58842f7e26a7accb24" + integrity sha1-FZJUFOCtLNdlv+9YhC9+JqesyyQ= "@webassemblyjs/ast@1.9.0": version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" - integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA== + resolved "https://registry.npm.taobao.org/@webassemblyjs/ast/download/@webassemblyjs/ast-1.9.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fast%2Fdownload%2F%40webassemblyjs%2Fast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" + integrity sha1-vYUGBLQEJFmlpBzX0zjL7Wle2WQ= dependencies: "@webassemblyjs/helper-module-context" "1.9.0" "@webassemblyjs/helper-wasm-bytecode" "1.9.0" @@ -1056,47 +942,47 @@ "@webassemblyjs/floating-point-hex-parser@1.9.0": version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" - integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== + resolved "https://registry.npm.taobao.org/@webassemblyjs/floating-point-hex-parser/download/@webassemblyjs/floating-point-hex-parser-1.9.0.tgz?cache=0&sync_timestamp=1580600186633&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Ffloating-point-hex-parser%2Fdownload%2F%40webassemblyjs%2Ffloating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" + integrity sha1-PD07Jxvd/ITesA9xNEQ4MR1S/7Q= "@webassemblyjs/helper-api-error@1.9.0": version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" - integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== + resolved "https://registry.npm.taobao.org/@webassemblyjs/helper-api-error/download/@webassemblyjs/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" + integrity sha1-ID9nbjM7lsnaLuqzzO8zxFkotqI= "@webassemblyjs/helper-buffer@1.9.0": version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" - integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== + resolved "https://registry.npm.taobao.org/@webassemblyjs/helper-buffer/download/@webassemblyjs/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" + integrity sha1-oUQtJpxf6yP8vJ73WdrDVH8p3gA= "@webassemblyjs/helper-code-frame@1.9.0": version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27" - integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA== + resolved "https://registry.npm.taobao.org/@webassemblyjs/helper-code-frame/download/@webassemblyjs/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27" + integrity sha1-ZH+Iks0gQ6gqwMjF51w28dkVnyc= dependencies: "@webassemblyjs/wast-printer" "1.9.0" "@webassemblyjs/helper-fsm@1.9.0": version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8" - integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== + resolved "https://registry.npm.taobao.org/@webassemblyjs/helper-fsm/download/@webassemblyjs/helper-fsm-1.9.0.tgz?cache=0&sync_timestamp=1580600184873&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-fsm%2Fdownload%2F%40webassemblyjs%2Fhelper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8" + integrity sha1-wFJWtxJEIUZx9LCOwQitY7cO3bg= "@webassemblyjs/helper-module-context@1.9.0": version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07" - integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g== + resolved "https://registry.npm.taobao.org/@webassemblyjs/helper-module-context/download/@webassemblyjs/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07" + integrity sha1-JdiIS3aDmHGgimxvgGw5ee9xLwc= dependencies: "@webassemblyjs/ast" "1.9.0" "@webassemblyjs/helper-wasm-bytecode@1.9.0": version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" - integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== + resolved "https://registry.npm.taobao.org/@webassemblyjs/helper-wasm-bytecode/download/@webassemblyjs/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" + integrity sha1-T+2L6sm4wU+MWLcNEk1UndH+V5A= "@webassemblyjs/helper-wasm-section@1.9.0": version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" - integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw== + resolved "https://registry.npm.taobao.org/@webassemblyjs/helper-wasm-section/download/@webassemblyjs/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" + integrity sha1-WkE41aYpK6GLBMWuSXF+QWeWU0Y= dependencies: "@webassemblyjs/ast" "1.9.0" "@webassemblyjs/helper-buffer" "1.9.0" @@ -1105,27 +991,27 @@ "@webassemblyjs/ieee754@1.9.0": version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" - integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg== + resolved "https://registry.npm.taobao.org/@webassemblyjs/ieee754/download/@webassemblyjs/ieee754-1.9.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fieee754%2Fdownload%2F%40webassemblyjs%2Fieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" + integrity sha1-Fceg+6roP7JhQ7us9tbfFwKtOeQ= dependencies: "@xtuc/ieee754" "^1.2.0" "@webassemblyjs/leb128@1.9.0": version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" - integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw== + resolved "https://registry.npm.taobao.org/@webassemblyjs/leb128/download/@webassemblyjs/leb128-1.9.0.tgz?cache=0&sync_timestamp=1580627709555&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fleb128%2Fdownload%2F%40webassemblyjs%2Fleb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" + integrity sha1-8Zygt2ptxVYjoJz/p2noOPoeHJU= dependencies: "@xtuc/long" "4.2.2" "@webassemblyjs/utf8@1.9.0": version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" - integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== + resolved "https://registry.npm.taobao.org/@webassemblyjs/utf8/download/@webassemblyjs/utf8-1.9.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Futf8%2Fdownload%2F%40webassemblyjs%2Futf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" + integrity sha1-BNM7Y2945qaBMifoJAL3Y3tiKas= "@webassemblyjs/wasm-edit@1.9.0": version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" - integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw== + resolved "https://registry.npm.taobao.org/@webassemblyjs/wasm-edit/download/@webassemblyjs/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" + integrity sha1-P+bXnT8PkiGDqoYALELdJWz+6c8= dependencies: "@webassemblyjs/ast" "1.9.0" "@webassemblyjs/helper-buffer" "1.9.0" @@ -1138,8 +1024,8 @@ "@webassemblyjs/wasm-gen@1.9.0": version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" - integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA== + resolved "https://registry.npm.taobao.org/@webassemblyjs/wasm-gen/download/@webassemblyjs/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" + integrity sha1-ULxw7Gje2OJ2OwGhQYv0NJGnpJw= dependencies: "@webassemblyjs/ast" "1.9.0" "@webassemblyjs/helper-wasm-bytecode" "1.9.0" @@ -1149,8 +1035,8 @@ "@webassemblyjs/wasm-opt@1.9.0": version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" - integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A== + resolved "https://registry.npm.taobao.org/@webassemblyjs/wasm-opt/download/@webassemblyjs/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" + integrity sha1-IhEYHlsxMmRDzIES658LkChyGmE= dependencies: "@webassemblyjs/ast" "1.9.0" "@webassemblyjs/helper-buffer" "1.9.0" @@ -1159,8 +1045,8 @@ "@webassemblyjs/wasm-parser@1.9.0": version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" - integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA== + resolved "https://registry.npm.taobao.org/@webassemblyjs/wasm-parser/download/@webassemblyjs/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" + integrity sha1-nUjkSCbfSmWYKUqmyHRp1kL/9l4= dependencies: "@webassemblyjs/ast" "1.9.0" "@webassemblyjs/helper-api-error" "1.9.0" @@ -1171,8 +1057,8 @@ "@webassemblyjs/wast-parser@1.9.0": version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914" - integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw== + resolved "https://registry.npm.taobao.org/@webassemblyjs/wast-parser/download/@webassemblyjs/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914" + integrity sha1-MDERXXmsW9JhVWzsw/qQo+9FGRQ= dependencies: "@webassemblyjs/ast" "1.9.0" "@webassemblyjs/floating-point-hex-parser" "1.9.0" @@ -1183,8 +1069,8 @@ "@webassemblyjs/wast-printer@1.9.0": version "1.9.0" - resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" - integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA== + resolved "https://registry.npm.taobao.org/@webassemblyjs/wast-printer/download/@webassemblyjs/wast-printer-1.9.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwast-printer%2Fdownload%2F%40webassemblyjs%2Fwast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" + integrity sha1-STXVTIX+9jewDOn1I3dFHQDUeJk= dependencies: "@webassemblyjs/ast" "1.9.0" "@webassemblyjs/wast-parser" "1.9.0" @@ -1223,29 +1109,24 @@ acorn-node@^1.3.0: xtend "^4.0.2" acorn-walk@^7.0.0: - version "7.0.0" - resolved "https://registry.npm.taobao.org/acorn-walk/download/acorn-walk-7.0.0.tgz#c8ba6f0f1aac4b0a9e32d1f0af12be769528f36b" - integrity sha1-yLpvDxqsSwqeMtHwrxK+dpUo82s= - -acorn@^5.0.0: - version "5.7.4" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e" - integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg== + version "7.2.0" + resolved "https://registry.npm.taobao.org/acorn-walk/download/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" + integrity sha1-DeiJpgEgOQmw++B7iTjcIdLpZ7w= -acorn@^6.2.1: - version "6.4.0" - resolved "https://registry.npm.taobao.org/acorn/download/acorn-6.4.0.tgz#b659d2ffbafa24baf5db1cdbb2c94a983ecd2784" - integrity sha1-tlnS/7r6JLr12xzbsslKmD7NJ4Q= +acorn@^6.4.1: + version "6.4.1" + resolved "https://registry.npm.taobao.org/acorn/download/acorn-6.4.1.tgz?cache=0&sync_timestamp=1591869466711&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474" + integrity sha1-Ux5Yuj9RudrLmmZGyk3r9bFMpHQ= acorn@^7.0.0: - version "7.1.0" - resolved "https://registry.npm.taobao.org/acorn/download/acorn-7.1.0.tgz#949d36f2c292535da602283586c2477c57eb2d6c" - integrity sha1-lJ028sKSU12mAig1hsJHfFfrLWw= + version "7.3.1" + resolved "https://registry.npm.taobao.org/acorn/download/acorn-7.3.1.tgz?cache=0&sync_timestamp=1591869466711&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-7.3.1.tgz#85010754db53c3fbaf3b9ea3e083aa5c5d147ffd" + integrity sha1-hQEHVNtTw/uvO56j4IOqXF0Uf/0= admin-lte@^3.0.5: version "3.0.5" - resolved "https://registry.yarnpkg.com/admin-lte/-/admin-lte-3.0.5.tgz#664664863bb7a5bf306b3a7b76fd16b345f0b00f" - integrity sha512-VkwBy6KukhuQk8A0GrryZorkDHVK52azkCu4l2Kw5kJt4tMQD2ezb268ssFpd6uKM8swLJ64td2Dx6y/MHA7Ew== + resolved "https://registry.npm.taobao.org/admin-lte/download/admin-lte-3.0.5.tgz#664664863bb7a5bf306b3a7b76fd16b345f0b00f" + integrity sha1-ZkZkhju3pb8wazp7dv0Ws0XwsA8= dependencies: "@fortawesome/fontawesome-free" "^5.13.0" "@fullcalendar/bootstrap" "^4.4.0" @@ -1307,26 +1188,10 @@ admin-lte@^3.0.5: tempusdominus-bootstrap-4 "^5.1.2" toastr "^2.1.4" -agent-base@6: - version "6.0.1" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.1.tgz#808007e4e5867decb0ab6ab2f928fbdb5a596db4" - integrity sha512-01q25QQDwLSsyfhrKbn8yuur+JNw0H+0Y4JiGIKd3z9aYk/w/2kxD/Upc+t2ZBBSUNff50VjPsSW2YxM8QYKVg== - dependencies: - debug "4" - -agentkeepalive@^4.1.0: - version "4.1.3" - resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.1.3.tgz#360a09d743a1f4fde749f9ba07caa6575d08259a" - integrity sha512-wn8fw19xKZwdGPO47jivonaHRTd+nGOMP1z11sgGeQzDy2xd5FG0R67dIMcKHDE2cJ5y+YXV30XVGUBPRSY7Hg== - dependencies: - debug "^4.1.0" - depd "^1.1.2" - humanize-ms "^1.2.1" - aggregate-error@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.0.1.tgz#db2fe7246e536f40d9b5442a39e117d7dd6a24e0" - integrity sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA== + resolved "https://registry.npm.taobao.org/aggregate-error/download/aggregate-error-3.0.1.tgz#db2fe7246e536f40d9b5442a39e117d7dd6a24e0" + integrity sha1-2y/nJG5Tb0DZtUQqOeEX191qJOA= dependencies: clean-stack "^2.0.0" indent-string "^4.0.0" @@ -1337,24 +1202,14 @@ ajv-errors@^1.0.0: integrity sha1-81mGrOuRr63sQQL72FAUlQzvpk0= ajv-keywords@^3.1.0, ajv-keywords@^3.4.1: - version "3.4.1" - resolved "https://registry.npm.taobao.org/ajv-keywords/download/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da" - integrity sha1-75FuJxxkrBIXH9g4TqrmsjRYVNo= - -ajv@^6.1.0, ajv@^6.10.2, ajv@^6.5.5: - version "6.10.2" - resolved "https://registry.npm.taobao.org/ajv/download/ajv-6.10.2.tgz#d3cea04d6b017b2894ad69040fec8b623eb4bd52" - integrity sha1-086gTWsBeyiUrWkED+yLYj60vVI= - dependencies: - fast-deep-equal "^2.0.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" + version "3.5.1" + resolved "https://registry.npm.taobao.org/ajv-keywords/download/ajv-keywords-3.5.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-keywords%2Fdownload%2Fajv-keywords-3.5.1.tgz#b83ca89c5d42d69031f424cad49aada0236c6957" + integrity sha1-uDyonF1C1pAx9CTK1JqtoCNsaVc= -ajv@^6.12.0: - version "6.12.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.0.tgz#06d60b96d87b8454a5adaba86e7854da629db4b7" - integrity sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw== +ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.2, ajv@^6.5.5: + version "6.12.3" + resolved "https://registry.npm.taobao.org/ajv/download/ajv-6.12.3.tgz?cache=0&sync_timestamp=1593876991897&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-6.12.3.tgz#18c5af38a111ddeb4f2697bd78d68abc1cabd706" + integrity sha1-GMWvOKER3etPJpe9eNaKvByr1wY= dependencies: fast-deep-equal "^3.1.1" fast-json-stable-stringify "^2.0.0" @@ -1371,13 +1226,6 @@ amdefine@>=0.0.4: resolved "https://registry.npm.taobao.org/amdefine/download/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU= -ansi-align@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb" - integrity sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw== - dependencies: - string-width "^3.0.0" - ansi-colors@^3.0.0: version "3.2.4" resolved "https://registry.npm.taobao.org/ansi-colors/download/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" @@ -1390,44 +1238,31 @@ ansi-html@0.0.7: ansi-regex@^2.0.0: version "2.1.1" - resolved "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + resolved "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz?cache=0&sync_timestamp=1570188570027&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= ansi-regex@^3.0.0: version "3.0.0" - resolved "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + resolved "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz?cache=0&sync_timestamp=1570188570027&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= ansi-regex@^4.1.0: version "4.1.0" - resolved "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + resolved "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz?cache=0&sync_timestamp=1570188570027&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" integrity sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc= -ansi-regex@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" - integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== - ansi-styles@^2.2.1: version "2.2.1" - resolved "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + resolved "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz?cache=0&sync_timestamp=1589682811931&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= ansi-styles@^3.2.0, ansi-styles@^3.2.1: version "3.2.1" - resolved "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + resolved "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1589682811931&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" integrity sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0= dependencies: color-convert "^1.9.0" -ansi-styles@^4.1.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" - integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== - dependencies: - "@types/color-name" "^1.1.1" - color-convert "^2.0.1" - anymatch@^2.0.0: version "2.0.0" resolved "https://registry.npm.taobao.org/anymatch/download/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" @@ -1436,6 +1271,14 @@ anymatch@^2.0.0: micromatch "^3.1.4" normalize-path "^2.1.1" +anymatch@~3.1.1: + version "3.1.1" + resolved "https://registry.npm.taobao.org/anymatch/download/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" + integrity sha1-xV7PAhheJGklk5kxDBc84xIzsUI= + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + aproba@^1.0.3, aproba@^1.1.1: version "1.2.0" resolved "https://registry.npm.taobao.org/aproba/download/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" @@ -1478,12 +1321,12 @@ array-find-index@^1.0.1: array-flatten@1.1.1: version "1.1.1" - resolved "https://registry.npm.taobao.org/array-flatten/download/array-flatten-1.1.1.tgz?cache=0&sync_timestamp=1574313315299&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-flatten%2Fdownload%2Farray-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + resolved "https://registry.npm.taobao.org/array-flatten/download/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= array-flatten@^2.1.0: version "2.1.2" - resolved "https://registry.npm.taobao.org/array-flatten/download/array-flatten-2.1.2.tgz?cache=0&sync_timestamp=1574313315299&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-flatten%2Fdownload%2Farray-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" + resolved "https://registry.npm.taobao.org/array-flatten/download/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" integrity sha1-JO+AoowaiTYX4hSbDG0NeIKTsJk= array-from@^2.1.1: @@ -1508,11 +1351,6 @@ array-unique@^0.3.2: resolved "https://registry.npm.taobao.org/array-unique/download/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= -asap@^2.0.0: - version "2.0.6" - resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" - integrity sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY= - asn1.js@^4.0.0: version "4.10.1" resolved "https://registry.npm.taobao.org/asn1.js/download/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" @@ -1573,7 +1411,7 @@ async-foreach@^0.1.3: async-limiter@~1.0.0: version "1.0.1" - resolved "https://registry.npm.taobao.org/async-limiter/download/async-limiter-1.0.1.tgz?cache=0&sync_timestamp=1574272018408&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fasync-limiter%2Fdownload%2Fasync-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" + resolved "https://registry.npm.taobao.org/async-limiter/download/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" integrity sha1-3TeelPDbgxCwgpH51kwyCXZmF/0= async@^2.6.2: @@ -1590,8 +1428,8 @@ asynckit@^0.4.0: at-least-node@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" - integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== + resolved "https://registry.npm.taobao.org/at-least-node/download/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + integrity sha1-YCzUtG6EStTv/JKoARo8RuAjjcI= atob@^2.1.2: version "2.1.2" @@ -1599,17 +1437,17 @@ atob@^2.1.2: integrity sha1-bZUX654DDSQ2ZmZR6GvZ9vE1M8k= autoprefixer@^9.6.1: - version "9.7.3" - resolved "https://registry.npm.taobao.org/autoprefixer/download/autoprefixer-9.7.3.tgz#fd42ed03f53de9beb4ca0d61fb4f7268a9bb50b4" - integrity sha1-/ULtA/U96b60yg1h+09yaKm7ULQ= + version "9.8.5" + resolved "https://registry.npm.taobao.org/autoprefixer/download/autoprefixer-9.8.5.tgz?cache=0&sync_timestamp=1594444615950&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fautoprefixer%2Fdownload%2Fautoprefixer-9.8.5.tgz#2c225de229ddafe1d1424c02791d0c3e10ccccaa" + integrity sha1-LCJd4indr+HRQkwCeR0MPhDMzKo= dependencies: - browserslist "^4.8.0" - caniuse-lite "^1.0.30001012" - chalk "^2.4.2" + browserslist "^4.12.0" + caniuse-lite "^1.0.30001097" + colorette "^1.2.0" normalize-range "^0.1.2" num2fraction "^1.2.2" - postcss "^7.0.23" - postcss-value-parser "^4.0.2" + postcss "^7.0.32" + postcss-value-parser "^4.1.0" aws-sign2@~0.7.0: version "0.7.0" @@ -1617,14 +1455,14 @@ aws-sign2@~0.7.0: integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= aws4@^1.8.0: - version "1.9.1" - resolved "https://registry.npm.taobao.org/aws4/download/aws4-1.9.1.tgz?cache=0&sync_timestamp=1578958189607&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Faws4%2Fdownload%2Faws4-1.9.1.tgz#7e33d8f7d449b3f673cd72deb9abdc552dbe528e" - integrity sha1-fjPY99RJs/ZzzXLeuavcVS2+Uo4= + version "1.10.0" + resolved "https://registry.npm.taobao.org/aws4/download/aws4-1.10.0.tgz#a17b3a8ea811060e74d47d306122400ad4497ae2" + integrity sha1-oXs6jqgRBg501H0wYSJACtRJeuI= babel-loader@^8.1.0: version "8.1.0" - resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.1.0.tgz#c611d5112bd5209abe8b9fa84c3e4da25275f1c3" - integrity sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw== + resolved "https://registry.npm.taobao.org/babel-loader/download/babel-loader-8.1.0.tgz?cache=0&sync_timestamp=1584715959282&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-loader%2Fdownload%2Fbabel-loader-8.1.0.tgz#c611d5112bd5209abe8b9fa84c3e4da25275f1c3" + integrity sha1-xhHVESvVIJq+i5+oTD5NolJ18cM= dependencies: find-cache-dir "^2.1.0" loader-utils "^1.4.0" @@ -1632,25 +1470,25 @@ babel-loader@^8.1.0: pify "^4.0.1" schema-utils "^2.6.5" -babel-plugin-dynamic-import-node@^2.3.0: - version "2.3.0" - resolved "https://registry.npm.taobao.org/babel-plugin-dynamic-import-node/download/babel-plugin-dynamic-import-node-2.3.0.tgz#f00f507bdaa3c3e3ff6e7e5e98d90a7acab96f7f" - integrity sha1-8A9Qe9qjw+P/bn5emNkKesq5b38= +babel-plugin-dynamic-import-node@^2.3.0, babel-plugin-dynamic-import-node@^2.3.3: + version "2.3.3" + resolved "https://registry.npm.taobao.org/babel-plugin-dynamic-import-node/download/babel-plugin-dynamic-import-node-2.3.3.tgz?cache=0&sync_timestamp=1587496311403&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-dynamic-import-node%2Fdownload%2Fbabel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" + integrity sha1-hP2hnJduxcbe/vV/lCez3vZuF6M= dependencies: object.assign "^4.1.0" babel-plugin-macros@^2.8.0: version "2.8.0" - resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz#0f958a7cc6556b1e65344465d99111a1e5e10138" - integrity sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg== + resolved "https://registry.npm.taobao.org/babel-plugin-macros/download/babel-plugin-macros-2.8.0.tgz#0f958a7cc6556b1e65344465d99111a1e5e10138" + integrity sha1-D5WKfMZVax5lNERl2ZERoeXhATg= dependencies: "@babel/runtime" "^7.7.2" cosmiconfig "^6.0.0" resolve "^1.12.0" -babel-runtime@^6.11.6: +babel-runtime@^6.26.0: version "6.26.0" - resolved "https://registry.npm.taobao.org/babel-runtime/download/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + resolved "https://registry.npm.taobao.org/babel-runtime/download/babel-runtime-6.26.0.tgz?cache=0&sync_timestamp=1587491768729&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-runtime%2Fdownload%2Fbabel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= dependencies: core-js "^2.4.0" @@ -1658,7 +1496,7 @@ babel-runtime@^6.11.6: balanced-match@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + resolved "https://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= base64-js@0.0.8: @@ -1706,6 +1544,11 @@ binary-extensions@^1.0.0: resolved "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" integrity sha1-WYr+VHVbKGilMw0q/51Ou1Mgm2U= +binary-extensions@^2.0.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-2.1.0.tgz#30fa40c9e7fe07dbc895678cd287024dea241dd9" + integrity sha1-MPpAyef+B9vIlWeM0ocCTeokHdk= + bindings@^1.5.0: version "1.5.0" resolved "https://registry.npm.taobao.org/bindings/download/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" @@ -1725,10 +1568,15 @@ bluebird@^3.5.5: resolved "https://registry.npm.taobao.org/bluebird/download/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha1-nyKcFb4nJFT/qXOs4NvueaGww28= -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: - version "4.11.8" - resolved "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" - integrity sha1-LN4J617jQfSEdGuwMJsyU7GxRC8= +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.4.0: + version "4.11.9" + resolved "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828" + integrity sha1-JtVWgpRY+dHoH8SJUkk9C6NQeCg= + +bn.js@^5.1.1: + version "5.1.2" + resolved "https://registry.npm.taobao.org/bn.js/download/bn.js-5.1.2.tgz#c9686902d3c9a27729f43ab10f9d79c2004da7b0" + integrity sha1-yWhpAtPJoncp9DqxD515wgBNp7A= body-parser@1.19.0: version "1.19.0" @@ -1765,8 +1613,8 @@ boolbase@^1.0.0, boolbase@~1.0.0: bootstrap-colorpicker@^3.2.0: version "3.2.0" - resolved "https://registry.yarnpkg.com/bootstrap-colorpicker/-/bootstrap-colorpicker-3.2.0.tgz#42b053b865a866b2674527813cd59f90137b9704" - integrity sha512-twW93EFLf4MzZ/st+MkfdLCWEEA7r43WPlPnGckzm3Lj2FsbmVS/qgJH2c9IcmO3re5Q1320NO9bhuViwHR9Qw== + resolved "https://registry.npm.taobao.org/bootstrap-colorpicker/download/bootstrap-colorpicker-3.2.0.tgz#42b053b865a866b2674527813cd59f90137b9704" + integrity sha1-QrBTuGWoZrJnRSeBPNWfkBN7lwQ= dependencies: bootstrap ">=4.0" jquery ">=2.1.0" @@ -1779,37 +1627,23 @@ bootstrap-slider@^10.6.2: bootstrap-switch@3.3.4: version "3.3.4" - resolved "https://registry.yarnpkg.com/bootstrap-switch/-/bootstrap-switch-3.3.4.tgz#70e0aeb2a877c0dc766991de108e2170fc29a2ff" + resolved "https://registry.npm.taobao.org/bootstrap-switch/download/bootstrap-switch-3.3.4.tgz#70e0aeb2a877c0dc766991de108e2170fc29a2ff" integrity sha1-cOCusqh3wNx2aZHeEI4hcPwpov8= bootstrap4-duallistbox@^4.0.1: - version "4.0.1" - resolved "https://registry.npm.taobao.org/bootstrap4-duallistbox/download/bootstrap4-duallistbox-4.0.1.tgz#89fa6ece3496871bbdf0c63dc256dceb5324b203" - integrity sha1-ifpuzjSWhxu98MY9wlbc61MksgM= + version "4.0.2" + resolved "https://registry.npm.taobao.org/bootstrap4-duallistbox/download/bootstrap4-duallistbox-4.0.2.tgz#c6942e34a39d0d05e436d51ebaf31c9349f119d3" + integrity sha1-xpQuNKOdDQXkNtUeuvMck0nxGdM= bootstrap@>=4.0, bootstrap@>=4.1.2, bootstrap@^4.4.1: - version "4.4.1" - resolved "https://registry.npm.taobao.org/bootstrap/download/bootstrap-4.4.1.tgz#8582960eea0c5cd2bede84d8b0baf3789c3e8b01" - integrity sha1-hYKWDuoMXNK+3oTYsLrzeJw+iwE= - -boxen@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/boxen/-/boxen-4.2.0.tgz#e411b62357d6d6d36587c8ac3d5d974daa070e64" - integrity sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ== - dependencies: - ansi-align "^3.0.0" - camelcase "^5.3.1" - chalk "^3.0.0" - cli-boxes "^2.2.0" - string-width "^4.1.0" - term-size "^2.1.0" - type-fest "^0.8.1" - widest-line "^3.1.0" + version "4.5.0" + resolved "https://registry.npm.taobao.org/bootstrap/download/bootstrap-4.5.0.tgz#97d9dbcb5a8972f8722c9962483543b907d9b9ec" + integrity sha1-l9nby1qJcvhyLJliSDVDuQfZuew= brace-expansion@^1.1.7: version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + resolved "https://registry.npm.taobao.org/brace-expansion/download/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0= dependencies: balanced-match "^1.0.0" concat-map "0.0.1" @@ -1830,17 +1664,14 @@ braces@^2.3.1, braces@^2.3.2: split-string "^3.0.2" to-regex "^3.0.1" -brfs@^1.4.0: - version "1.6.1" - resolved "https://registry.npm.taobao.org/brfs/download/brfs-1.6.1.tgz#b78ce2336d818e25eea04a0947cba6d4fb8849c3" - integrity sha1-t4ziM22BjiXuoEoJR8um1PuIScM= +braces@~3.0.2: + version "3.0.2" + resolved "https://registry.npm.taobao.org/braces/download/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha1-NFThpGLujVmeI23zNs2epPiv4Qc= dependencies: - quote-stream "^1.0.1" - resolve "^1.1.5" - static-module "^2.2.0" - through2 "^2.0.0" + fill-range "^7.0.1" -brfs@^2.0.2: +brfs@^2.0.0, brfs@^2.0.2: version "2.0.2" resolved "https://registry.npm.taobao.org/brfs/download/brfs-2.0.2.tgz#44237878fa82aa479ce4f5fe2c1796ec69f07845" integrity sha1-RCN4ePqCqkec5PX+LBeW7GnweEU= @@ -1900,7 +1731,7 @@ browserify-des@^1.0.0: inherits "^2.0.1" safe-buffer "^5.1.2" -browserify-optional@^1.0.0: +browserify-optional@^1.0.0, browserify-optional@^1.0.1: version "1.0.1" resolved "https://registry.npm.taobao.org/browserify-optional/download/browserify-optional-1.0.1.tgz#1e13722cfde0d85f121676c2a72ced533a018869" integrity sha1-HhNyLP3g2F8SFnbCpyztUzoBiGk= @@ -1909,7 +1740,7 @@ browserify-optional@^1.0.0: ast-types "^0.7.0" browser-resolve "^1.8.1" -browserify-rsa@^4.0.0: +browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: version "4.0.1" resolved "https://registry.npm.taobao.org/browserify-rsa/download/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= @@ -1918,17 +1749,19 @@ browserify-rsa@^4.0.0: randombytes "^2.0.1" browserify-sign@^4.0.0: - version "4.0.4" - resolved "https://registry.npm.taobao.org/browserify-sign/download/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" - integrity sha1-qk62jl17ZYuqa/alfmMMvXqT0pg= - dependencies: - bn.js "^4.1.1" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.2" - elliptic "^6.0.0" - inherits "^2.0.1" - parse-asn1 "^5.0.0" + version "4.2.0" + resolved "https://registry.npm.taobao.org/browserify-sign/download/browserify-sign-4.2.0.tgz#545d0b1b07e6b2c99211082bf1b12cce7a0b0e11" + integrity sha1-VF0LGwfmssmSEQgr8bEsznoLDhE= + dependencies: + bn.js "^5.1.1" + browserify-rsa "^4.0.1" + create-hash "^1.2.0" + create-hmac "^1.1.7" + elliptic "^6.5.2" + inherits "^2.0.4" + parse-asn1 "^5.1.5" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" browserify-zlib@^0.2.0: version "0.2.0" @@ -1937,29 +1770,20 @@ browserify-zlib@^0.2.0: dependencies: pako "~1.0.5" -browserslist@^4.0.0, browserslist@^4.6.4, browserslist@^4.8.0, browserslist@^4.8.3: - version "4.8.3" - resolved "https://registry.npm.taobao.org/browserslist/download/browserslist-4.8.3.tgz#65802fcd77177c878e015f0e3189f2c4f627ba44" - integrity sha1-ZYAvzXcXfIeOAV8OMYnyxPYnukQ= +browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.6.4, browserslist@^4.8.5: + version "4.13.0" + resolved "https://registry.npm.taobao.org/browserslist/download/browserslist-4.13.0.tgz#42556cba011e1b0a2775b611cba6a8eca18e940d" + integrity sha1-QlVsugEeGwondbYRy6ao7KGOlA0= dependencies: - caniuse-lite "^1.0.30001017" - electron-to-chromium "^1.3.322" - node-releases "^1.1.44" - -browserslist@^4.9.1: - version "4.11.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.11.1.tgz#92f855ee88d6e050e7e7311d987992014f1a1f1b" - integrity sha512-DCTr3kDrKEYNw6Jb9HFxVLQNaue8z+0ZfRBRjmCunKDEXEBajKDj2Y+Uelg+Pi29OnvaSGwjOsnRyNEkXzHg5g== - dependencies: - caniuse-lite "^1.0.30001038" - electron-to-chromium "^1.3.390" - node-releases "^1.1.53" - pkg-up "^2.0.0" + caniuse-lite "^1.0.30001093" + electron-to-chromium "^1.3.488" + escalade "^3.0.1" + node-releases "^1.1.58" bs-custom-file-input@^1.3.4: version "1.3.4" - resolved "https://registry.yarnpkg.com/bs-custom-file-input/-/bs-custom-file-input-1.3.4.tgz#c275cb8d4f1c02ba026324292509fa9a747dbda8" - integrity sha512-NBsQzTnef3OW1MvdKBbMHAYHssCd613MSeJV7z2McXznWtVMnJCy7Ckyc+PwxV6Pk16cu6YBcYWh/ZE0XWNKCA== + resolved "https://registry.npm.taobao.org/bs-custom-file-input/download/bs-custom-file-input-1.3.4.tgz#c275cb8d4f1c02ba026324292509fa9a747dbda8" + integrity sha1-wnXLjU8cAroCYyQpJQn6mnR9vag= buffer-equal@0.0.1: version "0.0.1" @@ -1995,11 +1819,6 @@ builtin-status-codes@^3.0.0: resolved "https://registry.npm.taobao.org/builtin-status-codes/download/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= -builtins@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" - integrity sha1-y5T662HIaWRR2zZTThQi+U8K7og= - bytes@3.0.0: version "3.0.0" resolved "https://registry.npm.taobao.org/bytes/download/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" @@ -2011,9 +1830,9 @@ bytes@3.1.0: integrity sha1-9s95M6Ng4FiPqf3oVlHNx/gF0fY= cacache@^12.0.2: - version "12.0.3" - resolved "https://registry.npm.taobao.org/cacache/download/cacache-12.0.3.tgz#be99abba4e1bf5df461cd5a2c1071fc432573390" - integrity sha1-vpmruk4b9d9GHNWiwQcfxDJXM5A= + version "12.0.4" + resolved "https://registry.npm.taobao.org/cacache/download/cacache-12.0.4.tgz?cache=0&sync_timestamp=1594428006433&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacache%2Fdownload%2Fcacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" + integrity sha1-ZovL0QWutfHZL+JVcOyVJcj6pAw= dependencies: bluebird "^3.5.5" chownr "^1.1.1" @@ -2033,7 +1852,7 @@ cacache@^12.0.2: cacache@^13.0.1: version "13.0.1" - resolved "https://registry.npm.taobao.org/cacache/download/cacache-13.0.1.tgz#a8000c21697089082f85287a1aec6e382024a71c" + resolved "https://registry.npm.taobao.org/cacache/download/cacache-13.0.1.tgz?cache=0&sync_timestamp=1594428006433&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacache%2Fdownload%2Fcacache-13.0.1.tgz#a8000c21697089082f85287a1aec6e382024a71c" integrity sha1-qAAMIWlwiQgvhSh6GuxuOCAkpxw= dependencies: chownr "^1.1.2" @@ -2055,29 +1874,6 @@ cacache@^13.0.1: ssri "^7.0.0" unique-filename "^1.1.1" -cacache@^15.0.0: - version "15.0.5" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.0.5.tgz#69162833da29170d6732334643c60e005f5f17d0" - integrity sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A== - dependencies: - "@npmcli/move-file" "^1.0.1" - chownr "^2.0.0" - fs-minipass "^2.0.0" - glob "^7.1.4" - infer-owner "^1.0.4" - lru-cache "^6.0.0" - minipass "^3.1.1" - minipass-collect "^1.0.2" - minipass-flush "^1.0.5" - minipass-pipeline "^1.2.2" - mkdirp "^1.0.3" - p-map "^4.0.0" - promise-inflight "^1.0.1" - rimraf "^3.0.2" - ssri "^8.0.0" - tar "^6.0.2" - unique-filename "^1.1.1" - cache-base@^1.0.1: version "1.0.1" resolved "https://registry.npm.taobao.org/cache-base/download/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" @@ -2093,19 +1889,6 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" -cacheable-request@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" - integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== - dependencies: - clone-response "^1.0.2" - get-stream "^5.1.0" - http-cache-semantics "^4.0.0" - keyv "^3.0.0" - lowercase-keys "^2.0.0" - normalize-url "^4.1.0" - responselike "^1.0.2" - caller-callsite@^2.0.0: version "2.0.0" resolved "https://registry.npm.taobao.org/caller-callsite/download/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" @@ -2115,7 +1898,7 @@ caller-callsite@^2.0.0: caller-path@^2.0.0: version "2.0.0" - resolved "https://registry.npm.taobao.org/caller-path/download/caller-path-2.0.0.tgz?cache=0&sync_timestamp=1574395542397&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcaller-path%2Fdownload%2Fcaller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" + resolved "https://registry.npm.taobao.org/caller-path/download/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= dependencies: caller-callsite "^2.0.0" @@ -2143,11 +1926,6 @@ camelcase@^2.0.0: resolved "https://registry.npm.taobao.org/camelcase/download/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8= -camelcase@^3.0.0: - version "3.0.0" - resolved "https://registry.npm.taobao.org/camelcase/download/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" - integrity sha1-MvxLn82vhF/N9+c7uXysImHwqwo= - camelcase@^5.0.0, camelcase@^5.3.1: version "5.3.1" resolved "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" @@ -2163,38 +1941,24 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001012, caniuse-lite@^1.0.30001017: - version "1.0.30001020" - resolved "https://registry.npm.taobao.org/caniuse-lite/download/caniuse-lite-1.0.30001020.tgz#3f04c1737500ffda78be9beb0b5c1e2070e15926" - integrity sha1-PwTBc3UA/9p4vpvrC1weIHDhWSY= - -caniuse-lite@^1.0.30001038: - version "1.0.30001038" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001038.tgz#44da3cbca2ab6cb6aa83d1be5d324e17f141caff" - integrity sha512-zii9quPo96XfOiRD4TrfYGs+QsGZpb2cGiMAzPjtf/hpFgB6zCPZgJb7I1+EATeMw/o+lG8FyRAnI+CWStHcaQ== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001093, caniuse-lite@^1.0.30001097: + version "1.0.30001100" + resolved "https://registry.npm.taobao.org/caniuse-lite/download/caniuse-lite-1.0.30001100.tgz?cache=0&sync_timestamp=1594778759647&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcaniuse-lite%2Fdownload%2Fcaniuse-lite-1.0.30001100.tgz#2a58615e0c01cf716ab349b20ca4d86ef944aa4e" + integrity sha1-KlhhXgwBz3Fqs0myDKTYbvlEqk4= case-sensitive-paths-webpack-plugin@^2.3.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.3.0.tgz#23ac613cc9a856e4f88ff8bb73bbb5e989825cf7" - integrity sha512-/4YgnZS8y1UXXmC02xD5rRrBEu6T5ub+mQHLNRj0fzTRbgdBYhsNo2V5EqwgqrExjxsjtF/OpAKAMkKsxbD5XQ== + resolved "https://registry.npm.taobao.org/case-sensitive-paths-webpack-plugin/download/case-sensitive-paths-webpack-plugin-2.3.0.tgz?cache=0&sync_timestamp=1579125374167&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcase-sensitive-paths-webpack-plugin%2Fdownload%2Fcase-sensitive-paths-webpack-plugin-2.3.0.tgz#23ac613cc9a856e4f88ff8bb73bbb5e989825cf7" + integrity sha1-I6xhPMmoVuT4j/i7c7u16YmCXPc= caseless@~0.12.0: version "0.12.0" resolved "https://registry.npm.taobao.org/caseless/download/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= -chalk@2.4.2, chalk@^2.0, chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz?cache=0&sync_timestamp=1573282949696&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ= - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - chalk@^1.1.1: version "1.1.3" - resolved "https://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz?cache=0&sync_timestamp=1573282949696&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + resolved "https://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz?cache=0&sync_timestamp=1591687000046&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= dependencies: ansi-styles "^2.2.1" @@ -2203,18 +1967,19 @@ chalk@^1.1.1: strip-ansi "^3.0.0" supports-color "^2.0.0" -chalk@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" - integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== +chalk@^2.0, chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz?cache=0&sync_timestamp=1591687000046&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ= dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" chart.js@^2.9.3: version "2.9.3" - resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-2.9.3.tgz#ae3884114dafd381bc600f5b35a189138aac1ef7" - integrity sha512-+2jlOobSk52c1VU6fzkh3UwqHMdSlgH1xFv9FKMqHiNCpXsGPQa/+81AFa+i3jZ253Mq9aAycPwDjnn1XbRNNw== + resolved "https://registry.npm.taobao.org/chart.js/download/chart.js-2.9.3.tgz#ae3884114dafd381bc600f5b35a189138aac1ef7" + integrity sha1-rjiEEU2v04G8YA9bNaGJE4qsHvc= dependencies: chartjs-color "^2.1.0" moment "^2.10.2" @@ -2228,15 +1993,15 @@ chartjs-color-string@^0.6.0: chartjs-color@^2.1.0: version "2.4.1" - resolved "https://registry.npm.taobao.org/chartjs-color/download/chartjs-color-2.4.1.tgz?cache=0&sync_timestamp=1572037602422&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchartjs-color%2Fdownload%2Fchartjs-color-2.4.1.tgz#6118bba202fe1ea79dd7f7c0f9da93467296c3b0" + resolved "https://registry.npm.taobao.org/chartjs-color/download/chartjs-color-2.4.1.tgz#6118bba202fe1ea79dd7f7c0f9da93467296c3b0" integrity sha1-YRi7ogL+Hqed1/fA+dqTRnKWw7A= dependencies: chartjs-color-string "^0.6.0" color-convert "^1.9.3" -chokidar@^2.0.2, chokidar@^2.1.8: +chokidar@^2.1.8: version "2.1.8" - resolved "https://registry.npm.taobao.org/chokidar/download/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" + resolved "https://registry.npm.taobao.org/chokidar/download/chokidar-2.1.8.tgz?cache=0&sync_timestamp=1594866429503&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" integrity sha1-gEs6e2qZNYw8XGHnHYco8EHP+Rc= dependencies: anymatch "^2.0.0" @@ -2253,20 +2018,25 @@ chokidar@^2.0.2, chokidar@^2.1.8: optionalDependencies: fsevents "^1.2.7" -chownr@^1.1.1, chownr@^1.1.2: - version "1.1.3" - resolved "https://registry.npm.taobao.org/chownr/download/chownr-1.1.3.tgz#42d837d5239688d55f303003a508230fa6727142" - integrity sha1-Qtg31SOWiNVfMDADpQgjD6ZycUI= +chokidar@^3.4.0: + version "3.4.1" + resolved "https://registry.npm.taobao.org/chokidar/download/chokidar-3.4.1.tgz?cache=0&sync_timestamp=1594866429503&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-3.4.1.tgz#e905bdecf10eaa0a0b1db0c664481cc4cbc22ba1" + integrity sha1-6QW97PEOqgoLHbDGZEgcxMvCK6E= + dependencies: + anymatch "~3.1.1" + braces "~3.0.2" + glob-parent "~5.1.0" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.4.0" + optionalDependencies: + fsevents "~2.1.2" -chownr@^1.1.3, chownr@^1.1.4: +chownr@^1.1.1, chownr@^1.1.2: version "1.1.4" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" - integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== - -chownr@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" - integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== + resolved "https://registry.npm.taobao.org/chownr/download/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha1-b8nXtC0ypYNZYzdmbn0ICE2izGs= chrome-trace-event@^1.0.2: version "1.0.2" @@ -2275,16 +2045,6 @@ chrome-trace-event@^1.0.2: dependencies: tslib "^1.9.0" -ci-info@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" - integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== - -cint@^8.2.1: - version "8.2.1" - resolved "https://registry.yarnpkg.com/cint/-/cint-8.2.1.tgz#70386b1b48e2773d0d63166a55aff94ef4456a12" - integrity sha1-cDhrG0jidz0NYxZqVa/5TvRFahI= - cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" resolved "https://registry.npm.taobao.org/cipher-base/download/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" @@ -2305,39 +2065,18 @@ class-utils@^0.3.5: clean-stack@^2.0.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" - integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== - -cli-boxes@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.0.tgz#538ecae8f9c6ca508e3c3c95b453fe93cb4c168d" - integrity sha512-gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w== - -cli-table@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/cli-table/-/cli-table-0.3.1.tgz#f53b05266a8b1a0b934b3d0821e6e2dc5914ae23" - integrity sha1-9TsFJmqLGguTSz0IIebi3FkUriM= - dependencies: - colors "1.0.3" + resolved "https://registry.npm.taobao.org/clean-stack/download/clean-stack-2.2.0.tgz?cache=0&sync_timestamp=1592035220754&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fclean-stack%2Fdownload%2Fclean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha1-7oRy27Ep5yezHooQpCfe6d/kAIs= clipboard@^2.0.6: version "2.0.6" - resolved "https://registry.npm.taobao.org/clipboard/download/clipboard-2.0.6.tgz?cache=0&sync_timestamp=1583389667105&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fclipboard%2Fdownload%2Fclipboard-2.0.6.tgz#52921296eec0fdf77ead1749421b21c968647376" + resolved "https://registry.npm.taobao.org/clipboard/download/clipboard-2.0.6.tgz#52921296eec0fdf77ead1749421b21c968647376" integrity sha1-UpISlu7A/fd+rRdJQhshyWhkc3Y= dependencies: good-listener "^1.2.2" select "^1.1.2" tiny-emitter "^2.0.0" -cliui@^3.2.0: - version "3.2.0" - resolved "https://registry.npm.taobao.org/cliui/download/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" - integrity sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0= - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - wrap-ansi "^2.0.0" - cliui@^5.0.0: version "5.0.0" resolved "https://registry.npm.taobao.org/cliui/download/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" @@ -2356,14 +2095,7 @@ clone-deep@^4.0.1: kind-of "^6.0.2" shallow-clone "^3.0.0" -clone-response@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" - integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= - dependencies: - mimic-response "^1.0.0" - -clone@^1.0.1: +clone@^1.0.4: version "1.0.4" resolved "https://registry.npm.taobao.org/clone/download/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= @@ -2397,19 +2129,12 @@ color-convert@^1.9.0, color-convert@^1.9.1, color-convert@^1.9.3: dependencies: color-name "1.1.3" -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - color-name@1.1.3: version "1.1.3" resolved "https://registry.npm.taobao.org/color-name/download/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= -color-name@^1.0.0, color-name@~1.1.4: +color-name@^1.0.0: version "1.1.4" resolved "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha1-wqCah6y95pVD3m9j+jmVyCbFNqI= @@ -2430,10 +2155,10 @@ color@^3.0.0: color-convert "^1.9.1" color-string "^1.5.2" -colors@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" - integrity sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs= +colorette@^1.2.0: + version "1.2.1" + resolved "https://registry.npm.taobao.org/colorette/download/colorette-1.2.1.tgz?cache=0&sync_timestamp=1593955804228&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolorette%2Fdownload%2Fcolorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b" + integrity sha1-TQuSEyXBT6+SYzCGpTbbbolWSxs= combined-stream@^1.0.6, combined-stream@~1.0.6: version "1.0.8" @@ -2444,14 +2169,9 @@ combined-stream@^1.0.6, combined-stream@~1.0.6: commander@^2.20.0: version "2.20.3" - resolved "https://registry.npm.taobao.org/commander/download/commander-2.20.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + resolved "https://registry.npm.taobao.org/commander/download/commander-2.20.3.tgz?cache=0&sync_timestamp=1592632028697&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha1-/UhehMA+tIgcIHIrpIA16FMa6zM= -commander@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-5.0.0.tgz#dbf1909b49e5044f8fdaf0adc809f0c0722bdfd0" - integrity sha512-JrDGPAKjMGSP1G0DUoaceEJ3DZgAfr/q6X7FVk4+U5KxUSKviYGM2k6zWkfyyBHy5rAtzgYJFa1ro2O9PtoxwQ== - commondir@^1.0.1: version "1.0.1" resolved "https://registry.npm.taobao.org/commondir/download/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" @@ -2471,8 +2191,8 @@ compressible@~2.0.16: compression-webpack-plugin@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/compression-webpack-plugin/-/compression-webpack-plugin-3.1.0.tgz#9f510172a7b5fae5aad3b670652e8bd7997aeeca" - integrity sha512-iqTHj3rADN4yHwXMBrQa/xrncex/uEQy8QHlaTKxGchT/hC0SdlJlmL/5eRqffmWq2ep0/Romw6Ld39JjTR/ug== + resolved "https://registry.npm.taobao.org/compression-webpack-plugin/download/compression-webpack-plugin-3.1.0.tgz?cache=0&sync_timestamp=1589290507307&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcompression-webpack-plugin%2Fdownload%2Fcompression-webpack-plugin-3.1.0.tgz#9f510172a7b5fae5aad3b670652e8bd7997aeeca" + integrity sha1-n1EBcqe1+uWq07ZwZS6L15l67so= dependencies: cacache "^13.0.1" find-cache-dir "^3.0.0" @@ -2496,7 +2216,7 @@ compression@^1.7.4: concat-map@0.0.1: version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + resolved "https://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= concat-stream@^1.5.0, concat-stream@~1.6.0: @@ -2509,18 +2229,6 @@ concat-stream@^1.5.0, concat-stream@~1.6.0: readable-stream "^2.2.2" typedarray "^0.0.6" -configstore@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96" - integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA== - dependencies: - dot-prop "^5.2.0" - graceful-fs "^4.1.2" - make-dir "^3.0.0" - unique-string "^2.0.0" - write-file-atomic "^3.0.0" - xdg-basedir "^4.0.0" - connect-history-api-fallback@^1.6.0: version "1.6.0" resolved "https://registry.npm.taobao.org/connect-history-api-fallback/download/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" @@ -2588,22 +2296,22 @@ copy-descriptor@^0.1.0: integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= core-js-compat@^3.6.2: - version "3.6.4" - resolved "https://registry.npm.taobao.org/core-js-compat/download/core-js-compat-3.6.4.tgz#938476569ebb6cda80d339bcf199fae4f16fff17" - integrity sha1-k4R2Vp67bNqA0zm88Zn65PFv/xc= + version "3.6.5" + resolved "https://registry.npm.taobao.org/core-js-compat/download/core-js-compat-3.6.5.tgz#2a51d9a4e25dfd6e690251aa81f99e3c05481f1c" + integrity sha1-KlHZpOJd/W5pAlGqgfmePAVIHxw= dependencies: - browserslist "^4.8.3" + browserslist "^4.8.5" semver "7.0.0" core-js@^2.4.0: version "2.6.11" - resolved "https://registry.npm.taobao.org/core-js/download/core-js-2.6.11.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" + resolved "https://registry.npm.taobao.org/core-js/download/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" integrity sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw= core-js@^3.6.4: - version "3.6.4" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.6.4.tgz#440a83536b458114b9cb2ac1580ba377dc470647" - integrity sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw== + version "3.6.5" + resolved "https://registry.npm.taobao.org/core-js/download/core-js-3.6.5.tgz#7395dc273af37fb2e50e9bd3d9fe841285231d1a" + integrity sha1-c5XcJzrzf7LlDpvT2f6EEoUjHRo= core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" @@ -2639,7 +2347,7 @@ create-ecdh@^4.0.0: bn.js "^4.1.0" elliptic "^6.0.0" -create-hash@^1.1.0, create-hash@^1.1.2: +create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: version "1.2.0" resolved "https://registry.npm.taobao.org/create-hash/download/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" integrity sha1-iJB4rxGmN1a8+1m9IhmWvjqe8ZY= @@ -2650,7 +2358,7 @@ create-hash@^1.1.0, create-hash@^1.1.2: ripemd160 "^2.0.1" sha.js "^2.4.0" -create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: +create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: version "1.1.7" resolved "https://registry.npm.taobao.org/create-hmac/download/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" integrity sha1-aRcMeLOrlXFHsriwRXLkfq0iQ/8= @@ -2662,7 +2370,15 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: safe-buffer "^5.0.1" sha.js "^2.4.8" -cross-spawn@6.0.5, cross-spawn@^6.0.0: +cross-spawn@^3.0.0: + version "3.0.1" + resolved "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-3.0.1.tgz#1256037ecb9f0c5f79e3d6ef135e30770184b982" + integrity sha1-ElYDfsufDF9549bvE14wdwGEuYI= + dependencies: + lru-cache "^4.0.1" + which "^1.2.9" + +cross-spawn@^6.0.0, cross-spawn@^6.0.5: version "6.0.5" resolved "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" integrity sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q= @@ -2673,14 +2389,6 @@ cross-spawn@6.0.5, cross-spawn@^6.0.0: shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^3.0.0: - version "3.0.1" - resolved "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-3.0.1.tgz#1256037ecb9f0c5f79e3d6ef135e30770184b982" - integrity sha1-ElYDfsufDF9549bvE14wdwGEuYI= - dependencies: - lru-cache "^4.0.1" - which "^1.2.9" - crypto-browserify@^3.11.0: version "3.12.0" resolved "https://registry.npm.taobao.org/crypto-browserify/download/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" @@ -2699,14 +2407,9 @@ crypto-browserify@^3.11.0: randomfill "^1.0.3" crypto-js@^3.1.9-1: - version "3.1.9-1" - resolved "https://registry.npm.taobao.org/crypto-js/download/crypto-js-3.1.9-1.tgz#fda19e761fc077e01ffbfdc6e9fdfc59e8806cd8" - integrity sha1-/aGedh/Ad+Af+/3G6f38WeiAbNg= - -crypto-random-string@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" - integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== + version "3.3.0" + resolved "https://registry.npm.taobao.org/crypto-js/download/crypto-js-3.3.0.tgz?cache=0&sync_timestamp=1581509173139&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcrypto-js%2Fdownload%2Fcrypto-js-3.3.0.tgz#846dd1cce2f68aacfa156c8578f926a609b7976b" + integrity sha1-hG3RzOL2iqz6FWyFePkmpgm3l2s= css-blank-pseudo@^0.1.4: version "0.1.4" @@ -2722,7 +2425,7 @@ css-color-names@0.0.4, css-color-names@^0.0.4: css-declaration-sorter@^4.0.1: version "4.0.1" - resolved "https://registry.npm.taobao.org/css-declaration-sorter/download/css-declaration-sorter-4.0.1.tgz?cache=0&sync_timestamp=1576526465244&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-declaration-sorter%2Fdownload%2Fcss-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22" + resolved "https://registry.npm.taobao.org/css-declaration-sorter/download/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22" integrity sha1-wZiUD2OnbX42wecQGLABchBUyyI= dependencies: postcss "^7.0.1" @@ -2730,29 +2433,30 @@ css-declaration-sorter@^4.0.1: css-has-pseudo@^0.10.0: version "0.10.0" - resolved "https://registry.npm.taobao.org/css-has-pseudo/download/css-has-pseudo-0.10.0.tgz#3c642ab34ca242c59c41a125df9105841f6966ee" + resolved "https://registry.npm.taobao.org/css-has-pseudo/download/css-has-pseudo-0.10.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-has-pseudo%2Fdownload%2Fcss-has-pseudo-0.10.0.tgz#3c642ab34ca242c59c41a125df9105841f6966ee" integrity sha1-PGQqs0yiQsWcQaEl35EFhB9pZu4= dependencies: postcss "^7.0.6" postcss-selector-parser "^5.0.0-rc.4" css-loader@^3.4.2: - version "3.4.2" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-3.4.2.tgz#d3fdb3358b43f233b78501c5ed7b1c6da6133202" - integrity sha512-jYq4zdZT0oS0Iykt+fqnzVLRIeiPWhka+7BqPn+oSIpWJAHak5tmB/WZrJ2a21JhCeFyNnnlroSl8c+MtVndzA== + version "3.6.0" + resolved "https://registry.npm.taobao.org/css-loader/download/css-loader-3.6.0.tgz?cache=0&sync_timestamp=1592056888388&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-loader%2Fdownload%2Fcss-loader-3.6.0.tgz#2e4b2c7e6e2d27f8c8f28f61bffcd2e6c91ef645" + integrity sha1-Lkssfm4tJ/jI8o9hv/zS5ske9kU= dependencies: camelcase "^5.3.1" cssesc "^3.0.0" icss-utils "^4.1.1" loader-utils "^1.2.3" normalize-path "^3.0.0" - postcss "^7.0.23" + postcss "^7.0.32" postcss-modules-extract-imports "^2.0.0" postcss-modules-local-by-default "^3.0.2" - postcss-modules-scope "^2.1.1" + postcss-modules-scope "^2.2.0" postcss-modules-values "^3.0.0" - postcss-value-parser "^4.0.2" - schema-utils "^2.6.0" + postcss-value-parser "^4.1.0" + schema-utils "^2.7.0" + semver "^6.3.0" css-prefers-color-scheme@^3.1.1: version "3.1.1" @@ -2778,21 +2482,24 @@ css-select@^2.0.0: css-tree@1.0.0-alpha.37: version "1.0.0-alpha.37" - resolved "https://registry.npm.taobao.org/css-tree/download/css-tree-1.0.0-alpha.37.tgz?cache=0&sync_timestamp=1575583542748&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-tree%2Fdownload%2Fcss-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" + resolved "https://registry.npm.taobao.org/css-tree/download/css-tree-1.0.0-alpha.37.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-tree%2Fdownload%2Fcss-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" integrity sha1-mL69YsTB2flg7DQM+fdSLjBwmiI= dependencies: mdn-data "2.0.4" source-map "^0.6.1" -css-unit-converter@^1.1.1: - version "1.1.1" - resolved "https://registry.npm.taobao.org/css-unit-converter/download/css-unit-converter-1.1.1.tgz#d9b9281adcfd8ced935bdbaba83786897f64e996" - integrity sha1-2bkoGtz9jO2TW9urqDeGiX9k6ZY= +css-tree@1.0.0-alpha.39: + version "1.0.0-alpha.39" + resolved "https://registry.npm.taobao.org/css-tree/download/css-tree-1.0.0-alpha.39.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-tree%2Fdownload%2Fcss-tree-1.0.0-alpha.39.tgz#2bff3ffe1bb3f776cf7eefd91ee5cba77a149eeb" + integrity sha1-K/8//huz93bPfu/ZHuXLp3oUnus= + dependencies: + mdn-data "2.0.6" + source-map "^0.6.1" css-what@^3.2.1: - version "3.2.1" - resolved "https://registry.npm.taobao.org/css-what/download/css-what-3.2.1.tgz#f4a8f12421064621b456755e34a03a2c22df5da1" - integrity sha1-9KjxJCEGRiG0VnVeNKA6LCLfXaE= + version "3.3.0" + resolved "https://registry.npm.taobao.org/css-what/download/css-what-3.3.0.tgz#10fec696a9ece2e591ac772d759aacabac38cd39" + integrity sha1-EP7Glqns4uWRrHctdZqsq6w4zTk= cssdb@^4.4.0: version "4.4.0" @@ -2878,11 +2585,11 @@ cssnano@^4.1.10: postcss "^7.0.0" csso@^4.0.2: - version "4.0.2" - resolved "https://registry.npm.taobao.org/csso/download/csso-4.0.2.tgz#e5f81ab3a56b8eefb7f0092ce7279329f454de3d" - integrity sha1-5fgas6Vrju+38Aks5yeTKfRU3j0= + version "4.0.3" + resolved "https://registry.npm.taobao.org/csso/download/csso-4.0.3.tgz#0d9985dc852c7cc2b2cacfbbe1079014d1a8e903" + integrity sha1-DZmF3IUsfMKyys+74QeQFNGo6QM= dependencies: - css-tree "1.0.0-alpha.37" + css-tree "1.0.0-alpha.39" currently-unhandled@^0.4.1: version "0.4.1" @@ -2904,6 +2611,11 @@ d@1, d@^1.0.1: es5-ext "^0.10.50" type "^1.0.1" +dash-ast@^1.0.0: + version "1.0.0" + resolved "https://registry.npm.taobao.org/dash-ast/download/dash-ast-1.0.0.tgz#12029ba5fb2f8aa6f0a861795b23c1b4b6c27d37" + integrity sha1-EgKbpfsviqbwqGF5WyPBtLbCfTc= + dashdash@^1.12.0: version "1.14.1" resolved "https://registry.npm.taobao.org/dashdash/download/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" @@ -2912,43 +2624,43 @@ dashdash@^1.12.0: assert-plus "^1.0.0" datatables.net-autofill-bs4@^2.3.4: - version "2.3.4" - resolved "https://registry.npm.taobao.org/datatables.net-autofill-bs4/download/datatables.net-autofill-bs4-2.3.4.tgz#761fe2873f5350d1388a8edc6cf660e8047b186f" - integrity sha1-dh/ihz9TUNE4io7cbPZg6AR7GG8= + version "2.3.5" + resolved "https://registry.npm.taobao.org/datatables.net-autofill-bs4/download/datatables.net-autofill-bs4-2.3.5.tgz#7f9085c821372b605b6fb2103a5baffa3bf2d594" + integrity sha1-f5CFyCE3K2Bbb7IQOluv+jvy1ZQ= dependencies: - datatables.net-autofill "2.3.4" + datatables.net-autofill "2.3.5" datatables.net-bs4 "^1.10.15" jquery ">=1.7" -datatables.net-autofill@2.3.4: - version "2.3.4" - resolved "https://registry.npm.taobao.org/datatables.net-autofill/download/datatables.net-autofill-2.3.4.tgz#f509249fa58ebaf1be8ac3b470016037698a979c" - integrity sha1-9Qkkn6WOuvG+isO0cAFgN2mKl5w= +datatables.net-autofill@2.3.5: + version "2.3.5" + resolved "https://registry.npm.taobao.org/datatables.net-autofill/download/datatables.net-autofill-2.3.5.tgz#06df5242459a24d87d66bb322783a702cd46f16c" + integrity sha1-Bt9SQkWaJNh9ZrsyJ4OnAs1G8Ww= dependencies: datatables.net "^1.10.15" jquery ">=1.7" datatables.net-bs4@^1.10.15, datatables.net-bs4@^1.10.20: - version "1.10.20" - resolved "https://registry.npm.taobao.org/datatables.net-bs4/download/datatables.net-bs4-1.10.20.tgz#beff1c8d3510826c0678eaa055270607c0e53882" - integrity sha1-vv8cjTUQgmwGeOqgVScGB8DlOII= + version "1.10.21" + resolved "https://registry.npm.taobao.org/datatables.net-bs4/download/datatables.net-bs4-1.10.21.tgz#7a9ae489ebbd815cd869292450d284edd0f44697" + integrity sha1-eprkieu9gVzYaSkkUNKE7dD0Rpc= dependencies: - datatables.net "1.10.20" + datatables.net "1.10.21" jquery ">=1.7" datatables.net-buttons-bs4@^1.6.1: - version "1.6.1" - resolved "https://registry.npm.taobao.org/datatables.net-buttons-bs4/download/datatables.net-buttons-bs4-1.6.1.tgz#4abd9c83fbd753ffa4913adca1fae094df64b3ba" - integrity sha1-Sr2cg/vXU/+kkTrcofrglN9ks7o= + version "1.6.2" + resolved "https://registry.npm.taobao.org/datatables.net-buttons-bs4/download/datatables.net-buttons-bs4-1.6.2.tgz#234882e3ad345f358bce100768c2351a6dcee097" + integrity sha1-I0iC4600XzWLzhAHaMI1Gm3O4Jc= dependencies: datatables.net-bs4 "^1.10.15" - datatables.net-buttons "1.6.1" + datatables.net-buttons "1.6.2" jquery ">=1.7" -datatables.net-buttons@1.6.1: - version "1.6.1" - resolved "https://registry.npm.taobao.org/datatables.net-buttons/download/datatables.net-buttons-1.6.1.tgz#f62847e7c6f905fcf7339e7541a40741bbb3b8fb" - integrity sha1-9ihH58b5Bfz3M551QaQHQbuzuPs= +datatables.net-buttons@1.6.2: + version "1.6.2" + resolved "https://registry.npm.taobao.org/datatables.net-buttons/download/datatables.net-buttons-1.6.2.tgz#491bf5a808898c468d0b3a6547e3be6883aaebcc" + integrity sha1-SRv1qAiJjEaNCzplR+O+aIOq68w= dependencies: datatables.net "^1.10.15" jquery ">=1.7" @@ -2971,120 +2683,120 @@ datatables.net-colreorder@1.5.2: jquery ">=1.7" datatables.net-fixedcolumns-bs4@^3.3.0: - version "3.3.0" - resolved "https://registry.npm.taobao.org/datatables.net-fixedcolumns-bs4/download/datatables.net-fixedcolumns-bs4-3.3.0.tgz#15fc5e6cc7ccf5c60bbebe47185476b699a43e40" - integrity sha1-FfxebMfM9cYLvr5HGFR2tpmkPkA= + version "3.3.1" + resolved "https://registry.npm.taobao.org/datatables.net-fixedcolumns-bs4/download/datatables.net-fixedcolumns-bs4-3.3.1.tgz#b525ec7c3832248ca50e2ce8ff643fe49f1ac0bc" + integrity sha1-tSXsfDgyJIylDizo/2Q/5J8awLw= dependencies: datatables.net-bs4 "^1.10.15" - datatables.net-fixedcolumns "3.3.0" + datatables.net-fixedcolumns "3.3.1" jquery ">=1.7" -datatables.net-fixedcolumns@3.3.0: - version "3.3.0" - resolved "https://registry.npm.taobao.org/datatables.net-fixedcolumns/download/datatables.net-fixedcolumns-3.3.0.tgz#885b35b7f155ff5e08e1532e23363f14050bb1af" - integrity sha1-iFs1t/FV/14I4VMuIzY/FAULsa8= +datatables.net-fixedcolumns@3.3.1: + version "3.3.1" + resolved "https://registry.npm.taobao.org/datatables.net-fixedcolumns/download/datatables.net-fixedcolumns-3.3.1.tgz#18ecd4c8ff7e64b886dd92b19e18472430889a58" + integrity sha1-GOzUyP9+ZLiG3ZKxnhhHJDCImlg= dependencies: datatables.net "^1.10.15" jquery ">=1.7" datatables.net-fixedheader-bs4@^3.1.6: - version "3.1.6" - resolved "https://registry.npm.taobao.org/datatables.net-fixedheader-bs4/download/datatables.net-fixedheader-bs4-3.1.6.tgz#d1b12981bf127cfef658a0a742719aaeac6894eb" - integrity sha1-0bEpgb8SfP72WKCnQnGarqxolOs= + version "3.1.7" + resolved "https://registry.npm.taobao.org/datatables.net-fixedheader-bs4/download/datatables.net-fixedheader-bs4-3.1.7.tgz#13e86e203a62b616f28883562f862e4c585729e8" + integrity sha1-E+huIDpithbyiINWL4YuTFhXKeg= dependencies: datatables.net-bs4 "^1.10.15" - datatables.net-fixedheader "3.1.6" + datatables.net-fixedheader "3.1.7" jquery ">=1.7" -datatables.net-fixedheader@3.1.6: - version "3.1.6" - resolved "https://registry.npm.taobao.org/datatables.net-fixedheader/download/datatables.net-fixedheader-3.1.6.tgz#b139b88a213460dbeca5080c6251e81575697188" - integrity sha1-sTm4iiE0YNvspQgMYlHoFXVpcYg= +datatables.net-fixedheader@3.1.7: + version "3.1.7" + resolved "https://registry.npm.taobao.org/datatables.net-fixedheader/download/datatables.net-fixedheader-3.1.7.tgz#d1d02f96f765e6d1877f9f799ded9b818074abaf" + integrity sha1-0dAvlvdl5tGHf595ne2bgYB0q68= dependencies: datatables.net "^1.10.15" jquery ">=1.7" datatables.net-keytable-bs4@^2.5.1: - version "2.5.1" - resolved "https://registry.npm.taobao.org/datatables.net-keytable-bs4/download/datatables.net-keytable-bs4-2.5.1.tgz#011b1950322d9038b1a1958d0a3e58679d902cb2" - integrity sha1-ARsZUDItkDixoZWNCj5YZ52QLLI= + version "2.5.2" + resolved "https://registry.npm.taobao.org/datatables.net-keytable-bs4/download/datatables.net-keytable-bs4-2.5.2.tgz#331016441141de011440b42ad711b19c61f5b7ff" + integrity sha1-MxAWRBFB3gEUQLQq1xGxnGH1t/8= dependencies: datatables.net-bs4 "^1.10.15" - datatables.net-keytable "2.5.1" + datatables.net-keytable "2.5.2" jquery ">=1.7" -datatables.net-keytable@2.5.1: - version "2.5.1" - resolved "https://registry.npm.taobao.org/datatables.net-keytable/download/datatables.net-keytable-2.5.1.tgz#7a6ba0b8085eaacc2cdc20f6348e8abd77b899c6" - integrity sha1-emuguAheqsws3CD2NI6KvXe4mcY= +datatables.net-keytable@2.5.2: + version "2.5.2" + resolved "https://registry.npm.taobao.org/datatables.net-keytable/download/datatables.net-keytable-2.5.2.tgz#bb2a43cbf27be5deed40f354a60adeecc18cdb5f" + integrity sha1-uypDy/J75d7tQPNUpgre7MGM218= dependencies: datatables.net "^1.10.15" jquery ">=1.7" datatables.net-responsive-bs4@^2.2.3: - version "2.2.3" - resolved "https://registry.npm.taobao.org/datatables.net-responsive-bs4/download/datatables.net-responsive-bs4-2.2.3.tgz#639de17c1d31210ebf2b3c25f1c774c13f729e94" - integrity sha1-Y53hfB0xIQ6/Kzwl8cd0wT9ynpQ= + version "2.2.5" + resolved "https://registry.npm.taobao.org/datatables.net-responsive-bs4/download/datatables.net-responsive-bs4-2.2.5.tgz#c81e6c24b80237ee326454a40b08345563361ebb" + integrity sha1-yB5sJLgCN+4yZFSkCwg0VWM2Hrs= dependencies: datatables.net-bs4 "^1.10.15" - datatables.net-responsive "2.2.3" + datatables.net-responsive "2.2.5" jquery ">=1.7" -datatables.net-responsive@2.2.3: - version "2.2.3" - resolved "https://registry.npm.taobao.org/datatables.net-responsive/download/datatables.net-responsive-2.2.3.tgz#50a2b1b4955b16b32f573a3f00f473b0bfbee913" - integrity sha1-UKKxtJVbFrMvVzo/APRzsL++6RM= +datatables.net-responsive@2.2.5: + version "2.2.5" + resolved "https://registry.npm.taobao.org/datatables.net-responsive/download/datatables.net-responsive-2.2.5.tgz#33a11ec59b416a546a213b3b736e1ff8ad1fa5eb" + integrity sha1-M6EexZtBalRqITs7c24f+K0fpes= dependencies: datatables.net "^1.10.15" jquery ">=1.7" datatables.net-rowgroup-bs4@^1.1.1: - version "1.1.1" - resolved "https://registry.npm.taobao.org/datatables.net-rowgroup-bs4/download/datatables.net-rowgroup-bs4-1.1.1.tgz#57c17e611f8f8ec0aa456fd325bbf466545c230d" - integrity sha1-V8F+YR+PjsCqRW/TJbv0ZlRcIw0= + version "1.1.2" + resolved "https://registry.npm.taobao.org/datatables.net-rowgroup-bs4/download/datatables.net-rowgroup-bs4-1.1.2.tgz#63a4ab010ce2facb9680d359960333639c19973e" + integrity sha1-Y6SrAQzi+suWgNNZlgMzY5wZlz4= dependencies: datatables.net-bs4 "^1.10.15" - datatables.net-rowgroup "1.1.1" + datatables.net-rowgroup "1.1.2" jquery ">=1.7" -datatables.net-rowgroup@1.1.1: - version "1.1.1" - resolved "https://registry.npm.taobao.org/datatables.net-rowgroup/download/datatables.net-rowgroup-1.1.1.tgz#616531e5fb3c8642f6a51fb14801f8aff50cf90e" - integrity sha1-YWUx5fs8hkL2pR+xSAH4r/UM+Q4= +datatables.net-rowgroup@1.1.2: + version "1.1.2" + resolved "https://registry.npm.taobao.org/datatables.net-rowgroup/download/datatables.net-rowgroup-1.1.2.tgz#fd047599a3094b7f4e7923d8f3dc6bdf9781a114" + integrity sha1-/QR1maMJS39OeSPY89xr35eBoRQ= dependencies: datatables.net "^1.10.15" jquery ">=1.7" datatables.net-rowreorder-bs4@^1.2.6: - version "1.2.6" - resolved "https://registry.npm.taobao.org/datatables.net-rowreorder-bs4/download/datatables.net-rowreorder-bs4-1.2.6.tgz#b3333ede3d84d6b5cce346d1aece1fb0d2a937ac" - integrity sha1-szM+3j2E1rXM40bRrs4fsNKpN6w= + version "1.2.7" + resolved "https://registry.npm.taobao.org/datatables.net-rowreorder-bs4/download/datatables.net-rowreorder-bs4-1.2.7.tgz#42a05011e710c4fb0e2f9dca092e533ca3edf88f" + integrity sha1-QqBQEecQxPsOL53KCS5TPKPt+I8= dependencies: datatables.net-bs4 "^1.10.15" - datatables.net-rowreorder "1.2.6" + datatables.net-rowreorder "1.2.7" jquery ">=1.7" -datatables.net-rowreorder@1.2.6: - version "1.2.6" - resolved "https://registry.npm.taobao.org/datatables.net-rowreorder/download/datatables.net-rowreorder-1.2.6.tgz#e1788c4dea84b12223bc5dde3e4a70c316a12ae6" - integrity sha1-4XiMTeqEsSIjvF3ePkpwwxahKuY= +datatables.net-rowreorder@1.2.7: + version "1.2.7" + resolved "https://registry.npm.taobao.org/datatables.net-rowreorder/download/datatables.net-rowreorder-1.2.7.tgz#edc4bafa7096bbdb911ccfa956e466eec083c37d" + integrity sha1-7cS6+nCWu9uRHM+pVuRm7sCDw30= dependencies: datatables.net "^1.10.15" jquery ">=1.7" datatables.net-scroller-bs4@^2.0.1: - version "2.0.1" - resolved "https://registry.npm.taobao.org/datatables.net-scroller-bs4/download/datatables.net-scroller-bs4-2.0.1.tgz#aa7d33eee1cd26e03c6e5598116292d91874acae" - integrity sha1-qn0z7uHNJuA8blWYEWKS2Rh0rK4= + version "2.0.2" + resolved "https://registry.npm.taobao.org/datatables.net-scroller-bs4/download/datatables.net-scroller-bs4-2.0.2.tgz#7a575e36de01731d4943ce231e93bd650b5bc59f" + integrity sha1-eldeNt4Bcx1JQ84jHpO9ZQtbxZ8= dependencies: datatables.net-bs4 "^1.10.15" - datatables.net-scroller "2.0.1" + datatables.net-scroller "2.0.2" jquery ">=1.7" -datatables.net-scroller@2.0.1: - version "2.0.1" - resolved "https://registry.npm.taobao.org/datatables.net-scroller/download/datatables.net-scroller-2.0.1.tgz#17040d3f1da9b4e174729b6b7f0e36b6bf818adc" - integrity sha1-FwQNPx2ptOF0cptrfw42tr+Bitw= +datatables.net-scroller@2.0.2: + version "2.0.2" + resolved "https://registry.npm.taobao.org/datatables.net-scroller/download/datatables.net-scroller-2.0.2.tgz#12f40e1d395e5bfe5e0aa97b534c1b92888b3362" + integrity sha1-EvQOHTleW/5eCql7U0wbkoiLM2I= dependencies: datatables.net "^1.10.15" jquery ">=1.7" @@ -3106,17 +2818,17 @@ datatables.net-select@1.3.1: datatables.net "^1.10.15" jquery ">=1.7" -datatables.net@1.10.20, datatables.net@^1.10.15, datatables.net@^1.10.20: - version "1.10.20" - resolved "https://registry.npm.taobao.org/datatables.net/download/datatables.net-1.10.20.tgz#9d65ecc3c83cbe7baa4fa5a053405c8fe42c1350" - integrity sha1-nWXsw8g8vnuqT6WgU0Bcj+QsE1A= +datatables.net@1.10.21, datatables.net@^1.10.15, datatables.net@^1.10.20: + version "1.10.21" + resolved "https://registry.npm.taobao.org/datatables.net/download/datatables.net-1.10.21.tgz#f1d35c8e5c3eb7f5caef39e80cd5b836a8c77103" + integrity sha1-8dNcjlw+t/XK7znoDNW4NqjHcQM= dependencies: jquery ">=1.7" daterangepicker@^3.0.5: - version "3.0.5" - resolved "https://registry.npm.taobao.org/daterangepicker/download/daterangepicker-3.0.5.tgz#97180f233cf9c222cd0767b9c37c2926976d633a" - integrity sha1-lxgPIzz5wiLNB2e5w3wpJpdtYzo= + version "3.1.0" + resolved "https://registry.npm.taobao.org/daterangepicker/download/daterangepicker-3.1.0.tgz#718d606614331df3e774c9aba82ccd8838d45da1" + integrity sha1-cY1gZhQzHfPndMmrqCzNiDjUXaE= dependencies: jquery ">=1.10" moment "^2.9.0" @@ -3128,26 +2840,21 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3: dependencies: ms "2.0.0" -debug@4, debug@^4.1.0, debug@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" - integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== - dependencies: - ms "^2.1.1" - -debug@^3.0.0, debug@^3.1.1, debug@^3.2.5: +debug@^3.1.1, debug@^3.2.5: version "3.2.6" resolved "https://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" integrity sha1-6D0X3hbYp++3cX7b5fsQE17uYps= dependencies: ms "^2.1.1" -debuglog@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" - integrity sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI= +debug@^4.1.0, debug@^4.1.1: + version "4.1.1" + resolved "https://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E= + dependencies: + ms "^2.1.1" -decamelize@^1.1.1, decamelize@^1.1.2, decamelize@^1.2.0: +decamelize@^1.1.2, decamelize@^1.2.0: version "1.2.0" resolved "https://registry.npm.taobao.org/decamelize/download/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= @@ -3157,16 +2864,9 @@ decode-uri-component@^0.2.0: resolved "https://registry.npm.taobao.org/decode-uri-component/download/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= -decompress-response@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" - integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= - dependencies: - mimic-response "^1.0.0" - deep-equal@^1.0.0, deep-equal@^1.0.1: version "1.1.1" - resolved "https://registry.npm.taobao.org/deep-equal/download/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" + resolved "https://registry.npm.taobao.org/deep-equal/download/deep-equal-1.1.1.tgz?cache=0&sync_timestamp=1590392787863&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdeep-equal%2Fdownload%2Fdeep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" integrity sha1-tcmMlCzv+vfLBR4k4UNKJaLmB2o= dependencies: is-arguments "^1.0.4" @@ -3176,11 +2876,6 @@ deep-equal@^1.0.0, deep-equal@^1.0.1: object-keys "^1.1.1" regexp.prototype.flags "^1.2.0" -deep-extend@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" - integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== - deep-is@~0.1.3: version "0.1.3" resolved "https://registry.npm.taobao.org/deep-is/download/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" @@ -3188,17 +2883,12 @@ deep-is@~0.1.3: default-gateway@^4.2.0: version "4.2.0" - resolved "https://registry.npm.taobao.org/default-gateway/download/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" + resolved "https://registry.npm.taobao.org/default-gateway/download/default-gateway-4.2.0.tgz?cache=0&sync_timestamp=1590419212936&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefault-gateway%2Fdownload%2Fdefault-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" integrity sha1-FnEEx1AMIRX23WmwpTa7jtcgVSs= dependencies: execa "^1.0.0" ip-regex "^2.1.0" -defer-to-connect@^1.0.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" - integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== - define-properties@^1.1.2, define-properties@^1.1.3: version "1.1.3" resolved "https://registry.npm.taobao.org/define-properties/download/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" @@ -3256,9 +2946,9 @@ delegates@^1.0.0: resolved "https://registry.npm.taobao.org/delegates/download/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= -depd@^1.1.2, depd@~1.1.2: +depd@~1.1.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + resolved "https://registry.npm.taobao.org/depd/download/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= des.js@^1.0.0: @@ -3284,15 +2974,7 @@ detect-node@^2.0.4: resolved "https://registry.npm.taobao.org/detect-node/download/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" integrity sha1-AU7o+PZpxcWAI9pkuBecCDooxGw= -dezalgo@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.3.tgz#7f742de066fc748bc8db820569dddce49bf0d456" - integrity sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY= - dependencies: - asap "^2.0.0" - wrappy "1" - -dfa@^1.0.0: +dfa@^1.2.0: version "1.2.0" resolved "https://registry.npm.taobao.org/dfa/download/dfa-1.2.0.tgz#96ac3204e2d29c49ea5b57af8d92c2ae12790657" integrity sha1-lqwyBOLSnEnqW1evjZLCrhJ5Blc= @@ -3328,7 +3010,7 @@ dns-txt@^2.0.2: dom-serializer@0: version "0.2.2" - resolved "https://registry.npm.taobao.org/dom-serializer/download/dom-serializer-0.2.2.tgz?cache=0&sync_timestamp=1573447907918&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdom-serializer%2Fdownload%2Fdom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" + resolved "https://registry.npm.taobao.org/dom-serializer/download/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" integrity sha1-GvuB9TNxcXXUeGVd68XjMtn5u1E= dependencies: domelementtype "^2.0.1" @@ -3336,7 +3018,7 @@ dom-serializer@0: domain-browser@^1.1.1: version "1.2.0" - resolved "https://registry.npm.taobao.org/domain-browser/download/domain-browser-1.2.0.tgz?cache=0&sync_timestamp=1575879334171&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomain-browser%2Fdownload%2Fdomain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" + resolved "https://registry.npm.taobao.org/domain-browser/download/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" integrity sha1-PTH1AZGmdJ3RN1p/Ui6CPULlTto= domelementtype@1: @@ -3357,17 +3039,10 @@ domutils@^1.7.0: dom-serializer "0" domelementtype "1" -dot-prop@^4.1.1: - version "4.2.0" - resolved "https://registry.npm.taobao.org/dot-prop/download/dot-prop-4.2.0.tgz?cache=0&sync_timestamp=1572620518450&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdot-prop%2Fdownload%2Fdot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" - integrity sha1-HxngwuGqDjJ5fEl5nyg3rGr2nFc= - dependencies: - is-obj "^1.0.0" - dot-prop@^5.2.0: version "5.2.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.2.0.tgz#c34ecc29556dc45f1f4c22697b6f4904e0cc4fcb" - integrity sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A== + resolved "https://registry.npm.taobao.org/dot-prop/download/dot-prop-5.2.0.tgz#c34ecc29556dc45f1f4c22697b6f4904e0cc4fcb" + integrity sha1-w07MKVVtxF8fTCJpe29JBODMT8s= dependencies: is-obj "^2.0.0" @@ -3378,11 +3053,6 @@ duplexer2@~0.1.4: dependencies: readable-stream "^2.0.2" -duplexer3@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" - integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= - duplexify@^3.4.2, duplexify@^3.6.0: version "3.7.1" resolved "https://registry.npm.taobao.org/duplexify/download/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" @@ -3395,7 +3065,7 @@ duplexify@^3.4.2, duplexify@^3.6.0: ecc-jsbn@~0.1.1: version "0.1.2" - resolved "https://registry.npm.taobao.org/ecc-jsbn/download/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" + resolved "https://registry.npm.taobao.org/ecc-jsbn/download/ecc-jsbn-0.1.2.tgz?cache=0&sync_timestamp=1589682745945&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fecc-jsbn%2Fdownload%2Fecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= dependencies: jsbn "~0.1.0" @@ -3411,20 +3081,15 @@ ekko-lightbox@^5.3.0: resolved "https://registry.npm.taobao.org/ekko-lightbox/download/ekko-lightbox-5.3.0.tgz#fbfcd9df93a8d1cdbf8770adc8c05aaac4d24f56" integrity sha1-+/zZ35Oo0c2/h3CtyMBaqsTST1Y= -electron-to-chromium@^1.3.322: - version "1.3.333" - resolved "https://registry.npm.taobao.org/electron-to-chromium/download/electron-to-chromium-1.3.333.tgz?cache=0&sync_timestamp=1578963913491&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Felectron-to-chromium%2Fdownload%2Felectron-to-chromium-1.3.333.tgz#b835de183afbaaf8655a14f542db06d67a00cba1" - integrity sha1-uDXeGDr7qvhlWhT1QtsG1noAy6E= +electron-to-chromium@^1.3.488: + version "1.3.498" + resolved "https://registry.npm.taobao.org/electron-to-chromium/download/electron-to-chromium-1.3.498.tgz?cache=0&sync_timestamp=1594798561149&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Felectron-to-chromium%2Fdownload%2Felectron-to-chromium-1.3.498.tgz#fd7188c8a49d6d0b5df1df55a1f1a4bf2c177457" + integrity sha1-/XGIyKSdbQtd8d9VofGkvywXdFc= -electron-to-chromium@^1.3.390: - version "1.3.393" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.393.tgz#d13fa4cbf5065e18451c84465d22aef6aca9a911" - integrity sha512-Ko3/VdhZAaMaJBLBFqEJ+M1qMiBI8sJfPY/hSJvDrkB3Do8LJsL9tmXy4w7o9nPXif/jFaZGSlXTQWU8XVsYtg== - -elliptic@^6.0.0: - version "6.5.2" - resolved "https://registry.npm.taobao.org/elliptic/download/elliptic-6.5.2.tgz#05c5678d7173c049d8ca433552224a495d0e3762" - integrity sha1-BcVnjXFzwEnYykM1UiJKSV0ON2I= +elliptic@^6.0.0, elliptic@^6.5.2: + version "6.5.3" + resolved "https://registry.npm.taobao.org/elliptic/download/elliptic-6.5.3.tgz?cache=0&sync_timestamp=1592492844326&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Felliptic%2Fdownload%2Felliptic-6.5.3.tgz#cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6" + integrity sha1-y1nrLv2vc6C9eMzXAVpirW4Pk9Y= dependencies: bn.js "^4.4.0" brorand "^1.0.1" @@ -3436,36 +3101,19 @@ elliptic@^6.0.0: emoji-regex@^7.0.1: version "7.0.3" - resolved "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + resolved "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-7.0.3.tgz?cache=0&sync_timestamp=1586511809263&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Femoji-regex%2Fdownload%2Femoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" integrity sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY= -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -emojis-list@^2.0.0: - version "2.1.0" - resolved "https://registry.npm.taobao.org/emojis-list/download/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" - integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= - emojis-list@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" - integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + resolved "https://registry.npm.taobao.org/emojis-list/download/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + integrity sha1-VXBmIEatKeLpFucariYKvf9Pang= encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.npm.taobao.org/encodeurl/download/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= -encoding@^0.1.12: - version "0.1.13" - resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" - integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== - dependencies: - iconv-lite "^0.6.2" - end-of-stream@^1.0.0, end-of-stream@^1.1.0: version "1.4.4" resolved "https://registry.npm.taobao.org/end-of-stream/download/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" @@ -3473,33 +3121,19 @@ end-of-stream@^1.0.0, end-of-stream@^1.1.0: dependencies: once "^1.4.0" -enhanced-resolve@4.1.0: - version "4.1.0" - resolved "https://registry.npm.taobao.org/enhanced-resolve/download/enhanced-resolve-4.1.0.tgz?cache=0&sync_timestamp=1572993058578&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fenhanced-resolve%2Fdownload%2Fenhanced-resolve-4.1.0.tgz#41c7e0bfdfe74ac1ffe1e57ad6a5c6c9f3742a7f" - integrity sha1-Qcfgv9/nSsH/4eV61qXGyfN0Kn8= - dependencies: - graceful-fs "^4.1.2" - memory-fs "^0.4.0" - tapable "^1.0.0" - -enhanced-resolve@^4.1.0: - version "4.1.1" - resolved "https://registry.npm.taobao.org/enhanced-resolve/download/enhanced-resolve-4.1.1.tgz?cache=0&sync_timestamp=1572993058578&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fenhanced-resolve%2Fdownload%2Fenhanced-resolve-4.1.1.tgz#2937e2b8066cd0fe7ce0990a98f0d71a35189f66" - integrity sha1-KTfiuAZs0P584JkKmPDXGjUYn2Y= +enhanced-resolve@^4.1.0, enhanced-resolve@^4.1.1: + version "4.3.0" + resolved "https://registry.npm.taobao.org/enhanced-resolve/download/enhanced-resolve-4.3.0.tgz?cache=0&sync_timestamp=1594803831426&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fenhanced-resolve%2Fdownload%2Fenhanced-resolve-4.3.0.tgz#3b806f3bfafc1ec7de69551ef93cca46c1704126" + integrity sha1-O4BvO/r8HsfeaVUe+TzKRsFwQSY= dependencies: graceful-fs "^4.1.2" memory-fs "^0.5.0" tapable "^1.0.0" entities@^2.0.0: - version "2.0.0" - resolved "https://registry.npm.taobao.org/entities/download/entities-2.0.0.tgz#68d6084cab1b079767540d80e56a39b423e4abf4" - integrity sha1-aNYITKsbB5dnVA2A5Wo5tCPkq/Q= - -err-code@^1.0.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/err-code/-/err-code-1.1.2.tgz#06e0116d3028f6aef4806849eb0ea6a748ae6960" - integrity sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA= + version "2.0.3" + resolved "https://registry.npm.taobao.org/entities/download/entities-2.0.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fentities%2Fdownload%2Fentities-2.0.3.tgz#5c487e5742ab93c15abb5da22759b8590ec03b7f" + integrity sha1-XEh+V0Krk8Fau12iJ1m4WQ7AO38= errno@^0.1.3, errno@~0.1.7: version "0.1.7" @@ -3515,22 +3149,22 @@ error-ex@^1.2.0, error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.17.0-next.1: - version "1.17.0" - resolved "https://registry.npm.taobao.org/es-abstract/download/es-abstract-1.17.0.tgz#f42a517d0036a5591dbb2c463591dc8bb50309b1" - integrity sha1-9CpRfQA2pVkduyxGNZHci7UDCbE= +es-abstract@^1.17.0-next.1, es-abstract@^1.17.2, es-abstract@^1.17.5: + version "1.17.6" + resolved "https://registry.npm.taobao.org/es-abstract/download/es-abstract-1.17.6.tgz?cache=0&sync_timestamp=1592109126243&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.17.6.tgz#9142071707857b2cacc7b89ecb670316c3e2d52a" + integrity sha1-kUIHFweFeyysx7iey2cDFsPi1So= dependencies: es-to-primitive "^1.2.1" function-bind "^1.1.1" has "^1.0.3" has-symbols "^1.0.1" - is-callable "^1.1.5" - is-regex "^1.0.5" + is-callable "^1.2.0" + is-regex "^1.1.0" object-inspect "^1.7.0" object-keys "^1.1.1" object.assign "^4.1.0" - string.prototype.trimleft "^2.1.1" - string.prototype.trimright "^2.1.1" + string.prototype.trimend "^1.0.1" + string.prototype.trimstart "^1.0.1" es-to-primitive@^1.2.1: version "1.2.1" @@ -3543,7 +3177,7 @@ es-to-primitive@^1.2.1: es5-ext@^0.10.35, es5-ext@^0.10.50, es5-ext@~0.10.14: version "0.10.53" - resolved "https://registry.npm.taobao.org/es5-ext/download/es5-ext-0.10.53.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fes5-ext%2Fdownload%2Fes5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1" + resolved "https://registry.npm.taobao.org/es5-ext/download/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1" integrity sha1-k8WjrP2+8nUiCtcmRK0C7hg2jeE= dependencies: es6-iterator "~2.0.3" @@ -3598,10 +3232,10 @@ es6-symbol@^3.1.1, es6-symbol@~3.1.1, es6-symbol@~3.1.3: d "^1.0.1" ext "^1.1.2" -escape-goat@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675" - integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q== +escalade@^3.0.1: + version "3.0.2" + resolved "https://registry.npm.taobao.org/escalade/download/escalade-3.0.2.tgz?cache=0&sync_timestamp=1594742944513&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescalade%2Fdownload%2Fescalade-3.0.2.tgz#6a580d70edb87880f22b4c91d0d56078df6962c4" + integrity sha1-algNcO24eIDyK0yR0NVgeN9pYsQ= escape-html@~1.0.3: version "1.0.3" @@ -3614,11 +3248,11 @@ escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= escodegen@^1.11.1: - version "1.12.1" - resolved "https://registry.npm.taobao.org/escodegen/download/escodegen-1.12.1.tgz#08770602a74ac34c7a90ca9229e7d51e379abc76" - integrity sha1-CHcGAqdKw0x6kMqSKefVHjeavHY= + version "1.14.3" + resolved "https://registry.npm.taobao.org/escodegen/download/escodegen-1.14.3.tgz?cache=0&sync_timestamp=1592866188657&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescodegen%2Fdownload%2Fescodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" + integrity sha1-TnuB+6YVgdyXWC7XjKt/Do1j9QM= dependencies: - esprima "^3.1.3" + esprima "^4.0.1" estraverse "^4.2.0" esutils "^2.0.2" optionator "^0.8.1" @@ -3627,7 +3261,7 @@ escodegen@^1.11.1: escodegen@~1.2.0: version "1.2.0" - resolved "https://registry.npm.taobao.org/escodegen/download/escodegen-1.2.0.tgz#09de7967791cc958b7f89a2ddb6d23451af327e1" + resolved "https://registry.npm.taobao.org/escodegen/download/escodegen-1.2.0.tgz?cache=0&sync_timestamp=1592866188657&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescodegen%2Fdownload%2Fescodegen-1.2.0.tgz#09de7967791cc958b7f89a2ddb6d23451af327e1" integrity sha1-Cd55Z3kcyVi3+Jot220jRRrzJ+E= dependencies: esprima "~1.0.4" @@ -3636,18 +3270,6 @@ escodegen@~1.2.0: optionalDependencies: source-map "~0.1.30" -escodegen@~1.9.0: - version "1.9.1" - resolved "https://registry.npm.taobao.org/escodegen/download/escodegen-1.9.1.tgz#dbae17ef96c8e4bedb1356f4504fa4cc2f7cb7e2" - integrity sha1-264X75bI5L7bE1b0UE+kzC98t+I= - dependencies: - esprima "^3.1.3" - estraverse "^4.2.0" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.6.1" - eslint-scope@^4.0.3: version "4.0.3" resolved "https://registry.npm.taobao.org/eslint-scope/download/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" @@ -3656,12 +3278,7 @@ eslint-scope@^4.0.3: esrecurse "^4.1.0" estraverse "^4.1.1" -esprima@^3.1.3: - version "3.1.3" - resolved "https://registry.npm.taobao.org/esprima/download/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" - integrity sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM= - -esprima@^4.0.0: +esprima@^4.0.0, esprima@^4.0.1: version "4.0.1" resolved "https://registry.npm.taobao.org/esprima/download/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha1-E7BM2z5sXRnfkatph6hpVhmwqnE= @@ -3727,9 +3344,9 @@ event-emitter@~0.3.5: es5-ext "~0.10.14" eventemitter3@^4.0.0: - version "4.0.0" - resolved "https://registry.npm.taobao.org/eventemitter3/download/eventemitter3-4.0.0.tgz#d65176163887ee59f386d64c82610b696a4a74eb" - integrity sha1-1lF2FjiH7lnzhtZMgmELaWpKdOs= + version "4.0.4" + resolved "https://registry.npm.taobao.org/eventemitter3/download/eventemitter3-4.0.4.tgz#b5463ace635a083d018bdc7c917b4c5f10a85384" + integrity sha1-tUY6zmNaCD0Bi9x8kXtMXxCoU4Q= events@^3.0.0: version "3.1.0" @@ -3753,7 +3370,7 @@ evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: execa@^1.0.0: version "1.0.0" - resolved "https://registry.npm.taobao.org/execa/download/execa-1.0.0.tgz?cache=0&sync_timestamp=1576749101742&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + resolved "https://registry.npm.taobao.org/execa/download/execa-1.0.0.tgz?cache=0&sync_timestamp=1594145111640&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" integrity sha1-xiNqW7TfbW8V6I5/AXeYIWdJ3dg= dependencies: cross-spawn "^6.0.0" @@ -3822,7 +3439,7 @@ express@^4.17.1: ext@^1.1.2: version "1.4.0" - resolved "https://registry.npm.taobao.org/ext/download/ext-1.4.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fext%2Fdownload%2Fext-1.4.0.tgz#89ae7a07158f79d35517882904324077e4379244" + resolved "https://registry.npm.taobao.org/ext/download/ext-1.4.0.tgz#89ae7a07158f79d35517882904324077e4379244" integrity sha1-ia56BxWPedNVF4gpBDJAd+Q3kkQ= dependencies: type "^2.0.0" @@ -3871,34 +3488,14 @@ extsprintf@^1.2.0: resolved "https://registry.npm.taobao.org/extsprintf/download/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= -falafel@^2.1.0: - version "2.1.0" - resolved "https://registry.npm.taobao.org/falafel/download/falafel-2.1.0.tgz#96bb17761daba94f46d001738b3cedf3a67fe06c" - integrity sha1-lrsXdh2rqU9G0AFzizzt86Z/4Gw= - dependencies: - acorn "^5.0.0" - foreach "^2.0.5" - isarray "0.0.1" - object-keys "^1.0.6" - -fast-deep-equal@^2.0.1: - version "2.0.1" - resolved "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-2.0.1.tgz?cache=0&sync_timestamp=1575383928809&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-deep-equal%2Fdownload%2Ffast-deep-equal-2.0.1.tgz#7b05218ddf9667bf7f370bf7fdb2cb15fdd0aa49" - integrity sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk= - fast-deep-equal@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4" - integrity sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA== - -fast-diff@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/fast-diff/-/fast-diff-1.2.0.tgz#73ee11982d86caaf7959828d519cfe927fac5f03" - integrity sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w== + version "3.1.3" + resolved "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-3.1.3.tgz?cache=0&sync_timestamp=1591599675178&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-deep-equal%2Fdownload%2Ffast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU= fast-json-stable-stringify@^2.0.0: version "2.1.0" - resolved "https://registry.npm.taobao.org/fast-json-stable-stringify/download/fast-json-stable-stringify-2.1.0.tgz?cache=0&sync_timestamp=1576340291001&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-json-stable-stringify%2Fdownload%2Ffast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + resolved "https://registry.npm.taobao.org/fast-json-stable-stringify/download/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM= fast-levenshtein@~2.0.6: @@ -3907,9 +3504,9 @@ fast-levenshtein@~2.0.6: integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= fast-memoize@^2.5.1: - version "2.5.1" - resolved "https://registry.npm.taobao.org/fast-memoize/download/fast-memoize-2.5.1.tgz#c3519241e80552ce395e1a32dcdde8d1fd680f5d" - integrity sha1-w1GSQegFUs45Xhoy3N3o0f1oD10= + version "2.5.2" + resolved "https://registry.npm.taobao.org/fast-memoize/download/fast-memoize-2.5.2.tgz#79e3bb6a4ec867ea40ba0e7146816f6cdce9b57e" + integrity sha1-eeO7ak7IZ+pAug5xRoFvbNzptX4= fastclick@^1.0.6: version "1.0.6" @@ -3931,14 +3528,14 @@ faye-websocket@~0.11.1: websocket-driver ">=0.5.1" figgy-pudding@^3.5.1: - version "3.5.1" - resolved "https://registry.npm.taobao.org/figgy-pudding/download/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790" - integrity sha1-hiRwESkBxyeg5JWoB0S9W6odZ5A= + version "3.5.2" + resolved "https://registry.npm.taobao.org/figgy-pudding/download/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" + integrity sha1-tO7oFIq7Adzx0aw0Nn1Z4S+mHW4= file-loader@^6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.0.0.tgz#97bbfaab7a2460c07bcbd72d3a6922407f67649f" - integrity sha512-/aMOAYEFXDdjG0wytpTL5YQLfZnnTmLNjn+AIrJ/6HVnTfDqLsVKUUwkDf4I4kgex36BvjuXEn/TX9B/1ESyqQ== + resolved "https://registry.npm.taobao.org/file-loader/download/file-loader-6.0.0.tgz#97bbfaab7a2460c07bcbd72d3a6922407f67649f" + integrity sha1-l7v6q3okYMB7y9ctOmkiQH9nZJ8= dependencies: loader-utils "^2.0.0" schema-utils "^2.6.5" @@ -3949,9 +3546,9 @@ file-uri-to-path@1.0.0: integrity sha1-VTp7hEb/b2hDWcRF8eN6BdrMM90= filepond@^4.9.3: - version "4.9.4" - resolved "https://registry.npm.taobao.org/filepond/download/filepond-4.9.4.tgz#84889fa42fe2f920ab3664380ccf64d9690ddbea" - integrity sha1-hIifpC/i+SCrNmQ4DM9k2WkN2+o= + version "4.18.0" + resolved "https://registry.npm.taobao.org/filepond/download/filepond-4.18.0.tgz#6d56d3d13b55b5f49530351c4b11946ab682dfc4" + integrity sha1-bVbT0TtVtfSVMDUcSxGUaraC38Q= fill-range@^4.0.0: version "4.0.0" @@ -3963,10 +3560,17 @@ fill-range@^4.0.0: repeat-string "^1.6.1" to-regex-range "^2.1.0" +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.npm.taobao.org/fill-range/download/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha1-GRmmp8df44ssfHflGYU12prN2kA= + dependencies: + to-regex-range "^5.0.1" + filterizr@^2.2.3: - version "2.2.3" - resolved "https://registry.npm.taobao.org/filterizr/download/filterizr-2.2.3.tgz#345f7bc5d861cdd63f15e7ad7fc312355752a03a" - integrity sha1-NF97xdhhzdY/Feetf8MSNVdSoDo= + version "2.2.4" + resolved "https://registry.npm.taobao.org/filterizr/download/filterizr-2.2.4.tgz#02fd75cffd46ef7acc85f55e132064650ae90a14" + integrity sha1-Av11z/1G73rMhfVeEyBkZQrpChQ= dependencies: fast-memoize "^2.5.1" imagesloaded "^4.1.4" @@ -3993,23 +3597,15 @@ find-cache-dir@^2.1.0: make-dir "^2.0.0" pkg-dir "^3.0.0" -find-cache-dir@^3.0.0, find-cache-dir@^3.2.0: - version "3.2.0" - resolved "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-3.2.0.tgz#e7fe44c1abc1299f516146e563108fd1006c1874" - integrity sha1-5/5EwavBKZ9RYUblYxCP0QBsGHQ= +find-cache-dir@^3.0.0, find-cache-dir@^3.3.1: + version "3.3.1" + resolved "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880" + integrity sha1-ibM/rUpGcNqpT4Vff74x1thP6IA= dependencies: commondir "^1.0.1" - make-dir "^3.0.0" + make-dir "^3.0.2" pkg-dir "^4.1.0" -find-up@4.1.0, find-up@^4.0.0: - version "4.1.0" - resolved "https://registry.npm.taobao.org/find-up/download/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk= - dependencies: - locate-path "^5.0.0" - path-exists "^4.0.0" - find-up@^1.0.0: version "1.1.2" resolved "https://registry.npm.taobao.org/find-up/download/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" @@ -4018,13 +3614,6 @@ find-up@^1.0.0: path-exists "^2.0.0" pinkie-promise "^2.0.0" -find-up@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= - dependencies: - locate-path "^2.0.0" - find-up@^3.0.0: version "3.0.0" resolved "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" @@ -4032,9 +3621,17 @@ find-up@^3.0.0: dependencies: locate-path "^3.0.0" -findup-sync@3.0.0: +find-up@^4.0.0: + version "4.1.0" + resolved "https://registry.npm.taobao.org/find-up/download/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk= + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +findup-sync@^3.0.0: version "3.0.0" - resolved "https://registry.npm.taobao.org/findup-sync/download/findup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1" + resolved "https://registry.npm.taobao.org/findup-sync/download/findup-sync-3.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffindup-sync%2Fdownload%2Ffindup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1" integrity sha1-F7EI+e5RLft6XH88iyfqnhqcCNE= dependencies: detect-file "^1.0.0" @@ -4043,14 +3640,14 @@ findup-sync@3.0.0: resolve-dir "^1.0.1" flag-icon-css@^3.4.6: - version "3.4.6" - resolved "https://registry.yarnpkg.com/flag-icon-css/-/flag-icon-css-3.4.6.tgz#7e51099c85648c65f86d9ebb9c0ec6f5d8826714" - integrity sha512-rF69rt19Hr63SRQTiPBzQABaYB20LAgZhDkr/AxqSdgmCIN+tC5PRMz56Y0gxehFXJmdRwv55+GMi7R1fCRTwg== + version "3.5.0" + resolved "https://registry.npm.taobao.org/flag-icon-css/download/flag-icon-css-3.5.0.tgz#430747d5cb91e60babf85494de99173c16dc7cf2" + integrity sha1-QwdH1cuR5gur+FSU3pkXPBbcfPI= flatted@^2.0.1: - version "2.0.1" - resolved "https://registry.npm.taobao.org/flatted/download/flatted-2.0.1.tgz#69e57caa8f0eacbc281d2e2cb458d46fdb449e08" - integrity sha1-aeV8qo8OrLwoHS4stFjUb9tEngg= + version "2.0.2" + resolved "https://registry.npm.taobao.org/flatted/download/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" + integrity sha1-RXWyHivO50NKqb5mL0t7X5wrUTg= flatten@^1.0.2: version "1.0.3" @@ -4058,9 +3655,9 @@ flatten@^1.0.2: integrity sha1-wSg6yfJ7Noq8HjbR/3sEUBowNWs= flot@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/flot/-/flot-4.2.0.tgz#25ec79d9c773fff4cb9816e30714bfcaa9ecc702" - integrity sha512-Uy+0hPOpi8X2mvTG2MOnuI8fbQt5mz/vewyoxA5DZXWhYmywZS+PfFnLANb0Os5VXongqKos9ahF+Wu2U4Cp1g== + version "4.2.1" + resolved "https://registry.npm.taobao.org/flot/download/flot-4.2.1.tgz#a44ea240decee51cbd75d97ca69ec12e59365d27" + integrity sha1-pE6iQN7O5Ry9ddl8pp7BLlk2XSc= flush-write-stream@^1.0.0: version "1.1.1" @@ -4071,27 +3668,25 @@ flush-write-stream@^1.0.0: readable-stream "^2.3.6" follow-redirects@^1.0.0: - version "1.9.0" - resolved "https://registry.npm.taobao.org/follow-redirects/download/follow-redirects-1.9.0.tgz#8d5bcdc65b7108fe1508649c79c12d732dcedb4f" - integrity sha1-jVvNxltxCP4VCGScecEtcy3O208= - dependencies: - debug "^3.0.0" + version "1.12.1" + resolved "https://registry.npm.taobao.org/follow-redirects/download/follow-redirects-1.12.1.tgz?cache=0&sync_timestamp=1592518278637&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffollow-redirects%2Fdownload%2Ffollow-redirects-1.12.1.tgz#de54a6205311b93d60398ebc01cf7015682312b6" + integrity sha1-3lSmIFMRuT1gOY68Ac9wFWgjErY= fontkit@^1.8.0: - version "1.8.0" - resolved "https://registry.npm.taobao.org/fontkit/download/fontkit-1.8.0.tgz#deb9351619e90ddc91707b6156a9f14c8ab11554" - integrity sha1-3rk1FhnpDdyRcHthVqnxTIqxFVQ= + version "1.8.1" + resolved "https://registry.npm.taobao.org/fontkit/download/fontkit-1.8.1.tgz#ae77485376f1096b45548bf6ced9a07af62a7846" + integrity sha1-rndIU3bxCWtFVIv2ztmgevYqeEY= dependencies: - babel-runtime "^6.11.6" - brfs "^1.4.0" + babel-runtime "^6.26.0" + brfs "^2.0.0" brotli "^1.2.0" - browserify-optional "^1.0.0" - clone "^1.0.1" + browserify-optional "^1.0.1" + clone "^1.0.4" deep-equal "^1.0.0" - dfa "^1.0.0" + dfa "^1.2.0" restructure "^0.5.3" tiny-inflate "^1.0.2" - unicode-properties "^1.0.0" + unicode-properties "^1.2.2" unicode-trie "^0.3.0" for-in@^1.0.2: @@ -4099,11 +3694,6 @@ for-in@^1.0.2: resolved "https://registry.npm.taobao.org/for-in/download/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= -foreach@^2.0.5: - version "2.0.5" - resolved "https://registry.npm.taobao.org/foreach/download/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" - integrity sha1-C+4AUBiusmDQo6865ljdATbsG5k= - forever-agent@~0.6.1: version "0.6.1" resolved "https://registry.npm.taobao.org/forever-agent/download/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" @@ -4144,25 +3734,25 @@ from2@^2.1.0: readable-stream "^2.0.0" fs-extra@^9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.0.0.tgz#b6afc31036e247b2466dc99c29ae797d5d4580a3" - integrity sha512-pmEYSk3vYsG/bF651KPUXZ+hvjpgWYw/Gc7W9NFUe3ZVLczKKWIij3IKpOrQcdw4TILtibFslZ0UmR8Vvzig4g== + version "9.0.1" + resolved "https://registry.npm.taobao.org/fs-extra/download/fs-extra-9.0.1.tgz?cache=0&sync_timestamp=1591231538901&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffs-extra%2Fdownload%2Ffs-extra-9.0.1.tgz#910da0062437ba4c39fedd863f1675ccfefcb9fc" + integrity sha1-kQ2gBiQ3ukw5/t2GPxZ1zP78ufw= dependencies: at-least-node "^1.0.0" graceful-fs "^4.2.0" jsonfile "^6.0.1" universalify "^1.0.0" -fs-minipass@^2.0.0, fs-minipass@^2.1.0: +fs-minipass@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" - integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== + resolved "https://registry.npm.taobao.org/fs-minipass/download/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" + integrity sha1-f1A2/b8SxjwWkZDL5BmchSJx+fs= dependencies: minipass "^3.0.0" fs-write-stream-atomic@^1.0.8: version "1.0.10" - resolved "https://registry.npm.taobao.org/fs-write-stream-atomic/download/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" + resolved "https://registry.npm.taobao.org/fs-write-stream-atomic/download/fs-write-stream-atomic-1.0.10.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffs-write-stream-atomic%2Fdownload%2Ffs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= dependencies: graceful-fs "^4.1.2" @@ -4172,17 +3762,22 @@ fs-write-stream-atomic@^1.0.8: fs.realpath@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + resolved "https://registry.npm.taobao.org/fs.realpath/download/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= fsevents@^1.2.7: - version "1.2.11" - resolved "https://registry.npm.taobao.org/fsevents/download/fsevents-1.2.11.tgz#67bf57f4758f02ede88fb2a1712fef4d15358be3" - integrity sha1-Z79X9HWPAu3oj7KhcS/vTRU1i+M= + version "1.2.13" + resolved "https://registry.npm.taobao.org/fsevents/download/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" + integrity sha1-8yXLBFVZJCi88Rs4M3DvcOO/zDg= dependencies: bindings "^1.5.0" nan "^2.12.1" +fsevents@~2.1.2: + version "2.1.3" + resolved "https://registry.npm.taobao.org/fsevents/download/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" + integrity sha1-+3OHA66NL5/pAMM4Nt3r7ouX8j4= + fstream@^1.0.0, fstream@^1.0.12: version "1.0.12" resolved "https://registry.npm.taobao.org/fstream/download/fstream-1.0.12.tgz#4e8ba8ee2d48be4f7d0de505455548eae5932045" @@ -4229,11 +3824,6 @@ get-assigned-identifiers@^1.1.0: resolved "https://registry.npm.taobao.org/get-assigned-identifiers/download/get-assigned-identifiers-1.2.0.tgz#6dbf411de648cbaf8d9169ebb0d2d576191e2ff1" integrity sha1-bb9BHeZIy6+NkWnrsNLVdhkeL/E= -get-caller-file@^1.0.1: - version "1.0.3" - resolved "https://registry.npm.taobao.org/get-caller-file/download/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" - integrity sha1-+Xj6TJDR3+f/LWvtoqUV5xO9z0o= - get-caller-file@^2.0.1: version "2.0.5" resolved "https://registry.npm.taobao.org/get-caller-file/download/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" @@ -4244,25 +3834,13 @@ get-stdin@^4.0.1: resolved "https://registry.npm.taobao.org/get-stdin/download/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4= -get-stdin@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-7.0.0.tgz#8d5de98f15171a125c5e516643c7a6d0ea8a96f6" - integrity sha512-zRKcywvrXlXsA0v0i9Io4KDRaAw7+a1ZpjRwl9Wox8PFlVCCHra7E9c4kqXCoCM9nR5tBkaTTZRBoCm60bFqTQ== - -get-stream@^4.0.0, get-stream@^4.1.0: +get-stream@^4.0.0: version "4.1.0" resolved "https://registry.npm.taobao.org/get-stream/download/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" integrity sha1-wbJVV189wh1Zv8ec09K0axw6VLU= dependencies: pump "^3.0.0" -get-stream@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9" - integrity sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw== - dependencies: - pump "^3.0.0" - get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" resolved "https://registry.npm.taobao.org/get-value/download/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" @@ -4283,6 +3861,13 @@ glob-parent@^3.1.0: is-glob "^3.1.0" path-dirname "^1.0.0" +glob-parent@~5.1.0: + version "5.1.1" + resolved "https://registry.npm.taobao.org/glob-parent/download/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" + integrity sha1-tsHvQXxOVmPqSY8cRa+saRa7wik= + dependencies: + is-glob "^4.0.1" + glob@^7.0.0, glob@^7.0.3, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@~7.1.1: version "7.1.6" resolved "https://registry.npm.taobao.org/glob/download/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" @@ -4295,20 +3880,6 @@ glob@^7.0.0, glob@^7.0.3, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, gl once "^1.3.0" path-is-absolute "^1.0.0" -global-dirs@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-2.0.1.tgz#acdf3bb6685bcd55cb35e8a052266569e9469201" - integrity sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A== - dependencies: - ini "^1.3.5" - -global-modules@2.0.0: - version "2.0.0" - resolved "https://registry.npm.taobao.org/global-modules/download/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" - integrity sha1-mXYFrSNF8n9RU5vqJldEISFcd4A= - dependencies: - global-prefix "^3.0.0" - global-modules@^1.0.0: version "1.0.0" resolved "https://registry.npm.taobao.org/global-modules/download/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" @@ -4318,6 +3889,13 @@ global-modules@^1.0.0: is-windows "^1.0.1" resolve-dir "^1.0.0" +global-modules@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/global-modules/download/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" + integrity sha1-mXYFrSNF8n9RU5vqJldEISFcd4A= + dependencies: + global-prefix "^3.0.0" + global-prefix@^1.0.1: version "1.0.2" resolved "https://registry.npm.taobao.org/global-prefix/download/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" @@ -4355,9 +3933,9 @@ globby@^6.1.0: pinkie-promise "^2.0.0" globule@^1.0.0: - version "1.3.0" - resolved "https://registry.npm.taobao.org/globule/download/globule-1.3.0.tgz#41d0e9fb44afd4b80d93a23263714f90b3dec904" - integrity sha1-QdDp+0Sv1LgNk6IyY3FPkLPeyQQ= + version "1.3.2" + resolved "https://registry.npm.taobao.org/globule/download/globule-1.3.2.tgz?cache=0&sync_timestamp=1591641966255&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobule%2Fdownload%2Fglobule-1.3.2.tgz#d8bdd9e9e4eef8f96e245999a5dee7eb5d8529c4" + integrity sha1-2L3Z6eTu+PluJFmZpd7n612FKcQ= dependencies: glob "~7.1.1" lodash "~4.17.10" @@ -4370,39 +3948,22 @@ good-listener@^1.2.2: dependencies: delegate "^3.1.2" -got@^9.6.0: - version "9.6.0" - resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" - integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== - dependencies: - "@sindresorhus/is" "^0.14.0" - "@szmarczak/http-timer" "^1.1.2" - cacheable-request "^6.0.0" - decompress-response "^3.3.0" - duplexer3 "^0.1.4" - get-stream "^4.1.0" - lowercase-keys "^1.0.1" - mimic-response "^1.0.1" - p-cancelable "^1.0.0" - to-readable-stream "^1.0.0" - url-parse-lax "^3.0.0" - graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2: - version "4.2.3" - resolved "https://registry.npm.taobao.org/graceful-fs/download/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" - integrity sha1-ShL/G2A3bvCYYsIJPt2Qgyi+hCM= + version "4.2.4" + resolved "https://registry.npm.taobao.org/graceful-fs/download/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" + integrity sha1-Ila94U02MpWMRl68ltxGfKB6Kfs= handle-thing@^2.0.0: - version "2.0.0" - resolved "https://registry.npm.taobao.org/handle-thing/download/handle-thing-2.0.0.tgz#0e039695ff50c93fc288557d696f3c1dc6776754" - integrity sha1-DgOWlf9QyT/CiFV9aW88HcZ3Z1Q= + version "2.0.1" + resolved "https://registry.npm.taobao.org/handle-thing/download/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" + integrity sha1-hX95zjWVgMNA1DCBzGSJcNC7I04= har-schema@^2.0.0: version "2.0.0" resolved "https://registry.npm.taobao.org/har-schema/download/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= -har-validator@~5.1.0: +har-validator@~5.1.3: version "5.1.3" resolved "https://registry.npm.taobao.org/har-validator/download/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" integrity sha1-HvievT5JllV2de7ZiTEQ3DUPoIA= @@ -4424,12 +3985,12 @@ has-flag@^3.0.0: has-flag@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + resolved "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s= has-symbols@^1.0.0, has-symbols@^1.0.1: version "1.0.1" - resolved "https://registry.npm.taobao.org/has-symbols/download/has-symbols-1.0.1.tgz?cache=0&sync_timestamp=1573950719586&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhas-symbols%2Fdownload%2Fhas-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" + resolved "https://registry.npm.taobao.org/has-symbols/download/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" integrity sha1-n1IUdYpEGWxAbZvXbOv4HsLdMeg= has-unicode@^2.0.0: @@ -4468,11 +4029,6 @@ has-values@^1.0.0: is-number "^3.0.0" kind-of "^4.0.0" -has-yarn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" - integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== - has@^1.0.0, has@^1.0.1, has@^1.0.3: version "1.0.3" resolved "https://registry.npm.taobao.org/has/download/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" @@ -4481,12 +4037,13 @@ has@^1.0.0, has@^1.0.1, has@^1.0.3: function-bind "^1.1.1" hash-base@^3.0.0: - version "3.0.4" - resolved "https://registry.npm.taobao.org/hash-base/download/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" - integrity sha1-X8hoaEfs1zSZQDMZprCj8/auSRg= + version "3.1.0" + resolved "https://registry.npm.taobao.org/hash-base/download/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" + integrity sha1-VcOB2eBuHSmXqIO0o/3f5/DTrzM= dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" + inherits "^2.0.4" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" hash.js@^1.0.0, hash.js@^1.0.3: version "1.1.7" @@ -4518,16 +4075,9 @@ homedir-polyfill@^1.0.1: parse-passwd "^1.0.0" hosted-git-info@^2.1.4: - version "2.8.5" - resolved "https://registry.npm.taobao.org/hosted-git-info/download/hosted-git-info-2.8.5.tgz#759cfcf2c4d156ade59b0b2dfabddc42a6b9c70c" - integrity sha1-dZz88sTRVq3lmwst+r3cQqa5xww= - -hosted-git-info@^3.0.2: - version "3.0.5" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.5.tgz#bea87905ef7317442e8df3087faa3c842397df03" - integrity sha512-i4dpK6xj9BIpVOTboXIlKG9+8HMKggcrMX7WA24xZtKwX0TPelq/rbaS5rCKeNX8sJXZJGdSxpnEGtta+wismQ== - dependencies: - lru-cache "^6.0.0" + version "2.8.8" + resolved "https://registry.npm.taobao.org/hosted-git-info/download/hosted-git-info-2.8.8.tgz?cache=0&sync_timestamp=1594427968487&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhosted-git-info%2Fdownload%2Fhosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" + integrity sha1-dTm9S8Hg4KiVgVouAmJCCxKFhIg= hpack.js@^2.1.6: version "2.1.6" @@ -4556,13 +4106,8 @@ html-comment-regex@^1.1.0: html-entities@^1.3.1: version "1.3.1" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.3.1.tgz#fb9a1a4b5b14c5daba82d3e34c6ae4fe701a0e44" - integrity sha512-rhE/4Z3hIhzHAUKbW8jVcCyuT5oJCXXqhN/6mXXVCpzTmvJnoH2HL/bt3EZ6p55jbFJBeAe1ZNpL5BugLujxNA== - -http-cache-semantics@^4.0.0, http-cache-semantics@^4.0.4: - version "4.1.0" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" - integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== + resolved "https://registry.npm.taobao.org/html-entities/download/html-entities-1.3.1.tgz#fb9a1a4b5b14c5daba82d3e34c6ae4fe701a0e44" + integrity sha1-+5oaS1sUxdq6gtPjTGrk/nAaDkQ= http-deceiver@^1.2.7: version "1.2.7" @@ -4571,7 +4116,7 @@ http-deceiver@^1.2.7: http-errors@1.7.2: version "1.7.2" - resolved "https://registry.npm.taobao.org/http-errors/download/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" + resolved "https://registry.npm.taobao.org/http-errors/download/http-errors-1.7.2.tgz?cache=0&sync_timestamp=1593407611415&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" integrity sha1-T1ApzxMjnzEDblsuVSkrz7zIXI8= dependencies: depd "~1.1.2" @@ -4582,7 +4127,7 @@ http-errors@1.7.2: http-errors@~1.6.2: version "1.6.3" - resolved "https://registry.npm.taobao.org/http-errors/download/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + resolved "https://registry.npm.taobao.org/http-errors/download/http-errors-1.6.3.tgz?cache=0&sync_timestamp=1593407611415&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= dependencies: depd "~1.1.2" @@ -4592,7 +4137,7 @@ http-errors@~1.6.2: http-errors@~1.7.2: version "1.7.3" - resolved "https://registry.npm.taobao.org/http-errors/download/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" + resolved "https://registry.npm.taobao.org/http-errors/download/http-errors-1.7.3.tgz?cache=0&sync_timestamp=1593407611415&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" integrity sha1-bGGeT5xgMIw4UZSYwU+7EKrOuwY= dependencies: depd "~1.1.2" @@ -4601,19 +4146,10 @@ http-errors@~1.7.2: statuses ">= 1.5.0 < 2" toidentifier "1.0.0" -"http-parser-js@>=0.4.0 <0.4.11": - version "0.4.10" - resolved "https://registry.npm.taobao.org/http-parser-js/download/http-parser-js-0.4.10.tgz#92c9c1374c35085f75db359ec56cc257cbb93fa4" - integrity sha1-ksnBN0w1CF912zWexWzCV8u5P6Q= - -http-proxy-agent@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" - integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== - dependencies: - "@tootallnate/once" "1" - agent-base "6" - debug "4" +http-parser-js@>=0.5.1: + version "0.5.2" + resolved "https://registry.npm.taobao.org/http-parser-js/download/http-parser-js-0.5.2.tgz#da2e31d237b393aae72ace43882dd7e270a8ff77" + integrity sha1-2i4x0jezk6rnKs5DiC3X4nCo/3c= http-proxy-middleware@0.19.1: version "0.19.1" @@ -4626,9 +4162,9 @@ http-proxy-middleware@0.19.1: micromatch "^3.1.10" http-proxy@^1.17.0: - version "1.18.0" - resolved "https://registry.npm.taobao.org/http-proxy/download/http-proxy-1.18.0.tgz#dbe55f63e75a347db7f3d99974f2692a314a6a3a" - integrity sha1-2+VfY+daNH2389mZdPJpKjFKajo= + version "1.18.1" + resolved "https://registry.npm.taobao.org/http-proxy/download/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" + integrity sha1-QBVB8FNIhLv5UmAzTnL4juOXZUk= dependencies: eventemitter3 "^4.0.0" follow-redirects "^1.0.0" @@ -4636,7 +4172,7 @@ http-proxy@^1.17.0: http-signature@~1.2.0: version "1.2.0" - resolved "https://registry.npm.taobao.org/http-signature/download/http-signature-1.2.0.tgz?cache=0&sync_timestamp=1572997300808&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-signature%2Fdownload%2Fhttp-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + resolved "https://registry.npm.taobao.org/http-signature/download/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= dependencies: assert-plus "^1.0.0" @@ -4648,21 +4184,6 @@ https-browserify@^1.0.0: resolved "https://registry.npm.taobao.org/https-browserify/download/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= -https-proxy-agent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" - integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== - dependencies: - agent-base "6" - debug "4" - -humanize-ms@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" - integrity sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0= - dependencies: - ms "^2.0.0" - icheck-bootstrap@^3.0.1: version "3.0.1" resolved "https://registry.npm.taobao.org/icheck-bootstrap/download/icheck-bootstrap-3.0.1.tgz#60c9c9a71524e1d9dd5bd05167a62fef05cc3a1b" @@ -4670,22 +4191,15 @@ icheck-bootstrap@^3.0.1: iconv-lite@0.4.24: version "0.4.24" - resolved "https://registry.npm.taobao.org/iconv-lite/download/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + resolved "https://registry.npm.taobao.org/iconv-lite/download/iconv-lite-0.4.24.tgz?cache=0&sync_timestamp=1594184264130&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ficonv-lite%2Fdownload%2Ficonv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" integrity sha1-ICK0sl+93CHS9SSXSkdKr+czkIs= dependencies: safer-buffer ">= 2.1.2 < 3" -iconv-lite@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.5.1.tgz#b2425d3c7b18f7219f2ca663d103bddb91718d64" - integrity sha512-ONHr16SQvKZNSqjQT9gy5z24Jw+uqfO02/ngBSBoqChZ+W8qXX7GPRa1RoUnzGADw8K63R1BXUMzarCVQBpY8Q== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -iconv-lite@^0.6.2: +iconv-lite@^0.6.0: version "0.6.2" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.2.tgz#ce13d1875b0c3a674bd6a04b7f76b01b1b6ded01" - integrity sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ== + resolved "https://registry.npm.taobao.org/iconv-lite/download/iconv-lite-0.6.2.tgz?cache=0&sync_timestamp=1594184264130&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ficonv-lite%2Fdownload%2Ficonv-lite-0.6.2.tgz#ce13d1875b0c3a674bd6a04b7f76b01b1b6ded01" + integrity sha1-zhPRh1sMOmdL1qBLf3awGxtt7QE= dependencies: safer-buffer ">= 2.1.2 < 3.0.0" @@ -4706,13 +4220,6 @@ iferr@^0.1.5: resolved "https://registry.npm.taobao.org/iferr/download/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= -ignore-walk@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37" - integrity sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw== - dependencies: - minimatch "^3.0.4" - imagesloaded@^4.1.4: version "4.1.4" resolved "https://registry.npm.taobao.org/imagesloaded/download/imagesloaded-4.1.4.tgz#1376efcd162bb768c34c3727ac89cc04051f3cc7" @@ -4722,7 +4229,7 @@ imagesloaded@^4.1.4: immediate@~3.0.5: version "3.0.6" - resolved "https://registry.npm.taobao.org/immediate/download/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" + resolved "https://registry.npm.taobao.org/immediate/download/immediate-3.0.6.tgz?cache=0&sync_timestamp=1591712459989&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimmediate%2Fdownload%2Fimmediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" integrity sha1-nbHb0Pr43m++D13V5Wu2BigN5ps= import-cwd@^2.0.0: @@ -4734,7 +4241,7 @@ import-cwd@^2.0.0: import-fresh@^2.0.0: version "2.0.0" - resolved "https://registry.npm.taobao.org/import-fresh/download/import-fresh-2.0.0.tgz?cache=0&sync_timestamp=1573665120798&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-fresh%2Fdownload%2Fimport-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" + resolved "https://registry.npm.taobao.org/import-fresh/download/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= dependencies: caller-path "^2.0.0" @@ -4742,7 +4249,7 @@ import-fresh@^2.0.0: import-fresh@^3.1.0: version "3.2.1" - resolved "https://registry.npm.taobao.org/import-fresh/download/import-fresh-3.2.1.tgz?cache=0&sync_timestamp=1573665120798&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimport-fresh%2Fdownload%2Fimport-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" + resolved "https://registry.npm.taobao.org/import-fresh/download/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" integrity sha1-Yz/2GFBueTr1rJG/SLcmd+FcvmY= dependencies: parent-module "^1.0.0" @@ -4755,12 +4262,7 @@ import-from@^2.1.0: dependencies: resolve-from "^3.0.0" -import-lazy@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" - integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= - -import-local@2.0.0, import-local@^2.0.0: +import-local@^2.0.0: version "2.0.0" resolved "https://registry.npm.taobao.org/import-local/download/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" integrity sha1-VQcL44pZk88Y72236WH1vuXFoJ0= @@ -4770,13 +4272,13 @@ import-local@2.0.0, import-local@^2.0.0: imurmurhash@^0.1.4: version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + resolved "https://registry.npm.taobao.org/imurmurhash/download/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= in-publish@^2.0.0: - version "2.0.0" - resolved "https://registry.npm.taobao.org/in-publish/download/in-publish-2.0.0.tgz#e20ff5e3a2afc2690320b6dc552682a9c7fadf51" - integrity sha1-4g/146KvwmkDILbcVSaCqcf631E= + version "2.0.1" + resolved "https://registry.npm.taobao.org/in-publish/download/in-publish-2.0.1.tgz?cache=0&sync_timestamp=1584388562094&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fin-publish%2Fdownload%2Fin-publish-2.0.1.tgz#948b1a535c8030561cea522f73f78f4be357e00c" + integrity sha1-lIsaU1yAMFYc6lIvc/ePS+NX4Aw= indent-string@^2.1.0: version "2.1.0" @@ -4787,8 +4289,8 @@ indent-string@^2.1.0: indent-string@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" - integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + resolved "https://registry.npm.taobao.org/indent-string/download/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha1-Yk+PRJfWGbLZdoUx1Y9BIoVNclE= indexes-of@^1.0.1: version "1.0.1" @@ -4797,21 +4299,21 @@ indexes-of@^1.0.1: infer-owner@^1.0.3, infer-owner@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" - integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== + resolved "https://registry.npm.taobao.org/infer-owner/download/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" + integrity sha1-xM78qo5RBRwqQLos6KPScpWvlGc= inflight@^1.0.4: version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + resolved "https://registry.npm.taobao.org/inflight/download/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= dependencies: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + resolved "https://registry.npm.taobao.org/inherits/download/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w= inherits@2.0.1: version "2.0.1" @@ -4823,28 +4325,28 @@ inherits@2.0.3: resolved "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= -ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: +ini@^1.3.4, ini@^1.3.5: version "1.3.5" resolved "https://registry.npm.taobao.org/ini/download/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" integrity sha1-7uJfVtscnsYIXgwid4CD9Zar+Sc= inputmask@^5.0.3: version "5.0.3" - resolved "https://registry.yarnpkg.com/inputmask/-/inputmask-5.0.3.tgz#f6758de84b7a67c3c246f520c5f3e2c383b3fd68" - integrity sha512-v1l5IoJK6NE8TapI2g6n/y1/ksMwyVLkkaIS6VPTkdvpgEITLzDtSi7n9Jpp471hL2DdJlae9HpMnFmTpf5VXA== + resolved "https://registry.npm.taobao.org/inputmask/download/inputmask-5.0.3.tgz#f6758de84b7a67c3c246f520c5f3e2c383b3fd68" + integrity sha1-9nWN6Et6Z8PCRvUgxfPiw4Oz/Wg= internal-ip@^4.3.0: version "4.3.0" - resolved "https://registry.npm.taobao.org/internal-ip/download/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" + resolved "https://registry.npm.taobao.org/internal-ip/download/internal-ip-4.3.0.tgz?cache=0&sync_timestamp=1583983247512&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finternal-ip%2Fdownload%2Finternal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" integrity sha1-hFRSuq2dLKO2nGNaE3rLmg2tCQc= dependencies: default-gateway "^4.2.0" ipaddr.js "^1.9.0" -interpret@1.2.0: - version "1.2.0" - resolved "https://registry.npm.taobao.org/interpret/download/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296" - integrity sha1-1QYaYiS+WOgIOYX1AU2EQ1lXYpY= +interpret@^1.4.0: + version "1.4.0" + resolved "https://registry.npm.taobao.org/interpret/download/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" + integrity sha1-Zlq4vE2iendKQFhOgS4+D6RbGh4= invariant@^2.2.2, invariant@^2.2.4: version "2.2.4" @@ -4853,37 +4355,22 @@ invariant@^2.2.2, invariant@^2.2.4: dependencies: loose-envify "^1.0.0" -invert-kv@^1.0.0: - version "1.0.0" - resolved "https://registry.npm.taobao.org/invert-kv/download/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" - integrity sha1-EEqOSqym09jNFXqO+L+rLXo//bY= - -invert-kv@^2.0.0: - version "2.0.0" - resolved "https://registry.npm.taobao.org/invert-kv/download/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" - integrity sha1-c5P1r6Weyf9fZ6J2INEcIm4+7AI= - ion-rangeslider@^2.3.1: version "2.3.1" - resolved "https://registry.yarnpkg.com/ion-rangeslider/-/ion-rangeslider-2.3.1.tgz#92ade52cb56fc30b9162d0483ff02b6f9ed237c2" - integrity sha512-6V+24FD13/feliI485gnRHZYD9Ev64M5NAFTxnVib516ATHa9PlXQrC+nOiPngouRYTCLPJyokAJEi3e1Umi5g== + resolved "https://registry.npm.taobao.org/ion-rangeslider/download/ion-rangeslider-2.3.1.tgz#92ade52cb56fc30b9162d0483ff02b6f9ed237c2" + integrity sha1-kq3lLLVvwwuRYtBIP/Arb57SN8I= ip-regex@^2.1.0: version "2.1.0" resolved "https://registry.npm.taobao.org/ip-regex/download/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= -ip@1.1.5, ip@^1.1.0, ip@^1.1.5: +ip@^1.1.0, ip@^1.1.5: version "1.1.5" - resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" + resolved "https://registry.npm.taobao.org/ip/download/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= -ipaddr.js@1.9.0: - version "1.9.0" - resolved "https://registry.npm.taobao.org/ipaddr.js/download/ipaddr.js-1.9.0.tgz#37df74e430a0e47550fe54a2defe30d8acd95f65" - integrity sha1-N9905DCg5HVQ/lSi3v4w2KzZX2U= - -ipaddr.js@^1.9.0: +ipaddr.js@1.9.1, ipaddr.js@^1.9.0: version "1.9.1" resolved "https://registry.npm.taobao.org/ipaddr.js/download/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" integrity sha1-v/OFQ+64mEglB5/zoqjmy9RngbM= @@ -4934,22 +4421,22 @@ is-binary-path@^1.0.0: dependencies: binary-extensions "^1.0.0" +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha1-6h9/O4DwZCNug0cPhsCcJU+0Wwk= + dependencies: + binary-extensions "^2.0.0" + is-buffer@^1.1.5: version "1.1.6" resolved "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha1-76ouqdqg16suoTqXsritUf776L4= -is-callable@^1.1.4, is-callable@^1.1.5: - version "1.1.5" - resolved "https://registry.npm.taobao.org/is-callable/download/is-callable-1.1.5.tgz#f7e46b596890456db74e7f6e976cb3273d06faab" - integrity sha1-9+RrWWiQRW23Tn9ul2yzJz0G+qs= - -is-ci@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" - integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== - dependencies: - ci-info "^2.0.0" +is-callable@^1.1.4, is-callable@^1.2.0: + version "1.2.0" + resolved "https://registry.npm.taobao.org/is-callable/download/is-callable-1.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-callable%2Fdownload%2Fis-callable-1.2.0.tgz#83336560b54a38e35e3a2df7afd0454d691468bb" + integrity sha1-gzNlYLVKOONeOi33r9BFTWkUaLs= is-color-stop@^1.0.0: version "1.1.0" @@ -4979,7 +4466,7 @@ is-data-descriptor@^1.0.0: is-date-object@^1.0.1: version "1.0.2" - resolved "https://registry.npm.taobao.org/is-date-object/download/is-date-object-1.0.2.tgz?cache=0&sync_timestamp=1576729182289&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-date-object%2Fdownload%2Fis-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" + resolved "https://registry.npm.taobao.org/is-date-object/download/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" integrity sha1-vac28s2P0G0yhE53Q7+nSUw7/X4= is-descriptor@^0.1.0: @@ -5023,11 +4510,9 @@ is-extglob@^2.1.0, is-extglob@^2.1.1: integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= is-finite@^1.0.0: - version "1.0.2" - resolved "https://registry.npm.taobao.org/is-finite/download/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" - integrity sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko= - dependencies: - number-is-nan "^1.0.0" + version "1.1.0" + resolved "https://registry.npm.taobao.org/is-finite/download/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3" + integrity sha1-kEE1x3+0LAZB1qobzbxNqo2ggvM= is-fullwidth-code-point@^1.0.0: version "1.0.0" @@ -5041,11 +4526,6 @@ is-fullwidth-code-point@^2.0.0: resolved "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - is-glob@^3.1.0: version "3.1.0" resolved "https://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" @@ -5053,30 +4533,12 @@ is-glob@^3.1.0: dependencies: is-extglob "^2.1.0" -is-glob@^4.0.0: - version "4.0.1" - resolved "https://registry.npm.taobao.org/is-glob/download/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" - integrity sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw= - dependencies: - is-extglob "^2.1.1" - -is-installed-globally@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.3.1.tgz#679afef819347a72584617fd19497f010b8ed35f" - integrity sha512-oiEcGoQbGc+3/iijAijrK2qFpkNoNjsHOm/5V5iaeydyrS/hnwaRCEgH5cpW0P3T1lSjV5piB7S5b5lEugNLhg== - dependencies: - global-dirs "^2.0.1" - is-path-inside "^3.0.1" - -is-lambda@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" - integrity sha1-PZh3iZ5qU+/AFgUEzeFfgubwYdU= - -is-npm@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-4.0.0.tgz#c90dd8380696df87a7a6d823c20d0b12bbe3c84d" - integrity sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig== +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.1" + resolved "https://registry.npm.taobao.org/is-glob/download/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + integrity sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw= + dependencies: + is-extglob "^2.1.1" is-number@^3.0.0: version "3.0.0" @@ -5085,15 +4547,15 @@ is-number@^3.0.0: dependencies: kind-of "^3.0.2" -is-obj@^1.0.0: - version "1.0.1" - resolved "https://registry.npm.taobao.org/is-obj/download/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" - integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.npm.taobao.org/is-number/download/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss= is-obj@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" - integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== + resolved "https://registry.npm.taobao.org/is-obj/download/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + integrity sha1-Rz+wXZc3BeP9liBUUBjKjiLvSYI= is-path-cwd@^2.0.0: version "2.2.0" @@ -5114,11 +4576,6 @@ is-path-inside@^2.1.0: dependencies: path-is-inside "^1.0.2" -is-path-inside@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.2.tgz#f5220fc82a3e233757291dddc9c5877f2a1f3017" - integrity sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg== - is-plain-obj@^1.0.0: version "1.1.0" resolved "https://registry.npm.taobao.org/is-plain-obj/download/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" @@ -5126,17 +4583,17 @@ is-plain-obj@^1.0.0: is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" - resolved "https://registry.npm.taobao.org/is-plain-object/download/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + resolved "https://registry.npm.taobao.org/is-plain-object/download/is-plain-object-2.0.4.tgz?cache=0&sync_timestamp=1594336704799&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-plain-object%2Fdownload%2Fis-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" integrity sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc= dependencies: isobject "^3.0.1" -is-regex@^1.0.4, is-regex@^1.0.5: - version "1.0.5" - resolved "https://registry.npm.taobao.org/is-regex/download/is-regex-1.0.5.tgz#39d589a358bf18967f726967120b8fc1aed74eae" - integrity sha1-OdWJo1i/GJZ/cmlnEguPwa7XTq4= +is-regex@^1.0.4, is-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.npm.taobao.org/is-regex/download/is-regex-1.1.0.tgz#ece38e389e490df0dc21caea2bd596f987f767ff" + integrity sha1-7OOOOJ5JDfDcIcrqK9WW+Yf3Z/8= dependencies: - has "^1.0.3" + has-symbols "^1.0.1" is-resolvable@^1.0.0: version "1.1.0" @@ -5157,12 +4614,12 @@ is-svg@^3.0.0: is-symbol@^1.0.2: version "1.0.3" - resolved "https://registry.npm.taobao.org/is-symbol/download/is-symbol-1.0.3.tgz?cache=0&sync_timestamp=1574296409833&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-symbol%2Fdownload%2Fis-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" + resolved "https://registry.npm.taobao.org/is-symbol/download/is-symbol-1.0.3.tgz?cache=0&sync_timestamp=1574296307739&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-symbol%2Fdownload%2Fis-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" integrity sha1-OOEBS55jKb4N6dJKQU/XRB7GGTc= dependencies: has-symbols "^1.0.1" -is-typedarray@^1.0.0, is-typedarray@~1.0.0: +is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.npm.taobao.org/is-typedarray/download/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= @@ -5182,16 +4639,6 @@ is-wsl@^1.1.0: resolved "https://registry.npm.taobao.org/is-wsl/download/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= -is-yarn-global@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" - integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== - -isarray@0.0.1: - version "0.0.1" - resolved "https://registry.npm.taobao.org/isarray/download/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" - integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= - isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" @@ -5219,19 +4666,14 @@ isstream@~0.1.2: resolved "https://registry.npm.taobao.org/isstream/download/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= -jest-worker@^25.1.0: - version "25.2.1" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-25.2.1.tgz#209617015c768652646aa33a7828cc2ab472a18a" - integrity sha512-IHnpekk8H/hCUbBlfeaPZzU6v75bqwJp3n4dUrQuQOAgOneI4tx3jV2o8pvlXnDfcRsfkFIUD//HWXpCmR+evQ== +jest-worker@^25.4.0: + version "25.5.0" + resolved "https://registry.npm.taobao.org/jest-worker/download/jest-worker-25.5.0.tgz#2611d071b79cea0f43ee57a3d118593ac1547db1" + integrity sha1-JhHQcbec6g9D7lej0RhZOsFUfbE= dependencies: merge-stream "^2.0.0" supports-color "^7.0.0" -jju@^1.1.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/jju/-/jju-1.4.0.tgz#a3abe2718af241a2b2904f84a625970f389ae32a" - integrity sha1-o6vicYryQaKykE+EpiWXDzia4yo= - jquery-knob-chif@^1.2.13: version "1.2.13" resolved "https://registry.npm.taobao.org/jquery-knob-chif/download/jquery-knob-chif-1.2.13.tgz#5f1e462ef3745d27a9fd66ce1141fe82b44a5762" @@ -5258,14 +4700,14 @@ jquery-ui-dist@^1.12.1: integrity sha1-XAgV08xvkP9fqvWyaKbiO0ypBPo= jquery-validation@^1.19.1: - version "1.19.1" - resolved "https://registry.npm.taobao.org/jquery-validation/download/jquery-validation-1.19.1.tgz#a85043467dc2b70d9fff05778646d150e747742f" - integrity sha1-qFBDRn3Ctw2f/wV3hkbRUOdHdC8= + version "1.19.2" + resolved "https://registry.npm.taobao.org/jquery-validation/download/jquery-validation-1.19.2.tgz#c602831b0d8c5881400af424e872757ce241eff9" + integrity sha1-xgKDGw2MWIFACvQk6HJ1fOJB7/k= jquery@>=1.10, jquery@>=1.12.0, jquery@>=1.7, jquery@>=2.1.0, jquery@^3.0, "jquery@^3.0 || ^2.0 || ^1.0", jquery@^3.4.0, jquery@^3.4.1: - version "3.4.1" - resolved "https://registry.npm.taobao.org/jquery/download/jquery-3.4.1.tgz#714f1f8d9dde4bdfa55764ba37ef214630d80ef2" - integrity sha1-cU8fjZ3eS9+lV2S6N+8hRjDYDvI= + version "3.5.1" + resolved "https://registry.npm.taobao.org/jquery/download/jquery-3.5.1.tgz#d7b4d08e1bfdb86ad2f1a3d039ea17304717abb5" + integrity sha1-17TQjhv9uGrS8aPQOeoXMEcXq7U= jqvmap-novulnerability@^1.5.1: version "1.5.1" @@ -5275,19 +4717,19 @@ jqvmap-novulnerability@^1.5.1: jquery "^3.4.0" js-base64@^2.1.8: - version "2.5.1" - resolved "https://registry.npm.taobao.org/js-base64/download/js-base64-2.5.1.tgz#1efa39ef2c5f7980bb1784ade4a8af2de3291121" - integrity sha1-Hvo57yxfeYC7F4St5KivLeMpESE= + version "2.6.3" + resolved "https://registry.npm.taobao.org/js-base64/download/js-base64-2.6.3.tgz?cache=0&sync_timestamp=1594870949745&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-base64%2Fdownload%2Fjs-base64-2.6.3.tgz#7afdb9b57aa7717e15d370b66e8f36a9cb835dc3" + integrity sha1-ev25tXqncX4V03C2bo82qcuDXcM= "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" - resolved "https://registry.npm.taobao.org/js-tokens/download/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + resolved "https://registry.npm.taobao.org/js-tokens/download/js-tokens-4.0.0.tgz?cache=0&sync_timestamp=1586796305651&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-tokens%2Fdownload%2Fjs-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha1-GSA/tZmR35jjoocFDUZHzerzJJk= -js-yaml@^3.12.0, js-yaml@^3.13.1: - version "3.13.1" - resolved "https://registry.npm.taobao.org/js-yaml/download/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" - integrity sha1-r/FRswv9+o5J4F2iLnQV6d+jeEc= +js-yaml@^3.13.1: + version "3.14.0" + resolved "https://registry.npm.taobao.org/js-yaml/download/js-yaml-3.14.0.tgz?cache=0&sync_timestamp=1590172281856&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-yaml%2Fdownload%2Fjs-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" + integrity sha1-p6NBcPJqIbsWJCTYray0ETpp5II= dependencies: argparse "^1.0.7" esprima "^4.0.0" @@ -5312,28 +4754,11 @@ jsgrid@^1.5.3: resolved "https://registry.npm.taobao.org/jsgrid/download/jsgrid-1.5.3.tgz#b15fc426483153bee2b6b567312f675d92834a0d" integrity sha1-sV/EJkgxU77itrVnMS9nXZKDSg0= -json-buffer@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" - integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= - json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: version "1.0.2" resolved "https://registry.npm.taobao.org/json-parse-better-errors/download/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" integrity sha1-u4Z8+zRQ5pEHwTHRxRS6s9yLyqk= -json-parse-even-better-errors@^2.0.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.2.0.tgz#304d29aa54bb01156a1328c454034ff0ac8a7bf4" - integrity sha512-2tLgY7LRNZ9Hd6gmCuBG5/OjRHQpSgJQqJoYyLLOhUgn8LdOYrjaZLcxkWnDads+AD/haWWioPNziXQcgvQJ/g== - -json-parse-helpfulerror@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/json-parse-helpfulerror/-/json-parse-helpfulerror-1.0.3.tgz#13f14ce02eed4e981297b64eb9e3b932e2dd13dc" - integrity sha1-E/FM4C7tTpgSl7ZOueO5MuLdE9w= - dependencies: - jju "^1.1.0" - json-schema-traverse@^0.4.1: version "0.4.1" resolved "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" @@ -5361,27 +4786,22 @@ json5@^1.0.1: dependencies: minimist "^1.2.0" -json5@^2.1.1, json5@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.2.tgz#43ef1f0af9835dd624751a6b7fa48874fb2d608e" - integrity sha512-MoUOQ4WdiN3yxhm7NEVJSJrieAo5hNSLQ5sj05OTRHPL9HOBy8u4Bu88jsC1jvqAdN+E1bJmsUcZH+1HQxliqQ== +json5@^2.1.2: + version "2.1.3" + resolved "https://registry.npm.taobao.org/json5/download/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43" + integrity sha1-ybD3+pIzv+WAf+ZvzzpWF+1ZfUM= dependencies: minimist "^1.2.5" jsonfile@^6.0.1: version "6.0.1" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.0.1.tgz#98966cba214378c8c84b82e085907b40bf614179" - integrity sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg== + resolved "https://registry.npm.taobao.org/jsonfile/download/jsonfile-6.0.1.tgz#98966cba214378c8c84b82e085907b40bf614179" + integrity sha1-mJZsuiFDeMjIS4LghZB7QL9hQXk= dependencies: universalify "^1.0.0" optionalDependencies: graceful-fs "^4.1.6" -jsonparse@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" - integrity sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA= - jsprim@^1.2.2: version "1.4.1" resolved "https://registry.npm.taobao.org/jsprim/download/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" @@ -5393,22 +4813,15 @@ jsprim@^1.2.2: verror "1.10.0" jszip@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/jszip/-/jszip-3.3.0.tgz#29d72c21a54990fa885b11fc843db320640d5271" - integrity sha512-EJ9k766htB1ZWnsV5ZMDkKLgA+201r/ouFF8R2OigVjVdcm2rurcBrrdXaeqBJbqnUVMko512PYmlncBKE1Huw== + version "3.5.0" + resolved "https://registry.npm.taobao.org/jszip/download/jszip-3.5.0.tgz?cache=0&sync_timestamp=1592170956518&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjszip%2Fdownload%2Fjszip-3.5.0.tgz#b4fd1f368245346658e781fec9675802489e15f6" + integrity sha1-tP0fNoJFNGZY54H+yWdYAkieFfY= dependencies: lie "~3.3.0" pako "~1.0.2" readable-stream "~2.3.6" set-immediate-shim "~1.0.1" -keyv@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" - integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== - dependencies: - json-buffer "3.0.0" - killable@^1.0.1: version "1.0.1" resolved "https://registry.npm.taobao.org/killable/download/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" @@ -5434,14 +4847,9 @@ kind-of@^5.0.0: integrity sha1-cpyR4thXt6QZofmqZWhcTDP1hF0= kind-of@^6.0.0, kind-of@^6.0.2: - version "6.0.2" - resolved "https://registry.npm.taobao.org/kind-of/download/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" - integrity sha1-ARRrNqYhjmTljzqNZt5df8b20FE= - -kleur@^3.0.3: - version "3.0.3" - resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" - integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + version "6.0.3" + resolved "https://registry.npm.taobao.org/kind-of/download/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0= last-call-webpack-plugin@^3.0.0: version "3.0.0" @@ -5451,27 +4859,6 @@ last-call-webpack-plugin@^3.0.0: lodash "^4.17.5" webpack-sources "^1.1.0" -latest-version@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" - integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== - dependencies: - package-json "^6.3.0" - -lcid@^1.0.0: - version "1.0.0" - resolved "https://registry.npm.taobao.org/lcid/download/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" - integrity sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU= - dependencies: - invert-kv "^1.0.0" - -lcid@^2.0.0: - version "2.0.0" - resolved "https://registry.npm.taobao.org/lcid/download/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" - integrity sha1-bvXS32DlL4LrIopMNz6NHzlyU88= - dependencies: - invert-kv "^2.0.0" - leven@^3.1.0: version "3.1.0" resolved "https://registry.npm.taobao.org/leven/download/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" @@ -5479,8 +4866,8 @@ leven@^3.1.0: levenary@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/levenary/-/levenary-1.1.1.tgz#842a9ee98d2075aa7faeedbe32679e9205f46f77" - integrity sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ== + resolved "https://registry.npm.taobao.org/levenary/download/levenary-1.1.1.tgz#842a9ee98d2075aa7faeedbe32679e9205f46f77" + integrity sha1-hCqe6Y0gdap/ru2+MmeekgX0b3c= dependencies: leven "^3.1.0" @@ -5492,15 +4879,6 @@ levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" -libnpmconfig@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/libnpmconfig/-/libnpmconfig-1.2.1.tgz#c0c2f793a74e67d4825e5039e7a02a0044dfcbc0" - integrity sha512-9esX8rTQAHqarx6qeZqmGQKBNZR5OIbl/Ayr0qQDy3oXja2iFVQQI81R6GZ2a02bSNZ9p3YOGX1O6HHCb1X7kA== - dependencies: - figgy-pudding "^3.5.1" - find-up "^3.0.0" - ini "^1.3.5" - lie@~3.3.0: version "3.3.0" resolved "https://registry.npm.taobao.org/lie/download/lie-3.3.0.tgz#dcf82dee545f46074daf200c7c1c5a08e0f40f6a" @@ -5535,22 +4913,13 @@ load-json-file@^1.0.0: loader-runner@^2.4.0: version "2.4.0" - resolved "https://registry.npm.taobao.org/loader-runner/download/loader-runner-2.4.0.tgz?cache=0&sync_timestamp=1574712098491&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-runner%2Fdownload%2Floader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" + resolved "https://registry.npm.taobao.org/loader-runner/download/loader-runner-2.4.0.tgz?cache=0&sync_timestamp=1593786193413&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-runner%2Fdownload%2Floader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" integrity sha1-7UcGa/5TTX6ExMe5mYwqdWB9k1c= -loader-utils@1.2.3, loader-utils@^1.1.0, loader-utils@^1.2.3: - version "1.2.3" - resolved "https://registry.npm.taobao.org/loader-utils/download/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" - integrity sha1-H/XcaRHJ8KBiUxpMBLYJQGEIwsc= - dependencies: - big.js "^5.2.2" - emojis-list "^2.0.0" - json5 "^1.0.1" - -loader-utils@^1.4.0: +loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" - integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== + resolved "https://registry.npm.taobao.org/loader-utils/download/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" + integrity sha1-xXm140yzSxp07cbB+za/o3HVphM= dependencies: big.js "^5.2.2" emojis-list "^3.0.0" @@ -5558,21 +4927,13 @@ loader-utils@^1.4.0: loader-utils@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0" - integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ== + resolved "https://registry.npm.taobao.org/loader-utils/download/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0" + integrity sha1-5MrOW4FtQloWa18JfhDNErNgZLA= dependencies: big.js "^5.2.2" emojis-list "^3.0.0" json5 "^2.1.2" -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - locate-path@^3.0.0: version "3.0.0" resolved "https://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" @@ -5633,15 +4994,15 @@ lodash.uniq@^4.5.0: resolved "https://registry.npm.taobao.org/lodash.uniq/download/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= -lodash@^4.0.0, lodash@^4.17.11, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.5, lodash@^4.2.0, lodash@~4.17.10: - version "4.17.15" - resolved "https://registry.npm.taobao.org/lodash/download/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" - integrity sha1-tEf2ZwoEVbv+7dETku/zMOoJdUg= +lodash@^4.0.0, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.5, lodash@~4.17.10: + version "4.17.19" + resolved "https://registry.npm.taobao.org/lodash/download/lodash-4.17.19.tgz?cache=0&sync_timestamp=1594226832494&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b" + integrity sha1-5I3e2+MLMyF4PFtDAfvTU7weSks= loglevel@^1.6.8: version "1.6.8" - resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.8.tgz#8a25fb75d092230ecd4457270d80b54e28011171" - integrity sha512-bsU7+gc9AJ2SqpzxwU3+1fedl8zAntbtC5XYlt3s2j1hJcn2PsXSmgN8TaLG/J1/2mod4+cE/3vNL70/c1RNCA== + resolved "https://registry.npm.taobao.org/loglevel/download/loglevel-1.6.8.tgz#8a25fb75d092230ecd4457270d80b54e28011171" + integrity sha1-iiX7ddCSIw7NRFcnDYC1TigBEXE= loose-envify@^1.0.0: version "1.4.0" @@ -5658,19 +5019,9 @@ loud-rejection@^1.0.0: currently-unhandled "^0.4.1" signal-exit "^3.0.0" -lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" - integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== - -lowercase-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" - integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== - lru-cache@^4.0.1: version "4.1.5" - resolved "https://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + resolved "https://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz?cache=0&sync_timestamp=1594427519396&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flru-cache%2Fdownload%2Flru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" integrity sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80= dependencies: pseudomap "^1.0.2" @@ -5678,68 +5029,33 @@ lru-cache@^4.0.1: lru-cache@^5.1.1: version "5.1.1" - resolved "https://registry.npm.taobao.org/lru-cache/download/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + resolved "https://registry.npm.taobao.org/lru-cache/download/lru-cache-5.1.1.tgz?cache=0&sync_timestamp=1594427519396&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flru-cache%2Fdownload%2Flru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" integrity sha1-HaJ+ZxAnGUdpXa9oSOhH8B2EuSA= dependencies: yallist "^3.0.2" -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -magic-string@^0.22.4: - version "0.22.5" - resolved "https://registry.npm.taobao.org/magic-string/download/magic-string-0.22.5.tgz#8e9cf5afddf44385c1da5bc2a6a0dbd10b03657e" - integrity sha1-jpz1r930Q4XB2lvCpqDb0QsDZX4= +magic-string@0.25.1: + version "0.25.1" + resolved "https://registry.npm.taobao.org/magic-string/download/magic-string-0.25.1.tgz?cache=0&sync_timestamp=1583500499850&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmagic-string%2Fdownload%2Fmagic-string-0.25.1.tgz#b1c248b399cd7485da0fe7385c2fc7011843266e" + integrity sha1-scJIs5nNdIXaD+c4XC/HARhDJm4= dependencies: - vlq "^0.2.2" + sourcemap-codec "^1.4.1" make-dir@^2.0.0: version "2.1.0" - resolved "https://registry.npm.taobao.org/make-dir/download/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" + resolved "https://registry.npm.taobao.org/make-dir/download/make-dir-2.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmake-dir%2Fdownload%2Fmake-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" integrity sha1-XwMQ4YuL6JjMBwCSlaMK5B6R5vU= dependencies: pify "^4.0.1" semver "^5.6.0" -make-dir@^3.0.0: - version "3.0.0" - resolved "https://registry.npm.taobao.org/make-dir/download/make-dir-3.0.0.tgz#1b5f39f6b9270ed33f9f054c5c0f84304989f801" - integrity sha1-G1859rknDtM/nwVMXA+EMEmJ+AE= +make-dir@^3.0.2: + version "3.1.0" + resolved "https://registry.npm.taobao.org/make-dir/download/make-dir-3.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmake-dir%2Fdownload%2Fmake-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha1-QV6WcEazp/HRhSd9hKpYIDcmoT8= dependencies: semver "^6.0.0" -make-fetch-happen@^8.0.8: - version "8.0.8" - resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-8.0.8.tgz#12e8281b83db47324380b9967bb7d38756a4454c" - integrity sha512-kILd4WtBFqylc65LRq9sTx/GG0r9yMoomjz9ZMGxzZKWXhnidDhROhnjtZEQDHSWbwQJ5ojI4XZk46DdHwslGg== - dependencies: - agentkeepalive "^4.1.0" - cacache "^15.0.0" - http-cache-semantics "^4.0.4" - http-proxy-agent "^4.0.1" - https-proxy-agent "^5.0.0" - is-lambda "^1.0.1" - lru-cache "^6.0.0" - minipass "^3.1.3" - minipass-collect "^1.0.2" - minipass-fetch "^1.1.2" - minipass-flush "^1.0.5" - minipass-pipeline "^1.2.2" - promise-retry "^1.1.1" - socks-proxy-agent "^5.0.0" - ssri "^8.0.0" - -map-age-cleaner@^0.1.1: - version "0.1.3" - resolved "https://registry.npm.taobao.org/map-age-cleaner/download/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" - integrity sha1-fVg6cwZDTAVf5HSw9FB45uG0uSo= - dependencies: - p-defer "^1.0.0" - map-cache@^0.2.2: version "0.2.2" resolved "https://registry.npm.taobao.org/map-cache/download/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" @@ -5768,24 +5084,20 @@ md5.js@^1.3.4: mdn-data@2.0.4: version "2.0.4" - resolved "https://registry.npm.taobao.org/mdn-data/download/mdn-data-2.0.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmdn-data%2Fdownload%2Fmdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" + resolved "https://registry.npm.taobao.org/mdn-data/download/mdn-data-2.0.4.tgz?cache=0&sync_timestamp=1593508849116&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmdn-data%2Fdownload%2Fmdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" integrity sha1-aZs8OKxvHXKAkaZGULZdOIUC/Vs= +mdn-data@2.0.6: + version "2.0.6" + resolved "https://registry.npm.taobao.org/mdn-data/download/mdn-data-2.0.6.tgz?cache=0&sync_timestamp=1593508849116&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmdn-data%2Fdownload%2Fmdn-data-2.0.6.tgz#852dc60fcaa5daa2e8cf6c9189c440ed3e042978" + integrity sha1-hS3GD8ql2qLoz2yRicRA7T4EKXg= + media-typer@0.3.0: version "0.3.0" resolved "https://registry.npm.taobao.org/media-typer/download/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= -mem@^4.0.0: - version "4.3.0" - resolved "https://registry.npm.taobao.org/mem/download/mem-4.3.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmem%2Fdownload%2Fmem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178" - integrity sha1-Rhr0l7xK4JYIzbLmDu+2m/90QXg= - dependencies: - map-age-cleaner "^0.1.1" - mimic-fn "^2.0.0" - p-is-promise "^2.0.0" - -memory-fs@^0.4.0, memory-fs@^0.4.1: +memory-fs@^0.4.1: version "0.4.1" resolved "https://registry.npm.taobao.org/memory-fs/download/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= @@ -5866,42 +5178,32 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -mime-db@1.43.0, "mime-db@>= 1.43.0 < 2": - version "1.43.0" - resolved "https://registry.npm.taobao.org/mime-db/download/mime-db-1.43.0.tgz?cache=0&sync_timestamp=1578281193492&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-db%2Fdownload%2Fmime-db-1.43.0.tgz#0a12e0502650e473d735535050e7c8f4eb4fae58" - integrity sha1-ChLgUCZQ5HPXNVNQUOfI9OtPrlg= +mime-db@1.44.0, "mime-db@>= 1.43.0 < 2": + version "1.44.0" + resolved "https://registry.npm.taobao.org/mime-db/download/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" + integrity sha1-+hHF6wrKEzS0Izy01S8QxaYnL5I= mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: - version "2.1.26" - resolved "https://registry.npm.taobao.org/mime-types/download/mime-types-2.1.26.tgz?cache=0&sync_timestamp=1578282566609&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-types%2Fdownload%2Fmime-types-2.1.26.tgz#9c921fc09b7e149a65dfdc0da4d20997200b0a06" - integrity sha1-nJIfwJt+FJpl39wNpNIJlyALCgY= + version "2.1.27" + resolved "https://registry.npm.taobao.org/mime-types/download/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" + integrity sha1-R5SfmOJ56lMRn1ci4PNOUpvsAJ8= dependencies: - mime-db "1.43.0" + mime-db "1.44.0" mime@1.6.0: version "1.6.0" - resolved "https://registry.npm.taobao.org/mime/download/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + resolved "https://registry.npm.taobao.org/mime/download/mime-1.6.0.tgz?cache=0&sync_timestamp=1590596706367&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime%2Fdownload%2Fmime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" integrity sha1-Ms2eXGRVO9WNGaVor0Uqz/BJgbE= mime@^2.4.4: - version "2.4.4" - resolved "https://registry.npm.taobao.org/mime/download/mime-2.4.4.tgz#bd7b91135fc6b01cde3e9bae33d659b63d8857e5" - integrity sha1-vXuRE1/GsBzePpuuM9ZZtj2IV+U= - -mimic-fn@^2.0.0: - version "2.1.0" - resolved "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" - integrity sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs= - -mimic-response@^1.0.0, mimic-response@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" - integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== + version "2.4.6" + resolved "https://registry.npm.taobao.org/mime/download/mime-2.4.6.tgz?cache=0&sync_timestamp=1590596706367&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime%2Fdownload%2Fmime-2.4.6.tgz#e5b407c90db442f2beb5b162373d07b69affa4d1" + integrity sha1-5bQHyQ20QvK+tbFiNz0Htpr/pNE= mini-css-extract-plugin@^0.9.0: version "0.9.0" - resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.9.0.tgz#47f2cf07aa165ab35733b1fc97d4c46c0564339e" - integrity sha512-lp3GeY7ygcgAmVIcRPBVhIkf8Us7FZjA+ILpal44qLdSu11wmjKQ3d9k15lfD7pO4esu9eUIAW7qiYIBppv40A== + resolved "https://registry.npm.taobao.org/mini-css-extract-plugin/download/mini-css-extract-plugin-0.9.0.tgz#47f2cf07aa165ab35733b1fc97d4c46c0564339e" + integrity sha1-R/LPB6oWWrNXM7H8l9TEbAVkM54= dependencies: loader-utils "^1.1.0" normalize-url "1.9.1" @@ -5920,87 +5222,42 @@ minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: minimatch@^3.0.4, minimatch@~3.0.2: version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + resolved "https://registry.npm.taobao.org/minimatch/download/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM= dependencies: brace-expansion "^1.1.7" -minimist@0.0.8: - version "0.0.8" - resolved "https://registry.npm.taobao.org/minimist/download/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" - integrity sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0= - -minimist@^1.1.3, minimist@^1.2.0: - version "1.2.0" - resolved "https://registry.npm.taobao.org/minimist/download/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" - integrity sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ= - -minimist@^1.2.5: +minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5: version "1.2.5" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + resolved "https://registry.npm.taobao.org/minimist/download/minimist-1.2.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fminimist%2Fdownload%2Fminimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha1-Z9ZgFLZqaoqqDAg8X9WN9OTpdgI= minipass-collect@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" - integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== + resolved "https://registry.npm.taobao.org/minipass-collect/download/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" + integrity sha1-IrgTv3Rdxu26JXa5QAIq1u3Ixhc= dependencies: minipass "^3.0.0" -minipass-fetch@^1.1.2, minipass-fetch@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-1.2.1.tgz#1b97ecb559be56b09812d45b2e9509f1f59ece2f" - integrity sha512-ssHt0dkljEDaKmTgQ04DQgx2ag6G2gMPxA5hpcsoeTbfDgRf2fC2gNSRc6kISjD7ckCpHwwQvXxuTBK8402fXg== - dependencies: - minipass "^3.1.0" - minipass-pipeline "^1.2.2" - minipass-sized "^1.0.3" - minizlib "^2.0.0" - optionalDependencies: - encoding "^0.1.12" - minipass-flush@^1.0.5: version "1.0.5" - resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" - integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== - dependencies: - minipass "^3.0.0" - -minipass-json-stream@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz#7edbb92588fbfc2ff1db2fc10397acb7b6b44aa7" - integrity sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg== + resolved "https://registry.npm.taobao.org/minipass-flush/download/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" + integrity sha1-gucTXX6JpQ/+ZGEKeHlTxMTLs3M= dependencies: - jsonparse "^1.3.1" minipass "^3.0.0" minipass-pipeline@^1.2.2: version "1.2.3" - resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.3.tgz#55f7839307d74859d6e8ada9c3ebe72cec216a34" - integrity sha512-cFOknTvng5vqnwOpDsZTWhNll6Jf8o2x+/diplafmxpuIymAjzoOolZG0VvQf3V2HgqzJNhnuKHYp2BqDgz8IQ== - dependencies: - minipass "^3.0.0" - -minipass-sized@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/minipass-sized/-/minipass-sized-1.0.3.tgz#70ee5a7c5052070afacfbc22977ea79def353b70" - integrity sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g== + resolved "https://registry.npm.taobao.org/minipass-pipeline/download/minipass-pipeline-1.2.3.tgz#55f7839307d74859d6e8ada9c3ebe72cec216a34" + integrity sha1-VfeDkwfXSFnW6K2pw+vnLOwhajQ= dependencies: minipass "^3.0.0" -minipass@^3.0.0, minipass@^3.0.1, minipass@^3.1.0, minipass@^3.1.1, minipass@^3.1.3: +minipass@^3.0.0, minipass@^3.1.1: version "3.1.3" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.3.tgz#7d42ff1f39635482e15f9cdb53184deebd5815fd" - integrity sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg== - dependencies: - yallist "^4.0.0" - -minizlib@^2.0.0, minizlib@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.0.tgz#fd52c645301ef09a63a2c209697c294c6ce02cf3" - integrity sha512-EzTZN/fjSvifSX0SlqUERCN39o6T40AMarPbv0MrarSFtIITCBh7bi+dU8nxGFHuqs9jdIAeoYoKuQAAASsPPA== + resolved "https://registry.npm.taobao.org/minipass/download/minipass-3.1.3.tgz#7d42ff1f39635482e15f9cdb53184deebd5815fd" + integrity sha1-fUL/HzljVILhX5zbUxhN7r1YFf0= dependencies: - minipass "^3.0.0" yallist "^4.0.0" mississippi@^3.0.0: @@ -6027,36 +5284,24 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" -"mkdirp@>=0.5 0", mkdirp@^0.5, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.1: - version "0.5.1" - resolved "https://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" - integrity sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM= - dependencies: - minimist "0.0.8" - -mkdirp@^0.5.3: - version "0.5.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.4.tgz#fd01504a6797ec5c9be81ff43d204961ed64a512" - integrity sha512-iG9AK/dJLtJ0XNgTuDbSyNS3zECqDlAhnQW4CsNxBG3LQJBbHmRX1egw39DmtOdCAqY+dKXV+sgPgilNWUKMVw== +"mkdirp@>=0.5 0", mkdirp@^0.5, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@~0.5.1: + version "0.5.5" + resolved "https://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + integrity sha1-2Rzv1i0UNsoPQWIOJRKI1CAJne8= dependencies: minimist "^1.2.5" -mkdirp@^1.0.3, mkdirp@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== - moment-timezone@^0.5.11: - version "0.5.27" - resolved "https://registry.npm.taobao.org/moment-timezone/download/moment-timezone-0.5.27.tgz#73adec8139b6fe30452e78f210f27b1f346b8877" - integrity sha1-c63sgTm2/jBFLnjyEPJ7HzRriHc= + version "0.5.31" + resolved "https://registry.npm.taobao.org/moment-timezone/download/moment-timezone-0.5.31.tgz?cache=0&sync_timestamp=1589720126509&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmoment-timezone%2Fdownload%2Fmoment-timezone-0.5.31.tgz#9c40d8c5026f0c7ab46eda3d63e49c155148de05" + integrity sha1-nEDYxQJvDHq0bto9Y+ScFVFI3gU= dependencies: moment ">= 2.9.0" "moment@>= 2.9.0", moment@^2.10.2, moment@^2.22.2, moment@^2.24.0, moment@^2.9.0: - version "2.24.0" - resolved "https://registry.npm.taobao.org/moment/download/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b" - integrity sha1-DQVdU/UFKqZTyfbraLtdEr9cK1s= + version "2.27.0" + resolved "https://registry.npm.taobao.org/moment/download/moment-2.27.0.tgz?cache=0&sync_timestamp=1592516084857&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmoment%2Fdownload%2Fmoment-2.27.0.tgz#8bff4e3e26a236220dfe3e36de756b6ebaa0105d" + integrity sha1-i/9OPiaiNiIN/j423nVrbrqgEF0= move-concurrently@^1.0.1: version "1.0.1" @@ -6080,10 +5325,10 @@ ms@2.1.1: resolved "https://registry.npm.taobao.org/ms/download/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" integrity sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo= -ms@^2.0.0, ms@^2.1.1: +ms@^2.1.1: version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + resolved "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk= multicast-dns-service-types@^1.1.0: version "1.1.0" @@ -6099,9 +5344,9 @@ multicast-dns@^6.0.1: thunky "^1.0.2" nan@^2.12.1, nan@^2.13.2: - version "2.14.0" - resolved "https://registry.npm.taobao.org/nan/download/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" - integrity sha1-eBj3IgJ7JFmobwKV1DTR/CM2xSw= + version "2.14.1" + resolved "https://registry.npm.taobao.org/nan/download/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01" + integrity sha1-174036MQW5FJTDFHCJMV7/iHSwE= nanomatch@^1.2.9: version "1.2.13" @@ -6126,14 +5371,9 @@ negotiator@0.6.2: integrity sha1-/qz3zPUlp3rpY0Q2pkiD/+yjRvs= neo-async@^2.5.0, neo-async@^2.6.1: - version "2.6.1" - resolved "https://registry.npm.taobao.org/neo-async/download/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" - integrity sha1-rCetpmFn+ohJpq3dg39rGJrSCBw= - -nested-error-stacks@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/nested-error-stacks/-/nested-error-stacks-2.0.1.tgz#d2cc9fc5235ddb371fc44d506234339c8e4b0a4b" - integrity sha512-SrQrok4CATudVzBS7coSz26QRSmlK9TzzoFbeKfcPBUFPjcQM9Rqvr/DlJkOrwI/0KcgvMub1n1g5Jt9EgRn4A== + version "2.6.2" + resolved "https://registry.npm.taobao.org/neo-async/download/neo-async-2.6.2.tgz?cache=0&sync_timestamp=1594317437265&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fneo-async%2Fdownload%2Fneo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha1-tKr7k+OustgXTKU88WOrfXMIMF8= next-tick@~1.0.0: version "1.0.0" @@ -6142,17 +5382,9 @@ next-tick@~1.0.0: nice-try@^1.0.4: version "1.0.5" - resolved "https://registry.npm.taobao.org/nice-try/download/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + resolved "https://registry.npm.taobao.org/nice-try/download/nice-try-1.0.5.tgz?cache=0&sync_timestamp=1584699726257&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnice-try%2Fdownload%2Fnice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" integrity sha1-ozeKdpbOfSI+iPybdkvX7xCJ42Y= -node-alias@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/node-alias/-/node-alias-1.0.4.tgz#1f1b916b56b9ea241c0135f97ced6940f556f292" - integrity sha1-HxuRa1a56iQcATX5fO1pQPVW8pI= - dependencies: - chalk "^1.1.1" - lodash "^4.2.0" - node-forge@0.9.0: version "0.9.0" resolved "https://registry.npm.taobao.org/node-forge/download/node-forge-0.9.0.tgz#d624050edbb44874adca12bb9a52ec63cb782579" @@ -6160,7 +5392,7 @@ node-forge@0.9.0: node-gyp@^3.8.0: version "3.8.0" - resolved "https://registry.npm.taobao.org/node-gyp/download/node-gyp-3.8.0.tgz#540304261c330e80d0d5edce253a68cb3964218c" + resolved "https://registry.npm.taobao.org/node-gyp/download/node-gyp-3.8.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-gyp%2Fdownload%2Fnode-gyp-3.8.0.tgz#540304261c330e80d0d5edce253a68cb3964218c" integrity sha1-VAMEJhwzDoDQ1e3OJTpoyzlkIYw= dependencies: fstream "^1.0.0" @@ -6205,22 +5437,15 @@ node-libs-browser@^2.2.1: util "^0.11.0" vm-browserify "^1.0.1" -node-releases@^1.1.44: - version "1.1.45" - resolved "https://registry.npm.taobao.org/node-releases/download/node-releases-1.1.45.tgz?cache=0&sync_timestamp=1578496101773&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-releases%2Fdownload%2Fnode-releases-1.1.45.tgz#4cf7e9175d71b1317f15ffd68ce63bce1d53e9f2" - integrity sha1-TPfpF11xsTF/Ff/WjOY7zh1T6fI= - dependencies: - semver "^6.3.0" - -node-releases@^1.1.53: - version "1.1.53" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.53.tgz#2d821bfa499ed7c5dffc5e2f28c88e78a08ee3f4" - integrity sha512-wp8zyQVwef2hpZ/dJH7SfSrIPD6YoJz6BDQDpGEkcA0s3LpAQoxBIYmfIq6QAhC1DhwsyCgTaTTcONwX8qzCuQ== +node-releases@^1.1.58: + version "1.1.59" + resolved "https://registry.npm.taobao.org/node-releases/download/node-releases-1.1.59.tgz?cache=0&sync_timestamp=1594212264030&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-releases%2Fdownload%2Fnode-releases-1.1.59.tgz#4d648330641cec704bff10f8e4fe28e453ab8e8e" + integrity sha1-TWSDMGQc7HBL/xD45P4o5FOrjo4= node-sass@^4.13.1: - version "4.13.1" - resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.13.1.tgz#9db5689696bb2eec2c32b98bfea4c7a2e992d0a3" - integrity sha512-TTWFx+ZhyDx1Biiez2nB0L3YrCZ/8oHagaDalbuBSlqXgUPsdkUSzJsVxeDO9LtPB49+Fh3WQl3slABo6AotNw== + version "4.14.1" + resolved "https://registry.npm.taobao.org/node-sass/download/node-sass-4.14.1.tgz?cache=0&sync_timestamp=1588636381339&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-sass%2Fdownload%2Fnode-sass-4.14.1.tgz#99c87ec2efb7047ed638fb4c9db7f3a42e2217b5" + integrity sha1-mch+wu+3BH7WOPtMnbfzpC4iF7U= dependencies: async-foreach "^0.1.3" chalk "^1.1.1" @@ -6236,7 +5461,7 @@ node-sass@^4.13.1: node-gyp "^3.8.0" npmlog "^4.0.0" request "^2.88.0" - sass-graph "^2.2.4" + sass-graph "2.2.5" stdout-stream "^1.4.0" "true-case-path" "^1.0.2" @@ -6264,7 +5489,7 @@ normalize-path@^2.1.1: dependencies: remove-trailing-separator "^1.0.1" -normalize-path@^3.0.0: +normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" resolved "https://registry.npm.taobao.org/normalize-path/download/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU= @@ -6289,102 +5514,9 @@ normalize-url@^3.0.0: resolved "https://registry.npm.taobao.org/normalize-url/download/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" integrity sha1-suHE3E98bVd0PfczpPWXjRhlBVk= -normalize-url@^4.1.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" - integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== - -npm-bundled@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.1.tgz#1edd570865a94cdb1bc8220775e29466c9fb234b" - integrity sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA== - dependencies: - npm-normalize-package-bin "^1.0.1" - -npm-check-updates@^4.0.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/npm-check-updates/-/npm-check-updates-4.1.1.tgz#2c18837f43161fa63d328e78ce905133b8da5ac0" - integrity sha512-O1LuwX8hB06+fCEHJ4cOUB87fPU44KDAo0X5RXgGsgU0xaQRqaW3rZtdcuFC7nOnJYVafn93RTl9HY4cq72C8g== - dependencies: - chalk "^3.0.0" - cint "^8.2.1" - cli-table "^0.3.1" - commander "^5.0.0" - fast-diff "^1.2.0" - find-up "4.1.0" - get-stdin "^7.0.0" - json-parse-helpfulerror "^1.0.3" - libnpmconfig "^1.2.1" - lodash "^4.17.15" - node-alias "^1.0.4" - p-map "^4.0.0" - pacote "^11.1.4" - progress "^2.0.3" - prompts "^2.3.2" - rc-config-loader "^3.0.0" - requireg "^0.2.2" - semver "^7.1.3" - semver-utils "^1.1.4" - spawn-please "^0.3.0" - update-notifier "^4.1.0" - -npm-install-checks@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-4.0.0.tgz#a37facc763a2fde0497ef2c6d0ac7c3fbe00d7b4" - integrity sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w== - dependencies: - semver "^7.1.1" - -npm-normalize-package-bin@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" - integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== - -npm-package-arg@^8.0.0, npm-package-arg@^8.0.1: - version "8.0.1" - resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-8.0.1.tgz#9d76f8d7667b2373ffda60bb801a27ef71e3e270" - integrity sha512-/h5Fm6a/exByzFSTm7jAyHbgOqErl9qSNJDQF32Si/ZzgwT2TERVxRxn3Jurw1wflgyVVAxnFR4fRHPM7y1ClQ== - dependencies: - hosted-git-info "^3.0.2" - semver "^7.0.0" - validate-npm-package-name "^3.0.0" - -npm-packlist@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-2.1.1.tgz#08806a1df79acdc43d02d20c83a3d5472d96c90c" - integrity sha512-95TSDvGwujIhqfSpIiRRLodEF+y6mJMopuZdahoGzqtRDFZXGav46S0p6ngeWaiAkb5R72w6eVARhzej0HvZeQ== - dependencies: - glob "^7.1.6" - ignore-walk "^3.0.3" - npm-bundled "^1.1.1" - npm-normalize-package-bin "^1.0.1" - -npm-pick-manifest@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-6.0.0.tgz#bfde7abe95f2670aed1629a3c18245ccb3cc2eb8" - integrity sha512-PdJpXMvjqt4nftNEDpCgjBUF8yI3Q3MyuAmVB9nemnnCg32F4BPL/JFBfdj8DubgHCYUFQhtLWmBPvdsFtjWMg== - dependencies: - npm-install-checks "^4.0.0" - npm-package-arg "^8.0.0" - semver "^7.0.0" - -npm-registry-fetch@^8.0.0: - version "8.1.2" - resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-8.1.2.tgz#8afa37f52e613bfe2464a1ff63c68a3f6ca94af0" - integrity sha512-/m5W4t5xSAO0vwI+nDMh/msTimROztmrQcMxWRoWqWQsNYUavE4zSQCvpfDZb+V6CVs4J2tHvCP0g3me2nNU7w== - dependencies: - "@npmcli/ci-detect" "^1.0.0" - lru-cache "^6.0.0" - make-fetch-happen "^8.0.8" - minipass "^3.1.3" - minipass-fetch "^1.1.2" - minipass-json-stream "^1.0.1" - minizlib "^2.0.0" - npm-package-arg "^8.0.0" - npm-run-path@^2.0.0: version "2.0.2" - resolved "https://registry.npm.taobao.org/npm-run-path/download/npm-run-path-2.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnpm-run-path%2Fdownload%2Fnpm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + resolved "https://registry.npm.taobao.org/npm-run-path/download/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= dependencies: path-key "^2.0.0" @@ -6435,22 +5567,20 @@ object-copy@^0.1.0: define-property "^0.2.5" kind-of "^3.0.3" -object-inspect@^1.7.0: - version "1.7.0" - resolved "https://registry.npm.taobao.org/object-inspect/download/object-inspect-1.7.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-inspect%2Fdownload%2Fobject-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67" - integrity sha1-9Pa9GBrXfwBrXs5gvQtvOY/3Smc= - -object-inspect@~1.4.0: - version "1.4.1" - resolved "https://registry.npm.taobao.org/object-inspect/download/object-inspect-1.4.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-inspect%2Fdownload%2Fobject-inspect-1.4.1.tgz#37ffb10e71adaf3748d05f713b4c9452f402cbc4" - integrity sha1-N/+xDnGtrzdI0F9xO0yUUvQCy8Q= +object-inspect@^1.6.0, object-inspect@^1.7.0: + version "1.8.0" + resolved "https://registry.npm.taobao.org/object-inspect/download/object-inspect-1.8.0.tgz?cache=0&sync_timestamp=1592545152574&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-inspect%2Fdownload%2Fobject-inspect-1.8.0.tgz#df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0" + integrity sha1-34B+Xs9TpgnMa/6T6sPMe+WzqdA= object-is@^1.0.1: - version "1.0.2" - resolved "https://registry.npm.taobao.org/object-is/download/object-is-1.0.2.tgz?cache=0&sync_timestamp=1576479714417&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-is%2Fdownload%2Fobject-is-1.0.2.tgz#6b80eb84fe451498f65007982f035a5b445edec4" - integrity sha1-a4DrhP5FFJj2UAeYLwNaW0Re3sQ= + version "1.1.2" + resolved "https://registry.npm.taobao.org/object-is/download/object-is-1.1.2.tgz?cache=0&sync_timestamp=1586894009620&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-is%2Fdownload%2Fobject-is-1.1.2.tgz#c5d2e87ff9e119f78b7a088441519e2eec1573b6" + integrity sha1-xdLof/nhGfeLegiEQVGeLuwVc7Y= + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" -object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.0.6, object-keys@^1.1.1: +object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: version "1.1.1" resolved "https://registry.npm.taobao.org/object-keys/download/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha1-HEfyct8nfzsdrwYWd9nILiMixg4= @@ -6472,9 +5602,9 @@ object.assign@^4.1.0: has-symbols "^1.0.0" object-keys "^1.0.11" -object.getownpropertydescriptors@^2.0.3: +object.getownpropertydescriptors@^2.1.0: version "2.1.0" - resolved "https://registry.npm.taobao.org/object.getownpropertydescriptors/download/object.getownpropertydescriptors-2.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.getownpropertydescriptors%2Fdownload%2Fobject.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649" + resolved "https://registry.npm.taobao.org/object.getownpropertydescriptors/download/object.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649" integrity sha1-Npvx+VktiridcS3O1cuBx8U1Jkk= dependencies: define-properties "^1.1.3" @@ -6516,7 +5646,7 @@ on-headers@~1.0.2: once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + resolved "https://registry.npm.taobao.org/once/download/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= dependencies: wrappy "1" @@ -6538,7 +5668,7 @@ optimize-css-assets-webpack-plugin@^5.0.3: optionator@^0.8.1: version "0.8.3" - resolved "https://registry.npm.taobao.org/optionator/download/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + resolved "https://registry.npm.taobao.org/optionator/download/optionator-0.8.3.tgz?cache=0&sync_timestamp=1585966141328&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Foptionator%2Fdownload%2Foptionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" integrity sha1-hPodA2/p08fiHZmIS2ARZ+yPtJU= dependencies: deep-is "~0.1.3" @@ -6565,22 +5695,6 @@ os-homedir@^1.0.0: resolved "https://registry.npm.taobao.org/os-homedir/download/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= -os-locale@^1.4.0: - version "1.4.0" - resolved "https://registry.npm.taobao.org/os-locale/download/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" - integrity sha1-IPnxeuKe00XoveWDsT0gCYA8FNk= - dependencies: - lcid "^1.0.0" - -os-locale@^3.1.0: - version "3.1.0" - resolved "https://registry.npm.taobao.org/os-locale/download/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" - integrity sha1-qAKm7hfyTBBIOrmTVxnO9O0Wvxo= - dependencies: - execa "^1.0.0" - lcid "^2.0.0" - mem "^4.0.0" - os-tmpdir@^1.0.0: version "1.0.2" resolved "https://registry.npm.taobao.org/os-tmpdir/download/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" @@ -6595,51 +5709,22 @@ osenv@0: os-tmpdir "^1.0.0" overlayscrollbars@^1.11.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/overlayscrollbars/-/overlayscrollbars-1.11.0.tgz#374a14f37b78214e0166db50c1a489b6af53eddb" - integrity sha512-Wdzzfdta5/5Tc77FoibH14Cr34r7op0jh3eI9z1zvz9K4YiRIzNxvNIh3Rbezr8cs4Bn7NTNKzT8OHsJB58CxQ== - -p-cancelable@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" - integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== - -p-defer@^1.0.0: - version "1.0.0" - resolved "https://registry.npm.taobao.org/p-defer/download/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" - integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= + version "1.12.0" + resolved "https://registry.npm.taobao.org/overlayscrollbars/download/overlayscrollbars-1.12.0.tgz#e3e257bbb8a179760c2c712ad08ac2c78583c9f6" + integrity sha1-4+JXu7iheXYMLHEq0IrCx4WDyfY= p-finally@^1.0.0: version "1.0.0" resolved "https://registry.npm.taobao.org/p-finally/download/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= -p-is-promise@^2.0.0: - version "2.1.0" - resolved "https://registry.npm.taobao.org/p-is-promise/download/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" - integrity sha1-kYzrrqJIpiz3/6uOO8qMX4gvxC4= - -p-limit@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" - integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== - dependencies: - p-try "^1.0.0" - -p-limit@^2.0.0, p-limit@^2.2.0, p-limit@^2.2.2: - version "2.2.2" - resolved "https://registry.npm.taobao.org/p-limit/download/p-limit-2.2.2.tgz?cache=0&sync_timestamp=1577904218145&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-2.2.2.tgz#61279b67721f5287aa1c13a9a7fbbc48c9291b1e" - integrity sha1-YSebZ3IfUoeqHBOpp/u8SMkpGx4= +p-limit@^2.0.0, p-limit@^2.2.0, p-limit@^2.3.0: + version "2.3.0" + resolved "https://registry.npm.taobao.org/p-limit/download/p-limit-2.3.0.tgz?cache=0&sync_timestamp=1594559668746&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE= dependencies: p-try "^2.0.0" -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= - dependencies: - p-limit "^1.1.0" - p-locate@^3.0.0: version "3.0.0" resolved "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" @@ -6666,13 +5751,6 @@ p-map@^3.0.0: dependencies: aggregate-error "^3.0.0" -p-map@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" - integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== - dependencies: - aggregate-error "^3.0.0" - p-retry@^3.0.1: version "3.0.1" resolved "https://registry.npm.taobao.org/p-retry/download/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328" @@ -6680,64 +5758,20 @@ p-retry@^3.0.1: dependencies: retry "^0.12.0" -p-try@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" - integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= - p-try@^2.0.0: version "2.2.0" resolved "https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha1-yyhoVA4xPWHeWPr741zpAE1VQOY= -package-json@^6.3.0: - version "6.5.0" - resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0" - integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ== - dependencies: - got "^9.6.0" - registry-auth-token "^4.0.0" - registry-url "^5.0.0" - semver "^6.2.0" - -pacote@^11.1.4: - version "11.1.4" - resolved "https://registry.yarnpkg.com/pacote/-/pacote-11.1.4.tgz#5529a453c59881b7f059da8af6903b0f79c124b2" - integrity sha512-eUGJvSSpWFZKn3z8gig/HgnBmUl6gIWByIIaHzSyEr3tOWX0w8tFEADXtpu8HGv5E0ShCeTP6enRq8iHKCHSvw== - dependencies: - "@npmcli/git" "^2.0.1" - "@npmcli/installed-package-contents" "^1.0.5" - "@npmcli/promise-spawn" "^1.1.0" - cacache "^15.0.0" - chownr "^1.1.4" - fs-minipass "^2.1.0" - infer-owner "^1.0.4" - lru-cache "^5.1.1" - minipass "^3.0.1" - minipass-fetch "^1.2.1" - mkdirp "^1.0.3" - npm-package-arg "^8.0.1" - npm-packlist "^2.1.0" - npm-pick-manifest "^6.0.0" - npm-registry-fetch "^8.0.0" - promise-inflight "^1.0.1" - promise-retry "^1.1.1" - read-package-json-fast "^1.1.3" - rimraf "^2.7.1" - semver "^7.1.3" - ssri "^8.0.0" - tar "^6.0.1" - which "^2.0.2" - pako@^0.2.5: version "0.2.9" resolved "https://registry.npm.taobao.org/pako/download/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" integrity sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU= pako@~1.0.2, pako@~1.0.5: - version "1.0.10" - resolved "https://registry.npm.taobao.org/pako/download/pako-1.0.10.tgz#4328badb5086a426aa90f541977d4955da5c9732" - integrity sha1-Qyi621CGpCaqkPVBl31JVdpclzI= + version "1.0.11" + resolved "https://registry.npm.taobao.org/pako/download/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" + integrity sha1-bJWZ00DVTf05RjgCUqNXBaa5kr8= parallel-transform@^1.1.0: version "1.2.0" @@ -6755,7 +5789,7 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" -parse-asn1@^5.0.0: +parse-asn1@^5.0.0, parse-asn1@^5.1.5: version "5.1.5" resolved "https://registry.npm.taobao.org/parse-asn1/download/parse-asn1-5.1.5.tgz#003271343da58dc94cace494faef3d2147ecea0e" integrity sha1-ADJxND2ljclMrOSU+u89IUfs6g4= @@ -6841,7 +5875,7 @@ path-exists@^4.0.0: path-is-absolute@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + resolved "https://registry.npm.taobao.org/path-is-absolute/download/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= path-is-inside@^1.0.2: @@ -6851,10 +5885,10 @@ path-is-inside@^1.0.2: path-key@^2.0.0, path-key@^2.0.1: version "2.0.1" - resolved "https://registry.npm.taobao.org/path-key/download/path-key-2.0.1.tgz?cache=0&sync_timestamp=1574441322626&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-key%2Fdownload%2Fpath-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + resolved "https://registry.npm.taobao.org/path-key/download/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= -path-parse@^1.0.5, path-parse@^1.0.6: +path-parse@^1.0.6: version "1.0.6" resolved "https://registry.npm.taobao.org/path-parse/download/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" integrity sha1-1i27VnlAXXLEc37FhgDp3c8G0kw= @@ -6879,9 +5913,9 @@ path-type@^4.0.0: integrity sha1-hO0BwKe6OAr+CdkKjBgNzZ0DBDs= pbkdf2@^3.0.3: - version "3.0.17" - resolved "https://registry.npm.taobao.org/pbkdf2/download/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" - integrity sha1-l2wgZTBhexTrsyEUI597CTNuk6Y= + version "3.1.1" + resolved "https://registry.npm.taobao.org/pbkdf2/download/pbkdf2-3.1.1.tgz#cb8724b0fada984596856d1a6ebafd3584654b94" + integrity sha1-y4cksPramEWWhW0abrr9NYRlS5Q= dependencies: create-hash "^1.1.2" create-hmac "^1.1.4" @@ -6900,11 +5934,11 @@ pdfkit@>=0.8.1, pdfkit@^0.11.0: png-js "^1.0.0" pdfmake@^0.1.65: - version "0.1.65" - resolved "https://registry.yarnpkg.com/pdfmake/-/pdfmake-0.1.65.tgz#09c4cf796809ec5fce789343560a36780ff47e37" - integrity sha512-MgzRyiKSP3IEUH7vm4oj3lpikmk5oCD9kYxiJM6Z2Xf6CP9EcikeSDey2rGd4WVvn79Y0TGqz2+to8FtWP8MrA== + version "0.1.66" + resolved "https://registry.npm.taobao.org/pdfmake/download/pdfmake-0.1.66.tgz#498a46eb65fab52a9b5900ad234d886b093e242d" + integrity sha1-SYpG62X6tSqbWQCtI02Iawk+JC0= dependencies: - iconv-lite "^0.5.1" + iconv-lite "^0.6.0" linebreak "^1.0.2" pdfkit "^0.11.0" svg-to-pdfkit "^0.1.8" @@ -6914,6 +5948,11 @@ performance-now@^2.1.0: resolved "https://registry.npm.taobao.org/performance-now/download/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= +picomatch@^2.0.4, picomatch@^2.2.1: + version "2.2.2" + resolved "https://registry.npm.taobao.org/picomatch/download/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" + integrity sha1-IfMz6ba46v8CRo9RRupAbTRfTa0= + pify@^2.0.0, pify@^2.3.0: version "2.3.0" resolved "https://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" @@ -6950,13 +5989,6 @@ pkg-dir@^4.1.0: dependencies: find-up "^4.0.0" -pkg-up@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f" - integrity sha1-yBmscoBZpGHKscOImivjxJoATX8= - dependencies: - find-up "^2.1.0" - png-js@^1.0.0: version "1.0.0" resolved "https://registry.npm.taobao.org/png-js/download/png-js-1.0.0.tgz#e5484f1e8156996e383aceebb3789fd75df1874d" @@ -6964,20 +5996,20 @@ png-js@^1.0.0: pnp-webpack-plugin@^1.6.4: version "1.6.4" - resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz#c9711ac4dc48a685dabafc86f8b6dd9f8df84149" - integrity sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg== + resolved "https://registry.npm.taobao.org/pnp-webpack-plugin/download/pnp-webpack-plugin-1.6.4.tgz?cache=0&sync_timestamp=1582068446562&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpnp-webpack-plugin%2Fdownload%2Fpnp-webpack-plugin-1.6.4.tgz#c9711ac4dc48a685dabafc86f8b6dd9f8df84149" + integrity sha1-yXEaxNxIpoXauvyG+Lbdn434QUk= dependencies: ts-pnp "^1.1.6" popper.js@>=1.10, popper.js@^1.14.3, popper.js@^1.16.1: version "1.16.1" - resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.16.1.tgz#2a223cb3dc7b6213d740e40372be40de43e65b1b" - integrity sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ== + resolved "https://registry.npm.taobao.org/popper.js/download/popper.js-1.16.1.tgz#2a223cb3dc7b6213d740e40372be40de43e65b1b" + integrity sha1-KiI8s9x7YhPXQOQDcr5A3kPmWxs= portfinder@^1.0.26: version "1.0.26" - resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.26.tgz#475658d56ca30bed72ac7f1378ed350bd1b64e70" - integrity sha512-Xi7mKxJHHMI3rIUrnm/jjUgwhbYMkp/XKEcZX3aG4BrumLpq3nmoQMX+ClYnDZnZ/New7IatC1no5RX0zo1vXQ== + resolved "https://registry.npm.taobao.org/portfinder/download/portfinder-1.0.26.tgz#475658d56ca30bed72ac7f1378ed350bd1b64e70" + integrity sha1-R1ZY1WyjC+1yrH8TeO01C9G2TnA= dependencies: async "^2.6.2" debug "^3.1.1" @@ -6989,22 +6021,21 @@ posix-character-classes@^0.1.0: integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= postcss-attribute-case-insensitive@^4.0.1: - version "4.0.1" - resolved "https://registry.npm.taobao.org/postcss-attribute-case-insensitive/download/postcss-attribute-case-insensitive-4.0.1.tgz#b2a721a0d279c2f9103a36331c88981526428cc7" - integrity sha1-sqchoNJ5wvkQOjYzHIiYFSZCjMc= + version "4.0.2" + resolved "https://registry.npm.taobao.org/postcss-attribute-case-insensitive/download/postcss-attribute-case-insensitive-4.0.2.tgz#d93e46b504589e94ac7277b0463226c68041a880" + integrity sha1-2T5GtQRYnpSscnewRjImxoBBqIA= dependencies: postcss "^7.0.2" - postcss-selector-parser "^5.0.0" + postcss-selector-parser "^6.0.2" postcss-calc@^7.0.1: - version "7.0.1" - resolved "https://registry.npm.taobao.org/postcss-calc/download/postcss-calc-7.0.1.tgz#36d77bab023b0ecbb9789d84dcb23c4941145436" - integrity sha1-Ntd7qwI7Dsu5eJ2E3LI8SUEUVDY= + version "7.0.2" + resolved "https://registry.npm.taobao.org/postcss-calc/download/postcss-calc-7.0.2.tgz#504efcd008ca0273120568b0792b16cdcde8aac1" + integrity sha1-UE780AjKAnMSBWiweSsWzc3oqsE= dependencies: - css-unit-converter "^1.1.1" - postcss "^7.0.5" - postcss-selector-parser "^5.0.0-rc.4" - postcss-value-parser "^3.3.1" + postcss "^7.0.27" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.0.2" postcss-color-functional-notation@^2.0.1: version "2.0.1" @@ -7042,7 +6073,7 @@ postcss-color-mod-function@^3.0.3: postcss-color-rebeccapurple@^4.0.1: version "4.0.1" - resolved "https://registry.npm.taobao.org/postcss-color-rebeccapurple/download/postcss-color-rebeccapurple-4.0.1.tgz#c7a89be872bb74e45b1e3022bfe5748823e6de77" + resolved "https://registry.npm.taobao.org/postcss-color-rebeccapurple/download/postcss-color-rebeccapurple-4.0.1.tgz?cache=0&sync_timestamp=1587821587752&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-color-rebeccapurple%2Fdownload%2Fpostcss-color-rebeccapurple-4.0.1.tgz#c7a89be872bb74e45b1e3022bfe5748823e6de77" integrity sha1-x6ib6HK7dORbHjAiv+V0iCPm3nc= dependencies: postcss "^7.0.2" @@ -7143,9 +6174,9 @@ postcss-env-function@^2.0.2: postcss-values-parser "^2.0.0" postcss-flexbugs-fixes@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.2.0.tgz#662b3dcb6354638b9213a55eed8913bcdc8d004a" - integrity sha512-QRE0n3hpkxxS/OGvzOa+PDuy4mh/Jg4o9ui22/ko5iGYOG3M5dfJabjnAZjTdh2G9F85c7Hv8hWcEDEKW/xceQ== + version "4.2.1" + resolved "https://registry.npm.taobao.org/postcss-flexbugs-fixes/download/postcss-flexbugs-fixes-4.2.1.tgz#9218a65249f30897deab1033aced8578562a6690" + integrity sha1-khimUknzCJfeqxAzrO2FeFYqZpA= dependencies: postcss "^7.0.26" @@ -7197,7 +6228,7 @@ postcss-import@^12.0.1: postcss-initial@^3.0.0: version "3.0.2" - resolved "https://registry.npm.taobao.org/postcss-initial/download/postcss-initial-3.0.2.tgz#f018563694b3c16ae8eaabe3c585ac6319637b2d" + resolved "https://registry.npm.taobao.org/postcss-initial/download/postcss-initial-3.0.2.tgz?cache=0&sync_timestamp=1572520236416&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-initial%2Fdownload%2Fpostcss-initial-3.0.2.tgz#f018563694b3c16ae8eaabe3c585ac6319637b2d" integrity sha1-8BhWNpSzwWro6qvjxYWsYxljey0= dependencies: lodash.template "^4.5.0" @@ -7323,10 +6354,10 @@ postcss-modules-local-by-default@^3.0.2: postcss-selector-parser "^6.0.2" postcss-value-parser "^4.0.0" -postcss-modules-scope@^2.1.1: - version "2.1.1" - resolved "https://registry.npm.taobao.org/postcss-modules-scope/download/postcss-modules-scope-2.1.1.tgz?cache=0&sync_timestamp=1574936968130&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-scope%2Fdownload%2Fpostcss-modules-scope-2.1.1.tgz#33d4fc946602eb5e9355c4165d68a10727689dba" - integrity sha1-M9T8lGYC616TVcQWXWihBydonbo= +postcss-modules-scope@^2.2.0: + version "2.2.0" + resolved "https://registry.npm.taobao.org/postcss-modules-scope/download/postcss-modules-scope-2.2.0.tgz#385cae013cc7743f5a7d7602d1073a89eaae62ee" + integrity sha1-OFyuATzHdD9afXYC0Qc6iequYu4= dependencies: postcss "^7.0.6" postcss-selector-parser "^6.0.0" @@ -7341,7 +6372,7 @@ postcss-modules-values@^3.0.0: postcss-nesting@^7.0.0: version "7.0.1" - resolved "https://registry.npm.taobao.org/postcss-nesting/download/postcss-nesting-7.0.1.tgz#b50ad7b7f0173e5b5e3880c3501344703e04c052" + resolved "https://registry.npm.taobao.org/postcss-nesting/download/postcss-nesting-7.0.1.tgz?cache=0&sync_timestamp=1564405325472&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-nesting%2Fdownload%2Fpostcss-nesting-7.0.1.tgz#b50ad7b7f0173e5b5e3880c3501344703e04c052" integrity sha1-tQrXt/AXPlteOIDDUBNEcD4EwFI= dependencies: postcss "^7.0.2" @@ -7460,7 +6491,7 @@ postcss-place@^4.0.1: postcss-preset-env@^6.7.0: version "6.7.0" - resolved "https://registry.npm.taobao.org/postcss-preset-env/download/postcss-preset-env-6.7.0.tgz#c34ddacf8f902383b35ad1e030f178f4cdf118a5" + resolved "https://registry.npm.taobao.org/postcss-preset-env/download/postcss-preset-env-6.7.0.tgz?cache=0&sync_timestamp=1562662643428&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-preset-env%2Fdownload%2Fpostcss-preset-env-6.7.0.tgz#c34ddacf8f902383b35ad1e030f178f4cdf118a5" integrity sha1-w03az4+QI4OzWtHgMPF49M3xGKU= dependencies: autoprefixer "^9.6.1" @@ -7538,8 +6569,8 @@ postcss-replace-overflow-wrap@^3.0.0: postcss-safe-parser@^4.0.2: version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-4.0.2.tgz#a6d4e48f0f37d9f7c11b2a581bf00f8ba4870b96" - integrity sha512-Uw6ekxSWNLCPesSv/cmqf2bY/77z11O7jZGPax3ycZMFU/oi2DMH9i89AdHc1tRwFg/arFoEwX0IS3LCUxJh1g== + resolved "https://registry.npm.taobao.org/postcss-safe-parser/download/postcss-safe-parser-4.0.2.tgz#a6d4e48f0f37d9f7c11b2a581bf00f8ba4870b96" + integrity sha1-ptTkjw832ffBGypYG/APi6SHC5Y= dependencies: postcss "^7.0.26" @@ -7560,15 +6591,15 @@ postcss-selector-not@^4.0.0: postcss "^7.0.2" postcss-selector-parser@^3.0.0: - version "3.1.1" - resolved "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-3.1.1.tgz#4f875f4afb0c96573d5cf4d74011aee250a7e865" - integrity sha1-T4dfSvsMllc9XPTXQBGu4lCn6GU= + version "3.1.2" + resolved "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-3.1.2.tgz#b310f5c4c0fdaf76f94902bbaa30db6aa84f5270" + integrity sha1-sxD1xMD9r3b5SQK7qjDbaqhPUnA= dependencies: - dot-prop "^4.1.1" + dot-prop "^5.2.0" indexes-of "^1.0.1" uniq "^1.0.1" -postcss-selector-parser@^5.0.0, postcss-selector-parser@^5.0.0-rc.3, postcss-selector-parser@^5.0.0-rc.4: +postcss-selector-parser@^5.0.0-rc.3, postcss-selector-parser@^5.0.0-rc.4: version "5.0.0" resolved "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-5.0.0.tgz#249044356697b33b64f1a8f7c80922dddee7195c" integrity sha1-JJBENWaXsztk8aj3yAki3d7nGVw= @@ -7605,38 +6636,29 @@ postcss-unique-selectors@^4.0.1: postcss "^7.0.0" uniqs "^2.0.0" -postcss-value-parser@^3.0.0, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.1: +postcss-value-parser@^3.0.0, postcss-value-parser@^3.2.3: version "3.3.1" resolved "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" integrity sha1-n/giVH4okyE88cMO+lGsX9G6goE= -postcss-value-parser@^4.0.0, postcss-value-parser@^4.0.2: - version "4.0.2" - resolved "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-4.0.2.tgz#482282c09a42706d1fc9a069b73f44ec08391dc9" - integrity sha1-SCKCwJpCcG0fyaBptz9E7Ag5Hck= +postcss-value-parser@^4.0.0, postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: + version "4.1.0" + resolved "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" + integrity sha1-RD9qIM7WSBor2k+oUypuVdeJoss= postcss-values-parser@^2.0.0, postcss-values-parser@^2.0.1: version "2.0.1" - resolved "https://registry.npm.taobao.org/postcss-values-parser/download/postcss-values-parser-2.0.1.tgz#da8b472d901da1e205b47bdc98637b9e9e550e5f" + resolved "https://registry.npm.taobao.org/postcss-values-parser/download/postcss-values-parser-2.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-values-parser%2Fdownload%2Fpostcss-values-parser-2.0.1.tgz#da8b472d901da1e205b47bdc98637b9e9e550e5f" integrity sha1-2otHLZAdoeIFtHvcmGN7np5VDl8= dependencies: flatten "^1.0.2" indexes-of "^1.0.1" uniq "^1.0.1" -postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.16, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.23, postcss@^7.0.5, postcss@^7.0.6: - version "7.0.26" - resolved "https://registry.npm.taobao.org/postcss/download/postcss-7.0.26.tgz?cache=0&sync_timestamp=1577751092087&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.26.tgz#5ed615cfcab35ba9bbb82414a4fa88ea10429587" - integrity sha1-XtYVz8qzW6m7uCQUpPqI6hBClYc= - dependencies: - chalk "^2.4.2" - source-map "^0.6.1" - supports-color "^6.1.0" - -postcss@^7.0.26: - version "7.0.27" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.27.tgz#cc67cdc6b0daa375105b7c424a85567345fc54d9" - integrity sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ== +postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.16, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.26, postcss@^7.0.27, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6: + version "7.0.32" + resolved "https://registry.npm.taobao.org/postcss/download/postcss-7.0.32.tgz#4310d6ee347053da3433db2be492883d62cec59d" + integrity sha1-QxDW7jRwU9o0M9sr5JKIPWLOxZ0= dependencies: chalk "^2.4.2" source-map "^0.6.1" @@ -7652,16 +6674,6 @@ prepend-http@^1.0.0: resolved "https://registry.npm.taobao.org/prepend-http/download/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= -prepend-http@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" - integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= - -private@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" - integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== - process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.npm.taobao.org/process-nextick-args/download/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" @@ -7672,39 +6684,18 @@ process@^0.11.10: resolved "https://registry.npm.taobao.org/process/download/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= -progress@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" - integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== - promise-inflight@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + resolved "https://registry.npm.taobao.org/promise-inflight/download/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= -promise-retry@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-1.1.1.tgz#6739e968e3051da20ce6497fb2b50f6911df3d6d" - integrity sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0= - dependencies: - err-code "^1.0.0" - retry "^0.10.0" - -prompts@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.3.2.tgz#480572d89ecf39566d2bd3fe2c9fccb7c4c0b068" - integrity sha512-Q06uKs2CkNYVID0VqwfAl9mipo99zkBv/n2JtWY89Yxa3ZabWSrs0e2KTudKVa3peLUvYXMefDqIleLPVUBZMA== - dependencies: - kleur "^3.0.3" - sisteransi "^1.0.4" - proxy-addr@~2.0.5: - version "2.0.5" - resolved "https://registry.npm.taobao.org/proxy-addr/download/proxy-addr-2.0.5.tgz#34cbd64a2d81f4b1fd21e76f9f06c8a45299ee34" - integrity sha1-NMvWSi2B9LH9IedvnwbIpFKZ7jQ= + version "2.0.6" + resolved "https://registry.npm.taobao.org/proxy-addr/download/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf" + integrity sha1-/cIzZQVEfT8vLGOO0nLK9hS7sr8= dependencies: forwarded "~0.1.2" - ipaddr.js "1.9.0" + ipaddr.js "1.9.1" prr@~1.0.1: version "1.0.1" @@ -7716,10 +6707,10 @@ pseudomap@^1.0.2: resolved "https://registry.npm.taobao.org/pseudomap/download/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= -psl@^1.1.24: - version "1.7.0" - resolved "https://registry.npm.taobao.org/psl/download/psl-1.7.0.tgz?cache=0&sync_timestamp=1577538558975&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpsl%2Fdownload%2Fpsl-1.7.0.tgz#f1c4c47a8ef97167dea5d6bbf4816d736e884a3c" - integrity sha1-8cTEeo75cWfepda79IFtc26ISjw= +psl@^1.1.28: + version "1.8.0" + resolved "https://registry.npm.taobao.org/psl/download/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" + integrity sha1-kyb4vPsBOtzABf3/BWrM4CDlHCQ= public-encrypt@^4.0.0: version "4.0.3" @@ -7763,26 +6754,19 @@ punycode@1.3.2: resolved "https://registry.npm.taobao.org/punycode/download/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= -punycode@^1.2.4, punycode@^1.4.1: +punycode@^1.2.4: version "1.4.1" resolved "https://registry.npm.taobao.org/punycode/download/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= -punycode@^2.1.0: +punycode@^2.1.0, punycode@^2.1.1: version "2.1.1" resolved "https://registry.npm.taobao.org/punycode/download/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha1-tYsBCsQMIsVldhbI0sLALHv0eew= -pupa@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pupa/-/pupa-2.0.1.tgz#dbdc9ff48ffbea4a26a069b6f9f7abb051008726" - integrity sha512-hEJH0s8PXLY/cdXh66tNEQGndDrIKNqNC5xmrysZy3i5C3oEoLna7YAOad+7u125+zH1HNXUmGEkrhb3c2VriA== - dependencies: - escape-goat "^2.0.0" - q@^1.1.2: version "1.5.1" - resolved "https://registry.npm.taobao.org/q/download/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" + resolved "https://registry.npm.taobao.org/q/download/q-1.5.1.tgz?cache=0&sync_timestamp=1589682817412&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fq%2Fdownload%2Fq-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= qs@6.7.0: @@ -7797,7 +6781,7 @@ qs@~6.5.2: query-string@^4.1.0: version "4.3.4" - resolved "https://registry.npm.taobao.org/query-string/download/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" + resolved "https://registry.npm.taobao.org/query-string/download/query-string-4.3.4.tgz?cache=0&sync_timestamp=1591853468856&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fquery-string%2Fdownload%2Fquery-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" integrity sha1-u7aTucqRXCMlFbIosaArYJBD2+s= dependencies: object-assign "^4.1.0" @@ -7818,7 +6802,7 @@ querystringify@^2.1.1: resolved "https://registry.npm.taobao.org/querystringify/download/querystringify-2.1.1.tgz#60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e" integrity sha1-YOWl/WSn+L+k0qsu1v30yFutFU4= -quote-stream@^1.0.1, quote-stream@~1.0.2: +quote-stream@^1.0.1: version "1.0.2" resolved "https://registry.npm.taobao.org/quote-stream/download/quote-stream-1.0.2.tgz#84963f8c9c26b942e153feeb53aae74652b7e0b2" integrity sha1-hJY/jJwmuULhU/7rU6rnRlK34LI= @@ -7835,7 +6819,7 @@ rails-erb-loader@^5.5.2: loader-utils "^1.1.0" lodash.defaults "^4.2.0" -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: version "2.1.0" resolved "https://registry.npm.taobao.org/randombytes/download/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" integrity sha1-32+ENy8CcNxlzfYpE0mrekc9Tyo= @@ -7872,26 +6856,6 @@ raw-body@2.4.0: iconv-lite "0.4.24" unpipe "1.0.0" -rc-config-loader@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/rc-config-loader/-/rc-config-loader-3.0.0.tgz#1484ed55d6fb8b21057699c8426370f7529c52a7" - integrity sha512-bwfUSB37TWkHfP+PPjb/x8BUjChFmmBK44JMfVnU7paisWqZl/o5k7ttCH+EQLnrbn2Aq8Fo1LAsyUiz+WF4CQ== - dependencies: - debug "^4.1.1" - js-yaml "^3.12.0" - json5 "^2.1.1" - require-from-string "^2.0.2" - -rc@^1.2.8, rc@~1.2.7: - version "1.2.8" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" - integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== - dependencies: - deep-extend "^0.6.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - read-cache@^1.0.0: version "1.0.0" resolved "https://registry.npm.taobao.org/read-cache/download/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" @@ -7899,17 +6863,9 @@ read-cache@^1.0.0: dependencies: pify "^2.3.0" -read-package-json-fast@^1.1.1, read-package-json-fast@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/read-package-json-fast/-/read-package-json-fast-1.1.3.tgz#3b78464ea8f3c4447f3358635390b6946dc0737e" - integrity sha512-MmFqiyfCXV2Dmm4jH24DEGhxdkUDFivJQj4oPZQPOKywxR7HWBE6WnMWDAapfFHi3wm1b+mhR+XHlUH0CL8axg== - dependencies: - json-parse-even-better-errors "^2.0.1" - npm-normalize-package-bin "^1.0.1" - read-pkg-up@^1.0.1: version "1.0.1" - resolved "https://registry.npm.taobao.org/read-pkg-up/download/read-pkg-up-1.0.1.tgz?cache=0&sync_timestamp=1575620436254&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fread-pkg-up%2Fdownload%2Fread-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" + resolved "https://registry.npm.taobao.org/read-pkg-up/download/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI= dependencies: find-up "^1.0.0" @@ -7937,34 +6893,31 @@ read-pkg@^1.0.0: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.0.6: - version "3.4.0" - resolved "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.4.0.tgz#a51c26754658e0a3c21dbf59163bd45ba6f447fc" - integrity sha1-pRwmdUZY4KPCHb9ZFjvUW6b0R/w= - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readdir-scoped-modules@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz#8d45407b4f870a0dcaebc0e28670d18e74514309" - integrity sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw== - dependencies: - debuglog "^1.0.1" - dezalgo "^1.0.0" - graceful-fs "^4.1.2" - once "^1.3.0" +readable-stream@^3.0.6, readable-stream@^3.6.0: + version "3.6.0" + resolved "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha1-M3u9o63AcGvT4CRCaihtS0sskZg= + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" readdirp@^2.2.1: version "2.2.1" - resolved "https://registry.npm.taobao.org/readdirp/download/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" + resolved "https://registry.npm.taobao.org/readdirp/download/readdirp-2.2.1.tgz?cache=0&sync_timestamp=1584986156939&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freaddirp%2Fdownload%2Freaddirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" integrity sha1-DodiKjMlqjPokihcr4tOhGUppSU= dependencies: graceful-fs "^4.1.11" micromatch "^3.1.10" readable-stream "^2.0.2" +readdirp@~3.4.0: + version "3.4.0" + resolved "https://registry.npm.taobao.org/readdirp/download/readdirp-3.4.0.tgz?cache=0&sync_timestamp=1584986156939&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freaddirp%2Fdownload%2Freaddirp-3.4.0.tgz#9fdccdf9e9155805449221ac645e8303ab5b9ada" + integrity sha1-n9zN+ekVWAVEkiGsZF6DA6tbmto= + dependencies: + picomatch "^2.2.1" + redent@^1.0.0: version "1.0.0" resolved "https://registry.npm.taobao.org/redent/download/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" @@ -7973,24 +6926,17 @@ redent@^1.0.0: indent-string "^2.1.0" strip-indent "^1.0.1" -regenerate-unicode-properties@^8.1.0: - version "8.1.0" - resolved "https://registry.npm.taobao.org/regenerate-unicode-properties/download/regenerate-unicode-properties-8.1.0.tgz#ef51e0f0ea4ad424b77bf7cb41f3e015c70a3f0e" - integrity sha1-71Hg8OpK1CS3e/fLQfPgFccKPw4= - dependencies: - regenerate "^1.4.0" - regenerate-unicode-properties@^8.2.0: version "8.2.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" - integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA== + resolved "https://registry.npm.taobao.org/regenerate-unicode-properties/download/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" + integrity sha1-5d5xEdZV57pgwFfb6f83yH5lzew= dependencies: regenerate "^1.4.0" regenerate@^1.4.0: - version "1.4.0" - resolved "https://registry.npm.taobao.org/regenerate/download/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" - integrity sha1-SoVuxLVuQHfFV1icroXnpMiGmhE= + version "1.4.1" + resolved "https://registry.npm.taobao.org/regenerate/download/regenerate-1.4.1.tgz#cad92ad8e6b591773485fbe05a485caf4f457e6f" + integrity sha1-ytkq2Oa1kXc0hfvgWkhcr09Ffm8= regenerator-runtime@^0.11.0: version "0.11.1" @@ -7999,16 +6945,15 @@ regenerator-runtime@^0.11.0: regenerator-runtime@^0.13.4, regenerator-runtime@^0.13.5: version "0.13.5" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697" - integrity sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA== + resolved "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697" + integrity sha1-2Hih0JS0MG0QuQlkhLM+vVXiZpc= regenerator-transform@^0.14.2: - version "0.14.4" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.4.tgz#5266857896518d1616a78a0479337a30ea974cc7" - integrity sha512-EaJaKPBI9GvKpvUz2mz4fhx7WPgvwRLY9v3hlNHWmAuJHI13T4nwKnNvm5RWJzEdnI5g5UwtOww+S8IdoUC2bw== + version "0.14.5" + resolved "https://registry.npm.taobao.org/regenerator-transform/download/regenerator-transform-0.14.5.tgz?cache=0&sync_timestamp=1593557271381&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-transform%2Fdownload%2Fregenerator-transform-0.14.5.tgz#c98da154683671c9c4dcb16ece736517e1b7feb4" + integrity sha1-yY2hVGg2ccnE3LFuznNlF+G3/rQ= dependencies: "@babel/runtime" "^7.8.4" - private "^0.1.8" regex-not@^1.0.0, regex-not@^1.0.2: version "1.0.2" @@ -8020,28 +6965,16 @@ regex-not@^1.0.0, regex-not@^1.0.2: regexp.prototype.flags@^1.2.0: version "1.3.0" - resolved "https://registry.npm.taobao.org/regexp.prototype.flags/download/regexp.prototype.flags-1.3.0.tgz?cache=0&sync_timestamp=1576388141321&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexp.prototype.flags%2Fdownload%2Fregexp.prototype.flags-1.3.0.tgz#7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75" + resolved "https://registry.npm.taobao.org/regexp.prototype.flags/download/regexp.prototype.flags-1.3.0.tgz#7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75" integrity sha1-erqJs8E6ZFCdq888qNn7ub31y3U= dependencies: define-properties "^1.1.3" es-abstract "^1.17.0-next.1" -regexpu-core@^4.6.0: - version "4.6.0" - resolved "https://registry.npm.taobao.org/regexpu-core/download/regexpu-core-4.6.0.tgz#2037c18b327cfce8a6fea2a4ec441f2432afb8b6" - integrity sha1-IDfBizJ8/Oim/qKk7EQfJDKvuLY= - dependencies: - regenerate "^1.4.0" - regenerate-unicode-properties "^8.1.0" - regjsgen "^0.5.0" - regjsparser "^0.6.0" - unicode-match-property-ecmascript "^1.0.4" - unicode-match-property-value-ecmascript "^1.1.0" - regexpu-core@^4.7.0: version "4.7.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.0.tgz#fcbf458c50431b0bb7b45d6967b8192d91f3d938" - integrity sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ== + resolved "https://registry.npm.taobao.org/regexpu-core/download/regexpu-core-4.7.0.tgz?cache=0&sync_timestamp=1583949999327&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexpu-core%2Fdownload%2Fregexpu-core-4.7.0.tgz#fcbf458c50431b0bb7b45d6967b8192d91f3d938" + integrity sha1-/L9FjFBDGwu3tF1pZ7gZLZHz2Tg= dependencies: regenerate "^1.4.0" regenerate-unicode-properties "^8.2.0" @@ -8050,36 +6983,15 @@ regexpu-core@^4.7.0: unicode-match-property-ecmascript "^1.0.4" unicode-match-property-value-ecmascript "^1.2.0" -registry-auth-token@^4.0.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.1.1.tgz#40a33be1e82539460f94328b0f7f0f84c16d9479" - integrity sha512-9bKS7nTl9+/A1s7tnPeGrUpRcVY+LUh7bfFgzpndALdPfXQBfQV77rQVtqgUV3ti4vc/Ik81Ex8UJDWDQ12zQA== - dependencies: - rc "^1.2.8" - -registry-url@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009" - integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw== - dependencies: - rc "^1.2.8" - -regjsgen@^0.5.0, regjsgen@^0.5.1: - version "0.5.1" - resolved "https://registry.npm.taobao.org/regjsgen/download/regjsgen-0.5.1.tgz#48f0bf1a5ea205196929c0d9798b42d1ed98443c" - integrity sha1-SPC/Gl6iBRlpKcDZeYtC0e2YRDw= - -regjsparser@^0.6.0: - version "0.6.2" - resolved "https://registry.npm.taobao.org/regjsparser/download/regjsparser-0.6.2.tgz#fd62c753991467d9d1ffe0a9f67f27a529024b96" - integrity sha1-/WLHU5kUZ9nR/+Cp9n8npSkCS5Y= - dependencies: - jsesc "~0.5.0" +regjsgen@^0.5.1: + version "0.5.2" + resolved "https://registry.npm.taobao.org/regjsgen/download/regjsgen-0.5.2.tgz?cache=0&sync_timestamp=1590335923060&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregjsgen%2Fdownload%2Fregjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733" + integrity sha1-kv8pX7He7L9uzaslQ9IH6RqjNzM= regjsparser@^0.6.4: version "0.6.4" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.4.tgz#a769f8684308401a66e9b529d2436ff4d0666272" - integrity sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw== + resolved "https://registry.npm.taobao.org/regjsparser/download/regjsparser-0.6.4.tgz#a769f8684308401a66e9b529d2436ff4d0666272" + integrity sha1-p2n4aEMIQBpm6bUp0kNv9NBmYnI= dependencies: jsesc "~0.5.0" @@ -8106,9 +7018,9 @@ repeating@^2.0.0: is-finite "^1.0.0" request@^2.87.0, request@^2.88.0: - version "2.88.0" - resolved "https://registry.npm.taobao.org/request/download/request-2.88.0.tgz#9c2fca4f7d35b592efe57c7f0a55e81052124fef" - integrity sha1-nC/KT301tZLv5Xx/ClXoEFIST+8= + version "2.88.2" + resolved "https://registry.npm.taobao.org/request/download/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" + integrity sha1-1zyRhzHLWofaBH4gcjQUb2ZNErM= dependencies: aws-sign2 "~0.7.0" aws4 "^1.8.0" @@ -8117,7 +7029,7 @@ request@^2.87.0, request@^2.88.0: extend "~3.0.2" forever-agent "~0.6.1" form-data "~2.3.2" - har-validator "~5.1.0" + har-validator "~5.1.3" http-signature "~1.2.0" is-typedarray "~1.0.0" isstream "~0.1.2" @@ -8127,7 +7039,7 @@ request@^2.87.0, request@^2.88.0: performance-now "^2.1.0" qs "~6.5.2" safe-buffer "^5.1.2" - tough-cookie "~2.4.3" + tough-cookie "~2.5.0" tunnel-agent "^0.6.0" uuid "^3.3.2" @@ -8136,30 +7048,11 @@ require-directory@^2.1.1: resolved "https://registry.npm.taobao.org/require-directory/download/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= -require-from-string@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" - integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== - -require-main-filename@^1.0.1: - version "1.0.1" - resolved "https://registry.npm.taobao.org/require-main-filename/download/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" - integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= - require-main-filename@^2.0.0: version "2.0.0" resolved "https://registry.npm.taobao.org/require-main-filename/download/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" integrity sha1-0LMp7MfMD2Fkn2IhW+aa9UqomJs= -requireg@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/requireg/-/requireg-0.2.2.tgz#437e77a5316a54c9bcdbbf5d1f755fe093089830" - integrity sha512-nYzyjnFcPNGR3lx9lwPPPnuQxv6JWEZd2Ci0u9opN7N5zUEPIhY/GbL3vMGOr2UXwEg9WwSyV9X9Y/kLFgPsOg== - dependencies: - nested-error-stacks "~2.0.1" - rc "~1.2.7" - resolve "~1.7.1" - requires-port@^1.0.0: version "1.0.0" resolved "https://registry.npm.taobao.org/requires-port/download/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" @@ -8182,12 +7075,12 @@ resolve-dir@^1.0.0, resolve-dir@^1.0.1: resolve-from@^3.0.0: version "3.0.0" - resolved "https://registry.npm.taobao.org/resolve-from/download/resolve-from-3.0.0.tgz?cache=0&sync_timestamp=1578925695839&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve-from%2Fdownload%2Fresolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + resolved "https://registry.npm.taobao.org/resolve-from/download/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" integrity sha1-six699nWiBvItuZTM17rywoYh0g= resolve-from@^4.0.0: version "4.0.0" - resolved "https://registry.npm.taobao.org/resolve-from/download/resolve-from-4.0.0.tgz?cache=0&sync_timestamp=1578925695839&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve-from%2Fdownload%2Fresolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + resolved "https://registry.npm.taobao.org/resolve-from/download/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha1-SrzYUq0y3Xuqv+m0DgCjbbXzkuY= resolve-url@^0.2.1: @@ -8201,26 +7094,12 @@ resolve@1.1.7: integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= resolve@^1.1.5, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.12.0, resolve@^1.3.2, resolve@^1.8.1: - version "1.14.2" - resolved "https://registry.npm.taobao.org/resolve/download/resolve-1.14.2.tgz#dbf31d0fa98b1f29aa5169783b9c290cb865fea2" - integrity sha1-2/MdD6mLHymqUWl4O5wpDLhl/qI= + version "1.17.0" + resolved "https://registry.npm.taobao.org/resolve/download/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" + integrity sha1-sllBtUloIxzC0bt2p5y38sC/hEQ= dependencies: path-parse "^1.0.6" -resolve@~1.7.1: - version "1.7.1" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.7.1.tgz#aadd656374fd298aee895bc026b8297418677fd3" - integrity sha512-c7rwLofp8g1U+h1KNyHL/jicrKg1Ek4q+Lr33AL65uZTinUZHe30D5HlyN5V9NW0JX1D5dXQ4jqW5l7Sy/kGfw== - dependencies: - path-parse "^1.0.5" - -responselike@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" - integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= - dependencies: - lowercase-keys "^1.0.0" - restructure@^0.5.3: version "0.5.4" resolved "https://registry.npm.taobao.org/restructure/download/restructure-0.5.4.tgz#f54e7dd563590fb34fd6bf55876109aeccb28de8" @@ -8233,11 +7112,6 @@ ret@~0.1.10: resolved "https://registry.npm.taobao.org/ret/download/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" integrity sha1-uKSCXVvbH8P29Twrwz+BOIaBx7w= -retry@^0.10.0: - version "0.10.1" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.10.1.tgz#e76388d217992c252750241d3d3956fed98d8ff4" - integrity sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q= - retry@^0.12.0: version "0.12.0" resolved "https://registry.npm.taobao.org/retry/download/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" @@ -8255,18 +7129,11 @@ rgba-regex@^1.0.0: rimraf@2, rimraf@^2.5.4, rimraf@^2.6.3, rimraf@^2.7.1: version "2.7.1" - resolved "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + resolved "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz?cache=0&sync_timestamp=1589682814592&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" integrity sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w= dependencies: glob "^7.1.3" -rimraf@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" - integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== - dependencies: - glob "^7.1.3" - ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" resolved "https://registry.npm.taobao.org/ripemd160/download/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" @@ -8287,10 +7154,10 @@ safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha1-mR7GnSluAxN0fVm9/St0XDX4go0= -safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0: - version "5.2.0" - resolved "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" - integrity sha1-t02uxJsRSPiMZLaNSbHoFcHy9Rk= +safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY= safe-regex@^1.1.0: version "1.1.0" @@ -8304,20 +7171,20 @@ safe-regex@^1.1.0: resolved "https://registry.npm.taobao.org/safer-buffer/download/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo= -sass-graph@^2.2.4: - version "2.2.4" - resolved "https://registry.npm.taobao.org/sass-graph/download/sass-graph-2.2.4.tgz#13fbd63cd1caf0908b9fd93476ad43a51d1e0b49" - integrity sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k= +sass-graph@2.2.5: + version "2.2.5" + resolved "https://registry.npm.taobao.org/sass-graph/download/sass-graph-2.2.5.tgz?cache=0&sync_timestamp=1588596752763&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsass-graph%2Fdownload%2Fsass-graph-2.2.5.tgz#a981c87446b8319d96dce0671e487879bd24c2e8" + integrity sha1-qYHIdEa4MZ2W3OBnHkh4eb0kwug= dependencies: glob "^7.0.0" lodash "^4.0.0" scss-tokenizer "^0.2.3" - yargs "^7.0.0" + yargs "^13.3.2" sass-loader@^8.0.2: version "8.0.2" - resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-8.0.2.tgz#debecd8c3ce243c76454f2e8290482150380090d" - integrity sha512-7o4dbSK8/Ol2KflEmSco4jTjQoV988bM82P9CZdmo9hR3RLnvNc0ufMNdMrB0caq38JQ/FgF4/7RcbcfKzxoFQ== + resolved "https://registry.npm.taobao.org/sass-loader/download/sass-loader-8.0.2.tgz?cache=0&sync_timestamp=1594134279287&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsass-loader%2Fdownload%2Fsass-loader-8.0.2.tgz#debecd8c3ce243c76454f2e8290482150380090d" + integrity sha1-3r7NjDziQ8dkVPLoKQSCFQOACQ0= dependencies: clone-deep "^4.0.1" loader-utils "^1.2.3" @@ -8327,32 +7194,34 @@ sass-loader@^8.0.2: sax@~1.2.4: version "1.2.4" - resolved "https://registry.npm.taobao.org/sax/download/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + resolved "https://registry.npm.taobao.org/sax/download/sax-1.2.4.tgz?cache=0&sync_timestamp=1589682064084&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsax%2Fdownload%2Fsax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" integrity sha1-KBYjTiN4vdxOU1T6tcqold9xANk= schema-utils@^1.0.0: version "1.0.0" - resolved "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz?cache=0&sync_timestamp=1574946791935&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fschema-utils%2Fdownload%2Fschema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" + resolved "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" integrity sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A= dependencies: ajv "^6.1.0" ajv-errors "^1.0.0" ajv-keywords "^3.1.0" -schema-utils@^2.6.0, schema-utils@^2.6.1, schema-utils@^2.6.4, schema-utils@^2.6.5: - version "2.6.5" - resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.6.5.tgz#c758f0a7e624263073d396e29cd40aa101152d8a" - integrity sha512-5KXuwKziQrTVHh8j/Uxz+QUbxkaLW9X/86NBlx/gnKgtsZA2GIVMUn17qWhRFwF8jdYb3Dig5hRO/W5mZqy6SQ== +schema-utils@^2.6.1, schema-utils@^2.6.5, schema-utils@^2.6.6, schema-utils@^2.7.0: + version "2.7.0" + resolved "https://registry.npm.taobao.org/schema-utils/download/schema-utils-2.7.0.tgz#17151f76d8eae67fbbf77960c33c676ad9f4efc7" + integrity sha1-FxUfdtjq5n+793lgwzxnatn078c= dependencies: - ajv "^6.12.0" + "@types/json-schema" "^7.0.4" + ajv "^6.12.2" ajv-keywords "^3.4.1" scope-analyzer@^2.0.1: - version "2.0.5" - resolved "https://registry.npm.taobao.org/scope-analyzer/download/scope-analyzer-2.0.5.tgz#72c9c6770c3e66984f84c7d3c7045998a1a7db8a" - integrity sha1-csnGdww+ZphPhMfTxwRZmKGn24o= + version "2.1.1" + resolved "https://registry.npm.taobao.org/scope-analyzer/download/scope-analyzer-2.1.1.tgz#5156c27de084d74bf75af9e9506aaf95c6e73dd6" + integrity sha1-UVbCfeCE10v3WvnpUGqvlcbnPdY= dependencies: array-from "^2.1.1" + dash-ast "^1.0.0" es6-map "^0.1.5" es6-set "^0.1.5" es6-symbol "^3.1.1" @@ -8374,8 +7243,8 @@ select-hose@^2.0.0: select2@^4.0.13: version "4.0.13" - resolved "https://registry.yarnpkg.com/select2/-/select2-4.0.13.tgz#0dbe377df3f96167c4c1626033e924372d8ef44d" - integrity sha512-1JeB87s6oN/TDxQQYCvS5EFoQyvV6eYMZZ0AeA4tdFDYWN3BAGZ8npr17UBFddU0lgAt3H0yjX3X6/ekOj1yjw== + resolved "https://registry.npm.taobao.org/select2/download/select2-4.0.13.tgz#0dbe377df3f96167c4c1626033e924372d8ef44d" + integrity sha1-Db43ffP5YWfEwWJgM+kkNy2O9E0= select@^1.1.2: version "1.1.2" @@ -8389,18 +7258,6 @@ selfsigned@^1.10.7: dependencies: node-forge "0.9.0" -semver-diff@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b" - integrity sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg== - dependencies: - semver "^6.3.0" - -semver-utils@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/semver-utils/-/semver-utils-1.1.4.tgz#cf0405e669a57488913909fc1c3f29bf2a4871e2" - integrity sha512-EjnoLE5OGmDAVV/8YDoN5KiajNadjzIp9BAHOhYeQHt7j0UWxjmgsx4YD48wp4Ue1Qogq38F1GNUJNqF1kKKxA== - "semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: version "5.7.1" resolved "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" @@ -8411,21 +7268,11 @@ semver@7.0.0: resolved "https://registry.npm.taobao.org/semver/download/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" integrity sha1-XzyjV2HkfgWyBsba/yz4FPAxa44= -semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: +semver@^6.0.0, semver@^6.3.0: version "6.3.0" resolved "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0= -semver@^7.0.0: - version "7.3.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" - integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== - -semver@^7.1.1, semver@^7.1.3: - version "7.1.3" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.1.3.tgz#e4345ce73071c53f336445cfc19efb1c311df2a6" - integrity sha512-ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA== - semver@~5.3.0: version "5.3.0" resolved "https://registry.npm.taobao.org/semver/download/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" @@ -8455,6 +7302,13 @@ serialize-javascript@^2.1.2: resolved "https://registry.npm.taobao.org/serialize-javascript/download/serialize-javascript-2.1.2.tgz#ecec53b0e0317bdc95ef76ab7074b7384785fa61" integrity sha1-7OxTsOAxe9yV73arcHS3OEeF+mE= +serialize-javascript@^3.1.0: + version "3.1.0" + resolved "https://registry.npm.taobao.org/serialize-javascript/download/serialize-javascript-3.1.0.tgz#8bf3a9170712664ef2561b44b691eafe399214ea" + integrity sha1-i/OpFwcSZk7yVhtEtpHq/jmSFOo= + dependencies: + randombytes "^2.1.0" + serve-index@^1.9.1: version "1.9.1" resolved "https://registry.npm.taobao.org/serve-index/download/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" @@ -8535,7 +7389,7 @@ shallow-copy@~0.0.1: shebang-command@^1.2.0: version "1.2.0" - resolved "https://registry.npm.taobao.org/shebang-command/download/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + resolved "https://registry.npm.taobao.org/shebang-command/download/shebang-command-1.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fshebang-command%2Fdownload%2Fshebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= dependencies: shebang-regex "^1.0.0" @@ -8546,14 +7400,9 @@ shebang-regex@^1.0.0: integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= signal-exit@^3.0.0: - version "3.0.2" - resolved "https://registry.npm.taobao.org/signal-exit/download/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" - integrity sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0= - -signal-exit@^3.0.2: version "3.0.3" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" - integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== + resolved "https://registry.npm.taobao.org/signal-exit/download/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" + integrity sha1-oUEMLt2PB3sItOJTyOrPyvBXRhw= simple-swizzle@^0.2.2: version "0.2.2" @@ -8562,16 +7411,6 @@ simple-swizzle@^0.2.2: dependencies: is-arrayish "^0.3.1" -sisteransi@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" - integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== - -smart-buffer@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.1.0.tgz#91605c25d91652f4661ea69ccf45f1b331ca21ba" - integrity sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw== - snapdragon-node@^2.0.1: version "2.1.1" resolved "https://registry.npm.taobao.org/snapdragon-node/download/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" @@ -8616,30 +7455,13 @@ sockjs-client@1.4.0: sockjs@0.3.20: version "0.3.20" - resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.20.tgz#b26a283ec562ef8b2687b44033a4eeceac75d855" - integrity sha512-SpmVOVpdq0DJc0qArhF3E5xsxvaiqGNb73XfgBpK1y3UD5gs8DSo8aCTsuT5pX8rssdc2NDIzANwP9eCAiSdTA== + resolved "https://registry.npm.taobao.org/sockjs/download/sockjs-0.3.20.tgz#b26a283ec562ef8b2687b44033a4eeceac75d855" + integrity sha1-smooPsVi74smh7RAM6Tuzqx12FU= dependencies: faye-websocket "^0.10.0" uuid "^3.4.0" websocket-driver "0.6.5" -socks-proxy-agent@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-5.0.0.tgz#7c0f364e7b1cf4a7a437e71253bed72e9004be60" - integrity sha512-lEpa1zsWCChxiynk+lCycKuC502RxDWLKJZoIhnxrWNjLSDGYRFflHA1/228VkRcnv9TIb8w98derGbpKxJRgA== - dependencies: - agent-base "6" - debug "4" - socks "^2.3.3" - -socks@^2.3.3: - version "2.4.1" - resolved "https://registry.yarnpkg.com/socks/-/socks-2.4.1.tgz#cea68a280a3bf7cb6333dbb40cfb243d10725e9d" - integrity sha512-8mWHeYC1OA0500qzb+sqwm0Hzi8oBpeuI1JugoBVMEJtJvxSgco8xFSK+NRnZcHeeWjTbF82KUDo5sXH22TY5A== - dependencies: - ip "1.1.5" - smart-buffer "^4.1.0" - sort-keys@^1.0.0: version "1.1.2" resolved "https://registry.npm.taobao.org/sort-keys/download/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" @@ -8664,9 +7486,9 @@ source-map-resolve@^0.5.0: urix "^0.1.0" source-map-support@~0.5.12: - version "0.5.16" - resolved "https://registry.npm.taobao.org/source-map-support/download/source-map-support-0.5.16.tgz?cache=0&sync_timestamp=1572389965235&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-support%2Fdownload%2Fsource-map-support-0.5.16.tgz#0ae069e7fe3ba7538c64c98515e35339eac5a042" - integrity sha1-CuBp5/47p1OMZMmFFeNTOerFoEI= + version "0.5.19" + resolved "https://registry.npm.taobao.org/source-map-support/download/source-map-support-0.5.19.tgz?cache=0&sync_timestamp=1587719493563&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-support%2Fdownload%2Fsource-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" + integrity sha1-qYti+G3K9PZzmWSMCFKRq56P7WE= dependencies: buffer-from "^1.0.0" source-map "^0.6.0" @@ -8700,33 +7522,33 @@ source-map@~0.1.30: dependencies: amdefine ">=0.0.4" +sourcemap-codec@^1.4.1: + version "1.4.8" + resolved "https://registry.npm.taobao.org/sourcemap-codec/download/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" + integrity sha1-6oBL2UhXQC5pktBaOO8a41qatMQ= + sparklines@^1.2.0: version "1.2.0" resolved "https://registry.npm.taobao.org/sparklines/download/sparklines-1.2.0.tgz#bbbf2dede9bc337749e430baf67c2b37f88f6fa0" integrity sha1-u78t7em8M3dJ5DC69nwrN/iPb6A= -spawn-please@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/spawn-please/-/spawn-please-0.3.0.tgz#db338ec4cff63abc69f1d0e08cee9eb8bebd9d11" - integrity sha1-2zOOxM/2Orxp8dDgjO6euL69nRE= - spdx-correct@^3.0.0: - version "3.1.0" - resolved "https://registry.npm.taobao.org/spdx-correct/download/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" - integrity sha1-+4PlBERSaPFUsHTiGMh8ADzTHfQ= + version "3.1.1" + resolved "https://registry.npm.taobao.org/spdx-correct/download/spdx-correct-3.1.1.tgz?cache=0&sync_timestamp=1590161973481&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdx-correct%2Fdownload%2Fspdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" + integrity sha1-3s6BrJweZxPl99G28X1Gj6U9iak= dependencies: spdx-expression-parse "^3.0.0" spdx-license-ids "^3.0.0" spdx-exceptions@^2.1.0: - version "2.2.0" - resolved "https://registry.npm.taobao.org/spdx-exceptions/download/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977" - integrity sha1-LqRQrudPKom/uUUZwH/Nb0EyKXc= + version "2.3.0" + resolved "https://registry.npm.taobao.org/spdx-exceptions/download/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + integrity sha1-PyjOGnegA3JoPq3kpDMYNSeiFj0= spdx-expression-parse@^3.0.0: - version "3.0.0" - resolved "https://registry.npm.taobao.org/spdx-expression-parse/download/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" - integrity sha1-meEZt6XaAOBUkcn6M4t5BII7QdA= + version "3.0.1" + resolved "https://registry.npm.taobao.org/spdx-expression-parse/download/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha1-z3D1BILu/cmOPOCmgz5KU87rpnk= dependencies: spdx-exceptions "^2.1.0" spdx-license-ids "^3.0.0" @@ -8750,8 +7572,8 @@ spdy-transport@^3.0.0: spdy@^4.0.2: version "4.0.2" - resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" - integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== + resolved "https://registry.npm.taobao.org/spdy/download/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" + integrity sha1-t09GYgOj7aRSwCSSuR+56EonZ3s= dependencies: debug "^4.1.0" handle-thing "^2.0.0" @@ -8801,22 +7623,15 @@ ssri@^7.0.0: figgy-pudding "^3.5.1" minipass "^3.1.1" -ssri@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.0.tgz#79ca74e21f8ceaeddfcb4b90143c458b8d988808" - integrity sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA== - dependencies: - minipass "^3.1.1" - stable@^0.1.8: version "0.1.8" resolved "https://registry.npm.taobao.org/stable/download/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" integrity sha1-g26zyDgv4pNv6vVEYxAXzn1Ho88= -static-eval@^2.0.0, static-eval@^2.0.2: - version "2.0.3" - resolved "https://registry.npm.taobao.org/static-eval/download/static-eval-2.0.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstatic-eval%2Fdownload%2Fstatic-eval-2.0.3.tgz#cb62fc79946bd4d5f623a45ad428233adace4d72" - integrity sha1-y2L8eZRr1NX2I6Ra1CgjOtrOTXI= +static-eval@^2.0.5: + version "2.1.0" + resolved "https://registry.npm.taobao.org/static-eval/download/static-eval-2.1.0.tgz?cache=0&sync_timestamp=1592217615196&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstatic-eval%2Fdownload%2Fstatic-eval-2.1.0.tgz#a16dbe54522d7fa5ef1389129d813fd47b148014" + integrity sha1-oW2+VFItf6XvE4kSnYE/1HsUgBQ= dependencies: escodegen "^1.11.1" @@ -8828,44 +7643,24 @@ static-extend@^0.1.1: define-property "^0.2.5" object-copy "^0.1.0" -static-module@^2.2.0: - version "2.2.5" - resolved "https://registry.npm.taobao.org/static-module/download/static-module-2.2.5.tgz#bd40abceae33da6b7afb84a0e4329ff8852bfbbf" - integrity sha1-vUCrzq4z2mt6+4Sg5DKf+IUr+78= - dependencies: - concat-stream "~1.6.0" - convert-source-map "^1.5.1" - duplexer2 "~0.1.4" - escodegen "~1.9.0" - falafel "^2.1.0" - has "^1.0.1" - magic-string "^0.22.4" - merge-source-map "1.0.4" - object-inspect "~1.4.0" - quote-stream "~1.0.2" - readable-stream "~2.3.3" - shallow-copy "~0.0.1" - static-eval "^2.0.0" - through2 "~2.0.3" - static-module@^3.0.2: - version "3.0.3" - resolved "https://registry.npm.taobao.org/static-module/download/static-module-3.0.3.tgz#cc2301ed3fe353e2d2a2195137013853676f9960" - integrity sha1-zCMB7T/jU+LSohlRNwE4U2dvmWA= + version "3.0.4" + resolved "https://registry.npm.taobao.org/static-module/download/static-module-3.0.4.tgz#bfbd1d1c38dd1fbbf0bb4af0c1b3ae18a93a2b68" + integrity sha1-v70dHDjdH7vwu0rwwbOuGKk6K2g= dependencies: acorn-node "^1.3.0" concat-stream "~1.6.0" convert-source-map "^1.5.1" duplexer2 "~0.1.4" - escodegen "~1.9.0" + escodegen "^1.11.1" has "^1.0.1" - magic-string "^0.22.4" + magic-string "0.25.1" merge-source-map "1.0.4" - object-inspect "~1.4.0" + object-inspect "^1.6.0" readable-stream "~2.3.3" scope-analyzer "^2.0.1" shallow-copy "~0.0.1" - static-eval "^2.0.2" + static-eval "^2.0.5" through2 "~2.0.3" "statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: @@ -8917,7 +7712,7 @@ strict-uri-encode@^1.0.0: resolved "https://registry.npm.taobao.org/strict-uri-encode/download/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= -string-width@^1.0.1, string-width@^1.0.2: +string-width@^1.0.1: version "1.0.2" resolved "https://registry.npm.taobao.org/string-width/download/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= @@ -8943,30 +7738,21 @@ string-width@^3.0.0, string-width@^3.1.0: is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" -string-width@^4.0.0, string-width@^4.1.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" - integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.0" - -string.prototype.trimleft@^2.1.1: - version "2.1.1" - resolved "https://registry.npm.taobao.org/string.prototype.trimleft/download/string.prototype.trimleft-2.1.1.tgz#9bdb8ac6abd6d602b17a4ed321870d2f8dcefc74" - integrity sha1-m9uKxqvW1gKxek7TIYcNL43O/HQ= +string.prototype.trimend@^1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/string.prototype.trimend/download/string.prototype.trimend-1.0.1.tgz?cache=0&sync_timestamp=1586465233837&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.trimend%2Fdownload%2Fstring.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913" + integrity sha1-hYEqa4R6wAInD1gIFGBkyZX7aRM= dependencies: define-properties "^1.1.3" - function-bind "^1.1.1" + es-abstract "^1.17.5" -string.prototype.trimright@^2.1.1: - version "2.1.1" - resolved "https://registry.npm.taobao.org/string.prototype.trimright/download/string.prototype.trimright-2.1.1.tgz#440314b15996c866ce8a0341894d45186200c5d9" - integrity sha1-RAMUsVmWyGbOigNBiU1FGGIAxdk= +string.prototype.trimstart@^1.0.1: + version "1.0.1" + resolved "https://registry.npm.taobao.org/string.prototype.trimstart/download/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54" + integrity sha1-FK9tnzSwU/fPyJty+PLuFLkDmlQ= dependencies: define-properties "^1.1.3" - function-bind "^1.1.1" + es-abstract "^1.17.5" string_decoder@^1.0.0, string_decoder@^1.1.1: version "1.3.0" @@ -8984,32 +7770,25 @@ string_decoder@~1.1.1: strip-ansi@^3.0.0, strip-ansi@^3.0.1: version "3.0.1" - resolved "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + resolved "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= dependencies: ansi-regex "^2.0.0" strip-ansi@^4.0.0: version "4.0.0" - resolved "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + resolved "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= dependencies: ansi-regex "^3.0.0" strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: version "5.2.0" - resolved "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz?cache=0&sync_timestamp=1573280518303&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-ansi%2Fdownload%2Fstrip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + resolved "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" integrity sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4= dependencies: ansi-regex "^4.1.0" -strip-ansi@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" - integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== - dependencies: - ansi-regex "^5.0.0" - strip-bom@^2.0.0: version "2.0.0" resolved "https://registry.npm.taobao.org/strip-bom/download/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" @@ -9029,18 +7808,13 @@ strip-indent@^1.0.1: dependencies: get-stdin "^4.0.1" -strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= - style-loader@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-1.1.3.tgz#9e826e69c683c4d9bf9db924f85e9abb30d5e200" - integrity sha512-rlkH7X/22yuwFYK357fMN/BxYOorfnfq0eD7+vqlemSK4wEcejFF1dg4zxP0euBW8NrYx2WZzZ8PPFevr7D+Kw== + version "1.2.1" + resolved "https://registry.npm.taobao.org/style-loader/download/style-loader-1.2.1.tgz#c5cbbfbf1170d076cfdd86e0109c5bba114baa1a" + integrity sha1-xcu/vxFw0HbP3YbgEJxbuhFLqho= dependencies: - loader-utils "^1.2.3" - schema-utils "^2.6.4" + loader-utils "^2.0.0" + schema-utils "^2.6.6" stylehacks@^4.0.0: version "4.0.3" @@ -9052,18 +7826,9 @@ stylehacks@^4.0.0: postcss-selector-parser "^3.0.0" summernote@^0.8.16: - version "0.8.16" - resolved "https://registry.yarnpkg.com/summernote/-/summernote-0.8.16.tgz#73f03a0cfac81d3c473de73ee8cc819cd6189b31" - integrity sha512-eheLC4jXAw+GEzmg5+/pCwMchempcU4i+T+/y99rZhALqPW7R1XRQD7rO/VUBboz6awApjPRRD30rRD4XJdEaQ== - dependencies: - npm-check-updates "^4.0.1" - -supports-color@6.1.0, supports-color@^6.1.0: - version "6.1.0" - resolved "https://registry.npm.taobao.org/supports-color/download/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" - integrity sha1-B2Srxpxj1ayELdSGfo0CXogN+PM= - dependencies: - has-flag "^3.0.0" + version "0.8.18" + resolved "https://registry.npm.taobao.org/summernote/download/summernote-0.8.18.tgz#be5c368b1c92de8a05039a9976157bdea7aae386" + integrity sha1-vlw2ixyS3ooFA5qZdhV73qeq44Y= supports-color@^2.0.0: version "2.0.0" @@ -9077,10 +7842,17 @@ supports-color@^5.3.0: dependencies: has-flag "^3.0.0" -supports-color@^7.0.0, supports-color@^7.1.0: +supports-color@^6.1.0: + version "6.1.0" + resolved "https://registry.npm.taobao.org/supports-color/download/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" + integrity sha1-B2Srxpxj1ayELdSGfo0CXogN+PM= + dependencies: + has-flag "^3.0.0" + +supports-color@^7.0.0: version "7.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" - integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== + resolved "https://registry.npm.taobao.org/supports-color/download/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" + integrity sha1-aOMlkd9z4lrRxLSRCKLsUHliv9E= dependencies: has-flag "^4.0.0" @@ -9093,7 +7865,7 @@ svg-to-pdfkit@^0.1.8: svgo@^1.0.0: version "1.3.2" - resolved "https://registry.npm.taobao.org/svgo/download/svgo-1.3.2.tgz?cache=0&sync_timestamp=1572433264480&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsvgo%2Fdownload%2Fsvgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" + resolved "https://registry.npm.taobao.org/svgo/download/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" integrity sha1-ttxRHAYzRsnkFbgeQ0ARRbltQWc= dependencies: chalk "^2.4.1" @@ -9111,9 +7883,9 @@ svgo@^1.0.0: util.promisify "~1.0.0" sweetalert2@^9.10.8: - version "9.10.8" - resolved "https://registry.yarnpkg.com/sweetalert2/-/sweetalert2-9.10.8.tgz#8cb2367c9eb2b2d9c560f47ef6ef943287902924" - integrity sha512-OqHgFs0QWbNN4qdOt9hkvDTA1+pHTrw8yNARECQdCpBmTKxC5OttgXmnGE5kXsgrT7h7BlCjDFqSAZ+Qnk3S3A== + version "9.17.0" + resolved "https://registry.npm.taobao.org/sweetalert2/download/sweetalert2-9.17.0.tgz#9ea457f3c44295a3629ed5998fee6a51940c3891" + integrity sha1-nqRX88RClaNintWZj+5qUZQMOJE= tapable@^1.0.0, tapable@^1.1.3: version "1.1.3" @@ -9129,30 +7901,6 @@ tar@^2.0.0: fstream "^1.0.12" inherits "2" -tar@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.0.1.tgz#7b3bd6c313cb6e0153770108f8d70ac298607efa" - integrity sha512-bKhKrrz2FJJj5s7wynxy/fyxpE0CmCjmOQ1KV4KkgXFWOgoIT/NbTMnB1n+LFNrNk0SSBVGGxcK5AGsyC+pW5Q== - dependencies: - chownr "^1.1.3" - fs-minipass "^2.0.0" - minipass "^3.0.0" - minizlib "^2.1.0" - mkdirp "^1.0.3" - yallist "^4.0.0" - -tar@^6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.0.2.tgz#5df17813468a6264ff14f766886c622b84ae2f39" - integrity sha512-Glo3jkRtPcvpDlAs/0+hozav78yoXKFr+c4wgw62NNMO3oo4AaJdCo21Uu7lcwr55h39W2XD1LMERc64wtbItg== - dependencies: - chownr "^2.0.0" - fs-minipass "^2.0.0" - minipass "^3.0.0" - minizlib "^2.1.0" - mkdirp "^1.0.3" - yallist "^4.0.0" - tempusdominus-bootstrap-4@^5.1.2: version "5.1.2" resolved "https://registry.npm.taobao.org/tempusdominus-bootstrap-4/download/tempusdominus-bootstrap-4-5.1.2.tgz#3c9906ca6e5d563faa0b81b2fdc6aa79cad9c0be" @@ -9164,45 +7912,40 @@ tempusdominus-bootstrap-4@^5.1.2: moment-timezone "^0.5.11" popper.js "^1.14.3" -term-size@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/term-size/-/term-size-2.2.0.tgz#1f16adedfe9bdc18800e1776821734086fcc6753" - integrity sha512-a6sumDlzyHVJWb8+YofY4TW112G6p2FCPEAFk+59gIYHv3XHRhm9ltVQ9kli4hNWeQBwSpe8cRN25x0ROunMOw== - terser-webpack-plugin@^1.4.3: - version "1.4.3" - resolved "https://registry.npm.taobao.org/terser-webpack-plugin/download/terser-webpack-plugin-1.4.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fterser-webpack-plugin%2Fdownload%2Fterser-webpack-plugin-1.4.3.tgz#5ecaf2dbdc5fb99745fd06791f46fc9ddb1c9a7c" - integrity sha1-Xsry29xfuZdF/QZ5H0b8ndscmnw= + version "1.4.4" + resolved "https://registry.npm.taobao.org/terser-webpack-plugin/download/terser-webpack-plugin-1.4.4.tgz?cache=0&sync_timestamp=1592492222533&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fterser-webpack-plugin%2Fdownload%2Fterser-webpack-plugin-1.4.4.tgz#2c63544347324baafa9a56baaddf1634c8abfc2f" + integrity sha1-LGNUQ0cyS6r6mla6rd8WNMir/C8= dependencies: cacache "^12.0.2" find-cache-dir "^2.1.0" is-wsl "^1.1.0" schema-utils "^1.0.0" - serialize-javascript "^2.1.2" + serialize-javascript "^3.1.0" source-map "^0.6.1" terser "^4.1.2" webpack-sources "^1.4.0" worker-farm "^1.7.0" terser-webpack-plugin@^2.3.5: - version "2.3.5" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-2.3.5.tgz#5ad971acce5c517440ba873ea4f09687de2f4a81" - integrity sha512-WlWksUoq+E4+JlJ+h+U+QUzXpcsMSSNXkDy9lBVkSqDn1w23Gg29L/ary9GeJVYCGiNJJX7LnVc4bwL1N3/g1w== + version "2.3.7" + resolved "https://registry.npm.taobao.org/terser-webpack-plugin/download/terser-webpack-plugin-2.3.7.tgz?cache=0&sync_timestamp=1592492222533&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fterser-webpack-plugin%2Fdownload%2Fterser-webpack-plugin-2.3.7.tgz#4910ff5d1a872168cc7fa6cd3749e2b0d60a8a0b" + integrity sha1-SRD/XRqHIWjMf6bNN0nisNYKigs= dependencies: cacache "^13.0.1" - find-cache-dir "^3.2.0" - jest-worker "^25.1.0" - p-limit "^2.2.2" - schema-utils "^2.6.4" - serialize-javascript "^2.1.2" + find-cache-dir "^3.3.1" + jest-worker "^25.4.0" + p-limit "^2.3.0" + schema-utils "^2.6.6" + serialize-javascript "^3.1.0" source-map "^0.6.1" - terser "^4.4.3" + terser "^4.6.12" webpack-sources "^1.4.3" -terser@^4.1.2, terser@^4.4.3: - version "4.6.3" - resolved "https://registry.npm.taobao.org/terser/download/terser-4.6.3.tgz#e33aa42461ced5238d352d2df2a67f21921f8d87" - integrity sha1-4zqkJGHO1SONNS0t8qZ/IZIfjYc= +terser@^4.1.2, terser@^4.6.12: + version "4.8.0" + resolved "https://registry.npm.taobao.org/terser/download/terser-4.8.0.tgz?cache=0&sync_timestamp=1593953672022&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fterser%2Fdownload%2Fterser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17" + integrity sha1-YwVjQ9fHC7KfOvZlhlpG/gOg3xc= dependencies: commander "^2.20.0" source-map "~0.6.1" @@ -9223,7 +7966,7 @@ through@~2.3.4: thunky@^1.0.2: version "1.1.0" - resolved "https://registry.npm.taobao.org/thunky/download/thunky-1.1.0.tgz?cache=0&sync_timestamp=1578482069419&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fthunky%2Fdownload%2Fthunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" + resolved "https://registry.npm.taobao.org/thunky/download/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" integrity sha1-Wrr3FKlAXbBQRzK7zNLO3Z75U30= timers-browserify@^2.0.4: @@ -9255,7 +7998,7 @@ to-arraybuffer@^1.0.0: to-fast-properties@^2.0.0: version "2.0.0" - resolved "https://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + resolved "https://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-2.0.0.tgz?cache=0&sync_timestamp=1580550747747&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-fast-properties%2Fdownload%2Fto-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= to-object-path@^0.3.0: @@ -9265,11 +8008,6 @@ to-object-path@^0.3.0: dependencies: kind-of "^3.0.2" -to-readable-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" - integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== - to-regex-range@^2.1.0: version "2.1.1" resolved "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" @@ -9278,6 +8016,13 @@ to-regex-range@^2.1.0: is-number "^3.0.0" repeat-string "^1.6.1" +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ= + dependencies: + is-number "^7.0.0" + to-regex@^3.0.1, to-regex@^3.0.2: version "3.0.2" resolved "https://registry.npm.taobao.org/to-regex/download/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" @@ -9300,13 +8045,13 @@ toidentifier@1.0.0: resolved "https://registry.npm.taobao.org/toidentifier/download/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" integrity sha1-fhvjRw8ed5SLxD2Uo8j013UrpVM= -tough-cookie@~2.4.3: - version "2.4.3" - resolved "https://registry.npm.taobao.org/tough-cookie/download/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" - integrity sha1-U/Nto/R3g7CSWvoG/587FlKA94E= +tough-cookie@~2.5.0: + version "2.5.0" + resolved "https://registry.npm.taobao.org/tough-cookie/download/tough-cookie-2.5.0.tgz?cache=0&sync_timestamp=1589682815640&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftough-cookie%2Fdownload%2Ftough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" + integrity sha1-zZ+yoKodWhK0c72fuW+j3P9lreI= dependencies: - psl "^1.1.24" - punycode "^1.4.1" + psl "^1.1.28" + punycode "^2.1.1" trim-newlines@^1.0.0: version "1.0.0" @@ -9322,13 +8067,13 @@ trim-newlines@^1.0.0: ts-pnp@^1.1.6: version "1.2.0" - resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" - integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw== + resolved "https://registry.npm.taobao.org/ts-pnp/download/ts-pnp-1.2.0.tgz?cache=0&sync_timestamp=1585245674012&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fts-pnp%2Fdownload%2Fts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" + integrity sha1-pQCtCEsHmPHDBxrzkeZZEshrypI= tslib@^1.9.0: - version "1.10.0" - resolved "https://registry.npm.taobao.org/tslib/download/tslib-1.10.0.tgz#c3c19f95973fb0a62973fb09d90d961ee43e5c8a" - integrity sha1-w8GflZc/sKYpc/sJ2Q2WHuQ+XIo= + version "1.13.0" + resolved "https://registry.npm.taobao.org/tslib/download/tslib-1.13.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" + integrity sha1-yIHhPMcBWJTtkUhi0nZDb6mkcEM= tty-browserify@0.0.0: version "0.0.0" @@ -9359,11 +8104,6 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" -type-fest@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" - integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== - type-is@~1.6.17, type-is@~1.6.18: version "1.6.18" resolved "https://registry.npm.taobao.org/type-is/download/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" @@ -9374,21 +8114,14 @@ type-is@~1.6.17, type-is@~1.6.18: type@^1.0.1: version "1.2.0" - resolved "https://registry.npm.taobao.org/type/download/type-1.2.0.tgz?cache=0&sync_timestamp=1570722894467&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype%2Fdownload%2Ftype-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" + resolved "https://registry.npm.taobao.org/type/download/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" integrity sha1-hI3XaY2vo+VKbEeedZxLw/GIR6A= type@^2.0.0: version "2.0.0" - resolved "https://registry.npm.taobao.org/type/download/type-2.0.0.tgz?cache=0&sync_timestamp=1570722894467&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftype%2Fdownload%2Ftype-2.0.0.tgz#5f16ff6ef2eb44f260494dae271033b29c09a9c3" + resolved "https://registry.npm.taobao.org/type/download/type-2.0.0.tgz#5f16ff6ef2eb44f260494dae271033b29c09a9c3" integrity sha1-Xxb/bvLrRPJgSU2uJxAzspwJqcM= -typedarray-to-buffer@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" - integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== - dependencies: - is-typedarray "^1.0.0" - typedarray@^0.0.6: version "0.0.6" resolved "https://registry.npm.taobao.org/typedarray/download/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" @@ -9407,17 +8140,12 @@ unicode-match-property-ecmascript@^1.0.4: unicode-canonical-property-names-ecmascript "^1.0.4" unicode-property-aliases-ecmascript "^1.0.4" -unicode-match-property-value-ecmascript@^1.1.0: - version "1.1.0" - resolved "https://registry.npm.taobao.org/unicode-match-property-value-ecmascript/download/unicode-match-property-value-ecmascript-1.1.0.tgz#5b4b426e08d13a80365e0d657ac7a6c1ec46a277" - integrity sha1-W0tCbgjROoA2Xg1lesemwexGonc= - unicode-match-property-value-ecmascript@^1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531" - integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ== + resolved "https://registry.npm.taobao.org/unicode-match-property-value-ecmascript/download/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531" + integrity sha1-DZH2AO7rMJaqlisdb8iIduZOpTE= -unicode-properties@^1.0.0: +unicode-properties@^1.2.2: version "1.3.1" resolved "https://registry.npm.taobao.org/unicode-properties/download/unicode-properties-1.3.1.tgz#cc642b6314bde2c691d65dd94cece09ed84f1282" integrity sha1-zGQrYxS94saR1l3ZTOzgnthPEoI= @@ -9426,9 +8154,9 @@ unicode-properties@^1.0.0: unicode-trie "^2.0.0" unicode-property-aliases-ecmascript@^1.0.4: - version "1.0.5" - resolved "https://registry.npm.taobao.org/unicode-property-aliases-ecmascript/download/unicode-property-aliases-ecmascript-1.0.5.tgz#a9cc6cc7ce63a0a3023fc99e341b94431d405a57" - integrity sha1-qcxsx85joKMCP8meNBuUQx1AWlc= + version "1.1.0" + resolved "https://registry.npm.taobao.org/unicode-property-aliases-ecmascript/download/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" + integrity sha1-3Vepn2IHvt/0Yoq++5TFDblByPQ= unicode-trie@^0.3.0: version "0.3.1" @@ -9476,33 +8204,26 @@ uniqs@^2.0.0: unique-filename@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" - integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== + resolved "https://registry.npm.taobao.org/unique-filename/download/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" + integrity sha1-HWl2k2mtoFgxA6HmrodoG1ZXMjA= dependencies: unique-slug "^2.0.0" unique-slug@^2.0.0: version "2.0.2" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" - integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== + resolved "https://registry.npm.taobao.org/unique-slug/download/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" + integrity sha1-uqvOkQg/xk6UWw861hPiZPfNTmw= dependencies: imurmurhash "^0.1.4" -unique-string@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" - integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== - dependencies: - crypto-random-string "^2.0.0" - universalify@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-1.0.0.tgz#b61a1da173e8435b2fe3c67d29b9adf8594bd16d" - integrity sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug== + resolved "https://registry.npm.taobao.org/universalify/download/universalify-1.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funiversalify%2Fdownload%2Funiversalify-1.0.0.tgz#b61a1da173e8435b2fe3c67d29b9adf8594bd16d" + integrity sha1-thodoXPoQ1sv48Z9Kbmt+FlL0W0= unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" - resolved "https://registry.npm.taobao.org/unpipe/download/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + resolved "https://registry.npm.taobao.org/unpipe/download/unpipe-1.0.0.tgz?cache=0&sync_timestamp=1589682745059&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funpipe%2Fdownload%2Funpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= unquote@~1.1.1: @@ -9523,25 +8244,6 @@ upath@^1.1.1: resolved "https://registry.npm.taobao.org/upath/download/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" integrity sha1-j2bbzVWog6za5ECK+LA1pQRMGJQ= -update-notifier@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-4.1.0.tgz#4866b98c3bc5b5473c020b1250583628f9a328f3" - integrity sha512-w3doE1qtI0/ZmgeoDoARmI5fjDoT93IfKgEGqm26dGUOh8oNpaSTsGNdYRN/SjOuo10jcJGwkEL3mroKzktkew== - dependencies: - boxen "^4.2.0" - chalk "^3.0.0" - configstore "^5.0.1" - has-yarn "^2.1.0" - import-lazy "^2.1.0" - is-ci "^2.0.0" - is-installed-globally "^0.3.1" - is-npm "^4.0.0" - is-yarn-global "^0.3.0" - latest-version "^5.0.0" - pupa "^2.0.1" - semver-diff "^3.1.1" - xdg-basedir "^4.0.0" - uri-js@^4.2.2: version "4.2.2" resolved "https://registry.npm.taobao.org/uri-js/download/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" @@ -9554,13 +8256,6 @@ urix@^0.1.0: resolved "https://registry.npm.taobao.org/urix/download/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= -url-parse-lax@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" - integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= - dependencies: - prepend-http "^2.0.0" - url-parse@^1.4.3: version "1.4.7" resolved "https://registry.npm.taobao.org/url-parse/download/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278" @@ -9588,12 +8283,14 @@ util-deprecate@^1.0.1, util-deprecate@~1.0.1: integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= util.promisify@~1.0.0: - version "1.0.0" - resolved "https://registry.npm.taobao.org/util.promisify/download/util.promisify-1.0.0.tgz#440f7165a459c9a16dc145eb8e72f35687097030" - integrity sha1-RA9xZaRZyaFtwUXrjnLzVocJcDA= + version "1.0.1" + resolved "https://registry.npm.taobao.org/util.promisify/download/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" + integrity sha1-a693dLgO6w91INi4HQeYKlmruu4= dependencies: - define-properties "^1.1.2" - object.getownpropertydescriptors "^2.0.3" + define-properties "^1.1.3" + es-abstract "^1.17.2" + has-symbols "^1.0.1" + object.getownpropertydescriptors "^2.1.0" util@0.10.3: version "0.10.3" @@ -9614,20 +8311,15 @@ utils-merge@1.0.1: resolved "https://registry.npm.taobao.org/utils-merge/download/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= -uuid@^3.3.2: - version "3.3.3" - resolved "https://registry.npm.taobao.org/uuid/download/uuid-3.3.3.tgz#4568f0216e78760ee1dbf3a4d2cf53e224112866" - integrity sha1-RWjwIW54dg7h2/Ok0s9T4iQRKGY= - -uuid@^3.4.0: +uuid@^3.3.2, uuid@^3.4.0: version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + resolved "https://registry.npm.taobao.org/uuid/download/uuid-3.4.0.tgz?cache=0&sync_timestamp=1592944298186&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fuuid%2Fdownload%2Fuuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha1-sj5DWK+oogL+ehAK8fX4g/AgB+4= -v8-compile-cache@2.0.3: - version "2.0.3" - resolved "https://registry.npm.taobao.org/v8-compile-cache/download/v8-compile-cache-2.0.3.tgz#00f7494d2ae2b688cfe2899df6ed2c54bef91dbe" - integrity sha1-APdJTSritojP4omd9u0sVL75Hb4= +v8-compile-cache@^2.1.1: + version "2.1.1" + resolved "https://registry.npm.taobao.org/v8-compile-cache/download/v8-compile-cache-2.1.1.tgz?cache=0&sync_timestamp=1590871780233&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fv8-compile-cache%2Fdownload%2Fv8-compile-cache-2.1.1.tgz#54bc3cdd43317bca91e35dcaf305b1a7237de745" + integrity sha1-VLw83UMxe8qR413K8wWxpyN950U= validate-npm-package-license@^3.0.1: version "3.0.4" @@ -9637,22 +8329,15 @@ validate-npm-package-license@^3.0.1: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" -validate-npm-package-name@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e" - integrity sha1-X6kS2B630MdK/BQN5zF/DKffQ34= - dependencies: - builtins "^1.0.3" - vary@~1.1.2: version "1.1.2" resolved "https://registry.npm.taobao.org/vary/download/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= vendors@^1.0.0: - version "1.0.3" - resolved "https://registry.npm.taobao.org/vendors/download/vendors-1.0.3.tgz#a6467781abd366217c050f8202e7e50cc9eef8c0" - integrity sha1-pkZ3gavTZiF8BQ+CAuflDMnu+MA= + version "1.0.4" + resolved "https://registry.npm.taobao.org/vendors/download/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" + integrity sha1-4rgApT56Kbk1BsPPQRANFsTErY4= verror@1.10.0: version "1.10.0" @@ -9663,24 +8348,28 @@ verror@1.10.0: core-util-is "1.0.2" extsprintf "^1.2.0" -vlq@^0.2.2: - version "0.2.3" - resolved "https://registry.npm.taobao.org/vlq/download/vlq-0.2.3.tgz#8f3e4328cf63b1540c0d67e1b2778386f8975b26" - integrity sha1-jz5DKM9jsVQMDWfhsneDhviXWyY= - vm-browserify@^1.0.1: version "1.1.2" - resolved "https://registry.npm.taobao.org/vm-browserify/download/vm-browserify-1.1.2.tgz?cache=0&sync_timestamp=1572870776965&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvm-browserify%2Fdownload%2Fvm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" + resolved "https://registry.npm.taobao.org/vm-browserify/download/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" integrity sha1-eGQcSIuObKkadfUR56OzKobl3aA= -watchpack@^1.6.0: - version "1.6.0" - resolved "https://registry.npm.taobao.org/watchpack/download/watchpack-1.6.0.tgz#4bc12c2ebe8aa277a71f1d3f14d685c7b446cd00" - integrity sha1-S8EsLr6KonenHx0/FNaFx7RGzQA= +watchpack-chokidar2@^2.0.0: + version "2.0.0" + resolved "https://registry.npm.taobao.org/watchpack-chokidar2/download/watchpack-chokidar2-2.0.0.tgz#9948a1866cbbd6cb824dea13a7ed691f6c8ddff0" + integrity sha1-mUihhmy71suCTeoTp+1pH2yN3/A= + dependencies: + chokidar "^2.1.8" + +watchpack@^1.6.1: + version "1.7.2" + resolved "https://registry.npm.taobao.org/watchpack/download/watchpack-1.7.2.tgz#c02e4d4d49913c3e7e122c3325365af9d331e9aa" + integrity sha1-wC5NTUmRPD5+EiwzJTZa+dMx6ao= dependencies: - chokidar "^2.0.2" graceful-fs "^4.1.2" neo-async "^2.5.0" + optionalDependencies: + chokidar "^3.4.0" + watchpack-chokidar2 "^2.0.0" wbuf@^1.1.0, wbuf@^1.7.3: version "1.7.3" @@ -9703,25 +8392,25 @@ webpack-assets-manifest@^3.1.1: webpack-sources "^1.0.0" webpack-cli@^3.3.11: - version "3.3.11" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.11.tgz#3bf21889bf597b5d82c38f215135a411edfdc631" - integrity sha512-dXlfuml7xvAFwYUPsrtQAA9e4DOe58gnzSxhgrO/ZM/gyXTBowrsYeubyN4mqGhYdpXMFNyQ6emjJS9M7OBd4g== - dependencies: - chalk "2.4.2" - cross-spawn "6.0.5" - enhanced-resolve "4.1.0" - findup-sync "3.0.0" - global-modules "2.0.0" - import-local "2.0.0" - interpret "1.2.0" - loader-utils "1.2.3" - supports-color "6.1.0" - v8-compile-cache "2.0.3" - yargs "13.2.4" + version "3.3.12" + resolved "https://registry.npm.taobao.org/webpack-cli/download/webpack-cli-3.3.12.tgz?cache=0&sync_timestamp=1592482314348&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-cli%2Fdownload%2Fwebpack-cli-3.3.12.tgz#94e9ada081453cd0aa609c99e500012fd3ad2d4a" + integrity sha1-lOmtoIFFPNCqYJyZ5QABL9OtLUo= + dependencies: + chalk "^2.4.2" + cross-spawn "^6.0.5" + enhanced-resolve "^4.1.1" + findup-sync "^3.0.0" + global-modules "^2.0.0" + import-local "^2.0.0" + interpret "^1.4.0" + loader-utils "^1.4.0" + supports-color "^6.1.0" + v8-compile-cache "^2.1.1" + yargs "^13.3.2" webpack-dev-middleware@^3.7.2: version "3.7.2" - resolved "https://registry.npm.taobao.org/webpack-dev-middleware/download/webpack-dev-middleware-3.7.2.tgz#0019c3db716e3fa5cecbf64f2ab88a74bab331f3" + resolved "https://registry.npm.taobao.org/webpack-dev-middleware/download/webpack-dev-middleware-3.7.2.tgz?cache=0&sync_timestamp=1594744509096&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-dev-middleware%2Fdownload%2Fwebpack-dev-middleware-3.7.2.tgz#0019c3db716e3fa5cecbf64f2ab88a74bab331f3" integrity sha1-ABnD23FuP6XOy/ZPKriKdLqzMfM= dependencies: memory-fs "^0.4.1" @@ -9732,8 +8421,8 @@ webpack-dev-middleware@^3.7.2: webpack-dev-server@^3.11.0: version "3.11.0" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.0.tgz#8f154a3bce1bcfd1cc618ef4e703278855e7ff8c" - integrity sha512-PUxZ+oSTxogFQgkTtFndEtJIPNmml7ExwufBZ9L2/Xyyd5PnOL5UreWe5ZT7IU25DSdykL9p1MLQzmLh2ljSeg== + resolved "https://registry.npm.taobao.org/webpack-dev-server/download/webpack-dev-server-3.11.0.tgz#8f154a3bce1bcfd1cc618ef4e703278855e7ff8c" + integrity sha1-jxVKO84bz9HMYY705wMniFXn/4w= dependencies: ansi-html "0.0.7" bonjour "^3.5.0" @@ -9771,7 +8460,7 @@ webpack-dev-server@^3.11.0: webpack-log@^2.0.0: version "2.0.0" - resolved "https://registry.npm.taobao.org/webpack-log/download/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" + resolved "https://registry.npm.taobao.org/webpack-log/download/webpack-log-2.0.0.tgz?cache=0&sync_timestamp=1564684394562&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-log%2Fdownload%2Fwebpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" integrity sha1-W3ko4GN1k/EZ0y9iJ8HgrDHhtH8= dependencies: ansi-colors "^3.0.0" @@ -9786,15 +8475,15 @@ webpack-sources@^1.0.0, webpack-sources@^1.0.1, webpack-sources@^1.1.0, webpack- source-map "~0.6.1" webpack@^4.42.1: - version "4.42.1" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.42.1.tgz#ae707baf091f5ca3ef9c38b884287cfe8f1983ef" - integrity sha512-SGfYMigqEfdGchGhFFJ9KyRpQKnipvEvjc1TwrXEPCM6H5Wywu10ka8o3KGrMzSMxMQKt8aCHUFh5DaQ9UmyRg== + version "4.43.0" + resolved "https://registry.npm.taobao.org/webpack/download/webpack-4.43.0.tgz?cache=0&sync_timestamp=1594294511041&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack%2Fdownload%2Fwebpack-4.43.0.tgz#c48547b11d563224c561dad1172c8aa0b8a678e6" + integrity sha1-xIVHsR1WMiTFYdrRFyyKoLimeOY= dependencies: "@webassemblyjs/ast" "1.9.0" "@webassemblyjs/helper-module-context" "1.9.0" "@webassemblyjs/wasm-edit" "1.9.0" "@webassemblyjs/wasm-parser" "1.9.0" - acorn "^6.2.1" + acorn "^6.4.1" ajv "^6.10.2" ajv-keywords "^3.4.1" chrome-trace-event "^1.0.2" @@ -9811,34 +8500,29 @@ webpack@^4.42.1: schema-utils "^1.0.0" tapable "^1.1.3" terser-webpack-plugin "^1.4.3" - watchpack "^1.6.0" + watchpack "^1.6.1" webpack-sources "^1.4.1" websocket-driver@0.6.5: version "0.6.5" - resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.6.5.tgz#5cb2556ceb85f4373c6d8238aa691c8454e13a36" + resolved "https://registry.npm.taobao.org/websocket-driver/download/websocket-driver-0.6.5.tgz?cache=0&sync_timestamp=1591289007652&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebsocket-driver%2Fdownload%2Fwebsocket-driver-0.6.5.tgz#5cb2556ceb85f4373c6d8238aa691c8454e13a36" integrity sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY= dependencies: websocket-extensions ">=0.1.1" websocket-driver@>=0.5.1: - version "0.7.3" - resolved "https://registry.npm.taobao.org/websocket-driver/download/websocket-driver-0.7.3.tgz#a2d4e0d4f4f116f1e6297eba58b05d430100e9f9" - integrity sha1-otTg1PTxFvHmKX66WLBdQwEA6fk= + version "0.7.4" + resolved "https://registry.npm.taobao.org/websocket-driver/download/websocket-driver-0.7.4.tgz?cache=0&sync_timestamp=1591289007652&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebsocket-driver%2Fdownload%2Fwebsocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" + integrity sha1-ia1Slbv2S0gKvLox5JU6ynBvV2A= dependencies: - http-parser-js ">=0.4.0 <0.4.11" + http-parser-js ">=0.5.1" safe-buffer ">=5.1.0" websocket-extensions ">=0.1.1" websocket-extensions@>=0.1.1: version "0.1.4" - resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" - integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== - -which-module@^1.0.0: - version "1.0.0" - resolved "https://registry.npm.taobao.org/which-module/download/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" - integrity sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8= + resolved "https://registry.npm.taobao.org/websocket-extensions/download/websocket-extensions-0.1.4.tgz?cache=0&sync_timestamp=1591103014229&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebsocket-extensions%2Fdownload%2Fwebsocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" + integrity sha1-f4RzvIOd/YdgituV1+sHUhFXikI= which-module@^2.0.0: version "2.0.0" @@ -9847,18 +8531,11 @@ which-module@^2.0.0: which@1, which@^1.2.14, which@^1.2.9, which@^1.3.1: version "1.3.1" - resolved "https://registry.npm.taobao.org/which/download/which-1.3.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + resolved "https://registry.npm.taobao.org/which/download/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" integrity sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo= dependencies: isexe "^2.0.0" -which@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" - integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== - dependencies: - isexe "^2.0.0" - wide-align@^1.1.0: version "1.1.3" resolved "https://registry.npm.taobao.org/wide-align/download/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" @@ -9866,13 +8543,6 @@ wide-align@^1.1.0: dependencies: string-width "^1.0.2 || 2" -widest-line@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" - integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== - dependencies: - string-width "^4.0.0" - word-wrap@~1.2.3: version "1.2.3" resolved "https://registry.npm.taobao.org/word-wrap/download/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" @@ -9885,14 +8555,6 @@ worker-farm@^1.7.0: dependencies: errno "~0.1.7" -wrap-ansi@^2.0.0: - version "2.1.0" - resolved "https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" - integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - wrap-ansi@^5.1.0: version "5.1.0" resolved "https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" @@ -9904,41 +8566,21 @@ wrap-ansi@^5.1.0: wrappy@1: version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + resolved "https://registry.npm.taobao.org/wrappy/download/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= -write-file-atomic@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" - integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== - dependencies: - imurmurhash "^0.1.4" - is-typedarray "^1.0.0" - signal-exit "^3.0.2" - typedarray-to-buffer "^3.1.5" - ws@^6.2.1: version "6.2.1" - resolved "https://registry.npm.taobao.org/ws/download/ws-6.2.1.tgz?cache=0&sync_timestamp=1576314828024&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fws%2Fdownload%2Fws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" + resolved "https://registry.npm.taobao.org/ws/download/ws-6.2.1.tgz?cache=0&sync_timestamp=1593925601875&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fws%2Fdownload%2Fws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" integrity sha1-RC/fCkftZPWbal2P8TD0dI7VJPs= dependencies: async-limiter "~1.0.0" -xdg-basedir@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" - integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== - xtend@^4.0.0, xtend@^4.0.2, xtend@~4.0.1: version "4.0.2" resolved "https://registry.npm.taobao.org/xtend/download/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha1-u3J3n1+kZRhrH0OPZ0+jR/2121Q= -y18n@^3.2.1: - version "3.2.1" - resolved "https://registry.npm.taobao.org/y18n/download/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" - integrity sha1-bRX7qITAhnnA136I53WegR4H+kE= - y18n@^4.0.0: version "4.0.0" resolved "https://registry.npm.taobao.org/y18n/download/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" @@ -9956,60 +8598,26 @@ yallist@^3.0.2: yallist@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + resolved "https://registry.npm.taobao.org/yallist/download/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI= yaml@^1.7.2: - version "1.7.2" - resolved "https://registry.npm.taobao.org/yaml/download/yaml-1.7.2.tgz#f26aabf738590ab61efaca502358e48dc9f348b2" - integrity sha1-8mqr9zhZCrYe+spQI1jkjcnzSLI= - dependencies: - "@babel/runtime" "^7.6.3" - -yargs-parser@^13.1.0: - version "13.1.1" - resolved "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-13.1.1.tgz#d26058532aa06d365fe091f6a1fc06b2f7e5eca0" - integrity sha1-0mBYUyqgbTZf4JH2ofwGsvfl7KA= - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" + version "1.10.0" + resolved "https://registry.npm.taobao.org/yaml/download/yaml-1.10.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyaml%2Fdownload%2Fyaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e" + integrity sha1-O1k63ZRIdgd9TWg/7gEIG9n/8x4= yargs-parser@^13.1.2: version "13.1.2" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" - integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== + resolved "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" + integrity sha1-Ew8JcC667vJlDVTObj5XBvek+zg= dependencies: camelcase "^5.0.0" decamelize "^1.2.0" -yargs-parser@^5.0.0: - version "5.0.0" - resolved "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a" - integrity sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo= - dependencies: - camelcase "^3.0.0" - -yargs@13.2.4: - version "13.2.4" - resolved "https://registry.npm.taobao.org/yargs/download/yargs-13.2.4.tgz?cache=0&sync_timestamp=1577940731931&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-13.2.4.tgz#0b562b794016eb9651b98bd37acf364aa5d6dc83" - integrity sha1-C1YreUAW65ZRuYvTes82SqXW3IM= - dependencies: - cliui "^5.0.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" - os-locale "^3.1.0" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^13.1.0" - yargs@^13.3.2: version "13.3.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" - integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== + resolved "https://registry.npm.taobao.org/yargs/download/yargs-13.3.2.tgz?cache=0&sync_timestamp=1594420998254&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" + integrity sha1-rX/+/sGqWVZayRX4Lcyzipwxot0= dependencies: cliui "^5.0.0" find-up "^3.0.0" @@ -10021,22 +8629,3 @@ yargs@^13.3.2: which-module "^2.0.0" y18n "^4.0.0" yargs-parser "^13.1.2" - -yargs@^7.0.0: - version "7.1.0" - resolved "https://registry.npm.taobao.org/yargs/download/yargs-7.1.0.tgz?cache=0&sync_timestamp=1577940731931&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8" - integrity sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg= - dependencies: - camelcase "^3.0.0" - cliui "^3.2.0" - decamelize "^1.1.1" - get-caller-file "^1.0.1" - os-locale "^1.4.0" - read-pkg-up "^1.0.1" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^1.0.2" - which-module "^1.0.0" - y18n "^3.2.1" - yargs-parser "^5.0.0" From f91be1782facad171bd41b317fc5e81696514ee1 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 16 Jul 2020 16:25:47 +0800 Subject: [PATCH 0226/2165] =?UTF-8?q?feat:=20=E7=AE=A1=E7=90=86=E9=9D=A2?= =?UTF-8?q?=E6=9D=BF=E5=A2=9E=E5=8A=A0=E7=B3=BB=E7=BB=9F=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/admin/settings_controller.rb | 15 ++++++++++++++ app/models/setting.rb | 21 ++++++++++++++++++++ app/views/admin/settings/_form.html.slim | 6 ++++++ app/views/admin/settings/index.html.slim | 13 ++++++++++++ app/views/layouts/_content_header.html.slim | 2 +- config/routes.rb | 1 + 6 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 app/controllers/admin/settings_controller.rb create mode 100644 app/views/admin/settings/_form.html.slim create mode 100644 app/views/admin/settings/index.html.slim diff --git a/app/controllers/admin/settings_controller.rb b/app/controllers/admin/settings_controller.rb new file mode 100644 index 000000000..359840474 --- /dev/null +++ b/app/controllers/admin/settings_controller.rb @@ -0,0 +1,15 @@ +class Admin::SettingsController < ApplicationController + # before_action :get_setting, only: [:edit, :update] + + def index + @title = '系统配置' + @settings = Setting.site_configs + end + + private + + def setting_params + params.require(:setting).permit(:host, :user_limits, :admin_emails, + :captcha_enable, :notification_options) + end +end diff --git a/app/models/setting.rb b/app/models/setting.rb index 9438755d9..409e54b34 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -2,6 +2,19 @@ # RailsSettings Model class Setting < RailsSettings::Base + SITE_KEYS = %w[ + site_title + site_https + site_domain + + registrations_mode + guest_mode + + mailer_default_from + mailer_default_to + keep_uploads + ] + cache_prefix { 'v1' } # 系统配置 @@ -41,6 +54,14 @@ class Setting < RailsSettings::Base pg_schema: 'public', } + class << self + def site_configs + SITE_KEYS.each_with_object({}) do |key, obj| + obj[key] = Setting.send(key.to_sym) + end + end + end + # field :default_locale, default: "en", type: :string # field :confirmable_enable, default: "0", type: :boolean # field :admin_emails, default: "admin@rubyonrails.org", type: :array diff --git a/app/views/admin/settings/_form.html.slim b/app/views/admin/settings/_form.html.slim new file mode 100644 index 000000000..30e7503e2 --- /dev/null +++ b/app/views/admin/settings/_form.html.slim @@ -0,0 +1,6 @@ +form.form-horizontal + - @settings.each do |key, value| + .form-group.row + label.col-sm-3.col-form-label = key + .col-sm-9 + input.form-control value="#{value}" \ No newline at end of file diff --git a/app/views/admin/settings/index.html.slim b/app/views/admin/settings/index.html.slim new file mode 100644 index 000000000..849ac4b95 --- /dev/null +++ b/app/views/admin/settings/index.html.slim @@ -0,0 +1,13 @@ +- content_for :title do + = @title + +- content_for :section_title do + = @title + +.row + .col-md-12 + .card + .card-header + h3.card-title = @title + .card-body + == render 'form' \ No newline at end of file diff --git a/app/views/layouts/_content_header.html.slim b/app/views/layouts/_content_header.html.slim index 682f24f97..4b8074bb4 100644 --- a/app/views/layouts/_content_header.html.slim +++ b/app/views/layouts/_content_header.html.slim @@ -8,7 +8,7 @@ ruby: - unless section_title.empty? section.content-header .container-fluid - .row + .row.pl-2 .col-sm-6 h1 = yield :section_title .col-sm-6 diff --git a/config/routes.rb b/config/routes.rb index cce4be963..5e78d5d4d 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -98,6 +98,7 @@ namespace :admin do resources :users, except: :show resources :web_hooks, except: %i[edit update] + resources :settings get :background_jobs, to: 'background_jobs#show' get :system_info, to: 'system_info#show' From e148b21c8f1022d5c39654aa5eadcd7a8aad3340 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 17 Jul 2020 12:05:24 +0800 Subject: [PATCH 0227/2165] =?UTF-8?q?style:=20=E4=BF=AE=E5=A4=8D=E6=9C=AA?= =?UTF-8?q?=E7=99=BB=E5=BD=95=E9=83=A8=E5=88=86=E9=A1=B5=E9=9D=A2=E6=A0=B7?= =?UTF-8?q?=E5=BC=8F=E6=9C=89=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/layouts/_content.html.slim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/layouts/_content.html.slim b/app/views/layouts/_content.html.slim index e99e24f64..08c7d8ba9 100644 --- a/app/views/layouts/_content.html.slim +++ b/app/views/layouts/_content.html.slim @@ -4,5 +4,5 @@ section.content - if user_signed_in? == render 'layouts/messages' - .container + .container-fluid == yield \ No newline at end of file From dc361aeacb6636c8eeecb7e1aa2cd940ad8abb84 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 17 Jul 2020 12:06:10 +0800 Subject: [PATCH 0228/2165] =?UTF-8?q?refactor:=20i18n=20=E7=9B=AE=E5=BD=95?= =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/application.rb | 1 + .../{ => devise}/devise.views.zh-CN.yml | 0 .../{ => simple_form}/simple_form.en.yml | 0 .../{ => simple_form}/simple_form.zh-CN.yml | 0 config/locales/{ => zealot}/en.yml | 0 config/locales/{ => zealot}/zh-CN.yml | 19 +++++++++++++++++++ 6 files changed, 20 insertions(+) rename config/locales/{ => devise}/devise.views.zh-CN.yml (100%) rename config/locales/{ => simple_form}/simple_form.en.yml (100%) rename config/locales/{ => simple_form}/simple_form.zh-CN.yml (100%) rename config/locales/{ => zealot}/en.yml (100%) rename config/locales/{ => zealot}/zh-CN.yml (75%) diff --git a/config/application.rb b/config/application.rb index 5bec3b656..935ead349 100644 --- a/config/application.rb +++ b/config/application.rb @@ -38,6 +38,7 @@ class Application < Rails::Application # Set default locale locale = ENV['LOCALE'] || 'zh-CN' + config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}')] config.i18n.default_locale = locale.to_sym config.i18n.available_locales = [locale, :en] diff --git a/config/locales/devise.views.zh-CN.yml b/config/locales/devise/devise.views.zh-CN.yml similarity index 100% rename from config/locales/devise.views.zh-CN.yml rename to config/locales/devise/devise.views.zh-CN.yml diff --git a/config/locales/simple_form.en.yml b/config/locales/simple_form/simple_form.en.yml similarity index 100% rename from config/locales/simple_form.en.yml rename to config/locales/simple_form/simple_form.en.yml diff --git a/config/locales/simple_form.zh-CN.yml b/config/locales/simple_form/simple_form.zh-CN.yml similarity index 100% rename from config/locales/simple_form.zh-CN.yml rename to config/locales/simple_form/simple_form.zh-CN.yml diff --git a/config/locales/en.yml b/config/locales/zealot/en.yml similarity index 100% rename from config/locales/en.yml rename to config/locales/zealot/en.yml diff --git a/config/locales/zh-CN.yml b/config/locales/zealot/zh-CN.yml similarity index 75% rename from config/locales/zh-CN.yml rename to config/locales/zealot/zh-CN.yml index 575641ca2..ee4ad3a19 100644 --- a/config/locales/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -1,4 +1,23 @@ zh-CN: + admin: + settings: + form: + general: 通用配置 + site_title: 站点标题 + site_https: 站点启用 HTTPS + site_domain: 站点域名 + + visits: 访问模式 + registrations_mode: 开启注册模式 + guest_mode: 开启游客模式 + + mail: 邮件配置 + mailer_default_from: 默认邮件发件地址 + mailer_default_to: 默认邮件发件人 + + archives: 上传文件 + keep_uploads: 永久保存上传应用版本 + datetime: distance_in_words: about_x_hours: 大约 %{count} 小时 From 3b36c9374ff9760b755323031baff772ddd75921 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 17 Jul 2020 12:06:55 +0800 Subject: [PATCH 0229/2165] =?UTF-8?q?feat:=20=E6=A0=87=E9=A2=98=E5=8F=AF?= =?UTF-8?q?=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/setting.rb | 38 +++++++++++++++---------- app/views/layouts/_navigation.html.slim | 9 +++--- 2 files changed, 27 insertions(+), 20 deletions(-) diff --git a/app/models/setting.rb b/app/models/setting.rb index 409e54b34..7945815dd 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -2,18 +2,23 @@ # RailsSettings Model class Setting < RailsSettings::Base - SITE_KEYS = %w[ - site_title - site_https - site_domain - - registrations_mode - guest_mode - - mailer_default_from - mailer_default_to - keep_uploads - ] + SITE_KEYS = { + general: %w[ + site_title + site_https + site_domain + ], + visits: %w[ + registrations_mode + guest_mode + ], + mail: %w[ + mailer_default_from + mailer_default_to + mailer_options + ], + archives: %w[keep_uploads] + } cache_prefix { 'v1' } @@ -41,7 +46,7 @@ class Setting < RailsSettings::Base # 系统信息(只读) field :demo_mode, default: (ENV['ZEALOT_DEMO_MODE'] || 'false'), type: :boolean, readonly: true - field :keep_uploads, default: (ENV['ZEALOT_KEEP_UPLOADS']), type: :boolean, readonly: true + field :keep_uploads, default: (ENV['ZEALOT_KEEP_UPLOADS'] || 'false'), type: :boolean, readonly: true field :version, default: (ENV['ZEALOT_VERSION'] || 'development'), type: :string, readonly: true field :vcs_ref, default: (ENV['ZEALOT_VCS_REF']), type: :string, readonly: true @@ -56,8 +61,11 @@ class Setting < RailsSettings::Base class << self def site_configs - SITE_KEYS.each_with_object({}) do |key, obj| - obj[key] = Setting.send(key.to_sym) + SITE_KEYS.each_with_object({}) do |(section, keys), obj| + obj[section] = {} + keys.each do |key| + obj[section][key] = Setting.send(key.to_sym) + end end end end diff --git a/app/views/layouts/_navigation.html.slim b/app/views/layouts/_navigation.html.slim index 500ed8211..23824ca7b 100644 --- a/app/views/layouts/_navigation.html.slim +++ b/app/views/layouts/_navigation.html.slim @@ -1,6 +1,6 @@ // Navbar nav.main-header.navbar.navbar-expand.navbar-white.navbar-light - - if Setting.guest_mode + - if Setting.guest_mode || user_signed_in? ul.navbar-nav li.nav-item a.nav-link data-widget="pushmenu" href="#" @@ -25,16 +25,15 @@ nav.main-header.navbar.navbar-expand.navbar-white.navbar-light - else div.navbar-collapse.justify-content-md-center h4 - a href="#{ root_path }" style="color: black" Zealot + a href="#{ root_path }" style="color: black" = Setting.site_title // Main Sidebar Container - if Setting.guest_mode || user_signed_in? aside.main-sidebar.sidebar-light-primary.elevation-4 // Brand Logo a.brand-link href="#{ root_path }" - / span.brand-image Z - span.brand-bighead-text Z - span.brand-text.font-weight-light ealot + = image_tag asset_pack_path('media/images/touch-icon.png'), class: %w[brand-image] + span.brand-text.font-weight-light = Setting.site_title // Sidebar == render 'layouts/main_sidebar' From 7e60dd885af2251af42c62cdd763e458f1a97220 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 20 Jul 2020 18:45:28 +0800 Subject: [PATCH 0230/2165] =?UTF-8?q?feat:=20=E9=85=8D=E7=BD=AE=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E5=8A=A8=E6=80=81=E4=BF=9D=E5=AD=98=E4=B8=94=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E5=91=98=E6=94=AF=E6=8C=81=E9=83=A8=E5=88=86=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile.lock | 2 - app/controllers/admin/settings_controller.rb | 28 ++++++-- app/javascript/stylesheets/application.scss | 3 +- app/javascript/stylesheets/settings.scss | 68 ++++++++++++++++++++ app/models/setting.rb | 14 ++-- app/views/admin/settings/_form.html.slim | 21 ++++-- app/views/admin/settings/edit.html.slim | 7 ++ app/views/admin/settings/index.html.slim | 20 ++++-- app/views/layouts/_main_sidebar.html.slim | 8 ++- config/locales/zealot/zh-CN.yml | 29 +++++---- 10 files changed, 156 insertions(+), 44 deletions(-) create mode 100644 app/javascript/stylesheets/settings.scss create mode 100644 app/views/admin/settings/edit.html.slim diff --git a/Gemfile.lock b/Gemfile.lock index d09db3578..1db1a3e83 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -379,7 +379,6 @@ GEM semantic_range (2.3.0) sentry-raven (3.0.0) faraday (>= 1.0) - settingslogic (2.0.9) shellany (0.0.1) sidekiq (6.0.7) connection_pool (>= 2.2.2) @@ -504,7 +503,6 @@ DEPENDENCIES rubocop-rails ruby-debug-ide sentry-raven - settingslogic sidekiq (= 6.0.7) sidekiq-cron (~> 1.2) simple_form (~> 5.0) diff --git a/app/controllers/admin/settings_controller.rb b/app/controllers/admin/settings_controller.rb index 359840474..bc8cbdb42 100644 --- a/app/controllers/admin/settings_controller.rb +++ b/app/controllers/admin/settings_controller.rb @@ -1,15 +1,35 @@ +# frozen_string_literal: true + class Admin::SettingsController < ApplicationController - # before_action :get_setting, only: [:edit, :update] + before_action :set_setting, only: %i[edit update] def index @title = '系统配置' @settings = Setting.site_configs end + def edit + @title = '编辑设置' + end + + def update + if @setting.value != setting_param[:value] + @setting.value = setting_param[:value] + @setting.save + redirect_to admin_settings_path, notice: "保存成功." + else + redirect_to :edit + end + end + private - def setting_params - params.require(:setting).permit(:host, :user_limits, :admin_emails, - :captcha_enable, :notification_options) + + def set_setting + @setting = Setting.find_or_default(var: params[:id]) + end + + def setting_param + params[:setting].permit! end end diff --git a/app/javascript/stylesheets/application.scss b/app/javascript/stylesheets/application.scss index 205403b33..5f1f75e90 100644 --- a/app/javascript/stylesheets/application.scss +++ b/app/javascript/stylesheets/application.scss @@ -7,4 +7,5 @@ @import 'system_info'; @import 'users'; @import 'visitor'; -@import 'web_hooks'; \ No newline at end of file +@import 'web_hooks'; +@import 'settings'; \ No newline at end of file diff --git a/app/javascript/stylesheets/settings.scss b/app/javascript/stylesheets/settings.scss new file mode 100644 index 000000000..b957c7762 --- /dev/null +++ b/app/javascript/stylesheets/settings.scss @@ -0,0 +1,68 @@ + +.form-group { + .switch { + position: relative; + display: inline-block; + + .slider { + position: absolute; + cursor: pointer; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: #ccc; + -webkit-transition: .4s; + transition: .4s; + } + + .slider:before { + position: absolute; + content: ""; + background-color: white; + -webkit-transition: .4s; + transition: .4s; + } + + .slider.round { + border-radius: 34px; + } + + .slider.round:before { + border-radius: 50%; + } + } + + /* Hide default HTML checkbox */ + .switch input { + opacity: 0; + width: 0; + height: 0; + } + + .switch-lg { + width: 48px; + height: 24px; + + .slider:before { + height: 14px; + width: 14px; + left: 4px; + bottom: 5px; + } + } + + input:checked + .slider { + background-color: #2196F3; + } + + input:focus + .slider { + box-shadow: 0 0 1px #2196F3; + } + + input:checked + .slider:before { + -webkit-transform: translateX(26px); + -ms-transform: translateX(26px); + transform: translateX(26px); + } +} diff --git a/app/models/setting.rb b/app/models/setting.rb index 7945815dd..0df97bd63 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -5,8 +5,6 @@ class Setting < RailsSettings::Base SITE_KEYS = { general: %w[ site_title - site_https - site_domain ], visits: %w[ registrations_mode @@ -46,7 +44,7 @@ class Setting < RailsSettings::Base # 系统信息(只读) field :demo_mode, default: (ENV['ZEALOT_DEMO_MODE'] || 'false'), type: :boolean, readonly: true - field :keep_uploads, default: (ENV['ZEALOT_KEEP_UPLOADS'] || 'false'), type: :boolean, readonly: true + field :keep_uploads, default: (ENV['ZEALOT_KEEP_UPLOADS'] || 'false'), type: :boolean field :version, default: (ENV['ZEALOT_VERSION'] || 'development'), type: :string, readonly: true field :vcs_ref, default: (ENV['ZEALOT_VCS_REF']), type: :string, readonly: true @@ -60,6 +58,10 @@ class Setting < RailsSettings::Base } class << self + def find_or_default(var:) + find_by(var: var) || new(var: var) + end + def site_configs SITE_KEYS.each_with_object({}) do |(section, keys), obj| obj[section] = {} @@ -69,10 +71,4 @@ def site_configs end end end - - # field :default_locale, default: "en", type: :string - # field :confirmable_enable, default: "0", type: :boolean - # field :admin_emails, default: "admin@rubyonrails.org", type: :array - # field :omniauth_google_client_id, default: (ENV["OMNIAUTH_GOOGLE_CLIENT_ID"] || ""), type: :string, readonly: true - # field :omniauth_google_client_secret, default: (ENV["OMNIAUTH_GOOGLE_CLIENT_SECRET"] || ""), type: :string, readonly: true end diff --git a/app/views/admin/settings/_form.html.slim b/app/views/admin/settings/_form.html.slim index 30e7503e2..f98741162 100644 --- a/app/views/admin/settings/_form.html.slim +++ b/app/views/admin/settings/_form.html.slim @@ -1,6 +1,15 @@ -form.form-horizontal - - @settings.each do |key, value| - .form-group.row - label.col-sm-3.col-form-label = key - .col-sm-9 - input.form-control value="#{value}" \ No newline at end of file +ruby: + key = @setting.var + value = @setting.value || Setting.send(key) + +.row + .col-md-12 + .card + .card-header + h3.card-title = t("admin.settings.#{key}") + = simple_form_for(@setting, url: admin_setting_path(key), method: :patch) do |f| + .card-body + = f.error_notification + = f.text_area :value, value: value, class: 'form-control', rows: 15 + .card-footer + = f.button :submit, t('admin.settings.submit.update') \ No newline at end of file diff --git a/app/views/admin/settings/edit.html.slim b/app/views/admin/settings/edit.html.slim new file mode 100644 index 000000000..5ed38afd8 --- /dev/null +++ b/app/views/admin/settings/edit.html.slim @@ -0,0 +1,7 @@ +- content_for :title do + = @title + +- content_for :section_title do + = @title + +== render 'form' \ No newline at end of file diff --git a/app/views/admin/settings/index.html.slim b/app/views/admin/settings/index.html.slim index 849ac4b95..a3d0a98a1 100644 --- a/app/views/admin/settings/index.html.slim +++ b/app/views/admin/settings/index.html.slim @@ -4,10 +4,16 @@ - content_for :section_title do = @title -.row - .col-md-12 - .card - .card-header - h3.card-title = @title - .card-body - == render 'form' \ No newline at end of file +form.form-horizontal + - @settings.each do |section, keys| + .row + .col-md-12 + .card.system_info + .card-header + h3.card-title = t("admin.settings.#{section}") + .card-body + - keys.each do |key, value| + dl.system-info + dt = t("admin.settings.#{key}") + dd + pre = link_to value.to_s, edit_admin_setting_path(key) diff --git a/app/views/layouts/_main_sidebar.html.slim b/app/views/layouts/_main_sidebar.html.slim index 33abf0390..32f9abd5e 100644 --- a/app/views/layouts/_main_sidebar.html.slim +++ b/app/views/layouts/_main_sidebar.html.slim @@ -40,6 +40,10 @@ i.nav-icon.fas.fa-chart-bar p 后台任务 li class="nav-item" - a.nav-link href="#{admin_system_info_path}" class="#{active_class(admin_system_info_path)}" + a.nav-link href="#{admin_settings_path}" class="#{active_class(admin_settings_path)}" i.nav-icon.fas.fa-desktop - p 系统信息 + p 系统设置 + li class="nav-item" + a.nav-link href="#{admin_system_info_path}" class="#{active_class(admin_system_info_path)}" + i.nav-icon.fas.fa-info-circle + p 环境信息 diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index ee4ad3a19..e0777ebae 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -1,22 +1,25 @@ zh-CN: admin: settings: - form: - general: 通用配置 - site_title: 站点标题 - site_https: 站点启用 HTTPS - site_domain: 站点域名 + general: 通用配置 + site_title: 站点标题 + site_https: 站点启用 HTTPS + site_domain: 站点域名 - visits: 访问模式 - registrations_mode: 开启注册模式 - guest_mode: 开启游客模式 + visits: 访问模式 + registrations_mode: 开启注册模式 + guest_mode: 开启游客模式 - mail: 邮件配置 - mailer_default_from: 默认邮件发件地址 - mailer_default_to: 默认邮件发件人 + mail: 邮件配置 + mailer_default_from: 默认邮件发件地址 + mailer_default_to: 默认邮件发件人 - archives: 上传文件 - keep_uploads: 永久保存上传应用版本 + archives: 上传文件 + keep_uploads: 永久保存上传应用版本 + + submit: + create: 新增设置 + update: 更新设置 datetime: distance_in_words: From 20f74f42154ffff11b97af3c71a2672ad24c90c1 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 20 Jul 2020 11:13:11 +0000 Subject: [PATCH 0231/2165] chore(deps-dev): bump rubocop from 0.87.1 to 0.88.0 Bumps [rubocop](https://github.com/rubocop-hq/rubocop) from 0.87.1 to 0.88.0. - [Release notes](https://github.com/rubocop-hq/rubocop/releases) - [Changelog](https://github.com/rubocop-hq/rubocop/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop-hq/rubocop/compare/v0.87.1...v0.88.0) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 1db1a3e83..7717930e7 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -351,7 +351,7 @@ GEM chunky_png (~> 1.0) rqrcode_core (~> 0.1) rqrcode_core (0.1.1) - rubocop (0.87.1) + rubocop (0.88.0) parallel (~> 1.10) parser (>= 2.7.1.1) rainbow (>= 2.2.2, < 4.0) @@ -360,7 +360,7 @@ GEM rubocop-ast (>= 0.1.0, < 1.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 1.4.0, < 2.0) - rubocop-ast (0.1.0) + rubocop-ast (0.2.0) parser (>= 2.7.0.1) rubocop-rails (2.6.0) activesupport (>= 4.2.0) From f2710c4bf56e80a4ecb3107d4f04b73b41f8c167 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 21 Jul 2020 10:28:55 +0800 Subject: [PATCH 0232/2165] =?UTF-8?q?refactor:=20=E5=BC=80=E5=90=AF=20asse?= =?UTF-8?q?ts=20pipeline=20=E6=9D=A5=E6=94=AF=E6=8C=81=E7=AC=AC=E4=B8=89?= =?UTF-8?q?=E6=96=B9=E4=BE=9D=E8=B5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/application.rb | 4 ++-- config/initializers/assets.rb | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/config/application.rb b/config/application.rb index 935ead349..f53450087 100644 --- a/config/application.rb +++ b/config/application.rb @@ -77,8 +77,8 @@ class Application < Rails::Application # end # Disable Asset Pipeline/Sprockets - config.assets.enabled = false - config.assets.compile = false + # config.assets.enabled = false + # config.assets.compile = false ################################################################ diff --git a/config/initializers/assets.rb b/config/initializers/assets.rb index c044c0300..a61bc734c 100644 --- a/config/initializers/assets.rb +++ b/config/initializers/assets.rb @@ -14,4 +14,5 @@ # end # application.js, application.css, and all non-JS/CSS in the app/assets -# folder are already added. \ No newline at end of file +# folder are already added. +# Rails.application.config.assets.precompile += %w[custom.js custom.css] From ab101942479c1ce009ffca929ed3a89dbd8fbbb2 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 21 Jul 2020 11:23:04 +0800 Subject: [PATCH 0233/2165] =?UTF-8?q?fix:=20=E8=A7=A3=E5=86=B3=E9=83=A8?= =?UTF-8?q?=E5=88=86=E5=8F=82=E6=95=B0=E5=9C=A8=E5=88=9D=E5=A7=8B=E5=8C=96?= =?UTF-8?q?=E4=B9=8B=E5=89=8D=E4=BD=BF=E7=94=A8=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/setting.rb | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/app/models/setting.rb b/app/models/setting.rb index 0df97bd63..04169d151 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -14,8 +14,7 @@ class Setting < RailsSettings::Base mailer_default_from mailer_default_to mailer_options - ], - archives: %w[keep_uploads] + ] } cache_prefix { 'v1' } @@ -44,7 +43,7 @@ class Setting < RailsSettings::Base # 系统信息(只读) field :demo_mode, default: (ENV['ZEALOT_DEMO_MODE'] || 'false'), type: :boolean, readonly: true - field :keep_uploads, default: (ENV['ZEALOT_KEEP_UPLOADS'] || 'false'), type: :boolean + field :keep_uploads, default: (ENV['ZEALOT_KEEP_UPLOADS'] || 'false'), type: :boolean, readonly: true field :version, default: (ENV['ZEALOT_VERSION'] || 'development'), type: :string, readonly: true field :vcs_ref, default: (ENV['ZEALOT_VCS_REF']), type: :string, readonly: true From 204b9bf0a3d5014a0442879439547cbe1ed60fac Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 21 Jul 2020 11:23:39 +0800 Subject: [PATCH 0234/2165] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=BA=93=E5=88=86=E6=9E=90=E5=B9=B6=E9=87=8D=E6=96=B0?= =?UTF-8?q?=E8=B0=83=E6=95=B4=E7=AE=A1=E7=90=86=E9=9D=A2=E6=9D=BF=E7=BB=93?= =?UTF-8?q?=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 1 + Gemfile.lock | 3 ++ .../admin/background_jobs_controller.rb | 2 +- .../admin/database_analytics_controller.rb | 7 ++++ .../admin/system_info_controller.rb | 2 +- app/helpers/application_helper.rb | 20 +++++---- .../{show.html.slim => index.html.slim} | 0 .../admin/database_analytics/index.html.slim | 11 +++++ .../{show.html.slim => index.html.slim} | 0 app/views/layouts/_main_sidebar.html.slim | 42 ++++++++++++------- config/routes.rb | 11 ++++- 11 files changed, 71 insertions(+), 28 deletions(-) create mode 100644 app/controllers/admin/database_analytics_controller.rb rename app/views/admin/background_jobs/{show.html.slim => index.html.slim} (100%) create mode 100644 app/views/admin/database_analytics/index.html.slim rename app/views/admin/system_info/{show.html.slim => index.html.slim} (100%) diff --git a/Gemfile b/Gemfile index 57ec7e8fa..7e9de81d6 100644 --- a/Gemfile +++ b/Gemfile @@ -55,6 +55,7 @@ gem 'plist', '~> 3.5.0' ## 系统信息 gem 'sys-filesystem', '~> 1.3.4' gem 'vmstat', '~> 2.3.0' +gem 'pghero' ## 异常报错上报 gem 'sentry-raven' diff --git a/Gemfile.lock b/Gemfile.lock index 1db1a3e83..e6a938f12 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -273,6 +273,8 @@ GEM parser (2.7.1.4) ast (~> 2.4.1) pg (1.2.1) + pghero (2.6.0) + activerecord (>= 5) plist (3.5.0) pngdefry (0.1.3) pry (0.13.1) @@ -486,6 +488,7 @@ DEPENDENCIES omniauth-google-oauth2 (~> 0.8.0) openssl (~> 2.2.0) pg (>= 0.18, < 2.0) + pghero plist (~> 3.5.0) pry-byebug pry-rails diff --git a/app/controllers/admin/background_jobs_controller.rb b/app/controllers/admin/background_jobs_controller.rb index 072e7e1c2..1af78f173 100644 --- a/app/controllers/admin/background_jobs_controller.rb +++ b/app/controllers/admin/background_jobs_controller.rb @@ -2,7 +2,7 @@ class Admin::BackgroundJobsController < ApplicationController # GET /admin/background_jobs - def show + def index @title = '后台任务' end end diff --git a/app/controllers/admin/database_analytics_controller.rb b/app/controllers/admin/database_analytics_controller.rb new file mode 100644 index 000000000..3311c9e48 --- /dev/null +++ b/app/controllers/admin/database_analytics_controller.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true + +class Admin::DatabaseAnalyticsController < ApplicationController + def index + @title = '数据库分析' + end +end diff --git a/app/controllers/admin/system_info_controller.rb b/app/controllers/admin/system_info_controller.rb index f45572a5e..06512a9f0 100644 --- a/app/controllers/admin/system_info_controller.rb +++ b/app/controllers/admin/system_info_controller.rb @@ -56,7 +56,7 @@ class Admin::SystemInfoController < ApplicationController ].freeze # GET /admin/system_info - def show + def index @title = '系统信息' @booted_at = Rails.application.config.booted_at diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index ddb8eb42f..405bb7d8d 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -24,16 +24,18 @@ def random_color end # 激活 li 的 class - def active_class(link_path = nil) - if link_path - current_page?(link_path) ? 'active' : '' - elsif current_page?(controller: 'groups', action: 'messages') || - current_page?(controller: 'groups', action: 'index') || - current_page?(controller: 'users', action: 'groups') - 'active' - else - '' + def active_class(link_paths, class_name = 'active') + link_paths = [ link_paths ] if link_paths.is_a?(String) + + is_current = false + link_paths.each do |link| + if current_page?(link) + is_current = true + break + end end + + is_current ? class_name : '' end def changelog_format(changelog, **options) diff --git a/app/views/admin/background_jobs/show.html.slim b/app/views/admin/background_jobs/index.html.slim similarity index 100% rename from app/views/admin/background_jobs/show.html.slim rename to app/views/admin/background_jobs/index.html.slim diff --git a/app/views/admin/database_analytics/index.html.slim b/app/views/admin/database_analytics/index.html.slim new file mode 100644 index 000000000..b3e655109 --- /dev/null +++ b/app/views/admin/database_analytics/index.html.slim @@ -0,0 +1,11 @@ +- content_for :title do + = @title + +- content_for :section_title do + = @title + +.row + .col-md-12 + .card + .card-body.p-0 + iframe src="#{admin_pghero_path}" style="border: 0" width="100%" height="970" \ No newline at end of file diff --git a/app/views/admin/system_info/show.html.slim b/app/views/admin/system_info/index.html.slim similarity index 100% rename from app/views/admin/system_info/show.html.slim rename to app/views/admin/system_info/index.html.slim diff --git a/app/views/layouts/_main_sidebar.html.slim b/app/views/layouts/_main_sidebar.html.slim index 32f9abd5e..928d12687 100644 --- a/app/views/layouts/_main_sidebar.html.slim +++ b/app/views/layouts/_main_sidebar.html.slim @@ -1,9 +1,9 @@ .sidebar nav.mt-2 - ul.nav.nav-pills.nav-sidebar.flex-column data-widget="treeview" role="menu" data-accordion="false" + ul.nav.nav-pills.nav-sidebar.nav-child-indent.flex-column data-widget="treeview" role="menu" li.nav-header 功能区域 li class="nav-item" - a.nav-link href="#{ root_path }" class="#{active_class(root_path)}" + a.nav-link href="#{root_path}" class="#{active_class(root_path)}" i.nav-icon.fas.fa-th p 控制台 li class="nav-item" @@ -22,28 +22,40 @@ p 文件解析 li class="nav-item" a.nav-link href="#{udid_path}" class="#{active_class(udid_path)}" - i.nav-icon.fas.fa-mobile + i.nav-icon.fas.fa-eye p 获取 iOS 设备 UDID - if user_signed_in? && current_user.admin? li.nav-header 管理区域 - li class="nav-item" + li.nav-item a.nav-link href="#{admin_users_path}" class="#{active_class(admin_users_path)}" i.nav-icon.fas.fa-user p 用户管理 - li class="nav-item" + li.nav-item a.nav-link href="#{admin_web_hooks_path}" class="#{active_class(admin_web_hooks_path)}" i.nav-icon.fas.fa-anchor p 网络钩子管理 - li class="nav-item" - a.nav-link href="#{admin_background_jobs_path}" class="#{active_class(admin_background_jobs_path)}" - i.nav-icon.fas.fa-chart-bar - p 后台任务 - li class="nav-item" + li.nav-item a.nav-link href="#{admin_settings_path}" class="#{active_class(admin_settings_path)}" - i.nav-icon.fas.fa-desktop + i.nav-icon.fas.fa-cog p 系统设置 - li class="nav-item" - a.nav-link href="#{admin_system_info_path}" class="#{active_class(admin_system_info_path)}" - i.nav-icon.fas.fa-info-circle - p 环境信息 + li.nav-item.has-treeview class="#{active_class([admin_system_info_index_path, admin_background_jobs_path, admin_database_analytics_path], 'menu-open')}" + a.nav-link href="#" class="#{active_class([admin_system_info_index_path, admin_background_jobs_path, admin_database_analytics_path])}" + i.nav-icon.fas.fa-laptop-code + p + | 监控 + i.right.fas.fa-angle-left + ul.nav.nav-treeview + li.nav-item + a.nav-link href="#{admin_system_info_index_path}" class="#{active_class(admin_system_info_index_path)}" + i.nav-icon.fas.fa-info-circle + p 环境信息 + li.nav-item + a.nav-link href="#{admin_background_jobs_path}" class="#{active_class(admin_background_jobs_path)}" + i.nav-icon.fas.fa-chart-bar + p 后台任务 + li.nav-item + a.nav-link href="#{admin_database_analytics_path}" class="#{active_class(admin_database_analytics_path)}" + i.nav-icon.fas.fa-database + p 数据库分析 + diff --git a/config/routes.rb b/config/routes.rb index 5e78d5d4d..506953fd9 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -96,16 +96,23 @@ ############################################# authenticate :user, ->(user) { user.admin? } do namespace :admin do + root to: 'settings#index' + resources :users, except: :show resources :web_hooks, except: %i[edit update] resources :settings - get :background_jobs, to: 'background_jobs#show' - get :system_info, to: 'system_info#show' + resources :background_jobs, only: :index + resources :system_info, only: :index + resources :database_analytics, only: :index + + # get :background_jobs, to: 'background_jobs#show' + # get :system_info, to: 'system_info#show' require 'sidekiq/web' require 'sidekiq/cron/web' mount Sidekiq::Web => 'sidekiq', as: :sidekiq + mount PgHero::Engine, at: 'pghero', as: :pghero end end From bbeaf82a88ebb97909fbe9b4fab39ce86f92d0cf Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 21 Jul 2020 06:25:58 +0000 Subject: [PATCH 0235/2165] chore(deps-dev): bump rubocop-rails from 2.6.0 to 2.7.0 Bumps [rubocop-rails](https://github.com/rubocop-hq/rubocop-rails) from 2.6.0 to 2.7.0. - [Release notes](https://github.com/rubocop-hq/rubocop-rails/releases) - [Changelog](https://github.com/rubocop-hq/rubocop-rails/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop-hq/rubocop-rails/compare/v2.6.0...v2.7.0) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index e6a938f12..d08823be4 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -182,7 +182,7 @@ GEM http-form_data (2.3.0) http-parser (1.2.1) ffi-compiler (>= 1.0, < 2.0) - i18n (1.8.3) + i18n (1.8.4) concurrent-ruby (~> 1.0) image_processing (1.10.3) mini_magick (>= 4.9.5, < 5) @@ -362,12 +362,12 @@ GEM rubocop-ast (>= 0.1.0, < 1.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 1.4.0, < 2.0) - rubocop-ast (0.1.0) + rubocop-ast (0.2.0) parser (>= 2.7.0.1) - rubocop-rails (2.6.0) + rubocop-rails (2.7.0) activesupport (>= 4.2.0) rack (>= 1.1) - rubocop (>= 0.82.0) + rubocop (>= 0.87.0) ruby-debug-ide (0.7.0) rake (>= 0.8.1) ruby-macho (2.2.0) @@ -448,7 +448,7 @@ GEM websocket-driver (0.7.2) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) - zeitwerk (2.3.1) + zeitwerk (2.4.0) PLATFORMS ruby From 58b2454df56b5546ed2e118b56015aad5d488564 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 21 Jul 2020 14:50:30 +0800 Subject: [PATCH 0236/2165] feat: add health_check --- Gemfile | 1 + Gemfile.lock | 3 +++ config/initializers/health_check.rb | 13 +++++++++++++ config/routes.rb | 5 +++++ 4 files changed, 22 insertions(+) create mode 100644 config/initializers/health_check.rb diff --git a/Gemfile b/Gemfile index 7e9de81d6..583273356 100644 --- a/Gemfile +++ b/Gemfile @@ -19,6 +19,7 @@ gem 'redis', '~> 4.1.4' gem 'active_model_serializers', '~> 0.10.10' gem 'graphql', '~> 1.10.10' gem 'rack-cors', '~> 1.1.1' +gem 'health_check', '~> 3.0.0' # View ## 模板引擎 diff --git a/Gemfile.lock b/Gemfile.lock index e6a938f12..4dbf09bf2 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -172,6 +172,8 @@ GEM guard (>= 2) guard-compat (~> 1.0) hashie (4.1.0) + health_check (3.0.0) + railties (>= 5.0) http (4.4.1) addressable (~> 2.3) http-cookie (~> 1.0) @@ -476,6 +478,7 @@ DEPENDENCIES guard-rails guard-sidekiq guard-webpacker + health_check (~> 3.0.0) http jb (~> 0.7.1) jenkins_api_client diff --git a/config/initializers/health_check.rb b/config/initializers/health_check.rb new file mode 100644 index 000000000..72152ffcd --- /dev/null +++ b/config/initializers/health_check.rb @@ -0,0 +1,13 @@ +# frozen_string_literal: true + +HealthCheck.setup do |config| + config.uri = 'health' + + config.standard_checks = %w[database migrations cache redis] + config.full_checks = %w[database migrations cache redis sidekiq-redis] + + ip_whitelist = ENV.fetch('ZEALOT_HEALTH_CHECK_IP_WHITELIST') { '127.0.0.1' } + ip_whitelist = ip_whitelist.split(',').map(&:strip) + + config.origin_ip_whitelist = ip_whitelist +end diff --git a/config/routes.rb b/config/routes.rb index 506953fd9..ae682b109 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -91,6 +91,11 @@ post 'udid/retrieve', to: 'udid#create' get 'udid/:udid', to: 'udid#show', as: 'udid_result' + ############################################# + # Health check + ############################################# + health_check_routes + ############################################# # Admin ############################################# From e008da0c4b3cb85867b69f988aaf2aae0f85bb68 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 21 Jul 2020 18:31:08 +0800 Subject: [PATCH 0237/2165] =?UTF-8?q?feat:=20=E8=A7=A3=E6=9E=90=20iOS=20?= =?UTF-8?q?=E6=88=96=20mobileprovision=20=E6=96=B0=E5=A2=9E=E5=B7=B2?= =?UTF-8?q?=E5=90=AF=E7=94=A8=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 2 +- Gemfile.lock | 10 ++-- app/views/teardowns/_android.html.slim | 3 ++ app/views/teardowns/_ios.html.slim | 46 +++++++++++++++---- .../teardowns/_mobileprovision.html.slim | 41 ++++++++++++++--- 5 files changed, 81 insertions(+), 21 deletions(-) diff --git a/Gemfile b/Gemfile index 7e9de81d6..452d0da40 100644 --- a/Gemfile +++ b/Gemfile @@ -76,7 +76,7 @@ gem 'turbolinks', '~> 5' gem 'webpacker', '~> 5.0' # 用于解析 ipa 和 apk 包 -gem 'app-info', '~> 2.1.4' +gem 'app-info', '~> 2.2.0' # Mobile config gem 'rails-settings-cached', '~> 2.2' diff --git a/Gemfile.lock b/Gemfile.lock index e6a938f12..dff383a70 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -67,14 +67,14 @@ GEM zeitwerk (~> 2.2, >= 2.2.2) addressable (2.7.0) public_suffix (>= 2.0.2, < 5.0) - app-info (2.1.4) + app-info (2.2.0) CFPropertyList (>= 2.3.4, < 3.1.0) image_size (>= 1.5, < 2.1) pngdefry (~> 0.1.2) ruby-macho (~> 2.2.0) ruby_android (~> 0.7.7) rubyzip (>= 1.2, < 3.0) - uuidtools (~> 2.1.5) + uuidtools (>= 2.1.5, < 2.3.0) ast (2.4.1) awesome_print (1.8.0) bcrypt (3.1.13) @@ -377,7 +377,7 @@ GEM ruby_android (0.7.7) rubyzip (>= 1.1.6) rubyntlm (0.6.2) - rubyzip (2.0.0) + rubyzip (2.3.0) semantic_range (2.3.0) sentry-raven (3.0.0) faraday (>= 1.0) @@ -431,7 +431,7 @@ GEM unf_ext unf_ext (0.0.7.7) unicode-display_width (1.7.0) - uuidtools (2.1.5) + uuidtools (2.2.0) vmstat (2.3.1) warden (1.2.8) rack (>= 2.0.6) @@ -456,7 +456,7 @@ PLATFORMS DEPENDENCIES active_model_serializers (~> 0.10.10) activejob-status - app-info (~> 2.1.4) + app-info (~> 2.2.0) awesome_print better_errors binding_of_caller diff --git a/app/views/teardowns/_android.html.slim b/app/views/teardowns/_android.html.slim index 5053a04d5..9b37c30e5 100644 --- a/app/views/teardowns/_android.html.slim +++ b/app/views/teardowns/_android.html.slim @@ -10,6 +10,9 @@ ruby: .card .card-header h3.card-title 应用信息 + .card-tools + button.btn.btn-tool data-card-widget="collapse" + i.fas.fa-minus .card-body dl.system-info dt 名称 diff --git a/app/views/teardowns/_ios.html.slim b/app/views/teardowns/_ios.html.slim index 927e52e0b..14d8b1103 100644 --- a/app/views/teardowns/_ios.html.slim +++ b/app/views/teardowns/_ios.html.slim @@ -3,6 +3,9 @@ .card .card-header h3.card-title 应用信息 + .card-tools + button.btn.btn-tool data-card-widget="collapse" + i.fas.fa-minus .card-body dl.system-info dt 名称 @@ -14,6 +17,9 @@ dt Bundle Id dd pre = @app_info.bundle_id + dt 打包类型 + dd + pre = @app_info.release_type dt 支持设备 dd pre = @app_info.device_type @@ -28,6 +34,9 @@ .card .card-header h3.card-title 描述文件 + .card-tools + button.btn.btn-tool data-card-widget="collapse" + i.fas.fa-minus .card-body dl.system-info dt 名称 (类型) @@ -57,6 +66,9 @@ | 开发者证书 ( = @app_info.mobileprovision.developer_certs.size | ) + .card-tools + button.btn.btn-tool data-card-widget="collapse" + i.fas.fa-minus .card-body dl.system-info - @app_info.mobileprovision.developer_certs.each_with_index do |cert, i| @@ -79,6 +91,9 @@ | 设备列表 ( = @app_info.devices.size | ) + .card-tools + button.btn.btn-tool data-card-widget="collapse" + i.fas.fa-minus .card-body.p-0 table.table - @app_info.devices.each do |udid| @@ -96,19 +111,34 @@ h3.card-title Entitlements .card-tools button.btn.btn-tool data-card-widget="collapse" - i.fas.fa-plus + i.fas.fa-minus .card-body - table.table.table-striped - - @app_info.mobileprovision.Entitlements.each do |scheme| - tr - td = scheme[0] - td = scheme[1] + dl.system-info + - @app_info.mobileprovision.entitlements.sort.each do |name, value| + dt = name + dd + pre = value - - if @app_info.info['CFBundleURLTypes'].present? - .col-md-4 + .col-md-4 + .card + .card-header + h3.card-title 已启用功能 + .card-tools + button.btn.btn-tool data-card-widget="collapse" + i.fas.fa-minus + .card-body + table.table.table-striped + - @app_info.mobileprovision.enabled_capabilities.each do |key| + tr + td = key + + - if @app_info.info['CFBundleURLTypes'].present? .card .card-header h3.card-title URL Schemes + .card-tools + button.btn.btn-tool data-card-widget="collapse" + i.fas.fa-minus .card-body table.table.table-striped - @app_info.info['CFBundleURLTypes'].each do |type| diff --git a/app/views/teardowns/_mobileprovision.html.slim b/app/views/teardowns/_mobileprovision.html.slim index 3859ea5f9..95742bf9a 100644 --- a/app/views/teardowns/_mobileprovision.html.slim +++ b/app/views/teardowns/_mobileprovision.html.slim @@ -12,10 +12,13 @@ ruby: end .row - .col-md-12 + .col-md-8 .card .card-header h3.card-title 描述文件 + .card-tools + button.btn.btn-tool data-card-widget="collapse" + i.fas.fa-minus .card-body .alert class="#{alert_left_class}" = "描述文件还有#{distance_of_time_in_words(Time.current, @app_info.expired_date)}过期" @@ -26,6 +29,12 @@ ruby: dt 应用标识 dd pre = @app_info.app_name + dt 平台 + dd + pre = @app_info.platform + dt 类型 + dd + pre = @app_info.type dt UUID dd pre = @app_info.UUID @@ -39,15 +48,19 @@ ruby: dd pre = @app_info.expired_date + .card .card-header h3.card-title Entitlements + .card-tools + button.btn.btn-tool data-card-widget="collapse" + i.fas.fa-minus .card-body - table.table.table-striped - - @app_info.entitlements.each do |name, value| - tr - td = name - td = value + dl.system-info + - @app_info.entitlements.sort.each do |name, value| + dt = name + dd + pre = value - if @app_info.devices.present? .card @@ -56,6 +69,9 @@ ruby: | 设备列表 ( = @app_info.devices.size | ) + .card-tools + button.btn.btn-tool data-card-widget="collapse" + i.fas.fa-minus .card-body.p-0 table.table - @app_info.devices.each do |udid| @@ -67,4 +83,15 @@ ruby: small.badge.badge-light = device.name - + .col-md-4 + .card + .card-header + h3.card-title 已启用功能 + .card-tools + button.btn.btn-tool data-card-widget="collapse" + i.fas.fa-minus + .card-body + table.table.table-striped + - @app_info.enabled_capabilities.each do |key| + tr + td = key \ No newline at end of file From 63ef2a67285fe296d91994338ad1e9069b7680c9 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 21 Jul 2020 19:22:26 +0800 Subject: [PATCH 0238/2165] =?UTF-8?q?refactor:=20guest=5Fmode=20=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=E6=94=B9=E4=B8=BA=20readonly?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/setting.rb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/models/setting.rb b/app/models/setting.rb index 04169d151..20273c1ec 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -8,7 +8,6 @@ class Setting < RailsSettings::Base ], visits: %w[ registrations_mode - guest_mode ], mail: %w[ mailer_default_from @@ -26,7 +25,7 @@ class Setting < RailsSettings::Base # 模式 field :registrations_mode, default: (ENV['ZEALOT_REGISTER_ENABLED'] || 'true'), type: :boolean - field :guest_mode, default: (ENV['ZEALOT_GUEST_MODE'] || 'false'), type: :boolean + field :guest_mode, default: (ENV['ZEALOT_GUEST_MODE'] || 'false'), type: :boolean, readonly: true # 邮件配置 field :mailer_default_from, default: ENV['ACTION_MAILER_DEFAULT_FROM'], type: :string From f274da614746617a323df21170521967e56e4594 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 23 Jul 2020 16:29:52 +0800 Subject: [PATCH 0239/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E5=9F=9F=E5=90=8D=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/setting.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/setting.rb b/app/models/setting.rb index 20273c1ec..7e2856294 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -21,7 +21,7 @@ class Setting < RailsSettings::Base # 系统配置 field :site_title, default: 'Zealot', type: :string field :site_https, default: ENV['ZEALOT_USE_HTTPS'].present?, type: :boolean, readonly: true - field :site_domain, default: (ENV['ZEALOT_DOMAIN'] || site_https ? 'localhost' : "localhost:#{ENV['ZEALOT_PORT'] || 3000}"), type: :string, readonly: true + field :site_domain, default: (ENV['ZEALOT_DOMAIN'] || (site_https ? 'localhost' : "localhost:#{ENV['ZEALOT_PORT'] || 3000}")), type: :string, readonly: true # 模式 field :registrations_mode, default: (ENV['ZEALOT_REGISTER_ENABLED'] || 'true'), type: :boolean From 26d8f0b4a3fbc7ea9d1b935079dbfafffb3a3b6c Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 24 Jul 2020 15:04:39 +0800 Subject: [PATCH 0240/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E4=BA=A7?= =?UTF-8?q?=E5=93=81=E7=8E=AF=E5=A2=83=E6=B2=A1=E6=9C=89=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=20https?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/setting.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/setting.rb b/app/models/setting.rb index 7e2856294..4e14fc177 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -20,7 +20,7 @@ class Setting < RailsSettings::Base # 系统配置 field :site_title, default: 'Zealot', type: :string - field :site_https, default: ENV['ZEALOT_USE_HTTPS'].present?, type: :boolean, readonly: true + field :site_https, default: (Rails.env.production? || ENV['ZEALOT_USE_HTTPS'].present?), type: :boolean, readonly: true field :site_domain, default: (ENV['ZEALOT_DOMAIN'] || (site_https ? 'localhost' : "localhost:#{ENV['ZEALOT_PORT'] || 3000}")), type: :string, readonly: true # 模式 From a8ff020bbfe0e57a7b31986cda8327ea81c2edfe Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 24 Jul 2020 15:24:12 +0800 Subject: [PATCH 0241/2165] =?UTF-8?q?fix:=20=E5=85=81=E8=AE=B8=20iframe=20?= =?UTF-8?q?=E5=90=8C=E6=BA=90=E5=86=85=E5=B5=8C=E8=A7=A3=E5=86=B3=20pghero?= =?UTF-8?q?=20=E6=97=A0=E6=B3=95=E6=98=BE=E7=A4=BA=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/environments/production.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/environments/production.rb b/config/environments/production.rb index 448c16176..594a7bd03 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -108,7 +108,7 @@ config.action_dispatch.default_headers = { 'Server' => 'Zealot', - 'X-Frame-Options' => 'DENY', + 'X-Frame-Options' => 'sameorigin', 'X-Content-Type-Options' => 'nosniff', 'X-XSS-Protection' => '1; mode=block', } From f6bd87d75749446350511a552b839bf72964bd1d Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 24 Jul 2020 17:01:26 +0800 Subject: [PATCH 0242/2165] =?UTF-8?q?refactor:=20=E6=B8=85=E7=90=86?= =?UTF-8?q?=E4=B8=8D=E7=94=A8=E7=9A=84=E7=B4=A2=E5=BC=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/schema.rb | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/db/schema.rb b/db/schema.rb index 5441da05b..5c05c6f71 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 2020_07_16_041345) do +ActiveRecord::Schema.define(version: 2020_07_24_084528) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -43,7 +43,6 @@ t.index ["device_type"], name: "index_channels_on_device_type" t.index ["name"], name: "index_channels_on_name" t.index ["scheme_id", "device_type"], name: "index_channels_on_scheme_id_and_device_type" - t.index ["scheme_id"], name: "index_channels_on_scheme_id" t.index ["slug"], name: "index_channels_on_slug", unique: true end @@ -116,10 +115,8 @@ t.index ["build_version"], name: "index_releases_on_build_version" t.index ["bundle_id"], name: "index_releases_on_bundle_id" t.index ["channel_id", "version"], name: "index_releases_on_channel_id_and_version", unique: true - t.index ["channel_id"], name: "index_releases_on_channel_id" t.index ["release_type"], name: "index_releases_on_release_type" t.index ["release_version", "build_version"], name: "index_releases_on_release_version_and_build_version" - t.index ["release_version"], name: "index_releases_on_release_version" t.index ["source"], name: "index_releases_on_source" t.index ["version"], name: "index_releases_on_version" end From e3aefbad5b1de7eebb8601286c1971ed8246d813 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 5 Aug 2020 06:25:04 +0000 Subject: [PATCH 0243/2165] chore(deps): bump pghero from 2.6.0 to 2.7.0 Bumps [pghero](https://github.com/ankane/pghero) from 2.6.0 to 2.7.0. - [Release notes](https://github.com/ankane/pghero/releases) - [Changelog](https://github.com/ankane/pghero/blob/master/CHANGELOG.md) - [Commits](https://github.com/ankane/pghero/compare/v2.6.0...v2.7.0) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index fca5f5837..f75b0b3ec 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -184,7 +184,7 @@ GEM http-form_data (2.3.0) http-parser (1.2.1) ffi-compiler (>= 1.0, < 2.0) - i18n (1.8.4) + i18n (1.8.5) concurrent-ruby (~> 1.0) image_processing (1.10.3) mini_magick (>= 4.9.5, < 5) @@ -275,7 +275,7 @@ GEM parser (2.7.1.4) ast (~> 2.4.1) pg (1.2.1) - pghero (2.6.0) + pghero (2.7.0) activerecord (>= 5) plist (3.5.0) pngdefry (0.1.3) From 7538b927c05adcd250992a5e02decb0b1314f1c0 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 7 Aug 2020 15:34:38 +0800 Subject: [PATCH 0244/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E8=AE=BE?= =?UTF-8?q?=E5=A4=87=E5=88=97=E8=A1=A8=E6=8E=92=E5=BA=8F=E5=BC=82=E5=B8=B8?= =?UTF-8?q?,=E4=B8=8D=E5=86=8D=E8=BF=9B=E8=A1=8C=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/releases/body/_devices.html.slim | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/releases/body/_devices.html.slim b/app/views/releases/body/_devices.html.slim index f03a42a81..966a1aee9 100644 --- a/app/views/releases/body/_devices.html.slim +++ b/app/views/releases/body/_devices.html.slim @@ -1,4 +1,4 @@ -- unless @release.devices.empty? +- if @release.devices.present? .devices .card.collapsed-card .card-header @@ -18,7 +18,7 @@ i.fas.fa-plus .card-body.p-0 table.table - - @release.devices.sort_by(&:name).each do |device| + - @release.devices.each do |device| tr td span = device.udid From b83b588335b9d533b64ead59fdd6af8e764fb5be Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 7 Aug 2020 17:07:04 +0800 Subject: [PATCH 0245/2165] =?UTF-8?q?refactor:=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E5=88=A4=E7=A9=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/admin/system_info_controller.rb | 2 +- app/controllers/apps_controller.rb | 2 +- app/jobs/clean_old_releases_job.rb | 2 +- app/models/release.rb | 2 +- app/views/channels/filters/_list.slim | 2 +- app/views/dashboards/_recently_upload.html.slim | 4 ++-- app/views/layouts/_content_header.html.slim | 2 +- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/app/controllers/admin/system_info_controller.rb b/app/controllers/admin/system_info_controller.rb index 06512a9f0..da01207a2 100644 --- a/app/controllers/admin/system_info_controller.rb +++ b/app/controllers/admin/system_info_controller.rb @@ -83,7 +83,7 @@ def set_memory def set_env @env = ENV.each_with_object({}) do |(key, value), obj| - obj[key] = if HIDDEN_ENV_VALUES.select { |k| key.downcase.include?(k) }.empty? + obj[key] = if HIDDEN_ENV_VALUES.select { |k| key.downcase.include?(k) }.blank? value else '*' * 10 diff --git a/app/controllers/apps_controller.rb b/app/controllers/apps_controller.rb index cf85e3974..4face71d3 100644 --- a/app/controllers/apps_controller.rb +++ b/app/controllers/apps_controller.rb @@ -65,7 +65,7 @@ def destory_app_data def create_schemes_by(app, schemes, channel) schemes.values[0][:name].each do |scheme_name| - next if scheme_name.empty? + next if scheme_name.blank? scheme = app.schemes.create name: scheme_name next unless channels = channel_value(channel) diff --git a/app/jobs/clean_old_releases_job.rb b/app/jobs/clean_old_releases_job.rb index 37dbca36f..b39bd304b 100644 --- a/app/jobs/clean_old_releases_job.rb +++ b/app/jobs/clean_old_releases_job.rb @@ -13,7 +13,7 @@ def perform def clean_old_releases(channel) versions = channel.release_versions - return if versions.empty? + return if versions.blank? latest_version = versions.max { |a,b| Gem::Version.new(a) <=> Gem::Version.new(b) } previous_versions = versions.delete_if { |v| v == latest_version } diff --git a/app/models/release.rb b/app/models/release.rb index aaed64193..d9010e290 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -96,7 +96,7 @@ def short_git_commit end def changelog_list(use_default_changelog = true) - return empty_changelog(use_default_changelog) if changelog.empty? + return empty_changelog(use_default_changelog) if changelog.blank? changelog end diff --git a/app/views/channels/filters/_list.slim b/app/views/channels/filters/_list.slim index 255fea812..a062e585a 100644 --- a/app/views/channels/filters/_list.slim +++ b/app/views/channels/filters/_list.slim @@ -9,7 +9,7 @@ table.table.table-hover th 上传时间 - if user_signed_in? th 操作 - - unless @releases.empty? + - if @releases.present? - @releases.each_with_index do |release, index| tr td diff --git a/app/views/dashboards/_recently_upload.html.slim b/app/views/dashboards/_recently_upload.html.slim index 851b1e29a..b07762e4f 100644 --- a/app/views/dashboards/_recently_upload.html.slim +++ b/app/views/dashboards/_recently_upload.html.slim @@ -10,7 +10,7 @@ section = paginate @releases .card-body - - unless @releases.empty? + - if @releases.present? .timeline ruby: loop_date = Time.current @@ -53,7 +53,7 @@ section - else .time-label 没有任何上传,快快上传吧。 - - unless @releases.empty? + - if @releases.present? .card-footer .float-right = paginate @releases diff --git a/app/views/layouts/_content_header.html.slim b/app/views/layouts/_content_header.html.slim index 4b8074bb4..12180cf5a 100644 --- a/app/views/layouts/_content_header.html.slim +++ b/app/views/layouts/_content_header.html.slim @@ -5,7 +5,7 @@ ruby: // Content Header (Page header) -- unless section_title.empty? +- if section_title.present? section.content-header .container-fluid .row.pl-2 From 66bdb97d2a48e7fb0e88fb40291bcc4b5013ed23 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 12 Aug 2020 06:31:44 +0000 Subject: [PATCH 0246/2165] chore(deps): bump bootsnap from 1.4.6 to 1.4.8 Bumps [bootsnap](https://github.com/Shopify/bootsnap) from 1.4.6 to 1.4.8. - [Release notes](https://github.com/Shopify/bootsnap/releases) - [Changelog](https://github.com/Shopify/bootsnap/blob/master/CHANGELOG.md) - [Commits](https://github.com/Shopify/bootsnap/compare/v1.4.6...v1.4.8) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index f75b0b3ec..2b8a4755b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -85,7 +85,7 @@ GEM bindex (0.8.1) binding_of_caller (0.8.0) debug_inspector (>= 0.0.1) - bootsnap (1.4.6) + bootsnap (1.4.8) msgpack (~> 1.0) builder (3.2.4) byebug (11.0.1) From 601fe91c36b0f26c6ba7259b6c1b01b054b4292d Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 18 Aug 2020 11:16:29 +0800 Subject: [PATCH 0247/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E7=BD=91?= =?UTF-8?q?=E9=A1=B5=E4=B8=8A=E4=BC=A0=E5=A1=AB=E5=86=99=E7=AE=80=E5=8D=95?= =?UTF-8?q?=E7=9A=84=E5=8F=98=E6=9B=B4=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/release.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/app/models/release.rb b/app/models/release.rb index d9010e290..b3ec7d5e0 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -97,6 +97,7 @@ def short_git_commit def changelog_list(use_default_changelog = true) return empty_changelog(use_default_changelog) if changelog.blank? + return [{'message' => changelog.to_s}] unless changelog.is_a?(Array) || changelog.is_a?(Hash) changelog end From a2e84bc94e8717a67555677f24f1fe03bb75348e Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 21 Aug 2020 05:44:38 +0000 Subject: [PATCH 0248/2165] chore(deps): bump sentry-raven from 3.0.0 to 3.0.2 Bumps [sentry-raven](https://github.com/getsentry/raven-ruby) from 3.0.0 to 3.0.2. - [Release notes](https://github.com/getsentry/raven-ruby/releases) - [Changelog](https://github.com/getsentry/raven-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/getsentry/raven-ruby/compare/v3.0.0...3.0.2) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index f75b0b3ec..5133ec2a2 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -124,7 +124,7 @@ GEM erubi (1.9.0) et-orbi (1.2.4) tzinfo - faraday (1.0.0) + faraday (1.0.1) multipart-post (>= 1.2, < 3) ffi (1.12.2) ffi-compiler (1.0.1) @@ -381,7 +381,7 @@ GEM rubyntlm (0.6.2) rubyzip (2.3.0) semantic_range (2.3.0) - sentry-raven (3.0.0) + sentry-raven (3.0.2) faraday (>= 1.0) shellany (0.0.1) sidekiq (6.0.7) From 169b91b228d27b6c6e911cccf69d6b55127e9db1 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 24 Aug 2020 05:47:16 +0000 Subject: [PATCH 0249/2165] chore(deps): bump devise-i18n from 1.9.0 to 1.9.2 Bumps [devise-i18n](https://github.com/tigrish/devise-i18n) from 1.9.0 to 1.9.2. - [Release notes](https://github.com/tigrish/devise-i18n/releases) - [Changelog](https://github.com/tigrish/devise-i18n/blob/master/CHANGELOG.md) - [Commits](https://github.com/tigrish/devise-i18n/compare/v1.9.0...v1.9.2) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Gemfile b/Gemfile index 822aed953..063abdf9f 100644 --- a/Gemfile +++ b/Gemfile @@ -43,7 +43,7 @@ gem 'mini_magick' gem 'http' ## 用户认证 gem 'devise', '~> 4.7.2' -gem 'devise-i18n', '~> 1.9.0' +gem 'devise-i18n', '~> 1.9.2' gem 'omniauth', '~> 1.9' gem 'omniauth-google-oauth2', '~> 0.8.0' gem 'gitlab_omniauth-ldap', '~> 2.1.1', require: 'omniauth-ldap' diff --git a/Gemfile.lock b/Gemfile.lock index 5133ec2a2..6d4499dcb 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -77,7 +77,7 @@ GEM uuidtools (>= 2.1.5, < 2.3.0) ast (2.4.1) awesome_print (1.8.0) - bcrypt (3.1.13) + bcrypt (3.1.15) better_errors (2.7.1) coderay (>= 1.0.0) erubi (>= 1.0.0) @@ -100,7 +100,7 @@ GEM activesupport chunky_png (1.3.11) coderay (1.1.3) - concurrent-ruby (1.1.6) + concurrent-ruby (1.1.7) connection_pool (2.2.2) crass (1.0.6) debase (0.2.4.1) @@ -113,7 +113,7 @@ GEM railties (>= 4.1.0) responders warden (~> 1.2.3) - devise-i18n (1.9.0) + devise-i18n (1.9.2) devise (>= 4.7.1) domain_name (0.5.20190701) unf (>= 0.0.5, < 1.0.0) @@ -467,7 +467,7 @@ DEPENDENCIES carrierwave debase devise (~> 4.7.2) - devise-i18n (~> 1.9.0) + devise-i18n (~> 1.9.2) dotenv-rails friendly_id gitlab_omniauth-ldap (~> 2.1.1) From bcc51f05a8da54ff75589c666e56f61d4d19b8cd Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 25 Aug 2020 05:44:45 +0000 Subject: [PATCH 0250/2165] chore(deps-dev): bump spring from 2.1.0 to 2.1.1 Bumps [spring](https://github.com/rails/spring) from 2.1.0 to 2.1.1. - [Release notes](https://github.com/rails/spring/releases) - [Changelog](https://github.com/rails/spring/blob/master/CHANGELOG.md) - [Commits](https://github.com/rails/spring/compare/v2.1.0...v2.1.1) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 6d4499dcb..587c8f6fd 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -403,7 +403,7 @@ GEM railties (>= 3.1) slim (>= 3.0, < 5.0) socksify (1.7.1) - spring (2.1.0) + spring (2.1.1) spring-watcher-listen (2.0.1) listen (>= 2.7, < 4.0) spring (>= 1.2, < 3.0) From adecb5e6a851f528a586a49524d1cb4d2a3a0e05 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 28 Aug 2020 05:42:58 +0000 Subject: [PATCH 0251/2165] chore(deps): bump sentry-raven from 3.0.2 to 3.0.3 Bumps [sentry-raven](https://github.com/getsentry/raven-ruby) from 3.0.2 to 3.0.3. - [Release notes](https://github.com/getsentry/raven-ruby/releases) - [Changelog](https://github.com/getsentry/raven-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/getsentry/raven-ruby/compare/3.0.2...3.0.3) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 587c8f6fd..7df71c944 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -381,7 +381,7 @@ GEM rubyntlm (0.6.2) rubyzip (2.3.0) semantic_range (2.3.0) - sentry-raven (3.0.2) + sentry-raven (3.0.3) faraday (>= 1.0) shellany (0.0.1) sidekiq (6.0.7) From a93cf6fd7b86d04332bcc9aab4d85785d333b6e6 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 31 Aug 2020 05:49:10 +0000 Subject: [PATCH 0252/2165] chore(deps): bump sentry-raven from 3.0.3 to 3.0.4 Bumps [sentry-raven](https://github.com/getsentry/raven-ruby) from 3.0.3 to 3.0.4. - [Release notes](https://github.com/getsentry/raven-ruby/releases) - [Changelog](https://github.com/getsentry/raven-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/getsentry/raven-ruby/compare/3.0.3...3.0.4) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 7df71c944..c9c276527 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -381,7 +381,7 @@ GEM rubyntlm (0.6.2) rubyzip (2.3.0) semantic_range (2.3.0) - sentry-raven (3.0.3) + sentry-raven (3.0.4) faraday (>= 1.0) shellany (0.0.1) sidekiq (6.0.7) From 4e852af858911a747b865a3a8aeedc9b2a159a64 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 31 Aug 2020 12:43:33 +0000 Subject: [PATCH 0253/2165] chore(deps): bump filepond from 4.18.0 to 4.20.1 Bumps [filepond](https://github.com/pqina/filepond) from 4.18.0 to 4.20.1. - [Release notes](https://github.com/pqina/filepond/releases) - [Changelog](https://github.com/pqina/filepond/blob/master/CHANGELOG.md) - [Commits](https://github.com/pqina/filepond/compare/4.18.0...4.20.1) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 938bd581c..5158e2b07 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "@rails/webpacker": "^5.0.1", "admin-lte": "^3.0.5", "clipboard": "^2.0.6", - "filepond": "^4.9.3", + "filepond": "^4.20.1", "rails-erb-loader": "^5.5.2", "turbolinks": "^5.2.0" }, diff --git a/yarn.lock b/yarn.lock index 9aa0021b5..e795b9af9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3545,10 +3545,10 @@ file-uri-to-path@1.0.0: resolved "https://registry.npm.taobao.org/file-uri-to-path/download/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" integrity sha1-VTp7hEb/b2hDWcRF8eN6BdrMM90= -filepond@^4.9.3: - version "4.18.0" - resolved "https://registry.npm.taobao.org/filepond/download/filepond-4.18.0.tgz#6d56d3d13b55b5f49530351c4b11946ab682dfc4" - integrity sha1-bVbT0TtVtfSVMDUcSxGUaraC38Q= +filepond@^4.20.1: + version "4.20.1" + resolved "https://registry.yarnpkg.com/filepond/-/filepond-4.20.1.tgz#d0e2ce447dc785f8cc51abd207805b886090b2b7" + integrity sha512-qYwE/xSODJuAJH0E2BHeD8f3X66nxZ/aUQSaGhUTVXuAWe0wvIjxaRcMZUIsZm2f7truScxAe16l5ITzxi5TFw== fill-range@^4.0.0: version "4.0.0" From 255fad164d3ea6f3107e857c8b97008b29ce49f0 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 7 Sep 2020 05:51:39 +0000 Subject: [PATCH 0254/2165] chore(deps): bump puma from 4.3.5 to 4.3.6 Bumps [puma](https://github.com/puma/puma) from 4.3.5 to 4.3.6. - [Release notes](https://github.com/puma/puma/releases) - [Changelog](https://github.com/puma/puma/blob/master/History.md) - [Commits](https://github.com/puma/puma/compare/v4.3.5...v4.3.6) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 063abdf9f..5de10dd77 100644 --- a/Gemfile +++ b/Gemfile @@ -6,7 +6,7 @@ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" } ruby '>= 2.3.0', '< 2.8.0' -gem 'puma', '~> 4.3.5' +gem 'puma', '~> 4.3.6' gem 'rails', '~> 6.0.3' gem 'rails-i18n', '~> 6.0.0' gem 'rake', '~> 13.0.1' diff --git a/Gemfile.lock b/Gemfile.lock index 38e65c19c..e1e070943 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -291,7 +291,7 @@ GEM interception (>= 0.5) pry (>= 0.12.0) public_suffix (4.0.3) - puma (4.3.5) + puma (4.3.6) nio4r (~> 2.0) pundit (2.1.0) activesupport (>= 3.0.0) @@ -496,7 +496,7 @@ DEPENDENCIES pry-byebug pry-rails pry-rescue - puma (~> 4.3.5) + puma (~> 4.3.6) pundit (~> 2.1.0) rack-cors (~> 1.1.1) rails (~> 6.0.3) From 4091d283e3ede2db43a73367260621da3452229d Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 8 Sep 2020 05:42:46 +0000 Subject: [PATCH 0255/2165] chore(deps): bump redis from 4.1.4 to 4.2.2 Bumps [redis](https://github.com/redis/redis-rb) from 4.1.4 to 4.2.2. - [Release notes](https://github.com/redis/redis-rb/releases) - [Changelog](https://github.com/redis/redis-rb/blob/master/CHANGELOG.md) - [Commits](https://github.com/redis/redis-rb/compare/v4.1.4...v4.2.2) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 5de10dd77..287a38a34 100644 --- a/Gemfile +++ b/Gemfile @@ -13,7 +13,7 @@ gem 'rake', '~> 13.0.1' # DB & Cache gem 'pg', '>= 0.18', '< 2.0' -gem 'redis', '~> 4.1.4' +gem 'redis', '~> 4.2.2' # API gem 'active_model_serializers', '~> 0.10.10' diff --git a/Gemfile.lock b/Gemfile.lock index e1e070943..b48dc4b65 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -343,7 +343,7 @@ GEM rb-fsevent (0.10.3) rb-inotify (0.10.1) ffi (~> 1.0) - redis (4.1.4) + redis (4.2.2) regexp_parser (1.7.1) request_store (1.5.0) rack (>= 1.4) @@ -503,7 +503,7 @@ DEPENDENCIES rails-i18n (~> 6.0.0) rails-settings-cached (~> 2.2) rake (~> 13.0.1) - redis (~> 4.1.4) + redis (~> 4.2.2) rqrcode rubocop (>= 0.70) rubocop-rails From 83d1a39bf99d01f7a239c56975edd9fc248dc912 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 8 Sep 2020 05:43:22 +0000 Subject: [PATCH 0256/2165] chore(deps): bump pghero from 2.7.0 to 2.7.1 Bumps [pghero](https://github.com/ankane/pghero) from 2.7.0 to 2.7.1. - [Release notes](https://github.com/ankane/pghero/releases) - [Changelog](https://github.com/ankane/pghero/blob/master/CHANGELOG.md) - [Commits](https://github.com/ankane/pghero/compare/v2.7.0...v2.7.1) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index e1e070943..fb1607c5e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -239,7 +239,7 @@ GEM mini_magick (4.10.1) mini_mime (1.0.2) mini_portile2 (2.4.0) - minitest (5.14.1) + minitest (5.14.2) mixlib-shellout (3.0.7) msgpack (1.3.3) multi_json (1.14.1) @@ -275,7 +275,7 @@ GEM parser (2.7.1.4) ast (~> 2.4.1) pg (1.2.1) - pghero (2.7.0) + pghero (2.7.1) activerecord (>= 5) plist (3.5.0) pngdefry (0.1.3) From b175ca833ccae0c4db6eac717fae64d47f3f560e Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 9 Sep 2020 05:43:30 +0000 Subject: [PATCH 0257/2165] chore(deps): bump sidekiq from 6.0.7 to 6.1.2 Bumps [sidekiq](https://github.com/mperham/sidekiq) from 6.0.7 to 6.1.2. - [Release notes](https://github.com/mperham/sidekiq/releases) - [Changelog](https://github.com/mperham/sidekiq/blob/master/Changes.md) - [Commits](https://github.com/mperham/sidekiq/compare/v6.0.7...v6.1.2) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 11 ++++------- 2 files changed, 5 insertions(+), 8 deletions(-) diff --git a/Gemfile b/Gemfile index 287a38a34..8663fb6c6 100644 --- a/Gemfile +++ b/Gemfile @@ -69,7 +69,7 @@ gem 'rqrcode' # 异步队列 gem 'activejob-status' -gem 'sidekiq', '6.0.7' # 6.0.6 有 bug:https://github.com/mperham/sidekiq/pull/4502 +gem 'sidekiq', '6.1.2' # 6.0.6 有 bug:https://github.com/mperham/sidekiq/pull/4502 gem 'sidekiq-cron', '~> 1.2' # Assets diff --git a/Gemfile.lock b/Gemfile.lock index fbf8fa37f..74718d613 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -101,7 +101,7 @@ GEM chunky_png (1.3.11) coderay (1.1.3) concurrent-ruby (1.1.7) - connection_pool (2.2.2) + connection_pool (2.2.3) crass (1.0.6) debase (0.2.4.1) debase-ruby_core_source (>= 0.10.2) @@ -300,8 +300,6 @@ GEM rack (2.2.3) rack-cors (1.1.1) rack (>= 2.0.0) - rack-protection (2.0.8.1) - rack rack-proxy (0.6.5) rack rack-test (1.1.0) @@ -384,11 +382,10 @@ GEM sentry-raven (3.0.4) faraday (>= 1.0) shellany (0.0.1) - sidekiq (6.0.7) + sidekiq (6.1.2) connection_pool (>= 2.2.2) rack (~> 2.0) - rack-protection (>= 2.0.0) - redis (>= 4.1.0) + redis (>= 4.2.0) sidekiq-cron (1.2.0) fugit (~> 1.1) sidekiq (>= 4.2.1) @@ -509,7 +506,7 @@ DEPENDENCIES rubocop-rails ruby-debug-ide sentry-raven - sidekiq (= 6.0.7) + sidekiq (= 6.1.2) sidekiq-cron (~> 1.2) simple_form (~> 5.0) slim-rails (~> 3.2.0) From fa009589b656d1780087a556737199378ef0e041 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Thu, 10 Sep 2020 06:54:48 +0000 Subject: [PATCH 0258/2165] chore(deps): bump webpacker from 5.0.1 to 5.2.1 Bumps [webpacker](https://github.com/rails/webpacker) from 5.0.1 to 5.2.1. - [Release notes](https://github.com/rails/webpacker/releases) - [Changelog](https://github.com/rails/webpacker/blob/master/CHANGELOG.md) - [Commits](https://github.com/rails/webpacker/compare/v5.0.1...v5.2.1) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index 8663fb6c6..d670a173c 100644 --- a/Gemfile +++ b/Gemfile @@ -74,7 +74,7 @@ gem 'sidekiq-cron', '~> 1.2' # Assets gem 'turbolinks', '~> 5' -gem 'webpacker', '~> 5.0' +gem 'webpacker', '~> 5.2' # 用于解析 ipa 和 apk 包 gem 'app-info', '~> 2.2.0' diff --git a/Gemfile.lock b/Gemfile.lock index 74718d613..8548b1c6f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -226,7 +226,7 @@ GEM listen (3.2.1) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) - loofah (2.6.0) + loofah (2.7.0) crass (~> 1.0.2) nokogiri (>= 1.5.9) lumberjack (1.2.4) @@ -439,7 +439,7 @@ GEM activemodel (>= 6.0.0) bindex (>= 0.4.0) railties (>= 6.0.0) - webpacker (5.0.1) + webpacker (5.2.1) activesupport (>= 5.2) rack-proxy (>= 0.6.1) railties (>= 5.2) @@ -518,7 +518,7 @@ DEPENDENCIES turbolinks (~> 5) vmstat (~> 2.3.0) web-console (>= 3.3.0) - webpacker (~> 5.0) + webpacker (~> 5.2) RUBY VERSION ruby 2.6.5p114 From e958bcd41045658d97b61433f97f17edbf5458b0 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 11 Sep 2020 05:46:06 +0000 Subject: [PATCH 0259/2165] chore(deps): bump pghero from 2.7.1 to 2.7.2 Bumps [pghero](https://github.com/ankane/pghero) from 2.7.1 to 2.7.2. - [Release notes](https://github.com/ankane/pghero/releases) - [Changelog](https://github.com/ankane/pghero/blob/master/CHANGELOG.md) - [Commits](https://github.com/ankane/pghero/compare/v2.7.1...v2.7.2) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 74718d613..6d9f84317 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -275,7 +275,7 @@ GEM parser (2.7.1.4) ast (~> 2.4.1) pg (1.2.1) - pghero (2.7.1) + pghero (2.7.2) activerecord (>= 5) plist (3.5.0) pngdefry (0.1.3) From 2435f7df38d2c9670f6d8fe6657ab8a0a19f836c Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 16 Sep 2020 05:45:32 +0000 Subject: [PATCH 0260/2165] chore(deps-dev): bump better_errors from 2.7.1 to 2.8.0 Bumps [better_errors](https://github.com/BetterErrors/better_errors) from 2.7.1 to 2.8.0. - [Release notes](https://github.com/BetterErrors/better_errors/releases) - [Commits](https://github.com/BetterErrors/better_errors/compare/v2.7.1...v2.8.0) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 6d9f84317..b8845528f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -78,7 +78,7 @@ GEM ast (2.4.1) awesome_print (1.8.0) bcrypt (3.1.15) - better_errors (2.7.1) + better_errors (2.8.0) coderay (>= 1.0.0) erubi (>= 1.0.0) rack (>= 0.9.0) From 7d4f378b3e7285151422b04d05d11ddd39604dd7 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 17 Sep 2020 19:19:34 +0800 Subject: [PATCH 0261/2165] =?UTF-8?q?feat(api):=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E6=A3=80=E6=9F=A5=20debug=5Ffiles=20=E6=98=AF=E5=90=A6?= =?UTF-8?q?=E5=AD=98=E5=9C=A8=E7=9A=84=20API?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 2 ++ Gemfile.lock | 2 +- .../debug_files/version_exist_controller.rb | 30 +++++++++++++++++++ config/routes.rb | 9 ++++-- 4 files changed, 40 insertions(+), 3 deletions(-) create mode 100644 app/controllers/api/debug_files/version_exist_controller.rb diff --git a/.gitignore b/.gitignore index 2e5a11990..29f3c2c0a 100644 --- a/.gitignore +++ b/.gitignore @@ -2,6 +2,8 @@ /.bundle /vendor/bundle/ /vendor/ruby/ +build_info/ +extensions/ # minimal Rails specific artifacts db/*.sqlite3 diff --git a/Gemfile.lock b/Gemfile.lock index 6d9f84317..2069a3fdb 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -524,4 +524,4 @@ RUBY VERSION ruby 2.6.5p114 BUNDLED WITH - 1.17.2 + 2.1.2 diff --git a/app/controllers/api/debug_files/version_exist_controller.rb b/app/controllers/api/debug_files/version_exist_controller.rb new file mode 100644 index 000000000..d787d2a67 --- /dev/null +++ b/app/controllers/api/debug_files/version_exist_controller.rb @@ -0,0 +1,30 @@ +# frozen_string_literal: true + +class Api::DebugFiles::VersionExistController < Api::BaseController + before_action :validate_channel_key + + # GET /api/debug_files/version_exist + def show + determine_params! + + where_params = channel_params.merge( + app_id: @channel.app.id, + device_type: @channel.device_type + ) + raise ActiveRecord::RecordNotFound, '调试文件版本不存在' unless DebugFile.exists?(where_params) + + render json: DebugFile.find_by(where_params) + end + + private + + def determine_params! + return if (channel_params.key?(:release_version) && channel_params.key?(:build_version)) + + raise ActionController::ParameterMissing, '缺失 release_version, build_version 参数' + end + + def channel_params + params.permit(:app_id, :device_type, :release_version, :build_version) + end +end diff --git a/config/routes.rb b/config/routes.rb index ae682b109..3783c9a0e 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -145,8 +145,13 @@ end post 'debug_files/upload', to: 'debug_files#create' - get 'debug_files/download', to: 'debug_files/download#show' - resources :debug_files, except: %i[create new edit] + resources :debug_files, except: %i[new edit create] do + collection do + get :version_exist, to: 'debug_files/version_exist#show' + get :download, to: 'debug_files/download#show' + end + end + resources :devices, only: %i[update] namespace :jenkins do From f0dfd723e56192e00a4473d4e32e6cb4837ec57d Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 17 Sep 2020 19:30:48 +0800 Subject: [PATCH 0262/2165] =?UTF-8?q?feat:=20=E4=B8=8B=E8=BD=BD=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E4=B8=8D=E5=AD=98=E5=9C=A8=E7=BB=99=E4=BA=88=E6=8F=90?= =?UTF-8?q?=E9=86=92=E4=B8=94=E4=B8=8D=E5=8F=AF=E7=82=B9=E5=87=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/release.rb | 4 +++ app/views/releases/body/_metadata.html.slim | 27 ++++++++++++--------- 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/app/models/release.rb b/app/models/release.rb index b3ec7d5e0..0ab57e10a 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -102,6 +102,10 @@ def changelog_list(use_default_changelog = true) changelog end + def has_file? + File.exist?(file.path) + end + def download_url download_release_url(id) end diff --git a/app/views/releases/body/_metadata.html.slim b/app/views/releases/body/_metadata.html.slim index 751c05b72..330fef9e7 100644 --- a/app/views/releases/body/_metadata.html.slim +++ b/app/views/releases/body/_metadata.html.slim @@ -65,20 +65,25 @@ .app-actions - unless wechat? - - if detect_device(@release.channel.device_type) == :ios - == render 'releases/body/install_cert' + - if @release.has_file? + - if detect_device(@release.channel.device_type) == :ios + == render 'releases/body/install_cert' - button.btn.btn-icon.bg-success.btn-lg[ - id="download_it" - data-install-url="#{@release.install_url}" - data-loading-text=" 等待系统弹窗确认安装 ..."] - i.fas.fa-paper-plane - | 在线安装 + button.btn.btn-icon.bg-success.btn-lg[ + id="download_it" + data-install-url="#{@release.install_url}" + data-loading-text=" 等待系统弹窗确认安装 ..."] + i.fas.fa-paper-plane + | 在线安装 + - else + a.btn.btn-icon.bg-success.btn-social href="#{@release.download_url}" target="_blank" + i.fas.fa-download + | 下载应用 - else - a.btn.btn-icon.bg-success.btn-social href="#{@release.download_url}" target="_blank" - i.fas.fa-download - | 本地下载 + button.btn.btn-secondary.btn-icon.btn-btn-lg.disabled + i.fas.fa-ghost + | 遗失文件不可安装或下载 / span style=("margin:0 5px") / - if @release.ci_url.present? From e83c2b8dd69d7a01f5592ca6596d0577550d8d4a Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 18 Sep 2020 10:59:15 +0800 Subject: [PATCH 0263/2165] fix: sidekiq-cron warning crash sidekiq --- .dockerignore | 7 +++++++ Gemfile | 4 ++-- Gemfile.lock | 20 +++++++++++++------- 3 files changed, 22 insertions(+), 9 deletions(-) diff --git a/.dockerignore b/.dockerignore index 6e36b531d..069940151 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,6 +1,13 @@ # git .git* +#ruby +specifications/* +extensions/* +gems/* +build_info/* +cache/* + # rails log tmp diff --git a/Gemfile b/Gemfile index 8663fb6c6..27a950a8d 100644 --- a/Gemfile +++ b/Gemfile @@ -69,8 +69,8 @@ gem 'rqrcode' # 异步队列 gem 'activejob-status' -gem 'sidekiq', '6.1.2' # 6.0.6 有 bug:https://github.com/mperham/sidekiq/pull/4502 -gem 'sidekiq-cron', '~> 1.2' +gem 'sidekiq', '6.1.2' +gem 'sidekiq-cron', github: 'MikeRogers0/sidekiq-cron', branch: 'bug/fix-redis-warning' # See https://github.com/ondrejbartas/sidekiq-cron/issues/286 # Assets gem 'turbolinks', '~> 5' diff --git a/Gemfile.lock b/Gemfile.lock index 2069a3fdb..0bec08b1c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,3 +1,12 @@ +GIT + remote: https://github.com/MikeRogers0/sidekiq-cron + revision: eb2029a30bd25e2fece7147f8419259125a92207 + branch: bug/fix-redis-warning + specs: + sidekiq-cron (1.2.0) + fugit (~> 1.1) + sidekiq (>= 4.2.1) + GEM remote: https://rubygems.org/ specs: @@ -133,9 +142,9 @@ GEM formatador (0.2.5) friendly_id (5.3.0) activerecord (>= 4.0.0) - fugit (1.3.4) + fugit (1.3.9) et-orbi (~> 1.1, >= 1.1.8) - raabro (~> 1.1) + raabro (~> 1.3) gitlab_omniauth-ldap (2.1.1) net-ldap (~> 0.16) omniauth (~> 1.3) @@ -296,7 +305,7 @@ GEM pundit (2.1.0) activesupport (>= 3.0.0) pyu-ruby-sasl (0.0.3.3) - raabro (1.1.6) + raabro (1.3.1) rack (2.2.3) rack-cors (1.1.1) rack (>= 2.0.0) @@ -386,9 +395,6 @@ GEM connection_pool (>= 2.2.2) rack (~> 2.0) redis (>= 4.2.0) - sidekiq-cron (1.2.0) - fugit (~> 1.1) - sidekiq (>= 4.2.1) simple_form (5.0.2) actionpack (>= 5.0) activemodel (>= 5.0) @@ -507,7 +513,7 @@ DEPENDENCIES ruby-debug-ide sentry-raven sidekiq (= 6.1.2) - sidekiq-cron (~> 1.2) + sidekiq-cron! simple_form (~> 5.0) slim-rails (~> 3.2.0) spring From 54648ed5852d33291b9a51b6cc7742a61bf27031 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 18 Sep 2020 11:02:50 +0800 Subject: [PATCH 0264/2165] =?UTF-8?q?fix:=20=E7=A3=81=E7=9B=98=E8=B7=AF?= =?UTF-8?q?=E5=BE=84=E5=A6=82=E6=9E=9C=E5=B7=B2=E5=AD=98=E5=9C=A8=E4=B8=8D?= =?UTF-8?q?=E5=86=8D=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/admin/system_info_controller.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/app/controllers/admin/system_info_controller.rb b/app/controllers/admin/system_info_controller.rb index da01207a2..dc3ff8702 100644 --- a/app/controllers/admin/system_info_controller.rb +++ b/app/controllers/admin/system_info_controller.rb @@ -98,6 +98,7 @@ def set_disks next if (EXCLUDED_MOUNT_OPTIONS & mount_options).any? next if (EXCLUDED_MOUNT_TYPES & [mount.mount_type]).any? + next if obj.any? { |i| i[:mount_path] == disk.path } begin disk = Sys::Filesystem.stat(mount.mount_point) From 2cbadff49112ae80f10f819f0be83c5595355c26 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 18 Sep 2020 11:19:44 +0800 Subject: [PATCH 0265/2165] =?UTF-8?q?refactor:=20=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1=E6=B7=BB=E5=8A=A0=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E6=9C=BA=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + config/initializers/sidekiq_scheduled.rb | 22 ++++++++++++---------- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/.gitignore b/.gitignore index 29f3c2c0a..bdd8d68a3 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ /vendor/ruby/ build_info/ extensions/ +bundler/ # minimal Rails specific artifacts db/*.sqlite3 diff --git a/config/initializers/sidekiq_scheduled.rb b/config/initializers/sidekiq_scheduled.rb index c086aa0bb..208d2d37c 100644 --- a/config/initializers/sidekiq_scheduled.rb +++ b/config/initializers/sidekiq_scheduled.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -DEFAULT_JOBS = { +SCHEDULED_JOBS = { clean_old_releases: { cron: '0 6 * * *', class: 'CleanOldReleasesJob', @@ -14,16 +14,18 @@ } if Sidekiq.server? - cron_jobs = DEFAULT_JOBS + cron_jobs = {} + if Setting.keep_uploads + cron_jobs[:clean_old_releases] = SCHEDULED_JOBS[:clean_old_releases] + else + Sidekiq::Cron::Job.destroy('clean_old_releases') + end - keep_uploads = Setting.keep_uploads - cron_jobs.delete_if { |k, _| keep_uploads && k == 'clean_old_releases' } - - demo_mode = Setting.demo_mode - cron_jobs.delete_if { |k, _| !demo_mode && k == 'reset_for_demo_mode' } - - # 从 demo mode 禁用后需要删除定时任务 - Sidekiq::Cron::Job.destroy('reset_for_demo_mode') unless demo_mode + if Setting.demo_mode + cron_jobs[:reset_for_demo_mode] = SCHEDULED_JOBS[:reset_for_demo_mode] + else + Sidekiq::Cron::Job.destroy('reset_for_demo_mode') + end Sidekiq::Cron::Job.load_from_hash cron_jobs end \ No newline at end of file From e126c3717a5017c6bdc14cbb2be4e17ddd3102f5 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 18 Sep 2020 11:32:56 +0800 Subject: [PATCH 0266/2165] =?UTF-8?q?feat:=20=E8=B0=83=E8=AF=95=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E4=B8=8D=E5=AD=98=E5=9C=A8=E6=97=B6=E6=98=BE=E6=80=A7?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E5=87=BA=E6=9D=A5=E4=B8=94=E6=97=A0=E6=B3=95?= =?UTF-8?q?=E4=B8=8B=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/debug_file.rb | 4 ++++ app/views/debug_files/_debug_file.html.slim | 15 ++++++++++----- app/views/releases/body/_metadata.html.slim | 2 +- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/app/models/debug_file.rb b/app/models/debug_file.rb index 81dd8d0ec..ab8eecf0e 100644 --- a/app/models/debug_file.rb +++ b/app/models/debug_file.rb @@ -20,6 +20,10 @@ def download_filename "#{app.name}_#{device_type}_#{release_version}_#{build_version}_#{file.file.filename}" end + def has_file? + File.exist?(file.path) + end + def file_url download_debug_file_url(id) end diff --git a/app/views/debug_files/_debug_file.html.slim b/app/views/debug_files/_debug_file.html.slim index a6c391580..5e2b95af2 100644 --- a/app/views/debug_files/_debug_file.html.slim +++ b/app/views/debug_files/_debug_file.html.slim @@ -24,11 +24,16 @@ ruby: = debug_file.build_version .debug-file-section-size - a.btn.btn-icon.btn-sm.btn-success.btn-flat href="#{debug_file.file_url}" target="_blank" - i.fas.fa-download - | 下载 ( - = number_to_human_size(debug_file.file.size) - | ) + - if debug_file.has_file? + a.btn.btn-icon.btn-sm.btn-success.btn-flat href="#{debug_file.file_url}" target="_blank" + i.fas.fa-download + | 下载 ( + = number_to_human_size(debug_file.file.size) + | ) + - else + button.btn.btn-secondary.btn-icon.btn-sm.btn-flat.disabled + i.fas.fa-ghost + | 遗失文件无法下载 - if user_signed_in? button.btn.btn-icon.btn-sm.btn-danger.btn-flat.destroy-debug-file data-id="#{debug_file.id}" data-url="#{debug_file_path(debug_file)}" data-toggle="modal" i.fas.fa-trash-alt diff --git a/app/views/releases/body/_metadata.html.slim b/app/views/releases/body/_metadata.html.slim index 330fef9e7..40661067b 100644 --- a/app/views/releases/body/_metadata.html.slim +++ b/app/views/releases/body/_metadata.html.slim @@ -81,7 +81,7 @@ i.fas.fa-download | 下载应用 - else - button.btn.btn-secondary.btn-icon.btn-btn-lg.disabled + button.btn.btn-secondary.btn-icon.btn-lg.disabled i.fas.fa-ghost | 遗失文件不可安装或下载 From 6d91ee14ae12afa93f986c2e2019b7434ae04282 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 18 Sep 2020 03:34:25 +0000 Subject: [PATCH 0267/2165] chore(deps): bump rails from 6.0.3.2 to 6.0.3.3 Bumps [rails](https://github.com/rails/rails) from 6.0.3.2 to 6.0.3.3. - [Release notes](https://github.com/rails/rails/releases) - [Commits](https://github.com/rails/rails/compare/v6.0.3.2...v6.0.3.3) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 108 +++++++++++++++++++++++++-------------------------- 1 file changed, 54 insertions(+), 54 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 0bec08b1c..173a4ac65 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -11,38 +11,38 @@ GEM remote: https://rubygems.org/ specs: CFPropertyList (3.0.2) - actioncable (6.0.3.2) - actionpack (= 6.0.3.2) + actioncable (6.0.3.3) + actionpack (= 6.0.3.3) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (6.0.3.2) - actionpack (= 6.0.3.2) - activejob (= 6.0.3.2) - activerecord (= 6.0.3.2) - activestorage (= 6.0.3.2) - activesupport (= 6.0.3.2) + actionmailbox (6.0.3.3) + actionpack (= 6.0.3.3) + activejob (= 6.0.3.3) + activerecord (= 6.0.3.3) + activestorage (= 6.0.3.3) + activesupport (= 6.0.3.3) mail (>= 2.7.1) - actionmailer (6.0.3.2) - actionpack (= 6.0.3.2) - actionview (= 6.0.3.2) - activejob (= 6.0.3.2) + actionmailer (6.0.3.3) + actionpack (= 6.0.3.3) + actionview (= 6.0.3.3) + activejob (= 6.0.3.3) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (6.0.3.2) - actionview (= 6.0.3.2) - activesupport (= 6.0.3.2) + actionpack (6.0.3.3) + actionview (= 6.0.3.3) + activesupport (= 6.0.3.3) rack (~> 2.0, >= 2.0.8) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (6.0.3.2) - actionpack (= 6.0.3.2) - activerecord (= 6.0.3.2) - activestorage (= 6.0.3.2) - activesupport (= 6.0.3.2) + actiontext (6.0.3.3) + actionpack (= 6.0.3.3) + activerecord (= 6.0.3.3) + activestorage (= 6.0.3.3) + activesupport (= 6.0.3.3) nokogiri (>= 1.8.5) - actionview (6.0.3.2) - activesupport (= 6.0.3.2) + actionview (6.0.3.3) + activesupport (= 6.0.3.3) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) @@ -52,23 +52,23 @@ GEM activemodel (>= 4.1, < 6.1) case_transform (>= 0.2) jsonapi-renderer (>= 0.1.1.beta1, < 0.3) - activejob (6.0.3.2) - activesupport (= 6.0.3.2) + activejob (6.0.3.3) + activesupport (= 6.0.3.3) globalid (>= 0.3.6) activejob-status (0.1.6) activejob (>= 4.2) activesupport (>= 4.2) - activemodel (6.0.3.2) - activesupport (= 6.0.3.2) - activerecord (6.0.3.2) - activemodel (= 6.0.3.2) - activesupport (= 6.0.3.2) - activestorage (6.0.3.2) - actionpack (= 6.0.3.2) - activejob (= 6.0.3.2) - activerecord (= 6.0.3.2) + activemodel (6.0.3.3) + activesupport (= 6.0.3.3) + activerecord (6.0.3.3) + activemodel (= 6.0.3.3) + activesupport (= 6.0.3.3) + activestorage (6.0.3.3) + actionpack (= 6.0.3.3) + activejob (= 6.0.3.3) + activerecord (= 6.0.3.3) marcel (~> 0.3.1) - activesupport (6.0.3.2) + activesupport (6.0.3.3) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 0.7, < 2) minitest (~> 5.1) @@ -235,7 +235,7 @@ GEM listen (3.2.1) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) - loofah (2.6.0) + loofah (2.7.0) crass (~> 1.0.2) nokogiri (>= 1.5.9) lumberjack (1.2.4) @@ -256,7 +256,7 @@ GEM multipart-post (2.1.1) nenv (0.3.0) net-ldap (0.16.2) - nio4r (2.5.2) + nio4r (2.5.4) nokogiri (1.10.10) mini_portile2 (~> 2.4.0) notiffany (0.1.3) @@ -313,20 +313,20 @@ GEM rack rack-test (1.1.0) rack (>= 1.0, < 3) - rails (6.0.3.2) - actioncable (= 6.0.3.2) - actionmailbox (= 6.0.3.2) - actionmailer (= 6.0.3.2) - actionpack (= 6.0.3.2) - actiontext (= 6.0.3.2) - actionview (= 6.0.3.2) - activejob (= 6.0.3.2) - activemodel (= 6.0.3.2) - activerecord (= 6.0.3.2) - activestorage (= 6.0.3.2) - activesupport (= 6.0.3.2) + rails (6.0.3.3) + actioncable (= 6.0.3.3) + actionmailbox (= 6.0.3.3) + actionmailer (= 6.0.3.3) + actionpack (= 6.0.3.3) + actiontext (= 6.0.3.3) + actionview (= 6.0.3.3) + activejob (= 6.0.3.3) + activemodel (= 6.0.3.3) + activerecord (= 6.0.3.3) + activestorage (= 6.0.3.3) + activesupport (= 6.0.3.3) bundler (>= 1.3.0) - railties (= 6.0.3.2) + railties (= 6.0.3.3) sprockets-rails (>= 2.0.0) rails-dom-testing (2.0.3) activesupport (>= 4.2.0) @@ -339,9 +339,9 @@ GEM rails-settings-cached (2.2.0) rails (>= 4.2.0) request_store - railties (6.0.3.2) - actionpack (= 6.0.3.2) - activesupport (= 6.0.3.2) + railties (6.0.3.3) + actionpack (= 6.0.3.3) + activesupport (= 6.0.3.3) method_source rake (>= 0.8.7) thor (>= 0.20.3, < 2.0) @@ -413,7 +413,7 @@ GEM sprockets (4.0.2) concurrent-ruby (~> 1.0) rack (> 1, < 3) - sprockets-rails (3.2.1) + sprockets-rails (3.2.2) actionpack (>= 4.0) activesupport (>= 4.0) sprockets (>= 3.0.0) @@ -450,7 +450,7 @@ GEM rack-proxy (>= 0.6.1) railties (>= 5.2) semantic_range (>= 2.3.0) - websocket-driver (0.7.2) + websocket-driver (0.7.3) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) zeitwerk (2.4.0) From 423c3522137657327974db2a035fafbf0ecd2d8f Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 18 Sep 2020 03:34:36 +0000 Subject: [PATCH 0268/2165] chore(deps): bump friendly_id from 5.3.0 to 5.4.0 Bumps [friendly_id](https://github.com/norman/friendly_id) from 5.3.0 to 5.4.0. - [Release notes](https://github.com/norman/friendly_id/releases) - [Changelog](https://github.com/norman/friendly_id/blob/master/Changelog.md) - [Commits](https://github.com/norman/friendly_id/compare/5.3.0...5.4.0) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 0bec08b1c..eb65f1937 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -140,7 +140,7 @@ GEM ffi (>= 1.0.0) rake formatador (0.2.5) - friendly_id (5.3.0) + friendly_id (5.4.0) activerecord (>= 4.0.0) fugit (1.3.9) et-orbi (~> 1.1, >= 1.1.8) From 926c04a7f2de0e74a3f878371e79d5d09a1defe5 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 18 Sep 2020 03:41:49 +0000 Subject: [PATCH 0269/2165] chore(deps): bump @rails/webpacker from 5.1.1 to 5.2.1 Bumps [@rails/webpacker](https://github.com/rails/webpacker) from 5.1.1 to 5.2.1. - [Release notes](https://github.com/rails/webpacker/releases) - [Changelog](https://github.com/rails/webpacker/blob/v5.2.1/CHANGELOG.md) - [Commits](https://github.com/rails/webpacker/compare/v5.1.1...v5.2.1) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 559 +++++++++++++++++++++++++++++++++++---------------- 2 files changed, 387 insertions(+), 174 deletions(-) diff --git a/package.json b/package.json index 5158e2b07..34742fe78 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "private": true, "dependencies": { "@rails/ujs": "^6.0.3", - "@rails/webpacker": "^5.0.1", + "@rails/webpacker": "^5.2.1", "admin-lte": "^3.0.5", "clipboard": "^2.0.6", "filepond": "^4.20.1", diff --git a/yarn.lock b/yarn.lock index e795b9af9..0997f417f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -18,19 +18,28 @@ invariant "^2.2.4" semver "^5.5.0" -"@babel/core@^7.9.0": - version "7.10.5" - resolved "https://registry.npm.taobao.org/@babel/core/download/@babel/core-7.10.5.tgz?cache=0&sync_timestamp=1594750809694&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz#1f15e2cca8ad9a1d78a38ddba612f5e7cdbbd330" - integrity sha1-HxXizKitmh14o43bphL158270zA= +"@babel/compat-data@^7.11.0": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.11.0.tgz#e9f73efe09af1355b723a7f39b11bad637d7c99c" + integrity sha512-TPSvJfv73ng0pfnEOh17bYMPQbI95+nGWc71Ss4vZdRBHTDqmM9Z8ZV4rYz8Ks7sfzc95n30k6ODIq5UGnXcYQ== + dependencies: + browserslist "^4.12.0" + invariant "^2.2.4" + semver "^5.5.0" + +"@babel/core@^7.11.1": + version "7.11.6" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.11.6.tgz#3a9455dc7387ff1bac45770650bc13ba04a15651" + integrity sha512-Wpcv03AGnmkgm6uS6k8iwhIwTrcP0m17TL1n1sy7qD0qelDu4XNeW0dN0mHfa+Gei211yDaLoEe/VlbXQzM4Bg== dependencies: "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.10.5" - "@babel/helper-module-transforms" "^7.10.5" + "@babel/generator" "^7.11.6" + "@babel/helper-module-transforms" "^7.11.0" "@babel/helpers" "^7.10.4" - "@babel/parser" "^7.10.5" + "@babel/parser" "^7.11.5" "@babel/template" "^7.10.4" - "@babel/traverse" "^7.10.5" - "@babel/types" "^7.10.5" + "@babel/traverse" "^7.11.5" + "@babel/types" "^7.11.5" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.1" @@ -49,6 +58,15 @@ jsesc "^2.5.1" source-map "^0.5.0" +"@babel/generator@^7.11.5", "@babel/generator@^7.11.6": + version "7.11.6" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.11.6.tgz#b868900f81b163b4d464ea24545c61cbac4dc620" + integrity sha512-DWtQ1PV3r+cLbySoHrwn9RWEgKMBLLma4OBQloPRyDYvc5msJM9kvTLo1YnlJd1P/ZuKbdli3ijr5q3FvAF3uA== + dependencies: + "@babel/types" "^7.11.5" + jsesc "^2.5.1" + source-map "^0.5.0" + "@babel/helper-annotate-as-pure@^7.10.4": version "7.10.4" resolved "https://registry.npm.taobao.org/@babel/helper-annotate-as-pure/download/@babel/helper-annotate-as-pure-7.10.4.tgz?cache=0&sync_timestamp=1593522926826&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-annotate-as-pure%2Fdownload%2F%40babel%2Fhelper-annotate-as-pure-7.10.4.tgz#5bf0d495a3f757ac3bda48b5bf3b3ba309c72ba3" @@ -163,6 +181,19 @@ "@babel/types" "^7.10.5" lodash "^4.17.19" +"@babel/helper-module-transforms@^7.11.0": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz#b16f250229e47211abdd84b34b64737c2ab2d359" + integrity sha512-02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg== + dependencies: + "@babel/helper-module-imports" "^7.10.4" + "@babel/helper-replace-supers" "^7.10.4" + "@babel/helper-simple-access" "^7.10.4" + "@babel/helper-split-export-declaration" "^7.11.0" + "@babel/template" "^7.10.4" + "@babel/types" "^7.11.0" + lodash "^4.17.19" + "@babel/helper-optimise-call-expression@^7.10.4": version "7.10.4" resolved "https://registry.npm.taobao.org/@babel/helper-optimise-call-expression/download/@babel/helper-optimise-call-expression-7.10.4.tgz?cache=0&sync_timestamp=1593522928231&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-optimise-call-expression%2Fdownload%2F%40babel%2Fhelper-optimise-call-expression-7.10.4.tgz#50dc96413d594f995a77905905b05893cd779673" @@ -170,7 +201,7 @@ dependencies: "@babel/types" "^7.10.4" -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.8.0": +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": version "7.10.4" resolved "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz?cache=0&sync_timestamp=1593521089859&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375" integrity sha1-L3WoMSadT2d95JmG3/WZJ1M883U= @@ -211,6 +242,13 @@ "@babel/template" "^7.10.4" "@babel/types" "^7.10.4" +"@babel/helper-skip-transparent-expression-wrappers@^7.11.0": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.11.0.tgz#eec162f112c2f58d3af0af125e3bb57665146729" + integrity sha512-0XIdiQln4Elglgjbwo9wuJpL/K7AGCY26kmEt0+pRP0TAj4jjyNq1MjoRvikrTVqKcx4Gysxt4cXvVFXP/JO2Q== + dependencies: + "@babel/types" "^7.11.0" + "@babel/helper-split-export-declaration@^7.10.4": version "7.10.4" resolved "https://registry.npm.taobao.org/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.10.4.tgz?cache=0&sync_timestamp=1593522967620&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-split-export-declaration%2Fdownload%2F%40babel%2Fhelper-split-export-declaration-7.10.4.tgz#2c70576eaa3b5609b24cb99db2888cc3fc4251d1" @@ -218,6 +256,13 @@ dependencies: "@babel/types" "^7.10.4" +"@babel/helper-split-export-declaration@^7.11.0": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz#f8a491244acf6a676158ac42072911ba83ad099f" + integrity sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg== + dependencies: + "@babel/types" "^7.11.0" + "@babel/helper-validator-identifier@^7.10.4": version "7.10.4" resolved "https://registry.npm.taobao.org/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.10.4.tgz?cache=0&sync_timestamp=1593521090675&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2" @@ -256,6 +301,11 @@ resolved "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.10.5.tgz?cache=0&sync_timestamp=1594750803040&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.10.5.tgz#e7c6bf5a7deff957cec9f04b551e2762909d826b" integrity sha1-58a/Wn3v+VfOyfBLVR4nYpCdgms= +"@babel/parser@^7.11.5": + version "7.11.5" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.11.5.tgz#c7ff6303df71080ec7a4f5b8c003c58f1cf51037" + integrity sha512-X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q== + "@babel/plugin-proposal-async-generator-functions@^7.10.4": version "7.10.5" resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-async-generator-functions/download/@babel/plugin-proposal-async-generator-functions-7.10.5.tgz#3491cabf2f7c179ab820606cec27fed15e0e8558" @@ -265,7 +315,7 @@ "@babel/helper-remap-async-to-generator" "^7.10.4" "@babel/plugin-syntax-async-generators" "^7.8.0" -"@babel/plugin-proposal-class-properties@^7.10.4", "@babel/plugin-proposal-class-properties@^7.8.3": +"@babel/plugin-proposal-class-properties@^7.10.4": version "7.10.4" resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-class-properties/download/@babel/plugin-proposal-class-properties-7.10.4.tgz?cache=0&sync_timestamp=1593522874177&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-class-properties%2Fdownload%2F%40babel%2Fplugin-proposal-class-properties-7.10.4.tgz#a33bf632da390a59c7a8c570045d1115cd778807" integrity sha1-ozv2Mto5ClnHqMVwBF0RFc13iAc= @@ -281,6 +331,14 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-dynamic-import" "^7.8.0" +"@babel/plugin-proposal-export-namespace-from@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.10.4.tgz#570d883b91031637b3e2958eea3c438e62c05f54" + integrity sha512-aNdf0LY6/3WXkhh0Fdb6Zk9j1NMD8ovj3F6r0+3j837Pn1S1PdNtcwJ5EG9WkVPNHPxyJDaxMaAOVq4eki0qbg== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-proposal-json-strings@^7.10.4": version "7.10.4" resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-json-strings/download/@babel/plugin-proposal-json-strings-7.10.4.tgz?cache=0&sync_timestamp=1593521092651&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-json-strings%2Fdownload%2F%40babel%2Fplugin-proposal-json-strings-7.10.4.tgz#593e59c63528160233bd321b1aebe0820c2341db" @@ -289,6 +347,14 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-json-strings" "^7.8.0" +"@babel/plugin-proposal-logical-assignment-operators@^7.11.0": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.11.0.tgz#9f80e482c03083c87125dee10026b58527ea20c8" + integrity sha512-/f8p4z+Auz0Uaf+i8Ekf1iM7wUNLcViFUGiPxKeXvxTSl63B875YPiVdUDdem7hREcI0E0kSpEhS8tF5RphK7Q== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-proposal-nullish-coalescing-operator@^7.10.4": version "7.10.4" resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-nullish-coalescing-operator/download/@babel/plugin-proposal-nullish-coalescing-operator-7.10.4.tgz?cache=0&sync_timestamp=1593521095740&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-nullish-coalescing-operator%2Fdownload%2F%40babel%2Fplugin-proposal-nullish-coalescing-operator-7.10.4.tgz#02a7e961fc32e6d5b2db0649e01bf80ddee7e04a" @@ -305,10 +371,10 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-proposal-object-rest-spread@^7.10.4", "@babel/plugin-proposal-object-rest-spread@^7.9.0": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-object-rest-spread/download/@babel/plugin-proposal-object-rest-spread-7.10.4.tgz#50129ac216b9a6a55b3853fdd923e74bf553a4c0" - integrity sha1-UBKawha5pqVbOFP92SPnS/VTpMA= +"@babel/plugin-proposal-object-rest-spread@^7.10.1", "@babel/plugin-proposal-object-rest-spread@^7.11.0": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.11.0.tgz#bd81f95a1f746760ea43b6c2d3d62b11790ad0af" + integrity sha512-wzch41N4yztwoRw0ak+37wxwJM2oiIiy6huGCoqkvSTA9acYWcPfn9Y4aJqmFFJ70KTJUu29f3DQ43uJ9HXzEA== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-object-rest-spread" "^7.8.0" @@ -322,12 +388,13 @@ "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" -"@babel/plugin-proposal-optional-chaining@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-optional-chaining/download/@babel/plugin-proposal-optional-chaining-7.10.4.tgz?cache=0&sync_timestamp=1593522924461&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-optional-chaining%2Fdownload%2F%40babel%2Fplugin-proposal-optional-chaining-7.10.4.tgz#750f1255e930a1f82d8cdde45031f81a0d0adff7" - integrity sha1-dQ8SVekwofgtjN3kUDH4Gg0K3/c= +"@babel/plugin-proposal-optional-chaining@^7.11.0": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.11.0.tgz#de5866d0646f6afdaab8a566382fe3a221755076" + integrity sha512-v9fZIu3Y8562RRwhm1BbMRxtqZNFmFA2EG+pT2diuU8PT3H6T/KXoZ54KgYisfOFZHV6PfvAiBIZ9Rcz+/JCxA== dependencies: "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-skip-transparent-expression-wrappers" "^7.11.0" "@babel/plugin-syntax-optional-chaining" "^7.8.0" "@babel/plugin-proposal-private-methods@^7.10.4": @@ -367,6 +434,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" +"@babel/plugin-syntax-export-namespace-from@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" + integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-json-strings@^7.8.0": version "7.8.3" resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-json-strings/download/@babel/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" @@ -374,6 +448,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0": version "7.8.3" resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-nullish-coalescing-operator/download/@babel/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" @@ -467,10 +548,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-destructuring@^7.10.4", "@babel/plugin-transform-destructuring@^7.8.8": +"@babel/plugin-transform-destructuring@^7.10.1", "@babel/plugin-transform-destructuring@^7.10.4": version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-destructuring/download/@babel/plugin-transform-destructuring-7.10.4.tgz#70ddd2b3d1bea83d01509e9bb25ddb3a74fc85e5" - integrity sha1-cN3Ss9G+qD0BUJ6bsl3bOnT8heU= + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.4.tgz#70ddd2b3d1bea83d01509e9bb25ddb3a74fc85e5" + integrity sha512-+WmfvyfsyF603iPa6825mq6Qrb7uLjTOsa3XOFzlYcYDHSS4QmpOWOL0NNBY5qMbvrcf3tq0Cw+v4lxswOBpgA== dependencies: "@babel/helper-plugin-utils" "^7.10.4" @@ -600,7 +681,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-regenerator@^7.10.4", "@babel/plugin-transform-regenerator@^7.8.7": +"@babel/plugin-transform-regenerator@^7.10.1", "@babel/plugin-transform-regenerator@^7.10.4": version "7.10.4" resolved "https://registry.npm.taobao.org/@babel/plugin-transform-regenerator/download/@babel/plugin-transform-regenerator-7.10.4.tgz?cache=0&sync_timestamp=1593521089707&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-regenerator%2Fdownload%2F%40babel%2Fplugin-transform-regenerator-7.10.4.tgz#2015e59d839074e76838de2159db421966fd8b63" integrity sha1-IBXlnYOQdOdoON4hWdtCGWb9i2M= @@ -614,10 +695,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-runtime@^7.9.0": - version "7.10.5" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-runtime/download/@babel/plugin-transform-runtime-7.10.5.tgz?cache=0&sync_timestamp=1594750872068&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-runtime%2Fdownload%2F%40babel%2Fplugin-transform-runtime-7.10.5.tgz#3b39b7b24830e0c2d8ff7a4489fe5cf99fbace86" - integrity sha1-Ozm3skgw4MLY/3pEif5c+Z+6zoY= +"@babel/plugin-transform-runtime@^7.11.0": + version "7.11.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.11.5.tgz#f108bc8e0cf33c37da031c097d1df470b3a293fc" + integrity sha512-9aIoee+EhjySZ6vY5hnLjigHzunBlscx9ANKutkeWTJTx6m5Rbq6Ic01tLvO54lSusR+BxV7u4UDdCmXv5aagg== dependencies: "@babel/helper-module-imports" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" @@ -631,12 +712,13 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-spread@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-spread/download/@babel/plugin-transform-spread-7.10.4.tgz#4e2c85ea0d6abaee1b24dcfbbae426fe8d674cff" - integrity sha1-TiyF6g1quu4bJNz7uuQm/o1nTP8= +"@babel/plugin-transform-spread@^7.11.0": + version "7.11.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.11.0.tgz#fa84d300f5e4f57752fe41a6d1b3c554f13f17cc" + integrity sha512-UwQYGOqIdQJe4aWNyS7noqAnN2VbaczPLiEtln+zPowRNlD+79w3oi2TWfYe0eZgd+gjZCbsydN7lzWysDt+gw== dependencies: "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-skip-transparent-expression-wrappers" "^7.11.0" "@babel/plugin-transform-sticky-regex@^7.10.4": version "7.10.4" @@ -676,30 +758,34 @@ "@babel/helper-create-regexp-features-plugin" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/preset-env@^7.9.0": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/preset-env/download/@babel/preset-env-7.10.4.tgz?cache=0&sync_timestamp=1593521234560&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fpreset-env%2Fdownload%2F%40babel%2Fpreset-env-7.10.4.tgz#fbf57f9a803afd97f4f32e4f798bb62e4b2bef5f" - integrity sha1-+/V/moA6/Zf08y5PeYu2Lksr718= +"@babel/preset-env@^7.11.0": + version "7.11.5" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.11.5.tgz#18cb4b9379e3e92ffea92c07471a99a2914e4272" + integrity sha512-kXqmW1jVcnB2cdueV+fyBM8estd5mlNfaQi6lwLgRwCby4edpavgbFhiBNjmWA3JpB/yZGSISa7Srf+TwxDQoA== dependencies: - "@babel/compat-data" "^7.10.4" + "@babel/compat-data" "^7.11.0" "@babel/helper-compilation-targets" "^7.10.4" "@babel/helper-module-imports" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-proposal-async-generator-functions" "^7.10.4" "@babel/plugin-proposal-class-properties" "^7.10.4" "@babel/plugin-proposal-dynamic-import" "^7.10.4" + "@babel/plugin-proposal-export-namespace-from" "^7.10.4" "@babel/plugin-proposal-json-strings" "^7.10.4" + "@babel/plugin-proposal-logical-assignment-operators" "^7.11.0" "@babel/plugin-proposal-nullish-coalescing-operator" "^7.10.4" "@babel/plugin-proposal-numeric-separator" "^7.10.4" - "@babel/plugin-proposal-object-rest-spread" "^7.10.4" + "@babel/plugin-proposal-object-rest-spread" "^7.11.0" "@babel/plugin-proposal-optional-catch-binding" "^7.10.4" - "@babel/plugin-proposal-optional-chaining" "^7.10.4" + "@babel/plugin-proposal-optional-chaining" "^7.11.0" "@babel/plugin-proposal-private-methods" "^7.10.4" "@babel/plugin-proposal-unicode-property-regex" "^7.10.4" "@babel/plugin-syntax-async-generators" "^7.8.0" "@babel/plugin-syntax-class-properties" "^7.10.4" "@babel/plugin-syntax-dynamic-import" "^7.8.0" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" "@babel/plugin-syntax-json-strings" "^7.8.0" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" "@babel/plugin-syntax-numeric-separator" "^7.10.4" "@babel/plugin-syntax-object-rest-spread" "^7.8.0" @@ -732,14 +818,14 @@ "@babel/plugin-transform-regenerator" "^7.10.4" "@babel/plugin-transform-reserved-words" "^7.10.4" "@babel/plugin-transform-shorthand-properties" "^7.10.4" - "@babel/plugin-transform-spread" "^7.10.4" + "@babel/plugin-transform-spread" "^7.11.0" "@babel/plugin-transform-sticky-regex" "^7.10.4" "@babel/plugin-transform-template-literals" "^7.10.4" "@babel/plugin-transform-typeof-symbol" "^7.10.4" "@babel/plugin-transform-unicode-escapes" "^7.10.4" "@babel/plugin-transform-unicode-regex" "^7.10.4" "@babel/preset-modules" "^0.1.3" - "@babel/types" "^7.10.4" + "@babel/types" "^7.11.5" browserslist "^4.12.0" core-js-compat "^3.6.2" invariant "^2.2.2" @@ -757,10 +843,10 @@ "@babel/types" "^7.4.4" esutils "^2.0.2" -"@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2": - version "7.10.5" - resolved "https://registry.npm.taobao.org/@babel/runtime/download/@babel/runtime-7.10.5.tgz?cache=0&sync_timestamp=1594749160928&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.10.5.tgz#303d8bd440ecd5a491eae6117fd3367698674c5c" - integrity sha1-MD2L1EDs1aSR6uYRf9M2dphnTFw= +"@babel/runtime@^7.11.2", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4": + version "7.11.2" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.11.2.tgz#f549c13c754cc40b87644b9fa9f09a6a95fe0736" + integrity sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw== dependencies: regenerator-runtime "^0.13.4" @@ -773,7 +859,7 @@ "@babel/parser" "^7.10.4" "@babel/types" "^7.10.4" -"@babel/traverse@^7.10.4", "@babel/traverse@^7.10.5": +"@babel/traverse@^7.10.4": version "7.10.5" resolved "https://registry.npm.taobao.org/@babel/traverse/download/@babel/traverse-7.10.5.tgz?cache=0&sync_timestamp=1594750808293&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.10.5.tgz#77ce464f5b258be265af618d8fddf0536f20b564" integrity sha1-d85GT1sli+Jlr2GNj93wU28gtWQ= @@ -788,6 +874,21 @@ globals "^11.1.0" lodash "^4.17.19" +"@babel/traverse@^7.11.5": + version "7.11.5" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.11.5.tgz#be777b93b518eb6d76ee2e1ea1d143daa11e61c3" + integrity sha512-EjiPXt+r7LiCZXEfRpSJd+jUMnBd4/9OUv7Nx3+0u9+eimMwJmG0Q98lw4/289JCoxSE8OolDMNZaaF/JZ69WQ== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/generator" "^7.11.5" + "@babel/helper-function-name" "^7.10.4" + "@babel/helper-split-export-declaration" "^7.11.0" + "@babel/parser" "^7.11.5" + "@babel/types" "^7.11.5" + debug "^4.1.0" + globals "^11.1.0" + lodash "^4.17.19" + "@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.4.4": version "7.10.5" resolved "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.10.5.tgz?cache=0&sync_timestamp=1594750805733&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.10.5.tgz#d88ae7e2fde86bfbfe851d4d81afa70a997b5d15" @@ -797,6 +898,15 @@ lodash "^4.17.19" to-fast-properties "^2.0.0" +"@babel/types@^7.11.0", "@babel/types@^7.11.5": + version "7.11.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.11.5.tgz#d9de577d01252d77c6800cee039ee64faf75662d" + integrity sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q== + dependencies: + "@babel/helper-validator-identifier" "^7.10.4" + lodash "^4.17.19" + to-fast-properties "^2.0.0" + "@csstools/convert-colors@^1.4.0": version "1.4.0" resolved "https://registry.npm.taobao.org/@csstools/convert-colors/download/@csstools/convert-colors-1.4.0.tgz#ad495dc41b12e75d588c6db8b9834f08fa131eb7" @@ -839,53 +949,60 @@ resolved "https://registry.npm.taobao.org/@lgaitan/pace-progress/download/@lgaitan/pace-progress-1.0.7.tgz#c96fbbd9fd4cf528feed34ea0c8f9d8b3e98f0dd" integrity sha1-yW+72f1M9Sj+7TTqDI+diz6Y8N0= +"@npmcli/move-file@^1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.0.1.tgz#de103070dac0f48ce49cf6693c23af59c0f70464" + integrity sha512-Uv6h1sT+0DrblvIrolFtbvM1FgWm+/sy4B3pvLp67Zys+thcukzS5ekn7HsZFGpWP4Q3fYJCljbWQE/XivMRLw== + dependencies: + mkdirp "^1.0.4" + "@rails/ujs@^6.0.3": version "6.0.3" resolved "https://registry.npm.taobao.org/@rails/ujs/download/@rails/ujs-6.0.3.tgz#e68a03278e30daea6a110aac5dfa33c60c53055d" integrity sha1-5ooDJ44w2upqEQqsXfozxgxTBV0= -"@rails/webpacker@^5.0.1": - version "5.1.1" - resolved "https://registry.npm.taobao.org/@rails/webpacker/download/@rails/webpacker-5.1.1.tgz#3c937aa719e46341f037a3f37349ef58085950df" - integrity sha1-PJN6pxnkY0HwN6Pzc0nvWAhZUN8= +"@rails/webpacker@^5.2.1": + version "5.2.1" + resolved "https://registry.yarnpkg.com/@rails/webpacker/-/webpacker-5.2.1.tgz#87cdbd4af2090ae2d74bdc51f6f04717d907c5b3" + integrity sha512-rO0kOv0o4ESB8ZnKX+b54ZKogNJGWSMULGmsJacREfm9SahKEQwXBeHNsqSGtS9NAPsU6YUFhGKRd4i/kbMNrQ== dependencies: - "@babel/core" "^7.9.0" - "@babel/plugin-proposal-class-properties" "^7.8.3" - "@babel/plugin-proposal-object-rest-spread" "^7.9.0" + "@babel/core" "^7.11.1" + "@babel/plugin-proposal-class-properties" "^7.10.4" + "@babel/plugin-proposal-object-rest-spread" "^7.10.1" "@babel/plugin-syntax-dynamic-import" "^7.8.3" - "@babel/plugin-transform-destructuring" "^7.8.8" - "@babel/plugin-transform-regenerator" "^7.8.7" - "@babel/plugin-transform-runtime" "^7.9.0" - "@babel/preset-env" "^7.9.0" - "@babel/runtime" "^7.9.2" + "@babel/plugin-transform-destructuring" "^7.10.1" + "@babel/plugin-transform-regenerator" "^7.10.1" + "@babel/plugin-transform-runtime" "^7.11.0" + "@babel/preset-env" "^7.11.0" + "@babel/runtime" "^7.11.2" babel-loader "^8.1.0" - babel-plugin-dynamic-import-node "^2.3.0" + babel-plugin-dynamic-import-node "^2.3.3" babel-plugin-macros "^2.8.0" case-sensitive-paths-webpack-plugin "^2.3.0" - compression-webpack-plugin "^3.1.0" - core-js "^3.6.4" - css-loader "^3.4.2" + compression-webpack-plugin "^4.0.0" + core-js "^3.6.5" + css-loader "^3.5.3" file-loader "^6.0.0" - flatted "^2.0.1" + flatted "^3.0.4" glob "^7.1.6" - js-yaml "^3.13.1" + js-yaml "^3.14.0" mini-css-extract-plugin "^0.9.0" - node-sass "^4.13.1" + node-sass "^4.14.1" optimize-css-assets-webpack-plugin "^5.0.3" path-complete-extname "^1.0.0" pnp-webpack-plugin "^1.6.4" - postcss-flexbugs-fixes "^4.2.0" + postcss-flexbugs-fixes "^4.2.1" postcss-import "^12.0.1" postcss-loader "^3.0.0" postcss-preset-env "^6.7.0" postcss-safe-parser "^4.0.2" - regenerator-runtime "^0.13.5" + regenerator-runtime "^0.13.7" sass-loader "^8.0.2" - style-loader "^1.1.3" - terser-webpack-plugin "^2.3.5" - webpack "^4.42.1" + style-loader "^1.2.1" + terser-webpack-plugin "^4.0.0" + webpack "^4.44.1" webpack-assets-manifest "^3.1.1" - webpack-cli "^3.3.11" + webpack-cli "^3.3.12" webpack-sources "^1.4.3" "@sweetalert2/theme-bootstrap-4@^3.1.4": @@ -911,6 +1028,11 @@ resolved "https://registry.npm.taobao.org/@types/json-schema/download/@types/json-schema-7.0.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fjson-schema%2Fdownload%2F%40types%2Fjson-schema-7.0.5.tgz#dcce4430e64b443ba8945f0290fb564ad5bac6dd" integrity sha1-3M5EMOZLRDuolF8CkPtWStW6xt0= +"@types/json-schema@^7.0.5": + version "7.0.6" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.6.tgz#f4c7ec43e81b319a9815115031709f26987891f0" + integrity sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw== + "@types/minimatch@*": version "3.0.3" resolved "https://registry.npm.taobao.org/@types/minimatch/download/@types/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" @@ -1206,6 +1328,11 @@ ajv-keywords@^3.1.0, ajv-keywords@^3.4.1: resolved "https://registry.npm.taobao.org/ajv-keywords/download/ajv-keywords-3.5.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-keywords%2Fdownload%2Fajv-keywords-3.5.1.tgz#b83ca89c5d42d69031f424cad49aada0236c6957" integrity sha1-uDyonF1C1pAx9CTK1JqtoCNsaVc= +ajv-keywords@^3.5.2: + version "3.5.2" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" + integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== + ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.2, ajv@^6.5.5: version "6.12.3" resolved "https://registry.npm.taobao.org/ajv/download/ajv-6.12.3.tgz?cache=0&sync_timestamp=1593876991897&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-6.12.3.tgz#18c5af38a111ddeb4f2697bd78d68abc1cabd706" @@ -1216,6 +1343,16 @@ ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.2, ajv@^6.5.5: json-schema-traverse "^0.4.1" uri-js "^4.2.2" +ajv@^6.12.4: + version "6.12.5" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.5.tgz#19b0e8bae8f476e5ba666300387775fb1a00a4da" + integrity sha512-lRF8RORchjpKG50/WFf8xmg7sgCLFiYNNnqdKflk63whMQcWR5ngGjiSXkL9bjxy6B2npOK2HSMN49jEBMSkag== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + alphanum-sort@^1.0.0: version "1.0.2" resolved "https://registry.npm.taobao.org/alphanum-sort/download/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" @@ -1470,7 +1607,7 @@ babel-loader@^8.1.0: pify "^4.0.1" schema-utils "^2.6.5" -babel-plugin-dynamic-import-node@^2.3.0, babel-plugin-dynamic-import-node@^2.3.3: +babel-plugin-dynamic-import-node@^2.3.3: version "2.3.3" resolved "https://registry.npm.taobao.org/babel-plugin-dynamic-import-node/download/babel-plugin-dynamic-import-node-2.3.3.tgz?cache=0&sync_timestamp=1587496311403&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-dynamic-import-node%2Fdownload%2Fbabel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" integrity sha1-hP2hnJduxcbe/vV/lCez3vZuF6M= @@ -1850,28 +1987,27 @@ cacache@^12.0.2: unique-filename "^1.1.1" y18n "^4.0.0" -cacache@^13.0.1: - version "13.0.1" - resolved "https://registry.npm.taobao.org/cacache/download/cacache-13.0.1.tgz?cache=0&sync_timestamp=1594428006433&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacache%2Fdownload%2Fcacache-13.0.1.tgz#a8000c21697089082f85287a1aec6e382024a71c" - integrity sha1-qAAMIWlwiQgvhSh6GuxuOCAkpxw= +cacache@^15.0.5: + version "15.0.5" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.0.5.tgz#69162833da29170d6732334643c60e005f5f17d0" + integrity sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A== dependencies: - chownr "^1.1.2" - figgy-pudding "^3.5.1" + "@npmcli/move-file" "^1.0.1" + chownr "^2.0.0" fs-minipass "^2.0.0" glob "^7.1.4" - graceful-fs "^4.2.2" infer-owner "^1.0.4" - lru-cache "^5.1.1" - minipass "^3.0.0" + lru-cache "^6.0.0" + minipass "^3.1.1" minipass-collect "^1.0.2" minipass-flush "^1.0.5" minipass-pipeline "^1.2.2" - mkdirp "^0.5.1" - move-concurrently "^1.0.1" - p-map "^3.0.0" + mkdirp "^1.0.3" + p-map "^4.0.0" promise-inflight "^1.0.1" - rimraf "^2.7.1" - ssri "^7.0.0" + rimraf "^3.0.2" + ssri "^8.0.0" + tar "^6.0.2" unique-filename "^1.1.1" cache-base@^1.0.1: @@ -2018,10 +2154,10 @@ chokidar@^2.1.8: optionalDependencies: fsevents "^1.2.7" -chokidar@^3.4.0: - version "3.4.1" - resolved "https://registry.npm.taobao.org/chokidar/download/chokidar-3.4.1.tgz?cache=0&sync_timestamp=1594866429503&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-3.4.1.tgz#e905bdecf10eaa0a0b1db0c664481cc4cbc22ba1" - integrity sha1-6QW97PEOqgoLHbDGZEgcxMvCK6E= +chokidar@^3.4.1: + version "3.4.2" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.2.tgz#38dc8e658dec3809741eb3ef7bb0a47fe424232d" + integrity sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A== dependencies: anymatch "~3.1.1" braces "~3.0.2" @@ -2033,11 +2169,16 @@ chokidar@^3.4.0: optionalDependencies: fsevents "~2.1.2" -chownr@^1.1.1, chownr@^1.1.2: +chownr@^1.1.1: version "1.1.4" resolved "https://registry.npm.taobao.org/chownr/download/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" integrity sha1-b8nXtC0ypYNZYzdmbn0ICE2izGs= +chownr@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" + integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== + chrome-trace-event@^1.0.2: version "1.0.2" resolved "https://registry.npm.taobao.org/chrome-trace-event/download/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" @@ -2189,17 +2330,16 @@ compressible@~2.0.16: dependencies: mime-db ">= 1.43.0 < 2" -compression-webpack-plugin@^3.1.0: - version "3.1.0" - resolved "https://registry.npm.taobao.org/compression-webpack-plugin/download/compression-webpack-plugin-3.1.0.tgz?cache=0&sync_timestamp=1589290507307&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcompression-webpack-plugin%2Fdownload%2Fcompression-webpack-plugin-3.1.0.tgz#9f510172a7b5fae5aad3b670652e8bd7997aeeca" - integrity sha1-n1EBcqe1+uWq07ZwZS6L15l67so= +compression-webpack-plugin@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/compression-webpack-plugin/-/compression-webpack-plugin-4.0.1.tgz#33eda97f1170dd38c5556771de10f34245aa0274" + integrity sha512-0mg6PgwTsUe5LEcUrOu3ob32vraDx2VdbMGAT1PARcOV+UJWDYZFdkSo6RbHoGQ061mmmkC7XpRKOlvwm/gzJQ== dependencies: - cacache "^13.0.1" - find-cache-dir "^3.0.0" - neo-async "^2.5.0" - schema-utils "^2.6.1" - serialize-javascript "^2.1.2" - webpack-sources "^1.0.1" + cacache "^15.0.5" + find-cache-dir "^3.3.1" + schema-utils "^2.7.0" + serialize-javascript "^4.0.0" + webpack-sources "^1.4.3" compression@^1.7.4: version "1.7.4" @@ -2308,10 +2448,10 @@ core-js@^2.4.0: resolved "https://registry.npm.taobao.org/core-js/download/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" integrity sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw= -core-js@^3.6.4: +core-js@^3.6.5: version "3.6.5" - resolved "https://registry.npm.taobao.org/core-js/download/core-js-3.6.5.tgz#7395dc273af37fb2e50e9bd3d9fe841285231d1a" - integrity sha1-c5XcJzrzf7LlDpvT2f6EEoUjHRo= + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.6.5.tgz#7395dc273af37fb2e50e9bd3d9fe841285231d1a" + integrity sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA== core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" @@ -2439,10 +2579,10 @@ css-has-pseudo@^0.10.0: postcss "^7.0.6" postcss-selector-parser "^5.0.0-rc.4" -css-loader@^3.4.2: +css-loader@^3.5.3: version "3.6.0" - resolved "https://registry.npm.taobao.org/css-loader/download/css-loader-3.6.0.tgz?cache=0&sync_timestamp=1592056888388&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-loader%2Fdownload%2Fcss-loader-3.6.0.tgz#2e4b2c7e6e2d27f8c8f28f61bffcd2e6c91ef645" - integrity sha1-Lkssfm4tJ/jI8o9hv/zS5ske9kU= + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-3.6.0.tgz#2e4b2c7e6e2d27f8c8f28f61bffcd2e6c91ef645" + integrity sha512-M5lSukoWi1If8dhQAUCvj4H8vUt3vOnwbQBH9DdTm/s4Ym2B/3dPMtYZeJmq7Q3S3Pa+I94DcZ7pc9bP14cWIQ== dependencies: camelcase "^5.3.1" cssesc "^3.0.0" @@ -3121,7 +3261,7 @@ end-of-stream@^1.0.0, end-of-stream@^1.1.0: dependencies: once "^1.4.0" -enhanced-resolve@^4.1.0, enhanced-resolve@^4.1.1: +enhanced-resolve@^4.1.1, enhanced-resolve@^4.3.0: version "4.3.0" resolved "https://registry.npm.taobao.org/enhanced-resolve/download/enhanced-resolve-4.3.0.tgz?cache=0&sync_timestamp=1594803831426&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fenhanced-resolve%2Fdownload%2Fenhanced-resolve-4.3.0.tgz#3b806f3bfafc1ec7de69551ef93cca46c1704126" integrity sha1-O4BvO/r8HsfeaVUe+TzKRsFwQSY= @@ -3597,7 +3737,7 @@ find-cache-dir@^2.1.0: make-dir "^2.0.0" pkg-dir "^3.0.0" -find-cache-dir@^3.0.0, find-cache-dir@^3.3.1: +find-cache-dir@^3.3.1: version "3.3.1" resolved "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880" integrity sha1-ibM/rUpGcNqpT4Vff74x1thP6IA= @@ -3644,10 +3784,10 @@ flag-icon-css@^3.4.6: resolved "https://registry.npm.taobao.org/flag-icon-css/download/flag-icon-css-3.5.0.tgz#430747d5cb91e60babf85494de99173c16dc7cf2" integrity sha1-QwdH1cuR5gur+FSU3pkXPBbcfPI= -flatted@^2.0.1: - version "2.0.2" - resolved "https://registry.npm.taobao.org/flatted/download/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" - integrity sha1-RXWyHivO50NKqb5mL0t7X5wrUTg= +flatted@^3.0.4: + version "3.0.5" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.0.5.tgz#2db8faa9fc50b48b7c4ba3d6399846538fdab9f6" + integrity sha512-bDEpEsHk2pHn4R+slxblk0N0gK5lQsK2aRwW6LJyIpX3o9qhoVkufDjDvU3fpSJbR7UgOl+icRoR9agYyjzMTw== flatten@^1.0.2: version "1.0.3" @@ -3948,7 +4088,7 @@ good-listener@^1.2.2: dependencies: delegate "^3.1.2" -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2: +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0: version "4.2.4" resolved "https://registry.npm.taobao.org/graceful-fs/download/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" integrity sha1-Ila94U02MpWMRl68ltxGfKB6Kfs= @@ -4666,11 +4806,12 @@ isstream@~0.1.2: resolved "https://registry.npm.taobao.org/isstream/download/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= -jest-worker@^25.4.0: - version "25.5.0" - resolved "https://registry.npm.taobao.org/jest-worker/download/jest-worker-25.5.0.tgz#2611d071b79cea0f43ee57a3d118593ac1547db1" - integrity sha1-JhHQcbec6g9D7lej0RhZOsFUfbE= +jest-worker@^26.3.0: + version "26.3.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.3.0.tgz#7c8a97e4f4364b4f05ed8bca8ca0c24de091871f" + integrity sha512-Vmpn2F6IASefL+DVBhPzI2J9/GJUsqzomdeN+P+dK8/jKxbh8R3BtFnx3FIta7wYlPU62cpJMJQo4kuOowcMnw== dependencies: + "@types/node" "*" merge-stream "^2.0.0" supports-color "^7.0.0" @@ -4726,7 +4867,7 @@ js-base64@^2.1.8: resolved "https://registry.npm.taobao.org/js-tokens/download/js-tokens-4.0.0.tgz?cache=0&sync_timestamp=1586796305651&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-tokens%2Fdownload%2Fjs-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha1-GSA/tZmR35jjoocFDUZHzerzJJk= -js-yaml@^3.13.1: +js-yaml@^3.13.1, js-yaml@^3.14.0: version "3.14.0" resolved "https://registry.npm.taobao.org/js-yaml/download/js-yaml-3.14.0.tgz?cache=0&sync_timestamp=1590172281856&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-yaml%2Fdownload%2Fjs-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" integrity sha1-p6NBcPJqIbsWJCTYray0ETpp5II= @@ -5034,6 +5175,13 @@ lru-cache@^5.1.1: dependencies: yallist "^3.0.2" +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== + dependencies: + yallist "^4.0.0" + magic-string@0.25.1: version "0.25.1" resolved "https://registry.npm.taobao.org/magic-string/download/magic-string-0.25.1.tgz?cache=0&sync_timestamp=1583500499850&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmagic-string%2Fdownload%2Fmagic-string-0.25.1.tgz#b1c248b399cd7485da0fe7385c2fc7011843266e" @@ -5260,6 +5408,14 @@ minipass@^3.0.0, minipass@^3.1.1: dependencies: yallist "^4.0.0" +minizlib@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" + integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== + dependencies: + minipass "^3.0.0" + yallist "^4.0.0" + mississippi@^3.0.0: version "3.0.0" resolved "https://registry.npm.taobao.org/mississippi/download/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" @@ -5291,6 +5447,11 @@ mixin-deep@^1.2.0: dependencies: minimist "^1.2.5" +mkdirp@^1.0.3, mkdirp@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + moment-timezone@^0.5.11: version "0.5.31" resolved "https://registry.npm.taobao.org/moment-timezone/download/moment-timezone-0.5.31.tgz?cache=0&sync_timestamp=1589720126509&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmoment-timezone%2Fdownload%2Fmoment-timezone-0.5.31.tgz#9c40d8c5026f0c7ab46eda3d63e49c155148de05" @@ -5442,10 +5603,10 @@ node-releases@^1.1.58: resolved "https://registry.npm.taobao.org/node-releases/download/node-releases-1.1.59.tgz?cache=0&sync_timestamp=1594212264030&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-releases%2Fdownload%2Fnode-releases-1.1.59.tgz#4d648330641cec704bff10f8e4fe28e453ab8e8e" integrity sha1-TWSDMGQc7HBL/xD45P4o5FOrjo4= -node-sass@^4.13.1: +node-sass@^4.14.1: version "4.14.1" - resolved "https://registry.npm.taobao.org/node-sass/download/node-sass-4.14.1.tgz?cache=0&sync_timestamp=1588636381339&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-sass%2Fdownload%2Fnode-sass-4.14.1.tgz#99c87ec2efb7047ed638fb4c9db7f3a42e2217b5" - integrity sha1-mch+wu+3BH7WOPtMnbfzpC4iF7U= + resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.14.1.tgz#99c87ec2efb7047ed638fb4c9db7f3a42e2217b5" + integrity sha512-sjCuOlvGyCJS40R8BscF5vhVlQjNN069NtQ1gSxyK1u9iqvn6tf7O1R4GNowVZfiZUCRt5MmMs1xd+4V/7Yr0g== dependencies: async-foreach "^0.1.3" chalk "^1.1.1" @@ -5718,13 +5879,20 @@ p-finally@^1.0.0: resolved "https://registry.npm.taobao.org/p-finally/download/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= -p-limit@^2.0.0, p-limit@^2.2.0, p-limit@^2.3.0: +p-limit@^2.0.0, p-limit@^2.2.0: version "2.3.0" resolved "https://registry.npm.taobao.org/p-limit/download/p-limit-2.3.0.tgz?cache=0&sync_timestamp=1594559668746&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" integrity sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE= dependencies: p-try "^2.0.0" +p-limit@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.0.2.tgz#1664e010af3cadc681baafd3e2a437be7b0fb5fe" + integrity sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg== + dependencies: + p-try "^2.0.0" + p-locate@^3.0.0: version "3.0.0" resolved "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" @@ -5744,10 +5912,10 @@ p-map@^2.0.0: resolved "https://registry.npm.taobao.org/p-map/download/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" integrity sha1-MQko/u+cnsxltosXaTAYpmXOoXU= -p-map@^3.0.0: - version "3.0.0" - resolved "https://registry.npm.taobao.org/p-map/download/p-map-3.0.0.tgz#d704d9af8a2ba684e2600d9a215983d4141a979d" - integrity sha1-1wTZr4orpoTiYA2aIVmD1BQal50= +p-map@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== dependencies: aggregate-error "^3.0.0" @@ -6173,10 +6341,10 @@ postcss-env-function@^2.0.2: postcss "^7.0.2" postcss-values-parser "^2.0.0" -postcss-flexbugs-fixes@^4.2.0: +postcss-flexbugs-fixes@^4.2.1: version "4.2.1" - resolved "https://registry.npm.taobao.org/postcss-flexbugs-fixes/download/postcss-flexbugs-fixes-4.2.1.tgz#9218a65249f30897deab1033aced8578562a6690" - integrity sha1-khimUknzCJfeqxAzrO2FeFYqZpA= + resolved "https://registry.yarnpkg.com/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.2.1.tgz#9218a65249f30897deab1033aced8578562a6690" + integrity sha512-9SiofaZ9CWpQWxOwRh1b/r85KD5y7GgvsNt1056k6OYLvWUun0czCvogfJgylC22uJTwW1KzY3Gz65NZRlvoiQ== dependencies: postcss "^7.0.26" @@ -6943,10 +7111,10 @@ regenerator-runtime@^0.11.0: resolved "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" integrity sha1-vgWtf5v30i4Fb5cmzuUBf78Z4uk= -regenerator-runtime@^0.13.4, regenerator-runtime@^0.13.5: - version "0.13.5" - resolved "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697" - integrity sha1-2Hih0JS0MG0QuQlkhLM+vVXiZpc= +regenerator-runtime@^0.13.4, regenerator-runtime@^0.13.7: + version "0.13.7" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" + integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== regenerator-transform@^0.14.2: version "0.14.5" @@ -7127,13 +7295,20 @@ rgba-regex@^1.0.0: resolved "https://registry.npm.taobao.org/rgba-regex/download/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= -rimraf@2, rimraf@^2.5.4, rimraf@^2.6.3, rimraf@^2.7.1: +rimraf@2, rimraf@^2.5.4, rimraf@^2.6.3: version "2.7.1" resolved "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz?cache=0&sync_timestamp=1589682814592&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" integrity sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w= dependencies: glob "^7.1.3" +rimraf@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" resolved "https://registry.npm.taobao.org/ripemd160/download/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" @@ -7215,6 +7390,15 @@ schema-utils@^2.6.1, schema-utils@^2.6.5, schema-utils@^2.6.6, schema-utils@^2.7 ajv "^6.12.2" ajv-keywords "^3.4.1" +schema-utils@^2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" + integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== + dependencies: + "@types/json-schema" "^7.0.5" + ajv "^6.12.4" + ajv-keywords "^3.5.2" + scope-analyzer@^2.0.1: version "2.1.1" resolved "https://registry.npm.taobao.org/scope-analyzer/download/scope-analyzer-2.1.1.tgz#5156c27de084d74bf75af9e9506aaf95c6e73dd6" @@ -7297,11 +7481,6 @@ send@0.17.1: range-parser "~1.2.1" statuses "~1.5.0" -serialize-javascript@^2.1.2: - version "2.1.2" - resolved "https://registry.npm.taobao.org/serialize-javascript/download/serialize-javascript-2.1.2.tgz#ecec53b0e0317bdc95ef76ab7074b7384785fa61" - integrity sha1-7OxTsOAxe9yV73arcHS3OEeF+mE= - serialize-javascript@^3.1.0: version "3.1.0" resolved "https://registry.npm.taobao.org/serialize-javascript/download/serialize-javascript-3.1.0.tgz#8bf3a9170712664ef2561b44b691eafe399214ea" @@ -7309,6 +7488,20 @@ serialize-javascript@^3.1.0: dependencies: randombytes "^2.1.0" +serialize-javascript@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" + integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw== + dependencies: + randombytes "^2.1.0" + +serialize-javascript@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4" + integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA== + dependencies: + randombytes "^2.1.0" + serve-index@^1.9.1: version "1.9.1" resolved "https://registry.npm.taobao.org/serve-index/download/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" @@ -7615,12 +7808,11 @@ ssri@^6.0.1: dependencies: figgy-pudding "^3.5.1" -ssri@^7.0.0: - version "7.1.0" - resolved "https://registry.npm.taobao.org/ssri/download/ssri-7.1.0.tgz#92c241bf6de82365b5c7fb4bd76e975522e1294d" - integrity sha1-ksJBv23oI2W1x/tL126XVSLhKU0= +ssri@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.0.tgz#79ca74e21f8ceaeddfcb4b90143c458b8d988808" + integrity sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA== dependencies: - figgy-pudding "^3.5.1" minipass "^3.1.1" stable@^0.1.8: @@ -7808,10 +8000,10 @@ strip-indent@^1.0.1: dependencies: get-stdin "^4.0.1" -style-loader@^1.1.3: +style-loader@^1.2.1: version "1.2.1" - resolved "https://registry.npm.taobao.org/style-loader/download/style-loader-1.2.1.tgz#c5cbbfbf1170d076cfdd86e0109c5bba114baa1a" - integrity sha1-xcu/vxFw0HbP3YbgEJxbuhFLqho= + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-1.2.1.tgz#c5cbbfbf1170d076cfdd86e0109c5bba114baa1a" + integrity sha512-ByHSTQvHLkWE9Ir5+lGbVOXhxX10fbprhLvdg96wedFZb4NDekDPxVKv5Fwmio+QcMlkkNfuK+5W1peQ5CUhZg== dependencies: loader-utils "^2.0.0" schema-utils "^2.6.6" @@ -7901,6 +8093,18 @@ tar@^2.0.0: fstream "^1.0.12" inherits "2" +tar@^6.0.2: + version "6.0.5" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.0.5.tgz#bde815086e10b39f1dcd298e89d596e1535e200f" + integrity sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg== + dependencies: + chownr "^2.0.0" + fs-minipass "^2.0.0" + minipass "^3.0.0" + minizlib "^2.1.1" + mkdirp "^1.0.3" + yallist "^4.0.0" + tempusdominus-bootstrap-4@^5.1.2: version "5.1.2" resolved "https://registry.npm.taobao.org/tempusdominus-bootstrap-4/download/tempusdominus-bootstrap-4-5.1.2.tgz#3c9906ca6e5d563faa0b81b2fdc6aa79cad9c0be" @@ -7927,22 +8131,22 @@ terser-webpack-plugin@^1.4.3: webpack-sources "^1.4.0" worker-farm "^1.7.0" -terser-webpack-plugin@^2.3.5: - version "2.3.7" - resolved "https://registry.npm.taobao.org/terser-webpack-plugin/download/terser-webpack-plugin-2.3.7.tgz?cache=0&sync_timestamp=1592492222533&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fterser-webpack-plugin%2Fdownload%2Fterser-webpack-plugin-2.3.7.tgz#4910ff5d1a872168cc7fa6cd3749e2b0d60a8a0b" - integrity sha1-SRD/XRqHIWjMf6bNN0nisNYKigs= +terser-webpack-plugin@^4.0.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-4.2.1.tgz#44b88ef4d7443129fb136a68b5ec3e80d63ec471" + integrity sha512-D0IZQNl1ZN/JivFNDFzOeU2Bk2LdQQESHJhKTHsodpUmISkaeRwVFk7gzHzX4OuQwanDGelOxIEsBt1SZ+s6nA== dependencies: - cacache "^13.0.1" + cacache "^15.0.5" find-cache-dir "^3.3.1" - jest-worker "^25.4.0" - p-limit "^2.3.0" - schema-utils "^2.6.6" - serialize-javascript "^3.1.0" + jest-worker "^26.3.0" + p-limit "^3.0.2" + schema-utils "^2.7.1" + serialize-javascript "^5.0.1" source-map "^0.6.1" - terser "^4.6.12" + terser "^5.3.1" webpack-sources "^1.4.3" -terser@^4.1.2, terser@^4.6.12: +terser@^4.1.2: version "4.8.0" resolved "https://registry.npm.taobao.org/terser/download/terser-4.8.0.tgz?cache=0&sync_timestamp=1593953672022&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fterser%2Fdownload%2Fterser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17" integrity sha1-YwVjQ9fHC7KfOvZlhlpG/gOg3xc= @@ -7951,6 +8155,15 @@ terser@^4.1.2, terser@^4.6.12: source-map "~0.6.1" source-map-support "~0.5.12" +terser@^5.3.1: + version "5.3.2" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.3.2.tgz#f4bea90eb92945b2a028ceef79181b9bb586e7af" + integrity sha512-H67sydwBz5jCUA32ZRL319ULu+Su1cAoZnnc+lXnenGRYWyLE3Scgkt8mNoAsMx0h5kdo758zdoS0LG9rYZXDQ== + dependencies: + commander "^2.20.0" + source-map "~0.6.1" + source-map-support "~0.5.12" + through2@^2.0.0, through2@~2.0.3: version "2.0.5" resolved "https://registry.npm.taobao.org/through2/download/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" @@ -8360,15 +8573,15 @@ watchpack-chokidar2@^2.0.0: dependencies: chokidar "^2.1.8" -watchpack@^1.6.1: - version "1.7.2" - resolved "https://registry.npm.taobao.org/watchpack/download/watchpack-1.7.2.tgz#c02e4d4d49913c3e7e122c3325365af9d331e9aa" - integrity sha1-wC5NTUmRPD5+EiwzJTZa+dMx6ao= +watchpack@^1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.4.tgz#6e9da53b3c80bb2d6508188f5b200410866cd30b" + integrity sha512-aWAgTW4MoSJzZPAicljkO1hsi1oKj/RRq/OJQh2PKI2UKL04c2Bs+MBOB+BBABHTXJpf9mCwHN7ANCvYsvY2sg== dependencies: graceful-fs "^4.1.2" neo-async "^2.5.0" optionalDependencies: - chokidar "^3.4.0" + chokidar "^3.4.1" watchpack-chokidar2 "^2.0.0" wbuf@^1.1.0, wbuf@^1.7.3: @@ -8391,10 +8604,10 @@ webpack-assets-manifest@^3.1.1: tapable "^1.0.0" webpack-sources "^1.0.0" -webpack-cli@^3.3.11: +webpack-cli@^3.3.12: version "3.3.12" - resolved "https://registry.npm.taobao.org/webpack-cli/download/webpack-cli-3.3.12.tgz?cache=0&sync_timestamp=1592482314348&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-cli%2Fdownload%2Fwebpack-cli-3.3.12.tgz#94e9ada081453cd0aa609c99e500012fd3ad2d4a" - integrity sha1-lOmtoIFFPNCqYJyZ5QABL9OtLUo= + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.12.tgz#94e9ada081453cd0aa609c99e500012fd3ad2d4a" + integrity sha512-NVWBaz9k839ZH/sinurM+HcDvJOTXwSjYp1ku+5XKeOC03z8v5QitnK/x+lAxGXFyhdayoIf/GOpv85z3/xPag== dependencies: chalk "^2.4.2" cross-spawn "^6.0.5" @@ -8466,7 +8679,7 @@ webpack-log@^2.0.0: ansi-colors "^3.0.0" uuid "^3.3.2" -webpack-sources@^1.0.0, webpack-sources@^1.0.1, webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3: +webpack-sources@^1.0.0, webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3: version "1.4.3" resolved "https://registry.npm.taobao.org/webpack-sources/download/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" integrity sha1-7t2OwLko+/HL/plOItLYkPMwqTM= @@ -8474,10 +8687,10 @@ webpack-sources@^1.0.0, webpack-sources@^1.0.1, webpack-sources@^1.1.0, webpack- source-list-map "^2.0.0" source-map "~0.6.1" -webpack@^4.42.1: - version "4.43.0" - resolved "https://registry.npm.taobao.org/webpack/download/webpack-4.43.0.tgz?cache=0&sync_timestamp=1594294511041&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack%2Fdownload%2Fwebpack-4.43.0.tgz#c48547b11d563224c561dad1172c8aa0b8a678e6" - integrity sha1-xIVHsR1WMiTFYdrRFyyKoLimeOY= +webpack@^4.44.1: + version "4.44.2" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.44.2.tgz#6bfe2b0af055c8b2d1e90ed2cd9363f841266b72" + integrity sha512-6KJVGlCxYdISyurpQ0IPTklv+DULv05rs2hseIXer6D7KrUicRDLFb4IUM1S6LUAKypPM/nSiVSuv8jHu1m3/Q== dependencies: "@webassemblyjs/ast" "1.9.0" "@webassemblyjs/helper-module-context" "1.9.0" @@ -8487,7 +8700,7 @@ webpack@^4.42.1: ajv "^6.10.2" ajv-keywords "^3.4.1" chrome-trace-event "^1.0.2" - enhanced-resolve "^4.1.0" + enhanced-resolve "^4.3.0" eslint-scope "^4.0.3" json-parse-better-errors "^1.0.2" loader-runner "^2.4.0" @@ -8500,7 +8713,7 @@ webpack@^4.42.1: schema-utils "^1.0.0" tapable "^1.1.3" terser-webpack-plugin "^1.4.3" - watchpack "^1.6.1" + watchpack "^1.7.4" webpack-sources "^1.4.1" websocket-driver@0.6.5: From e9ec28738522b22bf3fccdf4e5a44260e7a9b2ee Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 18 Sep 2020 05:44:29 +0000 Subject: [PATCH 0270/2165] chore(deps-dev): bump better_errors from 2.8.0 to 2.8.1 Bumps [better_errors](https://github.com/BetterErrors/better_errors) from 2.8.0 to 2.8.1. - [Release notes](https://github.com/BetterErrors/better_errors/releases) - [Commits](https://github.com/BetterErrors/better_errors/compare/v2.8.0...v2.8.1) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 094ef8540..2c9b33f38 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -87,7 +87,7 @@ GEM ast (2.4.1) awesome_print (1.8.0) bcrypt (3.1.15) - better_errors (2.8.0) + better_errors (2.8.1) coderay (>= 1.0.0) erubi (>= 1.0.0) rack (>= 0.9.0) From 04e90fb5ebe8e88bc7908dc0ed30729ed8d355a8 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 18 Sep 2020 05:45:21 +0000 Subject: [PATCH 0271/2165] chore(deps): bump sentry-raven from 3.0.4 to 3.1.0 Bumps [sentry-raven](https://github.com/getsentry/raven-ruby) from 3.0.4 to 3.1.0. - [Release notes](https://github.com/getsentry/raven-ruby/releases) - [Changelog](https://github.com/getsentry/raven-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/getsentry/raven-ruby/compare/3.0.4...3.1.0) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 094ef8540..921d8dfc3 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -388,7 +388,7 @@ GEM rubyntlm (0.6.2) rubyzip (2.3.0) semantic_range (2.3.0) - sentry-raven (3.0.4) + sentry-raven (3.1.0) faraday (>= 1.0) shellany (0.0.1) sidekiq (6.1.2) From 051fb98f0db8b3a2d3996e40838566cbcf84ce65 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 18 Sep 2020 15:47:40 +0800 Subject: [PATCH 0272/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=A6=82?= =?UTF-8?q?=E6=9E=9C=E4=B8=8B=E8=BD=BD=E6=96=87=E4=BB=B6=E6=9C=AC=E8=BA=AB?= =?UTF-8?q?=20nil=20=E7=9A=84=E6=83=85=E5=86=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/debug_file.rb | 2 ++ app/models/release.rb | 2 ++ 2 files changed, 4 insertions(+) diff --git a/app/models/debug_file.rb b/app/models/debug_file.rb index ab8eecf0e..78c31c2f3 100644 --- a/app/models/debug_file.rb +++ b/app/models/debug_file.rb @@ -21,6 +21,8 @@ def download_filename end def has_file? + return false if file.blank? + File.exist?(file.path) end diff --git a/app/models/release.rb b/app/models/release.rb index 0ab57e10a..c88aeefec 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -103,6 +103,8 @@ def changelog_list(use_default_changelog = true) end def has_file? + return false if file.blank? + File.exist?(file.path) end From f788b71c9a3fe3d9a444a06f21020beae6c57ce5 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 18 Sep 2020 16:53:58 +0800 Subject: [PATCH 0273/2165] =?UTF-8?q?fix:=20=E5=9B=9E=E6=BB=9A=20friendly?= =?UTF-8?q?=5Fid=205.3.0=20=E6=96=B0=E7=89=88=E6=9C=AC=E6=97=A0=E6=B3=95?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E5=88=B0=20id?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 732120950..22c5e8c9d 100644 --- a/Gemfile +++ b/Gemfile @@ -31,7 +31,7 @@ gem 'simple_form', '~> 5.0' # Model ## 生成友好 id -gem 'friendly_id' +gem 'friendly_id', '~> 5.3.0' # NOTE: Do not upgrade to 5.4.0 ## 数据分页 gem 'kaminari' ## 文件上传 diff --git a/Gemfile.lock b/Gemfile.lock index 064b0e313..b4dad73e0 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -140,7 +140,7 @@ GEM ffi (>= 1.0.0) rake formatador (0.2.5) - friendly_id (5.4.0) + friendly_id (5.3.0) activerecord (>= 4.0.0) fugit (1.3.9) et-orbi (~> 1.1, >= 1.1.8) @@ -472,7 +472,7 @@ DEPENDENCIES devise (~> 4.7.2) devise-i18n (~> 1.9.2) dotenv-rails - friendly_id + friendly_id (~> 5.3.0) gitlab_omniauth-ldap (~> 2.1.1) graphql (~> 1.10.10) guard (~> 2.16.2) From f62a98c711eec822324554f5d7fee33d46327157 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 21 Sep 2020 05:48:42 +0000 Subject: [PATCH 0274/2165] chore(deps): bump devise from 4.7.2 to 4.7.3 Bumps [devise](https://github.com/plataformatec/devise) from 4.7.2 to 4.7.3. - [Release notes](https://github.com/plataformatec/devise/releases) - [Changelog](https://github.com/heartcombo/devise/blob/master/CHANGELOG.md) - [Commits](https://github.com/plataformatec/devise/compare/v4.7.2...v4.7.3) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Gemfile b/Gemfile index 22c5e8c9d..81c2daea7 100644 --- a/Gemfile +++ b/Gemfile @@ -42,7 +42,7 @@ gem 'mini_magick' ## HTTP 请求 gem 'http' ## 用户认证 -gem 'devise', '~> 4.7.2' +gem 'devise', '~> 4.7.3' gem 'devise-i18n', '~> 1.9.2' gem 'omniauth', '~> 1.9' gem 'omniauth-google-oauth2', '~> 0.8.0' diff --git a/Gemfile.lock b/Gemfile.lock index b4dad73e0..edc90f85c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -86,7 +86,7 @@ GEM uuidtools (>= 2.1.5, < 2.3.0) ast (2.4.1) awesome_print (1.8.0) - bcrypt (3.1.15) + bcrypt (3.1.16) better_errors (2.8.1) coderay (>= 1.0.0) erubi (>= 1.0.0) @@ -116,7 +116,7 @@ GEM debase-ruby_core_source (>= 0.10.2) debase-ruby_core_source (0.10.9) debug_inspector (0.0.3) - devise (4.7.2) + devise (4.7.3) bcrypt (~> 3.0) orm_adapter (~> 0.1) railties (>= 4.1.0) @@ -438,8 +438,8 @@ GEM unicode-display_width (1.7.0) uuidtools (2.2.0) vmstat (2.3.1) - warden (1.2.8) - rack (>= 2.0.6) + warden (1.2.9) + rack (>= 2.0.9) web-console (4.0.4) actionview (>= 6.0.0) activemodel (>= 6.0.0) @@ -469,7 +469,7 @@ DEPENDENCIES byebug carrierwave debase - devise (~> 4.7.2) + devise (~> 4.7.3) devise-i18n (~> 1.9.2) dotenv-rails friendly_id (~> 5.3.0) From 4b1f90f94bda41957a05d7b560f4cc37d4686f17 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 28 Sep 2020 05:52:00 +0000 Subject: [PATCH 0275/2165] chore(deps): bump sentry-raven from 3.1.0 to 3.1.1 Bumps [sentry-raven](https://github.com/getsentry/raven-ruby) from 3.1.0 to 3.1.1. - [Release notes](https://github.com/getsentry/raven-ruby/releases) - [Changelog](https://github.com/getsentry/sentry-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/getsentry/raven-ruby/compare/3.1.0...3.1.1) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index edc90f85c..2717c67f0 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -388,7 +388,7 @@ GEM rubyntlm (0.6.2) rubyzip (2.3.0) semantic_range (2.3.0) - sentry-raven (3.1.0) + sentry-raven (3.1.1) faraday (>= 1.0) shellany (0.0.1) sidekiq (6.1.2) From d763adbc9d66a04b9a04a3a518983fa521fe7616 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 28 Sep 2020 15:48:12 +0800 Subject: [PATCH 0276/2165] =?UTF-8?q?fix:=20=E7=A3=81=E7=9B=98=E5=8E=BB?= =?UTF-8?q?=E9=87=8D=E9=80=BB=E8=BE=91=E5=88=A4=E6=96=AD=E4=BD=8D=E7=BD=AE?= =?UTF-8?q?=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/admin/system_info_controller.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/controllers/admin/system_info_controller.rb b/app/controllers/admin/system_info_controller.rb index dc3ff8702..91142d4e1 100644 --- a/app/controllers/admin/system_info_controller.rb +++ b/app/controllers/admin/system_info_controller.rb @@ -98,10 +98,11 @@ def set_disks next if (EXCLUDED_MOUNT_OPTIONS & mount_options).any? next if (EXCLUDED_MOUNT_TYPES & [mount.mount_type]).any? - next if obj.any? { |i| i[:mount_path] == disk.path } begin disk = Sys::Filesystem.stat(mount.mount_point) + next if obj.any? { |i| i[:mount_path] == disk.path } + obj.push( bytes_total: disk.bytes_total, bytes_used: disk.bytes_used, From 7183ecefc26b137e2be7b8c8214e29afb11335bc Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Thu, 1 Oct 2020 05:46:22 +0000 Subject: [PATCH 0277/2165] chore(deps): bump simple_form from 5.0.2 to 5.0.3 Bumps [simple_form](https://github.com/plataformatec/simple_form) from 5.0.2 to 5.0.3. - [Release notes](https://github.com/plataformatec/simple_form/releases) - [Changelog](https://github.com/heartcombo/simple_form/blob/master/CHANGELOG.md) - [Commits](https://github.com/plataformatec/simple_form/compare/v5.0.2...v5.0.3) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 2717c67f0..42db76635 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -395,7 +395,7 @@ GEM connection_pool (>= 2.2.2) rack (~> 2.0) redis (>= 4.2.0) - simple_form (5.0.2) + simple_form (5.0.3) actionpack (>= 5.0) activemodel (>= 5.0) slim (4.0.1) From 06b948afd9e0e80d4f37a75679330d658c08a712 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 5 Oct 2020 05:45:00 +0000 Subject: [PATCH 0278/2165] chore(deps-dev): bump better_errors from 2.8.1 to 2.8.3 Bumps [better_errors](https://github.com/BetterErrors/better_errors) from 2.8.1 to 2.8.3. - [Release notes](https://github.com/BetterErrors/better_errors/releases) - [Commits](https://github.com/BetterErrors/better_errors/compare/v2.8.1...v2.8.3) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 2717c67f0..447faf0b1 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -87,7 +87,7 @@ GEM ast (2.4.1) awesome_print (1.8.0) bcrypt (3.1.16) - better_errors (2.8.1) + better_errors (2.8.3) coderay (>= 1.0.0) erubi (>= 1.0.0) rack (>= 0.9.0) From 4a29e0110b944791a9d12fb4c14612c86c158702 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Thu, 8 Oct 2020 05:43:58 +0000 Subject: [PATCH 0279/2165] chore(deps): bump rails from 6.0.3.3 to 6.0.3.4 Bumps [rails](https://github.com/rails/rails) from 6.0.3.3 to 6.0.3.4. - [Release notes](https://github.com/rails/rails/releases) - [Commits](https://github.com/rails/rails/compare/v6.0.3.3...v6.0.3.4) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 100 +++++++++++++++++++++++++-------------------------- 1 file changed, 50 insertions(+), 50 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 2717c67f0..83f685d0e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -11,38 +11,38 @@ GEM remote: https://rubygems.org/ specs: CFPropertyList (3.0.2) - actioncable (6.0.3.3) - actionpack (= 6.0.3.3) + actioncable (6.0.3.4) + actionpack (= 6.0.3.4) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (6.0.3.3) - actionpack (= 6.0.3.3) - activejob (= 6.0.3.3) - activerecord (= 6.0.3.3) - activestorage (= 6.0.3.3) - activesupport (= 6.0.3.3) + actionmailbox (6.0.3.4) + actionpack (= 6.0.3.4) + activejob (= 6.0.3.4) + activerecord (= 6.0.3.4) + activestorage (= 6.0.3.4) + activesupport (= 6.0.3.4) mail (>= 2.7.1) - actionmailer (6.0.3.3) - actionpack (= 6.0.3.3) - actionview (= 6.0.3.3) - activejob (= 6.0.3.3) + actionmailer (6.0.3.4) + actionpack (= 6.0.3.4) + actionview (= 6.0.3.4) + activejob (= 6.0.3.4) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (6.0.3.3) - actionview (= 6.0.3.3) - activesupport (= 6.0.3.3) + actionpack (6.0.3.4) + actionview (= 6.0.3.4) + activesupport (= 6.0.3.4) rack (~> 2.0, >= 2.0.8) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (6.0.3.3) - actionpack (= 6.0.3.3) - activerecord (= 6.0.3.3) - activestorage (= 6.0.3.3) - activesupport (= 6.0.3.3) + actiontext (6.0.3.4) + actionpack (= 6.0.3.4) + activerecord (= 6.0.3.4) + activestorage (= 6.0.3.4) + activesupport (= 6.0.3.4) nokogiri (>= 1.8.5) - actionview (6.0.3.3) - activesupport (= 6.0.3.3) + actionview (6.0.3.4) + activesupport (= 6.0.3.4) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) @@ -52,23 +52,23 @@ GEM activemodel (>= 4.1, < 6.1) case_transform (>= 0.2) jsonapi-renderer (>= 0.1.1.beta1, < 0.3) - activejob (6.0.3.3) - activesupport (= 6.0.3.3) + activejob (6.0.3.4) + activesupport (= 6.0.3.4) globalid (>= 0.3.6) activejob-status (0.1.6) activejob (>= 4.2) activesupport (>= 4.2) - activemodel (6.0.3.3) - activesupport (= 6.0.3.3) - activerecord (6.0.3.3) - activemodel (= 6.0.3.3) - activesupport (= 6.0.3.3) - activestorage (6.0.3.3) - actionpack (= 6.0.3.3) - activejob (= 6.0.3.3) - activerecord (= 6.0.3.3) + activemodel (6.0.3.4) + activesupport (= 6.0.3.4) + activerecord (6.0.3.4) + activemodel (= 6.0.3.4) + activesupport (= 6.0.3.4) + activestorage (6.0.3.4) + actionpack (= 6.0.3.4) + activejob (= 6.0.3.4) + activerecord (= 6.0.3.4) marcel (~> 0.3.1) - activesupport (6.0.3.3) + activesupport (6.0.3.4) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 0.7, < 2) minitest (~> 5.1) @@ -313,20 +313,20 @@ GEM rack rack-test (1.1.0) rack (>= 1.0, < 3) - rails (6.0.3.3) - actioncable (= 6.0.3.3) - actionmailbox (= 6.0.3.3) - actionmailer (= 6.0.3.3) - actionpack (= 6.0.3.3) - actiontext (= 6.0.3.3) - actionview (= 6.0.3.3) - activejob (= 6.0.3.3) - activemodel (= 6.0.3.3) - activerecord (= 6.0.3.3) - activestorage (= 6.0.3.3) - activesupport (= 6.0.3.3) + rails (6.0.3.4) + actioncable (= 6.0.3.4) + actionmailbox (= 6.0.3.4) + actionmailer (= 6.0.3.4) + actionpack (= 6.0.3.4) + actiontext (= 6.0.3.4) + actionview (= 6.0.3.4) + activejob (= 6.0.3.4) + activemodel (= 6.0.3.4) + activerecord (= 6.0.3.4) + activestorage (= 6.0.3.4) + activesupport (= 6.0.3.4) bundler (>= 1.3.0) - railties (= 6.0.3.3) + railties (= 6.0.3.4) sprockets-rails (>= 2.0.0) rails-dom-testing (2.0.3) activesupport (>= 4.2.0) @@ -339,9 +339,9 @@ GEM rails-settings-cached (2.2.0) rails (>= 4.2.0) request_store - railties (6.0.3.3) - actionpack (= 6.0.3.3) - activesupport (= 6.0.3.3) + railties (6.0.3.4) + actionpack (= 6.0.3.4) + activesupport (= 6.0.3.4) method_source rake (>= 0.8.7) thor (>= 0.20.3, < 2.0) From ec119ae35b6fb48840ab303eba5f454bef310e98 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 13 Oct 2020 05:41:00 +0000 Subject: [PATCH 0280/2165] chore(deps-dev): bump rubocop from 0.88.0 to 0.93.1 Bumps [rubocop](https://github.com/rubocop-hq/rubocop) from 0.88.0 to 0.93.1. - [Release notes](https://github.com/rubocop-hq/rubocop/releases) - [Changelog](https://github.com/rubocop-hq/rubocop/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop-hq/rubocop/compare/v0.88.0...v0.93.1) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 2717c67f0..0c7f3853a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -281,7 +281,7 @@ GEM openssl (2.2.0) orm_adapter (0.5.0) parallel (1.19.2) - parser (2.7.1.4) + parser (2.7.2.0) ast (~> 2.4.1) pg (1.2.1) pghero (2.7.2) @@ -351,7 +351,7 @@ GEM rb-inotify (0.10.1) ffi (~> 1.0) redis (4.2.2) - regexp_parser (1.7.1) + regexp_parser (1.8.2) request_store (1.5.0) rack (>= 1.4) responders (3.0.1) @@ -362,17 +362,17 @@ GEM chunky_png (~> 1.0) rqrcode_core (~> 0.1) rqrcode_core (0.1.1) - rubocop (0.88.0) + rubocop (0.93.1) parallel (~> 1.10) - parser (>= 2.7.1.1) + parser (>= 2.7.1.5) rainbow (>= 2.2.2, < 4.0) - regexp_parser (>= 1.7) + regexp_parser (>= 1.8) rexml - rubocop-ast (>= 0.1.0, < 1.0) + rubocop-ast (>= 0.6.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 1.4.0, < 2.0) - rubocop-ast (0.2.0) - parser (>= 2.7.0.1) + rubocop-ast (0.8.0) + parser (>= 2.7.1.5) rubocop-rails (2.7.0) activesupport (>= 4.2.0) rack (>= 1.1) From b80aa189f8c6a4e5f3a7173bc4d310e0d87e37ca Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 13 Oct 2020 14:09:30 +0800 Subject: [PATCH 0281/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E4=BF=9D?= =?UTF-8?q?=E6=8C=81=E4=B8=8A=E4=BC=A0=E5=8C=85=E9=85=8D=E7=BD=AE=E9=94=99?= =?UTF-8?q?=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/initializers/sidekiq_scheduled.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/initializers/sidekiq_scheduled.rb b/config/initializers/sidekiq_scheduled.rb index 208d2d37c..9c925b198 100644 --- a/config/initializers/sidekiq_scheduled.rb +++ b/config/initializers/sidekiq_scheduled.rb @@ -16,9 +16,9 @@ if Sidekiq.server? cron_jobs = {} if Setting.keep_uploads - cron_jobs[:clean_old_releases] = SCHEDULED_JOBS[:clean_old_releases] - else Sidekiq::Cron::Job.destroy('clean_old_releases') + else + cron_jobs[:clean_old_releases] = SCHEDULED_JOBS[:clean_old_releases] end if Setting.demo_mode From 23424c100b9fce4d92b6330f807d65de114a6e8c Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 13 Oct 2020 14:12:51 +0800 Subject: [PATCH 0282/2165] chore: upgrade puma 5.0.2 --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 81c2daea7..522cca8b8 100644 --- a/Gemfile +++ b/Gemfile @@ -6,7 +6,7 @@ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" } ruby '>= 2.3.0', '< 2.8.0' -gem 'puma', '~> 4.3.6' +gem 'puma', '~> 5.0.2' gem 'rails', '~> 6.0.3' gem 'rails-i18n', '~> 6.0.0' gem 'rake', '~> 13.0.1' diff --git a/Gemfile.lock b/Gemfile.lock index ec6980ec8..79b488d99 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -300,7 +300,7 @@ GEM interception (>= 0.5) pry (>= 0.12.0) public_suffix (4.0.3) - puma (4.3.6) + puma (5.0.2) nio4r (~> 2.0) pundit (2.1.0) activesupport (>= 3.0.0) @@ -499,7 +499,7 @@ DEPENDENCIES pry-byebug pry-rails pry-rescue - puma (~> 4.3.6) + puma (~> 5.0.2) pundit (~> 2.1.0) rack-cors (~> 1.1.1) rails (~> 6.0.3) From 1525eb850d33f824c506c4127b65ab5429db3f9f Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Thu, 15 Oct 2020 05:42:39 +0000 Subject: [PATCH 0283/2165] chore(deps): bump rails-settings-cached from 2.2.0 to 2.2.1 Bumps [rails-settings-cached](https://github.com/huacnlee/rails-settings-cached) from 2.2.0 to 2.2.1. - [Release notes](https://github.com/huacnlee/rails-settings-cached/releases) - [Changelog](https://github.com/huacnlee/rails-settings-cached/blob/master/CHANGELOG.md) - [Commits](https://github.com/huacnlee/rails-settings-cached/compare/v2.2.0...v2.2.1) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 79b488d99..e0b69d1ac 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -336,7 +336,7 @@ GEM rails-i18n (6.0.0) i18n (>= 0.7, < 2) railties (>= 6.0.0, < 7) - rails-settings-cached (2.2.0) + rails-settings-cached (2.2.1) rails (>= 4.2.0) request_store railties (6.0.3.4) From d28b92f54642d0f062a51bca3d92025db7802b40 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 20 Oct 2020 15:24:52 +0800 Subject: [PATCH 0284/2165] =?UTF-8?q?style:=20=E9=A6=96=E9=A1=B5=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0=E6=97=B6=E9=97=B4=E7=BA=BF=E4=B8=8D=E5=86=8D=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E5=A4=B4=E9=83=A8=E5=88=86=E9=A1=B5=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/dashboards/_recently_upload.html.slim | 2 -- 1 file changed, 2 deletions(-) diff --git a/app/views/dashboards/_recently_upload.html.slim b/app/views/dashboards/_recently_upload.html.slim index b07762e4f..2875a73e1 100644 --- a/app/views/dashboards/_recently_upload.html.slim +++ b/app/views/dashboards/_recently_upload.html.slim @@ -6,8 +6,6 @@ section h3.card-title i.fas.fa-history | 上传时间线 - .card-tools - = paginate @releases .card-body - if @releases.present? From a57b5652925fa62b4bb7b9e90ce170c188230d45 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Sun, 28 Jun 2020 18:44:51 +0800 Subject: [PATCH 0285/2165] =?UTF-8?q?chore:=20=E4=BD=BF=E7=94=A8=20s6-over?= =?UTF-8?q?lay=20=E4=BD=9C=E4=B8=BA=E5=A4=9A=E8=BF=9B=E7=A8=8B=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E6=9C=8D=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 20 ++++----- config/boot.rb | 7 +++- docker-endpoint.sh | 41 ------------------- docker/rootfs/etc/cont-finish.d/.gitkeep | 0 docker/rootfs/etc/cont-init.d/00-adduser | 16 ++++++++ docker/rootfs/etc/cont-init.d/01-set-timezone | 8 ++++ docker/rootfs/etc/cont-init.d/11-set-crontab | 4 ++ docker/rootfs/etc/cont-init.d/12-logrotate | 14 +++++++ docker/rootfs/etc/cont-init.d/20-init-zealot | 25 +++++++++++ .../rootfs/etc/cont-init.d/25-upgrade-zealot | 4 ++ docker/rootfs/etc/crontabs/clean_tmp | 1 + docker/rootfs/etc/fix-attrs.d/11-crontab-dir | 1 + .../rootfs/etc/fix-attrs.d/20-zealot-app-dir | 3 ++ docker/rootfs/etc/logrotate.conf | 14 +++++++ docker/rootfs/etc/logrotate.d/crond-clean-tmp | 4 ++ docker/rootfs/etc/logrotate.d/sidekiq | 5 +++ docker/rootfs/etc/logrotate.d/zealot | 4 ++ docker/rootfs/etc/services.d/crond/run | 3 ++ docker/rootfs/etc/services.d/sidekiq/run | 5 +++ docker/rootfs/etc/services.d/zealot/run | 5 +++ 20 files changed, 132 insertions(+), 52 deletions(-) delete mode 100755 docker-endpoint.sh create mode 100644 docker/rootfs/etc/cont-finish.d/.gitkeep create mode 100644 docker/rootfs/etc/cont-init.d/00-adduser create mode 100644 docker/rootfs/etc/cont-init.d/01-set-timezone create mode 100644 docker/rootfs/etc/cont-init.d/11-set-crontab create mode 100755 docker/rootfs/etc/cont-init.d/12-logrotate create mode 100644 docker/rootfs/etc/cont-init.d/20-init-zealot create mode 100644 docker/rootfs/etc/cont-init.d/25-upgrade-zealot create mode 100644 docker/rootfs/etc/crontabs/clean_tmp create mode 100644 docker/rootfs/etc/fix-attrs.d/11-crontab-dir create mode 100644 docker/rootfs/etc/fix-attrs.d/20-zealot-app-dir create mode 100644 docker/rootfs/etc/logrotate.conf create mode 100644 docker/rootfs/etc/logrotate.d/crond-clean-tmp create mode 100644 docker/rootfs/etc/logrotate.d/sidekiq create mode 100644 docker/rootfs/etc/logrotate.d/zealot create mode 100644 docker/rootfs/etc/services.d/crond/run create mode 100644 docker/rootfs/etc/services.d/sidekiq/run create mode 100644 docker/rootfs/etc/services.d/zealot/run diff --git a/Dockerfile b/Dockerfile index f9f012262..98613e87d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -47,7 +47,7 @@ RUN SECRET_TOKEN=precompile_placeholder bin/rails assets:precompile && \ cp -r public/ new_public/ # Remove folders not needed in resulting image -RUN rm -rf node_modules tmp/cache spec .browserslistrc babel.config.js \ +RUN rm -rf docker node_modules tmp/cache spec .browserslistrc babel.config.js \ package.json postcss.config.js yarn.lock ################################################################################## @@ -63,9 +63,10 @@ ARG REPLACE_CHINA_MIRROR="true" ARG ORIGINAL_REPO_URL="http://dl-cdn.alpinelinux.org" ARG MIRROR_REPO_URL="https://mirrors.tuna.tsinghua.edu.cn" ARG RUBYGEMS_SOURCE="https://gems.ruby-china.com/" -ARG PACKAGES="tzdata imagemagick imagemagick-dev postgresql-dev postgresql-client openssl openssl-dev" +ARG PACKAGES="tzdata curl shadow logrotate imagemagick imagemagick-dev postgresql-dev postgresql-client openssl openssl-dev" ARG RUBY_GEMS="bundler" ARG APP_ROOT=/app +ARG S6_OVERLAY_VERSION="2.0.0.1" LABEL im.ews.zealot.build-date=$BUILD_DATE \ im.ews.zealot.vcs-ref=$VCS_REF \ @@ -77,11 +78,13 @@ LABEL im.ews.zealot.build-date=$BUILD_DATE \ im.ews.zealot.maintaner="icyleaf " ENV TZ="Asia/Shanghai" \ + PS1="$(whoami)@$(hostname):$(pwd)$ " \ DOCKER_TAG="$TAG" \ BUNDLE_APP_CONFIG="$APP_ROOT/.bundle" \ ZEALOT_VCS_REF="$VCS_REF" \ ZEALOT_VERSION="$ZEALOT_VERSION" \ - RAILS_ENV="production" + RAILS_ENV="production" \ + ENABLE_BOOTSNAP="false" # System dependencies RUN set -ex && \ @@ -92,18 +95,15 @@ RUN set -ex && \ gem sources --add $RUBYGEMS_SOURCE --remove https://rubygems.org/; \ fi && \ apk --update --no-cache add $PACKAGES && \ - cp /usr/share/zoneinfo/$TZ /etc/localtime && \ - echo $TZ > /etc/timezone && \ + curl -L -s https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-amd64.tar.gz | tar xvzf - -C / && \ gem install $RUBY_GEMS && \ - echo "0 */5 * * * /bin/sh -l -c 'find /tmp -type f -mmin +300 -exec rm -f {} \;' >> /var/log/clean_tmp_cron.log 2>&1" > /etc/crontabs/clean_tmp && \ - chmod 0644 /etc/crontabs/clean_tmp && \ - touch /var/log/clean_tmp_cron.log && \ - crontab /etc/crontabs/clean_tmp + adduser -D -u 911 -g zealot -h /app -s /sbin/nologin zealot WORKDIR $APP_ROOT +COPY docker/rootfs / COPY --from=builder $APP_ROOT $APP_ROOT EXPOSE 3000 -ENTRYPOINT [ "./docker-endpoint.sh" ] +ENTRYPOINT ["/init"] diff --git a/config/boot.rb b/config/boot.rb index b9e460cef..b728a1e4b 100644 --- a/config/boot.rb +++ b/config/boot.rb @@ -1,4 +1,9 @@ ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__) require 'bundler/setup' # Set up gems listed in the Gemfile. -require 'bootsnap/setup' # Speed up boot time by caching expensive operations. + +# Broken in docker image, need set it false +# Ref: https://github.com/Shopify/bootsnap/issues/262 +if ENV.fetch('ENABLE_BOOTSNAP', 'true') == 'true' + require 'bootsnap/setup' # Speed up boot time by caching expensive operations. +end diff --git a/docker-endpoint.sh b/docker-endpoint.sh deleted file mode 100755 index 6506c072e..000000000 --- a/docker-endpoint.sh +++ /dev/null @@ -1,41 +0,0 @@ -#!/bin/sh -set -eo pipefail - -cd /app - -# Clear pid if unexpected exception exit -rm -f tmp/pids/.pid - -mkdir -p tmp/pids tmp/cache tmp/uploads tmp/sockets log - -if [ "$1" = 'run_server' ]; then - if [ -d "new_public" ]; then - echo "Zealot updating public ..." - for x in public/*; do - if [ -z $(echo "$x" | grep uploads) ]; then - rm -rf "$x" - fi - done - - for x in new_public/*; do - if [ -z $(echo "$x" | grep uploads) ]; then - mv "$x" "public" - fi - done - - rm -rf new_public - fi - - # Start the server - echo "Zealot server is ready to run ..." - bundle exec puma -C config/puma.rb | tee /app/log/zealot.log -elif [ "$1" = 'run_worker' ]; then - # Start the sidekiq - echo "Zealot worker is wait the comming job ..." - bundle exec sidekiq -C config/sidekiq.yml | tee /app/log/sidekiq.log -elif [ "$1" = 'run_upgrade' ]; then - ./bin/rails zealot:upgrade - exit 0 -fi - -exec "$@" \ No newline at end of file diff --git a/docker/rootfs/etc/cont-finish.d/.gitkeep b/docker/rootfs/etc/cont-finish.d/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/docker/rootfs/etc/cont-init.d/00-adduser b/docker/rootfs/etc/cont-init.d/00-adduser new file mode 100644 index 000000000..09a93fd45 --- /dev/null +++ b/docker/rootfs/etc/cont-init.d/00-adduser @@ -0,0 +1,16 @@ +#!/usr/bin/with-contenv sh + +PUID=${PUID:-911} +PGID=${PGID:-911} + +groupmod -o -g "$PGID" zealot +usermod -o -u "$PUID" zealot + +echo " +------------------------------------- +GID/UID +------------------------------------- +User uid: $(id -u zealot) +User gid: $(id -g zealot) +------------------------------------- +" \ No newline at end of file diff --git a/docker/rootfs/etc/cont-init.d/01-set-timezone b/docker/rootfs/etc/cont-init.d/01-set-timezone new file mode 100644 index 000000000..6dc1d2bc3 --- /dev/null +++ b/docker/rootfs/etc/cont-init.d/01-set-timezone @@ -0,0 +1,8 @@ +#!/usr/bin/with-contenv sh + +TZ=${TZ:-"Asia/Shanghai"} + +if [[ -f "/usr/share/zoneinfo/$TZ" ]]; then + ln -snf "/usr/share/zoneinfo/$TZ" /etc/localtime + echo "$TZ" > /etc/timezone +fi diff --git a/docker/rootfs/etc/cont-init.d/11-set-crontab b/docker/rootfs/etc/cont-init.d/11-set-crontab new file mode 100644 index 000000000..de05d47ac --- /dev/null +++ b/docker/rootfs/etc/cont-init.d/11-set-crontab @@ -0,0 +1,4 @@ +#!/usr/bin/with-contenv sh + +touch /var/log/clean_tmp_cron.log +crontab /etc/crontabs/clean_tmp \ No newline at end of file diff --git a/docker/rootfs/etc/cont-init.d/12-logrotate b/docker/rootfs/etc/cont-init.d/12-logrotate new file mode 100755 index 000000000..9aeb21cb0 --- /dev/null +++ b/docker/rootfs/etc/cont-init.d/12-logrotate @@ -0,0 +1,14 @@ +#!/usr/bin/with-contenv bash + +if [[ ! -f /mnt/config/etc/logrotate.conf ]]; then + if [[ ! -d /mnt/config/etc ]]; then + s6-setuidgid guardian mkdir -p /mnt/config/etc + fi + + s6-setuidgid guardian cp /etc/logrotate.conf /mnt/config/etc/logrotate.conf +fi + +if [[ ! -d /mnt/config/etc/logrotate.d ]]; then + s6-setuidgid guardian mkdir -p /mnt/config/etc/logrotate.d + s6-setuidgid guardian cp -n /etc/logrotate.d/* /mnt/config/etc/logrotate.d/ +fi \ No newline at end of file diff --git a/docker/rootfs/etc/cont-init.d/20-init-zealot b/docker/rootfs/etc/cont-init.d/20-init-zealot new file mode 100644 index 000000000..7bc3bb06b --- /dev/null +++ b/docker/rootfs/etc/cont-init.d/20-init-zealot @@ -0,0 +1,25 @@ +#!/usr/bin/with-contenv sh + +cd /app + +# Clear pid if unexpected exception exit +s6-setuidgid zealot rm -f tmp/pids/.pid +s6-setuidgid zealot mkdir -p tmp/pids tmp/cache tmp/uploads tmp/sockets log + +# Updating assets +if [ -d "new_public" ]; then + echo "Zealot updating public ..." + for x in public/*; do + if [ -z $(echo "$x" | grep uploads) ]; then + s6-setuidgid zealot rm -rf "$x" + fi + done + + for x in new_public/*; do + if [ -z $(echo "$x" | grep uploads) ]; then + s6-setuidgid zealot mv "$x" "public" + fi + done + + s6-setuidgid zealot rm -rf new_public +fi \ No newline at end of file diff --git a/docker/rootfs/etc/cont-init.d/25-upgrade-zealot b/docker/rootfs/etc/cont-init.d/25-upgrade-zealot new file mode 100644 index 000000000..edbfc23ef --- /dev/null +++ b/docker/rootfs/etc/cont-init.d/25-upgrade-zealot @@ -0,0 +1,4 @@ +#!/usr/bin/with-contenv sh + +cd /app && ./bin/rails zealot:upgrade +exit 0 diff --git a/docker/rootfs/etc/crontabs/clean_tmp b/docker/rootfs/etc/crontabs/clean_tmp new file mode 100644 index 000000000..f3422a588 --- /dev/null +++ b/docker/rootfs/etc/crontabs/clean_tmp @@ -0,0 +1 @@ +0 */5 * * * /bin/sh -l -c 'find /tmp -type f -mmin +300 -exec rm -f {} \;' >> /var/log/clean_tmp_cron.log 2>&1 diff --git a/docker/rootfs/etc/fix-attrs.d/11-crontab-dir b/docker/rootfs/etc/fix-attrs.d/11-crontab-dir new file mode 100644 index 000000000..6877159ad --- /dev/null +++ b/docker/rootfs/etc/fix-attrs.d/11-crontab-dir @@ -0,0 +1 @@ +/etc/crontabs/clean_tmp false root:root 0644 0755 \ No newline at end of file diff --git a/docker/rootfs/etc/fix-attrs.d/20-zealot-app-dir b/docker/rootfs/etc/fix-attrs.d/20-zealot-app-dir new file mode 100644 index 000000000..88d03c60c --- /dev/null +++ b/docker/rootfs/etc/fix-attrs.d/20-zealot-app-dir @@ -0,0 +1,3 @@ +/app true zealot,911:911 0644 0755 +/app/bin true zealot,911:911 0755 0755 +/app/vendor true zealot,911:911 0755 0755 \ No newline at end of file diff --git a/docker/rootfs/etc/logrotate.conf b/docker/rootfs/etc/logrotate.conf new file mode 100644 index 000000000..53c34f594 --- /dev/null +++ b/docker/rootfs/etc/logrotate.conf @@ -0,0 +1,14 @@ +weekly +rotate 4 + +create +dateext +compress + +notifempty +nomail +noolddir + +tabooext + .apk-new + +include /etc/logrotate.d \ No newline at end of file diff --git a/docker/rootfs/etc/logrotate.d/crond-clean-tmp b/docker/rootfs/etc/logrotate.d/crond-clean-tmp new file mode 100644 index 000000000..63c571887 --- /dev/null +++ b/docker/rootfs/etc/logrotate.d/crond-clean-tmp @@ -0,0 +1,4 @@ +/var/log/clean_tmp_cron.log { + missingok + notifempty +} \ No newline at end of file diff --git a/docker/rootfs/etc/logrotate.d/sidekiq b/docker/rootfs/etc/logrotate.d/sidekiq new file mode 100644 index 000000000..0cf806536 --- /dev/null +++ b/docker/rootfs/etc/logrotate.d/sidekiq @@ -0,0 +1,5 @@ +/app/log/sidekiq.log { + missingok + notifempty + monthly +} \ No newline at end of file diff --git a/docker/rootfs/etc/logrotate.d/zealot b/docker/rootfs/etc/logrotate.d/zealot new file mode 100644 index 000000000..4ec661881 --- /dev/null +++ b/docker/rootfs/etc/logrotate.d/zealot @@ -0,0 +1,4 @@ +/app/log/zealot.log { + missingok + notifempty +} \ No newline at end of file diff --git a/docker/rootfs/etc/services.d/crond/run b/docker/rootfs/etc/services.d/crond/run new file mode 100644 index 000000000..1548a952b --- /dev/null +++ b/docker/rootfs/etc/services.d/crond/run @@ -0,0 +1,3 @@ +#!/usr/bin/execlineb -P + +/usr/sbin/crond -fS \ No newline at end of file diff --git a/docker/rootfs/etc/services.d/sidekiq/run b/docker/rootfs/etc/services.d/sidekiq/run new file mode 100644 index 000000000..6c7e477f0 --- /dev/null +++ b/docker/rootfs/etc/services.d/sidekiq/run @@ -0,0 +1,5 @@ +#!/usr/bin/with-contenv sh + +echo "Starting Zealot Worker" +cd /app +bundle exec sidekiq -C config/sidekiq.yml | tee /app/log/sidekiq.log diff --git a/docker/rootfs/etc/services.d/zealot/run b/docker/rootfs/etc/services.d/zealot/run new file mode 100644 index 000000000..f2bf54d76 --- /dev/null +++ b/docker/rootfs/etc/services.d/zealot/run @@ -0,0 +1,5 @@ +#!/usr/bin/with-contenv sh + +echo "Starting Zealot" +cd /app +bundle exec puma -C config/puma.rb | tee /app/log/zealot.log \ No newline at end of file From a5cf9447c9e70b4248486d3c43dcc3a7db9b6125 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 13 Jul 2020 17:51:27 +0800 Subject: [PATCH 0286/2165] =?UTF-8?q?refactor(docker):=20=E6=9A=82?= =?UTF-8?q?=E4=B8=8D=E6=94=AF=E6=8C=81=E8=87=AA=E5=AE=9A=E4=B9=89=20uid=20?= =?UTF-8?q?=E5=92=8C=20gid?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 14 ++++++++++---- docker/rootfs/etc/cont-init.d/00-adduser | 16 ---------------- docker/rootfs/etc/cont-init.d/12-logrotate | 8 ++++---- docker/rootfs/etc/cont-init.d/20-init-zealot | 10 +++++----- docker/rootfs/etc/fix-attrs.d/20-zealot-app-dir | 3 --- 5 files changed, 19 insertions(+), 32 deletions(-) delete mode 100644 docker/rootfs/etc/cont-init.d/00-adduser delete mode 100644 docker/rootfs/etc/fix-attrs.d/20-zealot-app-dir diff --git a/Dockerfile b/Dockerfile index 98613e87d..7d072711a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -39,7 +39,8 @@ RUN yarn install # Ruby dependencies COPY Gemfile Gemfile.lock ./ RUN bundle config --global frozen 1 && \ - bundle install --path=vendor/bundle --without development test \ + bundle config set without 'development test' && \ + bundle install --path=vendor/bundle \ --jobs `expr $(cat /proc/cpuinfo | grep -c "cpu cores") - 1` --retry 3 COPY . $APP_ROOT @@ -63,7 +64,7 @@ ARG REPLACE_CHINA_MIRROR="true" ARG ORIGINAL_REPO_URL="http://dl-cdn.alpinelinux.org" ARG MIRROR_REPO_URL="https://mirrors.tuna.tsinghua.edu.cn" ARG RUBYGEMS_SOURCE="https://gems.ruby-china.com/" -ARG PACKAGES="tzdata curl shadow logrotate imagemagick imagemagick-dev postgresql-dev postgresql-client openssl openssl-dev" +ARG PACKAGES="tzdata curl logrotate imagemagick imagemagick-dev postgresql-dev postgresql-client openssl openssl-dev" ARG RUBY_GEMS="bundler" ARG APP_ROOT=/app ARG S6_OVERLAY_VERSION="2.0.0.1" @@ -96,14 +97,19 @@ RUN set -ex && \ fi && \ apk --update --no-cache add $PACKAGES && \ curl -L -s https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-amd64.tar.gz | tar xvzf - -C / && \ - gem install $RUBY_GEMS && \ - adduser -D -u 911 -g zealot -h /app -s /sbin/nologin zealot + gem install $RUBY_GEMS WORKDIR $APP_ROOT COPY docker/rootfs / COPY --from=builder $APP_ROOT $APP_ROOT +# Remove unnecessary files +RUN cd /app/vendor/bundle/ruby/2.6.0 && \ + rm -rf cache/*.gem && \ + find gems/ -name "*.c" -delete && \ + find gems/ -name "*.o" -delete + EXPOSE 3000 ENTRYPOINT ["/init"] diff --git a/docker/rootfs/etc/cont-init.d/00-adduser b/docker/rootfs/etc/cont-init.d/00-adduser deleted file mode 100644 index 09a93fd45..000000000 --- a/docker/rootfs/etc/cont-init.d/00-adduser +++ /dev/null @@ -1,16 +0,0 @@ -#!/usr/bin/with-contenv sh - -PUID=${PUID:-911} -PGID=${PGID:-911} - -groupmod -o -g "$PGID" zealot -usermod -o -u "$PUID" zealot - -echo " -------------------------------------- -GID/UID -------------------------------------- -User uid: $(id -u zealot) -User gid: $(id -g zealot) -------------------------------------- -" \ No newline at end of file diff --git a/docker/rootfs/etc/cont-init.d/12-logrotate b/docker/rootfs/etc/cont-init.d/12-logrotate index 9aeb21cb0..c3641db1c 100755 --- a/docker/rootfs/etc/cont-init.d/12-logrotate +++ b/docker/rootfs/etc/cont-init.d/12-logrotate @@ -2,13 +2,13 @@ if [[ ! -f /mnt/config/etc/logrotate.conf ]]; then if [[ ! -d /mnt/config/etc ]]; then - s6-setuidgid guardian mkdir -p /mnt/config/etc + mkdir -p /mnt/config/etc fi - s6-setuidgid guardian cp /etc/logrotate.conf /mnt/config/etc/logrotate.conf + cp /etc/logrotate.conf /mnt/config/etc/logrotate.conf fi if [[ ! -d /mnt/config/etc/logrotate.d ]]; then - s6-setuidgid guardian mkdir -p /mnt/config/etc/logrotate.d - s6-setuidgid guardian cp -n /etc/logrotate.d/* /mnt/config/etc/logrotate.d/ + mkdir -p /mnt/config/etc/logrotate.d + cp -n /etc/logrotate.d/* /mnt/config/etc/logrotate.d/ fi \ No newline at end of file diff --git a/docker/rootfs/etc/cont-init.d/20-init-zealot b/docker/rootfs/etc/cont-init.d/20-init-zealot index 7bc3bb06b..0887a4183 100644 --- a/docker/rootfs/etc/cont-init.d/20-init-zealot +++ b/docker/rootfs/etc/cont-init.d/20-init-zealot @@ -3,23 +3,23 @@ cd /app # Clear pid if unexpected exception exit -s6-setuidgid zealot rm -f tmp/pids/.pid -s6-setuidgid zealot mkdir -p tmp/pids tmp/cache tmp/uploads tmp/sockets log +rm -f tmp/pids/.pid +mkdir -p tmp/pids tmp/cache tmp/uploads tmp/sockets log # Updating assets if [ -d "new_public" ]; then echo "Zealot updating public ..." for x in public/*; do if [ -z $(echo "$x" | grep uploads) ]; then - s6-setuidgid zealot rm -rf "$x" + rm -rf "$x" fi done for x in new_public/*; do if [ -z $(echo "$x" | grep uploads) ]; then - s6-setuidgid zealot mv "$x" "public" + mv "$x" "public" fi done - s6-setuidgid zealot rm -rf new_public + rm -rf new_public fi \ No newline at end of file diff --git a/docker/rootfs/etc/fix-attrs.d/20-zealot-app-dir b/docker/rootfs/etc/fix-attrs.d/20-zealot-app-dir deleted file mode 100644 index 88d03c60c..000000000 --- a/docker/rootfs/etc/fix-attrs.d/20-zealot-app-dir +++ /dev/null @@ -1,3 +0,0 @@ -/app true zealot,911:911 0644 0755 -/app/bin true zealot,911:911 0755 0755 -/app/vendor true zealot,911:911 0755 0755 \ No newline at end of file From 2256d48ffcc3c5a7c1be38ead2641cf80126a31d Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 24 Jul 2020 11:00:43 +0800 Subject: [PATCH 0287/2165] =?UTF-8?q?fix:=20=E8=A7=A3=E5=86=B3=20Initializ?= =?UTF-8?q?ation=20autoloaded=20the=20constant=20Setting=20=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/initializers/0_hosts.rb | 32 ++++++++++++++------------- config/initializers/sentry.rb | 40 ++++++++++++++++++---------------- 2 files changed, 38 insertions(+), 34 deletions(-) diff --git a/config/initializers/0_hosts.rb b/config/initializers/0_hosts.rb index 18329eb44..bb41c139a 100644 --- a/config/initializers/0_hosts.rb +++ b/config/initializers/0_hosts.rb @@ -1,21 +1,23 @@ # frozen_string_literal: true -https = Setting.site_https -host = Setting.site_domain +Rails.configuration.to_prepare do + Rails.application.configure do + https = Setting.site_https + host = Setting.site_domain -Rails.application.configure do - url_options = { - host: host, - protocol: https ? 'https://' : 'http://', - trailing_slash: false - } + url_options = { + host: host, + protocol: https ? 'https://' : 'http://', + trailing_slash: false + } - config.x.url_options = url_options - config.x.use_https = https - config.x.local_domain = host - config.x.host = "#{url_options[:protocol]}#{url_options[:host]}" + config.x.url_options = url_options + config.x.use_https = https + config.x.local_domain = host + config.x.host = "#{url_options[:protocol]}#{url_options[:host]}" - config.action_mailer.default_url_options = url_options -end + config.action_mailer.default_url_options = url_options + end -Rails.application.routes.default_url_options = Rails.configuration.x.url_options + Rails.application.routes.default_url_options = Rails.configuration.x.url_options +end \ No newline at end of file diff --git a/config/initializers/sentry.rb b/config/initializers/sentry.rb index 41dd9c0b9..bd36f12ef 100644 --- a/config/initializers/sentry.rb +++ b/config/initializers/sentry.rb @@ -2,27 +2,29 @@ # 默认开启 Sentry,如果不想使用设置 ZEALOT_SENTRY_DISABLE=1 if ENV['ZEALOT_SENTRY_DISABLE'].blank? - Raven.configure do |config| - config.silence_ready = true - config.dsn = ENV['ZEALOT_SENTRY_DNS'] || 'https://133aefa9f52448a1a7900ba9d02f93e1@sentry.io/1878137' - config.excluded_exceptions += [ - 'ActionController::RoutingError', - 'ActiveRecord::RecordNotFound', - 'ActiveRecord::RecordInvalid' - ] - config.sanitize_fields = Rails.application.config.filter_parameters.map(&:to_s) - config.sanitize_fields << 'token' + Rails.configuration.to_prepare do + Raven.configure do |config| + config.silence_ready = true + config.dsn = ENV['ZEALOT_SENTRY_DNS'] || 'https://133aefa9f52448a1a7900ba9d02f93e1@sentry.io/1878137' + config.excluded_exceptions += [ + 'ActionController::RoutingError', + 'ActiveRecord::RecordNotFound', + 'ActiveRecord::RecordInvalid' + ] + config.sanitize_fields = Rails.application.config.filter_parameters.map(&:to_s) + config.sanitize_fields << 'token' - version = Setting.version - vcs_ref = Setting.vcs_ref - version = "#{version}-#{vcs_ref}" if vcs_ref.present? - config.release = version + version = Setting.version + vcs_ref = Setting.vcs_ref + version = "#{version}-#{vcs_ref}" if vcs_ref.present? + config.release = version - if vcs_ref.present? - config.tags = { - docker: true, - docker_tag: ENV['DOCKER_TAG'] - } + if vcs_ref.present? + config.tags = { + docker: true, + docker_tag: ENV['DOCKER_TAG'] + } + end end end end From 2a8bdb23ef6ad0b5c488489b77d9c1eebf98d572 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 24 Jul 2020 11:02:26 +0800 Subject: [PATCH 0288/2165] =?UTF-8?q?refactor:=20=E6=98=BE=E6=80=A7?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E5=BC=82=E6=AD=A5=E4=BB=BB=E5=8A=A1=E6=98=AF?= =?UTF-8?q?=20sidekiq?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/application.rb | 21 +++++++++------------ config/environment.rb | 2 ++ config/environments/production.rb | 5 ++--- config/spring.rb | 2 ++ 4 files changed, 15 insertions(+), 15 deletions(-) diff --git a/config/application.rb b/config/application.rb index f53450087..1beecd04b 100644 --- a/config/application.rb +++ b/config/application.rb @@ -26,12 +26,6 @@ class Application < Rails::Application # Initialize configuration defaults for originally generated Rails version. config.load_defaults 6.0 - # config.autoloader = :classic - - # Settings in config/environments/* take precedence over those specified here. - # Application configuration can go into files in config/initializers - # -- all .rb files in that directory are automatically loaded after loading - # Set default timezone config.time_zone = ENV['TIME_ZONE'] || 'Beijing' config.active_record.default_timezone = :local @@ -80,16 +74,19 @@ class Application < Rails::Application # config.assets.enabled = false # config.assets.compile = false + # Use a real queuing backend for Active Job (and separate queues per environment) + config.active_job.queue_adapter = :sidekiq + ################################################################ # Auto load path - config.autoload_paths += %W( - #{config.root}/lib - ) + config.autoload_paths += [ + Rails.root.join('lib') + ] - config.eager_load_paths += %W( - #{config.root}/lib - ) + # config.eager_load_paths += %W( + # #{config.root}/lib + # ) # Don't generate system test files. config.generators.system_tests = nil diff --git a/config/environment.rb b/config/environment.rb index 426333bb4..d5abe5580 100644 --- a/config/environment.rb +++ b/config/environment.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + # Load the Rails application. require_relative 'application' diff --git a/config/environments/production.rb b/config/environments/production.rb index 594a7bd03..0c427e746 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -66,14 +66,13 @@ # Prepend all log lines with the following tags. config.log_tags = [:request_id] - # Use a real queuing backend for Active Job (and separate queues per environment) - # config.active_job.queue_adapter = :resque - # config.active_job.queue_name_prefix = "zealot_#{Rails.env}" config.action_mailer.perform_caching = false # Ignore bad email addresses and do not raise email delivery errors. # Set this to true and configure the email server for immediate delivery to raise delivery errors. config.action_mailer.raise_delivery_errors = false + # config.action_mailer.default_url_options = { host: Setting.site_domain } + # Enable locale fallbacks for I18n (makes lookups for any locale fall back to # the I18n.default_locale when a translation cannot be found). diff --git a/config/spring.rb b/config/spring.rb index 8f6432bf6..93cd0ff8c 100644 --- a/config/spring.rb +++ b/config/spring.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + Spring.watch( '.ruby-version', '.rbenv-vars', From 41c08d94a2c47a2ba460e6e26f64344e9eb5b0a1 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 24 Jul 2020 14:58:40 +0800 Subject: [PATCH 0289/2165] =?UTF-8?q?fix:=20=E8=A7=A3=E5=86=B3=20bootstrap?= =?UTF-8?q?=20=E5=9C=A8=20docker=20=E6=97=A0=E6=B3=95=E5=BC=95=E7=94=A8?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98=20(#235)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 3 +-- Gemfile | 2 +- Gemfile.lock | 2 +- config/application.rb | 2 +- config/boot.rb | 9 +++------ config/webpacker.yml | 6 +----- docker/rootfs/etc/cont-init.d/20-init-zealot | 2 +- docker/rootfs/etc/services.d/zealot/run | 6 ++++++ 8 files changed, 15 insertions(+), 17 deletions(-) diff --git a/Dockerfile b/Dockerfile index 7d072711a..4b760989c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -84,8 +84,7 @@ ENV TZ="Asia/Shanghai" \ BUNDLE_APP_CONFIG="$APP_ROOT/.bundle" \ ZEALOT_VCS_REF="$VCS_REF" \ ZEALOT_VERSION="$ZEALOT_VERSION" \ - RAILS_ENV="production" \ - ENABLE_BOOTSNAP="false" + RAILS_ENV="production" # System dependencies RUN set -ex && \ diff --git a/Gemfile b/Gemfile index 522cca8b8..d909bae7f 100644 --- a/Gemfile +++ b/Gemfile @@ -83,7 +83,7 @@ gem 'app-info', '~> 2.2.0' gem 'rails-settings-cached', '~> 2.2' # Reduces boot times through caching; required in config/boot.rb -gem 'bootsnap', '>= 1.4.4', require: false +gem 'bootsnap', '>= 1.4.7', require: false group :development do # 调试控制台 diff --git a/Gemfile.lock b/Gemfile.lock index e0b69d1ac..b816226f7 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -465,7 +465,7 @@ DEPENDENCIES awesome_print better_errors binding_of_caller - bootsnap (>= 1.4.4) + bootsnap (>= 1.4.7) byebug carrierwave debase diff --git a/config/application.rb b/config/application.rb index 1beecd04b..f59a9f7d4 100644 --- a/config/application.rb +++ b/config/application.rb @@ -92,6 +92,6 @@ class Application < Rails::Application config.generators.system_tests = nil # Disable yarn check(this must disable with docker) - config.webpacker.check_yarn_integrity = false + # config.webpacker.check_yarn_integrity = false end end diff --git a/config/boot.rb b/config/boot.rb index b728a1e4b..c04863fa7 100644 --- a/config/boot.rb +++ b/config/boot.rb @@ -1,9 +1,6 @@ +# frozen_string_literal: true + ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../Gemfile', __dir__) require 'bundler/setup' # Set up gems listed in the Gemfile. - -# Broken in docker image, need set it false -# Ref: https://github.com/Shopify/bootsnap/issues/262 -if ENV.fetch('ENABLE_BOOTSNAP', 'true') == 'true' - require 'bootsnap/setup' # Speed up boot time by caching expensive operations. -end +require 'bootsnap/setup' # Speed up boot time by caching expensive operations. diff --git a/config/webpacker.yml b/config/webpacker.yml index 7e38f01b7..a60a592ed 100644 --- a/config/webpacker.yml +++ b/config/webpacker.yml @@ -6,7 +6,6 @@ default: &default public_root_path: public public_output_path: packs cache_path: tmp/cache/webpacker - check_yarn_integrity: false webpack_compile_output: false # Additional paths webpack should lookup modules @@ -17,7 +16,7 @@ default: &default cache_manifest: false # Extract and emit a css file - extract_css: false + extract_css: true static_assets_extensions: - .jpg @@ -53,9 +52,6 @@ development: <<: *default compile: true - # Verifies that correct packages and versions are installed by inspecting package.json, yarn.lock, and node_modules - check_yarn_integrity: true - # Reference: https://webpack.js.org/configuration/dev-server/ dev_server: https: false diff --git a/docker/rootfs/etc/cont-init.d/20-init-zealot b/docker/rootfs/etc/cont-init.d/20-init-zealot index 0887a4183..d11a92177 100644 --- a/docker/rootfs/etc/cont-init.d/20-init-zealot +++ b/docker/rootfs/etc/cont-init.d/20-init-zealot @@ -11,7 +11,7 @@ if [ -d "new_public" ]; then echo "Zealot updating public ..." for x in public/*; do if [ -z $(echo "$x" | grep uploads) ]; then - rm -rf "$x" + rm -rf "$x" > /dev/null fi done diff --git a/docker/rootfs/etc/services.d/zealot/run b/docker/rootfs/etc/services.d/zealot/run index f2bf54d76..d7fe6a6bd 100644 --- a/docker/rootfs/etc/services.d/zealot/run +++ b/docker/rootfs/etc/services.d/zealot/run @@ -1,5 +1,11 @@ #!/usr/bin/with-contenv sh +echo "========================================" +echo " Zealot had change run-way inside, if fail to run make sure " +echo " to upgrade the zealot-docker repospitory and re-generate the docker-compose.yml!" +echo "========================================" +echo + echo "Starting Zealot" cd /app bundle exec puma -C config/puma.rb | tee /app/log/zealot.log \ No newline at end of file From 6991df19d797ab6a2f97321fbda07f2500acb3bd Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 24 Jul 2020 18:38:27 +0800 Subject: [PATCH 0290/2165] =?UTF-8?q?feat:=20ruby=20=E5=8D=87=E7=BA=A7=202?= =?UTF-8?q?.7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 17 ++++++++--------- Gemfile.lock | 2 +- config/application.rb | 4 ++++ config/environments/production.rb | 4 ---- 4 files changed, 13 insertions(+), 14 deletions(-) diff --git a/Dockerfile b/Dockerfile index 4b760989c..7f0edfaa0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM ruby:2.6-alpine as builder +FROM ruby:2.7-alpine as builder ARG BUILD_PACKAGES="build-base libxml2 libxslt git" ARG DEV_PACKAGES="libxml2-dev libxslt-dev yaml-dev imagemagick-dev postgresql-dev nodejs npm yarn" @@ -39,6 +39,7 @@ RUN yarn install # Ruby dependencies COPY Gemfile Gemfile.lock ./ RUN bundle config --global frozen 1 && \ + bundle config set deployment 'true' && \ bundle config set without 'development test' && \ bundle install --path=vendor/bundle \ --jobs `expr $(cat /proc/cpuinfo | grep -c "cpu cores") - 1` --retry 3 @@ -49,11 +50,15 @@ RUN SECRET_TOKEN=precompile_placeholder bin/rails assets:precompile && \ # Remove folders not needed in resulting image RUN rm -rf docker node_modules tmp/cache spec .browserslistrc babel.config.js \ - package.json postcss.config.js yarn.lock + package.json postcss.config.js yarn.lock && \ + cd /app/vendor/bundle/ruby/2.7.0 && \ + rm -rf cache/*.gem && \ + find gems/ -name "*.c" -delete && \ + find gems/ -name "*.o" -delete ################################################################################## -FROM ruby:2.6-alpine +FROM ruby:2.7-alpine ARG BUILD_DATE ARG VCS_REF @@ -103,12 +108,6 @@ WORKDIR $APP_ROOT COPY docker/rootfs / COPY --from=builder $APP_ROOT $APP_ROOT -# Remove unnecessary files -RUN cd /app/vendor/bundle/ruby/2.6.0 && \ - rm -rf cache/*.gem && \ - find gems/ -name "*.c" -delete && \ - find gems/ -name "*.o" -delete - EXPOSE 3000 ENTRYPOINT ["/init"] diff --git a/Gemfile.lock b/Gemfile.lock index b816226f7..663ec5939 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -530,4 +530,4 @@ RUBY VERSION ruby 2.6.5p114 BUNDLED WITH - 2.1.2 + 2.1.4 diff --git a/config/application.rb b/config/application.rb index f59a9f7d4..78a678c07 100644 --- a/config/application.rb +++ b/config/application.rb @@ -36,6 +36,10 @@ class Application < Rails::Application config.i18n.default_locale = locale.to_sym config.i18n.available_locales = [locale, :en] + # Enable locale fallbacks for I18n (makes lookups for any locale fall back to + # the I18n.default_locale when a translation cannot be found). + config.i18n.fallbacks = [I18n.default_locale] + # Log to STDOUT because Docker expects all processes to log here. You could # the framework and any gems in your application. # or a third party host such as Loggly, etc.. diff --git a/config/environments/production.rb b/config/environments/production.rb index 0c427e746..6ea65945b 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -74,10 +74,6 @@ # config.action_mailer.default_url_options = { host: Setting.site_domain } - # Enable locale fallbacks for I18n (makes lookups for any locale fall back to - # the I18n.default_locale when a translation cannot be found). - config.i18n.fallbacks = [I18n.default_locale] - # Send deprecation notices to registered listeners. config.active_support.deprecation = :notify From 5adc5cc6bdb234dae6c3be16dfe2a4df8779111a Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 27 Jul 2020 14:40:24 +0800 Subject: [PATCH 0291/2165] =?UTF-8?q?fix:=20Sentry=20=E6=8A=A5=E9=94=99?= =?UTF-8?q?=E5=BF=BD=E7=95=A5=E4=B8=AA=E5=88=AB=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/initializers/sentry.rb | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/config/initializers/sentry.rb b/config/initializers/sentry.rb index bd36f12ef..9851587d6 100644 --- a/config/initializers/sentry.rb +++ b/config/initializers/sentry.rb @@ -9,17 +9,18 @@ config.excluded_exceptions += [ 'ActionController::RoutingError', 'ActiveRecord::RecordNotFound', - 'ActiveRecord::RecordInvalid' + 'ActiveRecord::RecordInvalid', + 'ActiveRecord::NoDatabaseError', + 'PG::ConnectionBad', ] config.sanitize_fields = Rails.application.config.filter_parameters.map(&:to_s) config.sanitize_fields << 'token' version = Setting.version vcs_ref = Setting.vcs_ref - version = "#{version}-#{vcs_ref}" if vcs_ref.present? - config.release = version if vcs_ref.present? + config.release = "#{version}-#{vcs_ref}" config.tags = { docker: true, docker_tag: ENV['DOCKER_TAG'] From 750b9d13c1aab5815de42cf9e22e753ee9aa1f0a Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 20 Oct 2020 19:26:38 +0800 Subject: [PATCH 0292/2165] =?UTF-8?q?chore:=20docker=20=E5=AE=B9=E5=99=A8?= =?UTF-8?q?=E8=BD=AF=E9=93=BE=E6=8E=A5=20rails=20=E5=91=BD=E4=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 7f0edfaa0..8a7286558 100644 --- a/Dockerfile +++ b/Dockerfile @@ -72,7 +72,7 @@ ARG RUBYGEMS_SOURCE="https://gems.ruby-china.com/" ARG PACKAGES="tzdata curl logrotate imagemagick imagemagick-dev postgresql-dev postgresql-client openssl openssl-dev" ARG RUBY_GEMS="bundler" ARG APP_ROOT=/app -ARG S6_OVERLAY_VERSION="2.0.0.1" +ARG S6_OVERLAY_VERSION="2.1.0.1" LABEL im.ews.zealot.build-date=$BUILD_DATE \ im.ews.zealot.vcs-ref=$VCS_REF \ @@ -108,6 +108,8 @@ WORKDIR $APP_ROOT COPY docker/rootfs / COPY --from=builder $APP_ROOT $APP_ROOT +RUN ln -s /app/bin/rails /usr/local/bin/ + EXPOSE 3000 ENTRYPOINT ["/init"] From e907e3800203a659b92851023d0420d95522200e Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 20 Oct 2020 11:43:00 +0000 Subject: [PATCH 0293/2165] chore(deps): bump rails-settings-cached from 2.2.1 to 2.3.5 Bumps [rails-settings-cached](https://github.com/huacnlee/rails-settings-cached) from 2.2.1 to 2.3.5. - [Release notes](https://github.com/huacnlee/rails-settings-cached/releases) - [Changelog](https://github.com/huacnlee/rails-settings-cached/blob/master/CHANGELOG.md) - [Commits](https://github.com/huacnlee/rails-settings-cached/compare/v2.2.1...v2.3.5) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index d909bae7f..29cd17e8a 100644 --- a/Gemfile +++ b/Gemfile @@ -80,7 +80,7 @@ gem 'webpacker', '~> 5.2' gem 'app-info', '~> 2.2.0' # Mobile config -gem 'rails-settings-cached', '~> 2.2' +gem 'rails-settings-cached', '~> 2.3' # Reduces boot times through caching; required in config/boot.rb gem 'bootsnap', '>= 1.4.7', require: false diff --git a/Gemfile.lock b/Gemfile.lock index 663ec5939..1b16d2acc 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -336,7 +336,7 @@ GEM rails-i18n (6.0.0) i18n (>= 0.7, < 2) railties (>= 6.0.0, < 7) - rails-settings-cached (2.2.1) + rails-settings-cached (2.3.5) rails (>= 4.2.0) request_store railties (6.0.3.4) @@ -504,7 +504,7 @@ DEPENDENCIES rack-cors (~> 1.1.1) rails (~> 6.0.3) rails-i18n (~> 6.0.0) - rails-settings-cached (~> 2.2) + rails-settings-cached (~> 2.3) rake (~> 13.0.1) redis (~> 4.2.2) rqrcode From 9c68a4c9efb791d9edfa051f05f8307151ce7b29 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 21 Oct 2020 15:23:17 +0800 Subject: [PATCH 0294/2165] =?UTF-8?q?doc:=20=E6=9B=B4=E6=96=B0=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E7=89=B9=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 4abe5a366..0eb4c52c8 100644 --- a/README.md +++ b/README.md @@ -11,19 +11,18 @@ ## 特性 - [x] 支持 iOS 和 Android 应用的上传和下载 -- [x] 支持应用创建各种类型(Debug、AdHoc、Release)和渠道(小米、华为、Oppp、Vivo、应用宝等) +- [x] 支持应用创建各种类型(Debug、AdHoc、Enterprise、Release)和渠道(小米、华为、Oppp、Vivo、应用宝等) - [x] 支持 iOS dSYM 和 Android Progruard 文件的备份管理和解析 -- [x] 支持单次上传解析 iOS 和 Android 包信息 -- [x] 支持自定义网络(WebHooks)数据来实时发送给通知服务(钉钉、企业微信、Slack 等) -- [x] 支持获取 iOS 设备 UDID -- [x] 支持丰富的 REST APIs +- [x] 支持单次上传解析 iOS、Android 包甚至是 mobileprovision 文件的信息 +- [x] 支持自定义网络钩子(WebHooks)发送给通知各种服务(钉钉、企业微信、Slack 等) +- [x] 支持获取 iOS 设备 UDID 及显示支持安装的应用 - [x] 支持 OAuth 认证登录(目前以接入 Google,LDAP) - [x] 提供检查新版本和安装服务的 iOS 和 Android 组件 -- [x] 提供 fastlane 插件 [zealot](https://github.com/getzealot/fastlane-plugin-zealot) 提供上传服务 +- [x] 提供 fastlane 插件 [zealot](https://github.com/getzealot/fastlane-plugin-zealot) 提供上传应用和调试文件服务 - [x] 可接入 Gitlab 服务直接挂钩源码管理 - [ ] 可接入 Jenkins 服务实现远程构建 +- [x] 支持丰富的 REST APIs - [ ] 支持 GraphGL 接口(进行中) -- [ ] 提供 cli 命令行工具(旧插件需要移植即可但貌似没有啥必要,有用没用先列在这) ## 最新版本 From e4342940d0d4ec9ac77e908aac10e5832c086396 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 22 Oct 2020 10:58:45 +0800 Subject: [PATCH 0295/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E4=B8=8B?= =?UTF-8?q?=E8=BD=BD=E8=B0=83=E8=AF=95=E6=96=87=E4=BB=B6=E5=88=A4=E6=96=AD?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E6=B2=A1=E6=9C=89=E8=80=83=E8=99=91=E6=B8=B8?= =?UTF-8?q?=E5=AE=A2=E6=A8=A1=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/policies/debug_file_policy.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/policies/debug_file_policy.rb b/app/policies/debug_file_policy.rb index ab2346cfe..b48d5aa7f 100644 --- a/app/policies/debug_file_policy.rb +++ b/app/policies/debug_file_policy.rb @@ -3,7 +3,7 @@ class DebugFilePolicy < ApplicationPolicy def download? - manage? + show? end class Scope < Scope From 1f3e9eff34662bc50bedfa05dfd90a45302a29a9 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 22 Oct 2020 11:06:26 +0800 Subject: [PATCH 0296/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E7=AC=AC?= =?UTF-8?q?=E4=B8=89=E6=96=B9=20Auth=20=E7=99=BB=E5=BD=95=E5=A4=B1?= =?UTF-8?q?=E8=B4=A5=E6=B2=A1=E6=9C=89=E9=94=99=E8=AF=AF=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/users/omniauth_callbacks_controller.rb | 8 +++++--- app/views/layouts/_messages.html.slim | 9 +++++++-- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/app/controllers/users/omniauth_callbacks_controller.rb b/app/controllers/users/omniauth_callbacks_controller.rb index 7c19b637a..acfd5288e 100644 --- a/app/controllers/users/omniauth_callbacks_controller.rb +++ b/app/controllers/users/omniauth_callbacks_controller.rb @@ -9,9 +9,11 @@ def ldap omniauth_callback('LDAP', 'ldap_data') end - def failure - redirect_to root_path, error: '授权失败,请检查你的信息是否正确' - end + # def failure + # flash[:error] = failure_message + # flash[:error] = '授权失败!请检查你的账户和密码是否正确,如果输入确认无误还是失败请联系管理员检查配置是否正确' + # redirect_to root_path + # end private diff --git a/app/views/layouts/_messages.html.slim b/app/views/layouts/_messages.html.slim index 85a2ce315..bf29f0395 100644 --- a/app/views/layouts/_messages.html.slim +++ b/app/views/layouts/_messages.html.slim @@ -1,11 +1,16 @@ - flash.each do |name, msg| ruby: - color, icon = ['notice', 'success'].include?(name.to_s) ? ['success', 'check'] : ['danger', 'warning'] + color, icon = case name + when :notice, :success + ['success', 'check'] + else + ['danger', 'exclamation-triangle'] + end .alert.alert-dismissible class="alert-#{color}" button.close data-dismiss="alert" aria-hidden="true" | × h4 - i.icon.fa class="fa-#{icon}" + i.icon.fas class="fa-#{icon}" = content_tag :span, msg, :id => "flash_#{name}" \ No newline at end of file From 9d294aaff53ab2d1a9fda4325bfd101c1542e1c4 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Thu, 22 Oct 2020 05:42:23 +0000 Subject: [PATCH 0297/2165] chore(deps-dev): bump rubocop from 0.93.1 to 1.0.0 Bumps [rubocop](https://github.com/rubocop-hq/rubocop) from 0.93.1 to 1.0.0. - [Release notes](https://github.com/rubocop-hq/rubocop/releases) - [Changelog](https://github.com/rubocop-hq/rubocop/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop-hq/rubocop/compare/v0.93.1...v1.0.0) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 8e80b00c6..487d0adb6 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -362,7 +362,7 @@ GEM chunky_png (~> 1.0) rqrcode_core (~> 0.1) rqrcode_core (0.1.1) - rubocop (0.93.1) + rubocop (1.0.0) parallel (~> 1.10) parser (>= 2.7.1.5) rainbow (>= 2.2.2, < 4.0) @@ -371,7 +371,7 @@ GEM rubocop-ast (>= 0.6.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 1.4.0, < 2.0) - rubocop-ast (0.8.0) + rubocop-ast (1.0.0) parser (>= 2.7.1.5) rubocop-rails (2.7.0) activesupport (>= 4.2.0) From 6a4875bd5f7b03655fd4c963ffd3206a8109c878 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 22 Oct 2020 16:21:13 +0800 Subject: [PATCH 0298/2165] =?UTF-8?q?chore:=20net-ldap=20=E5=8D=87?= =?UTF-8?q?=E7=BA=A7=E8=A7=A3=E5=86=B3=202.7=20=E7=9A=84=E4=B8=80=E4=BA=9B?= =?UTF-8?q?=E8=AD=A6=E5=91=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 487d0adb6..7668cb100 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -255,7 +255,7 @@ GEM multi_xml (0.6.0) multipart-post (2.1.1) nenv (0.3.0) - net-ldap (0.16.2) + net-ldap (0.16.3) nio4r (2.5.4) nokogiri (1.10.10) mini_portile2 (~> 2.4.0) From 93e337976b30f276998bc28d57f40c9c7fe69ca5 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 20 Apr 2020 17:52:40 +0800 Subject: [PATCH 0299/2165] =?UTF-8?q?style:=20ldap=20=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E8=9E=8D=E5=90=88=E5=88=B0=E7=99=BB=E5=BD=95=E7=95=8C=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/devise_helper.rb | 7 +++++++ app/views/devise/sessions/new.html.slim | 21 +++++++------------ app/views/devise/shared/_form_ldap.html.slim | 20 ++++++++++++++++++ .../devise/shared/_form_normal.html.slim | 15 +++++++++++++ app/views/devise/shared/_links.html.slim | 11 +++++----- app/views/devise/shared/_tab_ldap.html.slim | 4 ++++ app/views/devise/shared/_tab_normal.html.slim | 3 +++ app/views/layouts/_content.html.slim | 2 +- 8 files changed, 64 insertions(+), 19 deletions(-) create mode 100644 app/helpers/devise_helper.rb create mode 100644 app/views/devise/shared/_form_ldap.html.slim create mode 100644 app/views/devise/shared/_form_normal.html.slim create mode 100644 app/views/devise/shared/_tab_ldap.html.slim create mode 100644 app/views/devise/shared/_tab_normal.html.slim diff --git a/app/helpers/devise_helper.rb b/app/helpers/devise_helper.rb new file mode 100644 index 000000000..278dc4bf8 --- /dev/null +++ b/app/helpers/devise_helper.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true + +module DeviseHelper + def ldap_auth_enable? + devise_mapping.omniauthable? && resource_class.oauth_providers.include?(:ldap) + end +end \ No newline at end of file diff --git a/app/views/devise/sessions/new.html.slim b/app/views/devise/sessions/new.html.slim index fc7767b70..b256546c3 100644 --- a/app/views/devise/sessions/new.html.slim +++ b/app/views/devise/sessions/new.html.slim @@ -6,17 +6,12 @@ == render 'devise/shared/intro' .login-box.col-sm-5.order-1.order-sm-12 .card.card-primary.card-outline.card-outline-tabs - .card-body - p.login-box-msg 用户登录 - = simple_form_for(resource, as: resource_name, url: session_path(resource_name)) do |f| - == render 'layouts/messages' - - = f.input :email, required: true, autofocus: true, hint: '', input_html: { autocomplete: "email", class: 'form-control' } - = f.input :password, required: true, input_html: { autocomplete: "current-password" } - .row - .col-8 - = f.input :remember_me, as: :boolean, wrapper_html: {class: 'icheck-primary', style: 'margin-top: 6px!important'}, label_html: { style: 'font-weight: 700'} if devise_mapping.rememberable? - .col-4 - = f.button :submit, '登录', class: 'btn-block' + .card-header.p-0.border-bottom-0 + ul.nav.nav-tabs role="tablist" + == render 'devise/shared/tab_normal' + == render 'devise/shared/tab_ldap' - == render 'devise/shared/links' \ No newline at end of file + .card-body + #login-box-tabs.tab-content + == render 'devise/shared/form_normal' + == render 'devise/shared/form_ldap' diff --git a/app/views/devise/shared/_form_ldap.html.slim b/app/views/devise/shared/_form_ldap.html.slim new file mode 100644 index 000000000..3a51195c8 --- /dev/null +++ b/app/views/devise/shared/_form_ldap.html.slim @@ -0,0 +1,20 @@ +#login-tabs-ldap.tab-pane.fade aria-labelledby="login-tabs-ldap-tab" role="tabpanel" + = form_tag(omniauth_callback_path(:user, :ldap)) do + .form-group + = label_tag :username, "LDAP 账户" + = text_field_tag :username, nil, class: "form-control top", title: "This field is required.", autofocus: "autofocus", data: { qa_selector: 'username_field' }, required: true + .form-group + = label_tag :password, "LDAP 密码" + = password_field_tag :password, nil, class: "form-control bottom", title: "This field is required.", data: { qa_selector: 'password_field' }, required: true + + - if devise_mapping.rememberable? + .row + .col-12 + fieldset.form-group.boolean.optional.user_remember_me.icheck-primary style=("margin-top: 6px!important") + .form-check + = check_box_tag :remember_me, '1', false, id: 'user_remember_me', class: 'form-check-input boolean optional' + = label_tag :remember_me, '记住我', class: 'form-check-label boolean optional', style: 'font-weight: 700' + .row + .col-12 + = submit_tag "登录", class: "btn btn-primary btn-block", data: { qa_selector: 'sign_in_button' } + diff --git a/app/views/devise/shared/_form_normal.html.slim b/app/views/devise/shared/_form_normal.html.slim new file mode 100644 index 000000000..ac64ad825 --- /dev/null +++ b/app/views/devise/shared/_form_normal.html.slim @@ -0,0 +1,15 @@ +#login-tabs-standard.tab-pane.fade.show.active aria-labelledby="login-tabs-standard-tab" role="tabpanel" + = simple_form_for(resource, as: resource_name, url: session_path(resource_name)) do |f| + == render 'layouts/messages' + + = f.input :email, required: true, autofocus: true, hint: '', input_html: { autocomplete: "email", class: 'form-control' } + = f.input :password, required: true, input_html: { autocomplete: "current-password" } + + .row + .col-12 + = f.input :remember_me, as: :boolean, wrapper_html: {class: 'icheck-primary', style: 'margin-top: 6px!important'}, label_html: { style: 'font-weight: 700'} if devise_mapping.rememberable? + .row + .col-12 + = f.button :submit, '登录', class: 'btn-block' + + == render 'devise/shared/links' \ No newline at end of file diff --git a/app/views/devise/shared/_links.html.slim b/app/views/devise/shared/_links.html.slim index 9710929d4..e7db2077c 100644 --- a/app/views/devise/shared/_links.html.slim +++ b/app/views/devise/shared/_links.html.slim @@ -2,12 +2,13 @@ .social-auth-links.text-center.mb-3 p - 或者 - - resource_class.oauth_providers.each do |provider| - ruby: - name = omniauth_display_name(provider) + - unless provider == :ldap + ruby: + name = omniauth_display_name(provider) - a.btn.btn-icon.btn-block href="#{public_send("user_#{provider}_omniauth_authorize_path")}" class="#{provider == :google_oauth2 ? 'btn-danger' : 'btn-default'}" - i.fab class="fa-#{name.downcase}" - = "使用 #{name} 账号登录" + a.btn.btn-icon.btn-block href="#{public_send("user_#{provider}_omniauth_authorize_path")}" class="#{provider == :google_oauth2 ? 'btn-danger' : 'btn-default'}" + i.fab class="fa-#{name.downcase}" + = "使用 #{name} 账号登录" - if controller_name != 'sessions' p.mb-1 diff --git a/app/views/devise/shared/_tab_ldap.html.slim b/app/views/devise/shared/_tab_ldap.html.slim new file mode 100644 index 000000000..76b532758 --- /dev/null +++ b/app/views/devise/shared/_tab_ldap.html.slim @@ -0,0 +1,4 @@ +- if ldap_auth_enable? + li.nav-item + a#login-tabs-ldap-tab.nav-link aria-controls="login-tabs-ldap" aria-selected="true" data-toggle="pill" href="#login-tabs-ldap" role="tab" + | LDAP 登录 \ No newline at end of file diff --git a/app/views/devise/shared/_tab_normal.html.slim b/app/views/devise/shared/_tab_normal.html.slim new file mode 100644 index 000000000..4b1fd2e32 --- /dev/null +++ b/app/views/devise/shared/_tab_normal.html.slim @@ -0,0 +1,3 @@ +li.nav-item + a#login-tabs-standard-tab.nav-link.active aria-controls="login-tabs-standard" aria-selected="false" data-toggle="pill" href="#login-tabs-standard" role="tab" + | 标准登录 \ No newline at end of file diff --git a/app/views/layouts/_content.html.slim b/app/views/layouts/_content.html.slim index 08c7d8ba9..e99e24f64 100644 --- a/app/views/layouts/_content.html.slim +++ b/app/views/layouts/_content.html.slim @@ -4,5 +4,5 @@ section.content - if user_signed_in? == render 'layouts/messages' - .container-fluid + .container == yield \ No newline at end of file From 0a003a3a63f96c75272b8a733cb66aeaa7b061dd Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 22 Oct 2020 18:27:57 +0800 Subject: [PATCH 0300/2165] =?UTF-8?q?style:=20=E4=BF=AE=E6=AD=A3=E6=8F=90?= =?UTF-8?q?=E7=A4=BA=E4=BF=A1=E6=81=AF=E7=9A=84=E9=A2=9C=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/layouts/_messages.html.slim | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/views/layouts/_messages.html.slim b/app/views/layouts/_messages.html.slim index bf29f0395..655afd0f7 100644 --- a/app/views/layouts/_messages.html.slim +++ b/app/views/layouts/_messages.html.slim @@ -1,8 +1,7 @@ - - flash.each do |name, msg| ruby: color, icon = case name - when :notice, :success + when 'notice', 'success' ['success', 'check'] else ['danger', 'exclamation-triangle'] From 1494c44de079756b6d02d72c80b3d8c022f3e23b Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 22 Oct 2020 18:33:32 +0800 Subject: [PATCH 0301/2165] =?UTF-8?q?style:=20=E6=B8=B8=E5=AE=A2=E6=A8=A1?= =?UTF-8?q?=E5=BC=8F=E7=99=BB=E5=BD=95=E7=95=8C=E9=9D=A2=E4=B8=8D=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E8=BE=B9=E6=A0=8F=E8=8F=9C=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/application_helper.rb | 4 ++++ app/views/layouts/_navigation.html.slim | 6 +++--- app/views/layouts/application.html.slim | 4 ++-- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 405bb7d8d..4d2fa2251 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -3,6 +3,10 @@ module ApplicationHelper RANDOM_COLORS = %w[aqua blue purple navy maroon yellow red].freeze + def user_signed_in_or_guest_mode? + user_signed_in? || (Setting.guest_mode && !devise_page?) + end + def devise_page? params[:controller].start_with?('devise/') end diff --git a/app/views/layouts/_navigation.html.slim b/app/views/layouts/_navigation.html.slim index 23824ca7b..fbf451673 100644 --- a/app/views/layouts/_navigation.html.slim +++ b/app/views/layouts/_navigation.html.slim @@ -1,6 +1,6 @@ // Navbar nav.main-header.navbar.navbar-expand.navbar-white.navbar-light - - if Setting.guest_mode || user_signed_in? + - if user_signed_in_or_guest_mode? ul.navbar-nav li.nav-item a.nav-link data-widget="pushmenu" href="#" @@ -28,8 +28,8 @@ nav.main-header.navbar.navbar-expand.navbar-white.navbar-light a href="#{ root_path }" style="color: black" = Setting.site_title // Main Sidebar Container -- if Setting.guest_mode || user_signed_in? - aside.main-sidebar.sidebar-light-primary.elevation-4 +- if user_signed_in_or_guest_mode? + aside.main-sidebar.sidebar-light-primary.elevation-2 // Brand Logo a.brand-link href="#{ root_path }" = image_tag asset_pack_path('media/images/touch-icon.png'), class: %w[brand-image] diff --git a/app/views/layouts/application.html.slim b/app/views/layouts/application.html.slim index ef146c175..f91f178ee 100644 --- a/app/views/layouts/application.html.slim +++ b/app/views/layouts/application.html.slim @@ -1,8 +1,8 @@ ruby: body_class = 'skin-black-light' - if Setting.guest_mode || user_signed_in? + if user_signed_in_or_guest_mode? body_class += ' sidebar-mini' - elsif devise_page? + elsif Setting.guest_mode && devise_page? body_class += ' layout-top-nav' else body_class += ' layout-top-nav' From 3609c7b42f6af771a818958b5daf173179ea46bf Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 26 Oct 2020 15:17:22 +0800 Subject: [PATCH 0302/2165] =?UTF-8?q?refactor:=20iOS=20=E5=BA=94=E7=94=A8?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E5=9C=A8=E7=BA=BF=E5=AE=89=E8=A3=85=E5=92=8C?= =?UTF-8?q?=E4=B8=8B=E8=BD=BD=E6=8C=89=E9=92=AE=E6=9D=A5=E5=85=BC=E5=AE=B9?= =?UTF-8?q?=20iPadOS=20=E7=89=B9=E5=BE=81=E6=97=A0=E6=B3=95=E8=AF=86?= =?UTF-8?q?=E5=88=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/application_helper.rb | 11 ++++++++-- app/javascript/stylesheets/layout.scss | 2 ++ app/views/releases/body/_metadata.html.slim | 24 ++++++++++----------- 3 files changed, 22 insertions(+), 15 deletions(-) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 4d2fa2251..04958df75 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -92,19 +92,26 @@ def wechat? end def ios?(source = nil) + # iPadOS: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0 Safari/605.1.15 source ||= user_agent - !(source =~ /iPhone|iPad|Unversal|ios|iOS/i).nil? + (source =~ /iPhone|iPad|Unversal|ios|iOS/i).present? end def android?(source = nil) source ||= user_agent - !(source =~ /Android|android/i).nil? + source.downcase.include?('android') end def phone? ios? || android? end + def mac? + # Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36 + source ||= user_agent + source.downcase.include?('macintosh') + end + # 检查移动设备 def detect_device(device) if ios?(user_agent) && ios?(device) diff --git a/app/javascript/stylesheets/layout.scss b/app/javascript/stylesheets/layout.scss index c6eab6f9f..8f06b41a0 100644 --- a/app/javascript/stylesheets/layout.scss +++ b/app/javascript/stylesheets/layout.scss @@ -47,6 +47,8 @@ } .btn-icon { + margin-right: 5px; + .fa, .fab, .far, diff --git a/app/views/releases/body/_metadata.html.slim b/app/views/releases/body/_metadata.html.slim index 40661067b..fc91fceba 100644 --- a/app/views/releases/body/_metadata.html.slim +++ b/app/views/releases/body/_metadata.html.slim @@ -66,22 +66,20 @@ .app-actions - unless wechat? - if @release.has_file? - - if detect_device(@release.channel.device_type) == :ios - == render 'releases/body/install_cert' + == render 'releases/body/install_cert' - button.btn.btn-icon.bg-success.btn-lg[ - id="download_it" - data-install-url="#{@release.install_url}" - data-loading-text=" 等待系统弹窗确认安装 ..."] - i.fas.fa-paper-plane - | 在线安装 + button.btn.btn-icon.bg-success[ + id="download_it" + data-install-url="#{@release.install_url}" + data-loading-text=" 等待系统弹窗确认安装 ..."] + i.fas.fa-paper-plane + | 在线安装 - - else - a.btn.btn-icon.bg-success.btn-social href="#{@release.download_url}" target="_blank" - i.fas.fa-download - | 下载应用 + a.btn.btn-icon.bg-success href="#{@release.download_url}" target="_blank" + i.fas.fa-download + | 下载应用 - else - button.btn.btn-secondary.btn-icon.btn-lg.disabled + button.btn.btn-secondary.btn-icon.disabled i.fas.fa-ghost | 遗失文件不可安装或下载 From 614d24e85761217126619e3a3a5ea83afdfa614b Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 26 Oct 2020 18:35:27 +0800 Subject: [PATCH 0303/2165] =?UTF-8?q?style:=20=E4=BC=98=E5=8C=96=E5=8F=8C?= =?UTF-8?q?=E6=8C=89=E9=92=AE=E7=9A=84=E4=BA=A4=E4=BA=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/javascript/stylesheets/app.scss | 1 + app/views/releases/body/_metadata.html.slim | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/app/javascript/stylesheets/app.scss b/app/javascript/stylesheets/app.scss index 64cfc8895..e09bdd98e 100644 --- a/app/javascript/stylesheets/app.scss +++ b/app/javascript/stylesheets/app.scss @@ -122,6 +122,7 @@ $ios-install-issue-color: rgb(245, 39, 90); a { color: $ios-install-issue-color; + text-decoration: underline; padding-left: 3px; } } diff --git a/app/views/releases/body/_metadata.html.slim b/app/views/releases/body/_metadata.html.slim index fc91fceba..5232fdcac 100644 --- a/app/views/releases/body/_metadata.html.slim +++ b/app/views/releases/body/_metadata.html.slim @@ -71,7 +71,7 @@ button.btn.btn-icon.bg-success[ id="download_it" data-install-url="#{@release.install_url}" - data-loading-text=" 等待系统弹窗确认安装 ..."] + data-loading-text=" 等待安装 ..."] i.fas.fa-paper-plane | 在线安装 From a5c80708a57c06dbe9aae0a8abf553c55eee4f19 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 27 Oct 2020 05:44:22 +0000 Subject: [PATCH 0304/2165] chore(deps): bump puma from 5.0.2 to 5.0.3 Bumps [puma](https://github.com/puma/puma) from 5.0.2 to 5.0.3. - [Release notes](https://github.com/puma/puma/releases) - [Changelog](https://github.com/puma/puma/blob/master/History.md) - [Commits](https://github.com/puma/puma/compare/v5.0.2...v5.0.3) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 29cd17e8a..9d45269a7 100644 --- a/Gemfile +++ b/Gemfile @@ -6,7 +6,7 @@ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" } ruby '>= 2.3.0', '< 2.8.0' -gem 'puma', '~> 5.0.2' +gem 'puma', '~> 5.0.3' gem 'rails', '~> 6.0.3' gem 'rails-i18n', '~> 6.0.0' gem 'rake', '~> 13.0.1' diff --git a/Gemfile.lock b/Gemfile.lock index 7668cb100..0fc3f8271 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -300,7 +300,7 @@ GEM interception (>= 0.5) pry (>= 0.12.0) public_suffix (4.0.3) - puma (5.0.2) + puma (5.0.3) nio4r (~> 2.0) pundit (2.1.0) activesupport (>= 3.0.0) @@ -499,7 +499,7 @@ DEPENDENCIES pry-byebug pry-rails pry-rescue - puma (~> 5.0.2) + puma (~> 5.0.3) pundit (~> 2.1.0) rack-cors (~> 1.1.1) rails (~> 6.0.3) From 5483d1fa7a69db49f8e93e199a172893d06eaa50 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 28 Oct 2020 05:41:22 +0000 Subject: [PATCH 0305/2165] chore(deps): bump puma from 5.0.3 to 5.0.4 Bumps [puma](https://github.com/puma/puma) from 5.0.3 to 5.0.4. - [Release notes](https://github.com/puma/puma/releases) - [Changelog](https://github.com/puma/puma/blob/master/History.md) - [Commits](https://github.com/puma/puma/compare/v5.0.3...v5.0.4) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 9d45269a7..187416312 100644 --- a/Gemfile +++ b/Gemfile @@ -6,7 +6,7 @@ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" } ruby '>= 2.3.0', '< 2.8.0' -gem 'puma', '~> 5.0.3' +gem 'puma', '~> 5.0.4' gem 'rails', '~> 6.0.3' gem 'rails-i18n', '~> 6.0.0' gem 'rake', '~> 13.0.1' diff --git a/Gemfile.lock b/Gemfile.lock index 0fc3f8271..46b7a7ef0 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -300,7 +300,7 @@ GEM interception (>= 0.5) pry (>= 0.12.0) public_suffix (4.0.3) - puma (5.0.3) + puma (5.0.4) nio4r (~> 2.0) pundit (2.1.0) activesupport (>= 3.0.0) @@ -499,7 +499,7 @@ DEPENDENCIES pry-byebug pry-rails pry-rescue - puma (~> 5.0.3) + puma (~> 5.0.4) pundit (~> 2.1.0) rack-cors (~> 1.1.1) rails (~> 6.0.3) From 0c0e9e9e9372f3312a400410096cae6bc20f3371 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 28 Oct 2020 05:42:06 +0000 Subject: [PATCH 0306/2165] chore(deps): bump jb from 0.7.1 to 0.8.0 Bumps [jb](https://github.com/amatsuda/jb) from 0.7.1 to 0.8.0. - [Release notes](https://github.com/amatsuda/jb/releases) - [Commits](https://github.com/amatsuda/jb/compare/v0.7.1...v0.8.0) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 7 +++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/Gemfile b/Gemfile index 9d45269a7..040e63be0 100644 --- a/Gemfile +++ b/Gemfile @@ -23,7 +23,7 @@ gem 'health_check', '~> 3.0.0' # View ## 模板引擎 -gem 'jb', '~> 0.7.1' +gem 'jb', '~> 0.8.0' gem 'slim-rails', '~> 3.2.0' ## 表单生成 diff --git a/Gemfile.lock b/Gemfile.lock index 0fc3f8271..42bfdc161 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -200,8 +200,7 @@ GEM ruby-vips (>= 2.0.17, < 3) image_size (2.0.2) interception (0.5) - jb (0.7.1) - multi_json + jb (0.8.0) jenkins_api_client (1.5.3) json (>= 1.0) mixlib-shellout (>= 1.1.0) @@ -251,7 +250,7 @@ GEM minitest (5.14.2) mixlib-shellout (3.0.7) msgpack (1.3.3) - multi_json (1.14.1) + multi_json (1.15.0) multi_xml (0.6.0) multipart-post (2.1.1) nenv (0.3.0) @@ -483,7 +482,7 @@ DEPENDENCIES guard-webpacker health_check (~> 3.0.0) http - jb (~> 0.7.1) + jb (~> 0.8.0) jenkins_api_client kaminari letter_opener (~> 1.7) From 4ef721f56d2b5625374d33b3bc157d5876ff65b6 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 28 Oct 2020 15:32:41 +0800 Subject: [PATCH 0307/2165] =?UTF-8?q?feat:=20=E4=B8=8A=E4=BC=A0=20app=20?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E6=98=BE=E7=A4=BA=E5=85=B7=E4=BD=93=E7=9A=84?= =?UTF-8?q?=E8=AE=BE=E5=A4=87=E7=B1=BB=E5=9E=8B=EF=BC=8C=E6=AF=94=E5=A6=82?= =?UTF-8?q?=20iPhone,=20iPad,=20Universal=20=E7=AD=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/apps_helper.rb | 8 +++++--- app/models/release.rb | 11 ++++++++++- app/views/dashboards/_recently_upload.html.slim | 3 +++ app/views/releases/body/_activity.html.slim | 3 +++ app/views/releases/body/_metadata.html.slim | 4 ++-- db/migrate/20201028070958_add_device_to_release.rb | 5 +++++ db/schema.rb | 3 ++- 7 files changed, 30 insertions(+), 7 deletions(-) create mode 100644 db/migrate/20201028070958_add_device_to_release.rb diff --git a/app/helpers/apps_helper.rb b/app/helpers/apps_helper.rb index e7663b29d..e00c67a34 100644 --- a/app/helpers/apps_helper.rb +++ b/app/helpers/apps_helper.rb @@ -74,9 +74,11 @@ def release_type_url(release) link_to(release_type, channel_release_types_path(release.channel, name: release_type)) end - def display_app_device(channel) - return channel.name if channel.name.downcase == channel.device_type.downcase + def display_app_device(release) + channel = release.channel - "#{channel.name} (#{device_name(channel.device_type)})" + return "#{device_name(channel.device_type)} (#{release.device})" if release.device + return channel.name if channel.name.downcase == channel.device_type.downcase + return "#{channel.name} (#{device_name(channel.device_type)})" end end diff --git a/app/models/release.rb b/app/models/release.rb index c88aeefec..9aa19e081 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -19,8 +19,9 @@ class Release < ApplicationRecord before_save :convert_changelog before_save :convert_custom_fields before_save :trip_branch + before_save :detect_device - delegate :scheme, :device_type, to: :channel + delegate :scheme, to: :channel delegate :app, to: :scheme paginates_per 20 @@ -217,6 +218,14 @@ def convert_custom_fields end end + def detect_device + if app_info.blank? + self.device = channel.device_type + else + self.device = app_info.device_type + end + end + ORIGIN_PREFIX = 'origin/' def trip_branch return if branch.blank? diff --git a/app/views/dashboards/_recently_upload.html.slim b/app/views/dashboards/_recently_upload.html.slim index 2875a73e1..3e3d191e1 100644 --- a/app/views/dashboards/_recently_upload.html.slim +++ b/app/views/dashboards/_recently_upload.html.slim @@ -36,6 +36,9 @@ section = changelog_format release.changelog_list, class: 'mb-0' - if release.release_type.present? || release.branch.present? || release.short_git_commit.present? .timeline-footer + - if release.device + small.badge + = device_name(release.device) - if release.release_type small.badge = release.release_type diff --git a/app/views/releases/body/_activity.html.slim b/app/views/releases/body/_activity.html.slim index 4a4c48d25..257d03580 100644 --- a/app/views/releases/body/_activity.html.slim +++ b/app/views/releases/body/_activity.html.slim @@ -28,6 +28,9 @@ ruby: = changelog_format release.changelog_list, class: 'mb-0' - if release.release_type.present? || release.branch.present? || release.short_git_commit.present? .timeline-footer + - if release.device + small.badge + = device_name(release.device) - if release.release_type.present? small.badge = release.release_type diff --git a/app/views/releases/body/_metadata.html.slim b/app/views/releases/body/_metadata.html.slim index 5232fdcac..ef4803a53 100644 --- a/app/views/releases/body/_metadata.html.slim +++ b/app/views/releases/body/_metadata.html.slim @@ -24,8 +24,8 @@ i.fab.fa-gg = @release.version li title="平台" - = device_icon(@release.device_type) - = display_app_device(@release.channel) + = device_icon(@release.channel.device_type) + = display_app_device(@release) - if @release.name.present? li title="应用名" i.fas.fa-file diff --git a/db/migrate/20201028070958_add_device_to_release.rb b/db/migrate/20201028070958_add_device_to_release.rb new file mode 100644 index 000000000..7d8dfcc14 --- /dev/null +++ b/db/migrate/20201028070958_add_device_to_release.rb @@ -0,0 +1,5 @@ +class AddDeviceToRelease < ActiveRecord::Migration[6.0] + def change + add_column :releases, :device, :string + end +end diff --git a/db/schema.rb b/db/schema.rb index 5c05c6f71..98733aba7 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 2020_07_24_084528) do +ActiveRecord::Schema.define(version: 2020_10_28_070958) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -112,6 +112,7 @@ t.datetime "updated_at", precision: 6, null: false t.jsonb "custom_fields", default: [], null: false t.string "name" + t.string "device" t.index ["build_version"], name: "index_releases_on_build_version" t.index ["bundle_id"], name: "index_releases_on_bundle_id" t.index ["channel_id", "version"], name: "index_releases_on_channel_id_and_version", unique: true From 802c05fdb832d750b8e92fb84a9746d5bf2e797d Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 28 Oct 2020 16:51:15 +0800 Subject: [PATCH 0308/2165] =?UTF-8?q?style:=20=E4=B8=8A=E4=BC=A0=E7=9A=84?= =?UTF-8?q?=E8=87=AA=E5=AE=9A=E4=B9=89=E5=AD=97=E6=AE=B5=E5=A2=9E=E8=82=8C?= =?UTF-8?q?=E9=BB=98=E8=AE=A4=E5=9B=BE=E6=A0=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/releases/body/_metadata.html.slim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/releases/body/_metadata.html.slim b/app/views/releases/body/_metadata.html.slim index ef4803a53..77efc52e9 100644 --- a/app/views/releases/body/_metadata.html.slim +++ b/app/views/releases/body/_metadata.html.slim @@ -54,7 +54,7 @@ = git_commit_url(@release.channel.git_url, @release.git_commit) - @release.custom_fields.each do |field| li title="#{field['name']}" - i.fas class="fa-#{field['icon']}" + i.fas class="fa-#{field['icon'] || 'hashtag'}" = field['value'] li title="上传来源" i.fas.fa-compass From 6c6211eadc5ac23eb231669586e01bd2c0a80fd0 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 28 Oct 2020 19:34:11 +0800 Subject: [PATCH 0309/2165] =?UTF-8?q?style:=20=E9=81=BF=E5=85=8D=E6=AD=A7?= =?UTF-8?q?=E4=B9=89=E4=BF=AE=E6=94=B9app=E5=AE=89=E8=A3=85=E5=92=8C?= =?UTF-8?q?=E4=B8=8B=E8=BD=BD=E7=9A=84=E6=96=87=E6=A1=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/releases/body/_metadata.html.slim | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/releases/body/_metadata.html.slim b/app/views/releases/body/_metadata.html.slim index 77efc52e9..37a6aa955 100644 --- a/app/views/releases/body/_metadata.html.slim +++ b/app/views/releases/body/_metadata.html.slim @@ -73,11 +73,11 @@ data-install-url="#{@release.install_url}" data-loading-text=" 等待安装 ..."] i.fas.fa-paper-plane - | 在线安装 + | 安装应用 a.btn.btn-icon.bg-success href="#{@release.download_url}" target="_blank" i.fas.fa-download - | 下载应用 + | 保存本地 - else button.btn.btn-secondary.btn-icon.disabled i.fas.fa-ghost From dea09afa0f553e6072670c61de9039e487a76b71 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 29 Oct 2020 10:20:37 +0800 Subject: [PATCH 0310/2165] =?UTF-8?q?fix:=20android=20=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E5=9C=A8=E7=BA=BF=E5=AE=89=E8=A3=85=E6=8C=89=E9=92=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/application_helper.rb | 2 +- app/javascript/stylesheets/layout.scss | 2 +- app/models/channel.rb | 95 --------------------- app/views/releases/body/_metadata.html.slim | 21 +++-- 4 files changed, 15 insertions(+), 105 deletions(-) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 04958df75..d3a368ae6 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -94,7 +94,7 @@ def wechat? def ios?(source = nil) # iPadOS: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0 Safari/605.1.15 source ||= user_agent - (source =~ /iPhone|iPad|Unversal|ios|iOS/i).present? + (source =~ /Macintosh|iPhone|iPad|Unversal|ios|iOS/i).present? end def android?(source = nil) diff --git a/app/javascript/stylesheets/layout.scss b/app/javascript/stylesheets/layout.scss index 8f06b41a0..15ffecb4f 100644 --- a/app/javascript/stylesheets/layout.scss +++ b/app/javascript/stylesheets/layout.scss @@ -47,7 +47,7 @@ } .btn-icon { - margin-right: 5px; + margin-right: 10px; .fa, .fab, diff --git a/app/models/channel.rb b/app/models/channel.rb index 88c98f02e..3da68f084 100644 --- a/app/models/channel.rb +++ b/app/models/channel.rb @@ -83,101 +83,6 @@ def devices releases.distinct.left_joins(:devices) end - # def self.find_by_release(release) - # instance = release.app - # instance.current_release = release - # instance - # end - - # def platform - # case device_type.downcase - # when 'iphone', 'ipad', 'ios' - # 'iOS' - # when 'android' - # 'Android' - # else - # 'Unkown' - # end - # end - - # def branches - # Rails.cache.fetch("app_#{id}_branches", expires_in: 1.week) do - # releases - # .select([:id, 'branch AS name', :app_id, 'COUNT(*) AS count', :created_at]) - # .group(:branch) - # .order(created_at: :desc) - # .select { |m| !m.name.to_s.empty? } - # .sort_by(&:created_at) - # .reverse - # end - # end - - # def release_versions - # releases.group(:release_version) - # .map(&:release_version) - # .reverse - # end - - # def build_versions(release_version) - # releases.where(release_version: release_version) - # .group(:build_version) - # .map(&:build_version) - # end - - # def version - # current_release.try(:[], :version) - # end - - # def release_version - # current_release.try(:[], :release_version) - # end - - # def build_version - # current_release.try(:[], :build_version) - # end - - # def changelog(since_release_version: nil, since_build_version: nil) - # unless since_release_version.blank? && since_build_version.blank? - # previous_release = Release.find_by( - # app: self, - # release_version: since_release_version, - # build_version: since_build_version - # ) - - # return releases.where("id > #{previous_release.id}").order(id: :desc).each_with_object([]) do |release, obj| - # next if release.changelog.blank? || release.changelog == '[]' - - # begin - # obj.concat JSON.parse(release.changelog) - # rescue - # obj.concat release.pure_changelog - # end - # end if previous_release - # end - - # current_release.pure_changelog - # end - - # def icon_url - # current_release.icon.url - # end - - # def install_url - # current_release.install_url - # end - - # def current_release - # @current_release ||= latest_release - # end - - # def current_release=(current_release) - # @current_release = current_release - # end - - # def latest_release - # @latest_release = releases.last - # end - private def generate_default_values diff --git a/app/views/releases/body/_metadata.html.slim b/app/views/releases/body/_metadata.html.slim index 37a6aa955..0e13c647c 100644 --- a/app/views/releases/body/_metadata.html.slim +++ b/app/views/releases/body/_metadata.html.slim @@ -68,16 +68,21 @@ - if @release.has_file? == render 'releases/body/install_cert' - button.btn.btn-icon.bg-success[ - id="download_it" - data-install-url="#{@release.install_url}" - data-loading-text=" 等待安装 ..."] - i.fas.fa-paper-plane - | 安装应用 + - if detect_device(@release.channel.device_type) == :ios + / iOS 和 Mac 显示此按钮 + button.btn.btn-icon.btn-lg.bg-success[ + id="download_it" + data-install-url="#{@release.install_url}" + data-loading-text=" 等待安装 ..."] + i.fas.fa-paper-plane + | 安装 - a.btn.btn-icon.bg-success href="#{@release.download_url}" target="_blank" + a.btn.btn-icon.btn-lg.bg-success href="#{@release.download_url}" target="_blank" i.fas.fa-download - | 保存本地 + - if android?(user_agent) + | 安装 + - else + | 下载 - else button.btn.btn-secondary.btn-icon.disabled i.fas.fa-ghost From e1a0db0231eec502a3697d76b1bf0c723a38bdad Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 29 Oct 2020 11:31:23 +0800 Subject: [PATCH 0311/2165] =?UTF-8?q?fix:=20=E5=88=9D=E5=A7=8B=E5=8C=96?= =?UTF-8?q?=E6=BC=94=E7=A4=BA=E6=95=B0=E6=8D=AE=E6=96=87=E4=BB=B6=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E4=B8=8D=E5=88=B0=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/release.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/models/release.rb b/app/models/release.rb index 9aa19e081..d576352bc 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -178,6 +178,8 @@ def bundle_id_matched def app_info @app_info ||= AppInfo.parse(file.path) + rescue TypeError + nil rescue AppInfo::UnkownFileTypeError errors.add(:file, '上传的文件不是有效应用格式') nil From 4549204c2851247bc4915666b18c4ff048e256ac Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 29 Oct 2020 14:18:43 +0800 Subject: [PATCH 0312/2165] =?UTF-8?q?style:=20=E7=B3=BB=E7=BB=9F=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=E4=BC=98=E5=8C=96=20boolean=20=E5=92=8C=20hash=20?= =?UTF-8?q?=E7=9A=84=E7=BC=96=E8=BE=91=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/admin/settings_controller.rb | 3 +-- app/views/admin/settings/_form.html.slim | 8 +++++++- config/locales/zealot/zh-CN.yml | 2 +- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/app/controllers/admin/settings_controller.rb b/app/controllers/admin/settings_controller.rb index bc8cbdb42..72790fe68 100644 --- a/app/controllers/admin/settings_controller.rb +++ b/app/controllers/admin/settings_controller.rb @@ -18,13 +18,12 @@ def update @setting.save redirect_to admin_settings_path, notice: "保存成功." else - redirect_to :edit + redirect_to admin_settings_path end end private - def set_setting @setting = Setting.find_or_default(var: params[:id]) end diff --git a/app/views/admin/settings/_form.html.slim b/app/views/admin/settings/_form.html.slim index f98741162..30e2074aa 100644 --- a/app/views/admin/settings/_form.html.slim +++ b/app/views/admin/settings/_form.html.slim @@ -1,6 +1,7 @@ ruby: key = @setting.var value = @setting.value || Setting.send(key) + type = Setting.get_field(key)[:type] .row .col-md-12 @@ -10,6 +11,11 @@ ruby: = simple_form_for(@setting, url: admin_setting_path(key), method: :patch) do |f| .card-body = f.error_notification - = f.text_area :value, value: value, class: 'form-control', rows: 15 + - if type == :boolean + = f.input :value, label: '开启', as: :boolean, checked: true + - elsif type == :hash + = f.text_area :value, value: JSON.pretty_generate(value), class: 'form-control', rows: 15 + - else + = f.text_area :value, value: value, class: 'form-control', rows: 15 .card-footer = f.button :submit, t('admin.settings.submit.update') \ No newline at end of file diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index e0777ebae..7bafeb100 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -7,7 +7,7 @@ zh-CN: site_domain: 站点域名 visits: 访问模式 - registrations_mode: 开启注册模式 + registrations_mode: 注册模式 guest_mode: 开启游客模式 mail: 邮件配置 From 2d52d8e941f74c8485b31299384a336e51754927 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 29 Oct 2020 14:40:33 +0800 Subject: [PATCH 0313/2165] =?UTF-8?q?fix:=20debug=5Ffile=20=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0=E4=BC=9A=E8=A2=AB=E8=A6=86=E7=9B=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/uploaders/debug_file_uploader.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/uploaders/debug_file_uploader.rb b/app/uploaders/debug_file_uploader.rb index 786337d99..7e590dd63 100644 --- a/app/uploaders/debug_file_uploader.rb +++ b/app/uploaders/debug_file_uploader.rb @@ -2,7 +2,7 @@ class DebugFileUploader < ApplicationUploader def store_dir - "#{base_store_dir}/debug_files/a#{model.app.id}" + "#{base_store_dir}/debug_files/a#{model.app.id}/d#{model.id}" end def extension_white_list From 5d3b43fb56cfd0ed0bcc0b6ff79ff3b0cb0e5f99 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 29 Oct 2020 15:14:53 +0800 Subject: [PATCH 0314/2165] =?UTF-8?q?fix:=20=E5=BA=94=E7=94=A8=E6=B8=A0?= =?UTF-8?q?=E9=81=93=E8=AF=A6=E6=83=85=E5=88=A4=E6=96=AD=E6=B8=A0=E9=81=93?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/apps_helper.rb | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/app/helpers/apps_helper.rb b/app/helpers/apps_helper.rb index e00c67a34..0f3af7405 100644 --- a/app/helpers/apps_helper.rb +++ b/app/helpers/apps_helper.rb @@ -74,10 +74,14 @@ def release_type_url(release) link_to(release_type, channel_release_types_path(release.channel, name: release_type)) end - def display_app_device(release) - channel = release.channel + def display_app_device(value) + if value.is_a?(Release) + channel = value.channel + return "#{device_name(channel.device_type)} (#{value.device})" if value.device + else + channel = value + end - return "#{device_name(channel.device_type)} (#{release.device})" if release.device return channel.name if channel.name.downcase == channel.device_type.downcase return "#{channel.name} (#{device_name(channel.device_type)})" end From ce255c0f1afe2935729df40984d0f27430dff569 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 29 Oct 2020 15:58:55 +0800 Subject: [PATCH 0315/2165] =?UTF-8?q?style:=20=E6=9B=B4=E6=96=B0=20404?= =?UTF-8?q?=EF=BC=8C=20500=20=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/404.html | 7 +++---- public/500.html | 5 ++--- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/public/404.html b/public/404.html index b612547fc..98bfb5b4b 100644 --- a/public/404.html +++ b/public/404.html @@ -1,7 +1,7 @@ - The page you were looking for doesn't exist (404) + 页面不存在 (404) - - - - -
- <%= yield %> -
- - - \ No newline at end of file diff --git a/app/views/layouts/error.html.slim b/app/views/layouts/error.html.slim new file mode 100644 index 000000000..e314aa722 --- /dev/null +++ b/app/views/layouts/error.html.slim @@ -0,0 +1,37 @@ +doctype html +html + head + title = yield :title + meta[name="viewport" content="width=device-width, initial-scale=1.0"] + link[rel="apple-touch-icon" sizes="60x60" href="#{asset_pack_path('media/images/touch-icon.png')}"] + link[rel="apple-touch-icon" sizes="120x120" href="#{asset_pack_path('media/images/touch-icon@2x.png')}"] + link[rel="apple-touch-icon" sizes="180x180" href="#{asset_pack_path('media/images/touch-icon@3x.png')}"] + link[rel="icon" type="image/x-icon" href="#{asset_pack_path('media/images/touch-icon@3x.png')}"] + == favicon_link_tag asset_pack_path('media/images/touch-icon.png') + == stylesheet_pack_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' + == javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' + == csrf_meta_tags + + body + .wrapper + == render 'layouts/navigation' + + .content-wrapper + section.content + .error-page + h2.headline.text-warning = @code + .error-content + h3 + i.fas.fa-exclamation-triangle.text-warning + | Oops! Page not found. + p + | We could not find the page you were looking for. + | Meanwhile, you may + a href="../../index.html" return to dashboard + | or try using the search form. + form.search-form + .input-group + input.form-control name="search" placeholder="Search" type="text" / + .input-group-append + button.btn.btn-warning name="submit" type="submit" + i.fas.fa-search \ No newline at end of file diff --git a/config/application.rb b/config/application.rb index 78a678c07..bc2d99fd2 100644 --- a/config/application.rb +++ b/config/application.rb @@ -97,5 +97,8 @@ class Application < Rails::Application # Disable yarn check(this must disable with docker) # config.webpacker.check_yarn_integrity = false + + # Manage exception page + # config.exceptions_app = self.routes end end diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index 7bafeb100..fdd1cb6fc 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -37,6 +37,27 @@ zh-CN: x_months: " %{count} 个月" x_years: " %{count} 年" errors: + '400': + title: 您提交的请求无效或格式不正确。 + '403': + title: 你没有访问这个页面的权限。 + '404': + title: 找不到你想要的内容 + content: 当前访问的页面不存在或者已经被移动 + '406': + title: 页面无法处理请求。 + '410': + title: 你所要访问的页面此处已不存在。 + '422': + content: 无法确认登录信息。你是不是屏蔽了 Cookie? + title: 无法确认登录信息 + '429': + title: 请求被限制 + '500': + content: 抱歉,我们的后台出错了。 + title: 这个页面有问题 + '503': + title: 服务暂时不可用,无法请求该页面。 messages: mini_magick_processing_error: "无法使用 MiniMagick 处理,请检查文件是否是标准图片格式,原始错误: %{e}" activerecord: diff --git a/config/routes.rb b/config/routes.rb index 906917388..6e8fdb189 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -173,4 +173,7 @@ # API v2 ############################################# post '/graphql', to: 'graphql#execute' + + match '/', via: [:post, :put, :patch, :delete], to: 'application#raise_not_found', format: false + match '*unmatched_route', via: :all, to: 'application#raise_not_found', format: false end diff --git a/public/404.html b/public/404.html deleted file mode 100644 index 98bfb5b4b..000000000 --- a/public/404.html +++ /dev/null @@ -1,66 +0,0 @@ - - - - 页面不存在 (404) - - - - - - -
-
-

页面不存在

-

当前访问的页面不存在或者已经被移动。

-
-
- - diff --git a/public/422.html b/public/422.html deleted file mode 100644 index a21f82b3b..000000000 --- a/public/422.html +++ /dev/null @@ -1,67 +0,0 @@ - - - - The change you wanted was rejected (422) - - - - - - -
-
-

The change you wanted was rejected.

-

Maybe you tried to change something you didn't have access to.

-
-

If you are the application owner check the logs for more information.

-
- - From b2ca615f815b33162fc3a430914e1420cb219c98 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 6 Jan 2021 12:16:51 +0800 Subject: [PATCH 0375/2165] =?UTF-8?q?fix:=20=E6=97=A0=E6=B3=95=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E8=A7=A3=E6=9E=90=E7=9A=84=E6=96=87=E4=BB=B6=E6=8A=9B?= =?UTF-8?q?=E5=87=BA=E6=8C=87=E5=AE=9A=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/services/teardown_service.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/services/teardown_service.rb b/app/services/teardown_service.rb index 2be07c9cb..2a08d49fd 100644 --- a/app/services/teardown_service.rb +++ b/app/services/teardown_service.rb @@ -10,7 +10,7 @@ def initialize(file) def call file_type = AppInfo.file_type(file) unless file_type == :ipa || file_type == :apk || file_type == :mobileprovision - raise "无法处理文件: #{file}, 不支持本文件类型: #{file_type}" + raise ActionController::UnknownFormat, "无法处理文件: #{file}, 不支持本文件类型: #{file_type}" end process From edc8a2ed04b5b74517b180983e61ac7bf7e4916f Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 8 Jan 2021 05:53:44 +0000 Subject: [PATCH 0376/2165] chore(deps): bump rails from 6.1.0 to 6.1.1 Bumps [rails](https://github.com/rails/rails) from 6.1.0 to 6.1.1. - [Release notes](https://github.com/rails/rails/releases) - [Commits](https://github.com/rails/rails/compare/v6.1.0...v6.1.1) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 112 +++++++++++++++++++++++++-------------------------- 2 files changed, 57 insertions(+), 57 deletions(-) diff --git a/Gemfile b/Gemfile index d83cee128..3fb8b767d 100644 --- a/Gemfile +++ b/Gemfile @@ -7,7 +7,7 @@ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" } ruby '~> 2.7.0' gem 'puma', '~> 5.1.1' -gem 'rails', '~> 6.1.0' +gem 'rails', '~> 6.1.1' gem 'rails-i18n', '~> 6.0.0' gem 'rake', '~> 13.0.3' diff --git a/Gemfile.lock b/Gemfile.lock index 7e5fb4010..26dfae496 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -12,40 +12,40 @@ GEM remote: https://rubygems.org/ specs: CFPropertyList (3.0.2) - actioncable (6.1.0) - actionpack (= 6.1.0) - activesupport (= 6.1.0) + actioncable (6.1.1) + actionpack (= 6.1.1) + activesupport (= 6.1.1) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (6.1.0) - actionpack (= 6.1.0) - activejob (= 6.1.0) - activerecord (= 6.1.0) - activestorage (= 6.1.0) - activesupport (= 6.1.0) + actionmailbox (6.1.1) + actionpack (= 6.1.1) + activejob (= 6.1.1) + activerecord (= 6.1.1) + activestorage (= 6.1.1) + activesupport (= 6.1.1) mail (>= 2.7.1) - actionmailer (6.1.0) - actionpack (= 6.1.0) - actionview (= 6.1.0) - activejob (= 6.1.0) - activesupport (= 6.1.0) + actionmailer (6.1.1) + actionpack (= 6.1.1) + actionview (= 6.1.1) + activejob (= 6.1.1) + activesupport (= 6.1.1) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (6.1.0) - actionview (= 6.1.0) - activesupport (= 6.1.0) + actionpack (6.1.1) + actionview (= 6.1.1) + activesupport (= 6.1.1) rack (~> 2.0, >= 2.0.9) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (6.1.0) - actionpack (= 6.1.0) - activerecord (= 6.1.0) - activestorage (= 6.1.0) - activesupport (= 6.1.0) + actiontext (6.1.1) + actionpack (= 6.1.1) + activerecord (= 6.1.1) + activestorage (= 6.1.1) + activesupport (= 6.1.1) nokogiri (>= 1.8.5) - actionview (6.1.0) - activesupport (= 6.1.0) + actionview (6.1.1) + activesupport (= 6.1.1) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) @@ -55,25 +55,25 @@ GEM activemodel (>= 4.1, < 6.2) case_transform (>= 0.2) jsonapi-renderer (>= 0.1.1.beta1, < 0.3) - activejob (6.1.0) - activesupport (= 6.1.0) + activejob (6.1.1) + activesupport (= 6.1.1) globalid (>= 0.3.6) activejob-status (0.1.6) activejob (>= 4.2) activesupport (>= 4.2) - activemodel (6.1.0) - activesupport (= 6.1.0) - activerecord (6.1.0) - activemodel (= 6.1.0) - activesupport (= 6.1.0) - activestorage (6.1.0) - actionpack (= 6.1.0) - activejob (= 6.1.0) - activerecord (= 6.1.0) - activesupport (= 6.1.0) + activemodel (6.1.1) + activesupport (= 6.1.1) + activerecord (6.1.1) + activemodel (= 6.1.1) + activesupport (= 6.1.1) + activestorage (6.1.1) + actionpack (= 6.1.1) + activejob (= 6.1.1) + activerecord (= 6.1.1) + activesupport (= 6.1.1) marcel (~> 0.3.1) mimemagic (~> 0.3.2) - activesupport (6.1.0) + activesupport (6.1.1) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) @@ -253,7 +253,7 @@ GEM mini_magick (4.11.0) mini_mime (1.0.2) mini_portile2 (2.5.0) - minitest (5.14.2) + minitest (5.14.3) mixlib-shellout (3.0.7) msgpack (1.3.3) multi_json (1.15.0) @@ -262,7 +262,7 @@ GEM nenv (0.3.0) net-ldap (0.16.3) nio4r (2.5.4) - nokogiri (1.11.0) + nokogiri (1.11.1) mini_portile2 (~> 2.5.0) racc (~> 1.4) notiffany (0.1.3) @@ -321,20 +321,20 @@ GEM rack rack-test (1.1.0) rack (>= 1.0, < 3) - rails (6.1.0) - actioncable (= 6.1.0) - actionmailbox (= 6.1.0) - actionmailer (= 6.1.0) - actionpack (= 6.1.0) - actiontext (= 6.1.0) - actionview (= 6.1.0) - activejob (= 6.1.0) - activemodel (= 6.1.0) - activerecord (= 6.1.0) - activestorage (= 6.1.0) - activesupport (= 6.1.0) + rails (6.1.1) + actioncable (= 6.1.1) + actionmailbox (= 6.1.1) + actionmailer (= 6.1.1) + actionpack (= 6.1.1) + actiontext (= 6.1.1) + actionview (= 6.1.1) + activejob (= 6.1.1) + activemodel (= 6.1.1) + activerecord (= 6.1.1) + activestorage (= 6.1.1) + activesupport (= 6.1.1) bundler (>= 1.15.0) - railties (= 6.1.0) + railties (= 6.1.1) sprockets-rails (>= 2.0.0) rails-dom-testing (2.0.3) activesupport (>= 4.2.0) @@ -346,9 +346,9 @@ GEM railties (>= 6.0.0, < 7) rails-settings-cached (2.5.2) rails (>= 5.0.0) - railties (6.1.0) - actionpack (= 6.1.0) - activesupport (= 6.1.0) + railties (6.1.1) + actionpack (= 6.1.1) + activesupport (= 6.1.1) method_source rake (>= 0.8.7) thor (~> 1.0) @@ -507,7 +507,7 @@ DEPENDENCIES puma (~> 5.1.1) pundit (~> 2.1.0) rack-cors (~> 1.1.1) - rails (~> 6.1.0) + rails (~> 6.1.1) rails-i18n (~> 6.0.0) rails-settings-cached (~> 2.5) rake (~> 13.0.3) From a54ac7042c74ca560eaf32865b70918910e0bb19 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 8 Jan 2021 06:55:39 +0000 Subject: [PATCH 0377/2165] chore(deps): bump @rails/ujs from 6.1.0 to 6.1.1 Bumps [@rails/ujs](https://github.com/rails/rails) from 6.1.0 to 6.1.1. - [Release notes](https://github.com/rails/rails/releases) - [Commits](https://github.com/rails/rails/compare/v6.1.0...v6.1.1) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index cf81066f7..ae64bd90d 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "zealot", "private": true, "dependencies": { - "@rails/ujs": "^6.1.0", + "@rails/ujs": "^6.1.1", "@rails/webpacker": "^5.2.1", "admin-lte": "^3.0.5", "clipboard": "^2.0.6", diff --git a/yarn.lock b/yarn.lock index 575dfe6ab..28754c035 100644 --- a/yarn.lock +++ b/yarn.lock @@ -956,10 +956,10 @@ dependencies: mkdirp "^1.0.4" -"@rails/ujs@^6.1.0": - version "6.1.0" - resolved "https://registry.yarnpkg.com/@rails/ujs/-/ujs-6.1.0.tgz#9a48df6511cb2b472c9f596c1f37dc0af022e751" - integrity sha512-kQNKyM4ePAc4u9eR1c4OqrbAHH+3SJXt++8izIjeaZeg+P7yBtgoF/dogMD/JPPowNC74ACFpM/4op0Ggp/fPw== +"@rails/ujs@^6.1.1": + version "6.1.1" + resolved "https://registry.yarnpkg.com/@rails/ujs/-/ujs-6.1.1.tgz#25c4e60018274b37e5ba0850134f6445429de2f5" + integrity sha512-uF6zEbXpGkNa7Vvxrd9Yqas8xsbc3lsC733V6I7fXgPuj8xXiuZakdE4uIyQSFRVmZKe12qmC6CNJNtIEvt4bA== "@rails/webpacker@^5.2.1": version "5.2.1" From 7b314c924a8c8516c5bd1dadecd099516129078d Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 8 Jan 2021 16:24:29 +0800 Subject: [PATCH 0378/2165] =?UTF-8?q?refactor:=20docker=20=E5=92=8C?= =?UTF-8?q?=E4=BB=93=E5=BA=93=20namespace=20=E6=94=B9=E4=B8=BA=20tryzealot?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/config.yml | 2 +- .github/workflows/publish_nighty.yml | 4 ++-- .github/workflows/publish_release.yml | 4 ++-- .github/workflows/test_docker_build.yml | 2 +- Dockerfile | 2 +- README.md | 24 +++++++++---------- .../admin/system_info_controller.rb | 2 +- app/views/layouts/_footer.html.slim | 2 +- lib/backup/manager.rb | 2 +- lib/tasks/docker.rake | 2 +- 10 files changed, 23 insertions(+), 23 deletions(-) diff --git a/.github/config.yml b/.github/config.yml index ae4a4b014..7820822eb 100644 --- a/.github/config.yml +++ b/.github/config.yml @@ -1,6 +1,6 @@ newIssueWelcomeComment: > 感谢你提交的问题或反馈,我会在有时间的时候回复在此期间你可以看看 - [之前被解决的反馈](https://github.com/getzealot/zealot/issues?q=is%3Aissue+is%3Aclosed)说不定有你需要的答案。 + [之前被解决的反馈](https://github.com/tryzealot/zealot/issues?q=is%3Aissue+is%3Aclosed)说不定有你需要的答案。 newPRWelcomeComment: > 感谢你提交的问题或反馈,我会在有时间的时候来审查代码。 diff --git a/.github/workflows/publish_nighty.yml b/.github/workflows/publish_nighty.yml index 498624b33..660281e25 100644 --- a/.github/workflows/publish_nighty.yml +++ b/.github/workflows/publish_nighty.yml @@ -25,7 +25,7 @@ jobs: BUILD_DATE: ${{ steps.date.outputs.date }} TAG: nightly with: - name: icyleafcn/zealot:${{ env.TAG }} + name: tryzealot/zealot:${{ env.TAG }} username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} buildargs: BUILD_DATE,VCS_REF,TAG,REPLACE_CHINA_MIRROR @@ -34,7 +34,7 @@ jobs: env: DOCKERHUB_USERNAME: ${{ secrets.DOCKER_USERNAME }} DOCKERHUB_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} - DOCKERHUB_REPOSITORY: icyleafcn/zealot + DOCKERHUB_REPOSITORY: tryzealot/zealot - name: Trigger Microbadger update uses: wei/curl@master with: diff --git a/.github/workflows/publish_release.yml b/.github/workflows/publish_release.yml index 6d6ee30d4..6d8034662 100644 --- a/.github/workflows/publish_release.yml +++ b/.github/workflows/publish_release.yml @@ -23,7 +23,7 @@ jobs: BUILD_DATE: ${{ steps.date.outputs.date }} TAG: ${{ steps.version.outputs.tag }} with: - name: icyleafcn/zealot:${{ env.TAG }} + name: tryzealot/zealot:${{ env.TAG }} username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} buildargs: BUILD_DATE,VCS_REF,TAG,REPLACE_CHINA_MIRROR @@ -32,7 +32,7 @@ jobs: env: DOCKERHUB_USERNAME: ${{ secrets.DOCKER_USERNAME }} DOCKERHUB_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} - DOCKERHUB_REPOSITORY: icyleafcn/zealot + DOCKERHUB_REPOSITORY: tryzealot/zealot - name: Trigger Microbadger update uses: wei/curl@master with: diff --git a/.github/workflows/test_docker_build.yml b/.github/workflows/test_docker_build.yml index 62cc98d6e..484c4f4d0 100644 --- a/.github/workflows/test_docker_build.yml +++ b/.github/workflows/test_docker_build.yml @@ -13,6 +13,6 @@ jobs: BUILD_DATE: ${{ steps.date.outputs.date }} TAG: pr-test with: - name: icyleafcn/zealot:${{ env.TAG }} + name: tryzealot/zealot:${{ env.TAG }} no_push: true buildargs: BUILD_DATE,VCS_REF,TAG,REPLACE_CHINA_MIRROR \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index cf2f8c8f2..34295998f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -80,7 +80,7 @@ LABEL im.ews.zealot.build-date=$BUILD_DATE \ im.ews.zealot.name="Zealot" \ im.ews.zealot.description="Over The Air Server for deployment of Android and iOS apps" \ im.ews.zealot.url="https://zealot.ews.im/" \ - im.ews.zealot.vcs-url="https://github.com/getzealot/zealot" \ + im.ews.zealot.vcs-url="https://github.com/tryzealot/zealot" \ im.ews.zealot.maintaner="icyleaf " ENV TZ="Asia/Shanghai" \ diff --git a/README.md b/README.md index 0eb4c52c8..18022306e 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,10 @@ # Zealot -[![GitHub release](https://img.shields.io/github/v/release/getzealot/zealot?include_prereleases)](https://github.com/getzealot/zealot/blob/develop/CHANGELOG.md) -[![Docker Pulls](https://img.shields.io/docker/pulls/icyleafcn/zealot.svg)](https://hub.docker.com/r/icyleafcn/zealot/) -[![Maintainability](https://codeclimate.com/github/getzealot/zealot/badges/gpa.svg)](https://codeclimate.com/github/getzealot/zealot) +[![GitHub release](https://img.shields.io/github/v/release/tryzealot/zealot?include_prereleases)](https://github.com/tryzealot/zealot/blob/develop/CHANGELOG.md) +[![Docker Pulls](https://img.shields.io/docker/pulls/tryzealot/zealot.svg)](https://hub.docker.com/r/tryzealot/zealot/) +[![Maintainability](https://codeclimate.com/github/tryzealot/zealot/badges/gpa.svg)](https://codeclimate.com/github/tryzealot/zealot) [![Codacy Badge](https://api.codacy.com/project/badge/Grade/bcff7d9de5ba48528bc80aa01bd525c6)](https://www.codacy.com/manual/icyleaf/zealot) -[![License](https://img.shields.io/github/license/getzealot/zealot)](LICENSE) +[![License](https://img.shields.io/github/license/tryzealot/zealot)](LICENSE) 移动应用上传竟然如此简单、解放开发打包的烦恼,轻松放权给测试、产品、运营等使用 App 的人员,提供丰富组件库,打包流程一键上传,iOS 和 Android 轻松接入,深度与 Jenkins 和 Gitlab 集成。 @@ -18,7 +18,7 @@ - [x] 支持获取 iOS 设备 UDID 及显示支持安装的应用 - [x] 支持 OAuth 认证登录(目前以接入 Google,LDAP) - [x] 提供检查新版本和安装服务的 iOS 和 Android 组件 -- [x] 提供 fastlane 插件 [zealot](https://github.com/getzealot/fastlane-plugin-zealot) 提供上传应用和调试文件服务 +- [x] 提供 fastlane 插件 [zealot](https://github.com/tryzealot/fastlane-plugin-zealot) 提供上传应用和调试文件服务 - [x] 可接入 Gitlab 服务直接挂钩源码管理 - [ ] 可接入 Jenkins 服务实现远程构建 - [x] 支持丰富的 REST APIs @@ -26,8 +26,8 @@ ## 最新版本 -- [x] 测试版本 - develop - `icyleafcn/zealot:nightly` - 基于 develop 分支每次提交构建的版本 -- [ ] 稳定版本 - v4.0.0 - `icyleafcn/zealot:latest` - 还在研发测试中,尚未发布。 +- [x] 测试版本 - develop - `tryzealot/zealot:nightly` - 基于 develop 分支每次提交构建的版本 +- [ ] 稳定版本 - 4.0.0 - `tryzealot/zealot:latest` - 还在研发测试中,尚未发布。 ## 演示 @@ -40,7 +40,7 @@ ## 快速上手 ``` -$ git clone https://github.com/getzealot/zealot-docker.git +$ git clone https://github.com/tryzealot/zealot-docker.git $ cd zealot-docker $ ./deploy ``` @@ -58,9 +58,9 @@ https://zealot.ews.im 对 Zealot 有疑问或者建议,发个问题告知下 -https://github.com/getzealot/zealot/issues/new +https://github.com/tryzealot/zealot/issues/new -[fastlan-plugin-link]: https://github.com/getzealot/fastlane-plugin-zealot -[ios-sdk-link]: https://github.com/getzealot/zealot-ios -[android-sdk-link]: https://github.com/getzealot/zealot-android \ No newline at end of file +[fastlan-plugin-link]: https://github.com/tryzealot/fastlane-plugin-zealot +[ios-sdk-link]: https://github.com/tryzealot/zealot-ios +[android-sdk-link]: https://github.com/tryzealot/zealot-android \ No newline at end of file diff --git a/app/controllers/admin/system_info_controller.rb b/app/controllers/admin/system_info_controller.rb index 45ec9c3a7..1caa3fa05 100644 --- a/app/controllers/admin/system_info_controller.rb +++ b/app/controllers/admin/system_info_controller.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true class Admin::SystemInfoController < ApplicationController - VERSION_CHECK_URL = 'https://api.github.com/repos/getzealot/zealot/releases/latest' + VERSION_CHECK_URL = 'https://api.github.com/repos/tryzealot/zealot/releases/latest' EXCLUDED_MOUNT_OPTIONS = [ 'nobrowse', diff --git a/app/views/layouts/_footer.html.slim b/app/views/layouts/_footer.html.slim index 8eeda7df6..d3bf2d41f 100644 --- a/app/views/layouts/_footer.html.slim +++ b/app/views/layouts/_footer.html.slim @@ -4,6 +4,6 @@ footer.main-footer = " #{Setting.version}" strong | Copyright © 2015-2019  - a href="https://github.com/getzealot/zealot" Zealot + a href="https://github.com/tryzealot/zealot" Zealot | . | All rights reserved. diff --git a/lib/backup/manager.rb b/lib/backup/manager.rb index 2f99311c4..6db137b73 100644 --- a/lib/backup/manager.rb +++ b/lib/backup/manager.rb @@ -160,7 +160,7 @@ def verify_backup_version logger.puts logger.puts "Hint:" logger.puts " 1. git checkout v#{settings[:zealot_version]}" - logger.puts " 2. docker pull icyleafcn/zealot:#{settings[:zealot_version]}" + logger.puts " 2. docker pull tryzealot/zealot:#{settings[:zealot_version]}" exit 1 end end diff --git a/lib/tasks/docker.rake b/lib/tasks/docker.rake index fc00dac19..e0ea14d7e 100644 --- a/lib/tasks/docker.rake +++ b/lib/tasks/docker.rake @@ -2,6 +2,6 @@ namespace :docker do task build: :environment do - system('docker build -t icyleafcn/zealot:dev .') + system('docker build -t tryzealot/zealot:dev .') end end From 254b596471ec4e581087d7b97201ce360b7f8d84 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 11 Jan 2021 13:59:43 +0800 Subject: [PATCH 0379/2165] =?UTF-8?q?style:=20=E4=BF=AE=E5=A4=8D=E8=B6=85?= =?UTF-8?q?=E5=AE=BD=E6=98=BE=E7=A4=BA=E5=99=A8=E5=86=85=E5=AE=B9=E9=94=99?= =?UTF-8?q?=E8=AF=AF=E6=98=BE=E7=A4=BA=E4=B8=BA=E5=9B=BA=E5=AE=9A=E5=AE=BD?= =?UTF-8?q?=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/layouts/_content.html.slim | 4 ++-- db/schema.rb | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/views/layouts/_content.html.slim b/app/views/layouts/_content.html.slim index e99e24f64..50bbdc0ec 100644 --- a/app/views/layouts/_content.html.slim +++ b/app/views/layouts/_content.html.slim @@ -4,5 +4,5 @@ section.content - if user_signed_in? == render 'layouts/messages' - .container - == yield \ No newline at end of file + + == yield \ No newline at end of file diff --git a/db/schema.rb b/db/schema.rb index d740e175f..7b6865926 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -2,8 +2,8 @@ # of editing this file, please use the migrations feature of Active Record to # incrementally modify your database, and then regenerate this schema definition. # -# This file is the source Rails uses to define your schema when running `rails -# db:schema:load`. When creating a new database, `rails db:schema:load` tends to +# This file is the source Rails uses to define your schema when running `bin/rails +# db:schema:load`. When creating a new database, `bin/rails db:schema:load` tends to # be faster and is potentially less error prone than running all of your # migrations from scratch. Old migrations may fail to apply correctly if those # migrations use external dependencies or application code. From 8e9da79b0a9bce40898d6c4c79434d477930b677 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 13 Jan 2021 18:24:51 +0000 Subject: [PATCH 0380/2165] chore(deps): [security] bump jquery-validation from 1.19.2 to 1.19.3 Bumps [jquery-validation](https://github.com/jquery-validation/jquery-validation) from 1.19.2 to 1.19.3. **This update includes a security fix.** - [Release notes](https://github.com/jquery-validation/jquery-validation/releases) - [Changelog](https://github.com/jquery-validation/jquery-validation/blob/master/changelog.md) - [Commits](https://github.com/jquery-validation/jquery-validation/compare/1.19.2...1.19.3) Signed-off-by: dependabot-preview[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 28754c035..436197261 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4841,9 +4841,9 @@ jquery-ui-dist@^1.12.1: integrity sha1-XAgV08xvkP9fqvWyaKbiO0ypBPo= jquery-validation@^1.19.1: - version "1.19.2" - resolved "https://registry.npm.taobao.org/jquery-validation/download/jquery-validation-1.19.2.tgz#c602831b0d8c5881400af424e872757ce241eff9" - integrity sha1-xgKDGw2MWIFACvQk6HJ1fOJB7/k= + version "1.19.3" + resolved "https://registry.yarnpkg.com/jquery-validation/-/jquery-validation-1.19.3.tgz#50b350eba8b02bcfd119ba15f199487b7eb64086" + integrity sha512-iXxCS5W7STthSTMFX/NDZfWHBLbJ1behVK3eAgHXAV8/0vRa9M4tiqHvJMr39VGWHMGdlkhrtrkBuaL2UlE8yw== jquery@>=1.10, jquery@>=1.12.0, jquery@>=1.7, jquery@>=2.1.0, jquery@^3.0, "jquery@^3.0 || ^2.0 || ^1.0", jquery@^3.4.0, jquery@^3.4.1: version "3.5.1" From d6073ed2a36d4817f6c2e3972a59f3abd5a3dfcf Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 14 Jan 2021 11:23:33 +0800 Subject: [PATCH 0381/2165] =?UTF-8?q?doc:=20=E6=9B=B4=E6=96=B0=20README?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 28 ++++++++-------------------- 1 file changed, 8 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index 18022306e..110f05705 100644 --- a/README.md +++ b/README.md @@ -6,36 +6,31 @@ [![Codacy Badge](https://api.codacy.com/project/badge/Grade/bcff7d9de5ba48528bc80aa01bd525c6)](https://www.codacy.com/manual/icyleaf/zealot) [![License](https://img.shields.io/github/license/tryzealot/zealot)](LICENSE) -移动应用上传竟然如此简单、解放开发打包的烦恼,轻松放权给测试、产品、运营等使用 App 的人员,提供丰富组件库,打包流程一键上传,iOS 和 Android 轻松接入,深度与 Jenkins 和 Gitlab 集成。 +开源自部署移动应用分发平台,提供 iOS、Android SDK、fastlane 等丰富组件库,打包分发流程、上传应用竟然如此简单、解决开发人员频繁打包的烦恼 🖖 ## 特性 -- [x] 支持 iOS 和 Android 应用的上传和下载 +- [x] 支持 iOS 和 Android 应用的上传、在线安装和本地下载 - [x] 支持应用创建各种类型(Debug、AdHoc、Enterprise、Release)和渠道(小米、华为、Oppp、Vivo、应用宝等) - [x] 支持 iOS dSYM 和 Android Progruard 文件的备份管理和解析 -- [x] 支持单次上传解析 iOS、Android 包甚至是 mobileprovision 文件的信息 +- [x] 支持单次上传解析 iOS、Android 包甚至是 mobileprovision 文件的信息并存储编译分享他人 - [x] 支持自定义网络钩子(WebHooks)发送给通知各种服务(钉钉、企业微信、Slack 等) -- [x] 支持获取 iOS 设备 UDID 及显示支持安装的应用 +- [x] 支持获取 iOS 设备 UDID 及显示该设备可以安装的应用 - [x] 支持 OAuth 认证登录(目前以接入 Google,LDAP) - [x] 提供检查新版本和安装服务的 iOS 和 Android 组件 -- [x] 提供 fastlane 插件 [zealot](https://github.com/tryzealot/fastlane-plugin-zealot) 提供上传应用和调试文件服务 +- [x] 提供 fastlane 插件 [zealot](https://github.com/tryzealot/fastlane-plugin-zealot) 提供上传应用和调试文件服务、同步 iOS 设备 UDID 名单 - [x] 可接入 Gitlab 服务直接挂钩源码管理 - [ ] 可接入 Jenkins 服务实现远程构建 - [x] 支持丰富的 REST APIs - [ ] 支持 GraphGL 接口(进行中) -## 最新版本 - -- [x] 测试版本 - develop - `tryzealot/zealot:nightly` - 基于 develop 分支每次提交构建的版本 -- [ ] 稳定版本 - 4.0.0 - `tryzealot/zealot:latest` - 还在研发测试中,尚未发布。 - -## 演示 +## 在线演示 - 演示地址:https://tryzealot.herokuapp.com/ - 电子邮箱: `admin@zealot.com` - 登录密码:`ze@l0t` -> **注意**: 演示服务的数据每日都会重新初始化,请勿上传重要数据! +> **注意**: 数据每日都会重新初始化,不对用户上传的应用承担任何法律风险,后果自负! ## 快速上手 @@ -56,11 +51,4 @@ $ ./deploy https://zealot.ews.im -对 Zealot 有疑问或者建议,发个问题告知下 - -https://github.com/tryzealot/zealot/issues/new - - -[fastlan-plugin-link]: https://github.com/tryzealot/fastlane-plugin-zealot -[ios-sdk-link]: https://github.com/tryzealot/zealot-ios -[android-sdk-link]: https://github.com/tryzealot/zealot-android \ No newline at end of file +对 Zealot 有疑问或者建议,欢迎[提交问题](https://github.com/tryzealot/zealot/issues/new),我会非常欢迎的。 \ No newline at end of file From aa056b31a4f7bf431f4d8d39b2c4ccf16a4747a4 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Thu, 14 Jan 2021 06:27:58 +0000 Subject: [PATCH 0382/2165] chore(deps-dev): bump webpack-dev-server from 3.11.0 to 3.11.2 Bumps [webpack-dev-server](https://github.com/webpack/webpack-dev-server) from 3.11.0 to 3.11.2. - [Release notes](https://github.com/webpack/webpack-dev-server/releases) - [Changelog](https://github.com/webpack/webpack-dev-server/blob/v3.11.2/CHANGELOG.md) - [Commits](https://github.com/webpack/webpack-dev-server/compare/v3.11.0...v3.11.2) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 122 ++++++++++++++++++++------------------------------- 2 files changed, 48 insertions(+), 76 deletions(-) diff --git a/package.json b/package.json index ae64bd90d..cfaf3af42 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "turbolinks": "^5.2.0" }, "devDependencies": { - "webpack-dev-server": "^3.11.0" + "webpack-dev-server": "^3.11.2" }, "version": "4.0.0" } diff --git a/yarn.lock b/yarn.lock index 28754c035..7cef12448 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1023,11 +1023,6 @@ "@types/minimatch" "*" "@types/node" "*" -"@types/json-schema@^7.0.4": - version "7.0.5" - resolved "https://registry.npm.taobao.org/@types/json-schema/download/@types/json-schema-7.0.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fjson-schema%2Fdownload%2F%40types%2Fjson-schema-7.0.5.tgz#dcce4430e64b443ba8945f0290fb564ad5bac6dd" - integrity sha1-3M5EMOZLRDuolF8CkPtWStW6xt0= - "@types/json-schema@^7.0.5": version "7.0.6" resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.6.tgz#f4c7ec43e81b319a9815115031709f26987891f0" @@ -1333,7 +1328,7 @@ ajv-keywords@^3.5.2: resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== -ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.2, ajv@^6.5.5: +ajv@^6.1.0, ajv@^6.10.2, ajv@^6.5.5: version "6.12.3" resolved "https://registry.npm.taobao.org/ajv/download/ajv-6.12.3.tgz?cache=0&sync_timestamp=1593876991897&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-6.12.3.tgz#18c5af38a111ddeb4f2697bd78d68abc1cabd706" integrity sha1-GMWvOKER3etPJpe9eNaKvByr1wY= @@ -2980,10 +2975,10 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3: dependencies: ms "2.0.0" -debug@^3.1.1, debug@^3.2.5: - version "3.2.6" - resolved "https://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" - integrity sha1-6D0X3hbYp++3cX7b5fsQE17uYps= +debug@^3.1.1, debug@^3.2.6: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== dependencies: ms "^2.1.1" @@ -3653,17 +3648,10 @@ fastclick@^1.0.6: resolved "https://registry.npm.taobao.org/fastclick/download/fastclick-1.0.6.tgz#161625b27b1a5806405936bda9a2c1926d06be6a" integrity sha1-FhYlsnsaWAZAWTa9qaLBkm0Gvmo= -faye-websocket@^0.10.0: - version "0.10.0" - resolved "https://registry.npm.taobao.org/faye-websocket/download/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" - integrity sha1-TkkvjQTftviQA1B/btvy1QHnxvQ= - dependencies: - websocket-driver ">=0.5.1" - -faye-websocket@~0.11.1: +faye-websocket@^0.11.3: version "0.11.3" - resolved "https://registry.npm.taobao.org/faye-websocket/download/faye-websocket-0.11.3.tgz#5c0e9a8968e8912c286639fde977a8b209f2508e" - integrity sha1-XA6aiWjokSwoZjn96XeosgnyUI4= + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.3.tgz#5c0e9a8968e8912c286639fde977a8b209f2508e" + integrity sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA== dependencies: websocket-driver ">=0.5.1" @@ -4915,10 +4903,10 @@ json-stringify-safe@~5.0.1: resolved "https://registry.npm.taobao.org/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= -json3@^3.3.2: +json3@^3.3.3: version "3.3.3" - resolved "https://registry.npm.taobao.org/json3/download/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" - integrity sha1-f8EON1/FrkLEcFpcwKpvYr4wW4E= + resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" + integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== json5@^1.0.1: version "1.0.1" @@ -5546,10 +5534,10 @@ nice-try@^1.0.4: resolved "https://registry.npm.taobao.org/nice-try/download/nice-try-1.0.5.tgz?cache=0&sync_timestamp=1584699726257&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnice-try%2Fdownload%2Fnice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" integrity sha1-ozeKdpbOfSI+iPybdkvX7xCJ42Y= -node-forge@0.9.0: - version "0.9.0" - resolved "https://registry.npm.taobao.org/node-forge/download/node-forge-0.9.0.tgz#d624050edbb44874adca12bb9a52ec63cb782579" - integrity sha1-1iQFDtu0SHStyhK7mlLsY8t4JXk= +node-forge@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" + integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA== node-gyp@^3.8.0: version "3.8.0" @@ -7381,16 +7369,7 @@ schema-utils@^1.0.0: ajv-errors "^1.0.0" ajv-keywords "^3.1.0" -schema-utils@^2.6.1, schema-utils@^2.6.5, schema-utils@^2.6.6, schema-utils@^2.7.0: - version "2.7.0" - resolved "https://registry.npm.taobao.org/schema-utils/download/schema-utils-2.7.0.tgz#17151f76d8eae67fbbf77960c33c676ad9f4efc7" - integrity sha1-FxUfdtjq5n+793lgwzxnatn078c= - dependencies: - "@types/json-schema" "^7.0.4" - ajv "^6.12.2" - ajv-keywords "^3.4.1" - -schema-utils@^2.7.1: +schema-utils@^2.6.1, schema-utils@^2.6.5, schema-utils@^2.6.6, schema-utils@^2.7.0, schema-utils@^2.7.1: version "2.7.1" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== @@ -7435,12 +7414,12 @@ select@^1.1.2: resolved "https://registry.npm.taobao.org/select/download/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d" integrity sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0= -selfsigned@^1.10.7: - version "1.10.7" - resolved "https://registry.npm.taobao.org/selfsigned/download/selfsigned-1.10.7.tgz#da5819fd049d5574f28e88a9bcc6dbc6e6f3906b" - integrity sha1-2lgZ/QSdVXTyjoipvMbbxubzkGs= +selfsigned@^1.10.8: + version "1.10.8" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.8.tgz#0d17208b7d12c33f8eac85c41835f27fc3d81a30" + integrity sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w== dependencies: - node-forge "0.9.0" + node-forge "^0.10.0" "semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: version "5.7.1" @@ -7634,26 +7613,26 @@ snapdragon@^0.8.1: source-map-resolve "^0.5.0" use "^3.1.0" -sockjs-client@1.4.0: - version "1.4.0" - resolved "https://registry.npm.taobao.org/sockjs-client/download/sockjs-client-1.4.0.tgz#c9f2568e19c8fd8173b4997ea3420e0bb306c7d5" - integrity sha1-yfJWjhnI/YFztJl+o0IOC7MGx9U= +sockjs-client@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.5.0.tgz#2f8ff5d4b659e0d092f7aba0b7c386bd2aa20add" + integrity sha512-8Dt3BDi4FYNrCFGTL/HtwVzkARrENdwOUf1ZoW/9p3M8lZdFT35jVdrHza+qgxuG9H3/shR4cuX/X9umUrjP8Q== dependencies: - debug "^3.2.5" + debug "^3.2.6" eventsource "^1.0.7" - faye-websocket "~0.11.1" - inherits "^2.0.3" - json3 "^3.3.2" - url-parse "^1.4.3" + faye-websocket "^0.11.3" + inherits "^2.0.4" + json3 "^3.3.3" + url-parse "^1.4.7" -sockjs@0.3.20: - version "0.3.20" - resolved "https://registry.npm.taobao.org/sockjs/download/sockjs-0.3.20.tgz#b26a283ec562ef8b2687b44033a4eeceac75d855" - integrity sha1-smooPsVi74smh7RAM6Tuzqx12FU= +sockjs@^0.3.21: + version "0.3.21" + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.21.tgz#b34ffb98e796930b60a0cfa11904d6a339a7d417" + integrity sha512-DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw== dependencies: - faye-websocket "^0.10.0" + faye-websocket "^0.11.3" uuid "^3.4.0" - websocket-driver "0.6.5" + websocket-driver "^0.7.4" sort-keys@^1.0.0: version "1.1.2" @@ -8469,7 +8448,7 @@ urix@^0.1.0: resolved "https://registry.npm.taobao.org/urix/download/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= -url-parse@^1.4.3: +url-parse@^1.4.3, url-parse@^1.4.7: version "1.4.7" resolved "https://registry.npm.taobao.org/url-parse/download/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278" integrity sha1-qKg1NejACjFuQDpdtKwbm4U64ng= @@ -8632,10 +8611,10 @@ webpack-dev-middleware@^3.7.2: range-parser "^1.2.1" webpack-log "^2.0.0" -webpack-dev-server@^3.11.0: - version "3.11.0" - resolved "https://registry.npm.taobao.org/webpack-dev-server/download/webpack-dev-server-3.11.0.tgz#8f154a3bce1bcfd1cc618ef4e703278855e7ff8c" - integrity sha1-jxVKO84bz9HMYY705wMniFXn/4w= +webpack-dev-server@^3.11.2: + version "3.11.2" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.2.tgz#695ebced76a4929f0d5de7fd73fafe185fe33708" + integrity sha512-A80BkuHRQfCiNtGBS1EMf2ChTUs0x+B3wGDFmOeT4rmJOHhHTCH2naNxIHhmkr0/UillP4U3yeIyv1pNp+QDLQ== dependencies: ansi-html "0.0.7" bonjour "^3.5.0" @@ -8657,11 +8636,11 @@ webpack-dev-server@^3.11.0: p-retry "^3.0.1" portfinder "^1.0.26" schema-utils "^1.0.0" - selfsigned "^1.10.7" + selfsigned "^1.10.8" semver "^6.3.0" serve-index "^1.9.1" - sockjs "0.3.20" - sockjs-client "1.4.0" + sockjs "^0.3.21" + sockjs-client "^1.5.0" spdy "^4.0.2" strip-ansi "^3.0.1" supports-color "^6.1.0" @@ -8716,17 +8695,10 @@ webpack@^4.44.1: watchpack "^1.7.4" webpack-sources "^1.4.1" -websocket-driver@0.6.5: - version "0.6.5" - resolved "https://registry.npm.taobao.org/websocket-driver/download/websocket-driver-0.6.5.tgz?cache=0&sync_timestamp=1591289007652&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebsocket-driver%2Fdownload%2Fwebsocket-driver-0.6.5.tgz#5cb2556ceb85f4373c6d8238aa691c8454e13a36" - integrity sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY= - dependencies: - websocket-extensions ">=0.1.1" - -websocket-driver@>=0.5.1: +websocket-driver@>=0.5.1, websocket-driver@^0.7.4: version "0.7.4" - resolved "https://registry.npm.taobao.org/websocket-driver/download/websocket-driver-0.7.4.tgz?cache=0&sync_timestamp=1591289007652&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebsocket-driver%2Fdownload%2Fwebsocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" - integrity sha1-ia1Slbv2S0gKvLox5JU6ynBvV2A= + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.4.tgz#89ad5295bbf64b480abcba31e4953aca706f5760" + integrity sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg== dependencies: http-parser-js ">=0.5.1" safe-buffer ">=5.1.0" From cd1b32a031fbf5ad030d041ce61ccce41ecb7507 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 19 Jan 2021 05:39:14 +0000 Subject: [PATCH 0383/2165] chore(deps): bump app-info from 2.2.0 to 2.3.0 Bumps [app-info](https://github.com/icyleaf/app-info) from 2.2.0 to 2.3.0. - [Release notes](https://github.com/icyleaf/app-info/releases) - [Changelog](https://github.com/icyleaf/app_info/blob/master/CHANGELOG.md) - [Commits](https://github.com/icyleaf/app-info/compare/v2.2.0...v2.3.0) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Gemfile b/Gemfile index 3fb8b767d..777e69454 100644 --- a/Gemfile +++ b/Gemfile @@ -77,7 +77,7 @@ gem 'turbolinks', '~> 5' gem 'webpacker', '~> 5.2' # 用于解析 ipa 和 apk 包 -gem 'app-info', '~> 2.2.0' +gem 'app-info', '~> 2.3.0' # Mobile config gem 'rails-settings-cached', '~> 2.5' diff --git a/Gemfile.lock b/Gemfile.lock index 26dfae496..5f59351fe 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -11,7 +11,7 @@ GIT GEM remote: https://rubygems.org/ specs: - CFPropertyList (3.0.2) + CFPropertyList (3.0.3) actioncable (6.1.1) actionpack (= 6.1.1) activesupport (= 6.1.1) @@ -81,9 +81,9 @@ GEM zeitwerk (~> 2.3) addressable (2.7.0) public_suffix (>= 2.0.2, < 5.0) - app-info (2.2.0) + app-info (2.3.0) CFPropertyList (>= 2.3.4, < 3.1.0) - image_size (>= 1.5, < 2.1) + image_size (>= 1.5, < 2.2) pngdefry (~> 0.1.2) ruby-macho (~> 2.2.0) ruby_android (~> 0.7.7) @@ -204,7 +204,7 @@ GEM image_processing (1.10.3) mini_magick (>= 4.9.5, < 5) ruby-vips (>= 2.0.17, < 3) - image_size (2.0.2) + image_size (2.1.0) interception (0.5) jb (0.8.0) jenkins_api_client (1.5.3) @@ -466,7 +466,7 @@ PLATFORMS DEPENDENCIES active_model_serializers (~> 0.10.12) activejob-status - app-info (~> 2.2.0) + app-info (~> 2.3.0) awesome_print better_errors binding_of_caller From 66dc5a32d41ee0b35e227b0c7401a146c5dab0db Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 19 Jan 2021 15:21:02 +0800 Subject: [PATCH 0384/2165] =?UTF-8?q?style:=20=E4=BC=98=E5=8C=96=E5=88=86?= =?UTF-8?q?=E9=A1=B5=E5=99=A8=E5=9C=A8=E5=B0=8F=E5=B1=8F=E7=A7=BB=E5=8A=A8?= =?UTF-8?q?=E8=AE=BE=E5=A4=87=E9=94=99=E4=BD=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/kaminari/_paginator.html.slim | 4 ++-- config/initializers/kaminari_config.rb | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 config/initializers/kaminari_config.rb diff --git a/app/views/kaminari/_paginator.html.slim b/app/views/kaminari/_paginator.html.slim index 7eb6c2793..16b0787d6 100644 --- a/app/views/kaminari/_paginator.html.slim +++ b/app/views/kaminari/_paginator.html.slim @@ -6,8 +6,8 @@ - each_page do |page| - if page.left_outer? || page.right_outer? || page.inside_window? == page_tag page - - elsif !page.was_truncated? - == gap_tag + / - elsif !page.was_truncated? + / == gap_tag == next_page_tag unless current_page.last? == last_page_tag unless current_page.last? diff --git a/config/initializers/kaminari_config.rb b/config/initializers/kaminari_config.rb new file mode 100644 index 000000000..9bd4c7aa9 --- /dev/null +++ b/config/initializers/kaminari_config.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true + +Kaminari.configure do |config| + # config.default_per_page = 25 + # config.max_per_page = nil + config.window = 1 + # config.outer_window = 0 + # config.left = 0 + # config.right = 0 + # config.page_method_name = :page + # config.param_name = :page + # config.max_pages = nil + # config.params_on_first_page = false +end From 5e7b2850af0c909083c6617b322706af1362e0ad Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 19 Jan 2021 18:16:42 +0800 Subject: [PATCH 0385/2165] =?UTF-8?q?style:=20Debug=20File=20=3D>=20?= =?UTF-8?q?=E8=B0=83=E8=AF=95=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/debug_files/_debug_file.html.slim | 2 +- app/views/debug_files/_help.html.slim | 2 +- app/views/debug_files/index.html.slim | 4 ++-- app/views/debug_files/new.html.slim | 2 +- config/locales/simple_form/simple_form.zh-CN.yml | 2 +- config/locales/zealot/zh-CN.yml | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/app/views/debug_files/_debug_file.html.slim b/app/views/debug_files/_debug_file.html.slim index 5e2b95af2..32af1905e 100644 --- a/app/views/debug_files/_debug_file.html.slim +++ b/app/views/debug_files/_debug_file.html.slim @@ -46,4 +46,4 @@ ruby: == render 'metadata', debug_file: debug_file - else .alert - | 还没有上传任何 Debug File,点击右上角上传一个吧。 \ No newline at end of file + | 还没有上传任何调试文件,点击右上角上传一个吧。 \ No newline at end of file diff --git a/app/views/debug_files/_help.html.slim b/app/views/debug_files/_help.html.slim index 46b08396e..544641871 100644 --- a/app/views/debug_files/_help.html.slim +++ b/app/views/debug_files/_help.html.slim @@ -1,7 +1,7 @@ .col-md-12 .card .card-header.card-border - h3.card-title 什么是 Debug File + h3.card-title 什么是调试文件? .card-body.table-responsive div h4 iOS diff --git a/app/views/debug_files/index.html.slim b/app/views/debug_files/index.html.slim index ee178fe5e..30880bb52 100644 --- a/app/views/debug_files/index.html.slim +++ b/app/views/debug_files/index.html.slim @@ -8,7 +8,7 @@ - if user_signed_in? a.btn.btn-icon.bg-green href="#{new_debug_file_path}" i.far.fa-plus-square - | 上传 Debug File 文件 + | 上传调试文件 .row .col-md-12 @@ -45,7 +45,7 @@ .modal-dialog role="document" .modal-content .modal-header - h4.modal-title 删除确认 Debug File? + h4.modal-title 删除确认调试文件? button.close aria-label="Close" data-dismiss="modal" type="button" span aria-hidden="true" × .modal-body diff --git a/app/views/debug_files/new.html.slim b/app/views/debug_files/new.html.slim index 692e31379..ad41205e6 100644 --- a/app/views/debug_files/new.html.slim +++ b/app/views/debug_files/new.html.slim @@ -16,7 +16,7 @@ .card .card-header.card-border - h3.card-title 如何找到 Debug File 文件 + h3.card-title 如何找到调试文件 .card-body.table-responsive p 一般情况下,项目编译完 dSYM 文件跟 app 文件在同一个目录下,下面以 XCode 作为 IDE 详细说明定位 dSYM 文件。 ul diff --git a/config/locales/simple_form/simple_form.zh-CN.yml b/config/locales/simple_form/simple_form.zh-CN.yml index 8bb3e6ef7..c1bd3cd75 100644 --- a/config/locales/simple_form/simple_form.zh-CN.yml +++ b/config/locales/simple_form/simple_form.zh-CN.yml @@ -53,7 +53,7 @@ zh-CN: device_type: '应用平台' release_version: '发布版本' build_version: '构建版本' - file: 'Debug File 文件' + file: '调试文件' checksum: '唯一校验码' hints: diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index 7bafeb100..5d311d570 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -69,7 +69,7 @@ zh-CN: create: 新增网络钩子 update: 更新网络钩子 debug_file: - create: 上传 Debug File + create: 上传调试文件 views: pagination: truncate: ... From 8404a041305789b1031553ff9502e0ec85a3e8d8 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 20 Jan 2021 11:35:35 +0800 Subject: [PATCH 0386/2165] =?UTF-8?q?style:=20=E8=B0=83=E6=95=B4=E5=BA=94?= =?UTF-8?q?=E7=94=A8=E6=B8=A0=E9=81=93=E6=9B=B4=E7=AC=A6=E5=90=88=E9=80=BB?= =?UTF-8?q?=E8=BE=91=E7=9A=84=E5=85=88=E5=90=8E=E9=A1=BA=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/channel.rb | 2 +- app/models/release.rb | 2 +- app/views/channels/_activity.html.slim | 2 +- app/views/releases/body/_activity.html.slim | 4 +++- app/views/releases/body/_metadata.html.slim | 10 +++++----- 5 files changed, 11 insertions(+), 9 deletions(-) diff --git a/app/models/channel.rb b/app/models/channel.rb index 37fcfb446..bdcc14486 100644 --- a/app/models/channel.rb +++ b/app/models/channel.rb @@ -36,7 +36,7 @@ def find_since_version(bundle_id, release_version, build_version) end def app_name - "#{app.name} #{name} #{scheme.name}" + "#{app.name} #{scheme.name} #{name}" end def release_versions diff --git a/app/models/release.rb b/app/models/release.rb index 7f326eca7..62bcb2188 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -84,7 +84,7 @@ def self.decode_icon(icon_file) private_class_method :decode_icon def app_name - "#{app.name} #{channel.name} #{scheme.name}" + "#{app.name} #{scheme.name} #{channel.name}" end def size diff --git a/app/views/channels/_activity.html.slim b/app/views/channels/_activity.html.slim index 372e31ae1..4097ce8da 100644 --- a/app/views/channels/_activity.html.slim +++ b/app/views/channels/_activity.html.slim @@ -16,7 +16,7 @@ = app_icon(release, size: :medium, class: 'img-circle') .product-info a.product-title href="javascript:void(0)" - = link_to release.app_name, channel_release_path(release.channel, release) + = link_to release.name || release.app_name, channel_release_path(release.channel, release) small span.badge.badge-light.float-right data-toggle="tooltip" title="#{release.created_at}" = time_ago_in_words(release.created_at) diff --git a/app/views/releases/body/_activity.html.slim b/app/views/releases/body/_activity.html.slim index 257d03580..12a732ccb 100644 --- a/app/views/releases/body/_activity.html.slim +++ b/app/views/releases/body/_activity.html.slim @@ -44,4 +44,6 @@ ruby: - else = release.short_git_commit div - i.fas.fa-clock.bg-gray \ No newline at end of file + i.fas.fa-clock.bg-gray + .card-footbar + a.btn.btn-default.btn-block href="#{channel_path(@release.channel)}" 更多上传 \ No newline at end of file diff --git a/app/views/releases/body/_metadata.html.slim b/app/views/releases/body/_metadata.html.slim index 7729e2dc1..2c5929924 100644 --- a/app/views/releases/body/_metadata.html.slim +++ b/app/views/releases/body/_metadata.html.slim @@ -15,21 +15,21 @@ h3.card-title = app_icon(@release, size: :medium, class: 'app-icon img-circle img-bordered-sm') .app-name - = @release.app_name + = @release.name || @release.app_name .app-identifier = @release.bundle_id .card-body ul.app-metadata + - if @release.name.present? + li title="应用" + i.fas.fa-list-ul + = link_to @release.app_name, channel_path(@release.channel) li title="上传版本" i.fab.fa-gg = @release.version li title="平台" = device_icon(@release.channel.device_type) = display_app_device(@release) - - if @release.name.present? - li title="应用名" - i.fas.fa-file - = @release.name li title="主版本" i.fas.fa-server = "#{@release.release_version} (#{@release.build_version})" From 3be0a7b508e7f6110344842719c778fe30e44201 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 20 Jan 2021 11:40:51 +0800 Subject: [PATCH 0387/2165] =?UTF-8?q?style:=20=E8=B0=83=E6=95=B4=E6=B8=A0?= =?UTF-8?q?=E9=81=93=E8=AF=A6=E6=83=85=E7=9A=84=E9=A1=BA=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/channels/_metadata.slim | 32 +++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/app/views/channels/_metadata.slim b/app/views/channels/_metadata.slim index 462b88d20..96f156371 100644 --- a/app/views/channels/_metadata.slim +++ b/app/views/channels/_metadata.slim @@ -1,31 +1,31 @@ .card.card-solid .card-header h3.card-title 渠道信息 - .card-body.p-0 - p.d-flex.flex-column.border-bottom.pl-3.pb-3.pt-3 - span.font-weight-bold = @channel.device_type.capitalize - span.text-muted 设备类型 - p.d-flex.flex-column.border-bottom.pl-3.pb-3 - span.font-weight-bold = @channel.slug - span.text-muted 唯一地址 - p.d-flex.flex-column.border-bottom.pl-3.pb-3 - span.font-weight-bold = @channel.bundle_id - span.text-muted - | 匹配模式, - code * - | 表示不限制上传包的包名 + .card-body.p-0.pt-3 p.d-flex.flex-column.border-bottom.pl-3.pb-3 span.font-weight-bold = @channel.releases.count span.text-muted 上传版本 p.d-flex.flex-column.border-bottom.pl-3.pb-3 - span.font-weight-bold = @channel.git_url == '' ? '未设置' : @channel.git_url - span.text-muted Git 仓库地址 + span.font-weight-bold = @channel.slug + span.text-muted 唯一地址 - if user_signed_in? p.d-flex.flex-column.border-bottom.pl-3.pb-3 - span.font-weight-bold = @channel.password == '' ? '未设置' : @channel.password + span.font-weight-bold = @channel.password.blank? ? '未设置' : @channel.password span.text-muted 访问密码 p.d-flex.flex-column.border-bottom.pl-3.pb-3 span.font-weight-bold = @channel.key span.text-muted 渠道 KEY + p.d-flex.flex-column.border-bottom.pl-3.pb-3.pt-3 + span.font-weight-bold = @channel.device_type.capitalize + span.text-muted 设备类型 + p.d-flex.flex-column.border-bottom.pl-3.pb-3 + span.font-weight-bold = @channel.bundle_id + span.text-muted + | 匹配模式 + - if @channel.bundle_id == '*' + | (不限制上传包的包名) + p.d-flex.flex-column.border-bottom.pl-3.pb-3 + span.font-weight-bold = @channel.git_url.blank? ? '未设置' : @channel.git_url + span.text-muted Git 仓库地址 .card-footbar.pl-3.pr-3.pb-3 a.btn.btn-default.btn-block href="#{app_path(@channel.app)}" 应用管理 \ No newline at end of file From a0c04475c86a7145e23901a08e609e5ffccf8cab Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 20 Jan 2021 15:25:07 +0800 Subject: [PATCH 0388/2165] =?UTF-8?q?fix:=20=E7=BD=91=E7=BB=9C=E9=92=A9?= =?UTF-8?q?=E5=AD=90=E6=97=A0=E6=B3=95=E8=8E=B7=E5=8F=96=20title=20?= =?UTF-8?q?=E5=8F=98=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/admin/web_hooks_controller.rb | 1 - app/jobs/app_web_hook_job.rb | 25 ++++++++----------- config/initializers/sidekiq.rb | 9 ++++--- .../locales/simple_form/simple_form.zh-CN.yml | 4 ++- 4 files changed, 18 insertions(+), 21 deletions(-) diff --git a/app/controllers/admin/web_hooks_controller.rb b/app/controllers/admin/web_hooks_controller.rb index 086531873..95d6b0bb9 100644 --- a/app/controllers/admin/web_hooks_controller.rb +++ b/app/controllers/admin/web_hooks_controller.rb @@ -22,7 +22,6 @@ def new def create @web_hook = WebHook.new(web_hook_params) authorize @web_hook - return render :new unless @web_hook.save redirect_to admin_users_url, notice: '网络钩子创建成功' diff --git a/app/jobs/app_web_hook_job.rb b/app/jobs/app_web_hook_job.rb index 6a0838b2a..5fbb6320c 100644 --- a/app/jobs/app_web_hook_job.rb +++ b/app/jobs/app_web_hook_job.rb @@ -25,15 +25,17 @@ def perform(event, web_hook, channel) def send_request r = HTTP.headers(content_type: 'application/json') .post(@web_hook.url, body: json_body) - logger.info(log_message('trigger successfully')) if r.code == 200 logger.debug("trigger response body: #{r.body}") + logger.info(log_message('trigger successfully')) if r.code == 200 rescue HTTP::Error => e logger.error(log_message("trigger fail: #{e}")) end def json_body + # 如果发现自定义钩子就进行组装 return build_body if @web_hook.body.present? + # 默认结构体 WebHooks::PushSerializer.new(@channel).to_json end @@ -43,7 +45,8 @@ def build_body assigns: { event: @event, title: title, - name: @release.app_name, + name: @release.name, + app_name: @release.app_name, device_type: @channel.device_type, release_version: @release.release_version, build_version: @release.build_version, @@ -60,25 +63,17 @@ def build_body def title case @event - when 'upload_event' + when 'upload_events' "#{@release.app_name} 上传了 #{@release.release_version} 版本" - when 'download_event' + when 'download_events' "#{@release.app_name} #{@release.release_version} 版本被下载" - when 'changelog_event' + when 'changelog_events' "#{@release.app_name} #{@release.release_version} 版本更新了变更日志" + else + "#{@release.app_name} 触发了未知事件: #{@event}" end end - def description - [ - "平台:#{@app.device_type}", - "标识:#{@app.identifier}", - "版本:#{@release.release_version} (#{@release.build_version})", - "大小:#{number_to_human_size(@release.filesize)}", - "渠道:#{@release.channel}" - ].join(' / ') - end - def log_message(message) "[Channel] #{@channel.id} #{message}" end diff --git a/config/initializers/sidekiq.rb b/config/initializers/sidekiq.rb index 0de57c6c0..1f25a8695 100644 --- a/config/initializers/sidekiq.rb +++ b/config/initializers/sidekiq.rb @@ -3,10 +3,11 @@ Sidekiq.configure_server do |config| config.redis = sidekiq_config - - logger_level = ::Logger.const_get(ENV.fetch('RAILS_LOG_LEVEL', 'info').upcase.to_s) - logger_level = :debug if Rails.env.development? - config.logger.level = logger_level + puts "sidekiq log level" + puts config.logger.level + # logger_level = ::Logger.const_get(ENV.fetch('RAILS_LOG_LEVEL', 'info').upcase.to_s) + # logger_level = :debug if Rails.env.development? + # config.logger.level = logger_level end Sidekiq.configure_client do |config| diff --git a/config/locales/simple_form/simple_form.zh-CN.yml b/config/locales/simple_form/simple_form.zh-CN.yml index c1bd3cd75..20f3bbf46 100644 --- a/config/locales/simple_form/simple_form.zh-CN.yml +++ b/config/locales/simple_form/simple_form.zh-CN.yml @@ -92,12 +92,14 @@ zh-CN: { event: @event, title: @title, - app_name: @name, + name: @app_name, + app_name: @app_name, device_type: @device_type, release_version: @release_version, build_version: @build_version, size: @file_size, changelog: @changelog, + release_url: @release_url, install_url: @install_url, icon_url: @icon_url, qrcode_url: @qrcode_url, From ea12d104e3a50282b0abe7a95c183ef2df728cf9 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 22 Jan 2021 05:38:36 +0000 Subject: [PATCH 0389/2165] chore(deps): bump sidekiq from 6.1.2 to 6.1.3 Bumps [sidekiq](https://github.com/mperham/sidekiq) from 6.1.2 to 6.1.3. - [Release notes](https://github.com/mperham/sidekiq/releases) - [Changelog](https://github.com/mperham/sidekiq/blob/master/Changes.md) - [Commits](https://github.com/mperham/sidekiq/compare/v6.1.2...v6.1.3) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 3fb8b767d..f122a2a37 100644 --- a/Gemfile +++ b/Gemfile @@ -69,7 +69,7 @@ gem 'rqrcode' # 异步队列 gem 'activejob-status' -gem 'sidekiq', '6.1.2' +gem 'sidekiq', '6.1.3' gem 'sidekiq-cron', github: 'MikeRogers0/sidekiq-cron', branch: 'bug/fix-redis-warning' # See https://github.com/ondrejbartas/sidekiq-cron/issues/286 # Assets diff --git a/Gemfile.lock b/Gemfile.lock index 26dfae496..487929550 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -397,7 +397,7 @@ GEM sentry-raven (3.1.1) faraday (>= 1.0) shellany (0.0.1) - sidekiq (6.1.2) + sidekiq (6.1.3) connection_pool (>= 2.2.2) rack (~> 2.0) redis (>= 4.2.0) @@ -517,7 +517,7 @@ DEPENDENCIES rubocop-rails ruby-debug-ide sentry-raven - sidekiq (= 6.1.2) + sidekiq (= 6.1.3) sidekiq-cron! simple_form (~> 5.0) slim-rails (~> 3.2.0) From df0a265fa77ef827ba012e47da4ded1d0e562642 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 22 Jan 2021 15:15:49 +0800 Subject: [PATCH 0390/2165] =?UTF-8?q?feat:=20=E6=89=BE=E4=B8=8D=E5=88=B0?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E8=AF=A6=E6=83=85=E7=BB=99=E5=87=BA=E4=B8=80?= =?UTF-8?q?=E4=B8=AA=E6=8F=90=E7=A4=BA=E9=A1=B5=E9=9D=A2=EF=BC=8C=E5=B9=B6?= =?UTF-8?q?=E6=89=8B=E5=8A=A8=E8=B7=B3=E8=BD=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/releases_controller.rb | 32 +++++++++++++++----------- app/views/releases/not_found.html.slim | 18 +++++++++++++++ 2 files changed, 36 insertions(+), 14 deletions(-) create mode 100644 app/views/releases/not_found.html.slim diff --git a/app/controllers/releases_controller.rb b/app/controllers/releases_controller.rb index ca6a26eeb..8a82a4c9a 100644 --- a/app/controllers/releases_controller.rb +++ b/app/controllers/releases_controller.rb @@ -1,17 +1,15 @@ # frozen_string_literal: true class ReleasesController < ApplicationController - before_action :check_user_logged_in, except: %i[show auth] + before_action :authenticate_login!, except: %i[show auth] before_action :set_channel before_action :set_release, only: %i[show auth destroy] - + before_action :authenticate_app!, only: :show def index - redirect_to channel_release_path(@channel, @channel.releases.last) + redirect_to channel_release_path(@channel, @channel.releases.last), notice: "没有找到版本1111,跳转至最新版本" end def show - redirect_to new_user_session_path unless !wechat? || @channel.password.blank? || !user_signed_in? - @title = @release.app_name end @@ -52,22 +50,26 @@ def auth protected - def set_release - @release = Release.find(params[:id]) - end - - def set_channel - @channel = Channel.friendly.find params[:channel_id] + def authenticate_login! + authenticate_user! unless wechat? || Setting.guest_mode end - def check_user_logged_in - authenticate_user! unless wechat? + def authenticate_app! + return if wechat? || @channel.password.present? || user_signed_in? || Setting.guest_mode end def wechat? request.user_agent.include? 'MicroMessenger' end + def set_release + @release = Release.find params[:id] + end + + def set_channel + @channel = Channel.friendly.find params[:channel_id] + end + def release_params params.require(:release).permit( :file, :changelog, :release_type, :branch, :git_commit, :ci_url @@ -75,6 +77,8 @@ def release_params end def render_not_found_entity_response(e) - redirect_to channel_releases_path, notice: "没有找到版本 #{e.id},跳转至最新版本" + @title = "#{@channel.app_name} 找不到 #{e.id} 版本" + @release_id = params[:id] + render :not_found, status: :not_found end end diff --git a/app/views/releases/not_found.html.slim b/app/views/releases/not_found.html.slim new file mode 100644 index 000000000..c469a8026 --- /dev/null +++ b/app/views/releases/not_found.html.slim @@ -0,0 +1,18 @@ +- content_for :title do + = @title + +.row + .col-md-12 + .card + .card-header + h3.card-title + i.fas.fa-cloud-rain + = " #{@channel.app_name}" + .card-body + p = "抱歉,你要找的 #{@release_id} 版本已经不存在,可能存在以下原因:" + ul + li 可能当前版本被人工删除 + li 系统开启了清理老版本功能而当前版本属于历史老版本被清理掉 + li 您访问的应用版本真的不存在 + .card-footbar + a.btn.btn-success.btn-block href="#{channel_releases_path(@channel)}" 点击访问最新版本 \ No newline at end of file From 1e9cc3d61aed128dd20d9d9ba4a9559393967ff4 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 22 Jan 2021 15:17:53 +0800 Subject: [PATCH 0391/2165] =?UTF-8?q?style:=20=E7=89=88=E6=9C=AC=E6=83=B3?= =?UTF-8?q?=E5=8E=BB=E4=BA=8C=E7=BB=B4=E7=A0=81=E5=87=8F=E5=B0=91=E5=9B=9B?= =?UTF-8?q?=E5=91=A8=E7=9A=84=E7=A9=BA=E7=99=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/releases/sidebar/_qrcode.html.slim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/releases/sidebar/_qrcode.html.slim b/app/views/releases/sidebar/_qrcode.html.slim index c2ebd8289..121cfd865 100644 --- a/app/views/releases/sidebar/_qrcode.html.slim +++ b/app/views/releases/sidebar/_qrcode.html.slim @@ -7,7 +7,7 @@ .card-tools button.btn.btn-tool data-card-widget="collapse" i.fas.fa-minus - .card-body.text-center + .card-body.text-center.p-0 .qr_code = image_tag channel_release_qrcode_path(@release.channel, @release, size: :large) .card-footer.text-center 任何支持二维码识别的 App 均可 From bb8da71d7825ac867ce732e11c82f039ca2f74b3 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 26 Jan 2021 12:53:06 +0800 Subject: [PATCH 0392/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=B8=85?= =?UTF-8?q?=E7=90=86=E8=80=81=E7=89=88=E6=9C=AC=E6=AF=94=E8=BE=83=E5=8F=8D?= =?UTF-8?q?=E4=BA=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/jobs/clean_old_releases_job.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/jobs/clean_old_releases_job.rb b/app/jobs/clean_old_releases_job.rb index 331dc4699..eb5cd79b4 100644 --- a/app/jobs/clean_old_releases_job.rb +++ b/app/jobs/clean_old_releases_job.rb @@ -28,7 +28,7 @@ def clean_previouse_build_version(channel, release_version) versions = releases.map(&:version) latest_version = versions.max { |a,b| compare_version(a, b) } - logger.info("Delete channel [#{channel.id}] has versions: #{versions} and latest verison is #{latest_version}") + logger.info("Delete channel [#{channel.id} - #{channel.app_name}] has versions: #{versions} and latest verison is #{latest_version}") remove_releases(channel, releases, latest_version) end @@ -43,7 +43,7 @@ def remove_releases(channel, releases, latest_version) end def compare_version(a, b) - Gem::Version.new(b) <=> Gem::Version.new(a) + Gem::Version.new(a) <=> Gem::Version.new(b) rescue ArgumentError => e # Note: 处理版本号是 android-1.2.3 类似非标版本号的异常,如有发现就放最后面 # 后续如果有人反馈问题多了再说,看到本注释的请告知遵守版本号标准 From ef994971965bfd5231ad6eeb1fbe5183f753f433 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 26 Jan 2021 05:36:46 +0000 Subject: [PATCH 0393/2165] chore(deps): bump sidekiq-cron from `6d24cb0` to `b4678fd` Bumps [sidekiq-cron](https://github.com/MikeRogers0/sidekiq-cron) from `6d24cb0` to `b4678fd`. - [Release notes](https://github.com/MikeRogers0/sidekiq-cron/releases) - [Commits](https://github.com/MikeRogers0/sidekiq-cron/compare/6d24cb0e98116009cb81b855b68176fe3cd20fb9...b4678fda73b1e94798510053b7a9791e67ab641f) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index a37dcd025..95c1814a5 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,6 +1,6 @@ GIT remote: https://github.com/MikeRogers0/sidekiq-cron - revision: 6d24cb0e98116009cb81b855b68176fe3cd20fb9 + revision: b4678fda73b1e94798510053b7a9791e67ab641f branch: bug/fix-redis-warning specs: sidekiq-cron (1.2.0) @@ -114,7 +114,7 @@ GEM activesupport chunky_png (1.3.15) coderay (1.1.3) - concurrent-ruby (1.1.7) + concurrent-ruby (1.1.8) connection_pool (2.2.3) crass (1.0.6) debase (0.2.4.1) @@ -148,7 +148,7 @@ GEM formatador (0.2.5) friendly_id (5.3.0) activerecord (>= 4.0.0) - fugit (1.4.0) + fugit (1.4.2) et-orbi (~> 1.1, >= 1.1.8) raabro (~> 1.4) gitlab_omniauth-ldap (2.1.1) From b11022bdc545a916bf0ef8b8612a3f72d1672624 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 26 Jan 2021 15:57:13 +0800 Subject: [PATCH 0394/2165] =?UTF-8?q?fix:=20=E5=8E=BB=E9=99=A4=20Rails=206?= =?UTF-8?q?=20=E7=9A=84=E9=A2=84=E5=8A=A0=E8=BD=BD=E8=AD=A6=E5=91=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/initializers/sidekiq_scheduled.rb | 28 +++++++++++++----------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/config/initializers/sidekiq_scheduled.rb b/config/initializers/sidekiq_scheduled.rb index 9c925b198..f0858ca42 100644 --- a/config/initializers/sidekiq_scheduled.rb +++ b/config/initializers/sidekiq_scheduled.rb @@ -13,19 +13,21 @@ } } -if Sidekiq.server? - cron_jobs = {} - if Setting.keep_uploads - Sidekiq::Cron::Job.destroy('clean_old_releases') - else - cron_jobs[:clean_old_releases] = SCHEDULED_JOBS[:clean_old_releases] - end +Rails.application.reloader.to_prepare do + if Sidekiq.server? + cron_jobs = {} + if Setting.keep_uploads + Sidekiq::Cron::Job.destroy('clean_old_releases') + else + cron_jobs[:clean_old_releases] = SCHEDULED_JOBS[:clean_old_releases] + end - if Setting.demo_mode - cron_jobs[:reset_for_demo_mode] = SCHEDULED_JOBS[:reset_for_demo_mode] - else - Sidekiq::Cron::Job.destroy('reset_for_demo_mode') - end + if Setting.demo_mode + cron_jobs[:reset_for_demo_mode] = SCHEDULED_JOBS[:reset_for_demo_mode] + else + Sidekiq::Cron::Job.destroy('reset_for_demo_mode') + end - Sidekiq::Cron::Job.load_from_hash cron_jobs + Sidekiq::Cron::Job.load_from_hash cron_jobs + end end \ No newline at end of file From cabe2d8019918301ed73a1e8b19852801af49a12 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 26 Jan 2021 16:08:22 +0800 Subject: [PATCH 0395/2165] =?UTF-8?q?refactor:=20=E5=88=86=E5=8C=96?= =?UTF-8?q?=E4=B8=8D=E5=90=8C=E7=8E=AF=E5=A2=83=E7=9A=84=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E8=BE=93=E5=87=BA=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/application.rb | 20 +++++++++++--------- config/environments/production.rb | 10 +++++++++- config/initializers/0_hosts.rb | 2 +- config/initializers/carrierwave.rb | 2 +- config/initializers/devise.rb | 2 +- 5 files changed, 23 insertions(+), 13 deletions(-) diff --git a/config/application.rb b/config/application.rb index bc2d99fd2..cf3962e78 100644 --- a/config/application.rb +++ b/config/application.rb @@ -40,15 +40,6 @@ class Application < Rails::Application # the I18n.default_locale when a translation cannot be found). config.i18n.fallbacks = [I18n.default_locale] - # Log to STDOUT because Docker expects all processes to log here. You could - # the framework and any gems in your application. - # or a third party host such as Loggly, etc.. - config.log_tags = %i[subdomain request_id] - ActiveSupport::Logger.new(STDOUT).tap do |logger| - logger.formatter = config.log_formatter - config.logger = ActiveSupport::TaggedLogging.new(logger) - end - # Action mailer settings. config.action_mailer.default_options = { from: ENV['ACTION_MAILER_DEFAULT_FROM'] || 'Zealot' @@ -81,6 +72,13 @@ class Application < Rails::Application # Use a real queuing backend for Active Job (and separate queues per environment) config.active_job.queue_adapter = :sidekiq + # Settings in config/environments/* take precedence over those specified here. + # Application configuration can go into files in config/initializers + # -- all .rb files in that directory are automatically loaded after loading + # the framework and any gems in your application. + config.generators.javascripts = false + config.generators.stylesheets = false + ################################################################ # Auto load path @@ -101,4 +99,8 @@ class Application < Rails::Application # Manage exception page # config.exceptions_app = self.routes end + + def self.config + @config ||= Rails.configuration.x + end end diff --git a/config/environments/production.rb b/config/environments/production.rb index 6ea65945b..193f7e693 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -64,7 +64,7 @@ config.log_level = ENV.fetch('RAILS_LOG_LEVEL', 'info').to_sym # Prepend all log lines with the following tags. - config.log_tags = [:request_id] + config.log_tags = %i[subdomain request_id] config.action_mailer.perform_caching = false @@ -80,6 +80,14 @@ # Use default logging formatter so that PID and timestamp are not suppressed. config.log_formatter = ::Logger::Formatter.new + # Log to STDOUT because Docker expects all processes to log here. You could + # the framework and any gems in your application. + # or a third party host such as Loggly, etc.. + ActiveSupport::Logger.new(STDOUT).tap do |logger| + logger.formatter = config.log_formatter + config.logger = ActiveSupport::TaggedLogging.new(logger) + end + # Use a different logger for distributed setups. # require 'syslog/logger' # config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new 'orats') diff --git a/config/initializers/0_hosts.rb b/config/initializers/0_hosts.rb index bb41c139a..3dff388e3 100644 --- a/config/initializers/0_hosts.rb +++ b/config/initializers/0_hosts.rb @@ -19,5 +19,5 @@ config.action_mailer.default_url_options = url_options end - Rails.application.routes.default_url_options = Rails.configuration.x.url_options + Rails.application.routes.default_url_options = Zealot.config.url_options end \ No newline at end of file diff --git a/config/initializers/carrierwave.rb b/config/initializers/carrierwave.rb index 0d29916b0..71efd4e19 100644 --- a/config/initializers/carrierwave.rb +++ b/config/initializers/carrierwave.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true CarrierWave.configure do |config| - url_options = Rails.configuration.x.url_options + url_options = Zealot.config.url_options config.asset_host = "#{url_options[:protocol]}#{url_options[:host]}" config.cache_dir = Rails.root.join('tmp', 'uploads', Rails.env) end diff --git a/config/initializers/devise.rb b/config/initializers/devise.rb index 2b6923251..32f012be2 100644 --- a/config/initializers/devise.rb +++ b/config/initializers/devise.rb @@ -14,7 +14,7 @@ # Configure the e-mail address which will be shown in Devise::Mailer, # note that it will be overwritten if you use your own mailer class # with default "from" parameter. - # config.mailer_sender = 'no-reply@' + Rails.configuration.x.url_options[:host] + # config.mailer_sender = 'no-reply@' + Zealot.config.url_options[:host] # Configure the class responsible to send e-mails. # config.mailer = 'Devise::Mailer' From f80888048e6e1e1f95f8558ab34997645a1ac242 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 26 Jan 2021 16:24:50 +0800 Subject: [PATCH 0396/2165] =?UTF-8?q?doc:=20README=20=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E6=BC=94=E7=A4=BA=E6=88=AA=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 110f05705..c4fa23c54 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,7 @@ 开源自部署移动应用分发平台,提供 iOS、Android SDK、fastlane 等丰富组件库,打包分发流程、上传应用竟然如此简单、解决开发人员频繁打包的烦恼 🖖 +![Zealot Showcase](https://zealot.ews.im/_media/showcase.png) ## 特性 - [x] 支持 iOS 和 Android 应用的上传、在线安装和本地下载 From 2af7dbf6785374a2176ac0361a3288c069e10d97 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 27 Jan 2021 05:34:50 +0000 Subject: [PATCH 0397/2165] chore(deps): bump sidekiq-cron from `b4678fd` to `9957edc` Bumps [sidekiq-cron](https://github.com/MikeRogers0/sidekiq-cron) from `b4678fd` to `9957edc`. - [Release notes](https://github.com/MikeRogers0/sidekiq-cron/releases) - [Commits](https://github.com/MikeRogers0/sidekiq-cron/compare/b4678fda73b1e94798510053b7a9791e67ab641f...9957edc965a9c12dbdc1d3d2dd08d12be61bc347) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 95c1814a5..bb21af88a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,11 +1,10 @@ GIT remote: https://github.com/MikeRogers0/sidekiq-cron - revision: b4678fda73b1e94798510053b7a9791e67ab641f + revision: 9957edc965a9c12dbdc1d3d2dd08d12be61bc347 branch: bug/fix-redis-warning specs: sidekiq-cron (1.2.0) fugit (~> 1.1) - redis (>= 4.2.0) sidekiq (>= 4.2.1) GEM From 59fbc8f27542a150b91f4d32c42aab43965bac3b Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Thu, 28 Jan 2021 05:37:00 +0000 Subject: [PATCH 0398/2165] chore(deps): bump puma from 5.1.1 to 5.2.0 Bumps [puma](https://github.com/puma/puma) from 5.1.1 to 5.2.0. - [Release notes](https://github.com/puma/puma/releases) - [Changelog](https://github.com/puma/puma/blob/master/History.md) - [Commits](https://github.com/puma/puma/compare/v5.1.1...v5.2.0) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 4a54c2432..e91395a0f 100644 --- a/Gemfile +++ b/Gemfile @@ -6,7 +6,7 @@ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" } ruby '~> 2.7.0' -gem 'puma', '~> 5.1.1' +gem 'puma', '~> 5.2.0' gem 'rails', '~> 6.1.1' gem 'rails-i18n', '~> 6.0.0' gem 'rake', '~> 13.0.3' diff --git a/Gemfile.lock b/Gemfile.lock index bb21af88a..602fb03b8 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -306,7 +306,7 @@ GEM interception (>= 0.5) pry (>= 0.12.0) public_suffix (4.0.3) - puma (5.1.1) + puma (5.2.0) nio4r (~> 2.0) pundit (2.1.0) activesupport (>= 3.0.0) @@ -503,7 +503,7 @@ DEPENDENCIES pry-byebug pry-rails pry-rescue - puma (~> 5.1.1) + puma (~> 5.2.0) pundit (~> 2.1.0) rack-cors (~> 1.1.1) rails (~> 6.1.1) From 400f9a26d43b2315f87e798e456229b89b4c1743 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Thu, 28 Jan 2021 05:37:29 +0000 Subject: [PATCH 0399/2165] chore(deps): bump bootsnap from 1.5.1 to 1.6.0 Bumps [bootsnap](https://github.com/Shopify/bootsnap) from 1.5.1 to 1.6.0. - [Release notes](https://github.com/Shopify/bootsnap/releases) - [Changelog](https://github.com/Shopify/bootsnap/blob/master/CHANGELOG.md) - [Commits](https://github.com/Shopify/bootsnap/compare/v1.5.1...v1.6.0) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index bb21af88a..b2813890f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -98,7 +98,7 @@ GEM bindex (0.8.1) binding_of_caller (1.0.0) debug_inspector (>= 0.0.1) - bootsnap (1.5.1) + bootsnap (1.6.0) msgpack (~> 1.0) builder (3.2.4) byebug (11.0.1) @@ -254,7 +254,7 @@ GEM mini_portile2 (2.5.0) minitest (5.14.3) mixlib-shellout (3.0.7) - msgpack (1.3.3) + msgpack (1.4.1) multi_json (1.15.0) multi_xml (0.6.0) multipart-post (2.1.1) From 345c6587e00ddad1d91528c13c37f7647428e76b Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 2 Feb 2021 05:37:17 +0000 Subject: [PATCH 0400/2165] chore(deps): bump bootsnap from 1.6.0 to 1.7.0 Bumps [bootsnap](https://github.com/Shopify/bootsnap) from 1.6.0 to 1.7.0. - [Release notes](https://github.com/Shopify/bootsnap/releases) - [Changelog](https://github.com/Shopify/bootsnap/blob/master/CHANGELOG.md) - [Commits](https://github.com/Shopify/bootsnap/compare/v1.6.0...v1.7.0) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index e16c2809f..227bec8fb 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -98,7 +98,7 @@ GEM bindex (0.8.1) binding_of_caller (1.0.0) debug_inspector (>= 0.0.1) - bootsnap (1.6.0) + bootsnap (1.7.0) msgpack (~> 1.0) builder (3.2.4) byebug (11.0.1) @@ -254,7 +254,7 @@ GEM mini_portile2 (2.5.0) minitest (5.14.3) mixlib-shellout (3.0.7) - msgpack (1.4.1) + msgpack (1.4.2) multi_json (1.15.0) multi_xml (0.6.0) multipart-post (2.1.1) From 74c257d54e424a721841f3f8412697ada470128b Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 2 Feb 2021 05:38:07 +0000 Subject: [PATCH 0401/2165] chore(deps): bump pghero from 2.7.3 to 2.7.4 Bumps [pghero](https://github.com/ankane/pghero) from 2.7.3 to 2.7.4. - [Release notes](https://github.com/ankane/pghero/releases) - [Changelog](https://github.com/ankane/pghero/blob/master/CHANGELOG.md) - [Commits](https://github.com/ankane/pghero/compare/v2.7.3...v2.7.4) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index e16c2809f..589104826 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -198,7 +198,7 @@ GEM http-form_data (2.3.0) http-parser (1.2.1) ffi-compiler (>= 1.0, < 2.0) - i18n (1.8.7) + i18n (1.8.8) concurrent-ruby (~> 1.0) image_processing (1.10.3) mini_magick (>= 4.9.5, < 5) @@ -254,7 +254,7 @@ GEM mini_portile2 (2.5.0) minitest (5.14.3) mixlib-shellout (3.0.7) - msgpack (1.4.1) + msgpack (1.4.2) multi_json (1.15.0) multi_xml (0.6.0) multipart-post (2.1.1) @@ -290,7 +290,7 @@ GEM parser (2.7.2.0) ast (~> 2.4.1) pg (1.2.1) - pghero (2.7.3) + pghero (2.7.4) activerecord (>= 5) plist (3.6.0) pngdefry (0.1.3) From be08ee6ef98702b915c0278529a9535cb813ab9d Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 8 Feb 2021 06:00:21 +0000 Subject: [PATCH 0402/2165] chore(deps): bump carrierwave from 2.1.0 to 2.1.1 Bumps [carrierwave](https://github.com/carrierwaveuploader/carrierwave) from 2.1.0 to 2.1.1. - [Release notes](https://github.com/carrierwaveuploader/carrierwave/releases) - [Changelog](https://github.com/carrierwaveuploader/carrierwave/blob/v2.1.1/CHANGELOG.md) - [Commits](https://github.com/carrierwaveuploader/carrierwave/compare/v2.1.0...v2.1.1) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index be90f91fd..e53899dc7 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -102,13 +102,14 @@ GEM msgpack (~> 1.0) builder (3.2.4) byebug (11.0.1) - carrierwave (2.1.0) + carrierwave (2.1.1) activemodel (>= 5.0.0) activesupport (>= 5.0.0) addressable (~> 2.6) image_processing (~> 1.1) mimemagic (>= 0.3.0) mini_mime (>= 0.1.3) + ssrf_filter (~> 1.0) case_transform (0.2) activesupport chunky_png (1.3.15) @@ -200,7 +201,7 @@ GEM ffi-compiler (>= 1.0, < 2.0) i18n (1.8.8) concurrent-ruby (~> 1.0) - image_processing (1.10.3) + image_processing (1.12.1) mini_magick (>= 4.9.5, < 5) ruby-vips (>= 2.0.17, < 3) image_size (2.1.0) @@ -305,7 +306,7 @@ GEM pry-rescue (1.5.2) interception (>= 0.5) pry (>= 0.12.0) - public_suffix (4.0.3) + public_suffix (4.0.6) puma (5.2.0) nio4r (~> 2.0) pundit (2.1.0) @@ -422,6 +423,7 @@ GEM actionpack (>= 4.0) activesupport (>= 4.0) sprockets (>= 3.0.0) + ssrf_filter (1.0.7) sys-filesystem (1.4.1) ffi (~> 1.1) temple (0.8.2) From 2698beae29f5482ae3fb662c12f21e38023d8b51 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 9 Feb 2021 02:33:56 +0000 Subject: [PATCH 0403/2165] chore(deps): bump puma from 5.2.0 to 5.2.1 Bumps [puma](https://github.com/puma/puma) from 5.2.0 to 5.2.1. - [Release notes](https://github.com/puma/puma/releases) - [Changelog](https://github.com/puma/puma/blob/master/History.md) - [Commits](https://github.com/puma/puma/compare/v5.2.0...v5.2.1) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index e91395a0f..42f7983ae 100644 --- a/Gemfile +++ b/Gemfile @@ -6,7 +6,7 @@ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" } ruby '~> 2.7.0' -gem 'puma', '~> 5.2.0' +gem 'puma', '~> 5.2.1' gem 'rails', '~> 6.1.1' gem 'rails-i18n', '~> 6.0.0' gem 'rake', '~> 13.0.3' diff --git a/Gemfile.lock b/Gemfile.lock index e53899dc7..5db5e69a1 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -261,7 +261,7 @@ GEM multipart-post (2.1.1) nenv (0.3.0) net-ldap (0.16.3) - nio4r (2.5.4) + nio4r (2.5.5) nokogiri (1.11.1) mini_portile2 (~> 2.5.0) racc (~> 1.4) @@ -307,7 +307,7 @@ GEM interception (>= 0.5) pry (>= 0.12.0) public_suffix (4.0.6) - puma (5.2.0) + puma (5.2.1) nio4r (~> 2.0) pundit (2.1.0) activesupport (>= 3.0.0) @@ -505,7 +505,7 @@ DEPENDENCIES pry-byebug pry-rails pry-rescue - puma (~> 5.2.0) + puma (~> 5.2.1) pundit (~> 2.1.0) rack-cors (~> 1.1.1) rails (~> 6.1.1) From bf436cedad81aca5d798158dc73bb1c87426ddaf Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 9 Feb 2021 05:35:56 +0000 Subject: [PATCH 0404/2165] chore(deps): bump bootsnap from 1.7.0 to 1.7.2 Bumps [bootsnap](https://github.com/Shopify/bootsnap) from 1.7.0 to 1.7.2. - [Release notes](https://github.com/Shopify/bootsnap/releases) - [Changelog](https://github.com/Shopify/bootsnap/blob/master/CHANGELOG.md) - [Commits](https://github.com/Shopify/bootsnap/compare/v1.7.0...v1.7.2) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 5db5e69a1..da59dbd16 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -98,7 +98,7 @@ GEM bindex (0.8.1) binding_of_caller (1.0.0) debug_inspector (>= 0.0.1) - bootsnap (1.7.0) + bootsnap (1.7.2) msgpack (~> 1.0) builder (3.2.4) byebug (11.0.1) From 1e44df4181ed95aa5544aa4568de5039628f9e8c Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Thu, 18 Feb 2021 05:37:38 +0000 Subject: [PATCH 0405/2165] chore(deps): bump rails from 6.1.1 to 6.1.3 Bumps [rails](https://github.com/rails/rails) from 6.1.1 to 6.1.3. - [Release notes](https://github.com/rails/rails/releases) - [Commits](https://github.com/rails/rails/compare/v6.1.1...v6.1.3) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 114 +++++++++++++++++++++++++-------------------------- 2 files changed, 58 insertions(+), 58 deletions(-) diff --git a/Gemfile b/Gemfile index 42f7983ae..57c8d4d49 100644 --- a/Gemfile +++ b/Gemfile @@ -7,7 +7,7 @@ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" } ruby '~> 2.7.0' gem 'puma', '~> 5.2.1' -gem 'rails', '~> 6.1.1' +gem 'rails', '~> 6.1.3' gem 'rails-i18n', '~> 6.0.0' gem 'rake', '~> 13.0.3' diff --git a/Gemfile.lock b/Gemfile.lock index da59dbd16..9ea4d7dda 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -11,40 +11,40 @@ GEM remote: https://rubygems.org/ specs: CFPropertyList (3.0.3) - actioncable (6.1.1) - actionpack (= 6.1.1) - activesupport (= 6.1.1) + actioncable (6.1.3) + actionpack (= 6.1.3) + activesupport (= 6.1.3) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (6.1.1) - actionpack (= 6.1.1) - activejob (= 6.1.1) - activerecord (= 6.1.1) - activestorage (= 6.1.1) - activesupport (= 6.1.1) + actionmailbox (6.1.3) + actionpack (= 6.1.3) + activejob (= 6.1.3) + activerecord (= 6.1.3) + activestorage (= 6.1.3) + activesupport (= 6.1.3) mail (>= 2.7.1) - actionmailer (6.1.1) - actionpack (= 6.1.1) - actionview (= 6.1.1) - activejob (= 6.1.1) - activesupport (= 6.1.1) + actionmailer (6.1.3) + actionpack (= 6.1.3) + actionview (= 6.1.3) + activejob (= 6.1.3) + activesupport (= 6.1.3) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (6.1.1) - actionview (= 6.1.1) - activesupport (= 6.1.1) + actionpack (6.1.3) + actionview (= 6.1.3) + activesupport (= 6.1.3) rack (~> 2.0, >= 2.0.9) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (6.1.1) - actionpack (= 6.1.1) - activerecord (= 6.1.1) - activestorage (= 6.1.1) - activesupport (= 6.1.1) + actiontext (6.1.3) + actionpack (= 6.1.3) + activerecord (= 6.1.3) + activestorage (= 6.1.3) + activesupport (= 6.1.3) nokogiri (>= 1.8.5) - actionview (6.1.1) - activesupport (= 6.1.1) + actionview (6.1.3) + activesupport (= 6.1.3) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) @@ -54,25 +54,25 @@ GEM activemodel (>= 4.1, < 6.2) case_transform (>= 0.2) jsonapi-renderer (>= 0.1.1.beta1, < 0.3) - activejob (6.1.1) - activesupport (= 6.1.1) + activejob (6.1.3) + activesupport (= 6.1.3) globalid (>= 0.3.6) activejob-status (0.1.6) activejob (>= 4.2) activesupport (>= 4.2) - activemodel (6.1.1) - activesupport (= 6.1.1) - activerecord (6.1.1) - activemodel (= 6.1.1) - activesupport (= 6.1.1) - activestorage (6.1.1) - actionpack (= 6.1.1) - activejob (= 6.1.1) - activerecord (= 6.1.1) - activesupport (= 6.1.1) + activemodel (6.1.3) + activesupport (= 6.1.3) + activerecord (6.1.3) + activemodel (= 6.1.3) + activesupport (= 6.1.3) + activestorage (6.1.3) + actionpack (= 6.1.3) + activejob (= 6.1.3) + activerecord (= 6.1.3) + activesupport (= 6.1.3) marcel (~> 0.3.1) mimemagic (~> 0.3.2) - activesupport (6.1.1) + activesupport (6.1.3) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) @@ -199,7 +199,7 @@ GEM http-form_data (2.3.0) http-parser (1.2.1) ffi-compiler (>= 1.0, < 2.0) - i18n (1.8.8) + i18n (1.8.9) concurrent-ruby (~> 1.0) image_processing (1.12.1) mini_magick (>= 4.9.5, < 5) @@ -240,7 +240,7 @@ GEM listen (3.4.0) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) - loofah (2.8.0) + loofah (2.9.0) crass (~> 1.0.2) nokogiri (>= 1.5.9) lumberjack (1.2.4) @@ -321,20 +321,20 @@ GEM rack rack-test (1.1.0) rack (>= 1.0, < 3) - rails (6.1.1) - actioncable (= 6.1.1) - actionmailbox (= 6.1.1) - actionmailer (= 6.1.1) - actionpack (= 6.1.1) - actiontext (= 6.1.1) - actionview (= 6.1.1) - activejob (= 6.1.1) - activemodel (= 6.1.1) - activerecord (= 6.1.1) - activestorage (= 6.1.1) - activesupport (= 6.1.1) + rails (6.1.3) + actioncable (= 6.1.3) + actionmailbox (= 6.1.3) + actionmailer (= 6.1.3) + actionpack (= 6.1.3) + actiontext (= 6.1.3) + actionview (= 6.1.3) + activejob (= 6.1.3) + activemodel (= 6.1.3) + activerecord (= 6.1.3) + activestorage (= 6.1.3) + activesupport (= 6.1.3) bundler (>= 1.15.0) - railties (= 6.1.1) + railties (= 6.1.3) sprockets-rails (>= 2.0.0) rails-dom-testing (2.0.3) activesupport (>= 4.2.0) @@ -346,9 +346,9 @@ GEM railties (>= 6.0.0, < 7) rails-settings-cached (2.5.2) rails (>= 5.0.0) - railties (6.1.1) - actionpack (= 6.1.1) - activesupport (= 6.1.1) + railties (6.1.3) + actionpack (= 6.1.3) + activesupport (= 6.1.3) method_source rake (>= 0.8.7) thor (~> 1.0) @@ -431,7 +431,7 @@ GEM terminal-notifier-guard (1.7.0) terminal-table (1.8.0) unicode-display_width (~> 1.1, >= 1.1.1) - thor (1.0.1) + thor (1.1.0) tilt (2.0.10) turbolinks (5.2.1) turbolinks-source (~> 5.2) @@ -508,7 +508,7 @@ DEPENDENCIES puma (~> 5.2.1) pundit (~> 2.1.0) rack-cors (~> 1.1.1) - rails (~> 6.1.1) + rails (~> 6.1.3) rails-i18n (~> 6.0.0) rails-settings-cached (~> 2.5) rake (~> 13.0.3) From 24c4713237b8793bc1a9762a2c3296368dbd3c08 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Thu, 18 Feb 2021 06:12:18 +0000 Subject: [PATCH 0406/2165] chore(deps): bump @rails/ujs from 6.1.1 to 6.1.3 Bumps [@rails/ujs](https://github.com/rails/rails) from 6.1.1 to 6.1.3. - [Release notes](https://github.com/rails/rails/releases) - [Commits](https://github.com/rails/rails/compare/v6.1.1...v6.1.3) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index cfaf3af42..a846fd9cb 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "zealot", "private": true, "dependencies": { - "@rails/ujs": "^6.1.1", + "@rails/ujs": "^6.1.3", "@rails/webpacker": "^5.2.1", "admin-lte": "^3.0.5", "clipboard": "^2.0.6", diff --git a/yarn.lock b/yarn.lock index a754d6e27..f11df6fb5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -956,10 +956,10 @@ dependencies: mkdirp "^1.0.4" -"@rails/ujs@^6.1.1": - version "6.1.1" - resolved "https://registry.yarnpkg.com/@rails/ujs/-/ujs-6.1.1.tgz#25c4e60018274b37e5ba0850134f6445429de2f5" - integrity sha512-uF6zEbXpGkNa7Vvxrd9Yqas8xsbc3lsC733V6I7fXgPuj8xXiuZakdE4uIyQSFRVmZKe12qmC6CNJNtIEvt4bA== +"@rails/ujs@^6.1.3": + version "6.1.3" + resolved "https://registry.yarnpkg.com/@rails/ujs/-/ujs-6.1.3.tgz#90ef26caa0925492b1a3b1495db09cfbe49e745e" + integrity sha512-9mip5o+LVouWAqLMNJWhxda+D5uP+4RziNECgOGJlL6k3rc5SC/ljCHpV9Cym4i3oeGZkpZJ2tu4frCwt84kzQ== "@rails/webpacker@^5.2.1": version "5.2.1" From 6188e8daee69b00282ca0fd0c85ee88af937df44 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 3 Mar 2021 05:36:38 +0000 Subject: [PATCH 0407/2165] chore(deps): bump puma from 5.2.1 to 5.2.2 Bumps [puma](https://github.com/puma/puma) from 5.2.1 to 5.2.2. - [Release notes](https://github.com/puma/puma/releases) - [Changelog](https://github.com/puma/puma/blob/master/History.md) - [Commits](https://github.com/puma/puma/compare/v5.2.1...v5.2.2) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 57c8d4d49..ea514751f 100644 --- a/Gemfile +++ b/Gemfile @@ -6,7 +6,7 @@ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" } ruby '~> 2.7.0' -gem 'puma', '~> 5.2.1' +gem 'puma', '~> 5.2.2' gem 'rails', '~> 6.1.3' gem 'rails-i18n', '~> 6.0.0' gem 'rake', '~> 13.0.3' diff --git a/Gemfile.lock b/Gemfile.lock index 9ea4d7dda..bf060bb93 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -307,7 +307,7 @@ GEM interception (>= 0.5) pry (>= 0.12.0) public_suffix (4.0.6) - puma (5.2.1) + puma (5.2.2) nio4r (~> 2.0) pundit (2.1.0) activesupport (>= 3.0.0) @@ -505,7 +505,7 @@ DEPENDENCIES pry-byebug pry-rails pry-rescue - puma (~> 5.2.1) + puma (~> 5.2.2) pundit (~> 2.1.0) rack-cors (~> 1.1.1) rails (~> 6.1.3) From a50790bc31fb1567f6f7a22e06e44bef429636d4 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 4 Mar 2021 15:13:00 +0800 Subject: [PATCH 0408/2165] =?UTF-8?q?chore:=20=E7=A7=BB=E9=99=A4=20Ruby=20?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E9=99=90=E5=88=B6=E3=80=81=E6=9B=B4=E6=8D=A2?= =?UTF-8?q?=20sidekiq-cron=20=E6=BA=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 4 +--- Gemfile.lock | 13 +++++-------- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/Gemfile b/Gemfile index ea514751f..d92bf8fa4 100644 --- a/Gemfile +++ b/Gemfile @@ -4,8 +4,6 @@ source 'https://rubygems.org' git_source(:github) { |repo_name| "https://github.com/#{repo_name}" } -ruby '~> 2.7.0' - gem 'puma', '~> 5.2.2' gem 'rails', '~> 6.1.3' gem 'rails-i18n', '~> 6.0.0' @@ -70,7 +68,7 @@ gem 'rqrcode' # 异步队列 gem 'activejob-status' gem 'sidekiq', '6.1.3' -gem 'sidekiq-cron', github: 'MikeRogers0/sidekiq-cron', branch: 'bug/fix-redis-warning' # See https://github.com/ondrejbartas/sidekiq-cron/issues/286 +gem 'sidekiq-cron', github: 'wolfemm/sidekiq-cron', branch: 'master' # See https://github.com/ondrejbartas/sidekiq-cron/issues/286 # Assets gem 'turbolinks', '~> 5' diff --git a/Gemfile.lock b/Gemfile.lock index bf060bb93..cb3a08b5f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,9 +1,9 @@ GIT - remote: https://github.com/MikeRogers0/sidekiq-cron - revision: 9957edc965a9c12dbdc1d3d2dd08d12be61bc347 - branch: bug/fix-redis-warning + remote: https://github.com/wolfemm/sidekiq-cron + revision: c63f0dd1cbd26a40954525520a12747436ffade3 + branch: master specs: - sidekiq-cron (1.2.0) + sidekiq-cron (1.2.1) fugit (~> 1.1) sidekiq (>= 4.2.1) @@ -532,8 +532,5 @@ DEPENDENCIES web-console (>= 3.3.0) webpacker (~> 5.2) -RUBY VERSION - ruby 2.7.1p83 - BUNDLED WITH - 2.1.4 + 2.2.4 From 4beb112e26f127cbbb9407a6a4e4e15857060dc7 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 4 Mar 2021 15:33:35 +0800 Subject: [PATCH 0409/2165] =?UTF-8?q?style:=20=E8=B0=83=E6=95=B4=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E6=B3=A8=E5=86=8C=E9=A1=B5=E6=9C=8D=E5=8A=A1=E6=8F=8F?= =?UTF-8?q?=E8=BF=B0=E7=9A=84=E4=BD=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/devise/sessions/new.html.slim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/devise/sessions/new.html.slim b/app/views/devise/sessions/new.html.slim index b256546c3..bb1a0912d 100644 --- a/app/views/devise/sessions/new.html.slim +++ b/app/views/devise/sessions/new.html.slim @@ -2,7 +2,7 @@ | 用户登录 .row.mb-3.mt-3 - .col-sm-7.order-12.order-sm-1 + .col-sm-6.order-12.order-sm-1.ml-4 == render 'devise/shared/intro' .login-box.col-sm-5.order-1.order-sm-12 .card.card-primary.card-outline.card-outline-tabs From 1205d9cee47179a3536dc283dfb5b3a64dcdccae Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 8 Mar 2021 05:50:21 +0000 Subject: [PATCH 0410/2165] chore(deps-dev): bump awesome_print from 1.8.0 to 1.9.2 Bumps [awesome_print](https://github.com/awesome-print/awesome_print) from 1.8.0 to 1.9.2. - [Release notes](https://github.com/awesome-print/awesome_print/releases) - [Changelog](https://github.com/awesome-print/awesome_print/blob/master/CHANGELOG.md) - [Commits](https://github.com/awesome-print/awesome_print/compare/v1.8.0...v1.9.2) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index cb3a08b5f..8f6138d13 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -89,7 +89,7 @@ GEM rubyzip (>= 1.2, < 3.0) uuidtools (>= 2.1.5, < 2.3.0) ast (2.4.1) - awesome_print (1.8.0) + awesome_print (1.9.2) bcrypt (3.1.16) better_errors (2.9.1) coderay (>= 1.0.0) From 1707d474f580ab2362c9fc6d5c842c144777be45 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 8 Mar 2021 06:44:31 +0000 Subject: [PATCH 0411/2165] chore(deps): bump clipboard from 2.0.6 to 2.0.7 Bumps [clipboard](https://github.com/zenorocha/clipboard.js) from 2.0.6 to 2.0.7. - [Release notes](https://github.com/zenorocha/clipboard.js/releases) - [Commits](https://github.com/zenorocha/clipboard.js/compare/v2.0.6...v2.0.7) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index a846fd9cb..a8ac1b4fb 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "@rails/ujs": "^6.1.3", "@rails/webpacker": "^5.2.1", "admin-lte": "^3.0.5", - "clipboard": "^2.0.6", + "clipboard": "^2.0.7", "filepond": "^4.20.1", "rails-erb-loader": "^5.5.2", "turbolinks": "^5.2.0" diff --git a/yarn.lock b/yarn.lock index f11df6fb5..ca15b64bb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2204,10 +2204,10 @@ clean-stack@^2.0.0: resolved "https://registry.npm.taobao.org/clean-stack/download/clean-stack-2.2.0.tgz?cache=0&sync_timestamp=1592035220754&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fclean-stack%2Fdownload%2Fclean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" integrity sha1-7oRy27Ep5yezHooQpCfe6d/kAIs= -clipboard@^2.0.6: - version "2.0.6" - resolved "https://registry.npm.taobao.org/clipboard/download/clipboard-2.0.6.tgz#52921296eec0fdf77ead1749421b21c968647376" - integrity sha1-UpISlu7A/fd+rRdJQhshyWhkc3Y= +clipboard@^2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.7.tgz#da927f817b1859426df39212ac81feb07dbaeadc" + integrity sha512-8M8WEZcIvs0hgOma+wAPkrUxpv0PMY1L6VsAJh/2DOKARIMpyWe6ZLcEoe1qktl6/ced5ceYHs+oGedSbgZ3sg== dependencies: good-listener "^1.2.2" select "^1.1.2" From 6b4cc7076247ef7764149654a7b664a98c9a3285 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 8 Mar 2021 15:06:06 +0800 Subject: [PATCH 0412/2165] =?UTF-8?q?chore:=20=E6=9B=B4=E6=96=B0=20app-inf?= =?UTF-8?q?o?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index d92bf8fa4..7cdead544 100644 --- a/Gemfile +++ b/Gemfile @@ -75,7 +75,7 @@ gem 'turbolinks', '~> 5' gem 'webpacker', '~> 5.2' # 用于解析 ipa 和 apk 包 -gem 'app-info', '~> 2.3.0' +gem 'app-info', '~> 2.4.1' # Mobile config gem 'rails-settings-cached', '~> 2.5' diff --git a/Gemfile.lock b/Gemfile.lock index 8f6138d13..2560998f5 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -80,7 +80,7 @@ GEM zeitwerk (~> 2.3) addressable (2.7.0) public_suffix (>= 2.0.2, < 5.0) - app-info (2.3.0) + app-info (2.4.1) CFPropertyList (>= 2.3.4, < 3.1.0) image_size (>= 1.5, < 2.2) pngdefry (~> 0.1.2) @@ -467,7 +467,7 @@ PLATFORMS DEPENDENCIES active_model_serializers (~> 0.10.12) activejob-status - app-info (~> 2.3.0) + app-info (~> 2.4.1) awesome_print better_errors binding_of_caller From 09e58f81e513a4caff891297c377f4849b7f89d3 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 8 Mar 2021 16:18:45 +0800 Subject: [PATCH 0413/2165] =?UTF-8?q?refactor:=20=E8=A7=A3=E6=9E=90?= =?UTF-8?q?=E5=AE=8C=E6=96=87=E4=BB=B6=E5=8D=B3=E6=97=B6=E6=B8=85=E7=90=86?= =?UTF-8?q?=E4=B8=B4=E6=97=B6=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/jobs/debug_file_teardown_job.rb | 3 +++ app/models/release.rb | 2 ++ app/services/teardown_service.rb | 1 + 3 files changed, 6 insertions(+) diff --git a/app/jobs/debug_file_teardown_job.rb b/app/jobs/debug_file_teardown_job.rb index 6c5e90dbb..7001d3f65 100644 --- a/app/jobs/debug_file_teardown_job.rb +++ b/app/jobs/debug_file_teardown_job.rb @@ -14,6 +14,9 @@ def perform(debug_file) update_debug_file_version(debug_file, parser) parse_proguard(debug_file, parser) end + + # 清理掉临时生成的文件 + debug_file.clear! rescue => e logger.error "Can not teardown debug file: #{e}" logger.error e.backtrace.join("\n") diff --git a/app/models/release.rb b/app/models/release.rb index 62bcb2188..5f14d421d 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -72,6 +72,8 @@ def self.upload_file(params, parser = nil) end rescue AppInfo::UnkownFileTypeError release.errors.add(:file, '上传的应用无法正确识别') + ensure + parser.clear! end end end diff --git a/app/services/teardown_service.rb b/app/services/teardown_service.rb index 2a08d49fd..d9404ccdb 100644 --- a/app/services/teardown_service.rb +++ b/app/services/teardown_service.rb @@ -31,6 +31,7 @@ def process when AppInfo::Platform::ANDROID process_android(parser, metadata) end + parser.clear! elsif parser.is_a?(AppInfo::MobileProvision) metadata.name = parser.app_name metadata.platform = :mobileprovision From 3671239d23119c87cece6e054ad97f4ae7446ded Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 8 Mar 2021 16:37:49 +0800 Subject: [PATCH 0414/2165] feat: bump carrierwave from 2.1.1 to 2.2.0 --- Gemfile | 2 +- Gemfile.lock | 4 ++-- app/uploaders/app_file_uploader.rb | 2 +- app/uploaders/app_icon_uploader.rb | 2 +- app/uploaders/debug_file_uploader.rb | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Gemfile b/Gemfile index 7cdead544..28e808bab 100644 --- a/Gemfile +++ b/Gemfile @@ -33,7 +33,7 @@ gem 'friendly_id', '~> 5.3.0' # NOTE: Do not upgrade to 5.4.0 ## 数据分页 gem 'kaminari' ## 文件上传 -gem 'carrierwave' +gem 'carrierwave', '~> 2.2.0' gem 'mini_magick' # Helper diff --git a/Gemfile.lock b/Gemfile.lock index 2560998f5..0c0960bff 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -102,7 +102,7 @@ GEM msgpack (~> 1.0) builder (3.2.4) byebug (11.0.1) - carrierwave (2.1.1) + carrierwave (2.2.0) activemodel (>= 5.0.0) activesupport (>= 5.0.0) addressable (~> 2.6) @@ -473,7 +473,7 @@ DEPENDENCIES binding_of_caller bootsnap (>= 1.4.7) byebug - carrierwave + carrierwave (~> 2.2.0) debase devise (~> 4.7.3) devise-i18n (~> 1.9.2) diff --git a/app/uploaders/app_file_uploader.rb b/app/uploaders/app_file_uploader.rb index d3e73ba16..cbc485c94 100644 --- a/app/uploaders/app_file_uploader.rb +++ b/app/uploaders/app_file_uploader.rb @@ -5,7 +5,7 @@ def store_dir "#{base_store_dir}/apps/a#{model.app.id}/r#{model.id}/binary" end - def extension_white_list + def extension_allowlist %w[ipa apk].freeze end end diff --git a/app/uploaders/app_icon_uploader.rb b/app/uploaders/app_icon_uploader.rb index 58fa388ab..7ed9ddc67 100644 --- a/app/uploaders/app_icon_uploader.rb +++ b/app/uploaders/app_icon_uploader.rb @@ -26,7 +26,7 @@ def store_dir process resize_to_fit: [120, 120] end - def extension_white_list + def extension_allowlist [:png] end end diff --git a/app/uploaders/debug_file_uploader.rb b/app/uploaders/debug_file_uploader.rb index 7e590dd63..e7073c747 100644 --- a/app/uploaders/debug_file_uploader.rb +++ b/app/uploaders/debug_file_uploader.rb @@ -5,7 +5,7 @@ def store_dir "#{base_store_dir}/debug_files/a#{model.app.id}/d#{model.id}" end - def extension_white_list + def extension_allowlist %w[zip] end end From 68babd6317d306d0f376a614e37af2b36efa81b1 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 8 Mar 2021 16:34:15 +0000 Subject: [PATCH 0415/2165] chore(deps): [security] bump elliptic from 6.5.3 to 6.5.4 Bumps [elliptic](https://github.com/indutny/elliptic) from 6.5.3 to 6.5.4. **This update includes a security fix.** - [Release notes](https://github.com/indutny/elliptic/releases) - [Commits](https://github.com/indutny/elliptic/compare/v6.5.3...v6.5.4) Signed-off-by: dependabot-preview[bot] --- yarn.lock | 46 +++++++++++++++++++++++----------------------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/yarn.lock b/yarn.lock index ca15b64bb..b463ec1eb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1700,10 +1700,10 @@ bluebird@^3.5.5: resolved "https://registry.npm.taobao.org/bluebird/download/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha1-nyKcFb4nJFT/qXOs4NvueaGww28= -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.4.0: - version "4.11.9" - resolved "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828" - integrity sha1-JtVWgpRY+dHoH8SJUkk9C6NQeCg= +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: + version "4.12.0" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" + integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== bn.js@^5.1.1: version "5.1.2" @@ -1813,9 +1813,9 @@ brfs@^2.0.0, brfs@^2.0.2: static-module "^3.0.2" through2 "^2.0.0" -brorand@^1.0.1: +brorand@^1.0.1, brorand@^1.1.0: version "1.1.0" - resolved "https://registry.npm.taobao.org/brorand/download/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= brotli@^1.2.0: @@ -3222,17 +3222,17 @@ electron-to-chromium@^1.3.488: integrity sha1-/XGIyKSdbQtd8d9VofGkvywXdFc= elliptic@^6.0.0, elliptic@^6.5.2: - version "6.5.3" - resolved "https://registry.npm.taobao.org/elliptic/download/elliptic-6.5.3.tgz?cache=0&sync_timestamp=1592492844326&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Felliptic%2Fdownload%2Felliptic-6.5.3.tgz#cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6" - integrity sha1-y1nrLv2vc6C9eMzXAVpirW4Pk9Y= + version "6.5.4" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" + integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== dependencies: - bn.js "^4.4.0" - brorand "^1.0.1" + bn.js "^4.11.9" + brorand "^1.1.0" hash.js "^1.0.0" - hmac-drbg "^1.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.0" + hmac-drbg "^1.0.1" + inherits "^2.0.4" + minimalistic-assert "^1.0.1" + minimalistic-crypto-utils "^1.0.1" emoji-regex@^7.0.1: version "7.0.3" @@ -4175,8 +4175,8 @@ hash-base@^3.0.0: hash.js@^1.0.0, hash.js@^1.0.3: version "1.1.7" - resolved "https://registry.npm.taobao.org/hash.js/download/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha1-C6vKU46NTuSg+JiNaIZlN6ADz0I= + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== dependencies: inherits "^2.0.3" minimalistic-assert "^1.0.1" @@ -4186,9 +4186,9 @@ hex-color-regex@^1.1.0: resolved "https://registry.npm.taobao.org/hex-color-regex/download/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" integrity sha1-TAb8y0YC/iYCs8k9+C1+fb8aio4= -hmac-drbg@^1.0.0: +hmac-drbg@^1.0.1: version "1.0.1" - resolved "https://registry.npm.taobao.org/hmac-drbg/download/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= dependencies: hash.js "^1.0.3" @@ -5348,12 +5348,12 @@ mini-css-extract-plugin@^0.9.0: minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: version "1.0.1" - resolved "https://registry.npm.taobao.org/minimalistic-assert/download/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha1-LhlN4ERibUoQ5/f7wAznPoPk1cc= + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== -minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: +minimalistic-crypto-utils@^1.0.1: version "1.0.1" - resolved "https://registry.npm.taobao.org/minimalistic-crypto-utils/download/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= minimatch@^3.0.4, minimatch@~3.0.2: From 7bc85697351f68b6891597b69739d28376921881 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Thu, 11 Mar 2021 06:30:15 +0000 Subject: [PATCH 0416/2165] chore(deps): bump clipboard from 2.0.7 to 2.0.8 Bumps [clipboard](https://github.com/zenorocha/clipboard.js) from 2.0.7 to 2.0.8. - [Release notes](https://github.com/zenorocha/clipboard.js/releases) - [Commits](https://github.com/zenorocha/clipboard.js/compare/v2.0.7...v2.0.8) Signed-off-by: dependabot-preview[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index a8ac1b4fb..fe3e9521c 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "@rails/ujs": "^6.1.3", "@rails/webpacker": "^5.2.1", "admin-lte": "^3.0.5", - "clipboard": "^2.0.7", + "clipboard": "^2.0.8", "filepond": "^4.20.1", "rails-erb-loader": "^5.5.2", "turbolinks": "^5.2.0" diff --git a/yarn.lock b/yarn.lock index b463ec1eb..2427d100a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2204,10 +2204,10 @@ clean-stack@^2.0.0: resolved "https://registry.npm.taobao.org/clean-stack/download/clean-stack-2.2.0.tgz?cache=0&sync_timestamp=1592035220754&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fclean-stack%2Fdownload%2Fclean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" integrity sha1-7oRy27Ep5yezHooQpCfe6d/kAIs= -clipboard@^2.0.7: - version "2.0.7" - resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.7.tgz#da927f817b1859426df39212ac81feb07dbaeadc" - integrity sha512-8M8WEZcIvs0hgOma+wAPkrUxpv0PMY1L6VsAJh/2DOKARIMpyWe6ZLcEoe1qktl6/ced5ceYHs+oGedSbgZ3sg== +clipboard@^2.0.8: + version "2.0.8" + resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.8.tgz#ffc6c103dd2967a83005f3f61976aa4655a4cdba" + integrity sha512-Y6WO0unAIQp5bLmk1zdThRhgJt/x3ks6f30s3oE3H1mgIEU33XyQjEf8gsf6DxC7NPX8Y1SsNWjUjL/ywLnnbQ== dependencies: good-listener "^1.2.2" select "^1.1.2" From b742b8bb5417b33feaa1f11216c3843181e306a2 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 12 Mar 2021 05:35:02 +0000 Subject: [PATCH 0417/2165] chore(deps): bump devise-i18n from 1.9.2 to 1.9.3 Bumps [devise-i18n](https://github.com/tigrish/devise-i18n) from 1.9.2 to 1.9.3. - [Release notes](https://github.com/tigrish/devise-i18n/releases) - [Changelog](https://github.com/tigrish/devise-i18n/blob/master/CHANGELOG.md) - [Commits](https://github.com/tigrish/devise-i18n/compare/v1.9.2...v1.9.3) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Gemfile b/Gemfile index 28e808bab..4d6f6df1f 100644 --- a/Gemfile +++ b/Gemfile @@ -41,7 +41,7 @@ gem 'mini_magick' gem 'http' ## 用户认证 gem 'devise', '~> 4.7.3' -gem 'devise-i18n', '~> 1.9.2' +gem 'devise-i18n', '~> 1.9.3' gem 'omniauth', '~> 1.9' gem 'omniauth-google-oauth2', '~> 0.8.1' gem 'gitlab_omniauth-ldap', '~> 2.1.1', require: 'omniauth-ldap' diff --git a/Gemfile.lock b/Gemfile.lock index 0c0960bff..7a84a8714 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -127,7 +127,7 @@ GEM railties (>= 4.1.0) responders warden (~> 1.2.3) - devise-i18n (1.9.2) + devise-i18n (1.9.3) devise (>= 4.7.1) domain_name (0.5.20190701) unf (>= 0.0.5, < 1.0.0) @@ -253,7 +253,7 @@ GEM mini_magick (4.11.0) mini_mime (1.0.2) mini_portile2 (2.5.0) - minitest (5.14.3) + minitest (5.14.4) mixlib-shellout (3.0.7) msgpack (1.4.2) multi_json (1.15.0) @@ -262,7 +262,7 @@ GEM nenv (0.3.0) net-ldap (0.16.3) nio4r (2.5.5) - nokogiri (1.11.1) + nokogiri (1.11.2) mini_portile2 (~> 2.5.0) racc (~> 1.4) notiffany (0.1.3) @@ -476,7 +476,7 @@ DEPENDENCIES carrierwave (~> 2.2.0) debase devise (~> 4.7.3) - devise-i18n (~> 1.9.2) + devise-i18n (~> 1.9.3) dotenv-rails friendly_id (~> 5.3.0) gitlab_omniauth-ldap (~> 2.1.1) From d730421338387514a8647d6954ab6d9857db3c4e Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 15 Mar 2021 05:49:03 +0000 Subject: [PATCH 0418/2165] chore(deps): bump pghero from 2.7.4 to 2.8.0 Bumps [pghero](https://github.com/ankane/pghero) from 2.7.4 to 2.8.0. - [Release notes](https://github.com/ankane/pghero/releases) - [Changelog](https://github.com/ankane/pghero/blob/master/CHANGELOG.md) - [Commits](https://github.com/ankane/pghero/compare/v2.7.4...v2.8.0) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 7a84a8714..51f0e092f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -291,7 +291,7 @@ GEM parser (2.7.2.0) ast (~> 2.4.1) pg (1.2.1) - pghero (2.7.4) + pghero (2.8.0) activerecord (>= 5) plist (3.6.0) pngdefry (0.1.3) From 71919f805dce99f1fd4264141ba0dfcc6f351184 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 15 Mar 2021 05:50:00 +0000 Subject: [PATCH 0419/2165] chore(deps): bump omniauth-google-oauth2 from 0.8.1 to 0.8.2 Bumps [omniauth-google-oauth2](https://github.com/zquestz/omniauth-google-oauth2) from 0.8.1 to 0.8.2. - [Release notes](https://github.com/zquestz/omniauth-google-oauth2/releases) - [Changelog](https://github.com/zquestz/omniauth-google-oauth2/blob/master/CHANGELOG.md) - [Commits](https://github.com/zquestz/omniauth-google-oauth2/compare/v0.8.1...v0.8.2) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 16 +++++++++------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/Gemfile b/Gemfile index 4d6f6df1f..c9c856d88 100644 --- a/Gemfile +++ b/Gemfile @@ -43,7 +43,7 @@ gem 'http' gem 'devise', '~> 4.7.3' gem 'devise-i18n', '~> 1.9.3' gem 'omniauth', '~> 1.9' -gem 'omniauth-google-oauth2', '~> 0.8.1' +gem 'omniauth-google-oauth2', '~> 0.8.2' gem 'gitlab_omniauth-ldap', '~> 2.1.1', require: 'omniauth-ldap' gem 'pundit', '~> 2.1.0' diff --git a/Gemfile.lock b/Gemfile.lock index 7a84a8714..0aab391ca 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -138,9 +138,11 @@ GEM erubi (1.10.0) et-orbi (1.2.4) tzinfo - faraday (1.1.0) + faraday (1.3.0) + faraday-net_http (~> 1.0) multipart-post (>= 1.2, < 3) ruby2_keywords + faraday-net_http (1.0.1) ffi (1.14.2) ffi-compiler (1.0.1) ffi (>= 1.0.0) @@ -277,14 +279,14 @@ GEM omniauth (1.9.1) hashie (>= 3.4.6) rack (>= 1.6.2, < 3) - omniauth-google-oauth2 (0.8.1) + omniauth-google-oauth2 (0.8.2) jwt (>= 2.0) oauth2 (~> 1.1) - omniauth (>= 1.1.1) + omniauth (~> 1.1) omniauth-oauth2 (>= 1.6) - omniauth-oauth2 (1.7.0) + omniauth-oauth2 (1.7.1) oauth2 (~> 1.4) - omniauth (~> 1.9) + omniauth (>= 1.9, < 3) openssl (2.2.0) orm_adapter (0.5.0) parallel (1.19.2) @@ -388,7 +390,7 @@ GEM ruby-progressbar (1.10.1) ruby-vips (2.0.17) ffi (~> 1.9) - ruby2_keywords (0.0.2) + ruby2_keywords (0.0.4) ruby_android (0.7.7) rubyzip (>= 1.1.6) rubyntlm (0.6.2) @@ -497,7 +499,7 @@ DEPENDENCIES listen (>= 3.0.5, < 3.5) mini_magick omniauth (~> 1.9) - omniauth-google-oauth2 (~> 0.8.1) + omniauth-google-oauth2 (~> 0.8.2) openssl (~> 2.2.0) pg (>= 0.18, < 2.0) pghero From a738e5518222ec8f27b8ef7c8f26a5983551b6f1 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 16 Mar 2021 05:37:14 +0000 Subject: [PATCH 0420/2165] chore(deps): bump sidekiq from 6.1.3 to 6.2.0 Bumps [sidekiq](https://github.com/mperham/sidekiq) from 6.1.3 to 6.2.0. - [Release notes](https://github.com/mperham/sidekiq/releases) - [Changelog](https://github.com/mperham/sidekiq/blob/master/Changes.md) - [Commits](https://github.com/mperham/sidekiq/compare/v6.1.3...v6.2.0) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index c9c856d88..070090d1c 100644 --- a/Gemfile +++ b/Gemfile @@ -67,7 +67,7 @@ gem 'rqrcode' # 异步队列 gem 'activejob-status' -gem 'sidekiq', '6.1.3' +gem 'sidekiq', '6.2.0' gem 'sidekiq-cron', github: 'wolfemm/sidekiq-cron', branch: 'master' # See https://github.com/ondrejbartas/sidekiq-cron/issues/286 # Assets diff --git a/Gemfile.lock b/Gemfile.lock index 549fa01f2..d208036ed 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -399,7 +399,7 @@ GEM sentry-raven (3.1.1) faraday (>= 1.0) shellany (0.0.1) - sidekiq (6.1.3) + sidekiq (6.2.0) connection_pool (>= 2.2.2) rack (~> 2.0) redis (>= 4.2.0) @@ -520,7 +520,7 @@ DEPENDENCIES rubocop-rails ruby-debug-ide sentry-raven - sidekiq (= 6.1.3) + sidekiq (= 6.2.0) sidekiq-cron! simple_form (~> 5.0) slim-rails (~> 3.2.0) From c53f1f052de98a397d97a574fa295c3c04ce16ad Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 16 Mar 2021 06:50:42 +0000 Subject: [PATCH 0421/2165] chore(deps): bump simple_form from 5.0.3 to 5.1.0 Bumps [simple_form](https://github.com/plataformatec/simple_form) from 5.0.3 to 5.1.0. - [Release notes](https://github.com/plataformatec/simple_form/releases) - [Changelog](https://github.com/heartcombo/simple_form/blob/master/CHANGELOG.md) - [Commits](https://github.com/plataformatec/simple_form/compare/v5.0.3...v5.1.0) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Gemfile b/Gemfile index 070090d1c..5626360a4 100644 --- a/Gemfile +++ b/Gemfile @@ -25,7 +25,7 @@ gem 'jb', '~> 0.8.0' gem 'slim-rails', '~> 3.2.0' ## 表单生成 -gem 'simple_form', '~> 5.0' +gem 'simple_form', '~> 5.1' # Model ## 生成友好 id diff --git a/Gemfile.lock b/Gemfile.lock index d208036ed..96a1e6a18 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -403,9 +403,9 @@ GEM connection_pool (>= 2.2.2) rack (~> 2.0) redis (>= 4.2.0) - simple_form (5.0.3) - actionpack (>= 5.0) - activemodel (>= 5.0) + simple_form (5.1.0) + actionpack (>= 5.2) + activemodel (>= 5.2) slim (4.0.1) temple (>= 0.7.6, < 0.9) tilt (>= 2.0.6, < 2.1) @@ -522,7 +522,7 @@ DEPENDENCIES sentry-raven sidekiq (= 6.2.0) sidekiq-cron! - simple_form (~> 5.0) + simple_form (~> 5.1) slim-rails (~> 3.2.0) spring spring-watcher-listen (~> 2.0.0) From 4433f2e0de888f4f7e4530d4321e7c5cd7102f17 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 24 Mar 2021 05:36:38 +0000 Subject: [PATCH 0422/2165] chore(deps-dev): bump listen from 3.4.0 to 3.5.0 Bumps [listen](https://github.com/guard/listen) from 3.4.0 to 3.5.0. - [Release notes](https://github.com/guard/listen/releases) - [Commits](https://github.com/guard/listen/compare/v3.4.0...v3.5.0) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index 070090d1c..8bc97495c 100644 --- a/Gemfile +++ b/Gemfile @@ -85,7 +85,7 @@ gem 'bootsnap', '>= 1.4.7', require: false group :development do # 调试控制台 - gem 'listen', '>= 3.0.5', '< 3.5' + gem 'listen', '>= 3.0.5', '< 3.6' gem 'web-console', '>= 3.3.0' # 调试器 diff --git a/Gemfile.lock b/Gemfile.lock index d208036ed..d089c2e04 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -143,7 +143,7 @@ GEM multipart-post (>= 1.2, < 3) ruby2_keywords faraday-net_http (1.0.1) - ffi (1.14.2) + ffi (1.15.0) ffi-compiler (1.0.1) ffi (>= 1.0.0) rake @@ -239,7 +239,7 @@ GEM actionmailer (>= 3.2) letter_opener (~> 1.0) railties (>= 3.2) - listen (3.4.0) + listen (3.5.0) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) loofah (2.9.0) @@ -496,7 +496,7 @@ DEPENDENCIES kaminari letter_opener (~> 1.7) letter_opener_web (~> 1.3) - listen (>= 3.0.5, < 3.5) + listen (>= 3.0.5, < 3.6) mini_magick omniauth (~> 1.9) omniauth-google-oauth2 (~> 0.8.2) From 3ffcd0f979045078281f86560297e20d4fcc1527 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 24 Mar 2021 06:14:45 +0000 Subject: [PATCH 0423/2165] chore(deps): bump bootsnap from 1.7.2 to 1.7.3 Bumps [bootsnap](https://github.com/Shopify/bootsnap) from 1.7.2 to 1.7.3. - [Release notes](https://github.com/Shopify/bootsnap/releases) - [Changelog](https://github.com/Shopify/bootsnap/blob/master/CHANGELOG.md) - [Commits](https://github.com/Shopify/bootsnap/compare/v1.7.2...v1.7.3) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index d089c2e04..11a5e641f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -98,7 +98,7 @@ GEM bindex (0.8.1) binding_of_caller (1.0.0) debug_inspector (>= 0.0.1) - bootsnap (1.7.2) + bootsnap (1.7.3) msgpack (~> 1.0) builder (3.2.4) byebug (11.0.1) From 5559703cd5af1626aa570c097f83444ec1a170c4 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 26 Mar 2021 05:46:04 +0000 Subject: [PATCH 0424/2165] chore(deps): bump pghero from 2.8.0 to 2.8.1 Bumps [pghero](https://github.com/ankane/pghero) from 2.8.0 to 2.8.1. - [Release notes](https://github.com/ankane/pghero/releases) - [Changelog](https://github.com/ankane/pghero/blob/master/CHANGELOG.md) - [Commits](https://github.com/ankane/pghero/compare/v2.8.0...v2.8.1) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 11a5e641f..c002bf517 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -251,7 +251,9 @@ GEM marcel (0.3.3) mimemagic (~> 0.3.2) method_source (1.0.0) - mimemagic (0.3.5) + mimemagic (0.3.9) + nokogiri (~> 1) + rake mini_magick (4.11.0) mini_mime (1.0.2) mini_portile2 (2.5.0) @@ -293,7 +295,7 @@ GEM parser (2.7.2.0) ast (~> 2.4.1) pg (1.2.1) - pghero (2.8.0) + pghero (2.8.1) activerecord (>= 5) plist (3.6.0) pngdefry (0.1.3) From bef23c0164333cb114a5e53fcb5467457b0ca37e Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 29 Mar 2021 11:19:42 +0800 Subject: [PATCH 0425/2165] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20friendly=5Fid=20?= =?UTF-8?q?5.4.2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 8bc97495c..e058b7d31 100644 --- a/Gemfile +++ b/Gemfile @@ -29,7 +29,7 @@ gem 'simple_form', '~> 5.0' # Model ## 生成友好 id -gem 'friendly_id', '~> 5.3.0' # NOTE: Do not upgrade to 5.4.0 +gem 'friendly_id', '~> 5.4.2' ## 数据分页 gem 'kaminari' ## 文件上传 diff --git a/Gemfile.lock b/Gemfile.lock index 11a5e641f..bbf373fbb 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -148,7 +148,7 @@ GEM ffi (>= 1.0.0) rake formatador (0.2.5) - friendly_id (5.3.0) + friendly_id (5.4.2) activerecord (>= 4.0.0) fugit (1.4.2) et-orbi (~> 1.1, >= 1.1.8) @@ -480,7 +480,7 @@ DEPENDENCIES devise (~> 4.7.3) devise-i18n (~> 1.9.3) dotenv-rails - friendly_id (~> 5.3.0) + friendly_id (~> 5.4.2) gitlab_omniauth-ldap (~> 2.1.1) graphql (~> 1.10.10) guard (~> 2.16.2) From 05322ff46c143a19e6b827fa4a5b6a18df1a4c8a Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 29 Mar 2021 11:01:42 +0800 Subject: [PATCH 0426/2165] upgrade rails 6.1.3 to 6.1.3.1 --- Gemfile.lock | 121 ++++++++++++++++++++++++++------------------------- 1 file changed, 61 insertions(+), 60 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index bbf373fbb..1abb4b5da 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -11,40 +11,40 @@ GEM remote: https://rubygems.org/ specs: CFPropertyList (3.0.3) - actioncable (6.1.3) - actionpack (= 6.1.3) - activesupport (= 6.1.3) + actioncable (6.1.3.1) + actionpack (= 6.1.3.1) + activesupport (= 6.1.3.1) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (6.1.3) - actionpack (= 6.1.3) - activejob (= 6.1.3) - activerecord (= 6.1.3) - activestorage (= 6.1.3) - activesupport (= 6.1.3) + actionmailbox (6.1.3.1) + actionpack (= 6.1.3.1) + activejob (= 6.1.3.1) + activerecord (= 6.1.3.1) + activestorage (= 6.1.3.1) + activesupport (= 6.1.3.1) mail (>= 2.7.1) - actionmailer (6.1.3) - actionpack (= 6.1.3) - actionview (= 6.1.3) - activejob (= 6.1.3) - activesupport (= 6.1.3) + actionmailer (6.1.3.1) + actionpack (= 6.1.3.1) + actionview (= 6.1.3.1) + activejob (= 6.1.3.1) + activesupport (= 6.1.3.1) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (6.1.3) - actionview (= 6.1.3) - activesupport (= 6.1.3) + actionpack (6.1.3.1) + actionview (= 6.1.3.1) + activesupport (= 6.1.3.1) rack (~> 2.0, >= 2.0.9) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (6.1.3) - actionpack (= 6.1.3) - activerecord (= 6.1.3) - activestorage (= 6.1.3) - activesupport (= 6.1.3) + actiontext (6.1.3.1) + actionpack (= 6.1.3.1) + activerecord (= 6.1.3.1) + activestorage (= 6.1.3.1) + activesupport (= 6.1.3.1) nokogiri (>= 1.8.5) - actionview (6.1.3) - activesupport (= 6.1.3) + actionview (6.1.3.1) + activesupport (= 6.1.3.1) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) @@ -54,25 +54,25 @@ GEM activemodel (>= 4.1, < 6.2) case_transform (>= 0.2) jsonapi-renderer (>= 0.1.1.beta1, < 0.3) - activejob (6.1.3) - activesupport (= 6.1.3) + activejob (6.1.3.1) + activesupport (= 6.1.3.1) globalid (>= 0.3.6) activejob-status (0.1.6) activejob (>= 4.2) activesupport (>= 4.2) - activemodel (6.1.3) - activesupport (= 6.1.3) - activerecord (6.1.3) - activemodel (= 6.1.3) - activesupport (= 6.1.3) - activestorage (6.1.3) - actionpack (= 6.1.3) - activejob (= 6.1.3) - activerecord (= 6.1.3) - activesupport (= 6.1.3) - marcel (~> 0.3.1) - mimemagic (~> 0.3.2) - activesupport (6.1.3) + activemodel (6.1.3.1) + activesupport (= 6.1.3.1) + activerecord (6.1.3.1) + activemodel (= 6.1.3.1) + activesupport (= 6.1.3.1) + activestorage (6.1.3.1) + actionpack (= 6.1.3.1) + activejob (= 6.1.3.1) + activerecord (= 6.1.3.1) + activesupport (= 6.1.3.1) + marcel (~> 1.0.0) + mini_mime (~> 1.0.2) + activesupport (6.1.3.1) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) @@ -248,12 +248,13 @@ GEM lumberjack (1.2.4) mail (2.7.1) mini_mime (>= 0.1.1) - marcel (0.3.3) - mimemagic (~> 0.3.2) + marcel (1.0.0) method_source (1.0.0) - mimemagic (0.3.5) + mimemagic (0.4.3) + nokogiri (~> 1) + rake mini_magick (4.11.0) - mini_mime (1.0.2) + mini_mime (1.0.3) mini_portile2 (2.5.0) minitest (5.14.4) mixlib-shellout (3.0.7) @@ -263,7 +264,7 @@ GEM multipart-post (2.1.1) nenv (0.3.0) net-ldap (0.16.3) - nio4r (2.5.5) + nio4r (2.5.7) nokogiri (1.11.2) mini_portile2 (~> 2.5.0) racc (~> 1.4) @@ -323,20 +324,20 @@ GEM rack rack-test (1.1.0) rack (>= 1.0, < 3) - rails (6.1.3) - actioncable (= 6.1.3) - actionmailbox (= 6.1.3) - actionmailer (= 6.1.3) - actionpack (= 6.1.3) - actiontext (= 6.1.3) - actionview (= 6.1.3) - activejob (= 6.1.3) - activemodel (= 6.1.3) - activerecord (= 6.1.3) - activestorage (= 6.1.3) - activesupport (= 6.1.3) + rails (6.1.3.1) + actioncable (= 6.1.3.1) + actionmailbox (= 6.1.3.1) + actionmailer (= 6.1.3.1) + actionpack (= 6.1.3.1) + actiontext (= 6.1.3.1) + actionview (= 6.1.3.1) + activejob (= 6.1.3.1) + activemodel (= 6.1.3.1) + activerecord (= 6.1.3.1) + activestorage (= 6.1.3.1) + activesupport (= 6.1.3.1) bundler (>= 1.15.0) - railties (= 6.1.3) + railties (= 6.1.3.1) sprockets-rails (>= 2.0.0) rails-dom-testing (2.0.3) activesupport (>= 4.2.0) @@ -348,9 +349,9 @@ GEM railties (>= 6.0.0, < 7) rails-settings-cached (2.5.2) rails (>= 5.0.0) - railties (6.1.3) - actionpack (= 6.1.3) - activesupport (= 6.1.3) + railties (6.1.3.1) + actionpack (= 6.1.3.1) + activesupport (= 6.1.3.1) method_source rake (>= 0.8.7) thor (~> 1.0) From 09468265a2debfe5f92ef0a1525d6afc5daa8301 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 29 Mar 2021 11:15:01 +0800 Subject: [PATCH 0427/2165] =?UTF-8?q?=E9=99=8D=E7=BA=A7=20carrierwave=20?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E8=87=B3=200.3.10?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 1 + Gemfile.lock | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index e058b7d31..7feb41633 100644 --- a/Gemfile +++ b/Gemfile @@ -35,6 +35,7 @@ gem 'kaminari' ## 文件上传 gem 'carrierwave', '~> 2.2.0' gem 'mini_magick' +gem 'mimemagic', '~> 0.3.0' # FIXME: 等待 carrierwave 更新新版本后移除 # Helper ## HTTP 请求 diff --git a/Gemfile.lock b/Gemfile.lock index 1abb4b5da..c20fb360a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -250,7 +250,7 @@ GEM mini_mime (>= 0.1.1) marcel (1.0.0) method_source (1.0.0) - mimemagic (0.4.3) + mimemagic (0.3.10) nokogiri (~> 1) rake mini_magick (4.11.0) @@ -498,6 +498,7 @@ DEPENDENCIES letter_opener (~> 1.7) letter_opener_web (~> 1.3) listen (>= 3.0.5, < 3.6) + mimemagic (~> 0.3.0) mini_magick omniauth (~> 1.9) omniauth-google-oauth2 (~> 0.8.2) From eb5fb1c57f6982203c3a1c6cf8f241dc2837224b Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Mon, 29 Mar 2021 17:42:19 +0000 Subject: [PATCH 0428/2165] chore(deps): [security] bump y18n from 4.0.0 to 4.0.1 Bumps [y18n](https://github.com/yargs/y18n) from 4.0.0 to 4.0.1. **This update includes a security fix.** - [Release notes](https://github.com/yargs/y18n/releases) - [Changelog](https://github.com/yargs/y18n/blob/master/CHANGELOG.md) - [Commits](https://github.com/yargs/y18n/commits) Signed-off-by: dependabot-preview[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 2427d100a..5ad6af638 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8767,9 +8767,9 @@ xtend@^4.0.0, xtend@^4.0.2, xtend@~4.0.1: integrity sha1-u3J3n1+kZRhrH0OPZ0+jR/2121Q= y18n@^4.0.0: - version "4.0.0" - resolved "https://registry.npm.taobao.org/y18n/download/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" - integrity sha1-le+U+F7MgdAHwmThkKEg8KPIVms= + version "4.0.1" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4" + integrity sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ== yallist@^2.1.2: version "2.1.2" From 63f84a0adb63283c582378bf7d9bb93a3d1b68c8 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Tue, 30 Mar 2021 05:49:48 +0000 Subject: [PATCH 0429/2165] chore(deps): bump sentry-raven from 3.1.1 to 3.1.2 Bumps [sentry-raven](https://github.com/getsentry/raven-ruby) from 3.1.1 to 3.1.2. - [Release notes](https://github.com/getsentry/raven-ruby/releases) - [Commits](https://github.com/getsentry/raven-ruby/compare/3.1.1...sentry-raven-v3.1.2) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 11a5e641f..9d4076d7e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -251,7 +251,9 @@ GEM marcel (0.3.3) mimemagic (~> 0.3.2) method_source (1.0.0) - mimemagic (0.3.5) + mimemagic (0.3.10) + nokogiri (~> 1) + rake mini_magick (4.11.0) mini_mime (1.0.2) mini_portile2 (2.5.0) @@ -396,7 +398,7 @@ GEM rubyntlm (0.6.2) rubyzip (2.3.0) semantic_range (2.3.0) - sentry-raven (3.1.1) + sentry-raven (3.1.2) faraday (>= 1.0) shellany (0.0.1) sidekiq (6.2.0) From 4e512a2bb5af8f0547c7b2e928a5dc600b9d4934 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Wed, 31 Mar 2021 05:42:13 +0000 Subject: [PATCH 0430/2165] chore(deps-dev): bump listen from 3.5.0 to 3.5.1 Bumps [listen](https://github.com/guard/listen) from 3.5.0 to 3.5.1. - [Release notes](https://github.com/guard/listen/releases) - [Commits](https://github.com/guard/listen/compare/v3.5.0...v3.5.1) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 11a5e641f..c8b26836d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -239,7 +239,7 @@ GEM actionmailer (>= 3.2) letter_opener (~> 1.0) railties (>= 3.2) - listen (3.5.0) + listen (3.5.1) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) loofah (2.9.0) @@ -251,7 +251,9 @@ GEM marcel (0.3.3) mimemagic (~> 0.3.2) method_source (1.0.0) - mimemagic (0.3.5) + mimemagic (0.3.10) + nokogiri (~> 1) + rake mini_magick (4.11.0) mini_mime (1.0.2) mini_portile2 (2.5.0) From dea9a44a947f06564b2f3b28feb0ec80acb8a27f Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 1 Apr 2021 12:20:06 +0800 Subject: [PATCH 0431/2165] feat: use REDIS_TLS_URL as redis default url --- config/initializers/sidekiq.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/initializers/sidekiq.rb b/config/initializers/sidekiq.rb index 1f25a8695..7098e9499 100644 --- a/config/initializers/sidekiq.rb +++ b/config/initializers/sidekiq.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true -sidekiq_config = { url: ENV['REDIS_URL'] || 'redis://localhost:6379/0' } +sidekiq_config = { url: ENV['REDIS_TLS_URL'] || ENV['REDIS_URL'] || 'redis://localhost:6379/0' } Sidekiq.configure_server do |config| config.redis = sidekiq_config From 9b7b44d8a946e5b7583cf99147899e8c26aa7f2c Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 1 Apr 2021 14:28:27 +0800 Subject: [PATCH 0432/2165] =?UTF-8?q?fix:=20=E6=9B=B4=E6=96=B0=20carrierwa?= =?UTF-8?q?ve=20=E5=92=8C=20rails-settings-cached?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 6 ++---- Gemfile.lock | 19 +++++++------------ 2 files changed, 9 insertions(+), 16 deletions(-) diff --git a/Gemfile b/Gemfile index 7feb41633..b1c70ac95 100644 --- a/Gemfile +++ b/Gemfile @@ -33,9 +33,7 @@ gem 'friendly_id', '~> 5.4.2' ## 数据分页 gem 'kaminari' ## 文件上传 -gem 'carrierwave', '~> 2.2.0' -gem 'mini_magick' -gem 'mimemagic', '~> 0.3.0' # FIXME: 等待 carrierwave 更新新版本后移除 +gem 'carrierwave', '~> 2.2.1' # Helper ## HTTP 请求 @@ -79,7 +77,7 @@ gem 'webpacker', '~> 5.2' gem 'app-info', '~> 2.4.1' # Mobile config -gem 'rails-settings-cached', '~> 2.5' +gem 'rails-settings-cached', '~> 2.5.2' # Reduces boot times through caching; required in config/boot.rb gem 'bootsnap', '>= 1.4.7', require: false diff --git a/Gemfile.lock b/Gemfile.lock index c20fb360a..4910d491d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -102,12 +102,12 @@ GEM msgpack (~> 1.0) builder (3.2.4) byebug (11.0.1) - carrierwave (2.2.0) + carrierwave (2.2.1) activemodel (>= 5.0.0) activesupport (>= 5.0.0) addressable (~> 2.6) image_processing (~> 1.1) - mimemagic (>= 0.3.0) + marcel (~> 1.0.0) mini_mime (>= 0.1.3) ssrf_filter (~> 1.0) case_transform (0.2) @@ -201,7 +201,7 @@ GEM http-form_data (2.3.0) http-parser (1.2.1) ffi-compiler (>= 1.0, < 2.0) - i18n (1.8.9) + i18n (1.8.10) concurrent-ruby (~> 1.0) image_processing (1.12.1) mini_magick (>= 4.9.5, < 5) @@ -250,9 +250,6 @@ GEM mini_mime (>= 0.1.1) marcel (1.0.0) method_source (1.0.0) - mimemagic (0.3.10) - nokogiri (~> 1) - rake mini_magick (4.11.0) mini_mime (1.0.3) mini_portile2 (2.5.0) @@ -389,8 +386,8 @@ GEM rake (>= 0.8.1) ruby-macho (2.2.0) ruby-progressbar (1.10.1) - ruby-vips (2.0.17) - ffi (~> 1.9) + ruby-vips (2.1.0) + ffi (~> 1.12) ruby2_keywords (0.0.4) ruby_android (0.7.7) rubyzip (>= 1.1.6) @@ -476,7 +473,7 @@ DEPENDENCIES binding_of_caller bootsnap (>= 1.4.7) byebug - carrierwave (~> 2.2.0) + carrierwave (~> 2.2.1) debase devise (~> 4.7.3) devise-i18n (~> 1.9.3) @@ -498,8 +495,6 @@ DEPENDENCIES letter_opener (~> 1.7) letter_opener_web (~> 1.3) listen (>= 3.0.5, < 3.6) - mimemagic (~> 0.3.0) - mini_magick omniauth (~> 1.9) omniauth-google-oauth2 (~> 0.8.2) openssl (~> 2.2.0) @@ -514,7 +509,7 @@ DEPENDENCIES rack-cors (~> 1.1.1) rails (~> 6.1.3) rails-i18n (~> 6.0.0) - rails-settings-cached (~> 2.5) + rails-settings-cached (~> 2.5.2) rake (~> 13.0.3) redis (~> 4.2.5) rqrcode From c9aabf705357104c256b35cc61cd549dc070321f Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 1 Apr 2021 16:36:49 +0800 Subject: [PATCH 0433/2165] revert: use REDIS_TLS_URL as redis default url --- config/initializers/sidekiq.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/initializers/sidekiq.rb b/config/initializers/sidekiq.rb index 7098e9499..1f25a8695 100644 --- a/config/initializers/sidekiq.rb +++ b/config/initializers/sidekiq.rb @@ -1,5 +1,5 @@ # frozen_string_literal: true -sidekiq_config = { url: ENV['REDIS_TLS_URL'] || ENV['REDIS_URL'] || 'redis://localhost:6379/0' } +sidekiq_config = { url: ENV['REDIS_URL'] || 'redis://localhost:6379/0' } Sidekiq.configure_server do |config| config.redis = sidekiq_config From 813bc343113ae0e4a9f5f4c45b65f75493ba26a0 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Thu, 8 Apr 2021 05:58:40 +0000 Subject: [PATCH 0434/2165] chore(deps-dev): bump guard-bundler from 2.2.1 to 3.0.0 Bumps [guard-bundler](https://github.com/guard/guard-bundler) from 2.2.1 to 3.0.0. - [Release notes](https://github.com/guard/guard-bundler/releases) - [Commits](https://github.com/guard/guard-bundler/compare/v2.2.1...v3.0.0) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index bd194db39..4327cbce9 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -170,8 +170,8 @@ GEM pry (>= 0.9.12) shellany (~> 0.0) thor (>= 0.18.1) - guard-bundler (2.2.1) - bundler (>= 1.3.0, < 3) + guard-bundler (3.0.0) + bundler (>= 2.1, < 3) guard (~> 2.2) guard-compat (~> 1.1) guard-compat (1.2.1) @@ -245,7 +245,7 @@ GEM loofah (2.9.0) crass (~> 1.0.2) nokogiri (>= 1.5.9) - lumberjack (1.2.4) + lumberjack (1.2.8) mail (2.7.1) mini_mime (>= 0.1.1) marcel (1.0.0) From 090fc84d66900fd1d59ec34396114b3da7fdeb89 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Thu, 8 Apr 2021 05:59:14 +0000 Subject: [PATCH 0435/2165] chore(deps): bump sidekiq from 6.2.0 to 6.2.1 Bumps [sidekiq](https://github.com/mperham/sidekiq) from 6.2.0 to 6.2.1. - [Release notes](https://github.com/mperham/sidekiq/releases) - [Changelog](https://github.com/mperham/sidekiq/blob/master/Changes.md) - [Commits](https://github.com/mperham/sidekiq/compare/v6.2.0...v6.2.1) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index a9c87f38e..a57ae0b58 100644 --- a/Gemfile +++ b/Gemfile @@ -66,7 +66,7 @@ gem 'rqrcode' # 异步队列 gem 'activejob-status' -gem 'sidekiq', '6.2.0' +gem 'sidekiq', '6.2.1' gem 'sidekiq-cron', github: 'wolfemm/sidekiq-cron', branch: 'master' # See https://github.com/ondrejbartas/sidekiq-cron/issues/286 # Assets diff --git a/Gemfile.lock b/Gemfile.lock index bd194db39..cf88b213d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -397,7 +397,7 @@ GEM sentry-raven (3.1.2) faraday (>= 1.0) shellany (0.0.1) - sidekiq (6.2.0) + sidekiq (6.2.1) connection_pool (>= 2.2.2) rack (~> 2.0) redis (>= 4.2.0) @@ -517,7 +517,7 @@ DEPENDENCIES rubocop-rails ruby-debug-ide sentry-raven - sidekiq (= 6.2.0) + sidekiq (= 6.2.1) sidekiq-cron! simple_form (~> 5.1) slim-rails (~> 3.2.0) From 198001a414fa12b6ad81a2aaad9584cc8c56906f Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 9 Apr 2021 16:38:56 +0800 Subject: [PATCH 0436/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E8=A7=A3?= =?UTF-8?q?=E6=9E=90=E8=B0=83=E8=AF=95=E6=96=87=E4=BB=B6=E6=B8=85=E7=90=86?= =?UTF-8?q?=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/jobs/debug_file_teardown_job.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/jobs/debug_file_teardown_job.rb b/app/jobs/debug_file_teardown_job.rb index 7001d3f65..9d0449d37 100644 --- a/app/jobs/debug_file_teardown_job.rb +++ b/app/jobs/debug_file_teardown_job.rb @@ -16,7 +16,7 @@ def perform(debug_file) end # 清理掉临时生成的文件 - debug_file.clear! + parser.clear! rescue => e logger.error "Can not teardown debug file: #{e}" logger.error e.backtrace.join("\n") From 042a231a47caab9db76b371334eb3d0fd35e953b Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 9 Apr 2021 16:42:48 +0800 Subject: [PATCH 0437/2165] =?UTF-8?q?refactor:=20=E6=89=8B=E5=8A=A8?= =?UTF-8?q?=E5=BC=95=E5=85=A5=20pngdefry=20=E5=8C=85=E5=92=8C=E4=BD=BF?= =?UTF-8?q?=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 3 ++- Gemfile.lock | 6 +++--- app/models/release.rb | 2 ++ 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index a57ae0b58..1c9f890f4 100644 --- a/Gemfile +++ b/Gemfile @@ -74,7 +74,8 @@ gem 'turbolinks', '~> 5' gem 'webpacker', '~> 5.2' # 用于解析 ipa 和 apk 包 -gem 'app-info', '~> 2.4.1' +gem 'app-info', '~> 2.4.2' +gem 'pngdefry', '~> 0.1.2', require: false # Mobile config gem 'rails-settings-cached', '~> 2.5.2' diff --git a/Gemfile.lock b/Gemfile.lock index c8575d024..8e208b20e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -80,10 +80,9 @@ GEM zeitwerk (~> 2.3) addressable (2.7.0) public_suffix (>= 2.0.2, < 5.0) - app-info (2.4.1) + app-info (2.4.2) CFPropertyList (>= 2.3.4, < 3.1.0) image_size (>= 1.5, < 2.2) - pngdefry (~> 0.1.2) ruby-macho (~> 2.2.0) ruby_android (~> 0.7.7) rubyzip (>= 1.2, < 3.0) @@ -467,7 +466,7 @@ PLATFORMS DEPENDENCIES active_model_serializers (~> 0.10.12) activejob-status - app-info (~> 2.4.1) + app-info (~> 2.4.2) awesome_print better_errors binding_of_caller @@ -501,6 +500,7 @@ DEPENDENCIES pg (>= 0.18, < 2.0) pghero plist (~> 3.6.0) + pngdefry (~> 0.1.2) pry-byebug pry-rails pry-rescue diff --git a/app/models/release.rb b/app/models/release.rb index 5f14d421d..bc0696b08 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -80,6 +80,8 @@ def self.upload_file(params, parser = nil) end def self.decode_icon(icon_file) + require 'pngdefry' + Pngdefry.defry icon_file, icon_file File.open icon_file end From b49a38f0d6129db4aeffcc2598abe520c9632493 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 12 Apr 2021 16:55:41 +0800 Subject: [PATCH 0438/2165] fix: throws an exception 'IHDR not in place for PNG' during parse ipa file --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 1c9f890f4..8c2ae5492 100644 --- a/Gemfile +++ b/Gemfile @@ -74,7 +74,7 @@ gem 'turbolinks', '~> 5' gem 'webpacker', '~> 5.2' # 用于解析 ipa 和 apk 包 -gem 'app-info', '~> 2.4.2' +gem 'app-info', '~> 2.4.3' gem 'pngdefry', '~> 0.1.2', require: false # Mobile config diff --git a/Gemfile.lock b/Gemfile.lock index 8e208b20e..88c1f0976 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -80,7 +80,7 @@ GEM zeitwerk (~> 2.3) addressable (2.7.0) public_suffix (>= 2.0.2, < 5.0) - app-info (2.4.2) + app-info (2.4.3) CFPropertyList (>= 2.3.4, < 3.1.0) image_size (>= 1.5, < 2.2) ruby-macho (~> 2.2.0) @@ -466,7 +466,7 @@ PLATFORMS DEPENDENCIES active_model_serializers (~> 0.10.12) activejob-status - app-info (~> 2.4.2) + app-info (~> 2.4.3) awesome_print better_errors binding_of_caller From b8507ed2ebbd6fbab26f01712f63a0169b0a8533 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 12 Apr 2021 17:01:30 +0800 Subject: [PATCH 0439/2165] =?UTF-8?q?fix:=20app=20=E4=B8=8B=E8=BD=BD?= =?UTF-8?q?=E5=BC=BA=E5=88=B6=E8=AE=BE=E7=BD=AE=20protocol?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/download/releases_controller.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/controllers/download/releases_controller.rb b/app/controllers/download/releases_controller.rb index eb0235e6d..7177e09c2 100644 --- a/app/controllers/download/releases_controller.rb +++ b/app/controllers/download/releases_controller.rb @@ -9,7 +9,8 @@ class Download::ReleasesController < ApplicationController def show return render_not_found_entity_response unless File.exist?(@release.file.path.to_s) - redirect_to filename_download_release_url(@release, @release.download_filename) + protocol = Rails.application.routes.default_url_options[:protocol] + redirect_to filename_download_release_url(@release, @release.download_filename, protocol: protocol) end def download From 9cf8622b080c59b99b55faf994f6cb4432c11a78 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 13 Apr 2021 14:07:38 +0800 Subject: [PATCH 0440/2165] =?UTF-8?q?Revert=20"fix:=20app=20=E4=B8=8B?= =?UTF-8?q?=E8=BD=BD=E5=BC=BA=E5=88=B6=E8=AE=BE=E7=BD=AE=20protocol"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit b8507ed2ebbd6fbab26f01712f63a0169b0a8533. --- app/controllers/download/releases_controller.rb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/controllers/download/releases_controller.rb b/app/controllers/download/releases_controller.rb index 7177e09c2..eb0235e6d 100644 --- a/app/controllers/download/releases_controller.rb +++ b/app/controllers/download/releases_controller.rb @@ -9,8 +9,7 @@ class Download::ReleasesController < ApplicationController def show return render_not_found_entity_response unless File.exist?(@release.file.path.to_s) - protocol = Rails.application.routes.default_url_options[:protocol] - redirect_to filename_download_release_url(@release, @release.download_filename, protocol: protocol) + redirect_to filename_download_release_url(@release, @release.download_filename) end def download From 4888fea9c378491c028874b14cec6f0daf211399 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 13 Apr 2021 14:08:20 +0800 Subject: [PATCH 0441/2165] =?UTF-8?q?chore:=20=E6=9B=B4=E6=96=B0=20gitigno?= =?UTF-8?q?re?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index bdd8d68a3..c78c4618f 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ build_info/ extensions/ bundler/ +storage/ # minimal Rails specific artifacts db/*.sqlite3 From 1dcd181e765bfd1793dc41e285c86a9164f88b53 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 13 Apr 2021 17:02:29 +0800 Subject: [PATCH 0442/2165] =?UTF-8?q?refactor:=20=E6=8A=BD=E7=A6=BB?= =?UTF-8?q?=E8=A7=A3=E5=AF=86=20ios=20=E5=9B=BE=E6=A0=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 3 +-- Gemfile.lock | 6 ++---- app/models/release.rb | 12 ++---------- 3 files changed, 5 insertions(+), 16 deletions(-) diff --git a/Gemfile b/Gemfile index 8c2ae5492..d5ae2e732 100644 --- a/Gemfile +++ b/Gemfile @@ -74,8 +74,7 @@ gem 'turbolinks', '~> 5' gem 'webpacker', '~> 5.2' # 用于解析 ipa 和 apk 包 -gem 'app-info', '~> 2.4.3' -gem 'pngdefry', '~> 0.1.2', require: false +gem 'app-info', '~> 2.5.0' # Mobile config gem 'rails-settings-cached', '~> 2.5.2' diff --git a/Gemfile.lock b/Gemfile.lock index 88c1f0976..06e6a47da 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -80,7 +80,7 @@ GEM zeitwerk (~> 2.3) addressable (2.7.0) public_suffix (>= 2.0.2, < 5.0) - app-info (2.4.3) + app-info (2.5.0) CFPropertyList (>= 2.3.4, < 3.1.0) image_size (>= 1.5, < 2.2) ruby-macho (~> 2.2.0) @@ -293,7 +293,6 @@ GEM pghero (2.8.1) activerecord (>= 5) plist (3.6.0) - pngdefry (0.1.3) pry (0.13.1) coderay (~> 1.1) method_source (~> 1.0) @@ -466,7 +465,7 @@ PLATFORMS DEPENDENCIES active_model_serializers (~> 0.10.12) activejob-status - app-info (~> 2.4.3) + app-info (~> 2.5.0) awesome_print better_errors binding_of_caller @@ -500,7 +499,6 @@ DEPENDENCIES pg (>= 0.18, < 2.0) pghero plist (~> 3.6.0) - pngdefry (~> 0.1.2) pry-byebug pry-rails pry-rescue diff --git a/app/models/release.rb b/app/models/release.rb index bc0696b08..2938ecb4d 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -50,8 +50,8 @@ def self.upload_file(params, parser = nil) if parser.os == AppInfo::Platform::IOS release.release_type ||= parser.release_type - icon_file = parser.icons.last.try(:[], :file) - release.icon = decode_icon(icon_file) if icon_file + icon_file = parser.icons.last.try(:[], :uncrushed_file) + release.icon = icon_file if icon_file else # 处理 Android anydpi 自适应图标 icon_file = parser.icons @@ -79,14 +79,6 @@ def self.upload_file(params, parser = nil) end end - def self.decode_icon(icon_file) - require 'pngdefry' - - Pngdefry.defry icon_file, icon_file - File.open icon_file - end - private_class_method :decode_icon - def app_name "#{app.name} #{scheme.name} #{channel.name}" end From 4c58a37fd9c46cca10f2d2a0853114f17da2d60a Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 14 Apr 2021 18:02:46 +0800 Subject: [PATCH 0443/2165] =?UTF-8?q?fix:=20=E6=9B=B4=E6=96=B0=20app-info?= =?UTF-8?q?=20=E8=A7=A3=E5=86=B3=E8=A7=A3=E6=9E=90=20ipa=20=E6=8A=B1?= =?UTF-8?q?=E9=94=99=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index d5ae2e732..e31b008b7 100644 --- a/Gemfile +++ b/Gemfile @@ -74,7 +74,7 @@ gem 'turbolinks', '~> 5' gem 'webpacker', '~> 5.2' # 用于解析 ipa 和 apk 包 -gem 'app-info', '~> 2.5.0' +gem 'app-info', '~> 2.5.1' # Mobile config gem 'rails-settings-cached', '~> 2.5.2' diff --git a/Gemfile.lock b/Gemfile.lock index 06e6a47da..7dc2bbce5 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -80,7 +80,7 @@ GEM zeitwerk (~> 2.3) addressable (2.7.0) public_suffix (>= 2.0.2, < 5.0) - app-info (2.5.0) + app-info (2.5.1) CFPropertyList (>= 2.3.4, < 3.1.0) image_size (>= 1.5, < 2.2) ruby-macho (~> 2.2.0) @@ -465,7 +465,7 @@ PLATFORMS DEPENDENCIES active_model_serializers (~> 0.10.12) activejob-status - app-info (~> 2.5.0) + app-info (~> 2.5.1) awesome_print better_errors binding_of_caller From 0cb70c902aa12c50731921106827f9c50004e509 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 14 Apr 2021 18:05:59 +0800 Subject: [PATCH 0444/2165] =?UTF-8?q?refactor:=20=E4=B8=8A=E4=BC=A0=20app?= =?UTF-8?q?=20=E4=BF=9D=E5=AD=98=20filename=20=E4=B8=BA=E5=8E=9F=E5=A7=8B?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/uploaders/application_uploader.rb | 9 --------- 1 file changed, 9 deletions(-) diff --git a/app/uploaders/application_uploader.rb b/app/uploaders/application_uploader.rb index cc54e82ef..aece06d6b 100644 --- a/app/uploaders/application_uploader.rb +++ b/app/uploaders/application_uploader.rb @@ -17,15 +17,6 @@ def checksum @checksum ||= Digest::MD5.hexdigest(chunk.read.to_s) end - def filename - @filename ||= case - when identifier - identifier - when super - "#{checksum}#{File.extname(super)}" - end - end - protected # Copy from https://github.com/carrierwaveuploader/carrierwave/wiki/how-to:-make-a-fast-lookup-able-storage-directory-structure From 0eea81f2ed22516561b0479503991d9ad67b2fe2 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 15 Apr 2021 11:19:40 +0800 Subject: [PATCH 0445/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E8=B7=B3?= =?UTF-8?q?=E8=BD=AC=E6=9C=80=E6=96=B0=E7=89=88=E6=9C=AC=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E4=BD=86=E5=BA=94=E7=94=A8=E5=B7=B2=E7=BB=8F=E4=B8=8D=E5=AD=98?= =?UTF-8?q?=E5=9C=A8=E7=9A=84=E6=83=85=E5=86=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/releases_controller.rb | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/controllers/releases_controller.rb b/app/controllers/releases_controller.rb index 8a82a4c9a..f07f4976b 100644 --- a/app/controllers/releases_controller.rb +++ b/app/controllers/releases_controller.rb @@ -5,8 +5,11 @@ class ReleasesController < ApplicationController before_action :set_channel before_action :set_release, only: %i[show auth destroy] before_action :authenticate_app!, only: :show + def index - redirect_to channel_release_path(@channel, @channel.releases.last), notice: "没有找到版本1111,跳转至最新版本" + return redirect_to root_path, notice: "应用不存在或已经被移除,页面跳转至首页" unless @channel + return redirect_to channel_path(@channel), notice: "应用版本不存在或已经被移除,页面跳转至应用渠道详情" if @channel.releases.empty? + redirect_to channel_release_path(@channel, @channel.releases.last), notice: "版本不存在或已经被移除,跳转至最新版本" end def show From b139da413e84417e9bbe8791e29d81bdfb5caa5c Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 16 Apr 2021 05:36:22 +0000 Subject: [PATCH 0446/2165] chore(deps): bump app-info from 2.5.1 to 2.5.2 Bumps [app-info](https://github.com/icyleaf/app-info) from 2.5.1 to 2.5.2. - [Release notes](https://github.com/icyleaf/app-info/releases) - [Changelog](https://github.com/icyleaf/app_info/blob/master/CHANGELOG.md) - [Commits](https://github.com/icyleaf/app-info/compare/v2.5.1...v2.5.2) Signed-off-by: dependabot-preview[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index e31b008b7..cbe548195 100644 --- a/Gemfile +++ b/Gemfile @@ -74,7 +74,7 @@ gem 'turbolinks', '~> 5' gem 'webpacker', '~> 5.2' # 用于解析 ipa 和 apk 包 -gem 'app-info', '~> 2.5.1' +gem 'app-info', '~> 2.5.2' # Mobile config gem 'rails-settings-cached', '~> 2.5.2' diff --git a/Gemfile.lock b/Gemfile.lock index 7dc2bbce5..c23bd2fe3 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -80,7 +80,7 @@ GEM zeitwerk (~> 2.3) addressable (2.7.0) public_suffix (>= 2.0.2, < 5.0) - app-info (2.5.1) + app-info (2.5.2) CFPropertyList (>= 2.3.4, < 3.1.0) image_size (>= 1.5, < 2.2) ruby-macho (~> 2.2.0) @@ -465,7 +465,7 @@ PLATFORMS DEPENDENCIES active_model_serializers (~> 0.10.12) activejob-status - app-info (~> 2.5.1) + app-info (~> 2.5.2) awesome_print better_errors binding_of_caller From 5c385194845f6f878df6e54987bee8c00c532f6b Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Fri, 16 Apr 2021 22:19:41 +0000 Subject: [PATCH 0447/2165] chore(deps): [security] bump ssri from 6.0.1 to 6.0.2 Bumps [ssri](https://github.com/npm/ssri) from 6.0.1 to 6.0.2. **This update includes a security fix.** - [Release notes](https://github.com/npm/ssri/releases) - [Changelog](https://github.com/npm/ssri/blob/v6.0.2/CHANGELOG.md) - [Commits](https://github.com/npm/ssri/compare/v6.0.1...v6.0.2) Signed-off-by: dependabot-preview[bot] --- yarn.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/yarn.lock b/yarn.lock index 5ad6af638..12f2760d7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3657,8 +3657,8 @@ faye-websocket@^0.11.3: figgy-pudding@^3.5.1: version "3.5.2" - resolved "https://registry.npm.taobao.org/figgy-pudding/download/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" - integrity sha1-tO7oFIq7Adzx0aw0Nn1Z4S+mHW4= + resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" + integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== file-loader@^6.0.0: version "6.0.0" @@ -7781,9 +7781,9 @@ sshpk@^1.7.0: tweetnacl "~0.14.0" ssri@^6.0.1: - version "6.0.1" - resolved "https://registry.npm.taobao.org/ssri/download/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" - integrity sha1-KjxBso3UW2K2Nnbst0ABJlrp7dg= + version "6.0.2" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.2.tgz#157939134f20464e7301ddba3e90ffa8f7728ac5" + integrity sha512-cepbSq/neFK7xB6A50KHN0xHDotYzq58wWCa5LeWqnPrHG8GzfEjO/4O8kpmcGW+oaxkvhEJCWgbgNk4/ZV93Q== dependencies: figgy-pudding "^3.5.1" From bb58eb79bf7d7fc97e9e899be3a05389b80d794d Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Thu, 22 Apr 2021 05:44:38 +0000 Subject: [PATCH 0448/2165] chore(deps): bump bootsnap from 1.7.3 to 1.7.4 Bumps [bootsnap](https://github.com/Shopify/bootsnap) from 1.7.3 to 1.7.4. - [Release notes](https://github.com/Shopify/bootsnap/releases) - [Changelog](https://github.com/Shopify/bootsnap/blob/master/CHANGELOG.md) - [Commits](https://github.com/Shopify/bootsnap/compare/v1.7.3...v1.7.4) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index c23bd2fe3..c2eca5664 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -97,7 +97,7 @@ GEM bindex (0.8.1) binding_of_caller (1.0.0) debug_inspector (>= 0.0.1) - bootsnap (1.7.3) + bootsnap (1.7.4) msgpack (~> 1.0) builder (3.2.4) byebug (11.0.1) From 3c616b68e1196d1064a6d81f9d6b0042707b9028 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Thu, 29 Apr 2021 02:22:04 +0000 Subject: [PATCH 0449/2165] chore(deps): [security] bump rexml from 3.2.4 to 3.2.5 Bumps [rexml](https://github.com/ruby/rexml) from 3.2.4 to 3.2.5. **This update includes a security fix.** - [Release notes](https://github.com/ruby/rexml/releases) - [Changelog](https://github.com/ruby/rexml/blob/master/NEWS.md) - [Commits](https://github.com/ruby/rexml/compare/v3.2.4...v3.2.5) Signed-off-by: dependabot-preview[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index c2eca5664..e59d3df5b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -360,7 +360,7 @@ GEM responders (3.0.1) actionpack (>= 5.0) railties (>= 5.0) - rexml (3.2.4) + rexml (3.2.5) rqrcode (1.2.0) chunky_png (~> 1.0) rqrcode_core (~> 0.2) From 5f2eaa965e6a3b2ff01f70171da835c439cdd695 Mon Sep 17 00:00:00 2001 From: "dependabot-preview[bot]" <27856297+dependabot-preview[bot]@users.noreply.github.com> Date: Thu, 29 Apr 2021 15:20:51 +0000 Subject: [PATCH 0450/2165] Upgrade to GitHub-native Dependabot --- .github/dependabot.yml | 59 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 .github/dependabot.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 000000000..5d8b15f2f --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,59 @@ +version: 2 +updates: +- package-ecosystem: bundler + directory: "/" + schedule: + interval: daily + open-pull-requests-limit: 10 + ignore: + - dependency-name: byebug + versions: + - "> 11.0.1" + - dependency-name: pg + versions: + - "> 1.2.1, < 1.3" + - dependency-name: rubocop + versions: + - "> 1.2.0" + - dependency-name: rubocop-rails + versions: + - "> 2.7.0" + - dependency-name: rubocop-rails + versions: + - ">= 2.8.a, < 2.9" + - dependency-name: graphql + versions: + - 1.12.3 + - 1.12.4 + - 1.12.5 + - 1.12.6 + - 1.12.7 + - dependency-name: app-info + versions: + - 2.4.2 + - dependency-name: rails + versions: + - 6.1.2 + - 6.1.2.1 + - 6.1.3.1 + - dependency-name: carrierwave + versions: + - 2.2.0 + - dependency-name: bootsnap + versions: + - 1.7.1 +- package-ecosystem: npm + directory: "/" + schedule: + interval: daily + open-pull-requests-limit: 10 + ignore: + - dependency-name: filepond + versions: + - ">= 4.19.a, < 4.20" + - dependency-name: filepond + versions: + - "> 4.20.1" + - dependency-name: "@rails/ujs" + versions: + - 6.1.2 From fa1618fcf2d15910b9c2102d68c197bf1ca88ef3 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 30 Apr 2021 13:13:58 +0800 Subject: [PATCH 0451/2165] Create dependabot.yml --- .github/dependabot.yml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 .github/dependabot.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 000000000..d79c2bb4f --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,15 @@ +# To get started with Dependabot version updates, you'll need to specify which +# package ecosystems to update and where the package manifests are located. +# Please see the documentation for all configuration options: +# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates + +version: 2 +updates: + - package-ecosystem: "bundler" # See documentation for possible values + directory: "/" # Location of package manifests + schedule: + interval: "daily" + - package-ecosystem: "npm" # See documentation for possible values + directory: "/" # Location of package manifests + schedule: + interval: "daily" From 39e873d29391548c4c7cc50619bfe2fdb8958849 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 30 Apr 2021 07:46:15 +0000 Subject: [PATCH 0452/2165] chore(deps-dev): bump rubocop from 1.2.0 to 1.13.0 Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.2.0 to 1.13.0. - [Release notes](https://github.com/rubocop/rubocop/releases) - [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop/rubocop/compare/v1.2.0...v1.13.0) Signed-off-by: dependabot[bot] --- Gemfile.lock | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index c2eca5664..028802fb3 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -87,7 +87,7 @@ GEM ruby_android (~> 0.7.7) rubyzip (>= 1.2, < 3.0) uuidtools (>= 2.1.5, < 2.3.0) - ast (2.4.1) + ast (2.4.2) awesome_print (1.9.2) bcrypt (3.1.16) better_errors (2.9.1) @@ -286,8 +286,8 @@ GEM omniauth (>= 1.9, < 3) openssl (2.2.0) orm_adapter (0.5.0) - parallel (1.19.2) - parser (2.7.2.0) + parallel (1.20.1) + parser (3.0.1.0) ast (~> 2.4.1) pg (1.2.1) pghero (2.8.1) @@ -356,25 +356,25 @@ GEM rb-inotify (0.10.1) ffi (~> 1.0) redis (4.2.5) - regexp_parser (1.8.2) + regexp_parser (2.1.1) responders (3.0.1) actionpack (>= 5.0) railties (>= 5.0) - rexml (3.2.4) + rexml (3.2.5) rqrcode (1.2.0) chunky_png (~> 1.0) rqrcode_core (~> 0.2) rqrcode_core (0.2.0) - rubocop (1.2.0) + rubocop (1.13.0) parallel (~> 1.10) - parser (>= 2.7.1.5) + parser (>= 3.0.0.0) rainbow (>= 2.2.2, < 4.0) - regexp_parser (>= 1.8) + regexp_parser (>= 1.8, < 3.0) rexml - rubocop-ast (>= 1.0.1) + rubocop-ast (>= 1.2.0, < 2.0) ruby-progressbar (~> 1.7) - unicode-display_width (>= 1.4.0, < 2.0) - rubocop-ast (1.1.1) + unicode-display_width (>= 1.4.0, < 3.0) + rubocop-ast (1.4.1) parser (>= 2.7.1.5) rubocop-rails (2.7.0) activesupport (>= 4.2.0) @@ -383,7 +383,7 @@ GEM ruby-debug-ide (0.7.2) rake (>= 0.8.1) ruby-macho (2.2.0) - ruby-progressbar (1.10.1) + ruby-progressbar (1.11.0) ruby-vips (2.1.0) ffi (~> 1.12) ruby2_keywords (0.0.4) From dc2e4cc5d6d1bd2abdc63d5269e17ea78224ca12 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 30 Apr 2021 07:46:42 +0000 Subject: [PATCH 0453/2165] chore(deps): bump pg from 1.2.1 to 1.2.3 Bumps [pg](https://github.com/ged/ruby-pg) from 1.2.1 to 1.2.3. - [Release notes](https://github.com/ged/ruby-pg/releases) - [Changelog](https://github.com/ged/ruby-pg/blob/master/History.rdoc) - [Commits](https://github.com/ged/ruby-pg/compare/v1.2.1...v1.2.3) Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index c2eca5664..7cf2c8aec 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -289,7 +289,7 @@ GEM parallel (1.19.2) parser (2.7.2.0) ast (~> 2.4.1) - pg (1.2.1) + pg (1.2.3) pghero (2.8.1) activerecord (>= 5) plist (3.6.0) From 0409f10777c0c0b77b48ffd0433e143e96a5cfdb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 30 Apr 2021 07:49:30 +0000 Subject: [PATCH 0454/2165] chore(deps-dev): bump byebug from 11.0.1 to 11.1.3 Bumps [byebug](https://github.com/deivid-rodriguez/byebug) from 11.0.1 to 11.1.3. - [Release notes](https://github.com/deivid-rodriguez/byebug/releases) - [Changelog](https://github.com/deivid-rodriguez/byebug/blob/master/CHANGELOG.md) - [Commits](https://github.com/deivid-rodriguez/byebug/compare/v11.0.1...v11.1.3) Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index c2eca5664..4123f94d8 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -100,7 +100,7 @@ GEM bootsnap (1.7.4) msgpack (~> 1.0) builder (3.2.4) - byebug (11.0.1) + byebug (11.1.3) carrierwave (2.2.1) activemodel (>= 5.0.0) activesupport (>= 5.0.0) From 8c9e9e56af8cb13cce534eedb8ad08b811f5190e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 5 May 2021 05:03:00 +0000 Subject: [PATCH 0455/2165] chore(deps): bump bootsnap from 1.7.4 to 1.7.5 Bumps [bootsnap](https://github.com/Shopify/bootsnap) from 1.7.4 to 1.7.5. - [Release notes](https://github.com/Shopify/bootsnap/releases) - [Changelog](https://github.com/Shopify/bootsnap/blob/master/CHANGELOG.md) - [Commits](https://github.com/Shopify/bootsnap/compare/v1.7.4...v1.7.5) Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 65f5e4cfa..cdcda2056 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -97,7 +97,7 @@ GEM bindex (0.8.1) binding_of_caller (1.0.0) debug_inspector (>= 0.0.1) - bootsnap (1.7.4) + bootsnap (1.7.5) msgpack (~> 1.0) builder (3.2.4) byebug (11.1.3) From 2c93e0b2a95bafc5e10ae5c72b6ae6ffa69ed292 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 5 May 2021 05:04:25 +0000 Subject: [PATCH 0456/2165] chore(deps): bump devise-i18n from 1.9.3 to 1.9.4 Bumps [devise-i18n](https://github.com/tigrish/devise-i18n) from 1.9.3 to 1.9.4. - [Release notes](https://github.com/tigrish/devise-i18n/releases) - [Changelog](https://github.com/tigrish/devise-i18n/blob/master/CHANGELOG.md) - [Commits](https://github.com/tigrish/devise-i18n/compare/v1.9.3...v1.9.4) Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Gemfile b/Gemfile index cbe548195..aaec341a9 100644 --- a/Gemfile +++ b/Gemfile @@ -40,7 +40,7 @@ gem 'carrierwave', '~> 2.2.1' gem 'http' ## 用户认证 gem 'devise', '~> 4.7.3' -gem 'devise-i18n', '~> 1.9.3' +gem 'devise-i18n', '~> 1.9.4' gem 'omniauth', '~> 1.9' gem 'omniauth-google-oauth2', '~> 0.8.2' gem 'gitlab_omniauth-ldap', '~> 2.1.1', require: 'omniauth-ldap' diff --git a/Gemfile.lock b/Gemfile.lock index 65f5e4cfa..7e5ea3e9f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -126,7 +126,7 @@ GEM railties (>= 4.1.0) responders warden (~> 1.2.3) - devise-i18n (1.9.3) + devise-i18n (1.9.4) devise (>= 4.7.1) domain_name (0.5.20190701) unf (>= 0.0.5, < 1.0.0) @@ -241,7 +241,7 @@ GEM listen (3.5.1) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) - loofah (2.9.0) + loofah (2.9.1) crass (~> 1.0.2) nokogiri (>= 1.5.9) lumberjack (1.2.8) @@ -251,7 +251,7 @@ GEM method_source (1.0.0) mini_magick (4.11.0) mini_mime (1.0.3) - mini_portile2 (2.5.0) + mini_portile2 (2.5.1) minitest (5.14.4) mixlib-shellout (3.0.7) msgpack (1.4.2) @@ -261,7 +261,7 @@ GEM nenv (0.3.0) net-ldap (0.16.3) nio4r (2.5.7) - nokogiri (1.11.2) + nokogiri (1.11.3) mini_portile2 (~> 2.5.0) racc (~> 1.4) notiffany (0.1.3) @@ -474,7 +474,7 @@ DEPENDENCIES carrierwave (~> 2.2.1) debase devise (~> 4.7.3) - devise-i18n (~> 1.9.3) + devise-i18n (~> 1.9.4) dotenv-rails friendly_id (~> 5.4.2) gitlab_omniauth-ldap (~> 2.1.1) From d01f5e4d7bfc72cfcc5252d1f742e2b7354d1b4f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 6 May 2021 05:03:13 +0000 Subject: [PATCH 0457/2165] chore(deps-dev): bump rubocop-rails from 2.7.0 to 2.10.1 Bumps [rubocop-rails](https://github.com/rubocop/rubocop-rails) from 2.7.0 to 2.10.1. - [Release notes](https://github.com/rubocop/rubocop-rails/releases) - [Changelog](https://github.com/rubocop/rubocop-rails/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop/rubocop-rails/compare/v2.7.0...v2.10.1) Signed-off-by: dependabot[bot] --- Gemfile.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 65f5e4cfa..b64392fba 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -287,7 +287,7 @@ GEM openssl (2.2.0) orm_adapter (0.5.0) parallel (1.20.1) - parser (3.0.1.0) + parser (3.0.1.1) ast (~> 2.4.1) pg (1.2.3) pghero (2.8.1) @@ -374,12 +374,12 @@ GEM rubocop-ast (>= 1.2.0, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 1.4.0, < 3.0) - rubocop-ast (1.4.1) - parser (>= 2.7.1.5) - rubocop-rails (2.7.0) + rubocop-ast (1.5.0) + parser (>= 3.0.1.1) + rubocop-rails (2.10.1) activesupport (>= 4.2.0) rack (>= 1.1) - rubocop (>= 0.87.0) + rubocop (>= 1.7.0, < 2.0) ruby-debug-ide (0.7.2) rake (>= 0.8.1) ruby-macho (2.2.0) From 4bd8ef5a27a2392663c8913086c68f9587377856 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 9 May 2021 02:02:18 +0000 Subject: [PATCH 0458/2165] chore(deps): bump url-parse from 1.4.7 to 1.5.1 Bumps [url-parse](https://github.com/unshiftio/url-parse) from 1.4.7 to 1.5.1. - [Release notes](https://github.com/unshiftio/url-parse/releases) - [Commits](https://github.com/unshiftio/url-parse/compare/1.4.7...1.5.1) Signed-off-by: dependabot[bot] --- yarn.lock | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/yarn.lock b/yarn.lock index 12f2760d7..a78b04841 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6954,9 +6954,9 @@ querystring@0.2.0: integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= querystringify@^2.1.1: - version "2.1.1" - resolved "https://registry.npm.taobao.org/querystringify/download/querystringify-2.1.1.tgz#60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e" - integrity sha1-YOWl/WSn+L+k0qsu1v30yFutFU4= + version "2.2.0" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" + integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== quote-stream@^1.0.1: version "1.0.2" @@ -7211,7 +7211,7 @@ require-main-filename@^2.0.0: requires-port@^1.0.0: version "1.0.0" - resolved "https://registry.npm.taobao.org/requires-port/download/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= resolve-cwd@^2.0.0: @@ -8449,9 +8449,9 @@ urix@^0.1.0: integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= url-parse@^1.4.3, url-parse@^1.4.7: - version "1.4.7" - resolved "https://registry.npm.taobao.org/url-parse/download/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278" - integrity sha1-qKg1NejACjFuQDpdtKwbm4U64ng= + version "1.5.1" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.1.tgz#d5fa9890af8a5e1f274a2c98376510f6425f6e3b" + integrity sha512-HOfCOUJt7iSYzEx/UqgtwKRMC6EU91NFhsCHMv9oM03VJcVo2Qrp8T8kI9D7amFf1cu+/3CEhgb3rF9zL7k85Q== dependencies: querystringify "^2.1.1" requires-port "^1.0.0" From e1b7b3c5219cd11091f53b7eedd79806d9dd9a74 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 9 May 2021 07:28:44 +0000 Subject: [PATCH 0459/2165] chore(deps): bump devise from 4.7.3 to 4.8.0 Bumps [devise](https://github.com/plataformatec/devise) from 4.7.3 to 4.8.0. - [Release notes](https://github.com/plataformatec/devise/releases) - [Changelog](https://github.com/heartcombo/devise/blob/master/CHANGELOG.md) - [Commits](https://github.com/plataformatec/devise/compare/v4.7.3...v4.8.0) Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index aaec341a9..751fa8e55 100644 --- a/Gemfile +++ b/Gemfile @@ -39,7 +39,7 @@ gem 'carrierwave', '~> 2.2.1' ## HTTP 请求 gem 'http' ## 用户认证 -gem 'devise', '~> 4.7.3' +gem 'devise', '~> 4.8.0' gem 'devise-i18n', '~> 1.9.4' gem 'omniauth', '~> 1.9' gem 'omniauth-google-oauth2', '~> 0.8.2' diff --git a/Gemfile.lock b/Gemfile.lock index 70f5dd177..5ae9dcc08 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -120,7 +120,7 @@ GEM debase-ruby_core_source (>= 0.10.2) debase-ruby_core_source (0.10.9) debug_inspector (1.0.0) - devise (4.7.3) + devise (4.8.0) bcrypt (~> 3.0) orm_adapter (~> 0.1) railties (>= 4.1.0) @@ -473,7 +473,7 @@ DEPENDENCIES byebug carrierwave (~> 2.2.1) debase - devise (~> 4.7.3) + devise (~> 4.8.0) devise-i18n (~> 1.9.4) dotenv-rails friendly_id (~> 5.4.2) From e6a24b0fcc24cb475959c9193c238b3e4372a86b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 May 2021 21:26:25 +0000 Subject: [PATCH 0460/2165] chore(deps): bump lodash from 4.17.19 to 4.17.21 Bumps [lodash](https://github.com/lodash/lodash) from 4.17.19 to 4.17.21. - [Release notes](https://github.com/lodash/lodash/releases) - [Commits](https://github.com/lodash/lodash/compare/4.17.19...4.17.21) Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index a78b04841..9e7d67ab8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5124,9 +5124,9 @@ lodash.uniq@^4.5.0: integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= lodash@^4.0.0, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.5, lodash@~4.17.10: - version "4.17.19" - resolved "https://registry.npm.taobao.org/lodash/download/lodash-4.17.19.tgz?cache=0&sync_timestamp=1594226832494&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b" - integrity sha1-5I3e2+MLMyF4PFtDAfvTU7weSks= + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== loglevel@^1.6.8: version "1.6.8" From 1b018b9456935825fcdc9498d611743003af23ea Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 11 May 2021 03:08:08 +0000 Subject: [PATCH 0461/2165] chore(deps): bump hosted-git-info from 2.8.8 to 2.8.9 Bumps [hosted-git-info](https://github.com/npm/hosted-git-info) from 2.8.8 to 2.8.9. - [Release notes](https://github.com/npm/hosted-git-info/releases) - [Changelog](https://github.com/npm/hosted-git-info/blob/v2.8.9/CHANGELOG.md) - [Commits](https://github.com/npm/hosted-git-info/compare/v2.8.8...v2.8.9) Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 9e7d67ab8..54f6e6c8b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4203,9 +4203,9 @@ homedir-polyfill@^1.0.1: parse-passwd "^1.0.0" hosted-git-info@^2.1.4: - version "2.8.8" - resolved "https://registry.npm.taobao.org/hosted-git-info/download/hosted-git-info-2.8.8.tgz?cache=0&sync_timestamp=1594427968487&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhosted-git-info%2Fdownload%2Fhosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" - integrity sha1-dTm9S8Hg4KiVgVouAmJCCxKFhIg= + version "2.8.9" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" + integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== hpack.js@^2.1.6: version "2.1.6" From 03cc99735e5e786eb5a0a0c7bdf9daf3d6db8fc8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 12 May 2021 05:01:51 +0000 Subject: [PATCH 0462/2165] chore(deps): bump puma from 5.2.2 to 5.3.1 Bumps [puma](https://github.com/puma/puma) from 5.2.2 to 5.3.1. - [Release notes](https://github.com/puma/puma/releases) - [Changelog](https://github.com/puma/puma/blob/master/History.md) - [Commits](https://github.com/puma/puma/compare/v5.2.2...v5.3.1) Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 751fa8e55..ba02269aa 100644 --- a/Gemfile +++ b/Gemfile @@ -4,7 +4,7 @@ source 'https://rubygems.org' git_source(:github) { |repo_name| "https://github.com/#{repo_name}" } -gem 'puma', '~> 5.2.2' +gem 'puma', '~> 5.3.1' gem 'rails', '~> 6.1.3' gem 'rails-i18n', '~> 6.0.0' gem 'rake', '~> 13.0.3' diff --git a/Gemfile.lock b/Gemfile.lock index 5ae9dcc08..9e4aed4fe 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -305,7 +305,7 @@ GEM interception (>= 0.5) pry (>= 0.12.0) public_suffix (4.0.6) - puma (5.2.2) + puma (5.3.1) nio4r (~> 2.0) pundit (2.1.0) activesupport (>= 3.0.0) @@ -502,7 +502,7 @@ DEPENDENCIES pry-byebug pry-rails pry-rescue - puma (~> 5.2.2) + puma (~> 5.3.1) pundit (~> 2.1.0) rack-cors (~> 1.1.1) rails (~> 6.1.3) From 7f20d8b2776701972f2880fc307e39d4e03b1185 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 12 May 2021 09:30:09 +0000 Subject: [PATCH 0463/2165] chore(deps): bump rails from 6.1.3.1 to 6.1.3.2 Bumps [rails](https://github.com/rails/rails) from 6.1.3.1 to 6.1.3.2. - [Release notes](https://github.com/rails/rails/releases) - [Commits](https://github.com/rails/rails/compare/v6.1.3.1...v6.1.3.2) Signed-off-by: dependabot[bot] --- Gemfile.lock | 108 +++++++++++++++++++++++++-------------------------- 1 file changed, 54 insertions(+), 54 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 9e4aed4fe..45e33f216 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -11,40 +11,40 @@ GEM remote: https://rubygems.org/ specs: CFPropertyList (3.0.3) - actioncable (6.1.3.1) - actionpack (= 6.1.3.1) - activesupport (= 6.1.3.1) + actioncable (6.1.3.2) + actionpack (= 6.1.3.2) + activesupport (= 6.1.3.2) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (6.1.3.1) - actionpack (= 6.1.3.1) - activejob (= 6.1.3.1) - activerecord (= 6.1.3.1) - activestorage (= 6.1.3.1) - activesupport (= 6.1.3.1) + actionmailbox (6.1.3.2) + actionpack (= 6.1.3.2) + activejob (= 6.1.3.2) + activerecord (= 6.1.3.2) + activestorage (= 6.1.3.2) + activesupport (= 6.1.3.2) mail (>= 2.7.1) - actionmailer (6.1.3.1) - actionpack (= 6.1.3.1) - actionview (= 6.1.3.1) - activejob (= 6.1.3.1) - activesupport (= 6.1.3.1) + actionmailer (6.1.3.2) + actionpack (= 6.1.3.2) + actionview (= 6.1.3.2) + activejob (= 6.1.3.2) + activesupport (= 6.1.3.2) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (6.1.3.1) - actionview (= 6.1.3.1) - activesupport (= 6.1.3.1) + actionpack (6.1.3.2) + actionview (= 6.1.3.2) + activesupport (= 6.1.3.2) rack (~> 2.0, >= 2.0.9) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (6.1.3.1) - actionpack (= 6.1.3.1) - activerecord (= 6.1.3.1) - activestorage (= 6.1.3.1) - activesupport (= 6.1.3.1) + actiontext (6.1.3.2) + actionpack (= 6.1.3.2) + activerecord (= 6.1.3.2) + activestorage (= 6.1.3.2) + activesupport (= 6.1.3.2) nokogiri (>= 1.8.5) - actionview (6.1.3.1) - activesupport (= 6.1.3.1) + actionview (6.1.3.2) + activesupport (= 6.1.3.2) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) @@ -54,25 +54,25 @@ GEM activemodel (>= 4.1, < 6.2) case_transform (>= 0.2) jsonapi-renderer (>= 0.1.1.beta1, < 0.3) - activejob (6.1.3.1) - activesupport (= 6.1.3.1) + activejob (6.1.3.2) + activesupport (= 6.1.3.2) globalid (>= 0.3.6) activejob-status (0.1.6) activejob (>= 4.2) activesupport (>= 4.2) - activemodel (6.1.3.1) - activesupport (= 6.1.3.1) - activerecord (6.1.3.1) - activemodel (= 6.1.3.1) - activesupport (= 6.1.3.1) - activestorage (6.1.3.1) - actionpack (= 6.1.3.1) - activejob (= 6.1.3.1) - activerecord (= 6.1.3.1) - activesupport (= 6.1.3.1) + activemodel (6.1.3.2) + activesupport (= 6.1.3.2) + activerecord (6.1.3.2) + activemodel (= 6.1.3.2) + activesupport (= 6.1.3.2) + activestorage (6.1.3.2) + actionpack (= 6.1.3.2) + activejob (= 6.1.3.2) + activerecord (= 6.1.3.2) + activesupport (= 6.1.3.2) marcel (~> 1.0.0) mini_mime (~> 1.0.2) - activesupport (6.1.3.1) + activesupport (6.1.3.2) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) @@ -247,7 +247,7 @@ GEM lumberjack (1.2.8) mail (2.7.1) mini_mime (>= 0.1.1) - marcel (1.0.0) + marcel (1.0.1) method_source (1.0.0) mini_magick (4.11.0) mini_mime (1.0.3) @@ -319,20 +319,20 @@ GEM rack rack-test (1.1.0) rack (>= 1.0, < 3) - rails (6.1.3.1) - actioncable (= 6.1.3.1) - actionmailbox (= 6.1.3.1) - actionmailer (= 6.1.3.1) - actionpack (= 6.1.3.1) - actiontext (= 6.1.3.1) - actionview (= 6.1.3.1) - activejob (= 6.1.3.1) - activemodel (= 6.1.3.1) - activerecord (= 6.1.3.1) - activestorage (= 6.1.3.1) - activesupport (= 6.1.3.1) + rails (6.1.3.2) + actioncable (= 6.1.3.2) + actionmailbox (= 6.1.3.2) + actionmailer (= 6.1.3.2) + actionpack (= 6.1.3.2) + actiontext (= 6.1.3.2) + actionview (= 6.1.3.2) + activejob (= 6.1.3.2) + activemodel (= 6.1.3.2) + activerecord (= 6.1.3.2) + activestorage (= 6.1.3.2) + activesupport (= 6.1.3.2) bundler (>= 1.15.0) - railties (= 6.1.3.1) + railties (= 6.1.3.2) sprockets-rails (>= 2.0.0) rails-dom-testing (2.0.3) activesupport (>= 4.2.0) @@ -344,9 +344,9 @@ GEM railties (>= 6.0.0, < 7) rails-settings-cached (2.5.2) rails (>= 5.0.0) - railties (6.1.3.1) - actionpack (= 6.1.3.1) - activesupport (= 6.1.3.1) + railties (6.1.3.2) + actionpack (= 6.1.3.2) + activesupport (= 6.1.3.2) method_source rake (>= 0.8.7) thor (~> 1.0) From c624d84a1e738b729c9440101b399be1892aa2cd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 18 May 2021 05:09:53 +0000 Subject: [PATCH 0464/2165] chore(deps-dev): bump rubocop from 1.13.0 to 1.15.0 Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.13.0 to 1.15.0. - [Release notes](https://github.com/rubocop/rubocop/releases) - [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop/rubocop/compare/v1.13.0...v1.15.0) Signed-off-by: dependabot[bot] --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 9e4aed4fe..56850e7dd 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -365,13 +365,13 @@ GEM chunky_png (~> 1.0) rqrcode_core (~> 0.2) rqrcode_core (0.2.0) - rubocop (1.13.0) + rubocop (1.15.0) parallel (~> 1.10) parser (>= 3.0.0.0) rainbow (>= 2.2.2, < 4.0) regexp_parser (>= 1.8, < 3.0) rexml - rubocop-ast (>= 1.2.0, < 2.0) + rubocop-ast (>= 1.5.0, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 1.4.0, < 3.0) rubocop-ast (1.5.0) From 41a699bacd0e9a9f57bab32456dbb04ea6ec26dc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 18 May 2021 07:03:08 +0000 Subject: [PATCH 0465/2165] chore(deps): bump nokogiri from 1.11.3 to 1.11.4 Bumps [nokogiri](https://github.com/sparklemotion/nokogiri) from 1.11.3 to 1.11.4. - [Release notes](https://github.com/sparklemotion/nokogiri/releases) - [Changelog](https://github.com/sparklemotion/nokogiri/blob/main/CHANGELOG.md) - [Commits](https://github.com/sparklemotion/nokogiri/compare/v1.11.3...v1.11.4) Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 56850e7dd..5bf28295d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -261,7 +261,7 @@ GEM nenv (0.3.0) net-ldap (0.16.3) nio4r (2.5.7) - nokogiri (1.11.3) + nokogiri (1.11.4) mini_portile2 (~> 2.5.0) racc (~> 1.4) notiffany (0.1.3) From 9dd0722834556a95e8b84e252dd750e08b34e879 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 18 May 2021 07:04:30 +0000 Subject: [PATCH 0466/2165] chore(deps): bump rqrcode from 1.2.0 to 2.0.0 Bumps [rqrcode](https://github.com/whomwah/rqrcode) from 1.2.0 to 2.0.0. - [Release notes](https://github.com/whomwah/rqrcode/releases) - [Changelog](https://github.com/whomwah/rqrcode/blob/master/CHANGELOG.md) - [Commits](https://github.com/whomwah/rqrcode/compare/v1.2.0...v2.0.0) Signed-off-by: dependabot[bot] --- Gemfile.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 56850e7dd..00ad999e8 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -111,7 +111,7 @@ GEM ssrf_filter (~> 1.0) case_transform (0.2) activesupport - chunky_png (1.3.15) + chunky_png (1.4.0) coderay (1.1.3) concurrent-ruby (1.1.8) connection_pool (2.2.3) @@ -361,10 +361,10 @@ GEM actionpack (>= 5.0) railties (>= 5.0) rexml (3.2.5) - rqrcode (1.2.0) + rqrcode (2.0.0) chunky_png (~> 1.0) - rqrcode_core (~> 0.2) - rqrcode_core (0.2.0) + rqrcode_core (~> 1.0) + rqrcode_core (1.0.0) rubocop (1.15.0) parallel (~> 1.10) parser (>= 3.0.0.0) From d46c5b33398ba62348534c216b7b586015f98223 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 25 May 2021 22:05:24 +0000 Subject: [PATCH 0467/2165] chore(deps): bump browserslist from 4.13.0 to 4.16.6 Bumps [browserslist](https://github.com/browserslist/browserslist) from 4.13.0 to 4.16.6. - [Release notes](https://github.com/browserslist/browserslist/releases) - [Changelog](https://github.com/browserslist/browserslist/blob/main/CHANGELOG.md) - [Commits](https://github.com/browserslist/browserslist/compare/4.13.0...4.16.6) Signed-off-by: dependabot[bot] --- yarn.lock | 55 ++++++++++++++++++++++++++++--------------------------- 1 file changed, 28 insertions(+), 27 deletions(-) diff --git a/yarn.lock b/yarn.lock index 54f6e6c8b..86406df29 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1903,14 +1903,15 @@ browserify-zlib@^0.2.0: pako "~1.0.5" browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.6.4, browserslist@^4.8.5: - version "4.13.0" - resolved "https://registry.npm.taobao.org/browserslist/download/browserslist-4.13.0.tgz#42556cba011e1b0a2775b611cba6a8eca18e940d" - integrity sha1-QlVsugEeGwondbYRy6ao7KGOlA0= + version "4.16.6" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.6.tgz#d7901277a5a88e554ed305b183ec9b0c08f66fa2" + integrity sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ== dependencies: - caniuse-lite "^1.0.30001093" - electron-to-chromium "^1.3.488" - escalade "^3.0.1" - node-releases "^1.1.58" + caniuse-lite "^1.0.30001219" + colorette "^1.2.2" + electron-to-chromium "^1.3.723" + escalade "^3.1.1" + node-releases "^1.1.71" bs-custom-file-input@^1.3.4: version "1.3.4" @@ -2072,10 +2073,10 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001093, caniuse-lite@^1.0.30001097: - version "1.0.30001173" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001173.tgz" - integrity sha512-R3aqmjrICdGCTAnSXtNyvWYMK3YtV5jwudbq0T7nN9k4kmE4CBuwPqyJ+KBzepSTh0huivV2gLbSMEzTTmfeYw== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001097, caniuse-lite@^1.0.30001219: + version "1.0.30001230" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001230.tgz#8135c57459854b2240b57a4a6786044bdc5a9f71" + integrity sha512-5yBd5nWCBS+jWKTcHOzXwo5xzcj4ePE/yjtkZyUV1BTUmrBaA9MRGC+e7mxnqXSA90CmCA8L3eKLaSUkt099IQ== case-sensitive-paths-webpack-plugin@^2.3.0: version "2.3.0" @@ -2291,10 +2292,10 @@ color@^3.0.0: color-convert "^1.9.1" color-string "^1.5.2" -colorette@^1.2.0: - version "1.2.1" - resolved "https://registry.npm.taobao.org/colorette/download/colorette-1.2.1.tgz?cache=0&sync_timestamp=1593955804228&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolorette%2Fdownload%2Fcolorette-1.2.1.tgz#4d0b921325c14faf92633086a536db6e89564b1b" - integrity sha1-TQuSEyXBT6+SYzCGpTbbbolWSxs= +colorette@^1.2.0, colorette@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" + integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== combined-stream@^1.0.6, combined-stream@~1.0.6: version "1.0.8" @@ -3216,10 +3217,10 @@ ekko-lightbox@^5.3.0: resolved "https://registry.npm.taobao.org/ekko-lightbox/download/ekko-lightbox-5.3.0.tgz#fbfcd9df93a8d1cdbf8770adc8c05aaac4d24f56" integrity sha1-+/zZ35Oo0c2/h3CtyMBaqsTST1Y= -electron-to-chromium@^1.3.488: - version "1.3.498" - resolved "https://registry.npm.taobao.org/electron-to-chromium/download/electron-to-chromium-1.3.498.tgz?cache=0&sync_timestamp=1594798561149&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Felectron-to-chromium%2Fdownload%2Felectron-to-chromium-1.3.498.tgz#fd7188c8a49d6d0b5df1df55a1f1a4bf2c177457" - integrity sha1-/XGIyKSdbQtd8d9VofGkvywXdFc= +electron-to-chromium@^1.3.723: + version "1.3.738" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.738.tgz#aec24b091c82acbfabbdcce08076a703941d17ca" + integrity sha512-vCMf4gDOpEylPSLPLSwAEsz+R3ShP02Y3cAKMZvTqule3XcPp7tgc/0ESI7IS6ZeyBlGClE50N53fIOkcIVnpw== elliptic@^6.0.0, elliptic@^6.5.2: version "6.5.4" @@ -3367,10 +3368,10 @@ es6-symbol@^3.1.1, es6-symbol@~3.1.1, es6-symbol@~3.1.3: d "^1.0.1" ext "^1.1.2" -escalade@^3.0.1: - version "3.0.2" - resolved "https://registry.npm.taobao.org/escalade/download/escalade-3.0.2.tgz?cache=0&sync_timestamp=1594742944513&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescalade%2Fdownload%2Fescalade-3.0.2.tgz#6a580d70edb87880f22b4c91d0d56078df6962c4" - integrity sha1-algNcO24eIDyK0yR0NVgeN9pYsQ= +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== escape-html@~1.0.3: version "1.0.3" @@ -5586,10 +5587,10 @@ node-libs-browser@^2.2.1: util "^0.11.0" vm-browserify "^1.0.1" -node-releases@^1.1.58: - version "1.1.59" - resolved "https://registry.npm.taobao.org/node-releases/download/node-releases-1.1.59.tgz?cache=0&sync_timestamp=1594212264030&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-releases%2Fdownload%2Fnode-releases-1.1.59.tgz#4d648330641cec704bff10f8e4fe28e453ab8e8e" - integrity sha1-TWSDMGQc7HBL/xD45P4o5FOrjo4= +node-releases@^1.1.71: + version "1.1.72" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.72.tgz#14802ab6b1039a79a0c7d662b610a5bbd76eacbe" + integrity sha512-LLUo+PpH3dU6XizX3iVoubUNheF/owjXCZZ5yACDxNnPtgFuludV1ZL3ayK1kVep42Rmm0+R9/Y60NQbZ2bifw== node-sass@^4.14.1: version "4.14.1" From 310011cb01cd32613a032b8f85fd60014d4b21b9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 28 May 2021 09:02:14 +0000 Subject: [PATCH 0468/2165] chore(deps): bump dns-packet from 1.3.1 to 1.3.4 Bumps [dns-packet](https://github.com/mafintosh/dns-packet) from 1.3.1 to 1.3.4. - [Release notes](https://github.com/mafintosh/dns-packet/releases) - [Changelog](https://github.com/mafintosh/dns-packet/blob/master/CHANGELOG.md) - [Commits](https://github.com/mafintosh/dns-packet/compare/v1.3.1...v1.3.4) Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 86406df29..5c95de8cc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3130,9 +3130,9 @@ dns-equal@^1.0.0: integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= dns-packet@^1.3.1: - version "1.3.1" - resolved "https://registry.npm.taobao.org/dns-packet/download/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a" - integrity sha1-EqpCaYEHW+UAuRDu3NC0fdfe2lo= + version "1.3.4" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.4.tgz#e3455065824a2507ba886c55a89963bb107dec6f" + integrity sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA== dependencies: ip "^1.1.0" safe-buffer "^5.0.1" From a475405d6a4a52df0089b7869831fabaab3308a9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 1 Jun 2021 05:15:20 +0000 Subject: [PATCH 0469/2165] chore(deps): bump graphql from 1.10.10 to 1.12.12 Bumps [graphql](https://github.com/rmosolgo/graphql-ruby) from 1.10.10 to 1.12.12. - [Release notes](https://github.com/rmosolgo/graphql-ruby/releases) - [Changelog](https://github.com/rmosolgo/graphql-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/rmosolgo/graphql-ruby/compare/v1.10.10...v1.12.12) Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index ba02269aa..5186928ac 100644 --- a/Gemfile +++ b/Gemfile @@ -15,7 +15,7 @@ gem 'redis', '~> 4.2.5' # API gem 'active_model_serializers', '~> 0.10.12' -gem 'graphql', '~> 1.10.10' +gem 'graphql', '~> 1.12.12' gem 'rack-cors', '~> 1.1.1' gem 'health_check', '~> 3.0.0' diff --git a/Gemfile.lock b/Gemfile.lock index 56850e7dd..ae39ad359 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -159,7 +159,7 @@ GEM rubyntlm (~> 0.5) globalid (0.4.2) activesupport (>= 4.2.0) - graphql (1.10.10) + graphql (1.12.12) guard (2.16.2) formatador (>= 0.2.4) listen (>= 2.7, < 4.0) @@ -478,7 +478,7 @@ DEPENDENCIES dotenv-rails friendly_id (~> 5.4.2) gitlab_omniauth-ldap (~> 2.1.1) - graphql (~> 1.10.10) + graphql (~> 1.12.12) guard (~> 2.16.2) guard-bundler guard-migrate From 95fe773db3b76e64150ccb71fb302c8135285ee7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 5 Jun 2021 17:22:53 +0000 Subject: [PATCH 0470/2165] chore(deps): bump ws from 6.2.1 to 6.2.2 Bumps [ws](https://github.com/websockets/ws) from 6.2.1 to 6.2.2. - [Release notes](https://github.com/websockets/ws/releases) - [Commits](https://github.com/websockets/ws/commits) --- updated-dependencies: - dependency-name: ws dependency-type: indirect ... Signed-off-by: dependabot[bot] --- yarn.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/yarn.lock b/yarn.lock index 86406df29..3b7a15022 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1543,8 +1543,8 @@ async-foreach@^0.1.3: async-limiter@~1.0.0: version "1.0.1" - resolved "https://registry.npm.taobao.org/async-limiter/download/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" - integrity sha1-3TeelPDbgxCwgpH51kwyCXZmF/0= + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" + integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== async@^2.6.2: version "2.6.3" @@ -8756,9 +8756,9 @@ wrappy@1: integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= ws@^6.2.1: - version "6.2.1" - resolved "https://registry.npm.taobao.org/ws/download/ws-6.2.1.tgz?cache=0&sync_timestamp=1593925601875&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fws%2Fdownload%2Fws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" - integrity sha1-RC/fCkftZPWbal2P8TD0dI7VJPs= + version "6.2.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.2.tgz#dd5cdbd57a9979916097652d78f1cc5faea0c32e" + integrity sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw== dependencies: async-limiter "~1.0.0" From 8631378c627b925f0767b06df76a7306c6697e4c Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 8 Jun 2021 13:50:32 +0800 Subject: [PATCH 0471/2165] =?UTF-8?q?refactor:=20yarn.lock=20=E8=AF=A5?= =?UTF-8?q?=E7=94=A8=E5=8E=9F=E7=94=9F=E6=BA=90=E6=96=B9=E4=BE=BF=20github?= =?UTF-8?q?=20actions=20=E5=AE=89=E8=A3=85=E5=8A=A0=E5=BF=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- yarn.lock | 6681 ++++++++++++++++++++++++----------------------------- 1 file changed, 2985 insertions(+), 3696 deletions(-) diff --git a/yarn.lock b/yarn.lock index 86406df29..9748abb06 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,435 +2,423 @@ # yarn lockfile v1 -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a" - integrity sha1-Fo2ho26Q2miujUnA8bSMfGJJITo= - dependencies: - "@babel/highlight" "^7.10.4" - -"@babel/compat-data@^7.10.4": - version "7.10.5" - resolved "https://registry.npm.taobao.org/@babel/compat-data/download/@babel/compat-data-7.10.5.tgz?cache=0&sync_timestamp=1594749441533&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcompat-data%2Fdownload%2F%40babel%2Fcompat-data-7.10.5.tgz#d38425e67ea96b1480a3f50404d1bf85676301a6" - integrity sha1-04Ql5n6paxSAo/UEBNG/hWdjAaY= - dependencies: - browserslist "^4.12.0" - invariant "^2.2.4" - semver "^5.5.0" - -"@babel/compat-data@^7.11.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.11.0.tgz#e9f73efe09af1355b723a7f39b11bad637d7c99c" - integrity sha512-TPSvJfv73ng0pfnEOh17bYMPQbI95+nGWc71Ss4vZdRBHTDqmM9Z8ZV4rYz8Ks7sfzc95n30k6ODIq5UGnXcYQ== - dependencies: - browserslist "^4.12.0" - invariant "^2.2.4" - semver "^5.5.0" - -"@babel/core@^7.11.1": - version "7.11.6" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.11.6.tgz#3a9455dc7387ff1bac45770650bc13ba04a15651" - integrity sha512-Wpcv03AGnmkgm6uS6k8iwhIwTrcP0m17TL1n1sy7qD0qelDu4XNeW0dN0mHfa+Gei211yDaLoEe/VlbXQzM4Bg== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.11.6" - "@babel/helper-module-transforms" "^7.11.0" - "@babel/helpers" "^7.10.4" - "@babel/parser" "^7.11.5" - "@babel/template" "^7.10.4" - "@babel/traverse" "^7.11.5" - "@babel/types" "^7.11.5" +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz#dcfc826beef65e75c50e21d3837d7d95798dd658" + integrity sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g== + dependencies: + "@babel/highlight" "^7.12.13" + +"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.14.4": + version "7.14.4" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.14.4.tgz#45720fe0cecf3fd42019e1d12cc3d27fadc98d58" + integrity sha512-i2wXrWQNkH6JplJQGn3Rd2I4Pij8GdHkXwHMxm+zV5YG/Jci+bCNrWZEWC4o+umiDkRrRs4dVzH3X4GP7vyjQQ== + +"@babel/core@^7.14.3": + version "7.14.3" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.14.3.tgz#5395e30405f0776067fbd9cf0884f15bfb770a38" + integrity sha512-jB5AmTKOCSJIZ72sd78ECEhuPiDMKlQdDI/4QRI6lzYATx5SSogS1oQA2AoPecRCknm30gHi2l+QVvNUu3wZAg== + dependencies: + "@babel/code-frame" "^7.12.13" + "@babel/generator" "^7.14.3" + "@babel/helper-compilation-targets" "^7.13.16" + "@babel/helper-module-transforms" "^7.14.2" + "@babel/helpers" "^7.14.0" + "@babel/parser" "^7.14.3" + "@babel/template" "^7.12.13" + "@babel/traverse" "^7.14.2" + "@babel/types" "^7.14.2" convert-source-map "^1.7.0" debug "^4.1.0" - gensync "^1.0.0-beta.1" + gensync "^1.0.0-beta.2" json5 "^2.1.2" - lodash "^4.17.19" - resolve "^1.3.2" - semver "^5.4.1" - source-map "^0.5.0" - -"@babel/generator@^7.10.5": - version "7.10.5" - resolved "https://registry.npm.taobao.org/@babel/generator/download/@babel/generator-7.10.5.tgz?cache=0&sync_timestamp=1594750806381&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fgenerator%2Fdownload%2F%40babel%2Fgenerator-7.10.5.tgz#1b903554bc8c583ee8d25f1e8969732e6b829a69" - integrity sha1-G5A1VLyMWD7o0l8eiWlzLmuCmmk= - dependencies: - "@babel/types" "^7.10.5" - jsesc "^2.5.1" + semver "^6.3.0" source-map "^0.5.0" -"@babel/generator@^7.11.5", "@babel/generator@^7.11.6": - version "7.11.6" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.11.6.tgz#b868900f81b163b4d464ea24545c61cbac4dc620" - integrity sha512-DWtQ1PV3r+cLbySoHrwn9RWEgKMBLLma4OBQloPRyDYvc5msJM9kvTLo1YnlJd1P/ZuKbdli3ijr5q3FvAF3uA== +"@babel/generator@^7.14.2", "@babel/generator@^7.14.3": + version "7.14.3" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.14.3.tgz#0c2652d91f7bddab7cccc6ba8157e4f40dcedb91" + integrity sha512-bn0S6flG/j0xtQdz3hsjJ624h3W0r3llttBMfyHX3YrZ/KtLYr15bjA0FXkgW7FpvrDuTuElXeVjiKlYRpnOFA== dependencies: - "@babel/types" "^7.11.5" + "@babel/types" "^7.14.2" jsesc "^2.5.1" source-map "^0.5.0" -"@babel/helper-annotate-as-pure@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/helper-annotate-as-pure/download/@babel/helper-annotate-as-pure-7.10.4.tgz?cache=0&sync_timestamp=1593522926826&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-annotate-as-pure%2Fdownload%2F%40babel%2Fhelper-annotate-as-pure-7.10.4.tgz#5bf0d495a3f757ac3bda48b5bf3b3ba309c72ba3" - integrity sha1-W/DUlaP3V6w72ki1vzs7ownHK6M= - dependencies: - "@babel/types" "^7.10.4" - -"@babel/helper-builder-binary-assignment-operator-visitor@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/helper-builder-binary-assignment-operator-visitor/download/@babel/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz#bb0b75f31bf98cbf9ff143c1ae578b87274ae1a3" - integrity sha1-uwt18xv5jL+f8UPBrleLhydK4aM= +"@babel/helper-annotate-as-pure@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz#0f58e86dfc4bb3b1fcd7db806570e177d439b6ab" + integrity sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw== dependencies: - "@babel/helper-explode-assignable-expression" "^7.10.4" - "@babel/types" "^7.10.4" + "@babel/types" "^7.12.13" -"@babel/helper-compilation-targets@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/helper-compilation-targets/download/@babel/helper-compilation-targets-7.10.4.tgz?cache=0&sync_timestamp=1593521093775&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-compilation-targets%2Fdownload%2F%40babel%2Fhelper-compilation-targets-7.10.4.tgz#804ae8e3f04376607cc791b9d47d540276332bd2" - integrity sha1-gEro4/BDdmB8x5G51H1UAnYzK9I= +"@babel/helper-builder-binary-assignment-operator-visitor@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.12.13.tgz#6bc20361c88b0a74d05137a65cac8d3cbf6f61fc" + integrity sha512-CZOv9tGphhDRlVjVkAgm8Nhklm9RzSmWpX2my+t7Ua/KT616pEzXsQCjinzvkRvHWJ9itO4f296efroX23XCMA== dependencies: - "@babel/compat-data" "^7.10.4" - browserslist "^4.12.0" - invariant "^2.2.4" - levenary "^1.1.1" - semver "^5.5.0" + "@babel/helper-explode-assignable-expression" "^7.12.13" + "@babel/types" "^7.12.13" -"@babel/helper-create-class-features-plugin@^7.10.4": - version "7.10.5" - resolved "https://registry.npm.taobao.org/@babel/helper-create-class-features-plugin/download/@babel/helper-create-class-features-plugin-7.10.5.tgz?cache=0&sync_timestamp=1594749163935&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-create-class-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-class-features-plugin-7.10.5.tgz#9f61446ba80e8240b0a5c85c6fdac8459d6f259d" - integrity sha1-n2FEa6gOgkCwpchcb9rIRZ1vJZ0= +"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.13.16", "@babel/helper-compilation-targets@^7.14.4": + version "7.14.4" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.4.tgz#33ebd0ffc34248051ee2089350a929ab02f2a516" + integrity sha512-JgdzOYZ/qGaKTVkn5qEDV/SXAh8KcyUVkCoSWGN8T3bwrgd6m+/dJa2kVGi6RJYJgEYPBdZ84BZp9dUjNWkBaA== dependencies: - "@babel/helper-function-name" "^7.10.4" - "@babel/helper-member-expression-to-functions" "^7.10.5" - "@babel/helper-optimise-call-expression" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-replace-supers" "^7.10.4" - "@babel/helper-split-export-declaration" "^7.10.4" - -"@babel/helper-create-regexp-features-plugin@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/helper-create-regexp-features-plugin/download/@babel/helper-create-regexp-features-plugin-7.10.4.tgz#fdd60d88524659a0b6959c0579925e425714f3b8" - integrity sha1-/dYNiFJGWaC2lZwFeZJeQlcU87g= - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/helper-regex" "^7.10.4" - regexpu-core "^4.7.0" - -"@babel/helper-define-map@^7.10.4": - version "7.10.5" - resolved "https://registry.npm.taobao.org/@babel/helper-define-map/download/@babel/helper-define-map-7.10.5.tgz#b53c10db78a640800152692b13393147acb9bb30" - integrity sha1-tTwQ23imQIABUmkrEzkxR6y5uzA= - dependencies: - "@babel/helper-function-name" "^7.10.4" - "@babel/types" "^7.10.5" - lodash "^4.17.19" - -"@babel/helper-explode-assignable-expression@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/helper-explode-assignable-expression/download/@babel/helper-explode-assignable-expression-7.10.4.tgz?cache=0&sync_timestamp=1593522841702&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-explode-assignable-expression%2Fdownload%2F%40babel%2Fhelper-explode-assignable-expression-7.10.4.tgz#40a1cd917bff1288f699a94a75b37a1a2dbd8c7c" - integrity sha1-QKHNkXv/Eoj2malKdbN6Gi29jHw= - dependencies: - "@babel/traverse" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/helper-function-name@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/helper-function-name/download/@babel/helper-function-name-7.10.4.tgz#d2d3b20c59ad8c47112fa7d2a94bc09d5ef82f1a" - integrity sha1-0tOyDFmtjEcRL6fSqUvAnV74Lxo= - dependencies: - "@babel/helper-get-function-arity" "^7.10.4" - "@babel/template" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/helper-get-function-arity@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.10.4.tgz?cache=0&sync_timestamp=1593522926422&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-get-function-arity%2Fdownload%2F%40babel%2Fhelper-get-function-arity-7.10.4.tgz#98c1cbea0e2332f33f9a4661b8ce1505b2c19ba2" - integrity sha1-mMHL6g4jMvM/mkZhuM4VBbLBm6I= - dependencies: - "@babel/types" "^7.10.4" - -"@babel/helper-hoist-variables@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/helper-hoist-variables/download/@babel/helper-hoist-variables-7.10.4.tgz?cache=0&sync_timestamp=1593522926518&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-hoist-variables%2Fdownload%2F%40babel%2Fhelper-hoist-variables-7.10.4.tgz#d49b001d1d5a68ca5e6604dda01a6297f7c9381e" - integrity sha1-1JsAHR1aaMpeZgTdoBpil/fJOB4= - dependencies: - "@babel/types" "^7.10.4" - -"@babel/helper-member-expression-to-functions@^7.10.4", "@babel/helper-member-expression-to-functions@^7.10.5": - version "7.10.5" - resolved "https://registry.npm.taobao.org/@babel/helper-member-expression-to-functions/download/@babel/helper-member-expression-to-functions-7.10.5.tgz?cache=0&sync_timestamp=1594750806986&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-member-expression-to-functions%2Fdownload%2F%40babel%2Fhelper-member-expression-to-functions-7.10.5.tgz#172f56e7a63e78112f3a04055f24365af702e7ee" - integrity sha1-Fy9W56Y+eBEvOgQFXyQ2WvcC5+4= - dependencies: - "@babel/types" "^7.10.5" - -"@babel/helper-module-imports@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/helper-module-imports/download/@babel/helper-module-imports-7.10.4.tgz#4c5c54be04bd31670a7382797d75b9fa2e5b5620" - integrity sha1-TFxUvgS9MWcKc4J5fXW5+i5bViA= - dependencies: - "@babel/types" "^7.10.4" - -"@babel/helper-module-transforms@^7.10.4", "@babel/helper-module-transforms@^7.10.5": - version "7.10.5" - resolved "https://registry.npm.taobao.org/@babel/helper-module-transforms/download/@babel/helper-module-transforms-7.10.5.tgz?cache=0&sync_timestamp=1594750806669&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-module-transforms%2Fdownload%2F%40babel%2Fhelper-module-transforms-7.10.5.tgz#120c271c0b3353673fcdfd8c053db3c544a260d6" - integrity sha1-EgwnHAszU2c/zf2MBT2zxUSiYNY= - dependencies: - "@babel/helper-module-imports" "^7.10.4" - "@babel/helper-replace-supers" "^7.10.4" - "@babel/helper-simple-access" "^7.10.4" - "@babel/helper-split-export-declaration" "^7.10.4" - "@babel/template" "^7.10.4" - "@babel/types" "^7.10.5" - lodash "^4.17.19" - -"@babel/helper-module-transforms@^7.11.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.11.0.tgz#b16f250229e47211abdd84b34b64737c2ab2d359" - integrity sha512-02EVu8COMuTRO1TAzdMtpBPbe6aQ1w/8fePD2YgQmxZU4gpNWaL9gK3Jp7dxlkUlUCJOTaSeA+Hrm1BRQwqIhg== - dependencies: - "@babel/helper-module-imports" "^7.10.4" - "@babel/helper-replace-supers" "^7.10.4" - "@babel/helper-simple-access" "^7.10.4" - "@babel/helper-split-export-declaration" "^7.11.0" - "@babel/template" "^7.10.4" - "@babel/types" "^7.11.0" - lodash "^4.17.19" - -"@babel/helper-optimise-call-expression@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/helper-optimise-call-expression/download/@babel/helper-optimise-call-expression-7.10.4.tgz?cache=0&sync_timestamp=1593522928231&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-optimise-call-expression%2Fdownload%2F%40babel%2Fhelper-optimise-call-expression-7.10.4.tgz#50dc96413d594f995a77905905b05893cd779673" - integrity sha1-UNyWQT1ZT5lad5BZBbBYk813lnM= - dependencies: - "@babel/types" "^7.10.4" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz?cache=0&sync_timestamp=1593521089859&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-plugin-utils%2Fdownload%2F%40babel%2Fhelper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375" - integrity sha1-L3WoMSadT2d95JmG3/WZJ1M883U= - -"@babel/helper-regex@^7.10.4": - version "7.10.5" - resolved "https://registry.npm.taobao.org/@babel/helper-regex/download/@babel/helper-regex-7.10.5.tgz?cache=0&sync_timestamp=1594749174690&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-regex%2Fdownload%2F%40babel%2Fhelper-regex-7.10.5.tgz#32dfbb79899073c415557053a19bd055aae50ae0" - integrity sha1-Mt+7eYmQc8QVVXBToZvQVarlCuA= - dependencies: - lodash "^4.17.19" - -"@babel/helper-remap-async-to-generator@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/helper-remap-async-to-generator/download/@babel/helper-remap-async-to-generator-7.10.4.tgz?cache=0&sync_timestamp=1593521228698&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-remap-async-to-generator%2Fdownload%2F%40babel%2Fhelper-remap-async-to-generator-7.10.4.tgz#fce8bea4e9690bbe923056ded21e54b4e8b68ed5" - integrity sha1-/Oi+pOlpC76SMFbe0h5UtOi2jtU= - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/helper-wrap-function" "^7.10.4" - "@babel/template" "^7.10.4" - "@babel/traverse" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/helper-replace-supers@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/helper-replace-supers/download/@babel/helper-replace-supers-7.10.4.tgz#d585cd9388ea06e6031e4cd44b6713cbead9e6cf" - integrity sha1-1YXNk4jqBuYDHkzUS2cTy+rZ5s8= - dependencies: - "@babel/helper-member-expression-to-functions" "^7.10.4" - "@babel/helper-optimise-call-expression" "^7.10.4" - "@babel/traverse" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/helper-simple-access@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/helper-simple-access/download/@babel/helper-simple-access-7.10.4.tgz#0f5ccda2945277a2a7a2d3a821e15395edcf3461" - integrity sha1-D1zNopRSd6KnotOoIeFTle3PNGE= - dependencies: - "@babel/template" "^7.10.4" - "@babel/types" "^7.10.4" + "@babel/compat-data" "^7.14.4" + "@babel/helper-validator-option" "^7.12.17" + browserslist "^4.16.6" + semver "^6.3.0" -"@babel/helper-skip-transparent-expression-wrappers@^7.11.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.11.0.tgz#eec162f112c2f58d3af0af125e3bb57665146729" - integrity sha512-0XIdiQln4Elglgjbwo9wuJpL/K7AGCY26kmEt0+pRP0TAj4jjyNq1MjoRvikrTVqKcx4Gysxt4cXvVFXP/JO2Q== +"@babel/helper-create-class-features-plugin@^7.13.0", "@babel/helper-create-class-features-plugin@^7.14.0", "@babel/helper-create-class-features-plugin@^7.14.3": + version "7.14.4" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.4.tgz#abf888d836a441abee783c75229279748705dc42" + integrity sha512-idr3pthFlDCpV+p/rMgGLGYIVtazeatrSOQk8YzO2pAepIjQhCN3myeihVg58ax2bbbGK9PUE1reFi7axOYIOw== dependencies: - "@babel/types" "^7.11.0" + "@babel/helper-annotate-as-pure" "^7.12.13" + "@babel/helper-function-name" "^7.14.2" + "@babel/helper-member-expression-to-functions" "^7.13.12" + "@babel/helper-optimise-call-expression" "^7.12.13" + "@babel/helper-replace-supers" "^7.14.4" + "@babel/helper-split-export-declaration" "^7.12.13" -"@babel/helper-split-export-declaration@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.10.4.tgz?cache=0&sync_timestamp=1593522967620&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-split-export-declaration%2Fdownload%2F%40babel%2Fhelper-split-export-declaration-7.10.4.tgz#2c70576eaa3b5609b24cb99db2888cc3fc4251d1" - integrity sha1-LHBXbqo7VgmyTLmdsoiMw/xCUdE= +"@babel/helper-create-regexp-features-plugin@^7.12.13": + version "7.14.3" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.3.tgz#149aa6d78c016e318c43e2409a0ae9c136a86688" + integrity sha512-JIB2+XJrb7v3zceV2XzDhGIB902CmKGSpSl4q2C6agU9SNLG/2V1RtFRGPG1Ajh9STj3+q6zJMOC+N/pp2P9DA== dependencies: - "@babel/types" "^7.10.4" + "@babel/helper-annotate-as-pure" "^7.12.13" + regexpu-core "^4.7.1" -"@babel/helper-split-export-declaration@^7.11.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.11.0.tgz#f8a491244acf6a676158ac42072911ba83ad099f" - integrity sha512-74Vejvp6mHkGE+m+k5vHY93FX2cAtrw1zXrZXRlG4l410Nm9PxfEiVTn1PjDPV5SnmieiueY4AFg2xqhNFuuZg== +"@babel/helper-define-polyfill-provider@^0.2.2": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.3.tgz#0525edec5094653a282688d34d846e4c75e9c0b6" + integrity sha512-RH3QDAfRMzj7+0Nqu5oqgO5q9mFtQEVvCRsi8qCEfzLR9p2BHfn5FzhSB2oj1fF7I2+DcTORkYaQ6aTR9Cofew== dependencies: - "@babel/types" "^7.11.0" - -"@babel/helper-validator-identifier@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.10.4.tgz?cache=0&sync_timestamp=1593521090675&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2" - integrity sha1-p4x6clHgH2FlEtMbEK3PUq2l4NI= + "@babel/helper-compilation-targets" "^7.13.0" + "@babel/helper-module-imports" "^7.12.13" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/traverse" "^7.13.0" + debug "^4.1.1" + lodash.debounce "^4.0.8" + resolve "^1.14.2" + semver "^6.1.2" + +"@babel/helper-explode-assignable-expression@^7.12.13": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.13.0.tgz#17b5c59ff473d9f956f40ef570cf3a76ca12657f" + integrity sha512-qS0peLTDP8kOisG1blKbaoBg/o9OSa1qoumMjTK5pM+KDTtpxpsiubnCGP34vK8BXGcb2M9eigwgvoJryrzwWA== + dependencies: + "@babel/types" "^7.13.0" + +"@babel/helper-function-name@^7.12.13", "@babel/helper-function-name@^7.14.2": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.14.2.tgz#397688b590760b6ef7725b5f0860c82427ebaac2" + integrity sha512-NYZlkZRydxw+YT56IlhIcS8PAhb+FEUiOzuhFTfqDyPmzAhRge6ua0dQYT/Uh0t/EDHq05/i+e5M2d4XvjgarQ== + dependencies: + "@babel/helper-get-function-arity" "^7.12.13" + "@babel/template" "^7.12.13" + "@babel/types" "^7.14.2" + +"@babel/helper-get-function-arity@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz#bc63451d403a3b3082b97e1d8b3fe5bd4091e583" + integrity sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg== + dependencies: + "@babel/types" "^7.12.13" + +"@babel/helper-hoist-variables@^7.13.0": + version "7.13.16" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.13.16.tgz#1b1651249e94b51f8f0d33439843e33e39775b30" + integrity sha512-1eMtTrXtrwscjcAeO4BVK+vvkxaLJSPFz1w1KLawz6HLNi9bPFGBNwwDyVfiu1Tv/vRRFYfoGaKhmAQPGPn5Wg== + dependencies: + "@babel/traverse" "^7.13.15" + "@babel/types" "^7.13.16" + +"@babel/helper-member-expression-to-functions@^7.13.12": + version "7.13.12" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz#dfe368f26d426a07299d8d6513821768216e6d72" + integrity sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw== + dependencies: + "@babel/types" "^7.13.12" + +"@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.13.12": + version "7.13.12" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz#c6a369a6f3621cb25da014078684da9196b61977" + integrity sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA== + dependencies: + "@babel/types" "^7.13.12" + +"@babel/helper-module-transforms@^7.13.0", "@babel/helper-module-transforms@^7.14.0", "@babel/helper-module-transforms@^7.14.2": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.14.2.tgz#ac1cc30ee47b945e3e0c4db12fa0c5389509dfe5" + integrity sha512-OznJUda/soKXv0XhpvzGWDnml4Qnwp16GN+D/kZIdLsWoHj05kyu8Rm5kXmMef+rVJZ0+4pSGLkeixdqNUATDA== + dependencies: + "@babel/helper-module-imports" "^7.13.12" + "@babel/helper-replace-supers" "^7.13.12" + "@babel/helper-simple-access" "^7.13.12" + "@babel/helper-split-export-declaration" "^7.12.13" + "@babel/helper-validator-identifier" "^7.14.0" + "@babel/template" "^7.12.13" + "@babel/traverse" "^7.14.2" + "@babel/types" "^7.14.2" + +"@babel/helper-optimise-call-expression@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz#5c02d171b4c8615b1e7163f888c1c81c30a2aaea" + integrity sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA== + dependencies: + "@babel/types" "^7.12.13" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz#806526ce125aed03373bc416a828321e3a6a33af" + integrity sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ== + +"@babel/helper-remap-async-to-generator@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.13.0.tgz#376a760d9f7b4b2077a9dd05aa9c3927cadb2209" + integrity sha512-pUQpFBE9JvC9lrQbpX0TmeNIy5s7GnZjna2lhhcHC7DzgBs6fWn722Y5cfwgrtrqc7NAJwMvOa0mKhq6XaE4jg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.12.13" + "@babel/helper-wrap-function" "^7.13.0" + "@babel/types" "^7.13.0" + +"@babel/helper-replace-supers@^7.12.13", "@babel/helper-replace-supers@^7.13.12", "@babel/helper-replace-supers@^7.14.4": + version "7.14.4" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.14.4.tgz#b2ab16875deecfff3ddfcd539bc315f72998d836" + integrity sha512-zZ7uHCWlxfEAAOVDYQpEf/uyi1dmeC7fX4nCf2iz9drnCwi1zvwXL3HwWWNXUQEJ1k23yVn3VbddiI9iJEXaTQ== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.13.12" + "@babel/helper-optimise-call-expression" "^7.12.13" + "@babel/traverse" "^7.14.2" + "@babel/types" "^7.14.4" + +"@babel/helper-simple-access@^7.13.12": + version "7.13.12" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz#dd6c538afb61819d205a012c31792a39c7a5eaf6" + integrity sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA== + dependencies: + "@babel/types" "^7.13.12" + +"@babel/helper-skip-transparent-expression-wrappers@^7.12.1": + version "7.12.1" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz#462dc63a7e435ade8468385c63d2b84cce4b3cbf" + integrity sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA== + dependencies: + "@babel/types" "^7.12.1" + +"@babel/helper-split-export-declaration@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz#e9430be00baf3e88b0e13e6f9d4eaf2136372b05" + integrity sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg== + dependencies: + "@babel/types" "^7.12.13" + +"@babel/helper-validator-identifier@^7.12.11", "@babel/helper-validator-identifier@^7.14.0": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz#d26cad8a47c65286b15df1547319a5d0bcf27288" + integrity sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A== + +"@babel/helper-validator-option@^7.12.17": + version "7.12.17" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz#d1fbf012e1a79b7eebbfdc6d270baaf8d9eb9831" + integrity sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw== + +"@babel/helper-wrap-function@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.13.0.tgz#bdb5c66fda8526ec235ab894ad53a1235c79fcc4" + integrity sha512-1UX9F7K3BS42fI6qd2A4BjKzgGjToscyZTdp1DjknHLCIvpgne6918io+aL5LXFcER/8QWiwpoY902pVEqgTXA== + dependencies: + "@babel/helper-function-name" "^7.12.13" + "@babel/template" "^7.12.13" + "@babel/traverse" "^7.13.0" + "@babel/types" "^7.13.0" + +"@babel/helpers@^7.14.0": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.14.0.tgz#ea9b6be9478a13d6f961dbb5f36bf75e2f3b8f62" + integrity sha512-+ufuXprtQ1D1iZTO/K9+EBRn+qPWMJjZSw/S0KlFrxCw4tkrzv9grgpDHkY9MeQTjTY8i2sp7Jep8DfU6tN9Mg== + dependencies: + "@babel/template" "^7.12.13" + "@babel/traverse" "^7.14.0" + "@babel/types" "^7.14.0" + +"@babel/highlight@^7.12.13": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.0.tgz#3197e375711ef6bf834e67d0daec88e4f46113cf" + integrity sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg== + dependencies: + "@babel/helper-validator-identifier" "^7.14.0" + chalk "^2.0.0" + js-tokens "^4.0.0" -"@babel/helper-wrap-function@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/helper-wrap-function/download/@babel/helper-wrap-function-7.10.4.tgz#8a6f701eab0ff39f765b5a1cfef409990e624b87" - integrity sha1-im9wHqsP8592W1oc/vQJmQ5iS4c= - dependencies: - "@babel/helper-function-name" "^7.10.4" - "@babel/template" "^7.10.4" - "@babel/traverse" "^7.10.4" - "@babel/types" "^7.10.4" +"@babel/parser@^7.12.13", "@babel/parser@^7.14.2", "@babel/parser@^7.14.3": + version "7.14.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.4.tgz#a5c560d6db6cd8e6ed342368dea8039232cbab18" + integrity sha512-ArliyUsWDUqEGfWcmzpGUzNfLxTdTp6WU4IuP6QFSp9gGfWS6boxFCkJSJ/L4+RG8z/FnIU3WxCk6hPL9SSWeA== -"@babel/helpers@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/helpers/download/@babel/helpers-7.10.4.tgz?cache=0&sync_timestamp=1593522841291&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelpers%2Fdownload%2F%40babel%2Fhelpers-7.10.4.tgz#2abeb0d721aff7c0a97376b9e1f6f65d7a475044" - integrity sha1-Kr6w1yGv98Cpc3a54fb2XXpHUEQ= +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.13.12": + version "7.13.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.13.12.tgz#a3484d84d0b549f3fc916b99ee4783f26fabad2a" + integrity sha512-d0u3zWKcoZf379fOeJdr1a5WPDny4aOFZ6hlfKivgK0LY7ZxNfoaHL2fWwdGtHyVvra38FC+HVYkO+byfSA8AQ== dependencies: - "@babel/template" "^7.10.4" - "@babel/traverse" "^7.10.4" - "@babel/types" "^7.10.4" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" + "@babel/plugin-proposal-optional-chaining" "^7.13.12" -"@babel/highlight@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/highlight/download/@babel/highlight-7.10.4.tgz?cache=0&sync_timestamp=1593521118780&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhighlight%2Fdownload%2F%40babel%2Fhighlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143" - integrity sha1-fRvf1ldTU4+r5sOFls23bZrGAUM= +"@babel/plugin-proposal-async-generator-functions@^7.14.2": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.2.tgz#3a2085abbf5d5f962d480dbc81347385ed62eb1e" + integrity sha512-b1AM4F6fwck4N8ItZ/AtC4FP/cqZqmKRQ4FaTDutwSYyjuhtvsGEMLK4N/ztV/ImP40BjIDyMgBQAeAMsQYVFQ== dependencies: - "@babel/helper-validator-identifier" "^7.10.4" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/parser@^7.10.4", "@babel/parser@^7.10.5": - version "7.10.5" - resolved "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.10.5.tgz?cache=0&sync_timestamp=1594750803040&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.10.5.tgz#e7c6bf5a7deff957cec9f04b551e2762909d826b" - integrity sha1-58a/Wn3v+VfOyfBLVR4nYpCdgms= - -"@babel/parser@^7.11.5": - version "7.11.5" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.11.5.tgz#c7ff6303df71080ec7a4f5b8c003c58f1cf51037" - integrity sha512-X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q== + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-remap-async-to-generator" "^7.13.0" + "@babel/plugin-syntax-async-generators" "^7.8.4" -"@babel/plugin-proposal-async-generator-functions@^7.10.4": - version "7.10.5" - resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-async-generator-functions/download/@babel/plugin-proposal-async-generator-functions-7.10.5.tgz#3491cabf2f7c179ab820606cec27fed15e0e8558" - integrity sha1-NJHKvy98F5q4IGBs7Cf+0V4OhVg= +"@babel/plugin-proposal-class-properties@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.13.0.tgz#146376000b94efd001e57a40a88a525afaab9f37" + integrity sha512-KnTDjFNC1g+45ka0myZNvSBFLhNCLN+GeGYLDEA8Oq7MZ6yMgfLoIRh86GRT0FjtJhZw8JyUskP9uvj5pHM9Zg== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-remap-async-to-generator" "^7.10.4" - "@babel/plugin-syntax-async-generators" "^7.8.0" + "@babel/helper-create-class-features-plugin" "^7.13.0" + "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-proposal-class-properties@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-class-properties/download/@babel/plugin-proposal-class-properties-7.10.4.tgz?cache=0&sync_timestamp=1593522874177&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-class-properties%2Fdownload%2F%40babel%2Fplugin-proposal-class-properties-7.10.4.tgz#a33bf632da390a59c7a8c570045d1115cd778807" - integrity sha1-ozv2Mto5ClnHqMVwBF0RFc13iAc= +"@babel/plugin-proposal-class-static-block@^7.14.3": + version "7.14.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.14.3.tgz#5a527e2cae4a4753119c3a3e7f64ecae8ccf1360" + integrity sha512-HEjzp5q+lWSjAgJtSluFDrGGosmwTgKwCXdDQZvhKsRlwv3YdkUEqxNrrjesJd+B9E9zvr1PVPVBvhYZ9msjvQ== dependencies: - "@babel/helper-create-class-features-plugin" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-create-class-features-plugin" "^7.14.3" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-class-static-block" "^7.12.13" -"@babel/plugin-proposal-dynamic-import@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-dynamic-import/download/@babel/plugin-proposal-dynamic-import-7.10.4.tgz#ba57a26cb98b37741e9d5bca1b8b0ddf8291f17e" - integrity sha1-uleibLmLN3QenVvKG4sN34KR8X4= +"@babel/plugin-proposal-dynamic-import@^7.14.2": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.2.tgz#01ebabd7c381cff231fa43e302939a9de5be9d9f" + integrity sha512-oxVQZIWFh91vuNEMKltqNsKLFWkOIyJc95k2Gv9lWVyDfPUQGSSlbDEgWuJUU1afGE9WwlzpucMZ3yDRHIItkA== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-dynamic-import" "^7.8.0" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" -"@babel/plugin-proposal-export-namespace-from@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.10.4.tgz#570d883b91031637b3e2958eea3c438e62c05f54" - integrity sha512-aNdf0LY6/3WXkhh0Fdb6Zk9j1NMD8ovj3F6r0+3j837Pn1S1PdNtcwJ5EG9WkVPNHPxyJDaxMaAOVq4eki0qbg== +"@babel/plugin-proposal-export-namespace-from@^7.14.2": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.2.tgz#62542f94aa9ce8f6dba79eec698af22112253791" + integrity sha512-sRxW3z3Zp3pFfLAgVEvzTFutTXax837oOatUIvSG9o5gRj9mKwm3br1Se5f4QalTQs9x4AzlA/HrCWbQIHASUQ== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" -"@babel/plugin-proposal-json-strings@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-json-strings/download/@babel/plugin-proposal-json-strings-7.10.4.tgz?cache=0&sync_timestamp=1593521092651&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-json-strings%2Fdownload%2F%40babel%2Fplugin-proposal-json-strings-7.10.4.tgz#593e59c63528160233bd321b1aebe0820c2341db" - integrity sha1-WT5ZxjUoFgIzvTIbGuvgggwjQds= +"@babel/plugin-proposal-json-strings@^7.14.2": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.2.tgz#830b4e2426a782e8b2878fbfe2cba85b70cbf98c" + integrity sha512-w2DtsfXBBJddJacXMBhElGEYqCZQqN99Se1qeYn8DVLB33owlrlLftIbMzn5nz1OITfDVknXF433tBrLEAOEjA== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-json-strings" "^7.8.0" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-json-strings" "^7.8.3" -"@babel/plugin-proposal-logical-assignment-operators@^7.11.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.11.0.tgz#9f80e482c03083c87125dee10026b58527ea20c8" - integrity sha512-/f8p4z+Auz0Uaf+i8Ekf1iM7wUNLcViFUGiPxKeXvxTSl63B875YPiVdUDdem7hREcI0E0kSpEhS8tF5RphK7Q== +"@babel/plugin-proposal-logical-assignment-operators@^7.14.2": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.2.tgz#222348c080a1678e0e74ea63fe76f275882d1fd7" + integrity sha512-1JAZtUrqYyGsS7IDmFeaem+/LJqujfLZ2weLR9ugB0ufUPjzf8cguyVT1g5im7f7RXxuLq1xUxEzvm68uYRtGg== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -"@babel/plugin-proposal-nullish-coalescing-operator@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-nullish-coalescing-operator/download/@babel/plugin-proposal-nullish-coalescing-operator-7.10.4.tgz?cache=0&sync_timestamp=1593521095740&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-nullish-coalescing-operator%2Fdownload%2F%40babel%2Fplugin-proposal-nullish-coalescing-operator-7.10.4.tgz#02a7e961fc32e6d5b2db0649e01bf80ddee7e04a" - integrity sha1-AqfpYfwy5tWy2wZJ4Bv4Dd7n4Eo= +"@babel/plugin-proposal-nullish-coalescing-operator@^7.14.2": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.2.tgz#425b11dc62fc26939a2ab42cbba680bdf5734546" + integrity sha512-ebR0zU9OvI2N4qiAC38KIAK75KItpIPTpAtd2r4OZmMFeKbKJpUFLYP2EuDut82+BmYi8sz42B+TfTptJ9iG5Q== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" -"@babel/plugin-proposal-numeric-separator@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-numeric-separator/download/@babel/plugin-proposal-numeric-separator-7.10.4.tgz#ce1590ff0a65ad12970a609d78855e9a4c1aef06" - integrity sha1-zhWQ/wplrRKXCmCdeIVemkwa7wY= +"@babel/plugin-proposal-numeric-separator@^7.14.2": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.2.tgz#82b4cc06571143faf50626104b335dd71baa4f9e" + integrity sha512-DcTQY9syxu9BpU3Uo94fjCB3LN9/hgPS8oUL7KrSW3bA2ePrKZZPJcc5y0hoJAM9dft3pGfErtEUvxXQcfLxUg== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-proposal-object-rest-spread@^7.10.1", "@babel/plugin-proposal-object-rest-spread@^7.11.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.11.0.tgz#bd81f95a1f746760ea43b6c2d3d62b11790ad0af" - integrity sha512-wzch41N4yztwoRw0ak+37wxwJM2oiIiy6huGCoqkvSTA9acYWcPfn9Y4aJqmFFJ70KTJUu29f3DQ43uJ9HXzEA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-object-rest-spread" "^7.8.0" - "@babel/plugin-transform-parameters" "^7.10.4" - -"@babel/plugin-proposal-optional-catch-binding@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-optional-catch-binding/download/@babel/plugin-proposal-optional-catch-binding-7.10.4.tgz?cache=0&sync_timestamp=1594336462969&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-optional-catch-binding%2Fdownload%2F%40babel%2Fplugin-proposal-optional-catch-binding-7.10.4.tgz#31c938309d24a78a49d68fdabffaa863758554dd" - integrity sha1-Mck4MJ0kp4pJ1o/av/qoY3WFVN0= - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" - -"@babel/plugin-proposal-optional-chaining@^7.11.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.11.0.tgz#de5866d0646f6afdaab8a566382fe3a221755076" - integrity sha512-v9fZIu3Y8562RRwhm1BbMRxtqZNFmFA2EG+pT2diuU8PT3H6T/KXoZ54KgYisfOFZHV6PfvAiBIZ9Rcz+/JCxA== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-skip-transparent-expression-wrappers" "^7.11.0" - "@babel/plugin-syntax-optional-chaining" "^7.8.0" - -"@babel/plugin-proposal-private-methods@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-private-methods/download/@babel/plugin-proposal-private-methods-7.10.4.tgz#b160d972b8fdba5c7d111a145fc8c421fc2a6909" - integrity sha1-sWDZcrj9ulx9ERoUX8jEIfwqaQk= - dependencies: - "@babel/helper-create-class-features-plugin" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-proposal-unicode-property-regex@^7.10.4", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-proposal-unicode-property-regex/download/@babel/plugin-proposal-unicode-property-regex-7.10.4.tgz#4483cda53041ce3413b7fe2f00022665ddfaa75d" - integrity sha1-RIPNpTBBzjQTt/4vAAImZd36p10= - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-async-generators@^7.8.0": +"@babel/plugin-proposal-object-rest-spread@^7.14.2", "@babel/plugin-proposal-object-rest-spread@^7.14.4": + version "7.14.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.4.tgz#0e2b4de419915dc0b409378e829412e2031777c4" + integrity sha512-AYosOWBlyyXEagrPRfLJ1enStufsr7D1+ddpj8OLi9k7B6+NdZ0t/9V7Fh+wJ4g2Jol8z2JkgczYqtWrZd4vbA== + dependencies: + "@babel/compat-data" "^7.14.4" + "@babel/helper-compilation-targets" "^7.14.4" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.14.2" + +"@babel/plugin-proposal-optional-catch-binding@^7.14.2": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.2.tgz#150d4e58e525b16a9a1431bd5326c4eed870d717" + integrity sha512-XtkJsmJtBaUbOxZsNk0Fvrv8eiqgneug0A6aqLFZ4TSkar2L5dSXWcnUKHgmjJt49pyB/6ZHvkr3dPgl9MOWRQ== + dependencies: + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + +"@babel/plugin-proposal-optional-chaining@^7.13.12", "@babel/plugin-proposal-optional-chaining@^7.14.2": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.2.tgz#df8171a8b9c43ebf4c1dabe6311b432d83e1b34e" + integrity sha512-qQByMRPwMZJainfig10BoaDldx/+VDtNcrA7qdNaEOAj6VXud+gfrkA8j4CRAU5HjnWREXqIpSpH30qZX1xivA== + dependencies: + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + +"@babel/plugin-proposal-private-methods@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.13.0.tgz#04bd4c6d40f6e6bbfa2f57e2d8094bad900ef787" + integrity sha512-MXyyKQd9inhx1kDYPkFRVOBXQ20ES8Pto3T7UZ92xj2mY0EVD8oAVzeyYuVfy/mxAdTSIayOvg+aVzcHV2bn6Q== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.13.0" + "@babel/helper-plugin-utils" "^7.13.0" + +"@babel/plugin-proposal-private-property-in-object@^7.14.0": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.14.0.tgz#b1a1f2030586b9d3489cc26179d2eb5883277636" + integrity sha512-59ANdmEwwRUkLjB7CRtwJxxwtjESw+X2IePItA+RGQh+oy5RmpCh/EvVVvh5XQc3yxsm5gtv0+i9oBZhaDNVTg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.12.13" + "@babel/helper-create-class-features-plugin" "^7.14.0" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/plugin-syntax-private-property-in-object" "^7.14.0" + +"@babel/plugin-proposal-unicode-property-regex@^7.12.13", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.13.tgz#bebde51339be829c17aaaaced18641deb62b39ba" + integrity sha512-XyJmZidNfofEkqFV5VC/bLabGmO5QzenPO/YOfGuEbgU+2sSwMmio3YLb4WtBgcmmdwZHyVyv8on77IUjQ5Gvg== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-async-generators/download/@babel/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" - integrity sha1-qYP7Gusuw/btBCohD2QOkOeG/g0= + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-class-properties@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-class-properties/download/@babel/plugin-syntax-class-properties-7.10.4.tgz?cache=0&sync_timestamp=1593521094537&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-class-properties%2Fdownload%2F%40babel%2Fplugin-syntax-class-properties-7.10.4.tgz#6644e6a0baa55a61f9e3231f6c9eeb6ee46c124c" - integrity sha1-ZkTmoLqlWmH54yMfbJ7rbuRsEkw= +"@babel/plugin-syntax-class-properties@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" + integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-syntax-class-static-block@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.12.13.tgz#8e3d674b0613e67975ceac2776c97b60cafc5c9c" + integrity sha512-ZmKQ0ZXR0nYpHZIIuj9zE7oIqCx2hw9TKi+lIo73NNrMPAZGHfS92/VRV0ZmPj6H2ffBgyFHXvJ5NYsNeEaP2A== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-syntax-dynamic-import@^7.8.0", "@babel/plugin-syntax-dynamic-import@^7.8.3": +"@babel/plugin-syntax-dynamic-import@^7.8.3": version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-dynamic-import/download/@babel/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" - integrity sha1-Yr+Ysto80h1iYVT8lu5bPLaOrLM= + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" + integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== dependencies: "@babel/helper-plugin-utils" "^7.8.0" @@ -441,10 +429,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.3" -"@babel/plugin-syntax-json-strings@^7.8.0": +"@babel/plugin-syntax-json-strings@^7.8.3": version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-json-strings/download/@babel/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" - integrity sha1-AcohtmjNghjJ5kDLbdiMVBKyyWo= + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== dependencies: "@babel/helper-plugin-utils" "^7.8.0" @@ -455,387 +443,398 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0": +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-nullish-coalescing-operator/download/@babel/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" - integrity sha1-Fn7XA2iIYIH3S1w2xlqIwDtm0ak= + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-numeric-separator@^7.10.4": version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-numeric-separator/download/@babel/plugin-syntax-numeric-separator-7.10.4.tgz?cache=0&sync_timestamp=1593521791666&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-numeric-separator%2Fdownload%2F%40babel%2Fplugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" - integrity sha1-ubBws+M1cM2f0Hun+pHA3Te5r5c= + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" + integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-object-rest-spread@^7.8.0": +"@babel/plugin-syntax-object-rest-spread@^7.8.3": version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-object-rest-spread/download/@babel/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" - integrity sha1-YOIl7cvZimQDMqLnLdPmbxr1WHE= + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-optional-catch-binding@^7.8.0": +"@babel/plugin-syntax-optional-catch-binding@^7.8.3": version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-optional-catch-binding/download/@babel/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" - integrity sha1-YRGiZbz7Ag6579D9/X0mQCue1sE= + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-optional-chaining@^7.8.0": +"@babel/plugin-syntax-optional-chaining@^7.8.3": version "7.8.3" - resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-optional-chaining/download/@babel/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" - integrity sha1-T2nCq5UWfgGAzVM2YT+MV4j31Io= + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-top-level-await@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-syntax-top-level-await/download/@babel/plugin-syntax-top-level-await-7.10.4.tgz#4bbeb8917b54fcf768364e0a81f560e33a3ef57d" - integrity sha1-S764kXtU/PdoNk4KgfVg4zo+9X0= +"@babel/plugin-syntax-private-property-in-object@^7.14.0": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.0.tgz#762a4babec61176fec6c88480dec40372b140c0b" + integrity sha512-bda3xF8wGl5/5btF794utNOL0Jw+9jE5C1sLZcoK7c4uonE/y3iQiyG+KbkF3WBV/paX58VCpjhxLPkdj5Fe4w== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-transform-arrow-functions@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-arrow-functions/download/@babel/plugin-transform-arrow-functions-7.10.4.tgz#e22960d77e697c74f41c501d44d73dbf8a6a64cd" - integrity sha1-4ilg135pfHT0HFAdRNc9v4pqZM0= +"@babel/plugin-syntax-top-level-await@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz#c5f0fa6e249f5b739727f923540cf7a806130178" + integrity sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-async-to-generator@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-async-to-generator/download/@babel/plugin-transform-async-to-generator-7.10.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-async-to-generator%2Fdownload%2F%40babel%2Fplugin-transform-async-to-generator-7.10.4.tgz#41a5017e49eb6f3cda9392a51eef29405b245a37" - integrity sha1-QaUBfknrbzzak5KlHu8pQFskWjc= +"@babel/plugin-transform-arrow-functions@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.13.0.tgz#10a59bebad52d637a027afa692e8d5ceff5e3dae" + integrity sha512-96lgJagobeVmazXFaDrbmCLQxBysKu7U6Do3mLsx27gf5Dk85ezysrs2BZUpXD703U/Su1xTBDxxar2oa4jAGg== dependencies: - "@babel/helper-module-imports" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-remap-async-to-generator" "^7.10.4" + "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-transform-block-scoped-functions@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-block-scoped-functions/download/@babel/plugin-transform-block-scoped-functions-7.10.4.tgz#1afa595744f75e43a91af73b0d998ecfe4ebc2e8" - integrity sha1-GvpZV0T3XkOpGvc7DZmOz+Trwug= +"@babel/plugin-transform-async-to-generator@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.13.0.tgz#8e112bf6771b82bf1e974e5e26806c5c99aa516f" + integrity sha512-3j6E004Dx0K3eGmhxVJxwwI89CTJrce7lg3UrtFuDAVQ/2+SJ/h/aSFOeE6/n0WB1GsOffsJp6MnPQNQ8nmwhg== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-module-imports" "^7.12.13" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-remap-async-to-generator" "^7.13.0" -"@babel/plugin-transform-block-scoping@^7.10.4": - version "7.10.5" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-block-scoping/download/@babel/plugin-transform-block-scoping-7.10.5.tgz#b81b8aafefbfe68f0f65f7ef397b9ece68a6037d" - integrity sha1-uBuKr++/5o8PZffvOXuezmimA30= +"@babel/plugin-transform-block-scoped-functions@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.13.tgz#a9bf1836f2a39b4eb6cf09967739de29ea4bf4c4" + integrity sha512-zNyFqbc3kI/fVpqwfqkg6RvBgFpC4J18aKKMmv7KdQ/1GgREapSJAykLMVNwfRGO3BtHj3YQZl8kxCXPcVMVeg== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-classes@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-classes/download/@babel/plugin-transform-classes-7.10.4.tgz?cache=0&sync_timestamp=1593522856487&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-classes%2Fdownload%2F%40babel%2Fplugin-transform-classes-7.10.4.tgz#405136af2b3e218bc4a1926228bc917ab1a0adc7" - integrity sha1-QFE2rys+IYvEoZJiKLyRerGgrcc= +"@babel/plugin-transform-block-scoping@^7.14.4": + version "7.14.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.4.tgz#caf140b0b2e2462c509553d140e6d0abefb61ed8" + integrity sha512-5KdpkGxsZlTk+fPleDtGKsA+pon28+ptYmMO8GBSa5fHERCJWAzj50uAfCKBqq42HO+Zot6JF1x37CRprwmN4g== dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/helper-define-map" "^7.10.4" - "@babel/helper-function-name" "^7.10.4" - "@babel/helper-optimise-call-expression" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-replace-supers" "^7.10.4" - "@babel/helper-split-export-declaration" "^7.10.4" + "@babel/helper-plugin-utils" "^7.13.0" + +"@babel/plugin-transform-classes@^7.14.4": + version "7.14.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.4.tgz#a83c15503fc71a0f99e876fdce7dadbc6575ec3a" + integrity sha512-p73t31SIj6y94RDVX57rafVjttNr8MvKEgs5YFatNB/xC68zM3pyosuOEcQmYsYlyQaGY9R7rAULVRcat5FKJQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.12.13" + "@babel/helper-function-name" "^7.14.2" + "@babel/helper-optimise-call-expression" "^7.12.13" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-replace-supers" "^7.14.4" + "@babel/helper-split-export-declaration" "^7.12.13" globals "^11.1.0" -"@babel/plugin-transform-computed-properties@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-computed-properties/download/@babel/plugin-transform-computed-properties-7.10.4.tgz#9ded83a816e82ded28d52d4b4ecbdd810cdfc0eb" - integrity sha1-ne2DqBboLe0o1S1LTsvdgQzfwOs= +"@babel/plugin-transform-computed-properties@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.13.0.tgz#845c6e8b9bb55376b1fa0b92ef0bdc8ea06644ed" + integrity sha512-RRqTYTeZkZAz8WbieLTvKUEUxZlUTdmL5KGMyZj7FnMfLNKV4+r5549aORG/mgojRmFlQMJDUupwAMiF2Q7OUg== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-transform-destructuring@^7.10.1", "@babel/plugin-transform-destructuring@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.4.tgz#70ddd2b3d1bea83d01509e9bb25ddb3a74fc85e5" - integrity sha512-+WmfvyfsyF603iPa6825mq6Qrb7uLjTOsa3XOFzlYcYDHSS4QmpOWOL0NNBY5qMbvrcf3tq0Cw+v4lxswOBpgA== +"@babel/plugin-transform-destructuring@^7.13.17", "@babel/plugin-transform-destructuring@^7.14.4": + version "7.14.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.4.tgz#acbec502e9951f30f4441eaca1d2f29efade59ed" + integrity sha512-JyywKreTCGTUsL1OKu1A3ms/R1sTP0WxbpXlALeGzF53eB3bxtNkYdMj9SDgK7g6ImPy76J5oYYKoTtQImlhQA== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-transform-dotall-regex@^7.10.4", "@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-dotall-regex/download/@babel/plugin-transform-dotall-regex-7.10.4.tgz#469c2062105c1eb6a040eaf4fac4b488078395ee" - integrity sha1-RpwgYhBcHragQOr0+sS0iAeDle4= +"@babel/plugin-transform-dotall-regex@^7.12.13", "@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.13.tgz#3f1601cc29905bfcb67f53910f197aeafebb25ad" + integrity sha512-foDrozE65ZFdUC2OfgeOCrEPTxdB3yjqxpXh8CH+ipd9CHd4s/iq81kcUpyH8ACGNEPdFqbtzfgzbT/ZGlbDeQ== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-create-regexp-features-plugin" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-duplicate-keys@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-duplicate-keys/download/@babel/plugin-transform-duplicate-keys-7.10.4.tgz#697e50c9fee14380fe843d1f306b295617431e47" - integrity sha1-aX5Qyf7hQ4D+hD0fMGspVhdDHkc= +"@babel/plugin-transform-duplicate-keys@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.13.tgz#6f06b87a8b803fd928e54b81c258f0a0033904de" + integrity sha512-NfADJiiHdhLBW3pulJlJI2NB0t4cci4WTZ8FtdIuNc2+8pslXdPtRRAEWqUY+m9kNOk2eRYbTAOipAxlrOcwwQ== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-exponentiation-operator@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-exponentiation-operator/download/@babel/plugin-transform-exponentiation-operator-7.10.4.tgz?cache=0&sync_timestamp=1593522848226&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-exponentiation-operator%2Fdownload%2F%40babel%2Fplugin-transform-exponentiation-operator-7.10.4.tgz#5ae338c57f8cf4001bdb35607ae66b92d665af2e" - integrity sha1-WuM4xX+M9AAb2zVgeuZrktZlry4= +"@babel/plugin-transform-exponentiation-operator@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.13.tgz#4d52390b9a273e651e4aba6aee49ef40e80cd0a1" + integrity sha512-fbUelkM1apvqez/yYx1/oICVnGo2KM5s63mhGylrmXUxK/IAXSIf87QIxVfZldWf4QsOafY6vV3bX8aMHSvNrA== dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-for-of@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-for-of/download/@babel/plugin-transform-for-of-7.10.4.tgz#c08892e8819d3a5db29031b115af511dbbfebae9" - integrity sha1-wIiS6IGdOl2ykDGxFa9RHbv+uuk= +"@babel/plugin-transform-for-of@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.13.0.tgz#c799f881a8091ac26b54867a845c3e97d2696062" + integrity sha512-IHKT00mwUVYE0zzbkDgNRP6SRzvfGCYsOxIRz8KsiaaHCcT9BWIkO+H9QRJseHBLOGBZkHUdHiqj6r0POsdytg== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-transform-function-name@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-function-name/download/@babel/plugin-transform-function-name-7.10.4.tgz#6a467880e0fc9638514ba369111811ddbe2644b7" - integrity sha1-akZ4gOD8ljhRS6NpERgR3b4mRLc= +"@babel/plugin-transform-function-name@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.13.tgz#bb024452f9aaed861d374c8e7a24252ce3a50051" + integrity sha512-6K7gZycG0cmIwwF7uMK/ZqeCikCGVBdyP2J5SKNCXO5EOHcqi+z7Jwf8AmyDNcBgxET8DrEtCt/mPKPyAzXyqQ== dependencies: - "@babel/helper-function-name" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-function-name" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-literals@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-literals/download/@babel/plugin-transform-literals-7.10.4.tgz#9f42ba0841100a135f22712d0e391c462f571f3c" - integrity sha1-n0K6CEEQChNfInEtDjkcRi9XHzw= +"@babel/plugin-transform-literals@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.13.tgz#2ca45bafe4a820197cf315794a4d26560fe4bdb9" + integrity sha512-FW+WPjSR7hiUxMcKqyNjP05tQ2kmBCdpEpZHY1ARm96tGQCCBvXKnpjILtDplUnJ/eHZ0lALLM+d2lMFSpYJrQ== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-member-expression-literals@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-member-expression-literals/download/@babel/plugin-transform-member-expression-literals-7.10.4.tgz?cache=0&sync_timestamp=1593522925001&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-member-expression-literals%2Fdownload%2F%40babel%2Fplugin-transform-member-expression-literals-7.10.4.tgz#b1ec44fcf195afcb8db2c62cd8e551c881baf8b7" - integrity sha1-sexE/PGVr8uNssYs2OVRyIG6+Lc= +"@babel/plugin-transform-member-expression-literals@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.13.tgz#5ffa66cd59b9e191314c9f1f803b938e8c081e40" + integrity sha512-kxLkOsg8yir4YeEPHLuO2tXP9R/gTjpuTOjshqSpELUN3ZAg2jfDnKUvzzJxObun38sw3wm4Uu69sX/zA7iRvg== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-modules-amd@^7.10.4": - version "7.10.5" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-modules-amd/download/@babel/plugin-transform-modules-amd-7.10.5.tgz?cache=0&sync_timestamp=1594749164106&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-amd%2Fdownload%2F%40babel%2Fplugin-transform-modules-amd-7.10.5.tgz#1b9cddaf05d9e88b3aad339cb3e445c4f020a9b1" - integrity sha1-G5zdrwXZ6Is6rTOcs+RFxPAgqbE= +"@babel/plugin-transform-modules-amd@^7.14.2": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.2.tgz#6622806fe1a7c07a1388444222ef9535f2ca17b0" + integrity sha512-hPC6XBswt8P3G2D1tSV2HzdKvkqOpmbyoy+g73JG0qlF/qx2y3KaMmXb1fLrpmWGLZYA0ojCvaHdzFWjlmV+Pw== dependencies: - "@babel/helper-module-transforms" "^7.10.5" - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-module-transforms" "^7.14.2" + "@babel/helper-plugin-utils" "^7.13.0" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-commonjs@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-modules-commonjs/download/@babel/plugin-transform-modules-commonjs-7.10.4.tgz?cache=0&sync_timestamp=1593522846595&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-commonjs%2Fdownload%2F%40babel%2Fplugin-transform-modules-commonjs-7.10.4.tgz#66667c3eeda1ebf7896d41f1f16b17105a2fbca0" - integrity sha1-ZmZ8Pu2h6/eJbUHx8WsXEFovvKA= +"@babel/plugin-transform-modules-commonjs@^7.14.0": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.0.tgz#52bc199cb581e0992edba0f0f80356467587f161" + integrity sha512-EX4QePlsTaRZQmw9BsoPeyh5OCtRGIhwfLquhxGp5e32w+dyL8htOcDwamlitmNFK6xBZYlygjdye9dbd9rUlQ== dependencies: - "@babel/helper-module-transforms" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-simple-access" "^7.10.4" + "@babel/helper-module-transforms" "^7.14.0" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-simple-access" "^7.13.12" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-systemjs@^7.10.4": - version "7.10.5" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-modules-systemjs/download/@babel/plugin-transform-modules-systemjs-7.10.5.tgz?cache=0&sync_timestamp=1594749163311&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-systemjs%2Fdownload%2F%40babel%2Fplugin-transform-modules-systemjs-7.10.5.tgz#6270099c854066681bae9e05f87e1b9cadbe8c85" - integrity sha1-YnAJnIVAZmgbrp4F+H4bnK2+jIU= +"@babel/plugin-transform-modules-systemjs@^7.13.8": + version "7.13.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.13.8.tgz#6d066ee2bff3c7b3d60bf28dec169ad993831ae3" + integrity sha512-hwqctPYjhM6cWvVIlOIe27jCIBgHCsdH2xCJVAYQm7V5yTMoilbVMi9f6wKg0rpQAOn6ZG4AOyvCqFF/hUh6+A== dependencies: - "@babel/helper-hoist-variables" "^7.10.4" - "@babel/helper-module-transforms" "^7.10.5" - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-hoist-variables" "^7.13.0" + "@babel/helper-module-transforms" "^7.13.0" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-validator-identifier" "^7.12.11" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-umd@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-modules-umd/download/@babel/plugin-transform-modules-umd-7.10.4.tgz?cache=0&sync_timestamp=1593522846765&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-umd%2Fdownload%2F%40babel%2Fplugin-transform-modules-umd-7.10.4.tgz#9a8481fe81b824654b3a0b65da3df89f3d21839e" - integrity sha1-moSB/oG4JGVLOgtl2j34nz0hg54= +"@babel/plugin-transform-modules-umd@^7.14.0": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.0.tgz#2f8179d1bbc9263665ce4a65f305526b2ea8ac34" + integrity sha512-nPZdnWtXXeY7I87UZr9VlsWme3Y0cfFFE41Wbxz4bbaexAjNMInXPFUpRRUJ8NoMm0Cw+zxbqjdPmLhcjfazMw== dependencies: - "@babel/helper-module-transforms" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-module-transforms" "^7.14.0" + "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-transform-named-capturing-groups-regex@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-named-capturing-groups-regex/download/@babel/plugin-transform-named-capturing-groups-regex-7.10.4.tgz#78b4d978810b6f3bcf03f9e318f2fc0ed41aecb6" - integrity sha1-eLTZeIELbzvPA/njGPL8DtQa7LY= +"@babel/plugin-transform-named-capturing-groups-regex@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.13.tgz#2213725a5f5bbbe364b50c3ba5998c9599c5c9d9" + integrity sha512-Xsm8P2hr5hAxyYblrfACXpQKdQbx4m2df9/ZZSQ8MAhsadw06+jW7s9zsSw6he+mJZXRlVMyEnVktJo4zjk1WA== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.10.4" + "@babel/helper-create-regexp-features-plugin" "^7.12.13" -"@babel/plugin-transform-new-target@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-new-target/download/@babel/plugin-transform-new-target-7.10.4.tgz?cache=0&sync_timestamp=1593521205540&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-new-target%2Fdownload%2F%40babel%2Fplugin-transform-new-target-7.10.4.tgz#9097d753cb7b024cb7381a3b2e52e9513a9c6888" - integrity sha1-kJfXU8t7Aky3OBo7LlLpUTqcaIg= +"@babel/plugin-transform-new-target@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.13.tgz#e22d8c3af24b150dd528cbd6e685e799bf1c351c" + integrity sha512-/KY2hbLxrG5GTQ9zzZSc3xWiOy379pIETEhbtzwZcw9rvuaVV4Fqy7BYGYOWZnaoXIQYbbJ0ziXLa/sKcGCYEQ== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-object-super@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-object-super/download/@babel/plugin-transform-object-super-7.10.4.tgz#d7146c4d139433e7a6526f888c667e314a093894" - integrity sha1-1xRsTROUM+emUm+IjGZ+MUoJOJQ= +"@babel/plugin-transform-object-super@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.13.tgz#b4416a2d63b8f7be314f3d349bd55a9c1b5171f7" + integrity sha512-JzYIcj3XtYspZDV8j9ulnoMPZZnF/Cj0LUxPOjR89BdBVx+zYJI9MdMIlUZjbXDX+6YVeS6I3e8op+qQ3BYBoQ== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-replace-supers" "^7.10.4" + "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-replace-supers" "^7.12.13" -"@babel/plugin-transform-parameters@^7.10.4": - version "7.10.5" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-parameters/download/@babel/plugin-transform-parameters-7.10.5.tgz#59d339d58d0b1950435f4043e74e2510005e2c4a" - integrity sha1-WdM51Y0LGVBDX0BD504lEABeLEo= +"@babel/plugin-transform-parameters@^7.14.2": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.14.2.tgz#e4290f72e0e9e831000d066427c4667098decc31" + integrity sha512-NxoVmA3APNCC1JdMXkdYXuQS+EMdqy0vIwyDHeKHiJKRxmp1qGSdb0JLEIoPRhkx6H/8Qi3RJ3uqOCYw8giy9A== dependencies: - "@babel/helper-get-function-arity" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.13.0" -"@babel/plugin-transform-property-literals@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-property-literals/download/@babel/plugin-transform-property-literals-7.10.4.tgz?cache=0&sync_timestamp=1593522925254&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-property-literals%2Fdownload%2F%40babel%2Fplugin-transform-property-literals-7.10.4.tgz#f6fe54b6590352298785b83edd815d214c42e3c0" - integrity sha1-9v5UtlkDUimHhbg+3YFdIUxC48A= +"@babel/plugin-transform-property-literals@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.13.tgz#4e6a9e37864d8f1b3bc0e2dce7bf8857db8b1a81" + integrity sha512-nqVigwVan+lR+g8Fj8Exl0UQX2kymtjcWfMOYM1vTYEKujeyv2SkMgazf2qNcK7l4SDiKyTA/nHCPqL4e2zo1A== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-regenerator@^7.10.1", "@babel/plugin-transform-regenerator@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-regenerator/download/@babel/plugin-transform-regenerator-7.10.4.tgz?cache=0&sync_timestamp=1593521089707&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-regenerator%2Fdownload%2F%40babel%2Fplugin-transform-regenerator-7.10.4.tgz#2015e59d839074e76838de2159db421966fd8b63" - integrity sha1-IBXlnYOQdOdoON4hWdtCGWb9i2M= +"@babel/plugin-transform-regenerator@^7.13.15": + version "7.13.15" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.13.15.tgz#e5eb28945bf8b6563e7f818945f966a8d2997f39" + integrity sha512-Bk9cOLSz8DiurcMETZ8E2YtIVJbFCPGW28DJWUakmyVWtQSm6Wsf0p4B4BfEr/eL2Nkhe/CICiUiMOCi1TPhuQ== dependencies: regenerator-transform "^0.14.2" -"@babel/plugin-transform-reserved-words@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-reserved-words/download/@babel/plugin-transform-reserved-words-7.10.4.tgz?cache=0&sync_timestamp=1593522924889&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-reserved-words%2Fdownload%2F%40babel%2Fplugin-transform-reserved-words-7.10.4.tgz#8f2682bcdcef9ed327e1b0861585d7013f8a54dd" - integrity sha1-jyaCvNzvntMn4bCGFYXXAT+KVN0= - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-runtime@^7.11.0": - version "7.11.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.11.5.tgz#f108bc8e0cf33c37da031c097d1df470b3a293fc" - integrity sha512-9aIoee+EhjySZ6vY5hnLjigHzunBlscx9ANKutkeWTJTx6m5Rbq6Ic01tLvO54lSusR+BxV7u4UDdCmXv5aagg== - dependencies: - "@babel/helper-module-imports" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - resolve "^1.8.1" - semver "^5.5.1" - -"@babel/plugin-transform-shorthand-properties@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-shorthand-properties/download/@babel/plugin-transform-shorthand-properties-7.10.4.tgz?cache=0&sync_timestamp=1593522925435&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-shorthand-properties%2Fdownload%2F%40babel%2Fplugin-transform-shorthand-properties-7.10.4.tgz#9fd25ec5cdd555bb7f473e5e6ee1c971eede4dd6" - integrity sha1-n9Jexc3VVbt/Rz5ebuHJce7eTdY= - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-spread@^7.11.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.11.0.tgz#fa84d300f5e4f57752fe41a6d1b3c554f13f17cc" - integrity sha512-UwQYGOqIdQJe4aWNyS7noqAnN2VbaczPLiEtln+zPowRNlD+79w3oi2TWfYe0eZgd+gjZCbsydN7lzWysDt+gw== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-skip-transparent-expression-wrappers" "^7.11.0" - -"@babel/plugin-transform-sticky-regex@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-sticky-regex/download/@babel/plugin-transform-sticky-regex-7.10.4.tgz?cache=0&sync_timestamp=1593522926947&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-sticky-regex%2Fdownload%2F%40babel%2Fplugin-transform-sticky-regex-7.10.4.tgz#8f3889ee8657581130a29d9cc91d7c73b7c4a28d" - integrity sha1-jziJ7oZXWBEwop2cyR18c7fEoo0= - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-regex" "^7.10.4" - -"@babel/plugin-transform-template-literals@^7.10.4": - version "7.10.5" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-template-literals/download/@babel/plugin-transform-template-literals-7.10.5.tgz#78bc5d626a6642db3312d9d0f001f5e7639fde8c" - integrity sha1-eLxdYmpmQtszEtnQ8AH152Of3ow= - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-typeof-symbol@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-typeof-symbol/download/@babel/plugin-transform-typeof-symbol-7.10.4.tgz#9509f1a7eec31c4edbffe137c16cc33ff0bc5bfc" - integrity sha1-lQnxp+7DHE7b/+E3wWzDP/C8W/w= - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-transform-unicode-escapes@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-unicode-escapes/download/@babel/plugin-transform-unicode-escapes-7.10.4.tgz#feae523391c7651ddac115dae0a9d06857892007" - integrity sha1-/q5SM5HHZR3awRXa4KnQaFeJIAc= +"@babel/plugin-transform-reserved-words@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.13.tgz#7d9988d4f06e0fe697ea1d9803188aa18b472695" + integrity sha512-xhUPzDXxZN1QfiOy/I5tyye+TRz6lA7z6xaT4CLOjPRMVg1ldRf0LHw0TDBpYL4vG78556WuHdyO9oi5UmzZBg== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-unicode-regex@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/plugin-transform-unicode-regex/download/@babel/plugin-transform-unicode-regex-7.10.4.tgz#e56d71f9282fac6db09c82742055576d5e6d80a8" - integrity sha1-5W1x+SgvrG2wnIJ0IFVXbV5tgKg= +"@babel/plugin-transform-runtime@^7.14.3": + version "7.14.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.14.3.tgz#1fd885a2d0de1d3c223795a4e9be72c2db4515cf" + integrity sha512-t960xbi8wpTFE623ef7sd+UpEC5T6EEguQlTBJDEO05+XwnIWVfuqLw/vdLWY6IdFmtZE+65CZAfByT39zRpkg== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-module-imports" "^7.13.12" + "@babel/helper-plugin-utils" "^7.13.0" + babel-plugin-polyfill-corejs2 "^0.2.0" + babel-plugin-polyfill-corejs3 "^0.2.0" + babel-plugin-polyfill-regenerator "^0.2.0" + semver "^6.3.0" -"@babel/preset-env@^7.11.0": - version "7.11.5" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.11.5.tgz#18cb4b9379e3e92ffea92c07471a99a2914e4272" - integrity sha512-kXqmW1jVcnB2cdueV+fyBM8estd5mlNfaQi6lwLgRwCby4edpavgbFhiBNjmWA3JpB/yZGSISa7Srf+TwxDQoA== - dependencies: - "@babel/compat-data" "^7.11.0" - "@babel/helper-compilation-targets" "^7.10.4" - "@babel/helper-module-imports" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-proposal-async-generator-functions" "^7.10.4" - "@babel/plugin-proposal-class-properties" "^7.10.4" - "@babel/plugin-proposal-dynamic-import" "^7.10.4" - "@babel/plugin-proposal-export-namespace-from" "^7.10.4" - "@babel/plugin-proposal-json-strings" "^7.10.4" - "@babel/plugin-proposal-logical-assignment-operators" "^7.11.0" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.10.4" - "@babel/plugin-proposal-numeric-separator" "^7.10.4" - "@babel/plugin-proposal-object-rest-spread" "^7.11.0" - "@babel/plugin-proposal-optional-catch-binding" "^7.10.4" - "@babel/plugin-proposal-optional-chaining" "^7.11.0" - "@babel/plugin-proposal-private-methods" "^7.10.4" - "@babel/plugin-proposal-unicode-property-regex" "^7.10.4" - "@babel/plugin-syntax-async-generators" "^7.8.0" - "@babel/plugin-syntax-class-properties" "^7.10.4" - "@babel/plugin-syntax-dynamic-import" "^7.8.0" +"@babel/plugin-transform-shorthand-properties@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.13.tgz#db755732b70c539d504c6390d9ce90fe64aff7ad" + integrity sha512-xpL49pqPnLtf0tVluuqvzWIgLEhuPpZzvs2yabUHSKRNlN7ScYU7aMlmavOeyXJZKgZKQRBlh8rHbKiJDraTSw== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-spread@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.13.0.tgz#84887710e273c1815ace7ae459f6f42a5d31d5fd" + integrity sha512-V6vkiXijjzYeFmQTr3dBxPtZYLPcUfY34DebOU27jIl2M/Y8Egm52Hw82CSjjPqd54GTlJs5x+CR7HeNr24ckg== + dependencies: + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" + +"@babel/plugin-transform-sticky-regex@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.13.tgz#760ffd936face73f860ae646fb86ee82f3d06d1f" + integrity sha512-Jc3JSaaWT8+fr7GRvQP02fKDsYk4K/lYwWq38r/UGfaxo89ajud321NH28KRQ7xy1Ybc0VUE5Pz8psjNNDUglg== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-template-literals@^7.13.0": + version "7.13.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.13.0.tgz#a36049127977ad94438dee7443598d1cefdf409d" + integrity sha512-d67umW6nlfmr1iehCcBv69eSUSySk1EsIS8aTDX4Xo9qajAh6mYtcl4kJrBkGXuxZPEgVr7RVfAvNW6YQkd4Mw== + dependencies: + "@babel/helper-plugin-utils" "^7.13.0" + +"@babel/plugin-transform-typeof-symbol@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.13.tgz#785dd67a1f2ea579d9c2be722de8c84cb85f5a7f" + integrity sha512-eKv/LmUJpMnu4npgfvs3LiHhJua5fo/CysENxa45YCQXZwKnGCQKAg87bvoqSW1fFT+HA32l03Qxsm8ouTY3ZQ== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-unicode-escapes@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.13.tgz#840ced3b816d3b5127dd1d12dcedc5dead1a5e74" + integrity sha512-0bHEkdwJ/sN/ikBHfSmOXPypN/beiGqjo+o4/5K+vxEFNPRPdImhviPakMKG4x96l85emoa0Z6cDflsdBusZbw== + dependencies: + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/plugin-transform-unicode-regex@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.13.tgz#b52521685804e155b1202e83fc188d34bb70f5ac" + integrity sha512-mDRzSNY7/zopwisPZ5kM9XKCfhchqIYwAKRERtEnhYscZB79VRekuRSoYbN0+KVe3y8+q1h6A4svXtP7N+UoCA== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.12.13" + "@babel/helper-plugin-utils" "^7.12.13" + +"@babel/preset-env@^7.14.2": + version "7.14.4" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.14.4.tgz#73fc3228c59727e5e974319156f304f0d6685a2d" + integrity sha512-GwMMsuAnDtULyOtuxHhzzuSRxFeP0aR/LNzrHRzP8y6AgDNgqnrfCCBm/1cRdTU75tRs28Eh76poHLcg9VF0LA== + dependencies: + "@babel/compat-data" "^7.14.4" + "@babel/helper-compilation-targets" "^7.14.4" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-validator-option" "^7.12.17" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.13.12" + "@babel/plugin-proposal-async-generator-functions" "^7.14.2" + "@babel/plugin-proposal-class-properties" "^7.13.0" + "@babel/plugin-proposal-class-static-block" "^7.14.3" + "@babel/plugin-proposal-dynamic-import" "^7.14.2" + "@babel/plugin-proposal-export-namespace-from" "^7.14.2" + "@babel/plugin-proposal-json-strings" "^7.14.2" + "@babel/plugin-proposal-logical-assignment-operators" "^7.14.2" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.14.2" + "@babel/plugin-proposal-numeric-separator" "^7.14.2" + "@babel/plugin-proposal-object-rest-spread" "^7.14.4" + "@babel/plugin-proposal-optional-catch-binding" "^7.14.2" + "@babel/plugin-proposal-optional-chaining" "^7.14.2" + "@babel/plugin-proposal-private-methods" "^7.13.0" + "@babel/plugin-proposal-private-property-in-object" "^7.14.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.12.13" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.12.13" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - "@babel/plugin-syntax-json-strings" "^7.8.0" + "@babel/plugin-syntax-json-strings" "^7.8.3" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" "@babel/plugin-syntax-numeric-separator" "^7.10.4" - "@babel/plugin-syntax-object-rest-spread" "^7.8.0" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" - "@babel/plugin-syntax-optional-chaining" "^7.8.0" - "@babel/plugin-syntax-top-level-await" "^7.10.4" - "@babel/plugin-transform-arrow-functions" "^7.10.4" - "@babel/plugin-transform-async-to-generator" "^7.10.4" - "@babel/plugin-transform-block-scoped-functions" "^7.10.4" - "@babel/plugin-transform-block-scoping" "^7.10.4" - "@babel/plugin-transform-classes" "^7.10.4" - "@babel/plugin-transform-computed-properties" "^7.10.4" - "@babel/plugin-transform-destructuring" "^7.10.4" - "@babel/plugin-transform-dotall-regex" "^7.10.4" - "@babel/plugin-transform-duplicate-keys" "^7.10.4" - "@babel/plugin-transform-exponentiation-operator" "^7.10.4" - "@babel/plugin-transform-for-of" "^7.10.4" - "@babel/plugin-transform-function-name" "^7.10.4" - "@babel/plugin-transform-literals" "^7.10.4" - "@babel/plugin-transform-member-expression-literals" "^7.10.4" - "@babel/plugin-transform-modules-amd" "^7.10.4" - "@babel/plugin-transform-modules-commonjs" "^7.10.4" - "@babel/plugin-transform-modules-systemjs" "^7.10.4" - "@babel/plugin-transform-modules-umd" "^7.10.4" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.10.4" - "@babel/plugin-transform-new-target" "^7.10.4" - "@babel/plugin-transform-object-super" "^7.10.4" - "@babel/plugin-transform-parameters" "^7.10.4" - "@babel/plugin-transform-property-literals" "^7.10.4" - "@babel/plugin-transform-regenerator" "^7.10.4" - "@babel/plugin-transform-reserved-words" "^7.10.4" - "@babel/plugin-transform-shorthand-properties" "^7.10.4" - "@babel/plugin-transform-spread" "^7.11.0" - "@babel/plugin-transform-sticky-regex" "^7.10.4" - "@babel/plugin-transform-template-literals" "^7.10.4" - "@babel/plugin-transform-typeof-symbol" "^7.10.4" - "@babel/plugin-transform-unicode-escapes" "^7.10.4" - "@babel/plugin-transform-unicode-regex" "^7.10.4" - "@babel/preset-modules" "^0.1.3" - "@babel/types" "^7.11.5" - browserslist "^4.12.0" - core-js-compat "^3.6.2" - invariant "^2.2.2" - levenary "^1.1.1" - semver "^5.5.0" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-private-property-in-object" "^7.14.0" + "@babel/plugin-syntax-top-level-await" "^7.12.13" + "@babel/plugin-transform-arrow-functions" "^7.13.0" + "@babel/plugin-transform-async-to-generator" "^7.13.0" + "@babel/plugin-transform-block-scoped-functions" "^7.12.13" + "@babel/plugin-transform-block-scoping" "^7.14.4" + "@babel/plugin-transform-classes" "^7.14.4" + "@babel/plugin-transform-computed-properties" "^7.13.0" + "@babel/plugin-transform-destructuring" "^7.14.4" + "@babel/plugin-transform-dotall-regex" "^7.12.13" + "@babel/plugin-transform-duplicate-keys" "^7.12.13" + "@babel/plugin-transform-exponentiation-operator" "^7.12.13" + "@babel/plugin-transform-for-of" "^7.13.0" + "@babel/plugin-transform-function-name" "^7.12.13" + "@babel/plugin-transform-literals" "^7.12.13" + "@babel/plugin-transform-member-expression-literals" "^7.12.13" + "@babel/plugin-transform-modules-amd" "^7.14.2" + "@babel/plugin-transform-modules-commonjs" "^7.14.0" + "@babel/plugin-transform-modules-systemjs" "^7.13.8" + "@babel/plugin-transform-modules-umd" "^7.14.0" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.12.13" + "@babel/plugin-transform-new-target" "^7.12.13" + "@babel/plugin-transform-object-super" "^7.12.13" + "@babel/plugin-transform-parameters" "^7.14.2" + "@babel/plugin-transform-property-literals" "^7.12.13" + "@babel/plugin-transform-regenerator" "^7.13.15" + "@babel/plugin-transform-reserved-words" "^7.12.13" + "@babel/plugin-transform-shorthand-properties" "^7.12.13" + "@babel/plugin-transform-spread" "^7.13.0" + "@babel/plugin-transform-sticky-regex" "^7.12.13" + "@babel/plugin-transform-template-literals" "^7.13.0" + "@babel/plugin-transform-typeof-symbol" "^7.12.13" + "@babel/plugin-transform-unicode-escapes" "^7.12.13" + "@babel/plugin-transform-unicode-regex" "^7.12.13" + "@babel/preset-modules" "^0.1.4" + "@babel/types" "^7.14.4" + babel-plugin-polyfill-corejs2 "^0.2.0" + babel-plugin-polyfill-corejs3 "^0.2.0" + babel-plugin-polyfill-regenerator "^0.2.0" + core-js-compat "^3.9.0" + semver "^6.3.0" -"@babel/preset-modules@^0.1.3": - version "0.1.3" - resolved "https://registry.npm.taobao.org/@babel/preset-modules/download/@babel/preset-modules-0.1.3.tgz#13242b53b5ef8c883c3cf7dddd55b36ce80fbc72" - integrity sha1-EyQrU7XvjIg8PPfd3VWzbOgPvHI= +"@babel/preset-modules@^0.1.4": + version "0.1.4" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.4.tgz#362f2b68c662842970fdb5e254ffc8fc1c2e415e" + integrity sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" @@ -843,118 +842,66 @@ "@babel/types" "^7.4.4" esutils "^2.0.2" -"@babel/runtime@^7.11.2", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4": - version "7.11.2" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.11.2.tgz#f549c13c754cc40b87644b9fa9f09a6a95fe0736" - integrity sha512-TeWkU52so0mPtDcaCTxNBI/IHiz0pZgr8VEFqXFtZWpYD08ZB6FaSwVAS8MKRQAP3bYKiVjwysOJgMFY28o6Tw== +"@babel/runtime@^7.14.0", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4": + version "7.14.0" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.14.0.tgz#46794bc20b612c5f75e62dd071e24dfd95f1cbe6" + integrity sha512-JELkvo/DlpNdJ7dlyw/eY7E0suy5i5GQH+Vlxaq1nsNJ+H7f4Vtv3jMeCEgRhZZQFXTjldYfQgv2qmM6M1v5wA== dependencies: regenerator-runtime "^0.13.4" -"@babel/template@^7.10.4": - version "7.10.4" - resolved "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.10.4.tgz#3251996c4200ebc71d1a8fc405fba940f36ba278" - integrity sha1-MlGZbEIA68cdGo/EBfupQPNrong= - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/parser" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/traverse@^7.10.4": - version "7.10.5" - resolved "https://registry.npm.taobao.org/@babel/traverse/download/@babel/traverse-7.10.5.tgz?cache=0&sync_timestamp=1594750808293&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.10.5.tgz#77ce464f5b258be265af618d8fddf0536f20b564" - integrity sha1-d85GT1sli+Jlr2GNj93wU28gtWQ= - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.10.5" - "@babel/helper-function-name" "^7.10.4" - "@babel/helper-split-export-declaration" "^7.10.4" - "@babel/parser" "^7.10.5" - "@babel/types" "^7.10.5" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.19" - -"@babel/traverse@^7.11.5": - version "7.11.5" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.11.5.tgz#be777b93b518eb6d76ee2e1ea1d143daa11e61c3" - integrity sha512-EjiPXt+r7LiCZXEfRpSJd+jUMnBd4/9OUv7Nx3+0u9+eimMwJmG0Q98lw4/289JCoxSE8OolDMNZaaF/JZ69WQ== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.11.5" - "@babel/helper-function-name" "^7.10.4" - "@babel/helper-split-export-declaration" "^7.11.0" - "@babel/parser" "^7.11.5" - "@babel/types" "^7.11.5" +"@babel/template@^7.12.13": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.13.tgz#530265be8a2589dbb37523844c5bcb55947fb327" + integrity sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA== + dependencies: + "@babel/code-frame" "^7.12.13" + "@babel/parser" "^7.12.13" + "@babel/types" "^7.12.13" + +"@babel/traverse@^7.13.0", "@babel/traverse@^7.13.15", "@babel/traverse@^7.14.0", "@babel/traverse@^7.14.2": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.14.2.tgz#9201a8d912723a831c2679c7ebbf2fe1416d765b" + integrity sha512-TsdRgvBFHMyHOOzcP9S6QU0QQtjxlRpEYOy3mcCO5RgmC305ki42aSAmfZEMSSYBla2oZ9BMqYlncBaKmD/7iA== + dependencies: + "@babel/code-frame" "^7.12.13" + "@babel/generator" "^7.14.2" + "@babel/helper-function-name" "^7.14.2" + "@babel/helper-split-export-declaration" "^7.12.13" + "@babel/parser" "^7.14.2" + "@babel/types" "^7.14.2" debug "^4.1.0" globals "^11.1.0" - lodash "^4.17.19" - -"@babel/types@^7.10.4", "@babel/types@^7.10.5", "@babel/types@^7.4.4": - version "7.10.5" - resolved "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.10.5.tgz?cache=0&sync_timestamp=1594750805733&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.10.5.tgz#d88ae7e2fde86bfbfe851d4d81afa70a997b5d15" - integrity sha1-2Irn4v3oa/v+hR1Nga+nCpl7XRU= - dependencies: - "@babel/helper-validator-identifier" "^7.10.4" - lodash "^4.17.19" - to-fast-properties "^2.0.0" -"@babel/types@^7.11.0", "@babel/types@^7.11.5": - version "7.11.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.11.5.tgz#d9de577d01252d77c6800cee039ee64faf75662d" - integrity sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q== +"@babel/types@^7.12.1", "@babel/types@^7.12.13", "@babel/types@^7.13.0", "@babel/types@^7.13.12", "@babel/types@^7.13.16", "@babel/types@^7.14.0", "@babel/types@^7.14.2", "@babel/types@^7.14.4", "@babel/types@^7.4.4": + version "7.14.4" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.14.4.tgz#bfd6980108168593b38b3eb48a24aa026b919bc0" + integrity sha512-lCj4aIs0xUefJFQnwwQv2Bxg7Omd6bgquZ6LGC+gGMh6/s5qDVfjuCMlDmYQ15SLsWHd9n+X3E75lKIhl5Lkiw== dependencies: - "@babel/helper-validator-identifier" "^7.10.4" - lodash "^4.17.19" + "@babel/helper-validator-identifier" "^7.14.0" to-fast-properties "^2.0.0" "@csstools/convert-colors@^1.4.0": version "1.4.0" - resolved "https://registry.npm.taobao.org/@csstools/convert-colors/download/@csstools/convert-colors-1.4.0.tgz#ad495dc41b12e75d588c6db8b9834f08fa131eb7" - integrity sha1-rUldxBsS511YjG24uYNPCPoTHrc= - -"@fortawesome/fontawesome-free@^5.13.0": - version "5.14.0" - resolved "https://registry.npm.taobao.org/@fortawesome/fontawesome-free/download/@fortawesome/fontawesome-free-5.14.0.tgz#a371e91029ebf265015e64f81bfbf7d228c9681f" - integrity sha1-o3HpECnr8mUBXmT4G/v30ijJaB8= - -"@fullcalendar/bootstrap@^4.4.0": - version "4.4.2" - resolved "https://registry.npm.taobao.org/@fullcalendar/bootstrap/download/@fullcalendar/bootstrap-4.4.2.tgz#b396aa39fd2e49c1bfb68deb677df5a5544bb924" - integrity sha1-s5aqOf0uScG/to3rZ331pVRLuSQ= - -"@fullcalendar/core@^4.4.0": - version "4.4.2" - resolved "https://registry.npm.taobao.org/@fullcalendar/core/download/@fullcalendar/core-4.4.2.tgz#864abe98cce4497a163c01a8fc30389f15d3d4e1" - integrity sha1-hkq+mMzkSXoWPAGo/DA4nxXT1OE= - -"@fullcalendar/daygrid@^4.4.0", "@fullcalendar/daygrid@~4.4.0": - version "4.4.2" - resolved "https://registry.npm.taobao.org/@fullcalendar/daygrid/download/@fullcalendar/daygrid-4.4.2.tgz#568bfb3c7cc97f83b57cf3aef0fa3ed1bf6eda16" - integrity sha1-Vov7PHzJf4O1fPOu8Po+0b9u2hY= - -"@fullcalendar/interaction@^4.4.0": - version "4.4.2" - resolved "https://registry.npm.taobao.org/@fullcalendar/interaction/download/@fullcalendar/interaction-4.4.2.tgz#0a6be06538f843b6f0f4e9b4de87a5e3ec3629fb" - integrity sha1-CmvgZTj4Q7bw9Om03oel4+w2Kfs= + resolved "https://registry.yarnpkg.com/@csstools/convert-colors/-/convert-colors-1.4.0.tgz#ad495dc41b12e75d588c6db8b9834f08fa131eb7" + integrity sha512-5a6wqoJV/xEdbRNKVo6I4hO3VjyDq//8q2f9I6PBAvMesJHFauXDorcNCsr9RzvsZnaWi5NYCcfyqP1QeFHFbw== -"@fullcalendar/timegrid@^4.4.0": - version "4.4.2" - resolved "https://registry.npm.taobao.org/@fullcalendar/timegrid/download/@fullcalendar/timegrid-4.4.2.tgz#9d5b26204cd2b0928e7498c54f758a6d07b15191" - integrity sha1-nVsmIEzSsJKOdJjFT3WKbQexUZE= - dependencies: - "@fullcalendar/daygrid" "~4.4.0" +"@fortawesome/fontawesome-free@^5.15.3": + version "5.15.3" + resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-5.15.3.tgz#c36ffa64a2a239bf948541a97b6ae8d729e09a9a" + integrity sha512-rFnSUN/QOtnOAgqFRooTA3H57JLDm0QEG/jPdk+tLQNL/eWd+Aok8g3qCI+Q1xuDPWpGW/i9JySpJVsq8Q0s9w== "@lgaitan/pace-progress@^1.0.7": version "1.0.7" - resolved "https://registry.npm.taobao.org/@lgaitan/pace-progress/download/@lgaitan/pace-progress-1.0.7.tgz#c96fbbd9fd4cf528feed34ea0c8f9d8b3e98f0dd" + resolved "https://registry.yarnpkg.com/@lgaitan/pace-progress/-/pace-progress-1.0.7.tgz#c96fbbd9fd4cf528feed34ea0c8f9d8b3e98f0dd" integrity sha1-yW+72f1M9Sj+7TTqDI+diz6Y8N0= "@npmcli/move-file@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.0.1.tgz#de103070dac0f48ce49cf6693c23af59c0f70464" - integrity sha512-Uv6h1sT+0DrblvIrolFtbvM1FgWm+/sy4B3pvLp67Zys+thcukzS5ekn7HsZFGpWP4Q3fYJCljbWQE/XivMRLw== + version "1.1.2" + resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.2.tgz#1a82c3e372f7cae9253eb66d72543d6b8685c674" + integrity sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg== dependencies: mkdirp "^1.0.4" + rimraf "^3.0.2" "@rails/ujs@^6.1.3": version "6.1.3" @@ -962,33 +909,32 @@ integrity sha512-9mip5o+LVouWAqLMNJWhxda+D5uP+4RziNECgOGJlL6k3rc5SC/ljCHpV9Cym4i3oeGZkpZJ2tu4frCwt84kzQ== "@rails/webpacker@^5.2.1": - version "5.2.1" - resolved "https://registry.yarnpkg.com/@rails/webpacker/-/webpacker-5.2.1.tgz#87cdbd4af2090ae2d74bdc51f6f04717d907c5b3" - integrity sha512-rO0kOv0o4ESB8ZnKX+b54ZKogNJGWSMULGmsJacREfm9SahKEQwXBeHNsqSGtS9NAPsU6YUFhGKRd4i/kbMNrQ== + version "5.4.0" + resolved "https://registry.yarnpkg.com/@rails/webpacker/-/webpacker-5.4.0.tgz#2c64a9ea7e85d2a33e50e86319fe6751df0c47e8" + integrity sha512-J973mzTUJbkbBu+sMwKgWRahoSfwdp5uHT80iDWr6hi8YAC7kj47HapQnn2SGPmv/onTT8WC3jFM62Hkh213yQ== dependencies: - "@babel/core" "^7.11.1" - "@babel/plugin-proposal-class-properties" "^7.10.4" - "@babel/plugin-proposal-object-rest-spread" "^7.10.1" + "@babel/core" "^7.14.3" + "@babel/plugin-proposal-class-properties" "^7.13.0" + "@babel/plugin-proposal-object-rest-spread" "^7.14.2" "@babel/plugin-syntax-dynamic-import" "^7.8.3" - "@babel/plugin-transform-destructuring" "^7.10.1" - "@babel/plugin-transform-regenerator" "^7.10.1" - "@babel/plugin-transform-runtime" "^7.11.0" - "@babel/preset-env" "^7.11.0" - "@babel/runtime" "^7.11.2" - babel-loader "^8.1.0" + "@babel/plugin-transform-destructuring" "^7.13.17" + "@babel/plugin-transform-regenerator" "^7.13.15" + "@babel/plugin-transform-runtime" "^7.14.3" + "@babel/preset-env" "^7.14.2" + "@babel/runtime" "^7.14.0" + babel-loader "^8.2.2" babel-plugin-dynamic-import-node "^2.3.3" babel-plugin-macros "^2.8.0" - case-sensitive-paths-webpack-plugin "^2.3.0" - compression-webpack-plugin "^4.0.0" - core-js "^3.6.5" - css-loader "^3.5.3" - file-loader "^6.0.0" - flatted "^3.0.4" - glob "^7.1.6" - js-yaml "^3.14.0" + case-sensitive-paths-webpack-plugin "^2.4.0" + compression-webpack-plugin "^4.0.1" + core-js "^3.12.1" + css-loader "^3.6.0" + file-loader "^6.2.0" + flatted "^3.1.1" + glob "^7.1.7" + js-yaml "^3.14.1" mini-css-extract-plugin "^0.9.0" - node-sass "^4.14.1" - optimize-css-assets-webpack-plugin "^5.0.3" + optimize-css-assets-webpack-plugin "^5.0.6" path-complete-extname "^1.0.0" pnp-webpack-plugin "^1.6.4" postcss-flexbugs-fixes "^4.2.1" @@ -997,61 +943,62 @@ postcss-preset-env "^6.7.0" postcss-safe-parser "^4.0.2" regenerator-runtime "^0.13.7" - sass-loader "^8.0.2" - style-loader "^1.2.1" - terser-webpack-plugin "^4.0.0" - webpack "^4.44.1" + sass "^1.32.13" + sass-loader "10.1.1" + style-loader "^1.3.0" + terser-webpack-plugin "^4.2.3" + webpack "^4.46.0" webpack-assets-manifest "^3.1.1" webpack-cli "^3.3.12" webpack-sources "^1.4.3" -"@sweetalert2/theme-bootstrap-4@^3.1.4": - version "3.2.0" - resolved "https://registry.npm.taobao.org/@sweetalert2/theme-bootstrap-4/download/@sweetalert2/theme-bootstrap-4-3.2.0.tgz#9580fcefd7c624863e5a7cd35cb6b253e0ac8592" - integrity sha1-lYD879fGJIY+WnzTXLayU+CshZI= +"@sweetalert2/theme-bootstrap-4@^4.0.3": + version "4.0.5" + resolved "https://registry.yarnpkg.com/@sweetalert2/theme-bootstrap-4/-/theme-bootstrap-4-4.0.5.tgz#488eac0a85e7601a42dc8b1d95ec8fc73ff330aa" + integrity sha512-pe5mQ98sgrphNVq6Xe5BsWxsfI1Z8zT9C2oux6+4B6Qt30qYo58Q+bnzRs8pV95O9/URt/QJZyl+R8SabMeW6g== -"@ttskch/select2-bootstrap4-theme@^1.3.2": - version "1.4.0" - resolved "https://registry.npm.taobao.org/@ttskch/select2-bootstrap4-theme/download/@ttskch/select2-bootstrap4-theme-1.4.0.tgz#1e15ed14c5adbd6f86940811e195bde984aa9882" - integrity sha1-HhXtFMWtvW+GlAgR4ZW96YSqmII= +"@ttskch/select2-bootstrap4-theme@^1.5.2": + version "1.5.2" + resolved "https://registry.yarnpkg.com/@ttskch/select2-bootstrap4-theme/-/select2-bootstrap4-theme-1.5.2.tgz#3b4519b349f3e7831c28752a1e9617312a192656" + integrity sha512-gAj8qNy/VYwQDBkACm0USM66kxFai8flX83ayRXPNhzZckEgSqIBB9sM74SCM3ssgeX+ZVy4BifTnLis+KpIyg== "@types/glob@^7.1.1": version "7.1.3" - resolved "https://registry.npm.taobao.org/@types/glob/download/@types/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183" - integrity sha1-5rqA82t9qtLGhazZJmOC5omFwYM= + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.3.tgz#e6ba80f36b7daad2c685acd9266382e68985c183" + integrity sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w== dependencies: "@types/minimatch" "*" "@types/node" "*" -"@types/json-schema@^7.0.5": - version "7.0.6" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.6.tgz#f4c7ec43e81b319a9815115031709f26987891f0" - integrity sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw== +"@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6": + version "7.0.7" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.7.tgz#98a993516c859eb0d5c4c8f098317a9ea68db9ad" + integrity sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA== "@types/minimatch@*": - version "3.0.3" - resolved "https://registry.npm.taobao.org/@types/minimatch/download/@types/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" - integrity sha1-PcoOPzOyAPx9ETnAzZbBJoyt/Z0= + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.4.tgz#f0ec25dbf2f0e4b18647313ac031134ca5b24b21" + integrity sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA== "@types/node@*": - version "14.0.23" - resolved "https://registry.npm.taobao.org/@types/node/download/@types/node-14.0.23.tgz?cache=0&sync_timestamp=1594655965952&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-14.0.23.tgz#676fa0883450ed9da0bb24156213636290892806" - integrity sha1-Z2+giDRQ7Z2guyQVYhNjYpCJKAY= + version "15.12.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-15.12.2.tgz#1f2b42c4be7156ff4a6f914b2fb03d05fa84e38d" + integrity sha512-zjQ69G564OCIWIOHSXyQEEDpdpGl+G348RAKY0XXy9Z5kU9Vzv1GMNnkar/ZJ8dzXB3COzD9Mo9NtRZ4xfgUww== "@types/parse-json@^4.0.0": version "4.0.0" - resolved "https://registry.npm.taobao.org/@types/parse-json/download/@types/parse-json-4.0.0.tgz?cache=0&sync_timestamp=1588201631592&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fparse-json%2Fdownload%2F%40types%2Fparse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" - integrity sha1-L4u0QUNNFjs1+4/9zNcTiSf/uMA= + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" + integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== "@types/q@^1.5.1": version "1.5.4" - resolved "https://registry.npm.taobao.org/@types/q/download/@types/q-1.5.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fq%2Fdownload%2F%40types%2Fq-1.5.4.tgz#15925414e0ad2cd765bfef58842f7e26a7accb24" - integrity sha1-FZJUFOCtLNdlv+9YhC9+JqesyyQ= + resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.4.tgz#15925414e0ad2cd765bfef58842f7e26a7accb24" + integrity sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug== "@webassemblyjs/ast@1.9.0": version "1.9.0" - resolved "https://registry.npm.taobao.org/@webassemblyjs/ast/download/@webassemblyjs/ast-1.9.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fast%2Fdownload%2F%40webassemblyjs%2Fast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" - integrity sha1-vYUGBLQEJFmlpBzX0zjL7Wle2WQ= + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" + integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA== dependencies: "@webassemblyjs/helper-module-context" "1.9.0" "@webassemblyjs/helper-wasm-bytecode" "1.9.0" @@ -1059,47 +1006,47 @@ "@webassemblyjs/floating-point-hex-parser@1.9.0": version "1.9.0" - resolved "https://registry.npm.taobao.org/@webassemblyjs/floating-point-hex-parser/download/@webassemblyjs/floating-point-hex-parser-1.9.0.tgz?cache=0&sync_timestamp=1580600186633&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Ffloating-point-hex-parser%2Fdownload%2F%40webassemblyjs%2Ffloating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" - integrity sha1-PD07Jxvd/ITesA9xNEQ4MR1S/7Q= + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" + integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== "@webassemblyjs/helper-api-error@1.9.0": version "1.9.0" - resolved "https://registry.npm.taobao.org/@webassemblyjs/helper-api-error/download/@webassemblyjs/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" - integrity sha1-ID9nbjM7lsnaLuqzzO8zxFkotqI= + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" + integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== "@webassemblyjs/helper-buffer@1.9.0": version "1.9.0" - resolved "https://registry.npm.taobao.org/@webassemblyjs/helper-buffer/download/@webassemblyjs/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" - integrity sha1-oUQtJpxf6yP8vJ73WdrDVH8p3gA= + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" + integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== "@webassemblyjs/helper-code-frame@1.9.0": version "1.9.0" - resolved "https://registry.npm.taobao.org/@webassemblyjs/helper-code-frame/download/@webassemblyjs/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27" - integrity sha1-ZH+Iks0gQ6gqwMjF51w28dkVnyc= + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27" + integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA== dependencies: "@webassemblyjs/wast-printer" "1.9.0" "@webassemblyjs/helper-fsm@1.9.0": version "1.9.0" - resolved "https://registry.npm.taobao.org/@webassemblyjs/helper-fsm/download/@webassemblyjs/helper-fsm-1.9.0.tgz?cache=0&sync_timestamp=1580600184873&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-fsm%2Fdownload%2F%40webassemblyjs%2Fhelper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8" - integrity sha1-wFJWtxJEIUZx9LCOwQitY7cO3bg= + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8" + integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== "@webassemblyjs/helper-module-context@1.9.0": version "1.9.0" - resolved "https://registry.npm.taobao.org/@webassemblyjs/helper-module-context/download/@webassemblyjs/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07" - integrity sha1-JdiIS3aDmHGgimxvgGw5ee9xLwc= + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07" + integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g== dependencies: "@webassemblyjs/ast" "1.9.0" "@webassemblyjs/helper-wasm-bytecode@1.9.0": version "1.9.0" - resolved "https://registry.npm.taobao.org/@webassemblyjs/helper-wasm-bytecode/download/@webassemblyjs/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" - integrity sha1-T+2L6sm4wU+MWLcNEk1UndH+V5A= + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" + integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== "@webassemblyjs/helper-wasm-section@1.9.0": version "1.9.0" - resolved "https://registry.npm.taobao.org/@webassemblyjs/helper-wasm-section/download/@webassemblyjs/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" - integrity sha1-WkE41aYpK6GLBMWuSXF+QWeWU0Y= + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" + integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw== dependencies: "@webassemblyjs/ast" "1.9.0" "@webassemblyjs/helper-buffer" "1.9.0" @@ -1108,27 +1055,27 @@ "@webassemblyjs/ieee754@1.9.0": version "1.9.0" - resolved "https://registry.npm.taobao.org/@webassemblyjs/ieee754/download/@webassemblyjs/ieee754-1.9.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fieee754%2Fdownload%2F%40webassemblyjs%2Fieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" - integrity sha1-Fceg+6roP7JhQ7us9tbfFwKtOeQ= + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" + integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg== dependencies: "@xtuc/ieee754" "^1.2.0" "@webassemblyjs/leb128@1.9.0": version "1.9.0" - resolved "https://registry.npm.taobao.org/@webassemblyjs/leb128/download/@webassemblyjs/leb128-1.9.0.tgz?cache=0&sync_timestamp=1580627709555&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fleb128%2Fdownload%2F%40webassemblyjs%2Fleb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" - integrity sha1-8Zygt2ptxVYjoJz/p2noOPoeHJU= + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" + integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw== dependencies: "@xtuc/long" "4.2.2" "@webassemblyjs/utf8@1.9.0": version "1.9.0" - resolved "https://registry.npm.taobao.org/@webassemblyjs/utf8/download/@webassemblyjs/utf8-1.9.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Futf8%2Fdownload%2F%40webassemblyjs%2Futf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" - integrity sha1-BNM7Y2945qaBMifoJAL3Y3tiKas= + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" + integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== "@webassemblyjs/wasm-edit@1.9.0": version "1.9.0" - resolved "https://registry.npm.taobao.org/@webassemblyjs/wasm-edit/download/@webassemblyjs/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" - integrity sha1-P+bXnT8PkiGDqoYALELdJWz+6c8= + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" + integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw== dependencies: "@webassemblyjs/ast" "1.9.0" "@webassemblyjs/helper-buffer" "1.9.0" @@ -1141,8 +1088,8 @@ "@webassemblyjs/wasm-gen@1.9.0": version "1.9.0" - resolved "https://registry.npm.taobao.org/@webassemblyjs/wasm-gen/download/@webassemblyjs/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" - integrity sha1-ULxw7Gje2OJ2OwGhQYv0NJGnpJw= + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" + integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA== dependencies: "@webassemblyjs/ast" "1.9.0" "@webassemblyjs/helper-wasm-bytecode" "1.9.0" @@ -1152,8 +1099,8 @@ "@webassemblyjs/wasm-opt@1.9.0": version "1.9.0" - resolved "https://registry.npm.taobao.org/@webassemblyjs/wasm-opt/download/@webassemblyjs/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" - integrity sha1-IhEYHlsxMmRDzIES658LkChyGmE= + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" + integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A== dependencies: "@webassemblyjs/ast" "1.9.0" "@webassemblyjs/helper-buffer" "1.9.0" @@ -1162,8 +1109,8 @@ "@webassemblyjs/wasm-parser@1.9.0": version "1.9.0" - resolved "https://registry.npm.taobao.org/@webassemblyjs/wasm-parser/download/@webassemblyjs/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" - integrity sha1-nUjkSCbfSmWYKUqmyHRp1kL/9l4= + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" + integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA== dependencies: "@webassemblyjs/ast" "1.9.0" "@webassemblyjs/helper-api-error" "1.9.0" @@ -1174,8 +1121,8 @@ "@webassemblyjs/wast-parser@1.9.0": version "1.9.0" - resolved "https://registry.npm.taobao.org/@webassemblyjs/wast-parser/download/@webassemblyjs/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914" - integrity sha1-MDERXXmsW9JhVWzsw/qQo+9FGRQ= + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914" + integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw== dependencies: "@webassemblyjs/ast" "1.9.0" "@webassemblyjs/floating-point-hex-parser" "1.9.0" @@ -1186,8 +1133,8 @@ "@webassemblyjs/wast-printer@1.9.0": version "1.9.0" - resolved "https://registry.npm.taobao.org/@webassemblyjs/wast-printer/download/@webassemblyjs/wast-printer-1.9.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwast-printer%2Fdownload%2F%40webassemblyjs%2Fwast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" - integrity sha1-STXVTIX+9jewDOn1I3dFHQDUeJk= + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" + integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA== dependencies: "@webassemblyjs/ast" "1.9.0" "@webassemblyjs/wast-parser" "1.9.0" @@ -1195,31 +1142,26 @@ "@xtuc/ieee754@^1.2.0": version "1.2.0" - resolved "https://registry.npm.taobao.org/@xtuc/ieee754/download/@xtuc/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" - integrity sha1-7vAUoxRa5Hehy8AM0eVSM23Ot5A= + resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== "@xtuc/long@4.2.2": version "4.2.2" - resolved "https://registry.npm.taobao.org/@xtuc/long/download/@xtuc/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" - integrity sha1-0pHGpOl5ibXGHZrPOWrk/hM6cY0= - -abbrev@1: - version "1.1.1" - resolved "https://registry.npm.taobao.org/abbrev/download/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" - integrity sha1-+PLIh60Qv2f2NPAFtph/7TF5qsg= + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: version "1.3.7" - resolved "https://registry.npm.taobao.org/accepts/download/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" - integrity sha1-UxvHJlF6OytB+FACHGzBXqq1B80= + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" + integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== dependencies: mime-types "~2.1.24" negotiator "0.6.2" acorn-node@^1.3.0: version "1.8.2" - resolved "https://registry.npm.taobao.org/acorn-node/download/acorn-node-1.8.2.tgz#114c95d64539e53dede23de8b9d96df7c7ae2af8" - integrity sha1-EUyV1kU55T3t4j3oudlt98euKvg= + resolved "https://registry.yarnpkg.com/acorn-node/-/acorn-node-1.8.2.tgz#114c95d64539e53dede23de8b9d96df7c7ae2af8" + integrity sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A== dependencies: acorn "^7.0.0" acorn-walk "^7.0.0" @@ -1227,121 +1169,108 @@ acorn-node@^1.3.0: acorn-walk@^7.0.0: version "7.2.0" - resolved "https://registry.npm.taobao.org/acorn-walk/download/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" - integrity sha1-DeiJpgEgOQmw++B7iTjcIdLpZ7w= + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" + integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== acorn@^6.4.1: - version "6.4.1" - resolved "https://registry.npm.taobao.org/acorn/download/acorn-6.4.1.tgz?cache=0&sync_timestamp=1591869466711&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474" - integrity sha1-Ux5Yuj9RudrLmmZGyk3r9bFMpHQ= + version "6.4.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" + integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== acorn@^7.0.0: - version "7.3.1" - resolved "https://registry.npm.taobao.org/acorn/download/acorn-7.3.1.tgz?cache=0&sync_timestamp=1591869466711&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-7.3.1.tgz#85010754db53c3fbaf3b9ea3e083aa5c5d147ffd" - integrity sha1-hQEHVNtTw/uvO56j4IOqXF0Uf/0= + version "7.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== admin-lte@^3.0.5: - version "3.0.5" - resolved "https://registry.npm.taobao.org/admin-lte/download/admin-lte-3.0.5.tgz#664664863bb7a5bf306b3a7b76fd16b345f0b00f" - integrity sha1-ZkZkhju3pb8wazp7dv0Ws0XwsA8= - dependencies: - "@fortawesome/fontawesome-free" "^5.13.0" - "@fullcalendar/bootstrap" "^4.4.0" - "@fullcalendar/core" "^4.4.0" - "@fullcalendar/daygrid" "^4.4.0" - "@fullcalendar/interaction" "^4.4.0" - "@fullcalendar/timegrid" "^4.4.0" + version "3.1.0" + resolved "https://registry.yarnpkg.com/admin-lte/-/admin-lte-3.1.0.tgz#3e9e76267c53d0d19746bb592f24d82a4d262c15" + integrity sha512-JkmmkjbGgB5RCPwpaUCEktpZz/Ez/vBdfCNx8J3u8doaRRUUV1/oj4PuIiOV+xrNMt05q87131xoGySr/eA4uA== + dependencies: + "@fortawesome/fontawesome-free" "^5.15.3" "@lgaitan/pace-progress" "^1.0.7" - "@sweetalert2/theme-bootstrap-4" "^3.1.4" - "@ttskch/select2-bootstrap4-theme" "^1.3.2" - bootstrap "^4.4.1" + "@sweetalert2/theme-bootstrap-4" "^4.0.3" + "@ttskch/select2-bootstrap4-theme" "^1.5.2" + bootstrap "^4.6.0" bootstrap-colorpicker "^3.2.0" - bootstrap-slider "^10.6.2" + bootstrap-slider "^11.0.2" bootstrap-switch "3.3.4" - bootstrap4-duallistbox "^4.0.1" + bootstrap4-duallistbox "^4.0.2" bs-custom-file-input "^1.3.4" - chart.js "^2.9.3" - datatables.net "^1.10.20" - datatables.net-autofill-bs4 "^2.3.4" - datatables.net-bs4 "^1.10.20" - datatables.net-buttons-bs4 "^1.6.1" - datatables.net-colreorder-bs4 "^1.5.2" - datatables.net-fixedcolumns-bs4 "^3.3.0" - datatables.net-fixedheader-bs4 "^3.1.6" - datatables.net-keytable-bs4 "^2.5.1" - datatables.net-responsive-bs4 "^2.2.3" - datatables.net-rowgroup-bs4 "^1.1.1" - datatables.net-rowreorder-bs4 "^1.2.6" - datatables.net-scroller-bs4 "^2.0.1" - datatables.net-select-bs4 "^1.3.1" - daterangepicker "^3.0.5" + bs-stepper "^1.7.0" + chart.js "^2.9.4" + codemirror "^5.60.0" + datatables.net "^1.10.24" + datatables.net-autofill-bs4 "^2.3.5" + datatables.net-bs4 "^1.10.24" + datatables.net-buttons-bs4 "^1.7.0" + datatables.net-colreorder-bs4 "^1.5.3" + datatables.net-fixedcolumns-bs4 "^3.3.2" + datatables.net-fixedheader-bs4 "^3.1.8" + datatables.net-keytable-bs4 "^2.6.1" + datatables.net-responsive-bs4 "^2.2.7" + datatables.net-rowgroup-bs4 "^1.1.2" + datatables.net-rowreorder-bs4 "^1.2.7" + datatables.net-scroller-bs4 "^2.0.3" + datatables.net-searchbuilder-bs4 "^1.0.1" + datatables.net-searchpanes-bs4 "^1.2.2" + datatables.net-select-bs4 "^1.3.2" + daterangepicker "^3.1.0" + dropzone "^5.8.1" ekko-lightbox "^5.3.0" fastclick "^1.0.6" - filterizr "^2.2.3" - flag-icon-css "^3.4.6" - flot "^4.2.0" - fs-extra "^9.0.0" + filterizr "^2.2.4" + flag-icon-css "^3.5.0" + flot "^4.2.2" + fs-extra "^9.1.0" + fullcalendar "^5.5.1" icheck-bootstrap "^3.0.1" - inputmask "^5.0.3" + inputmask "^5.0.5" ion-rangeslider "^2.3.1" - jquery "^3.4.1" + jquery "^3.6.0" jquery-knob-chif "^1.2.13" jquery-mapael "^2.2.0" jquery-mousewheel "^3.1.13" jquery-ui-dist "^1.12.1" - jquery-validation "^1.19.1" + jquery-validation "^1.19.3" jqvmap-novulnerability "^1.5.1" jsgrid "^1.5.3" - jszip "^3.3.0" - moment "^2.24.0" - overlayscrollbars "^1.11.0" - pdfmake "^0.1.65" + jszip "^3.6.0" + moment "^2.29.1" + overlayscrollbars "^1.13.1" + pdfmake "^0.1.70" popper.js "^1.16.1" raphael "^2.3.0" select2 "^4.0.13" - sparklines "^1.2.0" - summernote "^0.8.16" - sweetalert2 "^9.10.8" - tempusdominus-bootstrap-4 "^5.1.2" + sparklines "^1.3.0" + summernote "^0.8.18" + sweetalert2 "^10.15.6" + tempusdominus-bootstrap-4 "^5.39.0" toastr "^2.1.4" + uplot "^1.6.7" aggregate-error@^3.0.0: - version "3.0.1" - resolved "https://registry.npm.taobao.org/aggregate-error/download/aggregate-error-3.0.1.tgz#db2fe7246e536f40d9b5442a39e117d7dd6a24e0" - integrity sha1-2y/nJG5Tb0DZtUQqOeEX191qJOA= + version "3.1.0" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== dependencies: clean-stack "^2.0.0" indent-string "^4.0.0" ajv-errors@^1.0.0: version "1.0.1" - resolved "https://registry.npm.taobao.org/ajv-errors/download/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" - integrity sha1-81mGrOuRr63sQQL72FAUlQzvpk0= + resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" + integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== -ajv-keywords@^3.1.0, ajv-keywords@^3.4.1: - version "3.5.1" - resolved "https://registry.npm.taobao.org/ajv-keywords/download/ajv-keywords-3.5.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv-keywords%2Fdownload%2Fajv-keywords-3.5.1.tgz#b83ca89c5d42d69031f424cad49aada0236c6957" - integrity sha1-uDyonF1C1pAx9CTK1JqtoCNsaVc= - -ajv-keywords@^3.5.2: +ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: version "3.5.2" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== -ajv@^6.1.0, ajv@^6.10.2, ajv@^6.5.5: - version "6.12.3" - resolved "https://registry.npm.taobao.org/ajv/download/ajv-6.12.3.tgz?cache=0&sync_timestamp=1593876991897&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fajv%2Fdownload%2Fajv-6.12.3.tgz#18c5af38a111ddeb4f2697bd78d68abc1cabd706" - integrity sha1-GMWvOKER3etPJpe9eNaKvByr1wY= - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -ajv@^6.12.4: - version "6.12.5" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.5.tgz#19b0e8bae8f476e5ba666300387775fb1a00a4da" - integrity sha512-lRF8RORchjpKG50/WFf8xmg7sgCLFiYNNnqdKflk63whMQcWR5ngGjiSXkL9bjxy6B2npOK2HSMN49jEBMSkag== +ajv@^6.1.0, ajv@^6.10.2, ajv@^6.12.4, ajv@^6.12.5: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== dependencies: fast-deep-equal "^3.1.1" fast-json-stable-stringify "^2.0.0" @@ -1350,176 +1279,142 @@ ajv@^6.12.4: alphanum-sort@^1.0.0: version "1.0.2" - resolved "https://registry.npm.taobao.org/alphanum-sort/download/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" + resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= amdefine@>=0.0.4: version "1.0.1" - resolved "https://registry.npm.taobao.org/amdefine/download/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" + resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" integrity sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU= ansi-colors@^3.0.0: version "3.2.4" - resolved "https://registry.npm.taobao.org/ansi-colors/download/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" - integrity sha1-46PaS/uubIapwoViXeEkojQCb78= + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" + integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== ansi-html@0.0.7: version "0.0.7" - resolved "https://registry.npm.taobao.org/ansi-html/download/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" + resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4= ansi-regex@^2.0.0: version "2.1.1" - resolved "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz?cache=0&sync_timestamp=1570188570027&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= -ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz?cache=0&sync_timestamp=1570188570027&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= - ansi-regex@^4.1.0: version "4.1.0" - resolved "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz?cache=0&sync_timestamp=1570188570027&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-regex%2Fdownload%2Fansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" - integrity sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc= - -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz?cache=0&sync_timestamp=1589682811931&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== ansi-styles@^3.2.0, ansi-styles@^3.2.1: version "3.2.1" - resolved "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz?cache=0&sync_timestamp=1589682811931&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fansi-styles%2Fdownload%2Fansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0= + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== dependencies: color-convert "^1.9.0" anymatch@^2.0.0: version "2.0.0" - resolved "https://registry.npm.taobao.org/anymatch/download/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" - integrity sha1-vLJLTzeTTZqnrBe0ra+J58du8us= + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== dependencies: micromatch "^3.1.4" normalize-path "^2.1.1" anymatch@~3.1.1: - version "3.1.1" - resolved "https://registry.npm.taobao.org/anymatch/download/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" - integrity sha1-xV7PAhheJGklk5kxDBc84xIzsUI= + version "3.1.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" + integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== dependencies: normalize-path "^3.0.0" picomatch "^2.0.4" -aproba@^1.0.3, aproba@^1.1.1: +aproba@^1.1.1: version "1.2.0" - resolved "https://registry.npm.taobao.org/aproba/download/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" - integrity sha1-aALmJk79GMeQobDVF/DyYnvyyUo= - -are-we-there-yet@~1.1.2: - version "1.1.5" - resolved "https://registry.npm.taobao.org/are-we-there-yet/download/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" - integrity sha1-SzXClE8GKov82mZBB2A1D+nd/CE= - dependencies: - delegates "^1.0.0" - readable-stream "^2.0.6" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== argparse@^1.0.7: version "1.0.10" - resolved "https://registry.npm.taobao.org/argparse/download/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE= + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== dependencies: sprintf-js "~1.0.2" arr-diff@^4.0.0: version "4.0.0" - resolved "https://registry.npm.taobao.org/arr-diff/download/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= arr-flatten@^1.1.0: version "1.1.0" - resolved "https://registry.npm.taobao.org/arr-flatten/download/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - integrity sha1-NgSLv/TntH4TZkQxbJlmnqWukfE= + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== arr-union@^3.1.0: version "3.1.0" - resolved "https://registry.npm.taobao.org/arr-union/download/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= -array-find-index@^1.0.1: - version "1.0.2" - resolved "https://registry.npm.taobao.org/array-find-index/download/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" - integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= - array-flatten@1.1.1: version "1.1.1" - resolved "https://registry.npm.taobao.org/array-flatten/download/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= array-flatten@^2.1.0: version "2.1.2" - resolved "https://registry.npm.taobao.org/array-flatten/download/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" - integrity sha1-JO+AoowaiTYX4hSbDG0NeIKTsJk= + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" + integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== array-from@^2.1.1: version "2.1.1" - resolved "https://registry.npm.taobao.org/array-from/download/array-from-2.1.1.tgz#cfe9d8c26628b9dc5aecc62a9f5d8f1f352c1195" + resolved "https://registry.yarnpkg.com/array-from/-/array-from-2.1.1.tgz#cfe9d8c26628b9dc5aecc62a9f5d8f1f352c1195" integrity sha1-z+nYwmYoudxa7MYqn12PHzUsEZU= array-union@^1.0.1: version "1.0.2" - resolved "https://registry.npm.taobao.org/array-union/download/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= dependencies: array-uniq "^1.0.1" array-uniq@^1.0.1: version "1.0.3" - resolved "https://registry.npm.taobao.org/array-uniq/download/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= array-unique@^0.3.2: version "0.3.2" - resolved "https://registry.npm.taobao.org/array-unique/download/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= -asn1.js@^4.0.0: - version "4.10.1" - resolved "https://registry.npm.taobao.org/asn1.js/download/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" - integrity sha1-ucK/WAXx5kqt7tbfOiv6+1pz9aA= +asn1.js@^5.2.0: + version "5.4.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" + integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== dependencies: bn.js "^4.0.0" inherits "^2.0.1" minimalistic-assert "^1.0.0" - -asn1@~0.2.3: - version "0.2.4" - resolved "https://registry.npm.taobao.org/asn1/download/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" - integrity sha1-jSR136tVO7M+d7VOWeiAu4ziMTY= - dependencies: - safer-buffer "~2.1.0" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.npm.taobao.org/assert-plus/download/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= + safer-buffer "^2.1.0" assert@^1.1.1: version "1.5.0" - resolved "https://registry.npm.taobao.org/assert/download/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" - integrity sha1-VcEJqvbgrv2z3EtxJAxwv1dLGOs= + resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" + integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== dependencies: object-assign "^4.1.1" util "0.10.3" assign-symbols@^1.0.0: version "1.0.0" - resolved "https://registry.npm.taobao.org/assign-symbols/download/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= ast-transform@0.0.0: version "0.0.0" - resolved "https://registry.npm.taobao.org/ast-transform/download/ast-transform-0.0.0.tgz#74944058887d8283e189d954600947bc98fe0062" + resolved "https://registry.yarnpkg.com/ast-transform/-/ast-transform-0.0.0.tgz#74944058887d8283e189d954600947bc98fe0062" integrity sha1-dJRAWIh9goPhidlUYAlHvJj+AGI= dependencies: escodegen "~1.2.0" @@ -1528,123 +1423,126 @@ ast-transform@0.0.0: ast-types@^0.7.0: version "0.7.8" - resolved "https://registry.npm.taobao.org/ast-types/download/ast-types-0.7.8.tgz#902d2e0d60d071bdcd46dc115e1809ed11c138a9" + resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.7.8.tgz#902d2e0d60d071bdcd46dc115e1809ed11c138a9" integrity sha1-kC0uDWDQcb3NRtwRXhgJ7RHBOKk= async-each@^1.0.1: version "1.0.3" - resolved "https://registry.npm.taobao.org/async-each/download/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" - integrity sha1-tyfb+H12UWAvBvTUrDh/R9kbDL8= - -async-foreach@^0.1.3: - version "0.1.3" - resolved "https://registry.npm.taobao.org/async-foreach/download/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542" - integrity sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI= + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" + integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== async-limiter@~1.0.0: version "1.0.1" - resolved "https://registry.npm.taobao.org/async-limiter/download/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" - integrity sha1-3TeelPDbgxCwgpH51kwyCXZmF/0= + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" + integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== async@^2.6.2: version "2.6.3" - resolved "https://registry.npm.taobao.org/async/download/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" - integrity sha1-1yYl4jRKNlbjo61Pp0n6gymdgv8= + resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" + integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== dependencies: lodash "^4.17.14" -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.npm.taobao.org/asynckit/download/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= - at-least-node@^1.0.0: version "1.0.0" - resolved "https://registry.npm.taobao.org/at-least-node/download/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" - integrity sha1-YCzUtG6EStTv/JKoARo8RuAjjcI= + resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" + integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== atob@^2.1.2: version "2.1.2" - resolved "https://registry.npm.taobao.org/atob/download/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" - integrity sha1-bZUX654DDSQ2ZmZR6GvZ9vE1M8k= + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== autoprefixer@^9.6.1: - version "9.8.5" - resolved "https://registry.npm.taobao.org/autoprefixer/download/autoprefixer-9.8.5.tgz?cache=0&sync_timestamp=1594444615950&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fautoprefixer%2Fdownload%2Fautoprefixer-9.8.5.tgz#2c225de229ddafe1d1424c02791d0c3e10ccccaa" - integrity sha1-LCJd4indr+HRQkwCeR0MPhDMzKo= + version "9.8.6" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.6.tgz#3b73594ca1bf9266320c5acf1588d74dea74210f" + integrity sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg== dependencies: browserslist "^4.12.0" - caniuse-lite "^1.0.30001097" - colorette "^1.2.0" + caniuse-lite "^1.0.30001109" + colorette "^1.2.1" normalize-range "^0.1.2" num2fraction "^1.2.2" postcss "^7.0.32" postcss-value-parser "^4.1.0" -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.npm.taobao.org/aws-sign2/download/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= - -aws4@^1.8.0: - version "1.10.0" - resolved "https://registry.npm.taobao.org/aws4/download/aws4-1.10.0.tgz#a17b3a8ea811060e74d47d306122400ad4497ae2" - integrity sha1-oXs6jqgRBg501H0wYSJACtRJeuI= - -babel-loader@^8.1.0: - version "8.1.0" - resolved "https://registry.npm.taobao.org/babel-loader/download/babel-loader-8.1.0.tgz?cache=0&sync_timestamp=1584715959282&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-loader%2Fdownload%2Fbabel-loader-8.1.0.tgz#c611d5112bd5209abe8b9fa84c3e4da25275f1c3" - integrity sha1-xhHVESvVIJq+i5+oTD5NolJ18cM= +babel-loader@^8.2.2: + version "8.2.2" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.2.2.tgz#9363ce84c10c9a40e6c753748e1441b60c8a0b81" + integrity sha512-JvTd0/D889PQBtUXJ2PXaKU/pjZDMtHA9V2ecm+eNRmmBCMR09a+fmpGTNwnJtFmFl5Ei7Vy47LjBb+L0wQ99g== dependencies: - find-cache-dir "^2.1.0" + find-cache-dir "^3.3.1" loader-utils "^1.4.0" - mkdirp "^0.5.3" - pify "^4.0.1" + make-dir "^3.1.0" schema-utils "^2.6.5" babel-plugin-dynamic-import-node@^2.3.3: version "2.3.3" - resolved "https://registry.npm.taobao.org/babel-plugin-dynamic-import-node/download/babel-plugin-dynamic-import-node-2.3.3.tgz?cache=0&sync_timestamp=1587496311403&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-plugin-dynamic-import-node%2Fdownload%2Fbabel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" - integrity sha1-hP2hnJduxcbe/vV/lCez3vZuF6M= + resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" + integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== dependencies: object.assign "^4.1.0" babel-plugin-macros@^2.8.0: version "2.8.0" - resolved "https://registry.npm.taobao.org/babel-plugin-macros/download/babel-plugin-macros-2.8.0.tgz#0f958a7cc6556b1e65344465d99111a1e5e10138" - integrity sha1-D5WKfMZVax5lNERl2ZERoeXhATg= + resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz#0f958a7cc6556b1e65344465d99111a1e5e10138" + integrity sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg== dependencies: "@babel/runtime" "^7.7.2" cosmiconfig "^6.0.0" resolve "^1.12.0" +babel-plugin-polyfill-corejs2@^0.2.0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.2.tgz#e9124785e6fd94f94b618a7954e5693053bf5327" + integrity sha512-kISrENsJ0z5dNPq5eRvcctITNHYXWOA4DUZRFYCz3jYCcvTb/A546LIddmoGNMVYg2U38OyFeNosQwI9ENTqIQ== + dependencies: + "@babel/compat-data" "^7.13.11" + "@babel/helper-define-polyfill-provider" "^0.2.2" + semver "^6.1.1" + +babel-plugin-polyfill-corejs3@^0.2.0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.2.tgz#7424a1682ee44baec817327710b1b094e5f8f7f5" + integrity sha512-l1Cf8PKk12eEk5QP/NQ6TH8A1pee6wWDJ96WjxrMXFLHLOBFzYM4moG80HFgduVhTqAFez4alnZKEhP/bYHg0A== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.2.2" + core-js-compat "^3.9.1" + +babel-plugin-polyfill-regenerator@^0.2.0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.2.tgz#b310c8d642acada348c1fa3b3e6ce0e851bee077" + integrity sha512-Goy5ghsc21HgPDFtzRkSirpZVW35meGoTmTOb2bxqdl60ghub4xOidgNTHaZfQ2FaxQsKmwvXtOAkcIS4SMBWg== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.2.2" + babel-runtime@^6.26.0: version "6.26.0" - resolved "https://registry.npm.taobao.org/babel-runtime/download/babel-runtime-6.26.0.tgz?cache=0&sync_timestamp=1587491768729&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbabel-runtime%2Fdownload%2Fbabel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= dependencies: core-js "^2.4.0" regenerator-runtime "^0.11.0" balanced-match@^1.0.0: - version "1.0.0" - resolved "https://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" - integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== base64-js@0.0.8: version "0.0.8" - resolved "https://registry.npm.taobao.org/base64-js/download/base64-js-0.0.8.tgz#1101e9544f4a76b1bc3b26d452ca96d7a35e7978" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-0.0.8.tgz#1101e9544f4a76b1bc3b26d452ca96d7a35e7978" integrity sha1-EQHpVE9KdrG8OybUUsqW16NeeXg= base64-js@^1.0.2, base64-js@^1.1.2, base64-js@^1.3.0: - version "1.3.1" - resolved "https://registry.npm.taobao.org/base64-js/download/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" - integrity sha1-WOzoy3XdB+ce0IxzarxfrE2/jfE= + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== base@^0.11.1: version "0.11.2" - resolved "https://registry.npm.taobao.org/base/download/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" - integrity sha1-e95c7RRbbVUakNuH+DxVi060io8= + resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== dependencies: cache-base "^1.0.1" class-utils "^0.3.5" @@ -1656,64 +1554,50 @@ base@^0.11.1: batch@0.6.1: version "0.6.1" - resolved "https://registry.npm.taobao.org/batch/download/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" + resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY= -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://registry.npm.taobao.org/bcrypt-pbkdf/download/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= - dependencies: - tweetnacl "^0.14.3" - big.js@^5.2.2: version "5.2.2" - resolved "https://registry.npm.taobao.org/big.js/download/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" - integrity sha1-ZfCvOC9Xi83HQr2cKB6cstd2gyg= + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== binary-extensions@^1.0.0: version "1.13.1" - resolved "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" - integrity sha1-WYr+VHVbKGilMw0q/51Ou1Mgm2U= + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" + integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== binary-extensions@^2.0.0: - version "2.1.0" - resolved "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-2.1.0.tgz#30fa40c9e7fe07dbc895678cd287024dea241dd9" - integrity sha1-MPpAyef+B9vIlWeM0ocCTeokHdk= + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== bindings@^1.5.0: version "1.5.0" - resolved "https://registry.npm.taobao.org/bindings/download/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" - integrity sha1-EDU8npRTNLwFEabZCzj7x8nFBN8= + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" + integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== dependencies: file-uri-to-path "1.0.0" -block-stream@*: - version "0.0.9" - resolved "https://registry.npm.taobao.org/block-stream/download/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" - integrity sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo= - dependencies: - inherits "~2.0.0" - bluebird@^3.5.5: version "3.7.2" - resolved "https://registry.npm.taobao.org/bluebird/download/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" - integrity sha1-nyKcFb4nJFT/qXOs4NvueaGww28= + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: version "4.12.0" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== -bn.js@^5.1.1: - version "5.1.2" - resolved "https://registry.npm.taobao.org/bn.js/download/bn.js-5.1.2.tgz#c9686902d3c9a27729f43ab10f9d79c2004da7b0" - integrity sha1-yWhpAtPJoncp9DqxD515wgBNp7A= +bn.js@^5.0.0, bn.js@^5.1.1: + version "5.2.0" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" + integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== body-parser@1.19.0: version "1.19.0" - resolved "https://registry.npm.taobao.org/body-parser/download/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" - integrity sha1-lrJwnlfJxOCab9Zqj9l5hE9p8Io= + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" + integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== dependencies: bytes "3.1.0" content-type "~1.0.4" @@ -1728,7 +1612,7 @@ body-parser@1.19.0: bonjour@^3.5.0: version "3.5.0" - resolved "https://registry.npm.taobao.org/bonjour/download/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" + resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" integrity sha1-jokKGD2O6aI5OzhExpGkK897yfU= dependencies: array-flatten "^2.1.0" @@ -1740,50 +1624,55 @@ bonjour@^3.5.0: boolbase@^1.0.0, boolbase@~1.0.0: version "1.0.0" - resolved "https://registry.npm.taobao.org/boolbase/download/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= bootstrap-colorpicker@^3.2.0: - version "3.2.0" - resolved "https://registry.npm.taobao.org/bootstrap-colorpicker/download/bootstrap-colorpicker-3.2.0.tgz#42b053b865a866b2674527813cd59f90137b9704" - integrity sha1-QrBTuGWoZrJnRSeBPNWfkBN7lwQ= + version "3.4.0" + resolved "https://registry.yarnpkg.com/bootstrap-colorpicker/-/bootstrap-colorpicker-3.4.0.tgz#3d1873071542755a9b31cf5b314f771e2fcc7727" + integrity sha512-7vA0hvLrat3ptobEKlT9+6amzBUJcDAoh6hJRQY/AD+5dVZYXXf1ivRfrTwmuwiVLJo9rZwM8YB4lYzp6agzqg== dependencies: bootstrap ">=4.0" - jquery ">=2.1.0" + jquery ">=2.2" popper.js ">=1.10" -bootstrap-slider@^10.6.2: - version "10.6.2" - resolved "https://registry.npm.taobao.org/bootstrap-slider/download/bootstrap-slider-10.6.2.tgz#7341f468c012bdaa6a1d8625d989fdeb8ed7dd38" - integrity sha1-c0H0aMASvapqHYYl2Yn9647X3Tg= +bootstrap-slider@^11.0.2: + version "11.0.2" + resolved "https://registry.yarnpkg.com/bootstrap-slider/-/bootstrap-slider-11.0.2.tgz#4b167c165f322339cc66f0c7166b5a39e289e251" + integrity sha512-CdwS+Z6X79OkLes9RfDgPB9UIY/+81wTkm6ktdSB6hdyiRbjJLFQIjZdnEr55tDyXZfgC7U6yeSXkNN9ZdGqjA== bootstrap-switch@3.3.4: version "3.3.4" - resolved "https://registry.npm.taobao.org/bootstrap-switch/download/bootstrap-switch-3.3.4.tgz#70e0aeb2a877c0dc766991de108e2170fc29a2ff" + resolved "https://registry.yarnpkg.com/bootstrap-switch/-/bootstrap-switch-3.3.4.tgz#70e0aeb2a877c0dc766991de108e2170fc29a2ff" integrity sha1-cOCusqh3wNx2aZHeEI4hcPwpov8= -bootstrap4-duallistbox@^4.0.1: +bootstrap4-duallistbox@^4.0.2: version "4.0.2" - resolved "https://registry.npm.taobao.org/bootstrap4-duallistbox/download/bootstrap4-duallistbox-4.0.2.tgz#c6942e34a39d0d05e436d51ebaf31c9349f119d3" - integrity sha1-xpQuNKOdDQXkNtUeuvMck0nxGdM= + resolved "https://registry.yarnpkg.com/bootstrap4-duallistbox/-/bootstrap4-duallistbox-4.0.2.tgz#c6942e34a39d0d05e436d51ebaf31c9349f119d3" + integrity sha512-vQdANVE2NN0HMaZO9qWJy0C7u04uTpAmtUGO3KLq3xAZKCboJweQ437hDTszI6pbYV2olJCGZMbdhvIkBNGeGQ== -bootstrap@>=4.0, bootstrap@>=4.1.2, bootstrap@^4.4.1: - version "4.5.0" - resolved "https://registry.npm.taobao.org/bootstrap/download/bootstrap-4.5.0.tgz#97d9dbcb5a8972f8722c9962483543b907d9b9ec" - integrity sha1-l9nby1qJcvhyLJliSDVDuQfZuew= +bootstrap@>=4.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-5.0.1.tgz#e7939d599119dc818a90478a2a299bdaff037e09" + integrity sha512-Fl79+wsLOZKoiU345KeEaWD0ik8WKRI5zm0YSPj2oF1Qr+BO7z0fco6GbUtqjoG1h4VI89PeKJnMsMMVQdKKTw== + +bootstrap@^4.5.2, bootstrap@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-4.6.0.tgz#97b9f29ac98f98dfa43bf7468262d84392552fd7" + integrity sha512-Io55IuQY3kydzHtbGvQya3H+KorS/M9rSNyfCGCg9WZ4pyT/lCxIlpJgG1GXW/PswzC84Tr2fBYi+7+jFVQQBw== brace-expansion@^1.1.7: version "1.1.11" - resolved "https://registry.npm.taobao.org/brace-expansion/download/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0= + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== dependencies: balanced-match "^1.0.0" concat-map "0.0.1" braces@^2.3.1, braces@^2.3.2: version "2.3.2" - resolved "https://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" - integrity sha1-WXn9PxTNUxVl5fot8av/8d+u5yk= + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== dependencies: arr-flatten "^1.1.0" array-unique "^0.3.2" @@ -1798,15 +1687,15 @@ braces@^2.3.1, braces@^2.3.2: braces@~3.0.2: version "3.0.2" - resolved "https://registry.npm.taobao.org/braces/download/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" - integrity sha1-NFThpGLujVmeI23zNs2epPiv4Qc= + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== dependencies: fill-range "^7.0.1" brfs@^2.0.0, brfs@^2.0.2: version "2.0.2" - resolved "https://registry.npm.taobao.org/brfs/download/brfs-2.0.2.tgz#44237878fa82aa479ce4f5fe2c1796ec69f07845" - integrity sha1-RCN4ePqCqkec5PX+LBeW7GnweEU= + resolved "https://registry.yarnpkg.com/brfs/-/brfs-2.0.2.tgz#44237878fa82aa479ce4f5fe2c1796ec69f07845" + integrity sha512-IrFjVtwu4eTJZyu8w/V2gxU7iLTtcHih67sgEdzrhjLBMHp2uYefUBfdM4k2UvcuWMgV7PQDZHSLeNWnLFKWVQ== dependencies: quote-stream "^1.0.1" resolve "^1.1.5" @@ -1820,22 +1709,22 @@ brorand@^1.0.1, brorand@^1.1.0: brotli@^1.2.0: version "1.3.2" - resolved "https://registry.npm.taobao.org/brotli/download/brotli-1.3.2.tgz#525a9cad4fcba96475d7d388f6aecb13eed52f46" + resolved "https://registry.yarnpkg.com/brotli/-/brotli-1.3.2.tgz#525a9cad4fcba96475d7d388f6aecb13eed52f46" integrity sha1-UlqcrU/LqWR119OI9q7LE+7VL0Y= dependencies: base64-js "^1.1.2" browser-resolve@^1.8.1: version "1.11.3" - resolved "https://registry.npm.taobao.org/browser-resolve/download/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" - integrity sha1-m3y7PQ9RDky4a9vXlhJNKLWJCvY= + resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" + integrity sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ== dependencies: resolve "1.1.7" browserify-aes@^1.0.0, browserify-aes@^1.0.4: version "1.2.0" - resolved "https://registry.npm.taobao.org/browserify-aes/download/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" - integrity sha1-Mmc0ZC9APavDADIJhTu3CtQo70g= + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== dependencies: buffer-xor "^1.0.3" cipher-base "^1.0.0" @@ -1846,8 +1735,8 @@ browserify-aes@^1.0.0, browserify-aes@^1.0.4: browserify-cipher@^1.0.0: version "1.0.1" - resolved "https://registry.npm.taobao.org/browserify-cipher/download/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" - integrity sha1-jWR0wbhwv9q807z8wZNKEOlPFfA= + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" + integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== dependencies: browserify-aes "^1.0.4" browserify-des "^1.0.0" @@ -1855,8 +1744,8 @@ browserify-cipher@^1.0.0: browserify-des@^1.0.0: version "1.0.2" - resolved "https://registry.npm.taobao.org/browserify-des/download/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" - integrity sha1-OvTx9Zg5QDVy8cZiBDdfen9wPpw= + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" + integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== dependencies: cipher-base "^1.0.1" des.js "^1.0.0" @@ -1865,7 +1754,7 @@ browserify-des@^1.0.0: browserify-optional@^1.0.0, browserify-optional@^1.0.1: version "1.0.1" - resolved "https://registry.npm.taobao.org/browserify-optional/download/browserify-optional-1.0.1.tgz#1e13722cfde0d85f121676c2a72ced533a018869" + resolved "https://registry.yarnpkg.com/browserify-optional/-/browserify-optional-1.0.1.tgz#1e13722cfde0d85f121676c2a72ced533a018869" integrity sha1-HhNyLP3g2F8SFnbCpyztUzoBiGk= dependencies: ast-transform "0.0.0" @@ -1873,23 +1762,23 @@ browserify-optional@^1.0.0, browserify-optional@^1.0.1: browser-resolve "^1.8.1" browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: - version "4.0.1" - resolved "https://registry.npm.taobao.org/browserify-rsa/download/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" - integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= + version "4.1.0" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" + integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== dependencies: - bn.js "^4.1.0" + bn.js "^5.0.0" randombytes "^2.0.1" browserify-sign@^4.0.0: - version "4.2.0" - resolved "https://registry.npm.taobao.org/browserify-sign/download/browserify-sign-4.2.0.tgz#545d0b1b07e6b2c99211082bf1b12cce7a0b0e11" - integrity sha1-VF0LGwfmssmSEQgr8bEsznoLDhE= + version "4.2.1" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" + integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== dependencies: bn.js "^5.1.1" browserify-rsa "^4.0.1" create-hash "^1.2.0" create-hmac "^1.1.7" - elliptic "^6.5.2" + elliptic "^6.5.3" inherits "^2.0.4" parse-asn1 "^5.1.5" readable-stream "^3.6.0" @@ -1897,12 +1786,12 @@ browserify-sign@^4.0.0: browserify-zlib@^0.2.0: version "0.2.0" - resolved "https://registry.npm.taobao.org/browserify-zlib/download/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" - integrity sha1-KGlFnZqjviRf6P4sofRuLn9U1z8= + resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" + integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== dependencies: pako "~1.0.5" -browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.6.4, browserslist@^4.8.5: +browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.16.6, browserslist@^4.6.4: version "4.16.6" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.6.tgz#d7901277a5a88e554ed305b183ec9b0c08f66fa2" integrity sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ== @@ -1915,33 +1804,38 @@ browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.6.4, browserslist@^4. bs-custom-file-input@^1.3.4: version "1.3.4" - resolved "https://registry.npm.taobao.org/bs-custom-file-input/download/bs-custom-file-input-1.3.4.tgz#c275cb8d4f1c02ba026324292509fa9a747dbda8" - integrity sha1-wnXLjU8cAroCYyQpJQn6mnR9vag= + resolved "https://registry.yarnpkg.com/bs-custom-file-input/-/bs-custom-file-input-1.3.4.tgz#c275cb8d4f1c02ba026324292509fa9a747dbda8" + integrity sha512-NBsQzTnef3OW1MvdKBbMHAYHssCd613MSeJV7z2McXznWtVMnJCy7Ckyc+PwxV6Pk16cu6YBcYWh/ZE0XWNKCA== + +bs-stepper@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/bs-stepper/-/bs-stepper-1.7.0.tgz#bfa4cc51c4e67957caae57f5bdcba1977186bac1" + integrity sha512-+DX7UKKgw2GI6ucsSCRd19VHYrxf/8znRCLs1lQVVLxz+h7EqgIOxoHcJ0/QTaaNoR9Cwg78ydo6hXIasyd3LA== buffer-equal@0.0.1: version "0.0.1" - resolved "https://registry.npm.taobao.org/buffer-equal/download/buffer-equal-0.0.1.tgz#91bc74b11ea405bc916bc6aa908faafa5b4aac4b" + resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-0.0.1.tgz#91bc74b11ea405bc916bc6aa908faafa5b4aac4b" integrity sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs= buffer-from@^1.0.0: version "1.1.1" - resolved "https://registry.npm.taobao.org/buffer-from/download/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" - integrity sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8= + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== buffer-indexof@^1.0.0: version "1.1.1" - resolved "https://registry.npm.taobao.org/buffer-indexof/download/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" - integrity sha1-Uvq8xqYG0aADAoAmSO9o9jnaJow= + resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" + integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== buffer-xor@^1.0.3: version "1.0.3" - resolved "https://registry.npm.taobao.org/buffer-xor/download/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= buffer@^4.3.0: version "4.9.2" - resolved "https://registry.npm.taobao.org/buffer/download/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" - integrity sha1-Iw6tNEACmIZEhBqwJEr4xEu+Pvg= + resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" + integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== dependencies: base64-js "^1.0.2" ieee754 "^1.1.4" @@ -1949,23 +1843,23 @@ buffer@^4.3.0: builtin-status-codes@^3.0.0: version "3.0.0" - resolved "https://registry.npm.taobao.org/builtin-status-codes/download/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" + resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= bytes@3.0.0: version "3.0.0" - resolved "https://registry.npm.taobao.org/bytes/download/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= bytes@3.1.0: version "3.1.0" - resolved "https://registry.npm.taobao.org/bytes/download/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" - integrity sha1-9s95M6Ng4FiPqf3oVlHNx/gF0fY= + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" + integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== cacache@^12.0.2: version "12.0.4" - resolved "https://registry.npm.taobao.org/cacache/download/cacache-12.0.4.tgz?cache=0&sync_timestamp=1594428006433&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacache%2Fdownload%2Fcacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" - integrity sha1-ZovL0QWutfHZL+JVcOyVJcj6pAw= + resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" + integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ== dependencies: bluebird "^3.5.5" chownr "^1.1.1" @@ -1984,9 +1878,9 @@ cacache@^12.0.2: y18n "^4.0.0" cacache@^15.0.5: - version "15.0.5" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.0.5.tgz#69162833da29170d6732334643c60e005f5f17d0" - integrity sha512-lloiL22n7sOjEEXdL8NAjTgv9a1u43xICE9/203qonkZUCj5X1UEWIdf2/Y0d6QcCtMzbKQyhrcDbdvlZTs/+A== + version "15.2.0" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.2.0.tgz#73af75f77c58e72d8c630a7a2858cb18ef523389" + integrity sha512-uKoJSHmnrqXgthDFx/IU6ED/5xd+NNGe+Bb+kLZy7Ku4P+BaiWEUflAKPZ7eAzsYGcsAGASJZsybXp+quEcHTw== dependencies: "@npmcli/move-file" "^1.0.1" chownr "^2.0.0" @@ -2002,14 +1896,14 @@ cacache@^15.0.5: p-map "^4.0.0" promise-inflight "^1.0.1" rimraf "^3.0.2" - ssri "^8.0.0" + ssri "^8.0.1" tar "^6.0.2" unique-filename "^1.1.1" cache-base@^1.0.1: version "1.0.1" - resolved "https://registry.npm.taobao.org/cache-base/download/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" - integrity sha1-Cn9GQWgxyLZi7jb+TnxZ129marI= + resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== dependencies: collection-visit "^1.0.0" component-emitter "^1.2.1" @@ -2021,120 +1915,114 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" +call-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + caller-callsite@^2.0.0: version "2.0.0" - resolved "https://registry.npm.taobao.org/caller-callsite/download/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" + resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= dependencies: callsites "^2.0.0" caller-path@^2.0.0: version "2.0.0" - resolved "https://registry.npm.taobao.org/caller-path/download/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" + resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= dependencies: caller-callsite "^2.0.0" callsites@^2.0.0: version "2.0.0" - resolved "https://registry.npm.taobao.org/callsites/download/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= callsites@^3.0.0: version "3.1.0" - resolved "https://registry.npm.taobao.org/callsites/download/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" - integrity sha1-s2MKvYlDQy9Us/BRkjjjPNffL3M= - -camelcase-keys@^2.0.0: - version "2.1.0" - resolved "https://registry.npm.taobao.org/camelcase-keys/download/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" - integrity sha1-MIvur/3ygRkFHvodkyITyRuPkuc= - dependencies: - camelcase "^2.0.0" - map-obj "^1.0.0" - -camelcase@^2.0.0: - version "2.1.1" - resolved "https://registry.npm.taobao.org/camelcase/download/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" - integrity sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8= + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== camelcase@^5.0.0, camelcase@^5.3.1: version "5.3.1" - resolved "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA= + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== caniuse-api@^3.0.0: version "3.0.0" - resolved "https://registry.npm.taobao.org/caniuse-api/download/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" - integrity sha1-Xk2Q4idJYdRikZl99Znj7QCO5MA= + resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" + integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== dependencies: browserslist "^4.0.0" caniuse-lite "^1.0.0" lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001097, caniuse-lite@^1.0.30001219: - version "1.0.30001230" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001230.tgz#8135c57459854b2240b57a4a6786044bdc5a9f71" - integrity sha512-5yBd5nWCBS+jWKTcHOzXwo5xzcj4ePE/yjtkZyUV1BTUmrBaA9MRGC+e7mxnqXSA90CmCA8L3eKLaSUkt099IQ== - -case-sensitive-paths-webpack-plugin@^2.3.0: - version "2.3.0" - resolved "https://registry.npm.taobao.org/case-sensitive-paths-webpack-plugin/download/case-sensitive-paths-webpack-plugin-2.3.0.tgz?cache=0&sync_timestamp=1579125374167&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcase-sensitive-paths-webpack-plugin%2Fdownload%2Fcase-sensitive-paths-webpack-plugin-2.3.0.tgz#23ac613cc9a856e4f88ff8bb73bbb5e989825cf7" - integrity sha1-I6xhPMmoVuT4j/i7c7u16YmCXPc= - -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.npm.taobao.org/caseless/download/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001219: + version "1.0.30001235" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001235.tgz#ad5ca75bc5a1f7b12df79ad806d715a43a5ac4ed" + integrity sha512-zWEwIVqnzPkSAXOUlQnPW2oKoYb2aLQ4Q5ejdjBcnH63rfypaW34CxaeBn1VMya2XaEU3P/R2qHpWyj+l0BT1A== -chalk@^1.1.1: - version "1.1.3" - resolved "https://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz?cache=0&sync_timestamp=1591687000046&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" +case-sensitive-paths-webpack-plugin@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz#db64066c6422eed2e08cc14b986ca43796dbc6d4" + integrity sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw== chalk@^2.0, chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" - resolved "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz?cache=0&sync_timestamp=1591687000046&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchalk%2Fdownload%2Fchalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ= + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== dependencies: ansi-styles "^3.2.1" escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chart.js@^2.9.3: - version "2.9.3" - resolved "https://registry.npm.taobao.org/chart.js/download/chart.js-2.9.3.tgz#ae3884114dafd381bc600f5b35a189138aac1ef7" - integrity sha1-rjiEEU2v04G8YA9bNaGJE4qsHvc= +chart.js@^2.9.4: + version "2.9.4" + resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-2.9.4.tgz#0827f9563faffb2dc5c06562f8eb10337d5b9684" + integrity sha512-B07aAzxcrikjAPyV+01j7BmOpxtQETxTSlQ26BEYJ+3iUkbNKaOJ/nDbT6JjyqYxseM0ON12COHYdU2cTIjC7A== dependencies: chartjs-color "^2.1.0" moment "^2.10.2" chartjs-color-string@^0.6.0: version "0.6.0" - resolved "https://registry.npm.taobao.org/chartjs-color-string/download/chartjs-color-string-0.6.0.tgz#1df096621c0e70720a64f4135ea171d051402f71" - integrity sha1-HfCWYhwOcHIKZPQTXqFx0FFAL3E= + resolved "https://registry.yarnpkg.com/chartjs-color-string/-/chartjs-color-string-0.6.0.tgz#1df096621c0e70720a64f4135ea171d051402f71" + integrity sha512-TIB5OKn1hPJvO7JcteW4WY/63v6KwEdt6udfnDE9iCAZgy+V4SrbSxoIbTw/xkUIapjEI4ExGtD0+6D3KyFd7A== dependencies: color-name "^1.0.0" chartjs-color@^2.1.0: version "2.4.1" - resolved "https://registry.npm.taobao.org/chartjs-color/download/chartjs-color-2.4.1.tgz#6118bba202fe1ea79dd7f7c0f9da93467296c3b0" - integrity sha1-YRi7ogL+Hqed1/fA+dqTRnKWw7A= + resolved "https://registry.yarnpkg.com/chartjs-color/-/chartjs-color-2.4.1.tgz#6118bba202fe1ea79dd7f7c0f9da93467296c3b0" + integrity sha512-haqOg1+Yebys/Ts/9bLo/BqUcONQOdr/hoEr2LLTRl6C5LXctUdHxsCYfvQVg5JIxITrfCNUDr4ntqmQk9+/0w== dependencies: chartjs-color-string "^0.6.0" color-convert "^1.9.3" +"chokidar@>=3.0.0 <4.0.0", chokidar@^3.4.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a" + integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== + dependencies: + anymatch "~3.1.1" + braces "~3.0.2" + glob-parent "~5.1.0" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.5.0" + optionalDependencies: + fsevents "~2.3.1" + chokidar@^2.1.8: version "2.1.8" - resolved "https://registry.npm.taobao.org/chokidar/download/chokidar-2.1.8.tgz?cache=0&sync_timestamp=1594866429503&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" - integrity sha1-gEs6e2qZNYw8XGHnHYco8EHP+Rc= + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" + integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== dependencies: anymatch "^2.0.0" async-each "^1.0.1" @@ -2150,25 +2038,10 @@ chokidar@^2.1.8: optionalDependencies: fsevents "^1.2.7" -chokidar@^3.4.1: - version "3.4.2" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.4.2.tgz#38dc8e658dec3809741eb3ef7bb0a47fe424232d" - integrity sha512-IZHaDeBeI+sZJRX7lGcXsdzgvZqKv6sECqsbErJA4mHWfpRrD8B97kSFN4cQz6nGBGiuFia1MKR4d6c1o8Cv7A== - dependencies: - anymatch "~3.1.1" - braces "~3.0.2" - glob-parent "~5.1.0" - is-binary-path "~2.1.0" - is-glob "~4.0.1" - normalize-path "~3.0.0" - readdirp "~3.4.0" - optionalDependencies: - fsevents "~2.1.2" - chownr@^1.1.1: version "1.1.4" - resolved "https://registry.npm.taobao.org/chownr/download/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" - integrity sha1-b8nXtC0ypYNZYzdmbn0ICE2izGs= + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== chownr@^2.0.0: version "2.0.0" @@ -2176,24 +2049,22 @@ chownr@^2.0.0: integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== chrome-trace-event@^1.0.2: - version "1.0.2" - resolved "https://registry.npm.taobao.org/chrome-trace-event/download/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" - integrity sha1-I0CQ7pfH1K0aLEvq4nUF3v/GCKQ= - dependencies: - tslib "^1.9.0" + version "1.0.3" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" + integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" - resolved "https://registry.npm.taobao.org/cipher-base/download/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" - integrity sha1-h2Dk7MJy9MNjUy+SbYdKriwTl94= + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== dependencies: inherits "^2.0.1" safe-buffer "^5.0.1" class-utils@^0.3.5: version "0.3.6" - resolved "https://registry.npm.taobao.org/class-utils/download/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" - integrity sha1-+TNprouafOAv1B+q0MqDAzGQxGM= + resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== dependencies: arr-union "^3.1.0" define-property "^0.2.5" @@ -2202,8 +2073,8 @@ class-utils@^0.3.5: clean-stack@^2.0.0: version "2.2.0" - resolved "https://registry.npm.taobao.org/clean-stack/download/clean-stack-2.2.0.tgz?cache=0&sync_timestamp=1592035220754&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fclean-stack%2Fdownload%2Fclean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" - integrity sha1-7oRy27Ep5yezHooQpCfe6d/kAIs= + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== clipboard@^2.0.8: version "2.0.8" @@ -2216,44 +2087,35 @@ clipboard@^2.0.8: cliui@^5.0.0: version "5.0.0" - resolved "https://registry.npm.taobao.org/cliui/download/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" - integrity sha1-3u/P2y6AB4SqNPRvoI4GhRx7u8U= + resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" + integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== dependencies: string-width "^3.1.0" strip-ansi "^5.2.0" wrap-ansi "^5.1.0" -clone-deep@^4.0.1: - version "4.0.1" - resolved "https://registry.npm.taobao.org/clone-deep/download/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" - integrity sha1-wZ/Zvbv4WUK0/ZechNz31fB8I4c= - dependencies: - is-plain-object "^2.0.4" - kind-of "^6.0.2" - shallow-clone "^3.0.0" - clone@^1.0.4: version "1.0.4" - resolved "https://registry.npm.taobao.org/clone/download/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= coa@^2.0.2: version "2.0.2" - resolved "https://registry.npm.taobao.org/coa/download/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" - integrity sha1-Q/bCEVG07yv1cYfbDXPeIp4+fsM= + resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" + integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== dependencies: "@types/q" "^1.5.1" chalk "^2.4.1" q "^1.1.2" -code-point-at@^1.0.0: - version "1.1.0" - resolved "https://registry.npm.taobao.org/code-point-at/download/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" - integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= +codemirror@^5.60.0: + version "5.61.1" + resolved "https://registry.yarnpkg.com/codemirror/-/codemirror-5.61.1.tgz#ccfc8a43b8fcfb8b12e8e75b5ffde48d541406e0" + integrity sha512-+D1NZjAucuzE93vJGbAaXzvoBHwp9nJZWWWF9utjv25+5AZUiah6CIlfb4ikG4MoDsFsCG8niiJH5++OO2LgIQ== collection-visit@^1.0.0: version "1.0.0" - resolved "https://registry.npm.taobao.org/collection-visit/download/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= dependencies: map-visit "^1.0.0" @@ -2261,72 +2123,65 @@ collection-visit@^1.0.0: color-convert@^1.9.0, color-convert@^1.9.1, color-convert@^1.9.3: version "1.9.3" - resolved "https://registry.npm.taobao.org/color-convert/download/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg= + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== dependencies: color-name "1.1.3" color-name@1.1.3: version "1.1.3" - resolved "https://registry.npm.taobao.org/color-name/download/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= color-name@^1.0.0: version "1.1.4" - resolved "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha1-wqCah6y95pVD3m9j+jmVyCbFNqI= + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -color-string@^1.5.2: - version "1.5.3" - resolved "https://registry.npm.taobao.org/color-string/download/color-string-1.5.3.tgz#c9bbc5f01b58b5492f3d6857459cb6590ce204cc" - integrity sha1-ybvF8BtYtUkvPWhXRZy2WQziBMw= +color-string@^1.5.4: + version "1.5.5" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.5.tgz#65474a8f0e7439625f3d27a6a19d89fc45223014" + integrity sha512-jgIoum0OfQfq9Whcfc2z/VhCNcmQjWbey6qBX0vqt7YICflUmBCh9E9CiQD5GSJ+Uehixm3NUwHVhqUAWRivZg== dependencies: color-name "^1.0.0" simple-swizzle "^0.2.2" color@^3.0.0: - version "3.1.2" - resolved "https://registry.npm.taobao.org/color/download/color-3.1.2.tgz#68148e7f85d41ad7649c5fa8c8106f098d229e10" - integrity sha1-aBSOf4XUGtdknF+oyBBvCY0inhA= + version "3.1.3" + resolved "https://registry.yarnpkg.com/color/-/color-3.1.3.tgz#ca67fb4e7b97d611dcde39eceed422067d91596e" + integrity sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ== dependencies: color-convert "^1.9.1" - color-string "^1.5.2" + color-string "^1.5.4" -colorette@^1.2.0, colorette@^1.2.2: +colorette@^1.2.1, colorette@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== -combined-stream@^1.0.6, combined-stream@~1.0.6: - version "1.0.8" - resolved "https://registry.npm.taobao.org/combined-stream/download/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha1-w9RaizT9cwYxoRCoolIGgrMdWn8= - dependencies: - delayed-stream "~1.0.0" - commander@^2.20.0: version "2.20.3" - resolved "https://registry.npm.taobao.org/commander/download/commander-2.20.3.tgz?cache=0&sync_timestamp=1592632028697&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha1-/UhehMA+tIgcIHIrpIA16FMa6zM= + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== commondir@^1.0.1: version "1.0.1" - resolved "https://registry.npm.taobao.org/commondir/download/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= component-emitter@^1.2.1: version "1.3.0" - resolved "https://registry.npm.taobao.org/component-emitter/download/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" - integrity sha1-FuQHD7qK4ptnnyIVhT7hgasuq8A= + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" + integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== compressible@~2.0.16: version "2.0.18" - resolved "https://registry.npm.taobao.org/compressible/download/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" - integrity sha1-r1PMprBw1MPAdQ+9dyhqbXzEb7o= + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" + integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== dependencies: mime-db ">= 1.43.0 < 2" -compression-webpack-plugin@^4.0.0: +compression-webpack-plugin@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/compression-webpack-plugin/-/compression-webpack-plugin-4.0.1.tgz#33eda97f1170dd38c5556771de10f34245aa0274" integrity sha512-0mg6PgwTsUe5LEcUrOu3ob32vraDx2VdbMGAT1PARcOV+UJWDYZFdkSo6RbHoGQ061mmmkC7XpRKOlvwm/gzJQ== @@ -2339,8 +2194,8 @@ compression-webpack-plugin@^4.0.0: compression@^1.7.4: version "1.7.4" - resolved "https://registry.npm.taobao.org/compression/download/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" - integrity sha1-lVI+/xcMpXwpoMpB5v4TH0Hlu48= + resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" + integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== dependencies: accepts "~1.3.5" bytes "3.0.0" @@ -2352,13 +2207,13 @@ compression@^1.7.4: concat-map@0.0.1: version "0.0.1" - resolved "https://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= concat-stream@^1.5.0, concat-stream@~1.6.0: version "1.6.2" - resolved "https://registry.npm.taobao.org/concat-stream/download/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - integrity sha1-kEvfGUzTEi/Gdcd/xKw9T/D9GjQ= + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== dependencies: buffer-from "^1.0.0" inherits "^2.0.3" @@ -2367,57 +2222,52 @@ concat-stream@^1.5.0, concat-stream@~1.6.0: connect-history-api-fallback@^1.6.0: version "1.6.0" - resolved "https://registry.npm.taobao.org/connect-history-api-fallback/download/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" - integrity sha1-izIIk1kwjRERFdgcrT/Oq4iPl7w= + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" + integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== console-browserify@^1.1.0: version "1.2.0" - resolved "https://registry.npm.taobao.org/console-browserify/download/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" - integrity sha1-ZwY871fOts9Jk6KrOlWECujEkzY= - -console-control-strings@^1.0.0, console-control-strings@~1.1.0: - version "1.1.0" - resolved "https://registry.npm.taobao.org/console-control-strings/download/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" - integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= + resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" + integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== constants-browserify@^1.0.0: version "1.0.0" - resolved "https://registry.npm.taobao.org/constants-browserify/download/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= content-disposition@0.5.3: version "0.5.3" - resolved "https://registry.npm.taobao.org/content-disposition/download/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" - integrity sha1-4TDK9+cnkIfFYWwgB9BIVpiYT70= + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" + integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== dependencies: safe-buffer "5.1.2" content-type@~1.0.4: version "1.0.4" - resolved "https://registry.npm.taobao.org/content-type/download/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - integrity sha1-4TjMdeBAxyexlm/l5fjJruJW/js= + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== convert-source-map@^1.5.1, convert-source-map@^1.7.0: version "1.7.0" - resolved "https://registry.npm.taobao.org/convert-source-map/download/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" - integrity sha1-F6LLiC1/d9NJBYXizmxSRCSjpEI= + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" + integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== dependencies: safe-buffer "~5.1.1" cookie-signature@1.0.6: version "1.0.6" - resolved "https://registry.npm.taobao.org/cookie-signature/download/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= cookie@0.4.0: version "0.4.0" - resolved "https://registry.npm.taobao.org/cookie/download/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" - integrity sha1-vrQ35wIrO21JAZ0IhmUwPr6cFLo= + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" + integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== copy-concurrently@^1.0.0: version "1.0.5" - resolved "https://registry.npm.taobao.org/copy-concurrently/download/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" - integrity sha1-kilzmMrjSTf8r9bsgTnBgFHwteA= + resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" + integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== dependencies: aproba "^1.1.1" fs-write-stream-atomic "^1.0.8" @@ -2428,36 +2278,36 @@ copy-concurrently@^1.0.0: copy-descriptor@^0.1.0: version "0.1.1" - resolved "https://registry.npm.taobao.org/copy-descriptor/download/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= -core-js-compat@^3.6.2: - version "3.6.5" - resolved "https://registry.npm.taobao.org/core-js-compat/download/core-js-compat-3.6.5.tgz#2a51d9a4e25dfd6e690251aa81f99e3c05481f1c" - integrity sha1-KlHZpOJd/W5pAlGqgfmePAVIHxw= +core-js-compat@^3.9.0, core-js-compat@^3.9.1: + version "3.14.0" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.14.0.tgz#b574dabf29184681d5b16357bd33d104df3d29a5" + integrity sha512-R4NS2eupxtiJU+VwgkF9WTpnSfZW4pogwKHd8bclWU2sp93Pr5S1uYJI84cMOubJRou7bcfL0vmwtLslWN5p3A== dependencies: - browserslist "^4.8.5" + browserslist "^4.16.6" semver "7.0.0" core-js@^2.4.0: - version "2.6.11" - resolved "https://registry.npm.taobao.org/core-js/download/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" - integrity sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw= + version "2.6.12" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" + integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== -core-js@^3.6.5: - version "3.6.5" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.6.5.tgz#7395dc273af37fb2e50e9bd3d9fe841285231d1a" - integrity sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA== +core-js@^3.12.1: + version "3.14.0" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.14.0.tgz#62322b98c71cc2018b027971a69419e2425c2a6c" + integrity sha512-3s+ed8er9ahK+zJpp9ZtuVcDoFzHNiZsPbNAAE4KXgrRHbjSqqNN6xGSXq6bq7TZIbKj4NLrLb6bJ5i+vSVjHA== -core-util-is@1.0.2, core-util-is@~1.0.0: +core-util-is@~1.0.0: version "1.0.2" - resolved "https://registry.npm.taobao.org/core-util-is/download/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= cosmiconfig@^5.0.0: version "5.2.1" - resolved "https://registry.npm.taobao.org/cosmiconfig/download/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" - integrity sha1-BA9yaAnFked6F8CjYmykW08Wixo= + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" + integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== dependencies: import-fresh "^2.0.0" is-directory "^0.3.1" @@ -2466,8 +2316,8 @@ cosmiconfig@^5.0.0: cosmiconfig@^6.0.0: version "6.0.0" - resolved "https://registry.npm.taobao.org/cosmiconfig/download/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" - integrity sha1-2k/uhTxS9rHmk19BwaL8UL1KmYI= + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" + integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg== dependencies: "@types/parse-json" "^4.0.0" import-fresh "^3.1.0" @@ -2476,17 +2326,17 @@ cosmiconfig@^6.0.0: yaml "^1.7.2" create-ecdh@^4.0.0: - version "4.0.3" - resolved "https://registry.npm.taobao.org/create-ecdh/download/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" - integrity sha1-yREbbzMEXEaX8UR4f5JUzcd8Rf8= + version "4.0.4" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" + integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== dependencies: bn.js "^4.1.0" - elliptic "^6.0.0" + elliptic "^6.5.3" create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: version "1.2.0" - resolved "https://registry.npm.taobao.org/create-hash/download/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" - integrity sha1-iJB4rxGmN1a8+1m9IhmWvjqe8ZY= + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== dependencies: cipher-base "^1.0.1" inherits "^2.0.1" @@ -2496,8 +2346,8 @@ create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: version "1.1.7" - resolved "https://registry.npm.taobao.org/create-hmac/download/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" - integrity sha1-aRcMeLOrlXFHsriwRXLkfq0iQ/8= + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== dependencies: cipher-base "^1.0.3" create-hash "^1.1.0" @@ -2506,18 +2356,10 @@ create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: safe-buffer "^5.0.1" sha.js "^2.4.8" -cross-spawn@^3.0.0: - version "3.0.1" - resolved "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-3.0.1.tgz#1256037ecb9f0c5f79e3d6ef135e30770184b982" - integrity sha1-ElYDfsufDF9549bvE14wdwGEuYI= - dependencies: - lru-cache "^4.0.1" - which "^1.2.9" - cross-spawn@^6.0.0, cross-spawn@^6.0.5: version "6.0.5" - resolved "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - integrity sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q= + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== dependencies: nice-try "^1.0.4" path-key "^2.0.1" @@ -2527,8 +2369,8 @@ cross-spawn@^6.0.0, cross-spawn@^6.0.5: crypto-browserify@^3.11.0: version "3.12.0" - resolved "https://registry.npm.taobao.org/crypto-browserify/download/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" - integrity sha1-OWz58xN/A+S45TLFj2mCVOAPgOw= + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" + integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== dependencies: browserify-cipher "^1.0.0" browserify-sign "^4.0.0" @@ -2542,40 +2384,40 @@ crypto-browserify@^3.11.0: randombytes "^2.0.0" randomfill "^1.0.3" -crypto-js@^3.1.9-1: +crypto-js@^3.3.0: version "3.3.0" - resolved "https://registry.npm.taobao.org/crypto-js/download/crypto-js-3.3.0.tgz?cache=0&sync_timestamp=1581509173139&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcrypto-js%2Fdownload%2Fcrypto-js-3.3.0.tgz#846dd1cce2f68aacfa156c8578f926a609b7976b" - integrity sha1-hG3RzOL2iqz6FWyFePkmpgm3l2s= + resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-3.3.0.tgz#846dd1cce2f68aacfa156c8578f926a609b7976b" + integrity sha512-DIT51nX0dCfKltpRiXV+/TVZq+Qq2NgF4644+K7Ttnla7zEzqc+kjJyiB96BHNyUTBxyjzRcZYpUdZa+QAqi6Q== css-blank-pseudo@^0.1.4: version "0.1.4" - resolved "https://registry.npm.taobao.org/css-blank-pseudo/download/css-blank-pseudo-0.1.4.tgz#dfdefd3254bf8a82027993674ccf35483bfcb3c5" - integrity sha1-3979MlS/ioICeZNnTM81SDv8s8U= + resolved "https://registry.yarnpkg.com/css-blank-pseudo/-/css-blank-pseudo-0.1.4.tgz#dfdefd3254bf8a82027993674ccf35483bfcb3c5" + integrity sha512-LHz35Hr83dnFeipc7oqFDmsjHdljj3TQtxGGiNWSOsTLIAubSm4TEz8qCaKFpk7idaQ1GfWscF4E6mgpBysA1w== dependencies: postcss "^7.0.5" css-color-names@0.0.4, css-color-names@^0.0.4: version "0.0.4" - resolved "https://registry.npm.taobao.org/css-color-names/download/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" + resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= css-declaration-sorter@^4.0.1: version "4.0.1" - resolved "https://registry.npm.taobao.org/css-declaration-sorter/download/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22" - integrity sha1-wZiUD2OnbX42wecQGLABchBUyyI= + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22" + integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA== dependencies: postcss "^7.0.1" timsort "^0.3.0" css-has-pseudo@^0.10.0: version "0.10.0" - resolved "https://registry.npm.taobao.org/css-has-pseudo/download/css-has-pseudo-0.10.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-has-pseudo%2Fdownload%2Fcss-has-pseudo-0.10.0.tgz#3c642ab34ca242c59c41a125df9105841f6966ee" - integrity sha1-PGQqs0yiQsWcQaEl35EFhB9pZu4= + resolved "https://registry.yarnpkg.com/css-has-pseudo/-/css-has-pseudo-0.10.0.tgz#3c642ab34ca242c59c41a125df9105841f6966ee" + integrity sha512-Z8hnfsZu4o/kt+AuFzeGpLVhFOGO9mluyHBaA2bA8aCGTwah5sT3WV/fTHH8UNZUytOIImuGPrl/prlb4oX4qQ== dependencies: postcss "^7.0.6" postcss-selector-parser "^5.0.0-rc.4" -css-loader@^3.5.3: +css-loader@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-3.6.0.tgz#2e4b2c7e6e2d27f8c8f28f61bffcd2e6c91ef645" integrity sha512-M5lSukoWi1If8dhQAUCvj4H8vUt3vOnwbQBH9DdTm/s4Ym2B/3dPMtYZeJmq7Q3S3Pa+I94DcZ7pc9bP14cWIQ== @@ -2596,20 +2438,20 @@ css-loader@^3.5.3: css-prefers-color-scheme@^3.1.1: version "3.1.1" - resolved "https://registry.npm.taobao.org/css-prefers-color-scheme/download/css-prefers-color-scheme-3.1.1.tgz#6f830a2714199d4f0d0d0bb8a27916ed65cff1f4" - integrity sha1-b4MKJxQZnU8NDQu4onkW7WXP8fQ= + resolved "https://registry.yarnpkg.com/css-prefers-color-scheme/-/css-prefers-color-scheme-3.1.1.tgz#6f830a2714199d4f0d0d0bb8a27916ed65cff1f4" + integrity sha512-MTu6+tMs9S3EUqzmqLXEcgNRbNkkD/TGFvowpeoWJn5Vfq7FMgsmRQs9X5NXAURiOBmOxm/lLjsDNXDE6k9bhg== dependencies: postcss "^7.0.5" css-select-base-adapter@^0.1.1: version "0.1.1" - resolved "https://registry.npm.taobao.org/css-select-base-adapter/download/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" - integrity sha1-Oy/0lyzDYquIVhUHqVQIoUMhNdc= + resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" + integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== css-select@^2.0.0: version "2.1.0" - resolved "https://registry.npm.taobao.org/css-select/download/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" - integrity sha1-ajRlM1ZjWTSoG6ymjQJVQyEF2+8= + resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" + integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== dependencies: boolbase "^1.0.0" css-what "^3.2.1" @@ -2618,44 +2460,44 @@ css-select@^2.0.0: css-tree@1.0.0-alpha.37: version "1.0.0-alpha.37" - resolved "https://registry.npm.taobao.org/css-tree/download/css-tree-1.0.0-alpha.37.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-tree%2Fdownload%2Fcss-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" - integrity sha1-mL69YsTB2flg7DQM+fdSLjBwmiI= + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" + integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg== dependencies: mdn-data "2.0.4" source-map "^0.6.1" -css-tree@1.0.0-alpha.39: - version "1.0.0-alpha.39" - resolved "https://registry.npm.taobao.org/css-tree/download/css-tree-1.0.0-alpha.39.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-tree%2Fdownload%2Fcss-tree-1.0.0-alpha.39.tgz#2bff3ffe1bb3f776cf7eefd91ee5cba77a149eeb" - integrity sha1-K/8//huz93bPfu/ZHuXLp3oUnus= +css-tree@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" + integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== dependencies: - mdn-data "2.0.6" + mdn-data "2.0.14" source-map "^0.6.1" css-what@^3.2.1: - version "3.3.0" - resolved "https://registry.npm.taobao.org/css-what/download/css-what-3.3.0.tgz#10fec696a9ece2e591ac772d759aacabac38cd39" - integrity sha1-EP7Glqns4uWRrHctdZqsq6w4zTk= + version "3.4.2" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" + integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== cssdb@^4.4.0: version "4.4.0" - resolved "https://registry.npm.taobao.org/cssdb/download/cssdb-4.4.0.tgz#3bf2f2a68c10f5c6a08abd92378331ee803cddb0" - integrity sha1-O/LypowQ9cagir2SN4Mx7oA83bA= + resolved "https://registry.yarnpkg.com/cssdb/-/cssdb-4.4.0.tgz#3bf2f2a68c10f5c6a08abd92378331ee803cddb0" + integrity sha512-LsTAR1JPEM9TpGhl/0p3nQecC2LJ0kD8X5YARu1hk/9I1gril5vDtMZyNxcEpxxDj34YNck/ucjuoUd66K03oQ== cssesc@^2.0.0: version "2.0.0" - resolved "https://registry.npm.taobao.org/cssesc/download/cssesc-2.0.0.tgz#3b13bd1bb1cb36e1bcb5a4dcd27f54c5dcb35703" - integrity sha1-OxO9G7HLNuG8taTc0n9UxdyzVwM= + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-2.0.0.tgz#3b13bd1bb1cb36e1bcb5a4dcd27f54c5dcb35703" + integrity sha512-MsCAG1z9lPdoO/IUMLSBWBSVxVtJ1395VGIQ+Fc2gNdkQ1hNDnQdw3YhA71WJCBW1vdwA0cAnk/DnW6bqoEUYg== cssesc@^3.0.0: version "3.0.0" - resolved "https://registry.npm.taobao.org/cssesc/download/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" - integrity sha1-N3QZGZA7hoVl4cCep0dEXNGJg+4= + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== -cssnano-preset-default@^4.0.7: - version "4.0.7" - resolved "https://registry.npm.taobao.org/cssnano-preset-default/download/cssnano-preset-default-4.0.7.tgz#51ec662ccfca0f88b396dcd9679cdb931be17f76" - integrity sha1-UexmLM/KD4izltzZZ5zbkxvhf3Y= +cssnano-preset-default@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.8.tgz#920622b1fc1e95a34e8838203f1397a504f2d3ff" + integrity sha512-LdAyHuq+VRyeVREFmuxUZR1TXjQm8QQU/ktoo/x7bz+SdOge1YKc5eMN6pRW7YWBmyq59CqYba1dJ5cUukEjLQ== dependencies: css-declaration-sorter "^4.0.1" cssnano-util-raw-cache "^4.0.1" @@ -2685,294 +2527,314 @@ cssnano-preset-default@^4.0.7: postcss-ordered-values "^4.1.2" postcss-reduce-initial "^4.0.3" postcss-reduce-transforms "^4.0.2" - postcss-svgo "^4.0.2" + postcss-svgo "^4.0.3" postcss-unique-selectors "^4.0.1" cssnano-util-get-arguments@^4.0.0: version "4.0.0" - resolved "https://registry.npm.taobao.org/cssnano-util-get-arguments/download/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" + resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" integrity sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8= cssnano-util-get-match@^4.0.0: version "4.0.0" - resolved "https://registry.npm.taobao.org/cssnano-util-get-match/download/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" + resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" integrity sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0= cssnano-util-raw-cache@^4.0.1: version "4.0.1" - resolved "https://registry.npm.taobao.org/cssnano-util-raw-cache/download/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282" - integrity sha1-sm1f1fcqEd/np4RvtMZyYPlr8oI= + resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282" + integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA== dependencies: postcss "^7.0.0" cssnano-util-same-parent@^4.0.0: version "4.0.1" - resolved "https://registry.npm.taobao.org/cssnano-util-same-parent/download/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" - integrity sha1-V0CC+yhZ0ttDOFWDXZqEVuoYu/M= + resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" + integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== cssnano@^4.1.10: - version "4.1.10" - resolved "https://registry.npm.taobao.org/cssnano/download/cssnano-4.1.10.tgz#0ac41f0b13d13d465487e111b778d42da631b8b2" - integrity sha1-CsQfCxPRPUZUh+ERt3jULaYxuLI= + version "4.1.11" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.11.tgz#c7b5f5b81da269cb1fd982cb960c1200910c9a99" + integrity sha512-6gZm2htn7xIPJOHY824ERgj8cNPgPxyCSnkXc4v7YvNW+TdVfzgngHcEhy/8D11kUWRUMbke+tC+AUcUsnMz2g== dependencies: cosmiconfig "^5.0.0" - cssnano-preset-default "^4.0.7" + cssnano-preset-default "^4.0.8" is-resolvable "^1.0.0" postcss "^7.0.0" csso@^4.0.2: - version "4.0.3" - resolved "https://registry.npm.taobao.org/csso/download/csso-4.0.3.tgz#0d9985dc852c7cc2b2cacfbbe1079014d1a8e903" - integrity sha1-DZmF3IUsfMKyys+74QeQFNGo6QM= - dependencies: - css-tree "1.0.0-alpha.39" - -currently-unhandled@^0.4.1: - version "0.4.1" - resolved "https://registry.npm.taobao.org/currently-unhandled/download/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" - integrity sha1-mI3zP+qxke95mmE2nddsF635V+o= + version "4.2.0" + resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" + integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== dependencies: - array-find-index "^1.0.1" + css-tree "^1.1.2" cyclist@^1.0.1: version "1.0.1" - resolved "https://registry.npm.taobao.org/cyclist/download/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" + resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= d@1, d@^1.0.1: version "1.0.1" - resolved "https://registry.npm.taobao.org/d/download/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" - integrity sha1-hpgJU3LVjb7jRv/Qxwk/mfj561o= + resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" + integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== dependencies: es5-ext "^0.10.50" type "^1.0.1" dash-ast@^1.0.0: version "1.0.0" - resolved "https://registry.npm.taobao.org/dash-ast/download/dash-ast-1.0.0.tgz#12029ba5fb2f8aa6f0a861795b23c1b4b6c27d37" - integrity sha1-EgKbpfsviqbwqGF5WyPBtLbCfTc= + resolved "https://registry.yarnpkg.com/dash-ast/-/dash-ast-1.0.0.tgz#12029ba5fb2f8aa6f0a861795b23c1b4b6c27d37" + integrity sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA== -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.npm.taobao.org/dashdash/download/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= +datatables.net-autofill-bs4@^2.3.5: + version "2.3.7" + resolved "https://registry.yarnpkg.com/datatables.net-autofill-bs4/-/datatables.net-autofill-bs4-2.3.7.tgz#2cb97427e88fe54c87120f464139150b7a47014f" + integrity sha512-n1SEGJNQYSzgGdOZkFA7yvvMfejKfkeRe4APfwG/SWl225T6XRg29Rk+Pj2j2FtbVdIK/Cpt5jx35Sbt15cCQw== + dependencies: + datatables.net-autofill "2.3.7" + datatables.net-bs4 "^1.10.15" + jquery ">=1.7" + +datatables.net-autofill@2.3.7: + version "2.3.7" + resolved "https://registry.yarnpkg.com/datatables.net-autofill/-/datatables.net-autofill-2.3.7.tgz#058d5c504698801747ffead002807ef9fa6e20c6" + integrity sha512-zDgJzTl4V16+0djfD4iokO/8X6zYIALW/zW+wZecoYpiil3hwjGZLZNVsqGrTs/8Cxg84G/Ra4WpBZI8sJiM5Q== dependencies: - assert-plus "^1.0.0" + datatables.net "^1.10.15" + jquery ">=1.7" + +datatables.net-bs4@^1.10.15, datatables.net-bs4@^1.10.24: + version "1.10.25" + resolved "https://registry.yarnpkg.com/datatables.net-bs4/-/datatables.net-bs4-1.10.25.tgz#4474d6738bf55a25d20da79afe18e1e654cfca42" + integrity sha512-leoiWJWxoPKHBNC9dkFRE84PRybQcAI2Aw4UiS5zisROcYRx8YG1uQOTtID4jbqakmbwwXap/c2eH+sdVP5t2w== + dependencies: + datatables.net "1.10.25" + jquery ">=1.7" -datatables.net-autofill-bs4@^2.3.4: - version "2.3.5" - resolved "https://registry.npm.taobao.org/datatables.net-autofill-bs4/download/datatables.net-autofill-bs4-2.3.5.tgz#7f9085c821372b605b6fb2103a5baffa3bf2d594" - integrity sha1-f5CFyCE3K2Bbb7IQOluv+jvy1ZQ= +datatables.net-buttons-bs4@^1.7.0: + version "1.7.1" + resolved "https://registry.yarnpkg.com/datatables.net-buttons-bs4/-/datatables.net-buttons-bs4-1.7.1.tgz#d2fdef1f1b4073129d42806d24b8f037e9bd473b" + integrity sha512-s+fwsgAAWp7mOKwuztPH06kaw2JNAJ71VNTw/TqGQTL6BK9FshweDKZSRIB/ePcc/Psiy8fhNEj3XHxx4OO6BA== dependencies: - datatables.net-autofill "2.3.5" datatables.net-bs4 "^1.10.15" + datatables.net-buttons "1.7.1" jquery ">=1.7" -datatables.net-autofill@2.3.5: - version "2.3.5" - resolved "https://registry.npm.taobao.org/datatables.net-autofill/download/datatables.net-autofill-2.3.5.tgz#06df5242459a24d87d66bb322783a702cd46f16c" - integrity sha1-Bt9SQkWaJNh9ZrsyJ4OnAs1G8Ww= +datatables.net-buttons@1.7.1: + version "1.7.1" + resolved "https://registry.yarnpkg.com/datatables.net-buttons/-/datatables.net-buttons-1.7.1.tgz#b701bda4bf4dd76ebc9238251c62d13c18b2bb34" + integrity sha512-D2OxZeR18jhSx+l0xcfAJzfUH7l3LHCu0e606fV7+v3hMhphOfljjZYLaiRmGiR9lqO/f5xE/w2a+OtG/QMavw== dependencies: datatables.net "^1.10.15" jquery ">=1.7" -datatables.net-bs4@^1.10.15, datatables.net-bs4@^1.10.20: - version "1.10.21" - resolved "https://registry.npm.taobao.org/datatables.net-bs4/download/datatables.net-bs4-1.10.21.tgz#7a9ae489ebbd815cd869292450d284edd0f44697" - integrity sha1-eprkieu9gVzYaSkkUNKE7dD0Rpc= +datatables.net-colreorder-bs4@^1.5.3: + version "1.5.4" + resolved "https://registry.yarnpkg.com/datatables.net-colreorder-bs4/-/datatables.net-colreorder-bs4-1.5.4.tgz#9fbdb86462e36bd508b0aa8a610db7b416a44cc8" + integrity sha512-k4qDgJTyN2pkhtuFIWSaGMT1EmC6e++CYzVz2CwZjnrOcK5pCnCSX8tN2ZCx5KAf9bvMAxDeHTSY1Uvl++MPTA== + dependencies: + datatables.net-bs4 "^1.10.15" + datatables.net-colreorder "1.5.4" + jquery ">=1.7" + +datatables.net-colreorder@1.5.4: + version "1.5.4" + resolved "https://registry.yarnpkg.com/datatables.net-colreorder/-/datatables.net-colreorder-1.5.4.tgz#60f9a937c46bbc77c4fd1c909d746238daa0c1d2" + integrity sha512-Y9J2DvjBiFw/ADRce7aSaWhLN9yea9ZxK5FA8MDoLmMXtAR7AnKoe0XoTXAPD5aoHCUMiQKEt91qU7CT05KhEg== dependencies: - datatables.net "1.10.21" + datatables.net "^1.10.15" jquery ">=1.7" -datatables.net-buttons-bs4@^1.6.1: - version "1.6.2" - resolved "https://registry.npm.taobao.org/datatables.net-buttons-bs4/download/datatables.net-buttons-bs4-1.6.2.tgz#234882e3ad345f358bce100768c2351a6dcee097" - integrity sha1-I0iC4600XzWLzhAHaMI1Gm3O4Jc= +datatables.net-fixedcolumns-bs4@^3.3.2: + version "3.3.3" + resolved "https://registry.yarnpkg.com/datatables.net-fixedcolumns-bs4/-/datatables.net-fixedcolumns-bs4-3.3.3.tgz#ed78da606e5658cbca6138c78e11d11a74267a6f" + integrity sha512-d0dqCYk93wnCT382hW2Y1YMwgJXpTfdTu3Tb+UKQvt7OApxKYuWUFfKde+wHtIhqodswZ1jrMfYmxZHJYAysZQ== dependencies: datatables.net-bs4 "^1.10.15" - datatables.net-buttons "1.6.2" + datatables.net-fixedcolumns "3.3.3" jquery ">=1.7" -datatables.net-buttons@1.6.2: - version "1.6.2" - resolved "https://registry.npm.taobao.org/datatables.net-buttons/download/datatables.net-buttons-1.6.2.tgz#491bf5a808898c468d0b3a6547e3be6883aaebcc" - integrity sha1-SRv1qAiJjEaNCzplR+O+aIOq68w= +datatables.net-fixedcolumns@3.3.3: + version "3.3.3" + resolved "https://registry.yarnpkg.com/datatables.net-fixedcolumns/-/datatables.net-fixedcolumns-3.3.3.tgz#982acc929ea8119acb4d91f0710ed1290237f5b4" + integrity sha512-xo6MeI2xc/Ufk4ffrpao+OiPo8/GPB8cO80gA6NFgYBVw6eP9pPa2NsV+gSWRVr7d3A8iZC7mUZT5WdtliNHEA== dependencies: datatables.net "^1.10.15" jquery ">=1.7" -datatables.net-colreorder-bs4@^1.5.2: - version "1.5.2" - resolved "https://registry.npm.taobao.org/datatables.net-colreorder-bs4/download/datatables.net-colreorder-bs4-1.5.2.tgz#4fe1a9ffe679e7e84f3ccb58c9c4d31ac0d49a1b" - integrity sha1-T+Gp/+Z55+hPPMtYycTTGsDUmhs= +datatables.net-fixedheader-bs4@^3.1.8: + version "3.1.9" + resolved "https://registry.yarnpkg.com/datatables.net-fixedheader-bs4/-/datatables.net-fixedheader-bs4-3.1.9.tgz#9fd783f03064ce6f1b529a81fe24ff0333de3311" + integrity sha512-5XpZg9f/77lbKYZSbYDl5lup2mvaHsMw4Q+CuoSq+bp4qC2eXvZRL66yE2Axez/5Fu2Gl7W04BcjRaJ2TDJy+A== dependencies: datatables.net-bs4 "^1.10.15" - datatables.net-colreorder "1.5.2" + datatables.net-fixedheader "3.1.9" jquery ">=1.7" -datatables.net-colreorder@1.5.2: - version "1.5.2" - resolved "https://registry.npm.taobao.org/datatables.net-colreorder/download/datatables.net-colreorder-1.5.2.tgz#c425cee1f88b3246be0363c67a152be743ca6bce" - integrity sha1-xCXO4fiLMka+A2PGehUr50PKa84= +datatables.net-fixedheader@3.1.9: + version "3.1.9" + resolved "https://registry.yarnpkg.com/datatables.net-fixedheader/-/datatables.net-fixedheader-3.1.9.tgz#fadadcd1b4f84cdfd68c8c40418585784b412c8d" + integrity sha512-pK73vpfuafF6ZVox3/xuaNyk/TgDK4/0DFjHbhvxjzjWMn4s3LT1Q8g22hHGZ86VsSjyIwzI4iBKG1RMdksK4A== dependencies: datatables.net "^1.10.15" jquery ">=1.7" -datatables.net-fixedcolumns-bs4@^3.3.0: - version "3.3.1" - resolved "https://registry.npm.taobao.org/datatables.net-fixedcolumns-bs4/download/datatables.net-fixedcolumns-bs4-3.3.1.tgz#b525ec7c3832248ca50e2ce8ff643fe49f1ac0bc" - integrity sha1-tSXsfDgyJIylDizo/2Q/5J8awLw= +datatables.net-keytable-bs4@^2.6.1: + version "2.6.2" + resolved "https://registry.yarnpkg.com/datatables.net-keytable-bs4/-/datatables.net-keytable-bs4-2.6.2.tgz#168a3d51592332c3bf24d92091ec9124cc76309e" + integrity sha512-lQlbCh4WIJ8X7zPFzlMb95LhrkjTFIETIv0EMsi9+JKDa226LUTdWI3FuMgFj06OjYjM9M/loTTRqSPbOlzs6A== dependencies: datatables.net-bs4 "^1.10.15" - datatables.net-fixedcolumns "3.3.1" + datatables.net-keytable "2.6.2" jquery ">=1.7" -datatables.net-fixedcolumns@3.3.1: - version "3.3.1" - resolved "https://registry.npm.taobao.org/datatables.net-fixedcolumns/download/datatables.net-fixedcolumns-3.3.1.tgz#18ecd4c8ff7e64b886dd92b19e18472430889a58" - integrity sha1-GOzUyP9+ZLiG3ZKxnhhHJDCImlg= +datatables.net-keytable@2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/datatables.net-keytable/-/datatables.net-keytable-2.6.2.tgz#10ba00f6c6568472b3f41e903e6e2d21c05e7031" + integrity sha512-R8UONeejFSqiFbcOZwOXDVc97nI//hzd5r0NT+MJM+j/gs7FjB9MZlNLHF1CVS2HpYIijEWTiYBVBgeAX7FWvA== dependencies: datatables.net "^1.10.15" jquery ">=1.7" -datatables.net-fixedheader-bs4@^3.1.6: - version "3.1.7" - resolved "https://registry.npm.taobao.org/datatables.net-fixedheader-bs4/download/datatables.net-fixedheader-bs4-3.1.7.tgz#13e86e203a62b616f28883562f862e4c585729e8" - integrity sha1-E+huIDpithbyiINWL4YuTFhXKeg= +datatables.net-responsive-bs4@^2.2.7: + version "2.2.8" + resolved "https://registry.yarnpkg.com/datatables.net-responsive-bs4/-/datatables.net-responsive-bs4-2.2.8.tgz#101fb44a1f3fa37b33562cf114895b112cfb89d8" + integrity sha512-k2V/TEd8gd5kmwvVnCfrQ4+87qy6D0M478Nbm6zvCkaCToMpNuEgMV8khDOpEsKd2GHGvC3qNjSmHqB75AzEoQ== dependencies: datatables.net-bs4 "^1.10.15" - datatables.net-fixedheader "3.1.7" + datatables.net-responsive "2.2.8" jquery ">=1.7" -datatables.net-fixedheader@3.1.7: - version "3.1.7" - resolved "https://registry.npm.taobao.org/datatables.net-fixedheader/download/datatables.net-fixedheader-3.1.7.tgz#d1d02f96f765e6d1877f9f799ded9b818074abaf" - integrity sha1-0dAvlvdl5tGHf595ne2bgYB0q68= +datatables.net-responsive@2.2.8: + version "2.2.8" + resolved "https://registry.yarnpkg.com/datatables.net-responsive/-/datatables.net-responsive-2.2.8.tgz#b613e9c1a86a3900dd1d41b0136726ac91cf381b" + integrity sha512-qz6IBypbM+G3U26uE3DeAzKJMeR3iCOLNMiksQctry5MP9OpnQzOhYwizLx7v06y5LG4IEWzLE1kqt+UMd2nuQ== dependencies: datatables.net "^1.10.15" jquery ">=1.7" -datatables.net-keytable-bs4@^2.5.1: - version "2.5.2" - resolved "https://registry.npm.taobao.org/datatables.net-keytable-bs4/download/datatables.net-keytable-bs4-2.5.2.tgz#331016441141de011440b42ad711b19c61f5b7ff" - integrity sha1-MxAWRBFB3gEUQLQq1xGxnGH1t/8= +datatables.net-rowgroup-bs4@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/datatables.net-rowgroup-bs4/-/datatables.net-rowgroup-bs4-1.1.3.tgz#f040377a2303610f0ddf41c5f8e5503d9509f0f4" + integrity sha512-NObGthHYZXy2IewkEApO02W1LKeDf6dAFZS5VH0KgMTJqslJkQNxgczoEJT/ZZI36mFjhvBGkghN6cqqWP6V3g== dependencies: datatables.net-bs4 "^1.10.15" - datatables.net-keytable "2.5.2" + datatables.net-rowgroup "1.1.3" jquery ">=1.7" -datatables.net-keytable@2.5.2: - version "2.5.2" - resolved "https://registry.npm.taobao.org/datatables.net-keytable/download/datatables.net-keytable-2.5.2.tgz#bb2a43cbf27be5deed40f354a60adeecc18cdb5f" - integrity sha1-uypDy/J75d7tQPNUpgre7MGM218= +datatables.net-rowgroup@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/datatables.net-rowgroup/-/datatables.net-rowgroup-1.1.3.tgz#64ee0fbe1a64fb54cc2991fc8b1ddb4e5cf94d6b" + integrity sha512-gGxPFVYKr/WXAi3HFy6Q0wIP8GrWnZTatt98bdcOs2yS7PjL/FlPECFDnMbkLMjVTXrKeZweKRqrpQeL8NmVNw== dependencies: datatables.net "^1.10.15" jquery ">=1.7" -datatables.net-responsive-bs4@^2.2.3: - version "2.2.5" - resolved "https://registry.npm.taobao.org/datatables.net-responsive-bs4/download/datatables.net-responsive-bs4-2.2.5.tgz#c81e6c24b80237ee326454a40b08345563361ebb" - integrity sha1-yB5sJLgCN+4yZFSkCwg0VWM2Hrs= +datatables.net-rowreorder-bs4@^1.2.7: + version "1.2.8" + resolved "https://registry.yarnpkg.com/datatables.net-rowreorder-bs4/-/datatables.net-rowreorder-bs4-1.2.8.tgz#a87d1a033579ac3f02b7521beb26077c53d4d251" + integrity sha512-9J36fc/Ywdy9o5SkX+ZLMXYwcKGC+wa1RAiNRFywxT3u5nBrLvcDlOnYLBNae5XO1wBr/3jbj9ka/ZWyd9hnVg== dependencies: datatables.net-bs4 "^1.10.15" - datatables.net-responsive "2.2.5" + datatables.net-rowreorder "1.2.8" jquery ">=1.7" -datatables.net-responsive@2.2.5: - version "2.2.5" - resolved "https://registry.npm.taobao.org/datatables.net-responsive/download/datatables.net-responsive-2.2.5.tgz#33a11ec59b416a546a213b3b736e1ff8ad1fa5eb" - integrity sha1-M6EexZtBalRqITs7c24f+K0fpes= +datatables.net-rowreorder@1.2.8: + version "1.2.8" + resolved "https://registry.yarnpkg.com/datatables.net-rowreorder/-/datatables.net-rowreorder-1.2.8.tgz#2509fe798a64a52d84c43e335eccff326c3389bc" + integrity sha512-gFNKMa5DtigbjhSs96ZKT3uICC1z87EuLUIYLVPEXHc7v/WVOiQ3AaRvIQtExORPi/jQzxEoO5wO9UGZ0ldsUQ== dependencies: datatables.net "^1.10.15" jquery ">=1.7" -datatables.net-rowgroup-bs4@^1.1.1: - version "1.1.2" - resolved "https://registry.npm.taobao.org/datatables.net-rowgroup-bs4/download/datatables.net-rowgroup-bs4-1.1.2.tgz#63a4ab010ce2facb9680d359960333639c19973e" - integrity sha1-Y6SrAQzi+suWgNNZlgMzY5wZlz4= +datatables.net-scroller-bs4@^2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/datatables.net-scroller-bs4/-/datatables.net-scroller-bs4-2.0.4.tgz#c3eef3edc6161f1410abe868aeb1d49dceadcebe" + integrity sha512-bL06RWnJwKMrVO7JYFQJ4WQ8mp5a46wPnU0LbHcwcvkU0MpqXcij9O+DW2B00/906H30IBdoeQYVVrGA+Y8dBw== dependencies: datatables.net-bs4 "^1.10.15" - datatables.net-rowgroup "1.1.2" + datatables.net-scroller "2.0.4" jquery ">=1.7" -datatables.net-rowgroup@1.1.2: - version "1.1.2" - resolved "https://registry.npm.taobao.org/datatables.net-rowgroup/download/datatables.net-rowgroup-1.1.2.tgz#fd047599a3094b7f4e7923d8f3dc6bdf9781a114" - integrity sha1-/QR1maMJS39OeSPY89xr35eBoRQ= +datatables.net-scroller@2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/datatables.net-scroller/-/datatables.net-scroller-2.0.4.tgz#ee56d919138a0b053af4d96cc37a776526118365" + integrity sha512-+Pwj27/wWNRl4MWzJTl1Etdk0TRYTpaEXx7OpU/WgDrDiN6Jn4ye8fVDVMB/1/ELLhkeYb0YmviZMHLC3BITEQ== dependencies: datatables.net "^1.10.15" jquery ">=1.7" -datatables.net-rowreorder-bs4@^1.2.6: - version "1.2.7" - resolved "https://registry.npm.taobao.org/datatables.net-rowreorder-bs4/download/datatables.net-rowreorder-bs4-1.2.7.tgz#42a05011e710c4fb0e2f9dca092e533ca3edf88f" - integrity sha1-QqBQEecQxPsOL53KCS5TPKPt+I8= +datatables.net-searchbuilder-bs4@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/datatables.net-searchbuilder-bs4/-/datatables.net-searchbuilder-bs4-1.1.0.tgz#be7b3d12d689a391d2b89d13727fe5e85f2b051b" + integrity sha512-ER4Ma2vFcEyAI95/uRX+Ux0RXIsCsimshSOo5m5HLTrFOW4z6kcZ4VFpsqZFG/tAkaQLboQ8/w1mJRpvOc3v9w== dependencies: datatables.net-bs4 "^1.10.15" - datatables.net-rowreorder "1.2.7" + datatables.net-searchbuilder "1.1.0" jquery ">=1.7" -datatables.net-rowreorder@1.2.7: - version "1.2.7" - resolved "https://registry.npm.taobao.org/datatables.net-rowreorder/download/datatables.net-rowreorder-1.2.7.tgz#edc4bafa7096bbdb911ccfa956e466eec083c37d" - integrity sha1-7cS6+nCWu9uRHM+pVuRm7sCDw30= +datatables.net-searchbuilder@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/datatables.net-searchbuilder/-/datatables.net-searchbuilder-1.1.0.tgz#f5895a31770cb736cabd033f53e90c81da25978a" + integrity sha512-dYkCizbrii7hcNDAsNmMulR1F/e3BwFrOy50yMmTvIJL92b5yjSSSRMIJhVn3vlxi0Dggk507iPy7PdLqA5LJg== dependencies: datatables.net "^1.10.15" jquery ">=1.7" -datatables.net-scroller-bs4@^2.0.1: - version "2.0.2" - resolved "https://registry.npm.taobao.org/datatables.net-scroller-bs4/download/datatables.net-scroller-bs4-2.0.2.tgz#7a575e36de01731d4943ce231e93bd650b5bc59f" - integrity sha1-eldeNt4Bcx1JQ84jHpO9ZQtbxZ8= +datatables.net-searchpanes-bs4@^1.2.2: + version "1.3.0" + resolved "https://registry.yarnpkg.com/datatables.net-searchpanes-bs4/-/datatables.net-searchpanes-bs4-1.3.0.tgz#9e9940e147eeae6f1172e8ecc49d368c1f125426" + integrity sha512-TgN5jCRksaT3jn/k654tiTNzdWvqbGY45Pfh8JDzFPluR1E/BKrLbGJaG3nxneupe9pYvmzZCIX0h5aeOuHxPw== dependencies: datatables.net-bs4 "^1.10.15" - datatables.net-scroller "2.0.2" + datatables.net-searchpanes "1.3.0" jquery ">=1.7" -datatables.net-scroller@2.0.2: - version "2.0.2" - resolved "https://registry.npm.taobao.org/datatables.net-scroller/download/datatables.net-scroller-2.0.2.tgz#12f40e1d395e5bfe5e0aa97b534c1b92888b3362" - integrity sha1-EvQOHTleW/5eCql7U0wbkoiLM2I= +datatables.net-searchpanes@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/datatables.net-searchpanes/-/datatables.net-searchpanes-1.3.0.tgz#16201d2f9b64d9d895d7df3e776aba24e31f853f" + integrity sha512-1K+hoOJp1jypS+Fg1/AC/4tWTfFSatHjDCN4kDk1JJ++U3HeaPcj9zkpgrj0NfuRUJjDUrkEOvZtf3ojq1AJQw== dependencies: datatables.net "^1.10.15" jquery ">=1.7" -datatables.net-select-bs4@^1.3.1: - version "1.3.1" - resolved "https://registry.npm.taobao.org/datatables.net-select-bs4/download/datatables.net-select-bs4-1.3.1.tgz#1c39c7fd5bfb66b5c8402611c2c64fc47e3cfca4" - integrity sha1-HDnH/Vv7ZrXIQCYRwsZPxH48/KQ= +datatables.net-select-bs4@^1.3.2: + version "1.3.3" + resolved "https://registry.yarnpkg.com/datatables.net-select-bs4/-/datatables.net-select-bs4-1.3.3.tgz#daf0fa29ad6c438808b7d8d750abec6ade9805aa" + integrity sha512-jXYNXoDPXQOMvJtIOmy8kiVbiSVJvwQIWUu5dNRAGLWBsCjReukjI7lhaljRocKvfrYam2zw9Z16XDz8nzxTDQ== dependencies: datatables.net-bs4 "^1.10.15" - datatables.net-select "1.3.1" + datatables.net-select "1.3.3" jquery ">=1.7" -datatables.net-select@1.3.1: - version "1.3.1" - resolved "https://registry.npm.taobao.org/datatables.net-select/download/datatables.net-select-1.3.1.tgz#ec2c3ad7df2bc9c13c09587d0bfd0ceba52a8bff" - integrity sha1-7Cw6198rycE8CVh9C/0M66Uqi/8= +datatables.net-select@1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/datatables.net-select/-/datatables.net-select-1.3.3.tgz#9259f70bf257e5d32198f38424d005808b78dc6d" + integrity sha512-M4e9Qx790IPt+tc+CLgk7gPram3i+M2OmhIkhIpp7RcZ2Ay4App4ouQZcEx3j1MTRIWxtOz47xjpWrwVfJ23YQ== dependencies: datatables.net "^1.10.15" jquery ">=1.7" -datatables.net@1.10.21, datatables.net@^1.10.15, datatables.net@^1.10.20: - version "1.10.21" - resolved "https://registry.npm.taobao.org/datatables.net/download/datatables.net-1.10.21.tgz#f1d35c8e5c3eb7f5caef39e80cd5b836a8c77103" - integrity sha1-8dNcjlw+t/XK7znoDNW4NqjHcQM= +datatables.net@1.10.25, datatables.net@^1.10.15, datatables.net@^1.10.24: + version "1.10.25" + resolved "https://registry.yarnpkg.com/datatables.net/-/datatables.net-1.10.25.tgz#fc03a239e08f91d1d64ba101aa54daf4086d162c" + integrity sha512-y0+C7all+MC/h1acwnjErhaJPjYGKpWTvbXrfEUbR8+P+nnhgjNn5nL1udgsTwBObMhlj1KITNBRrM/ZLSoj+Q== dependencies: jquery ">=1.7" -daterangepicker@^3.0.5: +daterangepicker@^3.1.0: version "3.1.0" - resolved "https://registry.npm.taobao.org/daterangepicker/download/daterangepicker-3.1.0.tgz#718d606614331df3e774c9aba82ccd8838d45da1" - integrity sha1-cY1gZhQzHfPndMmrqCzNiDjUXaE= + resolved "https://registry.yarnpkg.com/daterangepicker/-/daterangepicker-3.1.0.tgz#718d606614331df3e774c9aba82ccd8838d45da1" + integrity sha512-DxWXvvPq4srWLCqFugqSV+6CBt/CvQ0dnpXhQ3gl0autcIDAruG1PuGG3gC7yPRNytAD1oU1AcUOzaYhOawhTw== dependencies: jquery ">=1.10" moment "^2.9.0" debug@2.6.9, debug@^2.2.0, debug@^2.3.3: version "2.6.9" - resolved "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8= + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" @@ -2984,26 +2846,26 @@ debug@^3.1.1, debug@^3.2.6: ms "^2.1.1" debug@^4.1.0, debug@^4.1.1: - version "4.1.1" - resolved "https://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" - integrity sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E= + version "4.3.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" + integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== dependencies: - ms "^2.1.1" + ms "2.1.2" -decamelize@^1.1.2, decamelize@^1.2.0: +decamelize@^1.2.0: version "1.2.0" - resolved "https://registry.npm.taobao.org/decamelize/download/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= decode-uri-component@^0.2.0: version "0.2.0" - resolved "https://registry.npm.taobao.org/decode-uri-component/download/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= deep-equal@^1.0.0, deep-equal@^1.0.1: version "1.1.1" - resolved "https://registry.npm.taobao.org/deep-equal/download/deep-equal-1.1.1.tgz?cache=0&sync_timestamp=1590392787863&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdeep-equal%2Fdownload%2Fdeep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" - integrity sha1-tcmMlCzv+vfLBR4k4UNKJaLmB2o= + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" + integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== dependencies: is-arguments "^1.0.4" is-date-object "^1.0.1" @@ -3014,50 +2876,50 @@ deep-equal@^1.0.0, deep-equal@^1.0.1: deep-is@~0.1.3: version "0.1.3" - resolved "https://registry.npm.taobao.org/deep-is/download/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= default-gateway@^4.2.0: version "4.2.0" - resolved "https://registry.npm.taobao.org/default-gateway/download/default-gateway-4.2.0.tgz?cache=0&sync_timestamp=1590419212936&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefault-gateway%2Fdownload%2Fdefault-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" - integrity sha1-FnEEx1AMIRX23WmwpTa7jtcgVSs= + resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" + integrity sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA== dependencies: execa "^1.0.0" ip-regex "^2.1.0" -define-properties@^1.1.2, define-properties@^1.1.3: +define-properties@^1.1.3: version "1.1.3" - resolved "https://registry.npm.taobao.org/define-properties/download/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE= + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== dependencies: object-keys "^1.0.12" define-property@^0.2.5: version "0.2.5" - resolved "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= dependencies: is-descriptor "^0.1.0" define-property@^1.0.0: version "1.0.0" - resolved "https://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= dependencies: is-descriptor "^1.0.0" define-property@^2.0.2: version "2.0.2" - resolved "https://registry.npm.taobao.org/define-property/download/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" - integrity sha1-1Flono1lS6d+AqgX+HENcCyxbp0= + resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== dependencies: is-descriptor "^1.0.2" isobject "^3.0.1" del@^4.1.1: version "4.1.1" - resolved "https://registry.npm.taobao.org/del/download/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" - integrity sha1-no8RciLqRKMf86FWwEm5kFKp8LQ= + resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" + integrity sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ== dependencies: "@types/glob" "^7.1.1" globby "^6.1.0" @@ -3067,58 +2929,48 @@ del@^4.1.1: pify "^4.0.1" rimraf "^2.6.3" -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.npm.taobao.org/delayed-stream/download/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= - delegate@^3.1.2: version "3.2.0" - resolved "https://registry.npm.taobao.org/delegate/download/delegate-3.2.0.tgz#b66b71c3158522e8ab5744f720d8ca0c2af59166" - integrity sha1-tmtxwxWFIuirV0T3INjKDCr1kWY= - -delegates@^1.0.0: - version "1.0.0" - resolved "https://registry.npm.taobao.org/delegates/download/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" - integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= + resolved "https://registry.yarnpkg.com/delegate/-/delegate-3.2.0.tgz#b66b71c3158522e8ab5744f720d8ca0c2af59166" + integrity sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw== depd@~1.1.2: version "1.1.2" - resolved "https://registry.npm.taobao.org/depd/download/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= des.js@^1.0.0: version "1.0.1" - resolved "https://registry.npm.taobao.org/des.js/download/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" - integrity sha1-U4IULhvcU/hdhtU+X0qn3rkeCEM= + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" + integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== dependencies: inherits "^2.0.1" minimalistic-assert "^1.0.0" destroy@~1.0.4: version "1.0.4" - resolved "https://registry.npm.taobao.org/destroy/download/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= detect-file@^1.0.0: version "1.0.0" - resolved "https://registry.npm.taobao.org/detect-file/download/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" + resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7" integrity sha1-8NZtA2cqglyxtzvbP+YjEMjlUrc= detect-node@^2.0.4: - version "2.0.4" - resolved "https://registry.npm.taobao.org/detect-node/download/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" - integrity sha1-AU7o+PZpxcWAI9pkuBecCDooxGw= + version "2.1.0" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.1.0.tgz#c9c70775a49c3d03bc2c06d9a73be550f978f8b1" + integrity sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g== dfa@^1.2.0: version "1.2.0" - resolved "https://registry.npm.taobao.org/dfa/download/dfa-1.2.0.tgz#96ac3204e2d29c49ea5b57af8d92c2ae12790657" - integrity sha1-lqwyBOLSnEnqW1evjZLCrhJ5Blc= + resolved "https://registry.yarnpkg.com/dfa/-/dfa-1.2.0.tgz#96ac3204e2d29c49ea5b57af8d92c2ae12790657" + integrity sha512-ED3jP8saaweFTjeGX8HQPjeC1YYyZs98jGNZx6IiBvxW7JG5v492kamAQB3m2wop07CvU/RQmzcKr6bgcC5D/Q== diffie-hellman@^5.0.0: version "5.0.3" - resolved "https://registry.npm.taobao.org/diffie-hellman/download/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" - integrity sha1-QOjumPVaIUlgcUaSHGPhrl89KHU= + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" + integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== dependencies: bn.js "^4.1.0" miller-rabin "^4.0.0" @@ -3126,103 +2978,100 @@ diffie-hellman@^5.0.0: dns-equal@^1.0.0: version "1.0.0" - resolved "https://registry.npm.taobao.org/dns-equal/download/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" + resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= dns-packet@^1.3.1: - version "1.3.1" - resolved "https://registry.npm.taobao.org/dns-packet/download/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a" - integrity sha1-EqpCaYEHW+UAuRDu3NC0fdfe2lo= + version "1.3.4" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.4.tgz#e3455065824a2507ba886c55a89963bb107dec6f" + integrity sha512-BQ6F4vycLXBvdrJZ6S3gZewt6rcrks9KBgM9vrhW+knGRqc8uEdT7fuCwloc7nny5xNoMJ17HGH0R/6fpo8ECA== dependencies: ip "^1.1.0" safe-buffer "^5.0.1" dns-txt@^2.0.2: version "2.0.2" - resolved "https://registry.npm.taobao.org/dns-txt/download/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" + resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" integrity sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY= dependencies: buffer-indexof "^1.0.0" dom-serializer@0: version "0.2.2" - resolved "https://registry.npm.taobao.org/dom-serializer/download/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" - integrity sha1-GvuB9TNxcXXUeGVd68XjMtn5u1E= + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" + integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== dependencies: domelementtype "^2.0.1" entities "^2.0.0" domain-browser@^1.1.1: version "1.2.0" - resolved "https://registry.npm.taobao.org/domain-browser/download/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" - integrity sha1-PTH1AZGmdJ3RN1p/Ui6CPULlTto= + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" + integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== domelementtype@1: version "1.3.1" - resolved "https://registry.npm.taobao.org/domelementtype/download/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" - integrity sha1-0EjESzew0Qp/Kj1f7j9DM9eQSB8= + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" + integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== domelementtype@^2.0.1: - version "2.0.1" - resolved "https://registry.npm.taobao.org/domelementtype/download/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d" - integrity sha1-H4vf6R9aeAYydOgDtL3O326U+U0= + version "2.2.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57" + integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A== domutils@^1.7.0: version "1.7.0" - resolved "https://registry.npm.taobao.org/domutils/download/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" - integrity sha1-Vuo0HoNOBuZ0ivehyyXaZ+qfjCo= + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" + integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== dependencies: dom-serializer "0" domelementtype "1" dot-prop@^5.2.0: - version "5.2.0" - resolved "https://registry.npm.taobao.org/dot-prop/download/dot-prop-5.2.0.tgz#c34ecc29556dc45f1f4c22697b6f4904e0cc4fcb" - integrity sha1-w07MKVVtxF8fTCJpe29JBODMT8s= + version "5.3.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" + integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== dependencies: is-obj "^2.0.0" +dropzone@^5.8.1: + version "5.9.2" + resolved "https://registry.yarnpkg.com/dropzone/-/dropzone-5.9.2.tgz#0a90ce3f6b011c3932484f368f4bf06223729450" + integrity sha512-5t2z51DzIsWDbTpwcJIvUlwxBbvcwdCApz0yb9ecKJwG155Xm92KMEZmHW1B0MzoXOKvFwdd0nPu5cpeVcvPHQ== + duplexer2@~0.1.4: version "0.1.4" - resolved "https://registry.npm.taobao.org/duplexer2/download/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" + resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" integrity sha1-ixLauHjA1p4+eJEFFmKjL8a93ME= dependencies: readable-stream "^2.0.2" duplexify@^3.4.2, duplexify@^3.6.0: version "3.7.1" - resolved "https://registry.npm.taobao.org/duplexify/download/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" - integrity sha1-Kk31MX9sz9kfhtb9JdjYoQO4gwk= + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" + integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== dependencies: end-of-stream "^1.0.0" inherits "^2.0.1" readable-stream "^2.0.0" stream-shift "^1.0.0" -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.npm.taobao.org/ecc-jsbn/download/ecc-jsbn-0.1.2.tgz?cache=0&sync_timestamp=1589682745945&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fecc-jsbn%2Fdownload%2Fecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - ee-first@1.1.1: version "1.1.1" - resolved "https://registry.npm.taobao.org/ee-first/download/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= ekko-lightbox@^5.3.0: version "5.3.0" - resolved "https://registry.npm.taobao.org/ekko-lightbox/download/ekko-lightbox-5.3.0.tgz#fbfcd9df93a8d1cdbf8770adc8c05aaac4d24f56" - integrity sha1-+/zZ35Oo0c2/h3CtyMBaqsTST1Y= + resolved "https://registry.yarnpkg.com/ekko-lightbox/-/ekko-lightbox-5.3.0.tgz#fbfcd9df93a8d1cdbf8770adc8c05aaac4d24f56" + integrity sha512-mbacwySuVD3Ad6F2hTkjSTvJt59bcVv2l/TmBerp4xZnLak8tPtA4AScUn4DL42c1ksTiAO6sGhJZ52P/1Qgew== electron-to-chromium@^1.3.723: - version "1.3.738" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.738.tgz#aec24b091c82acbfabbdcce08076a703941d17ca" - integrity sha512-vCMf4gDOpEylPSLPLSwAEsz+R3ShP02Y3cAKMZvTqule3XcPp7tgc/0ESI7IS6ZeyBlGClE50N53fIOkcIVnpw== + version "1.3.749" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.749.tgz#0ecebc529ceb49dd2a7c838ae425236644c3439a" + integrity sha512-F+v2zxZgw/fMwPz/VUGIggG4ZndDsYy0vlpthi3tjmDZlcfbhN5mYW0evXUsBr2sUtuDANFtle410A9u/sd/4A== -elliptic@^6.0.0, elliptic@^6.5.2: +elliptic@^6.5.3: version "6.5.4" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== @@ -3237,75 +3086,80 @@ elliptic@^6.0.0, elliptic@^6.5.2: emoji-regex@^7.0.1: version "7.0.3" - resolved "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-7.0.3.tgz?cache=0&sync_timestamp=1586511809263&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Femoji-regex%2Fdownload%2Femoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" - integrity sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY= + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== emojis-list@^3.0.0: version "3.0.0" - resolved "https://registry.npm.taobao.org/emojis-list/download/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" - integrity sha1-VXBmIEatKeLpFucariYKvf9Pang= + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== encodeurl@~1.0.2: version "1.0.2" - resolved "https://registry.npm.taobao.org/encodeurl/download/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= end-of-stream@^1.0.0, end-of-stream@^1.1.0: version "1.4.4" - resolved "https://registry.npm.taobao.org/end-of-stream/download/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha1-WuZKX0UFe682JuwU2gyl5LJDHrA= + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== dependencies: once "^1.4.0" -enhanced-resolve@^4.1.1, enhanced-resolve@^4.3.0: - version "4.3.0" - resolved "https://registry.npm.taobao.org/enhanced-resolve/download/enhanced-resolve-4.3.0.tgz?cache=0&sync_timestamp=1594803831426&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fenhanced-resolve%2Fdownload%2Fenhanced-resolve-4.3.0.tgz#3b806f3bfafc1ec7de69551ef93cca46c1704126" - integrity sha1-O4BvO/r8HsfeaVUe+TzKRsFwQSY= +enhanced-resolve@^4.1.1, enhanced-resolve@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz#2f3cfd84dbe3b487f18f2db2ef1e064a571ca5ec" + integrity sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg== dependencies: graceful-fs "^4.1.2" memory-fs "^0.5.0" tapable "^1.0.0" entities@^2.0.0: - version "2.0.3" - resolved "https://registry.npm.taobao.org/entities/download/entities-2.0.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fentities%2Fdownload%2Fentities-2.0.3.tgz#5c487e5742ab93c15abb5da22759b8590ec03b7f" - integrity sha1-XEh+V0Krk8Fau12iJ1m4WQ7AO38= + version "2.2.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" + integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== errno@^0.1.3, errno@~0.1.7: - version "0.1.7" - resolved "https://registry.npm.taobao.org/errno/download/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" - integrity sha1-RoTXF3mtOa8Xfj8AeZb3xnyFJhg= + version "0.1.8" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.8.tgz#8bb3e9c7d463be4976ff888f76b4809ebc2e811f" + integrity sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A== dependencies: prr "~1.0.1" -error-ex@^1.2.0, error-ex@^1.3.1: +error-ex@^1.3.1: version "1.3.2" - resolved "https://registry.npm.taobao.org/error-ex/download/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha1-tKxAZIEH/c3PriQvQovqihTU8b8= + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== dependencies: is-arrayish "^0.2.1" -es-abstract@^1.17.0-next.1, es-abstract@^1.17.2, es-abstract@^1.17.5: - version "1.17.6" - resolved "https://registry.npm.taobao.org/es-abstract/download/es-abstract-1.17.6.tgz?cache=0&sync_timestamp=1592109126243&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.17.6.tgz#9142071707857b2cacc7b89ecb670316c3e2d52a" - integrity sha1-kUIHFweFeyysx7iey2cDFsPi1So= +es-abstract@^1.17.2, es-abstract@^1.18.0-next.2, es-abstract@^1.18.2: + version "1.18.3" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.3.tgz#25c4c3380a27aa203c44b2b685bba94da31b63e0" + integrity sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw== dependencies: + call-bind "^1.0.2" es-to-primitive "^1.2.1" function-bind "^1.1.1" + get-intrinsic "^1.1.1" has "^1.0.3" - has-symbols "^1.0.1" - is-callable "^1.2.0" - is-regex "^1.1.0" - object-inspect "^1.7.0" + has-symbols "^1.0.2" + is-callable "^1.2.3" + is-negative-zero "^2.0.1" + is-regex "^1.1.3" + is-string "^1.0.6" + object-inspect "^1.10.3" object-keys "^1.1.1" - object.assign "^4.1.0" - string.prototype.trimend "^1.0.1" - string.prototype.trimstart "^1.0.1" + object.assign "^4.1.2" + string.prototype.trimend "^1.0.4" + string.prototype.trimstart "^1.0.4" + unbox-primitive "^1.0.1" es-to-primitive@^1.2.1: version "1.2.1" - resolved "https://registry.npm.taobao.org/es-to-primitive/download/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" - integrity sha1-5VzUyc3BiLzvsDs2bHNjI/xciYo= + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== dependencies: is-callable "^1.1.4" is-date-object "^1.0.1" @@ -3313,8 +3167,8 @@ es-to-primitive@^1.2.1: es5-ext@^0.10.35, es5-ext@^0.10.50, es5-ext@~0.10.14: version "0.10.53" - resolved "https://registry.npm.taobao.org/es5-ext/download/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1" - integrity sha1-k8WjrP2+8nUiCtcmRK0C7hg2jeE= + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.53.tgz#93c5a3acfdbef275220ad72644ad02ee18368de1" + integrity sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q== dependencies: es6-iterator "~2.0.3" es6-symbol "~3.1.3" @@ -3322,7 +3176,7 @@ es5-ext@^0.10.35, es5-ext@^0.10.50, es5-ext@~0.10.14: es6-iterator@~2.0.1, es6-iterator@~2.0.3: version "2.0.3" - resolved "https://registry.npm.taobao.org/es6-iterator/download/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" integrity sha1-p96IkUGgWpSwhUQDstCg+/qY87c= dependencies: d "1" @@ -3331,7 +3185,7 @@ es6-iterator@~2.0.1, es6-iterator@~2.0.3: es6-map@^0.1.5: version "0.1.5" - resolved "https://registry.npm.taobao.org/es6-map/download/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" + resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" integrity sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA= dependencies: d "1" @@ -3343,7 +3197,7 @@ es6-map@^0.1.5: es6-set@^0.1.5, es6-set@~0.1.5: version "0.1.5" - resolved "https://registry.npm.taobao.org/es6-set/download/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" + resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" integrity sha1-0rPsXU2ADO2BjbU40ol02wpzzLE= dependencies: d "1" @@ -3354,7 +3208,7 @@ es6-set@^0.1.5, es6-set@~0.1.5: es6-symbol@3.1.1: version "3.1.1" - resolved "https://registry.npm.taobao.org/es6-symbol/download/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" integrity sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc= dependencies: d "1" @@ -3362,8 +3216,8 @@ es6-symbol@3.1.1: es6-symbol@^3.1.1, es6-symbol@~3.1.1, es6-symbol@~3.1.3: version "3.1.3" - resolved "https://registry.npm.taobao.org/es6-symbol/download/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" - integrity sha1-utXTwbzawoJp9MszHkMceKxwXRg= + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.3.tgz#bad5d3c1bcdac28269f4cb331e431c78ac705d18" + integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== dependencies: d "^1.0.1" ext "^1.1.2" @@ -3375,18 +3229,18 @@ escalade@^3.1.1: escape-html@~1.0.3: version "1.0.3" - resolved "https://registry.npm.taobao.org/escape-html/download/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= -escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: +escape-string-regexp@^1.0.5: version "1.0.5" - resolved "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= escodegen@^1.11.1: version "1.14.3" - resolved "https://registry.npm.taobao.org/escodegen/download/escodegen-1.14.3.tgz?cache=0&sync_timestamp=1592866188657&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescodegen%2Fdownload%2Fescodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" - integrity sha1-TnuB+6YVgdyXWC7XjKt/Do1j9QM= + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" + integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== dependencies: esprima "^4.0.1" estraverse "^4.2.0" @@ -3397,7 +3251,7 @@ escodegen@^1.11.1: escodegen@~1.2.0: version "1.2.0" - resolved "https://registry.npm.taobao.org/escodegen/download/escodegen-1.2.0.tgz?cache=0&sync_timestamp=1592866188657&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescodegen%2Fdownload%2Fescodegen-1.2.0.tgz#09de7967791cc958b7f89a2ddb6d23451af327e1" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.2.0.tgz#09de7967791cc958b7f89a2ddb6d23451af327e1" integrity sha1-Cd55Z3kcyVi3+Jot220jRRrzJ+E= dependencies: esprima "~1.0.4" @@ -3408,106 +3262,111 @@ escodegen@~1.2.0: eslint-scope@^4.0.3: version "4.0.3" - resolved "https://registry.npm.taobao.org/eslint-scope/download/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" - integrity sha1-ygODMxD2iJoyZHgaqC5j65z+eEg= + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" + integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== dependencies: esrecurse "^4.1.0" estraverse "^4.1.1" esprima@^4.0.0, esprima@^4.0.1: version "4.0.1" - resolved "https://registry.npm.taobao.org/esprima/download/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha1-E7BM2z5sXRnfkatph6hpVhmwqnE= + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== esprima@~1.0.4: version "1.0.4" - resolved "https://registry.npm.taobao.org/esprima/download/esprima-1.0.4.tgz#9f557e08fc3b4d26ece9dd34f8fbf476b62585ad" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-1.0.4.tgz#9f557e08fc3b4d26ece9dd34f8fbf476b62585ad" integrity sha1-n1V+CPw7TSbs6d00+Pv0drYlha0= esrecurse@^4.1.0: - version "4.2.1" - resolved "https://registry.npm.taobao.org/esrecurse/download/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" - integrity sha1-AHo7n9vCs7uH5IeeoZyS/b05Qs8= + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== dependencies: - estraverse "^4.1.0" + estraverse "^5.2.0" -estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: +estraverse@^4.1.1, estraverse@^4.2.0: version "4.3.0" - resolved "https://registry.npm.taobao.org/estraverse/download/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0= + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" + integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== estraverse@~1.5.0: version "1.5.1" - resolved "https://registry.npm.taobao.org/estraverse/download/estraverse-1.5.1.tgz#867a3e8e58a9f84618afb6c2ddbcd916b7cbaf71" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.5.1.tgz#867a3e8e58a9f84618afb6c2ddbcd916b7cbaf71" integrity sha1-hno+jlip+EYYr7bC3bzZFrfLr3E= estree-is-function@^1.0.0: version "1.0.0" - resolved "https://registry.npm.taobao.org/estree-is-function/download/estree-is-function-1.0.0.tgz#c0adc29806d7f18a74db7df0f3b2666702e37ad2" - integrity sha1-wK3CmAbX8Yp0233w87JmZwLjetI= + resolved "https://registry.yarnpkg.com/estree-is-function/-/estree-is-function-1.0.0.tgz#c0adc29806d7f18a74db7df0f3b2666702e37ad2" + integrity sha512-nSCWn1jkSq2QAtkaVLJZY2ezwcFO161HVc174zL1KPW3RJ+O6C3eJb8Nx7OXzvhoEv+nLgSR1g71oWUHUDTrJA== esutils@^2.0.2: version "2.0.3" - resolved "https://registry.npm.taobao.org/esutils/download/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q= + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== esutils@~1.0.0: version "1.0.0" - resolved "https://registry.npm.taobao.org/esutils/download/esutils-1.0.0.tgz#8151d358e20c8acc7fb745e7472c0025fe496570" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-1.0.0.tgz#8151d358e20c8acc7fb745e7472c0025fe496570" integrity sha1-gVHTWOIMisx/t0XnRywAJf5JZXA= etag@~1.8.1: version "1.8.1" - resolved "https://registry.npm.taobao.org/etag/download/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= ev-emitter@^1.0.0: version "1.1.1" - resolved "https://registry.npm.taobao.org/ev-emitter/download/ev-emitter-1.1.1.tgz#8f18b0ce5c76a5d18017f71c0a795c65b9138f2a" - integrity sha1-jxiwzlx2pdGAF/ccCnlcZbkTjyo= + resolved "https://registry.yarnpkg.com/ev-emitter/-/ev-emitter-1.1.1.tgz#8f18b0ce5c76a5d18017f71c0a795c65b9138f2a" + integrity sha512-ipiDYhdQSCZ4hSbX4rMW+XzNKMD1prg/sTvoVmSLkuQ1MVlwjJQQA+sW8tMYR3BLUr9KjodFV4pvzunvRhd33Q== eve-raphael@0.5.0: version "0.5.0" - resolved "https://registry.npm.taobao.org/eve-raphael/download/eve-raphael-0.5.0.tgz#17c754b792beef3fa6684d79cf5a47c63c4cda30" + resolved "https://registry.yarnpkg.com/eve-raphael/-/eve-raphael-0.5.0.tgz#17c754b792beef3fa6684d79cf5a47c63c4cda30" integrity sha1-F8dUt5K+7z+maE15z1pHxjxM2jA= event-emitter@~0.3.5: version "0.3.5" - resolved "https://registry.npm.taobao.org/event-emitter/download/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" + resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" integrity sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk= dependencies: d "1" es5-ext "~0.10.14" eventemitter3@^4.0.0: - version "4.0.4" - resolved "https://registry.npm.taobao.org/eventemitter3/download/eventemitter3-4.0.4.tgz#b5463ace635a083d018bdc7c917b4c5f10a85384" - integrity sha1-tUY6zmNaCD0Bi9x8kXtMXxCoU4Q= + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== events@^3.0.0: - version "3.1.0" - resolved "https://registry.npm.taobao.org/events/download/events-3.1.0.tgz#84279af1b34cb75aa88bf5ff291f6d0bd9b31a59" - integrity sha1-hCea8bNMt1qoi/X/KR9tC9mzGlk= + version "3.3.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== eventsource@^1.0.7: - version "1.0.7" - resolved "https://registry.npm.taobao.org/eventsource/download/eventsource-1.0.7.tgz#8fbc72c93fcd34088090bc0a4e64f4b5cee6d8d0" - integrity sha1-j7xyyT/NNAiAkLwKTmT0tc7m2NA= + version "1.1.0" + resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.1.0.tgz#00e8ca7c92109e94b0ddf32dac677d841028cfaf" + integrity sha512-VSJjT5oCNrFvCS6igjzPAt5hBzQ2qPBFIbJ03zLI9SE0mxwZpMw6BfJrbFHm1a141AavMEB8JHmBhWAd66PfCg== dependencies: original "^1.0.0" evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: version "1.0.3" - resolved "https://registry.npm.taobao.org/evp_bytestokey/download/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" - integrity sha1-f8vbGY3HGVlDLv4ThCaE4FJaywI= + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== dependencies: md5.js "^1.3.4" safe-buffer "^5.1.1" execa@^1.0.0: version "1.0.0" - resolved "https://registry.npm.taobao.org/execa/download/execa-1.0.0.tgz?cache=0&sync_timestamp=1594145111640&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" - integrity sha1-xiNqW7TfbW8V6I5/AXeYIWdJ3dg= + resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== dependencies: cross-spawn "^6.0.0" get-stream "^4.0.0" @@ -3519,7 +3378,7 @@ execa@^1.0.0: expand-brackets@^2.1.4: version "2.1.4" - resolved "https://registry.npm.taobao.org/expand-brackets/download/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= dependencies: debug "^2.3.3" @@ -3532,15 +3391,15 @@ expand-brackets@^2.1.4: expand-tilde@^2.0.0, expand-tilde@^2.0.2: version "2.0.2" - resolved "https://registry.npm.taobao.org/expand-tilde/download/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" + resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= dependencies: homedir-polyfill "^1.0.1" express@^4.17.1: version "4.17.1" - resolved "https://registry.npm.taobao.org/express/download/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" - integrity sha1-RJH8OGBc9R+GKdOcK10Cb5ikwTQ= + resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" + integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== dependencies: accepts "~1.3.7" array-flatten "1.1.1" @@ -3575,35 +3434,30 @@ express@^4.17.1: ext@^1.1.2: version "1.4.0" - resolved "https://registry.npm.taobao.org/ext/download/ext-1.4.0.tgz#89ae7a07158f79d35517882904324077e4379244" - integrity sha1-ia56BxWPedNVF4gpBDJAd+Q3kkQ= + resolved "https://registry.yarnpkg.com/ext/-/ext-1.4.0.tgz#89ae7a07158f79d35517882904324077e4379244" + integrity sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A== dependencies: type "^2.0.0" extend-shallow@^2.0.1: version "2.0.1" - resolved "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= dependencies: is-extendable "^0.1.0" extend-shallow@^3.0.0, extend-shallow@^3.0.2: version "3.0.2" - resolved "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= dependencies: assign-symbols "^1.0.0" is-extendable "^1.0.1" -extend@~3.0.2: - version "3.0.2" - resolved "https://registry.npm.taobao.org/extend/download/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo= - extglob@^2.0.4: version "2.0.4" - resolved "https://registry.npm.taobao.org/extglob/download/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" - integrity sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM= + resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== dependencies: array-unique "^0.3.2" define-property "^1.0.0" @@ -3614,45 +3468,35 @@ extglob@^2.0.4: snapdragon "^0.8.1" to-regex "^3.0.1" -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.npm.taobao.org/extsprintf/download/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= - -extsprintf@^1.2.0: - version "1.4.0" - resolved "https://registry.npm.taobao.org/extsprintf/download/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" - integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= - fast-deep-equal@^3.1.1: version "3.1.3" - resolved "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-3.1.3.tgz?cache=0&sync_timestamp=1591599675178&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-deep-equal%2Fdownload%2Ffast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU= + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== fast-json-stable-stringify@^2.0.0: version "2.1.0" - resolved "https://registry.npm.taobao.org/fast-json-stable-stringify/download/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM= + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== fast-levenshtein@~2.0.6: version "2.0.6" - resolved "https://registry.npm.taobao.org/fast-levenshtein/download/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= fast-memoize@^2.5.1: version "2.5.2" - resolved "https://registry.npm.taobao.org/fast-memoize/download/fast-memoize-2.5.2.tgz#79e3bb6a4ec867ea40ba0e7146816f6cdce9b57e" - integrity sha1-eeO7ak7IZ+pAug5xRoFvbNzptX4= + resolved "https://registry.yarnpkg.com/fast-memoize/-/fast-memoize-2.5.2.tgz#79e3bb6a4ec867ea40ba0e7146816f6cdce9b57e" + integrity sha512-Ue0LwpDYErFbmNnZSF0UH6eImUwDmogUO1jyE+JbN2gsQz/jICm1Ve7t9QT0rNSsfJt+Hs4/S3GnsDVjL4HVrw== fastclick@^1.0.6: version "1.0.6" - resolved "https://registry.npm.taobao.org/fastclick/download/fastclick-1.0.6.tgz#161625b27b1a5806405936bda9a2c1926d06be6a" + resolved "https://registry.yarnpkg.com/fastclick/-/fastclick-1.0.6.tgz#161625b27b1a5806405936bda9a2c1926d06be6a" integrity sha1-FhYlsnsaWAZAWTa9qaLBkm0Gvmo= faye-websocket@^0.11.3: - version "0.11.3" - resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.3.tgz#5c0e9a8968e8912c286639fde977a8b209f2508e" - integrity sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA== + version "0.11.4" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.4.tgz#7f0d9275cfdd86a1c963dc8b65fcc451edcbb1da" + integrity sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g== dependencies: websocket-driver ">=0.5.1" @@ -3661,27 +3505,27 @@ figgy-pudding@^3.5.1: resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== -file-loader@^6.0.0: - version "6.0.0" - resolved "https://registry.npm.taobao.org/file-loader/download/file-loader-6.0.0.tgz#97bbfaab7a2460c07bcbd72d3a6922407f67649f" - integrity sha1-l7v6q3okYMB7y9ctOmkiQH9nZJ8= +file-loader@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.2.0.tgz#baef7cf8e1840df325e4390b4484879480eebe4d" + integrity sha512-qo3glqyTa61Ytg4u73GultjHGjdRyig3tG6lPtyX/jOEJvHif9uB0/OCI2Kif6ctF3caQTW2G5gym21oAsI4pw== dependencies: loader-utils "^2.0.0" - schema-utils "^2.6.5" + schema-utils "^3.0.0" file-uri-to-path@1.0.0: version "1.0.0" - resolved "https://registry.npm.taobao.org/file-uri-to-path/download/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" - integrity sha1-VTp7hEb/b2hDWcRF8eN6BdrMM90= + resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== filepond@^4.20.1: - version "4.20.1" - resolved "https://registry.yarnpkg.com/filepond/-/filepond-4.20.1.tgz#d0e2ce447dc785f8cc51abd207805b886090b2b7" - integrity sha512-qYwE/xSODJuAJH0E2BHeD8f3X66nxZ/aUQSaGhUTVXuAWe0wvIjxaRcMZUIsZm2f7truScxAe16l5ITzxi5TFw== + version "4.27.3" + resolved "https://registry.yarnpkg.com/filepond/-/filepond-4.27.3.tgz#7fe54cad8967d8518336f1934ad7792e2a5e0a43" + integrity sha512-3LYjT/YiVj1rnvtM8zo7k8sjrpDj3dLgiZ1SsL4c7Bx/ywT+LwGxeK+VAG+pqSwl7I8+2D5kcuKAgcnYF+EcTQ== fill-range@^4.0.0: version "4.0.0" - resolved "https://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= dependencies: extend-shallow "^2.0.1" @@ -3691,23 +3535,23 @@ fill-range@^4.0.0: fill-range@^7.0.1: version "7.0.1" - resolved "https://registry.npm.taobao.org/fill-range/download/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" - integrity sha1-GRmmp8df44ssfHflGYU12prN2kA= + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== dependencies: to-regex-range "^5.0.1" -filterizr@^2.2.3: +filterizr@^2.2.4: version "2.2.4" - resolved "https://registry.npm.taobao.org/filterizr/download/filterizr-2.2.4.tgz#02fd75cffd46ef7acc85f55e132064650ae90a14" - integrity sha1-Av11z/1G73rMhfVeEyBkZQrpChQ= + resolved "https://registry.yarnpkg.com/filterizr/-/filterizr-2.2.4.tgz#02fd75cffd46ef7acc85f55e132064650ae90a14" + integrity sha512-hqyEdg7RrvJMVFOeF0yysS75HP6jLu0wBSUtSPAc3BysAtHpwcXaPnR1kYp2uZtd3YXyhH6JRfF9+H4SRvrqXg== dependencies: fast-memoize "^2.5.1" imagesloaded "^4.1.4" finalhandler@~1.1.2: version "1.1.2" - resolved "https://registry.npm.taobao.org/finalhandler/download/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" - integrity sha1-t+fQAP/RGTjQ/bBTUG9uur6fWH0= + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== dependencies: debug "2.6.9" encodeurl "~1.0.2" @@ -3719,8 +3563,8 @@ finalhandler@~1.1.2: find-cache-dir@^2.1.0: version "2.1.0" - resolved "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" - integrity sha1-jQ+UzRP+Q8bHwmGg2GEVypGMBfc= + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" + integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== dependencies: commondir "^1.0.1" make-dir "^2.0.0" @@ -3728,83 +3572,75 @@ find-cache-dir@^2.1.0: find-cache-dir@^3.3.1: version "3.3.1" - resolved "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880" - integrity sha1-ibM/rUpGcNqpT4Vff74x1thP6IA= + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880" + integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ== dependencies: commondir "^1.0.1" make-dir "^3.0.2" pkg-dir "^4.1.0" -find-up@^1.0.0: - version "1.1.2" - resolved "https://registry.npm.taobao.org/find-up/download/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" - integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= - dependencies: - path-exists "^2.0.0" - pinkie-promise "^2.0.0" - find-up@^3.0.0: version "3.0.0" - resolved "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" - integrity sha1-SRafHXmTQwZG2mHsxa41XCHJe3M= + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== dependencies: locate-path "^3.0.0" find-up@^4.0.0: version "4.1.0" - resolved "https://registry.npm.taobao.org/find-up/download/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" - integrity sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk= + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== dependencies: locate-path "^5.0.0" path-exists "^4.0.0" findup-sync@^3.0.0: version "3.0.0" - resolved "https://registry.npm.taobao.org/findup-sync/download/findup-sync-3.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffindup-sync%2Fdownload%2Ffindup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1" - integrity sha1-F7EI+e5RLft6XH88iyfqnhqcCNE= + resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-3.0.0.tgz#17b108f9ee512dfb7a5c7f3c8b27ea9e1a9c08d1" + integrity sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg== dependencies: detect-file "^1.0.0" is-glob "^4.0.0" micromatch "^3.0.4" resolve-dir "^1.0.1" -flag-icon-css@^3.4.6: +flag-icon-css@^3.5.0: version "3.5.0" - resolved "https://registry.npm.taobao.org/flag-icon-css/download/flag-icon-css-3.5.0.tgz#430747d5cb91e60babf85494de99173c16dc7cf2" - integrity sha1-QwdH1cuR5gur+FSU3pkXPBbcfPI= + resolved "https://registry.yarnpkg.com/flag-icon-css/-/flag-icon-css-3.5.0.tgz#430747d5cb91e60babf85494de99173c16dc7cf2" + integrity sha512-pgJnJLrtb0tcDgU1fzGaQXmR8h++nXvILJ+r5SmOXaaL/2pocunQo2a8TAXhjQnBpRLPtZ1KCz/TYpqeNuE2ew== -flatted@^3.0.4: - version "3.0.5" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.0.5.tgz#2db8faa9fc50b48b7c4ba3d6399846538fdab9f6" - integrity sha512-bDEpEsHk2pHn4R+slxblk0N0gK5lQsK2aRwW6LJyIpX3o9qhoVkufDjDvU3fpSJbR7UgOl+icRoR9agYyjzMTw== +flatted@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.1.tgz#c4b489e80096d9df1dfc97c79871aea7c617c469" + integrity sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA== flatten@^1.0.2: version "1.0.3" - resolved "https://registry.npm.taobao.org/flatten/download/flatten-1.0.3.tgz#c1283ac9f27b368abc1e36d1ff7b04501a30356b" - integrity sha1-wSg6yfJ7Noq8HjbR/3sEUBowNWs= + resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.3.tgz#c1283ac9f27b368abc1e36d1ff7b04501a30356b" + integrity sha512-dVsPA/UwQ8+2uoFe5GHtiBMu48dWLTdsuEd7CKGlZlD78r1TTWBvDuFaFGKCo/ZfEr95Uk56vZoX86OsHkUeIg== -flot@^4.2.0: - version "4.2.1" - resolved "https://registry.npm.taobao.org/flot/download/flot-4.2.1.tgz#a44ea240decee51cbd75d97ca69ec12e59365d27" - integrity sha1-pE6iQN7O5Ry9ddl8pp7BLlk2XSc= +flot@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/flot/-/flot-4.2.2.tgz#0661d9e3805c86ccd36560f9602a0d1484d60fe8" + integrity sha512-Strct/A27o0TA25X7Z0pxKhwK4djiP1Kjeqj0tkiqrkRu1qYPqfbp5BYuxEL8CWDNtj85Uc0PnG2E2plo1+VMg== flush-write-stream@^1.0.0: version "1.1.1" - resolved "https://registry.npm.taobao.org/flush-write-stream/download/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" - integrity sha1-jdfYc6G6vCB9lOrQwuDkQnbr8ug= + resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" + integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== dependencies: inherits "^2.0.3" readable-stream "^2.3.6" follow-redirects@^1.0.0: - version "1.12.1" - resolved "https://registry.npm.taobao.org/follow-redirects/download/follow-redirects-1.12.1.tgz?cache=0&sync_timestamp=1592518278637&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffollow-redirects%2Fdownload%2Ffollow-redirects-1.12.1.tgz#de54a6205311b93d60398ebc01cf7015682312b6" - integrity sha1-3lSmIFMRuT1gOY68Ac9wFWgjErY= + version "1.14.1" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.1.tgz#d9114ded0a1cfdd334e164e6662ad02bfd91ff43" + integrity sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg== -fontkit@^1.8.0: +fontkit@^1.8.1: version "1.8.1" - resolved "https://registry.npm.taobao.org/fontkit/download/fontkit-1.8.1.tgz#ae77485376f1096b45548bf6ced9a07af62a7846" - integrity sha1-rndIU3bxCWtFVIv2ztmgevYqeEY= + resolved "https://registry.yarnpkg.com/fontkit/-/fontkit-1.8.1.tgz#ae77485376f1096b45548bf6ced9a07af62a7846" + integrity sha512-BsNCjDoYRxmNWFdAuK1y9bQt+igIxGtTC9u/jSFjR9MKhmI00rP1fwSvERt+5ddE82544l0XH5mzXozQVUy2Tw== dependencies: babel-runtime "^6.26.0" brfs "^2.0.0" @@ -3820,68 +3656,54 @@ fontkit@^1.8.0: for-in@^1.0.2: version "1.0.2" - resolved "https://registry.npm.taobao.org/for-in/download/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.npm.taobao.org/forever-agent/download/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= - -form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.npm.taobao.org/form-data/download/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - integrity sha1-3M5SwF9kTymManq5Nr1yTO/786Y= - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - -forwarded@~0.1.2: - version "0.1.2" - resolved "https://registry.npm.taobao.org/forwarded/download/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" - integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= +forwarded@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811" + integrity sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow== fragment-cache@^0.2.1: version "0.2.1" - resolved "https://registry.npm.taobao.org/fragment-cache/download/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= dependencies: map-cache "^0.2.2" fresh@0.5.2: version "0.5.2" - resolved "https://registry.npm.taobao.org/fresh/download/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= from2@^2.1.0: version "2.3.0" - resolved "https://registry.npm.taobao.org/from2/download/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" + resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= dependencies: inherits "^2.0.1" readable-stream "^2.0.0" -fs-extra@^9.0.0: - version "9.0.1" - resolved "https://registry.npm.taobao.org/fs-extra/download/fs-extra-9.0.1.tgz?cache=0&sync_timestamp=1591231538901&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffs-extra%2Fdownload%2Ffs-extra-9.0.1.tgz#910da0062437ba4c39fedd863f1675ccfefcb9fc" - integrity sha1-kQ2gBiQ3ukw5/t2GPxZ1zP78ufw= +fs-extra@^9.1.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" + integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== dependencies: at-least-node "^1.0.0" graceful-fs "^4.2.0" jsonfile "^6.0.1" - universalify "^1.0.0" + universalify "^2.0.0" fs-minipass@^2.0.0: version "2.1.0" - resolved "https://registry.npm.taobao.org/fs-minipass/download/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" - integrity sha1-f1A2/b8SxjwWkZDL5BmchSJx+fs= + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" + integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== dependencies: minipass "^3.0.0" fs-write-stream-atomic@^1.0.8: version "1.0.10" - resolved "https://registry.npm.taobao.org/fs-write-stream-atomic/download/fs-write-stream-atomic-1.0.10.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffs-write-stream-atomic%2Fdownload%2Ffs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" + resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= dependencies: graceful-fs "^4.1.2" @@ -3891,116 +3713,87 @@ fs-write-stream-atomic@^1.0.8: fs.realpath@^1.0.0: version "1.0.0" - resolved "https://registry.npm.taobao.org/fs.realpath/download/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= fsevents@^1.2.7: version "1.2.13" - resolved "https://registry.npm.taobao.org/fsevents/download/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" - integrity sha1-8yXLBFVZJCi88Rs4M3DvcOO/zDg= + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" + integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== dependencies: bindings "^1.5.0" nan "^2.12.1" -fsevents@~2.1.2: - version "2.1.3" - resolved "https://registry.npm.taobao.org/fsevents/download/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" - integrity sha1-+3OHA66NL5/pAMM4Nt3r7ouX8j4= +fsevents@~2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== -fstream@^1.0.0, fstream@^1.0.12: - version "1.0.12" - resolved "https://registry.npm.taobao.org/fstream/download/fstream-1.0.12.tgz#4e8ba8ee2d48be4f7d0de505455548eae5932045" - integrity sha1-Touo7i1Ivk99DeUFRVVI6uWTIEU= - dependencies: - graceful-fs "^4.1.2" - inherits "~2.0.0" - mkdirp ">=0.5 0" - rimraf "2" +fullcalendar@^5.5.1: + version "5.7.2" + resolved "https://registry.yarnpkg.com/fullcalendar/-/fullcalendar-5.7.2.tgz#44052f9cfecd434f5a161997bd9f57be6c6fa732" + integrity sha512-hpm2rY3oPBnl8Ql8P+WsBhV9gZuUe0qA+aU6lt7ZsOKxYORhlG3t4KDEtd0lQKnET+qJKuZrst9ubN4o9KsAqA== function-bind@^1.1.1: version "1.1.1" - resolved "https://registry.npm.taobao.org/function-bind/download/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0= - -gauge@~2.7.3: - version "2.7.4" - resolved "https://registry.npm.taobao.org/gauge/download/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" - integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= - dependencies: - aproba "^1.0.3" - console-control-strings "^1.0.0" - has-unicode "^2.0.0" - object-assign "^4.1.0" - signal-exit "^3.0.0" - string-width "^1.0.1" - strip-ansi "^3.0.1" - wide-align "^1.1.0" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== -gaze@^1.0.0: - version "1.1.3" - resolved "https://registry.npm.taobao.org/gaze/download/gaze-1.1.3.tgz#c441733e13b927ac8c0ff0b4c3b033f28812924a" - integrity sha1-xEFzPhO5J6yMD/C0w7Az8ogSkko= - dependencies: - globule "^1.0.0" - -gensync@^1.0.0-beta.1: - version "1.0.0-beta.1" - resolved "https://registry.npm.taobao.org/gensync/download/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269" - integrity sha1-WPQ2H/mH5f9uHnohCCeqNx6qwmk= +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== get-assigned-identifiers@^1.1.0: version "1.2.0" - resolved "https://registry.npm.taobao.org/get-assigned-identifiers/download/get-assigned-identifiers-1.2.0.tgz#6dbf411de648cbaf8d9169ebb0d2d576191e2ff1" - integrity sha1-bb9BHeZIy6+NkWnrsNLVdhkeL/E= + resolved "https://registry.yarnpkg.com/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz#6dbf411de648cbaf8d9169ebb0d2d576191e2ff1" + integrity sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ== get-caller-file@^2.0.1: version "2.0.5" - resolved "https://registry.npm.taobao.org/get-caller-file/download/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha1-T5RBKoLbMvNuOwuXQfipf+sDH34= + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-stdin@^4.0.1: - version "4.0.1" - resolved "https://registry.npm.taobao.org/get-stdin/download/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" - integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4= +get-intrinsic@^1.0.2, get-intrinsic@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" + integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" get-stream@^4.0.0: version "4.1.0" - resolved "https://registry.npm.taobao.org/get-stream/download/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha1-wbJVV189wh1Zv8ec09K0axw6VLU= + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== dependencies: pump "^3.0.0" get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" - resolved "https://registry.npm.taobao.org/get-value/download/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.npm.taobao.org/getpass/download/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= - dependencies: - assert-plus "^1.0.0" - glob-parent@^3.1.0: version "3.1.0" - resolved "https://registry.npm.taobao.org/glob-parent/download/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= dependencies: is-glob "^3.1.0" path-dirname "^1.0.0" glob-parent@~5.1.0: - version "5.1.1" - resolved "https://registry.npm.taobao.org/glob-parent/download/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" - integrity sha1-tsHvQXxOVmPqSY8cRa+saRa7wik= + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: is-glob "^4.0.1" -glob@^7.0.0, glob@^7.0.3, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@~7.1.1: - version "7.1.6" - resolved "https://registry.npm.taobao.org/glob/download/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" - integrity sha1-FB8zuBp8JJLhJVlDB0gMRmeSeKY= +glob@^7.0.3, glob@^7.1.3, glob@^7.1.4, glob@^7.1.7: + version "7.1.7" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" + integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" @@ -4011,8 +3804,8 @@ glob@^7.0.0, glob@^7.0.3, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, gl global-modules@^1.0.0: version "1.0.0" - resolved "https://registry.npm.taobao.org/global-modules/download/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" - integrity sha1-bXcPDrUjrHgWTXK15xqIdyZcw+o= + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" + integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== dependencies: global-prefix "^1.0.1" is-windows "^1.0.1" @@ -4020,14 +3813,14 @@ global-modules@^1.0.0: global-modules@^2.0.0: version "2.0.0" - resolved "https://registry.npm.taobao.org/global-modules/download/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" - integrity sha1-mXYFrSNF8n9RU5vqJldEISFcd4A= + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" + integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== dependencies: global-prefix "^3.0.0" global-prefix@^1.0.1: version "1.0.2" - resolved "https://registry.npm.taobao.org/global-prefix/download/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4= dependencies: expand-tilde "^2.0.2" @@ -4038,8 +3831,8 @@ global-prefix@^1.0.1: global-prefix@^3.0.0: version "3.0.0" - resolved "https://registry.npm.taobao.org/global-prefix/download/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" - integrity sha1-/IX3MGTfafUEIfR/iD/luRO6m5c= + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" + integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== dependencies: ini "^1.3.5" kind-of "^6.0.2" @@ -4047,12 +3840,12 @@ global-prefix@^3.0.0: globals@^11.1.0: version "11.12.0" - resolved "https://registry.npm.taobao.org/globals/download/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" - integrity sha1-q4eVM4hooLq9hSV1gBjCp+uVxC4= + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== globby@^6.1.0: version "6.1.0" - resolved "https://registry.npm.taobao.org/globby/download/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" + resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= dependencies: array-union "^1.0.1" @@ -4061,75 +3854,46 @@ globby@^6.1.0: pify "^2.0.0" pinkie-promise "^2.0.0" -globule@^1.0.0: - version "1.3.2" - resolved "https://registry.npm.taobao.org/globule/download/globule-1.3.2.tgz?cache=0&sync_timestamp=1591641966255&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglobule%2Fdownload%2Fglobule-1.3.2.tgz#d8bdd9e9e4eef8f96e245999a5dee7eb5d8529c4" - integrity sha1-2L3Z6eTu+PluJFmZpd7n612FKcQ= - dependencies: - glob "~7.1.1" - lodash "~4.17.10" - minimatch "~3.0.2" - good-listener@^1.2.2: version "1.2.2" - resolved "https://registry.npm.taobao.org/good-listener/download/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50" + resolved "https://registry.yarnpkg.com/good-listener/-/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50" integrity sha1-1TswzfkxPf+33JoNR3CWqm0UXFA= dependencies: delegate "^3.1.2" graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0: - version "4.2.4" - resolved "https://registry.npm.taobao.org/graceful-fs/download/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" - integrity sha1-Ila94U02MpWMRl68ltxGfKB6Kfs= + version "4.2.6" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" + integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== handle-thing@^2.0.0: version "2.0.1" - resolved "https://registry.npm.taobao.org/handle-thing/download/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" - integrity sha1-hX95zjWVgMNA1DCBzGSJcNC7I04= - -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.npm.taobao.org/har-schema/download/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= - -har-validator@~5.1.3: - version "5.1.3" - resolved "https://registry.npm.taobao.org/har-validator/download/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" - integrity sha1-HvievT5JllV2de7ZiTEQ3DUPoIA= - dependencies: - ajv "^6.5.5" - har-schema "^2.0.0" + resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" + integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.npm.taobao.org/has-ansi/download/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= - dependencies: - ansi-regex "^2.0.0" +has-bigints@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" + integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== has-flag@^3.0.0: version "3.0.0" - resolved "https://registry.npm.taobao.org/has-flag/download/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= has-flag@^4.0.0: version "4.0.0" - resolved "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s= - -has-symbols@^1.0.0, has-symbols@^1.0.1: - version "1.0.1" - resolved "https://registry.npm.taobao.org/has-symbols/download/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" - integrity sha1-n1IUdYpEGWxAbZvXbOv4HsLdMeg= + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-unicode@^2.0.0: - version "2.0.1" - resolved "https://registry.npm.taobao.org/has-unicode/download/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" - integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= +has-symbols@^1.0.1, has-symbols@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" + integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== has-value@^0.3.1: version "0.3.1" - resolved "https://registry.npm.taobao.org/has-value/download/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= dependencies: get-value "^2.0.3" @@ -4138,7 +3902,7 @@ has-value@^0.3.1: has-value@^1.0.0: version "1.0.0" - resolved "https://registry.npm.taobao.org/has-value/download/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= dependencies: get-value "^2.0.6" @@ -4147,12 +3911,12 @@ has-value@^1.0.0: has-values@^0.1.4: version "0.1.4" - resolved "https://registry.npm.taobao.org/has-values/download/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= has-values@^1.0.0: version "1.0.0" - resolved "https://registry.npm.taobao.org/has-values/download/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= dependencies: is-number "^3.0.0" @@ -4160,15 +3924,15 @@ has-values@^1.0.0: has@^1.0.0, has@^1.0.1, has@^1.0.3: version "1.0.3" - resolved "https://registry.npm.taobao.org/has/download/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y= + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== dependencies: function-bind "^1.1.1" hash-base@^3.0.0: version "3.1.0" - resolved "https://registry.npm.taobao.org/hash-base/download/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" - integrity sha1-VcOB2eBuHSmXqIO0o/3f5/DTrzM= + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" + integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== dependencies: inherits "^2.0.4" readable-stream "^3.6.0" @@ -4184,8 +3948,8 @@ hash.js@^1.0.0, hash.js@^1.0.3: hex-color-regex@^1.1.0: version "1.1.0" - resolved "https://registry.npm.taobao.org/hex-color-regex/download/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" - integrity sha1-TAb8y0YC/iYCs8k9+C1+fb8aio4= + resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" + integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== hmac-drbg@^1.0.1: version "1.0.1" @@ -4198,19 +3962,14 @@ hmac-drbg@^1.0.1: homedir-polyfill@^1.0.1: version "1.0.3" - resolved "https://registry.npm.taobao.org/homedir-polyfill/download/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" - integrity sha1-dDKYzvTlrz4ZQWH7rcwhUdOgWOg= + resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" + integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== dependencies: parse-passwd "^1.0.0" -hosted-git-info@^2.1.4: - version "2.8.9" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" - integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== - hpack.js@^2.1.6: version "2.1.6" - resolved "https://registry.npm.taobao.org/hpack.js/download/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" + resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI= dependencies: inherits "^2.0.1" @@ -4220,33 +3979,28 @@ hpack.js@^2.1.6: hsl-regex@^1.0.0: version "1.0.0" - resolved "https://registry.npm.taobao.org/hsl-regex/download/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" + resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4= hsla-regex@^1.0.0: version "1.0.0" - resolved "https://registry.npm.taobao.org/hsla-regex/download/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" + resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= -html-comment-regex@^1.1.0: - version "1.1.2" - resolved "https://registry.npm.taobao.org/html-comment-regex/download/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" - integrity sha1-l9RoiutcgYhqNk+qDK0d2hTUM6c= - html-entities@^1.3.1: - version "1.3.1" - resolved "https://registry.npm.taobao.org/html-entities/download/html-entities-1.3.1.tgz#fb9a1a4b5b14c5daba82d3e34c6ae4fe701a0e44" - integrity sha1-+5oaS1sUxdq6gtPjTGrk/nAaDkQ= + version "1.4.0" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.4.0.tgz#cfbd1b01d2afaf9adca1b10ae7dffab98c71d2dc" + integrity sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA== http-deceiver@^1.2.7: version "1.2.7" - resolved "https://registry.npm.taobao.org/http-deceiver/download/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" + resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= http-errors@1.7.2: version "1.7.2" - resolved "https://registry.npm.taobao.org/http-errors/download/http-errors-1.7.2.tgz?cache=0&sync_timestamp=1593407611415&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" - integrity sha1-T1ApzxMjnzEDblsuVSkrz7zIXI8= + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" + integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== dependencies: depd "~1.1.2" inherits "2.0.3" @@ -4256,7 +4010,7 @@ http-errors@1.7.2: http-errors@~1.6.2: version "1.6.3" - resolved "https://registry.npm.taobao.org/http-errors/download/http-errors-1.6.3.tgz?cache=0&sync_timestamp=1593407611415&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= dependencies: depd "~1.1.2" @@ -4266,8 +4020,8 @@ http-errors@~1.6.2: http-errors@~1.7.2: version "1.7.3" - resolved "https://registry.npm.taobao.org/http-errors/download/http-errors-1.7.3.tgz?cache=0&sync_timestamp=1593407611415&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" - integrity sha1-bGGeT5xgMIw4UZSYwU+7EKrOuwY= + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" + integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== dependencies: depd "~1.1.2" inherits "2.0.4" @@ -4276,14 +4030,14 @@ http-errors@~1.7.2: toidentifier "1.0.0" http-parser-js@>=0.5.1: - version "0.5.2" - resolved "https://registry.npm.taobao.org/http-parser-js/download/http-parser-js-0.5.2.tgz#da2e31d237b393aae72ace43882dd7e270a8ff77" - integrity sha1-2i4x0jezk6rnKs5DiC3X4nCo/3c= + version "0.5.3" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.3.tgz#01d2709c79d41698bb01d4decc5e9da4e4a033d9" + integrity sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg== http-proxy-middleware@0.19.1: version "0.19.1" - resolved "https://registry.npm.taobao.org/http-proxy-middleware/download/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" - integrity sha1-GDx9xKoUeRUDBkmMIQza+WCApDo= + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" + integrity sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q== dependencies: http-proxy "^1.17.0" is-glob "^4.0.0" @@ -4292,284 +4046,270 @@ http-proxy-middleware@0.19.1: http-proxy@^1.17.0: version "1.18.1" - resolved "https://registry.npm.taobao.org/http-proxy/download/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" - integrity sha1-QBVB8FNIhLv5UmAzTnL4juOXZUk= + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" + integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== dependencies: eventemitter3 "^4.0.0" follow-redirects "^1.0.0" requires-port "^1.0.0" -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.npm.taobao.org/http-signature/download/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - https-browserify@^1.0.0: version "1.0.0" - resolved "https://registry.npm.taobao.org/https-browserify/download/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= icheck-bootstrap@^3.0.1: version "3.0.1" - resolved "https://registry.npm.taobao.org/icheck-bootstrap/download/icheck-bootstrap-3.0.1.tgz#60c9c9a71524e1d9dd5bd05167a62fef05cc3a1b" - integrity sha1-YMnJpxUk4dndW9BRZ6Yv7wXMOhs= + resolved "https://registry.yarnpkg.com/icheck-bootstrap/-/icheck-bootstrap-3.0.1.tgz#60c9c9a71524e1d9dd5bd05167a62fef05cc3a1b" + integrity sha512-Rj3SybdcMcayhsP4IJ+hmCNgCKclaFcs/5zwCuLXH1WMo468NegjhZVxbSNKhEjJjnwc4gKETogUmPYSQ9lEZQ== iconv-lite@0.4.24: version "0.4.24" - resolved "https://registry.npm.taobao.org/iconv-lite/download/iconv-lite-0.4.24.tgz?cache=0&sync_timestamp=1594184264130&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ficonv-lite%2Fdownload%2Ficonv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha1-ICK0sl+93CHS9SSXSkdKr+czkIs= + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== dependencies: safer-buffer ">= 2.1.2 < 3" -iconv-lite@^0.6.0: - version "0.6.2" - resolved "https://registry.npm.taobao.org/iconv-lite/download/iconv-lite-0.6.2.tgz?cache=0&sync_timestamp=1594184264130&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ficonv-lite%2Fdownload%2Ficonv-lite-0.6.2.tgz#ce13d1875b0c3a674bd6a04b7f76b01b1b6ded01" - integrity sha1-zhPRh1sMOmdL1qBLf3awGxtt7QE= +iconv-lite@^0.6.2: + version "0.6.3" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== dependencies: safer-buffer ">= 2.1.2 < 3.0.0" icss-utils@^4.0.0, icss-utils@^4.1.1: version "4.1.1" - resolved "https://registry.npm.taobao.org/icss-utils/download/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467" - integrity sha1-IRcLU3ie4nRHwvR91oMIFAP5pGc= + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-4.1.1.tgz#21170b53789ee27447c2f47dd683081403f9a467" + integrity sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA== dependencies: postcss "^7.0.14" ieee754@^1.1.4: - version "1.1.13" - resolved "https://registry.npm.taobao.org/ieee754/download/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" - integrity sha1-7BaFWOlaoYH9h9N/VcMrvLZwi4Q= + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== iferr@^0.1.5: version "0.1.5" - resolved "https://registry.npm.taobao.org/iferr/download/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" + resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= imagesloaded@^4.1.4: version "4.1.4" - resolved "https://registry.npm.taobao.org/imagesloaded/download/imagesloaded-4.1.4.tgz#1376efcd162bb768c34c3727ac89cc04051f3cc7" - integrity sha1-E3bvzRYrt2jDTDcnrInMBAUfPMc= + resolved "https://registry.yarnpkg.com/imagesloaded/-/imagesloaded-4.1.4.tgz#1376efcd162bb768c34c3727ac89cc04051f3cc7" + integrity sha512-ltiBVcYpc/TYTF5nolkMNsnREHW+ICvfQ3Yla2Sgr71YFwQ86bDwV9hgpFhFtrGPuwEx5+LqOHIrdXBdoWwwsA== dependencies: ev-emitter "^1.0.0" immediate@~3.0.5: version "3.0.6" - resolved "https://registry.npm.taobao.org/immediate/download/immediate-3.0.6.tgz?cache=0&sync_timestamp=1591712459989&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fimmediate%2Fdownload%2Fimmediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" + resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" integrity sha1-nbHb0Pr43m++D13V5Wu2BigN5ps= import-cwd@^2.0.0: version "2.1.0" - resolved "https://registry.npm.taobao.org/import-cwd/download/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" + resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" integrity sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk= dependencies: import-from "^2.1.0" import-fresh@^2.0.0: version "2.0.0" - resolved "https://registry.npm.taobao.org/import-fresh/download/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= dependencies: caller-path "^2.0.0" resolve-from "^3.0.0" import-fresh@^3.1.0: - version "3.2.1" - resolved "https://registry.npm.taobao.org/import-fresh/download/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" - integrity sha1-Yz/2GFBueTr1rJG/SLcmd+FcvmY= + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== dependencies: parent-module "^1.0.0" resolve-from "^4.0.0" import-from@^2.1.0: version "2.1.0" - resolved "https://registry.npm.taobao.org/import-from/download/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" + resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" integrity sha1-M1238qev/VOqpHHUuAId7ja387E= dependencies: resolve-from "^3.0.0" import-local@^2.0.0: version "2.0.0" - resolved "https://registry.npm.taobao.org/import-local/download/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" - integrity sha1-VQcL44pZk88Y72236WH1vuXFoJ0= + resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" + integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== dependencies: pkg-dir "^3.0.0" resolve-cwd "^2.0.0" imurmurhash@^0.1.4: version "0.1.4" - resolved "https://registry.npm.taobao.org/imurmurhash/download/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= -in-publish@^2.0.0: - version "2.0.1" - resolved "https://registry.npm.taobao.org/in-publish/download/in-publish-2.0.1.tgz?cache=0&sync_timestamp=1584388562094&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fin-publish%2Fdownload%2Fin-publish-2.0.1.tgz#948b1a535c8030561cea522f73f78f4be357e00c" - integrity sha1-lIsaU1yAMFYc6lIvc/ePS+NX4Aw= - -indent-string@^2.1.0: - version "2.1.0" - resolved "https://registry.npm.taobao.org/indent-string/download/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" - integrity sha1-ji1INIdCEhtKghi3oTfppSBJ3IA= - dependencies: - repeating "^2.0.0" - indent-string@^4.0.0: version "4.0.0" - resolved "https://registry.npm.taobao.org/indent-string/download/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" - integrity sha1-Yk+PRJfWGbLZdoUx1Y9BIoVNclE= + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== indexes-of@^1.0.1: version "1.0.1" - resolved "https://registry.npm.taobao.org/indexes-of/download/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" + resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= infer-owner@^1.0.3, infer-owner@^1.0.4: version "1.0.4" - resolved "https://registry.npm.taobao.org/infer-owner/download/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" - integrity sha1-xM78qo5RBRwqQLos6KPScpWvlGc= + resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" + integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== inflight@^1.0.4: version "1.0.6" - resolved "https://registry.npm.taobao.org/inflight/download/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= dependencies: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: version "2.0.4" - resolved "https://registry.npm.taobao.org/inherits/download/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w= + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== inherits@2.0.1: version "2.0.1" - resolved "https://registry.npm.taobao.org/inherits/download/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= inherits@2.0.3: version "2.0.3" - resolved "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= ini@^1.3.4, ini@^1.3.5: - version "1.3.7" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.7.tgz#a09363e1911972ea16d7a8851005d84cf09a9a84" - integrity sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ== + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== -inputmask@^5.0.3: - version "5.0.3" - resolved "https://registry.npm.taobao.org/inputmask/download/inputmask-5.0.3.tgz#f6758de84b7a67c3c246f520c5f3e2c383b3fd68" - integrity sha1-9nWN6Et6Z8PCRvUgxfPiw4Oz/Wg= +inputmask@^5.0.5: + version "5.0.6" + resolved "https://registry.yarnpkg.com/inputmask/-/inputmask-5.0.6.tgz#c537a197b0c15ff926db4c2ea654f9768015b1c4" + integrity sha512-/QjZuOEB7fJKMEu3xKL3LlycctMmK53Zr/fGSFtcjrfYxXks93iptutYowWNR1oUsHr2QIzy6V3MMYz07P2Cfw== internal-ip@^4.3.0: version "4.3.0" - resolved "https://registry.npm.taobao.org/internal-ip/download/internal-ip-4.3.0.tgz?cache=0&sync_timestamp=1583983247512&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finternal-ip%2Fdownload%2Finternal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" - integrity sha1-hFRSuq2dLKO2nGNaE3rLmg2tCQc= + resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" + integrity sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg== dependencies: default-gateway "^4.2.0" ipaddr.js "^1.9.0" interpret@^1.4.0: version "1.4.0" - resolved "https://registry.npm.taobao.org/interpret/download/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" - integrity sha1-Zlq4vE2iendKQFhOgS4+D6RbGh4= - -invariant@^2.2.2, invariant@^2.2.4: - version "2.2.4" - resolved "https://registry.npm.taobao.org/invariant/download/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" - integrity sha1-YQ88ksk1nOHbYW5TgAjSP/NRWOY= - dependencies: - loose-envify "^1.0.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" + integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== ion-rangeslider@^2.3.1: version "2.3.1" - resolved "https://registry.npm.taobao.org/ion-rangeslider/download/ion-rangeslider-2.3.1.tgz#92ade52cb56fc30b9162d0483ff02b6f9ed237c2" - integrity sha1-kq3lLLVvwwuRYtBIP/Arb57SN8I= + resolved "https://registry.yarnpkg.com/ion-rangeslider/-/ion-rangeslider-2.3.1.tgz#92ade52cb56fc30b9162d0483ff02b6f9ed237c2" + integrity sha512-6V+24FD13/feliI485gnRHZYD9Ev64M5NAFTxnVib516ATHa9PlXQrC+nOiPngouRYTCLPJyokAJEi3e1Umi5g== ip-regex@^2.1.0: version "2.1.0" - resolved "https://registry.npm.taobao.org/ip-regex/download/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= ip@^1.1.0, ip@^1.1.5: version "1.1.5" - resolved "https://registry.npm.taobao.org/ip/download/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" + resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= ipaddr.js@1.9.1, ipaddr.js@^1.9.0: version "1.9.1" - resolved "https://registry.npm.taobao.org/ipaddr.js/download/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" - integrity sha1-v/OFQ+64mEglB5/zoqjmy9RngbM= + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== is-absolute-url@^2.0.0: version "2.1.0" - resolved "https://registry.npm.taobao.org/is-absolute-url/download/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= is-absolute-url@^3.0.3: version "3.0.3" - resolved "https://registry.npm.taobao.org/is-absolute-url/download/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" - integrity sha1-lsaiK2ojkpsR6gr7GDbDatSl1pg= + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" + integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== is-accessor-descriptor@^0.1.6: version "0.1.6" - resolved "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= dependencies: kind-of "^3.0.2" is-accessor-descriptor@^1.0.0: version "1.0.0" - resolved "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" - integrity sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY= + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== dependencies: kind-of "^6.0.0" is-arguments@^1.0.4: - version "1.0.4" - resolved "https://registry.npm.taobao.org/is-arguments/download/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3" - integrity sha1-P6+WbHy6D/Q3+zH2JQCC/PBEjPM= + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.0.tgz#62353031dfbee07ceb34656a6bde59efecae8dd9" + integrity sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg== + dependencies: + call-bind "^1.0.0" is-arrayish@^0.2.1: version "0.2.1" - resolved "https://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= is-arrayish@^0.3.1: version "0.3.2" - resolved "https://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" - integrity sha1-RXSirlb3qyBolvtDHq7tBm/fjwM= + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== + +is-bigint@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.2.tgz#ffb381442503235ad245ea89e45b3dbff040ee5a" + integrity sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA== is-binary-path@^1.0.0: version "1.0.1" - resolved "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= dependencies: binary-extensions "^1.0.0" is-binary-path@~2.1.0: version "2.1.0" - resolved "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" - integrity sha1-6h9/O4DwZCNug0cPhsCcJU+0Wwk= + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== dependencies: binary-extensions "^2.0.0" +is-boolean-object@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.1.tgz#3c0878f035cb821228d350d2e1e36719716a3de8" + integrity sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng== + dependencies: + call-bind "^1.0.2" + is-buffer@^1.1.5: version "1.1.6" - resolved "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - integrity sha1-76ouqdqg16suoTqXsritUf776L4= + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== -is-callable@^1.1.4, is-callable@^1.2.0: - version "1.2.0" - resolved "https://registry.npm.taobao.org/is-callable/download/is-callable-1.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-callable%2Fdownload%2Fis-callable-1.2.0.tgz#83336560b54a38e35e3a2df7afd0454d691468bb" - integrity sha1-gzNlYLVKOONeOi33r9BFTWkUaLs= +is-callable@^1.1.4, is-callable@^1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e" + integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ== is-color-stop@^1.0.0: version "1.1.0" - resolved "https://registry.npm.taobao.org/is-color-stop/download/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" + resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U= dependencies: css-color-names "^0.0.4" @@ -4579,29 +4319,36 @@ is-color-stop@^1.0.0: rgb-regex "^1.0.1" rgba-regex "^1.0.0" +is-core-module@^2.2.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.4.0.tgz#8e9fc8e15027b011418026e98f0e6f4d86305cc1" + integrity sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A== + dependencies: + has "^1.0.3" + is-data-descriptor@^0.1.4: version "0.1.4" - resolved "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= dependencies: kind-of "^3.0.2" is-data-descriptor@^1.0.0: version "1.0.0" - resolved "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" - integrity sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc= + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== dependencies: kind-of "^6.0.0" is-date-object@^1.0.1: - version "1.0.2" - resolved "https://registry.npm.taobao.org/is-date-object/download/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" - integrity sha1-vac28s2P0G0yhE53Q7+nSUw7/X4= + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.4.tgz#550cfcc03afada05eea3dd30981c7b09551f73e5" + integrity sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A== is-descriptor@^0.1.0: version "0.1.6" - resolved "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" - integrity sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco= + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== dependencies: is-accessor-descriptor "^0.1.6" is-data-descriptor "^0.1.4" @@ -4609,8 +4356,8 @@ is-descriptor@^0.1.0: is-descriptor@^1.0.0, is-descriptor@^1.0.2: version "1.0.2" - resolved "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" - integrity sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw= + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== dependencies: is-accessor-descriptor "^1.0.0" is-data-descriptor "^1.0.0" @@ -4618,187 +4365,169 @@ is-descriptor@^1.0.0, is-descriptor@^1.0.2: is-directory@^0.3.1: version "0.3.1" - resolved "https://registry.npm.taobao.org/is-directory/download/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" + resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= is-extendable@^0.1.0, is-extendable@^0.1.1: version "0.1.1" - resolved "https://registry.npm.taobao.org/is-extendable/download/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= is-extendable@^1.0.1: version "1.0.1" - resolved "https://registry.npm.taobao.org/is-extendable/download/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - integrity sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ= + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== dependencies: is-plain-object "^2.0.4" is-extglob@^2.1.0, is-extglob@^2.1.1: version "2.1.1" - resolved "https://registry.npm.taobao.org/is-extglob/download/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= -is-finite@^1.0.0: - version "1.1.0" - resolved "https://registry.npm.taobao.org/is-finite/download/is-finite-1.1.0.tgz#904135c77fb42c0641d6aa1bcdbc4daa8da082f3" - integrity sha1-kEE1x3+0LAZB1qobzbxNqo2ggvM= - -is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" - integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= - dependencies: - number-is-nan "^1.0.0" - is-fullwidth-code-point@^2.0.0: version "2.0.0" - resolved "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= is-glob@^3.1.0: version "3.1.0" - resolved "https://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= dependencies: is-extglob "^2.1.0" is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: version "4.0.1" - resolved "https://registry.npm.taobao.org/is-glob/download/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" - integrity sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw= + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== dependencies: is-extglob "^2.1.1" +is-negative-zero@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" + integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== + +is-number-object@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.5.tgz#6edfaeed7950cff19afedce9fbfca9ee6dd289eb" + integrity sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw== + is-number@^3.0.0: version "3.0.0" - resolved "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= dependencies: kind-of "^3.0.2" is-number@^7.0.0: version "7.0.0" - resolved "https://registry.npm.taobao.org/is-number/download/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" - integrity sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss= + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== is-obj@^2.0.0: version "2.0.0" - resolved "https://registry.npm.taobao.org/is-obj/download/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" - integrity sha1-Rz+wXZc3BeP9liBUUBjKjiLvSYI= + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== is-path-cwd@^2.0.0: version "2.2.0" - resolved "https://registry.npm.taobao.org/is-path-cwd/download/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" - integrity sha1-Z9Q7gmZKe1GR/ZEZEn6zAASKn9s= + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" + integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== is-path-in-cwd@^2.0.0: version "2.1.0" - resolved "https://registry.npm.taobao.org/is-path-in-cwd/download/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb" - integrity sha1-v+Lcomxp85cmWkAJljYCk1oFOss= + resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb" + integrity sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ== dependencies: is-path-inside "^2.1.0" is-path-inside@^2.1.0: version "2.1.0" - resolved "https://registry.npm.taobao.org/is-path-inside/download/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2" - integrity sha1-fJgQWH1lmkDSe8201WFuqwWUlLI= + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2" + integrity sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg== dependencies: path-is-inside "^1.0.2" is-plain-obj@^1.0.0: version "1.1.0" - resolved "https://registry.npm.taobao.org/is-plain-obj/download/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= is-plain-object@^2.0.3, is-plain-object@^2.0.4: version "2.0.4" - resolved "https://registry.npm.taobao.org/is-plain-object/download/is-plain-object-2.0.4.tgz?cache=0&sync_timestamp=1594336704799&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-plain-object%2Fdownload%2Fis-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - integrity sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc= + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== dependencies: isobject "^3.0.1" -is-regex@^1.0.4, is-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.npm.taobao.org/is-regex/download/is-regex-1.1.0.tgz#ece38e389e490df0dc21caea2bd596f987f767ff" - integrity sha1-7OOOOJ5JDfDcIcrqK9WW+Yf3Z/8= +is-regex@^1.0.4, is-regex@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.3.tgz#d029f9aff6448b93ebbe3f33dac71511fdcbef9f" + integrity sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ== dependencies: - has-symbols "^1.0.1" + call-bind "^1.0.2" + has-symbols "^1.0.2" is-resolvable@^1.0.0: version "1.1.0" - resolved "https://registry.npm.taobao.org/is-resolvable/download/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" - integrity sha1-+xj4fOH+uSUWnJpAfBkxijIG7Yg= + resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" + integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== is-stream@^1.1.0: version "1.1.0" - resolved "https://registry.npm.taobao.org/is-stream/download/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= -is-svg@^3.0.0: - version "3.0.0" - resolved "https://registry.npm.taobao.org/is-svg/download/is-svg-3.0.0.tgz#9321dbd29c212e5ca99c4fa9794c714bcafa2f75" - integrity sha1-kyHb0pwhLlypnE+peUxxS8r6L3U= - dependencies: - html-comment-regex "^1.1.0" +is-string@^1.0.5, is-string@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.6.tgz#3fe5d5992fb0d93404f32584d4b0179a71b54a5f" + integrity sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w== -is-symbol@^1.0.2: - version "1.0.3" - resolved "https://registry.npm.taobao.org/is-symbol/download/is-symbol-1.0.3.tgz?cache=0&sync_timestamp=1574296307739&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-symbol%2Fdownload%2Fis-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" - integrity sha1-OOEBS55jKb4N6dJKQU/XRB7GGTc= +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== dependencies: - has-symbols "^1.0.1" - -is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.npm.taobao.org/is-typedarray/download/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= - -is-utf8@^0.2.0: - version "0.2.1" - resolved "https://registry.npm.taobao.org/is-utf8/download/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" - integrity sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI= + has-symbols "^1.0.2" is-windows@^1.0.1, is-windows@^1.0.2: version "1.0.2" - resolved "https://registry.npm.taobao.org/is-windows/download/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - integrity sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0= + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== is-wsl@^1.1.0: version "1.1.0" - resolved "https://registry.npm.taobao.org/is-wsl/download/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" - resolved "https://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= isexe@^2.0.0: version "2.0.0" - resolved "https://registry.npm.taobao.org/isexe/download/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= isobject@^2.0.0: version "2.1.0" - resolved "https://registry.npm.taobao.org/isobject/download/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= dependencies: isarray "1.0.0" isobject@^3.0.0, isobject@^3.0.1: version "3.0.1" - resolved "https://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.npm.taobao.org/isstream/download/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= - -jest-worker@^26.3.0: - version "26.3.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.3.0.tgz#7c8a97e4f4364b4f05ed8bca8ca0c24de091871f" - integrity sha512-Vmpn2F6IASefL+DVBhPzI2J9/GJUsqzomdeN+P+dK8/jKxbh8R3BtFnx3FIta7wYlPU62cpJMJQo4kuOowcMnw== +jest-worker@^26.5.0: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" + integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== dependencies: "@types/node" "*" merge-stream "^2.0.0" @@ -4806,13 +4535,13 @@ jest-worker@^26.3.0: jquery-knob-chif@^1.2.13: version "1.2.13" - resolved "https://registry.npm.taobao.org/jquery-knob-chif/download/jquery-knob-chif-1.2.13.tgz#5f1e462ef3745d27a9fd66ce1141fe82b44a5762" + resolved "https://registry.yarnpkg.com/jquery-knob-chif/-/jquery-knob-chif-1.2.13.tgz#5f1e462ef3745d27a9fd66ce1141fe82b44a5762" integrity sha1-Xx5GLvN0XSep/WbOEUH+grRKV2I= jquery-mapael@^2.2.0: version "2.2.0" - resolved "https://registry.npm.taobao.org/jquery-mapael/download/jquery-mapael-2.2.0.tgz#a68850c680ef0ce3f8b865e8a48b2a018250ca73" - integrity sha1-pohQxoDvDOP4uGXopIsqAYJQynM= + resolved "https://registry.yarnpkg.com/jquery-mapael/-/jquery-mapael-2.2.0.tgz#a68850c680ef0ce3f8b865e8a48b2a018250ca73" + integrity sha512-B5cVcCkfs7Ezia1Zs8bEfVacYD/GvaASyqQeidApR/NJ1C4igcExk9VULVsgLcTPkxohcZrrz5uCaPXvuKeZWw== dependencies: jquery "^3.0 || ^2.0 || ^1.0" raphael "^2.2.0 || ^2.1.1" @@ -4821,88 +4550,73 @@ jquery-mapael@^2.2.0: jquery-mousewheel@^3.1, jquery-mousewheel@^3.1.13: version "3.1.13" - resolved "https://registry.npm.taobao.org/jquery-mousewheel/download/jquery-mousewheel-3.1.13.tgz#06f0335f16e353a695e7206bf50503cb523a6ee5" + resolved "https://registry.yarnpkg.com/jquery-mousewheel/-/jquery-mousewheel-3.1.13.tgz#06f0335f16e353a695e7206bf50503cb523a6ee5" integrity sha1-BvAzXxbjU6aV5yBr9QUDy1I6buU= jquery-ui-dist@^1.12.1: version "1.12.1" - resolved "https://registry.npm.taobao.org/jquery-ui-dist/download/jquery-ui-dist-1.12.1.tgz#5c0815d3cc6f90ff5faaf5b268a6e23b4ca904fa" + resolved "https://registry.yarnpkg.com/jquery-ui-dist/-/jquery-ui-dist-1.12.1.tgz#5c0815d3cc6f90ff5faaf5b268a6e23b4ca904fa" integrity sha1-XAgV08xvkP9fqvWyaKbiO0ypBPo= -jquery-validation@^1.19.1: +jquery-validation@^1.19.3: version "1.19.3" resolved "https://registry.yarnpkg.com/jquery-validation/-/jquery-validation-1.19.3.tgz#50b350eba8b02bcfd119ba15f199487b7eb64086" integrity sha512-iXxCS5W7STthSTMFX/NDZfWHBLbJ1behVK3eAgHXAV8/0vRa9M4tiqHvJMr39VGWHMGdlkhrtrkBuaL2UlE8yw== -jquery@>=1.10, jquery@>=1.12.0, jquery@>=1.7, jquery@>=2.1.0, jquery@^3.0, "jquery@^3.0 || ^2.0 || ^1.0", jquery@^3.4.0, jquery@^3.4.1: - version "3.5.1" - resolved "https://registry.npm.taobao.org/jquery/download/jquery-3.5.1.tgz#d7b4d08e1bfdb86ad2f1a3d039ea17304717abb5" - integrity sha1-17TQjhv9uGrS8aPQOeoXMEcXq7U= +jquery@>=1.10, jquery@>=1.12.0, jquery@>=1.7, jquery@>=2.2, "jquery@^3.0 || ^2.0 || ^1.0", jquery@^3.4.0, jquery@^3.5.1, jquery@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.6.0.tgz#c72a09f15c1bdce142f49dbf1170bdf8adac2470" + integrity sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw== jqvmap-novulnerability@^1.5.1: version "1.5.1" - resolved "https://registry.npm.taobao.org/jqvmap-novulnerability/download/jqvmap-novulnerability-1.5.1.tgz#140c42623ebbe9b9076ea2dd3b8d155fe9f38ae7" - integrity sha1-FAxCYj676bkHbqLdO40VX+nziuc= + resolved "https://registry.yarnpkg.com/jqvmap-novulnerability/-/jqvmap-novulnerability-1.5.1.tgz#140c42623ebbe9b9076ea2dd3b8d155fe9f38ae7" + integrity sha512-O6Jr7AGiut9iNJMelPdy8pH83tNXadOqmhJm5FZy9gtaZ5uuhZK3VNu+YLFuTpXeZI8YXUvlFUYbJJi5XHA+tw== dependencies: jquery "^3.4.0" -js-base64@^2.1.8: - version "2.6.3" - resolved "https://registry.npm.taobao.org/js-base64/download/js-base64-2.6.3.tgz?cache=0&sync_timestamp=1594870949745&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-base64%2Fdownload%2Fjs-base64-2.6.3.tgz#7afdb9b57aa7717e15d370b66e8f36a9cb835dc3" - integrity sha1-ev25tXqncX4V03C2bo82qcuDXcM= - -"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: +js-tokens@^4.0.0: version "4.0.0" - resolved "https://registry.npm.taobao.org/js-tokens/download/js-tokens-4.0.0.tgz?cache=0&sync_timestamp=1586796305651&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-tokens%2Fdownload%2Fjs-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha1-GSA/tZmR35jjoocFDUZHzerzJJk= + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@^3.13.1, js-yaml@^3.14.0: - version "3.14.0" - resolved "https://registry.npm.taobao.org/js-yaml/download/js-yaml-3.14.0.tgz?cache=0&sync_timestamp=1590172281856&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-yaml%2Fdownload%2Fjs-yaml-3.14.0.tgz#a7a34170f26a21bb162424d8adacb4113a69e482" - integrity sha1-p6NBcPJqIbsWJCTYray0ETpp5II= +js-yaml@^3.13.1, js-yaml@^3.14.1: + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== dependencies: argparse "^1.0.7" esprima "^4.0.0" -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.npm.taobao.org/jsbn/download/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= - jsesc@^2.5.1: version "2.5.2" - resolved "https://registry.npm.taobao.org/jsesc/download/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - integrity sha1-gFZNLkg9rPbo7yCWUKZ98/DCg6Q= + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== jsesc@~0.5.0: version "0.5.0" - resolved "https://registry.npm.taobao.org/jsesc/download/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= jsgrid@^1.5.3: version "1.5.3" - resolved "https://registry.npm.taobao.org/jsgrid/download/jsgrid-1.5.3.tgz#b15fc426483153bee2b6b567312f675d92834a0d" + resolved "https://registry.yarnpkg.com/jsgrid/-/jsgrid-1.5.3.tgz#b15fc426483153bee2b6b567312f675d92834a0d" integrity sha1-sV/EJkgxU77itrVnMS9nXZKDSg0= json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: version "1.0.2" - resolved "https://registry.npm.taobao.org/json-parse-better-errors/download/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" - integrity sha1-u4Z8+zRQ5pEHwTHRxRS6s9yLyqk= + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + +json-parse-even-better-errors@^2.3.0: + version "2.3.1" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== json-schema-traverse@^0.4.1: version "0.4.1" - resolved "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha1-afaofZUTq4u4/mO9sJecRI5oRmA= - -json-schema@0.2.3: - version "0.2.3" - resolved "https://registry.npm.taobao.org/json-schema/download/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" - integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= - -json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.npm.taobao.org/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== json3@^3.3.3: version "3.3.3" @@ -4911,41 +4625,31 @@ json3@^3.3.3: json5@^1.0.1: version "1.0.1" - resolved "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" - integrity sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4= + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" + integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== dependencies: minimist "^1.2.0" json5@^2.1.2: - version "2.1.3" - resolved "https://registry.npm.taobao.org/json5/download/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43" - integrity sha1-ybD3+pIzv+WAf+ZvzzpWF+1ZfUM= + version "2.2.0" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" + integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== dependencies: minimist "^1.2.5" jsonfile@^6.0.1: - version "6.0.1" - resolved "https://registry.npm.taobao.org/jsonfile/download/jsonfile-6.0.1.tgz#98966cba214378c8c84b82e085907b40bf614179" - integrity sha1-mJZsuiFDeMjIS4LghZB7QL9hQXk= + version "6.1.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== dependencies: - universalify "^1.0.0" + universalify "^2.0.0" optionalDependencies: graceful-fs "^4.1.6" -jsprim@^1.2.2: - version "1.4.1" - resolved "https://registry.npm.taobao.org/jsprim/download/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" - integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.2.3" - verror "1.10.0" - -jszip@^3.3.0: - version "3.5.0" - resolved "https://registry.npm.taobao.org/jszip/download/jszip-3.5.0.tgz?cache=0&sync_timestamp=1592170956518&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjszip%2Fdownload%2Fjszip-3.5.0.tgz#b4fd1f368245346658e781fec9675802489e15f6" - integrity sha1-tP0fNoJFNGZY54H+yWdYAkieFfY= +jszip@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/jszip/-/jszip-3.6.0.tgz#839b72812e3f97819cc13ac4134ffced95dd6af9" + integrity sha512-jgnQoG9LKnWO3mnVNBnfhkh0QknICd1FGSrXcgrl67zioyJ4wgx25o9ZqwNtrROSflGBCGYnJfjrIyRIby1OoQ== dependencies: lie "~3.3.0" pako "~1.0.2" @@ -4954,56 +4658,49 @@ jszip@^3.3.0: killable@^1.0.1: version "1.0.1" - resolved "https://registry.npm.taobao.org/killable/download/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" - integrity sha1-TIzkQRh6Bhx0dPuHygjipjgZSJI= + resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" + integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg== kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" - resolved "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= dependencies: is-buffer "^1.1.5" kind-of@^4.0.0: version "4.0.0" - resolved "https://registry.npm.taobao.org/kind-of/download/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= dependencies: is-buffer "^1.1.5" kind-of@^5.0.0: version "5.1.0" - resolved "https://registry.npm.taobao.org/kind-of/download/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" - integrity sha1-cpyR4thXt6QZofmqZWhcTDP1hF0= + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== kind-of@^6.0.0, kind-of@^6.0.2: version "6.0.3" - resolved "https://registry.npm.taobao.org/kind-of/download/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" - integrity sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0= + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +klona@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.4.tgz#7bb1e3affb0cb8624547ef7e8f6708ea2e39dfc0" + integrity sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA== last-call-webpack-plugin@^3.0.0: version "3.0.0" - resolved "https://registry.npm.taobao.org/last-call-webpack-plugin/download/last-call-webpack-plugin-3.0.0.tgz#9742df0e10e3cf46e5c0381c2de90d3a7a2d7555" - integrity sha1-l0LfDhDjz0blwDgcLekNOnotdVU= + resolved "https://registry.yarnpkg.com/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz#9742df0e10e3cf46e5c0381c2de90d3a7a2d7555" + integrity sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w== dependencies: lodash "^4.17.5" webpack-sources "^1.1.0" -leven@^3.1.0: - version "3.1.0" - resolved "https://registry.npm.taobao.org/leven/download/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" - integrity sha1-d4kd6DQGTMy6gq54QrtrFKE+1/I= - -levenary@^1.1.1: - version "1.1.1" - resolved "https://registry.npm.taobao.org/levenary/download/levenary-1.1.1.tgz#842a9ee98d2075aa7faeedbe32679e9205f46f77" - integrity sha1-hCqe6Y0gdap/ru2+MmeekgX0b3c= - dependencies: - leven "^3.1.0" - levn@~0.3.0: version "0.3.0" - resolved "https://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= dependencies: prelude-ls "~1.1.2" @@ -5011,15 +4708,15 @@ levn@~0.3.0: lie@~3.3.0: version "3.3.0" - resolved "https://registry.npm.taobao.org/lie/download/lie-3.3.0.tgz#dcf82dee545f46074daf200c7c1c5a08e0f40f6a" - integrity sha1-3Pgt7lRfRgdNryAMfBxaCOD0D2o= + resolved "https://registry.yarnpkg.com/lie/-/lie-3.3.0.tgz#dcf82dee545f46074daf200c7c1c5a08e0f40f6a" + integrity sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ== dependencies: immediate "~3.0.5" linebreak@^1.0.2: version "1.0.2" - resolved "https://registry.npm.taobao.org/linebreak/download/linebreak-1.0.2.tgz#4b5781733e9a9eb2849dba2f963e47c887f8aa06" - integrity sha1-S1eBcz6anrKEnbovlj5HyIf4qgY= + resolved "https://registry.yarnpkg.com/linebreak/-/linebreak-1.0.2.tgz#4b5781733e9a9eb2849dba2f963e47c887f8aa06" + integrity sha512-bJwSRsJeAmaZYnkcwl5sCQNfSDAhBuXxb6L27tb+qkBRtUQSSTUa5bcgCPD6hFEkRNlpWHfK7nFMmcANU7ZP1w== dependencies: base64-js "0.0.8" brfs "^2.0.2" @@ -5027,29 +4724,18 @@ linebreak@^1.0.2: lines-and-columns@^1.1.6: version "1.1.6" - resolved "https://registry.npm.taobao.org/lines-and-columns/download/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= -load-json-file@^1.0.0: - version "1.1.0" - resolved "https://registry.npm.taobao.org/load-json-file/download/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" - integrity sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA= - dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - pinkie-promise "^2.0.0" - strip-bom "^2.0.0" - loader-runner@^2.4.0: version "2.4.0" - resolved "https://registry.npm.taobao.org/loader-runner/download/loader-runner-2.4.0.tgz?cache=0&sync_timestamp=1593786193413&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-runner%2Fdownload%2Floader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" - integrity sha1-7UcGa/5TTX6ExMe5mYwqdWB9k1c= + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" + integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0: version "1.4.0" - resolved "https://registry.npm.taobao.org/loader-utils/download/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" - integrity sha1-xXm140yzSxp07cbB+za/o3HVphM= + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" + integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== dependencies: big.js "^5.2.2" emojis-list "^3.0.0" @@ -5057,8 +4743,8 @@ loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0: loader-utils@^2.0.0: version "2.0.0" - resolved "https://registry.npm.taobao.org/loader-utils/download/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0" - integrity sha1-5MrOW4FtQloWa18JfhDNErNgZLA= + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.0.tgz#e4cace5b816d425a166b5f097e10cd12b36064b0" + integrity sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ== dependencies: big.js "^5.2.2" emojis-list "^3.0.0" @@ -5066,101 +4752,63 @@ loader-utils@^2.0.0: locate-path@^3.0.0: version "3.0.0" - resolved "https://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" - integrity sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4= + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== dependencies: p-locate "^3.0.0" path-exists "^3.0.0" locate-path@^5.0.0: version "5.0.0" - resolved "https://registry.npm.taobao.org/locate-path/download/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" - integrity sha1-Gvujlq/WdqbUJQTQpno6frn2KqA= + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== dependencies: p-locate "^4.1.0" -lodash._reinterpolate@^3.0.0: - version "3.0.0" - resolved "https://registry.npm.taobao.org/lodash._reinterpolate/download/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" - integrity sha1-DM8tiRZq8Ds2Y8eWU4t1rG4RTZ0= +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= lodash.defaults@^4.2.0: version "4.2.0" - resolved "https://registry.npm.taobao.org/lodash.defaults/download/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" + resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" integrity sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw= lodash.get@^4.0: version "4.4.2" - resolved "https://registry.npm.taobao.org/lodash.get/download/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= lodash.has@^4.0: version "4.5.2" - resolved "https://registry.npm.taobao.org/lodash.has/download/lodash.has-4.5.2.tgz#d19f4dc1095058cccbe2b0cdf4ee0fe4aa37c862" + resolved "https://registry.yarnpkg.com/lodash.has/-/lodash.has-4.5.2.tgz#d19f4dc1095058cccbe2b0cdf4ee0fe4aa37c862" integrity sha1-0Z9NwQlQWMzL4rDN9O4P5Ko3yGI= lodash.memoize@^4.1.2: version "4.1.2" - resolved "https://registry.npm.taobao.org/lodash.memoize/download/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= -lodash.template@^4.5.0: - version "4.5.0" - resolved "https://registry.npm.taobao.org/lodash.template/download/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab" - integrity sha1-+XYZXPPzR9DV9SSDVp/oAxzM6Ks= - dependencies: - lodash._reinterpolate "^3.0.0" - lodash.templatesettings "^4.0.0" - -lodash.templatesettings@^4.0.0: - version "4.2.0" - resolved "https://registry.npm.taobao.org/lodash.templatesettings/download/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33" - integrity sha1-5IExDwSdPPbUfpEq0JMTsVTw+zM= - dependencies: - lodash._reinterpolate "^3.0.0" - lodash.uniq@^4.5.0: version "4.5.0" - resolved "https://registry.npm.taobao.org/lodash.uniq/download/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= -lodash@^4.0.0, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.5, lodash@~4.17.10: +lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.5: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== loglevel@^1.6.8: - version "1.6.8" - resolved "https://registry.npm.taobao.org/loglevel/download/loglevel-1.6.8.tgz#8a25fb75d092230ecd4457270d80b54e28011171" - integrity sha1-iiX7ddCSIw7NRFcnDYC1TigBEXE= - -loose-envify@^1.0.0: - version "1.4.0" - resolved "https://registry.npm.taobao.org/loose-envify/download/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - integrity sha1-ce5R+nvkyuwaY4OffmgtgTLTDK8= - dependencies: - js-tokens "^3.0.0 || ^4.0.0" - -loud-rejection@^1.0.0: - version "1.6.0" - resolved "https://registry.npm.taobao.org/loud-rejection/download/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" - integrity sha1-W0b4AUft7leIcPCG0Eghz5mOVR8= - dependencies: - currently-unhandled "^0.4.1" - signal-exit "^3.0.0" - -lru-cache@^4.0.1: - version "4.1.5" - resolved "https://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz?cache=0&sync_timestamp=1594427519396&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flru-cache%2Fdownload%2Flru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" - integrity sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80= - dependencies: - pseudomap "^1.0.2" - yallist "^2.1.2" + version "1.7.1" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.7.1.tgz#005fde2f5e6e47068f935ff28573e125ef72f197" + integrity sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw== lru-cache@^5.1.1: version "5.1.1" - resolved "https://registry.npm.taobao.org/lru-cache/download/lru-cache-5.1.1.tgz?cache=0&sync_timestamp=1594427519396&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flru-cache%2Fdownload%2Flru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" - integrity sha1-HaJ+ZxAnGUdpXa9oSOhH8B2EuSA= + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== dependencies: yallist "^3.0.2" @@ -5173,70 +4821,65 @@ lru-cache@^6.0.0: magic-string@0.25.1: version "0.25.1" - resolved "https://registry.npm.taobao.org/magic-string/download/magic-string-0.25.1.tgz?cache=0&sync_timestamp=1583500499850&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmagic-string%2Fdownload%2Fmagic-string-0.25.1.tgz#b1c248b399cd7485da0fe7385c2fc7011843266e" - integrity sha1-scJIs5nNdIXaD+c4XC/HARhDJm4= + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.1.tgz#b1c248b399cd7485da0fe7385c2fc7011843266e" + integrity sha512-sCuTz6pYom8Rlt4ISPFn6wuFodbKMIHUMv4Qko9P17dpxb7s52KJTmRuZZqHdGmLCK9AOcDare039nRIcfdkEg== dependencies: sourcemap-codec "^1.4.1" make-dir@^2.0.0: version "2.1.0" - resolved "https://registry.npm.taobao.org/make-dir/download/make-dir-2.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmake-dir%2Fdownload%2Fmake-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" - integrity sha1-XwMQ4YuL6JjMBwCSlaMK5B6R5vU= + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" + integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== dependencies: pify "^4.0.1" semver "^5.6.0" -make-dir@^3.0.2: +make-dir@^3.0.2, make-dir@^3.1.0: version "3.1.0" - resolved "https://registry.npm.taobao.org/make-dir/download/make-dir-3.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmake-dir%2Fdownload%2Fmake-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" - integrity sha1-QV6WcEazp/HRhSd9hKpYIDcmoT8= + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== dependencies: semver "^6.0.0" map-cache@^0.2.2: version "0.2.2" - resolved "https://registry.npm.taobao.org/map-cache/download/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= -map-obj@^1.0.0, map-obj@^1.0.1: - version "1.0.1" - resolved "https://registry.npm.taobao.org/map-obj/download/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" - integrity sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0= - map-visit@^1.0.0: version "1.0.0" - resolved "https://registry.npm.taobao.org/map-visit/download/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= dependencies: object-visit "^1.0.0" md5.js@^1.3.4: version "1.3.5" - resolved "https://registry.npm.taobao.org/md5.js/download/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" - integrity sha1-tdB7jjIW4+J81yjXL3DR5qNCAF8= + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== dependencies: hash-base "^3.0.0" inherits "^2.0.1" safe-buffer "^5.1.2" +mdn-data@2.0.14: + version "2.0.14" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" + integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== + mdn-data@2.0.4: version "2.0.4" - resolved "https://registry.npm.taobao.org/mdn-data/download/mdn-data-2.0.4.tgz?cache=0&sync_timestamp=1593508849116&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmdn-data%2Fdownload%2Fmdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" - integrity sha1-aZs8OKxvHXKAkaZGULZdOIUC/Vs= - -mdn-data@2.0.6: - version "2.0.6" - resolved "https://registry.npm.taobao.org/mdn-data/download/mdn-data-2.0.6.tgz?cache=0&sync_timestamp=1593508849116&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmdn-data%2Fdownload%2Fmdn-data-2.0.6.tgz#852dc60fcaa5daa2e8cf6c9189c440ed3e042978" - integrity sha1-hS3GD8ql2qLoz2yRicRA7T4EKXg= + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" + integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== media-typer@0.3.0: version "0.3.0" - resolved "https://registry.npm.taobao.org/media-typer/download/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= memory-fs@^0.4.1: version "0.4.1" - resolved "https://registry.npm.taobao.org/memory-fs/download/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= dependencies: errno "^0.1.3" @@ -5244,54 +4887,38 @@ memory-fs@^0.4.1: memory-fs@^0.5.0: version "0.5.0" - resolved "https://registry.npm.taobao.org/memory-fs/download/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" - integrity sha1-MkwBKIuIZSlm0WHbd4OHIIRajjw= + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" + integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== dependencies: errno "^0.1.3" readable-stream "^2.0.1" -meow@^3.7.0: - version "3.7.0" - resolved "https://registry.npm.taobao.org/meow/download/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" - integrity sha1-cstmi0JSKCkKu/qFaJJYcwioAfs= - dependencies: - camelcase-keys "^2.0.0" - decamelize "^1.1.2" - loud-rejection "^1.0.0" - map-obj "^1.0.1" - minimist "^1.1.3" - normalize-package-data "^2.3.4" - object-assign "^4.0.1" - read-pkg-up "^1.0.1" - redent "^1.0.0" - trim-newlines "^1.0.0" - merge-descriptors@1.0.1: version "1.0.1" - resolved "https://registry.npm.taobao.org/merge-descriptors/download/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= merge-source-map@1.0.4: version "1.0.4" - resolved "https://registry.npm.taobao.org/merge-source-map/download/merge-source-map-1.0.4.tgz#a5de46538dae84d4114cc5ea02b4772a6346701f" + resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.0.4.tgz#a5de46538dae84d4114cc5ea02b4772a6346701f" integrity sha1-pd5GU42uhNQRTMXqArR3KmNGcB8= dependencies: source-map "^0.5.6" merge-stream@^2.0.0: version "2.0.0" - resolved "https://registry.npm.taobao.org/merge-stream/download/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" - integrity sha1-UoI2KaFN0AyXcPtq1H3GMQ8sH2A= + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== methods@~1.1.2: version "1.1.2" - resolved "https://registry.npm.taobao.org/methods/download/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: version "3.1.10" - resolved "https://registry.npm.taobao.org/micromatch/download/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" - integrity sha1-cIWbyVyYQJUvNZoGij/En57PrCM= + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== dependencies: arr-diff "^4.0.0" array-unique "^0.3.2" @@ -5309,38 +4936,38 @@ micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: miller-rabin@^4.0.0: version "4.0.1" - resolved "https://registry.npm.taobao.org/miller-rabin/download/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" - integrity sha1-8IA1HIZbDcViqEYpZtqlNUPHik0= + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== dependencies: bn.js "^4.0.0" brorand "^1.0.1" -mime-db@1.44.0, "mime-db@>= 1.43.0 < 2": - version "1.44.0" - resolved "https://registry.npm.taobao.org/mime-db/download/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" - integrity sha1-+hHF6wrKEzS0Izy01S8QxaYnL5I= +mime-db@1.48.0, "mime-db@>= 1.43.0 < 2": + version "1.48.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.48.0.tgz#e35b31045dd7eada3aaad537ed88a33afbef2d1d" + integrity sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ== -mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.19, mime-types@~2.1.24: - version "2.1.27" - resolved "https://registry.npm.taobao.org/mime-types/download/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" - integrity sha1-R5SfmOJ56lMRn1ci4PNOUpvsAJ8= +mime-types@~2.1.17, mime-types@~2.1.24: + version "2.1.31" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.31.tgz#a00d76b74317c61f9c2db2218b8e9f8e9c5c9e6b" + integrity sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg== dependencies: - mime-db "1.44.0" + mime-db "1.48.0" mime@1.6.0: version "1.6.0" - resolved "https://registry.npm.taobao.org/mime/download/mime-1.6.0.tgz?cache=0&sync_timestamp=1590596706367&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime%2Fdownload%2Fmime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - integrity sha1-Ms2eXGRVO9WNGaVor0Uqz/BJgbE= + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== mime@^2.4.4: - version "2.4.6" - resolved "https://registry.npm.taobao.org/mime/download/mime-2.4.6.tgz?cache=0&sync_timestamp=1590596706367&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime%2Fdownload%2Fmime-2.4.6.tgz#e5b407c90db442f2beb5b162373d07b69affa4d1" - integrity sha1-5bQHyQ20QvK+tbFiNz0Htpr/pNE= + version "2.5.2" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.2.tgz#6e3dc6cc2b9510643830e5f19d5cb753da5eeabe" + integrity sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg== mini-css-extract-plugin@^0.9.0: version "0.9.0" - resolved "https://registry.npm.taobao.org/mini-css-extract-plugin/download/mini-css-extract-plugin-0.9.0.tgz#47f2cf07aa165ab35733b1fc97d4c46c0564339e" - integrity sha1-R/LPB6oWWrNXM7H8l9TEbAVkM54= + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.9.0.tgz#47f2cf07aa165ab35733b1fc97d4c46c0564339e" + integrity sha512-lp3GeY7ygcgAmVIcRPBVhIkf8Us7FZjA+ILpal44qLdSu11wmjKQ3d9k15lfD7pO4esu9eUIAW7qiYIBppv40A== dependencies: loader-utils "^1.1.0" normalize-url "1.9.1" @@ -5357,43 +4984,43 @@ minimalistic-crypto-utils@^1.0.1: resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= -minimatch@^3.0.4, minimatch@~3.0.2: +minimatch@^3.0.4: version "3.0.4" - resolved "https://registry.npm.taobao.org/minimatch/download/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM= + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== dependencies: brace-expansion "^1.1.7" minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5: version "1.2.5" - resolved "https://registry.npm.taobao.org/minimist/download/minimist-1.2.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fminimist%2Fdownload%2Fminimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - integrity sha1-Z9ZgFLZqaoqqDAg8X9WN9OTpdgI= + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== minipass-collect@^1.0.2: version "1.0.2" - resolved "https://registry.npm.taobao.org/minipass-collect/download/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" - integrity sha1-IrgTv3Rdxu26JXa5QAIq1u3Ixhc= + resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" + integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== dependencies: minipass "^3.0.0" minipass-flush@^1.0.5: version "1.0.5" - resolved "https://registry.npm.taobao.org/minipass-flush/download/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" - integrity sha1-gucTXX6JpQ/+ZGEKeHlTxMTLs3M= + resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" + integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== dependencies: minipass "^3.0.0" minipass-pipeline@^1.2.2: - version "1.2.3" - resolved "https://registry.npm.taobao.org/minipass-pipeline/download/minipass-pipeline-1.2.3.tgz#55f7839307d74859d6e8ada9c3ebe72cec216a34" - integrity sha1-VfeDkwfXSFnW6K2pw+vnLOwhajQ= + version "1.2.4" + resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" + integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== dependencies: minipass "^3.0.0" minipass@^3.0.0, minipass@^3.1.1: version "3.1.3" - resolved "https://registry.npm.taobao.org/minipass/download/minipass-3.1.3.tgz#7d42ff1f39635482e15f9cdb53184deebd5815fd" - integrity sha1-fUL/HzljVILhX5zbUxhN7r1YFf0= + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.1.3.tgz#7d42ff1f39635482e15f9cdb53184deebd5815fd" + integrity sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg== dependencies: yallist "^4.0.0" @@ -5407,8 +5034,8 @@ minizlib@^2.1.1: mississippi@^3.0.0: version "3.0.0" - resolved "https://registry.npm.taobao.org/mississippi/download/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" - integrity sha1-6goykfl+C16HdrNj1fChLZTGcCI= + resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" + integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== dependencies: concat-stream "^1.5.0" duplexify "^3.4.2" @@ -5423,16 +5050,16 @@ mississippi@^3.0.0: mixin-deep@^1.2.0: version "1.3.2" - resolved "https://registry.npm.taobao.org/mixin-deep/download/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" - integrity sha1-ESC0PcNZp4Xc5ltVuC4lfM9HlWY= + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" + integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== dependencies: for-in "^1.0.2" is-extendable "^1.0.1" -"mkdirp@>=0.5 0", mkdirp@^0.5, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@~0.5.1: +mkdirp@^0.5, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@^0.5.5, mkdirp@~0.5.1: version "0.5.5" - resolved "https://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" - integrity sha1-2Rzv1i0UNsoPQWIOJRKI1CAJne8= + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== dependencies: minimist "^1.2.5" @@ -5441,21 +5068,21 @@ mkdirp@^1.0.3, mkdirp@^1.0.4: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== -moment-timezone@^0.5.11: - version "0.5.31" - resolved "https://registry.npm.taobao.org/moment-timezone/download/moment-timezone-0.5.31.tgz?cache=0&sync_timestamp=1589720126509&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmoment-timezone%2Fdownload%2Fmoment-timezone-0.5.31.tgz#9c40d8c5026f0c7ab46eda3d63e49c155148de05" - integrity sha1-nEDYxQJvDHq0bto9Y+ScFVFI3gU= +moment-timezone@^0.5.31: + version "0.5.33" + resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.33.tgz#b252fd6bb57f341c9b59a5ab61a8e51a73bbd22c" + integrity sha512-PTc2vcT8K9J5/9rDEPe5czSIKgLoGsH8UNpA4qZTVw0Vd/Uz19geE9abbIOQKaAQFcnQ3v5YEXrbSc5BpshH+w== dependencies: moment ">= 2.9.0" -"moment@>= 2.9.0", moment@^2.10.2, moment@^2.22.2, moment@^2.24.0, moment@^2.9.0: - version "2.27.0" - resolved "https://registry.npm.taobao.org/moment/download/moment-2.27.0.tgz?cache=0&sync_timestamp=1592516084857&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmoment%2Fdownload%2Fmoment-2.27.0.tgz#8bff4e3e26a236220dfe3e36de756b6ebaa0105d" - integrity sha1-i/9OPiaiNiIN/j423nVrbrqgEF0= +"moment@>= 2.9.0", moment@^2.10.2, moment@^2.29.0, moment@^2.29.1, moment@^2.9.0: + version "2.29.1" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.1.tgz#b2be769fa31940be9eeea6469c075e35006fa3d3" + integrity sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ== move-concurrently@^1.0.1: version "1.0.1" - resolved "https://registry.npm.taobao.org/move-concurrently/download/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" + resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= dependencies: aproba "^1.1.1" @@ -5467,41 +5094,46 @@ move-concurrently@^1.0.1: ms@2.0.0: version "2.0.0" - resolved "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= ms@2.1.1: version "2.1.1" - resolved "https://registry.npm.taobao.org/ms/download/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" - integrity sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo= + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== ms@^2.1.1: - version "2.1.2" - resolved "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk= + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== multicast-dns-service-types@^1.1.0: version "1.1.0" - resolved "https://registry.npm.taobao.org/multicast-dns-service-types/download/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" + resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" integrity sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE= multicast-dns@^6.0.1: version "6.2.3" - resolved "https://registry.npm.taobao.org/multicast-dns/download/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" - integrity sha1-oOx72QVcQoL3kMPIL04o2zsxsik= + resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" + integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g== dependencies: dns-packet "^1.3.1" thunky "^1.0.2" -nan@^2.12.1, nan@^2.13.2: - version "2.14.1" - resolved "https://registry.npm.taobao.org/nan/download/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01" - integrity sha1-174036MQW5FJTDFHCJMV7/iHSwE= +nan@^2.12.1: + version "2.14.2" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" + integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== nanomatch@^1.2.9: version "1.2.13" - resolved "https://registry.npm.taobao.org/nanomatch/download/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" - integrity sha1-uHqKpPwN6P5r6IiVs4mD/yZb0Rk= + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== dependencies: arr-diff "^4.0.0" array-unique "^0.3.2" @@ -5517,51 +5149,33 @@ nanomatch@^1.2.9: negotiator@0.6.2: version "0.6.2" - resolved "https://registry.npm.taobao.org/negotiator/download/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" - integrity sha1-/qz3zPUlp3rpY0Q2pkiD/+yjRvs= + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" + integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== -neo-async@^2.5.0, neo-async@^2.6.1: +neo-async@^2.5.0, neo-async@^2.6.1, neo-async@^2.6.2: version "2.6.2" - resolved "https://registry.npm.taobao.org/neo-async/download/neo-async-2.6.2.tgz?cache=0&sync_timestamp=1594317437265&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fneo-async%2Fdownload%2Fneo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" - integrity sha1-tKr7k+OustgXTKU88WOrfXMIMF8= + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== next-tick@~1.0.0: version "1.0.0" - resolved "https://registry.npm.taobao.org/next-tick/download/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" integrity sha1-yobR/ogoFpsBICCOPchCS524NCw= nice-try@^1.0.4: version "1.0.5" - resolved "https://registry.npm.taobao.org/nice-try/download/nice-try-1.0.5.tgz?cache=0&sync_timestamp=1584699726257&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnice-try%2Fdownload%2Fnice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" - integrity sha1-ozeKdpbOfSI+iPybdkvX7xCJ42Y= + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== node-forge@^0.10.0: version "0.10.0" resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.10.0.tgz#32dea2afb3e9926f02ee5ce8794902691a676bf3" integrity sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA== -node-gyp@^3.8.0: - version "3.8.0" - resolved "https://registry.npm.taobao.org/node-gyp/download/node-gyp-3.8.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-gyp%2Fdownload%2Fnode-gyp-3.8.0.tgz#540304261c330e80d0d5edce253a68cb3964218c" - integrity sha1-VAMEJhwzDoDQ1e3OJTpoyzlkIYw= - dependencies: - fstream "^1.0.0" - glob "^7.0.3" - graceful-fs "^4.1.2" - mkdirp "^0.5.0" - nopt "2 || 3" - npmlog "0 || 1 || 2 || 3 || 4" - osenv "0" - request "^2.87.0" - rimraf "2" - semver "~5.3.0" - tar "^2.0.0" - which "1" - node-libs-browser@^2.2.1: version "2.2.1" - resolved "https://registry.npm.taobao.org/node-libs-browser/download/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" - integrity sha1-tk9RPRgzhiX5A0bSew0jXmMfZCU= + resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" + integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== dependencies: assert "^1.1.1" browserify-zlib "^0.2.0" @@ -5588,70 +5202,30 @@ node-libs-browser@^2.2.1: vm-browserify "^1.0.1" node-releases@^1.1.71: - version "1.1.72" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.72.tgz#14802ab6b1039a79a0c7d662b610a5bbd76eacbe" - integrity sha512-LLUo+PpH3dU6XizX3iVoubUNheF/owjXCZZ5yACDxNnPtgFuludV1ZL3ayK1kVep42Rmm0+R9/Y60NQbZ2bifw== - -node-sass@^4.14.1: - version "4.14.1" - resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.14.1.tgz#99c87ec2efb7047ed638fb4c9db7f3a42e2217b5" - integrity sha512-sjCuOlvGyCJS40R8BscF5vhVlQjNN069NtQ1gSxyK1u9iqvn6tf7O1R4GNowVZfiZUCRt5MmMs1xd+4V/7Yr0g== - dependencies: - async-foreach "^0.1.3" - chalk "^1.1.1" - cross-spawn "^3.0.0" - gaze "^1.0.0" - get-stdin "^4.0.1" - glob "^7.0.3" - in-publish "^2.0.0" - lodash "^4.17.15" - meow "^3.7.0" - mkdirp "^0.5.1" - nan "^2.13.2" - node-gyp "^3.8.0" - npmlog "^4.0.0" - request "^2.88.0" - sass-graph "2.2.5" - stdout-stream "^1.4.0" - "true-case-path" "^1.0.2" - -"nopt@2 || 3": - version "3.0.6" - resolved "https://registry.npm.taobao.org/nopt/download/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" - integrity sha1-xkZdvwirzU2zWTF/eaxopkayj/k= - dependencies: - abbrev "1" - -normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: - version "2.5.0" - resolved "https://registry.npm.taobao.org/normalize-package-data/download/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" - integrity sha1-5m2xg4sgDB38IzIl0SyzZSDiNKg= - dependencies: - hosted-git-info "^2.1.4" - resolve "^1.10.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" + version "1.1.73" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.73.tgz#dd4e81ddd5277ff846b80b52bb40c49edf7a7b20" + integrity sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg== normalize-path@^2.1.1: version "2.1.1" - resolved "https://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= dependencies: remove-trailing-separator "^1.0.1" normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" - resolved "https://registry.npm.taobao.org/normalize-path/download/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU= + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== normalize-range@^0.1.2: version "0.1.2" - resolved "https://registry.npm.taobao.org/normalize-range/download/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= normalize-url@1.9.1: version "1.9.1" - resolved "https://registry.npm.taobao.org/normalize-url/download/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" integrity sha1-LMDWazHqIwNkWENuNiDYWVTGbDw= dependencies: object-assign "^4.0.1" @@ -5661,165 +5235,145 @@ normalize-url@1.9.1: normalize-url@^3.0.0: version "3.3.0" - resolved "https://registry.npm.taobao.org/normalize-url/download/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" - integrity sha1-suHE3E98bVd0PfczpPWXjRhlBVk= + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" + integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== npm-run-path@^2.0.0: version "2.0.2" - resolved "https://registry.npm.taobao.org/npm-run-path/download/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= dependencies: path-key "^2.0.0" -"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0: - version "4.1.2" - resolved "https://registry.npm.taobao.org/npmlog/download/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" - integrity sha1-CKfyqL9zRgR3mp76StXMcXq7lUs= - dependencies: - are-we-there-yet "~1.1.2" - console-control-strings "~1.1.0" - gauge "~2.7.3" - set-blocking "~2.0.0" - nth-check@^1.0.2: version "1.0.2" - resolved "https://registry.npm.taobao.org/nth-check/download/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" - integrity sha1-sr0pXDfj3VijvwcAN2Zjuk2c8Fw= + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" + integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== dependencies: boolbase "~1.0.0" num2fraction@^1.2.2: version "1.2.2" - resolved "https://registry.npm.taobao.org/num2fraction/download/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" + resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= -number-is-nan@^1.0.0: - version "1.0.1" - resolved "https://registry.npm.taobao.org/number-is-nan/download/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" - integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= - -oauth-sign@~0.9.0: - version "0.9.0" - resolved "https://registry.npm.taobao.org/oauth-sign/download/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" - integrity sha1-R6ewFrqmi1+g7PPe4IqFxnmsZFU= - object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: version "4.1.1" - resolved "https://registry.npm.taobao.org/object-assign/download/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= object-copy@^0.1.0: version "0.1.0" - resolved "https://registry.npm.taobao.org/object-copy/download/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= dependencies: copy-descriptor "^0.1.0" define-property "^0.2.5" kind-of "^3.0.3" -object-inspect@^1.6.0, object-inspect@^1.7.0: - version "1.8.0" - resolved "https://registry.npm.taobao.org/object-inspect/download/object-inspect-1.8.0.tgz?cache=0&sync_timestamp=1592545152574&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-inspect%2Fdownload%2Fobject-inspect-1.8.0.tgz#df807e5ecf53a609cc6bfe93eac3cc7be5b3a9d0" - integrity sha1-34B+Xs9TpgnMa/6T6sPMe+WzqdA= +object-inspect@^1.10.3, object-inspect@^1.6.0: + version "1.10.3" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.10.3.tgz#c2aa7d2d09f50c99375704f7a0adf24c5782d369" + integrity sha512-e5mCJlSH7poANfC8z8S9s9S2IN5/4Zb3aZ33f5s8YqoazCFzNLloLU8r5VCG+G7WoqLvAAZoVMcy3tp/3X0Plw== object-is@^1.0.1: - version "1.1.2" - resolved "https://registry.npm.taobao.org/object-is/download/object-is-1.1.2.tgz?cache=0&sync_timestamp=1586894009620&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-is%2Fdownload%2Fobject-is-1.1.2.tgz#c5d2e87ff9e119f78b7a088441519e2eec1573b6" - integrity sha1-xdLof/nhGfeLegiEQVGeLuwVc7Y= + version "1.1.5" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" + integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== dependencies: + call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.17.5" -object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: +object-keys@^1.0.12, object-keys@^1.1.1: version "1.1.1" - resolved "https://registry.npm.taobao.org/object-keys/download/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha1-HEfyct8nfzsdrwYWd9nILiMixg4= + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== object-visit@^1.0.0: version "1.0.1" - resolved "https://registry.npm.taobao.org/object-visit/download/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= dependencies: isobject "^3.0.0" -object.assign@^4.1.0: - version "4.1.0" - resolved "https://registry.npm.taobao.org/object.assign/download/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" - integrity sha1-lovxEA15Vrs8oIbwBvhGs7xACNo= +object.assign@^4.1.0, object.assign@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" + integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== dependencies: - define-properties "^1.1.2" - function-bind "^1.1.1" - has-symbols "^1.0.0" - object-keys "^1.0.11" + call-bind "^1.0.0" + define-properties "^1.1.3" + has-symbols "^1.0.1" + object-keys "^1.1.1" object.getownpropertydescriptors@^2.1.0: - version "2.1.0" - resolved "https://registry.npm.taobao.org/object.getownpropertydescriptors/download/object.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649" - integrity sha1-Npvx+VktiridcS3O1cuBx8U1Jkk= + version "2.1.2" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz#1bd63aeacf0d5d2d2f31b5e393b03a7c601a23f7" + integrity sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ== dependencies: + call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" + es-abstract "^1.18.0-next.2" object.pick@^1.3.0: version "1.3.0" - resolved "https://registry.npm.taobao.org/object.pick/download/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= dependencies: isobject "^3.0.1" object.values@^1.1.0: - version "1.1.1" - resolved "https://registry.npm.taobao.org/object.values/download/object.values-1.1.1.tgz#68a99ecde356b7e9295a3c5e0ce31dc8c953de5e" - integrity sha1-aKmezeNWt+kpWjxeDOMdyMlT3l4= + version "1.1.4" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.4.tgz#0d273762833e816b693a637d30073e7051535b30" + integrity sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg== dependencies: + call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - function-bind "^1.1.1" - has "^1.0.3" + es-abstract "^1.18.2" obuf@^1.0.0, obuf@^1.1.2: version "1.1.2" - resolved "https://registry.npm.taobao.org/obuf/download/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" - integrity sha1-Cb6jND1BhZ69RGKS0RydTbYZCE4= + resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" + integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== on-finished@~2.3.0: version "2.3.0" - resolved "https://registry.npm.taobao.org/on-finished/download/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= dependencies: ee-first "1.1.1" on-headers@~1.0.2: version "1.0.2" - resolved "https://registry.npm.taobao.org/on-headers/download/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" - integrity sha1-dysK5qqlJcOZ5Imt+tkMQD6zwo8= + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" + integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" - resolved "https://registry.npm.taobao.org/once/download/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= dependencies: wrappy "1" opn@^5.5.0: version "5.5.0" - resolved "https://registry.npm.taobao.org/opn/download/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" - integrity sha1-/HFk+rVtI1kExRw7J9pnWMo7m/w= + resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" + integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA== dependencies: is-wsl "^1.1.0" -optimize-css-assets-webpack-plugin@^5.0.3: - version "5.0.3" - resolved "https://registry.npm.taobao.org/optimize-css-assets-webpack-plugin/download/optimize-css-assets-webpack-plugin-5.0.3.tgz#e2f1d4d94ad8c0af8967ebd7cf138dcb1ef14572" - integrity sha1-4vHU2UrYwK+JZ+vXzxONyx7xRXI= +optimize-css-assets-webpack-plugin@^5.0.6: + version "5.0.6" + resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.6.tgz#abad0c6c11a632201794f75ddba3ce13e32ae80e" + integrity sha512-JAYw7WrIAIuHWoKeSBB3lJ6ZG9PSDK3JJduv/FMpIY060wvbA8Lqn/TCtxNGICNlg0X5AGshLzIhpYrkltdq+A== dependencies: cssnano "^4.1.10" last-call-webpack-plugin "^3.0.0" optionator@^0.8.1: version "0.8.3" - resolved "https://registry.npm.taobao.org/optionator/download/optionator-0.8.3.tgz?cache=0&sync_timestamp=1585966141328&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Foptionator%2Fdownload%2Foptionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" - integrity sha1-hPodA2/p08fiHZmIS2ARZ+yPtJU= + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== dependencies: deep-is "~0.1.3" fast-levenshtein "~2.0.6" @@ -5830,76 +5384,58 @@ optionator@^0.8.1: original@^1.0.0: version "1.0.2" - resolved "https://registry.npm.taobao.org/original/download/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" - integrity sha1-5EKmHP/hxf0gpl8yYcJmY7MD8l8= + resolved "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" + integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg== dependencies: url-parse "^1.4.3" os-browserify@^0.3.0: version "0.3.0" - resolved "https://registry.npm.taobao.org/os-browserify/download/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" + resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= -os-homedir@^1.0.0: - version "1.0.2" - resolved "https://registry.npm.taobao.org/os-homedir/download/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" - integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= - -os-tmpdir@^1.0.0: - version "1.0.2" - resolved "https://registry.npm.taobao.org/os-tmpdir/download/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" - integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= - -osenv@0: - version "0.1.5" - resolved "https://registry.npm.taobao.org/osenv/download/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" - integrity sha1-hc36+uso6Gd/QW4odZK18/SepBA= - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.0" - -overlayscrollbars@^1.11.0: - version "1.12.0" - resolved "https://registry.npm.taobao.org/overlayscrollbars/download/overlayscrollbars-1.12.0.tgz#e3e257bbb8a179760c2c712ad08ac2c78583c9f6" - integrity sha1-4+JXu7iheXYMLHEq0IrCx4WDyfY= +overlayscrollbars@^1.13.1: + version "1.13.1" + resolved "https://registry.yarnpkg.com/overlayscrollbars/-/overlayscrollbars-1.13.1.tgz#0b840a88737f43a946b9d87875a2f9e421d0338a" + integrity sha512-gIQfzgGgu1wy80EB4/6DaJGHMEGmizq27xHIESrzXq0Y/J0Ay1P3DWk6tuVmEPIZH15zaBlxeEJOqdJKmowHCQ== p-finally@^1.0.0: version "1.0.0" - resolved "https://registry.npm.taobao.org/p-finally/download/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= p-limit@^2.0.0, p-limit@^2.2.0: version "2.3.0" - resolved "https://registry.npm.taobao.org/p-limit/download/p-limit-2.3.0.tgz?cache=0&sync_timestamp=1594559668746&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" - integrity sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE= + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== dependencies: p-try "^2.0.0" p-limit@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.0.2.tgz#1664e010af3cadc681baafd3e2a437be7b0fb5fe" - integrity sha512-iwqZSOoWIW+Ew4kAGUlN16J4M7OB3ysMLSZtnhmqx7njIHFPlxWBX8xo3lVTyFVq6mI/lL9qt2IsN1sHwaxJkg== + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== dependencies: - p-try "^2.0.0" + yocto-queue "^0.1.0" p-locate@^3.0.0: version "3.0.0" - resolved "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" - integrity sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ= + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== dependencies: p-limit "^2.0.0" p-locate@^4.1.0: version "4.1.0" - resolved "https://registry.npm.taobao.org/p-locate/download/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" - integrity sha1-o0KLtwiLOmApL2aRkni3wpetTwc= + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== dependencies: p-limit "^2.2.0" p-map@^2.0.0: version "2.1.0" - resolved "https://registry.npm.taobao.org/p-map/download/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" - integrity sha1-MQko/u+cnsxltosXaTAYpmXOoXU= + resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" + integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== p-map@^4.0.0: version "4.0.0" @@ -5910,30 +5446,30 @@ p-map@^4.0.0: p-retry@^3.0.1: version "3.0.1" - resolved "https://registry.npm.taobao.org/p-retry/download/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328" - integrity sha1-MWtMiJPiyNwc+okfQGxLQivr8yg= + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328" + integrity sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w== dependencies: retry "^0.12.0" p-try@^2.0.0: version "2.2.0" - resolved "https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" - integrity sha1-yyhoVA4xPWHeWPr741zpAE1VQOY= + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== pako@^0.2.5: version "0.2.9" - resolved "https://registry.npm.taobao.org/pako/download/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" + resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" integrity sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU= pako@~1.0.2, pako@~1.0.5: version "1.0.11" - resolved "https://registry.npm.taobao.org/pako/download/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" - integrity sha1-bJWZ00DVTf05RjgCUqNXBaa5kr8= + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" + integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== parallel-transform@^1.1.0: version "1.2.0" - resolved "https://registry.npm.taobao.org/parallel-transform/download/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" - integrity sha1-kEnKN9bLIYLDsdLHIL6U0UpYFPw= + resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" + integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg== dependencies: cyclist "^1.0.1" inherits "^2.0.3" @@ -5941,138 +5477,114 @@ parallel-transform@^1.1.0: parent-module@^1.0.0: version "1.0.1" - resolved "https://registry.npm.taobao.org/parent-module/download/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" - integrity sha1-aR0nCeeMefrjoVZiJFLQB2LKqqI= + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== dependencies: callsites "^3.0.0" parse-asn1@^5.0.0, parse-asn1@^5.1.5: - version "5.1.5" - resolved "https://registry.npm.taobao.org/parse-asn1/download/parse-asn1-5.1.5.tgz#003271343da58dc94cace494faef3d2147ecea0e" - integrity sha1-ADJxND2ljclMrOSU+u89IUfs6g4= + version "5.1.6" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" + integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== dependencies: - asn1.js "^4.0.0" + asn1.js "^5.2.0" browserify-aes "^1.0.0" - create-hash "^1.1.0" evp_bytestokey "^1.0.0" pbkdf2 "^3.0.3" safe-buffer "^5.1.1" -parse-json@^2.2.0: - version "2.2.0" - resolved "https://registry.npm.taobao.org/parse-json/download/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" - integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= - dependencies: - error-ex "^1.2.0" - parse-json@^4.0.0: version "4.0.0" - resolved "https://registry.npm.taobao.org/parse-json/download/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= dependencies: error-ex "^1.3.1" json-parse-better-errors "^1.0.1" parse-json@^5.0.0: - version "5.0.0" - resolved "https://registry.npm.taobao.org/parse-json/download/parse-json-5.0.0.tgz#73e5114c986d143efa3712d4ea24db9a4266f60f" - integrity sha1-c+URTJhtFD76NxLU6iTbmkJm9g8= + version "5.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== dependencies: "@babel/code-frame" "^7.0.0" error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" + json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" parse-passwd@^1.0.0: version "1.0.0" - resolved "https://registry.npm.taobao.org/parse-passwd/download/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" + resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= parseurl@~1.3.2, parseurl@~1.3.3: version "1.3.3" - resolved "https://registry.npm.taobao.org/parseurl/download/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" - integrity sha1-naGee+6NEt/wUT7Vt2lXeTvC6NQ= + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== pascalcase@^0.1.1: version "0.1.1" - resolved "https://registry.npm.taobao.org/pascalcase/download/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= path-browserify@0.0.1: version "0.0.1" - resolved "https://registry.npm.taobao.org/path-browserify/download/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" - integrity sha1-5sTd1+06onxoogzE5Q4aTug7vEo= + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" + integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== path-complete-extname@^1.0.0: version "1.0.0" - resolved "https://registry.npm.taobao.org/path-complete-extname/download/path-complete-extname-1.0.0.tgz#f889985dc91000c815515c0bfed06c5acda0752b" - integrity sha1-+ImYXckQAMgVUVwL/tBsWs2gdSs= + resolved "https://registry.yarnpkg.com/path-complete-extname/-/path-complete-extname-1.0.0.tgz#f889985dc91000c815515c0bfed06c5acda0752b" + integrity sha512-CVjiWcMRdGU8ubs08YQVzhutOR5DEfO97ipRIlOGMK5Bek5nQySknBpuxVAVJ36hseTNs+vdIcv57ZrWxH7zvg== path-dirname@^1.0.0: version "1.0.2" - resolved "https://registry.npm.taobao.org/path-dirname/download/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= -path-exists@^2.0.0: - version "2.1.0" - resolved "https://registry.npm.taobao.org/path-exists/download/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" - integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= - dependencies: - pinkie-promise "^2.0.0" - path-exists@^3.0.0: version "3.0.0" - resolved "https://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= path-exists@^4.0.0: version "4.0.0" - resolved "https://registry.npm.taobao.org/path-exists/download/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" - integrity sha1-UTvb4tO5XXdi6METfvoZXGxhtbM= + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== path-is-absolute@^1.0.0: version "1.0.1" - resolved "https://registry.npm.taobao.org/path-is-absolute/download/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= path-is-inside@^1.0.2: version "1.0.2" - resolved "https://registry.npm.taobao.org/path-is-inside/download/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= path-key@^2.0.0, path-key@^2.0.1: version "2.0.1" - resolved "https://registry.npm.taobao.org/path-key/download/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= path-parse@^1.0.6: - version "1.0.6" - resolved "https://registry.npm.taobao.org/path-parse/download/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" - integrity sha1-1i27VnlAXXLEc37FhgDp3c8G0kw= + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== path-to-regexp@0.1.7: version "0.1.7" - resolved "https://registry.npm.taobao.org/path-to-regexp/download/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= -path-type@^1.0.0: - version "1.1.0" - resolved "https://registry.npm.taobao.org/path-type/download/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" - integrity sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE= - dependencies: - graceful-fs "^4.1.2" - pify "^2.0.0" - pinkie-promise "^2.0.0" - path-type@^4.0.0: version "4.0.0" - resolved "https://registry.npm.taobao.org/path-type/download/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" - integrity sha1-hO0BwKe6OAr+CdkKjBgNzZ0DBDs= + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== pbkdf2@^3.0.3: - version "3.1.1" - resolved "https://registry.npm.taobao.org/pbkdf2/download/pbkdf2-3.1.1.tgz#cb8724b0fada984596856d1a6ebafd3584654b94" - integrity sha1-y4cksPramEWWhW0abrr9NYRlS5Q= + version "3.1.2" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" + integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== dependencies: create-hash "^1.1.2" create-hmac "^1.1.4" @@ -6080,115 +5592,111 @@ pbkdf2@^3.0.3: safe-buffer "^5.0.1" sha.js "^2.4.8" -pdfkit@>=0.8.1, pdfkit@^0.11.0: - version "0.11.0" - resolved "https://registry.npm.taobao.org/pdfkit/download/pdfkit-0.11.0.tgz#9cdb2fc42bd2913587fe3ddf48cc5bbb3c36f7de" - integrity sha1-nNsvxCvSkTWH/j3fSMxbuzw2994= +pdfkit@>=0.8.1, pdfkit@^0.12.0: + version "0.12.1" + resolved "https://registry.yarnpkg.com/pdfkit/-/pdfkit-0.12.1.tgz#0df246b46cffd3d8fb99b1ea33dc1854430a9199" + integrity sha512-ruNLx49hVW3ePJziKjHtWdTHN1VZHLCUCcbui/vx4lYwFLEM1d8W0L7ObYPbN8EifK7s281ZMugCLgSbk+KRhg== dependencies: - crypto-js "^3.1.9-1" - fontkit "^1.8.0" + crypto-js "^3.3.0" + fontkit "^1.8.1" linebreak "^1.0.2" png-js "^1.0.0" -pdfmake@^0.1.65: - version "0.1.66" - resolved "https://registry.npm.taobao.org/pdfmake/download/pdfmake-0.1.66.tgz#498a46eb65fab52a9b5900ad234d886b093e242d" - integrity sha1-SYpG62X6tSqbWQCtI02Iawk+JC0= +pdfmake@^0.1.70: + version "0.1.71" + resolved "https://registry.yarnpkg.com/pdfmake/-/pdfmake-0.1.71.tgz#9cb20032cfed534f1bb5aa95026343fd7b4a5953" + integrity sha512-uXUy+NZ8R5pwJ6rYLJRu7VRw/w5ogBScNk440CHpMZ6Z0+E1uc1XvwK4I1U5ry0UZQ3qPD0dpSvbzAkRBKYoJA== dependencies: - iconv-lite "^0.6.0" + iconv-lite "^0.6.2" linebreak "^1.0.2" - pdfkit "^0.11.0" + pdfkit "^0.12.0" svg-to-pdfkit "^0.1.8" - -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.npm.taobao.org/performance-now/download/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= + xmldoc "^1.1.2" picomatch@^2.0.4, picomatch@^2.2.1: - version "2.2.2" - resolved "https://registry.npm.taobao.org/picomatch/download/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" - integrity sha1-IfMz6ba46v8CRo9RRupAbTRfTa0= + version "2.3.0" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" + integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== pify@^2.0.0, pify@^2.3.0: version "2.3.0" - resolved "https://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= pify@^4.0.1: version "4.0.1" - resolved "https://registry.npm.taobao.org/pify/download/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" - integrity sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE= + resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== pinkie-promise@^2.0.0: version "2.0.1" - resolved "https://registry.npm.taobao.org/pinkie-promise/download/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= dependencies: pinkie "^2.0.0" pinkie@^2.0.0: version "2.0.4" - resolved "https://registry.npm.taobao.org/pinkie/download/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= pkg-dir@^3.0.0: version "3.0.0" - resolved "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" - integrity sha1-J0kCDyOe2ZCIGx9xIQ1R62UjvqM= + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" + integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== dependencies: find-up "^3.0.0" pkg-dir@^4.1.0: version "4.2.0" - resolved "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" - integrity sha1-8JkTPfft5CLoHR2ESCcO6z5CYfM= + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== dependencies: find-up "^4.0.0" png-js@^1.0.0: version "1.0.0" - resolved "https://registry.npm.taobao.org/png-js/download/png-js-1.0.0.tgz#e5484f1e8156996e383aceebb3789fd75df1874d" - integrity sha1-5UhPHoFWmW44Os7rs3if113xh00= + resolved "https://registry.yarnpkg.com/png-js/-/png-js-1.0.0.tgz#e5484f1e8156996e383aceebb3789fd75df1874d" + integrity sha512-k+YsbhpA9e+EFfKjTCH3VW6aoKlyNYI6NYdTfDL4CIvFnvsuO84ttonmZE7rc+v23SLTH8XX+5w/Ak9v0xGY4g== pnp-webpack-plugin@^1.6.4: version "1.6.4" - resolved "https://registry.npm.taobao.org/pnp-webpack-plugin/download/pnp-webpack-plugin-1.6.4.tgz?cache=0&sync_timestamp=1582068446562&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpnp-webpack-plugin%2Fdownload%2Fpnp-webpack-plugin-1.6.4.tgz#c9711ac4dc48a685dabafc86f8b6dd9f8df84149" - integrity sha1-yXEaxNxIpoXauvyG+Lbdn434QUk= + resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz#c9711ac4dc48a685dabafc86f8b6dd9f8df84149" + integrity sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg== dependencies: ts-pnp "^1.1.6" -popper.js@>=1.10, popper.js@^1.14.3, popper.js@^1.16.1: +popper.js@>=1.10, popper.js@^1.16.1: version "1.16.1" - resolved "https://registry.npm.taobao.org/popper.js/download/popper.js-1.16.1.tgz#2a223cb3dc7b6213d740e40372be40de43e65b1b" - integrity sha1-KiI8s9x7YhPXQOQDcr5A3kPmWxs= + resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.16.1.tgz#2a223cb3dc7b6213d740e40372be40de43e65b1b" + integrity sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ== portfinder@^1.0.26: - version "1.0.26" - resolved "https://registry.npm.taobao.org/portfinder/download/portfinder-1.0.26.tgz#475658d56ca30bed72ac7f1378ed350bd1b64e70" - integrity sha1-R1ZY1WyjC+1yrH8TeO01C9G2TnA= + version "1.0.28" + resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778" + integrity sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA== dependencies: async "^2.6.2" debug "^3.1.1" - mkdirp "^0.5.1" + mkdirp "^0.5.5" posix-character-classes@^0.1.0: version "0.1.1" - resolved "https://registry.npm.taobao.org/posix-character-classes/download/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= postcss-attribute-case-insensitive@^4.0.1: version "4.0.2" - resolved "https://registry.npm.taobao.org/postcss-attribute-case-insensitive/download/postcss-attribute-case-insensitive-4.0.2.tgz#d93e46b504589e94ac7277b0463226c68041a880" - integrity sha1-2T5GtQRYnpSscnewRjImxoBBqIA= + resolved "https://registry.yarnpkg.com/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-4.0.2.tgz#d93e46b504589e94ac7277b0463226c68041a880" + integrity sha512-clkFxk/9pcdb4Vkn0hAHq3YnxBQ2p0CGD1dy24jN+reBck+EWxMbxSUqN4Yj7t0w8csl87K6p0gxBe1utkJsYA== dependencies: postcss "^7.0.2" postcss-selector-parser "^6.0.2" postcss-calc@^7.0.1: - version "7.0.2" - resolved "https://registry.npm.taobao.org/postcss-calc/download/postcss-calc-7.0.2.tgz#504efcd008ca0273120568b0792b16cdcde8aac1" - integrity sha1-UE780AjKAnMSBWiweSsWzc3oqsE= + version "7.0.5" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.5.tgz#f8a6e99f12e619c2ebc23cf6c486fdc15860933e" + integrity sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg== dependencies: postcss "^7.0.27" postcss-selector-parser "^6.0.2" @@ -6196,16 +5704,16 @@ postcss-calc@^7.0.1: postcss-color-functional-notation@^2.0.1: version "2.0.1" - resolved "https://registry.npm.taobao.org/postcss-color-functional-notation/download/postcss-color-functional-notation-2.0.1.tgz#5efd37a88fbabeb00a2966d1e53d98ced93f74e0" - integrity sha1-Xv03qI+6vrAKKWbR5T2Yztk/dOA= + resolved "https://registry.yarnpkg.com/postcss-color-functional-notation/-/postcss-color-functional-notation-2.0.1.tgz#5efd37a88fbabeb00a2966d1e53d98ced93f74e0" + integrity sha512-ZBARCypjEDofW4P6IdPVTLhDNXPRn8T2s1zHbZidW6rPaaZvcnCS2soYFIQJrMZSxiePJ2XIYTlcb2ztr/eT2g== dependencies: postcss "^7.0.2" postcss-values-parser "^2.0.0" postcss-color-gray@^5.0.0: version "5.0.0" - resolved "https://registry.npm.taobao.org/postcss-color-gray/download/postcss-color-gray-5.0.0.tgz#532a31eb909f8da898ceffe296fdc1f864be8547" - integrity sha1-Uyox65CfjaiYzv/ilv3B+GS+hUc= + resolved "https://registry.yarnpkg.com/postcss-color-gray/-/postcss-color-gray-5.0.0.tgz#532a31eb909f8da898ceffe296fdc1f864be8547" + integrity sha512-q6BuRnAGKM/ZRpfDascZlIZPjvwsRye7UDNalqVz3s7GDxMtqPY6+Q871liNxsonUw8oC61OG+PSaysYpl1bnw== dependencies: "@csstools/convert-colors" "^1.4.0" postcss "^7.0.5" @@ -6213,16 +5721,16 @@ postcss-color-gray@^5.0.0: postcss-color-hex-alpha@^5.0.3: version "5.0.3" - resolved "https://registry.npm.taobao.org/postcss-color-hex-alpha/download/postcss-color-hex-alpha-5.0.3.tgz#a8d9ca4c39d497c9661e374b9c51899ef0f87388" - integrity sha1-qNnKTDnUl8lmHjdLnFGJnvD4c4g= + resolved "https://registry.yarnpkg.com/postcss-color-hex-alpha/-/postcss-color-hex-alpha-5.0.3.tgz#a8d9ca4c39d497c9661e374b9c51899ef0f87388" + integrity sha512-PF4GDel8q3kkreVXKLAGNpHKilXsZ6xuu+mOQMHWHLPNyjiUBOr75sp5ZKJfmv1MCus5/DWUGcK9hm6qHEnXYw== dependencies: postcss "^7.0.14" postcss-values-parser "^2.0.1" postcss-color-mod-function@^3.0.3: version "3.0.3" - resolved "https://registry.npm.taobao.org/postcss-color-mod-function/download/postcss-color-mod-function-3.0.3.tgz#816ba145ac11cc3cb6baa905a75a49f903e4d31d" - integrity sha1-gWuhRawRzDy2uqkFp1pJ+QPk0x0= + resolved "https://registry.yarnpkg.com/postcss-color-mod-function/-/postcss-color-mod-function-3.0.3.tgz#816ba145ac11cc3cb6baa905a75a49f903e4d31d" + integrity sha512-YP4VG+xufxaVtzV6ZmhEtc+/aTXH3d0JLpnYfxqTvwZPbJhWqp8bSY3nfNzNRFLgB4XSaBA82OE4VjOOKpCdVQ== dependencies: "@csstools/convert-colors" "^1.4.0" postcss "^7.0.2" @@ -6230,16 +5738,16 @@ postcss-color-mod-function@^3.0.3: postcss-color-rebeccapurple@^4.0.1: version "4.0.1" - resolved "https://registry.npm.taobao.org/postcss-color-rebeccapurple/download/postcss-color-rebeccapurple-4.0.1.tgz?cache=0&sync_timestamp=1587821587752&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-color-rebeccapurple%2Fdownload%2Fpostcss-color-rebeccapurple-4.0.1.tgz#c7a89be872bb74e45b1e3022bfe5748823e6de77" - integrity sha1-x6ib6HK7dORbHjAiv+V0iCPm3nc= + resolved "https://registry.yarnpkg.com/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-4.0.1.tgz#c7a89be872bb74e45b1e3022bfe5748823e6de77" + integrity sha512-aAe3OhkS6qJXBbqzvZth2Au4V3KieR5sRQ4ptb2b2O8wgvB3SJBsdG+jsn2BZbbwekDG8nTfcCNKcSfe/lEy8g== dependencies: postcss "^7.0.2" postcss-values-parser "^2.0.0" postcss-colormin@^4.0.3: version "4.0.3" - resolved "https://registry.npm.taobao.org/postcss-colormin/download/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381" - integrity sha1-rgYLzpPteUrHEmTwgTLVUJVr04E= + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381" + integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw== dependencies: browserslist "^4.0.0" color "^3.0.0" @@ -6249,83 +5757,83 @@ postcss-colormin@^4.0.3: postcss-convert-values@^4.0.1: version "4.0.1" - resolved "https://registry.npm.taobao.org/postcss-convert-values/download/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f" - integrity sha1-yjgT7U2g+BL51DcDWE5Enr4Ymn8= + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f" + integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ== dependencies: postcss "^7.0.0" postcss-value-parser "^3.0.0" postcss-custom-media@^7.0.8: version "7.0.8" - resolved "https://registry.npm.taobao.org/postcss-custom-media/download/postcss-custom-media-7.0.8.tgz#fffd13ffeffad73621be5f387076a28b00294e0c" - integrity sha1-//0T/+/61zYhvl84cHaiiwApTgw= + resolved "https://registry.yarnpkg.com/postcss-custom-media/-/postcss-custom-media-7.0.8.tgz#fffd13ffeffad73621be5f387076a28b00294e0c" + integrity sha512-c9s5iX0Ge15o00HKbuRuTqNndsJUbaXdiNsksnVH8H4gdc+zbLzr/UasOwNG6CTDpLFekVY4672eWdiiWu2GUg== dependencies: postcss "^7.0.14" postcss-custom-properties@^8.0.11: version "8.0.11" - resolved "https://registry.npm.taobao.org/postcss-custom-properties/download/postcss-custom-properties-8.0.11.tgz#2d61772d6e92f22f5e0d52602df8fae46fa30d97" - integrity sha1-LWF3LW6S8i9eDVJgLfj65G+jDZc= + resolved "https://registry.yarnpkg.com/postcss-custom-properties/-/postcss-custom-properties-8.0.11.tgz#2d61772d6e92f22f5e0d52602df8fae46fa30d97" + integrity sha512-nm+o0eLdYqdnJ5abAJeXp4CEU1c1k+eB2yMCvhgzsds/e0umabFrN6HoTy/8Q4K5ilxERdl/JD1LO5ANoYBeMA== dependencies: postcss "^7.0.17" postcss-values-parser "^2.0.1" postcss-custom-selectors@^5.1.2: version "5.1.2" - resolved "https://registry.npm.taobao.org/postcss-custom-selectors/download/postcss-custom-selectors-5.1.2.tgz#64858c6eb2ecff2fb41d0b28c9dd7b3db4de7fba" - integrity sha1-ZIWMbrLs/y+0HQsoyd17PbTef7o= + resolved "https://registry.yarnpkg.com/postcss-custom-selectors/-/postcss-custom-selectors-5.1.2.tgz#64858c6eb2ecff2fb41d0b28c9dd7b3db4de7fba" + integrity sha512-DSGDhqinCqXqlS4R7KGxL1OSycd1lydugJ1ky4iRXPHdBRiozyMHrdu0H3o7qNOCiZwySZTUI5MV0T8QhCLu+w== dependencies: postcss "^7.0.2" postcss-selector-parser "^5.0.0-rc.3" postcss-dir-pseudo-class@^5.0.0: version "5.0.0" - resolved "https://registry.npm.taobao.org/postcss-dir-pseudo-class/download/postcss-dir-pseudo-class-5.0.0.tgz#6e3a4177d0edb3abcc85fdb6fbb1c26dabaeaba2" - integrity sha1-bjpBd9Dts6vMhf22+7HCbauuq6I= + resolved "https://registry.yarnpkg.com/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-5.0.0.tgz#6e3a4177d0edb3abcc85fdb6fbb1c26dabaeaba2" + integrity sha512-3pm4oq8HYWMZePJY+5ANriPs3P07q+LW6FAdTlkFH2XqDdP4HeeJYMOzn0HYLhRSjBO3fhiqSwwU9xEULSrPgw== dependencies: postcss "^7.0.2" postcss-selector-parser "^5.0.0-rc.3" postcss-discard-comments@^4.0.2: version "4.0.2" - resolved "https://registry.npm.taobao.org/postcss-discard-comments/download/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033" - integrity sha1-H7q9LCRr/2qq15l7KwkY9NevQDM= + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033" + integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg== dependencies: postcss "^7.0.0" postcss-discard-duplicates@^4.0.2: version "4.0.2" - resolved "https://registry.npm.taobao.org/postcss-discard-duplicates/download/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb" - integrity sha1-P+EzzTyCKC5VD8myORdqkge3hOs= + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb" + integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ== dependencies: postcss "^7.0.0" postcss-discard-empty@^4.0.1: version "4.0.1" - resolved "https://registry.npm.taobao.org/postcss-discard-empty/download/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765" - integrity sha1-yMlR6fc+2UKAGUWERKAq2Qu592U= + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765" + integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w== dependencies: postcss "^7.0.0" postcss-discard-overridden@^4.0.1: version "4.0.1" - resolved "https://registry.npm.taobao.org/postcss-discard-overridden/download/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57" - integrity sha1-ZSrvipZybwKfXj4AFG7npOdV/1c= + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57" + integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg== dependencies: postcss "^7.0.0" postcss-double-position-gradients@^1.0.0: version "1.0.0" - resolved "https://registry.npm.taobao.org/postcss-double-position-gradients/download/postcss-double-position-gradients-1.0.0.tgz#fc927d52fddc896cb3a2812ebc5df147e110522e" - integrity sha1-/JJ9Uv3ciWyzooEuvF3xR+EQUi4= + resolved "https://registry.yarnpkg.com/postcss-double-position-gradients/-/postcss-double-position-gradients-1.0.0.tgz#fc927d52fddc896cb3a2812ebc5df147e110522e" + integrity sha512-G+nV8EnQq25fOI8CH/B6krEohGWnF5+3A6H/+JEpOncu5dCnkS1QQ6+ct3Jkaepw1NGVqqOZH6lqrm244mCftA== dependencies: postcss "^7.0.5" postcss-values-parser "^2.0.0" postcss-env-function@^2.0.2: version "2.0.2" - resolved "https://registry.npm.taobao.org/postcss-env-function/download/postcss-env-function-2.0.2.tgz#0f3e3d3c57f094a92c2baf4b6241f0b0da5365d7" - integrity sha1-Dz49PFfwlKksK69LYkHwsNpTZdc= + resolved "https://registry.yarnpkg.com/postcss-env-function/-/postcss-env-function-2.0.2.tgz#0f3e3d3c57f094a92c2baf4b6241f0b0da5365d7" + integrity sha512-rwac4BuZlITeUbiBq60h/xbLzXY43qOsIErngWa4l7Mt+RaSkT7QBjXVGTcBHupykkblHMDrBFh30zchYPaOUw== dependencies: postcss "^7.0.2" postcss-values-parser "^2.0.0" @@ -6339,44 +5847,44 @@ postcss-flexbugs-fixes@^4.2.1: postcss-focus-visible@^4.0.0: version "4.0.0" - resolved "https://registry.npm.taobao.org/postcss-focus-visible/download/postcss-focus-visible-4.0.0.tgz#477d107113ade6024b14128317ade2bd1e17046e" - integrity sha1-R30QcROt5gJLFBKDF63ivR4XBG4= + resolved "https://registry.yarnpkg.com/postcss-focus-visible/-/postcss-focus-visible-4.0.0.tgz#477d107113ade6024b14128317ade2bd1e17046e" + integrity sha512-Z5CkWBw0+idJHSV6+Bgf2peDOFf/x4o+vX/pwcNYrWpXFrSfTkQ3JQ1ojrq9yS+upnAlNRHeg8uEwFTgorjI8g== dependencies: postcss "^7.0.2" postcss-focus-within@^3.0.0: version "3.0.0" - resolved "https://registry.npm.taobao.org/postcss-focus-within/download/postcss-focus-within-3.0.0.tgz#763b8788596cee9b874c999201cdde80659ef680" - integrity sha1-djuHiFls7puHTJmSAc3egGWe9oA= + resolved "https://registry.yarnpkg.com/postcss-focus-within/-/postcss-focus-within-3.0.0.tgz#763b8788596cee9b874c999201cdde80659ef680" + integrity sha512-W0APui8jQeBKbCGZudW37EeMCjDeVxKgiYfIIEo8Bdh5SpB9sxds/Iq8SEuzS0Q4YFOlG7EPFulbbxujpkrV2w== dependencies: postcss "^7.0.2" postcss-font-variant@^4.0.0: - version "4.0.0" - resolved "https://registry.npm.taobao.org/postcss-font-variant/download/postcss-font-variant-4.0.0.tgz#71dd3c6c10a0d846c5eda07803439617bbbabacc" - integrity sha1-cd08bBCg2EbF7aB4A0OWF7u6usw= + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-font-variant/-/postcss-font-variant-4.0.1.tgz#42d4c0ab30894f60f98b17561eb5c0321f502641" + integrity sha512-I3ADQSTNtLTTd8uxZhtSOrTCQ9G4qUVKPjHiDk0bV75QSxXjVWiJVJ2VLdspGUi9fbW9BcjKJoRvxAH1pckqmA== dependencies: postcss "^7.0.2" postcss-gap-properties@^2.0.0: version "2.0.0" - resolved "https://registry.npm.taobao.org/postcss-gap-properties/download/postcss-gap-properties-2.0.0.tgz#431c192ab3ed96a3c3d09f2ff615960f902c1715" - integrity sha1-QxwZKrPtlqPD0J8v9hWWD5AsFxU= + resolved "https://registry.yarnpkg.com/postcss-gap-properties/-/postcss-gap-properties-2.0.0.tgz#431c192ab3ed96a3c3d09f2ff615960f902c1715" + integrity sha512-QZSqDaMgXCHuHTEzMsS2KfVDOq7ZFiknSpkrPJY6jmxbugUPTuSzs/vuE5I3zv0WAS+3vhrlqhijiprnuQfzmg== dependencies: postcss "^7.0.2" postcss-image-set-function@^3.0.1: version "3.0.1" - resolved "https://registry.npm.taobao.org/postcss-image-set-function/download/postcss-image-set-function-3.0.1.tgz#28920a2f29945bed4c3198d7df6496d410d3f288" - integrity sha1-KJIKLymUW+1MMZjX32SW1BDT8og= + resolved "https://registry.yarnpkg.com/postcss-image-set-function/-/postcss-image-set-function-3.0.1.tgz#28920a2f29945bed4c3198d7df6496d410d3f288" + integrity sha512-oPTcFFip5LZy8Y/whto91L9xdRHCWEMs3e1MdJxhgt4jy2WYXfhkng59fH5qLXSCPN8k4n94p1Czrfe5IOkKUw== dependencies: postcss "^7.0.2" postcss-values-parser "^2.0.0" postcss-import@^12.0.1: version "12.0.1" - resolved "https://registry.npm.taobao.org/postcss-import/download/postcss-import-12.0.1.tgz#cf8c7ab0b5ccab5649024536e565f841928b7153" - integrity sha1-z4x6sLXMq1ZJAkU25WX4QZKLcVM= + resolved "https://registry.yarnpkg.com/postcss-import/-/postcss-import-12.0.1.tgz#cf8c7ab0b5ccab5649024536e565f841928b7153" + integrity sha512-3Gti33dmCjyKBgimqGxL3vcV8w9+bsHwO5UrBawp796+jdardbcFl4RP5w/76BwNL7aGzpKstIfF9I+kdE8pTw== dependencies: postcss "^7.0.1" postcss-value-parser "^3.2.3" @@ -6384,34 +5892,33 @@ postcss-import@^12.0.1: resolve "^1.1.7" postcss-initial@^3.0.0: - version "3.0.2" - resolved "https://registry.npm.taobao.org/postcss-initial/download/postcss-initial-3.0.2.tgz?cache=0&sync_timestamp=1572520236416&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-initial%2Fdownload%2Fpostcss-initial-3.0.2.tgz#f018563694b3c16ae8eaabe3c585ac6319637b2d" - integrity sha1-8BhWNpSzwWro6qvjxYWsYxljey0= + version "3.0.4" + resolved "https://registry.yarnpkg.com/postcss-initial/-/postcss-initial-3.0.4.tgz#9d32069a10531fe2ecafa0b6ac750ee0bc7efc53" + integrity sha512-3RLn6DIpMsK1l5UUy9jxQvoDeUN4gP939tDcKUHD/kM8SGSKbFAnvkpFpj3Bhtz3HGk1jWY5ZNWX6mPta5M9fg== dependencies: - lodash.template "^4.5.0" postcss "^7.0.2" postcss-lab-function@^2.0.1: version "2.0.1" - resolved "https://registry.npm.taobao.org/postcss-lab-function/download/postcss-lab-function-2.0.1.tgz#bb51a6856cd12289ab4ae20db1e3821ef13d7d2e" - integrity sha1-u1GmhWzRIomrSuINseOCHvE9fS4= + resolved "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-2.0.1.tgz#bb51a6856cd12289ab4ae20db1e3821ef13d7d2e" + integrity sha512-whLy1IeZKY+3fYdqQFuDBf8Auw+qFuVnChWjmxm/UhHWqNHZx+B99EwxTvGYmUBqe3Fjxs4L1BoZTJmPu6usVg== dependencies: "@csstools/convert-colors" "^1.4.0" postcss "^7.0.2" postcss-values-parser "^2.0.0" postcss-load-config@^2.0.0: - version "2.1.0" - resolved "https://registry.npm.taobao.org/postcss-load-config/download/postcss-load-config-2.1.0.tgz#c84d692b7bb7b41ddced94ee62e8ab31b417b003" - integrity sha1-yE1pK3u3tB3c7ZTuYuirMbQXsAM= + version "2.1.2" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.2.tgz#c5ea504f2c4aef33c7359a34de3573772ad7502a" + integrity sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw== dependencies: cosmiconfig "^5.0.0" import-cwd "^2.0.0" postcss-loader@^3.0.0: version "3.0.0" - resolved "https://registry.npm.taobao.org/postcss-loader/download/postcss-loader-3.0.0.tgz#6b97943e47c72d845fa9e03f273773d4e8dd6c2d" - integrity sha1-a5eUPkfHLYRfqeA/Jzdz1OjdbC0= + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-3.0.0.tgz#6b97943e47c72d845fa9e03f273773d4e8dd6c2d" + integrity sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA== dependencies: loader-utils "^1.1.0" postcss "^7.0.0" @@ -6420,22 +5927,22 @@ postcss-loader@^3.0.0: postcss-logical@^3.0.0: version "3.0.0" - resolved "https://registry.npm.taobao.org/postcss-logical/download/postcss-logical-3.0.0.tgz#2495d0f8b82e9f262725f75f9401b34e7b45d5b5" - integrity sha1-JJXQ+LgunyYnJfdflAGzTntF1bU= + resolved "https://registry.yarnpkg.com/postcss-logical/-/postcss-logical-3.0.0.tgz#2495d0f8b82e9f262725f75f9401b34e7b45d5b5" + integrity sha512-1SUKdJc2vuMOmeItqGuNaC+N8MzBWFWEkAnRnLpFYj1tGGa7NqyVBujfRtgNa2gXR+6RkGUiB2O5Vmh7E2RmiA== dependencies: postcss "^7.0.2" postcss-media-minmax@^4.0.0: version "4.0.0" - resolved "https://registry.npm.taobao.org/postcss-media-minmax/download/postcss-media-minmax-4.0.0.tgz#b75bb6cbc217c8ac49433e12f22048814a4f5ed5" - integrity sha1-t1u2y8IXyKxJQz4S8iBIgUpPXtU= + resolved "https://registry.yarnpkg.com/postcss-media-minmax/-/postcss-media-minmax-4.0.0.tgz#b75bb6cbc217c8ac49433e12f22048814a4f5ed5" + integrity sha512-fo9moya6qyxsjbFAYl97qKO9gyre3qvbMnkOZeZwlsW6XYFsvs2DMGDlchVLfAd8LHPZDxivu/+qW2SMQeTHBw== dependencies: postcss "^7.0.2" postcss-merge-longhand@^4.0.11: version "4.0.11" - resolved "https://registry.npm.taobao.org/postcss-merge-longhand/download/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24" - integrity sha1-YvSaE+Sg7gTnuY9CuxYGLKJUniQ= + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24" + integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw== dependencies: css-color-names "0.0.4" postcss "^7.0.0" @@ -6444,8 +5951,8 @@ postcss-merge-longhand@^4.0.11: postcss-merge-rules@^4.0.3: version "4.0.3" - resolved "https://registry.npm.taobao.org/postcss-merge-rules/download/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650" - integrity sha1-NivqT/Wh+Y5AdacTxsslrv75plA= + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650" + integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ== dependencies: browserslist "^4.0.0" caniuse-api "^3.0.0" @@ -6456,16 +5963,16 @@ postcss-merge-rules@^4.0.3: postcss-minify-font-values@^4.0.2: version "4.0.2" - resolved "https://registry.npm.taobao.org/postcss-minify-font-values/download/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6" - integrity sha1-zUw0TM5HQ0P6xdgiBqssvLiv1aY= + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6" + integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg== dependencies: postcss "^7.0.0" postcss-value-parser "^3.0.0" postcss-minify-gradients@^4.0.2: version "4.0.2" - resolved "https://registry.npm.taobao.org/postcss-minify-gradients/download/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471" - integrity sha1-k7KcL/UJnFNe7NpWxKpuZlpmNHE= + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471" + integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q== dependencies: cssnano-util-get-arguments "^4.0.0" is-color-stop "^1.0.0" @@ -6474,8 +5981,8 @@ postcss-minify-gradients@^4.0.2: postcss-minify-params@^4.0.2: version "4.0.2" - resolved "https://registry.npm.taobao.org/postcss-minify-params/download/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874" - integrity sha1-a5zvAwwR41Jh+V9hjJADbWgNuHQ= + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874" + integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg== dependencies: alphanum-sort "^1.0.0" browserslist "^4.0.0" @@ -6486,8 +5993,8 @@ postcss-minify-params@^4.0.2: postcss-minify-selectors@^4.0.2: version "4.0.2" - resolved "https://registry.npm.taobao.org/postcss-minify-selectors/download/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8" - integrity sha1-4uXrQL/uUA0M2SQ1APX46kJi+9g= + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8" + integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g== dependencies: alphanum-sort "^1.0.0" has "^1.0.0" @@ -6496,55 +6003,55 @@ postcss-minify-selectors@^4.0.2: postcss-modules-extract-imports@^2.0.0: version "2.0.0" - resolved "https://registry.npm.taobao.org/postcss-modules-extract-imports/download/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e" - integrity sha1-gYcZoa4doyX5gyRGsBE27rSTzX4= + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-2.0.0.tgz#818719a1ae1da325f9832446b01136eeb493cd7e" + integrity sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ== dependencies: postcss "^7.0.5" postcss-modules-local-by-default@^3.0.2: - version "3.0.2" - resolved "https://registry.npm.taobao.org/postcss-modules-local-by-default/download/postcss-modules-local-by-default-3.0.2.tgz#e8a6561be914aaf3c052876377524ca90dbb7915" - integrity sha1-6KZWG+kUqvPAUodjd1JMqQ27eRU= + version "3.0.3" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-3.0.3.tgz#bb14e0cc78279d504dbdcbfd7e0ca28993ffbbb0" + integrity sha512-e3xDq+LotiGesympRlKNgaJ0PCzoUIdpH0dj47iWAui/kyTgh3CiAr1qP54uodmJhl6p9rN6BoNcdEDVJx9RDw== dependencies: icss-utils "^4.1.1" - postcss "^7.0.16" + postcss "^7.0.32" postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.0.0" + postcss-value-parser "^4.1.0" postcss-modules-scope@^2.2.0: version "2.2.0" - resolved "https://registry.npm.taobao.org/postcss-modules-scope/download/postcss-modules-scope-2.2.0.tgz#385cae013cc7743f5a7d7602d1073a89eaae62ee" - integrity sha1-OFyuATzHdD9afXYC0Qc6iequYu4= + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-2.2.0.tgz#385cae013cc7743f5a7d7602d1073a89eaae62ee" + integrity sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ== dependencies: postcss "^7.0.6" postcss-selector-parser "^6.0.0" postcss-modules-values@^3.0.0: version "3.0.0" - resolved "https://registry.npm.taobao.org/postcss-modules-values/download/postcss-modules-values-3.0.0.tgz#5b5000d6ebae29b4255301b4a3a54574423e7f10" - integrity sha1-W1AA1uuuKbQlUwG0o6VFdEI+fxA= + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-3.0.0.tgz#5b5000d6ebae29b4255301b4a3a54574423e7f10" + integrity sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg== dependencies: icss-utils "^4.0.0" postcss "^7.0.6" postcss-nesting@^7.0.0: version "7.0.1" - resolved "https://registry.npm.taobao.org/postcss-nesting/download/postcss-nesting-7.0.1.tgz?cache=0&sync_timestamp=1564405325472&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-nesting%2Fdownload%2Fpostcss-nesting-7.0.1.tgz#b50ad7b7f0173e5b5e3880c3501344703e04c052" - integrity sha1-tQrXt/AXPlteOIDDUBNEcD4EwFI= + resolved "https://registry.yarnpkg.com/postcss-nesting/-/postcss-nesting-7.0.1.tgz#b50ad7b7f0173e5b5e3880c3501344703e04c052" + integrity sha512-FrorPb0H3nuVq0Sff7W2rnc3SmIcruVC6YwpcS+k687VxyxO33iE1amna7wHuRVzM8vfiYofXSBHNAZ3QhLvYg== dependencies: postcss "^7.0.2" postcss-normalize-charset@^4.0.1: version "4.0.1" - resolved "https://registry.npm.taobao.org/postcss-normalize-charset/download/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" - integrity sha1-izWt067oOhNrBHHg1ZvlilAoXdQ= + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" + integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g== dependencies: postcss "^7.0.0" postcss-normalize-display-values@^4.0.2: version "4.0.2" - resolved "https://registry.npm.taobao.org/postcss-normalize-display-values/download/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a" - integrity sha1-Db4EpM6QY9RmftK+R2u4MMglk1o= + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a" + integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ== dependencies: cssnano-util-get-match "^4.0.0" postcss "^7.0.0" @@ -6552,8 +6059,8 @@ postcss-normalize-display-values@^4.0.2: postcss-normalize-positions@^4.0.2: version "4.0.2" - resolved "https://registry.npm.taobao.org/postcss-normalize-positions/download/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f" - integrity sha1-BfdX+E8mBDc3g2ipH4ky1LECkX8= + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f" + integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA== dependencies: cssnano-util-get-arguments "^4.0.0" has "^1.0.0" @@ -6562,8 +6069,8 @@ postcss-normalize-positions@^4.0.2: postcss-normalize-repeat-style@^4.0.2: version "4.0.2" - resolved "https://registry.npm.taobao.org/postcss-normalize-repeat-style/download/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c" - integrity sha1-xOu8KJ85kaAo1EdRy90RkYsXkQw= + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c" + integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q== dependencies: cssnano-util-get-arguments "^4.0.0" cssnano-util-get-match "^4.0.0" @@ -6572,8 +6079,8 @@ postcss-normalize-repeat-style@^4.0.2: postcss-normalize-string@^4.0.2: version "4.0.2" - resolved "https://registry.npm.taobao.org/postcss-normalize-string/download/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c" - integrity sha1-zUTECrB6DHo23F6Zqs4eyk7CaQw= + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c" + integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA== dependencies: has "^1.0.0" postcss "^7.0.0" @@ -6581,8 +6088,8 @@ postcss-normalize-string@^4.0.2: postcss-normalize-timing-functions@^4.0.2: version "4.0.2" - resolved "https://registry.npm.taobao.org/postcss-normalize-timing-functions/download/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9" - integrity sha1-jgCcoqOUnNr4rSPmtquZy159KNk= + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9" + integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A== dependencies: cssnano-util-get-match "^4.0.0" postcss "^7.0.0" @@ -6590,8 +6097,8 @@ postcss-normalize-timing-functions@^4.0.2: postcss-normalize-unicode@^4.0.1: version "4.0.1" - resolved "https://registry.npm.taobao.org/postcss-normalize-unicode/download/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb" - integrity sha1-hBvUj9zzAZrUuqdJOj02O1KuHPs= + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb" + integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg== dependencies: browserslist "^4.0.0" postcss "^7.0.0" @@ -6599,8 +6106,8 @@ postcss-normalize-unicode@^4.0.1: postcss-normalize-url@^4.0.1: version "4.0.1" - resolved "https://registry.npm.taobao.org/postcss-normalize-url/download/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1" - integrity sha1-EOQ3+GvHx+WPe5ZS7YeNqqlfquE= + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1" + integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA== dependencies: is-absolute-url "^2.0.0" normalize-url "^3.0.0" @@ -6609,16 +6116,16 @@ postcss-normalize-url@^4.0.1: postcss-normalize-whitespace@^4.0.2: version "4.0.2" - resolved "https://registry.npm.taobao.org/postcss-normalize-whitespace/download/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82" - integrity sha1-vx1AcP5Pzqh9E0joJdjMDF+qfYI= + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82" + integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA== dependencies: postcss "^7.0.0" postcss-value-parser "^3.0.0" postcss-ordered-values@^4.1.2: version "4.1.2" - resolved "https://registry.npm.taobao.org/postcss-ordered-values/download/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee" - integrity sha1-DPdcgg7H1cTSgBiVWeC1ceusDu4= + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee" + integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw== dependencies: cssnano-util-get-arguments "^4.0.0" postcss "^7.0.0" @@ -6626,30 +6133,30 @@ postcss-ordered-values@^4.1.2: postcss-overflow-shorthand@^2.0.0: version "2.0.0" - resolved "https://registry.npm.taobao.org/postcss-overflow-shorthand/download/postcss-overflow-shorthand-2.0.0.tgz#31ecf350e9c6f6ddc250a78f0c3e111f32dd4c30" - integrity sha1-MezzUOnG9t3CUKePDD4RHzLdTDA= + resolved "https://registry.yarnpkg.com/postcss-overflow-shorthand/-/postcss-overflow-shorthand-2.0.0.tgz#31ecf350e9c6f6ddc250a78f0c3e111f32dd4c30" + integrity sha512-aK0fHc9CBNx8jbzMYhshZcEv8LtYnBIRYQD5i7w/K/wS9c2+0NSR6B3OVMu5y0hBHYLcMGjfU+dmWYNKH0I85g== dependencies: postcss "^7.0.2" postcss-page-break@^2.0.0: version "2.0.0" - resolved "https://registry.npm.taobao.org/postcss-page-break/download/postcss-page-break-2.0.0.tgz#add52d0e0a528cabe6afee8b46e2abb277df46bf" - integrity sha1-rdUtDgpSjKvmr+6LRuKrsnffRr8= + resolved "https://registry.yarnpkg.com/postcss-page-break/-/postcss-page-break-2.0.0.tgz#add52d0e0a528cabe6afee8b46e2abb277df46bf" + integrity sha512-tkpTSrLpfLfD9HvgOlJuigLuk39wVTbbd8RKcy8/ugV2bNBUW3xU+AIqyxhDrQr1VUj1RmyJrBn1YWrqUm9zAQ== dependencies: postcss "^7.0.2" postcss-place@^4.0.1: version "4.0.1" - resolved "https://registry.npm.taobao.org/postcss-place/download/postcss-place-4.0.1.tgz#e9f39d33d2dc584e46ee1db45adb77ca9d1dcc62" - integrity sha1-6fOdM9LcWE5G7h20Wtt3yp0dzGI= + resolved "https://registry.yarnpkg.com/postcss-place/-/postcss-place-4.0.1.tgz#e9f39d33d2dc584e46ee1db45adb77ca9d1dcc62" + integrity sha512-Zb6byCSLkgRKLODj/5mQugyuj9bvAAw9LqJJjgwz5cYryGeXfFZfSXoP1UfveccFmeq0b/2xxwcTEVScnqGxBg== dependencies: postcss "^7.0.2" postcss-values-parser "^2.0.0" postcss-preset-env@^6.7.0: version "6.7.0" - resolved "https://registry.npm.taobao.org/postcss-preset-env/download/postcss-preset-env-6.7.0.tgz?cache=0&sync_timestamp=1562662643428&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-preset-env%2Fdownload%2Fpostcss-preset-env-6.7.0.tgz#c34ddacf8f902383b35ad1e030f178f4cdf118a5" - integrity sha1-w03az4+QI4OzWtHgMPF49M3xGKU= + resolved "https://registry.yarnpkg.com/postcss-preset-env/-/postcss-preset-env-6.7.0.tgz#c34ddacf8f902383b35ad1e030f178f4cdf118a5" + integrity sha512-eU4/K5xzSFwUFJ8hTdTQzo2RBLbDVt83QZrAvI07TULOkmyQlnYlpwep+2yIK+K+0KlZO4BvFcleOCCcUtwchg== dependencies: autoprefixer "^9.6.1" browserslist "^4.6.4" @@ -6691,16 +6198,16 @@ postcss-preset-env@^6.7.0: postcss-pseudo-class-any-link@^6.0.0: version "6.0.0" - resolved "https://registry.npm.taobao.org/postcss-pseudo-class-any-link/download/postcss-pseudo-class-any-link-6.0.0.tgz#2ed3eed393b3702879dec4a87032b210daeb04d1" - integrity sha1-LtPu05OzcCh53sSocDKyENrrBNE= + resolved "https://registry.yarnpkg.com/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-6.0.0.tgz#2ed3eed393b3702879dec4a87032b210daeb04d1" + integrity sha512-lgXW9sYJdLqtmw23otOzrtbDXofUdfYzNm4PIpNE322/swES3VU9XlXHeJS46zT2onFO7V1QFdD4Q9LiZj8mew== dependencies: postcss "^7.0.2" postcss-selector-parser "^5.0.0-rc.3" postcss-reduce-initial@^4.0.3: version "4.0.3" - resolved "https://registry.npm.taobao.org/postcss-reduce-initial/download/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df" - integrity sha1-f9QuvqXpyBRgljniwuhK4nC6SN8= + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df" + integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA== dependencies: browserslist "^4.0.0" caniuse-api "^3.0.0" @@ -6709,8 +6216,8 @@ postcss-reduce-initial@^4.0.3: postcss-reduce-transforms@^4.0.2: version "4.0.2" - resolved "https://registry.npm.taobao.org/postcss-reduce-transforms/download/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29" - integrity sha1-F++kBerMbge+NBSlyi0QdGgdTik= + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29" + integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg== dependencies: cssnano-util-get-match "^4.0.0" has "^1.0.0" @@ -6719,38 +6226,38 @@ postcss-reduce-transforms@^4.0.2: postcss-replace-overflow-wrap@^3.0.0: version "3.0.0" - resolved "https://registry.npm.taobao.org/postcss-replace-overflow-wrap/download/postcss-replace-overflow-wrap-3.0.0.tgz#61b360ffdaedca84c7c918d2b0f0d0ea559ab01c" - integrity sha1-YbNg/9rtyoTHyRjSsPDQ6lWasBw= + resolved "https://registry.yarnpkg.com/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-3.0.0.tgz#61b360ffdaedca84c7c918d2b0f0d0ea559ab01c" + integrity sha512-2T5hcEHArDT6X9+9dVSPQdo7QHzG4XKclFT8rU5TzJPDN7RIRTbO9c4drUISOVemLj03aezStHCR2AIcr8XLpw== dependencies: postcss "^7.0.2" postcss-safe-parser@^4.0.2: version "4.0.2" - resolved "https://registry.npm.taobao.org/postcss-safe-parser/download/postcss-safe-parser-4.0.2.tgz#a6d4e48f0f37d9f7c11b2a581bf00f8ba4870b96" - integrity sha1-ptTkjw832ffBGypYG/APi6SHC5Y= + resolved "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-4.0.2.tgz#a6d4e48f0f37d9f7c11b2a581bf00f8ba4870b96" + integrity sha512-Uw6ekxSWNLCPesSv/cmqf2bY/77z11O7jZGPax3ycZMFU/oi2DMH9i89AdHc1tRwFg/arFoEwX0IS3LCUxJh1g== dependencies: postcss "^7.0.26" postcss-selector-matches@^4.0.0: version "4.0.0" - resolved "https://registry.npm.taobao.org/postcss-selector-matches/download/postcss-selector-matches-4.0.0.tgz#71c8248f917ba2cc93037c9637ee09c64436fcff" - integrity sha1-ccgkj5F7osyTA3yWN+4JxkQ2/P8= + resolved "https://registry.yarnpkg.com/postcss-selector-matches/-/postcss-selector-matches-4.0.0.tgz#71c8248f917ba2cc93037c9637ee09c64436fcff" + integrity sha512-LgsHwQR/EsRYSqlwdGzeaPKVT0Ml7LAT6E75T8W8xLJY62CE4S/l03BWIt3jT8Taq22kXP08s2SfTSzaraoPww== dependencies: balanced-match "^1.0.0" postcss "^7.0.2" postcss-selector-not@^4.0.0: - version "4.0.0" - resolved "https://registry.npm.taobao.org/postcss-selector-not/download/postcss-selector-not-4.0.0.tgz#c68ff7ba96527499e832724a2674d65603b645c0" - integrity sha1-xo/3upZSdJnoMnJKJnTWVgO2RcA= + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-selector-not/-/postcss-selector-not-4.0.1.tgz#263016eef1cf219e0ade9a913780fc1f48204cbf" + integrity sha512-YolvBgInEK5/79C+bdFMyzqTg6pkYqDbzZIST/PDMqa/o3qtXenD05apBG2jLgT0/BQ77d4U2UK12jWpilqMAQ== dependencies: balanced-match "^1.0.0" postcss "^7.0.2" postcss-selector-parser@^3.0.0: version "3.1.2" - resolved "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-3.1.2.tgz#b310f5c4c0fdaf76f94902bbaa30db6aa84f5270" - integrity sha1-sxD1xMD9r3b5SQK7qjDbaqhPUnA= + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz#b310f5c4c0fdaf76f94902bbaa30db6aa84f5270" + integrity sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA== dependencies: dot-prop "^5.2.0" indexes-of "^1.0.1" @@ -6758,36 +6265,34 @@ postcss-selector-parser@^3.0.0: postcss-selector-parser@^5.0.0-rc.3, postcss-selector-parser@^5.0.0-rc.4: version "5.0.0" - resolved "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-5.0.0.tgz#249044356697b33b64f1a8f7c80922dddee7195c" - integrity sha1-JJBENWaXsztk8aj3yAki3d7nGVw= + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-5.0.0.tgz#249044356697b33b64f1a8f7c80922dddee7195c" + integrity sha512-w+zLE5Jhg6Liz8+rQOWEAwtwkyqpfnmsinXjXg6cY7YIONZZtgvE0v2O0uhQBs0peNomOJwWRKt6JBfTdTd3OQ== dependencies: cssesc "^2.0.0" indexes-of "^1.0.1" uniq "^1.0.1" postcss-selector-parser@^6.0.0, postcss-selector-parser@^6.0.2: - version "6.0.2" - resolved "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-6.0.2.tgz#934cf799d016c83411859e09dcecade01286ec5c" - integrity sha1-k0z3mdAWyDQRhZ4J3Oyt4BKG7Fw= + version "6.0.6" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz#2c5bba8174ac2f6981ab631a42ab0ee54af332ea" + integrity sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg== dependencies: cssesc "^3.0.0" - indexes-of "^1.0.1" - uniq "^1.0.1" + util-deprecate "^1.0.2" -postcss-svgo@^4.0.2: - version "4.0.2" - resolved "https://registry.npm.taobao.org/postcss-svgo/download/postcss-svgo-4.0.2.tgz#17b997bc711b333bab143aaed3b8d3d6e3d38258" - integrity sha1-F7mXvHEbMzurFDqu07jT1uPTglg= +postcss-svgo@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.3.tgz#343a2cdbac9505d416243d496f724f38894c941e" + integrity sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw== dependencies: - is-svg "^3.0.0" postcss "^7.0.0" postcss-value-parser "^3.0.0" svgo "^1.0.0" postcss-unique-selectors@^4.0.1: version "4.0.1" - resolved "https://registry.npm.taobao.org/postcss-unique-selectors/download/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac" - integrity sha1-lEaRHzKJv9ZMbWgPBzwDsfnuS6w= + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac" + integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg== dependencies: alphanum-sort "^1.0.0" postcss "^7.0.0" @@ -6795,27 +6300,27 @@ postcss-unique-selectors@^4.0.1: postcss-value-parser@^3.0.0, postcss-value-parser@^3.2.3: version "3.3.1" - resolved "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" - integrity sha1-n/giVH4okyE88cMO+lGsX9G6goE= + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" + integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== -postcss-value-parser@^4.0.0, postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: +postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: version "4.1.0" - resolved "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" - integrity sha1-RD9qIM7WSBor2k+oUypuVdeJoss= + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" + integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== postcss-values-parser@^2.0.0, postcss-values-parser@^2.0.1: version "2.0.1" - resolved "https://registry.npm.taobao.org/postcss-values-parser/download/postcss-values-parser-2.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-values-parser%2Fdownload%2Fpostcss-values-parser-2.0.1.tgz#da8b472d901da1e205b47bdc98637b9e9e550e5f" - integrity sha1-2otHLZAdoeIFtHvcmGN7np5VDl8= + resolved "https://registry.yarnpkg.com/postcss-values-parser/-/postcss-values-parser-2.0.1.tgz#da8b472d901da1e205b47bdc98637b9e9e550e5f" + integrity sha512-2tLuBsA6P4rYTNKCXYG/71C7j1pU6pK503suYOmn4xYrQIzW+opD+7FAFNuGSdZC/3Qfy334QbeMu7MEb8gOxg== dependencies: flatten "^1.0.2" indexes-of "^1.0.1" uniq "^1.0.1" -postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.16, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.26, postcss@^7.0.27, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6: - version "7.0.32" - resolved "https://registry.npm.taobao.org/postcss/download/postcss-7.0.32.tgz#4310d6ee347053da3433db2be492883d62cec59d" - integrity sha1-QxDW7jRwU9o0M9sr5JKIPWLOxZ0= +postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.26, postcss@^7.0.27, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6: + version "7.0.35" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.35.tgz#d2be00b998f7f211d8a276974079f2e92b970e24" + integrity sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg== dependencies: chalk "^2.4.2" source-map "^0.6.1" @@ -6823,56 +6328,46 @@ postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.16, postcss@^7.0.1 prelude-ls@~1.1.2: version "1.1.2" - resolved "https://registry.npm.taobao.org/prelude-ls/download/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= prepend-http@^1.0.0: version "1.0.4" - resolved "https://registry.npm.taobao.org/prepend-http/download/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= process-nextick-args@~2.0.0: version "2.0.1" - resolved "https://registry.npm.taobao.org/process-nextick-args/download/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha1-eCDZsWEgzFXKmud5JoCufbptf+I= + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== process@^0.11.10: version "0.11.10" - resolved "https://registry.npm.taobao.org/process/download/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= promise-inflight@^1.0.1: version "1.0.1" - resolved "https://registry.npm.taobao.org/promise-inflight/download/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= proxy-addr@~2.0.5: - version "2.0.6" - resolved "https://registry.npm.taobao.org/proxy-addr/download/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf" - integrity sha1-/cIzZQVEfT8vLGOO0nLK9hS7sr8= + version "2.0.7" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" + integrity sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg== dependencies: - forwarded "~0.1.2" + forwarded "0.2.0" ipaddr.js "1.9.1" prr@~1.0.1: version "1.0.1" - resolved "https://registry.npm.taobao.org/prr/download/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= -pseudomap@^1.0.2: - version "1.0.2" - resolved "https://registry.npm.taobao.org/pseudomap/download/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= - -psl@^1.1.28: - version "1.8.0" - resolved "https://registry.npm.taobao.org/psl/download/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" - integrity sha1-kyb4vPsBOtzABf3/BWrM4CDlHCQ= - public-encrypt@^4.0.0: version "4.0.3" - resolved "https://registry.npm.taobao.org/public-encrypt/download/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" - integrity sha1-T8ydd6B+SLp1J+fL4N4z0HATMeA= + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" + integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== dependencies: bn.js "^4.1.0" browserify-rsa "^4.0.0" @@ -6883,24 +6378,24 @@ public-encrypt@^4.0.0: pump@^2.0.0: version "2.0.1" - resolved "https://registry.npm.taobao.org/pump/download/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" - integrity sha1-Ejma3W5M91Jtlzy8i1zi4pCLOQk= + resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" + integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== dependencies: end-of-stream "^1.1.0" once "^1.3.1" pump@^3.0.0: version "3.0.0" - resolved "https://registry.npm.taobao.org/pump/download/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ= + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== dependencies: end-of-stream "^1.1.0" once "^1.3.1" pumpify@^1.3.3: version "1.5.1" - resolved "https://registry.npm.taobao.org/pumpify/download/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" - integrity sha1-NlE74karJ1cLGjdKXOJ4v9dDcM4= + resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" + integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== dependencies: duplexify "^3.6.0" inherits "^2.0.3" @@ -6908,37 +6403,32 @@ pumpify@^1.3.3: punycode@1.3.2: version "1.3.2" - resolved "https://registry.npm.taobao.org/punycode/download/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= punycode@^1.2.4: version "1.4.1" - resolved "https://registry.npm.taobao.org/punycode/download/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= -punycode@^2.1.0, punycode@^2.1.1: +punycode@^2.1.0: version "2.1.1" - resolved "https://registry.npm.taobao.org/punycode/download/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha1-tYsBCsQMIsVldhbI0sLALHv0eew= + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== q@^1.1.2: version "1.5.1" - resolved "https://registry.npm.taobao.org/q/download/q-1.5.1.tgz?cache=0&sync_timestamp=1589682817412&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fq%2Fdownload%2Fq-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" + resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= qs@6.7.0: version "6.7.0" - resolved "https://registry.npm.taobao.org/qs/download/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" - integrity sha1-QdwaAV49WB8WIXdr4xr7KHapsbw= - -qs@~6.5.2: - version "6.5.2" - resolved "https://registry.npm.taobao.org/qs/download/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" - integrity sha1-yzroBuh0BERYTvFUzo7pjUA/PjY= + resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" + integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== query-string@^4.1.0: version "4.3.4" - resolved "https://registry.npm.taobao.org/query-string/download/query-string-4.3.4.tgz?cache=0&sync_timestamp=1591853468856&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fquery-string%2Fdownload%2Fquery-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" integrity sha1-u7aTucqRXCMlFbIosaArYJBD2+s= dependencies: object-assign "^4.1.0" @@ -6946,12 +6436,12 @@ query-string@^4.1.0: querystring-es3@^0.2.0: version "0.2.1" - resolved "https://registry.npm.taobao.org/querystring-es3/download/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= querystring@0.2.0: version "0.2.0" - resolved "https://registry.npm.taobao.org/querystring/download/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= querystringify@^2.1.1: @@ -6961,7 +6451,7 @@ querystringify@^2.1.1: quote-stream@^1.0.1: version "1.0.2" - resolved "https://registry.npm.taobao.org/quote-stream/download/quote-stream-1.0.2.tgz#84963f8c9c26b942e153feeb53aae74652b7e0b2" + resolved "https://registry.yarnpkg.com/quote-stream/-/quote-stream-1.0.2.tgz#84963f8c9c26b942e153feeb53aae74652b7e0b2" integrity sha1-hJY/jJwmuULhU/7rU6rnRlK34LI= dependencies: buffer-equal "0.0.1" @@ -6970,43 +6460,43 @@ quote-stream@^1.0.1: rails-erb-loader@^5.5.2: version "5.5.2" - resolved "https://registry.npm.taobao.org/rails-erb-loader/download/rails-erb-loader-5.5.2.tgz#db3fa8ac89600f09d179a1a70a2ca18c592576ea" - integrity sha1-2z+orIlgDwnReaGnCiyhjFklduo= + resolved "https://registry.yarnpkg.com/rails-erb-loader/-/rails-erb-loader-5.5.2.tgz#db3fa8ac89600f09d179a1a70a2ca18c592576ea" + integrity sha512-cjQH9SuSvRPhnWkvjmmAW/S4AFVDfAtYnQO4XpKJ8xpRdZayT73iXoE+IPc3VzN03noZXhVmyvsCvKvHj4LY6w== dependencies: loader-utils "^1.1.0" lodash.defaults "^4.2.0" randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: version "2.1.0" - resolved "https://registry.npm.taobao.org/randombytes/download/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha1-32+ENy8CcNxlzfYpE0mrekc9Tyo= + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== dependencies: safe-buffer "^5.1.0" randomfill@^1.0.3: version "1.0.4" - resolved "https://registry.npm.taobao.org/randomfill/download/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" - integrity sha1-ySGW/IarQr6YPxvzF3giSTHWFFg= + resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== dependencies: randombytes "^2.0.5" safe-buffer "^5.1.0" range-parser@^1.2.1, range-parser@~1.2.1: version "1.2.1" - resolved "https://registry.npm.taobao.org/range-parser/download/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" - integrity sha1-PPNwI9GZ4cJNGlW4SADC8+ZGgDE= + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== "raphael@^2.2.0 || ^2.1.1", raphael@^2.3.0: version "2.3.0" - resolved "https://registry.npm.taobao.org/raphael/download/raphael-2.3.0.tgz#eabeb09dba861a1d4cee077eaafb8c53f3131f89" - integrity sha1-6r6wnbqGGh1M7gd+qvuMU/MTH4k= + resolved "https://registry.yarnpkg.com/raphael/-/raphael-2.3.0.tgz#eabeb09dba861a1d4cee077eaafb8c53f3131f89" + integrity sha512-w2yIenZAQnp257XUWGni4bLMVxpUpcIl7qgxEgDIXtmSypYtlNxfXWpOBxs7LBTps5sDwhRnrToJrMUrivqNTQ== dependencies: eve-raphael "0.5.0" raw-body@2.4.0: version "2.4.0" - resolved "https://registry.npm.taobao.org/raw-body/download/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" - integrity sha1-oc5vucm8NWylLoklarWQWeE9AzI= + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" + integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== dependencies: bytes "3.1.0" http-errors "1.7.2" @@ -7015,32 +6505,15 @@ raw-body@2.4.0: read-cache@^1.0.0: version "1.0.0" - resolved "https://registry.npm.taobao.org/read-cache/download/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" + resolved "https://registry.yarnpkg.com/read-cache/-/read-cache-1.0.0.tgz#e664ef31161166c9751cdbe8dbcf86b5fb58f774" integrity sha1-5mTvMRYRZsl1HNvo28+GtftY93Q= dependencies: pify "^2.3.0" -read-pkg-up@^1.0.1: - version "1.0.1" - resolved "https://registry.npm.taobao.org/read-pkg-up/download/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" - integrity sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI= - dependencies: - find-up "^1.0.0" - read-pkg "^1.0.0" - -read-pkg@^1.0.0: - version "1.1.0" - resolved "https://registry.npm.taobao.org/read-pkg/download/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" - integrity sha1-9f+qXs0pyzHAR0vKfXVra7KePyg= - dependencies: - load-json-file "^1.0.0" - normalize-package-data "^2.3.2" - path-type "^1.0.0" - -"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.3, readable-stream@~2.3.6: +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.3, readable-stream@~2.3.6: version "2.3.7" - resolved "https://registry.npm.taobao.org/readable-stream/download/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" - integrity sha1-Hsoc9xGu+BTAT2IlKjamL2yyO1c= + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== dependencies: core-util-is "~1.0.0" inherits "~2.0.3" @@ -7052,8 +6525,8 @@ read-pkg@^1.0.0: readable-stream@^3.0.6, readable-stream@^3.6.0: version "3.6.0" - resolved "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" - integrity sha1-M3u9o63AcGvT4CRCaihtS0sskZg= + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== dependencies: inherits "^2.0.3" string_decoder "^1.1.1" @@ -7061,44 +6534,36 @@ readable-stream@^3.0.6, readable-stream@^3.6.0: readdirp@^2.2.1: version "2.2.1" - resolved "https://registry.npm.taobao.org/readdirp/download/readdirp-2.2.1.tgz?cache=0&sync_timestamp=1584986156939&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freaddirp%2Fdownload%2Freaddirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" - integrity sha1-DodiKjMlqjPokihcr4tOhGUppSU= + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" + integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== dependencies: graceful-fs "^4.1.11" micromatch "^3.1.10" readable-stream "^2.0.2" -readdirp@~3.4.0: - version "3.4.0" - resolved "https://registry.npm.taobao.org/readdirp/download/readdirp-3.4.0.tgz?cache=0&sync_timestamp=1584986156939&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freaddirp%2Fdownload%2Freaddirp-3.4.0.tgz#9fdccdf9e9155805449221ac645e8303ab5b9ada" - integrity sha1-n9zN+ekVWAVEkiGsZF6DA6tbmto= +readdirp@~3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.5.0.tgz#9ba74c019b15d365278d2e91bb8c48d7b4d42c9e" + integrity sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ== dependencies: picomatch "^2.2.1" -redent@^1.0.0: - version "1.0.0" - resolved "https://registry.npm.taobao.org/redent/download/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" - integrity sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94= - dependencies: - indent-string "^2.1.0" - strip-indent "^1.0.1" - regenerate-unicode-properties@^8.2.0: version "8.2.0" - resolved "https://registry.npm.taobao.org/regenerate-unicode-properties/download/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" - integrity sha1-5d5xEdZV57pgwFfb6f83yH5lzew= + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" + integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA== dependencies: regenerate "^1.4.0" regenerate@^1.4.0: - version "1.4.1" - resolved "https://registry.npm.taobao.org/regenerate/download/regenerate-1.4.1.tgz#cad92ad8e6b591773485fbe05a485caf4f457e6f" - integrity sha1-ytkq2Oa1kXc0hfvgWkhcr09Ffm8= + version "1.4.2" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== regenerator-runtime@^0.11.0: version "0.11.1" - resolved "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" - integrity sha1-vgWtf5v30i4Fb5cmzuUBf78Z4uk= + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== regenerator-runtime@^0.13.4, regenerator-runtime@^0.13.7: version "0.13.7" @@ -7107,31 +6572,31 @@ regenerator-runtime@^0.13.4, regenerator-runtime@^0.13.7: regenerator-transform@^0.14.2: version "0.14.5" - resolved "https://registry.npm.taobao.org/regenerator-transform/download/regenerator-transform-0.14.5.tgz?cache=0&sync_timestamp=1593557271381&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-transform%2Fdownload%2Fregenerator-transform-0.14.5.tgz#c98da154683671c9c4dcb16ece736517e1b7feb4" - integrity sha1-yY2hVGg2ccnE3LFuznNlF+G3/rQ= + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.5.tgz#c98da154683671c9c4dcb16ece736517e1b7feb4" + integrity sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw== dependencies: "@babel/runtime" "^7.8.4" regex-not@^1.0.0, regex-not@^1.0.2: version "1.0.2" - resolved "https://registry.npm.taobao.org/regex-not/download/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" - integrity sha1-H07OJ+ALC2XgJHpoEOaoXYOldSw= + resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== dependencies: extend-shallow "^3.0.2" safe-regex "^1.1.0" regexp.prototype.flags@^1.2.0: - version "1.3.0" - resolved "https://registry.npm.taobao.org/regexp.prototype.flags/download/regexp.prototype.flags-1.3.0.tgz#7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75" - integrity sha1-erqJs8E6ZFCdq888qNn7ub31y3U= + version "1.3.1" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz#7ef352ae8d159e758c0eadca6f8fcb4eef07be26" + integrity sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA== dependencies: + call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" -regexpu-core@^4.7.0: - version "4.7.0" - resolved "https://registry.npm.taobao.org/regexpu-core/download/regexpu-core-4.7.0.tgz?cache=0&sync_timestamp=1583949999327&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexpu-core%2Fdownload%2Fregexpu-core-4.7.0.tgz#fcbf458c50431b0bb7b45d6967b8192d91f3d938" - integrity sha1-/L9FjFBDGwu3tF1pZ7gZLZHz2Tg= +regexpu-core@^4.7.1: + version "4.7.1" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.1.tgz#2dea5a9a07233298fbf0db91fa9abc4c6e0f8ad6" + integrity sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ== dependencies: regenerate "^1.4.0" regenerate-unicode-properties "^8.2.0" @@ -7142,73 +6607,40 @@ regexpu-core@^4.7.0: regjsgen@^0.5.1: version "0.5.2" - resolved "https://registry.npm.taobao.org/regjsgen/download/regjsgen-0.5.2.tgz?cache=0&sync_timestamp=1590335923060&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregjsgen%2Fdownload%2Fregjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733" - integrity sha1-kv8pX7He7L9uzaslQ9IH6RqjNzM= + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733" + integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A== regjsparser@^0.6.4: - version "0.6.4" - resolved "https://registry.npm.taobao.org/regjsparser/download/regjsparser-0.6.4.tgz#a769f8684308401a66e9b529d2436ff4d0666272" - integrity sha1-p2n4aEMIQBpm6bUp0kNv9NBmYnI= + version "0.6.9" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.9.tgz#b489eef7c9a2ce43727627011429cf833a7183e6" + integrity sha512-ZqbNRz1SNjLAiYuwY0zoXW8Ne675IX5q+YHioAGbCw4X96Mjl2+dcX9B2ciaeyYjViDAfvIjFpQjJgLttTEERQ== dependencies: jsesc "~0.5.0" remove-trailing-separator@^1.0.1: version "1.1.0" - resolved "https://registry.npm.taobao.org/remove-trailing-separator/download/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= repeat-element@^1.1.2: - version "1.1.3" - resolved "https://registry.npm.taobao.org/repeat-element/download/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" - integrity sha1-eC4NglwMWjuzlzH4Tv7mt0Lmsc4= + version "1.1.4" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" + integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== repeat-string@^1.6.1: version "1.6.1" - resolved "https://registry.npm.taobao.org/repeat-string/download/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= -repeating@^2.0.0: - version "2.0.1" - resolved "https://registry.npm.taobao.org/repeating/download/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" - integrity sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo= - dependencies: - is-finite "^1.0.0" - -request@^2.87.0, request@^2.88.0: - version "2.88.2" - resolved "https://registry.npm.taobao.org/request/download/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" - integrity sha1-1zyRhzHLWofaBH4gcjQUb2ZNErM= - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - har-validator "~5.1.3" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - oauth-sign "~0.9.0" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.5.0" - tunnel-agent "^0.6.0" - uuid "^3.3.2" - require-directory@^2.1.1: version "2.1.1" - resolved "https://registry.npm.taobao.org/require-directory/download/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= require-main-filename@^2.0.0: version "2.0.0" - resolved "https://registry.npm.taobao.org/require-main-filename/download/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" - integrity sha1-0LMp7MfMD2Fkn2IhW+aa9UqomJs= + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== requires-port@^1.0.0: version "1.0.0" @@ -7217,14 +6649,14 @@ requires-port@^1.0.0: resolve-cwd@^2.0.0: version "2.0.0" - resolved "https://registry.npm.taobao.org/resolve-cwd/download/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= dependencies: resolve-from "^3.0.0" resolve-dir@^1.0.0, resolve-dir@^1.0.1: version "1.0.1" - resolved "https://registry.npm.taobao.org/resolve-dir/download/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" + resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= dependencies: expand-tilde "^2.0.0" @@ -7232,62 +6664,63 @@ resolve-dir@^1.0.0, resolve-dir@^1.0.1: resolve-from@^3.0.0: version "3.0.0" - resolved "https://registry.npm.taobao.org/resolve-from/download/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" integrity sha1-six699nWiBvItuZTM17rywoYh0g= resolve-from@^4.0.0: version "4.0.0" - resolved "https://registry.npm.taobao.org/resolve-from/download/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" - integrity sha1-SrzYUq0y3Xuqv+m0DgCjbbXzkuY= + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== resolve-url@^0.2.1: version "0.2.1" - resolved "https://registry.npm.taobao.org/resolve-url/download/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= resolve@1.1.7: version "1.1.7" - resolved "https://registry.npm.taobao.org/resolve/download/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= -resolve@^1.1.5, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.12.0, resolve@^1.3.2, resolve@^1.8.1: - version "1.17.0" - resolved "https://registry.npm.taobao.org/resolve/download/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" - integrity sha1-sllBtUloIxzC0bt2p5y38sC/hEQ= +resolve@^1.1.5, resolve@^1.1.7, resolve@^1.12.0, resolve@^1.14.2: + version "1.20.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" + integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== dependencies: + is-core-module "^2.2.0" path-parse "^1.0.6" restructure@^0.5.3: version "0.5.4" - resolved "https://registry.npm.taobao.org/restructure/download/restructure-0.5.4.tgz#f54e7dd563590fb34fd6bf55876109aeccb28de8" + resolved "https://registry.yarnpkg.com/restructure/-/restructure-0.5.4.tgz#f54e7dd563590fb34fd6bf55876109aeccb28de8" integrity sha1-9U591WNZD7NP1r9Vh2EJrsyyjeg= dependencies: browserify-optional "^1.0.0" ret@~0.1.10: version "0.1.15" - resolved "https://registry.npm.taobao.org/ret/download/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - integrity sha1-uKSCXVvbH8P29Twrwz+BOIaBx7w= + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== retry@^0.12.0: version "0.12.0" - resolved "https://registry.npm.taobao.org/retry/download/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= rgb-regex@^1.0.1: version "1.0.1" - resolved "https://registry.npm.taobao.org/rgb-regex/download/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" + resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE= rgba-regex@^1.0.0: version "1.0.0" - resolved "https://registry.npm.taobao.org/rgba-regex/download/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" + resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= -rimraf@2, rimraf@^2.5.4, rimraf@^2.6.3: +rimraf@^2.5.4, rimraf@^2.6.3: version "2.7.1" - resolved "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz?cache=0&sync_timestamp=1589682814592&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w= + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== dependencies: glob "^7.1.3" @@ -7300,77 +6733,74 @@ rimraf@^3.0.2: ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.2" - resolved "https://registry.npm.taobao.org/ripemd160/download/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" - integrity sha1-ocGm9iR1FXe6XQeRTLyShQWFiQw= + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== dependencies: hash-base "^3.0.0" inherits "^2.0.1" run-queue@^1.0.0, run-queue@^1.0.3: version "1.0.3" - resolved "https://registry.npm.taobao.org/run-queue/download/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" + resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= dependencies: aproba "^1.1.1" safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" - resolved "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha1-mR7GnSluAxN0fVm9/St0XDX4go0= + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: version "5.2.1" - resolved "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY= + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== safe-regex@^1.1.0: version "1.1.0" - resolved "https://registry.npm.taobao.org/safe-regex/download/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= dependencies: ret "~0.1.10" -"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: +"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.1.0: version "2.1.2" - resolved "https://registry.npm.taobao.org/safer-buffer/download/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo= + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sass-graph@2.2.5: - version "2.2.5" - resolved "https://registry.npm.taobao.org/sass-graph/download/sass-graph-2.2.5.tgz?cache=0&sync_timestamp=1588596752763&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsass-graph%2Fdownload%2Fsass-graph-2.2.5.tgz#a981c87446b8319d96dce0671e487879bd24c2e8" - integrity sha1-qYHIdEa4MZ2W3OBnHkh4eb0kwug= +sass-loader@10.1.1: + version "10.1.1" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-10.1.1.tgz#4ddd5a3d7638e7949065dd6e9c7c04037f7e663d" + integrity sha512-W6gVDXAd5hR/WHsPicvZdjAWHBcEJ44UahgxcIE196fW2ong0ZHMPO1kZuI5q0VlvMQZh32gpv69PLWQm70qrw== dependencies: - glob "^7.0.0" - lodash "^4.0.0" - scss-tokenizer "^0.2.3" - yargs "^13.3.2" + klona "^2.0.4" + loader-utils "^2.0.0" + neo-async "^2.6.2" + schema-utils "^3.0.0" + semver "^7.3.2" -sass-loader@^8.0.2: - version "8.0.2" - resolved "https://registry.npm.taobao.org/sass-loader/download/sass-loader-8.0.2.tgz?cache=0&sync_timestamp=1594134279287&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsass-loader%2Fdownload%2Fsass-loader-8.0.2.tgz#debecd8c3ce243c76454f2e8290482150380090d" - integrity sha1-3r7NjDziQ8dkVPLoKQSCFQOACQ0= +sass@^1.32.13: + version "1.34.1" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.34.1.tgz#30f45c606c483d47b634f1e7371e13ff773c96ef" + integrity sha512-scLA7EIZM+MmYlej6sdVr0HRbZX5caX5ofDT9asWnUJj21oqgsC+1LuNfm0eg+vM0fCTZHhwImTiCU0sx9h9CQ== dependencies: - clone-deep "^4.0.1" - loader-utils "^1.2.3" - neo-async "^2.6.1" - schema-utils "^2.6.1" - semver "^6.3.0" + chokidar ">=3.0.0 <4.0.0" -sax@~1.2.4: +sax@^1.2.1, sax@~1.2.4: version "1.2.4" - resolved "https://registry.npm.taobao.org/sax/download/sax-1.2.4.tgz?cache=0&sync_timestamp=1589682064084&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsax%2Fdownload%2Fsax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" - integrity sha1-KBYjTiN4vdxOU1T6tcqold9xANk= + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== schema-utils@^1.0.0: version "1.0.0" - resolved "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" - integrity sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A= + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" + integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== dependencies: ajv "^6.1.0" ajv-errors "^1.0.0" ajv-keywords "^3.1.0" -schema-utils@^2.6.1, schema-utils@^2.6.5, schema-utils@^2.6.6, schema-utils@^2.7.0, schema-utils@^2.7.1: +schema-utils@^2.6.5, schema-utils@^2.7.0: version "2.7.1" resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.7.1.tgz#1ca4f32d1b24c590c203b8e7a50bf0ea4cd394d7" integrity sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg== @@ -7379,10 +6809,19 @@ schema-utils@^2.6.1, schema-utils@^2.6.5, schema-utils@^2.6.6, schema-utils@^2.7 ajv "^6.12.4" ajv-keywords "^3.5.2" +schema-utils@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-3.0.0.tgz#67502f6aa2b66a2d4032b4279a2944978a0913ef" + integrity sha512-6D82/xSzO094ajanoOSbe4YvXWMfn2A//8Y1+MUqFAJul5Bs+yn36xbK9OtNDcRVSBJ9jjeoXftM6CfztsjOAA== + dependencies: + "@types/json-schema" "^7.0.6" + ajv "^6.12.5" + ajv-keywords "^3.5.2" + scope-analyzer@^2.0.1: version "2.1.1" - resolved "https://registry.npm.taobao.org/scope-analyzer/download/scope-analyzer-2.1.1.tgz#5156c27de084d74bf75af9e9506aaf95c6e73dd6" - integrity sha1-UVbCfeCE10v3WvnpUGqvlcbnPdY= + resolved "https://registry.yarnpkg.com/scope-analyzer/-/scope-analyzer-2.1.1.tgz#5156c27de084d74bf75af9e9506aaf95c6e73dd6" + integrity sha512-azEAihtQ9mEyZGhfgTJy3IbOWEzeOrYbg7NcYEshPKnKd+LZmC3TNd5dmDxbLBsTG/JVWmCp+vDJ03vJjeXMHg== dependencies: array-from "^2.1.1" dash-ast "^1.0.0" @@ -7392,60 +6831,54 @@ scope-analyzer@^2.0.1: estree-is-function "^1.0.0" get-assigned-identifiers "^1.1.0" -scss-tokenizer@^0.2.3: - version "0.2.3" - resolved "https://registry.npm.taobao.org/scss-tokenizer/download/scss-tokenizer-0.2.3.tgz#8eb06db9a9723333824d3f5530641149847ce5d1" - integrity sha1-jrBtualyMzOCTT9VMGQRSYR85dE= - dependencies: - js-base64 "^2.1.8" - source-map "^0.4.2" - select-hose@^2.0.0: version "2.0.0" - resolved "https://registry.npm.taobao.org/select-hose/download/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" + resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= select2@^4.0.13: version "4.0.13" - resolved "https://registry.npm.taobao.org/select2/download/select2-4.0.13.tgz#0dbe377df3f96167c4c1626033e924372d8ef44d" - integrity sha1-Db43ffP5YWfEwWJgM+kkNy2O9E0= + resolved "https://registry.yarnpkg.com/select2/-/select2-4.0.13.tgz#0dbe377df3f96167c4c1626033e924372d8ef44d" + integrity sha512-1JeB87s6oN/TDxQQYCvS5EFoQyvV6eYMZZ0AeA4tdFDYWN3BAGZ8npr17UBFddU0lgAt3H0yjX3X6/ekOj1yjw== select@^1.1.2: version "1.1.2" - resolved "https://registry.npm.taobao.org/select/download/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d" + resolved "https://registry.yarnpkg.com/select/-/select-1.1.2.tgz#0e7350acdec80b1108528786ec1d4418d11b396d" integrity sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0= selfsigned@^1.10.8: - version "1.10.8" - resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.8.tgz#0d17208b7d12c33f8eac85c41835f27fc3d81a30" - integrity sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w== + version "1.10.11" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.11.tgz#24929cd906fe0f44b6d01fb23999a739537acbe9" + integrity sha512-aVmbPOfViZqOZPgRBT0+3u4yZFHpmnIghLMlAcb5/xhp5ZtB/RVnKhz5vl2M32CLXAqR4kha9zfhNg0Lf/sxKA== dependencies: node-forge "^0.10.0" -"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: - version "5.7.1" - resolved "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha1-qVT5Ma66UI0we78Gnv8MAclhFvc= - semver@7.0.0: version "7.0.0" - resolved "https://registry.npm.taobao.org/semver/download/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" - integrity sha1-XzyjV2HkfgWyBsba/yz4FPAxa44= + resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" + integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== + +semver@^5.5.0, semver@^5.6.0: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== -semver@^6.0.0, semver@^6.3.0: +semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: version "6.3.0" - resolved "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0= + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@~5.3.0: - version "5.3.0" - resolved "https://registry.npm.taobao.org/semver/download/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" - integrity sha1-myzl094C0XxgEq0yaqa00M9U+U8= +semver@^7.3.2: + version "7.3.5" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" + integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== + dependencies: + lru-cache "^6.0.0" send@0.17.1: version "0.17.1" - resolved "https://registry.npm.taobao.org/send/download/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" - integrity sha1-wdiwWfeQD3Rm3Uk4vcROEd2zdsg= + resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" + integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== dependencies: debug "2.6.9" depd "~1.1.2" @@ -7461,13 +6894,6 @@ send@0.17.1: range-parser "~1.2.1" statuses "~1.5.0" -serialize-javascript@^3.1.0: - version "3.1.0" - resolved "https://registry.npm.taobao.org/serialize-javascript/download/serialize-javascript-3.1.0.tgz#8bf3a9170712664ef2561b44b691eafe399214ea" - integrity sha1-i/OpFwcSZk7yVhtEtpHq/jmSFOo= - dependencies: - randombytes "^2.1.0" - serialize-javascript@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa" @@ -7484,7 +6910,7 @@ serialize-javascript@^5.0.1: serve-index@^1.9.1: version "1.9.1" - resolved "https://registry.npm.taobao.org/serve-index/download/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" + resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk= dependencies: accepts "~1.3.4" @@ -7497,28 +6923,28 @@ serve-index@^1.9.1: serve-static@1.14.1: version "1.14.1" - resolved "https://registry.npm.taobao.org/serve-static/download/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" - integrity sha1-Zm5jbcTwEPfvKZcKiKZ0MgiYsvk= + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" + integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== dependencies: encodeurl "~1.0.2" escape-html "~1.0.3" parseurl "~1.3.3" send "0.17.1" -set-blocking@^2.0.0, set-blocking@~2.0.0: +set-blocking@^2.0.0: version "2.0.0" - resolved "https://registry.npm.taobao.org/set-blocking/download/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= set-immediate-shim@~1.0.1: version "1.0.1" - resolved "https://registry.npm.taobao.org/set-immediate-shim/download/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" + resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" integrity sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E= set-value@^2.0.0, set-value@^2.0.1: version "2.0.1" - resolved "https://registry.npm.taobao.org/set-value/download/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" - integrity sha1-oY1AUw5vB95CKMfe/kInr4ytAFs= + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" + integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== dependencies: extend-shallow "^2.0.1" is-extendable "^0.1.1" @@ -7527,67 +6953,60 @@ set-value@^2.0.0, set-value@^2.0.1: setimmediate@^1.0.4: version "1.0.5" - resolved "https://registry.npm.taobao.org/setimmediate/download/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= setprototypeof@1.1.0: version "1.1.0" - resolved "https://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" - integrity sha1-0L2FU2iHtv58DYGMuWLZ2RxU5lY= + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== setprototypeof@1.1.1: version "1.1.1" - resolved "https://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" - integrity sha1-fpWsskqpL1iF4KvvW6ExMw1K5oM= + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" + integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== sha.js@^2.4.0, sha.js@^2.4.8: version "2.4.11" - resolved "https://registry.npm.taobao.org/sha.js/download/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" - integrity sha1-N6XPC4HsvGlD3hCbopYNGyZYSuc= + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== dependencies: inherits "^2.0.1" safe-buffer "^5.0.1" -shallow-clone@^3.0.0: - version "3.0.1" - resolved "https://registry.npm.taobao.org/shallow-clone/download/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" - integrity sha1-jymBrZJTH1UDWwH7IwdppA4C76M= - dependencies: - kind-of "^6.0.2" - shallow-copy@~0.0.1: version "0.0.1" - resolved "https://registry.npm.taobao.org/shallow-copy/download/shallow-copy-0.0.1.tgz#415f42702d73d810330292cc5ee86eae1a11a170" + resolved "https://registry.yarnpkg.com/shallow-copy/-/shallow-copy-0.0.1.tgz#415f42702d73d810330292cc5ee86eae1a11a170" integrity sha1-QV9CcC1z2BAzApLMXuhurhoRoXA= shebang-command@^1.2.0: version "1.2.0" - resolved "https://registry.npm.taobao.org/shebang-command/download/shebang-command-1.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fshebang-command%2Fdownload%2Fshebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= dependencies: shebang-regex "^1.0.0" shebang-regex@^1.0.0: version "1.0.0" - resolved "https://registry.npm.taobao.org/shebang-regex/download/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= signal-exit@^3.0.0: version "3.0.3" - resolved "https://registry.npm.taobao.org/signal-exit/download/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" - integrity sha1-oUEMLt2PB3sItOJTyOrPyvBXRhw= + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" + integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== simple-swizzle@^0.2.2: version "0.2.2" - resolved "https://registry.npm.taobao.org/simple-swizzle/download/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= dependencies: is-arrayish "^0.3.1" snapdragon-node@^2.0.1: version "2.1.1" - resolved "https://registry.npm.taobao.org/snapdragon-node/download/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" - integrity sha1-bBdfhv8UvbByRWPo88GwIaKGhTs= + resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== dependencies: define-property "^1.0.0" isobject "^3.0.0" @@ -7595,15 +7014,15 @@ snapdragon-node@^2.0.1: snapdragon-util@^3.0.1: version "3.0.1" - resolved "https://registry.npm.taobao.org/snapdragon-util/download/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" - integrity sha1-+VZHlIbyrNeXAGk/b3uAXkWrVuI= + resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== dependencies: kind-of "^3.2.0" snapdragon@^0.8.1: version "0.8.2" - resolved "https://registry.npm.taobao.org/snapdragon/download/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" - integrity sha1-ZJIufFZbDhQgS6GqfWlkJ40lGC0= + resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== dependencies: base "^0.11.1" debug "^2.2.0" @@ -7615,16 +7034,16 @@ snapdragon@^0.8.1: use "^3.1.0" sockjs-client@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.5.0.tgz#2f8ff5d4b659e0d092f7aba0b7c386bd2aa20add" - integrity sha512-8Dt3BDi4FYNrCFGTL/HtwVzkARrENdwOUf1ZoW/9p3M8lZdFT35jVdrHza+qgxuG9H3/shR4cuX/X9umUrjP8Q== + version "1.5.1" + resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.5.1.tgz#256908f6d5adfb94dabbdbd02c66362cca0f9ea6" + integrity sha512-VnVAb663fosipI/m6pqRXakEOw7nvd7TUgdr3PlR/8V2I95QIdwT8L4nMxhyU8SmDBHYXU1TOElaKOmKLfYzeQ== dependencies: debug "^3.2.6" eventsource "^1.0.7" faye-websocket "^0.11.3" inherits "^2.0.4" json3 "^3.3.3" - url-parse "^1.4.7" + url-parse "^1.5.1" sockjs@^0.3.21: version "0.3.21" @@ -7637,20 +7056,20 @@ sockjs@^0.3.21: sort-keys@^1.0.0: version "1.1.2" - resolved "https://registry.npm.taobao.org/sort-keys/download/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" + resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" integrity sha1-RBttTTRnmPG05J6JIK37oOVD+a0= dependencies: is-plain-obj "^1.0.0" source-list-map@^2.0.0: version "2.0.1" - resolved "https://registry.npm.taobao.org/source-list-map/download/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" - integrity sha1-OZO9hzv8SEecyp6jpUeDXHwVSzQ= + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" + integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== source-map-resolve@^0.5.0: version "0.5.3" - resolved "https://registry.npm.taobao.org/source-map-resolve/download/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" - integrity sha1-GQhmvs51U+H48mei7oLGBrVQmho= + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" + integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== dependencies: atob "^2.1.2" decode-uri-component "^0.2.0" @@ -7658,83 +7077,55 @@ source-map-resolve@^0.5.0: source-map-url "^0.4.0" urix "^0.1.0" -source-map-support@~0.5.12: +source-map-support@~0.5.12, source-map-support@~0.5.19: version "0.5.19" - resolved "https://registry.npm.taobao.org/source-map-support/download/source-map-support-0.5.19.tgz?cache=0&sync_timestamp=1587719493563&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-support%2Fdownload%2Fsource-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" - integrity sha1-qYti+G3K9PZzmWSMCFKRq56P7WE= + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" + integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== dependencies: buffer-from "^1.0.0" source-map "^0.6.0" source-map-url@^0.4.0: - version "0.4.0" - resolved "https://registry.npm.taobao.org/source-map-url/download/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" - integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= - -source-map@^0.4.2: - version "0.4.4" - resolved "https://registry.npm.taobao.org/source-map/download/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" - integrity sha1-66T12pwNyZneaAMti092FzZSA2s= - dependencies: - amdefine ">=0.0.4" + version "0.4.1" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" + integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== source-map@^0.5.0, source-map@^0.5.6: version "0.5.7" - resolved "https://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: version "0.6.1" - resolved "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha1-dHIq8y6WFOnCh6jQu95IteLxomM= + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== source-map@~0.1.30: version "0.1.43" - resolved "https://registry.npm.taobao.org/source-map/download/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346" integrity sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y= dependencies: amdefine ">=0.0.4" +source-map@~0.7.2: + version "0.7.3" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" + integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== + sourcemap-codec@^1.4.1: version "1.4.8" - resolved "https://registry.npm.taobao.org/sourcemap-codec/download/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" - integrity sha1-6oBL2UhXQC5pktBaOO8a41qatMQ= - -sparklines@^1.2.0: - version "1.2.0" - resolved "https://registry.npm.taobao.org/sparklines/download/sparklines-1.2.0.tgz#bbbf2dede9bc337749e430baf67c2b37f88f6fa0" - integrity sha1-u78t7em8M3dJ5DC69nwrN/iPb6A= - -spdx-correct@^3.0.0: - version "3.1.1" - resolved "https://registry.npm.taobao.org/spdx-correct/download/spdx-correct-3.1.1.tgz?cache=0&sync_timestamp=1590161973481&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdx-correct%2Fdownload%2Fspdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" - integrity sha1-3s6BrJweZxPl99G28X1Gj6U9iak= - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.3.0" - resolved "https://registry.npm.taobao.org/spdx-exceptions/download/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" - integrity sha1-PyjOGnegA3JoPq3kpDMYNSeiFj0= - -spdx-expression-parse@^3.0.0: - version "3.0.1" - resolved "https://registry.npm.taobao.org/spdx-expression-parse/download/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" - integrity sha1-z3D1BILu/cmOPOCmgz5KU87rpnk= - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" + resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" + integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== -spdx-license-ids@^3.0.0: - version "3.0.5" - resolved "https://registry.npm.taobao.org/spdx-license-ids/download/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" - integrity sha1-NpS1gEVnpFjTyARYQqY1hjL2JlQ= +sparklines@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/sparklines/-/sparklines-1.3.0.tgz#08015a34c295b62196b91e98df53bfbcb1fde175" + integrity sha512-CkFtpDE3hmOeu1IJyIQIOH0AQtHnPj1c61ALxJZQ9cPEFKDgWC1fcNAHuwPi1i1klTDYvlKKseoYHSwe7JmdLA== spdy-transport@^3.0.0: version "3.0.0" - resolved "https://registry.npm.taobao.org/spdy-transport/download/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" - integrity sha1-ANSGOmQArXXfkzYaFghgXl3NzzE= + resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" + integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== dependencies: debug "^4.1.0" detect-node "^2.0.4" @@ -7745,8 +7136,8 @@ spdy-transport@^3.0.0: spdy@^4.0.2: version "4.0.2" - resolved "https://registry.npm.taobao.org/spdy/download/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" - integrity sha1-t09GYgOj7aRSwCSSuR+56EonZ3s= + resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" + integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== dependencies: debug "^4.1.0" handle-thing "^2.0.0" @@ -7756,31 +7147,16 @@ spdy@^4.0.2: split-string@^3.0.1, split-string@^3.0.2: version "3.1.0" - resolved "https://registry.npm.taobao.org/split-string/download/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" - integrity sha1-fLCd2jqGWFcFxks5pkZgOGguj+I= + resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== dependencies: extend-shallow "^3.0.0" sprintf-js@~1.0.2: version "1.0.3" - resolved "https://registry.npm.taobao.org/sprintf-js/download/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= -sshpk@^1.7.0: - version "1.16.1" - resolved "https://registry.npm.taobao.org/sshpk/download/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" - integrity sha1-+2YcC+8ps520B2nuOfpwCT1vaHc= - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - ssri@^6.0.1: version "6.0.2" resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.2.tgz#157939134f20464e7301ddba3e90ffa8f7728ac5" @@ -7788,28 +7164,28 @@ ssri@^6.0.1: dependencies: figgy-pudding "^3.5.1" -ssri@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.0.tgz#79ca74e21f8ceaeddfcb4b90143c458b8d988808" - integrity sha512-aq/pz989nxVYwn16Tsbj1TqFpD5LLrQxHf5zaHuieFV+R0Bbr4y8qUsOA45hXT/N4/9UNXTarBjnjVmjSOVaAA== +ssri@^8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af" + integrity sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ== dependencies: minipass "^3.1.1" stable@^0.1.8: version "0.1.8" - resolved "https://registry.npm.taobao.org/stable/download/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" - integrity sha1-g26zyDgv4pNv6vVEYxAXzn1Ho88= + resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" + integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== static-eval@^2.0.5: version "2.1.0" - resolved "https://registry.npm.taobao.org/static-eval/download/static-eval-2.1.0.tgz?cache=0&sync_timestamp=1592217615196&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstatic-eval%2Fdownload%2Fstatic-eval-2.1.0.tgz#a16dbe54522d7fa5ef1389129d813fd47b148014" - integrity sha1-oW2+VFItf6XvE4kSnYE/1HsUgBQ= + resolved "https://registry.yarnpkg.com/static-eval/-/static-eval-2.1.0.tgz#a16dbe54522d7fa5ef1389129d813fd47b148014" + integrity sha512-agtxZ/kWSsCkI5E4QifRwsaPs0P0JmZV6dkLz6ILYfFYQGn+5plctanRN+IC8dJRiFkyXHrwEE3W9Wmx67uDbw== dependencies: escodegen "^1.11.1" static-extend@^0.1.1: version "0.1.2" - resolved "https://registry.npm.taobao.org/static-extend/download/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= dependencies: define-property "^0.2.5" @@ -7817,8 +7193,8 @@ static-extend@^0.1.1: static-module@^3.0.2: version "3.0.4" - resolved "https://registry.npm.taobao.org/static-module/download/static-module-3.0.4.tgz#bfbd1d1c38dd1fbbf0bb4af0c1b3ae18a93a2b68" - integrity sha1-v70dHDjdH7vwu0rwwbOuGKk6K2g= + resolved "https://registry.yarnpkg.com/static-module/-/static-module-3.0.4.tgz#bfbd1d1c38dd1fbbf0bb4af0c1b3ae18a93a2b68" + integrity sha512-gb0v0rrgpBkifXCa3yZXxqVmXDVE+ETXj6YlC/jt5VzOnGXR2C15+++eXuMDUYsePnbhf+lwW0pE1UXyOLtGCw== dependencies: acorn-node "^1.3.0" concat-stream "~1.6.0" @@ -7837,36 +7213,29 @@ static-module@^3.0.2: "statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: version "1.5.0" - resolved "https://registry.npm.taobao.org/statuses/download/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= -stdout-stream@^1.4.0: - version "1.4.1" - resolved "https://registry.npm.taobao.org/stdout-stream/download/stdout-stream-1.4.1.tgz#5ac174cdd5cd726104aa0c0b2bd83815d8d535de" - integrity sha1-WsF0zdXNcmEEqgwLK9g4FdjVNd4= - dependencies: - readable-stream "^2.0.1" - stream-browserify@^2.0.1: version "2.0.2" - resolved "https://registry.npm.taobao.org/stream-browserify/download/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" - integrity sha1-h1IdOKRKp+6RzhzSpH3wy0ndZgs= + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" + integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== dependencies: inherits "~2.0.1" readable-stream "^2.0.2" stream-each@^1.1.0: version "1.2.3" - resolved "https://registry.npm.taobao.org/stream-each/download/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" - integrity sha1-6+J6DDibBPvMIzZClS4Qcxr6m64= + resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" + integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== dependencies: end-of-stream "^1.1.0" stream-shift "^1.0.0" stream-http@^2.7.2: version "2.8.3" - resolved "https://registry.npm.taobao.org/stream-http/download/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" - integrity sha1-stJCRpKIpaJ+xP6JM6z2I95lFPw= + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" + integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== dependencies: builtin-status-codes "^3.0.0" inherits "^2.0.1" @@ -7876,169 +7245,126 @@ stream-http@^2.7.2: stream-shift@^1.0.0: version "1.0.1" - resolved "https://registry.npm.taobao.org/stream-shift/download/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" - integrity sha1-1wiCgVWasneEJCebCHfaPDktWj0= + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" + integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== strict-uri-encode@^1.0.0: version "1.1.0" - resolved "https://registry.npm.taobao.org/strict-uri-encode/download/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" + resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= -string-width@^1.0.1: - version "1.0.2" - resolved "https://registry.npm.taobao.org/string-width/download/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" - integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" - -"string-width@^1.0.2 || 2": - version "2.1.1" - resolved "https://registry.npm.taobao.org/string-width/download/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" - integrity sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4= - dependencies: - is-fullwidth-code-point "^2.0.0" - strip-ansi "^4.0.0" - string-width@^3.0.0, string-width@^3.1.0: version "3.1.0" - resolved "https://registry.npm.taobao.org/string-width/download/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" - integrity sha1-InZ74htirxCBV0MG9prFG2IgOWE= + resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== dependencies: emoji-regex "^7.0.1" is-fullwidth-code-point "^2.0.0" strip-ansi "^5.1.0" -string.prototype.trimend@^1.0.1: - version "1.0.1" - resolved "https://registry.npm.taobao.org/string.prototype.trimend/download/string.prototype.trimend-1.0.1.tgz?cache=0&sync_timestamp=1586465233837&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.trimend%2Fdownload%2Fstring.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913" - integrity sha1-hYEqa4R6wAInD1gIFGBkyZX7aRM= +string.prototype.trimend@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" + integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== dependencies: + call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.17.5" -string.prototype.trimstart@^1.0.1: - version "1.0.1" - resolved "https://registry.npm.taobao.org/string.prototype.trimstart/download/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54" - integrity sha1-FK9tnzSwU/fPyJty+PLuFLkDmlQ= +string.prototype.trimstart@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" + integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== dependencies: + call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.17.5" string_decoder@^1.0.0, string_decoder@^1.1.1: version "1.3.0" - resolved "https://registry.npm.taobao.org/string_decoder/download/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha1-QvEUWUpGzxqOMLCoT1bHjD7awh4= + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== dependencies: safe-buffer "~5.2.0" string_decoder@~1.1.1: version "1.1.1" - resolved "https://registry.npm.taobao.org/string_decoder/download/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha1-nPFhG6YmhdcDCunkujQUnDrwP8g= + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== dependencies: safe-buffer "~5.1.0" -strip-ansi@^3.0.0, strip-ansi@^3.0.1: +strip-ansi@^3.0.1: version "3.0.1" - resolved "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= dependencies: ansi-regex "^2.0.0" -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= - dependencies: - ansi-regex "^3.0.0" - strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: version "5.2.0" - resolved "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" - integrity sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4= + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== dependencies: ansi-regex "^4.1.0" -strip-bom@^2.0.0: - version "2.0.0" - resolved "https://registry.npm.taobao.org/strip-bom/download/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" - integrity sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4= - dependencies: - is-utf8 "^0.2.0" - strip-eof@^1.0.0: version "1.0.0" - resolved "https://registry.npm.taobao.org/strip-eof/download/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= -strip-indent@^1.0.1: - version "1.0.1" - resolved "https://registry.npm.taobao.org/strip-indent/download/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" - integrity sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI= - dependencies: - get-stdin "^4.0.1" - -style-loader@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-1.2.1.tgz#c5cbbfbf1170d076cfdd86e0109c5bba114baa1a" - integrity sha512-ByHSTQvHLkWE9Ir5+lGbVOXhxX10fbprhLvdg96wedFZb4NDekDPxVKv5Fwmio+QcMlkkNfuK+5W1peQ5CUhZg== +style-loader@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-1.3.0.tgz#828b4a3b3b7e7aa5847ce7bae9e874512114249e" + integrity sha512-V7TCORko8rs9rIqkSrlMfkqA63DfoGBBJmK1kKGCcSi+BWb4cqz0SRsnp4l6rU5iwOEd0/2ePv68SV22VXon4Q== dependencies: loader-utils "^2.0.0" - schema-utils "^2.6.6" + schema-utils "^2.7.0" stylehacks@^4.0.0: version "4.0.3" - resolved "https://registry.npm.taobao.org/stylehacks/download/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" - integrity sha1-Zxj8r00eB9ihMYaQiB6NlnJqcdU= + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" + integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g== dependencies: browserslist "^4.0.0" postcss "^7.0.0" postcss-selector-parser "^3.0.0" -summernote@^0.8.16: +summernote@^0.8.18: version "0.8.18" - resolved "https://registry.npm.taobao.org/summernote/download/summernote-0.8.18.tgz#be5c368b1c92de8a05039a9976157bdea7aae386" - integrity sha1-vlw2ixyS3ooFA5qZdhV73qeq44Y= - -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= + resolved "https://registry.yarnpkg.com/summernote/-/summernote-0.8.18.tgz#be5c368b1c92de8a05039a9976157bdea7aae386" + integrity sha512-VlwBaNm9vSYMYXvO2f3UCUmY0Gm8jxLcBn+D08aX3pKs4x2vAoyQ4DcDQ6D+PchQiLrf86AGQVfVu56F4aP3ug== supports-color@^5.3.0: version "5.5.0" - resolved "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha1-4uaaRKyHcveKHsCzW2id9lMO/I8= + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== dependencies: has-flag "^3.0.0" supports-color@^6.1.0: version "6.1.0" - resolved "https://registry.npm.taobao.org/supports-color/download/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" - integrity sha1-B2Srxpxj1ayELdSGfo0CXogN+PM= + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" + integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== dependencies: has-flag "^3.0.0" supports-color@^7.0.0: - version "7.1.0" - resolved "https://registry.npm.taobao.org/supports-color/download/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" - integrity sha1-aOMlkd9z4lrRxLSRCKLsUHliv9E= + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: has-flag "^4.0.0" svg-to-pdfkit@^0.1.8: version "0.1.8" - resolved "https://registry.npm.taobao.org/svg-to-pdfkit/download/svg-to-pdfkit-0.1.8.tgz#5921765922044843f0c1a5b25ec1ef8a4a33b8af" - integrity sha1-WSF2WSIESEPwwaWyXsHvikozuK8= + resolved "https://registry.yarnpkg.com/svg-to-pdfkit/-/svg-to-pdfkit-0.1.8.tgz#5921765922044843f0c1a5b25ec1ef8a4a33b8af" + integrity sha512-QItiGZBy5TstGy+q8mjQTMGRlDDOARXLxH+sgVm1n/LYeo0zFcQlcCh8m4zi8QxctrxB9Kue/lStc/RD5iLadQ== dependencies: pdfkit ">=0.8.1" svgo@^1.0.0: version "1.3.2" - resolved "https://registry.npm.taobao.org/svgo/download/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" - integrity sha1-ttxRHAYzRsnkFbgeQ0ARRbltQWc= + resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" + integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw== dependencies: chalk "^2.4.1" coa "^2.0.2" @@ -8054,29 +7380,20 @@ svgo@^1.0.0: unquote "~1.1.1" util.promisify "~1.0.0" -sweetalert2@^9.10.8: - version "9.17.0" - resolved "https://registry.npm.taobao.org/sweetalert2/download/sweetalert2-9.17.0.tgz#9ea457f3c44295a3629ed5998fee6a51940c3891" - integrity sha1-nqRX88RClaNintWZj+5qUZQMOJE= +sweetalert2@^10.15.6: + version "10.16.9" + resolved "https://registry.yarnpkg.com/sweetalert2/-/sweetalert2-10.16.9.tgz#8ed86f2fa811a136667a48357e204348705be8c9" + integrity sha512-oNe+md5tmmS3fGfVHa7gVPlun7Td2oANSacnZCeghnrr3OHBi6UPVPU+GFrymwaDqwQspACilLRmRnM7aTjNPA== tapable@^1.0.0, tapable@^1.1.3: version "1.1.3" - resolved "https://registry.npm.taobao.org/tapable/download/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" - integrity sha1-ofzMBrWNth/XpF2i2kT186Pme6I= - -tar@^2.0.0: - version "2.2.2" - resolved "https://registry.npm.taobao.org/tar/download/tar-2.2.2.tgz#0ca8848562c7299b8b446ff6a4d60cdbb23edc40" - integrity sha1-DKiEhWLHKZuLRG/2pNYM27I+3EA= - dependencies: - block-stream "*" - fstream "^1.0.12" - inherits "2" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" + integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== tar@^6.0.2: - version "6.0.5" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.0.5.tgz#bde815086e10b39f1dcd298e89d596e1535e200f" - integrity sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg== + version "6.1.0" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.0.tgz#d1724e9bcc04b977b18d5c573b333a2207229a83" + integrity sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA== dependencies: chownr "^2.0.0" fs-minipass "^2.0.0" @@ -8085,125 +7402,125 @@ tar@^6.0.2: mkdirp "^1.0.3" yallist "^4.0.0" -tempusdominus-bootstrap-4@^5.1.2: - version "5.1.2" - resolved "https://registry.npm.taobao.org/tempusdominus-bootstrap-4/download/tempusdominus-bootstrap-4-5.1.2.tgz#3c9906ca6e5d563faa0b81b2fdc6aa79cad9c0be" - integrity sha1-PJkGym5dVj+qC4Gy/caqecrZwL4= +tempusdominus-bootstrap-4@^5.39.0: + version "5.39.0" + resolved "https://registry.yarnpkg.com/tempusdominus-bootstrap-4/-/tempusdominus-bootstrap-4-5.39.0.tgz#f13dcfec6c41b37c5fe509f08bd513590c64411f" + integrity sha512-vYnkmQYQq4+A51WyRc/6e03eM0BHDoPaxd556K1pd4Nhr0eGeB3+Mi9b+3CDx4189fg3gQlrsKzgJiHPRwSX3Q== dependencies: - bootstrap ">=4.1.2" - jquery "^3.0" - moment "^2.22.2" - moment-timezone "^0.5.11" - popper.js "^1.14.3" + bootstrap "^4.5.2" + jquery "^3.5.1" + moment "^2.29.0" + moment-timezone "^0.5.31" + popper.js "^1.16.1" terser-webpack-plugin@^1.4.3: - version "1.4.4" - resolved "https://registry.npm.taobao.org/terser-webpack-plugin/download/terser-webpack-plugin-1.4.4.tgz?cache=0&sync_timestamp=1592492222533&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fterser-webpack-plugin%2Fdownload%2Fterser-webpack-plugin-1.4.4.tgz#2c63544347324baafa9a56baaddf1634c8abfc2f" - integrity sha1-LGNUQ0cyS6r6mla6rd8WNMir/C8= + version "1.4.5" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz#a217aefaea330e734ffacb6120ec1fa312d6040b" + integrity sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw== dependencies: cacache "^12.0.2" find-cache-dir "^2.1.0" is-wsl "^1.1.0" schema-utils "^1.0.0" - serialize-javascript "^3.1.0" + serialize-javascript "^4.0.0" source-map "^0.6.1" terser "^4.1.2" webpack-sources "^1.4.0" worker-farm "^1.7.0" -terser-webpack-plugin@^4.0.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-4.2.1.tgz#44b88ef4d7443129fb136a68b5ec3e80d63ec471" - integrity sha512-D0IZQNl1ZN/JivFNDFzOeU2Bk2LdQQESHJhKTHsodpUmISkaeRwVFk7gzHzX4OuQwanDGelOxIEsBt1SZ+s6nA== +terser-webpack-plugin@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-4.2.3.tgz#28daef4a83bd17c1db0297070adc07fc8cfc6a9a" + integrity sha512-jTgXh40RnvOrLQNgIkwEKnQ8rmHjHK4u+6UBEi+W+FPmvb+uo+chJXntKe7/3lW5mNysgSWD60KyesnhW8D6MQ== dependencies: cacache "^15.0.5" find-cache-dir "^3.3.1" - jest-worker "^26.3.0" + jest-worker "^26.5.0" p-limit "^3.0.2" - schema-utils "^2.7.1" + schema-utils "^3.0.0" serialize-javascript "^5.0.1" source-map "^0.6.1" - terser "^5.3.1" + terser "^5.3.4" webpack-sources "^1.4.3" terser@^4.1.2: version "4.8.0" - resolved "https://registry.npm.taobao.org/terser/download/terser-4.8.0.tgz?cache=0&sync_timestamp=1593953672022&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fterser%2Fdownload%2Fterser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17" - integrity sha1-YwVjQ9fHC7KfOvZlhlpG/gOg3xc= + resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17" + integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw== dependencies: commander "^2.20.0" source-map "~0.6.1" source-map-support "~0.5.12" -terser@^5.3.1: - version "5.3.2" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.3.2.tgz#f4bea90eb92945b2a028ceef79181b9bb586e7af" - integrity sha512-H67sydwBz5jCUA32ZRL319ULu+Su1cAoZnnc+lXnenGRYWyLE3Scgkt8mNoAsMx0h5kdo758zdoS0LG9rYZXDQ== +terser@^5.3.4: + version "5.7.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.7.0.tgz#a761eeec206bc87b605ab13029876ead938ae693" + integrity sha512-HP5/9hp2UaZt5fYkuhNBR8YyRcT8juw8+uFbAme53iN9hblvKnLUTKkmwJG6ocWpIKf8UK4DoeWG4ty0J6S6/g== dependencies: commander "^2.20.0" - source-map "~0.6.1" - source-map-support "~0.5.12" + source-map "~0.7.2" + source-map-support "~0.5.19" through2@^2.0.0, through2@~2.0.3: version "2.0.5" - resolved "https://registry.npm.taobao.org/through2/download/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" - integrity sha1-AcHjnrMdB8t9A6lqcIIyYLIxMs0= + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== dependencies: readable-stream "~2.3.6" xtend "~4.0.1" through@~2.3.4: version "2.3.8" - resolved "https://registry.npm.taobao.org/through/download/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= thunky@^1.0.2: version "1.1.0" - resolved "https://registry.npm.taobao.org/thunky/download/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" - integrity sha1-Wrr3FKlAXbBQRzK7zNLO3Z75U30= + resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" + integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== timers-browserify@^2.0.4: - version "2.0.11" - resolved "https://registry.npm.taobao.org/timers-browserify/download/timers-browserify-2.0.11.tgz#800b1f3eee272e5bc53ee465a04d0e804c31211f" - integrity sha1-gAsfPu4nLlvFPuRloE0OgEwxIR8= + version "2.0.12" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee" + integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ== dependencies: setimmediate "^1.0.4" timsort@^0.3.0: version "0.3.0" - resolved "https://registry.npm.taobao.org/timsort/download/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" + resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= tiny-emitter@^2.0.0: version "2.1.0" - resolved "https://registry.npm.taobao.org/tiny-emitter/download/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423" - integrity sha1-HRpW7fxRxD6GPLtTgqcjMONVVCM= + resolved "https://registry.yarnpkg.com/tiny-emitter/-/tiny-emitter-2.1.0.tgz#1d1a56edfc51c43e863cbb5382a72330e3555423" + integrity sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q== tiny-inflate@^1.0.0, tiny-inflate@^1.0.2: version "1.0.3" - resolved "https://registry.npm.taobao.org/tiny-inflate/download/tiny-inflate-1.0.3.tgz#122715494913a1805166aaf7c93467933eea26c4" - integrity sha1-EicVSUkToYBRZqr3yTRnkz7qJsQ= + resolved "https://registry.yarnpkg.com/tiny-inflate/-/tiny-inflate-1.0.3.tgz#122715494913a1805166aaf7c93467933eea26c4" + integrity sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw== to-arraybuffer@^1.0.0: version "1.0.1" - resolved "https://registry.npm.taobao.org/to-arraybuffer/download/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" + resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= to-fast-properties@^2.0.0: version "2.0.0" - resolved "https://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-2.0.0.tgz?cache=0&sync_timestamp=1580550747747&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fto-fast-properties%2Fdownload%2Fto-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= to-object-path@^0.3.0: version "0.3.0" - resolved "https://registry.npm.taobao.org/to-object-path/download/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= dependencies: kind-of "^3.0.2" to-regex-range@^2.1.0: version "2.1.1" - resolved "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= dependencies: is-number "^3.0.0" @@ -8211,15 +7528,15 @@ to-regex-range@^2.1.0: to-regex-range@^5.0.1: version "5.0.1" - resolved "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" - integrity sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ= + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== dependencies: is-number "^7.0.0" to-regex@^3.0.1, to-regex@^3.0.2: version "3.0.2" - resolved "https://registry.npm.taobao.org/to-regex/download/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" - integrity sha1-E8/dmzNlUvMLUfM6iuG0Knp1mc4= + resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== dependencies: define-property "^2.0.2" extend-shallow "^3.0.2" @@ -8228,132 +7545,105 @@ to-regex@^3.0.1, to-regex@^3.0.2: toastr@^2.1.4: version "2.1.4" - resolved "https://registry.npm.taobao.org/toastr/download/toastr-2.1.4.tgz#8b43be64fb9d0c414871446f2db8e8ca4e95f181" + resolved "https://registry.yarnpkg.com/toastr/-/toastr-2.1.4.tgz#8b43be64fb9d0c414871446f2db8e8ca4e95f181" integrity sha1-i0O+ZPudDEFIcURvLbjoyk6V8YE= dependencies: jquery ">=1.12.0" toidentifier@1.0.0: version "1.0.0" - resolved "https://registry.npm.taobao.org/toidentifier/download/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" - integrity sha1-fhvjRw8ed5SLxD2Uo8j013UrpVM= - -tough-cookie@~2.5.0: - version "2.5.0" - resolved "https://registry.npm.taobao.org/tough-cookie/download/tough-cookie-2.5.0.tgz?cache=0&sync_timestamp=1589682815640&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftough-cookie%2Fdownload%2Ftough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" - integrity sha1-zZ+yoKodWhK0c72fuW+j3P9lreI= - dependencies: - psl "^1.1.28" - punycode "^2.1.1" - -trim-newlines@^1.0.0: - version "1.0.0" - resolved "https://registry.npm.taobao.org/trim-newlines/download/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" - integrity sha1-WIeWa7WCpFA6QetST301ARgVphM= - -"true-case-path@^1.0.2": - version "1.0.3" - resolved "https://registry.npm.taobao.org/true-case-path/download/true-case-path-1.0.3.tgz#f813b5a8c86b40da59606722b144e3225799f47d" - integrity sha1-+BO1qMhrQNpZYGcisUTjIleZ9H0= - dependencies: - glob "^7.1.2" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" + integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== ts-pnp@^1.1.6: version "1.2.0" - resolved "https://registry.npm.taobao.org/ts-pnp/download/ts-pnp-1.2.0.tgz?cache=0&sync_timestamp=1585245674012&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fts-pnp%2Fdownload%2Fts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" - integrity sha1-pQCtCEsHmPHDBxrzkeZZEshrypI= - -tslib@^1.9.0: - version "1.13.0" - resolved "https://registry.npm.taobao.org/tslib/download/tslib-1.13.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftslib%2Fdownload%2Ftslib-1.13.0.tgz#c881e13cc7015894ed914862d276436fa9a47043" - integrity sha1-yIHhPMcBWJTtkUhi0nZDb6mkcEM= + resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" + integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw== tty-browserify@0.0.0: version "0.0.0" - resolved "https://registry.npm.taobao.org/tty-browserify/download/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" + resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.npm.taobao.org/tunnel-agent/download/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= - dependencies: - safe-buffer "^5.0.1" - turbolinks@^5.2.0: version "5.2.0" - resolved "https://registry.npm.taobao.org/turbolinks/download/turbolinks-5.2.0.tgz#e6877a55ea5c1cb3bb225f0a4ae303d6d32ff77c" - integrity sha1-5od6VepcHLO7Il8KSuMD1tMv93w= - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.npm.taobao.org/tweetnacl/download/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= + resolved "https://registry.yarnpkg.com/turbolinks/-/turbolinks-5.2.0.tgz#e6877a55ea5c1cb3bb225f0a4ae303d6d32ff77c" + integrity sha512-pMiez3tyBo6uRHFNNZoYMmrES/IaGgMhQQM+VFF36keryjb5ms0XkVpmKHkfW/4Vy96qiGW3K9bz0tF5sK9bBw== type-check@~0.3.2: version "0.3.2" - resolved "https://registry.npm.taobao.org/type-check/download/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= dependencies: prelude-ls "~1.1.2" type-is@~1.6.17, type-is@~1.6.18: version "1.6.18" - resolved "https://registry.npm.taobao.org/type-is/download/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" - integrity sha1-TlUs0F3wlGfcvE73Od6J8s83wTE= + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== dependencies: media-typer "0.3.0" mime-types "~2.1.24" type@^1.0.1: version "1.2.0" - resolved "https://registry.npm.taobao.org/type/download/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" - integrity sha1-hI3XaY2vo+VKbEeedZxLw/GIR6A= + resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" + integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== type@^2.0.0: - version "2.0.0" - resolved "https://registry.npm.taobao.org/type/download/type-2.0.0.tgz#5f16ff6ef2eb44f260494dae271033b29c09a9c3" - integrity sha1-Xxb/bvLrRPJgSU2uJxAzspwJqcM= + version "2.5.0" + resolved "https://registry.yarnpkg.com/type/-/type-2.5.0.tgz#0a2e78c2e77907b252abe5f298c1b01c63f0db3d" + integrity sha512-180WMDQaIMm3+7hGXWf12GtdniDEy7nYcyFMKJn/eZz/6tSLXrUN9V0wKSbMjej0I1WHWbpREDEKHtqPQa9NNw== typedarray@^0.0.6: version "0.0.6" - resolved "https://registry.npm.taobao.org/typedarray/download/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= +unbox-primitive@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" + integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== + dependencies: + function-bind "^1.1.1" + has-bigints "^1.0.1" + has-symbols "^1.0.2" + which-boxed-primitive "^1.0.2" + unicode-canonical-property-names-ecmascript@^1.0.4: version "1.0.4" - resolved "https://registry.npm.taobao.org/unicode-canonical-property-names-ecmascript/download/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" - integrity sha1-JhmADEyCWADv3YNDr33Zkzy+KBg= + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" + integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== unicode-match-property-ecmascript@^1.0.4: version "1.0.4" - resolved "https://registry.npm.taobao.org/unicode-match-property-ecmascript/download/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" - integrity sha1-jtKjJWmWG86SJ9Cc0/+7j+1fAgw= + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" + integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== dependencies: unicode-canonical-property-names-ecmascript "^1.0.4" unicode-property-aliases-ecmascript "^1.0.4" unicode-match-property-value-ecmascript@^1.2.0: version "1.2.0" - resolved "https://registry.npm.taobao.org/unicode-match-property-value-ecmascript/download/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531" - integrity sha1-DZH2AO7rMJaqlisdb8iIduZOpTE= + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531" + integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ== unicode-properties@^1.2.2: version "1.3.1" - resolved "https://registry.npm.taobao.org/unicode-properties/download/unicode-properties-1.3.1.tgz#cc642b6314bde2c691d65dd94cece09ed84f1282" - integrity sha1-zGQrYxS94saR1l3ZTOzgnthPEoI= + resolved "https://registry.yarnpkg.com/unicode-properties/-/unicode-properties-1.3.1.tgz#cc642b6314bde2c691d65dd94cece09ed84f1282" + integrity sha512-nIV3Tf3LcUEZttY/2g4ZJtGXhWwSkuLL+rCu0DIAMbjyVPj+8j5gNVz4T/sVbnQybIsd5SFGkPKg/756OY6jlA== dependencies: base64-js "^1.3.0" unicode-trie "^2.0.0" unicode-property-aliases-ecmascript@^1.0.4: version "1.1.0" - resolved "https://registry.npm.taobao.org/unicode-property-aliases-ecmascript/download/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" - integrity sha1-3Vepn2IHvt/0Yoq++5TFDblByPQ= + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" + integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== unicode-trie@^0.3.0: version "0.3.1" - resolved "https://registry.npm.taobao.org/unicode-trie/download/unicode-trie-0.3.1.tgz#d671dddd89101a08bac37b6a5161010602052085" + resolved "https://registry.yarnpkg.com/unicode-trie/-/unicode-trie-0.3.1.tgz#d671dddd89101a08bac37b6a5161010602052085" integrity sha1-1nHd3YkQGgi6w3tqUWEBBgIFIIU= dependencies: pako "^0.2.5" @@ -8361,24 +7651,24 @@ unicode-trie@^0.3.0: unicode-trie@^1.0.0: version "1.0.0" - resolved "https://registry.npm.taobao.org/unicode-trie/download/unicode-trie-1.0.0.tgz#f649afdca127135edb55ca0ad7c8c60656d92ad1" - integrity sha1-9kmv3KEnE17bVcoK18jGBlbZKtE= + resolved "https://registry.yarnpkg.com/unicode-trie/-/unicode-trie-1.0.0.tgz#f649afdca127135edb55ca0ad7c8c60656d92ad1" + integrity sha512-v5raLKsobbFbWLMoX9+bChts/VhPPj3XpkNr/HbqkirXR1DPk8eo9IYKyvk0MQZFkaoRsFj2Rmaqgi2rfAZYtA== dependencies: pako "^0.2.5" tiny-inflate "^1.0.0" unicode-trie@^2.0.0: version "2.0.0" - resolved "https://registry.npm.taobao.org/unicode-trie/download/unicode-trie-2.0.0.tgz#8fd8845696e2e14a8b67d78fa9e0dd2cad62fec8" - integrity sha1-j9iEVpbi4UqLZ9ePqeDdLK1i/sg= + resolved "https://registry.yarnpkg.com/unicode-trie/-/unicode-trie-2.0.0.tgz#8fd8845696e2e14a8b67d78fa9e0dd2cad62fec8" + integrity sha512-x7bc76x0bm4prf1VLg79uhAzKw8DVboClSN5VxJuQ+LKDOVEW9CdH+VY7SP+vX7xCYQqzzgQpFqz15zeLvAtZQ== dependencies: pako "^0.2.5" tiny-inflate "^1.0.0" union-value@^1.0.0: version "1.0.1" - resolved "https://registry.npm.taobao.org/union-value/download/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" - integrity sha1-C2/nuDWuzaYcbqTU8CwUIh4QmEc= + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" + integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== dependencies: arr-union "^3.1.0" get-value "^2.0.6" @@ -8387,46 +7677,46 @@ union-value@^1.0.0: uniq@^1.0.1: version "1.0.1" - resolved "https://registry.npm.taobao.org/uniq/download/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" + resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= uniqs@^2.0.0: version "2.0.0" - resolved "https://registry.npm.taobao.org/uniqs/download/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" + resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= unique-filename@^1.1.1: version "1.1.1" - resolved "https://registry.npm.taobao.org/unique-filename/download/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" - integrity sha1-HWl2k2mtoFgxA6HmrodoG1ZXMjA= + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" + integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== dependencies: unique-slug "^2.0.0" unique-slug@^2.0.0: version "2.0.2" - resolved "https://registry.npm.taobao.org/unique-slug/download/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" - integrity sha1-uqvOkQg/xk6UWw861hPiZPfNTmw= + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" + integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== dependencies: imurmurhash "^0.1.4" -universalify@^1.0.0: - version "1.0.0" - resolved "https://registry.npm.taobao.org/universalify/download/universalify-1.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funiversalify%2Fdownload%2Funiversalify-1.0.0.tgz#b61a1da173e8435b2fe3c67d29b9adf8594bd16d" - integrity sha1-thodoXPoQ1sv48Z9Kbmt+FlL0W0= +universalify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" + integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" - resolved "https://registry.npm.taobao.org/unpipe/download/unpipe-1.0.0.tgz?cache=0&sync_timestamp=1589682745059&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funpipe%2Fdownload%2Funpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= unquote@~1.1.1: version "1.1.1" - resolved "https://registry.npm.taobao.org/unquote/download/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" + resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= unset-value@^1.0.0: version "1.0.0" - resolved "https://registry.npm.taobao.org/unset-value/download/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= dependencies: has-value "^0.3.1" @@ -8434,22 +7724,27 @@ unset-value@^1.0.0: upath@^1.1.1: version "1.2.0" - resolved "https://registry.npm.taobao.org/upath/download/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" - integrity sha1-j2bbzVWog6za5ECK+LA1pQRMGJQ= + resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" + integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== + +uplot@^1.6.7: + version "1.6.12" + resolved "https://registry.yarnpkg.com/uplot/-/uplot-1.6.12.tgz#a2741f224c3d3b4f4f25a53797c1687ddfef2989" + integrity sha512-afBjwy/9SM0E7w29Gen+wQ+UAe6ipiA2zE/s1dMCidMXQYvYkCpEgxLRkVA179/8eRJz+og2r7ZFS1HIzT75fQ== uri-js@^4.2.2: - version "4.2.2" - resolved "https://registry.npm.taobao.org/uri-js/download/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" - integrity sha1-lMVA4f93KVbiKZUHwBCupsiDjrA= + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== dependencies: punycode "^2.1.0" urix@^0.1.0: version "0.1.0" - resolved "https://registry.npm.taobao.org/urix/download/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= -url-parse@^1.4.3, url-parse@^1.4.7: +url-parse@^1.4.3, url-parse@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.1.tgz#d5fa9890af8a5e1f274a2c98376510f6425f6e3b" integrity sha512-HOfCOUJt7iSYzEx/UqgtwKRMC6EU91NFhsCHMv9oM03VJcVo2Qrp8T8kI9D7amFf1cu+/3CEhgb3rF9zL7k85Q== @@ -8459,7 +7754,7 @@ url-parse@^1.4.3, url-parse@^1.4.7: url@^0.11.0: version "0.11.0" - resolved "https://registry.npm.taobao.org/url/download/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= dependencies: punycode "1.3.2" @@ -8467,18 +7762,18 @@ url@^0.11.0: use@^3.1.0: version "3.1.1" - resolved "https://registry.npm.taobao.org/use/download/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" - integrity sha1-1QyMrHmhn7wg8pEfVuuXP04QBw8= + resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== -util-deprecate@^1.0.1, util-deprecate@~1.0.1: +util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" - resolved "https://registry.npm.taobao.org/util-deprecate/download/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= util.promisify@~1.0.0: version "1.0.1" - resolved "https://registry.npm.taobao.org/util.promisify/download/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" - integrity sha1-a693dLgO6w91INi4HQeYKlmruu4= + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" + integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== dependencies: define-properties "^1.1.3" es-abstract "^1.17.2" @@ -8487,94 +7782,77 @@ util.promisify@~1.0.0: util@0.10.3: version "0.10.3" - resolved "https://registry.npm.taobao.org/util/download/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= dependencies: inherits "2.0.1" util@^0.11.0: version "0.11.1" - resolved "https://registry.npm.taobao.org/util/download/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" - integrity sha1-MjZzNyDsZLsn9uJvQhqqLhtYjWE= + resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" + integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== dependencies: inherits "2.0.3" utils-merge@1.0.1: version "1.0.1" - resolved "https://registry.npm.taobao.org/utils-merge/download/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= uuid@^3.3.2, uuid@^3.4.0: version "3.4.0" - resolved "https://registry.npm.taobao.org/uuid/download/uuid-3.4.0.tgz?cache=0&sync_timestamp=1592944298186&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fuuid%2Fdownload%2Fuuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" - integrity sha1-sj5DWK+oogL+ehAK8fX4g/AgB+4= + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== v8-compile-cache@^2.1.1: - version "2.1.1" - resolved "https://registry.npm.taobao.org/v8-compile-cache/download/v8-compile-cache-2.1.1.tgz?cache=0&sync_timestamp=1590871780233&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fv8-compile-cache%2Fdownload%2Fv8-compile-cache-2.1.1.tgz#54bc3cdd43317bca91e35dcaf305b1a7237de745" - integrity sha1-VLw83UMxe8qR413K8wWxpyN950U= - -validate-npm-package-license@^3.0.1: - version "3.0.4" - resolved "https://registry.npm.taobao.org/validate-npm-package-license/download/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" - integrity sha1-/JH2uce6FchX9MssXe/uw51PQQo= - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" + version "2.3.0" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" + integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== vary@~1.1.2: version "1.1.2" - resolved "https://registry.npm.taobao.org/vary/download/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= vendors@^1.0.0: version "1.0.4" - resolved "https://registry.npm.taobao.org/vendors/download/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" - integrity sha1-4rgApT56Kbk1BsPPQRANFsTErY4= - -verror@1.10.0: - version "1.10.0" - resolved "https://registry.npm.taobao.org/verror/download/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" + resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" + integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== vm-browserify@^1.0.1: version "1.1.2" - resolved "https://registry.npm.taobao.org/vm-browserify/download/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" - integrity sha1-eGQcSIuObKkadfUR56OzKobl3aA= + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" + integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== -watchpack-chokidar2@^2.0.0: - version "2.0.0" - resolved "https://registry.npm.taobao.org/watchpack-chokidar2/download/watchpack-chokidar2-2.0.0.tgz#9948a1866cbbd6cb824dea13a7ed691f6c8ddff0" - integrity sha1-mUihhmy71suCTeoTp+1pH2yN3/A= +watchpack-chokidar2@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz#38500072ee6ece66f3769936950ea1771be1c957" + integrity sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww== dependencies: chokidar "^2.1.8" watchpack@^1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.4.tgz#6e9da53b3c80bb2d6508188f5b200410866cd30b" - integrity sha512-aWAgTW4MoSJzZPAicljkO1hsi1oKj/RRq/OJQh2PKI2UKL04c2Bs+MBOB+BBABHTXJpf9mCwHN7ANCvYsvY2sg== + version "1.7.5" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.7.5.tgz#1267e6c55e0b9b5be44c2023aed5437a2c26c453" + integrity sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ== dependencies: graceful-fs "^4.1.2" neo-async "^2.5.0" optionalDependencies: chokidar "^3.4.1" - watchpack-chokidar2 "^2.0.0" + watchpack-chokidar2 "^2.0.1" wbuf@^1.1.0, wbuf@^1.7.3: version "1.7.3" - resolved "https://registry.npm.taobao.org/wbuf/download/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" - integrity sha1-wdjRSTFtPqhShIiVy2oL/oh7h98= + resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" + integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== dependencies: minimalistic-assert "^1.0.0" webpack-assets-manifest@^3.1.1: version "3.1.1" - resolved "https://registry.npm.taobao.org/webpack-assets-manifest/download/webpack-assets-manifest-3.1.1.tgz#39bbc3bf2ee57fcd8ba07cda51c9ba4a3c6ae1de" - integrity sha1-ObvDvy7lf82LoHzaUcm6Sjxq4d4= + resolved "https://registry.yarnpkg.com/webpack-assets-manifest/-/webpack-assets-manifest-3.1.1.tgz#39bbc3bf2ee57fcd8ba07cda51c9ba4a3c6ae1de" + integrity sha512-JV9V2QKc5wEWQptdIjvXDUL1ucbPLH2f27toAY3SNdGZp+xSaStAgpoMcvMZmqtFrBc9a5pTS1058vxyMPOzRQ== dependencies: chalk "^2.0" lodash.get "^4.0" @@ -8602,9 +7880,9 @@ webpack-cli@^3.3.12: yargs "^13.3.2" webpack-dev-middleware@^3.7.2: - version "3.7.2" - resolved "https://registry.npm.taobao.org/webpack-dev-middleware/download/webpack-dev-middleware-3.7.2.tgz?cache=0&sync_timestamp=1594744509096&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-dev-middleware%2Fdownload%2Fwebpack-dev-middleware-3.7.2.tgz#0019c3db716e3fa5cecbf64f2ab88a74bab331f3" - integrity sha1-ABnD23FuP6XOy/ZPKriKdLqzMfM= + version "3.7.3" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.3.tgz#0639372b143262e2b84ab95d3b91a7597061c2c5" + integrity sha512-djelc/zGiz9nZj/U7PTBi2ViorGJXEWo/3ltkPbDyxCXhhEXkW0ce99falaok4TPj+AsxLiXJR0EBOb0zh9fKQ== dependencies: memory-fs "^0.4.1" mime "^2.4.4" @@ -8653,24 +7931,24 @@ webpack-dev-server@^3.11.2: webpack-log@^2.0.0: version "2.0.0" - resolved "https://registry.npm.taobao.org/webpack-log/download/webpack-log-2.0.0.tgz?cache=0&sync_timestamp=1564684394562&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-log%2Fdownload%2Fwebpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" - integrity sha1-W3ko4GN1k/EZ0y9iJ8HgrDHhtH8= + resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" + integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg== dependencies: ansi-colors "^3.0.0" uuid "^3.3.2" webpack-sources@^1.0.0, webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1, webpack-sources@^1.4.3: version "1.4.3" - resolved "https://registry.npm.taobao.org/webpack-sources/download/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" - integrity sha1-7t2OwLko+/HL/plOItLYkPMwqTM= + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" + integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== dependencies: source-list-map "^2.0.0" source-map "~0.6.1" -webpack@^4.44.1: - version "4.44.2" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.44.2.tgz#6bfe2b0af055c8b2d1e90ed2cd9363f841266b72" - integrity sha512-6KJVGlCxYdISyurpQ0IPTklv+DULv05rs2hseIXer6D7KrUicRDLFb4IUM1S6LUAKypPM/nSiVSuv8jHu1m3/Q== +webpack@^4.46.0: + version "4.46.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.46.0.tgz#bf9b4404ea20a073605e0a011d188d77cb6ad542" + integrity sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q== dependencies: "@webassemblyjs/ast" "1.9.0" "@webassemblyjs/helper-module-context" "1.9.0" @@ -8680,7 +7958,7 @@ webpack@^4.44.1: ajv "^6.10.2" ajv-keywords "^3.4.1" chrome-trace-event "^1.0.2" - enhanced-resolve "^4.3.0" + enhanced-resolve "^4.5.0" eslint-scope "^4.0.3" json-parse-better-errors "^1.0.2" loader-runner "^2.4.0" @@ -8707,44 +7985,48 @@ websocket-driver@>=0.5.1, websocket-driver@^0.7.4: websocket-extensions@>=0.1.1: version "0.1.4" - resolved "https://registry.npm.taobao.org/websocket-extensions/download/websocket-extensions-0.1.4.tgz?cache=0&sync_timestamp=1591103014229&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebsocket-extensions%2Fdownload%2Fwebsocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" - integrity sha1-f4RzvIOd/YdgituV1+sHUhFXikI= + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" + integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== + +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== + dependencies: + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" which-module@^2.0.0: version "2.0.0" - resolved "https://registry.npm.taobao.org/which-module/download/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= -which@1, which@^1.2.14, which@^1.2.9, which@^1.3.1: +which@^1.2.14, which@^1.2.9, which@^1.3.1: version "1.3.1" - resolved "https://registry.npm.taobao.org/which/download/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo= + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== dependencies: isexe "^2.0.0" -wide-align@^1.1.0: - version "1.1.3" - resolved "https://registry.npm.taobao.org/wide-align/download/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" - integrity sha1-rgdOa9wMFKQx6ATmJFScYzsABFc= - dependencies: - string-width "^1.0.2 || 2" - word-wrap@~1.2.3: version "1.2.3" - resolved "https://registry.npm.taobao.org/word-wrap/download/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" - integrity sha1-YQY29rH3A4kb00dxzLF/uTtHB5w= + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== worker-farm@^1.7.0: version "1.7.0" - resolved "https://registry.npm.taobao.org/worker-farm/download/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" - integrity sha1-JqlMU5G7ypJhUgAvabhKS/dy5ag= + resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" + integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== dependencies: errno "~0.1.7" wrap-ansi@^5.1.0: version "5.1.0" - resolved "https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" - integrity sha1-H9H2cjXVttD+54EFYAG/tpTAOwk= + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" + integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== dependencies: ansi-styles "^3.2.0" string-width "^3.0.0" @@ -8752,58 +8034,60 @@ wrap-ansi@^5.1.0: wrappy@1: version "1.0.2" - resolved "https://registry.npm.taobao.org/wrappy/download/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= ws@^6.2.1: - version "6.2.1" - resolved "https://registry.npm.taobao.org/ws/download/ws-6.2.1.tgz?cache=0&sync_timestamp=1593925601875&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fws%2Fdownload%2Fws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" - integrity sha1-RC/fCkftZPWbal2P8TD0dI7VJPs= + version "6.2.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.2.tgz#dd5cdbd57a9979916097652d78f1cc5faea0c32e" + integrity sha512-zmhltoSR8u1cnDsD43TX59mzoMZsLKqUweyYBAIvTngR3shc0W6aOZylZmq/7hqyVxPdi+5Ud2QInblgyE72fw== dependencies: async-limiter "~1.0.0" +xmldoc@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/xmldoc/-/xmldoc-1.1.2.tgz#6666e029fe25470d599cd30e23ff0d1ed50466d7" + integrity sha512-ruPC/fyPNck2BD1dpz0AZZyrEwMOrWTO5lDdIXS91rs3wtm4j+T8Rp2o+zoOYkkAxJTZRPOSnOGei1egoRmKMQ== + dependencies: + sax "^1.2.1" + xtend@^4.0.0, xtend@^4.0.2, xtend@~4.0.1: version "4.0.2" - resolved "https://registry.npm.taobao.org/xtend/download/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha1-u3J3n1+kZRhrH0OPZ0+jR/2121Q= + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== y18n@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.1.tgz#8db2b83c31c5d75099bb890b23f3094891e247d4" - integrity sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ== - -yallist@^2.1.2: - version "2.1.2" - resolved "https://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" - integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= + version "4.0.3" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" + integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== yallist@^3.0.2: version "3.1.1" - resolved "https://registry.npm.taobao.org/yallist/download/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" - integrity sha1-27fa+b/YusmrRev2ArjLrQ1dCP0= + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== yallist@^4.0.0: version "4.0.0" - resolved "https://registry.npm.taobao.org/yallist/download/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI= + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== yaml@^1.7.2: - version "1.10.0" - resolved "https://registry.npm.taobao.org/yaml/download/yaml-1.10.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyaml%2Fdownload%2Fyaml-1.10.0.tgz#3b593add944876077d4d683fee01081bd9fff31e" - integrity sha1-O1k63ZRIdgd9TWg/7gEIG9n/8x4= + version "1.10.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" + integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== yargs-parser@^13.1.2: version "13.1.2" - resolved "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" - integrity sha1-Ew8JcC667vJlDVTObj5XBvek+zg= + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" + integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== dependencies: camelcase "^5.0.0" decamelize "^1.2.0" yargs@^13.3.2: version "13.3.2" - resolved "https://registry.npm.taobao.org/yargs/download/yargs-13.3.2.tgz?cache=0&sync_timestamp=1594420998254&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" - integrity sha1-rX/+/sGqWVZayRX4Lcyzipwxot0= + resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" + integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== dependencies: cliui "^5.0.0" find-up "^3.0.0" @@ -8815,3 +8099,8 @@ yargs@^13.3.2: which-module "^2.0.0" y18n "^4.0.0" yargs-parser "^13.1.2" + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== From 7b88870296ee6e736a647190bcf298e028056773 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 8 Jun 2021 07:02:12 +0000 Subject: [PATCH 0472/2165] chore(deps-dev): bump letter_opener_web from 1.3.4 to 1.4.0 Bumps [letter_opener_web](https://github.com/fgrehm/letter_opener_web) from 1.3.4 to 1.4.0. - [Release notes](https://github.com/fgrehm/letter_opener_web/releases) - [Changelog](https://github.com/fgrehm/letter_opener_web/blob/master/CHANGELOG.md) - [Commits](https://github.com/fgrehm/letter_opener_web/compare/v1.3.4...v1.4.0) Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Gemfile b/Gemfile index ba02269aa..fb8b56ae1 100644 --- a/Gemfile +++ b/Gemfile @@ -113,7 +113,7 @@ group :development do # 在线查看 Action Mailer 内容 gem 'letter_opener', '~> 1.7' - gem 'letter_opener_web', '~> 1.3' + gem 'letter_opener_web', '~> 1.4' end group :development, :test do diff --git a/Gemfile.lock b/Gemfile.lock index 5bf28295d..ea48ccaa9 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -113,7 +113,7 @@ GEM activesupport chunky_png (1.3.15) coderay (1.1.3) - concurrent-ruby (1.1.8) + concurrent-ruby (1.1.9) connection_pool (2.2.3) crass (1.0.6) debase (0.2.4.1) @@ -230,18 +230,18 @@ GEM activerecord kaminari-core (= 1.2.1) kaminari-core (1.2.1) - launchy (2.4.3) - addressable (~> 2.3) + launchy (2.5.0) + addressable (~> 2.7) letter_opener (1.7.0) launchy (~> 2.2) - letter_opener_web (1.3.4) + letter_opener_web (1.4.0) actionmailer (>= 3.2) letter_opener (~> 1.0) railties (>= 3.2) listen (3.5.1) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) - loofah (2.9.1) + loofah (2.10.0) crass (~> 1.0.2) nokogiri (>= 1.5.9) lumberjack (1.2.8) @@ -251,7 +251,7 @@ GEM method_source (1.0.0) mini_magick (4.11.0) mini_mime (1.0.3) - mini_portile2 (2.5.1) + mini_portile2 (2.5.3) minitest (5.14.4) mixlib-shellout (3.0.7) msgpack (1.4.2) @@ -261,7 +261,7 @@ GEM nenv (0.3.0) net-ldap (0.16.3) nio4r (2.5.7) - nokogiri (1.11.4) + nokogiri (1.11.7) mini_portile2 (~> 2.5.0) racc (~> 1.4) notiffany (0.1.3) @@ -491,7 +491,7 @@ DEPENDENCIES jenkins_api_client kaminari letter_opener (~> 1.7) - letter_opener_web (~> 1.3) + letter_opener_web (~> 1.4) listen (>= 3.0.5, < 3.6) omniauth (~> 1.9) omniauth-google-oauth2 (~> 0.8.2) From 2c89a3877e0b6736cfba2e3f55fc2f983cd84b15 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 8 Jun 2021 15:53:18 +0800 Subject: [PATCH 0473/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=20gem=20?= =?UTF-8?q?=E4=BE=9D=E8=B5=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 2 +- Gemfile.lock | 15 ++++++++------- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/Gemfile b/Gemfile index 3fb8b767d..254327ac3 100644 --- a/Gemfile +++ b/Gemfile @@ -70,7 +70,7 @@ gem 'rqrcode' # 异步队列 gem 'activejob-status' gem 'sidekiq', '6.1.2' -gem 'sidekiq-cron', github: 'MikeRogers0/sidekiq-cron', branch: 'bug/fix-redis-warning' # See https://github.com/ondrejbartas/sidekiq-cron/issues/286 +gem 'sidekiq-cron', github: 'farainc/sidekiq-cron', branch: 'master' # See https://github.com/ondrejbartas/sidekiq-cron/issues/286 # Assets gem 'turbolinks', '~> 5' diff --git a/Gemfile.lock b/Gemfile.lock index 26dfae496..a5f150dd5 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,11 +1,10 @@ GIT - remote: https://github.com/MikeRogers0/sidekiq-cron - revision: 6d24cb0e98116009cb81b855b68176fe3cd20fb9 - branch: bug/fix-redis-warning + remote: https://github.com/farainc/sidekiq-cron + revision: d94c5b3562627c2ab476400a18f92845765e6eb7 + branch: master specs: - sidekiq-cron (1.2.0) + sidekiq-cron (1.1.1) fugit (~> 1.1) - redis (>= 4.2.0) sidekiq (>= 4.2.1) GEM @@ -148,7 +147,7 @@ GEM formatador (0.2.5) friendly_id (5.3.0) activerecord (>= 4.0.0) - fugit (1.4.0) + fugit (1.5.0) et-orbi (~> 1.1, >= 1.1.8) raabro (~> 1.4) gitlab_omniauth-ldap (2.1.1) @@ -249,7 +248,9 @@ GEM marcel (0.3.3) mimemagic (~> 0.3.2) method_source (1.0.0) - mimemagic (0.3.5) + mimemagic (0.3.10) + nokogiri (~> 1) + rake mini_magick (4.11.0) mini_mime (1.0.2) mini_portile2 (2.5.0) From c9ebcdf5635db14145a8630b0dea2813baefc3e4 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 8 Jun 2021 16:02:25 +0800 Subject: [PATCH 0474/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E8=AE=BE=E5=A4=87=20UDID=20=E5=9C=A8=20Mac=20?= =?UTF-8?q?=E4=B8=8A=E7=9A=84=E9=94=99=E8=AF=AF=E5=88=A4=E6=96=AD=EF=BC=88?= =?UTF-8?q?=E4=B8=BB=E8=A6=81=E6=98=AF=E6=97=A0=E6=B3=95=E6=AD=A3=E7=A1=AE?= =?UTF-8?q?=E5=88=A4=E6=96=AD=20iPad=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile.lock | 5 +---- app/helpers/application_helper.rb | 2 +- app/views/udid/index.html.slim | 10 ++++------ 3 files changed, 6 insertions(+), 11 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 423b2d1c3..f96663084 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -249,9 +249,6 @@ GEM mini_mime (>= 0.1.1) marcel (1.0.0) method_source (1.0.0) - mimemagic (0.3.10) - nokogiri (~> 1) - rake mini_magick (4.11.0) mini_mime (1.0.3) mini_portile2 (2.5.1) @@ -533,4 +530,4 @@ DEPENDENCIES webpacker (~> 5.2) BUNDLED WITH - 2.2.4 + 2.2.17 diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index d3a368ae6..04958df75 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -94,7 +94,7 @@ def wechat? def ios?(source = nil) # iPadOS: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0 Safari/605.1.15 source ||= user_agent - (source =~ /Macintosh|iPhone|iPad|Unversal|ios|iOS/i).present? + (source =~ /iPhone|iPad|Unversal|ios|iOS/i).present? end def android?(source = nil) diff --git a/app/views/udid/index.html.slim b/app/views/udid/index.html.slim index 898e71b31..df79862ae 100644 --- a/app/views/udid/index.html.slim +++ b/app/views/udid/index.html.slim @@ -10,12 +10,10 @@ .card .card-body.text-center - - if phone? - = link_to '点击获取设备 UDID', udid_install_path, class: 'btn bg-success btn-lg btn-block' - - else - = raw @qrcode.as_svg - - unless phone? - .card-footer.text-center 请使用 iPhone 或 iPad 上的 Safari 浏览器打开本页面或者扫描上面的二维码,即可快速获取 UDID + = raw @qrcode.as_svg + .pt-4.text-center 电脑打开本页面的请使用 iPhone 或 iPad 扫描上面的二维码后点击下面的按钮 + .card-footer + = link_to '点击获取设备 UDID', udid_install_path, class: 'btn bg-success btn-lg btn-block' .col-md-12 .card From 72314aa6d0922942dc32ed2b371616fcb46aaaff Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 8 Jun 2021 18:52:16 +0800 Subject: [PATCH 0475/2165] =?UTF-8?q?refactor:=20=E4=BD=BF=E7=94=A8=20side?= =?UTF-8?q?kiq-scheduler=20=E4=BB=A3=E6=9B=BF=E4=B8=8D=E6=80=8E=E4=B9=88?= =?UTF-8?q?=E7=BB=B4=E6=8A=A4=E7=9A=84=20sidekiq-cron?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 4 ++-- Gemfile.lock | 25 +++++++++++--------- config/initializers/sidekiq.rb | 8 +++---- config/initializers/sidekiq_scheduled.rb | 30 +++++++++++++----------- config/routes.rb | 6 ++--- 5 files changed, 37 insertions(+), 36 deletions(-) diff --git a/Gemfile b/Gemfile index d5112b188..24864cf07 100644 --- a/Gemfile +++ b/Gemfile @@ -66,8 +66,8 @@ gem 'rqrcode' # 异步队列 gem 'activejob-status' -gem 'sidekiq', '6.2.1' -gem 'sidekiq-cron', github: 'wolfemm/sidekiq-cron', branch: 'master' # See https://github.com/ondrejbartas/sidekiq-cron/issues/286 +gem 'sidekiq', '~> 6.2.1' +gem 'sidekiq-scheduler', '~> 3.1.0' # Assets gem 'turbolinks', '~> 5' diff --git a/Gemfile.lock b/Gemfile.lock index 79d0943d9..7148bbf31 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,12 +1,3 @@ -GIT - remote: https://github.com/wolfemm/sidekiq-cron - revision: c63f0dd1cbd26a40954525520a12747436ffade3 - branch: master - specs: - sidekiq-cron (1.2.1) - fugit (~> 1.1) - sidekiq (>= 4.2.1) - GEM remote: https://rubygems.org/ specs: @@ -134,6 +125,7 @@ GEM dotenv-rails (2.7.6) dotenv (= 2.7.6) railties (>= 3.2) + e2mmap (0.1.0) erubi (1.10.0) et-orbi (1.2.4) tzinfo @@ -391,6 +383,8 @@ GEM rubyzip (>= 1.1.6) rubyntlm (0.6.2) rubyzip (2.3.0) + rufus-scheduler (3.7.0) + fugit (~> 1.1, >= 1.1.6) semantic_range (2.3.0) sentry-raven (3.1.2) faraday (>= 1.0) @@ -399,6 +393,13 @@ GEM connection_pool (>= 2.2.2) rack (~> 2.0) redis (>= 4.2.0) + sidekiq-scheduler (3.1.0) + e2mmap + redis (>= 3, < 5) + rufus-scheduler (~> 3.2) + sidekiq (>= 3) + thwait + tilt (>= 1.4.0) simple_form (5.1.0) actionpack (>= 5.2) activemodel (>= 5.2) @@ -430,6 +431,8 @@ GEM terminal-table (1.8.0) unicode-display_width (~> 1.1, >= 1.1.1) thor (1.1.0) + thwait (0.2.0) + e2mmap tilt (2.0.10) turbolinks (5.2.1) turbolinks-source (~> 5.2) @@ -515,8 +518,8 @@ DEPENDENCIES rubocop-rails ruby-debug-ide sentry-raven - sidekiq (= 6.2.1) - sidekiq-cron! + sidekiq (~> 6.2.1) + sidekiq-scheduler (~> 3.1.0) simple_form (~> 5.1) slim-rails (~> 3.2.0) spring diff --git a/config/initializers/sidekiq.rb b/config/initializers/sidekiq.rb index 1f25a8695..e98569278 100644 --- a/config/initializers/sidekiq.rb +++ b/config/initializers/sidekiq.rb @@ -3,11 +3,9 @@ Sidekiq.configure_server do |config| config.redis = sidekiq_config - puts "sidekiq log level" - puts config.logger.level - # logger_level = ::Logger.const_get(ENV.fetch('RAILS_LOG_LEVEL', 'info').upcase.to_s) - # logger_level = :debug if Rails.env.development? - # config.logger.level = logger_level + logger_level = ::Logger.const_get(ENV.fetch('RAILS_LOG_LEVEL', 'info').upcase.to_s) + logger_level = :debug if Rails.env.development? + config.logger.level = logger_level end Sidekiq.configure_client do |config| diff --git a/config/initializers/sidekiq_scheduled.rb b/config/initializers/sidekiq_scheduled.rb index f0858ca42..79a648547 100644 --- a/config/initializers/sidekiq_scheduled.rb +++ b/config/initializers/sidekiq_scheduled.rb @@ -1,33 +1,35 @@ # frozen_string_literal: true +private def add_or_delete_schedule(remove, cron_jobs, key) + if remove + Sidekiq.remove_schedule(key.to_s) + else + cron_jobs[key] = SCHEDULED_JOBS[key] + end +end + SCHEDULED_JOBS = { clean_old_releases: { cron: '0 6 * * *', class: 'CleanOldReleasesJob', - queue: 'schedule' + queue: 'schedule', + description: 'Clean old versions on each 6 AM', }, reset_for_demo_mode: { cron: '0 0 * * *', class: 'ResetForDemoModeJob', - queue: 'schedule' + queue: 'schedule', + description: 'Reset demo data everyday' } } Rails.application.reloader.to_prepare do if Sidekiq.server? cron_jobs = {} - if Setting.keep_uploads - Sidekiq::Cron::Job.destroy('clean_old_releases') - else - cron_jobs[:clean_old_releases] = SCHEDULED_JOBS[:clean_old_releases] - end - - if Setting.demo_mode - cron_jobs[:reset_for_demo_mode] = SCHEDULED_JOBS[:reset_for_demo_mode] - else - Sidekiq::Cron::Job.destroy('reset_for_demo_mode') - end + add_or_delete_schedule(Setting.keep_uploads, cron_jobs, :clean_old_releases) + add_or_delete_schedule(!Setting.demo_mode, cron_jobs, :reset_for_demo_mode) - Sidekiq::Cron::Job.load_from_hash cron_jobs + Sidekiq.schedule = cron_jobs + SidekiqScheduler::Scheduler.instance.reload_schedule! end end \ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb index 6e8fdb189..67aa23709 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -111,11 +111,9 @@ resources :system_info, only: :index resources :database_analytics, only: :index - # get :background_jobs, to: 'background_jobs#show' - # get :system_info, to: 'system_info#show' - require 'sidekiq/web' - require 'sidekiq/cron/web' + require 'sidekiq-scheduler/web' + mount Sidekiq::Web => 'sidekiq', as: :sidekiq mount PgHero::Engine, at: 'pghero', as: :pghero end From 48dec18b57611533ba2f30347bb704af999f5045 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 8 Jun 2021 19:43:35 +0800 Subject: [PATCH 0476/2165] =?UTF-8?q?refactor:=20=E4=BD=BF=E7=94=A8=20sent?= =?UTF-8?q?ry-ruby=20=E4=BB=A3=E6=9B=BF=E4=B8=8D=E5=86=8D=E7=BB=B4?= =?UTF-8?q?=E6=8A=A4=E7=9A=84=20raven-ruby?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 4 +++- Gemfile.lock | 16 ++++++++++++++-- app/controllers/application_controller.rb | 10 +++++----- app/jobs/debug_file_teardown_job.rb | 4 ---- config/initializers/sentry.rb | 18 +++++++++++------- 5 files changed, 33 insertions(+), 19 deletions(-) diff --git a/Gemfile b/Gemfile index 24864cf07..4b6c6ca3f 100644 --- a/Gemfile +++ b/Gemfile @@ -56,7 +56,9 @@ gem 'vmstat', '~> 2.3.0' gem 'pghero' ## 异常报错上报 -gem 'sentry-raven' +gem 'sentry-ruby' +gem 'sentry-rails' +gem 'sentry-sidekiq' ## Jenkins SDK gem 'jenkins_api_client' diff --git a/Gemfile.lock b/Gemfile.lock index 7148bbf31..ba42a8d08 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -386,8 +386,18 @@ GEM rufus-scheduler (3.7.0) fugit (~> 1.1, >= 1.1.6) semantic_range (2.3.0) - sentry-raven (3.1.2) + sentry-rails (4.5.1) + railties (>= 5.0) + sentry-ruby-core (~> 4.5.0) + sentry-ruby (4.5.1) + concurrent-ruby (~> 1.0, >= 1.0.2) faraday (>= 1.0) + sentry-ruby-core (= 4.5.1) + sentry-ruby-core (4.5.1) + concurrent-ruby + faraday + sentry-sidekiq (4.5.1) + sentry-ruby-core (~> 4.5.0) shellany (0.0.1) sidekiq (6.2.1) connection_pool (>= 2.2.2) @@ -517,7 +527,9 @@ DEPENDENCIES rubocop (>= 0.70) rubocop-rails ruby-debug-ide - sentry-raven + sentry-rails + sentry-ruby + sentry-sidekiq sidekiq (~> 6.2.1) sidekiq-scheduler (~> 3.1.0) simple_form (~> 5.1) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 3ae9656e7..1825f201e 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -9,7 +9,7 @@ class ApplicationController < ActionController::Base skip_before_action :verify_authenticity_token - before_action :set_raven_context + before_action :set_sentry_context rescue_from ActiveRecord::RecordNotFound, with: :not_found rescue_from ActionController::RoutingError, with: :not_found @@ -25,9 +25,9 @@ def raise_not_found private - def set_raven_context - Raven.user_context(id: session[:current_user_id]) - Raven.extra_context(params: params.to_unsafe_h, url: request.url) + def set_sentry_context + Sentry.set_user(id: session[:current_user_id]) + Sentry.set_extras(params: params.to_unsafe_h, url: request.url) end def forbidden(e) @@ -65,7 +65,7 @@ def service_unavailable(e) def respond_with_error(code, exception) if code >= 500 logger.error exception.full_message - Raven.capture exception + Sentry.capture_exception exception end respond_to do |format| diff --git a/app/jobs/debug_file_teardown_job.rb b/app/jobs/debug_file_teardown_job.rb index 9d0449d37..d9b636569 100644 --- a/app/jobs/debug_file_teardown_job.rb +++ b/app/jobs/debug_file_teardown_job.rb @@ -17,10 +17,6 @@ def perform(debug_file) # 清理掉临时生成的文件 parser.clear! - rescue => e - logger.error "Can not teardown debug file: #{e}" - logger.error e.backtrace.join("\n") - Raven.capture_exception(e) end private diff --git a/config/initializers/sentry.rb b/config/initializers/sentry.rb index 9851587d6..1d07f7a10 100644 --- a/config/initializers/sentry.rb +++ b/config/initializers/sentry.rb @@ -3,9 +3,16 @@ # 默认开启 Sentry,如果不想使用设置 ZEALOT_SENTRY_DISABLE=1 if ENV['ZEALOT_SENTRY_DISABLE'].blank? Rails.configuration.to_prepare do - Raven.configure do |config| - config.silence_ready = true + Sentry.init do |config| config.dsn = ENV['ZEALOT_SENTRY_DNS'] || 'https://133aefa9f52448a1a7900ba9d02f93e1@sentry.io/1878137' + + config.rails.report_rescued_exceptions = true + config.breadcrumbs_logger = [:active_support_logger, :sentry_logger, :http_logger] + + config.send_default_pii = true + # config.environment = Rails.env + # config.enabled_environments = %w[development production] + config.excluded_exceptions += [ 'ActionController::RoutingError', 'ActiveRecord::RecordNotFound', @@ -13,16 +20,13 @@ 'ActiveRecord::NoDatabaseError', 'PG::ConnectionBad', ] - config.sanitize_fields = Rails.application.config.filter_parameters.map(&:to_s) - config.sanitize_fields << 'token' - version = Setting.version vcs_ref = Setting.vcs_ref - if vcs_ref.present? + version = Setting.version config.release = "#{version}-#{vcs_ref}" config.tags = { - docker: true, + docker: ENV['DOCKER_TAG'].present?, docker_tag: ENV['DOCKER_TAG'] } end From 10d7a5c1b64511bc059ae0600e929588ca1bdef7 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 9 Jun 2021 10:21:30 +0800 Subject: [PATCH 0477/2165] =?UTF-8?q?style:=20=E6=9B=B4=E6=96=B0=20filepon?= =?UTF-8?q?d=20=E5=92=8C=20@rails/webpacker=20=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 4 ++-- yarn.lock | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index fe3e9521c..11ffd3639 100644 --- a/package.json +++ b/package.json @@ -3,10 +3,10 @@ "private": true, "dependencies": { "@rails/ujs": "^6.1.3", - "@rails/webpacker": "^5.2.1", + "@rails/webpacker": "^5.4.0", "admin-lte": "^3.0.5", "clipboard": "^2.0.8", - "filepond": "^4.20.1", + "filepond": "^4.28.0", "rails-erb-loader": "^5.5.2", "turbolinks": "^5.2.0" }, diff --git a/yarn.lock b/yarn.lock index 9748abb06..856fdc519 100644 --- a/yarn.lock +++ b/yarn.lock @@ -908,7 +908,7 @@ resolved "https://registry.yarnpkg.com/@rails/ujs/-/ujs-6.1.3.tgz#90ef26caa0925492b1a3b1495db09cfbe49e745e" integrity sha512-9mip5o+LVouWAqLMNJWhxda+D5uP+4RziNECgOGJlL6k3rc5SC/ljCHpV9Cym4i3oeGZkpZJ2tu4frCwt84kzQ== -"@rails/webpacker@^5.2.1": +"@rails/webpacker@^5.4.0": version "5.4.0" resolved "https://registry.yarnpkg.com/@rails/webpacker/-/webpacker-5.4.0.tgz#2c64a9ea7e85d2a33e50e86319fe6751df0c47e8" integrity sha512-J973mzTUJbkbBu+sMwKgWRahoSfwdp5uHT80iDWr6hi8YAC7kj47HapQnn2SGPmv/onTT8WC3jFM62Hkh213yQ== @@ -3518,10 +3518,10 @@ file-uri-to-path@1.0.0: resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== -filepond@^4.20.1: - version "4.27.3" - resolved "https://registry.yarnpkg.com/filepond/-/filepond-4.27.3.tgz#7fe54cad8967d8518336f1934ad7792e2a5e0a43" - integrity sha512-3LYjT/YiVj1rnvtM8zo7k8sjrpDj3dLgiZ1SsL4c7Bx/ywT+LwGxeK+VAG+pqSwl7I8+2D5kcuKAgcnYF+EcTQ== +filepond@^4.28.0: + version "4.28.0" + resolved "https://registry.yarnpkg.com/filepond/-/filepond-4.28.0.tgz#f8dac9d0d3e4ed205b2937fb817d74867a077974" + integrity sha512-9NavyNQa6dxg++ifLewb/cBVgx+9pvfzNxu/bnDWIBi6Arclc0k2ed1OwUSScNzUJQyqOD376NwP1zDZv9/SbA== fill-range@^4.0.0: version "4.0.0" From f4e660bce949e1b0b98fd59a9a3734a7673d9451 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 9 Jun 2021 12:10:16 +0800 Subject: [PATCH 0478/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=88=9B?= =?UTF-8?q?=E5=BB=BA=E5=BA=94=E7=94=A8=E7=9B=B4=E6=8E=A5=E7=82=B9=E5=87=BB?= =?UTF-8?q?=E5=88=9B=E5=BB=BA=E5=BC=95=E5=8F=91=E6=8A=B1=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/system_info_controller.rb | 8 ++--- app/controllers/apps_controller.rb | 31 ++++++------------- app/helpers/application_helper.rb | 6 ---- app/helpers/apps_helper.rb | 4 +-- app/models/concerns/user_roles.rb | 2 +- app/services/create_sample_apps_service.rb | 8 ++--- app/uploaders/app_file_uploader.rb | 2 +- app/views/apps/_form.html.slim | 8 +++-- 8 files changed, 28 insertions(+), 41 deletions(-) diff --git a/app/controllers/admin/system_info_controller.rb b/app/controllers/admin/system_info_controller.rb index 1caa3fa05..5a9b0c344 100644 --- a/app/controllers/admin/system_info_controller.rb +++ b/app/controllers/admin/system_info_controller.rb @@ -7,7 +7,7 @@ class Admin::SystemInfoController < ApplicationController 'nobrowse', 'read-only', 'ro' - ].freeze + ] EXCLUDED_MOUNT_TYPES = [ 'autofs', @@ -31,7 +31,7 @@ class Admin::SystemInfoController < ApplicationController 'tmpfs', 'tracefs', 'vfat' - ].freeze + ] HIDDEN_ENV_VALUES = [ 'token', @@ -40,7 +40,7 @@ class Admin::SystemInfoController < ApplicationController 'api_key', 'client_key', 'secret' - ].freeze + ] EXCLUDED_ENV_KEYS = [ 'SHELL', @@ -53,7 +53,7 @@ class Admin::SystemInfoController < ApplicationController 'HOME', 'GEM_HOME', '_' - ].freeze + ] # GET /admin/system_info def index diff --git a/app/controllers/apps_controller.rb b/app/controllers/apps_controller.rb index 4face71d3..00df44197 100644 --- a/app/controllers/apps_controller.rb +++ b/app/controllers/apps_controller.rb @@ -27,19 +27,19 @@ def edit end def create - schemes = app_params.delete(:schemes_attributes) - channel = app_params.delete(:channel) + @schemes = app_params.delete(:schemes_attributes) + @channel = app_params.delete(:channel) @app = App.new(app_params) authorize @app - return render :new unless @app.save - - @app.users << current_user - - create_schemes_by(@app, schemes, channel) - - redirect_to apps_path, notice: "#{@app.name}应用已经创建成功!" + if @app.save + @app.users << current_user + create_schemes_by(@app, @schemes, @channel) + redirect_to apps_path, notice: "#{@app.name}应用已经创建成功!" + else + render :new + end end def update @@ -64,7 +64,7 @@ def destory_app_data end def create_schemes_by(app, schemes, channel) - schemes.values[0][:name].each do |scheme_name| + schemes[:name].each do |scheme_name| next if scheme_name.blank? scheme = app.schemes.create name: scheme_name @@ -89,17 +89,6 @@ def set_app authorize @app end - def app_info - @release = - if params[:version] - @app.releases.find_by(app: @app, version: params[:version]) - else - @app.releases.last - end - - raise ActiveRecord::RecordNotFound, "没有找到应用版本 version: #{params[:version]}" unless @release - end - def app_params @app_params ||= params.require(:app) .permit( diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 04958df75..5e3918c9f 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true module ApplicationHelper - RANDOM_COLORS = %w[aqua blue purple navy maroon yellow red].freeze - def user_signed_in_or_guest_mode? user_signed_in? || (Setting.guest_mode && !devise_page?) end @@ -23,10 +21,6 @@ def button_link_to(title, url, icon = nil, **options) link_to content, url, **options end - def random_color - "bg-#{RANDOM_COLORS[rand(RANDOM_COLORS.size - 1)]}" - end - # 激活 li 的 class def active_class(link_paths, class_name = 'active') link_paths = [ link_paths ] if link_paths.is_a?(String) diff --git a/app/helpers/apps_helper.rb b/app/helpers/apps_helper.rb index 0f3af7405..d3349e36f 100644 --- a/app/helpers/apps_helper.rb +++ b/app/helpers/apps_helper.rb @@ -3,12 +3,12 @@ module AppsHelper SelectOption = Struct.new(:name, :value) - DEFAULT_SCHEMES = %w[测试版 内测版 产品版].freeze + DEFAULT_SCHEMES = %w[测试版 内测版 产品版] DEFAULT_CHANNELS = [ SelectOption.new('Android 和 iOS', 'both'), SelectOption.new('Android', 'android'), SelectOption.new('iOS', 'ios') - ].freeze + ] def default_schemes DEFAULT_SCHEMES diff --git a/app/models/concerns/user_roles.rb b/app/models/concerns/user_roles.rb index d6e11f6a4..89031a426 100644 --- a/app/models/concerns/user_roles.rb +++ b/app/models/concerns/user_roles.rb @@ -7,7 +7,7 @@ module UserRoles user: '用户', developer: '开发者', admin: '管理员' - }.freeze + } included do scope :admins, -> { where(role: :admin) } diff --git a/app/services/create_sample_apps_service.rb b/app/services/create_sample_apps_service.rb index e5783a687..0e202dee0 100644 --- a/app/services/create_sample_apps_service.rb +++ b/app/services/create_sample_apps_service.rb @@ -13,8 +13,8 @@ def call(user) def stardford_app(user) app_name = '演示应用' app_bundle_id = 'com.zealot.app-demo' - schemes = %i[开发版 测试版 产品版].freeze - channels = %i[Android iOS].freeze + schemes = %i[开发版 测试版 产品版] + channels = %i[Android iOS] changelog = [ { author: '管理员', @@ -63,8 +63,8 @@ def stardford_app(user) def android_channels_app(user) app_name = '演示桌面' app_bundle_id = 'com.zealot.android.app-demo' - schemes = %i[产品版].freeze - channels = %i[华为 小米 oppo viio 魅族 应用宝 百度 GooglePlay].freeze + schemes = %i[产品版] + channels = %i[华为 小米 oppo viio 魅族 应用宝 百度 GooglePlay] changelog = "release: 发布 0.1.0\nfix: 修复 xxx 问题\nfeat: 初始化项目" app = create_app(app_name, user) diff --git a/app/uploaders/app_file_uploader.rb b/app/uploaders/app_file_uploader.rb index cbc485c94..c50da21f2 100644 --- a/app/uploaders/app_file_uploader.rb +++ b/app/uploaders/app_file_uploader.rb @@ -6,6 +6,6 @@ def store_dir end def extension_allowlist - %w[ipa apk].freeze + %w[ipa apk] end end diff --git a/app/views/apps/_form.html.slim b/app/views/apps/_form.html.slim index 001d3b075..6d8c3fbd6 100644 --- a/app/views/apps/_form.html.slim +++ b/app/views/apps/_form.html.slim @@ -1,5 +1,5 @@ ruby: - head_title, back_url = if params[:action] == 'new' + head_title, back_url = if params[:action] == 'new' || params[:action] == 'create' ['应用管理', apps_path] else ['返回应用', app_path(@app)] @@ -20,7 +20,11 @@ ruby: = f.input :name, required: true - if params[:action] == 'new' - = f.simple_fields_for :schemes do |n| + = f.simple_fields_for :schemes_attributes do |n| = n.input :name, as: :check_boxes, collection: default_schemes, checked: default_schemes.last = f.input :channel, collection: default_channels, label_method: :name, value_method: :value, selected: 0 + - elsif params[:action] == 'create' + = f.simple_fields_for :schemes_attributes do |n| + = n.input :name, as: :check_boxes, collection: default_schemes, checked: @schemes[:name].compact + = f.input :channel, collection: default_channels, label_method: :name, value_method: :value, selected: @channel = f.button :submit From abd3904ae3638b177518330156a9f68c0200ac27 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 9 Jun 2021 05:01:54 +0000 Subject: [PATCH 0479/2165] chore(deps): bump carrierwave from 2.2.1 to 2.2.2 Bumps [carrierwave](https://github.com/carrierwaveuploader/carrierwave) from 2.2.1 to 2.2.2. - [Release notes](https://github.com/carrierwaveuploader/carrierwave/releases) - [Changelog](https://github.com/carrierwaveuploader/carrierwave/blob/master/CHANGELOG.md) - [Commits](https://github.com/carrierwaveuploader/carrierwave/compare/v2.2.1...v2.2.2) --- updated-dependencies: - dependency-name: carrierwave dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Gemfile b/Gemfile index 4b6c6ca3f..a0e767c61 100644 --- a/Gemfile +++ b/Gemfile @@ -33,7 +33,7 @@ gem 'friendly_id', '~> 5.4.2' ## 数据分页 gem 'kaminari' ## 文件上传 -gem 'carrierwave', '~> 2.2.1' +gem 'carrierwave', '~> 2.2.2' # Helper ## HTTP 请求 diff --git a/Gemfile.lock b/Gemfile.lock index ba42a8d08..a8fda848b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -92,7 +92,7 @@ GEM msgpack (~> 1.0) builder (3.2.4) byebug (11.1.3) - carrierwave (2.2.1) + carrierwave (2.2.2) activemodel (>= 5.0.0) activesupport (>= 5.0.0) addressable (~> 2.6) @@ -134,7 +134,7 @@ GEM multipart-post (>= 1.2, < 3) ruby2_keywords faraday-net_http (1.0.1) - ffi (1.15.0) + ffi (1.15.1) ffi-compiler (1.0.1) ffi (>= 1.0.0) rake @@ -376,7 +376,7 @@ GEM rake (>= 0.8.1) ruby-macho (2.2.0) ruby-progressbar (1.11.0) - ruby-vips (2.1.0) + ruby-vips (2.1.2) ffi (~> 1.12) ruby2_keywords (0.0.4) ruby_android (0.7.7) @@ -484,7 +484,7 @@ DEPENDENCIES binding_of_caller bootsnap (>= 1.4.7) byebug - carrierwave (~> 2.2.1) + carrierwave (~> 2.2.2) debase devise (~> 4.8.0) devise-i18n (~> 1.9.4) From dee41509ce1c8ffeb819a0ad1ee18b2eff6b6170 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 9 Jun 2021 05:02:06 +0000 Subject: [PATCH 0480/2165] chore(deps): bump puma from 5.3.1 to 5.3.2 Bumps [puma](https://github.com/puma/puma) from 5.3.1 to 5.3.2. - [Release notes](https://github.com/puma/puma/releases) - [Changelog](https://github.com/puma/puma/blob/master/History.md) - [Commits](https://github.com/puma/puma/compare/v5.3.1...v5.3.2) --- updated-dependencies: - dependency-name: puma dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 4b6c6ca3f..3363c3459 100644 --- a/Gemfile +++ b/Gemfile @@ -4,7 +4,7 @@ source 'https://rubygems.org' git_source(:github) { |repo_name| "https://github.com/#{repo_name}" } -gem 'puma', '~> 5.3.1' +gem 'puma', '~> 5.3.2' gem 'rails', '~> 6.1.3' gem 'rails-i18n', '~> 6.0.0' gem 'rake', '~> 13.0.3' diff --git a/Gemfile.lock b/Gemfile.lock index ba42a8d08..662d8d1fb 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -297,7 +297,7 @@ GEM interception (>= 0.5) pry (>= 0.12.0) public_suffix (4.0.6) - puma (5.3.1) + puma (5.3.2) nio4r (~> 2.0) pundit (2.1.0) activesupport (>= 3.0.0) @@ -515,7 +515,7 @@ DEPENDENCIES pry-byebug pry-rails pry-rescue - puma (~> 5.3.1) + puma (~> 5.3.2) pundit (~> 2.1.0) rack-cors (~> 1.1.1) rails (~> 6.1.3) From b586140f64148f0cc5bfc882ec44285fe1132c26 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 9 Jun 2021 05:02:32 +0000 Subject: [PATCH 0481/2165] chore(deps): bump webpacker from 5.2.1 to 5.4.0 Bumps [webpacker](https://github.com/rails/webpacker) from 5.2.1 to 5.4.0. - [Release notes](https://github.com/rails/webpacker/releases) - [Changelog](https://github.com/rails/webpacker/blob/master/CHANGELOG.md) - [Commits](https://github.com/rails/webpacker/compare/v5.2.1...v5.4.0) --- updated-dependencies: - dependency-name: webpacker dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Gemfile b/Gemfile index 4b6c6ca3f..fa889dbe4 100644 --- a/Gemfile +++ b/Gemfile @@ -73,7 +73,7 @@ gem 'sidekiq-scheduler', '~> 3.1.0' # Assets gem 'turbolinks', '~> 5' -gem 'webpacker', '~> 5.2' +gem 'webpacker', '~> 5.4' # 用于解析 ipa 和 apk 包 gem 'app-info', '~> 2.5.2' diff --git a/Gemfile.lock b/Gemfile.lock index ba42a8d08..06c3d02f9 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -307,7 +307,7 @@ GEM rack (2.2.3) rack-cors (1.1.1) rack (>= 2.0.0) - rack-proxy (0.6.5) + rack-proxy (0.7.0) rack rack-test (1.1.0) rack (>= 1.0, < 3) @@ -385,7 +385,7 @@ GEM rubyzip (2.3.0) rufus-scheduler (3.7.0) fugit (~> 1.1, >= 1.1.6) - semantic_range (2.3.0) + semantic_range (3.0.0) sentry-rails (4.5.1) railties (>= 5.0) sentry-ruby-core (~> 4.5.0) @@ -462,7 +462,7 @@ GEM activemodel (>= 6.0.0) bindex (>= 0.4.0) railties (>= 6.0.0) - webpacker (5.2.1) + webpacker (5.4.0) activesupport (>= 5.2) rack-proxy (>= 0.6.1) railties (>= 5.2) @@ -542,7 +542,7 @@ DEPENDENCIES turbolinks (~> 5) vmstat (~> 2.3.0) web-console (>= 3.3.0) - webpacker (~> 5.2) + webpacker (~> 5.4) BUNDLED WITH 2.2.17 From 24ee4a47607bf757302420f82e5b8be83ccd6241 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 9 Jun 2021 05:02:43 +0000 Subject: [PATCH 0482/2165] chore(deps-dev): bump rubocop from 1.15.0 to 1.16.0 Bumps [rubocop](https://github.com/rubocop/rubocop) from 1.15.0 to 1.16.0. - [Release notes](https://github.com/rubocop/rubocop/releases) - [Changelog](https://github.com/rubocop/rubocop/blob/master/CHANGELOG.md) - [Commits](https://github.com/rubocop/rubocop/compare/v1.15.0...v1.16.0) --- updated-dependencies: - dependency-name: rubocop dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index ba42a8d08..d560cb4d3 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -357,16 +357,16 @@ GEM chunky_png (~> 1.0) rqrcode_core (~> 1.0) rqrcode_core (1.0.0) - rubocop (1.15.0) + rubocop (1.16.0) parallel (~> 1.10) parser (>= 3.0.0.0) rainbow (>= 2.2.2, < 4.0) regexp_parser (>= 1.8, < 3.0) rexml - rubocop-ast (>= 1.5.0, < 2.0) + rubocop-ast (>= 1.7.0, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 1.4.0, < 3.0) - rubocop-ast (1.5.0) + rubocop-ast (1.7.0) parser (>= 3.0.1.1) rubocop-rails (2.10.1) activesupport (>= 4.2.0) From 1ab07d896641e04a9819163bb9e495dc4529727a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 9 Jun 2021 05:07:25 +0000 Subject: [PATCH 0483/2165] chore(deps): bump filepond from 4.28.0 to 4.28.1 Bumps [filepond](https://github.com/pqina/filepond) from 4.28.0 to 4.28.1. - [Release notes](https://github.com/pqina/filepond/releases) - [Changelog](https://github.com/pqina/filepond/blob/master/CHANGELOG.md) - [Commits](https://github.com/pqina/filepond/compare/4.28.0...4.28.1) --- updated-dependencies: - dependency-name: filepond dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 11ffd3639..9513c8d9a 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "@rails/webpacker": "^5.4.0", "admin-lte": "^3.0.5", "clipboard": "^2.0.8", - "filepond": "^4.28.0", + "filepond": "^4.28.1", "rails-erb-loader": "^5.5.2", "turbolinks": "^5.2.0" }, diff --git a/yarn.lock b/yarn.lock index 856fdc519..95d106de5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3518,10 +3518,10 @@ file-uri-to-path@1.0.0: resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== -filepond@^4.28.0: - version "4.28.0" - resolved "https://registry.yarnpkg.com/filepond/-/filepond-4.28.0.tgz#f8dac9d0d3e4ed205b2937fb817d74867a077974" - integrity sha512-9NavyNQa6dxg++ifLewb/cBVgx+9pvfzNxu/bnDWIBi6Arclc0k2ed1OwUSScNzUJQyqOD376NwP1zDZv9/SbA== +filepond@^4.28.1: + version "4.28.1" + resolved "https://registry.yarnpkg.com/filepond/-/filepond-4.28.1.tgz#d8ccdcd958554411434b37f3f828de8ea2563e2d" + integrity sha512-vy//xkDOW9xoYJLLZJabkpsZOWoWiKtugmTPXRPkvVMFsjOStYq2A8C/JHVGSYFIOQREE0BirzebN2Pf8OTjcw== fill-range@^4.0.0: version "4.0.0" From dabdc5a89df843af025d3ff0a8989e501972c8b8 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 9 Jun 2021 13:27:55 +0800 Subject: [PATCH 0484/2165] feat: upgrade http to 5.0.0 --- Gemfile | 2 +- Gemfile.lock | 15 ++++++++------- app/controllers/admin/system_info_controller.rb | 2 +- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/Gemfile b/Gemfile index 4b6c6ca3f..5938c6c74 100644 --- a/Gemfile +++ b/Gemfile @@ -37,7 +37,7 @@ gem 'carrierwave', '~> 2.2.1' # Helper ## HTTP 请求 -gem 'http' +gem 'http', '~> 5.0.0' ## 用户认证 gem 'devise', '~> 4.8.0' gem 'devise-i18n', '~> 1.9.4' diff --git a/Gemfile.lock b/Gemfile.lock index ba42a8d08..da0c27bee 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -134,7 +134,7 @@ GEM multipart-post (>= 1.2, < 3) ruby2_keywords faraday-net_http (1.0.1) - ffi (1.15.0) + ffi (1.15.1) ffi-compiler (1.0.1) ffi (>= 1.0.0) rake @@ -182,16 +182,14 @@ GEM hashie (4.1.0) health_check (3.0.0) railties (>= 5.0) - http (4.4.1) + http (5.0.0) addressable (~> 2.3) http-cookie (~> 1.0) http-form_data (~> 2.2) - http-parser (~> 1.2.0) - http-cookie (1.0.3) + llhttp-ffi (~> 0.0.1) + http-cookie (1.0.4) domain_name (~> 0.5) http-form_data (2.3.0) - http-parser (1.2.1) - ffi-compiler (>= 1.0, < 2.0) i18n (1.8.10) concurrent-ruby (~> 1.0) image_processing (1.12.1) @@ -233,6 +231,9 @@ GEM listen (3.5.1) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) + llhttp-ffi (0.0.1) + ffi-compiler (~> 1.0) + rake (~> 13.0) loofah (2.10.0) crass (~> 1.0.2) nokogiri (>= 1.5.9) @@ -499,7 +500,7 @@ DEPENDENCIES guard-sidekiq guard-webpacker health_check (~> 3.0.0) - http + http (~> 5.0.0) jb (~> 0.8.0) jenkins_api_client kaminari diff --git a/app/controllers/admin/system_info_controller.rb b/app/controllers/admin/system_info_controller.rb index 5a9b0c344..75a222638 100644 --- a/app/controllers/admin/system_info_controller.rb +++ b/app/controllers/admin/system_info_controller.rb @@ -120,7 +120,7 @@ def get_version version = Rails.cache.fetch('zealot_version_check', expires_in: 1.hours) do HTTP.headers(accept: 'application/vnd.github.v3+json') .get(VERSION_CHECK_URL) - .parse + .parse(:json) end latest_version = version['tag_name'] From e0970c99ca3fbd5005f21a20d809c9cf2b5be60f Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 9 Jun 2021 13:39:31 +0800 Subject: [PATCH 0485/2165] =?UTF-8?q?chore:=20=E7=BC=A9=E7=9F=AD=20stale?= =?UTF-8?q?=20=E7=9A=84=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/stale.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/stale.yml b/.github/stale.yml index 4d6ca25ce..892f72ad2 100644 --- a/.github/stale.yml +++ b/.github/stale.yml @@ -1,11 +1,13 @@ # Number of days of inactivity before an issue becomes stale -daysUntilStale: 60 +daysUntilStale: 15 # Number of days of inactivity before a stale issue is closed daysUntilClose: 5 # Issues with these labels will never be considered stale exemptLabels: - pinned - security + - wip + - rpc # Label to use when marking an issue as stale staleLabel: wontfix # Comment to post when marking an issue as stale. Set to `false` to disable From 78e004bb929233cfb57643eb3e91cec43a5f237b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 10 Jun 2021 05:02:11 +0000 Subject: [PATCH 0486/2165] chore(deps): bump health_check from 3.0.0 to 3.1.0 Bumps [health_check](https://github.com/ianheggie/health_check) from 3.0.0 to 3.1.0. - [Release notes](https://github.com/ianheggie/health_check/releases) - [Changelog](https://github.com/ianheggie/health_check/blob/master/CHANGELOG) - [Commits](https://github.com/ianheggie/health_check/compare/v3.0.0...v3.1.0) --- updated-dependencies: - dependency-name: health_check dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 69ad73d95..5cb803276 100644 --- a/Gemfile +++ b/Gemfile @@ -17,7 +17,7 @@ gem 'redis', '~> 4.2.5' gem 'active_model_serializers', '~> 0.10.12' gem 'graphql', '~> 1.12.12' gem 'rack-cors', '~> 1.1.1' -gem 'health_check', '~> 3.0.0' +gem 'health_check', '~> 3.1.0' # View ## 模板引擎 diff --git a/Gemfile.lock b/Gemfile.lock index 55761dc4e..7942c8c0b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -180,7 +180,7 @@ GEM guard (>= 2) guard-compat (~> 1.0) hashie (4.1.0) - health_check (3.0.0) + health_check (3.1.0) railties (>= 5.0) http (5.0.0) addressable (~> 2.3) @@ -499,7 +499,7 @@ DEPENDENCIES guard-rails guard-sidekiq guard-webpacker - health_check (~> 3.0.0) + health_check (~> 3.1.0) http (~> 5.0.0) jb (~> 0.8.0) jenkins_api_client From a825bbdc6ede766bd7610a707eebfaae51af41d5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 10 Jun 2021 07:53:37 +0000 Subject: [PATCH 0487/2165] chore(deps-dev): bump guard from 2.16.2 to 2.17.0 Bumps [guard](https://github.com/guard/guard) from 2.16.2 to 2.17.0. - [Release notes](https://github.com/guard/guard/releases) - [Commits](https://github.com/guard/guard/compare/v2.16.2...v2.17.0) --- updated-dependencies: - dependency-name: guard dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index 5cb803276..9dc41834a 100644 --- a/Gemfile +++ b/Gemfile @@ -91,7 +91,7 @@ group :development do # 调试器 gem 'byebug', platforms: %i[mri mingw x64_mingw] - gem 'guard', '~> 2.16.2' + gem 'guard', '~> 2.17.0' gem 'guard-bundler' gem 'guard-migrate' gem 'guard-rails' diff --git a/Gemfile.lock b/Gemfile.lock index 7942c8c0b..481f6a9af 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -152,7 +152,7 @@ GEM globalid (0.4.2) activesupport (>= 4.2.0) graphql (1.12.12) - guard (2.16.2) + guard (2.17.0) formatador (>= 0.2.4) listen (>= 2.7, < 4.0) lumberjack (>= 1.0.12, < 2.0) @@ -345,7 +345,7 @@ GEM thor (~> 1.0) rainbow (3.0.0) rake (13.0.3) - rb-fsevent (0.10.4) + rb-fsevent (0.11.0) rb-inotify (0.10.1) ffi (~> 1.0) redis (4.2.5) @@ -493,7 +493,7 @@ DEPENDENCIES friendly_id (~> 5.4.2) gitlab_omniauth-ldap (~> 2.1.1) graphql (~> 1.12.12) - guard (~> 2.16.2) + guard (~> 2.17.0) guard-bundler guard-migrate guard-rails From 9122e148c862ef30e5be958a46c13f98ca6864ef Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 14 Jun 2021 05:20:17 +0000 Subject: [PATCH 0488/2165] chore(deps): bump redis from 4.2.5 to 4.3.1 Bumps [redis](https://github.com/redis/redis-rb) from 4.2.5 to 4.3.1. - [Release notes](https://github.com/redis/redis-rb/releases) - [Changelog](https://github.com/redis/redis-rb/blob/master/CHANGELOG.md) - [Commits](https://github.com/redis/redis-rb/compare/v4.2.5...v4.3.1) --- updated-dependencies: - dependency-name: redis dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 9dc41834a..06a726598 100644 --- a/Gemfile +++ b/Gemfile @@ -11,7 +11,7 @@ gem 'rake', '~> 13.0.3' # DB & Cache gem 'pg', '>= 0.18', '< 2.0' -gem 'redis', '~> 4.2.5' +gem 'redis', '~> 4.3.1' # API gem 'active_model_serializers', '~> 0.10.12' diff --git a/Gemfile.lock b/Gemfile.lock index 481f6a9af..30a92be47 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -348,7 +348,7 @@ GEM rb-fsevent (0.11.0) rb-inotify (0.10.1) ffi (~> 1.0) - redis (4.2.5) + redis (4.3.1) regexp_parser (2.1.1) responders (3.0.1) actionpack (>= 5.0) @@ -523,7 +523,7 @@ DEPENDENCIES rails-i18n (~> 6.0.0) rails-settings-cached (~> 2.5.2) rake (~> 13.0.3) - redis (~> 4.2.5) + redis (~> 4.3.1) rqrcode rubocop (>= 0.70) rubocop-rails From c5f324f30109b8b134258a7f9a134a016e814515 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 16 Jun 2021 12:10:51 +0800 Subject: [PATCH 0489/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E9=83=A8?= =?UTF-8?q?=E5=88=86=E8=A7=A3=E6=9E=90=20iOS=20icon=20=E6=8A=B1=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 69ad73d95..58dd31407 100644 --- a/Gemfile +++ b/Gemfile @@ -76,7 +76,7 @@ gem 'turbolinks', '~> 5' gem 'webpacker', '~> 5.4' # 用于解析 ipa 和 apk 包 -gem 'app-info', '~> 2.5.2' +gem 'app-info', '~> 2.5.3' # Mobile config gem 'rails-settings-cached', '~> 2.5.2' diff --git a/Gemfile.lock b/Gemfile.lock index 55761dc4e..6515ce1bb 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -71,7 +71,7 @@ GEM zeitwerk (~> 2.3) addressable (2.7.0) public_suffix (>= 2.0.2, < 5.0) - app-info (2.5.2) + app-info (2.5.3) CFPropertyList (>= 2.3.4, < 3.1.0) image_size (>= 1.5, < 2.2) ruby-macho (~> 2.2.0) @@ -479,7 +479,7 @@ PLATFORMS DEPENDENCIES active_model_serializers (~> 0.10.12) activejob-status - app-info (~> 2.5.2) + app-info (~> 2.5.3) awesome_print better_errors binding_of_caller From 377eb46877d8f595c7b4d2c9e8212ce5f5732d73 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 16 Jun 2021 04:13:32 +0000 Subject: [PATCH 0490/2165] chore(deps): bump postcss from 7.0.35 to 7.0.36 Bumps [postcss](https://github.com/postcss/postcss) from 7.0.35 to 7.0.36. - [Release notes](https://github.com/postcss/postcss/releases) - [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md) - [Commits](https://github.com/postcss/postcss/compare/7.0.35...7.0.36) --- updated-dependencies: - dependency-name: postcss dependency-type: indirect ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 95d106de5..22a7449ae 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6318,9 +6318,9 @@ postcss-values-parser@^2.0.0, postcss-values-parser@^2.0.1: uniq "^1.0.1" postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.17, postcss@^7.0.2, postcss@^7.0.26, postcss@^7.0.27, postcss@^7.0.32, postcss@^7.0.5, postcss@^7.0.6: - version "7.0.35" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.35.tgz#d2be00b998f7f211d8a276974079f2e92b970e24" - integrity sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg== + version "7.0.36" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.36.tgz#056f8cffa939662a8f5905950c07d5285644dfcb" + integrity sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw== dependencies: chalk "^2.4.2" source-map "^0.6.1" From 0d982e49d30f6216e0454fe46ea58b6fbe6bbb8b Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 16 Jun 2021 13:40:33 +0800 Subject: [PATCH 0491/2165] =?UTF-8?q?fix:=20=E8=8E=B7=E5=8F=96=E6=B2=A1?= =?UTF-8?q?=E6=9C=89=E6=AD=A3=E5=B8=B8=E8=A7=A3=E7=A0=81=E7=9A=84=20iOS=20?= =?UTF-8?q?=E5=9B=BE=E6=A0=87=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/release.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/release.rb b/app/models/release.rb index 2938ecb4d..fb2f79baa 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -50,7 +50,7 @@ def self.upload_file(params, parser = nil) if parser.os == AppInfo::Platform::IOS release.release_type ||= parser.release_type - icon_file = parser.icons.last.try(:[], :uncrushed_file) + icon_file = parser.icons.last.try(:[], :uncrushed_file) || parser.icons.last.try(:[], :file) release.icon = icon_file if icon_file else # 处理 Android anydpi 自适应图标 From c4dc28f1083e3e2cacd97e81460e993104b52a83 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 18 Jun 2021 13:41:47 +0800 Subject: [PATCH 0492/2165] =?UTF-8?q?feat:=20=E7=AE=A1=E7=90=86=E9=9D=A2?= =?UTF-8?q?=E6=9D=BF=E5=A2=9E=E5=8A=A0=E9=A1=B5=E9=9D=A2=E7=9A=84=E7=AE=80?= =?UTF-8?q?=E5=8D=95=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 1 + Gemfile.lock | 3 +++ app/assets/config/manifest.js | 2 ++ .../admin/page_analytics_controller.rb | 7 +++++++ app/controllers/api/base_controller.rb | 6 ++++++ app/controllers/application_controller.rb | 5 +++++ .../admin/page_analytics/index.html.slim | 11 ++++++++++ app/views/layouts/_main_sidebar.html.slim | 4 ++++ config/routes.rb | 2 ++ ...alytics_views_per_days.active_analytics.rb | 21 +++++++++++++++++++ db/schema.rb | 16 +++++++++++++- 11 files changed, 77 insertions(+), 1 deletion(-) create mode 100644 app/controllers/admin/page_analytics_controller.rb create mode 100644 app/views/admin/page_analytics/index.html.slim create mode 100644 db/migrate/20210618034524_create_active_analytics_views_per_days.active_analytics.rb diff --git a/Gemfile b/Gemfile index 7fbc54c11..29f9d6d5e 100644 --- a/Gemfile +++ b/Gemfile @@ -54,6 +54,7 @@ gem 'plist', '~> 3.6.0' gem 'sys-filesystem', '~> 1.4.1' gem 'vmstat', '~> 2.3.0' gem 'pghero' +gem 'active_analytics' ## 异常报错上报 gem 'sentry-ruby' diff --git a/Gemfile.lock b/Gemfile.lock index db2acdff2..61a403ff8 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -40,6 +40,8 @@ GEM erubi (~> 1.4) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.1, >= 1.2.0) + active_analytics (0.2.0) + rails (>= 5.2.0) active_model_serializers (0.10.12) actionpack (>= 4.1, < 6.2) activemodel (>= 4.1, < 6.2) @@ -477,6 +479,7 @@ PLATFORMS ruby DEPENDENCIES + active_analytics active_model_serializers (~> 0.10.12) activejob-status app-info (~> 2.5.3) diff --git a/app/assets/config/manifest.js b/app/assets/config/manifest.js index e69de29bb..66285e2f9 100644 --- a/app/assets/config/manifest.js +++ b/app/assets/config/manifest.js @@ -0,0 +1,2 @@ +//= link active_analytics/application.css +//= link active_analytics/application.js \ No newline at end of file diff --git a/app/controllers/admin/page_analytics_controller.rb b/app/controllers/admin/page_analytics_controller.rb new file mode 100644 index 000000000..80d61ada5 --- /dev/null +++ b/app/controllers/admin/page_analytics_controller.rb @@ -0,0 +1,7 @@ +# frozen_string_literal: true + +class Admin::PageAnalyticsController < ApplicationController + def index + @title = '页面统计' + end +end diff --git a/app/controllers/api/base_controller.rb b/app/controllers/api/base_controller.rb index 41c7c69e3..7d2d48013 100644 --- a/app/controllers/api/base_controller.rb +++ b/app/controllers/api/base_controller.rb @@ -12,6 +12,8 @@ class Api::BaseController < ActionController::API rescue_from ArgumentError, NoMethodError, PG::Error, with: :render_internal_server_error rescue_from ActionController::ParameterMissing, with: :render_missing_params_error + before_action :record_page_view + def validate_user_token @user = User.find_by(token: params[:token]) raise ActionCable::Connection::Authorization::UnauthorizedError, '未授权用户' unless @user @@ -66,6 +68,10 @@ def render_internal_server_error(exception) private + def record_page_view + ActiveAnalytics.record_request(request) + end + def set_cache_headers response.headers['Cache-Control'] = 'no-cache, no-store, max-age=0, must-revalidate' end diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 1825f201e..8ee9a1ce1 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -10,6 +10,7 @@ class ApplicationController < ActionController::Base skip_before_action :verify_authenticity_token before_action :set_sentry_context + before_action :record_page_view rescue_from ActiveRecord::RecordNotFound, with: :not_found rescue_from ActionController::RoutingError, with: :not_found @@ -30,6 +31,10 @@ def set_sentry_context Sentry.set_extras(params: params.to_unsafe_h, url: request.url) end + def record_page_view + ActiveAnalytics.record_request(request) + end + def forbidden(e) respond_with_error(403, e) end diff --git a/app/views/admin/page_analytics/index.html.slim b/app/views/admin/page_analytics/index.html.slim new file mode 100644 index 000000000..361a39eb7 --- /dev/null +++ b/app/views/admin/page_analytics/index.html.slim @@ -0,0 +1,11 @@ +- content_for :title do + = @title + +- content_for :section_title do + = @title + +.row + .col-md-12 + .card + .card-body.p-0 + iframe src="#{admin_active_analytics_path}" style="border: 0" width="100%" height="970" \ No newline at end of file diff --git a/app/views/layouts/_main_sidebar.html.slim b/app/views/layouts/_main_sidebar.html.slim index cbb4d5884..83c406eee 100644 --- a/app/views/layouts/_main_sidebar.html.slim +++ b/app/views/layouts/_main_sidebar.html.slim @@ -54,6 +54,10 @@ a.nav-link href="#{admin_background_jobs_path}" class="#{active_class(admin_background_jobs_path)}" i.nav-icon.fas.fa-chart-bar p 后台任务 + li.nav-item + a.nav-link href="#{admin_page_analytics_path}" class="#{active_class(admin_page_analytics_path)}" + i.nav-icon.fas.fa-file-contract + p 页面统计分析 li.nav-item a.nav-link href="#{admin_database_analytics_path}" class="#{active_class(admin_database_analytics_path)}" i.nav-icon.fas.fa-database diff --git a/config/routes.rb b/config/routes.rb index 67aa23709..65d4956a6 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -110,12 +110,14 @@ resources :background_jobs, only: :index resources :system_info, only: :index resources :database_analytics, only: :index + resources :page_analytics, only: :index require 'sidekiq/web' require 'sidekiq-scheduler/web' mount Sidekiq::Web => 'sidekiq', as: :sidekiq mount PgHero::Engine, at: 'pghero', as: :pghero + mount ActiveAnalytics::Engine, at: :analytics end end diff --git a/db/migrate/20210618034524_create_active_analytics_views_per_days.active_analytics.rb b/db/migrate/20210618034524_create_active_analytics_views_per_days.active_analytics.rb new file mode 100644 index 000000000..167d9b1aa --- /dev/null +++ b/db/migrate/20210618034524_create_active_analytics_views_per_days.active_analytics.rb @@ -0,0 +1,21 @@ +# This migration comes from active_analytics (originally 20210303094108) +class CreateActiveAnalyticsViewsPerDays < ActiveRecord::Migration[5.2] + def up + create_table :active_analytics_views_per_days do |t| + t.string :site, null: false + t.string :page, null: false + t.date :date, null: false + t.bigint :total, null: false, default: 1 + t.string :referrer_host + t.string :referrer_path + t.timestamps + end + add_index :active_analytics_views_per_days, :date + add_index :active_analytics_views_per_days, [:site, :page, :date], name: "index_active_analytics_views_per_days_on_site_and_date" + add_index :active_analytics_views_per_days, [:referrer_host, :referrer_path, :date], name: "index_active_analytics_views_per_days_on_referrer_and_date" + end + + def down + drop_table :active_analytics_views_per_days + end +end diff --git a/db/schema.rb b/db/schema.rb index 7b6865926..3ec6e6579 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,11 +10,25 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 2020_12_16_070418) do +ActiveRecord::Schema.define(version: 2021_06_18_034524) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" + create_table "active_analytics_views_per_days", force: :cascade do |t| + t.string "site", null: false + t.string "page", null: false + t.date "date", null: false + t.bigint "total", default: 1, null: false + t.string "referrer_host" + t.string "referrer_path" + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + t.index ["date"], name: "index_active_analytics_views_per_days_on_date" + t.index ["referrer_host", "referrer_path", "date"], name: "index_active_analytics_views_per_days_on_referrer_and_date" + t.index ["site", "page", "date"], name: "index_active_analytics_views_per_days_on_site_and_date" + end + create_table "apps", force: :cascade do |t| t.string "name", null: false t.string "description" From 110904609a71eee9ad6d510442d30b5f9837b0e9 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 18 Jun 2021 13:58:08 +0800 Subject: [PATCH 0493/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E7=B3=BB?= =?UTF-8?q?=E7=BB=9F=E9=85=8D=E7=BD=AE=E4=BF=9D=E5=AD=98=E7=A9=BA=E5=80=BC?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/admin/settings/index.html.slim | 2 +- config/locales/zealot/zh-CN.yml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/app/views/admin/settings/index.html.slim b/app/views/admin/settings/index.html.slim index a3d0a98a1..90cf3cb65 100644 --- a/app/views/admin/settings/index.html.slim +++ b/app/views/admin/settings/index.html.slim @@ -16,4 +16,4 @@ form.form-horizontal dl.system-info dt = t("admin.settings.#{key}") dd - pre = link_to value.to_s, edit_admin_setting_path(key) + pre = link_to value.blank? ? t('admin.settings.empty_value') : value.to_s, edit_admin_setting_path(key) diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index 76d0ae14a..bfda198f2 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -17,6 +17,7 @@ zh-CN: archives: 上传文件 keep_uploads: 永久保存上传应用版本 + empty_value: 空值 submit: create: 新增设置 update: 更新设置 From 94f4aefece0d225208adb72ba75f59f0c95184a4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 24 Jun 2021 21:01:32 +0000 Subject: [PATCH 0494/2165] chore(deps): bump sentry-ruby from 4.5.1 to 4.5.2 Bumps [sentry-ruby](https://github.com/getsentry/sentry-ruby) from 4.5.1 to 4.5.2. - [Release notes](https://github.com/getsentry/sentry-ruby/releases) - [Changelog](https://github.com/getsentry/sentry-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-ruby/compare/4.5.1...4.5.2) --- updated-dependencies: - dependency-name: sentry-ruby dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 61a403ff8..0fe34a294 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -131,11 +131,19 @@ GEM erubi (1.10.0) et-orbi (1.2.4) tzinfo - faraday (1.3.0) + faraday (1.4.3) + faraday-em_http (~> 1.0) + faraday-em_synchrony (~> 1.0) + faraday-excon (~> 1.1) faraday-net_http (~> 1.0) + faraday-net_http_persistent (~> 1.1) multipart-post (>= 1.2, < 3) - ruby2_keywords + ruby2_keywords (>= 0.0.4) + faraday-em_http (1.0.0) + faraday-em_synchrony (1.0.0) + faraday-excon (1.1.0) faraday-net_http (1.0.1) + faraday-net_http_persistent (1.1.0) ffi (1.15.1) ffi-compiler (1.0.1) ffi (>= 1.0.0) @@ -392,11 +400,11 @@ GEM sentry-rails (4.5.1) railties (>= 5.0) sentry-ruby-core (~> 4.5.0) - sentry-ruby (4.5.1) + sentry-ruby (4.5.2) concurrent-ruby (~> 1.0, >= 1.0.2) faraday (>= 1.0) - sentry-ruby-core (= 4.5.1) - sentry-ruby-core (4.5.1) + sentry-ruby-core (= 4.5.2) + sentry-ruby-core (4.5.2) concurrent-ruby faraday sentry-sidekiq (4.5.1) From 205fee2cb767484bcfa87a6b4eb83c80d950e3e2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 24 Jun 2021 21:01:44 +0000 Subject: [PATCH 0495/2165] chore(deps): bump sentry-rails from 4.5.1 to 4.5.2 Bumps [sentry-rails](https://github.com/getsentry/sentry-ruby) from 4.5.1 to 4.5.2. - [Release notes](https://github.com/getsentry/sentry-ruby/releases) - [Changelog](https://github.com/getsentry/sentry-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-ruby/compare/4.5.1...4.5.2) --- updated-dependencies: - dependency-name: sentry-rails dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 61a403ff8..40122927d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -131,11 +131,19 @@ GEM erubi (1.10.0) et-orbi (1.2.4) tzinfo - faraday (1.3.0) + faraday (1.4.3) + faraday-em_http (~> 1.0) + faraday-em_synchrony (~> 1.0) + faraday-excon (~> 1.1) faraday-net_http (~> 1.0) + faraday-net_http_persistent (~> 1.1) multipart-post (>= 1.2, < 3) - ruby2_keywords + ruby2_keywords (>= 0.0.4) + faraday-em_http (1.0.0) + faraday-em_synchrony (1.0.0) + faraday-excon (1.1.0) faraday-net_http (1.0.1) + faraday-net_http_persistent (1.1.0) ffi (1.15.1) ffi-compiler (1.0.1) ffi (>= 1.0.0) @@ -389,7 +397,7 @@ GEM rufus-scheduler (3.7.0) fugit (~> 1.1, >= 1.1.6) semantic_range (3.0.0) - sentry-rails (4.5.1) + sentry-rails (4.5.2) railties (>= 5.0) sentry-ruby-core (~> 4.5.0) sentry-ruby (4.5.1) From 47ab91815c9d8ebae07837e35bb1fc9a6e363c0b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 24 Jun 2021 21:03:03 +0000 Subject: [PATCH 0496/2165] chore(deps): bump @rails/ujs from 6.1.3 to 6.1.4 Bumps [@rails/ujs](https://github.com/rails/rails) from 6.1.3 to 6.1.4. - [Release notes](https://github.com/rails/rails/releases) - [Commits](https://github.com/rails/rails/compare/v6.1.3...v6.1.4) --- updated-dependencies: - dependency-name: "@rails/ujs" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 9513c8d9a..5d92e27f4 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "zealot", "private": true, "dependencies": { - "@rails/ujs": "^6.1.3", + "@rails/ujs": "^6.1.4", "@rails/webpacker": "^5.4.0", "admin-lte": "^3.0.5", "clipboard": "^2.0.8", diff --git a/yarn.lock b/yarn.lock index 22a7449ae..5a862872e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -903,10 +903,10 @@ mkdirp "^1.0.4" rimraf "^3.0.2" -"@rails/ujs@^6.1.3": - version "6.1.3" - resolved "https://registry.yarnpkg.com/@rails/ujs/-/ujs-6.1.3.tgz#90ef26caa0925492b1a3b1495db09cfbe49e745e" - integrity sha512-9mip5o+LVouWAqLMNJWhxda+D5uP+4RziNECgOGJlL6k3rc5SC/ljCHpV9Cym4i3oeGZkpZJ2tu4frCwt84kzQ== +"@rails/ujs@^6.1.4": + version "6.1.4" + resolved "https://registry.yarnpkg.com/@rails/ujs/-/ujs-6.1.4.tgz#093d5341595a02089ed309dec40f3c37da7b1b10" + integrity sha512-O3lEzL5DYbxppMdsFSw36e4BHIlfz/xusynwXGv3l2lhSlvah41qviRpsoAlKXxl37nZAqK+UUF5cnGGK45Mfw== "@rails/webpacker@^5.4.0": version "5.4.0" From cb7a560de8e50c4a4302aba0b360f92a1fe6fa5c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 25 Jun 2021 02:50:26 +0000 Subject: [PATCH 0497/2165] chore(deps): bump rails from 6.1.3.2 to 6.1.4 Bumps [rails](https://github.com/rails/rails) from 6.1.3.2 to 6.1.4. - [Release notes](https://github.com/rails/rails/releases) - [Commits](https://github.com/rails/rails/compare/v6.1.3.2...v6.1.4) --- updated-dependencies: - dependency-name: rails dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 116 +++++++++++++++++++++++++-------------------------- 2 files changed, 59 insertions(+), 59 deletions(-) diff --git a/Gemfile b/Gemfile index 29f9d6d5e..91607da9d 100644 --- a/Gemfile +++ b/Gemfile @@ -5,7 +5,7 @@ source 'https://rubygems.org' git_source(:github) { |repo_name| "https://github.com/#{repo_name}" } gem 'puma', '~> 5.3.2' -gem 'rails', '~> 6.1.3' +gem 'rails', '~> 6.1.4' gem 'rails-i18n', '~> 6.0.0' gem 'rake', '~> 13.0.3' diff --git a/Gemfile.lock b/Gemfile.lock index 547d1114d..a5b6ccb32 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -2,40 +2,40 @@ GEM remote: https://rubygems.org/ specs: CFPropertyList (3.0.3) - actioncable (6.1.3.2) - actionpack (= 6.1.3.2) - activesupport (= 6.1.3.2) + actioncable (6.1.4) + actionpack (= 6.1.4) + activesupport (= 6.1.4) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (6.1.3.2) - actionpack (= 6.1.3.2) - activejob (= 6.1.3.2) - activerecord (= 6.1.3.2) - activestorage (= 6.1.3.2) - activesupport (= 6.1.3.2) + actionmailbox (6.1.4) + actionpack (= 6.1.4) + activejob (= 6.1.4) + activerecord (= 6.1.4) + activestorage (= 6.1.4) + activesupport (= 6.1.4) mail (>= 2.7.1) - actionmailer (6.1.3.2) - actionpack (= 6.1.3.2) - actionview (= 6.1.3.2) - activejob (= 6.1.3.2) - activesupport (= 6.1.3.2) + actionmailer (6.1.4) + actionpack (= 6.1.4) + actionview (= 6.1.4) + activejob (= 6.1.4) + activesupport (= 6.1.4) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (6.1.3.2) - actionview (= 6.1.3.2) - activesupport (= 6.1.3.2) + actionpack (6.1.4) + actionview (= 6.1.4) + activesupport (= 6.1.4) rack (~> 2.0, >= 2.0.9) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (6.1.3.2) - actionpack (= 6.1.3.2) - activerecord (= 6.1.3.2) - activestorage (= 6.1.3.2) - activesupport (= 6.1.3.2) + actiontext (6.1.4) + actionpack (= 6.1.4) + activerecord (= 6.1.4) + activestorage (= 6.1.4) + activesupport (= 6.1.4) nokogiri (>= 1.8.5) - actionview (6.1.3.2) - activesupport (= 6.1.3.2) + actionview (6.1.4) + activesupport (= 6.1.4) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) @@ -47,25 +47,25 @@ GEM activemodel (>= 4.1, < 6.2) case_transform (>= 0.2) jsonapi-renderer (>= 0.1.1.beta1, < 0.3) - activejob (6.1.3.2) - activesupport (= 6.1.3.2) + activejob (6.1.4) + activesupport (= 6.1.4) globalid (>= 0.3.6) activejob-status (0.1.6) activejob (>= 4.2) activesupport (>= 4.2) - activemodel (6.1.3.2) - activesupport (= 6.1.3.2) - activerecord (6.1.3.2) - activemodel (= 6.1.3.2) - activesupport (= 6.1.3.2) - activestorage (6.1.3.2) - actionpack (= 6.1.3.2) - activejob (= 6.1.3.2) - activerecord (= 6.1.3.2) - activesupport (= 6.1.3.2) + activemodel (6.1.4) + activesupport (= 6.1.4) + activerecord (6.1.4) + activemodel (= 6.1.4) + activesupport (= 6.1.4) + activestorage (6.1.4) + actionpack (= 6.1.4) + activejob (= 6.1.4) + activerecord (= 6.1.4) + activesupport (= 6.1.4) marcel (~> 1.0.0) - mini_mime (~> 1.0.2) - activesupport (6.1.3.2) + mini_mime (>= 1.1.0) + activesupport (6.1.4) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) @@ -253,7 +253,7 @@ GEM marcel (1.0.1) method_source (1.0.0) mini_magick (4.11.0) - mini_mime (1.0.3) + mini_mime (1.1.0) mini_portile2 (2.5.3) minitest (5.14.4) mixlib-shellout (3.0.7) @@ -322,20 +322,20 @@ GEM rack rack-test (1.1.0) rack (>= 1.0, < 3) - rails (6.1.3.2) - actioncable (= 6.1.3.2) - actionmailbox (= 6.1.3.2) - actionmailer (= 6.1.3.2) - actionpack (= 6.1.3.2) - actiontext (= 6.1.3.2) - actionview (= 6.1.3.2) - activejob (= 6.1.3.2) - activemodel (= 6.1.3.2) - activerecord (= 6.1.3.2) - activestorage (= 6.1.3.2) - activesupport (= 6.1.3.2) + rails (6.1.4) + actioncable (= 6.1.4) + actionmailbox (= 6.1.4) + actionmailer (= 6.1.4) + actionpack (= 6.1.4) + actiontext (= 6.1.4) + actionview (= 6.1.4) + activejob (= 6.1.4) + activemodel (= 6.1.4) + activerecord (= 6.1.4) + activestorage (= 6.1.4) + activesupport (= 6.1.4) bundler (>= 1.15.0) - railties (= 6.1.3.2) + railties (= 6.1.4) sprockets-rails (>= 2.0.0) rails-dom-testing (2.0.3) activesupport (>= 4.2.0) @@ -347,11 +347,11 @@ GEM railties (>= 6.0.0, < 7) rails-settings-cached (2.5.2) rails (>= 5.0.0) - railties (6.1.3.2) - actionpack (= 6.1.3.2) - activesupport (= 6.1.3.2) + railties (6.1.4) + actionpack (= 6.1.4) + activesupport (= 6.1.4) method_source - rake (>= 0.8.7) + rake (>= 0.13) thor (~> 1.0) rainbow (3.0.0) rake (13.0.3) @@ -478,7 +478,7 @@ GEM rack-proxy (>= 0.6.1) railties (>= 5.2) semantic_range (>= 2.3.0) - websocket-driver (0.7.3) + websocket-driver (0.7.5) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) zeitwerk (2.4.2) @@ -530,7 +530,7 @@ DEPENDENCIES puma (~> 5.3.2) pundit (~> 2.1.0) rack-cors (~> 1.1.1) - rails (~> 6.1.3) + rails (~> 6.1.4) rails-i18n (~> 6.0.0) rails-settings-cached (~> 2.5.2) rake (~> 13.0.3) From 843d5405f700f3096c62af024bca414cbf1afc0e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 25 Jun 2021 02:50:30 +0000 Subject: [PATCH 0498/2165] chore(deps): bump sentry-sidekiq from 4.5.1 to 4.5.2 Bumps [sentry-sidekiq](https://github.com/getsentry/sentry-ruby) from 4.5.1 to 4.5.2. - [Release notes](https://github.com/getsentry/sentry-ruby/releases) - [Changelog](https://github.com/getsentry/sentry-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-ruby/compare/4.5.1...4.5.2) --- updated-dependencies: - dependency-name: sentry-sidekiq dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 61a403ff8..a48070cb7 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -131,11 +131,19 @@ GEM erubi (1.10.0) et-orbi (1.2.4) tzinfo - faraday (1.3.0) + faraday (1.4.3) + faraday-em_http (~> 1.0) + faraday-em_synchrony (~> 1.0) + faraday-excon (~> 1.1) faraday-net_http (~> 1.0) + faraday-net_http_persistent (~> 1.1) multipart-post (>= 1.2, < 3) - ruby2_keywords + ruby2_keywords (>= 0.0.4) + faraday-em_http (1.0.0) + faraday-em_synchrony (1.0.0) + faraday-excon (1.1.0) faraday-net_http (1.0.1) + faraday-net_http_persistent (1.1.0) ffi (1.15.1) ffi-compiler (1.0.1) ffi (>= 1.0.0) @@ -392,14 +400,14 @@ GEM sentry-rails (4.5.1) railties (>= 5.0) sentry-ruby-core (~> 4.5.0) - sentry-ruby (4.5.1) + sentry-ruby (4.5.2) concurrent-ruby (~> 1.0, >= 1.0.2) faraday (>= 1.0) - sentry-ruby-core (= 4.5.1) - sentry-ruby-core (4.5.1) + sentry-ruby-core (= 4.5.2) + sentry-ruby-core (4.5.2) concurrent-ruby faraday - sentry-sidekiq (4.5.1) + sentry-sidekiq (4.5.2) sentry-ruby-core (~> 4.5.0) shellany (0.0.1) sidekiq (6.2.1) From fb4caa9c27ae56a03020b441670baf5d7e00977d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 30 Jun 2021 21:00:55 +0000 Subject: [PATCH 0499/2165] chore(deps): bump graphql from 1.12.12 to 1.12.13 Bumps [graphql](https://github.com/rmosolgo/graphql-ruby) from 1.12.12 to 1.12.13. - [Release notes](https://github.com/rmosolgo/graphql-ruby/releases) - [Changelog](https://github.com/rmosolgo/graphql-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/rmosolgo/graphql-ruby/compare/v1.12.12...v1.12.13) --- updated-dependencies: - dependency-name: graphql dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 29f9d6d5e..fbc57e6e1 100644 --- a/Gemfile +++ b/Gemfile @@ -15,7 +15,7 @@ gem 'redis', '~> 4.3.1' # API gem 'active_model_serializers', '~> 0.10.12' -gem 'graphql', '~> 1.12.12' +gem 'graphql', '~> 1.12.13' gem 'rack-cors', '~> 1.1.1' gem 'health_check', '~> 3.1.0' diff --git a/Gemfile.lock b/Gemfile.lock index b7a4a04e0..e56d673fe 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -161,7 +161,7 @@ GEM rubyntlm (~> 0.5) globalid (0.4.2) activesupport (>= 4.2.0) - graphql (1.12.12) + graphql (1.12.13) guard (2.17.0) formatador (>= 0.2.4) listen (>= 2.7, < 4.0) @@ -503,7 +503,7 @@ DEPENDENCIES dotenv-rails friendly_id (~> 5.4.2) gitlab_omniauth-ldap (~> 2.1.1) - graphql (~> 1.12.12) + graphql (~> 1.12.13) guard (~> 2.17.0) guard-bundler guard-migrate From abe367b0dadef052f5c18e764fa16a68dcdb2459 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 7 Jul 2021 02:25:31 +0000 Subject: [PATCH 0500/2165] chore(deps): bump sentry-ruby from 4.5.2 to 4.6.0 Bumps [sentry-ruby](https://github.com/getsentry/sentry-ruby) from 4.5.2 to 4.6.0. - [Release notes](https://github.com/getsentry/sentry-ruby/releases) - [Changelog](https://github.com/getsentry/sentry-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-ruby/compare/4.5.2...4.6.0) --- updated-dependencies: - dependency-name: sentry-ruby dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 136 ++++++++++++++++++++++++++------------------------- 1 file changed, 70 insertions(+), 66 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index b7a4a04e0..9fbc2ecd3 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -2,40 +2,40 @@ GEM remote: https://rubygems.org/ specs: CFPropertyList (3.0.3) - actioncable (6.1.3.2) - actionpack (= 6.1.3.2) - activesupport (= 6.1.3.2) + actioncable (6.1.4) + actionpack (= 6.1.4) + activesupport (= 6.1.4) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (6.1.3.2) - actionpack (= 6.1.3.2) - activejob (= 6.1.3.2) - activerecord (= 6.1.3.2) - activestorage (= 6.1.3.2) - activesupport (= 6.1.3.2) + actionmailbox (6.1.4) + actionpack (= 6.1.4) + activejob (= 6.1.4) + activerecord (= 6.1.4) + activestorage (= 6.1.4) + activesupport (= 6.1.4) mail (>= 2.7.1) - actionmailer (6.1.3.2) - actionpack (= 6.1.3.2) - actionview (= 6.1.3.2) - activejob (= 6.1.3.2) - activesupport (= 6.1.3.2) + actionmailer (6.1.4) + actionpack (= 6.1.4) + actionview (= 6.1.4) + activejob (= 6.1.4) + activesupport (= 6.1.4) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (6.1.3.2) - actionview (= 6.1.3.2) - activesupport (= 6.1.3.2) + actionpack (6.1.4) + actionview (= 6.1.4) + activesupport (= 6.1.4) rack (~> 2.0, >= 2.0.9) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (6.1.3.2) - actionpack (= 6.1.3.2) - activerecord (= 6.1.3.2) - activestorage (= 6.1.3.2) - activesupport (= 6.1.3.2) + actiontext (6.1.4) + actionpack (= 6.1.4) + activerecord (= 6.1.4) + activestorage (= 6.1.4) + activesupport (= 6.1.4) nokogiri (>= 1.8.5) - actionview (6.1.3.2) - activesupport (= 6.1.3.2) + actionview (6.1.4) + activesupport (= 6.1.4) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) @@ -47,25 +47,25 @@ GEM activemodel (>= 4.1, < 6.2) case_transform (>= 0.2) jsonapi-renderer (>= 0.1.1.beta1, < 0.3) - activejob (6.1.3.2) - activesupport (= 6.1.3.2) + activejob (6.1.4) + activesupport (= 6.1.4) globalid (>= 0.3.6) activejob-status (0.1.6) activejob (>= 4.2) activesupport (>= 4.2) - activemodel (6.1.3.2) - activesupport (= 6.1.3.2) - activerecord (6.1.3.2) - activemodel (= 6.1.3.2) - activesupport (= 6.1.3.2) - activestorage (6.1.3.2) - actionpack (= 6.1.3.2) - activejob (= 6.1.3.2) - activerecord (= 6.1.3.2) - activesupport (= 6.1.3.2) + activemodel (6.1.4) + activesupport (= 6.1.4) + activerecord (6.1.4) + activemodel (= 6.1.4) + activesupport (= 6.1.4) + activestorage (6.1.4) + actionpack (= 6.1.4) + activejob (= 6.1.4) + activerecord (= 6.1.4) + activesupport (= 6.1.4) marcel (~> 1.0.0) - mini_mime (~> 1.0.2) - activesupport (6.1.3.2) + mini_mime (>= 1.1.0) + activesupport (6.1.4) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) @@ -131,19 +131,23 @@ GEM erubi (1.10.0) et-orbi (1.2.4) tzinfo - faraday (1.4.3) + faraday (1.5.0) faraday-em_http (~> 1.0) faraday-em_synchrony (~> 1.0) faraday-excon (~> 1.1) + faraday-httpclient (~> 1.0.1) faraday-net_http (~> 1.0) faraday-net_http_persistent (~> 1.1) + faraday-patron (~> 1.0) multipart-post (>= 1.2, < 3) ruby2_keywords (>= 0.0.4) faraday-em_http (1.0.0) faraday-em_synchrony (1.0.0) faraday-excon (1.1.0) + faraday-httpclient (1.0.1) faraday-net_http (1.0.1) faraday-net_http_persistent (1.1.0) + faraday-patron (1.0.0) ffi (1.15.1) ffi-compiler (1.0.1) ffi (>= 1.0.0) @@ -253,7 +257,7 @@ GEM marcel (1.0.1) method_source (1.0.0) mini_magick (4.11.0) - mini_mime (1.0.3) + mini_mime (1.1.0) mini_portile2 (2.5.3) minitest (5.14.4) mixlib-shellout (3.0.7) @@ -322,20 +326,20 @@ GEM rack rack-test (1.1.0) rack (>= 1.0, < 3) - rails (6.1.3.2) - actioncable (= 6.1.3.2) - actionmailbox (= 6.1.3.2) - actionmailer (= 6.1.3.2) - actionpack (= 6.1.3.2) - actiontext (= 6.1.3.2) - actionview (= 6.1.3.2) - activejob (= 6.1.3.2) - activemodel (= 6.1.3.2) - activerecord (= 6.1.3.2) - activestorage (= 6.1.3.2) - activesupport (= 6.1.3.2) + rails (6.1.4) + actioncable (= 6.1.4) + actionmailbox (= 6.1.4) + actionmailer (= 6.1.4) + actionpack (= 6.1.4) + actiontext (= 6.1.4) + actionview (= 6.1.4) + activejob (= 6.1.4) + activemodel (= 6.1.4) + activerecord (= 6.1.4) + activestorage (= 6.1.4) + activesupport (= 6.1.4) bundler (>= 1.15.0) - railties (= 6.1.3.2) + railties (= 6.1.4) sprockets-rails (>= 2.0.0) rails-dom-testing (2.0.3) activesupport (>= 4.2.0) @@ -347,11 +351,11 @@ GEM railties (>= 6.0.0, < 7) rails-settings-cached (2.5.2) rails (>= 5.0.0) - railties (6.1.3.2) - actionpack (= 6.1.3.2) - activesupport (= 6.1.3.2) + railties (6.1.4) + actionpack (= 6.1.4) + activesupport (= 6.1.4) method_source - rake (>= 0.8.7) + rake (>= 0.13) thor (~> 1.0) rainbow (3.0.0) rake (13.0.3) @@ -397,18 +401,18 @@ GEM rufus-scheduler (3.7.0) fugit (~> 1.1, >= 1.1.6) semantic_range (3.0.0) - sentry-rails (4.5.2) + sentry-rails (4.6.0) railties (>= 5.0) - sentry-ruby-core (~> 4.5.0) - sentry-ruby (4.5.2) + sentry-ruby-core (~> 4.6.0) + sentry-ruby (4.6.0) concurrent-ruby (~> 1.0, >= 1.0.2) faraday (>= 1.0) - sentry-ruby-core (= 4.5.2) - sentry-ruby-core (4.5.2) + sentry-ruby-core (= 4.6.0) + sentry-ruby-core (4.6.0) concurrent-ruby faraday - sentry-sidekiq (4.5.2) - sentry-ruby-core (~> 4.5.0) + sentry-sidekiq (4.6.0) + sentry-ruby-core (~> 4.6.0) shellany (0.0.1) sidekiq (6.2.1) connection_pool (>= 2.2.2) @@ -478,7 +482,7 @@ GEM rack-proxy (>= 0.6.1) railties (>= 5.2) semantic_range (>= 2.3.0) - websocket-driver (0.7.3) + websocket-driver (0.7.5) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) zeitwerk (2.4.2) @@ -530,7 +534,7 @@ DEPENDENCIES puma (~> 5.3.2) pundit (~> 2.1.0) rack-cors (~> 1.1.1) - rails (~> 6.1.3) + rails (~> 6.1.4) rails-i18n (~> 6.0.0) rails-settings-cached (~> 2.5.2) rake (~> 13.0.3) From 28eeb12da61a39c2fe4070d129b7a5b9f7145e72 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 7 Jul 2021 02:26:09 +0000 Subject: [PATCH 0501/2165] chore(deps): bump rake from 13.0.3 to 13.0.4 Bumps [rake](https://github.com/ruby/rake) from 13.0.3 to 13.0.4. - [Release notes](https://github.com/ruby/rake/releases) - [Changelog](https://github.com/ruby/rake/blob/master/History.rdoc) - [Commits](https://github.com/ruby/rake/compare/v13.0.3...v13.0.4) --- updated-dependencies: - dependency-name: rake dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 4 +- Gemfile.lock | 120 +++++++++++++++++++++++++-------------------------- 2 files changed, 62 insertions(+), 62 deletions(-) diff --git a/Gemfile b/Gemfile index 29f9d6d5e..0de56af3f 100644 --- a/Gemfile +++ b/Gemfile @@ -5,9 +5,9 @@ source 'https://rubygems.org' git_source(:github) { |repo_name| "https://github.com/#{repo_name}" } gem 'puma', '~> 5.3.2' -gem 'rails', '~> 6.1.3' +gem 'rails', '~> 6.1.4' gem 'rails-i18n', '~> 6.0.0' -gem 'rake', '~> 13.0.3' +gem 'rake', '~> 13.0.4' # DB & Cache gem 'pg', '>= 0.18', '< 2.0' diff --git a/Gemfile.lock b/Gemfile.lock index b7a4a04e0..94e32a702 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -2,40 +2,40 @@ GEM remote: https://rubygems.org/ specs: CFPropertyList (3.0.3) - actioncable (6.1.3.2) - actionpack (= 6.1.3.2) - activesupport (= 6.1.3.2) + actioncable (6.1.4) + actionpack (= 6.1.4) + activesupport (= 6.1.4) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (6.1.3.2) - actionpack (= 6.1.3.2) - activejob (= 6.1.3.2) - activerecord (= 6.1.3.2) - activestorage (= 6.1.3.2) - activesupport (= 6.1.3.2) + actionmailbox (6.1.4) + actionpack (= 6.1.4) + activejob (= 6.1.4) + activerecord (= 6.1.4) + activestorage (= 6.1.4) + activesupport (= 6.1.4) mail (>= 2.7.1) - actionmailer (6.1.3.2) - actionpack (= 6.1.3.2) - actionview (= 6.1.3.2) - activejob (= 6.1.3.2) - activesupport (= 6.1.3.2) + actionmailer (6.1.4) + actionpack (= 6.1.4) + actionview (= 6.1.4) + activejob (= 6.1.4) + activesupport (= 6.1.4) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (6.1.3.2) - actionview (= 6.1.3.2) - activesupport (= 6.1.3.2) + actionpack (6.1.4) + actionview (= 6.1.4) + activesupport (= 6.1.4) rack (~> 2.0, >= 2.0.9) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (6.1.3.2) - actionpack (= 6.1.3.2) - activerecord (= 6.1.3.2) - activestorage (= 6.1.3.2) - activesupport (= 6.1.3.2) + actiontext (6.1.4) + actionpack (= 6.1.4) + activerecord (= 6.1.4) + activestorage (= 6.1.4) + activesupport (= 6.1.4) nokogiri (>= 1.8.5) - actionview (6.1.3.2) - activesupport (= 6.1.3.2) + actionview (6.1.4) + activesupport (= 6.1.4) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) @@ -47,25 +47,25 @@ GEM activemodel (>= 4.1, < 6.2) case_transform (>= 0.2) jsonapi-renderer (>= 0.1.1.beta1, < 0.3) - activejob (6.1.3.2) - activesupport (= 6.1.3.2) + activejob (6.1.4) + activesupport (= 6.1.4) globalid (>= 0.3.6) activejob-status (0.1.6) activejob (>= 4.2) activesupport (>= 4.2) - activemodel (6.1.3.2) - activesupport (= 6.1.3.2) - activerecord (6.1.3.2) - activemodel (= 6.1.3.2) - activesupport (= 6.1.3.2) - activestorage (6.1.3.2) - actionpack (= 6.1.3.2) - activejob (= 6.1.3.2) - activerecord (= 6.1.3.2) - activesupport (= 6.1.3.2) + activemodel (6.1.4) + activesupport (= 6.1.4) + activerecord (6.1.4) + activemodel (= 6.1.4) + activesupport (= 6.1.4) + activestorage (6.1.4) + actionpack (= 6.1.4) + activejob (= 6.1.4) + activerecord (= 6.1.4) + activesupport (= 6.1.4) marcel (~> 1.0.0) - mini_mime (~> 1.0.2) - activesupport (6.1.3.2) + mini_mime (>= 1.1.0) + activesupport (6.1.4) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) @@ -253,7 +253,7 @@ GEM marcel (1.0.1) method_source (1.0.0) mini_magick (4.11.0) - mini_mime (1.0.3) + mini_mime (1.1.0) mini_portile2 (2.5.3) minitest (5.14.4) mixlib-shellout (3.0.7) @@ -322,20 +322,20 @@ GEM rack rack-test (1.1.0) rack (>= 1.0, < 3) - rails (6.1.3.2) - actioncable (= 6.1.3.2) - actionmailbox (= 6.1.3.2) - actionmailer (= 6.1.3.2) - actionpack (= 6.1.3.2) - actiontext (= 6.1.3.2) - actionview (= 6.1.3.2) - activejob (= 6.1.3.2) - activemodel (= 6.1.3.2) - activerecord (= 6.1.3.2) - activestorage (= 6.1.3.2) - activesupport (= 6.1.3.2) + rails (6.1.4) + actioncable (= 6.1.4) + actionmailbox (= 6.1.4) + actionmailer (= 6.1.4) + actionpack (= 6.1.4) + actiontext (= 6.1.4) + actionview (= 6.1.4) + activejob (= 6.1.4) + activemodel (= 6.1.4) + activerecord (= 6.1.4) + activestorage (= 6.1.4) + activesupport (= 6.1.4) bundler (>= 1.15.0) - railties (= 6.1.3.2) + railties (= 6.1.4) sprockets-rails (>= 2.0.0) rails-dom-testing (2.0.3) activesupport (>= 4.2.0) @@ -347,14 +347,14 @@ GEM railties (>= 6.0.0, < 7) rails-settings-cached (2.5.2) rails (>= 5.0.0) - railties (6.1.3.2) - actionpack (= 6.1.3.2) - activesupport (= 6.1.3.2) + railties (6.1.4) + actionpack (= 6.1.4) + activesupport (= 6.1.4) method_source - rake (>= 0.8.7) + rake (>= 0.13) thor (~> 1.0) rainbow (3.0.0) - rake (13.0.3) + rake (13.0.4) rb-fsevent (0.11.0) rb-inotify (0.10.1) ffi (~> 1.0) @@ -478,7 +478,7 @@ GEM rack-proxy (>= 0.6.1) railties (>= 5.2) semantic_range (>= 2.3.0) - websocket-driver (0.7.3) + websocket-driver (0.7.5) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) zeitwerk (2.4.2) @@ -530,10 +530,10 @@ DEPENDENCIES puma (~> 5.3.2) pundit (~> 2.1.0) rack-cors (~> 1.1.1) - rails (~> 6.1.3) + rails (~> 6.1.4) rails-i18n (~> 6.0.0) rails-settings-cached (~> 2.5.2) - rake (~> 13.0.3) + rake (~> 13.0.4) redis (~> 4.3.1) rqrcode rubocop (>= 0.70) From d9f81af1f7d5376625b289fb63284e81740d865a Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 7 Jul 2021 11:18:42 +0800 Subject: [PATCH 0502/2165] =?UTF-8?q?chore:=20=E5=9B=A0=20Microbadger=20?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E8=AE=BF=E9=97=AE=E6=9A=82=E6=97=B6=E7=A7=BB?= =?UTF-8?q?=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/publish_nighty.yml | 6 +----- .github/workflows/publish_release.yml | 4 ---- 2 files changed, 1 insertion(+), 9 deletions(-) diff --git a/.github/workflows/publish_nighty.yml b/.github/workflows/publish_nighty.yml index 660281e25..2b2a862e5 100644 --- a/.github/workflows/publish_nighty.yml +++ b/.github/workflows/publish_nighty.yml @@ -34,8 +34,4 @@ jobs: env: DOCKERHUB_USERNAME: ${{ secrets.DOCKER_USERNAME }} DOCKERHUB_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} - DOCKERHUB_REPOSITORY: tryzealot/zealot - - name: Trigger Microbadger update - uses: wei/curl@master - with: - args: -X POST ${{ secrets.MICROBADGER_WEBHOOK_URL }} \ No newline at end of file + DOCKERHUB_REPOSITORY: tryzealot/zealot \ No newline at end of file diff --git a/.github/workflows/publish_release.yml b/.github/workflows/publish_release.yml index 6d8034662..029ba87ef 100644 --- a/.github/workflows/publish_release.yml +++ b/.github/workflows/publish_release.yml @@ -33,10 +33,6 @@ jobs: DOCKERHUB_USERNAME: ${{ secrets.DOCKER_USERNAME }} DOCKERHUB_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} DOCKERHUB_REPOSITORY: tryzealot/zealot - - name: Trigger Microbadger update - uses: wei/curl@master - with: - args: -X POST ${{ secrets.MICROBADGER_WEBHOOK_URL }} - name: Create Release id: create_release uses: actions/create-release@v1 From 47845902a5729a83ef5dc98dab1e3715857b3ba3 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 8 Jul 2021 11:34:58 +0800 Subject: [PATCH 0503/2165] =?UTF-8?q?style:=20=E5=8D=87=E7=BA=A7=20admin-l?= =?UTF-8?q?te=203.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/layouts/_navigation.html.slim | 2 +- package.json | 2 +- yarn.lock | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/views/layouts/_navigation.html.slim b/app/views/layouts/_navigation.html.slim index fbf451673..a6f867f87 100644 --- a/app/views/layouts/_navigation.html.slim +++ b/app/views/layouts/_navigation.html.slim @@ -23,7 +23,7 @@ nav.main-header.navbar.navbar-expand.navbar-white.navbar-light li.nav-item = link_to '登录', new_user_session_path, class: 'dropdown-item' - else - div.navbar-collapse.justify-content-md-center + .navbar-collapse.justify-content-md-center h4 a href="#{ root_path }" style="color: black" = Setting.site_title diff --git a/package.json b/package.json index 5d92e27f4..d2f623e25 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "dependencies": { "@rails/ujs": "^6.1.4", "@rails/webpacker": "^5.4.0", - "admin-lte": "^3.0.5", + "admin-lte": "^3.1.0", "clipboard": "^2.0.8", "filepond": "^4.28.1", "rails-erb-loader": "^5.5.2", diff --git a/yarn.lock b/yarn.lock index 5a862872e..47d2bf66e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1182,10 +1182,10 @@ acorn@^7.0.0: resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -admin-lte@^3.0.5: +admin-lte@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/admin-lte/-/admin-lte-3.1.0.tgz#3e9e76267c53d0d19746bb592f24d82a4d262c15" - integrity sha512-JkmmkjbGgB5RCPwpaUCEktpZz/Ez/vBdfCNx8J3u8doaRRUUV1/oj4PuIiOV+xrNMt05q87131xoGySr/eA4uA== + resolved "https://registry.yarnpkg.com/admin-lte/download/admin-lte-3.1.0.tgz#3e9e76267c53d0d19746bb592f24d82a4d262c15" + integrity sha1-Pp52JnxT0NGXRrtZLyTYKk0mLBU= dependencies: "@fortawesome/fontawesome-free" "^5.15.3" "@lgaitan/pace-progress" "^1.0.7" From c10ad0697065463d871a1fea9a40584cca277f61 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 8 Jul 2021 10:51:15 +0800 Subject: [PATCH 0504/2165] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E9=A3=9E?= =?UTF-8?q?=E4=B9=A6=E7=9A=84=E4=BE=9D=E8=B5=96=E5=92=8C=E7=AE=80=E5=8D=95?= =?UTF-8?q?=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 4 ++- Gemfile.lock | 62 +++++++++++++++++++---------------- config/initializers/devise.rb | 10 ++++++ config/secrets.yml | 17 +++++++--- 4 files changed, 59 insertions(+), 34 deletions(-) diff --git a/Gemfile b/Gemfile index b850317a5..1d58d3937 100644 --- a/Gemfile +++ b/Gemfile @@ -39,12 +39,14 @@ gem 'carrierwave', '~> 2.2.2' ## HTTP 请求 gem 'http', '~> 5.0.0' ## 用户认证 +gem 'pundit', '~> 2.1.0' gem 'devise', '~> 4.8.0' gem 'devise-i18n', '~> 1.9.4' + gem 'omniauth', '~> 1.9' gem 'omniauth-google-oauth2', '~> 0.8.2' gem 'gitlab_omniauth-ldap', '~> 2.1.1', require: 'omniauth-ldap' -gem 'pundit', '~> 2.1.0' +gem 'omniauth-feishu', '~> 0.1.6' ## UDID gem 'openssl', '~> 2.2.0' diff --git a/Gemfile.lock b/Gemfile.lock index 38ea6c758..537a19534 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -71,7 +71,7 @@ GEM minitest (>= 5.1) tzinfo (~> 2.0) zeitwerk (~> 2.3) - addressable (2.7.0) + addressable (2.8.0) public_suffix (>= 2.0.2, < 5.0) app-info (2.5.3) CFPropertyList (>= 2.3.4, < 3.1.0) @@ -104,15 +104,17 @@ GEM ssrf_filter (~> 1.0) case_transform (0.2) activesupport + chef-utils (17.2.29) + concurrent-ruby chunky_png (1.4.0) coderay (1.1.3) concurrent-ruby (1.1.9) - connection_pool (2.2.3) + connection_pool (2.2.5) crass (1.0.6) debase (0.2.4.1) debase-ruby_core_source (>= 0.10.2) - debase-ruby_core_source (0.10.9) - debug_inspector (1.0.0) + debase-ruby_core_source (0.10.12) + debug_inspector (1.1.0) devise (4.8.0) bcrypt (~> 3.0) orm_adapter (~> 0.1) @@ -148,11 +150,11 @@ GEM faraday-net_http (1.0.1) faraday-net_http_persistent (1.1.0) faraday-patron (1.0.0) - ffi (1.15.1) + ffi (1.15.3) ffi-compiler (1.0.1) ffi (>= 1.0.0) rake - formatador (0.2.5) + formatador (0.3.0) friendly_id (5.4.2) activerecord (>= 4.0.0) fugit (1.5.0) @@ -196,11 +198,11 @@ GEM hashie (4.1.0) health_check (3.1.0) railties (>= 5.0) - http (5.0.0) + http (5.0.1) addressable (~> 2.3) http-cookie (~> 1.0) http-form_data (~> 2.2) - llhttp-ffi (~> 0.0.1) + llhttp-ffi (~> 0.3.0) http-cookie (1.0.4) domain_name (~> 0.5) http-form_data (2.3.0) @@ -209,7 +211,7 @@ GEM image_processing (1.12.1) mini_magick (>= 4.9.5, < 5) ruby-vips (>= 2.0.17, < 3) - image_size (2.1.0) + image_size (2.1.1) interception (0.5) jb (0.8.0) jenkins_api_client (1.5.3) @@ -219,9 +221,9 @@ GEM socksify (>= 1.7.0) terminal-table (>= 1.4.0) thor (>= 0.16.0) - json (2.3.0) + json (2.5.1) jsonapi-renderer (0.2.2) - jwt (2.2.2) + jwt (2.2.3) kaminari (1.2.1) activesupport (>= 4.1.0) kaminari-actionview (= 1.2.1) @@ -245,7 +247,7 @@ GEM listen (3.5.1) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) - llhttp-ffi (0.0.1) + llhttp-ffi (0.3.1) ffi-compiler (~> 1.0) rake (~> 13.0) loofah (2.10.0) @@ -260,13 +262,14 @@ GEM mini_mime (1.1.0) mini_portile2 (2.5.3) minitest (5.14.4) - mixlib-shellout (3.0.7) + mixlib-shellout (3.2.5) + chef-utils msgpack (1.4.2) multi_json (1.15.0) multi_xml (0.6.0) multipart-post (2.1.1) nenv (0.3.0) - net-ldap (0.16.3) + net-ldap (0.17.0) nio4r (2.5.7) nokogiri (1.11.7) mini_portile2 (~> 2.5.0) @@ -274,7 +277,7 @@ GEM notiffany (0.1.3) nenv (~> 0.1) shellany (~> 0.0) - oauth2 (1.4.4) + oauth2 (1.4.7) faraday (>= 0.8, < 2.0) jwt (>= 1.0, < 3.0) multi_json (~> 1.3) @@ -283,14 +286,16 @@ GEM omniauth (1.9.1) hashie (>= 3.4.6) rack (>= 1.6.2, < 3) + omniauth-feishu (0.1.6) + omniauth-oauth2 (~> 1.6.0) omniauth-google-oauth2 (0.8.2) jwt (>= 2.0) oauth2 (~> 1.1) omniauth (~> 1.1) omniauth-oauth2 (>= 1.6) - omniauth-oauth2 (1.7.1) - oauth2 (~> 1.4) - omniauth (>= 1.9, < 3) + omniauth-oauth2 (1.6.0) + oauth2 (~> 1.1) + omniauth (~> 1.9) openssl (2.2.0) orm_adapter (0.5.0) parallel (1.20.1) @@ -349,7 +354,7 @@ GEM rails-i18n (6.0.0) i18n (>= 0.7, < 2) railties (>= 6.0.0, < 7) - rails-settings-cached (2.5.2) + rails-settings-cached (2.5.3) rails (>= 5.0.0) railties (6.1.4) actionpack (= 6.1.4) @@ -371,8 +376,8 @@ GEM rqrcode (2.0.0) chunky_png (~> 1.0) rqrcode_core (~> 1.0) - rqrcode_core (1.0.0) - rubocop (1.16.0) + rqrcode_core (1.1.0) + rubocop (1.18.3) parallel (~> 1.10) parser (>= 3.0.0.0) rainbow (>= 2.2.2, < 4.0) @@ -383,7 +388,7 @@ GEM unicode-display_width (>= 1.4.0, < 3.0) rubocop-ast (1.7.0) parser (>= 3.0.1.1) - rubocop-rails (2.10.1) + rubocop-rails (2.11.2) activesupport (>= 4.2.0) rack (>= 1.1) rubocop (>= 1.7.0, < 2.0) @@ -396,8 +401,8 @@ GEM ruby2_keywords (0.0.4) ruby_android (0.7.7) rubyzip (>= 1.1.6) - rubyntlm (0.6.2) - rubyzip (2.3.0) + rubyntlm (0.6.3) + rubyzip (2.3.2) rufus-scheduler (3.7.0) fugit (~> 1.1, >= 1.1.6) semantic_range (3.0.0) @@ -428,7 +433,7 @@ GEM simple_form (5.1.0) actionpack (>= 5.2) activemodel (>= 5.2) - slim (4.0.1) + slim (4.1.0) temple (>= 0.7.6, < 0.9) tilt (>= 2.0.6, < 2.1) slim-rails (3.2.0) @@ -453,8 +458,8 @@ GEM temple (0.8.2) terminal-notifier (2.0.0) terminal-notifier-guard (1.7.0) - terminal-table (1.8.0) - unicode-display_width (~> 1.1, >= 1.1.1) + terminal-table (3.0.1) + unicode-display_width (>= 1.1.1, < 3) thor (1.1.0) thwait (0.2.0) e2mmap @@ -467,7 +472,7 @@ GEM unf (0.1.4) unf_ext unf_ext (0.0.7.7) - unicode-display_width (1.7.0) + unicode-display_width (2.0.0) uuidtools (2.2.0) vmstat (2.3.1) warden (1.2.9) @@ -523,6 +528,7 @@ DEPENDENCIES letter_opener_web (~> 1.4) listen (>= 3.0.5, < 3.6) omniauth (~> 1.9) + omniauth-feishu (~> 0.1.6) omniauth-google-oauth2 (~> 0.8.2) openssl (~> 2.2.0) pg (>= 0.18, < 2.0) diff --git a/config/initializers/devise.rb b/config/initializers/devise.rb index 32f012be2..e2aca235c 100644 --- a/config/initializers/devise.rb +++ b/config/initializers/devise.rb @@ -289,6 +289,16 @@ scope: 'email,profile' end + # Google OAuth + if defined?(OmniAuth::Strategies::Feishu) && + Rails.application.secrets[:feishu_enabled] + + feishu_app_id = Rails.application.secrets[:feishu_app_id] + feishu_app_secret = Rails.application.secrets[:feishu_app_secret] + + config.omniauth :feishu, feishu_app_id, feishu_app_secret + end + # LDAP if defined?(OmniAuth::Strategies::LDAP) && Rails.application.secrets[:ldap_enabled] diff --git a/config/secrets.yml b/config/secrets.yml index 42a18a360..f4be83e7f 100644 --- a/config/secrets.yml +++ b/config/secrets.yml @@ -10,15 +10,15 @@ # Make sure the secrets in this file are kept private # if you're sharing your code publicly. -development: &default - admin_email: admin@zealot.com - admin_password: password - secret_key_base: <%= ENV['SECRET_TOKEN'] || 'd42f6363da844381a4dfa25d76a4d0c0b992b5de907a165a21fa9a01662e05792915e6537ecbc4d3d55c0de5e9d159d96ba035ff517f9cff27d5bf0c2d55830b' %> - +x-default: &default google_oauth_enabled: <%= ENV['GOOGLE_OAUTH_ENABLED'] %> google_client_id: <%= ENV['GOOGLE_CLIENT_ID'] %> google_secret: <%= ENV['GOOGLE_SECRET'] %> + feishu_enabled: <%= ENV['FEISHU_ENABLED'] %> + feishu_app_id: <%= ENV['FEISHU_APP_ID'] %> + feishu_app_secret: <%= ENV['FEISHU_APP_SECRET'] %> + ldap_enabled: <%= ENV['LDAP_ENABLED'] %> ldap_host: <%= ENV['LDAP_HOST'] %> ldap_port: <%= ENV['LDAP_PORT'] %> @@ -28,8 +28,15 @@ development: &default ldap_base: <%= ENV['LDAP_BASE'] %> ldap_uid: <%= ENV['LDAP_UID'] %> +development: + <<: *default + admin_email: admin@zealot.com + admin_password: password + secret_key_base: <%= ENV['SECRET_TOKEN'] || 'd42f6363da844381a4dfa25d76a4d0c0b992b5de907a165a21fa9a01662e05792915e6537ecbc4d3d55c0de5e9d159d96ba035ff517f9cff27d5bf0c2d55830b' %> + test: <<: *default + secret_key_base: <%= ENV['SECRET_TOKEN'] || 'd42f6363da844381a4dfa25d76a4d0c0b992b5de907a165a21fa9a01662e05792915e6537ecbc4d3d55c0de5e9d159d96ba035ff517f9cff27d5bf0c2d55830b' %> # Do not keep production secrets in the repository, # instead read values from the environment. From 9f63c8a958229054af7b7482f519a40de976770b Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 9 Jul 2021 11:02:15 +0800 Subject: [PATCH 0505/2165] fix: correct admin-lte download url --- yarn.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/yarn.lock b/yarn.lock index 47d2bf66e..5b692e14a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1184,8 +1184,8 @@ acorn@^7.0.0: admin-lte@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/admin-lte/download/admin-lte-3.1.0.tgz#3e9e76267c53d0d19746bb592f24d82a4d262c15" - integrity sha1-Pp52JnxT0NGXRrtZLyTYKk0mLBU= + resolved "https://registry.npmjs.org/admin-lte/-/admin-lte-3.1.0.tgz#3e9e76267c53d0d19746bb592f24d82a4d262c15" + integrity sha512-JkmmkjbGgB5RCPwpaUCEktpZz/Ez/vBdfCNx8J3u8doaRRUUV1/oj4PuIiOV+xrNMt05q87131xoGySr/eA4uA== dependencies: "@fortawesome/fontawesome-free" "^5.15.3" "@lgaitan/pace-progress" "^1.0.7" From 89f2e4206598ddd5d2484c97bb9e920460965fbf Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 9 Jul 2021 11:10:58 +0800 Subject: [PATCH 0506/2165] =?UTF-8?q?fix:=20=E6=B7=BB=E5=8A=A0=E4=B8=A2?= =?UTF-8?q?=E5=A4=B1=E7=9A=84=20secret=5Fkey=5Fbase=20=E7=9A=84=E7=8E=AF?= =?UTF-8?q?=E5=A2=83=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/secrets.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/config/secrets.yml b/config/secrets.yml index 42a18a360..66fb237c9 100644 --- a/config/secrets.yml +++ b/config/secrets.yml @@ -35,5 +35,6 @@ test: # instead read values from the environment. production: <<: *default + secret_key_base: <%= ENV['SECRET_TOKEN'] %> admin_email: admin@zealot.com admin_password: ze@l0t \ No newline at end of file From f2661423b5f08ddaa8aa286f5512241d32b55bfe Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 8 Jul 2021 10:51:15 +0800 Subject: [PATCH 0507/2165] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E9=A3=9E?= =?UTF-8?q?=E4=B9=A6=E7=9A=84=E4=BE=9D=E8=B5=96=E5=92=8C=E7=AE=80=E5=8D=95?= =?UTF-8?q?=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 4 ++- Gemfile.lock | 62 +++++++++++++++++++---------------- config/initializers/devise.rb | 10 ++++++ config/secrets.yml | 17 +++++++--- 4 files changed, 59 insertions(+), 34 deletions(-) diff --git a/Gemfile b/Gemfile index b850317a5..1d58d3937 100644 --- a/Gemfile +++ b/Gemfile @@ -39,12 +39,14 @@ gem 'carrierwave', '~> 2.2.2' ## HTTP 请求 gem 'http', '~> 5.0.0' ## 用户认证 +gem 'pundit', '~> 2.1.0' gem 'devise', '~> 4.8.0' gem 'devise-i18n', '~> 1.9.4' + gem 'omniauth', '~> 1.9' gem 'omniauth-google-oauth2', '~> 0.8.2' gem 'gitlab_omniauth-ldap', '~> 2.1.1', require: 'omniauth-ldap' -gem 'pundit', '~> 2.1.0' +gem 'omniauth-feishu', '~> 0.1.6' ## UDID gem 'openssl', '~> 2.2.0' diff --git a/Gemfile.lock b/Gemfile.lock index 38ea6c758..537a19534 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -71,7 +71,7 @@ GEM minitest (>= 5.1) tzinfo (~> 2.0) zeitwerk (~> 2.3) - addressable (2.7.0) + addressable (2.8.0) public_suffix (>= 2.0.2, < 5.0) app-info (2.5.3) CFPropertyList (>= 2.3.4, < 3.1.0) @@ -104,15 +104,17 @@ GEM ssrf_filter (~> 1.0) case_transform (0.2) activesupport + chef-utils (17.2.29) + concurrent-ruby chunky_png (1.4.0) coderay (1.1.3) concurrent-ruby (1.1.9) - connection_pool (2.2.3) + connection_pool (2.2.5) crass (1.0.6) debase (0.2.4.1) debase-ruby_core_source (>= 0.10.2) - debase-ruby_core_source (0.10.9) - debug_inspector (1.0.0) + debase-ruby_core_source (0.10.12) + debug_inspector (1.1.0) devise (4.8.0) bcrypt (~> 3.0) orm_adapter (~> 0.1) @@ -148,11 +150,11 @@ GEM faraday-net_http (1.0.1) faraday-net_http_persistent (1.1.0) faraday-patron (1.0.0) - ffi (1.15.1) + ffi (1.15.3) ffi-compiler (1.0.1) ffi (>= 1.0.0) rake - formatador (0.2.5) + formatador (0.3.0) friendly_id (5.4.2) activerecord (>= 4.0.0) fugit (1.5.0) @@ -196,11 +198,11 @@ GEM hashie (4.1.0) health_check (3.1.0) railties (>= 5.0) - http (5.0.0) + http (5.0.1) addressable (~> 2.3) http-cookie (~> 1.0) http-form_data (~> 2.2) - llhttp-ffi (~> 0.0.1) + llhttp-ffi (~> 0.3.0) http-cookie (1.0.4) domain_name (~> 0.5) http-form_data (2.3.0) @@ -209,7 +211,7 @@ GEM image_processing (1.12.1) mini_magick (>= 4.9.5, < 5) ruby-vips (>= 2.0.17, < 3) - image_size (2.1.0) + image_size (2.1.1) interception (0.5) jb (0.8.0) jenkins_api_client (1.5.3) @@ -219,9 +221,9 @@ GEM socksify (>= 1.7.0) terminal-table (>= 1.4.0) thor (>= 0.16.0) - json (2.3.0) + json (2.5.1) jsonapi-renderer (0.2.2) - jwt (2.2.2) + jwt (2.2.3) kaminari (1.2.1) activesupport (>= 4.1.0) kaminari-actionview (= 1.2.1) @@ -245,7 +247,7 @@ GEM listen (3.5.1) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) - llhttp-ffi (0.0.1) + llhttp-ffi (0.3.1) ffi-compiler (~> 1.0) rake (~> 13.0) loofah (2.10.0) @@ -260,13 +262,14 @@ GEM mini_mime (1.1.0) mini_portile2 (2.5.3) minitest (5.14.4) - mixlib-shellout (3.0.7) + mixlib-shellout (3.2.5) + chef-utils msgpack (1.4.2) multi_json (1.15.0) multi_xml (0.6.0) multipart-post (2.1.1) nenv (0.3.0) - net-ldap (0.16.3) + net-ldap (0.17.0) nio4r (2.5.7) nokogiri (1.11.7) mini_portile2 (~> 2.5.0) @@ -274,7 +277,7 @@ GEM notiffany (0.1.3) nenv (~> 0.1) shellany (~> 0.0) - oauth2 (1.4.4) + oauth2 (1.4.7) faraday (>= 0.8, < 2.0) jwt (>= 1.0, < 3.0) multi_json (~> 1.3) @@ -283,14 +286,16 @@ GEM omniauth (1.9.1) hashie (>= 3.4.6) rack (>= 1.6.2, < 3) + omniauth-feishu (0.1.6) + omniauth-oauth2 (~> 1.6.0) omniauth-google-oauth2 (0.8.2) jwt (>= 2.0) oauth2 (~> 1.1) omniauth (~> 1.1) omniauth-oauth2 (>= 1.6) - omniauth-oauth2 (1.7.1) - oauth2 (~> 1.4) - omniauth (>= 1.9, < 3) + omniauth-oauth2 (1.6.0) + oauth2 (~> 1.1) + omniauth (~> 1.9) openssl (2.2.0) orm_adapter (0.5.0) parallel (1.20.1) @@ -349,7 +354,7 @@ GEM rails-i18n (6.0.0) i18n (>= 0.7, < 2) railties (>= 6.0.0, < 7) - rails-settings-cached (2.5.2) + rails-settings-cached (2.5.3) rails (>= 5.0.0) railties (6.1.4) actionpack (= 6.1.4) @@ -371,8 +376,8 @@ GEM rqrcode (2.0.0) chunky_png (~> 1.0) rqrcode_core (~> 1.0) - rqrcode_core (1.0.0) - rubocop (1.16.0) + rqrcode_core (1.1.0) + rubocop (1.18.3) parallel (~> 1.10) parser (>= 3.0.0.0) rainbow (>= 2.2.2, < 4.0) @@ -383,7 +388,7 @@ GEM unicode-display_width (>= 1.4.0, < 3.0) rubocop-ast (1.7.0) parser (>= 3.0.1.1) - rubocop-rails (2.10.1) + rubocop-rails (2.11.2) activesupport (>= 4.2.0) rack (>= 1.1) rubocop (>= 1.7.0, < 2.0) @@ -396,8 +401,8 @@ GEM ruby2_keywords (0.0.4) ruby_android (0.7.7) rubyzip (>= 1.1.6) - rubyntlm (0.6.2) - rubyzip (2.3.0) + rubyntlm (0.6.3) + rubyzip (2.3.2) rufus-scheduler (3.7.0) fugit (~> 1.1, >= 1.1.6) semantic_range (3.0.0) @@ -428,7 +433,7 @@ GEM simple_form (5.1.0) actionpack (>= 5.2) activemodel (>= 5.2) - slim (4.0.1) + slim (4.1.0) temple (>= 0.7.6, < 0.9) tilt (>= 2.0.6, < 2.1) slim-rails (3.2.0) @@ -453,8 +458,8 @@ GEM temple (0.8.2) terminal-notifier (2.0.0) terminal-notifier-guard (1.7.0) - terminal-table (1.8.0) - unicode-display_width (~> 1.1, >= 1.1.1) + terminal-table (3.0.1) + unicode-display_width (>= 1.1.1, < 3) thor (1.1.0) thwait (0.2.0) e2mmap @@ -467,7 +472,7 @@ GEM unf (0.1.4) unf_ext unf_ext (0.0.7.7) - unicode-display_width (1.7.0) + unicode-display_width (2.0.0) uuidtools (2.2.0) vmstat (2.3.1) warden (1.2.9) @@ -523,6 +528,7 @@ DEPENDENCIES letter_opener_web (~> 1.4) listen (>= 3.0.5, < 3.6) omniauth (~> 1.9) + omniauth-feishu (~> 0.1.6) omniauth-google-oauth2 (~> 0.8.2) openssl (~> 2.2.0) pg (>= 0.18, < 2.0) diff --git a/config/initializers/devise.rb b/config/initializers/devise.rb index 32f012be2..e2aca235c 100644 --- a/config/initializers/devise.rb +++ b/config/initializers/devise.rb @@ -289,6 +289,16 @@ scope: 'email,profile' end + # Google OAuth + if defined?(OmniAuth::Strategies::Feishu) && + Rails.application.secrets[:feishu_enabled] + + feishu_app_id = Rails.application.secrets[:feishu_app_id] + feishu_app_secret = Rails.application.secrets[:feishu_app_secret] + + config.omniauth :feishu, feishu_app_id, feishu_app_secret + end + # LDAP if defined?(OmniAuth::Strategies::LDAP) && Rails.application.secrets[:ldap_enabled] diff --git a/config/secrets.yml b/config/secrets.yml index 66fb237c9..04d35b0c4 100644 --- a/config/secrets.yml +++ b/config/secrets.yml @@ -10,15 +10,15 @@ # Make sure the secrets in this file are kept private # if you're sharing your code publicly. -development: &default - admin_email: admin@zealot.com - admin_password: password - secret_key_base: <%= ENV['SECRET_TOKEN'] || 'd42f6363da844381a4dfa25d76a4d0c0b992b5de907a165a21fa9a01662e05792915e6537ecbc4d3d55c0de5e9d159d96ba035ff517f9cff27d5bf0c2d55830b' %> - +x-default: &default google_oauth_enabled: <%= ENV['GOOGLE_OAUTH_ENABLED'] %> google_client_id: <%= ENV['GOOGLE_CLIENT_ID'] %> google_secret: <%= ENV['GOOGLE_SECRET'] %> + feishu_enabled: <%= ENV['FEISHU_ENABLED'] %> + feishu_app_id: <%= ENV['FEISHU_APP_ID'] %> + feishu_app_secret: <%= ENV['FEISHU_APP_SECRET'] %> + ldap_enabled: <%= ENV['LDAP_ENABLED'] %> ldap_host: <%= ENV['LDAP_HOST'] %> ldap_port: <%= ENV['LDAP_PORT'] %> @@ -28,8 +28,15 @@ development: &default ldap_base: <%= ENV['LDAP_BASE'] %> ldap_uid: <%= ENV['LDAP_UID'] %> +development: + <<: *default + admin_email: admin@zealot.com + admin_password: password + secret_key_base: <%= ENV['SECRET_TOKEN'] || 'd42f6363da844381a4dfa25d76a4d0c0b992b5de907a165a21fa9a01662e05792915e6537ecbc4d3d55c0de5e9d159d96ba035ff517f9cff27d5bf0c2d55830b' %> + test: <<: *default + secret_key_base: <%= ENV['SECRET_TOKEN'] || 'd42f6363da844381a4dfa25d76a4d0c0b992b5de907a165a21fa9a01662e05792915e6537ecbc4d3d55c0de5e9d159d96ba035ff517f9cff27d5bf0c2d55830b' %> # Do not keep production secrets in the repository, # instead read values from the environment. From 6f43b488d71c8722fbea2ef9c9422f502a6c1068 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 9 Jul 2021 12:14:56 +0800 Subject: [PATCH 0508/2165] =?UTF-8?q?feat:=20=E6=94=AF=E6=8C=81=E9=A3=9E?= =?UTF-8?q?=E4=B9=A6=E7=99=BB=E5=BD=95=E5=92=8C=E8=B4=A6=E6=88=B7=E5=85=B3?= =?UTF-8?q?=E8=81=94?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../users/omniauth_callbacks_controller.rb | 51 +++++++++++++++---- app/javascript/stylesheets/devise.scss | 20 ++++++++ app/models/concerns/user_omniauth.rb | 7 ++- app/models/user.rb | 7 ++- app/models/user_provider.rb | 23 +++++++-- app/views/devise/shared/_links.html.slim | 10 +++- config/initializers/devise.rb | 3 +- 7 files changed, 99 insertions(+), 22 deletions(-) diff --git a/app/controllers/users/omniauth_callbacks_controller.rb b/app/controllers/users/omniauth_callbacks_controller.rb index acfd5288e..3d4b393a8 100644 --- a/app/controllers/users/omniauth_callbacks_controller.rb +++ b/app/controllers/users/omniauth_callbacks_controller.rb @@ -2,11 +2,15 @@ class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController def google_oauth2 - omniauth_callback('Google', 'google_data') + omniauth_callback('Google ', 'google_data') end def ldap - omniauth_callback('LDAP', 'ldap_data') + omniauth_callback('LDAP ', 'ldap_data') + end + + def feishu + omniauth_callback('飞书', 'feishu_data') end # def failure @@ -17,14 +21,43 @@ def ldap private - def omniauth_callback(provider, session_key) - @user = User.from_omniauth(request.env['omniauth.auth']) - if @user.persisted? - flash[:notice] = "#{provider} 账户授权并登录成功" - sign_in_and_redirect @user + def omniauth_callback(name, session_key) + auth = request.env['omniauth.auth'] + provider = UserProvider.initialize_from_omniauth(auth) + + # Existed provider? + if provider.persisted? + provider.save + + flash[:notice] = "#{name}账户授权并登录成功" + return sign_in_and_redirect provider.user + end + + if user_signed_in? + # Connect provider to existed user + omni_params = request.env['omniauth.params'] + current_user.providers.create(provider) + + bypass_sign_in(current_user) + redirect_path = omni_params['back'].presence || root_path + redirect_to redirect_path, notice: '#{name}账户关联成功' else - session["devise.#{session_key}"] = request.env['omniauth.auth'] - redirect_to new_user_registration_url, alert: @user.errors.full_messages.join("\n") + # New user logged in with provider + user = User.from_omniauth(auth) + flash[:notice] = "#{name}账户授权并登录成功" + sign_in_and_redirect user end end + + def provider_attributes(auth) + credentials = auth.credentials + + { + name: auth.provider, + uid: auth.uid, + token: credentials.token, + expires_at: credentials.expires_at, + secret: credentials.secret + } + end end diff --git a/app/javascript/stylesheets/devise.scss b/app/javascript/stylesheets/devise.scss index 7e1dfe984..256a88124 100644 --- a/app/javascript/stylesheets/devise.scss +++ b/app/javascript/stylesheets/devise.scss @@ -1,3 +1,23 @@ .login-box { width: 440px; +} + +.btn-google { + background-color: #ea4335; + color: #fff; +} + +.btn-google:hover { + background-color: #ba4335; + color: #fff; +} + +.btn-feishu { + background-color: #3370ff; + color: #fff; +} + +.btn-feishu:hover { + background-color: #2851b3; + color: #fff; } \ No newline at end of file diff --git a/app/models/concerns/user_omniauth.rb b/app/models/concerns/user_omniauth.rb index 69ffc9369..0ecf110d2 100644 --- a/app/models/concerns/user_omniauth.rb +++ b/app/models/concerns/user_omniauth.rb @@ -14,8 +14,9 @@ def from_omniauth(auth) user = User.new(email: email, username: username, password: password) user.skip_confirmation! user.remember_me! - user.save! + user.save!(validate: false) + UserProvider.create_from_omniauth(auth, user) UserMailer.omniauth_welcome_email(user, password).deliver_later user @@ -39,6 +40,10 @@ def enabled_ldap? defined?(OmniAuth::Strategies::LDAP) && secrets[:ldap_enabled] end + def enabled_feishu? + defined?(OmniAuth::Strategies::Feishu) && secrets[:feishu_enabled] + end + def secrets Rails.application.secrets end diff --git a/app/models/user.rb b/app/models/user.rb index 7a7eb6bdc..d594296cc 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -1,17 +1,16 @@ # frozen_string_literal: true class User < ApplicationRecord - include UserRoles extend UserOmniauth - devise :database_authenticatable, :registerable, :confirmable, :rememberable, :trackable, :validatable, :recoverable, - :omniauthable, omniauth_providers: %i[google_oauth2 ldap] + :omniauthable, omniauth_providers: %i[google_oauth2 ldap feishu] + include UserRoles enum role: %i[user developer admin] has_and_belongs_to_many :apps - has_many :user_providers, dependent: :destroy + has_many :providers, dependent: :destroy, class_name: 'UserProvider' validates :username, presence: true validates :email, presence: true diff --git a/app/models/user_provider.rb b/app/models/user_provider.rb index 3a4ad92db..55eca9218 100644 --- a/app/models/user_provider.rb +++ b/app/models/user_provider.rb @@ -3,13 +3,26 @@ class UserProvider < ApplicationRecord belongs_to :user - def self.from_omniauth(auth, user) + def self.initialize_from_omniauth(auth) + UserProvider.where(name: auth.provider, uid: auth.uid).first_or_initialize do |provider| + credentials = auth.credentials + + provider.token = credentials.token + provider.expires = credentials.expires + provider.expires_at = credentials.expires_at + provider.refresh_token = credentials.refresh_token + end + end + + def self.create_from_omniauth(auth, user) UserProvider.where(name: auth.provider, uid: auth.uid).first_or_create do |provider| + credentials = auth.credentials + provider.user = user - provider.token = auth.credentials.token - provider.expires = auth.credentials.expires - provider.expires_at = auth.credentials.expires_at - provider.refresh_token = auth.credentials.refresh_token + provider.token = credentials.token + provider.expires = credentials.expires + provider.expires_at = credentials.expires_at + provider.refresh_token = credentials.refresh_token end end end diff --git a/app/views/devise/shared/_links.html.slim b/app/views/devise/shared/_links.html.slim index e7db2077c..5939026e9 100644 --- a/app/views/devise/shared/_links.html.slim +++ b/app/views/devise/shared/_links.html.slim @@ -5,8 +5,16 @@ - unless provider == :ldap ruby: name = omniauth_display_name(provider) + button_style = case provider + when :google_oauth2 + 'btn-google' + when :feishu + 'btn-feishu' + else + 'btn-default' + end - a.btn.btn-icon.btn-block href="#{public_send("user_#{provider}_omniauth_authorize_path")}" class="#{provider == :google_oauth2 ? 'btn-danger' : 'btn-default'}" + a.btn.btn-icon.btn-block href="#{public_send("user_#{provider}_omniauth_authorize_path")}" class="#{button_style}" i.fab class="fa-#{name.downcase}" = "使用 #{name} 账号登录" diff --git a/config/initializers/devise.rb b/config/initializers/devise.rb index e2aca235c..a9be55d14 100644 --- a/config/initializers/devise.rb +++ b/config/initializers/devise.rb @@ -289,13 +289,12 @@ scope: 'email,profile' end - # Google OAuth + # 飞书 if defined?(OmniAuth::Strategies::Feishu) && Rails.application.secrets[:feishu_enabled] feishu_app_id = Rails.application.secrets[:feishu_app_id] feishu_app_secret = Rails.application.secrets[:feishu_app_secret] - config.omniauth :feishu, feishu_app_id, feishu_app_secret end From 974b4bcedf82f9f3a1ecb64448732a00a18ab256 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 9 Jul 2021 06:14:24 +0000 Subject: [PATCH 0509/2165] chore(deps): bump app-info from 2.5.3 to 2.5.4 Bumps [app-info](https://github.com/icyleaf/app-info) from 2.5.3 to 2.5.4. - [Release notes](https://github.com/icyleaf/app-info/releases) - [Changelog](https://github.com/icyleaf/app_info/blob/master/CHANGELOG.md) - [Commits](https://github.com/icyleaf/app-info/compare/v2.5.3...v2.5.4) --- updated-dependencies: - dependency-name: app-info dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Gemfile b/Gemfile index 1d58d3937..532b7a42c 100644 --- a/Gemfile +++ b/Gemfile @@ -79,7 +79,7 @@ gem 'turbolinks', '~> 5' gem 'webpacker', '~> 5.4' # 用于解析 ipa 和 apk 包 -gem 'app-info', '~> 2.5.3' +gem 'app-info', '~> 2.5.4' # Mobile config gem 'rails-settings-cached', '~> 2.5.2' diff --git a/Gemfile.lock b/Gemfile.lock index 537a19534..2b1a2332f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -73,10 +73,10 @@ GEM zeitwerk (~> 2.3) addressable (2.8.0) public_suffix (>= 2.0.2, < 5.0) - app-info (2.5.3) + app-info (2.5.4) CFPropertyList (>= 2.3.4, < 3.1.0) image_size (>= 1.5, < 2.2) - ruby-macho (~> 2.2.0) + ruby-macho (>= 1.4, < 3) ruby_android (~> 0.7.7) rubyzip (>= 1.2, < 3.0) uuidtools (>= 2.1.5, < 2.3.0) @@ -394,7 +394,7 @@ GEM rubocop (>= 1.7.0, < 2.0) ruby-debug-ide (0.7.2) rake (>= 0.8.1) - ruby-macho (2.2.0) + ruby-macho (2.5.1) ruby-progressbar (1.11.0) ruby-vips (2.1.2) ffi (~> 1.12) @@ -499,7 +499,7 @@ DEPENDENCIES active_analytics active_model_serializers (~> 0.10.12) activejob-status - app-info (~> 2.5.3) + app-info (~> 2.5.4) awesome_print better_errors binding_of_caller From 535d4c85290b356249e60d594f3ce04292acfe7d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 9 Jul 2021 06:15:26 +0000 Subject: [PATCH 0510/2165] chore(deps): bump sentry-sidekiq from 4.6.0 to 4.6.1 Bumps [sentry-sidekiq](https://github.com/getsentry/sentry-ruby) from 4.6.0 to 4.6.1. - [Release notes](https://github.com/getsentry/sentry-ruby/releases) - [Changelog](https://github.com/getsentry/sentry-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-ruby/compare/4.6.0...4.6.1) --- updated-dependencies: - dependency-name: sentry-sidekiq dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 64 ++++++++++++++++++++++++++++------------------------ 1 file changed, 35 insertions(+), 29 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 38ea6c758..541b44b7e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -71,7 +71,7 @@ GEM minitest (>= 5.1) tzinfo (~> 2.0) zeitwerk (~> 2.3) - addressable (2.7.0) + addressable (2.8.0) public_suffix (>= 2.0.2, < 5.0) app-info (2.5.3) CFPropertyList (>= 2.3.4, < 3.1.0) @@ -104,15 +104,17 @@ GEM ssrf_filter (~> 1.0) case_transform (0.2) activesupport + chef-utils (17.2.29) + concurrent-ruby chunky_png (1.4.0) coderay (1.1.3) concurrent-ruby (1.1.9) - connection_pool (2.2.3) + connection_pool (2.2.5) crass (1.0.6) debase (0.2.4.1) debase-ruby_core_source (>= 0.10.2) - debase-ruby_core_source (0.10.9) - debug_inspector (1.0.0) + debase-ruby_core_source (0.10.12) + debug_inspector (1.1.0) devise (4.8.0) bcrypt (~> 3.0) orm_adapter (~> 0.1) @@ -148,11 +150,11 @@ GEM faraday-net_http (1.0.1) faraday-net_http_persistent (1.1.0) faraday-patron (1.0.0) - ffi (1.15.1) + ffi (1.15.3) ffi-compiler (1.0.1) ffi (>= 1.0.0) rake - formatador (0.2.5) + formatador (0.3.0) friendly_id (5.4.2) activerecord (>= 4.0.0) fugit (1.5.0) @@ -196,11 +198,11 @@ GEM hashie (4.1.0) health_check (3.1.0) railties (>= 5.0) - http (5.0.0) + http (5.0.1) addressable (~> 2.3) http-cookie (~> 1.0) http-form_data (~> 2.2) - llhttp-ffi (~> 0.0.1) + llhttp-ffi (~> 0.3.0) http-cookie (1.0.4) domain_name (~> 0.5) http-form_data (2.3.0) @@ -209,7 +211,7 @@ GEM image_processing (1.12.1) mini_magick (>= 4.9.5, < 5) ruby-vips (>= 2.0.17, < 3) - image_size (2.1.0) + image_size (2.1.1) interception (0.5) jb (0.8.0) jenkins_api_client (1.5.3) @@ -219,9 +221,9 @@ GEM socksify (>= 1.7.0) terminal-table (>= 1.4.0) thor (>= 0.16.0) - json (2.3.0) + json (2.5.1) jsonapi-renderer (0.2.2) - jwt (2.2.2) + jwt (2.2.3) kaminari (1.2.1) activesupport (>= 4.1.0) kaminari-actionview (= 1.2.1) @@ -245,7 +247,7 @@ GEM listen (3.5.1) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) - llhttp-ffi (0.0.1) + llhttp-ffi (0.3.1) ffi-compiler (~> 1.0) rake (~> 13.0) loofah (2.10.0) @@ -260,13 +262,14 @@ GEM mini_mime (1.1.0) mini_portile2 (2.5.3) minitest (5.14.4) - mixlib-shellout (3.0.7) + mixlib-shellout (3.2.5) + chef-utils msgpack (1.4.2) multi_json (1.15.0) multi_xml (0.6.0) multipart-post (2.1.1) nenv (0.3.0) - net-ldap (0.16.3) + net-ldap (0.17.0) nio4r (2.5.7) nokogiri (1.11.7) mini_portile2 (~> 2.5.0) @@ -274,7 +277,7 @@ GEM notiffany (0.1.3) nenv (~> 0.1) shellany (~> 0.0) - oauth2 (1.4.4) + oauth2 (1.4.7) faraday (>= 0.8, < 2.0) jwt (>= 1.0, < 3.0) multi_json (~> 1.3) @@ -283,14 +286,16 @@ GEM omniauth (1.9.1) hashie (>= 3.4.6) rack (>= 1.6.2, < 3) + omniauth-feishu (0.1.6) + omniauth-oauth2 (~> 1.6.0) omniauth-google-oauth2 (0.8.2) jwt (>= 2.0) oauth2 (~> 1.1) omniauth (~> 1.1) omniauth-oauth2 (>= 1.6) - omniauth-oauth2 (1.7.1) - oauth2 (~> 1.4) - omniauth (>= 1.9, < 3) + omniauth-oauth2 (1.6.0) + oauth2 (~> 1.1) + omniauth (~> 1.9) openssl (2.2.0) orm_adapter (0.5.0) parallel (1.20.1) @@ -349,7 +354,7 @@ GEM rails-i18n (6.0.0) i18n (>= 0.7, < 2) railties (>= 6.0.0, < 7) - rails-settings-cached (2.5.2) + rails-settings-cached (2.5.3) rails (>= 5.0.0) railties (6.1.4) actionpack (= 6.1.4) @@ -371,8 +376,8 @@ GEM rqrcode (2.0.0) chunky_png (~> 1.0) rqrcode_core (~> 1.0) - rqrcode_core (1.0.0) - rubocop (1.16.0) + rqrcode_core (1.1.0) + rubocop (1.18.3) parallel (~> 1.10) parser (>= 3.0.0.0) rainbow (>= 2.2.2, < 4.0) @@ -383,7 +388,7 @@ GEM unicode-display_width (>= 1.4.0, < 3.0) rubocop-ast (1.7.0) parser (>= 3.0.1.1) - rubocop-rails (2.10.1) + rubocop-rails (2.11.2) activesupport (>= 4.2.0) rack (>= 1.1) rubocop (>= 1.7.0, < 2.0) @@ -396,8 +401,8 @@ GEM ruby2_keywords (0.0.4) ruby_android (0.7.7) rubyzip (>= 1.1.6) - rubyntlm (0.6.2) - rubyzip (2.3.0) + rubyntlm (0.6.3) + rubyzip (2.3.2) rufus-scheduler (3.7.0) fugit (~> 1.1, >= 1.1.6) semantic_range (3.0.0) @@ -411,7 +416,7 @@ GEM sentry-ruby-core (4.6.0) concurrent-ruby faraday - sentry-sidekiq (4.6.0) + sentry-sidekiq (4.6.1) sentry-ruby-core (~> 4.6.0) shellany (0.0.1) sidekiq (6.2.1) @@ -428,7 +433,7 @@ GEM simple_form (5.1.0) actionpack (>= 5.2) activemodel (>= 5.2) - slim (4.0.1) + slim (4.1.0) temple (>= 0.7.6, < 0.9) tilt (>= 2.0.6, < 2.1) slim-rails (3.2.0) @@ -453,8 +458,8 @@ GEM temple (0.8.2) terminal-notifier (2.0.0) terminal-notifier-guard (1.7.0) - terminal-table (1.8.0) - unicode-display_width (~> 1.1, >= 1.1.1) + terminal-table (3.0.1) + unicode-display_width (>= 1.1.1, < 3) thor (1.1.0) thwait (0.2.0) e2mmap @@ -467,7 +472,7 @@ GEM unf (0.1.4) unf_ext unf_ext (0.0.7.7) - unicode-display_width (1.7.0) + unicode-display_width (2.0.0) uuidtools (2.2.0) vmstat (2.3.1) warden (1.2.9) @@ -523,6 +528,7 @@ DEPENDENCIES letter_opener_web (~> 1.4) listen (>= 3.0.5, < 3.6) omniauth (~> 1.9) + omniauth-feishu (~> 0.1.6) omniauth-google-oauth2 (~> 0.8.2) openssl (~> 2.2.0) pg (>= 0.18, < 2.0) From 75ed0c52a6aa1273de3ff60fc34029c816d92e13 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 9 Jul 2021 06:15:43 +0000 Subject: [PATCH 0511/2165] chore(deps): bump sentry-ruby from 4.6.0 to 4.6.1 Bumps [sentry-ruby](https://github.com/getsentry/sentry-ruby) from 4.6.0 to 4.6.1. - [Release notes](https://github.com/getsentry/sentry-ruby/releases) - [Changelog](https://github.com/getsentry/sentry-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-ruby/compare/4.6.0...4.6.1) --- updated-dependencies: - dependency-name: sentry-ruby dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 68 ++++++++++++++++++++++++++++------------------------ 1 file changed, 37 insertions(+), 31 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 38ea6c758..2b601d5fd 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -71,7 +71,7 @@ GEM minitest (>= 5.1) tzinfo (~> 2.0) zeitwerk (~> 2.3) - addressable (2.7.0) + addressable (2.8.0) public_suffix (>= 2.0.2, < 5.0) app-info (2.5.3) CFPropertyList (>= 2.3.4, < 3.1.0) @@ -104,15 +104,17 @@ GEM ssrf_filter (~> 1.0) case_transform (0.2) activesupport + chef-utils (17.2.29) + concurrent-ruby chunky_png (1.4.0) coderay (1.1.3) concurrent-ruby (1.1.9) - connection_pool (2.2.3) + connection_pool (2.2.5) crass (1.0.6) debase (0.2.4.1) debase-ruby_core_source (>= 0.10.2) - debase-ruby_core_source (0.10.9) - debug_inspector (1.0.0) + debase-ruby_core_source (0.10.12) + debug_inspector (1.1.0) devise (4.8.0) bcrypt (~> 3.0) orm_adapter (~> 0.1) @@ -148,11 +150,11 @@ GEM faraday-net_http (1.0.1) faraday-net_http_persistent (1.1.0) faraday-patron (1.0.0) - ffi (1.15.1) + ffi (1.15.3) ffi-compiler (1.0.1) ffi (>= 1.0.0) rake - formatador (0.2.5) + formatador (0.3.0) friendly_id (5.4.2) activerecord (>= 4.0.0) fugit (1.5.0) @@ -196,11 +198,11 @@ GEM hashie (4.1.0) health_check (3.1.0) railties (>= 5.0) - http (5.0.0) + http (5.0.1) addressable (~> 2.3) http-cookie (~> 1.0) http-form_data (~> 2.2) - llhttp-ffi (~> 0.0.1) + llhttp-ffi (~> 0.3.0) http-cookie (1.0.4) domain_name (~> 0.5) http-form_data (2.3.0) @@ -209,7 +211,7 @@ GEM image_processing (1.12.1) mini_magick (>= 4.9.5, < 5) ruby-vips (>= 2.0.17, < 3) - image_size (2.1.0) + image_size (2.1.1) interception (0.5) jb (0.8.0) jenkins_api_client (1.5.3) @@ -219,9 +221,9 @@ GEM socksify (>= 1.7.0) terminal-table (>= 1.4.0) thor (>= 0.16.0) - json (2.3.0) + json (2.5.1) jsonapi-renderer (0.2.2) - jwt (2.2.2) + jwt (2.2.3) kaminari (1.2.1) activesupport (>= 4.1.0) kaminari-actionview (= 1.2.1) @@ -245,7 +247,7 @@ GEM listen (3.5.1) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) - llhttp-ffi (0.0.1) + llhttp-ffi (0.3.1) ffi-compiler (~> 1.0) rake (~> 13.0) loofah (2.10.0) @@ -260,13 +262,14 @@ GEM mini_mime (1.1.0) mini_portile2 (2.5.3) minitest (5.14.4) - mixlib-shellout (3.0.7) + mixlib-shellout (3.2.5) + chef-utils msgpack (1.4.2) multi_json (1.15.0) multi_xml (0.6.0) multipart-post (2.1.1) nenv (0.3.0) - net-ldap (0.16.3) + net-ldap (0.17.0) nio4r (2.5.7) nokogiri (1.11.7) mini_portile2 (~> 2.5.0) @@ -274,7 +277,7 @@ GEM notiffany (0.1.3) nenv (~> 0.1) shellany (~> 0.0) - oauth2 (1.4.4) + oauth2 (1.4.7) faraday (>= 0.8, < 2.0) jwt (>= 1.0, < 3.0) multi_json (~> 1.3) @@ -283,14 +286,16 @@ GEM omniauth (1.9.1) hashie (>= 3.4.6) rack (>= 1.6.2, < 3) + omniauth-feishu (0.1.6) + omniauth-oauth2 (~> 1.6.0) omniauth-google-oauth2 (0.8.2) jwt (>= 2.0) oauth2 (~> 1.1) omniauth (~> 1.1) omniauth-oauth2 (>= 1.6) - omniauth-oauth2 (1.7.1) - oauth2 (~> 1.4) - omniauth (>= 1.9, < 3) + omniauth-oauth2 (1.6.0) + oauth2 (~> 1.1) + omniauth (~> 1.9) openssl (2.2.0) orm_adapter (0.5.0) parallel (1.20.1) @@ -349,7 +354,7 @@ GEM rails-i18n (6.0.0) i18n (>= 0.7, < 2) railties (>= 6.0.0, < 7) - rails-settings-cached (2.5.2) + rails-settings-cached (2.5.3) rails (>= 5.0.0) railties (6.1.4) actionpack (= 6.1.4) @@ -371,8 +376,8 @@ GEM rqrcode (2.0.0) chunky_png (~> 1.0) rqrcode_core (~> 1.0) - rqrcode_core (1.0.0) - rubocop (1.16.0) + rqrcode_core (1.1.0) + rubocop (1.18.3) parallel (~> 1.10) parser (>= 3.0.0.0) rainbow (>= 2.2.2, < 4.0) @@ -383,7 +388,7 @@ GEM unicode-display_width (>= 1.4.0, < 3.0) rubocop-ast (1.7.0) parser (>= 3.0.1.1) - rubocop-rails (2.10.1) + rubocop-rails (2.11.2) activesupport (>= 4.2.0) rack (>= 1.1) rubocop (>= 1.7.0, < 2.0) @@ -396,19 +401,19 @@ GEM ruby2_keywords (0.0.4) ruby_android (0.7.7) rubyzip (>= 1.1.6) - rubyntlm (0.6.2) - rubyzip (2.3.0) + rubyntlm (0.6.3) + rubyzip (2.3.2) rufus-scheduler (3.7.0) fugit (~> 1.1, >= 1.1.6) semantic_range (3.0.0) sentry-rails (4.6.0) railties (>= 5.0) sentry-ruby-core (~> 4.6.0) - sentry-ruby (4.6.0) + sentry-ruby (4.6.1) concurrent-ruby (~> 1.0, >= 1.0.2) faraday (>= 1.0) - sentry-ruby-core (= 4.6.0) - sentry-ruby-core (4.6.0) + sentry-ruby-core (= 4.6.1) + sentry-ruby-core (4.6.1) concurrent-ruby faraday sentry-sidekiq (4.6.0) @@ -428,7 +433,7 @@ GEM simple_form (5.1.0) actionpack (>= 5.2) activemodel (>= 5.2) - slim (4.0.1) + slim (4.1.0) temple (>= 0.7.6, < 0.9) tilt (>= 2.0.6, < 2.1) slim-rails (3.2.0) @@ -453,8 +458,8 @@ GEM temple (0.8.2) terminal-notifier (2.0.0) terminal-notifier-guard (1.7.0) - terminal-table (1.8.0) - unicode-display_width (~> 1.1, >= 1.1.1) + terminal-table (3.0.1) + unicode-display_width (>= 1.1.1, < 3) thor (1.1.0) thwait (0.2.0) e2mmap @@ -467,7 +472,7 @@ GEM unf (0.1.4) unf_ext unf_ext (0.0.7.7) - unicode-display_width (1.7.0) + unicode-display_width (2.0.0) uuidtools (2.2.0) vmstat (2.3.1) warden (1.2.9) @@ -523,6 +528,7 @@ DEPENDENCIES letter_opener_web (~> 1.4) listen (>= 3.0.5, < 3.6) omniauth (~> 1.9) + omniauth-feishu (~> 0.1.6) omniauth-google-oauth2 (~> 0.8.2) openssl (~> 2.2.0) pg (>= 0.18, < 2.0) From 2f69357c09a449af757f9c2ff50a3caf01b27409 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 9 Jul 2021 06:16:06 +0000 Subject: [PATCH 0512/2165] chore(deps): bump sentry-rails from 4.6.0 to 4.6.1 Bumps [sentry-rails](https://github.com/getsentry/sentry-ruby) from 4.6.0 to 4.6.1. - [Release notes](https://github.com/getsentry/sentry-ruby/releases) - [Changelog](https://github.com/getsentry/sentry-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-ruby/compare/4.6.0...4.6.1) --- updated-dependencies: - dependency-name: sentry-rails dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 64 ++++++++++++++++++++++++++++------------------------ 1 file changed, 35 insertions(+), 29 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 38ea6c758..d33a8d642 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -71,7 +71,7 @@ GEM minitest (>= 5.1) tzinfo (~> 2.0) zeitwerk (~> 2.3) - addressable (2.7.0) + addressable (2.8.0) public_suffix (>= 2.0.2, < 5.0) app-info (2.5.3) CFPropertyList (>= 2.3.4, < 3.1.0) @@ -104,15 +104,17 @@ GEM ssrf_filter (~> 1.0) case_transform (0.2) activesupport + chef-utils (17.2.29) + concurrent-ruby chunky_png (1.4.0) coderay (1.1.3) concurrent-ruby (1.1.9) - connection_pool (2.2.3) + connection_pool (2.2.5) crass (1.0.6) debase (0.2.4.1) debase-ruby_core_source (>= 0.10.2) - debase-ruby_core_source (0.10.9) - debug_inspector (1.0.0) + debase-ruby_core_source (0.10.12) + debug_inspector (1.1.0) devise (4.8.0) bcrypt (~> 3.0) orm_adapter (~> 0.1) @@ -148,11 +150,11 @@ GEM faraday-net_http (1.0.1) faraday-net_http_persistent (1.1.0) faraday-patron (1.0.0) - ffi (1.15.1) + ffi (1.15.3) ffi-compiler (1.0.1) ffi (>= 1.0.0) rake - formatador (0.2.5) + formatador (0.3.0) friendly_id (5.4.2) activerecord (>= 4.0.0) fugit (1.5.0) @@ -196,11 +198,11 @@ GEM hashie (4.1.0) health_check (3.1.0) railties (>= 5.0) - http (5.0.0) + http (5.0.1) addressable (~> 2.3) http-cookie (~> 1.0) http-form_data (~> 2.2) - llhttp-ffi (~> 0.0.1) + llhttp-ffi (~> 0.3.0) http-cookie (1.0.4) domain_name (~> 0.5) http-form_data (2.3.0) @@ -209,7 +211,7 @@ GEM image_processing (1.12.1) mini_magick (>= 4.9.5, < 5) ruby-vips (>= 2.0.17, < 3) - image_size (2.1.0) + image_size (2.1.1) interception (0.5) jb (0.8.0) jenkins_api_client (1.5.3) @@ -219,9 +221,9 @@ GEM socksify (>= 1.7.0) terminal-table (>= 1.4.0) thor (>= 0.16.0) - json (2.3.0) + json (2.5.1) jsonapi-renderer (0.2.2) - jwt (2.2.2) + jwt (2.2.3) kaminari (1.2.1) activesupport (>= 4.1.0) kaminari-actionview (= 1.2.1) @@ -245,7 +247,7 @@ GEM listen (3.5.1) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) - llhttp-ffi (0.0.1) + llhttp-ffi (0.3.1) ffi-compiler (~> 1.0) rake (~> 13.0) loofah (2.10.0) @@ -260,13 +262,14 @@ GEM mini_mime (1.1.0) mini_portile2 (2.5.3) minitest (5.14.4) - mixlib-shellout (3.0.7) + mixlib-shellout (3.2.5) + chef-utils msgpack (1.4.2) multi_json (1.15.0) multi_xml (0.6.0) multipart-post (2.1.1) nenv (0.3.0) - net-ldap (0.16.3) + net-ldap (0.17.0) nio4r (2.5.7) nokogiri (1.11.7) mini_portile2 (~> 2.5.0) @@ -274,7 +277,7 @@ GEM notiffany (0.1.3) nenv (~> 0.1) shellany (~> 0.0) - oauth2 (1.4.4) + oauth2 (1.4.7) faraday (>= 0.8, < 2.0) jwt (>= 1.0, < 3.0) multi_json (~> 1.3) @@ -283,14 +286,16 @@ GEM omniauth (1.9.1) hashie (>= 3.4.6) rack (>= 1.6.2, < 3) + omniauth-feishu (0.1.6) + omniauth-oauth2 (~> 1.6.0) omniauth-google-oauth2 (0.8.2) jwt (>= 2.0) oauth2 (~> 1.1) omniauth (~> 1.1) omniauth-oauth2 (>= 1.6) - omniauth-oauth2 (1.7.1) - oauth2 (~> 1.4) - omniauth (>= 1.9, < 3) + omniauth-oauth2 (1.6.0) + oauth2 (~> 1.1) + omniauth (~> 1.9) openssl (2.2.0) orm_adapter (0.5.0) parallel (1.20.1) @@ -349,7 +354,7 @@ GEM rails-i18n (6.0.0) i18n (>= 0.7, < 2) railties (>= 6.0.0, < 7) - rails-settings-cached (2.5.2) + rails-settings-cached (2.5.3) rails (>= 5.0.0) railties (6.1.4) actionpack (= 6.1.4) @@ -371,8 +376,8 @@ GEM rqrcode (2.0.0) chunky_png (~> 1.0) rqrcode_core (~> 1.0) - rqrcode_core (1.0.0) - rubocop (1.16.0) + rqrcode_core (1.1.0) + rubocop (1.18.3) parallel (~> 1.10) parser (>= 3.0.0.0) rainbow (>= 2.2.2, < 4.0) @@ -383,7 +388,7 @@ GEM unicode-display_width (>= 1.4.0, < 3.0) rubocop-ast (1.7.0) parser (>= 3.0.1.1) - rubocop-rails (2.10.1) + rubocop-rails (2.11.2) activesupport (>= 4.2.0) rack (>= 1.1) rubocop (>= 1.7.0, < 2.0) @@ -396,12 +401,12 @@ GEM ruby2_keywords (0.0.4) ruby_android (0.7.7) rubyzip (>= 1.1.6) - rubyntlm (0.6.2) - rubyzip (2.3.0) + rubyntlm (0.6.3) + rubyzip (2.3.2) rufus-scheduler (3.7.0) fugit (~> 1.1, >= 1.1.6) semantic_range (3.0.0) - sentry-rails (4.6.0) + sentry-rails (4.6.1) railties (>= 5.0) sentry-ruby-core (~> 4.6.0) sentry-ruby (4.6.0) @@ -428,7 +433,7 @@ GEM simple_form (5.1.0) actionpack (>= 5.2) activemodel (>= 5.2) - slim (4.0.1) + slim (4.1.0) temple (>= 0.7.6, < 0.9) tilt (>= 2.0.6, < 2.1) slim-rails (3.2.0) @@ -453,8 +458,8 @@ GEM temple (0.8.2) terminal-notifier (2.0.0) terminal-notifier-guard (1.7.0) - terminal-table (1.8.0) - unicode-display_width (~> 1.1, >= 1.1.1) + terminal-table (3.0.1) + unicode-display_width (>= 1.1.1, < 3) thor (1.1.0) thwait (0.2.0) e2mmap @@ -467,7 +472,7 @@ GEM unf (0.1.4) unf_ext unf_ext (0.0.7.7) - unicode-display_width (1.7.0) + unicode-display_width (2.0.0) uuidtools (2.2.0) vmstat (2.3.1) warden (1.2.9) @@ -523,6 +528,7 @@ DEPENDENCIES letter_opener_web (~> 1.4) listen (>= 3.0.5, < 3.6) omniauth (~> 1.9) + omniauth-feishu (~> 0.1.6) omniauth-google-oauth2 (~> 0.8.2) openssl (~> 2.2.0) pg (>= 0.18, < 2.0) From 650917381a2b347a8b4850e51c0f2bf9b146e752 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 9 Jul 2021 17:33:11 +0800 Subject: [PATCH 0513/2165] feat: upgrade rails-settings-cached to 2.7.0 --- Gemfile | 2 +- Gemfile.lock | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index 532b7a42c..0aff8987f 100644 --- a/Gemfile +++ b/Gemfile @@ -82,7 +82,7 @@ gem 'webpacker', '~> 5.4' gem 'app-info', '~> 2.5.4' # Mobile config -gem 'rails-settings-cached', '~> 2.5.2' +gem 'rails-settings-cached', '~> 2.7.0' # Reduces boot times through caching; required in config/boot.rb gem 'bootsnap', '>= 1.4.7', require: false diff --git a/Gemfile.lock b/Gemfile.lock index b6e8dbd25..dc81e14c8 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -354,7 +354,7 @@ GEM rails-i18n (6.0.0) i18n (>= 0.7, < 2) railties (>= 6.0.0, < 7) - rails-settings-cached (2.5.3) + rails-settings-cached (2.7.0) rails (>= 5.0.0) railties (6.1.4) actionpack (= 6.1.4) @@ -363,7 +363,7 @@ GEM rake (>= 0.13) thor (~> 1.0) rainbow (3.0.0) - rake (13.0.4) + rake (13.0.6) rb-fsevent (0.11.0) rb-inotify (0.10.1) ffi (~> 1.0) @@ -542,7 +542,7 @@ DEPENDENCIES rack-cors (~> 1.1.1) rails (~> 6.1.4) rails-i18n (~> 6.0.0) - rails-settings-cached (~> 2.5.2) + rails-settings-cached (~> 2.7.0) rake (~> 13.0.4) redis (~> 4.3.1) rqrcode From 57640fba0e504bed853a57a41bfba92612941641 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 9 Jul 2021 17:42:16 +0800 Subject: [PATCH 0514/2165] =?UTF-8?q?refactor:=20=E9=87=8D=E6=9E=84?= =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E8=AE=BE=E7=BD=AE=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/admin/settings_controller.rb | 3 +- .../admin/system_info_controller.rb | 28 +--- app/models/setting.rb | 124 +++++++++++------- app/views/admin/settings/_form.html.slim | 14 +- app/views/admin/settings/index.html.slim | 9 +- config/locales/zealot/zh-CN.yml | 15 ++- 6 files changed, 111 insertions(+), 82 deletions(-) diff --git a/app/controllers/admin/settings_controller.rb b/app/controllers/admin/settings_controller.rb index 72790fe68..f3a188f36 100644 --- a/app/controllers/admin/settings_controller.rb +++ b/app/controllers/admin/settings_controller.rb @@ -15,7 +15,8 @@ def edit def update if @setting.value != setting_param[:value] @setting.value = setting_param[:value] - @setting.save + return render :edit unless @setting.save + redirect_to admin_settings_path, notice: "保存成功." else redirect_to admin_settings_path diff --git a/app/controllers/admin/system_info_controller.rb b/app/controllers/admin/system_info_controller.rb index 75a222638..ca39a8a0b 100644 --- a/app/controllers/admin/system_info_controller.rb +++ b/app/controllers/admin/system_info_controller.rb @@ -33,28 +33,6 @@ class Admin::SystemInfoController < ApplicationController 'vfat' ] - HIDDEN_ENV_VALUES = [ - 'token', - 'key', - 'password', - 'api_key', - 'client_key', - 'secret' - ] - - EXCLUDED_ENV_KEYS = [ - 'SHELL', - 'TERM', - 'USER', - 'EDITOR', - 'PWD', - 'PATH', - 'LANG', - 'HOME', - 'GEM_HOME', - '_' - ] - # GET /admin/system_info def index @title = '系统信息' @@ -83,11 +61,7 @@ def set_memory def set_env @env = ENV.each_with_object({}) do |(key, value), obj| - obj[key] = if HIDDEN_ENV_VALUES.select { |k| key.downcase.include?(k) }.blank? - value - else - '*' * 10 - end + obj[key] = value end.sort end diff --git a/app/models/setting.rb b/app/models/setting.rb index 4e14fc177..431a9c2d9 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -2,71 +2,101 @@ # RailsSettings Model class Setting < RailsSettings::Base - SITE_KEYS = { - general: %w[ - site_title - ], - visits: %w[ - registrations_mode - ], - mail: %w[ - mailer_default_from - mailer_default_to - mailer_options - ] - } - cache_prefix { 'v1' } # 系统配置 - field :site_title, default: 'Zealot', type: :string - field :site_https, default: (Rails.env.production? || ENV['ZEALOT_USE_HTTPS'].present?), type: :boolean, readonly: true - field :site_domain, default: (ENV['ZEALOT_DOMAIN'] || (site_https ? 'localhost' : "localhost:#{ENV['ZEALOT_PORT'] || 3000}")), type: :string, readonly: true + scope :general do + field :site_title, default: 'Zealot', type: :string, validates: { presence: true, length: { in: 3..16 } }, display: true + field :site_https, default: (Rails.env.production? || ENV['ZEALOT_USE_HTTPS'].present?), type: :boolean, readonly: true + field :site_domain, default: (ENV['ZEALOT_DOMAIN'] || (site_https ? 'localhost' : "localhost:#{ENV['ZEALOT_PORT'] || 3000}")), type: :string, readonly: true + end - # 模式 - field :registrations_mode, default: (ENV['ZEALOT_REGISTER_ENABLED'] || 'true'), type: :boolean - field :guest_mode, default: (ENV['ZEALOT_GUEST_MODE'] || 'false'), type: :boolean, readonly: true + # 模式开关 + scope :switch_mode do + field :registrations_mode, default: (ENV['ZEALOT_REGISTER_ENABLED'] || 'true'), type: :boolean, display: true + field :guest_mode, default: (ENV['ZEALOT_GUEST_MODE'] || 'false'), type: :boolean, readonly: true, display: true + field :demo_mode, default: (ENV['ZEALOT_DEMO_MODE'] || 'false'), type: :boolean, readonly: true, display: true + end - # 邮件配置 - field :mailer_default_from, default: ENV['ACTION_MAILER_DEFAULT_FROM'], type: :string - field :mailer_default_to, default: ENV['ACTION_MAILER_DEFAULT_TO'], type: :string - field :mailer_options, type: :hash, readonly: true, default: { - address: ENV['SMTP_ADDRESS'], - port: ENV['SMTP_PORT'].to_i, - domain: ENV['SMTP_DOMAIN'], - username: ENV['SMTP_USERNAME'], - password: ENV['SMTP_PASSWORD'], - auth_method: ENV['SMTP_AUTH_METHOD'], - enable_starttls_auto: ENV['SMTP_ENABLE_STARTTLS_AUTO'], - } + # 上传文件保留策略 + scope :limits do + field :keep_uploads, default: (ENV['ZEALOT_KEEP_UPLOADS'] || 'false'), type: :boolean, readonly: true + end - # 系统信息(只读) - field :demo_mode, default: (ENV['ZEALOT_DEMO_MODE'] || 'false'), type: :boolean, readonly: true - field :keep_uploads, default: (ENV['ZEALOT_KEEP_UPLOADS'] || 'false'), type: :boolean, readonly: true + # 第三方登录 + scope :third_party_auth do + field :ldap, type: :hash, readonly: true, display: true, default: { + enabled: ENV['LDAP_ENABLED'] || false, + host: ENV['LDAP_HOST'], + port: ENV['LDAP_PORT'], + method: ENV['LDAP_METHOD'], + base_dn: ENV['LDAP_BASE_DN'], + password: ENV['LDAP_PASSWORD'], + base: ENV['LDAP_BASE'], + uid: ENV['LDAP_UID'], + } + + field :feishu, type: :hash, readonly: true, display: true, default: { + enabled: ENV['FEISHU_ENABLED'] || false, + app_id: ENV['FEISHU_APP_ID'], + app_secret: ENV['FEISHU_APP_SECRET'], + } + + field :google_oauth, type: :hash, readonly: true, display: true, default: { + enabled: ENV['GOOGLE_OAUTH_ENABLED'] || false, + client_id: ENV['GOOGLE_CLIENT_ID'], + secret: ENV['GOOGLE_SECRET'], + } + end - field :version, default: (ENV['ZEALOT_VERSION'] || 'development'), type: :string, readonly: true - field :vcs_ref, default: (ENV['ZEALOT_VCS_REF']), type: :string, readonly: true - field :version, default: (ENV['ZEALOT_VERSION'] || 'development'), type: :string, readonly: true - field :build_date, default: ENV['BUILD_DATE'], type: :string, readonly: true + # 邮件配置 + scope :stmp do + field :mailer_default_from, default: ENV['ACTION_MAILER_DEFAULT_FROM'], type: :string, display: true + field :mailer_default_to, default: ENV['ACTION_MAILER_DEFAULT_TO'], type: :string, display: true + field :mailer_options, type: :hash, readonly: true, default: { + address: ENV['SMTP_ADDRESS'], + port: ENV['SMTP_PORT'].to_i, + domain: ENV['SMTP_DOMAIN'], + username: ENV['SMTP_USERNAME'], + password: ENV['SMTP_PASSWORD'], + auth_method: ENV['SMTP_AUTH_METHOD'], + enable_starttls_auto: ENV['SMTP_ENABLE_STARTTLS_AUTO'], + }, display: true + end - field :backup, type: :hash, readonly: true, default: { + # 备份 + field :backup, type: :hash, readonly: true, display: true, default: { path: 'public/backup', keep_time: 604800, pg_schema: 'public', } + + # 系统信息(只读) + scope :information do + field :version, default: (ENV['ZEALOT_VERSION'] || 'development'), type: :string, readonly: true + field :vcs_ref, default: (ENV['ZEALOT_VCS_REF']), type: :string, readonly: true + field :version, default: (ENV['ZEALOT_VERSION'] || 'development'), type: :string, readonly: true + field :build_date, default: ENV['BUILD_DATE'], type: :string, readonly: true + end + class << self + def site_configs + group_configs.each_with_object({}) do |(scope, items), obj| + obj[scope] = items.each_with_object({}) do |item, inner| + key = item[:key] + value = Setting.send(key.to_sym) + inner[key] = value + end + end + end + def find_or_default(var:) find_by(var: var) || new(var: var) end - def site_configs - SITE_KEYS.each_with_object({}) do |(section, keys), obj| - obj[section] = {} - keys.each do |key| - obj[section][key] = Setting.send(key.to_sym) - end - end + def group_configs + defined_fields.select { |v| v[:options][:display] == true }.group_by { |v| v[:scope] || :misc } end end end diff --git a/app/views/admin/settings/_form.html.slim b/app/views/admin/settings/_form.html.slim index 30e2074aa..590ea23d8 100644 --- a/app/views/admin/settings/_form.html.slim +++ b/app/views/admin/settings/_form.html.slim @@ -8,11 +8,21 @@ ruby: .card .card-header h3.card-title = t("admin.settings.#{key}") + .card-tools + a href="#{admin_settings_path}" + i.far.fa-list-alt + | 返回系统配置 + = simple_form_for(@setting, url: admin_setting_path(key), method: :patch) do |f| .card-body - = f.error_notification + - if @setting.errors.size > 0 + .callout.callout-danger + h5 = t('activerecord.errors.models.setting.default_message', key: t("admin.settings.#{key}")) + ul style="margin-bottom: 0" + - @setting.errors.each do |error| + li = error.message - if type == :boolean - = f.input :value, label: '开启', as: :boolean, checked: true + = f.input :value, label: '开启', as: :boolean, checked: type - elsif type == :hash = f.text_area :value, value: JSON.pretty_generate(value), class: 'form-control', rows: 15 - else diff --git a/app/views/admin/settings/index.html.slim b/app/views/admin/settings/index.html.slim index 90cf3cb65..9a88a086a 100644 --- a/app/views/admin/settings/index.html.slim +++ b/app/views/admin/settings/index.html.slim @@ -5,15 +5,18 @@ = @title form.form-horizontal - - @settings.each do |section, keys| + - @settings.each do |scope, keys| .row .col-md-12 .card.system_info .card-header - h3.card-title = t("admin.settings.#{section}") + h3.card-title = t("admin.settings.#{scope}") .card-body - keys.each do |key, value| + ruby: + display_value = value.is_a?(Hash) ? JSON.pretty_generate(value) : ((value != false && value.blank?) ? t('admin.settings.empty_value') : value.to_s) dl.system-info dt = t("admin.settings.#{key}") dd - pre = link_to value.blank? ? t('admin.settings.empty_value') : value.to_s, edit_admin_setting_path(key) + pre + = link_to display_value, edit_admin_setting_path(key) \ No newline at end of file diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index bfda198f2..1d9057e7c 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -6,11 +6,20 @@ zh-CN: site_https: 站点启用 HTTPS site_domain: 站点域名 - visits: 访问模式 + switch_mode: 模式开关 registrations_mode: 注册模式 guest_mode: 开启游客模式 + demo_mode: 演示模式(定时恢复默认数据) - mail: 邮件配置 + third_party_auth: 第三方登录 + ldap: LDAP + feishu: 飞书 + google_oauth: Google OAuth + + backup: 备份 + misc: 杂项 + + stmp: 邮件配置 mailer_default_from: 默认邮件发件地址 mailer_default_to: 默认邮件发件人 @@ -64,6 +73,8 @@ zh-CN: activerecord: errors: models: + setting: + default_message: "请检查 '%{key}' 的如下问题:" debug_file: attributes: app_id: From b0c7f346d0e19e7d8e257ced0dc330b2d1787c19 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 9 Jul 2021 18:03:01 +0800 Subject: [PATCH 0515/2165] =?UTF-8?q?refactor:=20=E7=AC=AC=E4=B8=89?= =?UTF-8?q?=E6=96=B9=E7=99=BB=E5=BD=95=E5=8F=82=E6=95=B0=E5=8F=8A=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E5=9C=B0=E6=96=B9=E6=9B=B4=E6=96=B0=E5=88=B0=20Settin?= =?UTF-8?q?g=20=E5=8F=96=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/demomode_helper.rb | 2 +- app/models/concerns/user_omniauth.rb | 10 ++--- app/models/setting.rb | 3 ++ app/services/create_admin_service.rb | 6 +-- config/initializers/devise.rb | 55 ++++++++-------------------- config/secrets.yml | 28 +------------- 6 files changed, 27 insertions(+), 77 deletions(-) diff --git a/app/helpers/demomode_helper.rb b/app/helpers/demomode_helper.rb index afdf4d3e2..c459fdbfb 100644 --- a/app/helpers/demomode_helper.rb +++ b/app/helpers/demomode_helper.rb @@ -11,7 +11,7 @@ def demo_mode? end def default_admin?(user) - user.email == Rails.application.secrets.admin_email + user.email == Setting.admin_email end def default_admin_in_demo_mode?(user) diff --git a/app/models/concerns/user_omniauth.rb b/app/models/concerns/user_omniauth.rb index 0ecf110d2..ebb91be79 100644 --- a/app/models/concerns/user_omniauth.rb +++ b/app/models/concerns/user_omniauth.rb @@ -33,18 +33,14 @@ def enabled?(name) end def enabled_google_oauth2? - defined?(OmniAuth::Strategies::GoogleOauth2) && secrets[:google_oauth_enabled] + defined?(OmniAuth::Strategies::GoogleOauth2) && Setting.google_oauth[:enabled] end def enabled_ldap? - defined?(OmniAuth::Strategies::LDAP) && secrets[:ldap_enabled] + defined?(OmniAuth::Strategies::LDAP) && Setting.ldap[:enabled] end def enabled_feishu? - defined?(OmniAuth::Strategies::Feishu) && secrets[:feishu_enabled] - end - - def secrets - Rails.application.secrets + defined?(OmniAuth::Strategies::Feishu) && Setting.feishu[:enabled] end end diff --git a/app/models/setting.rb b/app/models/setting.rb index 431a9c2d9..27b2e53ea 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -9,6 +9,9 @@ class Setting < RailsSettings::Base field :site_title, default: 'Zealot', type: :string, validates: { presence: true, length: { in: 3..16 } }, display: true field :site_https, default: (Rails.env.production? || ENV['ZEALOT_USE_HTTPS'].present?), type: :boolean, readonly: true field :site_domain, default: (ENV['ZEALOT_DOMAIN'] || (site_https ? 'localhost' : "localhost:#{ENV['ZEALOT_PORT'] || 3000}")), type: :string, readonly: true + + field :admin_email, default: (ENV['ZEALOT_ADMIN_EMAIL'] || 'admin@zealot.com'), type: :string, readonly: true + field :admin_password, default: (ENV['ZEALOT_ADMIN_PASSWORD'] || 'ze@l0t'), type: :string, readonly: true end # 模式开关 diff --git a/app/services/create_admin_service.rb b/app/services/create_admin_service.rb index 487867fe4..206528f1f 100644 --- a/app/services/create_admin_service.rb +++ b/app/services/create_admin_service.rb @@ -2,10 +2,10 @@ class CreateAdminService def call - User.find_or_create_by!(email: Rails.application.secrets.admin_email) do |user| + User.find_or_create_by!(email: Setting.admin_email) do |user| user.username = '管理员' - user.password = Rails.application.secrets.admin_password - user.password_confirmation = Rails.application.secrets.admin_password + user.password = Setting.admin_password + user.password_confirmation = Setting.admin_password user.role = :admin user.confirmed_at = Time.current end diff --git a/config/initializers/devise.rb b/config/initializers/devise.rb index a9be55d14..f8571b80d 100644 --- a/config/initializers/devise.rb +++ b/config/initializers/devise.rb @@ -115,9 +115,6 @@ # Send a notification email when the user's password is changed config.send_password_change_notification = true - # Send a notification email when the user's password is changed - config.send_password_change_notification = true - # ==> Configuration for :confirmable # A period that the user is allowed to access the website even without # confirming their account. For instance, if set to 2.days, the user will be @@ -274,49 +271,27 @@ # config.omniauth :github, 'APP_ID', 'APP_SECRET', scope: 'user,public_repo' # Google OAuth - if defined?(OmniAuth::Strategies::GoogleOauth2) && - Rails.application.secrets[:google_oauth_enabled] - - google_client_id = Rails.application.secrets[:google_client_id] - google_secret = Rails.application.secrets[:google_secret] - - config.omniauth :google_oauth2, - google_client_id, - google_secret, - skip_jwt: true, - prompt: 'select_account', - access_type: 'offline', + google_oauth = Setting.google_oauth + if defined?(OmniAuth::Strategies::GoogleOauth2) && google_oauth[:enabled] + config.omniauth :google_oauth2, google_oauth[:client_id], google_oauth[:secret], + skip_jwt: true, prompt: 'select_account', access_type: 'offline', scope: 'email,profile' end # 飞书 - if defined?(OmniAuth::Strategies::Feishu) && - Rails.application.secrets[:feishu_enabled] - - feishu_app_id = Rails.application.secrets[:feishu_app_id] - feishu_app_secret = Rails.application.secrets[:feishu_app_secret] - config.omniauth :feishu, feishu_app_id, feishu_app_secret + feishu = Setting.feishu + if defined?(OmniAuth::Strategies::Feishu) && feishu[:enabled] + config.omniauth :feishu, feishu[:app_id], feishu[:app_secret] end - +[] # LDAP - if defined?(OmniAuth::Strategies::LDAP) && - Rails.application.secrets[:ldap_enabled] - - ldap_host = Rails.application.secrets[:ldap_host] - ldap_port = Rails.application.secrets[:ldap_port] - ldap_method = (Rails.application.secrets[:ldap_method] || 'plain').to_sym - ldap_base_dn = Rails.application.secrets[:ldap_base_dn] - ldap_password = Rails.application.secrets[:ldap_password] - ldap_base = Rails.application.secrets[:ldap_base] - ldap_uid = Rails.application.secrets[:ldap_uid] - + ldap = Setting.ldap + if defined?(OmniAuth::Strategies::LDAP) && ldap[:ldap_enabled] config.omniauth :ldap, title: 'Zealot LDAP 认证登录', - host: ldap_host, - port: ldap_port, - method: ldap_method, - bind_dn: ldap_base_dn, - password: ldap_password, - base: ldap_base, - uid: ldap_uid + host: ldap[:ldap_host], port: ldap[:ldap_port], + method: (ldap[:ldap_method] || 'plain').to_sym, + bind_dn: ldap[:ldap_base_dn], + password: ldap[:ldap_password], + base: ldap[:ldap_base], uid: ldap[:ldap_uid] end end diff --git a/config/secrets.yml b/config/secrets.yml index 04d35b0c4..b96ec88d4 100644 --- a/config/secrets.yml +++ b/config/secrets.yml @@ -11,37 +11,13 @@ # if you're sharing your code publicly. x-default: &default - google_oauth_enabled: <%= ENV['GOOGLE_OAUTH_ENABLED'] %> - google_client_id: <%= ENV['GOOGLE_CLIENT_ID'] %> - google_secret: <%= ENV['GOOGLE_SECRET'] %> - - feishu_enabled: <%= ENV['FEISHU_ENABLED'] %> - feishu_app_id: <%= ENV['FEISHU_APP_ID'] %> - feishu_app_secret: <%= ENV['FEISHU_APP_SECRET'] %> - - ldap_enabled: <%= ENV['LDAP_ENABLED'] %> - ldap_host: <%= ENV['LDAP_HOST'] %> - ldap_port: <%= ENV['LDAP_PORT'] %> - ldap_method: <%= ENV['LDAP_METHOD'] %> - ldap_base_dn: <%= ENV['LDAP_BASE_DN'] %> - ldap_password: <%= ENV['LDAP_PASSWORD'] %> - ldap_base: <%= ENV['LDAP_BASE'] %> - ldap_uid: <%= ENV['LDAP_UID'] %> + secret_key_base: <%= ENV['SECRET_TOKEN'] || 'd42f6363da844381a4dfa25d76a4d0c0b992b5de907a165a21fa9a01662e05792915e6537ecbc4d3d55c0de5e9d159d96ba035ff517f9cff27d5bf0c2d55830b' %> development: <<: *default - admin_email: admin@zealot.com - admin_password: password - secret_key_base: <%= ENV['SECRET_TOKEN'] || 'd42f6363da844381a4dfa25d76a4d0c0b992b5de907a165a21fa9a01662e05792915e6537ecbc4d3d55c0de5e9d159d96ba035ff517f9cff27d5bf0c2d55830b' %> test: <<: *default - secret_key_base: <%= ENV['SECRET_TOKEN'] || 'd42f6363da844381a4dfa25d76a4d0c0b992b5de907a165a21fa9a01662e05792915e6537ecbc4d3d55c0de5e9d159d96ba035ff517f9cff27d5bf0c2d55830b' %> -# Do not keep production secrets in the repository, -# instead read values from the environment. production: - <<: *default - secret_key_base: <%= ENV['SECRET_TOKEN'] %> - admin_email: admin@zealot.com - admin_password: ze@l0t \ No newline at end of file + secret_key_base: <%= ENV['SECRET_TOKEN'] %> \ No newline at end of file From 44cbaaee2d9b606d138eb9b0840006ef689d2828 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 9 Jul 2021 19:48:17 +0800 Subject: [PATCH 0516/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=20hash=20=E7=9A=84=E7=B3=BB=E7=BB=9F=E5=8F=82?= =?UTF-8?q?=E6=95=B0=E4=BF=9D=E5=AD=98=E5=90=8E=E6=98=BE=E7=A4=BA=E4=B8=BA?= =?UTF-8?q?=20string=20=E4=B8=94=E7=BD=AE=E7=81=B0=20readonly=20=E7=9A=84?= =?UTF-8?q?=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/admin/settings_controller.rb | 18 ++++++++++-------- app/javascript/stylesheets/settings.scss | 9 +++++++++ app/models/setting.rb | 11 +++++++---- app/views/admin/settings/_form.html.slim | 2 ++ app/views/admin/settings/index.html.slim | 9 ++++++--- 5 files changed, 34 insertions(+), 15 deletions(-) diff --git a/app/controllers/admin/settings_controller.rb b/app/controllers/admin/settings_controller.rb index f3a188f36..0efb9362f 100644 --- a/app/controllers/admin/settings_controller.rb +++ b/app/controllers/admin/settings_controller.rb @@ -13,8 +13,10 @@ def edit end def update - if @setting.value != setting_param[:value] - @setting.value = setting_param[:value] + new_value = setting_param[:value] + new_value = JSON.parse(new_value) if setting_param[:type] == 'hash' + if @setting.value != new_value + @setting.value = new_value return render :edit unless @setting.save redirect_to admin_settings_path, notice: "保存成功." @@ -25,11 +27,11 @@ def update private - def set_setting - @setting = Setting.find_or_default(var: params[:id]) - end + def set_setting + @setting = Setting.find_or_default(var: params[:id]) + end - def setting_param - params[:setting].permit! - end + def setting_param + params[:setting].permit! + end end diff --git a/app/javascript/stylesheets/settings.scss b/app/javascript/stylesheets/settings.scss index b957c7762..6f96b3ccc 100644 --- a/app/javascript/stylesheets/settings.scss +++ b/app/javascript/stylesheets/settings.scss @@ -66,3 +66,12 @@ transform: translateX(26px); } } + +.system-info { + dd { + .disabled { + background-color: #e9ecef; + color: gray; + } + } +} \ No newline at end of file diff --git a/app/models/setting.rb b/app/models/setting.rb index 27b2e53ea..4665ce3ce 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -28,7 +28,7 @@ class Setting < RailsSettings::Base # 第三方登录 scope :third_party_auth do - field :ldap, type: :hash, readonly: true, display: true, default: { + field :ldap, type: :hash, display: true, default: { enabled: ENV['LDAP_ENABLED'] || false, host: ENV['LDAP_HOST'], port: ENV['LDAP_PORT'], @@ -39,13 +39,13 @@ class Setting < RailsSettings::Base uid: ENV['LDAP_UID'], } - field :feishu, type: :hash, readonly: true, display: true, default: { + field :feishu, type: :hash, display: true, default: { enabled: ENV['FEISHU_ENABLED'] || false, app_id: ENV['FEISHU_APP_ID'], app_secret: ENV['FEISHU_APP_SECRET'], } - field :google_oauth, type: :hash, readonly: true, display: true, default: { + field :google_oauth, type: :hash, display: true, default: { enabled: ENV['GOOGLE_OAUTH_ENABLED'] || false, client_id: ENV['GOOGLE_CLIENT_ID'], secret: ENV['GOOGLE_SECRET'], @@ -89,7 +89,10 @@ def site_configs obj[scope] = items.each_with_object({}) do |item, inner| key = item[:key] value = Setting.send(key.to_sym) - inner[key] = value + inner[key] = { + value: value, + readonly: item[:readonly] + } end end end diff --git a/app/views/admin/settings/_form.html.slim b/app/views/admin/settings/_form.html.slim index 590ea23d8..814a0c409 100644 --- a/app/views/admin/settings/_form.html.slim +++ b/app/views/admin/settings/_form.html.slim @@ -27,5 +27,7 @@ ruby: = f.text_area :value, value: JSON.pretty_generate(value), class: 'form-control', rows: 15 - else = f.text_area :value, value: value, class: 'form-control', rows: 15 + + input.hidden type="hidden" value="#{type}" name="setting[type]" .card-footer = f.button :submit, t('admin.settings.submit.update') \ No newline at end of file diff --git a/app/views/admin/settings/index.html.slim b/app/views/admin/settings/index.html.slim index 9a88a086a..68fad63b2 100644 --- a/app/views/admin/settings/index.html.slim +++ b/app/views/admin/settings/index.html.slim @@ -12,11 +12,14 @@ form.form-horizontal .card-header h3.card-title = t("admin.settings.#{scope}") .card-body - - keys.each do |key, value| + - keys.each do |key, params| ruby: + value = params[:value] display_value = value.is_a?(Hash) ? JSON.pretty_generate(value) : ((value != false && value.blank?) ? t('admin.settings.empty_value') : value.to_s) dl.system-info dt = t("admin.settings.#{key}") dd - pre - = link_to display_value, edit_admin_setting_path(key) \ No newline at end of file + - if params[:readonly] + pre.disabled = display_value + - else + pre = link_to display_value, edit_admin_setting_path(key) \ No newline at end of file From 20324609ea8dcc5ef895659ea5b98f134a53b140 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 9 Jul 2021 19:53:38 +0800 Subject: [PATCH 0517/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=B3=A8?= =?UTF-8?q?=E9=94=80=E8=B4=A6=E6=88=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/devise/registrations/edit.html.slim | 2 +- app/views/errors/_406.html.slim | 6 ++++++ config/routes.rb | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 app/views/errors/_406.html.slim diff --git a/app/views/devise/registrations/edit.html.slim b/app/views/devise/registrations/edit.html.slim index 404b323c9..6c00fc33c 100644 --- a/app/views/devise/registrations/edit.html.slim +++ b/app/views/devise/registrations/edit.html.slim @@ -38,4 +38,4 @@ .card-body p | 注销账户后,您的数据将会彻底移除! - = button_to "确认注销", registration_path(resource_name), data: { confirm: "最后确认你要注销自己的账户?" }, method: :delete, class: 'btn btn-lg btn-danger' \ No newline at end of file + = button_to "确认注销", user_registration_path, data: { confirm: "最后确认你要注销自己的账户?" }, method: :delete, class: 'btn btn-lg btn-danger' \ No newline at end of file diff --git a/app/views/errors/_406.html.slim b/app/views/errors/_406.html.slim new file mode 100644 index 000000000..5c47ecef2 --- /dev/null +++ b/app/views/errors/_406.html.slim @@ -0,0 +1,6 @@ +h3 + i.fa.fa-warning.text-warning = "#{@code} #{@title}" + +- if content.present? + p + = content \ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb index 65d4956a6..d0fa53800 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -6,7 +6,7 @@ ############################################# # User ############################################# - devise_for :users, skip: :registrations, controllers: { omniauth_callbacks: 'users/omniauth_callbacks' } + devise_for :users, controllers: { omniauth_callbacks: 'users/omniauth_callbacks' } devise_scope :user do resource :registration, only: %i[new create edit update], From 16257ff7c0ce88a526e6d4c4b7dc0afcab35b6fa Mon Sep 17 00:00:00 2001 From: icyleaf Date: Sun, 11 Jul 2021 16:14:58 +0800 Subject: [PATCH 0518/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=AE=89?= =?UTF-8?q?=E8=A3=85=E5=88=9D=E5=A7=8B=E5=8C=96=20sentry=20=E6=97=A0?= =?UTF-8?q?=E6=B3=95=E8=8E=B7=E5=8F=96=E5=88=B0=E7=99=BB=E5=BD=95=E7=94=A8?= =?UTF-8?q?=E6=88=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit relates tryzealot/zealot-docker#6 --- app/controllers/application_controller.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 8ee9a1ce1..ec7d76104 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -27,8 +27,10 @@ def raise_not_found private def set_sentry_context - Sentry.set_user(id: session[:current_user_id]) Sentry.set_extras(params: params.to_unsafe_h, url: request.url) + if current_user = session[:current_user_id] + Sentry.set_user(id: current_user) + end end def record_page_view From eee3cbbbf366fa702395c8b640dfb427798067ee Mon Sep 17 00:00:00 2001 From: icyleaf Date: Sun, 11 Jul 2021 22:23:06 +0800 Subject: [PATCH 0519/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=AE=89?= =?UTF-8?q?=E8=A3=85=E5=88=9D=E5=A7=8B=E5=8C=96=20sentry=20=E6=8A=8A=20set?= =?UTF-8?q?=5Fextra=20=E8=AE=BE=E4=B8=BA=E4=BA=86=E7=A7=81=E6=9C=89?= =?UTF-8?q?=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/application_controller.rb | 6 +++++- config/initializers/sentry.rb | 3 +++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index ec7d76104..701b7d096 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -27,7 +27,11 @@ def raise_not_found private def set_sentry_context - Sentry.set_extras(params: params.to_unsafe_h, url: request.url) + Sentry.configure_scope do |scope| + scope.set_context('params', params.to_unsafe_h) + scope.set_context('url', request.url) + end + if current_user = session[:current_user_id] Sentry.set_user(id: current_user) end diff --git a/config/initializers/sentry.rb b/config/initializers/sentry.rb index 1d07f7a10..e6e6e521a 100644 --- a/config/initializers/sentry.rb +++ b/config/initializers/sentry.rb @@ -13,6 +13,9 @@ # config.environment = Rails.env # config.enabled_environments = %w[development production] + # + config.traces_sample_rate = 0.5 + config.excluded_exceptions += [ 'ActionController::RoutingError', 'ActiveRecord::RecordNotFound', From 8fb4b5767e737e44d6b84e6fcaa68c7ea78bbb8f Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 12 Jul 2021 10:13:36 +0800 Subject: [PATCH 0520/2165] =?UTF-8?q?fix:=20sentry=20=E8=AE=BE=E7=BD=AE=20?= =?UTF-8?q?context=20=E6=97=A0=E6=B3=95=E8=B5=8B=E5=80=BC=20string=20?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/application_controller.rb | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 701b7d096..af24fe10c 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -28,8 +28,9 @@ def raise_not_found def set_sentry_context Sentry.configure_scope do |scope| - scope.set_context('params', params.to_unsafe_h) - scope.set_context('url', request.url) + context = params.to_unsafe_h || {} + context[:url] = request.url + scope.set_context('params', context) end if current_user = session[:current_user_id] From 9655c8e133884226532921fb501b71c40bf94193 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 12 Jul 2021 10:51:07 +0800 Subject: [PATCH 0521/2165] =?UTF-8?q?refactor:=20sentry=20=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=E7=8E=AF=E5=A2=83=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/initializers/sentry.rb | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/config/initializers/sentry.rb b/config/initializers/sentry.rb index e6e6e521a..0347e2578 100644 --- a/config/initializers/sentry.rb +++ b/config/initializers/sentry.rb @@ -10,11 +10,8 @@ config.breadcrumbs_logger = [:active_support_logger, :sentry_logger, :http_logger] config.send_default_pii = true - # config.environment = Rails.env - # config.enabled_environments = %w[development production] - - # - config.traces_sample_rate = 0.5 + config.environment = Rails.env + config.enabled_environments = %w[development production] config.excluded_exceptions += [ 'ActionController::RoutingError', From 32b99a5b0e083112ee99adee1179f82ec73c2331 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 12 Jul 2021 11:50:51 +0800 Subject: [PATCH 0522/2165] =?UTF-8?q?fix:=20sentry=20=E7=A7=BB=E9=99=A4=20?= =?UTF-8?q?tag=20=E7=9A=84=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/initializers/sentry.rb | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/config/initializers/sentry.rb b/config/initializers/sentry.rb index 0347e2578..449567958 100644 --- a/config/initializers/sentry.rb +++ b/config/initializers/sentry.rb @@ -21,14 +21,13 @@ 'PG::ConnectionBad', ] - vcs_ref = Setting.vcs_ref - if vcs_ref.present? - version = Setting.version - config.release = "#{version}-#{vcs_ref}" - config.tags = { - docker: ENV['DOCKER_TAG'].present?, - docker_tag: ENV['DOCKER_TAG'] - } + if (vcs_ref = Setting.vcs_ref) && vcs_ref.present? + release = [Setting.version, vcs_ref] + if (docker_tag = ENV['DOCKER_TAG']) && docker_tag.present? + release << ENV['DOCKER_TAG'] + end + + config.release = release.join('-') end end end From b4513cb22bd150897ea316b951319bed18426ec0 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 12 Jul 2021 13:50:26 +0800 Subject: [PATCH 0523/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E7=B3=BB?= =?UTF-8?q?=E7=BB=9F=E5=88=9D=E5=A7=8B=E5=8C=96=E6=95=B0=E6=8D=AE=E5=BA=93?= =?UTF-8?q?=E5=88=A4=E6=96=AD=E7=9A=84=E5=8F=98=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/tasks/zealot/zealot.rake | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/lib/tasks/zealot/zealot.rake b/lib/tasks/zealot/zealot.rake index 9c6a09ade..b01e6ca2d 100644 --- a/lib/tasks/zealot/zealot.rake +++ b/lib/tasks/zealot/zealot.rake @@ -13,16 +13,11 @@ namespace :zealot do namespace :db do task upgrade: :environment do - begin - db_version = ActiveRecord::Migrator.current_version - if db_version == 0 - Rake::Task['zealot:db:setup'].invoke - else - Rake::Task['zealot:db:migrate'].invoke - end - rescue PG::ConnectionBad, ActiveRecord::NoDatabaseError - # 无法连接数据库 + db_version = ActiveRecord::Migrator.current_version + if db_version.blank? Rake::Task['zealot:db:setup'].invoke + else + Rake::Task['zealot:db:migrate'].invoke end end From d2bc7646df76b99f059c734ec515c5bc5fa1613e Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 12 Jul 2021 13:51:05 +0800 Subject: [PATCH 0524/2165] =?UTF-8?q?refactor:=20healh=5Fcheck=20=E4=B8=8D?= =?UTF-8?q?=E5=86=8D=E6=A3=80=E6=9F=A5=20redis=20=E7=9A=84=E7=8A=B6?= =?UTF-8?q?=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/initializers/devise.rb | 584 ++++++++++++++-------------- config/initializers/health_check.rb | 4 +- 2 files changed, 295 insertions(+), 293 deletions(-) diff --git a/config/initializers/devise.rb b/config/initializers/devise.rb index f8571b80d..213e95a6f 100644 --- a/config/initializers/devise.rb +++ b/config/initializers/devise.rb @@ -2,296 +2,298 @@ # Use this hook to configure devise mailer, warden hooks and so forth. # Many of these configuration options can be set straight in your model. -Devise.setup do |config| - # The secret key used by Devise. Devise uses this key to generate - # random tokens. Changing this key will render invalid all existing - # confirmation, reset password and unlock tokens in the database. - # Devise will use the `secret_key_base` as its `secret_key` - # by default. You can change it below and use your own secret key. - # config.secret_key = '' - - # ==> Mailer Configuration - # Configure the e-mail address which will be shown in Devise::Mailer, - # note that it will be overwritten if you use your own mailer class - # with default "from" parameter. - # config.mailer_sender = 'no-reply@' + Zealot.config.url_options[:host] - - # Configure the class responsible to send e-mails. - # config.mailer = 'Devise::Mailer' - - # Configure the parent class responsible to send e-mails. - # config.parent_mailer = 'ActionMailer::Base' - - # ==> ORM configuration - # Load and configure the ORM. Supports :active_record (default) and - # :mongoid (bson_ext recommended) by default. Other ORMs may be - # available as additional gems. - require 'devise/orm/active_record' - - # ==> Configuration for any authentication mechanism - # Configure which keys are used when authenticating a user. The default is - # just :email. You can configure it to use [:username, :subdomain], so for - # authenticating a user, both parameters are required. Remember that those - # parameters are used only when authenticating and not when retrieving from - # session. If you need permissions, you should implement that in a before filter. - # You can also supply a hash where the value is a boolean determining whether - # or not authentication should be aborted when the value is not present. - # config.authentication_keys = [:email] - - # Configure parameters from the request object used for authentication. Each entry - # given should be a request method and it will automatically be passed to the - # find_for_authentication method and considered in your model lookup. For instance, - # if you set :request_keys to [:subdomain], :subdomain will be used on authentication. - # The same considerations mentioned for authentication_keys also apply to request_keys. - # config.request_keys = [] - - # Configure which authentication keys should be case-insensitive. - # These keys will be downcased upon creating or modifying a user and when used - # to authenticate or find a user. Default is :email. - config.case_insensitive_keys = [:email] - - # Configure which authentication keys should have whitespace stripped. - # These keys will have whitespace before and after removed upon creating or - # modifying a user and when used to authenticate or find a user. Default is :email. - config.strip_whitespace_keys = [:email] - - # Tell if authentication through request.params is enabled. True by default. - # It can be set to an array that will enable params authentication only for the - # given strategies, for example, `config.params_authenticatable = [:database]` will - # enable it only for database (email + password) authentication. - # config.params_authenticatable = true - - # Tell if authentication through HTTP Auth is enabled. False by default. - # It can be set to an array that will enable http authentication only for the - # given strategies, for example, `config.http_authenticatable = [:database]` will - # enable it only for database authentication. The supported strategies are: - # :database = Support basic authentication with authentication key + password - # config.http_authenticatable = false - - # If 401 status code should be returned for AJAX requests. True by default. - # config.http_authenticatable_on_xhr = true - - # The realm used in Http Basic Authentication. 'Application' by default. - # config.http_authentication_realm = 'Zealot' - - # It will change confirmation, password recovery and other workflows - # to behave the same regardless if the e-mail provided was right or wrong. - # Does not affect registerable. - # config.paranoid = true - - # By default Devise will store the user in session. You can skip storage for - # particular strategies by setting this option. - # Notice that if you are skipping storage for all authentication paths, you - # may want to disable generating routes to Devise's sessions controller by - # passing skip: :sessions to `devise_for` in your config/routes.rb - config.skip_session_storage = [:http_auth] - - # By default, Devise cleans up the CSRF token on authentication to - # avoid CSRF token fixation attacks. This means that, when using AJAX - # requests for sign in and sign up, you need to get a new CSRF token - # from the server. You can disable this option at your own risk. - # config.clean_up_csrf_token_on_authentication = true - - # When false, Devise will not attempt to reload routes on eager load. - # This can reduce the time taken to boot the app but if your application - # requires the Devise mappings to be loaded during boot time the application - # won't boot properly. - # config.reload_routes = true - - # ==> Configuration for :database_authenticatable - # For bcrypt, this is the cost for hashing the password and defaults to 11. If - # using other algorithms, it sets how many times you want the password to be hashed. - # - # Limiting the stretches to just one in testing will increase the performance of - # your test suite dramatically. However, it is STRONGLY RECOMMENDED to not use - # a value less than 10 in other environments. Note that, for bcrypt (the default - # algorithm), the cost increases exponentially with the number of stretches (e.g. - # a value of 20 is already extremely slow: approx. 60 seconds for 1 calculation). - config.stretches = Rails.env.test? ? 1 : 10 - - # Set up a pepper to generate the hashed password. - # config.pepper = 'afb9f9d6fef3af737f6c1ffbf76a92ecea727a79ecd5976107a250420cb439965d89f5721c7052439308133c1b51aec9a61a9fc4f32b658432a1ab859969cd12' - - # Send a notification email when the user's password is changed - config.send_password_change_notification = true - - # ==> Configuration for :confirmable - # A period that the user is allowed to access the website even without - # confirming their account. For instance, if set to 2.days, the user will be - # able to access the website for two days without confirming their account, - # access will be blocked just in the third day. Default is 0.days, meaning - # the user cannot access the website without confirming their account. - # config.allow_unconfirmed_access_for = 2.days - - # A period that the user is allowed to confirm their account before their - # token becomes invalid. For example, if set to 3.days, the user can confirm - # their account within 3 days after the mail was sent, but on the fourth day - # their account can't be confirmed with the token any more. - # Default is nil, meaning there is no restriction on how long a user can take - # before confirming their account. - config.confirm_within = 2.days - - # If true, requires any email changes to be confirmed (exactly the same way as - # initial account confirmation) to be applied. Requires additional unconfirmed_email - # db field (see migrations). Until confirmed, new email is stored in - # unconfirmed_email column, and copied to email column on successful confirmation. - config.reconfirmable = true - - # Defines which key will be used when confirming an account - # config.confirmation_keys = [:email] - - # ==> Configuration for :rememberable - # The time the user will be remembered without asking for credentials again. - config.remember_for = 1.year - - # Invalidates all the remember me tokens when the user signs out. - config.expire_all_remember_me_on_sign_out = true - - # If true, extends the user's remember period when remembered via cookie. - # config.extend_remember_period = false - - # Options to be passed to the created cookie. For instance, you can set - # secure: true in order to force SSL only cookies. - config.rememberable_options = { secure: true } - - # ==> Configuration for :validatable - # Range for password length. - config.password_length = 6..128 - - # Email regex used to validate email formats. It simply asserts that - # one (and only one) @ exists in the given string. This is mainly - # to give user feedback and not to assert the e-mail validity. - # config.email_regexp = /\A[^@\s]+@[^@\s]+\z/ - - # ==> Configuration for :timeoutable - # The time you want to timeout the user session without activity. After this - # time the user will be asked for credentials again. Default is 30 minutes. - # config.timeout_in = 30.minutes - - # ==> Configuration for :lockable - # Defines which strategy will be used to lock an account. - # :failed_attempts = Locks an account after a number of failed attempts to sign in. - # :none = No lock strategy. You should handle locking by yourself. - # config.lock_strategy = :failed_attempts - - # Defines which key will be used when locking and unlocking an account - # config.unlock_keys = [:email] - - # Defines which strategy will be used to unlock an account. - # :email = Sends an unlock link to the user email - # :time = Re-enables login after a certain amount of time (see :unlock_in below) - # :both = Enables both strategies - # :none = No unlock strategy. You should handle unlocking by yourself. - # config.unlock_strategy = :both - - # Number of authentication tries before locking an account if lock_strategy - # is failed attempts. - config.maximum_attempts = 5 - - # Time interval to unlock the account if :time is enabled as unlock_strategy. - config.unlock_in = 1.hour - - # Warn on the last attempt before the account is locked. - config.last_attempt_warning = true - - # ==> Configuration for :recoverable - # - # Defines which key will be used when recovering the password for an account - # config.reset_password_keys = [:email] - - # Time interval you can reset your password with a reset password key. - # Don't put a too small interval or your users won't have the time to - # change their passwords. - config.reset_password_within = 6.hours - - # When set to false, does not sign a user in automatically after their password is - # reset. Defaults to true, so a user is signed in automatically after a reset. - # config.sign_in_after_reset_password = true - - # ==> Configuration for :encryptable - # Allow you to use another hashing or encryption algorithm besides bcrypt (default). - # You can use :sha1, :sha512 or algorithms from others authentication tools as - # :clearance_sha1, :authlogic_sha512 (then you should set stretches above to 20 - # for default behavior) and :restful_authentication_sha1 (then you should set - # stretches to 10, and copy REST_AUTH_SITE_KEY to pepper). - # - # Require the `devise-encryptable` gem when using anything other than bcrypt - # config.encryptor = :sha512 - - # ==> Scopes configuration - # Turn scoped views on. Before rendering "sessions/new", it will first check for - # "users/sessions/new". It's turned off by default because it's slower if you - # are using only default views. - # config.scoped_views = false - - # Configure the default scope given to Warden. By default it's the first - # devise role declared in your routes (usually :user). - # config.default_scope = :user - - # Set this configuration to false if you want /users/sign_out to sign out - # only the current scope. By default, Devise signs out all scopes. - # config.sign_out_all_scopes = true - - # ==> Navigation configuration - # Lists the formats that should be treated as navigational. Formats like - # :html, should redirect to the sign in page when the user does not have - # access, but formats like :xml or :json, should return 401. - # - # If you have any extra navigational formats, like :iphone or :mobile, you - # should add them to the navigational formats lists. - # - # The "*/*" below is required to match Internet Explorer requests. - # config.navigational_formats = ['*/*', :html] - - # The default HTTP method used to sign out a resource. Default is :delete. - config.sign_out_via = :delete - - # ==> Warden configuration - # If you want to use other strategies, that are not supported by Devise, or - # change the failure app, you can configure them inside the config.warden block. - # - # config.warden do |manager| - # manager.intercept_401 = false - # manager.default_strategies(scope: :user).unshift :some_external_strategy - # end - - # ==> Mountable engine configurations - # When using Devise inside an engine, let's call it `MyEngine`, and this engine - # is mountable, there are some extra configurations to be taken into account. - # The following options are available, assuming the engine is mounted as: - # - # mount MyEngine, at: '/my_engine' - # - # The router that invoked `devise_for`, in the example above, would be: - # config.router_name = :my_engine - - # ==> OmniAuth - # Add a new OmniAuth provider. Check the wiki for more information on setting - # up on your models and hooks. - # config.omniauth :github, 'APP_ID', 'APP_SECRET', scope: 'user,public_repo' - - # Google OAuth - google_oauth = Setting.google_oauth - if defined?(OmniAuth::Strategies::GoogleOauth2) && google_oauth[:enabled] - config.omniauth :google_oauth2, google_oauth[:client_id], google_oauth[:secret], - skip_jwt: true, prompt: 'select_account', access_type: 'offline', - scope: 'email,profile' - end - - # 飞书 - feishu = Setting.feishu - if defined?(OmniAuth::Strategies::Feishu) && feishu[:enabled] - config.omniauth :feishu, feishu[:app_id], feishu[:app_secret] - end -[] - # LDAP - ldap = Setting.ldap - if defined?(OmniAuth::Strategies::LDAP) && ldap[:ldap_enabled] - config.omniauth :ldap, title: 'Zealot LDAP 认证登录', - host: ldap[:ldap_host], port: ldap[:ldap_port], - method: (ldap[:ldap_method] || 'plain').to_sym, - bind_dn: ldap[:ldap_base_dn], - password: ldap[:ldap_password], - base: ldap[:ldap_base], uid: ldap[:ldap_uid] +Rails.configuration.to_prepare do + Devise.setup do |config| + # The secret key used by Devise. Devise uses this key to generate + # random tokens. Changing this key will render invalid all existing + # confirmation, reset password and unlock tokens in the database. + # Devise will use the `secret_key_base` as its `secret_key` + # by default. You can change it below and use your own secret key. + # config.secret_key = '' + + # ==> Mailer Configuration + # Configure the e-mail address which will be shown in Devise::Mailer, + # note that it will be overwritten if you use your own mailer class + # with default "from" parameter. + # config.mailer_sender = 'no-reply@' + Zealot.config.url_options[:host] + + # Configure the class responsible to send e-mails. + # config.mailer = 'Devise::Mailer' + + # Configure the parent class responsible to send e-mails. + # config.parent_mailer = 'ActionMailer::Base' + + # ==> ORM configuration + # Load and configure the ORM. Supports :active_record (default) and + # :mongoid (bson_ext recommended) by default. Other ORMs may be + # available as additional gems. + require 'devise/orm/active_record' + + # ==> Configuration for any authentication mechanism + # Configure which keys are used when authenticating a user. The default is + # just :email. You can configure it to use [:username, :subdomain], so for + # authenticating a user, both parameters are required. Remember that those + # parameters are used only when authenticating and not when retrieving from + # session. If you need permissions, you should implement that in a before filter. + # You can also supply a hash where the value is a boolean determining whether + # or not authentication should be aborted when the value is not present. + # config.authentication_keys = [:email] + + # Configure parameters from the request object used for authentication. Each entry + # given should be a request method and it will automatically be passed to the + # find_for_authentication method and considered in your model lookup. For instance, + # if you set :request_keys to [:subdomain], :subdomain will be used on authentication. + # The same considerations mentioned for authentication_keys also apply to request_keys. + # config.request_keys = [] + + # Configure which authentication keys should be case-insensitive. + # These keys will be downcased upon creating or modifying a user and when used + # to authenticate or find a user. Default is :email. + config.case_insensitive_keys = [:email] + + # Configure which authentication keys should have whitespace stripped. + # These keys will have whitespace before and after removed upon creating or + # modifying a user and when used to authenticate or find a user. Default is :email. + config.strip_whitespace_keys = [:email] + + # Tell if authentication through request.params is enabled. True by default. + # It can be set to an array that will enable params authentication only for the + # given strategies, for example, `config.params_authenticatable = [:database]` will + # enable it only for database (email + password) authentication. + # config.params_authenticatable = true + + # Tell if authentication through HTTP Auth is enabled. False by default. + # It can be set to an array that will enable http authentication only for the + # given strategies, for example, `config.http_authenticatable = [:database]` will + # enable it only for database authentication. The supported strategies are: + # :database = Support basic authentication with authentication key + password + # config.http_authenticatable = false + + # If 401 status code should be returned for AJAX requests. True by default. + # config.http_authenticatable_on_xhr = true + + # The realm used in Http Basic Authentication. 'Application' by default. + # config.http_authentication_realm = 'Zealot' + + # It will change confirmation, password recovery and other workflows + # to behave the same regardless if the e-mail provided was right or wrong. + # Does not affect registerable. + # config.paranoid = true + + # By default Devise will store the user in session. You can skip storage for + # particular strategies by setting this option. + # Notice that if you are skipping storage for all authentication paths, you + # may want to disable generating routes to Devise's sessions controller by + # passing skip: :sessions to `devise_for` in your config/routes.rb + config.skip_session_storage = [:http_auth] + + # By default, Devise cleans up the CSRF token on authentication to + # avoid CSRF token fixation attacks. This means that, when using AJAX + # requests for sign in and sign up, you need to get a new CSRF token + # from the server. You can disable this option at your own risk. + # config.clean_up_csrf_token_on_authentication = true + + # When false, Devise will not attempt to reload routes on eager load. + # This can reduce the time taken to boot the app but if your application + # requires the Devise mappings to be loaded during boot time the application + # won't boot properly. + # config.reload_routes = true + + # ==> Configuration for :database_authenticatable + # For bcrypt, this is the cost for hashing the password and defaults to 11. If + # using other algorithms, it sets how many times you want the password to be hashed. + # + # Limiting the stretches to just one in testing will increase the performance of + # your test suite dramatically. However, it is STRONGLY RECOMMENDED to not use + # a value less than 10 in other environments. Note that, for bcrypt (the default + # algorithm), the cost increases exponentially with the number of stretches (e.g. + # a value of 20 is already extremely slow: approx. 60 seconds for 1 calculation). + config.stretches = Rails.env.test? ? 1 : 10 + + # Set up a pepper to generate the hashed password. + # config.pepper = 'afb9f9d6fef3af737f6c1ffbf76a92ecea727a79ecd5976107a250420cb439965d89f5721c7052439308133c1b51aec9a61a9fc4f32b658432a1ab859969cd12' + + # Send a notification email when the user's password is changed + config.send_password_change_notification = true + + # ==> Configuration for :confirmable + # A period that the user is allowed to access the website even without + # confirming their account. For instance, if set to 2.days, the user will be + # able to access the website for two days without confirming their account, + # access will be blocked just in the third day. Default is 0.days, meaning + # the user cannot access the website without confirming their account. + # config.allow_unconfirmed_access_for = 2.days + + # A period that the user is allowed to confirm their account before their + # token becomes invalid. For example, if set to 3.days, the user can confirm + # their account within 3 days after the mail was sent, but on the fourth day + # their account can't be confirmed with the token any more. + # Default is nil, meaning there is no restriction on how long a user can take + # before confirming their account. + config.confirm_within = 2.days + + # If true, requires any email changes to be confirmed (exactly the same way as + # initial account confirmation) to be applied. Requires additional unconfirmed_email + # db field (see migrations). Until confirmed, new email is stored in + # unconfirmed_email column, and copied to email column on successful confirmation. + config.reconfirmable = true + + # Defines which key will be used when confirming an account + # config.confirmation_keys = [:email] + + # ==> Configuration for :rememberable + # The time the user will be remembered without asking for credentials again. + config.remember_for = 1.year + + # Invalidates all the remember me tokens when the user signs out. + config.expire_all_remember_me_on_sign_out = true + + # If true, extends the user's remember period when remembered via cookie. + # config.extend_remember_period = false + + # Options to be passed to the created cookie. For instance, you can set + # secure: true in order to force SSL only cookies. + config.rememberable_options = { secure: true } + + # ==> Configuration for :validatable + # Range for password length. + config.password_length = 6..128 + + # Email regex used to validate email formats. It simply asserts that + # one (and only one) @ exists in the given string. This is mainly + # to give user feedback and not to assert the e-mail validity. + # config.email_regexp = /\A[^@\s]+@[^@\s]+\z/ + + # ==> Configuration for :timeoutable + # The time you want to timeout the user session without activity. After this + # time the user will be asked for credentials again. Default is 30 minutes. + # config.timeout_in = 30.minutes + + # ==> Configuration for :lockable + # Defines which strategy will be used to lock an account. + # :failed_attempts = Locks an account after a number of failed attempts to sign in. + # :none = No lock strategy. You should handle locking by yourself. + # config.lock_strategy = :failed_attempts + + # Defines which key will be used when locking and unlocking an account + # config.unlock_keys = [:email] + + # Defines which strategy will be used to unlock an account. + # :email = Sends an unlock link to the user email + # :time = Re-enables login after a certain amount of time (see :unlock_in below) + # :both = Enables both strategies + # :none = No unlock strategy. You should handle unlocking by yourself. + # config.unlock_strategy = :both + + # Number of authentication tries before locking an account if lock_strategy + # is failed attempts. + config.maximum_attempts = 5 + + # Time interval to unlock the account if :time is enabled as unlock_strategy. + config.unlock_in = 1.hour + + # Warn on the last attempt before the account is locked. + config.last_attempt_warning = true + + # ==> Configuration for :recoverable + # + # Defines which key will be used when recovering the password for an account + # config.reset_password_keys = [:email] + + # Time interval you can reset your password with a reset password key. + # Don't put a too small interval or your users won't have the time to + # change their passwords. + config.reset_password_within = 6.hours + + # When set to false, does not sign a user in automatically after their password is + # reset. Defaults to true, so a user is signed in automatically after a reset. + # config.sign_in_after_reset_password = true + + # ==> Configuration for :encryptable + # Allow you to use another hashing or encryption algorithm besides bcrypt (default). + # You can use :sha1, :sha512 or algorithms from others authentication tools as + # :clearance_sha1, :authlogic_sha512 (then you should set stretches above to 20 + # for default behavior) and :restful_authentication_sha1 (then you should set + # stretches to 10, and copy REST_AUTH_SITE_KEY to pepper). + # + # Require the `devise-encryptable` gem when using anything other than bcrypt + # config.encryptor = :sha512 + + # ==> Scopes configuration + # Turn scoped views on. Before rendering "sessions/new", it will first check for + # "users/sessions/new". It's turned off by default because it's slower if you + # are using only default views. + # config.scoped_views = false + + # Configure the default scope given to Warden. By default it's the first + # devise role declared in your routes (usually :user). + # config.default_scope = :user + + # Set this configuration to false if you want /users/sign_out to sign out + # only the current scope. By default, Devise signs out all scopes. + # config.sign_out_all_scopes = true + + # ==> Navigation configuration + # Lists the formats that should be treated as navigational. Formats like + # :html, should redirect to the sign in page when the user does not have + # access, but formats like :xml or :json, should return 401. + # + # If you have any extra navigational formats, like :iphone or :mobile, you + # should add them to the navigational formats lists. + # + # The "*/*" below is required to match Internet Explorer requests. + # config.navigational_formats = ['*/*', :html] + + # The default HTTP method used to sign out a resource. Default is :delete. + config.sign_out_via = :delete + + # ==> Warden configuration + # If you want to use other strategies, that are not supported by Devise, or + # change the failure app, you can configure them inside the config.warden block. + # + # config.warden do |manager| + # manager.intercept_401 = false + # manager.default_strategies(scope: :user).unshift :some_external_strategy + # end + + # ==> Mountable engine configurations + # When using Devise inside an engine, let's call it `MyEngine`, and this engine + # is mountable, there are some extra configurations to be taken into account. + # The following options are available, assuming the engine is mounted as: + # + # mount MyEngine, at: '/my_engine' + # + # The router that invoked `devise_for`, in the example above, would be: + # config.router_name = :my_engine + + # ==> OmniAuth + # Add a new OmniAuth provider. Check the wiki for more information on setting + # up on your models and hooks. + # config.omniauth :github, 'APP_ID', 'APP_SECRET', scope: 'user,public_repo' + + # 飞书 + feishu = Setting.feishu + if defined?(OmniAuth::Strategies::Feishu) && feishu[:enabled] + config.omniauth :feishu, feishu[:app_id], feishu[:app_secret] + end + + # Google OAuth + google_oauth = Setting.google_oauth + if defined?(OmniAuth::Strategies::GoogleOauth2) && google_oauth[:enabled] + config.omniauth :google_oauth2, google_oauth[:client_id], google_oauth[:secret], + skip_jwt: true, prompt: 'select_account', access_type: 'offline', + scope: 'email,profile' + end + + # LDAP + ldap = Setting.ldap + if defined?(OmniAuth::Strategies::LDAP) && ldap[:ldap_enabled] + config.omniauth :ldap, title: 'Zealot LDAP 认证登录', + host: ldap[:ldap_host], port: ldap[:ldap_port], + method: (ldap[:ldap_method] || 'plain').to_sym, + bind_dn: ldap[:ldap_base_dn], + password: ldap[:ldap_password], + base: ldap[:ldap_base], uid: ldap[:ldap_uid] + end end end diff --git a/config/initializers/health_check.rb b/config/initializers/health_check.rb index a7910c84f..3f3fb63d4 100644 --- a/config/initializers/health_check.rb +++ b/config/initializers/health_check.rb @@ -3,8 +3,8 @@ HealthCheck.setup do |config| config.uri = 'health' - config.standard_checks = %w[database migrations cache redis] - config.full_checks = %w[database migrations cache redis sidekiq-redis] + config.standard_checks = %w[database migrations cache] + config.full_checks = %w[database migrations cache sidekiq-redis] ip_whitelist = ENV['ZEALOT_HEALTH_CHECK_IP_WHITELIST'] ip_whitelist = ip_whitelist.split(',').select(&:present?).map(&:strip) if ip_whitelist.present? From f83e47c6182f5408758c4cf3896eda60c41afc7c Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 12 Jul 2021 13:51:41 +0800 Subject: [PATCH 0525/2165] =?UTF-8?q?chore(docker):=20zealot=20=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1=E7=A7=BB=E9=99=A4=E8=80=81=E7=9A=84=E9=85=8D=E7=BD=AE?= =?UTF-8?q?=E5=8F=98=E6=9B=B4=E6=8F=90=E9=86=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker/rootfs/etc/services.d/zealot/run | 6 ------ 1 file changed, 6 deletions(-) diff --git a/docker/rootfs/etc/services.d/zealot/run b/docker/rootfs/etc/services.d/zealot/run index d7fe6a6bd..f2bf54d76 100644 --- a/docker/rootfs/etc/services.d/zealot/run +++ b/docker/rootfs/etc/services.d/zealot/run @@ -1,11 +1,5 @@ #!/usr/bin/with-contenv sh -echo "========================================" -echo " Zealot had change run-way inside, if fail to run make sure " -echo " to upgrade the zealot-docker repospitory and re-generate the docker-compose.yml!" -echo "========================================" -echo - echo "Starting Zealot" cd /app bundle exec puma -C config/puma.rb | tee /app/log/zealot.log \ No newline at end of file From 81c8db3fc2bb72bb91e715e9c6b216eb1991f4c3 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 12 Jul 2021 14:08:01 +0800 Subject: [PATCH 0526/2165] =?UTF-8?q?fix:=20=E4=BD=BF=E7=94=A8=E6=9C=AC?= =?UTF-8?q?=E5=9C=B0=E8=B7=AF=E7=94=B1=E6=9B=BF=E6=8D=A2=20devise=20?= =?UTF-8?q?=E6=8F=90=E4=BE=9B=E7=9A=84=E8=B7=AF=E7=94=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/devise/shared/_form_ldap.html.slim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/devise/shared/_form_ldap.html.slim b/app/views/devise/shared/_form_ldap.html.slim index e9d95182e..999ee1002 100644 --- a/app/views/devise/shared/_form_ldap.html.slim +++ b/app/views/devise/shared/_form_ldap.html.slim @@ -1,6 +1,6 @@ - if ldap_auth_enable? #login-tabs-ldap.tab-pane.fade aria-labelledby="login-tabs-ldap-tab" role="tabpanel" - = form_tag(omniauth_callback_path(:user, :ldap)) do + = form_tag(user_ldap_omniauth_authorize_path) do .form-group = label_tag :username, "LDAP 账户" = text_field_tag :username, nil, class: "form-control top", title: "This field is required.", autofocus: "autofocus", data: { qa_selector: 'username_field' }, required: true From c0c37799d663b34aae19267954abda53f33ecd76 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 12 Jul 2021 14:12:15 +0800 Subject: [PATCH 0527/2165] =?UTF-8?q?refactor:=20Docker=20=E9=95=9C?= =?UTF-8?q?=E5=83=8F=E4=BD=BF=E7=94=A8=E4=B8=AD=E5=9B=BD=E7=A7=91=E6=8A=80?= =?UTF-8?q?=E6=8A=80=E6=9C=AF=E5=A4=A7=E5=AD=A6=E7=9A=84=E6=BA=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/Dockerfile b/Dockerfile index 34295998f..fefd125f3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -5,8 +5,8 @@ ARG DEV_PACKAGES="libxml2-dev libxslt-dev yaml-dev imagemagick-dev postgresql-de ARG RUBY_PACKAGES="tzdata" ARG REPLACE_CHINA_MIRROR="true" -ARG ORIGINAL_REPO_URL="http://dl-cdn.alpinelinux.org" -ARG MIRROR_REPO_URL="https://mirrors.tuna.tsinghua.edu.cn" +ARG ORIGINAL_REPO_URL="dl-cdn.alpinelinux.org" +ARG MIRROR_REPO_URL="mirrors.ustc.edu.cn" ARG RUBYGEMS_SOURCE="https://gems.ruby-china.com/" ARG NPM_REGISTRY="https://registry.npm.taobao.org" ARG RUBY_GEMS="bundler" @@ -18,9 +18,7 @@ ENV BUNDLE_APP_CONFIG="$APP_ROOT/.bundle" \ # System dependencies RUN set -ex && \ if [[ "$REPLACE_CHINA_MIRROR" == "true" ]]; then \ - REPLACE_STRING=$(echo $MIRROR_REPO_URL | sed 's/\//\\\//g') && \ - SEARCH_STRING=$(echo $ORIGINAL_REPO_URL | sed 's/\//\\\//g') && \ - sed -i "s/$SEARCH_STRING/$REPLACE_STRING/g" /etc/apk/repositories && \ + sed -i "s/$ORIGINAL_REPO_URL/$MIRROR_REPO_URL/g" /etc/apk/repositories && \ gem sources --add $RUBYGEMS_SOURCE --remove https://rubygems.org/ && \ bundle config mirror.https://rubygems.org $RUBYGEMS_SOURCE; \ fi && \ @@ -66,8 +64,8 @@ ARG TAG ARG ZEALOT_VERSION="4.0.0" ARG REPLACE_CHINA_MIRROR="true" -ARG ORIGINAL_REPO_URL="http://dl-cdn.alpinelinux.org" -ARG MIRROR_REPO_URL="https://mirrors.tuna.tsinghua.edu.cn" +ARG ORIGINAL_REPO_URL="dl-cdn.alpinelinux.org" +ARG MIRROR_REPO_URL="mirrors.ustc.edu.cn" ARG RUBYGEMS_SOURCE="https://gems.ruby-china.com/" ARG PACKAGES="tzdata curl logrotate imagemagick imagemagick-dev postgresql-dev postgresql-client openssl openssl-dev" ARG RUBY_GEMS="bundler" @@ -94,9 +92,7 @@ ENV TZ="Asia/Shanghai" \ # System dependencies RUN set -ex && \ if [[ "$REPLACE_CHINA_MIRROR" == "true" ]]; then \ - REPLACE_STRING=$(echo $MIRROR_REPO_URL | sed 's/\//\\\//g') && \ - SEARCH_STRING=$(echo $ORIGINAL_REPO_URL | sed 's/\//\\\//g') && \ - sed -i "s/$SEARCH_STRING/$REPLACE_STRING/g" /etc/apk/repositories && \ + sed -i "s/$ORIGINAL_REPO_URL/$MIRROR_REPO_URL/g" /etc/apk/repositories && \ gem sources --add $RUBYGEMS_SOURCE --remove https://rubygems.org/; \ fi && \ apk --update --no-cache add $PACKAGES && \ From 3b34ff6e7c5edd43909239f8994ea0c9e4a02452 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 12 Jul 2021 10:52:07 +0800 Subject: [PATCH 0528/2165] release: bump 4.1.0 --- Dockerfile | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index fefd125f3..aafc7151d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -62,7 +62,7 @@ ARG BUILD_DATE ARG VCS_REF ARG TAG -ARG ZEALOT_VERSION="4.0.0" +ARG ZEALOT_VERSION="4.1.0" ARG REPLACE_CHINA_MIRROR="true" ARG ORIGINAL_REPO_URL="dl-cdn.alpinelinux.org" ARG MIRROR_REPO_URL="mirrors.ustc.edu.cn" diff --git a/package.json b/package.json index d2f623e25..2de8b72f0 100644 --- a/package.json +++ b/package.json @@ -13,5 +13,5 @@ "devDependencies": { "webpack-dev-server": "^3.11.2" }, - "version": "4.0.0" + "version": "4.1.0" } From 818f7d1d0ce4ab750cec6e5c392ca67ad6200170 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 12 Jul 2021 14:14:51 +0800 Subject: [PATCH 0529/2165] =?UTF-8?q?doc:=20=E6=9B=B4=E6=96=B0=20README?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index c4fa23c54..fef4331a1 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ [![Codacy Badge](https://api.codacy.com/project/badge/Grade/bcff7d9de5ba48528bc80aa01bd525c6)](https://www.codacy.com/manual/icyleaf/zealot) [![License](https://img.shields.io/github/license/tryzealot/zealot)](LICENSE) -开源自部署移动应用分发平台,提供 iOS、Android SDK、fastlane 等丰富组件库,打包分发流程、上传应用竟然如此简单、解决开发人员频繁打包的烦恼 🖖 +开源自部署移动应用分发平台,提供 iOS、Android SDK、fastlane 等丰富组件库,打包分发流程、上传应用竟然如此简单、解决开发人员频繁打包的烦恼 En Taro Adun! 🖖 ![Zealot Showcase](https://zealot.ews.im/_media/showcase.png) ## 特性 @@ -17,7 +17,7 @@ - [x] 支持单次上传解析 iOS、Android 包甚至是 mobileprovision 文件的信息并存储编译分享他人 - [x] 支持自定义网络钩子(WebHooks)发送给通知各种服务(钉钉、企业微信、Slack 等) - [x] 支持获取 iOS 设备 UDID 及显示该设备可以安装的应用 -- [x] 支持 OAuth 认证登录(目前以接入 Google,LDAP) +- [x] 支持第三方服务的一键登录(目前以接入飞书、Google 和 LDAP) - [x] 提供检查新版本和安装服务的 iOS 和 Android 组件 - [x] 提供 fastlane 插件 [zealot](https://github.com/tryzealot/fastlane-plugin-zealot) 提供上传应用和调试文件服务、同步 iOS 设备 UDID 名单 - [x] 可接入 Gitlab 服务直接挂钩源码管理 From e05e0c0dc4b9990068d093f537afb6330c1490dc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Jul 2021 21:01:09 +0000 Subject: [PATCH 0530/2165] chore(deps): bump rails-settings-cached from 2.7.0 to 2.7.1 Bumps [rails-settings-cached](https://github.com/huacnlee/rails-settings-cached) from 2.7.0 to 2.7.1. - [Release notes](https://github.com/huacnlee/rails-settings-cached/releases) - [Changelog](https://github.com/huacnlee/rails-settings-cached/blob/main/CHANGELOG.md) - [Commits](https://github.com/huacnlee/rails-settings-cached/compare/v2.7.0...v2.7.1) --- updated-dependencies: - dependency-name: rails-settings-cached dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 0aff8987f..2301b7c30 100644 --- a/Gemfile +++ b/Gemfile @@ -82,7 +82,7 @@ gem 'webpacker', '~> 5.4' gem 'app-info', '~> 2.5.4' # Mobile config -gem 'rails-settings-cached', '~> 2.7.0' +gem 'rails-settings-cached', '~> 2.7.1' # Reduces boot times through caching; required in config/boot.rb gem 'bootsnap', '>= 1.4.7', require: false diff --git a/Gemfile.lock b/Gemfile.lock index dc81e14c8..3ba95369b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -354,7 +354,7 @@ GEM rails-i18n (6.0.0) i18n (>= 0.7, < 2) railties (>= 6.0.0, < 7) - rails-settings-cached (2.7.0) + rails-settings-cached (2.7.1) rails (>= 5.0.0) railties (6.1.4) actionpack (= 6.1.4) @@ -542,7 +542,7 @@ DEPENDENCIES rack-cors (~> 1.1.1) rails (~> 6.1.4) rails-i18n (~> 6.0.0) - rails-settings-cached (~> 2.7.0) + rails-settings-cached (~> 2.7.1) rake (~> 13.0.4) redis (~> 4.3.1) rqrcode From 2f32c134c5e6b6a07a57b2df8545906de87e06b0 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 13 Jul 2021 15:31:15 +0800 Subject: [PATCH 0531/2165] =?UTF-8?q?fix:=20=E4=B8=80=E9=94=AE=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E6=8A=A5=20Not=20found.=20Authentication=20passthru.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/initializers/devise.rb | 585 +++++++++++++++++----------------- 1 file changed, 292 insertions(+), 293 deletions(-) diff --git a/config/initializers/devise.rb b/config/initializers/devise.rb index 213e95a6f..7e4a62817 100644 --- a/config/initializers/devise.rb +++ b/config/initializers/devise.rb @@ -2,298 +2,297 @@ # Use this hook to configure devise mailer, warden hooks and so forth. # Many of these configuration options can be set straight in your model. -Rails.configuration.to_prepare do - Devise.setup do |config| - # The secret key used by Devise. Devise uses this key to generate - # random tokens. Changing this key will render invalid all existing - # confirmation, reset password and unlock tokens in the database. - # Devise will use the `secret_key_base` as its `secret_key` - # by default. You can change it below and use your own secret key. - # config.secret_key = '' - - # ==> Mailer Configuration - # Configure the e-mail address which will be shown in Devise::Mailer, - # note that it will be overwritten if you use your own mailer class - # with default "from" parameter. - # config.mailer_sender = 'no-reply@' + Zealot.config.url_options[:host] - - # Configure the class responsible to send e-mails. - # config.mailer = 'Devise::Mailer' - - # Configure the parent class responsible to send e-mails. - # config.parent_mailer = 'ActionMailer::Base' - - # ==> ORM configuration - # Load and configure the ORM. Supports :active_record (default) and - # :mongoid (bson_ext recommended) by default. Other ORMs may be - # available as additional gems. - require 'devise/orm/active_record' - - # ==> Configuration for any authentication mechanism - # Configure which keys are used when authenticating a user. The default is - # just :email. You can configure it to use [:username, :subdomain], so for - # authenticating a user, both parameters are required. Remember that those - # parameters are used only when authenticating and not when retrieving from - # session. If you need permissions, you should implement that in a before filter. - # You can also supply a hash where the value is a boolean determining whether - # or not authentication should be aborted when the value is not present. - # config.authentication_keys = [:email] - - # Configure parameters from the request object used for authentication. Each entry - # given should be a request method and it will automatically be passed to the - # find_for_authentication method and considered in your model lookup. For instance, - # if you set :request_keys to [:subdomain], :subdomain will be used on authentication. - # The same considerations mentioned for authentication_keys also apply to request_keys. - # config.request_keys = [] - - # Configure which authentication keys should be case-insensitive. - # These keys will be downcased upon creating or modifying a user and when used - # to authenticate or find a user. Default is :email. - config.case_insensitive_keys = [:email] - - # Configure which authentication keys should have whitespace stripped. - # These keys will have whitespace before and after removed upon creating or - # modifying a user and when used to authenticate or find a user. Default is :email. - config.strip_whitespace_keys = [:email] - - # Tell if authentication through request.params is enabled. True by default. - # It can be set to an array that will enable params authentication only for the - # given strategies, for example, `config.params_authenticatable = [:database]` will - # enable it only for database (email + password) authentication. - # config.params_authenticatable = true - - # Tell if authentication through HTTP Auth is enabled. False by default. - # It can be set to an array that will enable http authentication only for the - # given strategies, for example, `config.http_authenticatable = [:database]` will - # enable it only for database authentication. The supported strategies are: - # :database = Support basic authentication with authentication key + password - # config.http_authenticatable = false - - # If 401 status code should be returned for AJAX requests. True by default. - # config.http_authenticatable_on_xhr = true - - # The realm used in Http Basic Authentication. 'Application' by default. - # config.http_authentication_realm = 'Zealot' - - # It will change confirmation, password recovery and other workflows - # to behave the same regardless if the e-mail provided was right or wrong. - # Does not affect registerable. - # config.paranoid = true - - # By default Devise will store the user in session. You can skip storage for - # particular strategies by setting this option. - # Notice that if you are skipping storage for all authentication paths, you - # may want to disable generating routes to Devise's sessions controller by - # passing skip: :sessions to `devise_for` in your config/routes.rb - config.skip_session_storage = [:http_auth] - - # By default, Devise cleans up the CSRF token on authentication to - # avoid CSRF token fixation attacks. This means that, when using AJAX - # requests for sign in and sign up, you need to get a new CSRF token - # from the server. You can disable this option at your own risk. - # config.clean_up_csrf_token_on_authentication = true - - # When false, Devise will not attempt to reload routes on eager load. - # This can reduce the time taken to boot the app but if your application - # requires the Devise mappings to be loaded during boot time the application - # won't boot properly. - # config.reload_routes = true - - # ==> Configuration for :database_authenticatable - # For bcrypt, this is the cost for hashing the password and defaults to 11. If - # using other algorithms, it sets how many times you want the password to be hashed. - # - # Limiting the stretches to just one in testing will increase the performance of - # your test suite dramatically. However, it is STRONGLY RECOMMENDED to not use - # a value less than 10 in other environments. Note that, for bcrypt (the default - # algorithm), the cost increases exponentially with the number of stretches (e.g. - # a value of 20 is already extremely slow: approx. 60 seconds for 1 calculation). - config.stretches = Rails.env.test? ? 1 : 10 - - # Set up a pepper to generate the hashed password. - # config.pepper = 'afb9f9d6fef3af737f6c1ffbf76a92ecea727a79ecd5976107a250420cb439965d89f5721c7052439308133c1b51aec9a61a9fc4f32b658432a1ab859969cd12' - - # Send a notification email when the user's password is changed - config.send_password_change_notification = true - - # ==> Configuration for :confirmable - # A period that the user is allowed to access the website even without - # confirming their account. For instance, if set to 2.days, the user will be - # able to access the website for two days without confirming their account, - # access will be blocked just in the third day. Default is 0.days, meaning - # the user cannot access the website without confirming their account. - # config.allow_unconfirmed_access_for = 2.days - - # A period that the user is allowed to confirm their account before their - # token becomes invalid. For example, if set to 3.days, the user can confirm - # their account within 3 days after the mail was sent, but on the fourth day - # their account can't be confirmed with the token any more. - # Default is nil, meaning there is no restriction on how long a user can take - # before confirming their account. - config.confirm_within = 2.days - - # If true, requires any email changes to be confirmed (exactly the same way as - # initial account confirmation) to be applied. Requires additional unconfirmed_email - # db field (see migrations). Until confirmed, new email is stored in - # unconfirmed_email column, and copied to email column on successful confirmation. - config.reconfirmable = true - - # Defines which key will be used when confirming an account - # config.confirmation_keys = [:email] - - # ==> Configuration for :rememberable - # The time the user will be remembered without asking for credentials again. - config.remember_for = 1.year - - # Invalidates all the remember me tokens when the user signs out. - config.expire_all_remember_me_on_sign_out = true - - # If true, extends the user's remember period when remembered via cookie. - # config.extend_remember_period = false - - # Options to be passed to the created cookie. For instance, you can set - # secure: true in order to force SSL only cookies. - config.rememberable_options = { secure: true } - - # ==> Configuration for :validatable - # Range for password length. - config.password_length = 6..128 - - # Email regex used to validate email formats. It simply asserts that - # one (and only one) @ exists in the given string. This is mainly - # to give user feedback and not to assert the e-mail validity. - # config.email_regexp = /\A[^@\s]+@[^@\s]+\z/ - - # ==> Configuration for :timeoutable - # The time you want to timeout the user session without activity. After this - # time the user will be asked for credentials again. Default is 30 minutes. - # config.timeout_in = 30.minutes - - # ==> Configuration for :lockable - # Defines which strategy will be used to lock an account. - # :failed_attempts = Locks an account after a number of failed attempts to sign in. - # :none = No lock strategy. You should handle locking by yourself. - # config.lock_strategy = :failed_attempts - - # Defines which key will be used when locking and unlocking an account - # config.unlock_keys = [:email] - - # Defines which strategy will be used to unlock an account. - # :email = Sends an unlock link to the user email - # :time = Re-enables login after a certain amount of time (see :unlock_in below) - # :both = Enables both strategies - # :none = No unlock strategy. You should handle unlocking by yourself. - # config.unlock_strategy = :both - - # Number of authentication tries before locking an account if lock_strategy - # is failed attempts. - config.maximum_attempts = 5 - - # Time interval to unlock the account if :time is enabled as unlock_strategy. - config.unlock_in = 1.hour - - # Warn on the last attempt before the account is locked. - config.last_attempt_warning = true - - # ==> Configuration for :recoverable - # - # Defines which key will be used when recovering the password for an account - # config.reset_password_keys = [:email] - - # Time interval you can reset your password with a reset password key. - # Don't put a too small interval or your users won't have the time to - # change their passwords. - config.reset_password_within = 6.hours - - # When set to false, does not sign a user in automatically after their password is - # reset. Defaults to true, so a user is signed in automatically after a reset. - # config.sign_in_after_reset_password = true - - # ==> Configuration for :encryptable - # Allow you to use another hashing or encryption algorithm besides bcrypt (default). - # You can use :sha1, :sha512 or algorithms from others authentication tools as - # :clearance_sha1, :authlogic_sha512 (then you should set stretches above to 20 - # for default behavior) and :restful_authentication_sha1 (then you should set - # stretches to 10, and copy REST_AUTH_SITE_KEY to pepper). - # - # Require the `devise-encryptable` gem when using anything other than bcrypt - # config.encryptor = :sha512 - - # ==> Scopes configuration - # Turn scoped views on. Before rendering "sessions/new", it will first check for - # "users/sessions/new". It's turned off by default because it's slower if you - # are using only default views. - # config.scoped_views = false - - # Configure the default scope given to Warden. By default it's the first - # devise role declared in your routes (usually :user). - # config.default_scope = :user - - # Set this configuration to false if you want /users/sign_out to sign out - # only the current scope. By default, Devise signs out all scopes. - # config.sign_out_all_scopes = true - - # ==> Navigation configuration - # Lists the formats that should be treated as navigational. Formats like - # :html, should redirect to the sign in page when the user does not have - # access, but formats like :xml or :json, should return 401. - # - # If you have any extra navigational formats, like :iphone or :mobile, you - # should add them to the navigational formats lists. - # - # The "*/*" below is required to match Internet Explorer requests. - # config.navigational_formats = ['*/*', :html] - - # The default HTTP method used to sign out a resource. Default is :delete. - config.sign_out_via = :delete - - # ==> Warden configuration - # If you want to use other strategies, that are not supported by Devise, or - # change the failure app, you can configure them inside the config.warden block. - # - # config.warden do |manager| - # manager.intercept_401 = false - # manager.default_strategies(scope: :user).unshift :some_external_strategy - # end - - # ==> Mountable engine configurations - # When using Devise inside an engine, let's call it `MyEngine`, and this engine - # is mountable, there are some extra configurations to be taken into account. - # The following options are available, assuming the engine is mounted as: - # - # mount MyEngine, at: '/my_engine' - # - # The router that invoked `devise_for`, in the example above, would be: - # config.router_name = :my_engine - - # ==> OmniAuth - # Add a new OmniAuth provider. Check the wiki for more information on setting - # up on your models and hooks. - # config.omniauth :github, 'APP_ID', 'APP_SECRET', scope: 'user,public_repo' - - # 飞书 - feishu = Setting.feishu - if defined?(OmniAuth::Strategies::Feishu) && feishu[:enabled] - config.omniauth :feishu, feishu[:app_id], feishu[:app_secret] - end - - # Google OAuth - google_oauth = Setting.google_oauth - if defined?(OmniAuth::Strategies::GoogleOauth2) && google_oauth[:enabled] - config.omniauth :google_oauth2, google_oauth[:client_id], google_oauth[:secret], - skip_jwt: true, prompt: 'select_account', access_type: 'offline', - scope: 'email,profile' - end - - # LDAP - ldap = Setting.ldap - if defined?(OmniAuth::Strategies::LDAP) && ldap[:ldap_enabled] - config.omniauth :ldap, title: 'Zealot LDAP 认证登录', - host: ldap[:ldap_host], port: ldap[:ldap_port], - method: (ldap[:ldap_method] || 'plain').to_sym, - bind_dn: ldap[:ldap_base_dn], - password: ldap[:ldap_password], - base: ldap[:ldap_base], uid: ldap[:ldap_uid] - end + +Devise.setup do |config| + # The secret key used by Devise. Devise uses this key to generate + # random tokens. Changing this key will render invalid all existing + # confirmation, reset password and unlock tokens in the database. + # Devise will use the `secret_key_base` as its `secret_key` + # by default. You can change it below and use your own secret key. + # config.secret_key = '' + + # ==> Mailer Configuration + # Configure the e-mail address which will be shown in Devise::Mailer, + # note that it will be overwritten if you use your own mailer class + # with default "from" parameter. + # config.mailer_sender = 'no-reply@' + Zealot.config.url_options[:host] + + # Configure the class responsible to send e-mails. + # config.mailer = 'Devise::Mailer' + + # Configure the parent class responsible to send e-mails. + # config.parent_mailer = 'ActionMailer::Base' + + # ==> ORM configuration + # Load and configure the ORM. Supports :active_record (default) and + # :mongoid (bson_ext recommended) by default. Other ORMs may be + # available as additional gems. + require 'devise/orm/active_record' + + # ==> Configuration for any authentication mechanism + # Configure which keys are used when authenticating a user. The default is + # just :email. You can configure it to use [:username, :subdomain], so for + # authenticating a user, both parameters are required. Remember that those + # parameters are used only when authenticating and not when retrieving from + # session. If you need permissions, you should implement that in a before filter. + # You can also supply a hash where the value is a boolean determining whether + # or not authentication should be aborted when the value is not present. + # config.authentication_keys = [:email] + + # Configure parameters from the request object used for authentication. Each entry + # given should be a request method and it will automatically be passed to the + # find_for_authentication method and considered in your model lookup. For instance, + # if you set :request_keys to [:subdomain], :subdomain will be used on authentication. + # The same considerations mentioned for authentication_keys also apply to request_keys. + # config.request_keys = [] + + # Configure which authentication keys should be case-insensitive. + # These keys will be downcased upon creating or modifying a user and when used + # to authenticate or find a user. Default is :email. + config.case_insensitive_keys = [:email] + + # Configure which authentication keys should have whitespace stripped. + # These keys will have whitespace before and after removed upon creating or + # modifying a user and when used to authenticate or find a user. Default is :email. + config.strip_whitespace_keys = [:email] + + # Tell if authentication through request.params is enabled. True by default. + # It can be set to an array that will enable params authentication only for the + # given strategies, for example, `config.params_authenticatable = [:database]` will + # enable it only for database (email + password) authentication. + # config.params_authenticatable = true + + # Tell if authentication through HTTP Auth is enabled. False by default. + # It can be set to an array that will enable http authentication only for the + # given strategies, for example, `config.http_authenticatable = [:database]` will + # enable it only for database authentication. The supported strategies are: + # :database = Support basic authentication with authentication key + password + # config.http_authenticatable = false + + # If 401 status code should be returned for AJAX requests. True by default. + # config.http_authenticatable_on_xhr = true + + # The realm used in Http Basic Authentication. 'Application' by default. + # config.http_authentication_realm = 'Zealot' + + # It will change confirmation, password recovery and other workflows + # to behave the same regardless if the e-mail provided was right or wrong. + # Does not affect registerable. + # config.paranoid = true + + # By default Devise will store the user in session. You can skip storage for + # particular strategies by setting this option. + # Notice that if you are skipping storage for all authentication paths, you + # may want to disable generating routes to Devise's sessions controller by + # passing skip: :sessions to `devise_for` in your config/routes.rb + config.skip_session_storage = [:http_auth] + + # By default, Devise cleans up the CSRF token on authentication to + # avoid CSRF token fixation attacks. This means that, when using AJAX + # requests for sign in and sign up, you need to get a new CSRF token + # from the server. You can disable this option at your own risk. + # config.clean_up_csrf_token_on_authentication = true + + # When false, Devise will not attempt to reload routes on eager load. + # This can reduce the time taken to boot the app but if your application + # requires the Devise mappings to be loaded during boot time the application + # won't boot properly. + # config.reload_routes = true + + # ==> Configuration for :database_authenticatable + # For bcrypt, this is the cost for hashing the password and defaults to 11. If + # using other algorithms, it sets how many times you want the password to be hashed. + # + # Limiting the stretches to just one in testing will increase the performance of + # your test suite dramatically. However, it is STRONGLY RECOMMENDED to not use + # a value less than 10 in other environments. Note that, for bcrypt (the default + # algorithm), the cost increases exponentially with the number of stretches (e.g. + # a value of 20 is already extremely slow: approx. 60 seconds for 1 calculation). + config.stretches = Rails.env.test? ? 1 : 10 + + # Set up a pepper to generate the hashed password. + # config.pepper = 'afb9f9d6fef3af737f6c1ffbf76a92ecea727a79ecd5976107a250420cb439965d89f5721c7052439308133c1b51aec9a61a9fc4f32b658432a1ab859969cd12' + + # Send a notification email when the user's password is changed + config.send_password_change_notification = true + + # ==> Configuration for :confirmable + # A period that the user is allowed to access the website even without + # confirming their account. For instance, if set to 2.days, the user will be + # able to access the website for two days without confirming their account, + # access will be blocked just in the third day. Default is 0.days, meaning + # the user cannot access the website without confirming their account. + # config.allow_unconfirmed_access_for = 2.days + + # A period that the user is allowed to confirm their account before their + # token becomes invalid. For example, if set to 3.days, the user can confirm + # their account within 3 days after the mail was sent, but on the fourth day + # their account can't be confirmed with the token any more. + # Default is nil, meaning there is no restriction on how long a user can take + # before confirming their account. + config.confirm_within = 2.days + + # If true, requires any email changes to be confirmed (exactly the same way as + # initial account confirmation) to be applied. Requires additional unconfirmed_email + # db field (see migrations). Until confirmed, new email is stored in + # unconfirmed_email column, and copied to email column on successful confirmation. + config.reconfirmable = true + + # Defines which key will be used when confirming an account + # config.confirmation_keys = [:email] + + # ==> Configuration for :rememberable + # The time the user will be remembered without asking for credentials again. + config.remember_for = 1.year + + # Invalidates all the remember me tokens when the user signs out. + config.expire_all_remember_me_on_sign_out = true + + # If true, extends the user's remember period when remembered via cookie. + # config.extend_remember_period = false + + # Options to be passed to the created cookie. For instance, you can set + # secure: true in order to force SSL only cookies. + config.rememberable_options = { secure: true } + + # ==> Configuration for :validatable + # Range for password length. + config.password_length = 6..128 + + # Email regex used to validate email formats. It simply asserts that + # one (and only one) @ exists in the given string. This is mainly + # to give user feedback and not to assert the e-mail validity. + # config.email_regexp = /\A[^@\s]+@[^@\s]+\z/ + + # ==> Configuration for :timeoutable + # The time you want to timeout the user session without activity. After this + # time the user will be asked for credentials again. Default is 30 minutes. + # config.timeout_in = 30.minutes + + # ==> Configuration for :lockable + # Defines which strategy will be used to lock an account. + # :failed_attempts = Locks an account after a number of failed attempts to sign in. + # :none = No lock strategy. You should handle locking by yourself. + # config.lock_strategy = :failed_attempts + + # Defines which key will be used when locking and unlocking an account + # config.unlock_keys = [:email] + + # Defines which strategy will be used to unlock an account. + # :email = Sends an unlock link to the user email + # :time = Re-enables login after a certain amount of time (see :unlock_in below) + # :both = Enables both strategies + # :none = No unlock strategy. You should handle unlocking by yourself. + # config.unlock_strategy = :both + + # Number of authentication tries before locking an account if lock_strategy + # is failed attempts. + config.maximum_attempts = 5 + + # Time interval to unlock the account if :time is enabled as unlock_strategy. + config.unlock_in = 1.hour + + # Warn on the last attempt before the account is locked. + config.last_attempt_warning = true + + # ==> Configuration for :recoverable + # + # Defines which key will be used when recovering the password for an account + # config.reset_password_keys = [:email] + + # Time interval you can reset your password with a reset password key. + # Don't put a too small interval or your users won't have the time to + # change their passwords. + config.reset_password_within = 6.hours + + # When set to false, does not sign a user in automatically after their password is + # reset. Defaults to true, so a user is signed in automatically after a reset. + # config.sign_in_after_reset_password = true + + # ==> Configuration for :encryptable + # Allow you to use another hashing or encryption algorithm besides bcrypt (default). + # You can use :sha1, :sha512 or algorithms from others authentication tools as + # :clearance_sha1, :authlogic_sha512 (then you should set stretches above to 20 + # for default behavior) and :restful_authentication_sha1 (then you should set + # stretches to 10, and copy REST_AUTH_SITE_KEY to pepper). + # + # Require the `devise-encryptable` gem when using anything other than bcrypt + # config.encryptor = :sha512 + + # ==> Scopes configuration + # Turn scoped views on. Before rendering "sessions/new", it will first check for + # "users/sessions/new". It's turned off by default because it's slower if you + # are using only default views. + # config.scoped_views = false + + # Configure the default scope given to Warden. By default it's the first + # devise role declared in your routes (usually :user). + # config.default_scope = :user + + # Set this configuration to false if you want /users/sign_out to sign out + # only the current scope. By default, Devise signs out all scopes. + # config.sign_out_all_scopes = true + + # ==> Navigation configuration + # Lists the formats that should be treated as navigational. Formats like + # :html, should redirect to the sign in page when the user does not have + # access, but formats like :xml or :json, should return 401. + # + # If you have any extra navigational formats, like :iphone or :mobile, you + # should add them to the navigational formats lists. + # + # The "*/*" below is required to match Internet Explorer requests. + # config.navigational_formats = ['*/*', :html] + + # The default HTTP method used to sign out a resource. Default is :delete. + config.sign_out_via = :delete + + # ==> Warden configuration + # If you want to use other strategies, that are not supported by Devise, or + # change the failure app, you can configure them inside the config.warden block. + # + # config.warden do |manager| + # manager.intercept_401 = false + # manager.default_strategies(scope: :user).unshift :some_external_strategy + # end + + # ==> Mountable engine configurations + # When using Devise inside an engine, let's call it `MyEngine`, and this engine + # is mountable, there are some extra configurations to be taken into account. + # The following options are available, assuming the engine is mounted as: + # + # mount MyEngine, at: '/my_engine' + # + # The router that invoked `devise_for`, in the example above, would be: + # config.router_name = :my_engine + + # ==> OmniAuth + # Add a new OmniAuth provider. Check the wiki for more information on setting + # up on your models and hooks. + # config.omniauth :github, 'APP_ID', 'APP_SECRET', scope: 'user,public_repo' + + # 飞书 + feishu = Setting.feishu + if defined?(OmniAuth::Strategies::Feishu) && feishu[:enabled] + config.omniauth :feishu, feishu[:app_id], feishu[:app_secret] + end + + # Google OAuth + google_oauth = Setting.google_oauth + if defined?(OmniAuth::Strategies::GoogleOauth2) && google_oauth[:enabled] + config.omniauth :google_oauth2, google_oauth[:client_id], google_oauth[:secret], + skip_jwt: true, prompt: 'select_account', access_type: 'offline', + scope: 'email,profile' + end + + # LDAP + ldap = Setting.ldap + if defined?(OmniAuth::Strategies::LDAP) && ldap[:ldap_enabled] + config.omniauth :ldap, title: 'Zealot LDAP 认证登录', + host: ldap[:ldap_host], port: ldap[:ldap_port], + method: (ldap[:ldap_method] || 'plain').to_sym, + bind_dn: ldap[:ldap_base_dn], + password: ldap[:ldap_password], + base: ldap[:ldap_base], uid: ldap[:ldap_uid] end end From 57eeb10f89a01ec990ea7d4bdbd28f5adfec9da8 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 15 Jul 2021 14:32:10 +0800 Subject: [PATCH 0532/2165] =?UTF-8?q?feat:=20=E6=94=AF=E6=8C=81=20Gitlab?= =?UTF-8?q?=20=E5=AE=98=E6=96=B9=E5=92=8C=E8=87=AA=E5=BB=BA=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1=E7=9A=84=E4=B8=80=E9=94=AE=E7=99=BB=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 1 + Gemfile.lock | 6 +++- .../users/omniauth_callbacks_controller.rb | 4 +++ app/javascript/stylesheets/devise.scss | 18 ++++++++--- app/models/concerns/user_omniauth.rb | 4 +++ app/models/setting.rb | 32 ++++++++++++------- app/models/user.rb | 2 +- app/views/devise/shared/_links.html.slim | 17 +++------- config/initializers/devise.rb | 15 +++++++++ 9 files changed, 69 insertions(+), 30 deletions(-) diff --git a/Gemfile b/Gemfile index 0aff8987f..54d00e4d8 100644 --- a/Gemfile +++ b/Gemfile @@ -47,6 +47,7 @@ gem 'omniauth', '~> 1.9' gem 'omniauth-google-oauth2', '~> 0.8.2' gem 'gitlab_omniauth-ldap', '~> 2.1.1', require: 'omniauth-ldap' gem 'omniauth-feishu', '~> 0.1.6' +gem 'omniauth-gitlab', '~> 2.0.0' ## UDID gem 'openssl', '~> 2.2.0' diff --git a/Gemfile.lock b/Gemfile.lock index dc81e14c8..f871f49b4 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -288,6 +288,9 @@ GEM rack (>= 1.6.2, < 3) omniauth-feishu (0.1.6) omniauth-oauth2 (~> 1.6.0) + omniauth-gitlab (2.0.0) + omniauth (~> 1.0) + omniauth-oauth2 (~> 1.0) omniauth-google-oauth2 (0.8.2) jwt (>= 2.0) oauth2 (~> 1.1) @@ -529,6 +532,7 @@ DEPENDENCIES listen (>= 3.0.5, < 3.6) omniauth (~> 1.9) omniauth-feishu (~> 0.1.6) + omniauth-gitlab (~> 2.0.0) omniauth-google-oauth2 (~> 0.8.2) openssl (~> 2.2.0) pg (>= 0.18, < 2.0) @@ -567,4 +571,4 @@ DEPENDENCIES webpacker (~> 5.4) BUNDLED WITH - 2.2.17 + 2.2.20 diff --git a/app/controllers/users/omniauth_callbacks_controller.rb b/app/controllers/users/omniauth_callbacks_controller.rb index 3d4b393a8..1daa712db 100644 --- a/app/controllers/users/omniauth_callbacks_controller.rb +++ b/app/controllers/users/omniauth_callbacks_controller.rb @@ -13,6 +13,10 @@ def feishu omniauth_callback('飞书', 'feishu_data') end + def gitlab + omniauth_callback('Gitlab', 'gitlab_data') + end + # def failure # flash[:error] = failure_message # flash[:error] = '授权失败!请检查你的账户和密码是否正确,如果输入确认无误还是失败请联系管理员检查配置是否正确' diff --git a/app/javascript/stylesheets/devise.scss b/app/javascript/stylesheets/devise.scss index 256a88124..b932ab0db 100644 --- a/app/javascript/stylesheets/devise.scss +++ b/app/javascript/stylesheets/devise.scss @@ -2,22 +2,32 @@ width: 440px; } -.btn-google { +.btn-auth-google { background-color: #ea4335; color: #fff; } -.btn-google:hover { +.btn-auth-google:hover { background-color: #ba4335; color: #fff; } -.btn-feishu { +.btn-auth-feishu { background-color: #3370ff; color: #fff; } -.btn-feishu:hover { +.btn-auth-feishu:hover { background-color: #2851b3; color: #fff; +} + +.btn-auth-gitlab { + background-color: #fa7035; + color: #fff; +} + +.btn-auth-gitlab:hover { + background-color: #e45432; + color: #fff; } \ No newline at end of file diff --git a/app/models/concerns/user_omniauth.rb b/app/models/concerns/user_omniauth.rb index ebb91be79..f8c5248a4 100644 --- a/app/models/concerns/user_omniauth.rb +++ b/app/models/concerns/user_omniauth.rb @@ -43,4 +43,8 @@ def enabled_ldap? def enabled_feishu? defined?(OmniAuth::Strategies::Feishu) && Setting.feishu[:enabled] end + + def enabled_gitlab? + defined?(OmniAuth::Strategies::GitLab) && Setting.gitlab[:enabled] + end end diff --git a/app/models/setting.rb b/app/models/setting.rb index 4665ce3ce..3b88ba227 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -28,28 +28,36 @@ class Setting < RailsSettings::Base # 第三方登录 scope :third_party_auth do - field :ldap, type: :hash, display: true, default: { - enabled: ENV['LDAP_ENABLED'] || false, - host: ENV['LDAP_HOST'], - port: ENV['LDAP_PORT'], - method: ENV['LDAP_METHOD'], - base_dn: ENV['LDAP_BASE_DN'], - password: ENV['LDAP_PASSWORD'], - base: ENV['LDAP_BASE'], - uid: ENV['LDAP_UID'], - } - field :feishu, type: :hash, display: true, default: { - enabled: ENV['FEISHU_ENABLED'] || false, + enabled: ENV['GITLAB_ENABLED'] || false, app_id: ENV['FEISHU_APP_ID'], app_secret: ENV['FEISHU_APP_SECRET'], } + field :gitlab, type: :hash, display: true, default: { + enabled: ENV['GITLAB_ENABLED'] || false, + site: ENV['GITLAB_SITE'] || 'https://gitlab.com/api/v4', + scope: ENV['GITLAB_SCOPE'] || 'read_user', + app_id: ENV['GITLAB_APP_ID'], + secret: ENV['GITLAB_SECRET'], + } + field :google_oauth, type: :hash, display: true, default: { enabled: ENV['GOOGLE_OAUTH_ENABLED'] || false, client_id: ENV['GOOGLE_CLIENT_ID'], secret: ENV['GOOGLE_SECRET'], } + + field :ldap, type: :hash, display: true, default: { + enabled: ENV['LDAP_ENABLED'] || false, + host: ENV['LDAP_HOST'], + port: ENV['LDAP_PORT'], + method: ENV['LDAP_METHOD'], + base_dn: ENV['LDAP_BASE_DN'], + password: ENV['LDAP_PASSWORD'], + base: ENV['LDAP_BASE'], + uid: ENV['LDAP_UID'], + } end # 邮件配置 diff --git a/app/models/user.rb b/app/models/user.rb index d594296cc..3ddaa9e8c 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -4,7 +4,7 @@ class User < ApplicationRecord extend UserOmniauth devise :database_authenticatable, :registerable, :confirmable, :rememberable, :trackable, :validatable, :recoverable, - :omniauthable, omniauth_providers: %i[google_oauth2 ldap feishu] + :omniauthable, omniauth_providers: %i[feishu gitlab google_oauth2 ldap] include UserRoles enum role: %i[user developer admin] diff --git a/app/views/devise/shared/_links.html.slim b/app/views/devise/shared/_links.html.slim index 5939026e9..5b77df70e 100644 --- a/app/views/devise/shared/_links.html.slim +++ b/app/views/devise/shared/_links.html.slim @@ -4,19 +4,12 @@ - resource_class.oauth_providers.each do |provider| - unless provider == :ldap ruby: - name = omniauth_display_name(provider) - button_style = case provider - when :google_oauth2 - 'btn-google' - when :feishu - 'btn-feishu' - else - 'btn-default' - end + title = omniauth_display_name(provider) + key = title.downcase - a.btn.btn-icon.btn-block href="#{public_send("user_#{provider}_omniauth_authorize_path")}" class="#{button_style}" - i.fab class="fa-#{name.downcase}" - = "使用 #{name} 账号登录" + a.btn.btn-icon.btn-block href="#{public_send("user_#{provider}_omniauth_authorize_path")}" class="btn-default btn-auth-#{key}" + i.fab class="fa-#{key}" + = "使用 #{title} 账号登录" - if controller_name != 'sessions' p.mb-1 diff --git a/config/initializers/devise.rb b/config/initializers/devise.rb index 7e4a62817..de5c8ee85 100644 --- a/config/initializers/devise.rb +++ b/config/initializers/devise.rb @@ -277,6 +277,21 @@ config.omniauth :feishu, feishu[:app_id], feishu[:app_secret] end + # Gitlab + gitlab = Setting.gitlab + if defined?(OmniAuth::Strategies::GitLab) && gitlab[:enabled] + options = { scope: 'read_user' } + if (scope = gitlab[:scope]) && scope.present? + options[:scope] = scope.split(',').map(&:chmop).join(' ') + end + + if (site = gitlab[:site]) && site.present? + options[:client_options] = { site: site } + end + + config.omniauth :gitlab, gitlab[:app_id], gitlab[:secret], options + end + # Google OAuth google_oauth = Setting.google_oauth if defined?(OmniAuth::Strategies::GoogleOauth2) && google_oauth[:enabled] From e054154ae8f2e70728434ae49395f685503ef079 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 15 Jul 2021 15:06:46 +0800 Subject: [PATCH 0533/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=BC=80?= =?UTF-8?q?=E5=90=AF=E9=A3=9E=E4=B9=A6=E7=9A=84=E5=8F=98=E9=87=8F=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/setting.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/setting.rb b/app/models/setting.rb index 3b88ba227..148668174 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -29,7 +29,7 @@ class Setting < RailsSettings::Base # 第三方登录 scope :third_party_auth do field :feishu, type: :hash, display: true, default: { - enabled: ENV['GITLAB_ENABLED'] || false, + enabled: ENV['FEISHU_ENABLED'] || false, app_id: ENV['FEISHU_APP_ID'], app_secret: ENV['FEISHU_APP_SECRET'], } From dccc9b96004bf0fbd228452b028eac201969a2e4 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 15 Jul 2021 15:39:41 +0800 Subject: [PATCH 0534/2165] fix: typo --- config/initializers/devise.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/initializers/devise.rb b/config/initializers/devise.rb index de5c8ee85..2c6b81568 100644 --- a/config/initializers/devise.rb +++ b/config/initializers/devise.rb @@ -282,7 +282,7 @@ if defined?(OmniAuth::Strategies::GitLab) && gitlab[:enabled] options = { scope: 'read_user' } if (scope = gitlab[:scope]) && scope.present? - options[:scope] = scope.split(',').map(&:chmop).join(' ') + options[:scope] = scope.split(',').map(&:chomp).join(' ') end if (site = gitlab[:site]) && site.present? From 05546a0829f8510ec1c50ccce30cfec2c9ceabfa Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 12 Jul 2021 10:52:07 +0800 Subject: [PATCH 0535/2165] release: bump 4.1.0 --- Dockerfile | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index fefd125f3..aafc7151d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -62,7 +62,7 @@ ARG BUILD_DATE ARG VCS_REF ARG TAG -ARG ZEALOT_VERSION="4.0.0" +ARG ZEALOT_VERSION="4.1.0" ARG REPLACE_CHINA_MIRROR="true" ARG ORIGINAL_REPO_URL="dl-cdn.alpinelinux.org" ARG MIRROR_REPO_URL="mirrors.ustc.edu.cn" diff --git a/package.json b/package.json index d2f623e25..2de8b72f0 100644 --- a/package.json +++ b/package.json @@ -13,5 +13,5 @@ "devDependencies": { "webpack-dev-server": "^3.11.2" }, - "version": "4.0.0" + "version": "4.1.0" } From 672ddd9232bb9d9b8919eceafc1e1b948aa9c198 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 12 Jul 2021 14:14:51 +0800 Subject: [PATCH 0536/2165] =?UTF-8?q?doc:=20=E6=9B=B4=E6=96=B0=20README?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index c4fa23c54..fef4331a1 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ [![Codacy Badge](https://api.codacy.com/project/badge/Grade/bcff7d9de5ba48528bc80aa01bd525c6)](https://www.codacy.com/manual/icyleaf/zealot) [![License](https://img.shields.io/github/license/tryzealot/zealot)](LICENSE) -开源自部署移动应用分发平台,提供 iOS、Android SDK、fastlane 等丰富组件库,打包分发流程、上传应用竟然如此简单、解决开发人员频繁打包的烦恼 🖖 +开源自部署移动应用分发平台,提供 iOS、Android SDK、fastlane 等丰富组件库,打包分发流程、上传应用竟然如此简单、解决开发人员频繁打包的烦恼 En Taro Adun! 🖖 ![Zealot Showcase](https://zealot.ews.im/_media/showcase.png) ## 特性 @@ -17,7 +17,7 @@ - [x] 支持单次上传解析 iOS、Android 包甚至是 mobileprovision 文件的信息并存储编译分享他人 - [x] 支持自定义网络钩子(WebHooks)发送给通知各种服务(钉钉、企业微信、Slack 等) - [x] 支持获取 iOS 设备 UDID 及显示该设备可以安装的应用 -- [x] 支持 OAuth 认证登录(目前以接入 Google,LDAP) +- [x] 支持第三方服务的一键登录(目前以接入飞书、Google 和 LDAP) - [x] 提供检查新版本和安装服务的 iOS 和 Android 组件 - [x] 提供 fastlane 插件 [zealot](https://github.com/tryzealot/fastlane-plugin-zealot) 提供上传应用和调试文件服务、同步 iOS 设备 UDID 名单 - [x] 可接入 Gitlab 服务直接挂钩源码管理 From 0ce1a4e867f65147c0c4519f24bcbf480769264a Mon Sep 17 00:00:00 2001 From: icyleaf Date: Sat, 17 Jul 2021 15:08:31 +0800 Subject: [PATCH 0537/2165] =?UTF-8?q?doc:=20=E6=9B=B4=E6=96=B0=E6=94=AF?= =?UTF-8?q?=E6=8C=81=20Gitlab=20=E4=B8=80=E9=94=AE=E7=99=BB=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index fef4331a1..9ea60aa9f 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ - [x] 支持单次上传解析 iOS、Android 包甚至是 mobileprovision 文件的信息并存储编译分享他人 - [x] 支持自定义网络钩子(WebHooks)发送给通知各种服务(钉钉、企业微信、Slack 等) - [x] 支持获取 iOS 设备 UDID 及显示该设备可以安装的应用 -- [x] 支持第三方服务的一键登录(目前以接入飞书、Google 和 LDAP) +- [x] 支持第三方服务的一键登录(目前以接入飞书、Gitlab、Google 和 LDAP) - [x] 提供检查新版本和安装服务的 iOS 和 Android 组件 - [x] 提供 fastlane 插件 [zealot](https://github.com/tryzealot/fastlane-plugin-zealot) 提供上传应用和调试文件服务、同步 iOS 设备 UDID 名单 - [x] 可接入 Gitlab 服务直接挂钩源码管理 From 2ff39a7eeef98d19936629d99218b847a5ad138f Mon Sep 17 00:00:00 2001 From: icyleaf Date: Sat, 17 Jul 2021 16:10:41 +0800 Subject: [PATCH 0538/2165] =?UTF-8?q?chore:=20=E9=95=9C=E5=83=8F=E4=B9=9F?= =?UTF-8?q?=E6=8E=A8=E9=80=81=E5=88=B0=20gcr?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/publish_nighty.yml | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/.github/workflows/publish_nighty.yml b/.github/workflows/publish_nighty.yml index 2b2a862e5..b058cf878 100644 --- a/.github/workflows/publish_nighty.yml +++ b/.github/workflows/publish_nighty.yml @@ -10,14 +10,18 @@ on: branches: - develop jobs: - build: + push_to_registry: + name: Push Docker image to multiple registries runs-on: ubuntu-latest + permissions: + packages: write + contents: read steps: - uses: actions/checkout@master - name: Get build date id: date run: echo "::set-output name=date::$(date +'%Y-%m-%d %H:%M:%S %z')" - - name: Publish to Registry + - name: Publish to Docker Hub Registry uses: elgohr/Publish-Docker-Github-Action@master env: REPLACE_CHINA_MIRROR: false @@ -29,9 +33,22 @@ jobs: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} buildargs: BUILD_DATE,VCS_REF,TAG,REPLACE_CHINA_MIRROR - - name: Docker Hub Description + - name: Update Docker Hub Description uses: peter-evans/dockerhub-description@v2.1.0 env: DOCKERHUB_USERNAME: ${{ secrets.DOCKER_USERNAME }} DOCKERHUB_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} - DOCKERHUB_REPOSITORY: tryzealot/zealot \ No newline at end of file + DOCKERHUB_REPOSITORY: tryzealot/zealot + - name: Publish to Github Hub Registry + uses: elgohr/Publish-Docker-Github-Action@master + env: + REPLACE_CHINA_MIRROR: false + VCS_REF: ${{ github.sha }} + BUILD_DATE: ${{ steps.date.outputs.date }} + TAG: nightly + with: + name: ghcr.io/tryzealot/zealot:${{ env.TAG }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + buildargs: BUILD_DATE,VCS_REF,TAG,REPLACE_CHINA_MIRROR + registry: ghcr.io \ No newline at end of file From 1fae30303f8fc6e78dc7d0cff1bda34f3b668b06 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Sat, 17 Jul 2021 16:25:08 +0800 Subject: [PATCH 0539/2165] =?UTF-8?q?chore:=20=E4=BD=BF=E7=94=A8=20PAT=20?= =?UTF-8?q?=E4=BB=A3=E6=9B=BF=20github=5Ftoken?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/publish_nighty.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish_nighty.yml b/.github/workflows/publish_nighty.yml index b058cf878..fc9114d87 100644 --- a/.github/workflows/publish_nighty.yml +++ b/.github/workflows/publish_nighty.yml @@ -49,6 +49,6 @@ jobs: with: name: ghcr.io/tryzealot/zealot:${{ env.TAG }} username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} + password: ${{ secrets.CR_PAT }} buildargs: BUILD_DATE,VCS_REF,TAG,REPLACE_CHINA_MIRROR registry: ghcr.io \ No newline at end of file From 3326571dae5dded39705d826200dee66117f1386 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Sat, 17 Jul 2021 16:41:37 +0800 Subject: [PATCH 0540/2165] =?UTF-8?q?chore:=20=E5=8F=91=E5=B8=83=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E4=B9=9F=E6=94=AF=E6=8C=81=E6=8E=A8=E9=80=81=E9=95=9C?= =?UTF-8?q?=E5=83=8F=E5=88=B0=20gcr?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/publish_nighty.yml | 28 +++++++++++++-------------- .github/workflows/publish_release.yml | 22 +++++++++++++++++++-- 2 files changed, 34 insertions(+), 16 deletions(-) diff --git a/.github/workflows/publish_nighty.yml b/.github/workflows/publish_nighty.yml index fc9114d87..b6ebabe94 100644 --- a/.github/workflows/publish_nighty.yml +++ b/.github/workflows/publish_nighty.yml @@ -21,6 +21,19 @@ jobs: - name: Get build date id: date run: echo "::set-output name=date::$(date +'%Y-%m-%d %H:%M:%S %z')" + - name: Publish to Github Hub Registry + uses: elgohr/Publish-Docker-Github-Action@master + env: + REPLACE_CHINA_MIRROR: false + VCS_REF: ${{ github.sha }} + BUILD_DATE: ${{ steps.date.outputs.date }} + TAG: nightly + with: + name: ghcr.io/tryzealot/zealot:${{ env.TAG }} + username: ${{ github.actor }} + password: ${{ secrets.CR_PAT }} + buildargs: BUILD_DATE,VCS_REF,TAG,REPLACE_CHINA_MIRROR + registry: ghcr.io - name: Publish to Docker Hub Registry uses: elgohr/Publish-Docker-Github-Action@master env: @@ -38,17 +51,4 @@ jobs: env: DOCKERHUB_USERNAME: ${{ secrets.DOCKER_USERNAME }} DOCKERHUB_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} - DOCKERHUB_REPOSITORY: tryzealot/zealot - - name: Publish to Github Hub Registry - uses: elgohr/Publish-Docker-Github-Action@master - env: - REPLACE_CHINA_MIRROR: false - VCS_REF: ${{ github.sha }} - BUILD_DATE: ${{ steps.date.outputs.date }} - TAG: nightly - with: - name: ghcr.io/tryzealot/zealot:${{ env.TAG }} - username: ${{ github.actor }} - password: ${{ secrets.CR_PAT }} - buildargs: BUILD_DATE,VCS_REF,TAG,REPLACE_CHINA_MIRROR - registry: ghcr.io \ No newline at end of file + DOCKERHUB_REPOSITORY: tryzealot/zealot \ No newline at end of file diff --git a/.github/workflows/publish_release.yml b/.github/workflows/publish_release.yml index 029ba87ef..96268e394 100644 --- a/.github/workflows/publish_release.yml +++ b/.github/workflows/publish_release.yml @@ -6,7 +6,12 @@ on: jobs: build: + push_to_registry: + name: Push Docker image to multiple registries runs-on: ubuntu-latest + permissions: + packages: write + contents: read steps: - uses: actions/checkout@master - name: Get build date @@ -15,7 +20,20 @@ jobs: - name: Get the version id: version run: echo ::set-output name=tag::$(echo ${GITHUB_REF:10}) - - name: Publish to Registry + - name: Publish to Github Hub Registry + uses: elgohr/Publish-Docker-Github-Action@master + env: + REPLACE_CHINA_MIRROR: false + VCS_REF: ${{ github.sha }} + BUILD_DATE: ${{ steps.date.outputs.date }} + TAG: ${{ steps.version.outputs.tag }} + with: + name: ghcr.io/tryzealot/zealot:${{ env.TAG }} + username: ${{ github.actor }} + password: ${{ secrets.CR_PAT }} + buildargs: BUILD_DATE,VCS_REF,TAG,REPLACE_CHINA_MIRROR + registry: ghcr.io + - name: Publish to Docker Registry uses: elgohr/Publish-Docker-Github-Action@master env: REPLACE_CHINA_MIRROR: false @@ -27,7 +45,7 @@ jobs: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} buildargs: BUILD_DATE,VCS_REF,TAG,REPLACE_CHINA_MIRROR - - name: Docker Hub Description + - name: Update Docker Hub Description uses: peter-evans/dockerhub-description@v2.1.0 env: DOCKERHUB_USERNAME: ${{ secrets.DOCKER_USERNAME }} From 854ca994897db70677ce7e7c000cf2282246d4a2 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Sat, 17 Jul 2021 16:51:30 +0800 Subject: [PATCH 0541/2165] =?UTF-8?q?chore:=20=E6=9B=B4=E6=96=B0=20image?= =?UTF-8?q?=20spec=20lable?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Dockerfile b/Dockerfile index aafc7151d..45a56ec38 100644 --- a/Dockerfile +++ b/Dockerfile @@ -72,14 +72,14 @@ ARG RUBY_GEMS="bundler" ARG APP_ROOT=/app ARG S6_OVERLAY_VERSION="2.1.0.1" -LABEL im.ews.zealot.build-date=$BUILD_DATE \ - im.ews.zealot.vcs-ref=$VCS_REF \ - im.ews.zealot.version="$ZEALOT_VERSION-$TAG" \ - im.ews.zealot.name="Zealot" \ - im.ews.zealot.description="Over The Air Server for deployment of Android and iOS apps" \ - im.ews.zealot.url="https://zealot.ews.im/" \ - im.ews.zealot.vcs-url="https://github.com/tryzealot/zealot" \ - im.ews.zealot.maintaner="icyleaf " +LABEL org.opencontainers.image.title="Zealot" \ + org.opencontainers.image.description="Over The Air Server for deployment of Android and iOS apps" \ + org.opencontainers.image.url="https://zealot.ews.im/" \ + org.opencontainers.image.authors="icyleaf " \ + org.opencontainers.image.source="https://github.com/tryzealot/zealot" \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$VCS_REF \ + org.opencontainers.image.version=$ZEALOT_VERSION ENV TZ="Asia/Shanghai" \ PS1="$(whoami)@$(hostname):$(pwd)$ " \ From cb90fe6fced6e0f7e3f24f4651b47427239eaaf0 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Sat, 17 Jul 2021 16:51:30 +0800 Subject: [PATCH 0542/2165] =?UTF-8?q?chore:=20=E6=9B=B4=E6=96=B0=20image?= =?UTF-8?q?=20spec=20lable?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Dockerfile b/Dockerfile index fefd125f3..e95a0128e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -72,14 +72,14 @@ ARG RUBY_GEMS="bundler" ARG APP_ROOT=/app ARG S6_OVERLAY_VERSION="2.1.0.1" -LABEL im.ews.zealot.build-date=$BUILD_DATE \ - im.ews.zealot.vcs-ref=$VCS_REF \ - im.ews.zealot.version="$ZEALOT_VERSION-$TAG" \ - im.ews.zealot.name="Zealot" \ - im.ews.zealot.description="Over The Air Server for deployment of Android and iOS apps" \ - im.ews.zealot.url="https://zealot.ews.im/" \ - im.ews.zealot.vcs-url="https://github.com/tryzealot/zealot" \ - im.ews.zealot.maintaner="icyleaf " +LABEL org.opencontainers.image.title="Zealot" \ + org.opencontainers.image.description="Over The Air Server for deployment of Android and iOS apps" \ + org.opencontainers.image.url="https://zealot.ews.im/" \ + org.opencontainers.image.authors="icyleaf " \ + org.opencontainers.image.source="https://github.com/tryzealot/zealot" \ + org.opencontainers.image.created=$BUILD_DATE \ + org.opencontainers.image.revision=$VCS_REF \ + org.opencontainers.image.version=$ZEALOT_VERSION ENV TZ="Asia/Shanghai" \ PS1="$(whoami)@$(hostname):$(pwd)$ " \ From 232adfa8c1b6820610c03fc637078c23951daaa5 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Sat, 17 Jul 2021 16:52:29 +0800 Subject: [PATCH 0543/2165] chore: fix --- .github/workflows/publish_release.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/publish_release.yml b/.github/workflows/publish_release.yml index 96268e394..a74562460 100644 --- a/.github/workflows/publish_release.yml +++ b/.github/workflows/publish_release.yml @@ -5,7 +5,6 @@ on: - "*" jobs: - build: push_to_registry: name: Push Docker image to multiple registries runs-on: ubuntu-latest From af54560acd8417671ce11e07a5b49cfd7e94145b Mon Sep 17 00:00:00 2001 From: icyleaf Date: Sat, 17 Jul 2021 17:01:21 +0800 Subject: [PATCH 0544/2165] doc:typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9ea60aa9f..9b5bbc9ff 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ - [x] 可接入 Gitlab 服务直接挂钩源码管理 - [ ] 可接入 Jenkins 服务实现远程构建 - [x] 支持丰富的 REST APIs -- [ ] 支持 GraphGL 接口(进行中) +- [ ] 支持 GraphQL 接口(进行中) ## 在线演示 From edf88aa0f14df2d7e1e3cc26b9c10dcea898c014 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Sat, 17 Jul 2021 17:02:16 +0800 Subject: [PATCH 0545/2165] cleanup --- .devcontainer/Dockerfile | 44 -------------------------- .devcontainer/devcontainer.json | 36 ---------------------- .devcontainer/docker-compose.yml | 53 -------------------------------- 3 files changed, 133 deletions(-) delete mode 100755 .devcontainer/Dockerfile delete mode 100755 .devcontainer/devcontainer.json delete mode 100755 .devcontainer/docker-compose.yml diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile deleted file mode 100755 index 13abf2278..000000000 --- a/.devcontainer/Dockerfile +++ /dev/null @@ -1,44 +0,0 @@ -# pre-build stage -ARG VARIANT=2.7 -FROM mcr.microsoft.com/vscode/devcontainers/ruby:${VARIANT} - -# Update args in docker-compose.yaml to set the UID/GID of the "vscode" user. -ARG USER_UID=1000 -ARG USER_GID=$USER_UID -RUN if [ "$USER_GID" != "1000" ] || [ "$USER_UID" != "1000" ]; then \ - groupmod --gid $USER_GID vscode \ - && usermod --uid $USER_UID --gid $USER_GID vscode \ - && chmod -R $USER_UID:$USER_GID /home/vscode; \ - fi - -# [Option] Install Node.js -ARG INSTALL_NODE="true" -ARG NODE_VERSION="lts/*" -RUN if [ "${INSTALL_NODE}" = "true" ]; then su vscode -c "source /usr/local/share/nvm/nvm.sh && nvm install ${NODE_VERSION} 2>&1"; fi - -# tmux is for overmind -# TODO : install foreman in future -# packages: postgresql-server-dev-all -# may be postgres in same machine - -RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \ - && apt-get -y install --no-install-recommends \ - libssl-dev \ - tar \ - tzdata \ - postgresql-client \ - yarn \ - git \ - imagemagick \ - tmux \ - zsh - -WORKDIR /workspace -COPY . /workspace - -COPY Gemfile Gemfile.lock ./ -RUN gem install bundler -RUN bundle install - -COPY package.json yarn.lock ./ -RUN yarn install diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json deleted file mode 100755 index a7e3d019d..000000000 --- a/.devcontainer/devcontainer.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "Zealot Development Codespace", - // "build": { - // "dockerfile": "Dockerfile", - // }, - "service": "app", - "dockerComposeFile": "docker-compose.yml", - "workspaceFolder": "/workspace", - - "settings": { - "terminal.integrated.shell.linux": "/bin/zsh" - }, - - // Add the IDs of extensions you want installed when the container is created. - "extensions": [ - "rebornix.Ruby", - "misogi.ruby-rubocop", - "wingrunr21.vscode-ruby" - ], - - - // TODO: figure whether we can get all this ports work properly - - // 3000 rails - // 3035 webpacker - // 5432 postgres - // 6379 redis - // 1025,8025 mailhog - "forwardPorts": [5432, 6379, 1025, 8025], - //your application may need to listen on all interfaces (0.0.0.0) not just localhost for it to be available externally. Defaults to [] - "appPort": [3000, 3035], - - // Use 'postCreateCommand' to run commands after the container is created. - // #TODO: can we move logic of copy env file into dockerfile ? - // "postCreateCommand": "cp .env.example .env", -} diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml deleted file mode 100755 index 1710eb505..000000000 --- a/.devcontainer/docker-compose.yml +++ /dev/null @@ -1,53 +0,0 @@ -# https://github.com/microsoft/vscode-dev-containers/blob/master/containers/python-3-postgres/.devcontainer/docker-compose.yml -# https://github.com/microsoft/vscode-dev-containers/blob/master/containers/ruby-rails/.devcontainer/devcontainer.json -# - -version: '3' - -services: - app: - build: - context: .. - dockerfile: .devcontainer/Dockerfile - args: - # Update 'VARIANT' to pick a Ruby version: 2, 2.7, 2.6, 2.5 - VARIANT: 2.7 - # [Choice] Install Node.js - INSTALL_NODE: "true" - NODE_VERSION: "lts/*" - # On Linux, you may need to update USER_UID and USER_GID below if not your local UID is not 1000. - USER_UID: 1000 - USER_GID: 1000 - - volumes: - - ..:/workspace:cached - - # Overrides default command so things don't shut down after the process ends. - command: sleep infinity - - ports: - - 3001:3000 - - # Runs app on the same network as the database container, allows "forwardPorts" in devcontainer.json function. - network_mode: service:db - - db: - image: postgres:latest - restart: unless-stopped - volumes: - - postgres-data:/var/lib/postgresql/data - environment: - POSTGRES_USER: postgres - POSTGRES_DB: postgres - POSTGRES_PASSWORD: postgres - - redis: - image: redis:latest - restart: unless-stopped - network_mode: service:db - volumes: - - redis-data:/data - -volumes: - postgres-data: - redis-data: From da43eae81d811f9e6c30dd94b0dfd51161af998e Mon Sep 17 00:00:00 2001 From: icyleaf Date: Sat, 17 Jul 2021 17:19:00 +0800 Subject: [PATCH 0546/2165] =?UTF-8?q?chore:=20=E6=9B=BF=E6=8D=A2=E5=8F=91?= =?UTF-8?q?=E5=B8=83=E6=96=B0=E7=89=88=E6=9C=AC=E7=9A=84=20action=20(?= =?UTF-8?q?=E5=AE=98=E6=96=B9=E4=B8=8D=E5=86=8D=E7=BB=B4=E6=8A=A4=E6=94=B9?= =?UTF-8?q?=E7=94=A8=E6=B0=91=E9=97=B4)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/publish_release.yml | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/.github/workflows/publish_release.yml b/.github/workflows/publish_release.yml index a74562460..957dd83d0 100644 --- a/.github/workflows/publish_release.yml +++ b/.github/workflows/publish_release.yml @@ -51,12 +51,7 @@ jobs: DOCKERHUB_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} DOCKERHUB_REPOSITORY: tryzealot/zealot - name: Create Release - id: create_release - uses: actions/create-release@v1 + uses: softprops/action-gh-release@v1 + if: startsWith(github.ref, 'refs/tags/') env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - tag_name: ${{ github.ref }} - release_name: ${{ steps.version.outputs.tag }} - draft: false - prerelease: false \ No newline at end of file + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file From eb25567ddfd3ac0b5fb3dddb082663b7ec07f3a8 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Sat, 17 Jul 2021 17:28:34 +0800 Subject: [PATCH 0547/2165] =?UTF-8?q?chore:=20=E5=8F=91=E5=B8=83=E6=96=B0?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E4=BD=BF=E7=94=A8=20PAT?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/publish_release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish_release.yml b/.github/workflows/publish_release.yml index 957dd83d0..b7307f6b7 100644 --- a/.github/workflows/publish_release.yml +++ b/.github/workflows/publish_release.yml @@ -54,4 +54,4 @@ jobs: uses: softprops/action-gh-release@v1 if: startsWith(github.ref, 'refs/tags/') env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file + GITHUB_TOKEN: ${{ secrets.CR_PAT }} \ No newline at end of file From e550eda1c44d79d3a1c5d33e1ce334239353b870 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 20 Jul 2021 17:09:19 +0800 Subject: [PATCH 0548/2165] =?UTF-8?q?feat:=20=E6=B8=A0=E9=81=93=E8=AF=A6?= =?UTF-8?q?=E6=83=85=E5=9C=A8=E6=89=8B=E6=9C=BA=E4=B8=8A=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E7=AD=9B=E9=80=89=E6=B8=A0=E9=81=93=E5=92=8C=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E7=9A=84=E9=80=89=E6=8B=A9=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/channels_controller.rb | 1 + app/javascript/packs/application.js | 4 +-- app/javascript/stylesheets/application.scss | 3 +++ app/javascript/stylesheets/channel.scss | 5 ++++ app/models/channel.rb | 27 ++++++++++--------- app/views/channels/_channels.html.slim | 2 +- app/views/channels/_metadata.slim | 25 ++++++++++------- app/views/channels/_mobile_menu.html.slim | 19 +++++++++++++ app/views/channels/_schemes.html.slim | 2 +- app/views/channels/_versions.html.slim | 18 +++++-------- app/views/channels/show.html.slim | 3 ++- .../locales/simple_form/simple_form.zh-CN.yml | 2 +- 12 files changed, 71 insertions(+), 40 deletions(-) mode change 100644 => 100755 app/models/channel.rb mode change 100644 => 100755 app/views/channels/_channels.html.slim create mode 100755 app/views/channels/_mobile_menu.html.slim mode change 100644 => 100755 app/views/channels/_schemes.html.slim mode change 100644 => 100755 app/views/channels/_versions.html.slim mode change 100644 => 100755 app/views/channels/show.html.slim diff --git a/app/controllers/channels_controller.rb b/app/controllers/channels_controller.rb index e87428e87..1642d03e5 100644 --- a/app/controllers/channels_controller.rb +++ b/app/controllers/channels_controller.rb @@ -11,6 +11,7 @@ def show .page(params.fetch(:page, 1)) .per(params.fetch(:per_page, 10)) .order(id: :desc) + @versions = @channel.release_versions(5) end def new diff --git a/app/javascript/packs/application.js b/app/javascript/packs/application.js index 128fc4bf3..831b803a9 100644 --- a/app/javascript/packs/application.js +++ b/app/javascript/packs/application.js @@ -16,8 +16,8 @@ const images = require.context("../images", true); const imagePath = (name) => images(name, true); // Import CSS -import "bootstrap/dist/css/bootstrap"; -import "admin-lte/dist/css/adminlte"; +// import "bootstrap/dist/css/bootstrap"; +// import "admin-lte/dist/css/adminlte"; import "@fortawesome/fontawesome-free/css/all"; import "stylesheets/application"; diff --git a/app/javascript/stylesheets/application.scss b/app/javascript/stylesheets/application.scss index 5f1f75e90..550dfa7f0 100644 --- a/app/javascript/stylesheets/application.scss +++ b/app/javascript/stylesheets/application.scss @@ -1,3 +1,6 @@ +@import "~bootstrap/scss/bootstrap.scss"; +@import "~admin-lte/build/scss/adminlte.scss"; + @import 'layout'; @import 'dashboard'; @import 'app'; diff --git a/app/javascript/stylesheets/channel.scss b/app/javascript/stylesheets/channel.scss index f4d4d072d..4c3d1f737 100644 --- a/app/javascript/stylesheets/channel.scss +++ b/app/javascript/stylesheets/channel.scss @@ -9,4 +9,9 @@ margin-right: 10px; } } +} + +.filter-nav { + // border: 1px solid #000; + @extend .card !optional; } \ No newline at end of file diff --git a/app/models/channel.rb b/app/models/channel.rb old mode 100644 new mode 100755 index bdcc14486..3a697811c --- a/app/models/channel.rb +++ b/app/models/channel.rb @@ -39,19 +39,20 @@ def app_name "#{app.name} #{scheme.name} #{name}" end - def release_versions - releases.select(:release_version) - .group(:release_version) - .map(&:release_version) - .sort do |a,b| - begin - Gem::Version.new(b) <=> Gem::Version.new(a) - rescue ArgumentError => e - # Note: 处理版本号是 android-1.2.3 类似非标版本号的异常,如有发现就放最后面 - # 后续如果有人反馈问题多了再说,看到本注释的请告知遵守版本号标准 - e.message.include?(a) ? 1 : -1 - end - end + def release_versions(limit = 10) + versions = releases.select(:release_version) + .group(:release_version) + .map(&:release_version) + .sort do |a,b| + begin + Gem::Version.new(b) <=> Gem::Version.new(a) + rescue ArgumentError => e + # Note: 处理版本号是 android-1.2.3 类似非标版本号的异常,如有发现就放最后面 + # 后续如果有人反馈问题多了再说,看到本注释的请告知遵守版本号标准 + e.message.include?(a) ? 1 : -1 + end + end + versions.size >= limit ? versions[0..limit - 1] : versions end def release_version_count(version) diff --git a/app/views/channels/_channels.html.slim b/app/views/channels/_channels.html.slim old mode 100644 new mode 100755 index 59272ca19..febb6686c --- a/app/views/channels/_channels.html.slim +++ b/app/views/channels/_channels.html.slim @@ -1,4 +1,4 @@ -.card.card-solid +.card.card-solid.d-none.d-sm-block .card-header h3.card-title 渠道 .card-body.p-0 diff --git a/app/views/channels/_metadata.slim b/app/views/channels/_metadata.slim index 96f156371..4f6f136db 100644 --- a/app/views/channels/_metadata.slim +++ b/app/views/channels/_metadata.slim @@ -2,9 +2,9 @@ .card-header h3.card-title 渠道信息 .card-body.p-0.pt-3 - p.d-flex.flex-column.border-bottom.pl-3.pb-3 - span.font-weight-bold = @channel.releases.count - span.text-muted 上传版本 + p.d-flex.flex-column.border-bottom.pl-3.pb-3.pt-3 + span.font-weight-bold = @channel.device_type.capitalize + span.text-muted 设备类型 p.d-flex.flex-column.border-bottom.pl-3.pb-3 span.font-weight-bold = @channel.slug span.text-muted 唯一地址 @@ -12,12 +12,6 @@ p.d-flex.flex-column.border-bottom.pl-3.pb-3 span.font-weight-bold = @channel.password.blank? ? '未设置' : @channel.password span.text-muted 访问密码 - p.d-flex.flex-column.border-bottom.pl-3.pb-3 - span.font-weight-bold = @channel.key - span.text-muted 渠道 KEY - p.d-flex.flex-column.border-bottom.pl-3.pb-3.pt-3 - span.font-weight-bold = @channel.device_type.capitalize - span.text-muted 设备类型 p.d-flex.flex-column.border-bottom.pl-3.pb-3 span.font-weight-bold = @channel.bundle_id span.text-muted @@ -25,7 +19,18 @@ - if @channel.bundle_id == '*' | (不限制上传包的包名) p.d-flex.flex-column.border-bottom.pl-3.pb-3 - span.font-weight-bold = @channel.git_url.blank? ? '未设置' : @channel.git_url + span.font-weight-bold + - if @channel.git_url.blank? + | 未设置 ( + = link_to '修改', edit_app_scheme_channel_path(@channel.app, @channel.scheme, @channel) + | ) + - else @channel.git_url span.text-muted Git 仓库地址 + p.d-flex.flex-column.border-bottom.pl-3.pb-3 + span.font-weight-bold = @channel.releases.count + span.text-muted 上传版本 + p.d-flex.flex-column.border-bottom.pl-3.pb-3 + span.font-weight-bold = @channel.key + span.text-muted 渠道 KEY .card-footbar.pl-3.pr-3.pb-3 a.btn.btn-default.btn-block href="#{app_path(@channel.app)}" 应用管理 \ No newline at end of file diff --git a/app/views/channels/_mobile_menu.html.slim b/app/views/channels/_mobile_menu.html.slim new file mode 100755 index 000000000..460245078 --- /dev/null +++ b/app/views/channels/_mobile_menu.html.slim @@ -0,0 +1,19 @@ +nav.filter-nav.navbar.navbar-expand.navbar-white.d-block.d-sm-none + ul.navbar-nav + li.nav-item.dropdown + a#dropdownSubMenu1.nav-link.dropdown-toggle aria-expanded="false" aria-haspopup="true" data-toggle="dropdown" href="#" + = @channel.scheme.name + ul.dropdown-menu.border-0.shadow aria-labelledby="dropdownSubMenu1" style=("left: 0px; right: inherit;") + - @app.schemes.each do |scheme| + - if scheme != @channel.scheme + li + = link_to scheme.name, app_scheme_path(@app, scheme), class: "dropdown-item" + + li.nav-item.dropdown + a#dropdownSubMenu1.nav-link.dropdown-toggle aria-expanded="false" aria-haspopup="true" data-toggle="dropdown" href="#" + = display_app_device(@channel) + ul.dropdown-menu.border-0.shadow aria-labelledby="dropdownSubMenu1" style=("left: 0px; right: inherit;") + - @channel.scheme.channels.each do |channel| + - if channel != @channel + li + = link_to display_app_device(channel), channel_path(channel), class: "dropdown-item" diff --git a/app/views/channels/_schemes.html.slim b/app/views/channels/_schemes.html.slim old mode 100644 new mode 100755 index 8977d86af..e239836af --- a/app/views/channels/_schemes.html.slim +++ b/app/views/channels/_schemes.html.slim @@ -1,7 +1,7 @@ ruby: @schemes = @app.schemes -.card.card-solid +.card.card-solid.d-none.d-sm-block .card-header h3.card-title 应用类型 .card-body.p-0 diff --git a/app/views/channels/_versions.html.slim b/app/views/channels/_versions.html.slim old mode 100644 new mode 100755 index 1cb22e241..c7a76a9e1 --- a/app/views/channels/_versions.html.slim +++ b/app/views/channels/_versions.html.slim @@ -1,21 +1,13 @@ .card.card-solid .card-header - h3.card-title - | 历史版本 - small - | ( - = link_to '全部', channel_versions_path(@channel) - | ) - .card-tools - span.badge.bg-yellow - = link_to @channel.releases.count, channel_versions_path(@channel) + h3.card-title 近期版本 .card-body.table-responsive.p-0 - - if @channel.release_versions.count > 0 + - if @versions.count > 0 table.table.table-striped.table-borderd tr th 主版本号 th 版本数量 - - @channel.release_versions.each do |version| + - @versions.each do |version| tr td = link_to version, channel_version_path(@channel, version) @@ -24,3 +16,7 @@ - else .p-3 | 暂无版本 + - if @versions.count > 0 + .card-footbar + a.btn.btn-default.btn-block href="#{channel_versions_path(@channel)}" + | 查看更多 diff --git a/app/views/channels/show.html.slim b/app/views/channels/show.html.slim old mode 100644 new mode 100755 index 22b69ca3a..a5ebb0efd --- a/app/views/channels/show.html.slim +++ b/app/views/channels/show.html.slim @@ -8,6 +8,7 @@ .row .col-md-8 + == render 'mobile_menu' == render 'activity' - if current_user&.manage? == render 'web_hooks' @@ -17,4 +18,4 @@ == render 'schemes' == render 'channels' == render 'versions' - == render 'metadata' \ No newline at end of file + == render 'metadata' diff --git a/config/locales/simple_form/simple_form.zh-CN.yml b/config/locales/simple_form/simple_form.zh-CN.yml index 20f3bbf46..b2e1adf56 100644 --- a/config/locales/simple_form/simple_form.zh-CN.yml +++ b/config/locales/simple_form/simple_form.zh-CN.yml @@ -32,7 +32,7 @@ zh-CN: name: '渠道名称' device_type: '应用平台' bundle_id: '校验包名' - git_url: 'Git URL' + git_url: 'Git 仓库地址' slug: '唯一地址' password: '访问密码' release: From ee2490e114c329580ddd056bbea5be233a3b5dfe Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 22 Jul 2021 21:01:09 +0000 Subject: [PATCH 0549/2165] chore(deps): bump sys-filesystem from 1.4.1 to 1.4.2 Bumps [sys-filesystem](https://github.com/djberg96/sys-filesystem) from 1.4.1 to 1.4.2. - [Release notes](https://github.com/djberg96/sys-filesystem/releases) - [Changelog](https://github.com/djberg96/sys-filesystem/blob/main/CHANGES.md) - [Commits](https://github.com/djberg96/sys-filesystem/compare/sys-filesystem-1.4.1...sys-filesystem-1.4.2) --- updated-dependencies: - dependency-name: sys-filesystem dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 327b280ca..cab73f7ae 100644 --- a/Gemfile +++ b/Gemfile @@ -54,7 +54,7 @@ gem 'openssl', '~> 2.2.0' gem 'plist', '~> 3.6.0' ## 系统信息 -gem 'sys-filesystem', '~> 1.4.1' +gem 'sys-filesystem', '~> 1.4.2' gem 'vmstat', '~> 2.3.0' gem 'pghero' gem 'active_analytics' diff --git a/Gemfile.lock b/Gemfile.lock index 36d876aeb..572cf728b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -456,7 +456,7 @@ GEM activesupport (>= 4.0) sprockets (>= 3.0.0) ssrf_filter (1.0.7) - sys-filesystem (1.4.1) + sys-filesystem (1.4.2) ffi (~> 1.1) temple (0.8.2) terminal-notifier (2.0.0) @@ -562,7 +562,7 @@ DEPENDENCIES slim-rails (~> 3.2.0) spring spring-watcher-listen (~> 2.0.0) - sys-filesystem (~> 1.4.1) + sys-filesystem (~> 1.4.2) terminal-notifier terminal-notifier-guard turbolinks (~> 5) From 33364e60965830a53e3c621b2c1c4076324026c7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 22 Jul 2021 21:01:59 +0000 Subject: [PATCH 0550/2165] chore(deps): bump graphql from 1.12.13 to 1.12.14 Bumps [graphql](https://github.com/rmosolgo/graphql-ruby) from 1.12.13 to 1.12.14. - [Release notes](https://github.com/rmosolgo/graphql-ruby/releases) - [Changelog](https://github.com/rmosolgo/graphql-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/rmosolgo/graphql-ruby/compare/v1.12.13...v1.12.14) --- updated-dependencies: - dependency-name: graphql dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 327b280ca..89f4b2d9a 100644 --- a/Gemfile +++ b/Gemfile @@ -15,7 +15,7 @@ gem 'redis', '~> 4.3.1' # API gem 'active_model_serializers', '~> 0.10.12' -gem 'graphql', '~> 1.12.13' +gem 'graphql', '~> 1.12.14' gem 'rack-cors', '~> 1.1.1' gem 'health_check', '~> 3.1.0' diff --git a/Gemfile.lock b/Gemfile.lock index 36d876aeb..7a8b77bec 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -167,7 +167,7 @@ GEM rubyntlm (~> 0.5) globalid (0.4.2) activesupport (>= 4.2.0) - graphql (1.12.13) + graphql (1.12.14) guard (2.17.0) formatador (>= 0.2.4) listen (>= 2.7, < 4.0) @@ -515,7 +515,7 @@ DEPENDENCIES dotenv-rails friendly_id (~> 5.4.2) gitlab_omniauth-ldap (~> 2.1.1) - graphql (~> 1.12.13) + graphql (~> 1.12.14) guard (~> 2.17.0) guard-bundler guard-migrate From edd657c4fd0fa728553ad1f5557452402cf10f73 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 23 Jul 2021 02:01:52 +0000 Subject: [PATCH 0551/2165] chore(deps): bump slim-rails from 3.2.0 to 3.3.0 Bumps [slim-rails](https://github.com/slim-template/slim-rails) from 3.2.0 to 3.3.0. - [Release notes](https://github.com/slim-template/slim-rails/releases) - [Changelog](https://github.com/slim-template/slim-rails/blob/v3.3.0/CHANGELOG.md) - [Commits](https://github.com/slim-template/slim-rails/compare/v3.2.0...v3.3.0) --- updated-dependencies: - dependency-name: slim-rails dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index cab73f7ae..27b400b71 100644 --- a/Gemfile +++ b/Gemfile @@ -22,7 +22,7 @@ gem 'health_check', '~> 3.1.0' # View ## 模板引擎 gem 'jb', '~> 0.8.0' -gem 'slim-rails', '~> 3.2.0' +gem 'slim-rails', '~> 3.3.0' ## 表单生成 gem 'simple_form', '~> 5.1' diff --git a/Gemfile.lock b/Gemfile.lock index 572cf728b..4f5d40e50 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -439,7 +439,7 @@ GEM slim (4.1.0) temple (>= 0.7.6, < 0.9) tilt (>= 2.0.6, < 2.1) - slim-rails (3.2.0) + slim-rails (3.3.0) actionpack (>= 3.1) railties (>= 3.1) slim (>= 3.0, < 5.0) @@ -559,7 +559,7 @@ DEPENDENCIES sidekiq (~> 6.2.1) sidekiq-scheduler (~> 3.1.0) simple_form (~> 5.1) - slim-rails (~> 3.2.0) + slim-rails (~> 3.3.0) spring spring-watcher-listen (~> 2.0.0) sys-filesystem (~> 1.4.2) From f95367fedfa356cb6425750e7592a95c075f7d2e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 23 Jul 2021 02:02:15 +0000 Subject: [PATCH 0552/2165] chore(deps-dev): bump listen from 3.5.1 to 3.6.0 Bumps [listen](https://github.com/guard/listen) from 3.5.1 to 3.6.0. - [Release notes](https://github.com/guard/listen/releases) - [Commits](https://github.com/guard/listen/compare/v3.5.1...v3.6.0) --- updated-dependencies: - dependency-name: listen dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index cab73f7ae..9407b3337 100644 --- a/Gemfile +++ b/Gemfile @@ -90,7 +90,7 @@ gem 'bootsnap', '>= 1.4.7', require: false group :development do # 调试控制台 - gem 'listen', '>= 3.0.5', '< 3.6' + gem 'listen', '>= 3.0.5', '< 3.7' gem 'web-console', '>= 3.3.0' # 调试器 diff --git a/Gemfile.lock b/Gemfile.lock index 572cf728b..f4b2ae525 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -244,7 +244,7 @@ GEM actionmailer (>= 3.2) letter_opener (~> 1.0) railties (>= 3.2) - listen (3.5.1) + listen (3.6.0) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) llhttp-ffi (0.3.1) @@ -529,7 +529,7 @@ DEPENDENCIES kaminari letter_opener (~> 1.7) letter_opener_web (~> 1.4) - listen (>= 3.0.5, < 3.6) + listen (>= 3.0.5, < 3.7) omniauth (~> 1.9) omniauth-feishu (~> 0.1.6) omniauth-gitlab (~> 2.0.0) From 5eda42798c5bb91f43a5c3a423068e7e08e9bf3e Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 23 Jul 2021 18:07:29 +0800 Subject: [PATCH 0553/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E7=AC=AC=E4=B8=89=E6=96=B9=E7=99=BB=E5=BD=95=E6=97=B6?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E5=B7=B2=E6=B3=A8=E5=86=8C=E4=BD=86=E6=9C=AA?= =?UTF-8?q?=E9=AA=8C=E8=AF=81=E9=80=A0=E6=88=90=E6=97=A0=E6=B3=95=E7=99=BB?= =?UTF-8?q?=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../users/omniauth_callbacks_controller.rb | 27 +++++--------- app/models/concerns/user_omniauth.rb | 15 ++++---- app/models/user_provider.rb | 35 +++++++++---------- 3 files changed, 33 insertions(+), 44 deletions(-) diff --git a/app/controllers/users/omniauth_callbacks_controller.rb b/app/controllers/users/omniauth_callbacks_controller.rb index 1daa712db..dcbd89c43 100644 --- a/app/controllers/users/omniauth_callbacks_controller.rb +++ b/app/controllers/users/omniauth_callbacks_controller.rb @@ -27,41 +27,30 @@ def gitlab def omniauth_callback(name, session_key) auth = request.env['omniauth.auth'] - provider = UserProvider.initialize_from_omniauth(auth) + # binding.pry + provider = UserProvider.find_by(name: auth.provider, uid: auth.uid) # Existed provider? - if provider.persisted? - provider.save + if provider + provider.update_omniauth(auth.credentials) - flash[:notice] = "#{name}账户授权并登录成功" + flash[:notice] = "#{name}账户已登录" return sign_in_and_redirect provider.user end if user_signed_in? # Connect provider to existed user omni_params = request.env['omniauth.params'] - current_user.providers.create(provider) + current_user.providers.from_omniauth(auth) bypass_sign_in(current_user) redirect_path = omni_params['back'].presence || root_path - redirect_to redirect_path, notice: '#{name}账户关联成功' + redirect_to redirect_path, notice: "#{name}账户已关联" else # New user logged in with provider user = User.from_omniauth(auth) - flash[:notice] = "#{name}账户授权并登录成功" + flash[:notice] = "#{name}账户已授权并创建用户" sign_in_and_redirect user end end - - def provider_attributes(auth) - credentials = auth.credentials - - { - name: auth.provider, - uid: auth.uid, - token: credentials.token, - expires_at: credentials.expires_at, - secret: credentials.secret - } - end end diff --git a/app/models/concerns/user_omniauth.rb b/app/models/concerns/user_omniauth.rb index f8c5248a4..ebcfaa7b2 100644 --- a/app/models/concerns/user_omniauth.rb +++ b/app/models/concerns/user_omniauth.rb @@ -5,18 +5,21 @@ module UserOmniauth def from_omniauth(auth) email = auth.info.email - username = auth.info.name password = Devise.friendly_token[0, 20] - user = User.find_by(email: email) - - return user unless user.nil? + user = User.find_or_initialize_by(email: auth.info.email) do |u| + u.username = auth.info.name + u.password = password + end + new_record = user.new_record? - user = User.new(email: email, username: username, password: password) user.skip_confirmation! user.remember_me! user.save!(validate: false) - UserProvider.create_from_omniauth(auth, user) + user.providers.from_omniauth(auth) + + return user unless new_record + UserMailer.omniauth_welcome_email(user, password).deliver_later user diff --git a/app/models/user_provider.rb b/app/models/user_provider.rb index 55eca9218..56fcb9f5c 100644 --- a/app/models/user_provider.rb +++ b/app/models/user_provider.rb @@ -3,26 +3,23 @@ class UserProvider < ApplicationRecord belongs_to :user - def self.initialize_from_omniauth(auth) - UserProvider.where(name: auth.provider, uid: auth.uid).first_or_initialize do |provider| - credentials = auth.credentials - - provider.token = credentials.token - provider.expires = credentials.expires - provider.expires_at = credentials.expires_at - provider.refresh_token = credentials.refresh_token - end + def self.from_omniauth(auth) + credentials = auth.credentials + provider = find_or_create_by(name: auth.provider, uid: auth.uid) + provider.update!( + token: credentials.token, + expires: credentials.expires, + expires_at: credentials.expires_at, + refresh_token: credentials.refresh_token + ) end - def self.create_from_omniauth(auth, user) - UserProvider.where(name: auth.provider, uid: auth.uid).first_or_create do |provider| - credentials = auth.credentials - - provider.user = user - provider.token = credentials.token - provider.expires = credentials.expires - provider.expires_at = credentials.expires_at - provider.refresh_token = credentials.refresh_token - end + def update_omniauth(credentials) + update( + token: credentials.token, + expires: credentials.expires, + expires_at: credentials.expires_at, + refresh_token: credentials.refresh_token + ) end end From d12d42350d32218e765c0991e084278482fa7fd1 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 23 Jul 2021 18:25:17 +0800 Subject: [PATCH 0554/2165] =?UTF-8?q?chore:=20mac=20=E5=88=A4=E6=96=AD?= =?UTF-8?q?=E6=96=B9=E6=B3=95=E5=A2=9E=E5=8A=A0=20M1=20UA=20=E5=A4=87?= =?UTF-8?q?=E6=B3=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/application_helper.rb | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 5e3918c9f..b5f3aca07 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -85,6 +85,15 @@ def wechat? user_agent.include?('MicroMessenger') end + # FIXME: 后续 mac? 和 ios? 需要解决 iPad 和 M1 的判断,要不然根本解决 + + def mac? + # Intel: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36 + # Arm M1: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36 + source ||= user_agent + source.downcase.include?('macintosh') + end + def ios?(source = nil) # iPadOS: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0 Safari/605.1.15 source ||= user_agent @@ -100,12 +109,6 @@ def phone? ios? || android? end - def mac? - # Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36 - source ||= user_agent - source.downcase.include?('macintosh') - end - # 检查移动设备 def detect_device(device) if ios?(user_agent) && ios?(device) From 45e12e6b5e5a2780ed2e901f09b540267375f1eb Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 23 Jul 2021 18:27:08 +0800 Subject: [PATCH 0555/2165] =?UTF-8?q?fix:=20=E9=80=9A=E8=BF=87=20web=20?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E5=BA=94=E7=94=A8=E6=B2=A1=E6=9C=89=E8=A7=A6?= =?UTF-8?q?=E5=8F=91=E8=A7=A3=E6=9E=90=20app=20=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/releases_controller.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/controllers/releases_controller.rb b/app/controllers/releases_controller.rb index f07f4976b..de571a011 100644 --- a/app/controllers/releases_controller.rb +++ b/app/controllers/releases_controller.rb @@ -31,6 +31,8 @@ def create # 触发异步任务 @release.channel.perform_web_hook('upload_events') + + TeardownJob.perform_later(@release.id, current_user&.id) TeardownJob.perform_later(@release.id, current_user&.id) redirect_to channel_release_url(@channel, @release), notice: '应用上传成功' From 6e876d64f337bc4f8db858faeb4b688a2dfe6422 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 23 Jul 2021 18:33:33 +0800 Subject: [PATCH 0556/2165] doc: fix codacy link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9b5bbc9ff..a9a9031ab 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ [![GitHub release](https://img.shields.io/github/v/release/tryzealot/zealot?include_prereleases)](https://github.com/tryzealot/zealot/blob/develop/CHANGELOG.md) [![Docker Pulls](https://img.shields.io/docker/pulls/tryzealot/zealot.svg)](https://hub.docker.com/r/tryzealot/zealot/) [![Maintainability](https://codeclimate.com/github/tryzealot/zealot/badges/gpa.svg)](https://codeclimate.com/github/tryzealot/zealot) -[![Codacy Badge](https://api.codacy.com/project/badge/Grade/bcff7d9de5ba48528bc80aa01bd525c6)](https://www.codacy.com/manual/icyleaf/zealot) +[![Codacy Badge](https://app.codacy.com/project/badge/Grade/5e5c7bbeb1214fa39b11a7414f0d7171)](https://www.codacy.com/gh/tryzealot/zealot) [![License](https://img.shields.io/github/license/tryzealot/zealot)](LICENSE) 开源自部署移动应用分发平台,提供 iOS、Android SDK、fastlane 等丰富组件库,打包分发流程、上传应用竟然如此简单、解决开发人员频繁打包的烦恼 En Taro Adun! 🖖 From 2b2e844abf12df9127551b4161b1d21138153b34 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 23 Jul 2021 18:37:52 +0800 Subject: [PATCH 0557/2165] =?UTF-8?q?chore:=20=E7=A7=BB=E9=99=A4=20.vscode?= =?UTF-8?q?=20=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .vscode/launch.json | 71 --------------------------------------------- 1 file changed, 71 deletions(-) delete mode 100644 .vscode/launch.json diff --git a/.vscode/launch.json b/.vscode/launch.json deleted file mode 100644 index 014375b31..000000000 --- a/.vscode/launch.json +++ /dev/null @@ -1,71 +0,0 @@ -workspace{ - "version": "0.2.0", - "configurations": [ - { - "name": "Rake task", - "type": "Ruby", - "request": "launch", - "program": "${workspaceRoot}/bin/rake", - "args": [ - "test:release" - ] - }, - { - "name": "Debug Local File", - "type": "Ruby", - "request": "launch", - "cwd": "${workspaceRoot}", - "program": "${workspaceRoot}/test.rb", - "useBundler": true - }, - { - "name": "Listen for rdebug-ide", - "type": "Ruby", - "request": "attach", - "cwd": "${workspaceRoot}", - "remoteHost": "127.0.0.1", - "remotePort": "1234", - "remoteWorkspaceRoot": "${workspaceRoot}" - }, - { - "name": "Rails server", - "type": "Ruby", - "request": "launch", - "cwd": "${workspaceRoot}", - "program": "${workspaceRoot}/bin/rails", - "args": [ - "server" - ] - }, - { - "name": "RSpec - all", - "type": "Ruby", - "request": "launch", - "cwd": "${workspaceRoot}", - "program": "${workspaceRoot}/bin/rspec", - "args": [ - "-I", - "${workspaceRoot}" - ] - }, - { - "name": "RSpec - active spec file only", - "type": "Ruby", - "request": "launch", - "cwd": "${workspaceRoot}", - "program": "${workspaceRoot}/bin/rspec", - "args": [ - "-I", - "${workspaceRoot}", - "${file}" - ] - }, - { - "name": "Cucumber", - "type": "Ruby", - "request": "launch", - "cwd": "${workspaceRoot}", - "program": "${workspaceRoot}/bin/cucumber" - } - ] -} \ No newline at end of file From 18843fcec99859743cc4c8cd5daf9fed08ed8c0b Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 23 Jul 2021 19:19:31 +0800 Subject: [PATCH 0558/2165] =?UTF-8?q?fix:=20iPad=20=E5=92=8C=20MacOS=20?= =?UTF-8?q?=E9=83=BD=E6=98=BE=E7=A4=BA=E5=AE=89=E8=A3=85=E6=8C=89=E9=92=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/application_helper.rb | 2 +- app/views/channels/{_metadata.slim => _metadata.html.slim} | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename app/views/channels/{_metadata.slim => _metadata.html.slim} (100%) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index b5f3aca07..d9ec1d90e 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -111,7 +111,7 @@ def phone? # 检查移动设备 def detect_device(device) - if ios?(user_agent) && ios?(device) + if ios?(user_agent) || ios?(device) :ios elsif android?(user_agent) && android?(device) :android diff --git a/app/views/channels/_metadata.slim b/app/views/channels/_metadata.html.slim similarity index 100% rename from app/views/channels/_metadata.slim rename to app/views/channels/_metadata.html.slim From e0e5fa379762b44e339feb2c7bbdf449d97800bd Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 23 Jul 2021 19:19:31 +0800 Subject: [PATCH 0559/2165] =?UTF-8?q?fix:=20iPad=20=E5=92=8C=20MacOS=20?= =?UTF-8?q?=E9=83=BD=E6=98=BE=E7=A4=BA=E5=AE=89=E8=A3=85=E6=8C=89=E9=92=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/application_helper.rb | 11 +++-------- .../channels/{_metadata.slim => _metadata.html.slim} | 0 2 files changed, 3 insertions(+), 8 deletions(-) rename app/views/channels/{_metadata.slim => _metadata.html.slim} (100%) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index b5f3aca07..be746eda5 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -85,8 +85,6 @@ def wechat? user_agent.include?('MicroMessenger') end - # FIXME: 后续 mac? 和 ios? 需要解决 iPad 和 M1 的判断,要不然根本解决 - def mac? # Intel: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36 # Arm M1: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36 @@ -105,13 +103,10 @@ def android?(source = nil) source.downcase.include?('android') end - def phone? - ios? || android? - end - - # 检查移动设备 + # 检查设备 def detect_device(device) - if ios?(user_agent) && ios?(device) + # FIXME: iPad 和 M1 芯片设备都是桌面的 UA,因此这里暂时改为 iOS 设备或文件是 iOS 设备文件 + if ios?(user_agent) || ios?(device) :ios elsif android?(user_agent) && android?(device) :android diff --git a/app/views/channels/_metadata.slim b/app/views/channels/_metadata.html.slim similarity index 100% rename from app/views/channels/_metadata.slim rename to app/views/channels/_metadata.html.slim From 504f2ab94aa765b9882b51e43b5c46213f8b5748 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Jul 2021 21:02:13 +0000 Subject: [PATCH 0560/2165] chore(deps): bump bootsnap from 1.7.5 to 1.7.6 Bumps [bootsnap](https://github.com/Shopify/bootsnap) from 1.7.5 to 1.7.6. - [Release notes](https://github.com/Shopify/bootsnap/releases) - [Changelog](https://github.com/Shopify/bootsnap/blob/master/CHANGELOG.md) - [Commits](https://github.com/Shopify/bootsnap/compare/v1.7.5...v1.7.6) --- updated-dependencies: - dependency-name: bootsnap dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 6fa80ded5..5652ddbdb 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -90,7 +90,7 @@ GEM bindex (0.8.1) binding_of_caller (1.0.0) debug_inspector (>= 0.0.1) - bootsnap (1.7.5) + bootsnap (1.7.6) msgpack (~> 1.0) builder (3.2.4) byebug (11.1.3) From 233117f21997205436d1f06279e884d76fa57afe Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 27 Jul 2021 16:12:19 +0800 Subject: [PATCH 0561/2165] =?UTF-8?q?refactor:=20=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E8=A7=A3=E6=9E=90=E6=94=B9=E5=90=8D=E5=BA=94=E7=94=A8=E8=A7=A3?= =?UTF-8?q?=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- app/controllers/debug_files_controller.rb | 4 ++-- app/controllers/teardowns_controller.rb | 17 ++++++++--------- app/views/dashboards/_analytics.html.slim | 2 +- app/views/debug_files/_debug_file.html.slim | 2 +- app/views/layouts/_main_sidebar.html.slim | 2 +- app/views/releases/body/_metadata.html.slim | 2 +- app/views/teardowns/_exists_form.html.slim | 2 +- app/views/teardowns/_list.html.slim | 2 +- app/views/teardowns/_upload_form.html.slim | 4 ++-- app/views/teardowns/create.html.slim | 4 ++-- app/views/teardowns/index.html.slim | 2 +- app/views/teardowns/show.html.slim | 4 ++-- 13 files changed, 24 insertions(+), 25 deletions(-) diff --git a/README.md b/README.md index a9a9031ab..a9b80a637 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ - [x] 支持 iOS 和 Android 应用的上传、在线安装和本地下载 - [x] 支持应用创建各种类型(Debug、AdHoc、Enterprise、Release)和渠道(小米、华为、Oppp、Vivo、应用宝等) - [x] 支持 iOS dSYM 和 Android Progruard 文件的备份管理和解析 -- [x] 支持单次上传解析 iOS、Android 包甚至是 mobileprovision 文件的信息并存储编译分享他人 +- [x] 支持单次上传解析 iOS、Android 包甚至是 mobileprovision 文件的信息并存储便于分享他人 - [x] 支持自定义网络钩子(WebHooks)发送给通知各种服务(钉钉、企业微信、Slack 等) - [x] 支持获取 iOS 设备 UDID 及显示该设备可以安装的应用 - [x] 支持第三方服务的一键登录(目前以接入飞书、Gitlab、Google 和 LDAP) diff --git a/app/controllers/debug_files_controller.rb b/app/controllers/debug_files_controller.rb index 061ab7586..a0b4f8ff2 100644 --- a/app/controllers/debug_files_controller.rb +++ b/app/controllers/debug_files_controller.rb @@ -25,7 +25,7 @@ def create if @debug_file.save DebugFileTeardownJob.perform_later @debug_file - redirect_to debug_files_url, notice: '调试文件上传成功,后台正在解析文件请稍后查看详情' + redirect_to debug_files_url, notice: '调试文件上传成功,后台正在应用解包请稍后查看详情' else render :new end @@ -33,7 +33,7 @@ def create def destroy @debug_file.destroy - redirect_to debug_files_url, notice: '调试文件 删除成功' + redirect_to debug_files_url, notice: '调试文件已删除成功' end private diff --git a/app/controllers/teardowns_controller.rb b/app/controllers/teardowns_controller.rb index 1d72a6b5f..b253e7d95 100644 --- a/app/controllers/teardowns_controller.rb +++ b/app/controllers/teardowns_controller.rb @@ -5,19 +5,18 @@ class TeardownsController < ApplicationController before_action :set_metadata, only: %i[show destroy] def index - # redirect_to new_teardown_path, alert: "链接失效,请重新解析文件" - @title = '文件解析' + @title = '应用解包' @metadata = Metadatum.page(params.fetch(:page, 1)) .per(params.fetch(:per_page, 10)) .order(id: :desc) end def show - @title = "#{@metadata.name} #{@metadata.release_version} (#{@metadata.build_version}) 解析信息" + @title = "#{@metadata.name} #{@metadata.release_version} (#{@metadata.build_version}) 解包信息" end def new - @title = '文件解析' + @title = '应用解包' end def create @@ -27,11 +26,11 @@ def create when 'url' parse_exists_app else - flash[:error] = '错误请求,无法解析' + flash[:error] = '错误请求,无法解包' render :new end rescue ActiveRecord::RecordNotFound => e - flash[:error] = "无法找到解析文件: #{e}" + flash[:error] = "无法找到解包文件: #{e}" render :new rescue ActionController::RoutingError => e flash[:error] = e.message @@ -40,14 +39,14 @@ def create flash[:error] = '无法识别上传的应用类型' render :new rescue AppInfo::NotFoundError => e - flash[:error] = "无法找到解析文件: #{e}" + flash[:error] = "无法找到解包文件: #{e}" render :new end def destroy @metadata.destroy - redirect_to teardowns_path, notice: "[#{@metadata.id}] #{@metadata.name} 应用解析记录删除成功!" + redirect_to teardowns_path, notice: "[#{@metadata.id}] #{@metadata.name} 应用解包记录删除成功!" end private @@ -59,7 +58,7 @@ def set_metadata def parse_app unless file = params[:file] - raise ActionController::RoutingError, '请选择需要解析的 ipa、apk 安装包或 .mobileprovision 文件' + raise ActionController::RoutingError, '请选择需要解包的 ipa、apk 安装包或 .mobileprovision 文件' end parse(file.tempfile) diff --git a/app/views/dashboards/_analytics.html.slim b/app/views/dashboards/_analytics.html.slim index 0d535a200..1b7b7e77d 100644 --- a/app/views/dashboards/_analytics.html.slim +++ b/app/views/dashboards/_analytics.html.slim @@ -2,7 +2,7 @@ section.analytics .row == render 'widget', title: '应用', count: @analytics[:apps], url: apps_path, color_style: 'bg-navy', icon: 'fab fa-adn' == render 'widget', title: '调试文件', count: @analytics[:debug_files], url: debug_files_path, color_style: 'bg-red', icon: 'fas fa-bug' - == render 'widget', title: '文件解析', count: @analytics[:teardowns], url: teardowns_path, color_style: 'bg-pink', icon: 'fas fa-layer-group' + == render 'widget', title: '应用解包', count: @analytics[:teardowns], url: teardowns_path, color_style: 'bg-pink', icon: 'fas fa-layer-group' == render 'widget', title: '上传次数', count: @analytics[:releases], url: nil, color_style: 'bg-teal', icon: 'fas fa-paper-plane' - if current_user&.admin? diff --git a/app/views/debug_files/_debug_file.html.slim b/app/views/debug_files/_debug_file.html.slim index 32af1905e..f594e007a 100644 --- a/app/views/debug_files/_debug_file.html.slim +++ b/app/views/debug_files/_debug_file.html.slim @@ -18,7 +18,7 @@ ruby: = device_name(debug_file.device_type) .debug-file-build-version - if debug_file.build_version.blank? - | 后台任务正在解析中,请稍候刷新。 + | 后台任务正在解包中,请稍候刷新。 - else | 构建版本: = debug_file.build_version diff --git a/app/views/layouts/_main_sidebar.html.slim b/app/views/layouts/_main_sidebar.html.slim index 83c406eee..b2feede06 100644 --- a/app/views/layouts/_main_sidebar.html.slim +++ b/app/views/layouts/_main_sidebar.html.slim @@ -19,7 +19,7 @@ li class="nav-item" a.nav-link href="#{teardowns_path}" class="#{active_class(teardowns_path)}" i.nav-icon.fas.fa-layer-group - p 文件解析 + p 应用解包 li class="nav-item" a.nav-link href="#{udid_path}" class="#{active_class(udid_path)}" i.nav-icon.fas.fa-eye diff --git a/app/views/releases/body/_metadata.html.slim b/app/views/releases/body/_metadata.html.slim index 2c5929924..348d68db0 100644 --- a/app/views/releases/body/_metadata.html.slim +++ b/app/views/releases/body/_metadata.html.slim @@ -65,7 +65,7 @@ - if @release.metadata.present? && detect_device(@release.channel.device_type) == :ios li title="更多信息" i.fas.fa-layer-group - = link_to '解析信息', teardown_path(@release.metadata) + = link_to '解包信息', teardown_path(@release.metadata) .app-actions - unless wechat? diff --git a/app/views/teardowns/_exists_form.html.slim b/app/views/teardowns/_exists_form.html.slim index 6b096807a..c9a67934b 100644 --- a/app/views/teardowns/_exists_form.html.slim +++ b/app/views/teardowns/_exists_form.html.slim @@ -4,4 +4,4 @@ input name="type" value="url" type="hidden" .form-group - = submit_tag '开始解析', class: 'btn btn-primary' \ No newline at end of file + = submit_tag '开始解包', class: 'btn btn-primary' \ No newline at end of file diff --git a/app/views/teardowns/_list.html.slim b/app/views/teardowns/_list.html.slim index 4cb6ade01..d1feb8207 100644 --- a/app/views/teardowns/_list.html.slim +++ b/app/views/teardowns/_list.html.slim @@ -36,7 +36,7 @@ a.btn.btn-tool href="#{teardown_path(md)}" data-confirm="确定删除?" data-method="delete" i.fas.fa-trash-alt - else - .p-3 还没有任何文件解析记录! + .p-3 还没有任何应用解包记录! - if @metadata.total_pages > 1 .card-footer.clearfix diff --git a/app/views/teardowns/_upload_form.html.slim b/app/views/teardowns/_upload_form.html.slim index 627e732c9..83430cab3 100644 --- a/app/views/teardowns/_upload_form.html.slim +++ b/app/views/teardowns/_upload_form.html.slim @@ -3,11 +3,11 @@ .form-group label.control-label.required for="file" abbr title="必填项" * - | 解析文件 + | 解包文件 .input-group = file_field_tag 'file', class: 'custom-file-input2' input name="type" value="upload" type="hidden" p.help-block 支持 .apk、 .ipa 以及 .mobileprovision 文件 - = submit_tag '开始解析', class: 'btn btn-primary' \ No newline at end of file + = submit_tag '开始解包', class: 'btn btn-primary' \ No newline at end of file diff --git a/app/views/teardowns/create.html.slim b/app/views/teardowns/create.html.slim index ed7cae50c..704a6f424 100644 --- a/app/views/teardowns/create.html.slim +++ b/app/views/teardowns/create.html.slim @@ -1,9 +1,9 @@ - content_for :title do - | 文件解析结果 + | 应用解包结果 - if @app_info.respond_to?(:os) == render "#{@app_info.os.downcase.to_s}" - elsif @app_info.respond_to?(:mobileprovision) == render "mobileprovision" - else - p 抱歉无法解析,类型无法匹配! \ No newline at end of file + p 抱歉无法解包,类型无法匹配! \ No newline at end of file diff --git a/app/views/teardowns/index.html.slim b/app/views/teardowns/index.html.slim index 160070d71..d7436c1eb 100644 --- a/app/views/teardowns/index.html.slim +++ b/app/views/teardowns/index.html.slim @@ -7,7 +7,7 @@ - content_for :section_rightpanel do a.btn.btn-icon.bg-green href="#{new_teardown_path}" i.far.fa-plus-square - | 开始解析 + | 新建解包 .row == render 'list' diff --git a/app/views/teardowns/show.html.slim b/app/views/teardowns/show.html.slim index e1ec2bf44..68e2cb74c 100644 --- a/app/views/teardowns/show.html.slim +++ b/app/views/teardowns/show.html.slim @@ -1,5 +1,5 @@ - content_for :title do - = @title || '解析结果信息' + = @title || '解包结果信息' .row - if @metadata.release.present? @@ -7,7 +7,7 @@ .callout.callout-info h5 关联提醒 p - | 当前解析关联的应用是 + | 当前解包关联的应用是 = link_to @metadata.release.app_name, channel_release_path(@metadata.release.channel, @metadata.release) == render @metadata.platform.downcase.to_s \ No newline at end of file From 2073cd5bf0bdd697949236b6aaae3edf13444487 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 27 Jul 2021 16:18:17 +0800 Subject: [PATCH 0562/2165] =?UTF-8?q?feat:=20=E6=9B=B4=E6=96=B0=20bin=20?= =?UTF-8?q?=E7=9A=84=20rails=20=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bin/spring | 8 ++++++-- bin/yarn | 16 +++++++--------- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/bin/spring b/bin/spring index 89f6161e9..b4147e843 100755 --- a/bin/spring +++ b/bin/spring @@ -1,10 +1,14 @@ #!/usr/bin/env ruby if !defined?(Spring) && [nil, "development", "test"].include?(ENV["RAILS_ENV"]) - # Load Spring without loading other gems in the Gemfile, for speed. + gem "bundler" require "bundler" - Bundler.locked_gems.specs.find { |spec| spec.name == "spring" }&.tap do |spring| + + # Load Spring without loading other gems in the Gemfile, for speed. + Bundler.locked_gems&.specs&.find { |spec| spec.name == "spring" }&.tap do |spring| Gem.use_paths Gem.dir, Bundler.bundle_path.to_s, *Gem.path gem "spring", spring.version require "spring/binstub" + rescue Gem::LoadError + # Ignore when Spring is not installed. end end diff --git a/bin/yarn b/bin/yarn index 241546e51..9fab2c350 100755 --- a/bin/yarn +++ b/bin/yarn @@ -1,16 +1,14 @@ #!/usr/bin/env ruby -require 'pathname' - APP_ROOT = File.expand_path('..', __dir__) Dir.chdir(APP_ROOT) do - executable_path = ENV["PATH"].split(File::PATH_SEPARATOR).find do |path| - normalized_path = File.expand_path(path) - - normalized_path != __dir__ && File.executable?(Pathname.new(normalized_path).join('yarn')) - end + yarn = ENV["PATH"].split(File::PATH_SEPARATOR). + select { |dir| File.expand_path(dir) != __dir__ }. + product(["yarn", "yarn.cmd", "yarn.ps1"]). + map { |dir, file| File.expand_path(file, dir) }. + find { |file| File.executable?(file) } - if executable_path - exec File.expand_path(Pathname.new(executable_path).join('yarn')), *ARGV + if yarn + exec yarn, *ARGV else $stderr.puts "Yarn executable was not detected in the system." $stderr.puts "Download Yarn at https://yarnpkg.com/en/docs/install" From 2f9fef551bc647654f1650c4dd27255100b3afca Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 27 Jul 2021 19:04:26 +0800 Subject: [PATCH 0563/2165] =?UTF-8?q?refactor:=20=E5=BC=82=E6=AD=A5?= =?UTF-8?q?=E6=A3=80=E6=9F=A5=E6=96=B0=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/system_info_controller.rb | 33 +------------------ app/javascript/javascripts/admin/index.js | 27 +++++++++++++++ .../javascripts/debug_files/index.js | 5 +-- app/javascript/javascripts/releases/index.js | 6 ++-- app/javascript/packs/application.js | 5 +-- app/javascript/stylesheets/system_info.scss | 2 +- app/views/admin/system_info/index.html.slim | 8 ++--- app/views/layouts/_footer.html.slim | 8 +++-- package.json | 1 + yarn.lock | 5 +++ 10 files changed, 53 insertions(+), 47 deletions(-) create mode 100644 app/javascript/javascripts/admin/index.js diff --git a/app/controllers/admin/system_info_controller.rb b/app/controllers/admin/system_info_controller.rb index ca39a8a0b..f68bd7b92 100644 --- a/app/controllers/admin/system_info_controller.rb +++ b/app/controllers/admin/system_info_controller.rb @@ -37,12 +37,12 @@ class Admin::SystemInfoController < ApplicationController def index @title = '系统信息' @booted_at = Rails.application.config.booted_at + @current_version = Setting.version set_cpus set_memory set_disks set_env - get_version end private @@ -88,35 +88,4 @@ def set_disks end end end - - def get_version - begin - version = Rails.cache.fetch('zealot_version_check', expires_in: 1.hours) do - HTTP.headers(accept: 'application/vnd.github.v3+json') - .get(VERSION_CHECK_URL) - .parse(:json) - end - - latest_version = version['tag_name'] - update_available = update_available?(latest_version) - release_link = version['html_url'] - rescue HTTP::ConnectionError - update_available = false - latest_version = nil - release_link = nil - end - - @version = { - update_available: update_available, - current_version: Setting.version, - latest_version: latest_version, - release_link: release_link, - } - end - - def update_available?(new_version) - return true if Rails.env.development? || Setting.version == 'development' - - Gem::Version.new(new_version) > Gem::Version.new(Setting.version) - end end diff --git a/app/javascript/javascripts/admin/index.js b/app/javascript/javascripts/admin/index.js new file mode 100644 index 000000000..e1338ac75 --- /dev/null +++ b/app/javascript/javascripts/admin/index.js @@ -0,0 +1,27 @@ +import compareVersion from 'compare-versions'; +const newVesionUrl = 'https://api.github.com/repos/tryzealot/zealot/releases/latest'; + +$(document).on('turbolinks:load', () => { + var elm = $('#new-version'); + if (!elm.length) { return; } + + var current_version = $('#current-version').html(); + if (current_version == 'development') { return; } + + fetch(newVesionUrl, { + method: 'GET', + headers: { + 'X-Requested-With': 'XMLHttpRequest', + 'Accept': 'application/vnd.github.v3+json' + } + }).then((response) => response.json()) + .then(json => { + var latest_version = json.tag_name; + if (compareVersion(latest_version, current_version) <= 0) { return; } + + var release_link = json.html_url; + elm.html( + '' + + '发现新版本 ' + latest_version + ''); + }); +}); \ No newline at end of file diff --git a/app/javascript/javascripts/debug_files/index.js b/app/javascript/javascripts/debug_files/index.js index f8085120e..8698e3b90 100644 --- a/app/javascript/javascripts/debug_files/index.js +++ b/app/javascript/javascripts/debug_files/index.js @@ -1,10 +1,11 @@ $(document).on('turbolinks:load', function () { - $('.debug-file-toggle').click(function () { + $('.debug-file-toggle').on('click', function () { debug_file_id = $(this).data('id'); $('#debug-file-metadata-' + debug_file_id).toggleClass('d-none'); + alert('dddd'); }); - $('.destroy-debug-file').click(function () { + $('.destroy-debug-file').on('click', function () { var debug_id = $(this).data('id'); var that = $("#debug-file-info-" + debug_id); var app_name = that.data('app-name'); diff --git a/app/javascript/javascripts/releases/index.js b/app/javascript/javascripts/releases/index.js index b80543d3f..57f0eae80 100644 --- a/app/javascript/javascripts/releases/index.js +++ b/app/javascript/javascripts/releases/index.js @@ -41,7 +41,7 @@ // } $(document).on('turbolinks:load', function () { - $('#download_it').click(function () { + $('#download_it').on('click', function () { var wechat_regex = /MicroMessenger/i; var that = $('#download_it'); if (wechat_regex.test(navigator.userAgent)) { @@ -64,13 +64,13 @@ $(document).on('turbolinks:load', function () { window.location.href = install_url; }); - $('.cover').click(function () { + $('.cover').on('click', function () { $(this).addClass('hide'); $('.wechat-tips').addClass('hide'); $('.navbar-fixed-top').css('z-index', 1030); }); - $('.ios-install-issues a').click(function () { + $('.ios-install-issues a').on('click', function () { $('#install-issues').modal('toggle'); }); }); \ No newline at end of file diff --git a/app/javascript/packs/application.js b/app/javascript/packs/application.js index 831b803a9..878283b1b 100644 --- a/app/javascript/packs/application.js +++ b/app/javascript/packs/application.js @@ -33,15 +33,16 @@ require("javascripts/debug_files"); require("javascripts/releases"); require("javascripts/teardown/upload"); require("javascripts/udid"); +require("javascripts/admin"); var HOST = location.protocol + "//" + location.hostname + (location.port ? ":" + location.port : "") + "/"; document.addEventListener("turbolinks:load", function () { // fix body height for AdminLTE 2.4.0 and turbolinks 5 - $(window).trigger("resize"); + // $(window).trigger("resize"); // enable tooltip global - $("[data-toggle='tooltip']").tooltip(); + // $("[data-toggle='tooltip']").tooltip(); // fix collapse with no response // $("[data-widget="collapse"]").each(function () { diff --git a/app/javascript/stylesheets/system_info.scss b/app/javascript/stylesheets/system_info.scss index e8e67da9a..ebba19b21 100644 --- a/app/javascript/stylesheets/system_info.scss +++ b/app/javascript/stylesheets/system_info.scss @@ -15,7 +15,7 @@ dl.system-info { background-color: #f7f8f9; color: #2f2936; - a.new-version { + #new-version a { color: rgb(233, 120, 120); i { diff --git a/app/views/admin/system_info/index.html.slim b/app/views/admin/system_info/index.html.slim index d62732202..d687fb8bb 100644 --- a/app/views/admin/system_info/index.html.slim +++ b/app/views/admin/system_info/index.html.slim @@ -14,11 +14,9 @@ dt Zealot 版本 dd pre - - if @version[:update_available] - a.new-version.float-right href="#{@version[:release_link]}" target="_blank" - i.fas.fa-rainbow - | 发现新版本: #{@version[:latest_version]} - = @version[:current_version] + #new-version.float-right + #current-version + = @current_version dt Ruby 版本 dd pre = RUBY_DESCRIPTION diff --git a/app/views/layouts/_footer.html.slim b/app/views/layouts/_footer.html.slim index d3bf2d41f..d7a668ac6 100644 --- a/app/views/layouts/_footer.html.slim +++ b/app/views/layouts/_footer.html.slim @@ -1,9 +1,13 @@ +ruby: + current_year = Time.now.year + current_veresion = Setting.version + footer.main-footer .float-right.d-none.d-sm-block b Version - = " #{Setting.version}" + = " #{current_veresion}" strong - | Copyright © 2015-2019  + | Copyright © 2015-#{current_year}  a href="https://github.com/tryzealot/zealot" Zealot | . | All rights reserved. diff --git a/package.json b/package.json index 2de8b72f0..d6a6103b2 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,7 @@ "@rails/webpacker": "^5.4.0", "admin-lte": "^3.1.0", "clipboard": "^2.0.8", + "compare-versions": "^3.6.0", "filepond": "^4.28.1", "rails-erb-loader": "^5.5.2", "turbolinks": "^5.2.0" diff --git a/yarn.lock b/yarn.lock index 5b692e14a..d3e8777ac 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2169,6 +2169,11 @@ commondir@^1.0.1: resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= +compare-versions@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.6.0.tgz#1a5689913685e5a87637b8d3ffca75514ec41d62" + integrity sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA== + component-emitter@^1.2.1: version "1.3.0" resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" From c2fb642d87e618b8a008e9c060edf802b403bf04 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 27 Jul 2021 19:04:26 +0800 Subject: [PATCH 0564/2165] =?UTF-8?q?refactor:=20=E5=BC=82=E6=AD=A5?= =?UTF-8?q?=E6=A3=80=E6=9F=A5=E6=96=B0=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/system_info_controller.rb | 33 +------------------ app/javascript/javascripts/admin/index.js | 27 +++++++++++++++ .../javascripts/debug_files/index.js | 4 +-- app/javascript/javascripts/releases/index.js | 6 ++-- app/javascript/packs/application.js | 5 +-- app/javascript/stylesheets/system_info.scss | 2 +- app/views/admin/system_info/index.html.slim | 8 ++--- app/views/layouts/_footer.html.slim | 8 +++-- package.json | 1 + yarn.lock | 5 +++ 10 files changed, 52 insertions(+), 47 deletions(-) create mode 100644 app/javascript/javascripts/admin/index.js diff --git a/app/controllers/admin/system_info_controller.rb b/app/controllers/admin/system_info_controller.rb index ca39a8a0b..f68bd7b92 100644 --- a/app/controllers/admin/system_info_controller.rb +++ b/app/controllers/admin/system_info_controller.rb @@ -37,12 +37,12 @@ class Admin::SystemInfoController < ApplicationController def index @title = '系统信息' @booted_at = Rails.application.config.booted_at + @current_version = Setting.version set_cpus set_memory set_disks set_env - get_version end private @@ -88,35 +88,4 @@ def set_disks end end end - - def get_version - begin - version = Rails.cache.fetch('zealot_version_check', expires_in: 1.hours) do - HTTP.headers(accept: 'application/vnd.github.v3+json') - .get(VERSION_CHECK_URL) - .parse(:json) - end - - latest_version = version['tag_name'] - update_available = update_available?(latest_version) - release_link = version['html_url'] - rescue HTTP::ConnectionError - update_available = false - latest_version = nil - release_link = nil - end - - @version = { - update_available: update_available, - current_version: Setting.version, - latest_version: latest_version, - release_link: release_link, - } - end - - def update_available?(new_version) - return true if Rails.env.development? || Setting.version == 'development' - - Gem::Version.new(new_version) > Gem::Version.new(Setting.version) - end end diff --git a/app/javascript/javascripts/admin/index.js b/app/javascript/javascripts/admin/index.js new file mode 100644 index 000000000..e1338ac75 --- /dev/null +++ b/app/javascript/javascripts/admin/index.js @@ -0,0 +1,27 @@ +import compareVersion from 'compare-versions'; +const newVesionUrl = 'https://api.github.com/repos/tryzealot/zealot/releases/latest'; + +$(document).on('turbolinks:load', () => { + var elm = $('#new-version'); + if (!elm.length) { return; } + + var current_version = $('#current-version').html(); + if (current_version == 'development') { return; } + + fetch(newVesionUrl, { + method: 'GET', + headers: { + 'X-Requested-With': 'XMLHttpRequest', + 'Accept': 'application/vnd.github.v3+json' + } + }).then((response) => response.json()) + .then(json => { + var latest_version = json.tag_name; + if (compareVersion(latest_version, current_version) <= 0) { return; } + + var release_link = json.html_url; + elm.html( + '' + + '发现新版本 ' + latest_version + ''); + }); +}); \ No newline at end of file diff --git a/app/javascript/javascripts/debug_files/index.js b/app/javascript/javascripts/debug_files/index.js index f8085120e..0121eb6f6 100644 --- a/app/javascript/javascripts/debug_files/index.js +++ b/app/javascript/javascripts/debug_files/index.js @@ -1,10 +1,10 @@ $(document).on('turbolinks:load', function () { - $('.debug-file-toggle').click(function () { + $('.debug-file-toggle').on('click', function () { debug_file_id = $(this).data('id'); $('#debug-file-metadata-' + debug_file_id).toggleClass('d-none'); }); - $('.destroy-debug-file').click(function () { + $('.destroy-debug-file').on('click', function () { var debug_id = $(this).data('id'); var that = $("#debug-file-info-" + debug_id); var app_name = that.data('app-name'); diff --git a/app/javascript/javascripts/releases/index.js b/app/javascript/javascripts/releases/index.js index b80543d3f..57f0eae80 100644 --- a/app/javascript/javascripts/releases/index.js +++ b/app/javascript/javascripts/releases/index.js @@ -41,7 +41,7 @@ // } $(document).on('turbolinks:load', function () { - $('#download_it').click(function () { + $('#download_it').on('click', function () { var wechat_regex = /MicroMessenger/i; var that = $('#download_it'); if (wechat_regex.test(navigator.userAgent)) { @@ -64,13 +64,13 @@ $(document).on('turbolinks:load', function () { window.location.href = install_url; }); - $('.cover').click(function () { + $('.cover').on('click', function () { $(this).addClass('hide'); $('.wechat-tips').addClass('hide'); $('.navbar-fixed-top').css('z-index', 1030); }); - $('.ios-install-issues a').click(function () { + $('.ios-install-issues a').on('click', function () { $('#install-issues').modal('toggle'); }); }); \ No newline at end of file diff --git a/app/javascript/packs/application.js b/app/javascript/packs/application.js index 831b803a9..878283b1b 100644 --- a/app/javascript/packs/application.js +++ b/app/javascript/packs/application.js @@ -33,15 +33,16 @@ require("javascripts/debug_files"); require("javascripts/releases"); require("javascripts/teardown/upload"); require("javascripts/udid"); +require("javascripts/admin"); var HOST = location.protocol + "//" + location.hostname + (location.port ? ":" + location.port : "") + "/"; document.addEventListener("turbolinks:load", function () { // fix body height for AdminLTE 2.4.0 and turbolinks 5 - $(window).trigger("resize"); + // $(window).trigger("resize"); // enable tooltip global - $("[data-toggle='tooltip']").tooltip(); + // $("[data-toggle='tooltip']").tooltip(); // fix collapse with no response // $("[data-widget="collapse"]").each(function () { diff --git a/app/javascript/stylesheets/system_info.scss b/app/javascript/stylesheets/system_info.scss index e8e67da9a..ebba19b21 100644 --- a/app/javascript/stylesheets/system_info.scss +++ b/app/javascript/stylesheets/system_info.scss @@ -15,7 +15,7 @@ dl.system-info { background-color: #f7f8f9; color: #2f2936; - a.new-version { + #new-version a { color: rgb(233, 120, 120); i { diff --git a/app/views/admin/system_info/index.html.slim b/app/views/admin/system_info/index.html.slim index d62732202..d687fb8bb 100644 --- a/app/views/admin/system_info/index.html.slim +++ b/app/views/admin/system_info/index.html.slim @@ -14,11 +14,9 @@ dt Zealot 版本 dd pre - - if @version[:update_available] - a.new-version.float-right href="#{@version[:release_link]}" target="_blank" - i.fas.fa-rainbow - | 发现新版本: #{@version[:latest_version]} - = @version[:current_version] + #new-version.float-right + #current-version + = @current_version dt Ruby 版本 dd pre = RUBY_DESCRIPTION diff --git a/app/views/layouts/_footer.html.slim b/app/views/layouts/_footer.html.slim index d3bf2d41f..d7a668ac6 100644 --- a/app/views/layouts/_footer.html.slim +++ b/app/views/layouts/_footer.html.slim @@ -1,9 +1,13 @@ +ruby: + current_year = Time.now.year + current_veresion = Setting.version + footer.main-footer .float-right.d-none.d-sm-block b Version - = " #{Setting.version}" + = " #{current_veresion}" strong - | Copyright © 2015-2019  + | Copyright © 2015-#{current_year}  a href="https://github.com/tryzealot/zealot" Zealot | . | All rights reserved. diff --git a/package.json b/package.json index 2de8b72f0..d6a6103b2 100644 --- a/package.json +++ b/package.json @@ -6,6 +6,7 @@ "@rails/webpacker": "^5.4.0", "admin-lte": "^3.1.0", "clipboard": "^2.0.8", + "compare-versions": "^3.6.0", "filepond": "^4.28.1", "rails-erb-loader": "^5.5.2", "turbolinks": "^5.2.0" diff --git a/yarn.lock b/yarn.lock index 5b692e14a..d3e8777ac 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2169,6 +2169,11 @@ commondir@^1.0.1: resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= +compare-versions@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.6.0.tgz#1a5689913685e5a87637b8d3ffca75514ec41d62" + integrity sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA== + component-emitter@^1.2.1: version "1.3.0" resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" From d1db80327641dc7533dcd05308f4021ed5b8d99f Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 28 Jul 2021 19:31:39 +0800 Subject: [PATCH 0565/2165] =?UTF-8?q?feat:=20sentry=20=E5=BF=BD=E7=95=A5?= =?UTF-8?q?=E4=B8=80=E4=BA=9B=E6=89=8B=E5=8A=A8=E9=80=80=E5=87=BA=E7=9A=84?= =?UTF-8?q?=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/initializers/sentry.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/config/initializers/sentry.rb b/config/initializers/sentry.rb index 449567958..3cbdd7f1c 100644 --- a/config/initializers/sentry.rb +++ b/config/initializers/sentry.rb @@ -19,6 +19,8 @@ 'ActiveRecord::RecordInvalid', 'ActiveRecord::NoDatabaseError', 'PG::ConnectionBad', + 'Interrupt', + 'SystemExit', ] if (vcs_ref = Setting.vcs_ref) && vcs_ref.present? From e3eae903883a341fa704bc84780da1c3a49919cc Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 28 Jul 2021 19:32:01 +0800 Subject: [PATCH 0566/2165] =?UTF-8?q?feat:=20=E6=97=A5=E5=BF=97=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E6=95=8F=E6=84=9F=E8=BF=87=E6=BB=A4=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/initializers/filter_parameter_logging.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/config/initializers/filter_parameter_logging.rb b/config/initializers/filter_parameter_logging.rb index dc8fe9e03..b68b0d60d 100644 --- a/config/initializers/filter_parameter_logging.rb +++ b/config/initializers/filter_parameter_logging.rb @@ -1,4 +1,6 @@ # frozen_string_literal: true # Configure sensitive parameters which will be filtered from the log file. -Rails.application.config.filter_parameters += %i[password password_confirmation] +Rails.application.config.filter_parameters += %i[ + passw password password_confirmation secret token _key crypt salt certificate otp ssn +] From eceeb1bcd96d4319fe449463838a17448ec05b49 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 28 Jul 2021 19:32:27 +0800 Subject: [PATCH 0567/2165] =?UTF-8?q?chore:=20=E6=9B=B4=E6=96=B0=20puma=20?= =?UTF-8?q?=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/puma.rb | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/config/puma.rb b/config/puma.rb index 234918667..ad12abdb9 100644 --- a/config/puma.rb +++ b/config/puma.rb @@ -15,12 +15,14 @@ # it based on your app's demands. # # RAILS_MAX_THREADS will match the default thread size for Active Record. -threads_count = ENV.fetch('RAILS_MAX_THREADS') { 5 }.to_i -threads threads_count, threads_count +max_threads_count = ENV.fetch('RAILS_MAX_THREADS') { 5 } +min_threads_count = ENV.fetch('RAILS_MIN_THREADS') { max_threads_count } +threads min_threads_count, max_threads_count # Specifies the `environment` that Puma will run in. # -environment ENV.fetch('RAILS_ENV') { 'development' } +rails_env = ENV.fetch('RAILS_ENV') { 'development' } +environment rails_env # Puma supports spawning multiple workers. It will fork out a process at the # OS level to support concurrent requests. This typically requires more RAM. @@ -37,6 +39,7 @@ # If using threads and workers together, the concurrency of your application # will be THREADS * WORKERS. workers ENV.fetch('WEB_CONCURRENCY') { 2 } +silence_single_worker_warning if rails_env == 'development' # An internal health check to verify that workers have checked in to the master # process within a specific time frame. If this time is exceeded, the worker @@ -44,7 +47,7 @@ # # Under most situations you will not have to tweak this value, which is why it # is coded into the config rather than being an environment variable. -worker_timeout 30 +worker_timeout rails_env == 'development' ? 3600 : 30 # The path to the puma binary without any arguments. restart_command 'puma' @@ -56,11 +59,5 @@ # sure to reconnect any threads in the `on_worker_boot` block. # preload_app! -# on_worker_boot do -# Since you'll likely use > 1 worker in production, we'll need to configure -# Puma to do a few things when a worker boots. - -# We need to connect to the database. Pooling is handled automatically since -# we'll set the connection pool value in the DATABASE_URL later. -# defined?(ActiveRecord::Base) and ActiveRecord::Base.establish_connection -# end +# Allow puma to be restarted by `rails restart` command. +plugin :tmp_restart \ No newline at end of file From 382ca5990427e2c4a8ec11fa2b73d3303ac83aad Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 28 Jul 2021 19:31:04 +0800 Subject: [PATCH 0568/2165] =?UTF-8?q?style:=20=E7=99=BB=E5=BD=95=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E8=B0=83=E6=95=B4=20logo=20=E7=9A=84=E6=A0=B7?= =?UTF-8?q?=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/javascript/stylesheets/layout.scss | 21 +++++++++++++++++++++ app/views/layouts/_brand_logo.html.slim | 4 ++++ app/views/layouts/_navigation.html.slim | 10 +++------- app/views/layouts/application.html.slim | 9 +++------ 4 files changed, 31 insertions(+), 13 deletions(-) create mode 100644 app/views/layouts/_brand_logo.html.slim diff --git a/app/javascript/stylesheets/layout.scss b/app/javascript/stylesheets/layout.scss index 15ffecb4f..4656252c1 100644 --- a/app/javascript/stylesheets/layout.scss +++ b/app/javascript/stylesheets/layout.scss @@ -1,4 +1,25 @@ +.navbar-empty { + @extend .navbar-collapse !optional; + @extend .justify-content-md-center !optional; + + .brand-link { + padding: 0; + + [class*="navbar-white"] & { + color: $black; + } + + [class*="navbar-black"] & { + color: $white; + } + } +} + +.layout-top-nav .wrapper .main-header .navbar-empty .brand-image { + margin-top: -0.1rem; +} + @media (prefers-color-scheme: dark) { .main-header .guest { text-align: center; diff --git a/app/views/layouts/_brand_logo.html.slim b/app/views/layouts/_brand_logo.html.slim new file mode 100644 index 000000000..ab200f0e7 --- /dev/null +++ b/app/views/layouts/_brand_logo.html.slim @@ -0,0 +1,4 @@ +// Brand Logo +a.brand-link href="#{ root_path }" + = image_tag asset_pack_path('media/images/touch-icon.png'), class: 'brand-image' + span.brand-text.font-weight-light = Setting.site_title \ No newline at end of file diff --git a/app/views/layouts/_navigation.html.slim b/app/views/layouts/_navigation.html.slim index a6f867f87..2f565019a 100644 --- a/app/views/layouts/_navigation.html.slim +++ b/app/views/layouts/_navigation.html.slim @@ -23,17 +23,13 @@ nav.main-header.navbar.navbar-expand.navbar-white.navbar-light li.nav-item = link_to '登录', new_user_session_path, class: 'dropdown-item' - else - .navbar-collapse.justify-content-md-center - h4 - a href="#{ root_path }" style="color: black" = Setting.site_title + .navbar-empty + == render 'layouts/brand_logo' // Main Sidebar Container - if user_signed_in_or_guest_mode? aside.main-sidebar.sidebar-light-primary.elevation-2 - // Brand Logo - a.brand-link href="#{ root_path }" - = image_tag asset_pack_path('media/images/touch-icon.png'), class: %w[brand-image] - span.brand-text.font-weight-light = Setting.site_title + == render 'layouts/brand_logo' // Sidebar == render 'layouts/main_sidebar' diff --git a/app/views/layouts/application.html.slim b/app/views/layouts/application.html.slim index f91f178ee..c502edf2a 100644 --- a/app/views/layouts/application.html.slim +++ b/app/views/layouts/application.html.slim @@ -1,11 +1,8 @@ ruby: - body_class = 'skin-black-light' if user_signed_in_or_guest_mode? - body_class += ' sidebar-mini' - elsif Setting.guest_mode && devise_page? - body_class += ' layout-top-nav' + body_class = 'sidebar-mini' else - body_class += ' layout-top-nav' + body_class = 'layout-top-nav' end doctype html @@ -22,7 +19,7 @@ html == javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' == csrf_meta_tags - body class="#{body_class}" + body class="hold-transition #{body_class}" .wrapper == render 'layouts/navigation' From 1de259997ebd7f7aefca6538b6d3f7fafd493be3 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 28 Jul 2021 19:47:07 +0800 Subject: [PATCH 0569/2165] =?UTF-8?q?style:=20=E6=B8=85=E7=90=86=E9=99=88?= =?UTF-8?q?=E6=97=A7=E6=B2=A1=E7=94=A8=E7=9A=84=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/javascript/stylesheets/application.scss | 2 - app/javascript/stylesheets/dashboard.scss | 4 ++ app/javascript/stylesheets/layout.scss | 71 +-------------------- app/javascript/stylesheets/users.scss | 5 -- app/javascript/stylesheets/visitor.scss | 3 - app/javascript/stylesheets/web_hooks.scss | 16 ++--- app/views/admin/users/edit.html.slim | 1 + app/views/channels/_web_hooks.slim | 2 +- 8 files changed, 15 insertions(+), 89 deletions(-) delete mode 100644 app/javascript/stylesheets/users.scss delete mode 100644 app/javascript/stylesheets/visitor.scss diff --git a/app/javascript/stylesheets/application.scss b/app/javascript/stylesheets/application.scss index 550dfa7f0..af36f182c 100644 --- a/app/javascript/stylesheets/application.scss +++ b/app/javascript/stylesheets/application.scss @@ -8,7 +8,5 @@ @import 'debug_files'; @import 'devise'; @import 'system_info'; -@import 'users'; -@import 'visitor'; @import 'web_hooks'; @import 'settings'; \ No newline at end of file diff --git a/app/javascript/stylesheets/dashboard.scss b/app/javascript/stylesheets/dashboard.scss index c96353110..64646a13d 100644 --- a/app/javascript/stylesheets/dashboard.scss +++ b/app/javascript/stylesheets/dashboard.scss @@ -25,6 +25,10 @@ background-color: #d9edf7; border-color: #bce8f1; } + + .btn { + margin-left: 5px; + } } } } diff --git a/app/javascript/stylesheets/layout.scss b/app/javascript/stylesheets/layout.scss index 4656252c1..8fabf1084 100644 --- a/app/javascript/stylesheets/layout.scss +++ b/app/javascript/stylesheets/layout.scss @@ -20,43 +20,6 @@ margin-top: -0.1rem; } -@media (prefers-color-scheme: dark) { - .main-header .guest { - text-align: center; - padding-top: 15px; - } -} - -.main-header .guest { - text-align: center; - padding-top: 15px; -} - -.main-header .guest a.navbar-brand-center { - padding: 15px 15px; - font-size: 18px; - line-height: 20px; - color: #000; -} - -.content-header .right-panel { - float: right; - background: transparent; - margin-top: 0; - margin-bottom: 0; - font-size: 12px; - padding: 7px 5px; - position: absolute; - top: 5px; - right: 10px; -} - -.brand-bighead-text { - float: left; - margin-left: 1.4rem; - width: auto; -} - .card-body { .table { margin-bottom: 0; @@ -76,36 +39,4 @@ .fas { margin-right: 5px; } -} - -// .custom-file-input2 { -// color: transparent; -// } -// .custom-file-input2::-webkit-file-upload-button { -// visibility: hidden; -// } -// .custom-file-input2::before { -// content: 'Select some files'; -// color: black; -// display: inline-block; -// background: -webkit-linear-gradient(top, #f9f9f9, #e3e3e3); -// border: 1px solid #999; -// border-radius: 3px; -// padding: 5px 8px; -// outline: none; -// white-space: nowrap; -// -webkit-user-select: none; -// cursor: pointer; -// text-shadow: 1px 1px #fff; -// font-weight: 700; -// font-size: 10pt; -// } -// .custom-file-input2:hover::before { -// border-color: black; -// } -// .custom-file-input2:active { -// outline: 0; -// } -// .custom-file-input2:active::before { -// background: -webkit-linear-gradient(top, #e3e3e3, #f9f9f9); -// } +} \ No newline at end of file diff --git a/app/javascript/stylesheets/users.scss b/app/javascript/stylesheets/users.scss deleted file mode 100644 index ba38fd0c3..000000000 --- a/app/javascript/stylesheets/users.scss +++ /dev/null @@ -1,5 +0,0 @@ -.active_user .help-block { - font-size: 2em; - color: #8F8F8F; - padding-left: 12px; -} \ No newline at end of file diff --git a/app/javascript/stylesheets/visitor.scss b/app/javascript/stylesheets/visitor.scss deleted file mode 100644 index 00ff52778..000000000 --- a/app/javascript/stylesheets/visitor.scss +++ /dev/null @@ -1,3 +0,0 @@ -.timeline-footer .btn { - margin-left: 5px; -} \ No newline at end of file diff --git a/app/javascript/stylesheets/web_hooks.scss b/app/javascript/stylesheets/web_hooks.scss index e85780fbd..34ba34bb3 100644 --- a/app/javascript/stylesheets/web_hooks.scss +++ b/app/javascript/stylesheets/web_hooks.scss @@ -1,10 +1,10 @@ +#webhooks-list { + @extend .mt-4 !optional; -.bg-light-gray { - background-color: #f3f2f2; - color: #585858; - text-shadow: none; -} - -section#webhooks-list span { - margin-right: 5px; + .bg-light-gray { + margin-right: 5px; + background-color: #f3f2f2; + color: #585858; + text-shadow: none; + } } \ No newline at end of file diff --git a/app/views/admin/users/edit.html.slim b/app/views/admin/users/edit.html.slim index 9569b4d7b..148824611 100644 --- a/app/views/admin/users/edit.html.slim +++ b/app/views/admin/users/edit.html.slim @@ -20,4 +20,5 @@ a href="#{admin_users_path}" i.far.fa-list-alt | 返回列表 + == render 'form' diff --git a/app/views/channels/_web_hooks.slim b/app/views/channels/_web_hooks.slim index 7a908d7be..9b57c9727 100644 --- a/app/views/channels/_web_hooks.slim +++ b/app/views/channels/_web_hooks.slim @@ -9,7 +9,7 @@ h5 添加网络钩子 == render 'web_hooks/form' - section#webhooks-list.mt-4 + section#webhooks-list ul.nav.nav-tabs id="web_hooks_list" role="tablist" li.nav-item a.nav-link.active data-toggle="tab" role="tab" id="enabled-tab" href="#enabled" aria-controls="enabled" aria-selected="true" From c949ef1e777b6e5d24651360894f9dc6e1161de5 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 28 Jul 2021 19:52:24 +0800 Subject: [PATCH 0570/2165] =?UTF-8?q?style:=20=E6=9B=B4=E6=96=B0=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E5=BA=94=E7=94=A8=E7=9A=84=E5=B8=AE=E5=8A=A9=E6=96=87?= =?UTF-8?q?=E6=A1=A3=EF=BC=88=E5=B9=B4=E4=B9=85=E5=A4=B1=E4=BF=AE=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/apps/_help.html.slim | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/app/views/apps/_help.html.slim b/app/views/apps/_help.html.slim index 8c9ef4967..db95a63af 100644 --- a/app/views/apps/_help.html.slim +++ b/app/views/apps/_help.html.slim @@ -3,22 +3,24 @@ .card-header.card-border h3.card-title 使用帮助 .card-body.table-responsive - p - - if ENV['JENKINS_URL'].present? + - if ENV['JENKINS_URL'].present? + p | Zealot 接管的所有应用可由 - a href="#{ENV['JENKINS_URL']}" - | Jenkins - | 统一上传,系统本身不提供 App 的上传功能,虽然很多人给我提这个 issue 但是我就是不想做(相互伤害啊)。 + a href="#{ENV['JENKINS_URL']}" Jenkins p - | 上传的应用基本上会修改 build version(code) 主要用于内部测试版本更新检查使用,其命名规范是打包时最后一次 - | git commit 的时间做格式化 - strong mmddHHMM - | 。鉴于 Android build code 无法大于 8 位只能放弃年份。 + | 推荐通过使用 + a href="https://github.com/tryzealot/fastlane-plugin-zealot" fastlane-plugin-zealot + | 插件配合 + a href="https://github.com/icyleaf/fastlane-plugin-humanable_build_number" fastlane-plugin-humanable_build_number + | 上传的应用基本上会修改 build version(code) 主要用于内部测试版本更新检查使用,其命名规范是打包时最后一次 + | git commit 的时间做格式化 + strong mmddHHMM + | 。鉴于 Android build code 最大值不能超过 2100000000 只能放弃年份。 p - | 更新日志是从自动打包分发系统当前构建 git commit 的信息检索到上次构建成功之后聚合而成。 + | 且使用 fastlane-plugin-zealot 更新日志是从 CI 系统当前构建 git commit 的信息检索到上次构建成功之后聚合而成。 p strong | 需要注意的是: - | 所有上传的版本并非完整保留,系统会定期检查所有的版本鉴定为历史版本号的将会保留最后一个构建的版本, + | 如果开启了自动清理老版本的功能所有上传的版本并非完整保留,系统会定期检查所有的版本鉴定为历史版本号的将会保留最后一个构建的版本, | 之前的会被从磁盘中清除(节省硬盘空间和备份数据带来的耗时操作),最新版本所有的构建版本将会全部保留。 \ No newline at end of file From 18f18b2fc289a82474451f1015efe9bbc026e685 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 28 Jul 2021 19:54:18 +0800 Subject: [PATCH 0571/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=20tubrolink?= =?UTF-8?q?=20=E5=BC=80=E5=90=AF=E4=B8=8B=E5=B7=A6=E4=BE=A7=E5=AF=BC?= =?UTF-8?q?=E8=88=AA=E6=A0=B7=E5=BC=8F=E9=94=99=E4=BD=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/javascript/packs/application.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/javascript/packs/application.js b/app/javascript/packs/application.js index 878283b1b..e654142b8 100644 --- a/app/javascript/packs/application.js +++ b/app/javascript/packs/application.js @@ -39,10 +39,10 @@ var HOST = location.protocol + "//" + location.hostname + (location.port ? ":" + document.addEventListener("turbolinks:load", function () { // fix body height for AdminLTE 2.4.0 and turbolinks 5 - // $(window).trigger("resize"); + $(window).trigger("resize"); // enable tooltip global - // $("[data-toggle='tooltip']").tooltip(); + $("[data-toggle='tooltip']").tooltip(); // fix collapse with no response // $("[data-widget="collapse"]").each(function () { From b0965ce76a24887c6c3f1fcfe09805c7a3c907a5 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 28 Jul 2021 20:17:29 +0800 Subject: [PATCH 0572/2165] =?UTF-8?q?style:=20=E8=B0=83=E6=95=B4=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E5=90=8E=E9=A1=B6=E9=83=A8=E7=94=A8=E6=88=B7=E8=8F=9C?= =?UTF-8?q?=E5=8D=95=E7=9A=84=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/layouts/_navigation.html.slim | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/app/views/layouts/_navigation.html.slim b/app/views/layouts/_navigation.html.slim index 2f565019a..a4fbb4c04 100644 --- a/app/views/layouts/_navigation.html.slim +++ b/app/views/layouts/_navigation.html.slim @@ -3,25 +3,21 @@ nav.main-header.navbar.navbar-expand.navbar-white.navbar-light - if user_signed_in_or_guest_mode? ul.navbar-nav li.nav-item - a.nav-link data-widget="pushmenu" href="#" + a.nav-link data-widget="pushmenu" href="#" role="button" i.fas.fa-bars // Right navbar links ul.navbar-nav.ml-auto - if user_signed_in? - li.nav-item.dropdown.user-menu - a.nav-link data-toggle="dropdown" href="#" - span.hidden-xs - = current_user.username - .dropdown-menu.dropdown-menu-lg.dropdown-menu-right - span.dropdown-item.dropdown-header = current_user.role_name - .dropdown-divider + li.nav-item + a.nav-link.dropdown-toggle.dropstart data-toggle="dropdown" href="#" aria-haspopup="true" aria-expanded="false" + = current_user.username + .dropdown-menu.dropdown-menu-right = link_to '详情', edit_user_registration_path, class: 'dropdown-item' - .dropdown-divider = link_to '登出', destroy_user_session_path, method: :delete, class: 'dropdown-item' - else li.nav-item - = link_to '登录', new_user_session_path, class: 'dropdown-item' + = link_to '登录', new_user_session_path, class: 'nav-link' - else .navbar-empty == render 'layouts/brand_logo' From b6dbe1c9b2391be4391f74ebdc538c49ddd7ffad Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 28 Jul 2021 20:27:14 +0800 Subject: [PATCH 0573/2165] =?UTF-8?q?style:=20=E7=AE=80=E5=8C=96=E8=8F=9C?= =?UTF-8?q?=E5=8D=95=E5=90=84=E9=A1=B9=E5=90=8D=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/javascript/packs/application.js | 14 ++++++------ app/views/layouts/_main_sidebar.html.slim | 26 +++++++++++------------ 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/app/javascript/packs/application.js b/app/javascript/packs/application.js index e654142b8..5d750a73b 100644 --- a/app/javascript/packs/application.js +++ b/app/javascript/packs/application.js @@ -45,13 +45,13 @@ document.addEventListener("turbolinks:load", function () { $("[data-toggle='tooltip']").tooltip(); // fix collapse with no response - // $("[data-widget="collapse"]").each(function () { - // $(this).on("click", function () { - // var card = $(this).parents(".card"); - // $(card).removeClass("collapsed-box"); - // $(card).boxWidget("toggle"); - // }) - // }); + $("[data-widget='collapse']").each(function () { + $(this).on("click", function () { + var card = $(this).parents(".card"); + $(card).removeClass("collapsed-box"); + $(card).boxWidget("toggle"); + }) + }); }); // auto switch dark mode diff --git a/app/views/layouts/_main_sidebar.html.slim b/app/views/layouts/_main_sidebar.html.slim index b2feede06..4576b4426 100644 --- a/app/views/layouts/_main_sidebar.html.slim +++ b/app/views/layouts/_main_sidebar.html.slim @@ -1,46 +1,46 @@ .sidebar nav.mt-2 - ul.nav.nav-pills.nav-sidebar.nav-child-indent.flex-column data-widget="treeview" role="menu" + ul.nav.nav-pills.nav-sidebar.flex-column data-widget="treeview" role="menu" data-accordion="false" li.nav-header 功能区域 - li class="nav-item" + li.nav-item a.nav-link href="#{root_path}" class="#{active_class(root_path)}" i.nav-icon.fas.fa-th p 控制台 - li class="nav-item" + li.nav-item a.nav-link href="#{apps_path}" class="#{active_class(apps_path)}" i.nav-icon.fab.fa-adn - p 应用管理 - li class="nav-item" + p 应用 + li.nav-item a.nav-link href="#{debug_files_path}" class="#{active_class(debug_files_path)}" i.nav-icon.fas.fa-bug - p 调试文件管理 + p 调试文件 li.nav-header 工具箱 - li class="nav-item" + li.nav-item a.nav-link href="#{teardowns_path}" class="#{active_class(teardowns_path)}" i.nav-icon.fas.fa-layer-group p 应用解包 - li class="nav-item" + li.nav-item a.nav-link href="#{udid_path}" class="#{active_class(udid_path)}" i.nav-icon.fas.fa-eye - p 获取 iOS 设备 UDID + p 获取 UDID - if current_user&.admin? li.nav-header 管理区域 li.nav-item a.nav-link href="#{admin_users_path}" class="#{active_class(admin_users_path)}" i.nav-icon.fas.fa-user - p 用户管理 + p 用户 li.nav-item a.nav-link href="#{admin_web_hooks_path}" class="#{active_class(admin_web_hooks_path)}" i.nav-icon.fas.fa-anchor - p 网络钩子管理 + p 网络钩子 li.nav-item a.nav-link href="#{admin_settings_path}" class="#{active_class(admin_settings_path)}" i.nav-icon.fas.fa-cog p 系统设置 - li.nav-item.has-treeview class="#{active_class([admin_system_info_index_path, admin_background_jobs_path, admin_database_analytics_path], 'menu-open')}" - a.nav-link href="#" class="#{active_class([admin_system_info_index_path, admin_background_jobs_path, admin_database_analytics_path])}" + li.nav-item.has-treeview class="#{active_class([admin_system_info_index_path, admin_background_jobs_path, admin_database_analytics_path, admin_page_analytics_path], 'menu-open')}" + a.nav-link href="#" class="#{active_class([admin_system_info_index_path, admin_background_jobs_path, admin_database_analytics_path, admin_page_analytics_path])}" i.nav-icon.fas.fa-laptop-code p | 监控 From ad47a741ceb76f3493d4426a764c4dcd341b9f49 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 28 Jul 2021 21:01:13 +0000 Subject: [PATCH 0574/2165] chore(deps): bump redis from 4.3.1 to 4.4.0 Bumps [redis](https://github.com/redis/redis-rb) from 4.3.1 to 4.4.0. - [Release notes](https://github.com/redis/redis-rb/releases) - [Changelog](https://github.com/redis/redis-rb/blob/master/CHANGELOG.md) - [Commits](https://github.com/redis/redis-rb/compare/v4.3.1...v4.4.0) --- updated-dependencies: - dependency-name: redis dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 64184245c..b61ae7e35 100644 --- a/Gemfile +++ b/Gemfile @@ -11,7 +11,7 @@ gem 'rake', '~> 13.0.4' # DB & Cache gem 'pg', '>= 0.18', '< 2.0' -gem 'redis', '~> 4.3.1' +gem 'redis', '~> 4.4.0' # API gem 'active_model_serializers', '~> 0.10.12' diff --git a/Gemfile.lock b/Gemfile.lock index 5652ddbdb..e7f28ec85 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -370,7 +370,7 @@ GEM rb-fsevent (0.11.0) rb-inotify (0.10.1) ffi (~> 1.0) - redis (4.3.1) + redis (4.4.0) regexp_parser (2.1.1) responders (3.0.1) actionpack (>= 5.0) @@ -548,7 +548,7 @@ DEPENDENCIES rails-i18n (~> 6.0.0) rails-settings-cached (~> 2.7.1) rake (~> 13.0.4) - redis (~> 4.3.1) + redis (~> 4.4.0) rqrcode rubocop (>= 0.70) rubocop-rails From 660bd8bd6d5dc930c7a5df510e642009ebef2e05 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 29 Jul 2021 21:00:50 +0000 Subject: [PATCH 0575/2165] chore(deps): bump sentry-rails from 4.6.1 to 4.6.4 Bumps [sentry-rails](https://github.com/getsentry/sentry-ruby) from 4.6.1 to 4.6.4. - [Release notes](https://github.com/getsentry/sentry-ruby/releases) - [Changelog](https://github.com/getsentry/sentry-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-ruby/compare/4.6.1...4.6.4) --- updated-dependencies: - dependency-name: sentry-rails dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 5652ddbdb..418326c21 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -133,7 +133,7 @@ GEM erubi (1.10.0) et-orbi (1.2.4) tzinfo - faraday (1.5.0) + faraday (1.5.1) faraday-em_http (~> 1.0) faraday-em_synchrony (~> 1.0) faraday-excon (~> 1.1) @@ -148,7 +148,7 @@ GEM faraday-excon (1.1.0) faraday-httpclient (1.0.1) faraday-net_http (1.0.1) - faraday-net_http_persistent (1.1.0) + faraday-net_http_persistent (1.2.0) faraday-patron (1.0.0) ffi (1.15.3) ffi-compiler (1.0.1) @@ -401,7 +401,7 @@ GEM ruby-progressbar (1.11.0) ruby-vips (2.1.2) ffi (~> 1.12) - ruby2_keywords (0.0.4) + ruby2_keywords (0.0.5) ruby_android (0.7.7) rubyzip (>= 1.1.6) rubyntlm (0.6.3) @@ -409,7 +409,7 @@ GEM rufus-scheduler (3.7.0) fugit (~> 1.1, >= 1.1.6) semantic_range (3.0.0) - sentry-rails (4.6.1) + sentry-rails (4.6.4) railties (>= 5.0) sentry-ruby-core (~> 4.6.0) sentry-ruby (4.6.1) From 239d72d1b4d1c7206c596bee13573280d6bc667e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 29 Jul 2021 21:01:06 +0000 Subject: [PATCH 0576/2165] chore(deps): bump sentry-ruby from 4.6.1 to 4.6.4 Bumps [sentry-ruby](https://github.com/getsentry/sentry-ruby) from 4.6.1 to 4.6.4. - [Release notes](https://github.com/getsentry/sentry-ruby/releases) - [Changelog](https://github.com/getsentry/sentry-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-ruby/compare/4.6.1...4.6.4) --- updated-dependencies: - dependency-name: sentry-ruby dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 5652ddbdb..d02724f43 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -133,7 +133,7 @@ GEM erubi (1.10.0) et-orbi (1.2.4) tzinfo - faraday (1.5.0) + faraday (1.5.1) faraday-em_http (~> 1.0) faraday-em_synchrony (~> 1.0) faraday-excon (~> 1.1) @@ -148,7 +148,7 @@ GEM faraday-excon (1.1.0) faraday-httpclient (1.0.1) faraday-net_http (1.0.1) - faraday-net_http_persistent (1.1.0) + faraday-net_http_persistent (1.2.0) faraday-patron (1.0.0) ffi (1.15.3) ffi-compiler (1.0.1) @@ -401,7 +401,7 @@ GEM ruby-progressbar (1.11.0) ruby-vips (2.1.2) ffi (~> 1.12) - ruby2_keywords (0.0.4) + ruby2_keywords (0.0.5) ruby_android (0.7.7) rubyzip (>= 1.1.6) rubyntlm (0.6.3) @@ -412,11 +412,11 @@ GEM sentry-rails (4.6.1) railties (>= 5.0) sentry-ruby-core (~> 4.6.0) - sentry-ruby (4.6.1) + sentry-ruby (4.6.4) concurrent-ruby (~> 1.0, >= 1.0.2) faraday (>= 1.0) - sentry-ruby-core (= 4.6.1) - sentry-ruby-core (4.6.1) + sentry-ruby-core (= 4.6.4) + sentry-ruby-core (4.6.4) concurrent-ruby faraday sentry-sidekiq (4.6.1) From b0d0508365f94da19f51bc56cc9d77b7d9a55b54 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 29 Jul 2021 21:01:30 +0000 Subject: [PATCH 0577/2165] chore(deps): bump sentry-sidekiq from 4.6.1 to 4.6.4 Bumps [sentry-sidekiq](https://github.com/getsentry/sentry-ruby) from 4.6.1 to 4.6.4. - [Release notes](https://github.com/getsentry/sentry-ruby/releases) - [Changelog](https://github.com/getsentry/sentry-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-ruby/compare/4.6.1...4.6.4) --- updated-dependencies: - dependency-name: sentry-sidekiq dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 5652ddbdb..b69e6fff6 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -133,7 +133,7 @@ GEM erubi (1.10.0) et-orbi (1.2.4) tzinfo - faraday (1.5.0) + faraday (1.5.1) faraday-em_http (~> 1.0) faraday-em_synchrony (~> 1.0) faraday-excon (~> 1.1) @@ -148,7 +148,7 @@ GEM faraday-excon (1.1.0) faraday-httpclient (1.0.1) faraday-net_http (1.0.1) - faraday-net_http_persistent (1.1.0) + faraday-net_http_persistent (1.2.0) faraday-patron (1.0.0) ffi (1.15.3) ffi-compiler (1.0.1) @@ -401,7 +401,7 @@ GEM ruby-progressbar (1.11.0) ruby-vips (2.1.2) ffi (~> 1.12) - ruby2_keywords (0.0.4) + ruby2_keywords (0.0.5) ruby_android (0.7.7) rubyzip (>= 1.1.6) rubyntlm (0.6.3) @@ -419,8 +419,9 @@ GEM sentry-ruby-core (4.6.1) concurrent-ruby faraday - sentry-sidekiq (4.6.1) + sentry-sidekiq (4.6.4) sentry-ruby-core (~> 4.6.0) + sidekiq (>= 3.0) shellany (0.0.1) sidekiq (6.2.1) connection_pool (>= 2.2.2) From 426194cdcbd5bea7018a63476180a4a86cee824f Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 28 Jul 2021 20:27:14 +0800 Subject: [PATCH 0578/2165] =?UTF-8?q?style:=20=E7=AE=80=E5=8C=96=E8=8F=9C?= =?UTF-8?q?=E5=8D=95=E5=90=84=E9=A1=B9=E5=90=8D=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/javascript/packs/application.js | 14 ++++++------ app/javascript/stylesheets/app.scss | 14 ------------ app/views/layouts/_main_sidebar.html.slim | 26 +++++++++++------------ 3 files changed, 20 insertions(+), 34 deletions(-) diff --git a/app/javascript/packs/application.js b/app/javascript/packs/application.js index e654142b8..62498f619 100644 --- a/app/javascript/packs/application.js +++ b/app/javascript/packs/application.js @@ -45,13 +45,13 @@ document.addEventListener("turbolinks:load", function () { $("[data-toggle='tooltip']").tooltip(); // fix collapse with no response - // $("[data-widget="collapse"]").each(function () { - // $(this).on("click", function () { - // var card = $(this).parents(".card"); - // $(card).removeClass("collapsed-box"); - // $(card).boxWidget("toggle"); - // }) - // }); + $("[data-widget='collapse']").each(function () { + $(this).on("click", function () { + var card = $(this).parents(".card"); + $(card).removeClass("collapsed-box"); + $(card).boxWidget("toggle"); + }); + }); }); // auto switch dark mode diff --git a/app/javascript/stylesheets/app.scss b/app/javascript/stylesheets/app.scss index e09bdd98e..ea3ca01b3 100644 --- a/app/javascript/stylesheets/app.scss +++ b/app/javascript/stylesheets/app.scss @@ -128,17 +128,3 @@ $ios-install-issue-color: rgb(245, 39, 90); } } } - -// App 最近上传 - -.release-changelogs-toggle { - cursor: pointer; -} - -.release-changelogs-toggle:hover { - background-color: #EFEFEF; -} - -.release-changelog-current { - background-color: #fffee8 !important; -} \ No newline at end of file diff --git a/app/views/layouts/_main_sidebar.html.slim b/app/views/layouts/_main_sidebar.html.slim index b2feede06..4576b4426 100644 --- a/app/views/layouts/_main_sidebar.html.slim +++ b/app/views/layouts/_main_sidebar.html.slim @@ -1,46 +1,46 @@ .sidebar nav.mt-2 - ul.nav.nav-pills.nav-sidebar.nav-child-indent.flex-column data-widget="treeview" role="menu" + ul.nav.nav-pills.nav-sidebar.flex-column data-widget="treeview" role="menu" data-accordion="false" li.nav-header 功能区域 - li class="nav-item" + li.nav-item a.nav-link href="#{root_path}" class="#{active_class(root_path)}" i.nav-icon.fas.fa-th p 控制台 - li class="nav-item" + li.nav-item a.nav-link href="#{apps_path}" class="#{active_class(apps_path)}" i.nav-icon.fab.fa-adn - p 应用管理 - li class="nav-item" + p 应用 + li.nav-item a.nav-link href="#{debug_files_path}" class="#{active_class(debug_files_path)}" i.nav-icon.fas.fa-bug - p 调试文件管理 + p 调试文件 li.nav-header 工具箱 - li class="nav-item" + li.nav-item a.nav-link href="#{teardowns_path}" class="#{active_class(teardowns_path)}" i.nav-icon.fas.fa-layer-group p 应用解包 - li class="nav-item" + li.nav-item a.nav-link href="#{udid_path}" class="#{active_class(udid_path)}" i.nav-icon.fas.fa-eye - p 获取 iOS 设备 UDID + p 获取 UDID - if current_user&.admin? li.nav-header 管理区域 li.nav-item a.nav-link href="#{admin_users_path}" class="#{active_class(admin_users_path)}" i.nav-icon.fas.fa-user - p 用户管理 + p 用户 li.nav-item a.nav-link href="#{admin_web_hooks_path}" class="#{active_class(admin_web_hooks_path)}" i.nav-icon.fas.fa-anchor - p 网络钩子管理 + p 网络钩子 li.nav-item a.nav-link href="#{admin_settings_path}" class="#{active_class(admin_settings_path)}" i.nav-icon.fas.fa-cog p 系统设置 - li.nav-item.has-treeview class="#{active_class([admin_system_info_index_path, admin_background_jobs_path, admin_database_analytics_path], 'menu-open')}" - a.nav-link href="#" class="#{active_class([admin_system_info_index_path, admin_background_jobs_path, admin_database_analytics_path])}" + li.nav-item.has-treeview class="#{active_class([admin_system_info_index_path, admin_background_jobs_path, admin_database_analytics_path, admin_page_analytics_path], 'menu-open')}" + a.nav-link href="#" class="#{active_class([admin_system_info_index_path, admin_background_jobs_path, admin_database_analytics_path, admin_page_analytics_path])}" i.nav-icon.fas.fa-laptop-code p | 监控 From 60d949ac92c49f98c9302706bfc6dbe42745a9f1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 31 Jul 2021 04:38:37 +0000 Subject: [PATCH 0579/2165] chore(deps): bump puma from 5.3.2 to 5.4.0 Bumps [puma](https://github.com/puma/puma) from 5.3.2 to 5.4.0. - [Release notes](https://github.com/puma/puma/releases) - [Changelog](https://github.com/puma/puma/blob/master/History.md) - [Commits](https://github.com/puma/puma/compare/v5.3.2...v5.4.0) --- updated-dependencies: - dependency-name: puma dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile | 4 ++-- Gemfile.lock | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Gemfile b/Gemfile index 64184245c..469474e11 100644 --- a/Gemfile +++ b/Gemfile @@ -4,14 +4,14 @@ source 'https://rubygems.org' git_source(:github) { |repo_name| "https://github.com/#{repo_name}" } -gem 'puma', '~> 5.3.2' +gem 'puma', '~> 5.4.0' gem 'rails', '~> 6.1.4' gem 'rails-i18n', '~> 6.0.0' gem 'rake', '~> 13.0.4' # DB & Cache gem 'pg', '>= 0.18', '< 2.0' -gem 'redis', '~> 4.3.1' +gem 'redis', '~> 4.4.0' # API gem 'active_model_serializers', '~> 0.10.12' diff --git a/Gemfile.lock b/Gemfile.lock index 5652ddbdb..655d95d3c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -320,7 +320,7 @@ GEM interception (>= 0.5) pry (>= 0.12.0) public_suffix (4.0.6) - puma (5.3.2) + puma (5.4.0) nio4r (~> 2.0) pundit (2.1.0) activesupport (>= 3.0.0) @@ -370,7 +370,7 @@ GEM rb-fsevent (0.11.0) rb-inotify (0.10.1) ffi (~> 1.0) - redis (4.3.1) + redis (4.4.0) regexp_parser (2.1.1) responders (3.0.1) actionpack (>= 5.0) @@ -541,14 +541,14 @@ DEPENDENCIES pry-byebug pry-rails pry-rescue - puma (~> 5.3.2) + puma (~> 5.4.0) pundit (~> 2.1.0) rack-cors (~> 1.1.1) rails (~> 6.1.4) rails-i18n (~> 6.0.0) rails-settings-cached (~> 2.7.1) rake (~> 13.0.4) - redis (~> 4.3.1) + redis (~> 4.4.0) rqrcode rubocop (>= 0.70) rubocop-rails From bf21117f9696e413c4129d884cff34308d90eb00 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 28 Jul 2021 19:34:30 +0800 Subject: [PATCH 0580/2165] =?UTF-8?q?feat:=20=E6=94=AF=E6=8C=81=E9=80=9A?= =?UTF-8?q?=E7=9F=A5=E6=9C=BA=E5=88=B6=20(wip)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/channels/application_cable/connection.rb | 13 +++- app/channels/notification_channel.rb | 17 +++++ app/controllers/api/debug_files_controller.rb | 2 +- app/controllers/debug_files_controller.rb | 2 +- app/controllers/releases_controller.rb | 4 +- app/javascript/channels/consumer.js | 6 ++ app/javascript/channels/index.js | 9 +++ .../channels/notification_channel.js | 21 ++++++ app/javascript/packs/application.js | 64 +++++++++++-------- app/jobs/application_job.rb | 13 ++++ app/jobs/debug_file_teardown_job.rb | 14 +++- app/jobs/teardown_job.rb | 2 +- app/models/release.rb | 4 ++ app/views/layouts/_messages.html.slim | 29 +++++---- cable/config.ru | 6 -- config.ru | 1 + config/app.yml | 13 ---- config/cable.yml | 14 ++++ package.json | 1 + yarn.lock | 5 ++ 20 files changed, 172 insertions(+), 68 deletions(-) create mode 100644 app/channels/notification_channel.rb create mode 100644 app/javascript/channels/consumer.js create mode 100644 app/javascript/channels/index.js create mode 100644 app/javascript/channels/notification_channel.js delete mode 100755 cable/config.ru delete mode 100644 config/app.yml create mode 100755 config/cable.yml diff --git a/app/channels/application_cable/connection.rb b/app/channels/application_cable/connection.rb index 6ebbca60a..f6951627d 100644 --- a/app/channels/application_cable/connection.rb +++ b/app/channels/application_cable/connection.rb @@ -1,7 +1,18 @@ # frozen_string_literal: true -# frozen_string_literal: true module ApplicationCable class Connection < ActionCable::Connection::Base + identified_by :current_user + + def connect + self.current_user = find_verified_user + logger.add_tags 'ActionCable', current_user.id + end + + private + + def find_verified_user + env['warden'].user || reject_unauthorized_connection + end end end diff --git a/app/channels/notification_channel.rb b/app/channels/notification_channel.rb new file mode 100644 index 000000000..fa66ec685 --- /dev/null +++ b/app/channels/notification_channel.rb @@ -0,0 +1,17 @@ +# frozen_string_literal: true + +class NotificationChannel < ApplicationCable::Channel + NAME = 'notification' + + def subscribed + stream_from "#{NAME}:#{current_user.id}" + end + + def unsubscribed + stop_stream_from "#{NAME}::#{current_user.id}" + end + + # def speak(data) + # ActionCable.server.broadcast NAME, message: data["message"], sent_by: data["name"] + # end +end diff --git a/app/controllers/api/debug_files_controller.rb b/app/controllers/api/debug_files_controller.rb index 63a025fb4..79dbcf07b 100644 --- a/app/controllers/api/debug_files_controller.rb +++ b/app/controllers/api/debug_files_controller.rb @@ -28,7 +28,7 @@ def create @debug_file.app = @channel.app @debug_file.device_type = @channel.device_type if @debug_file.save! - DebugFileTeardownJob.perform_now @debug_file + DebugFileTeardownJob.perform_now(@debug_file) render json: @debug_file, serializer: Api::DebugFileSerializer, status: :created else render json: @debug_file.errors diff --git a/app/controllers/debug_files_controller.rb b/app/controllers/debug_files_controller.rb index a0b4f8ff2..7ccf55d71 100644 --- a/app/controllers/debug_files_controller.rb +++ b/app/controllers/debug_files_controller.rb @@ -23,7 +23,7 @@ def create authorize @debug_file if @debug_file.save - DebugFileTeardownJob.perform_later @debug_file + DebugFileTeardownJob.perform_later(@debug_file, current_user.id) redirect_to debug_files_url, notice: '调试文件上传成功,后台正在应用解包请稍后查看详情' else diff --git a/app/controllers/releases_controller.rb b/app/controllers/releases_controller.rb index de571a011..d1d8710e3 100644 --- a/app/controllers/releases_controller.rb +++ b/app/controllers/releases_controller.rb @@ -31,9 +31,7 @@ def create # 触发异步任务 @release.channel.perform_web_hook('upload_events') - - TeardownJob.perform_later(@release.id, current_user&.id) - TeardownJob.perform_later(@release.id, current_user&.id) + @release.perform_teardown_job redirect_to channel_release_url(@channel, @release), notice: '应用上传成功' end diff --git a/app/javascript/channels/consumer.js b/app/javascript/channels/consumer.js new file mode 100644 index 000000000..b6a99de10 --- /dev/null +++ b/app/javascript/channels/consumer.js @@ -0,0 +1,6 @@ +// Action Cable provides the framework to deal with WebSockets in Rails. +// You can generate new channels where WebSocket features live using the `bin/rails generate channel` command. + +import { createConsumer } from "@rails/actioncable"; + +export default createConsumer(); diff --git a/app/javascript/channels/index.js b/app/javascript/channels/index.js new file mode 100644 index 000000000..c9333a2e9 --- /dev/null +++ b/app/javascript/channels/index.js @@ -0,0 +1,9 @@ +// Load all the channels within this directory and all subdirectories. +// Channel files must be named *_channel.js. + +// Enable action cable logger +// import * as ActionCable from '@rails/actioncable' +// ActionCable.logger.enabled = true + +const channels = require.context('.', true, /_channel\.js$/); +channels.keys().forEach(channels); diff --git a/app/javascript/channels/notification_channel.js b/app/javascript/channels/notification_channel.js new file mode 100644 index 000000000..3f58901c5 --- /dev/null +++ b/app/javascript/channels/notification_channel.js @@ -0,0 +1,21 @@ +import consumer from "./consumer" + +const notificationChannel = consumer.subscriptions.create("NotificationChannel", { + received(data) { + var color = 'success'; + var icon = 'fas fa-check'; + if (data.status != 'success') { + icon = 'fas fa-exclamation-triangle'; + color = 'danger'; + } + + $("#notifications").prepend( + '
' + + '' + + '

' + + '' + data.message + '

' + ); + } +}); + +export default notificationChannel; \ No newline at end of file diff --git a/app/javascript/packs/application.js b/app/javascript/packs/application.js index 62498f619..42a456b76 100644 --- a/app/javascript/packs/application.js +++ b/app/javascript/packs/application.js @@ -14,10 +14,13 @@ // const images = require.context("../images", true); const imagePath = (name) => images(name, true); +const HOST = location.protocol + "//" + location.hostname + (location.port ? ":" + location.port : "") + "/"; + +// Import Rails +import Rails from "@rails/ujs"; +import Turbolinks from "turbolinks"; // Import CSS -// import "bootstrap/dist/css/bootstrap"; -// import "admin-lte/dist/css/adminlte"; import "@fortawesome/fontawesome-free/css/all"; import "stylesheets/application"; @@ -26,38 +29,45 @@ import "jquery"; import "bootstrap"; import "admin-lte"; import "clipboard"; +import "channels"; -require("@rails/ujs").start(); -require("turbolinks").start(); -require("javascripts/debug_files"); -require("javascripts/releases"); -require("javascripts/teardown/upload"); -require("javascripts/udid"); -require("javascripts/admin"); +import "javascripts/debug_files"; +import "javascripts/releases"; +import "javascripts/teardown/upload"; +import "javascripts/udid"; +import "javascripts/admin"; -var HOST = location.protocol + "//" + location.hostname + (location.port ? ":" + location.port : "") + "/"; +Rails.start(); +Turbolinks.start(); -document.addEventListener("turbolinks:load", function () { +$(document).on("turbolinks:load", function () { // fix body height for AdminLTE 2.4.0 and turbolinks 5 $(window).trigger("resize"); // enable tooltip global $("[data-toggle='tooltip']").tooltip(); - // fix collapse with no response - $("[data-widget='collapse']").each(function () { - $(this).on("click", function () { - var card = $(this).parents(".card"); - $(card).removeClass("collapsed-box"); - $(card).boxWidget("toggle"); - }); - }); -}); + // // fix collapse with no response + // $("[data-widget="collapse"]").each(function () { + // $(this).on("click", function () { + // var card = $(this).parents(".card"); + // $(card).removeClass("collapsed-box"); + // $(card).boxWidget("toggle"); + // }) + // }); + + // // auto switch dark mode + // var isDarkMode = window.matchMedia("(prefers-color-scheme: dark)").matches; + // console.log("darkmode: " + isDarkMode); -// auto switch dark mode -// $(document).ready(function () { -// var isDarkMode = window.matchMedia("(prefers-color-scheme: dark)").matches; -// if (isDarkMode) { -// $("body").removeClass("skin-black-light").addClass("skin-black"); -// } -// }); \ No newline at end of file + // if (isDarkMode == true) { + // $("body").addClass("dark-mode"); + // $(".main-header").addClass("navbar-dark").removeClass("navbar-white"); + // $(".main-sidebar").addClass("sidebar-dark-primary").removeClass("sidebar-light-primary"); + // } + + // $(document).Toasts('create', { + // title: 'Toast Title', + // body: 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr.' + // }) +}); diff --git a/app/jobs/application_job.rb b/app/jobs/application_job.rb index 34bb3d8a2..9cf1a3f8b 100644 --- a/app/jobs/application_job.rb +++ b/app/jobs/application_job.rb @@ -2,4 +2,17 @@ class ApplicationJob < ActiveJob::Base include ActiveJob::Status + + protected + + def notification_user(type:, status:, user_id:, message:) + ActionCable.server.broadcast "notification:#{user_id}", { + type: type, + status: status, + html: "
+ + 调试文件解析完成! +
" + } + end end diff --git a/app/jobs/debug_file_teardown_job.rb b/app/jobs/debug_file_teardown_job.rb index d9b636569..862682ffe 100644 --- a/app/jobs/debug_file_teardown_job.rb +++ b/app/jobs/debug_file_teardown_job.rb @@ -3,7 +3,7 @@ class DebugFileTeardownJob < ApplicationJob queue_as :app_parse - def perform(debug_file) + def perform(debug_file, user_id = nil) parser = AppInfo.parse(debug_file.file.path) case parser.file_type @@ -17,10 +17,22 @@ def perform(debug_file) # 清理掉临时生成的文件 parser.clear! + + notification_user(debug_file, user_id) end private + def notification_user(debug_file, user_id) + return if user_id.blank? + + ActionCable.server.broadcast "notification:#{user_id}", { + type: 'teardown', + status: 'success', + message: "调试文件 #{debug_file.id} 解析完成,需要手动刷新页面才能看到哟" + } +end + def parse_dsym(debug_file, parser) parser.machos.each do |macho| debug_file.metadata.find_or_create_by(uuid: macho.uuid) do |metadata| diff --git a/app/jobs/teardown_job.rb b/app/jobs/teardown_job.rb index 9e84c157c..c83f8b2ef 100644 --- a/app/jobs/teardown_job.rb +++ b/app/jobs/teardown_job.rb @@ -3,7 +3,7 @@ class TeardownJob < ApplicationJob queue_as :app_parse - def perform(release_id, user_id = nil) + def perform(release_id, user_id) return unless file = determine_file!(release_id) metadata = TeardownService.call(file.path) diff --git a/app/models/release.rb b/app/models/release.rb index fb2f79baa..c21d991b3 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -79,6 +79,10 @@ def self.upload_file(params, parser = nil) end end + def perform_teardown_job(user_id) + TeardownJob.perform_later(id, user_id) + end + def app_name "#{app.name} #{scheme.name} #{channel.name}" end diff --git a/app/views/layouts/_messages.html.slim b/app/views/layouts/_messages.html.slim index 655afd0f7..f891a3656 100644 --- a/app/views/layouts/_messages.html.slim +++ b/app/views/layouts/_messages.html.slim @@ -1,15 +1,16 @@ -- flash.each do |name, msg| - ruby: - color, icon = case name - when 'notice', 'success' - ['success', 'check'] - else - ['danger', 'exclamation-triangle'] - end +#notifications + - flash.each do |name, msg| + ruby: + color, icon = case name + when 'notice', 'success' + ['success', 'check'] + else + ['danger', 'exclamation-triangle'] + end - .alert.alert-dismissible class="alert-#{color}" - button.close data-dismiss="alert" aria-hidden="true" - | × - h4 - i.icon.fas class="fa-#{icon}" - = content_tag :span, msg, :id => "flash_#{name}" \ No newline at end of file + .alert.alert-dismissible class="alert-#{color}" + button.close data-dismiss="alert" aria-hidden="true" + | × + h4 + i.icon.fas class="fa-#{icon}" + = content_tag :span, msg, :id => "flash_#{name}" \ No newline at end of file diff --git a/cable/config.ru b/cable/config.ru deleted file mode 100755 index 767387ddc..000000000 --- a/cable/config.ru +++ /dev/null @@ -1,6 +0,0 @@ -# frozen_string_literal: true - -require_relative '../config/environment' -Rails.application.eager_load! - -run ActionCable.server diff --git a/config.ru b/config.ru index f7ba0b527..ad1fbf295 100644 --- a/config.ru +++ b/config.ru @@ -3,3 +3,4 @@ require_relative 'config/environment' run Rails.application +Rails.application.load_server diff --git a/config/app.yml b/config/app.yml deleted file mode 100644 index 7c846cef8..000000000 --- a/config/app.yml +++ /dev/null @@ -1,13 +0,0 @@ -# config/app.yml for rails-settings-cached -defaults: &defaults - foo: "Foo" - bar: 123 - -development: - <<: *defaults - -test: - <<: *defaults - -production: - <<: *defaults diff --git a/config/cable.yml b/config/cable.yml new file mode 100755 index 000000000..3a4fb1900 --- /dev/null +++ b/config/cable.yml @@ -0,0 +1,14 @@ +default: &default + adapter: redis + url: <%= ENV.fetch("REDIS_URL") { "redis://localhost:6379/1" } %> + +development: + <<: *default + channel_prefix: zealot_development + +test: + adapter: test + +production: + <<: *default + channel_prefix: zealot_production \ No newline at end of file diff --git a/package.json b/package.json index d6a6103b2..56d1bd13b 100644 --- a/package.json +++ b/package.json @@ -3,6 +3,7 @@ "private": true, "dependencies": { "@rails/ujs": "^6.1.4", + "@rails/actioncable": "^6.1.4", "@rails/webpacker": "^5.4.0", "admin-lte": "^3.1.0", "clipboard": "^2.0.8", diff --git a/yarn.lock b/yarn.lock index d3e8777ac..b92e95b90 100644 --- a/yarn.lock +++ b/yarn.lock @@ -903,6 +903,11 @@ mkdirp "^1.0.4" rimraf "^3.0.2" +"@rails/actioncable@^6.1.4": + version "6.1.4" + resolved "https://registry.yarnpkg.com/@rails/actioncable/-/actioncable-6.1.4.tgz#c3c5a9f8302c429af9722b6c50ab48049016d2a3" + integrity sha512-0LmSKJTuo2dL6BQ+9xxLnS9lbkyfz2mBGeBnQ2J7o9Bn0l0q+ZC6VuoZMZZXPvABI4QT7Nfknv5WhfKYL+boew== + "@rails/ujs@^6.1.4": version "6.1.4" resolved "https://registry.yarnpkg.com/@rails/ujs/-/ujs-6.1.4.tgz#093d5341595a02089ed309dec40f3c37da7b1b10" From b5cc6b60d744b18a08a1e544d55e9ddacdc06cae Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Aug 2021 21:01:07 +0000 Subject: [PATCH 0581/2165] chore(deps): bump bootsnap from 1.7.6 to 1.7.7 Bumps [bootsnap](https://github.com/Shopify/bootsnap) from 1.7.6 to 1.7.7. - [Release notes](https://github.com/Shopify/bootsnap/releases) - [Changelog](https://github.com/Shopify/bootsnap/blob/master/CHANGELOG.md) - [Commits](https://github.com/Shopify/bootsnap/compare/v1.7.6...v1.7.7) --- updated-dependencies: - dependency-name: bootsnap dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 3969e8af7..2ef3bbb12 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -90,7 +90,7 @@ GEM bindex (0.8.1) binding_of_caller (1.0.0) debug_inspector (>= 0.0.1) - bootsnap (1.7.6) + bootsnap (1.7.7) msgpack (~> 1.0) builder (3.2.4) byebug (11.1.3) From 1525ad96ab057b79b42de526269e8d3381b77616 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 3 Aug 2021 21:50:08 +0000 Subject: [PATCH 0582/2165] chore(deps): bump tar from 6.1.0 to 6.1.4 Bumps [tar](https://github.com/npm/node-tar) from 6.1.0 to 6.1.4. - [Release notes](https://github.com/npm/node-tar/releases) - [Changelog](https://github.com/npm/node-tar/blob/main/CHANGELOG.md) - [Commits](https://github.com/npm/node-tar/compare/v6.1.0...v6.1.4) --- updated-dependencies: - dependency-name: tar dependency-type: indirect ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index b92e95b90..4653cbe77 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7401,9 +7401,9 @@ tapable@^1.0.0, tapable@^1.1.3: integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== tar@^6.0.2: - version "6.1.0" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.0.tgz#d1724e9bcc04b977b18d5c573b333a2207229a83" - integrity sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA== + version "6.1.4" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.4.tgz#9f0722b772a5e00dba7d52e1923b37a7ec3799b3" + integrity sha512-kcPWrO8S5ABjuZ/v1xQHP8xCEvj1dQ1d9iAb6Qs4jLYzaAIYWwST2IQpz7Ud8VNYRI+fGhFjrnzRKmRggKWg3g== dependencies: chownr "^2.0.0" fs-minipass "^2.0.0" From a5a560b8e5ec86c17acf7f5e5c0a3b020a3b5a6f Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 6 Aug 2021 12:01:58 +0800 Subject: [PATCH 0583/2165] =?UTF-8?q?chore:=20=E4=BD=BF=E7=94=A8=E7=BB=9D?= =?UTF-8?q?=E5=AF=B9=E8=B7=AF=E5=BE=84=E8=BF=90=E8=A1=8C=20rails=20?= =?UTF-8?q?=E5=92=8C=20sidekiq=20=E6=9C=8D=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker/rootfs/etc/services.d/sidekiq/run | 3 +-- docker/rootfs/etc/services.d/zealot/run | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/docker/rootfs/etc/services.d/sidekiq/run b/docker/rootfs/etc/services.d/sidekiq/run index 6c7e477f0..9c9935e1e 100644 --- a/docker/rootfs/etc/services.d/sidekiq/run +++ b/docker/rootfs/etc/services.d/sidekiq/run @@ -1,5 +1,4 @@ #!/usr/bin/with-contenv sh echo "Starting Zealot Worker" -cd /app -bundle exec sidekiq -C config/sidekiq.yml | tee /app/log/sidekiq.log +/app/bin/sidekiq -C /app/config/sidekiq.yml | tee /app/log/sidekiq.log diff --git a/docker/rootfs/etc/services.d/zealot/run b/docker/rootfs/etc/services.d/zealot/run index f2bf54d76..3f2ffbfb8 100644 --- a/docker/rootfs/etc/services.d/zealot/run +++ b/docker/rootfs/etc/services.d/zealot/run @@ -1,5 +1,4 @@ #!/usr/bin/with-contenv sh echo "Starting Zealot" -cd /app -bundle exec puma -C config/puma.rb | tee /app/log/zealot.log \ No newline at end of file +/app/bin/puma -C /app/config/puma.rb | tee /app/log/zealot.log \ No newline at end of file From d10c1f368075463ea4c96a871ebe82d51bd5db92 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 6 Aug 2021 13:26:02 +0800 Subject: [PATCH 0584/2165] =?UTF-8?q?chore:=20=E6=B7=BB=E5=8A=A0=20puma=20?= =?UTF-8?q?=E5=92=8C=20sidekiq=20bin?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bin/puma | 29 ++++++++++++++++++++++++ bin/sidekiq | 29 ++++++++++++++++++++++++ docker/rootfs/etc/services.d/sidekiq/run | 3 ++- docker/rootfs/etc/services.d/zealot/run | 3 ++- 4 files changed, 62 insertions(+), 2 deletions(-) create mode 100755 bin/puma create mode 100755 bin/sidekiq diff --git a/bin/puma b/bin/puma new file mode 100755 index 000000000..880935b2d --- /dev/null +++ b/bin/puma @@ -0,0 +1,29 @@ +#!/usr/bin/env ruby +# frozen_string_literal: true + +# +# This file was generated by Bundler. +# +# The application 'puma' is installed as part of a gem, and +# this file is here to facilitate running it. +# + +require "pathname" +ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile", + Pathname.new(__FILE__).realpath) + +bundle_binstub = File.expand_path("../bundle", __FILE__) + +if File.file?(bundle_binstub) + if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/ + load(bundle_binstub) + else + abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run. +Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.") + end +end + +require "rubygems" +require "bundler/setup" + +load Gem.bin_path("puma", "puma") diff --git a/bin/sidekiq b/bin/sidekiq new file mode 100755 index 000000000..9e7549996 --- /dev/null +++ b/bin/sidekiq @@ -0,0 +1,29 @@ +#!/usr/bin/env ruby +# frozen_string_literal: true + +# +# This file was generated by Bundler. +# +# The application 'sidekiq' is installed as part of a gem, and +# this file is here to facilitate running it. +# + +require "pathname" +ENV["BUNDLE_GEMFILE"] ||= File.expand_path("../../Gemfile", + Pathname.new(__FILE__).realpath) + +bundle_binstub = File.expand_path("../bundle", __FILE__) + +if File.file?(bundle_binstub) + if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/ + load(bundle_binstub) + else + abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run. +Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.") + end +end + +require "rubygems" +require "bundler/setup" + +load Gem.bin_path("sidekiq", "sidekiq") diff --git a/docker/rootfs/etc/services.d/sidekiq/run b/docker/rootfs/etc/services.d/sidekiq/run index 9c9935e1e..fc39082dd 100644 --- a/docker/rootfs/etc/services.d/sidekiq/run +++ b/docker/rootfs/etc/services.d/sidekiq/run @@ -1,4 +1,5 @@ #!/usr/bin/with-contenv sh echo "Starting Zealot Worker" -/app/bin/sidekiq -C /app/config/sidekiq.yml | tee /app/log/sidekiq.log +cd /app +./bin/sidekiq -C config/sidekiq.yml | tee /app/log/sidekiq.log diff --git a/docker/rootfs/etc/services.d/zealot/run b/docker/rootfs/etc/services.d/zealot/run index 3f2ffbfb8..e1aa3bdd8 100644 --- a/docker/rootfs/etc/services.d/zealot/run +++ b/docker/rootfs/etc/services.d/zealot/run @@ -1,4 +1,5 @@ #!/usr/bin/with-contenv sh echo "Starting Zealot" -/app/bin/puma -C /app/config/puma.rb | tee /app/log/zealot.log \ No newline at end of file +cd /app +./bin/puma -C /app/config/puma.rb | tee /app/log/zealot.log \ No newline at end of file From 8395e17acc83a330cdddce210733ff6be7374402 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 6 Aug 2021 15:19:51 +0800 Subject: [PATCH 0585/2165] =?UTF-8?q?fix:=20=E4=B8=A2=E5=A4=B1=E6=A0=B7?= =?UTF-8?q?=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/javascript/packs/application.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/javascript/packs/application.js b/app/javascript/packs/application.js index 42a456b76..4de5c5839 100644 --- a/app/javascript/packs/application.js +++ b/app/javascript/packs/application.js @@ -21,6 +21,8 @@ import Rails from "@rails/ujs"; import Turbolinks from "turbolinks"; // Import CSS +import "bootstrap/dist/css/bootstrap"; +import "admin-lte/dist/css/adminlte"; import "@fortawesome/fontawesome-free/css/all"; import "stylesheets/application"; From 8f5c36441e061f7f480baa8ff87ffcad0589fc64 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 6 Aug 2021 18:14:13 +0800 Subject: [PATCH 0586/2165] =?UTF-8?q?fix:=20=E7=BD=91=E9=A1=B5=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0=E5=90=8E=E8=A7=A3=E6=9E=90=E5=8C=85=E7=9A=84=E5=BC=82?= =?UTF-8?q?=E6=AD=A5=E4=BB=BB=E5=8A=A1=E5=88=9B=E5=BB=BA=E5=A4=B1=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/releases_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/releases_controller.rb b/app/controllers/releases_controller.rb index d1d8710e3..2ee0ad012 100644 --- a/app/controllers/releases_controller.rb +++ b/app/controllers/releases_controller.rb @@ -31,7 +31,7 @@ def create # 触发异步任务 @release.channel.perform_web_hook('upload_events') - @release.perform_teardown_job + @release.perform_teardown_job(current_user.id) redirect_to channel_release_url(@channel, @release), notice: '应用上传成功' end From 1c66d0706aa96b0dade60b7e07c4d3b024f0d2ff Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 9 Aug 2021 15:21:21 +0800 Subject: [PATCH 0587/2165] =?UTF-8?q?fix:=20android=20=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=E5=BA=94=E7=94=A8=E4=B9=9F=E6=98=BE=E7=A4=BA=E8=A7=A3=E5=8C=85?= =?UTF-8?q?=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/releases/body/_metadata.html.slim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/releases/body/_metadata.html.slim b/app/views/releases/body/_metadata.html.slim index 348d68db0..56a69bb53 100644 --- a/app/views/releases/body/_metadata.html.slim +++ b/app/views/releases/body/_metadata.html.slim @@ -62,7 +62,7 @@ = @release.source - else = link_to @release.source, @release.ci_url - - if @release.metadata.present? && detect_device(@release.channel.device_type) == :ios + - if @release.metadata.present? li title="更多信息" i.fas.fa-layer-group = link_to '解包信息', teardown_path(@release.metadata) From d5e5bd042e70f237a05eacecde7a2d745ade96c7 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 9 Aug 2021 15:21:53 +0800 Subject: [PATCH 0588/2165] =?UTF-8?q?fix:=20=E8=B0=83=E8=AF=95=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E5=88=97=E8=A1=A8=E5=88=A4=E6=96=AD=E4=B8=BA=E7=A9=BA?= =?UTF-8?q?=E7=9A=84=E6=9D=A1=E4=BB=B6=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/debug_files/index.html.slim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/debug_files/index.html.slim b/app/views/debug_files/index.html.slim index 30880bb52..7d9fb1556 100644 --- a/app/views/debug_files/index.html.slim +++ b/app/views/debug_files/index.html.slim @@ -12,7 +12,7 @@ .row .col-md-12 - - if @apps + - if DebugFile.count > 0 - @apps.each do |app| .card .card-header From 9584b8ec7f13e68eff346c51e4b9fd49a099834a Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 9 Aug 2021 15:39:00 +0800 Subject: [PATCH 0589/2165] =?UTF-8?q?style:=20=E5=BA=94=E7=94=A8=E8=A7=A3?= =?UTF-8?q?=E5=8C=85=E5=A2=9E=E5=8A=A0=E5=B8=AE=E5=8A=A9=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/teardowns/_help.html.slim | 53 +++++++++++++++++++++++++++++ app/views/teardowns/index.html.slim | 1 + 2 files changed, 54 insertions(+) create mode 100644 app/views/teardowns/_help.html.slim diff --git a/app/views/teardowns/_help.html.slim b/app/views/teardowns/_help.html.slim new file mode 100644 index 000000000..1a7002093 --- /dev/null +++ b/app/views/teardowns/_help.html.slim @@ -0,0 +1,53 @@ +.col-md-12 + .card + .card-header.card-border + h3.card-title 什么是应用解包? + .card-body.table-responsive + div + | 通过右上角的  + i.far.fa-plus-square + | 新建解包上传 iOS、Android 移动应用通过一系列复杂的解析和运算读取出来应用中的实用信息用于辅助阅读、参考和定位问题。具体的内容如下: + div + h5 Android + ul + li 名称 + li 支持设备 + li 版本 + li 包名(package name) + li 打包类型 + li Android 最低版本 / 目标版本 + li 文件大小 + li Activities + li Services + li Features + li Permissions + div + h5 iOS + ul + li 名称 + li 支持设备 + li 版本 + li 包名(bundle identifier) + li 打包类型 + li 最低 iOS 版本 + li 文件大小 + li Entitlements + li 启用能力 + li URL Schemes + li 测试设备列表 + li 开发者证书 + li + | 描述文件 + ul + li 名称 (类型) + li UUID + li 应用标识 + li 平台 + li 类型 + li 团队名称 (Team ID) + li 创建时间 + li 过期时间 + div + | 此功能由强大的  + a href="https://github.com/icyleaf/app_info" target="_blank" app_info + | 强力驱动。 diff --git a/app/views/teardowns/index.html.slim b/app/views/teardowns/index.html.slim index d7436c1eb..616451225 100644 --- a/app/views/teardowns/index.html.slim +++ b/app/views/teardowns/index.html.slim @@ -11,4 +11,5 @@ .row == render 'list' + == render 'help' From 83d951927433827b72b1101fe119ede3e0422879 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 9 Aug 2021 15:43:53 +0800 Subject: [PATCH 0590/2165] =?UTF-8?q?style:=20=E6=9B=B4=E6=96=B0=E8=AE=BE?= =?UTF-8?q?=E5=A4=87=20UUID=20=E7=9A=84=E5=B8=AE=E5=8A=A9=E6=96=87?= =?UTF-8?q?=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/udid/index.html.slim | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/views/udid/index.html.slim b/app/views/udid/index.html.slim index df79862ae..1c7a386dd 100644 --- a/app/views/udid/index.html.slim +++ b/app/views/udid/index.html.slim @@ -18,15 +18,15 @@ .col-md-12 .card .card-header.card-border - h3.card-title 使用帮助 + h3.card-title 为什么需要设备 UDID? .card-body + p + | UDID 全称 Unique Device Identifier 是 iOS 设备唯一且独一无二的识别码,iOS 7 之前可以从应用获取, + | 之后版本不再允许从应用内随意获取,iOS 的应用打包如使用 AdHoc 的方式签名必须设置设备白名单来保证设备测试的安全性 + | (说人话就是不允许在非苹果应用市场分发),因此需要通过外部安装描述文件的方式单次授权获取。 strong 获取步骤 ol li 点击系统会弹窗的 “允许” 下载描述文件 li 打开手机 ”设置” 找到顶部的 ”已下载描述文件“ 点击可以待安装的 ”获取设备UDID“ 的描述文件 li 一路点击 ”安装“ 并输入锁屏密码允许安装描述文件 - li 安装之后描述文件会自动删除并跳转一个结果页面 - strong 什么是UDID? - p - | UDID 全称 Unique Device Identifier 是 iOS 设备唯一且独一无二的识别码,iOS 7 之前可以从应用获取, - | 之后版本不再允许从应用内随意获取,因此需要通过外部安装描述文件的方式单次授权获取。 \ No newline at end of file + li 安装之后描述文件会自动删除并跳转一个结果页面 \ No newline at end of file From 5d6250b007d3f3d570d44e7371b60decc56465b8 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 9 Aug 2021 17:53:12 +0800 Subject: [PATCH 0591/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E9=95=9C?= =?UTF-8?q?=E5=83=8F=E5=88=9D=E5=A7=8B=E5=8C=96=20logrotate=20=E9=94=99?= =?UTF-8?q?=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker/rootfs/etc/cont-init.d/12-logrotate | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/rootfs/etc/cont-init.d/12-logrotate b/docker/rootfs/etc/cont-init.d/12-logrotate index c3641db1c..1a1e55c6b 100755 --- a/docker/rootfs/etc/cont-init.d/12-logrotate +++ b/docker/rootfs/etc/cont-init.d/12-logrotate @@ -1,4 +1,4 @@ -#!/usr/bin/with-contenv bash +#!/usr/bin/with-contenv sh if [[ ! -f /mnt/config/etc/logrotate.conf ]]; then if [[ ! -d /mnt/config/etc ]]; then From 5970d98abea6d747f2f53c0d162e8515d0a69599 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 11 Aug 2021 17:30:45 +0800 Subject: [PATCH 0592/2165] =?UTF-8?q?chore:=20=E4=BF=AE=E5=A4=8D=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=20logrotate=20=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker/rootfs/etc/cont-init.d/12-logrotate | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/rootfs/etc/cont-init.d/12-logrotate b/docker/rootfs/etc/cont-init.d/12-logrotate index 1a1e55c6b..d6e0c259c 100755 --- a/docker/rootfs/etc/cont-init.d/12-logrotate +++ b/docker/rootfs/etc/cont-init.d/12-logrotate @@ -10,5 +10,5 @@ fi if [[ ! -d /mnt/config/etc/logrotate.d ]]; then mkdir -p /mnt/config/etc/logrotate.d - cp -n /etc/logrotate.d/* /mnt/config/etc/logrotate.d/ + cp /etc/logrotate.d/* /mnt/config/etc/logrotate.d/ fi \ No newline at end of file From 2ccef553773a8121868613fbaefdbfd2e5a3b31c Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 11 Aug 2021 17:30:10 +0800 Subject: [PATCH 0593/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=20LDAP=20?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E8=8E=B7=E5=8F=96=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/setting.rb | 8 ++++---- app/views/devise/shared/_form_ldap.html.slim | 2 +- config/initializers/devise.rb | 13 +++++++------ 3 files changed, 12 insertions(+), 11 deletions(-) diff --git a/app/models/setting.rb b/app/models/setting.rb index 148668174..f5d4abd55 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -51,12 +51,12 @@ class Setting < RailsSettings::Base field :ldap, type: :hash, display: true, default: { enabled: ENV['LDAP_ENABLED'] || false, host: ENV['LDAP_HOST'], - port: ENV['LDAP_PORT'], - method: ENV['LDAP_METHOD'], - base_dn: ENV['LDAP_BASE_DN'], + port: ENV['LDAP_PORT'] || '389', + encryption: ENV['LDAP_METHOD'] || ENV['LDAP_ENCRYPTION'] || 'plain', # LDAP_METHOD will be abandon in the future + bind_dn: ENV['LDAP_BIND_DN'], password: ENV['LDAP_PASSWORD'], base: ENV['LDAP_BASE'], - uid: ENV['LDAP_UID'], + uid: ENV['LDAP_UID'] || 'sAMAccountName' } end diff --git a/app/views/devise/shared/_form_ldap.html.slim b/app/views/devise/shared/_form_ldap.html.slim index 999ee1002..831d0399f 100644 --- a/app/views/devise/shared/_form_ldap.html.slim +++ b/app/views/devise/shared/_form_ldap.html.slim @@ -1,6 +1,6 @@ - if ldap_auth_enable? #login-tabs-ldap.tab-pane.fade aria-labelledby="login-tabs-ldap-tab" role="tabpanel" - = form_tag(user_ldap_omniauth_authorize_path) do + = form_tag(user_ldap_omniauth_callback_path) do .form-group = label_tag :username, "LDAP 账户" = text_field_tag :username, nil, class: "form-control top", title: "This field is required.", autofocus: "autofocus", data: { qa_selector: 'username_field' }, required: true diff --git a/config/initializers/devise.rb b/config/initializers/devise.rb index 2c6b81568..55e4c9b7b 100644 --- a/config/initializers/devise.rb +++ b/config/initializers/devise.rb @@ -302,12 +302,13 @@ # LDAP ldap = Setting.ldap - if defined?(OmniAuth::Strategies::LDAP) && ldap[:ldap_enabled] + if defined?(OmniAuth::Strategies::LDAP) && ldap[:enabled] config.omniauth :ldap, title: 'Zealot LDAP 认证登录', - host: ldap[:ldap_host], port: ldap[:ldap_port], - method: (ldap[:ldap_method] || 'plain').to_sym, - bind_dn: ldap[:ldap_base_dn], - password: ldap[:ldap_password], - base: ldap[:ldap_base], uid: ldap[:ldap_uid] + host: ldap[:host], port: ldap[:port].to_i, + encryption: ldap[:encryption].to_sym, + bind_dn: ldap[:bind_dn], + password: ldap[:password], + base: ldap[:base], uid: ldap[:uid] + # try_sasl: true, sasl_mechanisms: ['DIGEST-MD5'] end end From 0b5b2243f2f6473194e0da2cca157d2d1c144cbe Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 11 Aug 2021 17:48:18 +0800 Subject: [PATCH 0594/2165] =?UTF-8?q?Revert=20"fix:=20=E4=B8=A2=E5=A4=B1?= =?UTF-8?q?=E6=A0=B7=E5=BC=8F"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 8395e17acc83a330cdddce210733ff6be7374402. --- app/javascript/packs/application.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/app/javascript/packs/application.js b/app/javascript/packs/application.js index 4de5c5839..42a456b76 100644 --- a/app/javascript/packs/application.js +++ b/app/javascript/packs/application.js @@ -21,8 +21,6 @@ import Rails from "@rails/ujs"; import Turbolinks from "turbolinks"; // Import CSS -import "bootstrap/dist/css/bootstrap"; -import "admin-lte/dist/css/adminlte"; import "@fortawesome/fontawesome-free/css/all"; import "stylesheets/application"; From e8fbd69d4b7a44d7d214df19e1811a53d27da637 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 Aug 2021 09:52:20 +0000 Subject: [PATCH 0595/2165] chore(deps): bump url-parse from 1.5.1 to 1.5.3 Bumps [url-parse](https://github.com/unshiftio/url-parse) from 1.5.1 to 1.5.3. - [Release notes](https://github.com/unshiftio/url-parse/releases) - [Commits](https://github.com/unshiftio/url-parse/compare/1.5.1...1.5.3) --- updated-dependencies: - dependency-name: url-parse dependency-type: indirect ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 4653cbe77..990652792 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7755,9 +7755,9 @@ urix@^0.1.0: integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= url-parse@^1.4.3, url-parse@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.1.tgz#d5fa9890af8a5e1f274a2c98376510f6425f6e3b" - integrity sha512-HOfCOUJt7iSYzEx/UqgtwKRMC6EU91NFhsCHMv9oM03VJcVo2Qrp8T8kI9D7amFf1cu+/3CEhgb3rF9zL7k85Q== + version "1.5.3" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.3.tgz#71c1303d38fb6639ade183c2992c8cc0686df862" + integrity sha512-IIORyIQD9rvj0A4CLWsHkBBJuNqWpFQe224b6j9t/ABmquIS0qDU2pY6kl6AuOrL5OkCXHMCFNe1jBcuAggjvQ== dependencies: querystringify "^2.1.1" requires-port "^1.0.0" From bc1f9bd121ce6df709bb74df77996d5b3d6b7eb7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 Aug 2021 09:52:22 +0000 Subject: [PATCH 0596/2165] chore(deps): bump jszip from 3.6.0 to 3.7.1 Bumps [jszip](https://github.com/Stuk/jszip) from 3.6.0 to 3.7.1. - [Release notes](https://github.com/Stuk/jszip/releases) - [Changelog](https://github.com/Stuk/jszip/blob/master/CHANGES.md) - [Commits](https://github.com/Stuk/jszip/compare/v3.6.0...v3.7.1) --- updated-dependencies: - dependency-name: jszip dependency-type: indirect ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 4653cbe77..6f4c52a9f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4657,9 +4657,9 @@ jsonfile@^6.0.1: graceful-fs "^4.1.6" jszip@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/jszip/-/jszip-3.6.0.tgz#839b72812e3f97819cc13ac4134ffced95dd6af9" - integrity sha512-jgnQoG9LKnWO3mnVNBnfhkh0QknICd1FGSrXcgrl67zioyJ4wgx25o9ZqwNtrROSflGBCGYnJfjrIyRIby1OoQ== + version "3.7.1" + resolved "https://registry.yarnpkg.com/jszip/-/jszip-3.7.1.tgz#bd63401221c15625a1228c556ca8a68da6fda3d9" + integrity sha512-ghL0tz1XG9ZEmRMcEN2vt7xabrDdqHHeykgARpmZ0BiIctWxM47Vt63ZO2dnp4QYt/xJVLLy5Zv1l/xRdh2byg== dependencies: lie "~3.3.0" pako "~1.0.2" From 2069623a2f583ef7246b17f5c7e2a4041481d0ab Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 11 Aug 2021 17:52:23 +0800 Subject: [PATCH 0597/2165] =?UTF-8?q?feat:=20=E6=98=BE=E7=A4=BA=E7=AC=AC?= =?UTF-8?q?=E4=B8=89=E6=96=B9=E6=8E=88=E6=9D=83=E9=94=99=E8=AF=AF=E7=9A=84?= =?UTF-8?q?=E5=8E=9F=E5=A7=8B=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../users/omniauth_callbacks_controller.rb | 43 +++++++++++-------- 1 file changed, 26 insertions(+), 17 deletions(-) diff --git a/app/controllers/users/omniauth_callbacks_controller.rb b/app/controllers/users/omniauth_callbacks_controller.rb index dcbd89c43..9d85b9aae 100644 --- a/app/controllers/users/omniauth_callbacks_controller.rb +++ b/app/controllers/users/omniauth_callbacks_controller.rb @@ -17,17 +17,15 @@ def gitlab omniauth_callback('Gitlab', 'gitlab_data') end - # def failure - # flash[:error] = failure_message - # flash[:error] = '授权失败!请检查你的账户和密码是否正确,如果输入确认无误还是失败请联系管理员检查配置是否正确' - # redirect_to root_path - # end + def failure + flash[:error] = "授权失败!请检查你的账户和密码是否正确,原始错误信息:#{failure_message}" + redirect_to goback_path + end private def omniauth_callback(name, session_key) auth = request.env['omniauth.auth'] - # binding.pry provider = UserProvider.find_by(name: auth.provider, uid: auth.uid) # Existed provider? @@ -39,18 +37,29 @@ def omniauth_callback(name, session_key) end if user_signed_in? - # Connect provider to existed user - omni_params = request.env['omniauth.params'] - current_user.providers.from_omniauth(auth) - - bypass_sign_in(current_user) - redirect_path = omni_params['back'].presence || root_path - redirect_to redirect_path, notice: "#{name}账户已关联" + connect_user_to_provider(name, auth) else - # New user logged in with provider - user = User.from_omniauth(auth) - flash[:notice] = "#{name}账户已授权并创建用户" - sign_in_and_redirect user + store_new_user(name, auth) end end + + private + + def connect_user_to_provider(name, auth) + current_user.providers.from_omniauth(auth) + + bypass_sign_in(current_user) + redirect_to goback_path, notice: "#{name}账户已关联" + end + + def store_new_user(name, auth) + user = User.from_omniauth(auth) + flash[:notice] = "#{name}账户已授权并创建用户" + sign_in_and_redirect user + end + + def goback_path + omni_params = request.env['omniauth.params'] + redirect_path = omni_params['back'].presence || root_path + end end From a3482d352714fb4d5bc5229c7abdb4394de03f4f Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 6 Aug 2021 18:17:46 +0800 Subject: [PATCH 0598/2165] =?UTF-8?q?refactor:=20=E4=BD=BF=E7=94=A8=20cadd?= =?UTF-8?q?y=20=E4=BD=9C=E4=B8=BA=E9=BB=98=E8=AE=A4=E5=90=91=E5=A4=96?= =?UTF-8?q?=E6=9A=B4=E9=9C=B2=E7=9A=84=E6=9C=8D=E5=8A=A1=E5=92=8C=E7=AB=AF?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 6 ++++-- docker/rootfs/etc/Caddyfile | 27 ++++++++++++++++++++++++++ docker/rootfs/etc/services.d/caddy/run | 4 ++++ 3 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 docker/rootfs/etc/Caddyfile create mode 100644 docker/rootfs/etc/services.d/caddy/run diff --git a/Dockerfile b/Dockerfile index 45a56ec38..7dc575e2f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -67,7 +67,7 @@ ARG REPLACE_CHINA_MIRROR="true" ARG ORIGINAL_REPO_URL="dl-cdn.alpinelinux.org" ARG MIRROR_REPO_URL="mirrors.ustc.edu.cn" ARG RUBYGEMS_SOURCE="https://gems.ruby-china.com/" -ARG PACKAGES="tzdata curl logrotate imagemagick imagemagick-dev postgresql-dev postgresql-client openssl openssl-dev" +ARG PACKAGES="tzdata curl logrotate imagemagick imagemagick-dev postgresql-dev postgresql-client openssl openssl-dev caddy" ARG RUBY_GEMS="bundler" ARG APP_ROOT=/app ARG S6_OVERLAY_VERSION="2.1.0.1" @@ -106,6 +106,8 @@ COPY --from=builder $APP_ROOT $APP_ROOT RUN ln -s /app/bin/rails /usr/local/bin/ -EXPOSE 3000 +EXPOSE 80 + +VOLUME [ "/app/public/uploads", "/app/public/backup" ] ENTRYPOINT ["/init"] diff --git a/docker/rootfs/etc/Caddyfile b/docker/rootfs/etc/Caddyfile new file mode 100644 index 000000000..81f07bd40 --- /dev/null +++ b/docker/rootfs/etc/Caddyfile @@ -0,0 +1,27 @@ +:80 + +root * /app/public +encode zstd gzip +file_server +log + +@notStatic { + not file +} + +reverse_proxy @notStatic { + to localhost:3000 + @accel header X-Accel-Redirect * + handle_response @accel { + root * /app/public + rewrite {http.reverse_proxy.header.X-Accel-Redirect} + file_server + } + + @error status 500 502 503 + handle_response @error { + root * /app/public + rewrite * /500.html + file_server + } +} \ No newline at end of file diff --git a/docker/rootfs/etc/services.d/caddy/run b/docker/rootfs/etc/services.d/caddy/run new file mode 100644 index 000000000..a91d26af8 --- /dev/null +++ b/docker/rootfs/etc/services.d/caddy/run @@ -0,0 +1,4 @@ +#!/usr/bin/with-contenv sh + +echo "Starting Caddy" +/usr/sbin/caddy run -config /etc/Caddyfile | tee /app/log/caddy.log \ No newline at end of file From 8dc0376904c4c1fceb00edaf364c208346363ba5 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 6 Aug 2021 18:45:08 +0800 Subject: [PATCH 0599/2165] =?UTF-8?q?refactor:=20=E7=A7=BB=E9=99=A4?= =?UTF-8?q?=E9=9D=99=E6=80=81=E8=B5=84=E6=BA=90=E7=89=88=E6=9C=AC=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E7=9A=84=E4=B8=B4=E6=97=B6=E6=96=B9=E6=A1=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 5 ++--- docker/rootfs/etc/cont-init.d/20-init-zealot | 20 +------------------- 2 files changed, 3 insertions(+), 22 deletions(-) diff --git a/Dockerfile b/Dockerfile index 7dc575e2f..411498f7f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -43,8 +43,7 @@ RUN bundle config --global frozen 1 && \ --jobs `expr $(cat /proc/cpuinfo | grep -c "cpu cores") - 1` --retry 3 COPY . $APP_ROOT -RUN SECRET_TOKEN=precompile_placeholder bin/rails assets:precompile && \ - cp -r public/ new_public/ +RUN SECRET_TOKEN=precompile_placeholder bin/rails assets:precompile # Remove folders not needed in resulting image RUN rm -rf docker node_modules tmp/cache spec .browserslistrc babel.config.js \ @@ -70,7 +69,7 @@ ARG RUBYGEMS_SOURCE="https://gems.ruby-china.com/" ARG PACKAGES="tzdata curl logrotate imagemagick imagemagick-dev postgresql-dev postgresql-client openssl openssl-dev caddy" ARG RUBY_GEMS="bundler" ARG APP_ROOT=/app -ARG S6_OVERLAY_VERSION="2.1.0.1" +ARG S6_OVERLAY_VERSION="2.2.0.3" LABEL org.opencontainers.image.title="Zealot" \ org.opencontainers.image.description="Over The Air Server for deployment of Android and iOS apps" \ diff --git a/docker/rootfs/etc/cont-init.d/20-init-zealot b/docker/rootfs/etc/cont-init.d/20-init-zealot index d11a92177..ad5fc5db5 100644 --- a/docker/rootfs/etc/cont-init.d/20-init-zealot +++ b/docker/rootfs/etc/cont-init.d/20-init-zealot @@ -4,22 +4,4 @@ cd /app # Clear pid if unexpected exception exit rm -f tmp/pids/.pid -mkdir -p tmp/pids tmp/cache tmp/uploads tmp/sockets log - -# Updating assets -if [ -d "new_public" ]; then - echo "Zealot updating public ..." - for x in public/*; do - if [ -z $(echo "$x" | grep uploads) ]; then - rm -rf "$x" > /dev/null - fi - done - - for x in new_public/*; do - if [ -z $(echo "$x" | grep uploads) ]; then - mv "$x" "public" - fi - done - - rm -rf new_public -fi \ No newline at end of file +mkdir -p tmp/pids tmp/cache tmp/uploads tmp/sockets log \ No newline at end of file From 0f6dca907d327c3047705df818003077627a5428 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 9 Aug 2021 15:20:45 +0800 Subject: [PATCH 0600/2165] =?UTF-8?q?refactor:=20=E5=9C=A8=E5=AE=B9?= =?UTF-8?q?=E5=99=A8=E7=89=B9=E5=88=AB=E8=AF=B4=E6=98=8E=E5=8F=98=E6=9B=B4?= =?UTF-8?q?=E7=9A=84=E6=B3=A8=E6=84=8F=E4=BA=8B=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker/rootfs/etc/Caddyfile | 11 +++++++++-- docker/rootfs/etc/cont-init.d/25-upgrade-zealot | 6 ++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/docker/rootfs/etc/Caddyfile b/docker/rootfs/etc/Caddyfile index 81f07bd40..997c31f67 100644 --- a/docker/rootfs/etc/Caddyfile +++ b/docker/rootfs/etc/Caddyfile @@ -5,12 +5,19 @@ encode zstd gzip file_server log -@notStatic { +@zealot { + # # websockets + # header Connection *Upgrade* + # header Upgrade websocket + + # static files not file } -reverse_proxy @notStatic { +# Docoument: https://caddyserver.com/docs/caddyfile/directives/reverse_proxy +reverse_proxy @zealot { to localhost:3000 + @accel header X-Accel-Redirect * handle_response @accel { root * /app/public diff --git a/docker/rootfs/etc/cont-init.d/25-upgrade-zealot b/docker/rootfs/etc/cont-init.d/25-upgrade-zealot index edbfc23ef..83b006565 100644 --- a/docker/rootfs/etc/cont-init.d/25-upgrade-zealot +++ b/docker/rootfs/etc/cont-init.d/25-upgrade-zealot @@ -1,4 +1,10 @@ #!/usr/bin/with-contenv sh +echo "**************************************************" +echo " WARNING: Using zealot-uploads and zealot-backups " +echo " instead of zealot-data volume, detail: " +echo " https://git.io/JR0Gw " +echo "**************************************************" + cd /app && ./bin/rails zealot:upgrade exit 0 From 21764994a76967a6012ba572c16cf193ea7a44a9 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 11 Aug 2021 18:06:14 +0800 Subject: [PATCH 0601/2165] =?UTF-8?q?clean:=20=E7=A7=BB=E9=99=A4=E6=97=A0?= =?UTF-8?q?=E7=94=A8=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/inputs/rich_input.rb | 9 --------- app/views/web_hooks/_form.html.slim | 1 - 2 files changed, 10 deletions(-) delete mode 100644 app/inputs/rich_input.rb diff --git a/app/inputs/rich_input.rb b/app/inputs/rich_input.rb deleted file mode 100644 index 5919b709d..000000000 --- a/app/inputs/rich_input.rb +++ /dev/null @@ -1,9 +0,0 @@ -# frozen_string_literal: true - -class RichInput < SimpleForm::Inputs::Base - def input(wrapper_options = nil) - merged_input_options = merge_wrapper_options(input_html_options, wrapper_options) - - @builder.rich_text_area(attribute_name, merged_input_options) - end -end diff --git a/app/views/web_hooks/_form.html.slim b/app/views/web_hooks/_form.html.slim index a3eaf7451..a743303e7 100644 --- a/app/views/web_hooks/_form.html.slim +++ b/app/views/web_hooks/_form.html.slim @@ -6,7 +6,6 @@ = f.input :url, required: true = f.input :body, input_html: { rows: 10 } - //, as: :rich = f.input :upload_events, as: :boolean, input_html: { checked: true } = f.input :download_events, as: :boolean = f.input :changelog_events, as: :boolean From 5abd7de1522b92ae62f3829f6342119572eaae9c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 16 Aug 2021 21:03:05 +0000 Subject: [PATCH 0602/2165] chore(deps): bump filepond from 4.28.1 to 4.29.0 Bumps [filepond](https://github.com/pqina/filepond) from 4.28.1 to 4.29.0. - [Release notes](https://github.com/pqina/filepond/releases) - [Changelog](https://github.com/pqina/filepond/blob/master/CHANGELOG.md) - [Commits](https://github.com/pqina/filepond/commits) --- updated-dependencies: - dependency-name: filepond dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 56d1bd13b..be0575f93 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "admin-lte": "^3.1.0", "clipboard": "^2.0.8", "compare-versions": "^3.6.0", - "filepond": "^4.28.1", + "filepond": "^4.29.0", "rails-erb-loader": "^5.5.2", "turbolinks": "^5.2.0" }, diff --git a/yarn.lock b/yarn.lock index 19dd907c4..cfe8ab8af 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3528,10 +3528,10 @@ file-uri-to-path@1.0.0: resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== -filepond@^4.28.1: - version "4.28.1" - resolved "https://registry.yarnpkg.com/filepond/-/filepond-4.28.1.tgz#d8ccdcd958554411434b37f3f828de8ea2563e2d" - integrity sha512-vy//xkDOW9xoYJLLZJabkpsZOWoWiKtugmTPXRPkvVMFsjOStYq2A8C/JHVGSYFIOQREE0BirzebN2Pf8OTjcw== +filepond@^4.29.0: + version "4.29.0" + resolved "https://registry.yarnpkg.com/filepond/-/filepond-4.29.0.tgz#3429baa6edcf242f26f70f31396bba4ff164f087" + integrity sha512-RB62AVNTpV1G4pDNoRXPZYkEbYp0vrJyTNLDDitwJ3V5u4B22f1Ywai4SVwZ+vecNnW3tB68XVXaB0VlQvHT7A== fill-range@^4.0.0: version "4.0.0" From eb4e9dfabd455b318fd7386c0b5a9dfb325a681f Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 17 Aug 2021 19:10:04 +0800 Subject: [PATCH 0603/2165] =?UTF-8?q?feat:=20=E6=94=AF=E6=8C=81=E7=8E=AF?= =?UTF-8?q?=E5=A2=83=E5=8F=98=E9=87=8F=E9=85=8D=E7=BD=AE=20postgres=20?= =?UTF-8?q?=E7=AB=AF=E5=8F=A3=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/database.yml | 3 ++- config/puma.rb | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/config/database.yml b/config/database.yml index 34bfd3395..c23fe3c0b 100644 --- a/config/database.yml +++ b/config/database.yml @@ -2,9 +2,10 @@ default: &default adapter: postgresql encoding: utf8 pool: 5 + host: <%= ENV['ZEALOT_POSTGRES_HOST'] || 'localhost' %> + port: <%= ENV['ZEALOT_POSTGRES_PORT'] || '5432' %> username: <%= ENV['ZEALOT_POSTGRES_USERNAME'] || 'zealot' %> password: <%= ENV['ZEALOT_POSTGRES_PASSWORD'] || '' %> - host: <%= ENV['ZEALOT_POSTGRES_HOST'] || 'localhost' %> database: <%= (host = ENV['ZEALOT_POSTGRES_DB_NAME'] || 'zealot'; case ENV['RAILS_ENV'] when 'test' then "#{host}_test"; when 'production' then host else "#{host}_development"; end) %> development: diff --git a/config/puma.rb b/config/puma.rb index ad12abdb9..e2d7219ec 100644 --- a/config/puma.rb +++ b/config/puma.rb @@ -4,6 +4,9 @@ # nginx will be running in a different Docker container. bind "tcp://#{ENV.fetch('BIND_ON') { '0.0.0.0:3000' }}" +# Specifies the `pidfile` that Puma will use. +pidfile ENV.fetch('PIDFILE') { 'tmp/pids/puma.pid' } + # Puma supports threading. Requests are served through an internal thread pool. # Even on MRI, it is beneficial to leverage multiple threads because I/O # operations do not lock the GIL. This typically requires more CPU resources. From 8432ad4366249de8b48364ff7932d8734f0f817f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 19 Aug 2021 21:01:03 +0000 Subject: [PATCH 0604/2165] chore(deps): bump rails from 6.1.4 to 6.1.4.1 Bumps [rails](https://github.com/rails/rails) from 6.1.4 to 6.1.4.1. - [Release notes](https://github.com/rails/rails/releases) - [Commits](https://github.com/rails/rails/compare/v6.1.4...v6.1.4.1) --- updated-dependencies: - dependency-name: rails dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 122 +++++++++++++++++++++++++-------------------------- 1 file changed, 61 insertions(+), 61 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index f29d43374..2d10c9e77 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -2,40 +2,40 @@ GEM remote: https://rubygems.org/ specs: CFPropertyList (3.0.3) - actioncable (6.1.4) - actionpack (= 6.1.4) - activesupport (= 6.1.4) + actioncable (6.1.4.1) + actionpack (= 6.1.4.1) + activesupport (= 6.1.4.1) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (6.1.4) - actionpack (= 6.1.4) - activejob (= 6.1.4) - activerecord (= 6.1.4) - activestorage (= 6.1.4) - activesupport (= 6.1.4) + actionmailbox (6.1.4.1) + actionpack (= 6.1.4.1) + activejob (= 6.1.4.1) + activerecord (= 6.1.4.1) + activestorage (= 6.1.4.1) + activesupport (= 6.1.4.1) mail (>= 2.7.1) - actionmailer (6.1.4) - actionpack (= 6.1.4) - actionview (= 6.1.4) - activejob (= 6.1.4) - activesupport (= 6.1.4) + actionmailer (6.1.4.1) + actionpack (= 6.1.4.1) + actionview (= 6.1.4.1) + activejob (= 6.1.4.1) + activesupport (= 6.1.4.1) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (6.1.4) - actionview (= 6.1.4) - activesupport (= 6.1.4) + actionpack (6.1.4.1) + actionview (= 6.1.4.1) + activesupport (= 6.1.4.1) rack (~> 2.0, >= 2.0.9) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (6.1.4) - actionpack (= 6.1.4) - activerecord (= 6.1.4) - activestorage (= 6.1.4) - activesupport (= 6.1.4) + actiontext (6.1.4.1) + actionpack (= 6.1.4.1) + activerecord (= 6.1.4.1) + activestorage (= 6.1.4.1) + activesupport (= 6.1.4.1) nokogiri (>= 1.8.5) - actionview (6.1.4) - activesupport (= 6.1.4) + actionview (6.1.4.1) + activesupport (= 6.1.4.1) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) @@ -47,25 +47,25 @@ GEM activemodel (>= 4.1, < 6.2) case_transform (>= 0.2) jsonapi-renderer (>= 0.1.1.beta1, < 0.3) - activejob (6.1.4) - activesupport (= 6.1.4) + activejob (6.1.4.1) + activesupport (= 6.1.4.1) globalid (>= 0.3.6) activejob-status (0.1.6) activejob (>= 4.2) activesupport (>= 4.2) - activemodel (6.1.4) - activesupport (= 6.1.4) - activerecord (6.1.4) - activemodel (= 6.1.4) - activesupport (= 6.1.4) - activestorage (6.1.4) - actionpack (= 6.1.4) - activejob (= 6.1.4) - activerecord (= 6.1.4) - activesupport (= 6.1.4) + activemodel (6.1.4.1) + activesupport (= 6.1.4.1) + activerecord (6.1.4.1) + activemodel (= 6.1.4.1) + activesupport (= 6.1.4.1) + activestorage (6.1.4.1) + actionpack (= 6.1.4.1) + activejob (= 6.1.4.1) + activerecord (= 6.1.4.1) + activesupport (= 6.1.4.1) marcel (~> 1.0.0) mini_mime (>= 1.1.0) - activesupport (6.1.4) + activesupport (6.1.4.1) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) @@ -165,8 +165,8 @@ GEM omniauth (~> 1.3) pyu-ruby-sasl (>= 0.0.3.3, < 0.1) rubyntlm (~> 0.5) - globalid (0.4.2) - activesupport (>= 4.2.0) + globalid (0.5.2) + activesupport (>= 5.0) graphql (1.12.14) guard (2.17.0) formatador (>= 0.2.4) @@ -250,7 +250,7 @@ GEM llhttp-ffi (0.3.1) ffi-compiler (~> 1.0) rake (~> 13.0) - loofah (2.10.0) + loofah (2.12.0) crass (~> 1.0.2) nokogiri (>= 1.5.9) lumberjack (1.2.8) @@ -260,7 +260,7 @@ GEM method_source (1.0.0) mini_magick (4.11.0) mini_mime (1.1.0) - mini_portile2 (2.5.3) + mini_portile2 (2.6.1) minitest (5.14.4) mixlib-shellout (3.2.5) chef-utils @@ -270,9 +270,9 @@ GEM multipart-post (2.1.1) nenv (0.3.0) net-ldap (0.17.0) - nio4r (2.5.7) - nokogiri (1.11.7) - mini_portile2 (~> 2.5.0) + nio4r (2.5.8) + nokogiri (1.12.3) + mini_portile2 (~> 2.6.1) racc (~> 1.4) notiffany (0.1.3) nenv (~> 0.1) @@ -334,34 +334,34 @@ GEM rack rack-test (1.1.0) rack (>= 1.0, < 3) - rails (6.1.4) - actioncable (= 6.1.4) - actionmailbox (= 6.1.4) - actionmailer (= 6.1.4) - actionpack (= 6.1.4) - actiontext (= 6.1.4) - actionview (= 6.1.4) - activejob (= 6.1.4) - activemodel (= 6.1.4) - activerecord (= 6.1.4) - activestorage (= 6.1.4) - activesupport (= 6.1.4) + rails (6.1.4.1) + actioncable (= 6.1.4.1) + actionmailbox (= 6.1.4.1) + actionmailer (= 6.1.4.1) + actionpack (= 6.1.4.1) + actiontext (= 6.1.4.1) + actionview (= 6.1.4.1) + activejob (= 6.1.4.1) + activemodel (= 6.1.4.1) + activerecord (= 6.1.4.1) + activestorage (= 6.1.4.1) + activesupport (= 6.1.4.1) bundler (>= 1.15.0) - railties (= 6.1.4) + railties (= 6.1.4.1) sprockets-rails (>= 2.0.0) rails-dom-testing (2.0.3) activesupport (>= 4.2.0) nokogiri (>= 1.6) - rails-html-sanitizer (1.3.0) + rails-html-sanitizer (1.4.1) loofah (~> 2.3) rails-i18n (6.0.0) i18n (>= 0.7, < 2) railties (>= 6.0.0, < 7) rails-settings-cached (2.7.1) rails (>= 5.0.0) - railties (6.1.4) - actionpack (= 6.1.4) - activesupport (= 6.1.4) + railties (6.1.4.1) + actionpack (= 6.1.4.1) + activesupport (= 6.1.4.1) method_source rake (>= 0.13) thor (~> 1.0) From 5ddc970a4c3cdd8c8b71ad884430ff1c9ee8da01 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 20 Aug 2021 03:20:27 +0000 Subject: [PATCH 0605/2165] chore(deps-dev): bump listen from 3.6.0 to 3.7.0 Bumps [listen](https://github.com/guard/listen) from 3.6.0 to 3.7.0. - [Release notes](https://github.com/guard/listen/releases) - [Commits](https://github.com/guard/listen/compare/v3.6.0...v3.7.0) --- updated-dependencies: - dependency-name: listen dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 126 +++++++++++++++++++++++++-------------------------- 2 files changed, 64 insertions(+), 64 deletions(-) diff --git a/Gemfile b/Gemfile index d9b928902..78d5ba85f 100644 --- a/Gemfile +++ b/Gemfile @@ -90,7 +90,7 @@ gem 'bootsnap', '>= 1.4.7', require: false group :development do # 调试控制台 - gem 'listen', '>= 3.0.5', '< 3.7' + gem 'listen', '>= 3.0.5', '< 3.8' gem 'web-console', '>= 3.3.0' # 调试器 diff --git a/Gemfile.lock b/Gemfile.lock index f29d43374..222cd2306 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -2,40 +2,40 @@ GEM remote: https://rubygems.org/ specs: CFPropertyList (3.0.3) - actioncable (6.1.4) - actionpack (= 6.1.4) - activesupport (= 6.1.4) + actioncable (6.1.4.1) + actionpack (= 6.1.4.1) + activesupport (= 6.1.4.1) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (6.1.4) - actionpack (= 6.1.4) - activejob (= 6.1.4) - activerecord (= 6.1.4) - activestorage (= 6.1.4) - activesupport (= 6.1.4) + actionmailbox (6.1.4.1) + actionpack (= 6.1.4.1) + activejob (= 6.1.4.1) + activerecord (= 6.1.4.1) + activestorage (= 6.1.4.1) + activesupport (= 6.1.4.1) mail (>= 2.7.1) - actionmailer (6.1.4) - actionpack (= 6.1.4) - actionview (= 6.1.4) - activejob (= 6.1.4) - activesupport (= 6.1.4) + actionmailer (6.1.4.1) + actionpack (= 6.1.4.1) + actionview (= 6.1.4.1) + activejob (= 6.1.4.1) + activesupport (= 6.1.4.1) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (6.1.4) - actionview (= 6.1.4) - activesupport (= 6.1.4) + actionpack (6.1.4.1) + actionview (= 6.1.4.1) + activesupport (= 6.1.4.1) rack (~> 2.0, >= 2.0.9) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (6.1.4) - actionpack (= 6.1.4) - activerecord (= 6.1.4) - activestorage (= 6.1.4) - activesupport (= 6.1.4) + actiontext (6.1.4.1) + actionpack (= 6.1.4.1) + activerecord (= 6.1.4.1) + activestorage (= 6.1.4.1) + activesupport (= 6.1.4.1) nokogiri (>= 1.8.5) - actionview (6.1.4) - activesupport (= 6.1.4) + actionview (6.1.4.1) + activesupport (= 6.1.4.1) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) @@ -47,25 +47,25 @@ GEM activemodel (>= 4.1, < 6.2) case_transform (>= 0.2) jsonapi-renderer (>= 0.1.1.beta1, < 0.3) - activejob (6.1.4) - activesupport (= 6.1.4) + activejob (6.1.4.1) + activesupport (= 6.1.4.1) globalid (>= 0.3.6) activejob-status (0.1.6) activejob (>= 4.2) activesupport (>= 4.2) - activemodel (6.1.4) - activesupport (= 6.1.4) - activerecord (6.1.4) - activemodel (= 6.1.4) - activesupport (= 6.1.4) - activestorage (6.1.4) - actionpack (= 6.1.4) - activejob (= 6.1.4) - activerecord (= 6.1.4) - activesupport (= 6.1.4) + activemodel (6.1.4.1) + activesupport (= 6.1.4.1) + activerecord (6.1.4.1) + activemodel (= 6.1.4.1) + activesupport (= 6.1.4.1) + activestorage (6.1.4.1) + actionpack (= 6.1.4.1) + activejob (= 6.1.4.1) + activerecord (= 6.1.4.1) + activesupport (= 6.1.4.1) marcel (~> 1.0.0) mini_mime (>= 1.1.0) - activesupport (6.1.4) + activesupport (6.1.4.1) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) @@ -165,8 +165,8 @@ GEM omniauth (~> 1.3) pyu-ruby-sasl (>= 0.0.3.3, < 0.1) rubyntlm (~> 0.5) - globalid (0.4.2) - activesupport (>= 4.2.0) + globalid (0.5.2) + activesupport (>= 5.0) graphql (1.12.14) guard (2.17.0) formatador (>= 0.2.4) @@ -244,13 +244,13 @@ GEM actionmailer (>= 3.2) letter_opener (~> 1.0) railties (>= 3.2) - listen (3.6.0) + listen (3.7.0) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) llhttp-ffi (0.3.1) ffi-compiler (~> 1.0) rake (~> 13.0) - loofah (2.10.0) + loofah (2.12.0) crass (~> 1.0.2) nokogiri (>= 1.5.9) lumberjack (1.2.8) @@ -260,7 +260,7 @@ GEM method_source (1.0.0) mini_magick (4.11.0) mini_mime (1.1.0) - mini_portile2 (2.5.3) + mini_portile2 (2.6.1) minitest (5.14.4) mixlib-shellout (3.2.5) chef-utils @@ -270,9 +270,9 @@ GEM multipart-post (2.1.1) nenv (0.3.0) net-ldap (0.17.0) - nio4r (2.5.7) - nokogiri (1.11.7) - mini_portile2 (~> 2.5.0) + nio4r (2.5.8) + nokogiri (1.12.3) + mini_portile2 (~> 2.6.1) racc (~> 1.4) notiffany (0.1.3) nenv (~> 0.1) @@ -334,34 +334,34 @@ GEM rack rack-test (1.1.0) rack (>= 1.0, < 3) - rails (6.1.4) - actioncable (= 6.1.4) - actionmailbox (= 6.1.4) - actionmailer (= 6.1.4) - actionpack (= 6.1.4) - actiontext (= 6.1.4) - actionview (= 6.1.4) - activejob (= 6.1.4) - activemodel (= 6.1.4) - activerecord (= 6.1.4) - activestorage (= 6.1.4) - activesupport (= 6.1.4) + rails (6.1.4.1) + actioncable (= 6.1.4.1) + actionmailbox (= 6.1.4.1) + actionmailer (= 6.1.4.1) + actionpack (= 6.1.4.1) + actiontext (= 6.1.4.1) + actionview (= 6.1.4.1) + activejob (= 6.1.4.1) + activemodel (= 6.1.4.1) + activerecord (= 6.1.4.1) + activestorage (= 6.1.4.1) + activesupport (= 6.1.4.1) bundler (>= 1.15.0) - railties (= 6.1.4) + railties (= 6.1.4.1) sprockets-rails (>= 2.0.0) rails-dom-testing (2.0.3) activesupport (>= 4.2.0) nokogiri (>= 1.6) - rails-html-sanitizer (1.3.0) + rails-html-sanitizer (1.4.1) loofah (~> 2.3) rails-i18n (6.0.0) i18n (>= 0.7, < 2) railties (>= 6.0.0, < 7) rails-settings-cached (2.7.1) rails (>= 5.0.0) - railties (6.1.4) - actionpack (= 6.1.4) - activesupport (= 6.1.4) + railties (6.1.4.1) + actionpack (= 6.1.4.1) + activesupport (= 6.1.4.1) method_source rake (>= 0.13) thor (~> 1.0) @@ -530,7 +530,7 @@ DEPENDENCIES kaminari letter_opener (~> 1.7) letter_opener_web (~> 1.4) - listen (>= 3.0.5, < 3.7) + listen (>= 3.0.5, < 3.8) omniauth (~> 1.9) omniauth-feishu (~> 0.1.6) omniauth-gitlab (~> 2.0.0) From 82dba9551a163d8b0fcbfd2c694eea31de1f8ff1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 20 Aug 2021 21:03:26 +0000 Subject: [PATCH 0606/2165] chore(deps): bump @rails/webpacker from 5.4.0 to 5.4.2 Bumps [@rails/webpacker](https://github.com/rails/webpacker) from 5.4.0 to 5.4.2. - [Release notes](https://github.com/rails/webpacker/releases) - [Changelog](https://github.com/rails/webpacker/blob/v5.4.2/CHANGELOG.md) - [Commits](https://github.com/rails/webpacker/compare/v5.4.0...v5.4.2) --- updated-dependencies: - dependency-name: "@rails/webpacker" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 1255 +++++++++++++++++++++++++++++--------------------- 2 files changed, 720 insertions(+), 537 deletions(-) diff --git a/package.json b/package.json index 56d1bd13b..a5990edb6 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "dependencies": { "@rails/ujs": "^6.1.4", "@rails/actioncable": "^6.1.4", - "@rails/webpacker": "^5.4.0", + "@rails/webpacker": "^5.4.2", "admin-lte": "^3.1.0", "clipboard": "^2.0.8", "compare-versions": "^3.6.0", diff --git a/yarn.lock b/yarn.lock index 19dd907c4..36a3b168f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9,25 +9,37 @@ dependencies: "@babel/highlight" "^7.12.13" +"@babel/code-frame@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.14.5.tgz#23b08d740e83f49c5e59945fbf1b43e80bbf4edb" + integrity sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw== + dependencies: + "@babel/highlight" "^7.14.5" + "@babel/compat-data@^7.13.11", "@babel/compat-data@^7.14.4": version "7.14.4" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.14.4.tgz#45720fe0cecf3fd42019e1d12cc3d27fadc98d58" integrity sha512-i2wXrWQNkH6JplJQGn3Rd2I4Pij8GdHkXwHMxm+zV5YG/Jci+bCNrWZEWC4o+umiDkRrRs4dVzH3X4GP7vyjQQ== -"@babel/core@^7.14.3": - version "7.14.3" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.14.3.tgz#5395e30405f0776067fbd9cf0884f15bfb770a38" - integrity sha512-jB5AmTKOCSJIZ72sd78ECEhuPiDMKlQdDI/4QRI6lzYATx5SSogS1oQA2AoPecRCknm30gHi2l+QVvNUu3wZAg== - dependencies: - "@babel/code-frame" "^7.12.13" - "@babel/generator" "^7.14.3" - "@babel/helper-compilation-targets" "^7.13.16" - "@babel/helper-module-transforms" "^7.14.2" - "@babel/helpers" "^7.14.0" - "@babel/parser" "^7.14.3" - "@babel/template" "^7.12.13" - "@babel/traverse" "^7.14.2" - "@babel/types" "^7.14.2" +"@babel/compat-data@^7.14.7", "@babel/compat-data@^7.15.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.15.0.tgz#2dbaf8b85334796cafbb0f5793a90a2fc010b176" + integrity sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA== + +"@babel/core@^7.15.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.15.0.tgz#749e57c68778b73ad8082775561f67f5196aafa8" + integrity sha512-tXtmTminrze5HEUPn/a0JtOzzfp0nk+UEXQ/tqIJo3WDGypl/2OFQEMll/zSFU8f/lfmfLXvTaORHF3cfXIQMw== + dependencies: + "@babel/code-frame" "^7.14.5" + "@babel/generator" "^7.15.0" + "@babel/helper-compilation-targets" "^7.15.0" + "@babel/helper-module-transforms" "^7.15.0" + "@babel/helpers" "^7.14.8" + "@babel/parser" "^7.15.0" + "@babel/template" "^7.14.5" + "@babel/traverse" "^7.15.0" + "@babel/types" "^7.15.0" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" @@ -35,7 +47,7 @@ semver "^6.3.0" source-map "^0.5.0" -"@babel/generator@^7.14.2", "@babel/generator@^7.14.3": +"@babel/generator@^7.14.2": version "7.14.3" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.14.3.tgz#0c2652d91f7bddab7cccc6ba8157e4f40dcedb91" integrity sha512-bn0S6flG/j0xtQdz3hsjJ624h3W0r3llttBMfyHX3YrZ/KtLYr15bjA0FXkgW7FpvrDuTuElXeVjiKlYRpnOFA== @@ -44,6 +56,15 @@ jsesc "^2.5.1" source-map "^0.5.0" +"@babel/generator@^7.15.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.15.0.tgz#a7d0c172e0d814974bad5aa77ace543b97917f15" + integrity sha512-eKl4XdMrbpYvuB505KTta4AV9g+wWzmVBW69tX0H2NwKVKd2YJbKgyK6M8j/rgLbmHOYJn6rUklV677nOyJrEQ== + dependencies: + "@babel/types" "^7.15.0" + jsesc "^2.5.1" + source-map "^0.5.0" + "@babel/helper-annotate-as-pure@^7.12.13": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz#0f58e86dfc4bb3b1fcd7db806570e177d439b6ab" @@ -51,15 +72,22 @@ dependencies: "@babel/types" "^7.12.13" -"@babel/helper-builder-binary-assignment-operator-visitor@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.12.13.tgz#6bc20361c88b0a74d05137a65cac8d3cbf6f61fc" - integrity sha512-CZOv9tGphhDRlVjVkAgm8Nhklm9RzSmWpX2my+t7Ua/KT616pEzXsQCjinzvkRvHWJ9itO4f296efroX23XCMA== +"@babel/helper-annotate-as-pure@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.14.5.tgz#7bf478ec3b71726d56a8ca5775b046fc29879e61" + integrity sha512-EivH9EgBIb+G8ij1B2jAwSH36WnGvkQSEC6CkX/6v6ZFlw5fVOHvsgGF4uiEHO2GzMvunZb6tDLQEQSdrdocrA== dependencies: - "@babel/helper-explode-assignable-expression" "^7.12.13" - "@babel/types" "^7.12.13" + "@babel/types" "^7.14.5" -"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.13.16", "@babel/helper-compilation-targets@^7.14.4": +"@babel/helper-builder-binary-assignment-operator-visitor@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.14.5.tgz#b939b43f8c37765443a19ae74ad8b15978e0a191" + integrity sha512-YTA/Twn0vBXDVGJuAX6PwW7x5zQei1luDDo2Pl6q1qZ7hVNl0RZrhHCQG/ArGpR29Vl7ETiB8eJyrvpuRp300w== + dependencies: + "@babel/helper-explode-assignable-expression" "^7.14.5" + "@babel/types" "^7.14.5" + +"@babel/helper-compilation-targets@^7.13.0": version "7.14.4" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.4.tgz#33ebd0ffc34248051ee2089350a929ab02f2a516" integrity sha512-JgdzOYZ/qGaKTVkn5qEDV/SXAh8KcyUVkCoSWGN8T3bwrgd6m+/dJa2kVGi6RJYJgEYPBdZ84BZp9dUjNWkBaA== @@ -69,17 +97,27 @@ browserslist "^4.16.6" semver "^6.3.0" -"@babel/helper-create-class-features-plugin@^7.13.0", "@babel/helper-create-class-features-plugin@^7.14.0", "@babel/helper-create-class-features-plugin@^7.14.3": - version "7.14.4" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.14.4.tgz#abf888d836a441abee783c75229279748705dc42" - integrity sha512-idr3pthFlDCpV+p/rMgGLGYIVtazeatrSOQk8YzO2pAepIjQhCN3myeihVg58ax2bbbGK9PUE1reFi7axOYIOw== +"@babel/helper-compilation-targets@^7.14.5", "@babel/helper-compilation-targets@^7.15.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.0.tgz#973df8cbd025515f3ff25db0c05efc704fa79818" + integrity sha512-h+/9t0ncd4jfZ8wsdAsoIxSa61qhBYlycXiHWqJaQBCXAhDCMbPRSMTGnZIkkmt1u4ag+UQmuqcILwqKzZ4N2A== dependencies: - "@babel/helper-annotate-as-pure" "^7.12.13" - "@babel/helper-function-name" "^7.14.2" - "@babel/helper-member-expression-to-functions" "^7.13.12" - "@babel/helper-optimise-call-expression" "^7.12.13" - "@babel/helper-replace-supers" "^7.14.4" - "@babel/helper-split-export-declaration" "^7.12.13" + "@babel/compat-data" "^7.15.0" + "@babel/helper-validator-option" "^7.14.5" + browserslist "^4.16.6" + semver "^6.3.0" + +"@babel/helper-create-class-features-plugin@^7.14.5": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.15.0.tgz#c9a137a4d137b2d0e2c649acf536d7ba1a76c0f7" + integrity sha512-MdmDXgvTIi4heDVX/e9EFfeGpugqm9fobBVg/iioE8kueXrOHdRDe36FAY7SnE9xXLVeYCoJR/gdrBEIHRC83Q== + dependencies: + "@babel/helper-annotate-as-pure" "^7.14.5" + "@babel/helper-function-name" "^7.14.5" + "@babel/helper-member-expression-to-functions" "^7.15.0" + "@babel/helper-optimise-call-expression" "^7.14.5" + "@babel/helper-replace-supers" "^7.15.0" + "@babel/helper-split-export-declaration" "^7.14.5" "@babel/helper-create-regexp-features-plugin@^7.12.13": version "7.14.3" @@ -89,6 +127,14 @@ "@babel/helper-annotate-as-pure" "^7.12.13" regexpu-core "^4.7.1" +"@babel/helper-create-regexp-features-plugin@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.5.tgz#c7d5ac5e9cf621c26057722fb7a8a4c5889358c4" + integrity sha512-TLawwqpOErY2HhWbGJ2nZT5wSkR192QpN+nBg1THfBfftrlvOh+WbhrxXCH4q4xJ9Gl16BGPR/48JA+Ryiho/A== + dependencies: + "@babel/helper-annotate-as-pure" "^7.14.5" + regexpu-core "^4.7.1" + "@babel/helper-define-polyfill-provider@^0.2.2": version "0.2.3" resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.3.tgz#0525edec5094653a282688d34d846e4c75e9c0b6" @@ -103,14 +149,14 @@ resolve "^1.14.2" semver "^6.1.2" -"@babel/helper-explode-assignable-expression@^7.12.13": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.13.0.tgz#17b5c59ff473d9f956f40ef570cf3a76ca12657f" - integrity sha512-qS0peLTDP8kOisG1blKbaoBg/o9OSa1qoumMjTK5pM+KDTtpxpsiubnCGP34vK8BXGcb2M9eigwgvoJryrzwWA== +"@babel/helper-explode-assignable-expression@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.14.5.tgz#8aa72e708205c7bb643e45c73b4386cdf2a1f645" + integrity sha512-Htb24gnGJdIGT4vnRKMdoXiOIlqOLmdiUYpAQ0mYfgVT/GDm8GOYhgi4GL+hMKrkiPRohO4ts34ELFsGAPQLDQ== dependencies: - "@babel/types" "^7.13.0" + "@babel/types" "^7.14.5" -"@babel/helper-function-name@^7.12.13", "@babel/helper-function-name@^7.14.2": +"@babel/helper-function-name@^7.14.2": version "7.14.2" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.14.2.tgz#397688b590760b6ef7725b5f0860c82427ebaac2" integrity sha512-NYZlkZRydxw+YT56IlhIcS8PAhb+FEUiOzuhFTfqDyPmzAhRge6ua0dQYT/Uh0t/EDHq05/i+e5M2d4XvjgarQ== @@ -119,6 +165,15 @@ "@babel/template" "^7.12.13" "@babel/types" "^7.14.2" +"@babel/helper-function-name@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.14.5.tgz#89e2c474972f15d8e233b52ee8c480e2cfcd50c4" + integrity sha512-Gjna0AsXWfFvrAuX+VKcN/aNNWonizBj39yGwUzVDVTlMYJMK2Wp6xdpy72mfArFq5uK+NOuexfzZlzI1z9+AQ== + dependencies: + "@babel/helper-get-function-arity" "^7.14.5" + "@babel/template" "^7.14.5" + "@babel/types" "^7.14.5" + "@babel/helper-get-function-arity@^7.12.13": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz#bc63451d403a3b3082b97e1d8b3fe5bd4091e583" @@ -126,86 +181,104 @@ dependencies: "@babel/types" "^7.12.13" -"@babel/helper-hoist-variables@^7.13.0": - version "7.13.16" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.13.16.tgz#1b1651249e94b51f8f0d33439843e33e39775b30" - integrity sha512-1eMtTrXtrwscjcAeO4BVK+vvkxaLJSPFz1w1KLawz6HLNi9bPFGBNwwDyVfiu1Tv/vRRFYfoGaKhmAQPGPn5Wg== +"@babel/helper-get-function-arity@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.14.5.tgz#25fbfa579b0937eee1f3b805ece4ce398c431815" + integrity sha512-I1Db4Shst5lewOM4V+ZKJzQ0JGGaZ6VY1jYvMghRjqs6DWgxLCIyFt30GlnKkfUeFLpJt2vzbMVEXVSXlIFYUg== dependencies: - "@babel/traverse" "^7.13.15" - "@babel/types" "^7.13.16" + "@babel/types" "^7.14.5" -"@babel/helper-member-expression-to-functions@^7.13.12": - version "7.13.12" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz#dfe368f26d426a07299d8d6513821768216e6d72" - integrity sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw== +"@babel/helper-hoist-variables@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.14.5.tgz#e0dd27c33a78e577d7c8884916a3e7ef1f7c7f8d" + integrity sha512-R1PXiz31Uc0Vxy4OEOm07x0oSjKAdPPCh3tPivn/Eo8cvz6gveAeuyUUPB21Hoiif0uoPQSSdhIPS3352nvdyQ== dependencies: - "@babel/types" "^7.13.12" + "@babel/types" "^7.14.5" -"@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.13.12": +"@babel/helper-member-expression-to-functions@^7.15.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.0.tgz#0ddaf5299c8179f27f37327936553e9bba60990b" + integrity sha512-Jq8H8U2kYiafuj2xMTPQwkTBnEEdGKpT35lJEQsRRjnG0LW3neucsaMWLgKcwu3OHKNeYugfw+Z20BXBSEs2Lg== + dependencies: + "@babel/types" "^7.15.0" + +"@babel/helper-module-imports@^7.12.13": version "7.13.12" resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz#c6a369a6f3621cb25da014078684da9196b61977" integrity sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA== dependencies: "@babel/types" "^7.13.12" -"@babel/helper-module-transforms@^7.13.0", "@babel/helper-module-transforms@^7.14.0", "@babel/helper-module-transforms@^7.14.2": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.14.2.tgz#ac1cc30ee47b945e3e0c4db12fa0c5389509dfe5" - integrity sha512-OznJUda/soKXv0XhpvzGWDnml4Qnwp16GN+D/kZIdLsWoHj05kyu8Rm5kXmMef+rVJZ0+4pSGLkeixdqNUATDA== +"@babel/helper-module-imports@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.14.5.tgz#6d1a44df6a38c957aa7c312da076429f11b422f3" + integrity sha512-SwrNHu5QWS84XlHwGYPDtCxcA0hrSlL2yhWYLgeOc0w7ccOl2qv4s/nARI0aYZW+bSwAL5CukeXA47B/1NKcnQ== dependencies: - "@babel/helper-module-imports" "^7.13.12" - "@babel/helper-replace-supers" "^7.13.12" - "@babel/helper-simple-access" "^7.13.12" - "@babel/helper-split-export-declaration" "^7.12.13" - "@babel/helper-validator-identifier" "^7.14.0" - "@babel/template" "^7.12.13" - "@babel/traverse" "^7.14.2" - "@babel/types" "^7.14.2" + "@babel/types" "^7.14.5" -"@babel/helper-optimise-call-expression@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz#5c02d171b4c8615b1e7163f888c1c81c30a2aaea" - integrity sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA== +"@babel/helper-module-transforms@^7.14.5", "@babel/helper-module-transforms@^7.15.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.15.0.tgz#679275581ea056373eddbe360e1419ef23783b08" + integrity sha512-RkGiW5Rer7fpXv9m1B3iHIFDZdItnO2/BLfWVW/9q7+KqQSDY5kUfQEbzdXM1MVhJGcugKV7kRrNVzNxmk7NBg== dependencies: - "@babel/types" "^7.12.13" + "@babel/helper-module-imports" "^7.14.5" + "@babel/helper-replace-supers" "^7.15.0" + "@babel/helper-simple-access" "^7.14.8" + "@babel/helper-split-export-declaration" "^7.14.5" + "@babel/helper-validator-identifier" "^7.14.9" + "@babel/template" "^7.14.5" + "@babel/traverse" "^7.15.0" + "@babel/types" "^7.15.0" + +"@babel/helper-optimise-call-expression@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.14.5.tgz#f27395a8619e0665b3f0364cddb41c25d71b499c" + integrity sha512-IqiLIrODUOdnPU9/F8ib1Fx2ohlgDhxnIDU7OEVi+kAbEZcyiF7BLU8W6PfvPi9LzztjS7kcbzbmL7oG8kD6VA== + dependencies: + "@babel/types" "^7.14.5" "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": version "7.13.0" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz#806526ce125aed03373bc416a828321e3a6a33af" integrity sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ== -"@babel/helper-remap-async-to-generator@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.13.0.tgz#376a760d9f7b4b2077a9dd05aa9c3927cadb2209" - integrity sha512-pUQpFBE9JvC9lrQbpX0TmeNIy5s7GnZjna2lhhcHC7DzgBs6fWn722Y5cfwgrtrqc7NAJwMvOa0mKhq6XaE4jg== +"@babel/helper-plugin-utils@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz#5ac822ce97eec46741ab70a517971e443a70c5a9" + integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ== + +"@babel/helper-remap-async-to-generator@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.14.5.tgz#51439c913612958f54a987a4ffc9ee587a2045d6" + integrity sha512-rLQKdQU+HYlxBwQIj8dk4/0ENOUEhA/Z0l4hN8BexpvmSMN9oA9EagjnhnDpNsRdWCfjwa4mn/HyBXO9yhQP6A== dependencies: - "@babel/helper-annotate-as-pure" "^7.12.13" - "@babel/helper-wrap-function" "^7.13.0" - "@babel/types" "^7.13.0" + "@babel/helper-annotate-as-pure" "^7.14.5" + "@babel/helper-wrap-function" "^7.14.5" + "@babel/types" "^7.14.5" -"@babel/helper-replace-supers@^7.12.13", "@babel/helper-replace-supers@^7.13.12", "@babel/helper-replace-supers@^7.14.4": - version "7.14.4" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.14.4.tgz#b2ab16875deecfff3ddfcd539bc315f72998d836" - integrity sha512-zZ7uHCWlxfEAAOVDYQpEf/uyi1dmeC7fX4nCf2iz9drnCwi1zvwXL3HwWWNXUQEJ1k23yVn3VbddiI9iJEXaTQ== +"@babel/helper-replace-supers@^7.14.5", "@babel/helper-replace-supers@^7.15.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.15.0.tgz#ace07708f5bf746bf2e6ba99572cce79b5d4e7f4" + integrity sha512-6O+eWrhx+HEra/uJnifCwhwMd6Bp5+ZfZeJwbqUTuqkhIT6YcRhiZCOOFChRypOIe0cV46kFrRBlm+t5vHCEaA== dependencies: - "@babel/helper-member-expression-to-functions" "^7.13.12" - "@babel/helper-optimise-call-expression" "^7.12.13" - "@babel/traverse" "^7.14.2" - "@babel/types" "^7.14.4" + "@babel/helper-member-expression-to-functions" "^7.15.0" + "@babel/helper-optimise-call-expression" "^7.14.5" + "@babel/traverse" "^7.15.0" + "@babel/types" "^7.15.0" -"@babel/helper-simple-access@^7.13.12": - version "7.13.12" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz#dd6c538afb61819d205a012c31792a39c7a5eaf6" - integrity sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA== +"@babel/helper-simple-access@^7.14.8": + version "7.14.8" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.14.8.tgz#82e1fec0644a7e775c74d305f212c39f8fe73924" + integrity sha512-TrFN4RHh9gnWEU+s7JloIho2T76GPwRHhdzOWLqTrMnlas8T9O7ec+oEDNsRXndOmru9ymH9DFrEOxpzPoSbdg== dependencies: - "@babel/types" "^7.13.12" + "@babel/types" "^7.14.8" -"@babel/helper-skip-transparent-expression-wrappers@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz#462dc63a7e435ade8468385c63d2b84cce4b3cbf" - integrity sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA== +"@babel/helper-skip-transparent-expression-wrappers@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.14.5.tgz#96f486ac050ca9f44b009fbe5b7d394cab3a0ee4" + integrity sha512-dmqZB7mrb94PZSAOYtr+ZN5qt5owZIAgqtoTuqiFbHFtxgEcmQlRJVI+bO++fciBunXtB6MK7HrzrfcAzIz2NQ== dependencies: - "@babel/types" "^7.12.1" + "@babel/types" "^7.14.5" "@babel/helper-split-export-declaration@^7.12.13": version "7.12.13" @@ -214,34 +287,51 @@ dependencies: "@babel/types" "^7.12.13" -"@babel/helper-validator-identifier@^7.12.11", "@babel/helper-validator-identifier@^7.14.0": +"@babel/helper-split-export-declaration@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.14.5.tgz#22b23a54ef51c2b7605d851930c1976dd0bc693a" + integrity sha512-hprxVPu6e5Kdp2puZUmvOGjaLv9TCe58E/Fl6hRq4YiVQxIcNvuq6uTM2r1mT/oPskuS9CgR+I94sqAYv0NGKA== + dependencies: + "@babel/types" "^7.14.5" + +"@babel/helper-validator-identifier@^7.14.0": version "7.14.0" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz#d26cad8a47c65286b15df1547319a5d0bcf27288" integrity sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A== +"@babel/helper-validator-identifier@^7.14.5", "@babel/helper-validator-identifier@^7.14.9": + version "7.14.9" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz#6654d171b2024f6d8ee151bf2509699919131d48" + integrity sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g== + "@babel/helper-validator-option@^7.12.17": version "7.12.17" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz#d1fbf012e1a79b7eebbfdc6d270baaf8d9eb9831" integrity sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw== -"@babel/helper-wrap-function@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.13.0.tgz#bdb5c66fda8526ec235ab894ad53a1235c79fcc4" - integrity sha512-1UX9F7K3BS42fI6qd2A4BjKzgGjToscyZTdp1DjknHLCIvpgne6918io+aL5LXFcER/8QWiwpoY902pVEqgTXA== +"@babel/helper-validator-option@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz#6e72a1fff18d5dfcb878e1e62f1a021c4b72d5a3" + integrity sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow== + +"@babel/helper-wrap-function@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.14.5.tgz#5919d115bf0fe328b8a5d63bcb610f51601f2bff" + integrity sha512-YEdjTCq+LNuNS1WfxsDCNpgXkJaIyqco6DAelTUjT4f2KIWC1nBcaCaSdHTBqQVLnTBexBcVcFhLSU1KnYuePQ== dependencies: - "@babel/helper-function-name" "^7.12.13" - "@babel/template" "^7.12.13" - "@babel/traverse" "^7.13.0" - "@babel/types" "^7.13.0" + "@babel/helper-function-name" "^7.14.5" + "@babel/template" "^7.14.5" + "@babel/traverse" "^7.14.5" + "@babel/types" "^7.14.5" -"@babel/helpers@^7.14.0": - version "7.14.0" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.14.0.tgz#ea9b6be9478a13d6f961dbb5f36bf75e2f3b8f62" - integrity sha512-+ufuXprtQ1D1iZTO/K9+EBRn+qPWMJjZSw/S0KlFrxCw4tkrzv9grgpDHkY9MeQTjTY8i2sp7Jep8DfU6tN9Mg== +"@babel/helpers@^7.14.8": + version "7.15.3" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.15.3.tgz#c96838b752b95dcd525b4e741ed40bb1dc2a1357" + integrity sha512-HwJiz52XaS96lX+28Tnbu31VeFSQJGOeKHJeaEPQlTl7PnlhFElWPj8tUXtqFIzeN86XxXoBr+WFAyK2PPVz6g== dependencies: - "@babel/template" "^7.12.13" - "@babel/traverse" "^7.14.0" - "@babel/types" "^7.14.0" + "@babel/template" "^7.14.5" + "@babel/traverse" "^7.15.0" + "@babel/types" "^7.15.0" "@babel/highlight@^7.12.13": version "7.14.0" @@ -252,141 +342,163 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.12.13", "@babel/parser@^7.14.2", "@babel/parser@^7.14.3": +"@babel/highlight@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz#6861a52f03966405001f6aa534a01a24d99e8cd9" + integrity sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg== + dependencies: + "@babel/helper-validator-identifier" "^7.14.5" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/parser@^7.12.13", "@babel/parser@^7.14.2": version "7.14.4" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.14.4.tgz#a5c560d6db6cd8e6ed342368dea8039232cbab18" integrity sha512-ArliyUsWDUqEGfWcmzpGUzNfLxTdTp6WU4IuP6QFSp9gGfWS6boxFCkJSJ/L4+RG8z/FnIU3WxCk6hPL9SSWeA== -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.13.12": - version "7.13.12" - resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.13.12.tgz#a3484d84d0b549f3fc916b99ee4783f26fabad2a" - integrity sha512-d0u3zWKcoZf379fOeJdr1a5WPDny4aOFZ6hlfKivgK0LY7ZxNfoaHL2fWwdGtHyVvra38FC+HVYkO+byfSA8AQ== +"@babel/parser@^7.14.5", "@babel/parser@^7.15.0": + version "7.15.3" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.3.tgz#3416d9bea748052cfcb63dbcc27368105b1ed862" + integrity sha512-O0L6v/HvqbdJawj0iBEfVQMc3/6WP+AeOsovsIgBFyJaG+W2w7eqvZB7puddATmWuARlm1SX7DwxJ/JJUnDpEA== + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.14.5.tgz#4b467302e1548ed3b1be43beae2cc9cf45e0bb7e" + integrity sha512-ZoJS2XCKPBfTmL122iP6NM9dOg+d4lc9fFk3zxc8iDjvt8Pk4+TlsHSKhIPf6X+L5ORCdBzqMZDjL/WHj7WknQ== dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" - "@babel/plugin-proposal-optional-chaining" "^7.13.12" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" + "@babel/plugin-proposal-optional-chaining" "^7.14.5" -"@babel/plugin-proposal-async-generator-functions@^7.14.2": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.2.tgz#3a2085abbf5d5f962d480dbc81347385ed62eb1e" - integrity sha512-b1AM4F6fwck4N8ItZ/AtC4FP/cqZqmKRQ4FaTDutwSYyjuhtvsGEMLK4N/ztV/ImP40BjIDyMgBQAeAMsQYVFQ== +"@babel/plugin-proposal-async-generator-functions@^7.14.9": + version "7.14.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.14.9.tgz#7028dc4fa21dc199bbacf98b39bab1267d0eaf9a" + integrity sha512-d1lnh+ZnKrFKwtTYdw320+sQWCTwgkB9fmUhNXRADA4akR6wLjaruSGnIEUjpt9HCOwTr4ynFTKu19b7rFRpmw== dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-remap-async-to-generator" "^7.13.0" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-remap-async-to-generator" "^7.14.5" "@babel/plugin-syntax-async-generators" "^7.8.4" -"@babel/plugin-proposal-class-properties@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.13.0.tgz#146376000b94efd001e57a40a88a525afaab9f37" - integrity sha512-KnTDjFNC1g+45ka0myZNvSBFLhNCLN+GeGYLDEA8Oq7MZ6yMgfLoIRh86GRT0FjtJhZw8JyUskP9uvj5pHM9Zg== +"@babel/plugin-proposal-class-properties@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.14.5.tgz#40d1ee140c5b1e31a350f4f5eed945096559b42e" + integrity sha512-q/PLpv5Ko4dVc1LYMpCY7RVAAO4uk55qPwrIuJ5QJ8c6cVuAmhu7I/49JOppXL6gXf7ZHzpRVEUZdYoPLM04Gg== dependencies: - "@babel/helper-create-class-features-plugin" "^7.13.0" - "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-create-class-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-proposal-class-static-block@^7.14.3": - version "7.14.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.14.3.tgz#5a527e2cae4a4753119c3a3e7f64ecae8ccf1360" - integrity sha512-HEjzp5q+lWSjAgJtSluFDrGGosmwTgKwCXdDQZvhKsRlwv3YdkUEqxNrrjesJd+B9E9zvr1PVPVBvhYZ9msjvQ== +"@babel/plugin-proposal-class-static-block@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.14.5.tgz#158e9e10d449c3849ef3ecde94a03d9f1841b681" + integrity sha512-KBAH5ksEnYHCegqseI5N9skTdxgJdmDoAOc0uXa+4QMYKeZD0w5IARh4FMlTNtaHhbB8v+KzMdTgxMMzsIy6Yg== dependencies: - "@babel/helper-create-class-features-plugin" "^7.14.3" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/plugin-syntax-class-static-block" "^7.12.13" + "@babel/helper-create-class-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-class-static-block" "^7.14.5" -"@babel/plugin-proposal-dynamic-import@^7.14.2": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.2.tgz#01ebabd7c381cff231fa43e302939a9de5be9d9f" - integrity sha512-oxVQZIWFh91vuNEMKltqNsKLFWkOIyJc95k2Gv9lWVyDfPUQGSSlbDEgWuJUU1afGE9WwlzpucMZ3yDRHIItkA== +"@babel/plugin-proposal-dynamic-import@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.5.tgz#0c6617df461c0c1f8fff3b47cd59772360101d2c" + integrity sha512-ExjiNYc3HDN5PXJx+bwC50GIx/KKanX2HiggnIUAYedbARdImiCU4RhhHfdf0Kd7JNXGpsBBBCOm+bBVy3Gb0g== dependencies: - "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-dynamic-import" "^7.8.3" -"@babel/plugin-proposal-export-namespace-from@^7.14.2": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.2.tgz#62542f94aa9ce8f6dba79eec698af22112253791" - integrity sha512-sRxW3z3Zp3pFfLAgVEvzTFutTXax837oOatUIvSG9o5gRj9mKwm3br1Se5f4QalTQs9x4AzlA/HrCWbQIHASUQ== +"@babel/plugin-proposal-export-namespace-from@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.5.tgz#dbad244310ce6ccd083072167d8cea83a52faf76" + integrity sha512-g5POA32bXPMmSBu5Dx/iZGLGnKmKPc5AiY7qfZgurzrCYgIztDlHFbznSNCoQuv57YQLnQfaDi7dxCtLDIdXdA== dependencies: - "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" -"@babel/plugin-proposal-json-strings@^7.14.2": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.2.tgz#830b4e2426a782e8b2878fbfe2cba85b70cbf98c" - integrity sha512-w2DtsfXBBJddJacXMBhElGEYqCZQqN99Se1qeYn8DVLB33owlrlLftIbMzn5nz1OITfDVknXF433tBrLEAOEjA== +"@babel/plugin-proposal-json-strings@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.5.tgz#38de60db362e83a3d8c944ac858ddf9f0c2239eb" + integrity sha512-NSq2fczJYKVRIsUJyNxrVUMhB27zb7N7pOFGQOhBKJrChbGcgEAqyZrmZswkPk18VMurEeJAaICbfm57vUeTbQ== dependencies: - "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-json-strings" "^7.8.3" -"@babel/plugin-proposal-logical-assignment-operators@^7.14.2": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.2.tgz#222348c080a1678e0e74ea63fe76f275882d1fd7" - integrity sha512-1JAZtUrqYyGsS7IDmFeaem+/LJqujfLZ2weLR9ugB0ufUPjzf8cguyVT1g5im7f7RXxuLq1xUxEzvm68uYRtGg== +"@babel/plugin-proposal-logical-assignment-operators@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.5.tgz#6e6229c2a99b02ab2915f82571e0cc646a40c738" + integrity sha512-YGn2AvZAo9TwyhlLvCCWxD90Xq8xJ4aSgaX3G5D/8DW94L8aaT+dS5cSP+Z06+rCJERGSr9GxMBZ601xoc2taw== dependencies: - "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" -"@babel/plugin-proposal-nullish-coalescing-operator@^7.14.2": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.2.tgz#425b11dc62fc26939a2ab42cbba680bdf5734546" - integrity sha512-ebR0zU9OvI2N4qiAC38KIAK75KItpIPTpAtd2r4OZmMFeKbKJpUFLYP2EuDut82+BmYi8sz42B+TfTptJ9iG5Q== +"@babel/plugin-proposal-nullish-coalescing-operator@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz#ee38589ce00e2cc59b299ec3ea406fcd3a0fdaf6" + integrity sha512-gun/SOnMqjSb98Nkaq2rTKMwervfdAoz6NphdY0vTfuzMfryj+tDGb2n6UkDKwez+Y8PZDhE3D143v6Gepp4Hg== dependencies: - "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" -"@babel/plugin-proposal-numeric-separator@^7.14.2": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.2.tgz#82b4cc06571143faf50626104b335dd71baa4f9e" - integrity sha512-DcTQY9syxu9BpU3Uo94fjCB3LN9/hgPS8oUL7KrSW3bA2ePrKZZPJcc5y0hoJAM9dft3pGfErtEUvxXQcfLxUg== +"@babel/plugin-proposal-numeric-separator@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.5.tgz#83631bf33d9a51df184c2102a069ac0c58c05f18" + integrity sha512-yiclALKe0vyZRZE0pS6RXgjUOt87GWv6FYa5zqj15PvhOGFO69R5DusPlgK/1K5dVnCtegTiWu9UaBSrLLJJBg== dependencies: - "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-proposal-object-rest-spread@^7.14.2", "@babel/plugin-proposal-object-rest-spread@^7.14.4": - version "7.14.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.4.tgz#0e2b4de419915dc0b409378e829412e2031777c4" - integrity sha512-AYosOWBlyyXEagrPRfLJ1enStufsr7D1+ddpj8OLi9k7B6+NdZ0t/9V7Fh+wJ4g2Jol8z2JkgczYqtWrZd4vbA== +"@babel/plugin-proposal-object-rest-spread@^7.14.7": + version "7.14.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.7.tgz#5920a2b3df7f7901df0205974c0641b13fd9d363" + integrity sha512-082hsZz+sVabfmDWo1Oct1u1AgbKbUAyVgmX4otIc7bdsRgHBXwTwb3DpDmD4Eyyx6DNiuz5UAATT655k+kL5g== dependencies: - "@babel/compat-data" "^7.14.4" - "@babel/helper-compilation-targets" "^7.14.4" - "@babel/helper-plugin-utils" "^7.13.0" + "@babel/compat-data" "^7.14.7" + "@babel/helper-compilation-targets" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.14.2" + "@babel/plugin-transform-parameters" "^7.14.5" -"@babel/plugin-proposal-optional-catch-binding@^7.14.2": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.2.tgz#150d4e58e525b16a9a1431bd5326c4eed870d717" - integrity sha512-XtkJsmJtBaUbOxZsNk0Fvrv8eiqgneug0A6aqLFZ4TSkar2L5dSXWcnUKHgmjJt49pyB/6ZHvkr3dPgl9MOWRQ== +"@babel/plugin-proposal-optional-catch-binding@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.5.tgz#939dd6eddeff3a67fdf7b3f044b5347262598c3c" + integrity sha512-3Oyiixm0ur7bzO5ybNcZFlmVsygSIQgdOa7cTfOYCMY+wEPAYhZAJxi3mixKFCTCKUhQXuCTtQ1MzrpL3WT8ZQ== dependencies: - "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-proposal-optional-chaining@^7.13.12", "@babel/plugin-proposal-optional-chaining@^7.14.2": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.2.tgz#df8171a8b9c43ebf4c1dabe6311b432d83e1b34e" - integrity sha512-qQByMRPwMZJainfig10BoaDldx/+VDtNcrA7qdNaEOAj6VXud+gfrkA8j4CRAU5HjnWREXqIpSpH30qZX1xivA== +"@babel/plugin-proposal-optional-chaining@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.5.tgz#fa83651e60a360e3f13797eef00b8d519695b603" + integrity sha512-ycz+VOzo2UbWNI1rQXxIuMOzrDdHGrI23fRiz/Si2R4kv2XZQ1BK8ccdHwehMKBlcH/joGW/tzrUmo67gbJHlQ== dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" "@babel/plugin-syntax-optional-chaining" "^7.8.3" -"@babel/plugin-proposal-private-methods@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.13.0.tgz#04bd4c6d40f6e6bbfa2f57e2d8094bad900ef787" - integrity sha512-MXyyKQd9inhx1kDYPkFRVOBXQ20ES8Pto3T7UZ92xj2mY0EVD8oAVzeyYuVfy/mxAdTSIayOvg+aVzcHV2bn6Q== +"@babel/plugin-proposal-private-methods@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.14.5.tgz#37446495996b2945f30f5be5b60d5e2aa4f5792d" + integrity sha512-838DkdUA1u+QTCplatfq4B7+1lnDa/+QMI89x5WZHBcnNv+47N8QEj2k9I2MUU9xIv8XJ4XvPCviM/Dj7Uwt9g== dependencies: - "@babel/helper-create-class-features-plugin" "^7.13.0" - "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-create-class-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-proposal-private-property-in-object@^7.14.0": - version "7.14.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.14.0.tgz#b1a1f2030586b9d3489cc26179d2eb5883277636" - integrity sha512-59ANdmEwwRUkLjB7CRtwJxxwtjESw+X2IePItA+RGQh+oy5RmpCh/EvVVvh5XQc3yxsm5gtv0+i9oBZhaDNVTg== +"@babel/plugin-proposal-private-property-in-object@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.14.5.tgz#9f65a4d0493a940b4c01f8aa9d3f1894a587f636" + integrity sha512-62EyfyA3WA0mZiF2e2IV9mc9Ghwxcg8YTu8BS4Wss4Y3PY725OmS9M0qLORbJwLqFtGh+jiE4wAmocK2CTUK2Q== dependencies: - "@babel/helper-annotate-as-pure" "^7.12.13" - "@babel/helper-create-class-features-plugin" "^7.14.0" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/plugin-syntax-private-property-in-object" "^7.14.0" + "@babel/helper-annotate-as-pure" "^7.14.5" + "@babel/helper-create-class-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + +"@babel/plugin-proposal-unicode-property-regex@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.14.5.tgz#0f95ee0e757a5d647f378daa0eca7e93faa8bbe8" + integrity sha512-6axIeOU5LnY471KenAB9vI8I5j7NQ2d652hIYwVyRfgaZT5UpiqFKCuVXCDMSrU+3VFafnu2c5m3lrWIlr6A5Q== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-proposal-unicode-property-regex@^7.12.13", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": +"@babel/plugin-proposal-unicode-property-regex@^7.4.4": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.13.tgz#bebde51339be829c17aaaaced18641deb62b39ba" integrity sha512-XyJmZidNfofEkqFV5VC/bLabGmO5QzenPO/YOfGuEbgU+2sSwMmio3YLb4WtBgcmmdwZHyVyv8on77IUjQ5Gvg== @@ -408,12 +520,12 @@ dependencies: "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-syntax-class-static-block@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.12.13.tgz#8e3d674b0613e67975ceac2776c97b60cafc5c9c" - integrity sha512-ZmKQ0ZXR0nYpHZIIuj9zE7oIqCx2hw9TKi+lIo73NNrMPAZGHfS92/VRV0ZmPj6H2ffBgyFHXvJ5NYsNeEaP2A== +"@babel/plugin-syntax-class-static-block@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" + integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-dynamic-import@^7.8.3": version "7.8.3" @@ -478,78 +590,86 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-private-property-in-object@^7.14.0": - version "7.14.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.0.tgz#762a4babec61176fec6c88480dec40372b140c0b" - integrity sha512-bda3xF8wGl5/5btF794utNOL0Jw+9jE5C1sLZcoK7c4uonE/y3iQiyG+KbkF3WBV/paX58VCpjhxLPkdj5Fe4w== +"@babel/plugin-syntax-private-property-in-object@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" + integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== dependencies: - "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-top-level-await@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz#c5f0fa6e249f5b739727f923540cf7a806130178" - integrity sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ== +"@babel/plugin-syntax-top-level-await@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" + integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-arrow-functions@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.13.0.tgz#10a59bebad52d637a027afa692e8d5ceff5e3dae" - integrity sha512-96lgJagobeVmazXFaDrbmCLQxBysKu7U6Do3mLsx27gf5Dk85ezysrs2BZUpXD703U/Su1xTBDxxar2oa4jAGg== +"@babel/plugin-transform-arrow-functions@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.14.5.tgz#f7187d9588a768dd080bf4c9ffe117ea62f7862a" + integrity sha512-KOnO0l4+tD5IfOdi4x8C1XmEIRWUjNRV8wc6K2vz/3e8yAOoZZvsRXRRIF/yo/MAOFb4QjtAw9xSxMXbSMRy8A== dependencies: - "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-async-to-generator@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.13.0.tgz#8e112bf6771b82bf1e974e5e26806c5c99aa516f" - integrity sha512-3j6E004Dx0K3eGmhxVJxwwI89CTJrce7lg3UrtFuDAVQ/2+SJ/h/aSFOeE6/n0WB1GsOffsJp6MnPQNQ8nmwhg== +"@babel/plugin-transform-async-to-generator@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.14.5.tgz#72c789084d8f2094acb945633943ef8443d39e67" + integrity sha512-szkbzQ0mNk0rpu76fzDdqSyPu0MuvpXgC+6rz5rpMb5OIRxdmHfQxrktL8CYolL2d8luMCZTR0DpIMIdL27IjA== dependencies: - "@babel/helper-module-imports" "^7.12.13" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-remap-async-to-generator" "^7.13.0" + "@babel/helper-module-imports" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-remap-async-to-generator" "^7.14.5" -"@babel/plugin-transform-block-scoped-functions@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.13.tgz#a9bf1836f2a39b4eb6cf09967739de29ea4bf4c4" - integrity sha512-zNyFqbc3kI/fVpqwfqkg6RvBgFpC4J18aKKMmv7KdQ/1GgREapSJAykLMVNwfRGO3BtHj3YQZl8kxCXPcVMVeg== +"@babel/plugin-transform-block-scoped-functions@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.14.5.tgz#e48641d999d4bc157a67ef336aeb54bc44fd3ad4" + integrity sha512-dtqWqdWZ5NqBX3KzsVCWfQI3A53Ft5pWFCT2eCVUftWZgjc5DpDponbIF1+c+7cSGk2wN0YK7HGL/ezfRbpKBQ== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-block-scoping@^7.14.4": - version "7.14.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.14.4.tgz#caf140b0b2e2462c509553d140e6d0abefb61ed8" - integrity sha512-5KdpkGxsZlTk+fPleDtGKsA+pon28+ptYmMO8GBSa5fHERCJWAzj50uAfCKBqq42HO+Zot6JF1x37CRprwmN4g== +"@babel/plugin-transform-block-scoping@^7.14.5": + version "7.15.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.15.3.tgz#94c81a6e2fc230bcce6ef537ac96a1e4d2b3afaf" + integrity sha512-nBAzfZwZb4DkaGtOes1Up1nOAp9TDRRFw4XBzBBSG9QK7KVFmYzgj9o9sbPv7TX5ofL4Auq4wZnxCoPnI/lz2Q== dependencies: - "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-classes@^7.14.4": - version "7.14.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.4.tgz#a83c15503fc71a0f99e876fdce7dadbc6575ec3a" - integrity sha512-p73t31SIj6y94RDVX57rafVjttNr8MvKEgs5YFatNB/xC68zM3pyosuOEcQmYsYlyQaGY9R7rAULVRcat5FKJQ== +"@babel/plugin-transform-classes@^7.14.9": + version "7.14.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.14.9.tgz#2a391ffb1e5292710b00f2e2c210e1435e7d449f" + integrity sha512-NfZpTcxU3foGWbl4wxmZ35mTsYJy8oQocbeIMoDAGGFarAmSQlL+LWMkDx/tj6pNotpbX3rltIA4dprgAPOq5A== dependencies: - "@babel/helper-annotate-as-pure" "^7.12.13" - "@babel/helper-function-name" "^7.14.2" - "@babel/helper-optimise-call-expression" "^7.12.13" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-replace-supers" "^7.14.4" - "@babel/helper-split-export-declaration" "^7.12.13" + "@babel/helper-annotate-as-pure" "^7.14.5" + "@babel/helper-function-name" "^7.14.5" + "@babel/helper-optimise-call-expression" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-replace-supers" "^7.14.5" + "@babel/helper-split-export-declaration" "^7.14.5" globals "^11.1.0" -"@babel/plugin-transform-computed-properties@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.13.0.tgz#845c6e8b9bb55376b1fa0b92ef0bdc8ea06644ed" - integrity sha512-RRqTYTeZkZAz8WbieLTvKUEUxZlUTdmL5KGMyZj7FnMfLNKV4+r5549aORG/mgojRmFlQMJDUupwAMiF2Q7OUg== +"@babel/plugin-transform-computed-properties@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.14.5.tgz#1b9d78987420d11223d41195461cc43b974b204f" + integrity sha512-pWM+E4283UxaVzLb8UBXv4EIxMovU4zxT1OPnpHJcmnvyY9QbPPTKZfEj31EUvG3/EQRbYAGaYEUZ4yWOBC2xg== dependencies: - "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-destructuring@^7.13.17", "@babel/plugin-transform-destructuring@^7.14.4": - version "7.14.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.4.tgz#acbec502e9951f30f4441eaca1d2f29efade59ed" - integrity sha512-JyywKreTCGTUsL1OKu1A3ms/R1sTP0WxbpXlALeGzF53eB3bxtNkYdMj9SDgK7g6ImPy76J5oYYKoTtQImlhQA== +"@babel/plugin-transform-destructuring@^7.14.7": + version "7.14.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.7.tgz#0ad58ed37e23e22084d109f185260835e5557576" + integrity sha512-0mDE99nK+kVh3xlc5vKwB6wnP9ecuSj+zQCa/n0voENtP/zymdT4HH6QEb65wjjcbqr1Jb/7z9Qp7TF5FtwYGw== dependencies: - "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-dotall-regex@^7.12.13", "@babel/plugin-transform-dotall-regex@^7.4.4": +"@babel/plugin-transform-dotall-regex@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.14.5.tgz#2f6bf76e46bdf8043b4e7e16cf24532629ba0c7a" + integrity sha512-loGlnBdj02MDsFaHhAIJzh7euK89lBrGIdM9EAtHFo6xKygCUGuuWe07o1oZVk287amtW1n0808sQM99aZt3gw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-dotall-regex@^7.4.4": version "7.12.13" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.13.tgz#3f1601cc29905bfcb67f53910f197aeafebb25ad" integrity sha512-foDrozE65ZFdUC2OfgeOCrEPTxdB3yjqxpXh8CH+ipd9CHd4s/iq81kcUpyH8ACGNEPdFqbtzfgzbT/ZGlbDeQ== @@ -557,229 +677,229 @@ "@babel/helper-create-regexp-features-plugin" "^7.12.13" "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-transform-duplicate-keys@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.13.tgz#6f06b87a8b803fd928e54b81c258f0a0033904de" - integrity sha512-NfADJiiHdhLBW3pulJlJI2NB0t4cci4WTZ8FtdIuNc2+8pslXdPtRRAEWqUY+m9kNOk2eRYbTAOipAxlrOcwwQ== +"@babel/plugin-transform-duplicate-keys@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.14.5.tgz#365a4844881bdf1501e3a9f0270e7f0f91177954" + integrity sha512-iJjbI53huKbPDAsJ8EmVmvCKeeq21bAze4fu9GBQtSLqfvzj2oRuHVx4ZkDwEhg1htQ+5OBZh/Ab0XDf5iBZ7A== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-exponentiation-operator@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.13.tgz#4d52390b9a273e651e4aba6aee49ef40e80cd0a1" - integrity sha512-fbUelkM1apvqez/yYx1/oICVnGo2KM5s63mhGylrmXUxK/IAXSIf87QIxVfZldWf4QsOafY6vV3bX8aMHSvNrA== +"@babel/plugin-transform-exponentiation-operator@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.14.5.tgz#5154b8dd6a3dfe6d90923d61724bd3deeb90b493" + integrity sha512-jFazJhMBc9D27o9jDnIE5ZErI0R0m7PbKXVq77FFvqFbzvTMuv8jaAwLZ5PviOLSFttqKIW0/wxNSDbjLk0tYA== dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.12.13" - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-for-of@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.13.0.tgz#c799f881a8091ac26b54867a845c3e97d2696062" - integrity sha512-IHKT00mwUVYE0zzbkDgNRP6SRzvfGCYsOxIRz8KsiaaHCcT9BWIkO+H9QRJseHBLOGBZkHUdHiqj6r0POsdytg== +"@babel/plugin-transform-for-of@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.14.5.tgz#dae384613de8f77c196a8869cbf602a44f7fc0eb" + integrity sha512-CfmqxSUZzBl0rSjpoQSFoR9UEj3HzbGuGNL21/iFTmjb5gFggJp3ph0xR1YBhexmLoKRHzgxuFvty2xdSt6gTA== dependencies: - "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-function-name@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.13.tgz#bb024452f9aaed861d374c8e7a24252ce3a50051" - integrity sha512-6K7gZycG0cmIwwF7uMK/ZqeCikCGVBdyP2J5SKNCXO5EOHcqi+z7Jwf8AmyDNcBgxET8DrEtCt/mPKPyAzXyqQ== +"@babel/plugin-transform-function-name@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.14.5.tgz#e81c65ecb900746d7f31802f6bed1f52d915d6f2" + integrity sha512-vbO6kv0fIzZ1GpmGQuvbwwm+O4Cbm2NrPzwlup9+/3fdkuzo1YqOZcXw26+YUJB84Ja7j9yURWposEHLYwxUfQ== dependencies: - "@babel/helper-function-name" "^7.12.13" - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-function-name" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-literals@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.13.tgz#2ca45bafe4a820197cf315794a4d26560fe4bdb9" - integrity sha512-FW+WPjSR7hiUxMcKqyNjP05tQ2kmBCdpEpZHY1ARm96tGQCCBvXKnpjILtDplUnJ/eHZ0lALLM+d2lMFSpYJrQ== +"@babel/plugin-transform-literals@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.14.5.tgz#41d06c7ff5d4d09e3cf4587bd3ecf3930c730f78" + integrity sha512-ql33+epql2F49bi8aHXxvLURHkxJbSmMKl9J5yHqg4PLtdE6Uc48CH1GS6TQvZ86eoB/ApZXwm7jlA+B3kra7A== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-member-expression-literals@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.13.tgz#5ffa66cd59b9e191314c9f1f803b938e8c081e40" - integrity sha512-kxLkOsg8yir4YeEPHLuO2tXP9R/gTjpuTOjshqSpELUN3ZAg2jfDnKUvzzJxObun38sw3wm4Uu69sX/zA7iRvg== +"@babel/plugin-transform-member-expression-literals@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.14.5.tgz#b39cd5212a2bf235a617d320ec2b48bcc091b8a7" + integrity sha512-WkNXxH1VXVTKarWFqmso83xl+2V3Eo28YY5utIkbsmXoItO8Q3aZxN4BTS2k0hz9dGUloHK26mJMyQEYfkn/+Q== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-modules-amd@^7.14.2": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.2.tgz#6622806fe1a7c07a1388444222ef9535f2ca17b0" - integrity sha512-hPC6XBswt8P3G2D1tSV2HzdKvkqOpmbyoy+g73JG0qlF/qx2y3KaMmXb1fLrpmWGLZYA0ojCvaHdzFWjlmV+Pw== +"@babel/plugin-transform-modules-amd@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.5.tgz#4fd9ce7e3411cb8b83848480b7041d83004858f7" + integrity sha512-3lpOU8Vxmp3roC4vzFpSdEpGUWSMsHFreTWOMMLzel2gNGfHE5UWIh/LN6ghHs2xurUp4jRFYMUIZhuFbody1g== dependencies: - "@babel/helper-module-transforms" "^7.14.2" - "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-module-transforms" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-commonjs@^7.14.0": - version "7.14.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.14.0.tgz#52bc199cb581e0992edba0f0f80356467587f161" - integrity sha512-EX4QePlsTaRZQmw9BsoPeyh5OCtRGIhwfLquhxGp5e32w+dyL8htOcDwamlitmNFK6xBZYlygjdye9dbd9rUlQ== +"@babel/plugin-transform-modules-commonjs@^7.15.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.15.0.tgz#3305896e5835f953b5cdb363acd9e8c2219a5281" + integrity sha512-3H/R9s8cXcOGE8kgMlmjYYC9nqr5ELiPkJn4q0mypBrjhYQoc+5/Maq69vV4xRPWnkzZuwJPf5rArxpB/35Cig== dependencies: - "@babel/helper-module-transforms" "^7.14.0" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-simple-access" "^7.13.12" + "@babel/helper-module-transforms" "^7.15.0" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-simple-access" "^7.14.8" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-systemjs@^7.13.8": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.13.8.tgz#6d066ee2bff3c7b3d60bf28dec169ad993831ae3" - integrity sha512-hwqctPYjhM6cWvVIlOIe27jCIBgHCsdH2xCJVAYQm7V5yTMoilbVMi9f6wKg0rpQAOn6ZG4AOyvCqFF/hUh6+A== +"@babel/plugin-transform-modules-systemjs@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.14.5.tgz#c75342ef8b30dcde4295d3401aae24e65638ed29" + integrity sha512-mNMQdvBEE5DcMQaL5LbzXFMANrQjd2W7FPzg34Y4yEz7dBgdaC+9B84dSO+/1Wba98zoDbInctCDo4JGxz1VYA== dependencies: - "@babel/helper-hoist-variables" "^7.13.0" - "@babel/helper-module-transforms" "^7.13.0" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-validator-identifier" "^7.12.11" + "@babel/helper-hoist-variables" "^7.14.5" + "@babel/helper-module-transforms" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-validator-identifier" "^7.14.5" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-umd@^7.14.0": - version "7.14.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.0.tgz#2f8179d1bbc9263665ce4a65f305526b2ea8ac34" - integrity sha512-nPZdnWtXXeY7I87UZr9VlsWme3Y0cfFFE41Wbxz4bbaexAjNMInXPFUpRRUJ8NoMm0Cw+zxbqjdPmLhcjfazMw== +"@babel/plugin-transform-modules-umd@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.5.tgz#fb662dfee697cce274a7cda525190a79096aa6e0" + integrity sha512-RfPGoagSngC06LsGUYyM9QWSXZ8MysEjDJTAea1lqRjNECE3y0qIJF/qbvJxc4oA4s99HumIMdXOrd+TdKaAAA== dependencies: - "@babel/helper-module-transforms" "^7.14.0" - "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-module-transforms" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-named-capturing-groups-regex@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.13.tgz#2213725a5f5bbbe364b50c3ba5998c9599c5c9d9" - integrity sha512-Xsm8P2hr5hAxyYblrfACXpQKdQbx4m2df9/ZZSQ8MAhsadw06+jW7s9zsSw6he+mJZXRlVMyEnVktJo4zjk1WA== +"@babel/plugin-transform-named-capturing-groups-regex@^7.14.9": + version "7.14.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.9.tgz#c68f5c5d12d2ebaba3762e57c2c4f6347a46e7b2" + integrity sha512-l666wCVYO75mlAtGFfyFwnWmIXQm3kSH0C3IRnJqWcZbWkoihyAdDhFm2ZWaxWTqvBvhVFfJjMRQ0ez4oN1yYA== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.12.13" + "@babel/helper-create-regexp-features-plugin" "^7.14.5" -"@babel/plugin-transform-new-target@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.13.tgz#e22d8c3af24b150dd528cbd6e685e799bf1c351c" - integrity sha512-/KY2hbLxrG5GTQ9zzZSc3xWiOy379pIETEhbtzwZcw9rvuaVV4Fqy7BYGYOWZnaoXIQYbbJ0ziXLa/sKcGCYEQ== +"@babel/plugin-transform-new-target@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.14.5.tgz#31bdae8b925dc84076ebfcd2a9940143aed7dbf8" + integrity sha512-Nx054zovz6IIRWEB49RDRuXGI4Gy0GMgqG0cII9L3MxqgXz/+rgII+RU58qpo4g7tNEx1jG7rRVH4ihZoP4esQ== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-object-super@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.13.tgz#b4416a2d63b8f7be314f3d349bd55a9c1b5171f7" - integrity sha512-JzYIcj3XtYspZDV8j9ulnoMPZZnF/Cj0LUxPOjR89BdBVx+zYJI9MdMIlUZjbXDX+6YVeS6I3e8op+qQ3BYBoQ== +"@babel/plugin-transform-object-super@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.14.5.tgz#d0b5faeac9e98597a161a9cf78c527ed934cdc45" + integrity sha512-MKfOBWzK0pZIrav9z/hkRqIk/2bTv9qvxHzPQc12RcVkMOzpIKnFCNYJip00ssKWYkd8Sf5g0Wr7pqJ+cmtuFg== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - "@babel/helper-replace-supers" "^7.12.13" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-replace-supers" "^7.14.5" -"@babel/plugin-transform-parameters@^7.14.2": - version "7.14.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.14.2.tgz#e4290f72e0e9e831000d066427c4667098decc31" - integrity sha512-NxoVmA3APNCC1JdMXkdYXuQS+EMdqy0vIwyDHeKHiJKRxmp1qGSdb0JLEIoPRhkx6H/8Qi3RJ3uqOCYw8giy9A== +"@babel/plugin-transform-parameters@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.14.5.tgz#49662e86a1f3ddccac6363a7dfb1ff0a158afeb3" + integrity sha512-Tl7LWdr6HUxTmzQtzuU14SqbgrSKmaR77M0OKyq4njZLQTPfOvzblNKyNkGwOfEFCEx7KeYHQHDI0P3F02IVkA== dependencies: - "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-property-literals@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.13.tgz#4e6a9e37864d8f1b3bc0e2dce7bf8857db8b1a81" - integrity sha512-nqVigwVan+lR+g8Fj8Exl0UQX2kymtjcWfMOYM1vTYEKujeyv2SkMgazf2qNcK7l4SDiKyTA/nHCPqL4e2zo1A== +"@babel/plugin-transform-property-literals@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.14.5.tgz#0ddbaa1f83db3606f1cdf4846fa1dfb473458b34" + integrity sha512-r1uilDthkgXW8Z1vJz2dKYLV1tuw2xsbrp3MrZmD99Wh9vsfKoob+JTgri5VUb/JqyKRXotlOtwgu4stIYCmnw== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-regenerator@^7.13.15": - version "7.13.15" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.13.15.tgz#e5eb28945bf8b6563e7f818945f966a8d2997f39" - integrity sha512-Bk9cOLSz8DiurcMETZ8E2YtIVJbFCPGW28DJWUakmyVWtQSm6Wsf0p4B4BfEr/eL2Nkhe/CICiUiMOCi1TPhuQ== +"@babel/plugin-transform-regenerator@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.14.5.tgz#9676fd5707ed28f522727c5b3c0aa8544440b04f" + integrity sha512-NVIY1W3ITDP5xQl50NgTKlZ0GrotKtLna08/uGY6ErQt6VEQZXla86x/CTddm5gZdcr+5GSsvMeTmWA5Ii6pkg== dependencies: regenerator-transform "^0.14.2" -"@babel/plugin-transform-reserved-words@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.13.tgz#7d9988d4f06e0fe697ea1d9803188aa18b472695" - integrity sha512-xhUPzDXxZN1QfiOy/I5tyye+TRz6lA7z6xaT4CLOjPRMVg1ldRf0LHw0TDBpYL4vG78556WuHdyO9oi5UmzZBg== +"@babel/plugin-transform-reserved-words@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.14.5.tgz#c44589b661cfdbef8d4300dcc7469dffa92f8304" + integrity sha512-cv4F2rv1nD4qdexOGsRQXJrOcyb5CrgjUH9PKrrtyhSDBNWGxd0UIitjyJiWagS+EbUGjG++22mGH1Pub8D6Vg== dependencies: - "@babel/helper-plugin-utils" "^7.12.13" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-runtime@^7.14.3": - version "7.14.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.14.3.tgz#1fd885a2d0de1d3c223795a4e9be72c2db4515cf" - integrity sha512-t960xbi8wpTFE623ef7sd+UpEC5T6EEguQlTBJDEO05+XwnIWVfuqLw/vdLWY6IdFmtZE+65CZAfByT39zRpkg== +"@babel/plugin-transform-runtime@^7.15.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.15.0.tgz#d3aa650d11678ca76ce294071fda53d7804183b3" + integrity sha512-sfHYkLGjhzWTq6xsuQ01oEsUYjkHRux9fW1iUA68dC7Qd8BS1Unq4aZ8itmQp95zUzIcyR2EbNMTzAicFj+guw== dependencies: - "@babel/helper-module-imports" "^7.13.12" - "@babel/helper-plugin-utils" "^7.13.0" - babel-plugin-polyfill-corejs2 "^0.2.0" - babel-plugin-polyfill-corejs3 "^0.2.0" - babel-plugin-polyfill-regenerator "^0.2.0" + "@babel/helper-module-imports" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + babel-plugin-polyfill-corejs2 "^0.2.2" + babel-plugin-polyfill-corejs3 "^0.2.2" + babel-plugin-polyfill-regenerator "^0.2.2" semver "^6.3.0" -"@babel/plugin-transform-shorthand-properties@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.13.tgz#db755732b70c539d504c6390d9ce90fe64aff7ad" - integrity sha512-xpL49pqPnLtf0tVluuqvzWIgLEhuPpZzvs2yabUHSKRNlN7ScYU7aMlmavOeyXJZKgZKQRBlh8rHbKiJDraTSw== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-spread@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.13.0.tgz#84887710e273c1815ace7ae459f6f42a5d31d5fd" - integrity sha512-V6vkiXijjzYeFmQTr3dBxPtZYLPcUfY34DebOU27jIl2M/Y8Egm52Hw82CSjjPqd54GTlJs5x+CR7HeNr24ckg== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" - -"@babel/plugin-transform-sticky-regex@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.13.tgz#760ffd936face73f860ae646fb86ee82f3d06d1f" - integrity sha512-Jc3JSaaWT8+fr7GRvQP02fKDsYk4K/lYwWq38r/UGfaxo89ajud321NH28KRQ7xy1Ybc0VUE5Pz8psjNNDUglg== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-template-literals@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.13.0.tgz#a36049127977ad94438dee7443598d1cefdf409d" - integrity sha512-d67umW6nlfmr1iehCcBv69eSUSySk1EsIS8aTDX4Xo9qajAh6mYtcl4kJrBkGXuxZPEgVr7RVfAvNW6YQkd4Mw== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - -"@babel/plugin-transform-typeof-symbol@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.13.tgz#785dd67a1f2ea579d9c2be722de8c84cb85f5a7f" - integrity sha512-eKv/LmUJpMnu4npgfvs3LiHhJua5fo/CysENxa45YCQXZwKnGCQKAg87bvoqSW1fFT+HA32l03Qxsm8ouTY3ZQ== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-unicode-escapes@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.13.tgz#840ced3b816d3b5127dd1d12dcedc5dead1a5e74" - integrity sha512-0bHEkdwJ/sN/ikBHfSmOXPypN/beiGqjo+o4/5K+vxEFNPRPdImhviPakMKG4x96l85emoa0Z6cDflsdBusZbw== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-unicode-regex@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.13.tgz#b52521685804e155b1202e83fc188d34bb70f5ac" - integrity sha512-mDRzSNY7/zopwisPZ5kM9XKCfhchqIYwAKRERtEnhYscZB79VRekuRSoYbN0+KVe3y8+q1h6A4svXtP7N+UoCA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.12.13" - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/preset-env@^7.14.2": - version "7.14.4" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.14.4.tgz#73fc3228c59727e5e974319156f304f0d6685a2d" - integrity sha512-GwMMsuAnDtULyOtuxHhzzuSRxFeP0aR/LNzrHRzP8y6AgDNgqnrfCCBm/1cRdTU75tRs28Eh76poHLcg9VF0LA== - dependencies: - "@babel/compat-data" "^7.14.4" - "@babel/helper-compilation-targets" "^7.14.4" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-validator-option" "^7.12.17" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.13.12" - "@babel/plugin-proposal-async-generator-functions" "^7.14.2" - "@babel/plugin-proposal-class-properties" "^7.13.0" - "@babel/plugin-proposal-class-static-block" "^7.14.3" - "@babel/plugin-proposal-dynamic-import" "^7.14.2" - "@babel/plugin-proposal-export-namespace-from" "^7.14.2" - "@babel/plugin-proposal-json-strings" "^7.14.2" - "@babel/plugin-proposal-logical-assignment-operators" "^7.14.2" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.14.2" - "@babel/plugin-proposal-numeric-separator" "^7.14.2" - "@babel/plugin-proposal-object-rest-spread" "^7.14.4" - "@babel/plugin-proposal-optional-catch-binding" "^7.14.2" - "@babel/plugin-proposal-optional-chaining" "^7.14.2" - "@babel/plugin-proposal-private-methods" "^7.13.0" - "@babel/plugin-proposal-private-property-in-object" "^7.14.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.12.13" +"@babel/plugin-transform-shorthand-properties@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.14.5.tgz#97f13855f1409338d8cadcbaca670ad79e091a58" + integrity sha512-xLucks6T1VmGsTB+GWK5Pl9Jl5+nRXD1uoFdA5TSO6xtiNjtXTjKkmPdFXVLGlK5A2/or/wQMKfmQ2Y0XJfn5g== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-spread@^7.14.6": + version "7.14.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.6.tgz#6bd40e57fe7de94aa904851963b5616652f73144" + integrity sha512-Zr0x0YroFJku7n7+/HH3A2eIrGMjbmAIbJSVv0IZ+t3U2WUQUA64S/oeied2e+MaGSjmt4alzBCsK9E8gh+fag== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" + +"@babel/plugin-transform-sticky-regex@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.14.5.tgz#5b617542675e8b7761294381f3c28c633f40aeb9" + integrity sha512-Z7F7GyvEMzIIbwnziAZmnSNpdijdr4dWt+FJNBnBLz5mwDFkqIXU9wmBcWWad3QeJF5hMTkRe4dAq2sUZiG+8A== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-template-literals@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.14.5.tgz#a5f2bc233937d8453885dc736bdd8d9ffabf3d93" + integrity sha512-22btZeURqiepOfuy/VkFr+zStqlujWaarpMErvay7goJS6BWwdd6BY9zQyDLDa4x2S3VugxFb162IZ4m/S/+Gg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-typeof-symbol@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.14.5.tgz#39af2739e989a2bd291bf6b53f16981423d457d4" + integrity sha512-lXzLD30ffCWseTbMQzrvDWqljvZlHkXU+CnseMhkMNqU1sASnCsz3tSzAaH3vCUXb9PHeUb90ZT1BdFTm1xxJw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-unicode-escapes@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.14.5.tgz#9d4bd2a681e3c5d7acf4f57fa9e51175d91d0c6b" + integrity sha512-crTo4jATEOjxj7bt9lbYXcBAM3LZaUrbP2uUdxb6WIorLmjNKSpHfIybgY4B8SRpbf8tEVIWH3Vtm7ayCrKocA== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-unicode-regex@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.14.5.tgz#4cd09b6c8425dd81255c7ceb3fb1836e7414382e" + integrity sha512-UygduJpC5kHeCiRw/xDVzC+wj8VaYSoKl5JNVmbP7MadpNinAm3SvZCxZ42H37KZBKztz46YC73i9yV34d0Tzw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/preset-env@^7.15.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.15.0.tgz#e2165bf16594c9c05e52517a194bf6187d6fe464" + integrity sha512-FhEpCNFCcWW3iZLg0L2NPE9UerdtsCR6ZcsGHUX6Om6kbCQeL5QZDqFDmeNHC6/fy6UH3jEge7K4qG5uC9In0Q== + dependencies: + "@babel/compat-data" "^7.15.0" + "@babel/helper-compilation-targets" "^7.15.0" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-validator-option" "^7.14.5" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.14.5" + "@babel/plugin-proposal-async-generator-functions" "^7.14.9" + "@babel/plugin-proposal-class-properties" "^7.14.5" + "@babel/plugin-proposal-class-static-block" "^7.14.5" + "@babel/plugin-proposal-dynamic-import" "^7.14.5" + "@babel/plugin-proposal-export-namespace-from" "^7.14.5" + "@babel/plugin-proposal-json-strings" "^7.14.5" + "@babel/plugin-proposal-logical-assignment-operators" "^7.14.5" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.14.5" + "@babel/plugin-proposal-numeric-separator" "^7.14.5" + "@babel/plugin-proposal-object-rest-spread" "^7.14.7" + "@babel/plugin-proposal-optional-catch-binding" "^7.14.5" + "@babel/plugin-proposal-optional-chaining" "^7.14.5" + "@babel/plugin-proposal-private-methods" "^7.14.5" + "@babel/plugin-proposal-private-property-in-object" "^7.14.5" + "@babel/plugin-proposal-unicode-property-regex" "^7.14.5" "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-class-properties" "^7.12.13" - "@babel/plugin-syntax-class-static-block" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.14.5" "@babel/plugin-syntax-dynamic-import" "^7.8.3" "@babel/plugin-syntax-export-namespace-from" "^7.8.3" "@babel/plugin-syntax-json-strings" "^7.8.3" @@ -789,46 +909,46 @@ "@babel/plugin-syntax-object-rest-spread" "^7.8.3" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-private-property-in-object" "^7.14.0" - "@babel/plugin-syntax-top-level-await" "^7.12.13" - "@babel/plugin-transform-arrow-functions" "^7.13.0" - "@babel/plugin-transform-async-to-generator" "^7.13.0" - "@babel/plugin-transform-block-scoped-functions" "^7.12.13" - "@babel/plugin-transform-block-scoping" "^7.14.4" - "@babel/plugin-transform-classes" "^7.14.4" - "@babel/plugin-transform-computed-properties" "^7.13.0" - "@babel/plugin-transform-destructuring" "^7.14.4" - "@babel/plugin-transform-dotall-regex" "^7.12.13" - "@babel/plugin-transform-duplicate-keys" "^7.12.13" - "@babel/plugin-transform-exponentiation-operator" "^7.12.13" - "@babel/plugin-transform-for-of" "^7.13.0" - "@babel/plugin-transform-function-name" "^7.12.13" - "@babel/plugin-transform-literals" "^7.12.13" - "@babel/plugin-transform-member-expression-literals" "^7.12.13" - "@babel/plugin-transform-modules-amd" "^7.14.2" - "@babel/plugin-transform-modules-commonjs" "^7.14.0" - "@babel/plugin-transform-modules-systemjs" "^7.13.8" - "@babel/plugin-transform-modules-umd" "^7.14.0" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.12.13" - "@babel/plugin-transform-new-target" "^7.12.13" - "@babel/plugin-transform-object-super" "^7.12.13" - "@babel/plugin-transform-parameters" "^7.14.2" - "@babel/plugin-transform-property-literals" "^7.12.13" - "@babel/plugin-transform-regenerator" "^7.13.15" - "@babel/plugin-transform-reserved-words" "^7.12.13" - "@babel/plugin-transform-shorthand-properties" "^7.12.13" - "@babel/plugin-transform-spread" "^7.13.0" - "@babel/plugin-transform-sticky-regex" "^7.12.13" - "@babel/plugin-transform-template-literals" "^7.13.0" - "@babel/plugin-transform-typeof-symbol" "^7.12.13" - "@babel/plugin-transform-unicode-escapes" "^7.12.13" - "@babel/plugin-transform-unicode-regex" "^7.12.13" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.14.5" + "@babel/plugin-transform-arrow-functions" "^7.14.5" + "@babel/plugin-transform-async-to-generator" "^7.14.5" + "@babel/plugin-transform-block-scoped-functions" "^7.14.5" + "@babel/plugin-transform-block-scoping" "^7.14.5" + "@babel/plugin-transform-classes" "^7.14.9" + "@babel/plugin-transform-computed-properties" "^7.14.5" + "@babel/plugin-transform-destructuring" "^7.14.7" + "@babel/plugin-transform-dotall-regex" "^7.14.5" + "@babel/plugin-transform-duplicate-keys" "^7.14.5" + "@babel/plugin-transform-exponentiation-operator" "^7.14.5" + "@babel/plugin-transform-for-of" "^7.14.5" + "@babel/plugin-transform-function-name" "^7.14.5" + "@babel/plugin-transform-literals" "^7.14.5" + "@babel/plugin-transform-member-expression-literals" "^7.14.5" + "@babel/plugin-transform-modules-amd" "^7.14.5" + "@babel/plugin-transform-modules-commonjs" "^7.15.0" + "@babel/plugin-transform-modules-systemjs" "^7.14.5" + "@babel/plugin-transform-modules-umd" "^7.14.5" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.14.9" + "@babel/plugin-transform-new-target" "^7.14.5" + "@babel/plugin-transform-object-super" "^7.14.5" + "@babel/plugin-transform-parameters" "^7.14.5" + "@babel/plugin-transform-property-literals" "^7.14.5" + "@babel/plugin-transform-regenerator" "^7.14.5" + "@babel/plugin-transform-reserved-words" "^7.14.5" + "@babel/plugin-transform-shorthand-properties" "^7.14.5" + "@babel/plugin-transform-spread" "^7.14.6" + "@babel/plugin-transform-sticky-regex" "^7.14.5" + "@babel/plugin-transform-template-literals" "^7.14.5" + "@babel/plugin-transform-typeof-symbol" "^7.14.5" + "@babel/plugin-transform-unicode-escapes" "^7.14.5" + "@babel/plugin-transform-unicode-regex" "^7.14.5" "@babel/preset-modules" "^0.1.4" - "@babel/types" "^7.14.4" - babel-plugin-polyfill-corejs2 "^0.2.0" - babel-plugin-polyfill-corejs3 "^0.2.0" - babel-plugin-polyfill-regenerator "^0.2.0" - core-js-compat "^3.9.0" + "@babel/types" "^7.15.0" + babel-plugin-polyfill-corejs2 "^0.2.2" + babel-plugin-polyfill-corejs3 "^0.2.2" + babel-plugin-polyfill-regenerator "^0.2.2" + core-js-compat "^3.16.0" semver "^6.3.0" "@babel/preset-modules@^0.1.4": @@ -842,10 +962,10 @@ "@babel/types" "^7.4.4" esutils "^2.0.2" -"@babel/runtime@^7.14.0", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4": - version "7.14.0" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.14.0.tgz#46794bc20b612c5f75e62dd071e24dfd95f1cbe6" - integrity sha512-JELkvo/DlpNdJ7dlyw/eY7E0suy5i5GQH+Vlxaq1nsNJ+H7f4Vtv3jMeCEgRhZZQFXTjldYfQgv2qmM6M1v5wA== +"@babel/runtime@^7.15.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4": + version "7.15.3" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.15.3.tgz#2e1c2880ca118e5b2f9988322bd8a7656a32502b" + integrity sha512-OvwMLqNXkCXSz1kSm58sEsNuhqOx/fKpnUnKnFB5v8uDda5bLNEHNgKPvhDN6IU0LDcnHQ90LlJ0Q6jnyBSIBA== dependencies: regenerator-runtime "^0.13.4" @@ -858,7 +978,16 @@ "@babel/parser" "^7.12.13" "@babel/types" "^7.12.13" -"@babel/traverse@^7.13.0", "@babel/traverse@^7.13.15", "@babel/traverse@^7.14.0", "@babel/traverse@^7.14.2": +"@babel/template@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.14.5.tgz#a9bc9d8b33354ff6e55a9c60d1109200a68974f4" + integrity sha512-6Z3Po85sfxRGachLULUhOmvAaOo7xCvqGQtxINai2mEGPFm6pQ4z5QInFnUrRpfoSV60BnjyF5F3c+15fxFV1g== + dependencies: + "@babel/code-frame" "^7.14.5" + "@babel/parser" "^7.14.5" + "@babel/types" "^7.14.5" + +"@babel/traverse@^7.13.0": version "7.14.2" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.14.2.tgz#9201a8d912723a831c2679c7ebbf2fe1416d765b" integrity sha512-TsdRgvBFHMyHOOzcP9S6QU0QQtjxlRpEYOy3mcCO5RgmC305ki42aSAmfZEMSSYBla2oZ9BMqYlncBaKmD/7iA== @@ -872,7 +1001,22 @@ debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.12.1", "@babel/types@^7.12.13", "@babel/types@^7.13.0", "@babel/types@^7.13.12", "@babel/types@^7.13.16", "@babel/types@^7.14.0", "@babel/types@^7.14.2", "@babel/types@^7.14.4", "@babel/types@^7.4.4": +"@babel/traverse@^7.14.5", "@babel/traverse@^7.15.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.15.0.tgz#4cca838fd1b2a03283c1f38e141f639d60b3fc98" + integrity sha512-392d8BN0C9eVxVWd8H6x9WfipgVH5IaIoLp23334Sc1vbKKWINnvwRpb4us0xtPaCumlwbTtIYNA0Dv/32sVFw== + dependencies: + "@babel/code-frame" "^7.14.5" + "@babel/generator" "^7.15.0" + "@babel/helper-function-name" "^7.14.5" + "@babel/helper-hoist-variables" "^7.14.5" + "@babel/helper-split-export-declaration" "^7.14.5" + "@babel/parser" "^7.15.0" + "@babel/types" "^7.15.0" + debug "^4.1.0" + globals "^11.1.0" + +"@babel/types@^7.12.13", "@babel/types@^7.13.12", "@babel/types@^7.14.2", "@babel/types@^7.4.4": version "7.14.4" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.14.4.tgz#bfd6980108168593b38b3eb48a24aa026b919bc0" integrity sha512-lCj4aIs0xUefJFQnwwQv2Bxg7Omd6bgquZ6LGC+gGMh6/s5qDVfjuCMlDmYQ15SLsWHd9n+X3E75lKIhl5Lkiw== @@ -880,6 +1024,14 @@ "@babel/helper-validator-identifier" "^7.14.0" to-fast-properties "^2.0.0" +"@babel/types@^7.14.5", "@babel/types@^7.14.8", "@babel/types@^7.15.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.15.0.tgz#61af11f2286c4e9c69ca8deb5f4375a73c72dcbd" + integrity sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ== + dependencies: + "@babel/helper-validator-identifier" "^7.14.9" + to-fast-properties "^2.0.0" + "@csstools/convert-colors@^1.4.0": version "1.4.0" resolved "https://registry.yarnpkg.com/@csstools/convert-colors/-/convert-colors-1.4.0.tgz#ad495dc41b12e75d588c6db8b9834f08fa131eb7" @@ -913,42 +1065,42 @@ resolved "https://registry.yarnpkg.com/@rails/ujs/-/ujs-6.1.4.tgz#093d5341595a02089ed309dec40f3c37da7b1b10" integrity sha512-O3lEzL5DYbxppMdsFSw36e4BHIlfz/xusynwXGv3l2lhSlvah41qviRpsoAlKXxl37nZAqK+UUF5cnGGK45Mfw== -"@rails/webpacker@^5.4.0": - version "5.4.0" - resolved "https://registry.yarnpkg.com/@rails/webpacker/-/webpacker-5.4.0.tgz#2c64a9ea7e85d2a33e50e86319fe6751df0c47e8" - integrity sha512-J973mzTUJbkbBu+sMwKgWRahoSfwdp5uHT80iDWr6hi8YAC7kj47HapQnn2SGPmv/onTT8WC3jFM62Hkh213yQ== +"@rails/webpacker@^5.4.2": + version "5.4.2" + resolved "https://registry.yarnpkg.com/@rails/webpacker/-/webpacker-5.4.2.tgz#efc94f7ff396529411bb02a9da964e269ff2edb0" + integrity sha512-35qQWK2HCHGx2TT0UH0vuo5PyXQaahB2KJeGWOVl0jDPfwbvC4yvTq3+0/lhD5uOJx2eraGLRaIN4umwFCsksw== dependencies: - "@babel/core" "^7.14.3" - "@babel/plugin-proposal-class-properties" "^7.13.0" - "@babel/plugin-proposal-object-rest-spread" "^7.14.2" + "@babel/core" "^7.15.0" + "@babel/plugin-proposal-class-properties" "^7.14.5" + "@babel/plugin-proposal-object-rest-spread" "^7.14.7" "@babel/plugin-syntax-dynamic-import" "^7.8.3" - "@babel/plugin-transform-destructuring" "^7.13.17" - "@babel/plugin-transform-regenerator" "^7.13.15" - "@babel/plugin-transform-runtime" "^7.14.3" - "@babel/preset-env" "^7.14.2" - "@babel/runtime" "^7.14.0" + "@babel/plugin-transform-destructuring" "^7.14.7" + "@babel/plugin-transform-regenerator" "^7.14.5" + "@babel/plugin-transform-runtime" "^7.15.0" + "@babel/preset-env" "^7.15.0" + "@babel/runtime" "^7.15.3" babel-loader "^8.2.2" babel-plugin-dynamic-import-node "^2.3.3" babel-plugin-macros "^2.8.0" case-sensitive-paths-webpack-plugin "^2.4.0" compression-webpack-plugin "^4.0.1" - core-js "^3.12.1" + core-js "^3.16.2" css-loader "^3.6.0" file-loader "^6.2.0" - flatted "^3.1.1" + flatted "^3.2.2" glob "^7.1.7" js-yaml "^3.14.1" mini-css-extract-plugin "^0.9.0" - optimize-css-assets-webpack-plugin "^5.0.6" + optimize-css-assets-webpack-plugin "^5.0.8" path-complete-extname "^1.0.0" - pnp-webpack-plugin "^1.6.4" + pnp-webpack-plugin "^1.7.0" postcss-flexbugs-fixes "^4.2.1" postcss-import "^12.0.1" postcss-loader "^3.0.0" postcss-preset-env "^6.7.0" postcss-safe-parser "^4.0.2" - regenerator-runtime "^0.13.7" - sass "^1.32.13" + regenerator-runtime "^0.13.9" + sass "^1.38.0" sass-loader "10.1.1" style-loader "^1.3.0" terser-webpack-plugin "^4.2.3" @@ -1497,7 +1649,7 @@ babel-plugin-macros@^2.8.0: cosmiconfig "^6.0.0" resolve "^1.12.0" -babel-plugin-polyfill-corejs2@^0.2.0: +babel-plugin-polyfill-corejs2@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.2.tgz#e9124785e6fd94f94b618a7954e5693053bf5327" integrity sha512-kISrENsJ0z5dNPq5eRvcctITNHYXWOA4DUZRFYCz3jYCcvTb/A546LIddmoGNMVYg2U38OyFeNosQwI9ENTqIQ== @@ -1506,15 +1658,15 @@ babel-plugin-polyfill-corejs2@^0.2.0: "@babel/helper-define-polyfill-provider" "^0.2.2" semver "^6.1.1" -babel-plugin-polyfill-corejs3@^0.2.0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.2.tgz#7424a1682ee44baec817327710b1b094e5f8f7f5" - integrity sha512-l1Cf8PKk12eEk5QP/NQ6TH8A1pee6wWDJ96WjxrMXFLHLOBFzYM4moG80HFgduVhTqAFez4alnZKEhP/bYHg0A== +babel-plugin-polyfill-corejs3@^0.2.2: + version "0.2.4" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.4.tgz#68cb81316b0e8d9d721a92e0009ec6ecd4cd2ca9" + integrity sha512-z3HnJE5TY/j4EFEa/qpQMSbcUJZ5JQi+3UFjXzn6pQCmIKc5Ug5j98SuYyH+m4xQnvKlMDIW4plLfgyVnd0IcQ== dependencies: "@babel/helper-define-polyfill-provider" "^0.2.2" - core-js-compat "^3.9.1" + core-js-compat "^3.14.0" -babel-plugin-polyfill-regenerator@^0.2.0: +babel-plugin-polyfill-regenerator@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.2.tgz#b310c8d642acada348c1fa3b3e6ce0e851bee077" integrity sha512-Goy5ghsc21HgPDFtzRkSirpZVW35meGoTmTOb2bxqdl60ghub4xOidgNTHaZfQ2FaxQsKmwvXtOAkcIS4SMBWg== @@ -1807,6 +1959,17 @@ browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.16.6, browserslist@^4 escalade "^3.1.1" node-releases "^1.1.71" +browserslist@^4.16.7: + version "4.16.8" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.8.tgz#cb868b0b554f137ba6e33de0ecff2eda403c4fb0" + integrity sha512-sc2m9ohR/49sWEbPj14ZSSZqp+kbi16aLao42Hmn3Z8FpjuMaq2xCA2l4zl9ITfyzvnvyE0hcg62YkIGKxgaNQ== + dependencies: + caniuse-lite "^1.0.30001251" + colorette "^1.3.0" + electron-to-chromium "^1.3.811" + escalade "^3.1.1" + node-releases "^1.1.75" + bs-custom-file-input@^1.3.4: version "1.3.4" resolved "https://registry.yarnpkg.com/bs-custom-file-input/-/bs-custom-file-input-1.3.4.tgz#c275cb8d4f1c02ba026324292509fa9a747dbda8" @@ -1972,6 +2135,11 @@ caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001109, can resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001235.tgz#ad5ca75bc5a1f7b12df79ad806d715a43a5ac4ed" integrity sha512-zWEwIVqnzPkSAXOUlQnPW2oKoYb2aLQ4Q5ejdjBcnH63rfypaW34CxaeBn1VMya2XaEU3P/R2qHpWyj+l0BT1A== +caniuse-lite@^1.0.30001251: + version "1.0.30001251" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001251.tgz#6853a606ec50893115db660f82c094d18f096d85" + integrity sha512-HOe1r+9VkU4TFmnU70z+r7OLmtR+/chB1rdcJUeQlAinjEeb0cKL20tlAtOagNZhbrtLnCvV19B4FmF1rgzl6A== + case-sensitive-paths-webpack-plugin@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/case-sensitive-paths-webpack-plugin/-/case-sensitive-paths-webpack-plugin-2.4.0.tgz#db64066c6422eed2e08cc14b986ca43796dbc6d4" @@ -2164,6 +2332,11 @@ colorette@^1.2.1, colorette@^1.2.2: resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== +colorette@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.3.0.tgz#ff45d2f0edb244069d3b772adeb04fed38d0a0af" + integrity sha512-ecORCqbSFP7Wm8Y6lyqMJjexBQqXSF7SSeaTyGGphogUjBlFP9m9o08wy86HL2uB7fMTxtOUzLMk7ogKcxMg1w== + commander@^2.20.0: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" @@ -2291,12 +2464,12 @@ copy-descriptor@^0.1.0: resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= -core-js-compat@^3.9.0, core-js-compat@^3.9.1: - version "3.14.0" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.14.0.tgz#b574dabf29184681d5b16357bd33d104df3d29a5" - integrity sha512-R4NS2eupxtiJU+VwgkF9WTpnSfZW4pogwKHd8bclWU2sp93Pr5S1uYJI84cMOubJRou7bcfL0vmwtLslWN5p3A== +core-js-compat@^3.14.0, core-js-compat@^3.16.0: + version "3.16.2" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.16.2.tgz#442ef1d933ca6fc80859bd5a1db7a3ba716aaf56" + integrity sha512-4lUshXtBXsdmp8cDWh6KKiHUg40AjiuPD3bOWkNVsr1xkAhpUqCjaZ8lB1bKx9Gb5fXcbRbFJ4f4qpRIRTuJqQ== dependencies: - browserslist "^4.16.6" + browserslist "^4.16.7" semver "7.0.0" core-js@^2.4.0: @@ -2304,10 +2477,10 @@ core-js@^2.4.0: resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== -core-js@^3.12.1: - version "3.14.0" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.14.0.tgz#62322b98c71cc2018b027971a69419e2425c2a6c" - integrity sha512-3s+ed8er9ahK+zJpp9ZtuVcDoFzHNiZsPbNAAE4KXgrRHbjSqqNN6xGSXq6bq7TZIbKj4NLrLb6bJ5i+vSVjHA== +core-js@^3.16.2: + version "3.16.2" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.16.2.tgz#3f485822889c7fc48ef463e35be5cc2a4a01a1f4" + integrity sha512-P0KPukO6OjMpjBtHSceAZEWlDD1M2Cpzpg6dBbrjFqFhBHe/BwhxaP820xKOjRn/lZRQirrCusIpLS/n2sgXLQ== core-util-is@~1.0.0: version "1.0.2" @@ -3081,6 +3254,11 @@ electron-to-chromium@^1.3.723: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.749.tgz#0ecebc529ceb49dd2a7c838ae425236644c3439a" integrity sha512-F+v2zxZgw/fMwPz/VUGIggG4ZndDsYy0vlpthi3tjmDZlcfbhN5mYW0evXUsBr2sUtuDANFtle410A9u/sd/4A== +electron-to-chromium@^1.3.811: + version "1.3.813" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.813.tgz#751a007d71c00faed8b5e9edaf3634c14b9c5a1f" + integrity sha512-YcSRImHt6JZZ2sSuQ4Bzajtk98igQ0iKkksqlzZLzbh4p0OIyJRSvUbsgqfcR8txdfsoYCc4ym306t4p2kP/aw== + elliptic@^6.5.3: version "6.5.4" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" @@ -3619,10 +3797,10 @@ flag-icon-css@^3.5.0: resolved "https://registry.yarnpkg.com/flag-icon-css/-/flag-icon-css-3.5.0.tgz#430747d5cb91e60babf85494de99173c16dc7cf2" integrity sha512-pgJnJLrtb0tcDgU1fzGaQXmR8h++nXvILJ+r5SmOXaaL/2pocunQo2a8TAXhjQnBpRLPtZ1KCz/TYpqeNuE2ew== -flatted@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.1.1.tgz#c4b489e80096d9df1dfc97c79871aea7c617c469" - integrity sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA== +flatted@^3.2.2: + version "3.2.2" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.2.tgz#64bfed5cb68fe3ca78b3eb214ad97b63bedce561" + integrity sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA== flatten@^1.0.2: version "1.0.3" @@ -5216,6 +5394,11 @@ node-releases@^1.1.71: resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.73.tgz#dd4e81ddd5277ff846b80b52bb40c49edf7a7b20" integrity sha512-uW7fodD6pyW2FZNZnp/Z3hvWKeEW1Y8R1+1CnErE8cXFXzl5blBOoVB41CvMer6P6Q0S5FXDwcHgFd1Wj0U9zg== +node-releases@^1.1.75: + version "1.1.75" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.75.tgz#6dd8c876b9897a1b8e5a02de26afa79bb54ebbfe" + integrity sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw== + normalize-path@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" @@ -5372,10 +5555,10 @@ opn@^5.5.0: dependencies: is-wsl "^1.1.0" -optimize-css-assets-webpack-plugin@^5.0.6: - version "5.0.6" - resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.6.tgz#abad0c6c11a632201794f75ddba3ce13e32ae80e" - integrity sha512-JAYw7WrIAIuHWoKeSBB3lJ6ZG9PSDK3JJduv/FMpIY060wvbA8Lqn/TCtxNGICNlg0X5AGshLzIhpYrkltdq+A== +optimize-css-assets-webpack-plugin@^5.0.8: + version "5.0.8" + resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.8.tgz#cbccdcf5a6ef61d4f8cc78cf083a67446e5f402a" + integrity sha512-mgFS1JdOtEGzD8l+EuISqL57cKO+We9GcoiQEmdCWRqqck+FGNmYJtx9qfAPzEz+lRrlThWMuGDaRkI/yWNx/Q== dependencies: cssnano "^4.1.10" last-call-webpack-plugin "^3.0.0" @@ -5669,10 +5852,10 @@ png-js@^1.0.0: resolved "https://registry.yarnpkg.com/png-js/-/png-js-1.0.0.tgz#e5484f1e8156996e383aceebb3789fd75df1874d" integrity sha512-k+YsbhpA9e+EFfKjTCH3VW6aoKlyNYI6NYdTfDL4CIvFnvsuO84ttonmZE7rc+v23SLTH8XX+5w/Ak9v0xGY4g== -pnp-webpack-plugin@^1.6.4: - version "1.6.4" - resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz#c9711ac4dc48a685dabafc86f8b6dd9f8df84149" - integrity sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg== +pnp-webpack-plugin@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.7.0.tgz#65741384f6d8056f36e2255a8d67ffc20866f5c9" + integrity sha512-2Rb3vm+EXble/sMXNSu6eoBx8e79gKqhNq9F5ZWW6ERNCTE/Q0wQNne5541tE5vKjfM8hpNCYL+LGc1YTfI0dg== dependencies: ts-pnp "^1.1.6" @@ -6575,10 +6758,10 @@ regenerator-runtime@^0.11.0: resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== -regenerator-runtime@^0.13.4, regenerator-runtime@^0.13.7: - version "0.13.7" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" - integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== +regenerator-runtime@^0.13.4, regenerator-runtime@^0.13.9: + version "0.13.9" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" + integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== regenerator-transform@^0.14.2: version "0.14.5" @@ -6789,10 +6972,10 @@ sass-loader@10.1.1: schema-utils "^3.0.0" semver "^7.3.2" -sass@^1.32.13: - version "1.34.1" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.34.1.tgz#30f45c606c483d47b634f1e7371e13ff773c96ef" - integrity sha512-scLA7EIZM+MmYlej6sdVr0HRbZX5caX5ofDT9asWnUJj21oqgsC+1LuNfm0eg+vM0fCTZHhwImTiCU0sx9h9CQ== +sass@^1.38.0: + version "1.38.0" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.38.0.tgz#2f3e60a1efdcdc910586fa79dc89d3399a145b4f" + integrity sha512-WBccZeMigAGKoI+NgD7Adh0ab1HUq+6BmyBUEaGxtErbUtWUevEbdgo5EZiJQofLUGcKtlNaO2IdN73AHEua5g== dependencies: chokidar ">=3.0.0 <4.0.0" From 064aae89ccd11f473605ca9f88053ec220574761 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 23 Aug 2021 12:08:02 +0800 Subject: [PATCH 0607/2165] Update config.yml --- .github/config.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/config.yml b/.github/config.yml index 7820822eb..49f3bcf05 100644 --- a/.github/config.yml +++ b/.github/config.yml @@ -1,6 +1,5 @@ newIssueWelcomeComment: > - 感谢你提交的问题或反馈,我会在有时间的时候回复在此期间你可以看看 - [之前被解决的反馈](https://github.com/tryzealot/zealot/issues?q=is%3Aissue+is%3Aclosed)说不定有你需要的答案。 + 感谢你提交的问题或反馈,我会在有时间的时候回复在此期间你可以看看[之前被解决的反馈](https://github.com/tryzealot/zealot/issues?q=is%3Aissue+is%3Aclosed)说不定有你需要的答案。 newPRWelcomeComment: > 感谢你提交的问题或反馈,我会在有时间的时候来审查代码。 @@ -8,4 +7,4 @@ newPRWelcomeComment: > firstPRMergeComment: > 感谢贡献 PR 来支持 Zealot! :tada: - ![Congrats!](https://media.giphy.com/media/Tugu78Y5vg0Ss/giphy.gif) \ No newline at end of file + ![Congrats!](https://media.giphy.com/media/Tugu78Y5vg0Ss/giphy.gif) From 27dd3aa8dcbb210140c6b31649cf0dbe7afb2801 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 24 Aug 2021 15:58:22 +0800 Subject: [PATCH 0608/2165] =?UTF-8?q?refactor:=20=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E6=A3=80=E6=9F=A5=20healthly=20=E9=BB=98=E8=AE=A4=20ip=20?= =?UTF-8?q?=E7=99=BD=E5=90=8D=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/initializers/health_check.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/initializers/health_check.rb b/config/initializers/health_check.rb index 3f3fb63d4..ec7948322 100644 --- a/config/initializers/health_check.rb +++ b/config/initializers/health_check.rb @@ -6,7 +6,7 @@ config.standard_checks = %w[database migrations cache] config.full_checks = %w[database migrations cache sidekiq-redis] - ip_whitelist = ENV['ZEALOT_HEALTH_CHECK_IP_WHITELIST'] + ip_whitelist = ENV['ZEALOT_HEALTH_CHECK_IP_WHITELIST'] || '127.0.0.1' ip_whitelist = ip_whitelist.split(',').select(&:present?).map(&:strip) if ip_whitelist.present? config.origin_ip_whitelist = ip_whitelist if ip_whitelist.present? && ip_whitelist.size > 0 end From 334c834eeabc3fc0fece3f9e5e68e7dafc8d4b03 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 25 Aug 2021 11:42:43 +0800 Subject: [PATCH 0609/2165] =?UTF-8?q?refactor:=20=E9=87=8D=E6=9E=84?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E9=A1=B5=E9=9D=A2=E7=9A=84=E6=96=87=E5=AD=97?= =?UTF-8?q?=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/application_controller.rb | 6 ++++-- app/views/errors/_400.html.slim | 6 ------ app/views/errors/_403.html.slim | 7 ------- app/views/errors/_404.html.slim | 9 --------- app/views/errors/_406.html.slim | 6 ------ app/views/errors/_410.html.slim | 6 ------ app/views/errors/_422.html.slim | 6 ------ app/views/errors/_500.html.slim | 6 ------ app/views/errors/_503.html.slim | 6 ------ app/views/errors/_body.slim | 16 ++++++++++++++++ app/views/errors/_head.html.slim | 6 ++++++ app/views/errors/index.html.slim | 7 ++----- 12 files changed, 28 insertions(+), 59 deletions(-) delete mode 100644 app/views/errors/_400.html.slim delete mode 100644 app/views/errors/_403.html.slim delete mode 100644 app/views/errors/_404.html.slim delete mode 100644 app/views/errors/_406.html.slim delete mode 100644 app/views/errors/_410.html.slim delete mode 100644 app/views/errors/_422.html.slim delete mode 100644 app/views/errors/_500.html.slim delete mode 100644 app/views/errors/_503.html.slim create mode 100644 app/views/errors/_body.slim create mode 100644 app/views/errors/_head.html.slim diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index af24fe10c..104ca1f0a 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -16,7 +16,7 @@ class ApplicationController < ActionController::Base rescue_from ActionController::RoutingError, with: :not_found rescue_from ActionController::InvalidAuthenticityToken, with: :unprocessable_entity rescue_from ActionController::UnknownFormat, with: :not_acceptable - rescue_from ActionController::ParameterMissing, with: :bad_request + rescue_from ActionController::ParameterMissing, CarrierWave::InvalidParameter, with: :bad_request rescue_from HTTP::Error, OpenSSL::SSL::SSLError, with: :internal_server_error rescue_from Pundit::NotAuthorizedError, with: :forbidden @@ -67,7 +67,7 @@ def bad_request(e) end def internal_server_error(e) - respond_with_error(500) + respond_with_error(500, e) end def service_unavailable(e) @@ -84,6 +84,8 @@ def respond_with_error(code, exception) @code = code @exception = exception @title = t("errors.#{@code}.title") + @message = exception.message if code < 500 + format.any { render 'errors/index', status: code, formats: [:html] } format.json { render json: { code: code, error: Rack::Utils::HTTP_STATUS_CODES[code] }, status: code } end diff --git a/app/views/errors/_400.html.slim b/app/views/errors/_400.html.slim deleted file mode 100644 index 5c47ecef2..000000000 --- a/app/views/errors/_400.html.slim +++ /dev/null @@ -1,6 +0,0 @@ -h3 - i.fa.fa-warning.text-warning = "#{@code} #{@title}" - -- if content.present? - p - = content \ No newline at end of file diff --git a/app/views/errors/_403.html.slim b/app/views/errors/_403.html.slim deleted file mode 100644 index 0b919b7dd..000000000 --- a/app/views/errors/_403.html.slim +++ /dev/null @@ -1,7 +0,0 @@ -h3 - i.fa.fa-warning.text-warning = "#{@code} #{@title}" - -p - | 请返回 - = link_to '上级页面', session[:return_to] || request.referer - | 看看。 diff --git a/app/views/errors/_404.html.slim b/app/views/errors/_404.html.slim deleted file mode 100644 index e34d8d3ea..000000000 --- a/app/views/errors/_404.html.slim +++ /dev/null @@ -1,9 +0,0 @@ - -h3 - i.fa.fa-warning.text-red = "#{@code} #{@title}" - -- if content.present? - p - = "#{content},请返回" - = link_to '控制台', root_path - | 看看。 diff --git a/app/views/errors/_406.html.slim b/app/views/errors/_406.html.slim deleted file mode 100644 index 5c47ecef2..000000000 --- a/app/views/errors/_406.html.slim +++ /dev/null @@ -1,6 +0,0 @@ -h3 - i.fa.fa-warning.text-warning = "#{@code} #{@title}" - -- if content.present? - p - = content \ No newline at end of file diff --git a/app/views/errors/_410.html.slim b/app/views/errors/_410.html.slim deleted file mode 100644 index 5c47ecef2..000000000 --- a/app/views/errors/_410.html.slim +++ /dev/null @@ -1,6 +0,0 @@ -h3 - i.fa.fa-warning.text-warning = "#{@code} #{@title}" - -- if content.present? - p - = content \ No newline at end of file diff --git a/app/views/errors/_422.html.slim b/app/views/errors/_422.html.slim deleted file mode 100644 index 5c47ecef2..000000000 --- a/app/views/errors/_422.html.slim +++ /dev/null @@ -1,6 +0,0 @@ -h3 - i.fa.fa-warning.text-warning = "#{@code} #{@title}" - -- if content.present? - p - = content \ No newline at end of file diff --git a/app/views/errors/_500.html.slim b/app/views/errors/_500.html.slim deleted file mode 100644 index 5c47ecef2..000000000 --- a/app/views/errors/_500.html.slim +++ /dev/null @@ -1,6 +0,0 @@ -h3 - i.fa.fa-warning.text-warning = "#{@code} #{@title}" - -- if content.present? - p - = content \ No newline at end of file diff --git a/app/views/errors/_503.html.slim b/app/views/errors/_503.html.slim deleted file mode 100644 index 5c47ecef2..000000000 --- a/app/views/errors/_503.html.slim +++ /dev/null @@ -1,6 +0,0 @@ -h3 - i.fa.fa-warning.text-warning = "#{@code} #{@title}" - -- if content.present? - p - = content \ No newline at end of file diff --git a/app/views/errors/_body.slim b/app/views/errors/_body.slim new file mode 100644 index 000000000..248372a4d --- /dev/null +++ b/app/views/errors/_body.slim @@ -0,0 +1,16 @@ +ruby: + content = t("errors.#{@code}.content") + content = nil if content.include?('translation_missing') + +- if content.present? + p = content + +- if @message.present? + p = @message + +p + | 请返回 + = link_to '上级页面', session[:return_to] || request.referer + | 或 + = link_to '控制台', root_path + | 看看 diff --git a/app/views/errors/_head.html.slim b/app/views/errors/_head.html.slim new file mode 100644 index 000000000..a39b2d9ae --- /dev/null +++ b/app/views/errors/_head.html.slim @@ -0,0 +1,6 @@ +ruby: + color = @code == 404 ? 'text-red' : 'text-warning' + +h3 + i.fa.fa-warning class="#{color}" + = "#{@code} #{@title}" \ No newline at end of file diff --git a/app/views/errors/index.html.slim b/app/views/errors/index.html.slim index 6fe733934..844709863 100644 --- a/app/views/errors/index.html.slim +++ b/app/views/errors/index.html.slim @@ -1,12 +1,9 @@ - content_for :title do = @title -ruby: - content = t("errors.#{@code}.content") - content = nil if content.include?('translation_missing') - .row .error-page.col-md-12 - == render "errors/#{@code}", content: content + == render 'errors/head' + == render "errors/body" == render 'errors/debug' \ No newline at end of file From 781bb6c647cf97a9aac9d663027acbe95b2632a7 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 25 Aug 2021 11:44:50 +0800 Subject: [PATCH 0610/2165] =?UTF-8?q?fix:=20=E6=8D=95=E8=8E=B7=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E4=B8=8A=E4=BC=A0=E5=BA=94=E7=94=A8=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E7=9A=84=E6=AD=A3=E7=A1=AE=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/api/base_controller.rb | 73 +++++++++------- app/controllers/application_controller.rb | 16 ++-- app/models/debug_file.rb | 2 +- app/models/release.rb | 87 +++++++++++--------- app/uploaders/app_file_uploader.rb | 12 +++ app/views/debug_files/_debug_file.html.slim | 2 +- app/views/releases/body/_metadata.html.slim | 2 +- config/initializers/simple_form.rb | 4 +- config/initializers/simple_form_bootstrap.rb | 10 +-- config/locales/zealot/zh-CN.yml | 12 +-- 10 files changed, 126 insertions(+), 94 deletions(-) diff --git a/app/controllers/api/base_controller.rb b/app/controllers/api/base_controller.rb index 7d2d48013..da872fb8d 100644 --- a/app/controllers/api/base_controller.rb +++ b/app/controllers/api/base_controller.rb @@ -7,10 +7,12 @@ class Api::BaseController < ActionController::API rescue_from TypeError, with: :render_unmatched_bundle_id_serror rescue_from ActiveRecord::RecordNotFound, with: :render_not_found_entity_response - rescue_from ActiveRecord::RecordInvalid, with: :render_unprocessable_entity_response + rescue_from ActiveRecord::RecordInvalid, with: :record_invalid rescue_from ActionCable::Connection::Authorization::UnauthorizedError, with: :render_unauthorized_user_key rescue_from ArgumentError, NoMethodError, PG::Error, with: :render_internal_server_error - rescue_from ActionController::ParameterMissing, with: :render_missing_params_error + rescue_from ActionController::ParameterMissing, CarrierWave::InvalidParameter, AppInfo::UnkownFileTypeError, with: :render_missing_params_error + rescue_from ActionController::UnknownFormat, with: :not_acceptable + rescue_from ActionController::InvalidAuthenticityToken, with: :unprocessable_entity before_action :record_page_view @@ -24,50 +26,57 @@ def validate_channel_key raise ActionCable::Connection::Authorization::UnauthorizedError, '无效的应用渠道 Key' unless @channel end - def render_not_found_entity_response(exception) - logger_error exception - render json: { - error: exception.message - }, status: :not_found + def record_invalid(e) + respond_with_error( + :unprocessable_entity, e, + error: '参数错误,请检查请求的参数是否正确', + entry: exception.record.errors + ) end - def render_missing_params_error(exception) - logger_error exception - render json: { - error: exception.message - }, status: :unprocessable_entity + def not_acceptable(e) + respond_with_error(:not_acceptable, e) end - def render_unmatched_bundle_id_serror(exception) - logger_error exception - render json: { - error: exception.message, - }, status: :unauthorized + def unprocessable_entity(e) + respond_with_error(:unprocessable_entity, e) end - def render_unauthorized_user_key(exception) - logger_error exception - render json: { - error: exception.message - }, status: :unprocessable_entity + def render_not_found_entity_response(e) + respond_with_error(:not_found, e) end - def render_unprocessable_entity_response(exception) - render json: { - error: '参数错误,请检查请求的参数是否正确', - entry: exception.record.errors - }, status: :unprocessable_entity + def render_missing_params_error(e) + respond_with_error(:unprocessable_entity, e) + end + + def render_unmatched_bundle_id_serror(e) + respond_with_error(:unauthorized, e) + end + + def render_unauthorized_user_key(e) + respond_with_error(:unprocessable_entity, e) end - def render_internal_server_error(exception) - logger_error exception - render json: { - error: exception.message - }, status: :internal_server_error + def render_internal_server_error(e) + respond_with_error(:internal_server_error, e) end private + def respond_with_error(code, e, **body) + logger_error e + body[:error] ||= e.message + if Rails.env.development? + body[:debug] = { + class: e.class.name, + backtrace: e.backtrace + } + end + + render json: body, status: code + end + def record_page_view ActiveAnalytics.record_request(request) end diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 104ca1f0a..152492d4d 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -43,35 +43,35 @@ def record_page_view end def forbidden(e) - respond_with_error(403, e) + respond_with_error(:forbidden, e) end def not_found(e) - respond_with_error(404, e) + respond_with_error(:not_found, e) end def gone(e) - respond_with_error(410, e) + respond_with_error(:gone, e) end def unprocessable_entity(e) - respond_with_error(422, e) + respond_with_error(:unprocessable_entity, e) end def not_acceptable(e) - respond_with_error(406, e) + respond_with_error(:not_acceptable, e) end def bad_request(e) - respond_with_error(400, e) + respond_with_error(:bad_request, e) end def internal_server_error(e) - respond_with_error(500, e) + respond_with_error(:internal_server_error, e) end def service_unavailable(e) - respond_with_error(503, e) + respond_with_error(:service_unavailable, e) end def respond_with_error(code, exception) diff --git a/app/models/debug_file.rb b/app/models/debug_file.rb index 78c31c2f3..fd2e9103e 100644 --- a/app/models/debug_file.rb +++ b/app/models/debug_file.rb @@ -20,7 +20,7 @@ def download_filename "#{app.name}_#{device_type}_#{release_version}_#{build_version}_#{file.file.filename}" end - def has_file? + def file? return false if file.blank? File.exist?(file.path) diff --git a/app/models/release.rb b/app/models/release.rb index c21d991b3..ee82e3647 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -33,55 +33,62 @@ def self.version_by_channel(channel_slug, release_id) channel.releases.find(release_id) end - # 上传pp + # 上传 app def self.upload_file(params, parser = nil) logger.debug "upload file params: #{params}" + file = params[:file].path + return if file.blank? + create(params) do |release| - if release.file.present? - begin - parser ||= AppInfo.parse(release.file.path) - release.source ||= 'Web' - release.name = parser.name - release.bundle_id = parser.bundle_id - release.release_version = parser.release_version - release.build_version = parser.build_version - release.device = parser.device_type - - if parser.os == AppInfo::Platform::IOS - release.release_type ||= parser.release_type - - icon_file = parser.icons.last.try(:[], :uncrushed_file) || parser.icons.last.try(:[], :file) - release.icon = icon_file if icon_file - else - # 处理 Android anydpi 自适应图标 - icon_file = parser.icons - .reject { |f| File.extname(f[:file]) == '.xml' } - .last - .try(:[], :file) - release.icon = File.open(icon_file, 'rb') if icon_file - end + rescuing_app_parse_errors do + parser ||= AppInfo.parse(file) + + release.source ||= 'Web' + release.name = parser.name + release.bundle_id = parser.bundle_id + release.release_version = parser.release_version + release.build_version = parser.build_version + release.device = parser.device_type + + if parser.os == AppInfo::Platform::IOS + release.release_type ||= parser.release_type + + icon_file = parser.icons.last.try(:[], :uncrushed_file) || parser.icons.last.try(:[], :file) + release.icon = icon_file if icon_file + else + # 处理 Android anydpi 自适应图标 + icon_file = parser.icons + .reject { |f| File.extname(f[:file]) == '.xml' } + .last + .try(:[], :file) + release.icon = File.open(icon_file, 'rb') if icon_file + end - # iOS 且是 AdHoc 尝试解析 UDID 列表 - if parser.os == AppInfo::Platform::IOS && - parser.release_type == AppInfo::IPA::ExportType::ADHOC && - parser.devices.present? + # iOS 且是 AdHoc 尝试解析 UDID 列表 + if parser.os == AppInfo::Platform::IOS && + parser.release_type == AppInfo::IPA::ExportType::ADHOC && + parser.devices.present? - parser.devices.each do |udid| - release.devices << Device.find_or_create_by(udid: udid) - end + parser.devices.each do |udid| + release.devices << Device.find_or_create_by(udid: udid) end - rescue AppInfo::UnkownFileTypeError - release.errors.add(:file, '上传的应用无法正确识别') - ensure - parser.clear! end end end end - def perform_teardown_job(user_id) - TeardownJob.perform_later(id, user_id) + def self.rescuing_app_parse_errors + yield + rescue AppInfo::UnkownFileTypeError + raise CarrierWave::InvalidParameter, '上传应用的文件类型不支持' + rescue NoMethodError + raise ActionController::InvalidAuthenticityToken, '上传应用解析异常,请确保应用是支持的文件类型且没有安全加固处理' + rescue => e + raise ActionController::InvalidAuthenticityToken, "上传应用解析发现未知异常,原始错误:#{e.message}" + ensure + parser&.clear! end + private_methods :rescuing_app_parse_errors def app_name "#{app.name} #{scheme.name} #{channel.name}" @@ -105,7 +112,7 @@ def changelog_list(use_default_changelog = true) changelog end - def has_file? + def file? return false if file.blank? File.exist?(file.path) @@ -178,6 +185,10 @@ def bundle_id_matched errors.add(:file, message) end + def perform_teardown_job(user_id) + TeardownJob.perform_later(id, user_id) + end + private def auto_release_version diff --git a/app/uploaders/app_file_uploader.rb b/app/uploaders/app_file_uploader.rb index c50da21f2..ac76daf90 100644 --- a/app/uploaders/app_file_uploader.rb +++ b/app/uploaders/app_file_uploader.rb @@ -1,6 +1,10 @@ # frozen_string_literal: true class AppFileUploader < ApplicationUploader + process :validate_app_type + + SUPPORT_APP = %i[apk ipa] + def store_dir "#{base_store_dir}/apps/a#{model.app.id}/r#{model.id}/binary" end @@ -8,4 +12,12 @@ def store_dir def extension_allowlist %w[ipa apk] end + + private + + def validate_app_type + return if SUPPORT_APP.include?(AppInfo.file_type(file.path)) + + raise CarrierWave::InvalidParameter, "无法正常解析应用的类型,目前仅支持 iOS、Android 和使用 Zip 压缩的 macOS App" + end end diff --git a/app/views/debug_files/_debug_file.html.slim b/app/views/debug_files/_debug_file.html.slim index f594e007a..41656ad13 100644 --- a/app/views/debug_files/_debug_file.html.slim +++ b/app/views/debug_files/_debug_file.html.slim @@ -24,7 +24,7 @@ ruby: = debug_file.build_version .debug-file-section-size - - if debug_file.has_file? + - if debug_file.file? a.btn.btn-icon.btn-sm.btn-success.btn-flat href="#{debug_file.file_url}" target="_blank" i.fas.fa-download | 下载 ( diff --git a/app/views/releases/body/_metadata.html.slim b/app/views/releases/body/_metadata.html.slim index 56a69bb53..7c6e1219c 100644 --- a/app/views/releases/body/_metadata.html.slim +++ b/app/views/releases/body/_metadata.html.slim @@ -69,7 +69,7 @@ .app-actions - unless wechat? - - if @release.has_file? + - if @release.file? == render 'releases/body/install_cert' - if detect_device(@release.channel.device_type) == :ios diff --git a/config/initializers/simple_form.rb b/config/initializers/simple_form.rb index a13e7ad7c..5f84a9e00 100644 --- a/config/initializers/simple_form.rb +++ b/config/initializers/simple_form.rb @@ -1,8 +1,8 @@ # frozen_string_literal: true - +# # Uncomment this and change the path if necessary to include your own # components. -# See https://github.com/plataformatec/simple_form#custom-components to know +# See https://github.com/heartcombo/simple_form#custom-components to know # more about custom components. # Dir[Rails.root.join('lib/components/**/*.rb')].each { |f| require f } # diff --git a/config/initializers/simple_form_bootstrap.rb b/config/initializers/simple_form_bootstrap.rb index 1413705b0..f85ace95f 100644 --- a/config/initializers/simple_form_bootstrap.rb +++ b/config/initializers/simple_form_bootstrap.rb @@ -2,13 +2,13 @@ # Please do not make direct changes to this file! # This generator is maintained by the community around simple_form-bootstrap: -# https://github.com/rafaelfranca/simple_form-bootstrap +# https://github.com/heartcombo/simple_form-bootstrap # All future development, tests, and organization should happen there. -# Background history: https://github.com/plataformatec/simple_form/issues/1561 +# Background history: https://github.com/heartcombo/simple_form/issues/1561 # Uncomment this and change the path if necessary to include your own # components. -# See https://github.com/plataformatec/simple_form#custom-components +# See https://github.com/heartcombo/simple_form#custom-components # to know more about custom components. # Dir[Rails.root.join('lib/components/**/*.rb')].each { |f| require f } @@ -21,7 +21,7 @@ config.boolean_label_class = 'form-check-label' # How the label text should be generated altogether with the required text. - config.label_text = ->(label, required, _) { "#{label} #{required}" } + config.label_text = lambda { |label, required, explicit_label| "#{label} #{required}" } # Define the way to render check boxes / radio buttons with labels. config.boolean_style = :inline @@ -357,7 +357,7 @@ end # Input Group - custom component - # see example app and config at https://github.com/rafaelfranca/simple_form-bootstrap + # see example app and config at https://github.com/heartcombo/simple_form-bootstrap # config.wrappers :input_group, tag: 'div', class: 'form-group', error_class: 'form-group-invalid', valid_class: 'form-group-valid' do |b| # b.use :html5 # b.use :placeholder diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index 1d9057e7c..ce069bc2c 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -48,26 +48,26 @@ zh-CN: x_years: " %{count} 年" errors: '400': - title: 您提交的请求无效或格式不正确。 + title: 您提交的请求无效或格式不正确 '403': - title: 你没有访问这个页面的权限。 + title: 你没有访问这个页面的权限 '404': title: 找不到你想要的内容 content: 当前访问的页面不存在或者已经被移动 '406': - title: 页面无法处理请求。 + title: 页面无法处理请求 '410': - title: 你所要访问的页面此处已不存在。 + title: 你所要访问的页面此处已不存在 '422': content: 无法确认登录信息。你是不是屏蔽了 Cookie? title: 无法确认登录信息 '429': title: 请求被限制 '500': - content: 抱歉,我们的后台出错了。 + content: 抱歉,我们的后台出错了 title: 这个页面有问题 '503': - title: 服务暂时不可用,无法请求该页面。 + title: 服务暂时不可用,无法请求该页面 messages: mini_magick_processing_error: "无法使用 MiniMagick 处理,请检查文件是否是标准图片格式,原始错误: %{e}" activerecord: From 23022048737a92d21a40f1f8080f4e7cc6af6a0f Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 25 Aug 2021 13:26:50 +0800 Subject: [PATCH 0611/2165] =?UTF-8?q?chore:=20=E5=8D=87=E7=BA=A7=20sentry?= =?UTF-8?q?=20=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile.lock | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 222cd2306..8be54611a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -133,7 +133,7 @@ GEM erubi (1.10.0) et-orbi (1.2.4) tzinfo - faraday (1.5.1) + faraday (1.7.0) faraday-em_http (~> 1.0) faraday-em_synchrony (~> 1.0) faraday-excon (~> 1.1) @@ -141,6 +141,7 @@ GEM faraday-net_http (~> 1.0) faraday-net_http_persistent (~> 1.1) faraday-patron (~> 1.0) + faraday-rack (~> 1.0) multipart-post (>= 1.2, < 3) ruby2_keywords (>= 0.0.4) faraday-em_http (1.0.0) @@ -150,6 +151,7 @@ GEM faraday-net_http (1.0.1) faraday-net_http_persistent (1.2.0) faraday-patron (1.0.0) + faraday-rack (1.0.0) ffi (1.15.3) ffi-compiler (1.0.1) ffi (>= 1.0.0) @@ -352,7 +354,7 @@ GEM rails-dom-testing (2.0.3) activesupport (>= 4.2.0) nokogiri (>= 1.6) - rails-html-sanitizer (1.4.1) + rails-html-sanitizer (1.4.2) loofah (~> 2.3) rails-i18n (6.0.0) i18n (>= 0.7, < 2) @@ -409,21 +411,21 @@ GEM rufus-scheduler (3.7.0) fugit (~> 1.1, >= 1.1.6) semantic_range (3.0.0) - sentry-rails (4.6.4) + sentry-rails (4.6.5) railties (>= 5.0) sentry-ruby-core (~> 4.6.0) - sentry-ruby (4.6.4) + sentry-ruby (4.6.5) concurrent-ruby (~> 1.0, >= 1.0.2) faraday (>= 1.0) - sentry-ruby-core (= 4.6.4) - sentry-ruby-core (4.6.4) + sentry-ruby-core (= 4.6.5) + sentry-ruby-core (4.6.5) concurrent-ruby faraday - sentry-sidekiq (4.6.4) + sentry-sidekiq (4.6.5) sentry-ruby-core (~> 4.6.0) sidekiq (>= 3.0) shellany (0.0.1) - sidekiq (6.2.1) + sidekiq (6.2.2) connection_pool (>= 2.2.2) rack (~> 2.0) redis (>= 4.2.0) @@ -572,4 +574,4 @@ DEPENDENCIES webpacker (~> 5.4) BUNDLED WITH - 2.2.20 + 2.2.25 From b4a76834155c59219e7d2016f23a57af9667f356 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 25 Aug 2021 14:00:09 +0800 Subject: [PATCH 0612/2165] =?UTF-8?q?fix:=20=E5=88=9B=E5=BB=BA=E5=BA=94?= =?UTF-8?q?=E7=94=A8=E7=B1=BB=E5=9E=8B=E5=87=BA=E9=94=99=E5=88=A4=E6=96=AD?= =?UTF-8?q?=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/schemes_controller.rb | 4 ++-- app/helpers/application_helper.rb | 13 +++++++++++++ app/views/apps/_form.html.slim | 9 ++++----- app/views/schemes/_form.html.slim | 6 +++--- 4 files changed, 22 insertions(+), 10 deletions(-) diff --git a/app/controllers/schemes_controller.rb b/app/controllers/schemes_controller.rb index 70f4dd4d2..643903832 100644 --- a/app/controllers/schemes_controller.rb +++ b/app/controllers/schemes_controller.rb @@ -26,14 +26,14 @@ def new end def create - channel = scheme_params.delete(:channel) + @channel = scheme_params.delete(:channel) @scheme = Scheme.new(scheme_params) authorize @scheme @scheme.app = @app return render :new unless @scheme.save - create_channel_by(@scheme, channel) + create_channel_by(@scheme, @channel) redirect_to app_path(@app), notice: '类型已经创建成功!' end diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index be746eda5..70b633a26 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -1,6 +1,19 @@ # frozen_string_literal: true module ApplicationHelper + def new_or_create_route? + new_route? || create_route? + end + + def new_route? + params[:action] == 'new' + end + + def create_route? + params[:action] == 'create' + end + + def user_signed_in_or_guest_mode? user_signed_in? || (Setting.guest_mode && !devise_page?) end diff --git a/app/views/apps/_form.html.slim b/app/views/apps/_form.html.slim index 6d8c3fbd6..92b9c4646 100644 --- a/app/views/apps/_form.html.slim +++ b/app/views/apps/_form.html.slim @@ -1,5 +1,5 @@ ruby: - head_title, back_url = if params[:action] == 'new' || params[:action] == 'create' + head_title, back_url = if new_or_create_route? ['应用管理', apps_path] else ['返回应用', app_path(@app)] @@ -19,12 +19,11 @@ ruby: = f.error_notification = f.input :name, required: true - - if params[:action] == 'new' + - if new_route? = f.simple_fields_for :schemes_attributes do |n| = n.input :name, as: :check_boxes, collection: default_schemes, checked: default_schemes.last - = f.input :channel, collection: default_channels, label_method: :name, value_method: :value, selected: 0 - - elsif params[:action] == 'create' + - elsif create_route? = f.simple_fields_for :schemes_attributes do |n| = n.input :name, as: :check_boxes, collection: default_schemes, checked: @schemes[:name].compact - = f.input :channel, collection: default_channels, label_method: :name, value_method: :value, selected: @channel + = f.input :channel, collection: default_channels, label_method: :name, value_method: :value, selected: @channel || 0 = f.button :submit diff --git a/app/views/schemes/_form.html.slim b/app/views/schemes/_form.html.slim index dabda7a29..4089119e3 100644 --- a/app/views/schemes/_form.html.slim +++ b/app/views/schemes/_form.html.slim @@ -1,5 +1,5 @@ ruby: - form_url = params[:action] == 'new' ? app_schemes_path : app_scheme_path(@scheme.app, @scheme) + form_url = new_or_create_route? ? app_schemes_path : app_scheme_path(@scheme.app, @scheme) .col-md-12 .card @@ -15,6 +15,6 @@ ruby: = f.error_notification = f.input :name, required: true - - if params[:action] == 'new' - = f.input :channel, collection: default_channels, label_method: :name, value_method: :value, selected: 0 + - if new_or_create_route? + = f.input :channel, collection: default_channels, label_method: :name, value_method: :value, selected: @channel || 0 = f.button :submit From b86088dfe63e3a50fe98e9df7c303bd201f1c952 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 25 Aug 2021 14:25:35 +0800 Subject: [PATCH 0613/2165] =?UTF-8?q?fix:=20web=20=E7=9A=84=E4=BF=9D?= =?UTF-8?q?=E5=AD=98=E9=9C=80=E8=A6=81=E6=98=8E=E7=A1=AE=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/application_controller.rb | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 152492d4d..104ca1f0a 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -43,35 +43,35 @@ def record_page_view end def forbidden(e) - respond_with_error(:forbidden, e) + respond_with_error(403, e) end def not_found(e) - respond_with_error(:not_found, e) + respond_with_error(404, e) end def gone(e) - respond_with_error(:gone, e) + respond_with_error(410, e) end def unprocessable_entity(e) - respond_with_error(:unprocessable_entity, e) + respond_with_error(422, e) end def not_acceptable(e) - respond_with_error(:not_acceptable, e) + respond_with_error(406, e) end def bad_request(e) - respond_with_error(:bad_request, e) + respond_with_error(400, e) end def internal_server_error(e) - respond_with_error(:internal_server_error, e) + respond_with_error(500, e) end def service_unavailable(e) - respond_with_error(:service_unavailable, e) + respond_with_error(503, e) end def respond_with_error(code, exception) From 01cf8f582008d7b872c6f87ff3317223b9da9e71 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 25 Aug 2021 14:26:55 +0800 Subject: [PATCH 0614/2165] =?UTF-8?q?fix:=20=E8=A1=A5=E5=85=85=E5=9C=A8?= =?UTF-8?q?=E5=BA=94=E7=94=A8=E5=88=A0=E9=99=A4=E5=85=A8=E9=83=A8=E6=B8=A0?= =?UTF-8?q?=E9=81=93=E5=90=8E=E7=82=B9=E5=87=BB=E8=AF=A6=E6=83=85=E6=8A=A5?= =?UTF-8?q?=E9=94=99=E7=9A=84=E4=B8=80=E4=B8=AA=E5=BC=82=E5=B8=B8=E6=83=85?= =?UTF-8?q?=E5=86=B5=E7=9A=84=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/schemes_controller.rb | 2 ++ config/locales/simple_form/simple_form.zh-CN.yml | 10 +++++----- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/app/controllers/schemes_controller.rb b/app/controllers/schemes_controller.rb index 643903832..15c262e1e 100644 --- a/app/controllers/schemes_controller.rb +++ b/app/controllers/schemes_controller.rb @@ -16,6 +16,8 @@ def show @channel = @scheme.latest_channel end + raise ActiveRecord::RecordNotFound unless @channel + redirect_to channel_path(@channel) end diff --git a/config/locales/simple_form/simple_form.zh-CN.yml b/config/locales/simple_form/simple_form.zh-CN.yml index b2e1adf56..77a179ddc 100644 --- a/config/locales/simple_form/simple_form.zh-CN.yml +++ b/config/locales/simple_form/simple_form.zh-CN.yml @@ -62,11 +62,11 @@ zh-CN: app: name: '起一个响亮亮的名称吧' schemes: - name: '勾选预设的应用类型,后续还可以自己修改和添加' + name: '应用在功能、面向受众划分的类型' scheme: name: '比如开发版、内测版、线上版' channel: - name: '可以和应用平台同名,Android 的可以是各个渠道包的名称' + name: '推荐按照应用平台区分不同渠道,单平台应用也可以是分发市场的名称' device_type: '应用设备类型' bundle_id: '校验应用 bundle id(package name),为空或 * 为不校验' git_url: 'Git 项目地址,填写 Github 或 Gitlab 或其他自建地址' @@ -75,13 +75,13 @@ zh-CN: release: file: 仅支持 .ipa 和 .apk 文件 release_type: 一般来说取值位 debug、adhoc、release - branch: 通常情况是 master 或 develop + branch: 通常情况是 main 或 develop ci_url: Jenkins、Gitlab CI 等 web_hook: - body: '这里可以自定义 JSON 消息体,以满足不同第三方服务消息体的要求,不填写会使用默认结构' + body: '自定义的 JSON 消息体以满足不同第三方服务消息体的要求,不填写会使用默认结构' debug_file: device_type: '应用设备类型' - file: '无论是 iOS 还是 Android 都必须使用 zip 文件' + file: '必须使用 zip 文件压缩后的调试文件' placeholders: release: From e26e0b5ccd31c568d768b7ceffbf1b78b561da66 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 25 Aug 2021 17:46:41 +0800 Subject: [PATCH 0615/2165] =?UTF-8?q?feat:=20=E7=8E=AF=E5=A2=83=E5=8F=98?= =?UTF-8?q?=E9=87=8F=E6=B6=89=E5=8F=8A=E9=9A=90=E7=A7=81=E7=9A=84=E5=81=9A?= =?UTF-8?q?=E9=83=A8=E5=88=86=E5=8A=A0=E5=AF=86=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/system_info_controller.rb | 22 ++++++++++++++++++- .../locales/simple_form/simple_form.zh-CN.yml | 14 +++++++----- 2 files changed, 29 insertions(+), 7 deletions(-) diff --git a/app/controllers/admin/system_info_controller.rb b/app/controllers/admin/system_info_controller.rb index f68bd7b92..04e446c7f 100644 --- a/app/controllers/admin/system_info_controller.rb +++ b/app/controllers/admin/system_info_controller.rb @@ -61,7 +61,7 @@ def set_memory def set_env @env = ENV.each_with_object({}) do |(key, value), obj| - obj[key] = value + obj[key] = secure_key?(key) ? filtered_token(value) : value end.sort end @@ -88,4 +88,24 @@ def set_disks end end end + + def secure_key?(key) + Rails.application + .config + .filter_parameters + .select { |p| key.downcase.include?(p.to_s) } + .size + .positive? + end + + def filtered_token(chars) + chars = chars.to_s + return '*' * chars.size if chars.size < 4 + + average = chars.size / 4 + prefix = chars[0..average - 1] + hidden = '*' * (average * 2) + suffix = chars[(prefix.size + average * 2)..-1] + "#{prefix}#{hidden}#{suffix}" + end end diff --git a/config/locales/simple_form/simple_form.zh-CN.yml b/config/locales/simple_form/simple_form.zh-CN.yml index 77a179ddc..13fa0f5eb 100644 --- a/config/locales/simple_form/simple_form.zh-CN.yml +++ b/config/locales/simple_form/simple_form.zh-CN.yml @@ -38,9 +38,9 @@ zh-CN: release: file: 应用文件 changelog: 变更日志 - release_type: 发布类型 - branch: 分支名称 - git_commit: Git 最后提交 Commit Hash + release_type: 打包类型 + branch: Git 分支名称 + git_commit: Git 最后提交 SHA ci_url: CI URL web_hook: url: 'URL' @@ -73,10 +73,12 @@ zh-CN: slug: 'URL 的唯一标识' password: '设置后对非登录用户会要求输入密码' release: - file: 仅支持 .ipa 和 .apk 文件 - release_type: 一般来说取值位 debug、adhoc、release + file: 支持 iOS.ipa、Android.apk 以及 macOS.app.zip 文件 + changelog: 这个应用包含了什么新特性,修复了什么问题等 + release_type: iOS 的 debug、adhoc、release;Android 的 debug、release 等 branch: 通常情况是 main 或 develop - ci_url: Jenkins、Gitlab CI 等 + git_commit: 通常是 40 位长度的哈希值 + ci_url: Jenkins、Gitlab CI 具体构建的地址 web_hook: body: '自定义的 JSON 消息体以满足不同第三方服务消息体的要求,不填写会使用默认结构' debug_file: From 9f9a887dc6670b0e04549c46ca89e07e5514e811 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 26 Aug 2021 10:39:24 +0800 Subject: [PATCH 0616/2165] =?UTF-8?q?fix:=20=E4=B8=8A=E4=BC=A0=E5=BA=94?= =?UTF-8?q?=E7=94=A8=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/release.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/models/release.rb b/app/models/release.rb index ee82e3647..0577d8d38 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -73,6 +73,8 @@ def self.upload_file(params, parser = nil) release.devices << Device.find_or_create_by(udid: udid) end end + ensure + parser&.clear! end end end @@ -85,8 +87,6 @@ def self.rescuing_app_parse_errors raise ActionController::InvalidAuthenticityToken, '上传应用解析异常,请确保应用是支持的文件类型且没有安全加固处理' rescue => e raise ActionController::InvalidAuthenticityToken, "上传应用解析发现未知异常,原始错误:#{e.message}" - ensure - parser&.clear! end private_methods :rescuing_app_parse_errors From e0bccf27deffec9d5ae8662720803089b83af113 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 26 Aug 2021 16:39:03 +0800 Subject: [PATCH 0617/2165] =?UTF-8?q?fix:=20=E8=AE=BE=E7=BD=AE=E5=AF=86?= =?UTF-8?q?=E7=A0=81=E8=AE=BF=E9=97=AE=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit issue#564 --- app/controllers/releases_controller.rb | 2 +- app/helpers/apps_helper.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/controllers/releases_controller.rb b/app/controllers/releases_controller.rb index 2ee0ad012..fbc5cc3a8 100644 --- a/app/controllers/releases_controller.rb +++ b/app/controllers/releases_controller.rb @@ -43,7 +43,7 @@ def destroy def auth if @channel.password == params[:password] - cookies[app_release_auth_key(@release)] = @channel.encode_password + cookies["app_release_#{release.id}_auth"] = @channel.encode_password redirect_to channel_release_path(@channel, @release) else flash[:danger] = '密码错误,请重新输入' diff --git a/app/helpers/apps_helper.rb b/app/helpers/apps_helper.rb index d3349e36f..1a4ca1588 100644 --- a/app/helpers/apps_helper.rb +++ b/app/helpers/apps_helper.rb @@ -42,7 +42,7 @@ def matched_password?(release) # no password euqal matched password return true if password.blank? - cookies[app_release_auth_key(release)] == channel.encode_password + cookies["app_release_#{release.id}_auth"] == channel.encode_password end def git_commit_url(git_url, commit, commit_length = 8) From 7bd559fa0c08440d2b89038c1add5876ea32169c Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 26 Aug 2021 17:41:18 +0800 Subject: [PATCH 0618/2165] =?UTF-8?q?refactor:=20=E9=80=9A=E8=BF=87?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E4=B8=8A=E4=BC=A0=E8=87=AA=E5=AE=9A=E4=B9=89?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E6=94=AF=E6=8C=81=20fontawesome=20=E7=9A=84?= =?UTF-8?q?=E5=9B=BE=E6=A0=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/releases/body/_metadata.html.slim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/releases/body/_metadata.html.slim b/app/views/releases/body/_metadata.html.slim index 7c6e1219c..a1c6b85f1 100644 --- a/app/views/releases/body/_metadata.html.slim +++ b/app/views/releases/body/_metadata.html.slim @@ -54,7 +54,7 @@ = git_commit_url(@release.channel.git_url, @release.git_commit) - @release.custom_fields.each do |field| li title="#{field['name']}" - i.fas class="fa-#{field['icon'] || 'hashtag'}" + i class="#{field['icon'] || 'fas fa-hashtag'}" = field['value'] li title="上传来源" i.fas.fa-compass From 8c336e5733702afd66e06e9588d8d1302eac225d Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 26 Aug 2021 17:44:46 +0800 Subject: [PATCH 0619/2165] =?UTF-8?q?feat:=20=E4=B8=8A=E4=BC=A0=E5=BA=94?= =?UTF-8?q?=E7=94=A8=E6=88=90=E5=8A=9F=E5=90=8E=E8=BF=94=E5=9B=9E=E8=87=AA?= =?UTF-8?q?=E5=AE=9A=E4=B9=89=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/serializers/api/upload_app_serializer.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/serializers/api/upload_app_serializer.rb b/app/serializers/api/upload_app_serializer.rb index 5a4b95614..35221e95c 100644 --- a/app/serializers/api/upload_app_serializer.rb +++ b/app/serializers/api/upload_app_serializer.rb @@ -5,7 +5,7 @@ class Api::UploadAppSerializer < ApplicationSerializer attributes :id, :version, :app_name, :bundle_id, :release_version, :build_version, :source, :branch, :git_commit, :ci_url, :size, :icon_url, :release_url, :install_url, :qrcode_url, :changelog_list, - :created_at + :custom_fields, :created_at belongs_to :app belongs_to :scheme From 8b75ba3bdb6f55349189cd2fdc86f5a473effb5b Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 26 Aug 2021 18:14:50 +0800 Subject: [PATCH 0620/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E5=91=98=E7=BC=96=E8=BE=91=E4=BF=9D=E5=AD=98=E9=94=99?= =?UTF-8?q?=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/admin/users_controller.rb | 3 +-- app/views/admin/users/edit.html.slim | 6 +++--- config/initializers/devise.rb | 2 +- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/app/controllers/admin/users_controller.rb b/app/controllers/admin/users_controller.rb index 7fdddd21f..691cbf255 100644 --- a/app/controllers/admin/users_controller.rb +++ b/app/controllers/admin/users_controller.rb @@ -26,7 +26,6 @@ def create def edit @title = @user.email - @token = @user.confirmation_token end def update @@ -36,7 +35,7 @@ def update # 没有设置密码的情况下不更新该字段 params = user_params.dup - params = params.delete(:password) if params[:password].blank? + params.delete(:password) if params[:password].blank? return render :edit unless @user.update(params) redirect_to admin_users_url, notice: '用户已经更新' diff --git a/app/views/admin/users/edit.html.slim b/app/views/admin/users/edit.html.slim index 148824611..7db2ef4ec 100644 --- a/app/views/admin/users/edit.html.slim +++ b/app/views/admin/users/edit.html.slim @@ -6,13 +6,13 @@ .row .col-md-12 - - if @token + - unless @user.confirmed? .card .card-header.card-border h3.card-title 激活链接 .card-body - input.form-control value="#{confirmation_url(@user, confirmation_token: @token)}" disabled=true - small.form-text.text-muted 若发送邮件设置错误或邀请用户没有收到激活邮件,可通过本链接激活。 + input.form-control value="#{confirmation_url(@user, confirmation_token: @user.confirmation_token)}" disabled=true + small.form-text.text-muted 若邀请用户没有收到激活邮件或者没有正确配置发送邮件设置,可通过本链接激活邮箱。 .card .card-header.card-border h3.card-title 用户信息 diff --git a/config/initializers/devise.rb b/config/initializers/devise.rb index 55e4c9b7b..b26e4a115 100644 --- a/config/initializers/devise.rb +++ b/config/initializers/devise.rb @@ -136,7 +136,7 @@ # initial account confirmation) to be applied. Requires additional unconfirmed_email # db field (see migrations). Until confirmed, new email is stored in # unconfirmed_email column, and copied to email column on successful confirmation. - config.reconfirmable = true + config.reconfirmable = false # Defines which key will be used when confirming an account # config.confirmation_keys = [:email] From 9ce3f469ff8dbd2d2c4c2840b6b7174d28d586f0 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 24 Aug 2021 16:02:47 +0800 Subject: [PATCH 0621/2165] =?UTF-8?q?feat:=20=E6=9B=B4=E6=96=B0=E6=94=AF?= =?UTF-8?q?=E6=8C=81=20macOS=20=E8=A7=A3=E6=9E=90=E7=9A=84=20app-info=20?= =?UTF-8?q?=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 2 +- Gemfile.lock | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index 78d5ba85f..45fb4e146 100644 --- a/Gemfile +++ b/Gemfile @@ -80,7 +80,7 @@ gem 'turbolinks', '~> 5' gem 'webpacker', '~> 5.4' # 用于解析 ipa 和 apk 包 -gem 'app-info', '~> 2.5.4' +gem 'app-info', '~> 2.6.0' # Mobile config gem 'rails-settings-cached', '~> 2.7.1' diff --git a/Gemfile.lock b/Gemfile.lock index 8be54611a..2617effa1 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -73,8 +73,9 @@ GEM zeitwerk (~> 2.3) addressable (2.8.0) public_suffix (>= 2.0.2, < 5.0) - app-info (2.5.4) + app-info (2.6.0) CFPropertyList (>= 2.3.4, < 3.1.0) + icns (~> 0.2.0) image_size (>= 1.5, < 2.2) ruby-macho (>= 1.4, < 3) ruby_android (~> 0.7.7) @@ -210,10 +211,11 @@ GEM http-form_data (2.3.0) i18n (1.8.10) concurrent-ruby (~> 1.0) + icns (0.2.0) image_processing (1.12.1) mini_magick (>= 4.9.5, < 5) ruby-vips (>= 2.0.17, < 3) - image_size (2.1.1) + image_size (2.1.2) interception (0.5) jb (0.8.0) jenkins_api_client (1.5.3) @@ -505,7 +507,7 @@ DEPENDENCIES active_analytics active_model_serializers (~> 0.10.12) activejob-status - app-info (~> 2.5.4) + app-info (~> 2.6.0) awesome_print better_errors binding_of_caller From 8d2c74aeae28406b5ddb5037b176daefaab4315c Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 25 Aug 2021 16:31:19 +0800 Subject: [PATCH 0622/2165] =?UTF-8?q?feat:=20=E5=BA=94=E7=94=A8=E5=88=9B?= =?UTF-8?q?=E5=BB=BA=E6=94=AF=E6=8C=81=20macOS=20=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E4=B8=94=E5=BA=94=E7=94=A8=E7=B1=BB=E5=9E=8B=E4=BD=9C=E4=B8=BA?= =?UTF-8?q?=E5=8F=AF=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/admin/settings_controller.rb | 2 +- app/controllers/application_controller.rb | 2 +- app/controllers/apps_controller.rb | 37 ++++++++----------- app/controllers/schemes_controller.rb | 8 ++-- app/helpers/application_helper.rb | 37 ++++++++++++------- app/helpers/apps_helper.rb | 13 +------ app/models/channel.rb | 2 +- app/models/setting.rb | 5 +++ app/views/admin/settings/_form.html.slim | 4 +- app/views/admin/settings/index.html.slim | 13 ++++++- app/views/apps/_form.html.slim | 13 +++---- app/views/channels/_metadata.html.slim | 2 +- app/views/schemes/_form.html.slim | 2 +- .../locales/simple_form/simple_form.zh-CN.yml | 3 +- config/locales/zealot/zh-CN.yml | 3 ++ 15 files changed, 81 insertions(+), 65 deletions(-) diff --git a/app/controllers/admin/settings_controller.rb b/app/controllers/admin/settings_controller.rb index 0efb9362f..57c97c56a 100644 --- a/app/controllers/admin/settings_controller.rb +++ b/app/controllers/admin/settings_controller.rb @@ -14,7 +14,7 @@ def edit def update new_value = setting_param[:value] - new_value = JSON.parse(new_value) if setting_param[:type] == 'hash' + new_value = JSON.parse(new_value) if setting_param[:type] == 'hash' || setting_param[:type] == 'array' if @setting.value != new_value @setting.value = new_value return render :edit unless @setting.save diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 104ca1f0a..19fd05b55 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -16,7 +16,7 @@ class ApplicationController < ActionController::Base rescue_from ActionController::RoutingError, with: :not_found rescue_from ActionController::InvalidAuthenticityToken, with: :unprocessable_entity rescue_from ActionController::UnknownFormat, with: :not_acceptable - rescue_from ActionController::ParameterMissing, CarrierWave::InvalidParameter, with: :bad_request + rescue_from ActionController::ParameterMissing, CarrierWave::InvalidParameter, JSON::ParserError, with: :bad_request rescue_from HTTP::Error, OpenSSL::SSL::SSLError, with: :internal_server_error rescue_from Pundit::NotAuthorizedError, with: :forbidden diff --git a/app/controllers/apps_controller.rb b/app/controllers/apps_controller.rb index 00df44197..84e9b69a2 100644 --- a/app/controllers/apps_controller.rb +++ b/app/controllers/apps_controller.rb @@ -3,6 +3,8 @@ class AppsController < ApplicationController before_action :authenticate_user! unless Setting.guest_mode before_action :set_app, only: %i[show edit update destroy] + before_action :process_scheme_and_channel, only: %i[create] + def index @title = '应用管理' @@ -27,15 +29,12 @@ def edit end def create - @schemes = app_params.delete(:schemes_attributes) - @channel = app_params.delete(:channel) - @app = App.new(app_params) authorize @app if @app.save @app.users << current_user - create_schemes_by(@app, @schemes, @channel) + app_create_schemes_and_channels redirect_to apps_path, notice: "#{@app.name}应用已经创建成功!" else render :new @@ -63,37 +62,33 @@ def destory_app_data FileUtils.rm_rf(app_binary_path) if Dir.exist?(app_binary_path) end - def create_schemes_by(app, schemes, channel) - schemes[:name].each do |scheme_name| - next if scheme_name.blank? + def app_create_schemes_and_channels + @schemes.each do |scheme_name| + scheme = @app.schemes.create(name: scheme_name) + next if @channels.empty? - scheme = app.schemes.create name: scheme_name - next unless channels = channel_value(channel) - - channels.each do |channel_name| + @channels.each do |channel_name| scheme.channels.create name: channel_name, device_type: channel_name.downcase.to_sym end end end - def channel_value(platform) - case platform - when 'ios' then ['iOS'] - when 'android' then ['Android'] - when 'both' then ['Android', 'iOS'] - end - end - def set_app @app = App.find(params[:id]) authorize @app end + def process_scheme_and_channel + @schemes = app_params.delete(:scheme_attributes)[:name].reject(&:empty?) + @channels = app_params.delete(:channel_attributes)[:name].reject(&:empty?) + end + def app_params @app_params ||= params.require(:app) .permit( - :name, :channel, - schemes_attributes: { name: [] } + :name, + scheme_attributes: { name: [] }, + channel_attributes: { name: [] }, ) end diff --git a/app/controllers/schemes_controller.rb b/app/controllers/schemes_controller.rb index 15c262e1e..0702fa605 100644 --- a/app/controllers/schemes_controller.rb +++ b/app/controllers/schemes_controller.rb @@ -16,9 +16,11 @@ def show @channel = @scheme.latest_channel end - raise ActiveRecord::RecordNotFound unless @channel - - redirect_to channel_path(@channel) + if @channel + redirect_to channel_path(@channel) + else + redirect_to new_app_scheme_channel_path(@scheme.app, @scheme), alert: '没有发现已创建的渠道,请新建一个' + end end def new diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 70b633a26..3ba78aaa2 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -69,26 +69,35 @@ def device_name(device_type) 'Universal' when 'android' 'Android' + when 'macos' + 'macOS' else device_type end end def device_icon(device_type) - icon = case device_type.downcase - when 'ios', 'iphone', 'ipad', 'mac', 'ipa' - 'fa-apple' - when 'android', 'apk' - 'fa-android' - else - 'fa-adn' - end - + icon, _ = device_style(device_type) tag.i(class: "fab #{icon}") end def timeline_app_icon(device_type) - device_type == 'android' ? 'fa-android bg-green' : 'fa-apple bg-black' + device_style(device_type).join(' ') + end + + def device_style(device_type) + case device_type.downcase + when 'ios' + ['fa-apple', 'bg-black'] + when 'android' + ['fa-android', 'bg-green'] + when 'windows' + ['fa-windows', 'bg-warning'] + when 'macos' + ['fa-app-store', 'bg-blue'] + else + ['fa-adn', 'bg-lightblue'] + end end # 获取浏览器 user agent @@ -98,7 +107,7 @@ def wechat? user_agent.include?('MicroMessenger') end - def mac? + def mac?(source = nil) # Intel: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36 # Arm M1: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36 source ||= user_agent @@ -119,10 +128,12 @@ def android?(source = nil) # 检查设备 def detect_device(device) # FIXME: iPad 和 M1 芯片设备都是桌面的 UA,因此这里暂时改为 iOS 设备或文件是 iOS 设备文件 - if ios?(user_agent) || ios?(device) + if ios? || ios?(device) :ios - elsif android?(user_agent) && android?(device) + elsif android? && android?(device) :android + # elsif mac? && mac?(device) + # :macos else :unkown end diff --git a/app/helpers/apps_helper.rb b/app/helpers/apps_helper.rb index 1a4ca1588..49808d5c3 100644 --- a/app/helpers/apps_helper.rb +++ b/app/helpers/apps_helper.rb @@ -1,21 +1,12 @@ # frozen_string_literal: true module AppsHelper - SelectOption = Struct.new(:name, :value) - - DEFAULT_SCHEMES = %w[测试版 内测版 产品版] - DEFAULT_CHANNELS = [ - SelectOption.new('Android 和 iOS', 'both'), - SelectOption.new('Android', 'android'), - SelectOption.new('iOS', 'ios') - ] - def default_schemes - DEFAULT_SCHEMES + Setting.schemes end def default_channels - DEFAULT_CHANNELS + Channel.device_types.values end def app_icon(release, options = {}) diff --git a/app/models/channel.rb b/app/models/channel.rb index 3a697811c..8777886de 100755 --- a/app/models/channel.rb +++ b/app/models/channel.rb @@ -9,7 +9,7 @@ class Channel < ApplicationRecord has_many :releases, dependent: :destroy has_and_belongs_to_many :web_hooks, dependent: :destroy - enum device_type: { ios: 'iOS', android: 'Android' } + enum device_type: { ios: 'iOS', android: 'Android', macos: 'macOS' } delegate :count, to: :enabled_web_hooks, prefix: true delegate :count, to: :available_web_hooks, prefix: true diff --git a/app/models/setting.rb b/app/models/setting.rb index f5d4abd55..d575cebe0 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -14,6 +14,11 @@ class Setting < RailsSettings::Base field :admin_password, default: (ENV['ZEALOT_ADMIN_PASSWORD'] || 'ze@l0t'), type: :string, readonly: true end + # 预值 + scope :presets do + field :schemes, default: %w[测试版 内测版 产品版], type: :array, display: true + end + # 模式开关 scope :switch_mode do field :registrations_mode, default: (ENV['ZEALOT_REGISTER_ENABLED'] || 'true'), type: :boolean, display: true diff --git a/app/views/admin/settings/_form.html.slim b/app/views/admin/settings/_form.html.slim index 814a0c409..2b6e88689 100644 --- a/app/views/admin/settings/_form.html.slim +++ b/app/views/admin/settings/_form.html.slim @@ -23,8 +23,8 @@ ruby: li = error.message - if type == :boolean = f.input :value, label: '开启', as: :boolean, checked: type - - elsif type == :hash - = f.text_area :value, value: JSON.pretty_generate(value), class: 'form-control', rows: 15 + - elsif type == :hash || type == :array + = f.text_area :value, value: JSON.pretty_generate(value), class: 'form-control', rows: 15, hint: '按照 JSON 标准格式编辑,否则会保存失败' - else = f.text_area :value, value: value, class: 'form-control', rows: 15 diff --git a/app/views/admin/settings/index.html.slim b/app/views/admin/settings/index.html.slim index 68fad63b2..8563ee98d 100644 --- a/app/views/admin/settings/index.html.slim +++ b/app/views/admin/settings/index.html.slim @@ -15,7 +15,18 @@ form.form-horizontal - keys.each do |key, params| ruby: value = params[:value] - display_value = value.is_a?(Hash) ? JSON.pretty_generate(value) : ((value != false && value.blank?) ? t('admin.settings.empty_value') : value.to_s) + display_value = case value + when Hash + JSON.pretty_generate(value) + when Array + value.join(', ') + when TrueClass + '开启' + when FalseClass + '关闭' + else + ((value != false && value.blank?) ? t('admin.settings.empty_value') : value.to_s) + end dl.system-info dt = t("admin.settings.#{key}") dd diff --git a/app/views/apps/_form.html.slim b/app/views/apps/_form.html.slim index 92b9c4646..8f66c15a0 100644 --- a/app/views/apps/_form.html.slim +++ b/app/views/apps/_form.html.slim @@ -1,4 +1,6 @@ ruby: + checked_scheme = @schemes ? @schemes[:name] : 0 + checked_channel = @channels ? @channels[:name] : 0 head_title, back_url = if new_or_create_route? ['应用管理', apps_path] else @@ -19,11 +21,8 @@ ruby: = f.error_notification = f.input :name, required: true - - if new_route? - = f.simple_fields_for :schemes_attributes do |n| - = n.input :name, as: :check_boxes, collection: default_schemes, checked: default_schemes.last - - elsif create_route? - = f.simple_fields_for :schemes_attributes do |n| - = n.input :name, as: :check_boxes, collection: default_schemes, checked: @schemes[:name].compact - = f.input :channel, collection: default_channels, label_method: :name, value_method: :value, selected: @channel || 0 + = f.simple_fields_for :scheme_attributes do |n| + = n.input :name, as: :check_boxes, collection: default_schemes, checked: checked_scheme + = f.simple_fields_for :channel_attributes do |n| + = n.input :name, as: :check_boxes, collection: default_channels, checked: checked_channel = f.button :submit diff --git a/app/views/channels/_metadata.html.slim b/app/views/channels/_metadata.html.slim index 4f6f136db..9f6a007ef 100644 --- a/app/views/channels/_metadata.html.slim +++ b/app/views/channels/_metadata.html.slim @@ -3,7 +3,7 @@ h3.card-title 渠道信息 .card-body.p-0.pt-3 p.d-flex.flex-column.border-bottom.pl-3.pb-3.pt-3 - span.font-weight-bold = @channel.device_type.capitalize + span.font-weight-bold = device_name(@channel.device_type) span.text-muted 设备类型 p.d-flex.flex-column.border-bottom.pl-3.pb-3 span.font-weight-bold = @channel.slug diff --git a/app/views/schemes/_form.html.slim b/app/views/schemes/_form.html.slim index 4089119e3..98b358bb3 100644 --- a/app/views/schemes/_form.html.slim +++ b/app/views/schemes/_form.html.slim @@ -16,5 +16,5 @@ ruby: = f.input :name, required: true - if new_or_create_route? - = f.input :channel, collection: default_channels, label_method: :name, value_method: :value, selected: @channel || 0 + = f.input :channel, collection: default_channels, selected: @channel || 0 = f.button :submit diff --git a/config/locales/simple_form/simple_form.zh-CN.yml b/config/locales/simple_form/simple_form.zh-CN.yml index 13fa0f5eb..168126671 100644 --- a/config/locales/simple_form/simple_form.zh-CN.yml +++ b/config/locales/simple_form/simple_form.zh-CN.yml @@ -60,11 +60,10 @@ zh-CN: defaults: channel: '应用会使用的平台' app: - name: '起一个响亮亮的名称吧' schemes: name: '应用在功能、面向受众划分的类型' scheme: - name: '比如开发版、内测版、线上版' + name: '应用在功能、面向受众划分的类型' channel: name: '推荐按照应用平台区分不同渠道,单平台应用也可以是分发市场的名称' device_type: '应用设备类型' diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index ce069bc2c..672fae6cd 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -6,6 +6,9 @@ zh-CN: site_https: 站点启用 HTTPS site_domain: 站点域名 + presets: 默认值 + schemes: 应用的类型名称 + switch_mode: 模式开关 registrations_mode: 注册模式 guest_mode: 开启游客模式 From 9c95202fe505009924fc0e599b31abae543e1371 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 25 Aug 2021 17:48:30 +0800 Subject: [PATCH 0623/2165] =?UTF-8?q?feat:=20=E6=94=AF=E6=8C=81=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0=E5=92=8C=E8=A7=A3=E6=9E=90=20macOS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/application_controller.rb | 4 +- app/models/release.rb | 48 +++++++++++++++-------- app/uploaders/app_file_uploader.rb | 4 +- 3 files changed, 35 insertions(+), 21 deletions(-) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 19fd05b55..8e99e9c8f 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -15,8 +15,8 @@ class ApplicationController < ActionController::Base rescue_from ActiveRecord::RecordNotFound, with: :not_found rescue_from ActionController::RoutingError, with: :not_found rescue_from ActionController::InvalidAuthenticityToken, with: :unprocessable_entity - rescue_from ActionController::UnknownFormat, with: :not_acceptable - rescue_from ActionController::ParameterMissing, CarrierWave::InvalidParameter, JSON::ParserError, with: :bad_request + rescue_from ActionController::UnknownFormat, AppInfo::Error, with: :not_acceptable + rescue_from ActionController::ParameterMissing, CarrierWave::InvalidParameter, JSON::ParserError, AppInfo::UnkownFileTypeError, with: :bad_request rescue_from HTTP::Error, OpenSSL::SSL::SSLError, with: :internal_server_error rescue_from Pundit::NotAuthorizedError, with: :forbidden diff --git a/app/models/release.rb b/app/models/release.rb index 0577d8d38..f45f6fc5c 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -49,20 +49,10 @@ def self.upload_file(params, parser = nil) release.release_version = parser.release_version release.build_version = parser.build_version release.device = parser.device_type + release.release_type ||= parser.release_type if parser.respond_to?(:release_type) - if parser.os == AppInfo::Platform::IOS - release.release_type ||= parser.release_type - - icon_file = parser.icons.last.try(:[], :uncrushed_file) || parser.icons.last.try(:[], :file) - release.icon = icon_file if icon_file - else - # 处理 Android anydpi 自适应图标 - icon_file = parser.icons - .reject { |f| File.extname(f[:file]) == '.xml' } - .last - .try(:[], :file) - release.icon = File.open(icon_file, 'rb') if icon_file - end + icon_file = fetch_icon(parser) + release.icon = icon_file if icon_file # iOS 且是 AdHoc 尝试解析 UDID 列表 if parser.os == AppInfo::Platform::IOS && @@ -79,14 +69,38 @@ def self.upload_file(params, parser = nil) end end + def self.fetch_icon(parser) + logger.tagged("AppInfo") do + logger.debug parser.icons + end + + case parser.os + when AppInfo::Platform::IOS + parser.icons.last.try(:[], :uncrushed_file) + when AppInfo::Platform::MACOS + parser.icons[:sets].last.try(:[], :file) + when AppInfo::Platform::ANDROID + # 处理 Android anydpi 自适应图标 + icon_file = parser.icons + .reject { |f| File.extname(f[:file]) == '.xml' } + .last + .try(:[], :file) + + File.open(icon_file, 'rb') if icon_file + end + end + private_methods :fetch_icon + def self.rescuing_app_parse_errors yield rescue AppInfo::UnkownFileTypeError - raise CarrierWave::InvalidParameter, '上传应用的文件类型不支持' - rescue NoMethodError - raise ActionController::InvalidAuthenticityToken, '上传应用解析异常,请确保应用是支持的文件类型且没有安全加固处理' + raise AppInfo::UnkownFileTypeError, '上传应用的文件类型不支持' + rescue NoMethodError => e + logger.error e.full_message + raise AppInfo::Error, '上传应用解析异常,请确保应用是支持的文件类型且没有安全加固处理' rescue => e - raise ActionController::InvalidAuthenticityToken, "上传应用解析发现未知异常,原始错误:#{e.message}" + logger.error e.full_message + raise AppInfo::Error, "上传应用解析发现未知异常,原始错误:#{e.message}" end private_methods :rescuing_app_parse_errors diff --git a/app/uploaders/app_file_uploader.rb b/app/uploaders/app_file_uploader.rb index ac76daf90..1a8cb77e3 100644 --- a/app/uploaders/app_file_uploader.rb +++ b/app/uploaders/app_file_uploader.rb @@ -3,14 +3,14 @@ class AppFileUploader < ApplicationUploader process :validate_app_type - SUPPORT_APP = %i[apk ipa] + SUPPORT_APP = %i[apk ipa macos] def store_dir "#{base_store_dir}/apps/a#{model.app.id}/r#{model.id}/binary" end def extension_allowlist - %w[ipa apk] + %w[ipa apk zip] end private From 39a75c6b5e08f3d6a9e405ab4177015e87e99965 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 26 Aug 2021 19:38:07 +0800 Subject: [PATCH 0624/2165] =?UTF-8?q?fix:=20=E6=9B=B4=E6=96=B0=20app-info?= =?UTF-8?q?=20=E6=9D=A5=E8=A7=A3=E5=86=B3=E4=BF=9D=E5=AD=98=20macOS=20?= =?UTF-8?q?=E5=9B=BE=E6=A0=87=E7=BC=96=E7=A0=81=E4=BC=9A=E5=BC=BA=E8=BD=AC?= =?UTF-8?q?=20UTF-8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 2 +- Gemfile.lock | 4 ++-- app/models/release.rb | 19 +++++++++---------- 3 files changed, 12 insertions(+), 13 deletions(-) diff --git a/Gemfile b/Gemfile index 45fb4e146..c21aeb61c 100644 --- a/Gemfile +++ b/Gemfile @@ -80,7 +80,7 @@ gem 'turbolinks', '~> 5' gem 'webpacker', '~> 5.4' # 用于解析 ipa 和 apk 包 -gem 'app-info', '~> 2.6.0' +gem 'app-info', '~> 2.6.1' # Mobile config gem 'rails-settings-cached', '~> 2.7.1' diff --git a/Gemfile.lock b/Gemfile.lock index 2617effa1..e59320e93 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -73,7 +73,7 @@ GEM zeitwerk (~> 2.3) addressable (2.8.0) public_suffix (>= 2.0.2, < 5.0) - app-info (2.6.0) + app-info (2.6.1) CFPropertyList (>= 2.3.4, < 3.1.0) icns (~> 0.2.0) image_size (>= 1.5, < 2.2) @@ -507,7 +507,7 @@ DEPENDENCIES active_analytics active_model_serializers (~> 0.10.12) activejob-status - app-info (~> 2.6.0) + app-info (~> 2.6.1) awesome_print better_errors binding_of_caller diff --git a/app/models/release.rb b/app/models/release.rb index f45f6fc5c..a0c08c2bc 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -70,23 +70,22 @@ def self.upload_file(params, parser = nil) end def self.fetch_icon(parser) - logger.tagged("AppInfo") do - logger.debug parser.icons - end - case parser.os when AppInfo::Platform::IOS parser.icons.last.try(:[], :uncrushed_file) when AppInfo::Platform::MACOS - parser.icons[:sets].last.try(:[], :file) + return if parser.icons.blank? + + file = parser.icons[:sets].last.try(:[], :file) + File.open(file, 'rb') if file when AppInfo::Platform::ANDROID # 处理 Android anydpi 自适应图标 - icon_file = parser.icons - .reject { |f| File.extname(f[:file]) == '.xml' } - .last - .try(:[], :file) + file = parser.icons + .reject { |f| File.extname(f[:file]) == '.xml' } + .last + .try(:[], :file) - File.open(icon_file, 'rb') if icon_file + File.open(file, 'rb') if file end end private_methods :fetch_icon From 6a6001ae416a153f9889a2379a4dd5a9a8d3f39e Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 26 Aug 2021 20:01:53 +0800 Subject: [PATCH 0625/2165] =?UTF-8?q?feat:=20=E6=94=AF=E6=8C=81=E8=A7=A3?= =?UTF-8?q?=E5=8C=85=20macOS=20=E5=BA=94=E7=94=A8(=E6=B2=A1=E5=95=A5?= =?UTF-8?q?=E7=89=B9=E5=88=AB=E7=9A=84=E5=86=85=E5=AE=B9)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/metadatum.rb | 2 +- app/services/teardown_service.rb | 14 ++++++- app/views/teardowns/_macos.html.slim | 37 +++++++++++++++++++ app/views/teardowns/_upload_form.html.slim | 2 +- db/migrate/20201216070418_create_metadata.rb | 10 ++--- ...26114522_add_macos_to_app_metadata_enum.rb | 17 +++++++++ db/schema.rb | 2 +- 7 files changed, 73 insertions(+), 11 deletions(-) create mode 100644 app/views/teardowns/_macos.html.slim create mode 100644 db/migrate/20210826114522_add_macos_to_app_metadata_enum.rb diff --git a/app/models/metadatum.rb b/app/models/metadatum.rb index 49a9405a7..0c608c420 100644 --- a/app/models/metadatum.rb +++ b/app/models/metadatum.rb @@ -4,7 +4,7 @@ class Metadatum < ApplicationRecord belongs_to :release belongs_to :user - enum platform: { ios: 'ios', android: 'android', mobileprovision: 'mobileprovision' } + enum platform: { ios: 'ios', android: 'android', mobileprovision: 'mobileprovision', macos: 'macos' } alias_attribute :packet_name, :bundle_id end diff --git a/app/services/teardown_service.rb b/app/services/teardown_service.rb index d9404ccdb..b088d6258 100644 --- a/app/services/teardown_service.rb +++ b/app/services/teardown_service.rb @@ -3,13 +3,15 @@ class TeardownService < ApplicationService attr_reader :file + SUPPORT_APP = %i[apk ipa mobileprovision macos] + def initialize(file) @file = file end def call file_type = AppInfo.file_type(file) - unless file_type == :ipa || file_type == :apk || file_type == :mobileprovision + unless SUPPORT_APP.include?(file_type) raise ActionController::UnknownFormat, "无法处理文件: #{file}, 不支持本文件类型: #{file_type}" end @@ -30,6 +32,8 @@ def process process_ios(parser, metadata) when AppInfo::Platform::ANDROID process_android(parser, metadata) + when AppInfo::Platform::MACOS + process_macos(parser, metadata) end parser.clear! elsif parser.is_a?(AppInfo::MobileProvision) @@ -75,6 +79,12 @@ def process_ios(parser, metadata) end end + def process_macos(parser, metadata) + process_app_common(parser, metadata) + metadata.bundle_id = parser.bundle_id + # metadata.target_sdk_version = parser.target_sdk_version + end + def process_app_common(parser, metadata) metadata.name = parser.name metadata.platform = parser.os.downcase @@ -82,7 +92,7 @@ def process_app_common(parser, metadata) metadata.release_version = parser.release_version metadata.build_version = parser.build_version metadata.size = parser.size - metadata.min_sdk_version = parser.min_sdk_version + metadata.min_sdk_version = parser.min_os_version end def process_mobileprovision(mobileprovision, metadata) diff --git a/app/views/teardowns/_macos.html.slim b/app/views/teardowns/_macos.html.slim new file mode 100644 index 000000000..4441b67bf --- /dev/null +++ b/app/views/teardowns/_macos.html.slim @@ -0,0 +1,37 @@ + +.col-md-12 + .card + .card-header + h3.card-title 应用信息 + .card-tools + button.btn.btn-tool data-card-widget="collapse" + i.fas.fa-minus + .card-body + dl.system-info + dt 名称 + dd + pre = @metadata.name + dt 支持设备 + dd + pre #{@metadata.device} + dt 版本 + dd + pre = "#{@metadata.release_version} (#{@metadata.build_version})" + dt Bundle Id + dd + pre = @metadata.bundle_id + dt 最低 macOS 版本 + dd + pre = @metadata.min_sdk_version + dt 文件大小 + dd + pre = number_to_human_size(@metadata.size) + + == render 'mobileprovision_part' + == render 'developer_certs_part' + == render 'devices_part' + == render 'card', title: 'Entitlements', raw: @metadata.entitlements + +.col-md-4 + == render 'card', title: '启用能力', raw: @metadata.capabilities + == render 'card', title: 'URL Schemes', raw: @metadata.url_schemes \ No newline at end of file diff --git a/app/views/teardowns/_upload_form.html.slim b/app/views/teardowns/_upload_form.html.slim index 83430cab3..34f8ea544 100644 --- a/app/views/teardowns/_upload_form.html.slim +++ b/app/views/teardowns/_upload_form.html.slim @@ -8,6 +8,6 @@ = file_field_tag 'file', class: 'custom-file-input2' input name="type" value="upload" type="hidden" - p.help-block 支持 .apk、 .ipa 以及 .mobileprovision 文件 + p.help-block 支持 .apk、 .ipa、.mobileprovision 以及 macOS.app.Zip 文件 = submit_tag '开始解包', class: 'btn btn-primary' \ No newline at end of file diff --git a/db/migrate/20201216070418_create_metadata.rb b/db/migrate/20201216070418_create_metadata.rb index bfdbc1de4..3b72046ed 100644 --- a/db/migrate/20201216070418_create_metadata.rb +++ b/db/migrate/20201216070418_create_metadata.rb @@ -39,11 +39,9 @@ def up end def down - def down - drop_table :metadata - execute <<-SQL - DROP TYPE metadata_platform; - SQL - end + drop_table :metadata + execute <<-SQL + DROP TYPE metadata_platform; + SQL end end diff --git a/db/migrate/20210826114522_add_macos_to_app_metadata_enum.rb b/db/migrate/20210826114522_add_macos_to_app_metadata_enum.rb new file mode 100644 index 000000000..60a8082a8 --- /dev/null +++ b/db/migrate/20210826114522_add_macos_to_app_metadata_enum.rb @@ -0,0 +1,17 @@ +class AddMacosToAppMetadataEnum < ActiveRecord::Migration[6.1] + def up + execute <<-SQL + ALTER TYPE metadata_platform ADD VALUE 'macos'; + SQL + end + + def down + execute <<-SQL + DELETE FROM pg_enum + WHERE enumlabel = 'macos' + AND enumtypid = ( + SELECT oid FROM pg_type WHERE typname = 'metadata_platform' + ); + SQL + end +end diff --git a/db/schema.rb b/db/schema.rb index 3ec6e6579..5c3d9b234 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 2021_06_18_034524) do +ActiveRecord::Schema.define(version: 2021_08_26_114522) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" From 2eb8ddaf4df364f89769b5578598b223f799bc84 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 26 Aug 2021 20:05:35 +0800 Subject: [PATCH 0626/2165] =?UTF-8?q?refactor:=20=E7=A7=BB=E9=99=A4?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E5=B7=B2=E4=B8=8A=E4=BC=A0=E5=BA=94=E7=94=A8?= =?UTF-8?q?=E7=9A=84=E8=A7=A3=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/teardowns_controller.rb | 36 +--------------------- app/views/teardowns/_exists_form.html.slim | 7 ----- app/views/teardowns/_upload_form.html.slim | 13 -------- app/views/teardowns/new.html.slim | 23 +++++++------- 4 files changed, 13 insertions(+), 66 deletions(-) delete mode 100644 app/views/teardowns/_exists_form.html.slim delete mode 100644 app/views/teardowns/_upload_form.html.slim diff --git a/app/controllers/teardowns_controller.rb b/app/controllers/teardowns_controller.rb index b253e7d95..b826a0909 100644 --- a/app/controllers/teardowns_controller.rb +++ b/app/controllers/teardowns_controller.rb @@ -20,15 +20,7 @@ def new end def create - case params[:type] - when 'upload' - parse_app - when 'url' - parse_exists_app - else - flash[:error] = '错误请求,无法解包' - render :new - end + parse_app rescue ActiveRecord::RecordNotFound => e flash[:error] = "无法找到解包文件: #{e}" render :new @@ -61,35 +53,9 @@ def parse_app raise ActionController::RoutingError, '请选择需要解包的 ipa、apk 安装包或 .mobileprovision 文件' end - parse(file.tempfile) - end - - def parse_exists_app - data = Rails.application.routes.recognize_path(params[:url]) - determine_release_detail_url!(data) - find_release_and_parse(data[:id]) - end - - def parse(file, release_id = nil) metadata = TeardownService.call(file) - metadata.update_attribute(:release_id, release_id) if release_id.present? metadata.update_attribute(:user_id, current_user.id) if current_user.present? redirect_to teardown_path(metadata) end - - def determine_release_detail_url!(data) - unless data[:controller] == 'releases' && data[:action] == 'show' - raise ActionController::RoutingError, '不是正确的版本详情链接,请重试' - end - end - - def find_release_and_parse(release_id) - release = Release.find(release_id) - unless release&.file.file && File.exist?(release.file.file.path) - raise ActionController::RoutingError, '文件已经无法找到,可能已经被清理或删除,请重试' - end - - parse(release.file.file.path, release_id) - end end diff --git a/app/views/teardowns/_exists_form.html.slim b/app/views/teardowns/_exists_form.html.slim deleted file mode 100644 index c9a67934b..000000000 --- a/app/views/teardowns/_exists_form.html.slim +++ /dev/null @@ -1,7 +0,0 @@ -= form_tag(teardowns_path, class:'form') do |form| - .form-group - input.form-control name="url" value="#{params[:url]}" placeholder="#{channel_release_url(Channel.take, Release.take)}" - input name="type" value="url" type="hidden" - - .form-group - = submit_tag '开始解包', class: 'btn btn-primary' \ No newline at end of file diff --git a/app/views/teardowns/_upload_form.html.slim b/app/views/teardowns/_upload_form.html.slim deleted file mode 100644 index 34f8ea544..000000000 --- a/app/views/teardowns/_upload_form.html.slim +++ /dev/null @@ -1,13 +0,0 @@ - -= form_tag(teardowns_path, multipart: true) do |form| - .form-group - label.control-label.required for="file" - abbr title="必填项" * - | 解包文件 - .input-group - = file_field_tag 'file', class: 'custom-file-input2' - input name="type" value="upload" type="hidden" - - p.help-block 支持 .apk、 .ipa、.mobileprovision 以及 macOS.app.Zip 文件 - - = submit_tag '开始解包', class: 'btn btn-primary' \ No newline at end of file diff --git a/app/views/teardowns/new.html.slim b/app/views/teardowns/new.html.slim index cd40595d2..8f53c554b 100644 --- a/app/views/teardowns/new.html.slim +++ b/app/views/teardowns/new.html.slim @@ -7,15 +7,16 @@ .row .col-md-12 .card.card-outline-tabs.card-primary.card-outline - .card-header.p-0.border-bottom-0 - ul.nav.nav-tabs role="tablist" - li.nav-item - a.nav-link.active data-toggle="tab" href="#tab-upload" 上传应用 - li.nav-item - a.nav-link data-toggle="tab" href="#tab-exists" 已上传应用 .card-body - .tab-content - .tab-pane.active id="tab-upload" - == render 'upload_form' - .tab-pane id="tab-exists" - == render 'exists_form' + = form_tag(teardowns_path, multipart: true) do |form| + .form-group + label.control-label.required for="file" + abbr title="必填项" * + | 解包文件 + .input-group + = file_field_tag 'file', class: 'custom-file-input2' + input name="type" value="upload" type="hidden" + + p.help-block 支持 .apk、 .ipa、.mobileprovision 以及 macOS.app.Zip 文件 + + = submit_tag '开始解包', class: 'btn btn-primary' From 8de49cd23a16270c9b41714f59cdff368398c02f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 26 Aug 2021 21:01:07 +0000 Subject: [PATCH 0627/2165] chore(deps): bump rqrcode from 2.0.0 to 2.1.0 Bumps [rqrcode](https://github.com/whomwah/rqrcode) from 2.0.0 to 2.1.0. - [Release notes](https://github.com/whomwah/rqrcode/releases) - [Changelog](https://github.com/whomwah/rqrcode/blob/master/CHANGELOG.md) - [Commits](https://github.com/whomwah/rqrcode/compare/v2.0.0...v2.1.0) --- updated-dependencies: - dependency-name: rqrcode dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 8be54611a..7766f430a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -378,10 +378,10 @@ GEM actionpack (>= 5.0) railties (>= 5.0) rexml (3.2.5) - rqrcode (2.0.0) + rqrcode (2.1.0) chunky_png (~> 1.0) rqrcode_core (~> 1.0) - rqrcode_core (1.1.0) + rqrcode_core (1.2.0) rubocop (1.18.3) parallel (~> 1.10) parser (>= 3.0.0.0) From b5172877d8e389d57f92eb454fcebc0caba8a9bd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 26 Aug 2021 21:01:22 +0000 Subject: [PATCH 0628/2165] chore(deps): bump bootsnap from 1.7.7 to 1.8.0 Bumps [bootsnap](https://github.com/Shopify/bootsnap) from 1.7.7 to 1.8.0. - [Release notes](https://github.com/Shopify/bootsnap/releases) - [Changelog](https://github.com/Shopify/bootsnap/blob/master/CHANGELOG.md) - [Commits](https://github.com/Shopify/bootsnap/compare/v1.7.7...v1.8.0) --- updated-dependencies: - dependency-name: bootsnap dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 8be54611a..959e9f377 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -90,7 +90,7 @@ GEM bindex (0.8.1) binding_of_caller (1.0.0) debug_inspector (>= 0.0.1) - bootsnap (1.7.7) + bootsnap (1.8.0) msgpack (~> 1.0) builder (3.2.4) byebug (11.1.3) From fd63a535c63fdff68a9658dce015768cf14d7c72 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 27 Aug 2021 15:58:56 +0800 Subject: [PATCH 0629/2165] =?UTF-8?q?feat:=20=E7=AE=A1=E7=90=86=E5=91=98?= =?UTF-8?q?=E9=9D=A2=E6=9D=BF=E5=8F=AF=E4=BF=AE=E6=94=B9=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/apps_helper.rb | 2 +- app/models/setting.rb | 73 +++++++++++++++++------- app/models/user.rb | 2 +- app/views/admin/settings/_form.html.slim | 7 ++- app/views/admin/settings/index.html.slim | 2 +- config/locales/zealot/zh-CN.yml | 3 +- 6 files changed, 63 insertions(+), 26 deletions(-) diff --git a/app/helpers/apps_helper.rb b/app/helpers/apps_helper.rb index 49808d5c3..5b9299972 100644 --- a/app/helpers/apps_helper.rb +++ b/app/helpers/apps_helper.rb @@ -2,7 +2,7 @@ module AppsHelper def default_schemes - Setting.schemes + Setting.default_schemes end def default_channels diff --git a/app/models/setting.rb b/app/models/setting.rb index d575cebe0..191d3db63 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -4,11 +4,38 @@ class Setting < RailsSettings::Base cache_prefix { 'v1' } + DEFAULT_SITE_HTTPS = Rails.env.production? || ENV['ZEALOT_USE_HTTPS'].present? + DEFAULT_SITE_DOMAIN = DEFAULT_SITE_HTTPS ? 'localhost' : "localhost:#{ENV['ZEALOT_PORT'] || 3000}" + + class << self + def site_configs + group_configs.each_with_object({}) do |(scope, items), obj| + obj[scope] = items.each_with_object({}) do |item, inner| + key = item[:key] + value = Setting.send(key.to_sym) + inner[key] = { + value: value, + readonly: item[:readonly] + } + end + end + end + + def find_or_default(var:) + find_by(var: var) || new(var: var) + end + + def group_configs + defined_fields.select { |v| v[:options][:display] == true }.group_by { |v| v[:scope] || :misc } + end + end + # 系统配置 scope :general do - field :site_title, default: 'Zealot', type: :string, validates: { presence: true, length: { in: 3..16 } }, display: true - field :site_https, default: (Rails.env.production? || ENV['ZEALOT_USE_HTTPS'].present?), type: :boolean, readonly: true - field :site_domain, default: (ENV['ZEALOT_DOMAIN'] || (site_https ? 'localhost' : "localhost:#{ENV['ZEALOT_PORT'] || 3000}")), type: :string, readonly: true + field :site_title, default: 'Zealot', type: :string, display: true, + validates: { presence: true, length: { in: 3..16 } } + field :site_https, default: DEFAULT_SITE_HTTPS, type: :boolean, readonly: true + field :site_domain, default: (ENV['ZEALOT_DOMAIN'] || DEFAULT_SITE_DOMAIN), type: :string, readonly: true field :admin_email, default: (ENV['ZEALOT_ADMIN_EMAIL'] || 'admin@zealot.com'), type: :string, readonly: true field :admin_password, default: (ENV['ZEALOT_ADMIN_PASSWORD'] || 'ze@l0t'), type: :string, readonly: true @@ -16,7 +43,9 @@ class Setting < RailsSettings::Base # 预值 scope :presets do - field :schemes, default: %w[测试版 内测版 产品版], type: :array, display: true + field :default_schemes, default: %w[测试版 内测版 产品版], type: :array, display: true + field :default_role, default: 'user', type: :string, display: true, + validates: { presence: true, inclusion: { in: UserRoles::ROLE_NAMES.keys.map(&:to_s) } } end # 模式开关 @@ -96,26 +125,28 @@ class Setting < RailsSettings::Base field :build_date, default: ENV['BUILD_DATE'], type: :string, readonly: true end - class << self - def site_configs - group_configs.each_with_object({}) do |(scope, items), obj| - obj[scope] = items.each_with_object({}) do |item, inner| - key = item[:key] - value = Setting.send(key.to_sym) - inner[key] = { - value: value, - readonly: item[:readonly] - } - end - end - end + def field_validates + validates = Setting.validators_on(var) + validates.each_with_object([]) do |validate, obj| + next unless value = validate_value(validate) - def find_or_default(var:) - find_by(var: var) || new(var: var) + obj << value end + end - def group_configs - defined_fields.select { |v| v[:options][:display] == true }.group_by { |v| v[:scope] || :misc } + private + + def validate_value(validate) + case validate + when ActiveModel::Validations::PresenceValidator + '不能为空值' + when ActiveRecord::Validations::LengthValidator + minimum = validate.options[:minimum] + maximum = validate.options[:maximum] + "长度限制: #{minimum} ~ #{maximum} 位" + when ActiveModel::Validations::InclusionValidator + values = validate.send(:delimiter) + "可选值: #{values.join(', ')}" end end end diff --git a/app/models/user.rb b/app/models/user.rb index 3ddaa9e8c..7e008d657 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -21,7 +21,7 @@ class User < ApplicationRecord private def set_default_role - self.role ||= :user + self.role ||= Setting.default_role || :user end def generate_user_token diff --git a/app/views/admin/settings/_form.html.slim b/app/views/admin/settings/_form.html.slim index 2b6e88689..9707666e8 100644 --- a/app/views/admin/settings/_form.html.slim +++ b/app/views/admin/settings/_form.html.slim @@ -21,6 +21,8 @@ ruby: ul style="margin-bottom: 0" - @setting.errors.each do |error| li = error.message + + input.hidden type="hidden" value="#{type}" name="setting[type]" - if type == :boolean = f.input :value, label: '开启', as: :boolean, checked: type - elsif type == :hash || type == :array @@ -28,6 +30,9 @@ ruby: - else = f.text_area :value, value: value, class: 'form-control', rows: 15 - input.hidden type="hidden" value="#{type}" name="setting[type]" + - unless @setting.field_validates.empty? + small.form-text.text-muted + | 条件: + = @setting.field_validates.join(" / ") .card-footer = f.button :submit, t('admin.settings.submit.update') \ No newline at end of file diff --git a/app/views/admin/settings/index.html.slim b/app/views/admin/settings/index.html.slim index 8563ee98d..c85a1eee3 100644 --- a/app/views/admin/settings/index.html.slim +++ b/app/views/admin/settings/index.html.slim @@ -25,7 +25,7 @@ form.form-horizontal when FalseClass '关闭' else - ((value != false && value.blank?) ? t('admin.settings.empty_value') : value.to_s) + value.blank? ? t('admin.settings.empty_value') : value.to_s end dl.system-info dt = t("admin.settings.#{key}") diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index 672fae6cd..cbe2b54f6 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -7,7 +7,8 @@ zh-CN: site_domain: 站点域名 presets: 默认值 - schemes: 应用的类型名称 + default_schemes: 应用的类型名称 + default_role: 用户注册默认权限 switch_mode: 模式开关 registrations_mode: 注册模式 From c0fbb901d1ed554c8289bb535458c74f3545d51d Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 27 Aug 2021 16:44:42 +0800 Subject: [PATCH 0630/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=AE=89?= =?UTF-8?q?=E8=A3=85=E6=8C=89=E9=92=AE=E5=9C=A8=E4=B8=8D=E5=90=8C=E7=B3=BB?= =?UTF-8?q?=E7=BB=9F=E5=92=8C=E5=BA=94=E7=94=A8=E4=BC=9A=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/application_helper.rb | 25 +++++++++++---------- app/helpers/apps_helper.rb | 9 ++++++-- app/views/releases/body/_metadata.html.slim | 7 ++---- 3 files changed, 22 insertions(+), 19 deletions(-) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 3ba78aaa2..39ca0de07 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -107,7 +107,7 @@ def wechat? user_agent.include?('MicroMessenger') end - def mac?(source = nil) + def macos?(source = nil) # Intel: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36 # Arm M1: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36 source ||= user_agent @@ -126,17 +126,18 @@ def android?(source = nil) end # 检查设备 - def detect_device(device) - # FIXME: iPad 和 M1 芯片设备都是桌面的 UA,因此这里暂时改为 iOS 设备或文件是 iOS 设备文件 - if ios? || ios?(device) - :ios - elsif android? && android?(device) - :android - # elsif mac? && mac?(device) - # :macos - else - :unkown - end + def detect_device(device, target) + value = if ios?(device) + :ios + elsif android?(device) + :android + elsif macos?(device) + :macos + else + :unkown + end + + value == target.to_sym end def omniauth_display_name(provider) diff --git a/app/helpers/apps_helper.rb b/app/helpers/apps_helper.rb index 5b9299972..5013dc614 100644 --- a/app/helpers/apps_helper.rb +++ b/app/helpers/apps_helper.rb @@ -68,12 +68,17 @@ def release_type_url(release) def display_app_device(value) if value.is_a?(Release) channel = value.channel - return "#{device_name(channel.device_type)} (#{value.device})" if value.device + channal_device_type = device_name(channel.device_type) + if value.device + return channal_device_type == value.device ? channal_device_type : "#{channal_device_type} (#{value.device})" + end else channel = value end return channel.name if channel.name.downcase == channel.device_type.downcase - return "#{channel.name} (#{device_name(channel.device_type)})" + + platform = device_name(channel.device_type) + channel.name == platform ? channel.name : "#{channel.name} (#{device_name(channel.device_type)})" end end diff --git a/app/views/releases/body/_metadata.html.slim b/app/views/releases/body/_metadata.html.slim index a1c6b85f1..e2357fa01 100644 --- a/app/views/releases/body/_metadata.html.slim +++ b/app/views/releases/body/_metadata.html.slim @@ -72,7 +72,7 @@ - if @release.file? == render 'releases/body/install_cert' - - if detect_device(@release.channel.device_type) == :ios + - if detect_device(@release.channel.device_type, :ios) && (ios? || macos?) / iOS 和 Mac 显示此按钮 button.btn.btn-icon.btn-lg.bg-success[ id="download_it" @@ -83,10 +83,7 @@ a.btn.btn-icon.btn-lg.bg-success href="#{@release.download_url}" target="_blank" i.fas.fa-download - - if android?(user_agent) - | 安装 - - else - | 下载 + | 下载 - else button.btn.btn-secondary.btn-icon.disabled i.fas.fa-ghost From 8bbbd73fc0da5449bf58820ee09fa0ec8d38a536 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 27 Aug 2021 16:58:27 +0800 Subject: [PATCH 0631/2165] =?UTF-8?q?fix:=20Android=20=E8=A7=A3=E5=8C=85?= =?UTF-8?q?=E6=8A=A5=E9=94=99=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/services/teardown_service.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/services/teardown_service.rb b/app/services/teardown_service.rb index b088d6258..ec8cbb02f 100644 --- a/app/services/teardown_service.rb +++ b/app/services/teardown_service.rb @@ -92,7 +92,7 @@ def process_app_common(parser, metadata) metadata.release_version = parser.release_version metadata.build_version = parser.build_version metadata.size = parser.size - metadata.min_sdk_version = parser.min_os_version + metadata.min_sdk_version = parser.respond_to?(:min_os_version) ? parser.min_os_version : parser.min_sdk_version end def process_mobileprovision(mobileprovision, metadata) From a00f7aec7da150987fe895e70cd545a9f3fc6fd4 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 27 Aug 2021 18:15:48 +0800 Subject: [PATCH 0632/2165] =?UTF-8?q?fix:=20=E4=BC=98=E5=8C=96=E8=A7=A3?= =?UTF-8?q?=E5=8C=85=E5=BC=82=E5=B8=B8=E7=9A=84=E9=94=99=E8=AF=AF=E6=8F=90?= =?UTF-8?q?=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/teardowns_controller.rb | 9 +++++++++ app/views/teardowns/new.html.slim | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/app/controllers/teardowns_controller.rb b/app/controllers/teardowns_controller.rb index b826a0909..ee3778bb9 100644 --- a/app/controllers/teardowns_controller.rb +++ b/app/controllers/teardowns_controller.rb @@ -33,6 +33,15 @@ def create rescue AppInfo::NotFoundError => e flash[:error] = "无法找到解包文件: #{e}" render :new + rescue AppInfo::UnkownFileTypeError + flash[:error] = '上传应用的文件类型不支持' + render :new + rescue NoMethodError => e + flash[:error] = '上传应用解析异常,请确保应用是支持的文件类型且没有安全加固处理' + render :new + rescue => e + rflash[:error] = "上传应用解析发现未知异常,原始错误:#{e.message}" + render :new end def destroy diff --git a/app/views/teardowns/new.html.slim b/app/views/teardowns/new.html.slim index 8f53c554b..22e638b79 100644 --- a/app/views/teardowns/new.html.slim +++ b/app/views/teardowns/new.html.slim @@ -17,6 +17,6 @@ = file_field_tag 'file', class: 'custom-file-input2' input name="type" value="upload" type="hidden" - p.help-block 支持 .apk、 .ipa、.mobileprovision 以及 macOS.app.Zip 文件 + p.help-block 支持 .apk、 .ipa、.mobileprovision 以及 macOS.app.zip 文件 = submit_tag '开始解包', class: 'btn btn-primary' From 517dae8588665eef56c0a6151f20848720431254 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 27 Aug 2021 19:33:07 +0800 Subject: [PATCH 0633/2165] =?UTF-8?q?refactor:=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E5=BA=94=E7=94=A8=E8=A7=A3=E5=8C=85=E5=BC=80=E5=8F=91=E8=80=85?= =?UTF-8?q?=E8=AF=81=E4=B9=A6=E7=9A=84=E9=80=BB=E8=BE=91=E5=92=8C=E6=A0=B7?= =?UTF-8?q?=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/api/apps/upload_controller.rb | 2 +- app/controllers/teardowns_controller.rb | 6 ++++- app/services/teardown_service.rb | 2 +- .../teardowns/_developer_certs_part.html.slim | 25 ++++++++----------- 4 files changed, 18 insertions(+), 17 deletions(-) diff --git a/app/controllers/api/apps/upload_controller.rb b/app/controllers/api/apps/upload_controller.rb index a524473f9..5e2ef92c0 100644 --- a/app/controllers/api/apps/upload_controller.rb +++ b/app/controllers/api/apps/upload_controller.rb @@ -61,7 +61,7 @@ def perform_app_web_hook_job end def perform_teardown_job - TeardownJob.perform_later(@release.id, @user.id) + @release.perform_teardown_job(user.id) end ########################### diff --git a/app/controllers/teardowns_controller.rb b/app/controllers/teardowns_controller.rb index ee3778bb9..7a51259f5 100644 --- a/app/controllers/teardowns_controller.rb +++ b/app/controllers/teardowns_controller.rb @@ -37,10 +37,14 @@ def create flash[:error] = '上传应用的文件类型不支持' render :new rescue NoMethodError => e + logger.error "Teardown error: #{e}" + Sentry.capture_exception e flash[:error] = '上传应用解析异常,请确保应用是支持的文件类型且没有安全加固处理' render :new rescue => e - rflash[:error] = "上传应用解析发现未知异常,原始错误:#{e.message}" + logger.error "Teardown error: #{e}" + Sentry.capture_exception e + flash[:error] = "上传应用解析发现未知异常,原始错误:#{e.message}" render :new end diff --git a/app/services/teardown_service.rb b/app/services/teardown_service.rb index ec8cbb02f..13007eaa5 100644 --- a/app/services/teardown_service.rb +++ b/app/services/teardown_service.rb @@ -119,7 +119,7 @@ def process_developer_certs(mobileprovision, metadata) if developer_certs = mobileprovision.developer_certs metadata.developer_certs = developer_certs.each_with_object([]) do |cert, obj| obj << { - name: cert.name, + name: cert.name.force_encoding('UTF-8'), created_at: cert.created_date, expired_at: cert.expired_date } diff --git a/app/views/teardowns/_developer_certs_part.html.slim b/app/views/teardowns/_developer_certs_part.html.slim index bd3077f03..29fded446 100644 --- a/app/views/teardowns/_developer_certs_part.html.slim +++ b/app/views/teardowns/_developer_certs_part.html.slim @@ -8,17 +8,14 @@ .card-tools button.btn.btn-tool data-card-widget="collapse" i.fas.fa-minus - .card-body - dl.system-info - - @metadata.developer_certs.each_with_index do |cert, i| - dt - | 证书 - = i + 1 - dd - pre = cert['name'] - dt 创建时间 - dd - pre = cert['created_at'] - dt 过期时间 - dd - pre = cert['expired_at'] \ No newline at end of file + .card-body.card-comments + - @metadata.developer_certs.each_with_index do |cert, i| + .card-comment + .comment-text style="margin-left: 0" + span.username + | 证书 + = i + 1 + span.text-muted.float-right + = cert['expired_at'] + | 到期 + = cert['name'] From e77cb337ab947a7425a37b264ec847331186bb09 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 27 Aug 2021 19:38:49 +0800 Subject: [PATCH 0634/2165] =?UTF-8?q?feat:=20=E6=9B=B4=E6=96=B0=20app-info?= =?UTF-8?q?=20=E8=A7=A3=E5=86=B3=E5=BC=BA=E8=BD=AC=E5=BC=80=E5=8F=91?= =?UTF-8?q?=E8=80=85=E8=AF=81=E4=B9=A6=E7=BC=96=E7=A0=81=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 2 +- Gemfile.lock | 4 ++-- app/services/teardown_service.rb | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index c21aeb61c..52912af2c 100644 --- a/Gemfile +++ b/Gemfile @@ -80,7 +80,7 @@ gem 'turbolinks', '~> 5' gem 'webpacker', '~> 5.4' # 用于解析 ipa 和 apk 包 -gem 'app-info', '~> 2.6.1' +gem 'app-info', '~> 2.6.3' # Mobile config gem 'rails-settings-cached', '~> 2.7.1' diff --git a/Gemfile.lock b/Gemfile.lock index e72a5c8d7..9daec49a5 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -73,7 +73,7 @@ GEM zeitwerk (~> 2.3) addressable (2.8.0) public_suffix (>= 2.0.2, < 5.0) - app-info (2.6.1) + app-info (2.6.3) CFPropertyList (>= 2.3.4, < 3.1.0) icns (~> 0.2.0) image_size (>= 1.5, < 2.2) @@ -507,7 +507,7 @@ DEPENDENCIES active_analytics active_model_serializers (~> 0.10.12) activejob-status - app-info (~> 2.6.1) + app-info (~> 2.6.3) awesome_print better_errors binding_of_caller diff --git a/app/services/teardown_service.rb b/app/services/teardown_service.rb index 13007eaa5..ec8cbb02f 100644 --- a/app/services/teardown_service.rb +++ b/app/services/teardown_service.rb @@ -119,7 +119,7 @@ def process_developer_certs(mobileprovision, metadata) if developer_certs = mobileprovision.developer_certs metadata.developer_certs = developer_certs.each_with_object([]) do |cert, obj| obj << { - name: cert.name.force_encoding('UTF-8'), + name: cert.name, created_at: cert.created_date, expired_at: cert.expired_date } From 92a91e39e0efafad328ceaa52ad785bc5d9936a5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 27 Aug 2021 21:01:34 +0000 Subject: [PATCH 0635/2165] chore(deps): bump bootsnap from 1.8.0 to 1.8.1 Bumps [bootsnap](https://github.com/Shopify/bootsnap) from 1.8.0 to 1.8.1. - [Release notes](https://github.com/Shopify/bootsnap/releases) - [Changelog](https://github.com/Shopify/bootsnap/blob/master/CHANGELOG.md) - [Commits](https://github.com/Shopify/bootsnap/compare/v1.8.0...v1.8.1) --- updated-dependencies: - dependency-name: bootsnap dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 9daec49a5..3bf7a2ee1 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -91,7 +91,7 @@ GEM bindex (0.8.1) binding_of_caller (1.0.0) debug_inspector (>= 0.0.1) - bootsnap (1.8.0) + bootsnap (1.8.1) msgpack (~> 1.0) builder (3.2.4) byebug (11.1.3) From 92e1f844689714185a73e941eed64fa72321e36c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E6=88=90=E7=AB=A0?= Date: Mon, 30 Aug 2021 11:56:53 +0800 Subject: [PATCH 0636/2165] set ZEALOT_KEEP_UPLOADS=true --- app/models/setting.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/setting.rb b/app/models/setting.rb index 191d3db63..65666f490 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -57,7 +57,7 @@ def group_configs # 上传文件保留策略 scope :limits do - field :keep_uploads, default: (ENV['ZEALOT_KEEP_UPLOADS'] || 'false'), type: :boolean, readonly: true + field :keep_uploads, default: (ENV['ZEALOT_KEEP_UPLOADS'] || 'true'), type: :boolean, readonly: true end # 第三方登录 From 9ec4456cacf19b2c6ec68e4f9cfdf46ba6275d3a Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 30 Aug 2021 15:04:35 +0800 Subject: [PATCH 0637/2165] =?UTF-8?q?doc:=20=E6=9B=B4=E6=96=B0=20README?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 43 ++++++++++++++++++++++++++++++------------- 1 file changed, 30 insertions(+), 13 deletions(-) diff --git a/README.md b/README.md index a9b80a637..b090f7420 100644 --- a/README.md +++ b/README.md @@ -11,15 +11,15 @@ ![Zealot Showcase](https://zealot.ews.im/_media/showcase.png) ## 特性 -- [x] 支持 iOS 和 Android 应用的上传、在线安装和本地下载 -- [x] 支持应用创建各种类型(Debug、AdHoc、Enterprise、Release)和渠道(小米、华为、Oppp、Vivo、应用宝等) -- [x] 支持 iOS dSYM 和 Android Progruard 文件的备份管理和解析 -- [x] 支持单次上传解析 iOS、Android 包甚至是 mobileprovision 文件的信息并存储便于分享他人 -- [x] 支持自定义网络钩子(WebHooks)发送给通知各种服务(钉钉、企业微信、Slack 等) -- [x] 支持获取 iOS 设备 UDID 及显示该设备可以安装的应用 -- [x] 支持第三方服务的一键登录(目前以接入飞书、Gitlab、Google 和 LDAP) +- [x] 支持 iOS、Android 和 macOS 应用的上传、在线安装和本地下载 +- [x] 支持创建类型(Debug、AdHoc、Release)及渠道(小米商店等) +- [x] 支持自定义网络钩子通知各种服务(钉钉、企业微信、Slack 等) +- [x] 支持 iOS dSYM 和 Android Progruard 文件的解析和上传 +- [x] 支持应用解包(甚至 mobileprovision 文件)存储和分享 +- [x] 支持一键登录(已接入飞书、Gitlab、Google 和 LDAP) - [x] 提供检查新版本和安装服务的 iOS 和 Android 组件 -- [x] 提供 fastlane 插件 [zealot](https://github.com/tryzealot/fastlane-plugin-zealot) 提供上传应用和调试文件服务、同步 iOS 设备 UDID 名单 +- [x] 提供获取 iOS 设备标识符并显示支持安装的应用列表 +- [x] 提供丰富的 fastlane 插件 [zealot](https://github.com/tryzealot/fastlane-plugin-zealot) - [x] 可接入 Gitlab 服务直接挂钩源码管理 - [ ] 可接入 Jenkins 服务实现远程构建 - [x] 支持丰富的 REST APIs @@ -33,7 +33,7 @@ > **注意**: 数据每日都会重新初始化,不对用户上传的应用承担任何法律风险,后果自负! -## 快速上手 +## 快速部署 ``` $ git clone https://github.com/tryzealot/zealot-docker.git @@ -41,14 +41,31 @@ $ cd zealot-docker $ ./deploy ``` -## 安装部署 +按照部署脚本可以快速部署系统服务,如需自定义其他配置请看[项目配置](https://zealot.ews.im/#/configuration) -- [Docker](https://zealot.ews.im/#/deployment) -- [源码](https://zealot.ews.im/#/development) +## 最佳实践 + +如果想知道使用 Zealot 如何全流程无缝 CI/CD 接入 iOS 和 Android 请看[实践教程](https://zealot.ews.im/#/best_practices) ## 帮助和文档 -对 Zealot 感兴趣,看看文档了解下 +你可以查看更多的功能截图: + +https://zealot.ews.im/#/screenshot + +你可以了解下支持什么插件: + +https://zealot.ews.im/#/modules + +你可以了解提供的 HTTP API 接口: + +https://zealot.ews.im/#/api + +你可以了解变更日志: + +https://zealot.ews.im/#/changelog + +对于项目细节感兴趣就来看看翻翻文档: https://zealot.ews.im From d0859ebe8ce576478638d5d06c6f6602c1125212 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 30 Aug 2021 15:07:49 +0800 Subject: [PATCH 0638/2165] =?UTF-8?q?feat:=20=E6=98=BE=E7=A4=BA=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/setting.rb | 15 +++++++-------- config/locales/zealot/zh-CN.yml | 6 ++++++ 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/app/models/setting.rb b/app/models/setting.rb index 65666f490..2f724f5de 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -106,23 +106,22 @@ def group_configs password: ENV['SMTP_PASSWORD'], auth_method: ENV['SMTP_AUTH_METHOD'], enable_starttls_auto: ENV['SMTP_ENABLE_STARTTLS_AUTO'], - }, display: true + } end # 备份 - field :backup, type: :hash, readonly: true, display: true, default: { + field :backup, type: :hash, readonly: true, default: { path: 'public/backup', keep_time: 604800, pg_schema: 'public', } - - # 系统信息(只读) + # 版本信息(只读) scope :information do - field :version, default: (ENV['ZEALOT_VERSION'] || 'development'), type: :string, readonly: true - field :vcs_ref, default: (ENV['ZEALOT_VCS_REF']), type: :string, readonly: true - field :version, default: (ENV['ZEALOT_VERSION'] || 'development'), type: :string, readonly: true - field :build_date, default: ENV['BUILD_DATE'], type: :string, readonly: true + field :version, default: (ENV['ZEALOT_VERSION'] || 'development'), type: :string, readonly: true, display: true + field :vcs_ref, default: (ENV['ZEALOT_VCS_REF']), type: :string, readonly: true, display: true + field :version, default: (ENV['ZEALOT_VERSION'] || 'development'), type: :string, readonly: true, display: true + field :build_date, default: ENV['BUILD_DATE'], type: :string, readonly: true, display: true end def field_validates diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index cbe2b54f6..5994cb107 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -26,10 +26,16 @@ zh-CN: stmp: 邮件配置 mailer_default_from: 默认邮件发件地址 mailer_default_to: 默认邮件发件人 + mailer_options: 发件服务器配置 archives: 上传文件 keep_uploads: 永久保存上传应用版本 + information: 版本信息 + version: 版本 + vcs_ref: 哈希值 + build_date: 构建日期 + empty_value: 空值 submit: create: 新增设置 From b15d0837d11d7d52ca407b654a8cacd23b85dc34 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 30 Aug 2021 18:38:57 +0800 Subject: [PATCH 0639/2165] =?UTF-8?q?feat:=20=E7=A3=81=E7=9B=98=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E5=A2=9E=E5=8A=A0=E8=BF=9B=E5=BA=A6=E5=9B=BE=E5=B9=B6?= =?UTF-8?q?=E4=BF=AE=E6=AD=A3=E6=8E=A7=E5=88=B6=E5=8F=B0=E7=9A=84=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/system_info_controller.rb | 57 +++++++++++++++---- app/controllers/dashboards_controller.rb | 3 +- app/views/admin/system_info/index.html.slim | 15 ++++- app/views/dashboards/_analytics.html.slim | 2 +- 4 files changed, 63 insertions(+), 14 deletions(-) diff --git a/app/controllers/admin/system_info_controller.rb b/app/controllers/admin/system_info_controller.rb index 04e446c7f..f10453042 100644 --- a/app/controllers/admin/system_info_controller.rb +++ b/app/controllers/admin/system_info_controller.rb @@ -6,8 +6,9 @@ class Admin::SystemInfoController < ApplicationController EXCLUDED_MOUNT_OPTIONS = [ 'nobrowse', 'read-only', - 'ro' - ] + 'ro', + 'noexec' + ].freeze EXCLUDED_MOUNT_TYPES = [ 'autofs', @@ -31,7 +32,7 @@ class Admin::SystemInfoController < ApplicationController 'tmpfs', 'tracefs', 'vfat' - ] + ].freeze # GET /admin/system_info def index @@ -41,6 +42,7 @@ def index set_cpus set_memory + set_diskspace set_disks set_env end @@ -54,7 +56,14 @@ def set_cpus end def set_memory - @memory = Vmstat.memory + memory = Vmstat.memory + percent = percent(memory.active_bytes, memory.total_bytes) + @memory = { + used: memory.active_bytes, + total: memory.total_bytes, + percent: percent, + color: progress_color(percent) + } rescue @memory = nil end @@ -65,11 +74,22 @@ def set_env end.sort end - def set_disks - mounts = ::Sys::Filesystem.mounts - @disks = mounts.each_with_object([]) do |mount, obj| - mount_options = mount.options.split(',') + def set_diskspace + disk = Sys::Filesystem.stat(Rails.root) + percent = percent(disk.bytes_used, disk.bytes_total) + @diskspace = { + used: disk.bytes_used, + total: disk.bytes_total, + percent: percent, + color: progress_color(percent) + } + rescue + @diskspace = nil + end + def set_disks + @disks = ::Sys::Filesystem.mounts.each_with_object([]) do |mount, obj| + mount_options = mount.options.split(',').map(&:strip) next if (EXCLUDED_MOUNT_OPTIONS & mount_options).any? next if (EXCLUDED_MOUNT_TYPES & [mount.mount_type]).any? @@ -77,11 +97,13 @@ def set_disks disk = Sys::Filesystem.stat(mount.mount_point) next if obj.any? { |i| i[:mount_path] == disk.path } + percent = percent(disk.bytes_used, disk.bytes_total) obj.push( bytes_total: disk.bytes_total, bytes_used: disk.bytes_used, - disk_name: mount.name, - mount_path: disk.path + mount_path: disk.path, + percent: percent, + color: progress_color(percent) ) rescue Sys::Filesystem::Error next @@ -108,4 +130,19 @@ def filtered_token(chars) suffix = chars[(prefix.size + average * 2)..-1] "#{prefix}#{hidden}#{suffix}" end + + def percent(value, n) + value.to_f / n.to_f * 100.0 + end + + def progress_color(percent) + case percent.to_i + when 0..60 + 'bg-success' + when 61..80 + 'bg-warning' + else + 'bg-danger' + end + end end diff --git a/app/controllers/dashboards_controller.rb b/app/controllers/dashboards_controller.rb index 53abd44a0..849d98adb 100644 --- a/app/controllers/dashboards_controller.rb +++ b/app/controllers/dashboards_controller.rb @@ -46,6 +46,7 @@ def sidekiq_stats def disk_usage disk = Sys::Filesystem.stat(Rails.root) - ActiveSupport::NumberHelper.number_to_human_size disk.bytes_total + percent = (disk.bytes_used.to_f / disk.bytes_total.to_f * 100.0) + ActiveSupport::NumberHelper.number_to_percentage(percent, precision: 0) end end diff --git a/app/views/admin/system_info/index.html.slim b/app/views/admin/system_info/index.html.slim index d687fb8bb..393b55e53 100644 --- a/app/views/admin/system_info/index.html.slim +++ b/app/views/admin/system_info/index.html.slim @@ -31,9 +31,19 @@ dd pre - if @memory - = "#{number_to_human_size(@memory.active_bytes)} / #{number_to_human_size(@memory.total_bytes)}" + = "#{number_to_human_size(@memory[:used])} / #{number_to_human_size(@memory[:total])}" + .progress.progress-bar-striped class="#{@memory[:color]}" role="progressbar" aria-valuenow="#{@memory[:percent]}" aria-valuemin="0" aria-valuemax="100" style="width: #{@memory[:percent]}%" - else | 内存信息监测失败 + dt + | 磁盘 + dd + pre + - if @diskspace + = "#{number_to_human_size(@diskspace[:used])} / #{number_to_human_size(@diskspace[:total])}" + .progress.progress-bar-striped class="#{@diskspace[:color]}" role="progressbar" aria-valuenow="#{@diskspace[:percent]}" aria-valuemin="0" aria-valuemax="100" style="width: #{@diskspace[:percent]}%" + - else + | 监测失败 dt 运行时间 dd pre @@ -43,7 +53,7 @@ | ) .card .card-header - h3.card-title 磁盘信息 + h3.card-title 挂载信息 .card-body - unless @disks.blank? dl.system-info @@ -52,6 +62,7 @@ dd pre = "#{number_to_human_size(disk[:bytes_used])} / #{number_to_human_size(disk[:bytes_total])}" + .progress.progress-bar-striped class="#{disk[:color]}" role="progressbar" aria-valuenow="#{disk[:percent]}" aria-valuemin="0" aria-valuemax="100" style="width: #{disk[:percent]}%" - else | 硬盘信息无法获取 diff --git a/app/views/dashboards/_analytics.html.slim b/app/views/dashboards/_analytics.html.slim index 1b7b7e77d..b0d5c84d0 100644 --- a/app/views/dashboards/_analytics.html.slim +++ b/app/views/dashboards/_analytics.html.slim @@ -9,4 +9,4 @@ section.analytics == render 'widget', title: '网络钩子', count: @analytics[:webhooks], url: admin_web_hooks_path, color_style: 'bg-olive', icon: 'fas fa-anchor' == render 'widget', title: '用户', count: @analytics[:users], url: admin_users_path, color_style: 'bg-warning', icon: 'fas fa-user' == render 'widget', title: '后台任务', count: @analytics[:jobs], url: admin_background_jobs_path, color_style: 'bg-maroon', icon: 'fas fa-bezier-curve' - == render 'widget', title: '空间占用', count: @analytics[:disk], url: admin_system_info_index_path, color_style: 'bg-indigo', icon: 'fas fa-server' \ No newline at end of file + == render 'widget', title: '磁盘使用率', count: @analytics[:disk], url: admin_system_info_index_path, color_style: 'bg-indigo', icon: 'fas fa-server' \ No newline at end of file From b382f9975daa2f2254831cb27f44b6b339b62ac6 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 30 Aug 2021 18:40:52 +0800 Subject: [PATCH 0640/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E6=AD=A3=E8=B0=83?= =?UTF-8?q?=E8=AF=95=E6=96=87=E4=BB=B6=E7=9A=84=E6=A0=87=E9=A2=98=E9=87=8D?= =?UTF-8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/debug_files_controller.rb | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/app/controllers/debug_files_controller.rb b/app/controllers/debug_files_controller.rb index 7ccf55d71..822d3c9ad 100644 --- a/app/controllers/debug_files_controller.rb +++ b/app/controllers/debug_files_controller.rb @@ -5,30 +5,27 @@ class DebugFilesController < ApplicationController before_action :set_debug_file, only: %i[destroy] def index - @title = '调试文件列表' + @title = '调试文件' @apps = App.avaiable_debug_files authorize @apps end def new - @title = '上传调试文件文件' + @title = '上传调试文件' @apps = App.all @debug_file = DebugFile.new authorize @debug_file end def create - @title = '上传调试文件文件' + @title = '上传调试文件' @debug_file = DebugFile.new(debug_file_params) authorize @debug_file - if @debug_file.save - DebugFileTeardownJob.perform_later(@debug_file, current_user.id) + return render :new unless @debug_file.save - redirect_to debug_files_url, notice: '调试文件上传成功,后台正在应用解包请稍后查看详情' - else - render :new - end + DebugFileTeardownJob.perform_later(@debug_file, current_user.id) + redirect_to debug_files_url, notice: '调试文件上传成功,后台正在应用解包请稍后查看详情' end def destroy From 2b96897643e335905b7e95b846d211664dd757e7 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 31 Aug 2021 10:50:11 +0800 Subject: [PATCH 0641/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0=E5=8F=98=E9=87=8F=E8=AE=BE=E7=BD=AE=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/api/apps/upload_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/api/apps/upload_controller.rb b/app/controllers/api/apps/upload_controller.rb index 5e2ef92c0..659787f3d 100644 --- a/app/controllers/api/apps/upload_controller.rb +++ b/app/controllers/api/apps/upload_controller.rb @@ -61,7 +61,7 @@ def perform_app_web_hook_job end def perform_teardown_job - @release.perform_teardown_job(user.id) + @release.perform_teardown_job(@user.id) end ########################### From c284a1f6d1bb0d63842e39606e2ebf841ebaa699 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 31 Aug 2021 12:07:03 +0800 Subject: [PATCH 0642/2165] =?UTF-8?q?fix:=20=E6=97=A0=E6=B3=95=E7=BC=96?= =?UTF-8?q?=E8=BE=91=E5=BD=93=E5=89=8D=E7=94=A8=E6=88=B7=E7=9A=84=E6=98=B5?= =?UTF-8?q?=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/devise/registrations/edit.html.slim | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/app/views/devise/registrations/edit.html.slim b/app/views/devise/registrations/edit.html.slim index 6c00fc33c..0a6e53a88 100644 --- a/app/views/devise/registrations/edit.html.slim +++ b/app/views/devise/registrations/edit.html.slim @@ -18,10 +18,9 @@ | 等待确认邮件: = resource.unconfirmed_email - = f.input :password, label: '新密码', - input_html: { autocomplete: "new-password" } - = f.input :password_confirmation, label: '重复新密码', - input_html: { autocomplete: "new-password" } + = f.input :current_password, label: '当前密码', input_html: { autocomplete: "password" } + = f.input :password, label: '新密码', input_html: { autocomplete: "new-password" } + = f.input :password_confirmation, label: '重复新密码', input_html: { autocomplete: "new-password" } = f.submit '更新', class: 'btn btn-lg btn-primary' .card.card-info From 5bbd74a81fc2f1072c303490961caa833804d5c1 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 31 Aug 2021 16:52:04 +0800 Subject: [PATCH 0643/2165] =?UTF-8?q?fix:=20=E8=B4=A6=E6=88=B7=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E9=94=99=E8=AF=AF=E8=B7=B3=E8=BD=AC=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/users/omniauth_callbacks_controller.rb | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/controllers/users/omniauth_callbacks_controller.rb b/app/controllers/users/omniauth_callbacks_controller.rb index 9d85b9aae..ded4be26b 100644 --- a/app/controllers/users/omniauth_callbacks_controller.rb +++ b/app/controllers/users/omniauth_callbacks_controller.rb @@ -19,7 +19,7 @@ def gitlab def failure flash[:error] = "授权失败!请检查你的账户和密码是否正确,原始错误信息:#{failure_message}" - redirect_to goback_path + redirect_to after_omniauth_failure_path_for(resource_name) end private @@ -60,6 +60,8 @@ def store_new_user(name, auth) def goback_path omni_params = request.env['omniauth.params'] - redirect_path = omni_params['back'].presence || root_path + redirect_path = omni_params['back'].presence || + request.env['HTTP_REFERER'] || + root_path end end From 7bc42dc5cba1abe2b1fb521c5099d6dd53ba1c28 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 31 Aug 2021 18:30:10 +0000 Subject: [PATCH 0644/2165] chore(deps): bump tar from 6.1.4 to 6.1.11 Bumps [tar](https://github.com/npm/node-tar) from 6.1.4 to 6.1.11. - [Release notes](https://github.com/npm/node-tar/releases) - [Changelog](https://github.com/npm/node-tar/blob/main/CHANGELOG.md) - [Commits](https://github.com/npm/node-tar/compare/v6.1.4...v6.1.11) --- updated-dependencies: - dependency-name: tar dependency-type: indirect ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 98676cd2a..beb1a4ed7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7584,9 +7584,9 @@ tapable@^1.0.0, tapable@^1.1.3: integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== tar@^6.0.2: - version "6.1.4" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.4.tgz#9f0722b772a5e00dba7d52e1923b37a7ec3799b3" - integrity sha512-kcPWrO8S5ABjuZ/v1xQHP8xCEvj1dQ1d9iAb6Qs4jLYzaAIYWwST2IQpz7Ud8VNYRI+fGhFjrnzRKmRggKWg3g== + version "6.1.11" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621" + integrity sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA== dependencies: chownr "^2.0.0" fs-minipass "^2.0.0" From 45f40e185af6d903d20bfcf3e24ac2f3ae32dca4 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 1 Sep 2021 14:58:29 +0800 Subject: [PATCH 0645/2165] =?UTF-8?q?doc:=20=E6=9B=B4=E6=96=B0=20slogan?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b090f7420..49aaecb3e 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ [![Codacy Badge](https://app.codacy.com/project/badge/Grade/5e5c7bbeb1214fa39b11a7414f0d7171)](https://www.codacy.com/gh/tryzealot/zealot) [![License](https://img.shields.io/github/license/tryzealot/zealot)](LICENSE) -开源自部署移动应用分发平台,提供 iOS、Android SDK、fastlane 等丰富组件库,打包分发流程、上传应用竟然如此简单、解决开发人员频繁打包的烦恼 En Taro Adun! 🖖 +开源自部署 iOS、Android 及 macOS 应用分发平台,提供 iOS、Android SDK、fastlane 等丰富组件库,打包分发流程、上传应用竟然如此简单、独立部署解决企业使用的烦恼。 En Taro Adun! 🖖 ![Zealot Showcase](https://zealot.ews.im/_media/showcase.png) ## 特性 From 7fd0d7cdbde2c81028e2ff94173a1c8fce29fa66 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 3 Sep 2021 13:12:10 +0800 Subject: [PATCH 0646/2165] =?UTF-8?q?chore:=20=E9=95=9C=E5=83=8F=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E6=94=B9=E4=B8=BA=204.2.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 411498f7f..9de5645ef 100644 --- a/Dockerfile +++ b/Dockerfile @@ -61,7 +61,7 @@ ARG BUILD_DATE ARG VCS_REF ARG TAG -ARG ZEALOT_VERSION="4.1.0" +ARG ZEALOT_VERSION="4.2.0" ARG REPLACE_CHINA_MIRROR="true" ARG ORIGINAL_REPO_URL="dl-cdn.alpinelinux.org" ARG MIRROR_REPO_URL="mirrors.ustc.edu.cn" From 40c9ebfdf1283c5f7704c10245af232e4931d2ad Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 7 Sep 2021 10:38:47 +0800 Subject: [PATCH 0647/2165] =?UTF-8?q?fix:=20=E6=8D=95=E8=8E=B7=E8=A7=A3?= =?UTF-8?q?=E5=8C=85=E5=BC=82=E5=B8=B8=E4=B8=8A=E6=8A=A5=20Sentry?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/teardowns_controller.rb | 2 +- app/models/release.rb | 4 +++- package.json | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/app/controllers/teardowns_controller.rb b/app/controllers/teardowns_controller.rb index 7a51259f5..603d21526 100644 --- a/app/controllers/teardowns_controller.rb +++ b/app/controllers/teardowns_controller.rb @@ -44,7 +44,7 @@ def create rescue => e logger.error "Teardown error: #{e}" Sentry.capture_exception e - flash[:error] = "上传应用解析发现未知异常,原始错误:#{e.message}" + flash[:error] = "上传应用解析发现未知异常,原始错误 [#{e.class}]:#{e.message}" render :new end diff --git a/app/models/release.rb b/app/models/release.rb index a0c08c2bc..855eaf0d6 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -96,10 +96,12 @@ def self.rescuing_app_parse_errors raise AppInfo::UnkownFileTypeError, '上传应用的文件类型不支持' rescue NoMethodError => e logger.error e.full_message + Sentry.capture_exception e raise AppInfo::Error, '上传应用解析异常,请确保应用是支持的文件类型且没有安全加固处理' rescue => e logger.error e.full_message - raise AppInfo::Error, "上传应用解析发现未知异常,原始错误:#{e.message}" + Sentry.capture_exception e + raise AppInfo::Error, "上传应用解析发现未知异常,原始错误 [#{e.class}]:#{e.message}" end private_methods :rescuing_app_parse_errors diff --git a/package.json b/package.json index 9277bd215..fea7d7774 100644 --- a/package.json +++ b/package.json @@ -15,5 +15,5 @@ "devDependencies": { "webpack-dev-server": "^3.11.2" }, - "version": "4.1.0" + "version": "4.2.0" } From cda4bda7cfd6660b2b217b5752bcd78f6c594ee3 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 10 Sep 2021 17:35:37 +0800 Subject: [PATCH 0648/2165] =?UTF-8?q?refactor:=20=E5=BA=94=E7=94=A8?= =?UTF-8?q?=E5=9B=BE=E6=A0=87=E4=B8=8D=E5=86=8D=E6=8C=89=E7=85=A7=E5=B0=BA?= =?UTF-8?q?=E5=AF=B8=E5=A4=84=E7=90=86=E6=84=8F=E4=B9=89=E4=B8=8D=E5=A4=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 8 ++++---- app/helpers/apps_helper.rb | 3 +-- app/jobs/app_web_hook_job.rb | 2 +- app/models/app.rb | 18 +++++++++++++++++- app/models/release.rb | 26 +++++++++++++------------- app/uploaders/app_icon_uploader.rb | 14 -------------- 6 files changed, 36 insertions(+), 35 deletions(-) diff --git a/Dockerfile b/Dockerfile index 9de5645ef..00e454be2 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ FROM ruby:2.7-alpine as builder ARG BUILD_PACKAGES="build-base libxml2 libxslt git" -ARG DEV_PACKAGES="libxml2-dev libxslt-dev yaml-dev imagemagick-dev postgresql-dev nodejs npm yarn" +ARG DEV_PACKAGES="libxml2-dev libxslt-dev yaml-dev postgresql-dev nodejs npm yarn" ARG RUBY_PACKAGES="tzdata" ARG REPLACE_CHINA_MIRROR="true" @@ -39,8 +39,8 @@ COPY Gemfile Gemfile.lock ./ RUN bundle config --global frozen 1 && \ bundle config set deployment 'true' && \ bundle config set without 'development test' && \ - bundle install --path=vendor/bundle \ - --jobs `expr $(cat /proc/cpuinfo | grep -c "cpu cores") - 1` --retry 3 + bundle config set --local path 'vendor/bundle' && \ + bundle install --jobs `expr $(cat /proc/cpuinfo | grep -c "cpu cores") - 1` --retry 3 COPY . $APP_ROOT RUN SECRET_TOKEN=precompile_placeholder bin/rails assets:precompile @@ -66,7 +66,7 @@ ARG REPLACE_CHINA_MIRROR="true" ARG ORIGINAL_REPO_URL="dl-cdn.alpinelinux.org" ARG MIRROR_REPO_URL="mirrors.ustc.edu.cn" ARG RUBYGEMS_SOURCE="https://gems.ruby-china.com/" -ARG PACKAGES="tzdata curl logrotate imagemagick imagemagick-dev postgresql-dev postgresql-client openssl openssl-dev caddy" +ARG PACKAGES="tzdata curl logrotate postgresql-dev postgresql-client openssl openssl-dev caddy" ARG RUBY_GEMS="bundler" ARG APP_ROOT=/app ARG S6_OVERLAY_VERSION="2.2.0.3" diff --git a/app/helpers/apps_helper.rb b/app/helpers/apps_helper.rb index 5013dc614..cb440cd93 100644 --- a/app/helpers/apps_helper.rb +++ b/app/helpers/apps_helper.rb @@ -14,8 +14,7 @@ def app_icon(release, options = {}) return image_pack_tag('media/images/touch-icon.png', options) end - size = options.delete(:size) || :thumb - image_tag(release.icon_url(size), options) + image_tag(release.icon_url, options) end def app_release_auth_key(release) diff --git a/app/jobs/app_web_hook_job.rb b/app/jobs/app_web_hook_job.rb index 5fbb6320c..d0a9556c8 100644 --- a/app/jobs/app_web_hook_job.rb +++ b/app/jobs/app_web_hook_job.rb @@ -55,7 +55,7 @@ def build_body file_size: @release.file.size, release_url: @release.release_url, install_url: @release.install_url, - icon_url: @release.icon_url(:medium), + icon_url: @release.icon_url, qrcode_url: @release.qrcode_url, uploaded_at: @release.created_at } diff --git a/app/models/app.rb b/app/models/app.rb index a51a294cc..db8f8e02e 100644 --- a/app/models/app.rb +++ b/app/models/app.rb @@ -14,8 +14,24 @@ class App < ApplicationRecord def recently_release return unless scheme = schemes.take return unless channel = scheme.channels.take - return unless release = channel.releases.take + return unless release = channel.releases.last release end + + def total_schemes + schemes.size + end + + def total_channels + schemes.all.sum { |s| s.channels.size } + end + + def total_releases + schemes.all.sum do |scheme| + scheme.channels.all.sum do |channel| + channel.releases.size + end + end + end end diff --git a/app/models/release.rb b/app/models/release.rb index 855eaf0d6..fcbcf1592 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -70,23 +70,23 @@ def self.upload_file(params, parser = nil) end def self.fetch_icon(parser) - case parser.os - when AppInfo::Platform::IOS - parser.icons.last.try(:[], :uncrushed_file) - when AppInfo::Platform::MACOS - return if parser.icons.blank? - - file = parser.icons[:sets].last.try(:[], :file) - File.open(file, 'rb') if file - when AppInfo::Platform::ANDROID - # 处理 Android anydpi 自适应图标 - file = parser.icons + file = case parser.os + when AppInfo::Platform::IOS + parser.icons.last.try(:[], :uncrushed_file) + when AppInfo::Platform::MACOS + return if parser.icons.blank? + + parser.icons[:sets].last.try(:[], :file) + when AppInfo::Platform::ANDROID + # 处理 Android anydpi 自适应图标 + parser.icons .reject { |f| File.extname(f[:file]) == '.xml' } .last .try(:[], :file) + end - File.open(file, 'rb') if file - end + + File.open(file, 'rb') if file end private_methods :fetch_icon diff --git a/app/uploaders/app_icon_uploader.rb b/app/uploaders/app_icon_uploader.rb index 7ed9ddc67..142692e6e 100644 --- a/app/uploaders/app_icon_uploader.rb +++ b/app/uploaders/app_icon_uploader.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true class AppIconUploader < ApplicationUploader - include CarrierWave::MiniMagick - def store_dir "#{base_store_dir}/apps/a#{model.app.id}/r#{model.id}/icons" end @@ -14,18 +12,6 @@ def store_dir # "/media/images/touch-icon.png" # end - version :thumb do - process resize_to_fit: [30, 30] - end - - version :medium do - process resize_to_fit: [80, 80] - end - - version :large do - process resize_to_fit: [120, 120] - end - def extension_allowlist [:png] end From 5dc1ed99d961ee49eb8efa49d16fc4e4cbf1ab61 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 10 Sep 2021 19:22:02 +0800 Subject: [PATCH 0649/2165] =?UTF-8?q?fix:=20=E5=85=BC=E5=AE=B9=E4=B8=8D?= =?UTF-8?q?=E5=90=8C=20zip=20=E5=BA=94=E7=94=A8=E5=8E=8B=E7=BC=A9=E5=90=8E?= =?UTF-8?q?=20dSYM=20=E8=A7=A3=E6=9E=90=E5=A4=B1=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 52912af2c..dc8fdb352 100644 --- a/Gemfile +++ b/Gemfile @@ -80,7 +80,7 @@ gem 'turbolinks', '~> 5' gem 'webpacker', '~> 5.4' # 用于解析 ipa 和 apk 包 -gem 'app-info', '~> 2.6.3' +gem 'app-info', '~> 2.6.4' # Mobile config gem 'rails-settings-cached', '~> 2.7.1' diff --git a/Gemfile.lock b/Gemfile.lock index 3bf7a2ee1..975c17e0d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -73,7 +73,7 @@ GEM zeitwerk (~> 2.3) addressable (2.8.0) public_suffix (>= 2.0.2, < 5.0) - app-info (2.6.3) + app-info (2.6.4) CFPropertyList (>= 2.3.4, < 3.1.0) icns (~> 0.2.0) image_size (>= 1.5, < 2.2) @@ -507,7 +507,7 @@ DEPENDENCIES active_analytics active_model_serializers (~> 0.10.12) activejob-status - app-info (~> 2.6.3) + app-info (~> 2.6.4) awesome_print better_errors binding_of_caller From 44e823b937d35e55775eb91cd6c55a7451be3731 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 10 Sep 2021 20:51:19 +0800 Subject: [PATCH 0650/2165] =?UTF-8?q?refactor:=20caddy=20=E5=86=85?= =?UTF-8?q?=E9=83=A8=E5=8F=8D=E4=BB=A3=E6=97=A5=E5=BF=97=E4=B8=8D=E5=86=8D?= =?UTF-8?q?=E8=BE=93=E5=87=BA=20stdout?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker/rootfs/etc/Caddyfile | 16 ++++++++++++---- docker/rootfs/etc/services.d/caddy/run | 2 +- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/docker/rootfs/etc/Caddyfile b/docker/rootfs/etc/Caddyfile index 997c31f67..47c983d01 100644 --- a/docker/rootfs/etc/Caddyfile +++ b/docker/rootfs/etc/Caddyfile @@ -3,12 +3,16 @@ root * /app/public encode zstd gzip file_server -log +log { + output file /app/log/caddy.log { + roll_size 50mb + roll_keep 5 + roll_keep_for 720h + } +} @zealot { - # # websockets - # header Connection *Upgrade* - # header Upgrade websocket + path * # static files not file @@ -31,4 +35,8 @@ reverse_proxy @zealot { rewrite * /500.html file_server } + + # websockets + # header Connection *Upgrade* + # header Upgrade websocket } \ No newline at end of file diff --git a/docker/rootfs/etc/services.d/caddy/run b/docker/rootfs/etc/services.d/caddy/run index a91d26af8..e49a3eb36 100644 --- a/docker/rootfs/etc/services.d/caddy/run +++ b/docker/rootfs/etc/services.d/caddy/run @@ -1,4 +1,4 @@ #!/usr/bin/with-contenv sh echo "Starting Caddy" -/usr/sbin/caddy run -config /etc/Caddyfile | tee /app/log/caddy.log \ No newline at end of file +/usr/sbin/caddy run -config /etc/Caddyfile \ No newline at end of file From d7d4b55d3160811b7332ac58408f1784f358ec90 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 10 Sep 2021 21:01:46 +0000 Subject: [PATCH 0651/2165] chore(deps): bump http from 5.0.1 to 5.0.2 Bumps [http](https://github.com/httprb/http) from 5.0.1 to 5.0.2. - [Release notes](https://github.com/httprb/http/releases) - [Changelog](https://github.com/httprb/http/blob/main/CHANGES.md) - [Commits](https://github.com/httprb/http/compare/v5.0.1...v5.0.2) --- updated-dependencies: - dependency-name: http dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Gemfile b/Gemfile index dc8fdb352..d13693d5b 100644 --- a/Gemfile +++ b/Gemfile @@ -37,7 +37,7 @@ gem 'carrierwave', '~> 2.2.2' # Helper ## HTTP 请求 -gem 'http', '~> 5.0.0' +gem 'http', '~> 5.0.2' ## 用户认证 gem 'pundit', '~> 2.1.0' gem 'devise', '~> 4.8.0' diff --git a/Gemfile.lock b/Gemfile.lock index 975c17e0d..ec9f6fc68 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -153,7 +153,7 @@ GEM faraday-net_http_persistent (1.2.0) faraday-patron (1.0.0) faraday-rack (1.0.0) - ffi (1.15.3) + ffi (1.15.4) ffi-compiler (1.0.1) ffi (>= 1.0.0) rake @@ -201,11 +201,11 @@ GEM hashie (4.1.0) health_check (3.1.0) railties (>= 5.0) - http (5.0.1) - addressable (~> 2.3) + http (5.0.2) + addressable (~> 2.8) http-cookie (~> 1.0) http-form_data (~> 2.2) - llhttp-ffi (~> 0.3.0) + llhttp-ffi (~> 0.4.0) http-cookie (1.0.4) domain_name (~> 0.5) http-form_data (2.3.0) @@ -251,7 +251,7 @@ GEM listen (3.7.0) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) - llhttp-ffi (0.3.1) + llhttp-ffi (0.4.0) ffi-compiler (~> 1.0) rake (~> 13.0) loofah (2.12.0) @@ -528,7 +528,7 @@ DEPENDENCIES guard-sidekiq guard-webpacker health_check (~> 3.1.0) - http (~> 5.0.0) + http (~> 5.0.2) jb (~> 0.8.0) jenkins_api_client kaminari From 0c375aaff42dab3b8354a62d9bde0ec803af5750 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 10 Sep 2021 21:02:38 +0000 Subject: [PATCH 0652/2165] chore(deps): bump filepond from 4.29.0 to 4.29.1 Bumps [filepond](https://github.com/pqina/filepond) from 4.29.0 to 4.29.1. - [Release notes](https://github.com/pqina/filepond/releases) - [Changelog](https://github.com/pqina/filepond/blob/master/CHANGELOG.md) - [Commits](https://github.com/pqina/filepond/commits) --- updated-dependencies: - dependency-name: filepond dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index fea7d7774..f2e0bfaf3 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "admin-lte": "^3.1.0", "clipboard": "^2.0.8", "compare-versions": "^3.6.0", - "filepond": "^4.29.0", + "filepond": "^4.29.1", "rails-erb-loader": "^5.5.2", "turbolinks": "^5.2.0" }, diff --git a/yarn.lock b/yarn.lock index 98676cd2a..ddc619a5e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3706,10 +3706,10 @@ file-uri-to-path@1.0.0: resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== -filepond@^4.29.0: - version "4.29.0" - resolved "https://registry.yarnpkg.com/filepond/-/filepond-4.29.0.tgz#3429baa6edcf242f26f70f31396bba4ff164f087" - integrity sha512-RB62AVNTpV1G4pDNoRXPZYkEbYp0vrJyTNLDDitwJ3V5u4B22f1Ywai4SVwZ+vecNnW3tB68XVXaB0VlQvHT7A== +filepond@^4.29.1: + version "4.29.1" + resolved "https://registry.yarnpkg.com/filepond/-/filepond-4.29.1.tgz#cd3d290091f96dca7f2db19c7dd485bf97ecb0be" + integrity sha512-j2YMYxzhDXYQScARkkYb5NwwfOxLWKWJK3v/Wozq1gQX3s5XLY3GfJhR9ysqP5l4697J3gIn898fRG5Z61UYIQ== fill-range@^4.0.0: version "4.0.0" From 31dc5d53afbf6e929871bfefa0d941fc95e001fc Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 13 Sep 2021 11:05:44 +0800 Subject: [PATCH 0653/2165] chore(deps): bump sentry-rails, sentry-ruby to 4.7.2 --- Gemfile.lock | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 975c17e0d..876714c8a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -134,7 +134,7 @@ GEM erubi (1.10.0) et-orbi (1.2.4) tzinfo - faraday (1.7.0) + faraday (1.7.1) faraday-em_http (~> 1.0) faraday-em_synchrony (~> 1.0) faraday-excon (~> 1.1) @@ -275,7 +275,7 @@ GEM nenv (0.3.0) net-ldap (0.17.0) nio4r (2.5.8) - nokogiri (1.12.3) + nokogiri (1.12.4) mini_portile2 (~> 2.6.1) racc (~> 1.4) notiffany (0.1.3) @@ -413,18 +413,18 @@ GEM rufus-scheduler (3.7.0) fugit (~> 1.1, >= 1.1.6) semantic_range (3.0.0) - sentry-rails (4.6.5) + sentry-rails (4.7.2) railties (>= 5.0) - sentry-ruby-core (~> 4.6.0) - sentry-ruby (4.6.5) + sentry-ruby-core (~> 4.7.0) + sentry-ruby (4.7.2) concurrent-ruby (~> 1.0, >= 1.0.2) faraday (>= 1.0) - sentry-ruby-core (= 4.6.5) - sentry-ruby-core (4.6.5) + sentry-ruby-core (= 4.7.2) + sentry-ruby-core (4.7.2) concurrent-ruby faraday - sentry-sidekiq (4.6.5) - sentry-ruby-core (~> 4.6.0) + sentry-sidekiq (4.7.2) + sentry-ruby-core (~> 4.7.0) sidekiq (>= 3.0) shellany (0.0.1) sidekiq (6.2.2) From 5cf88e84e1d5f938ea208c273e42f9ca165e6ac8 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 13 Sep 2021 13:06:44 +0800 Subject: [PATCH 0654/2165] =?UTF-8?q?fix:=20=E4=B8=8B=E8=BD=BD=E8=BF=94?= =?UTF-8?q?=E5=9B=9E=20icon=20=E5=9C=B0=E5=9D=80=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/releases/install/show.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/releases/install/show.html.erb b/app/views/releases/install/show.html.erb index 1fc62a5e8..126aa6d08 100644 --- a/app/views/releases/install/show.html.erb +++ b/app/views/releases/install/show.html.erb @@ -20,7 +20,7 @@ needs-shine url - <%= @release.icon_url(:medium) %> + <%= @release.icon_url %> <% end %> From 84aa218f42e3dcb2905d82015aff82c96aa52556 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 13 Sep 2021 13:22:07 +0800 Subject: [PATCH 0655/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=20ios=20?= =?UTF-8?q?=E5=AE=89=E8=A3=85=20plist=20=E6=B2=A1=E6=9C=89=E8=BF=94?= =?UTF-8?q?=E5=9B=9E=E5=AE=8C=E6=95=B4=20icon=20url?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/environments/production.rb | 3 --- config/initializers/carrierwave.rb | 12 +++++++----- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/config/environments/production.rb b/config/environments/production.rb index 193f7e693..30b22cfd8 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -35,9 +35,6 @@ # Do not fallback to assets pipeline if a precompiled asset is missed. config.assets.compile = false - # Enable serving of images, stylesheets, and JavaScripts from an asset server. - # config.action_controller.asset_host = Rails.application.secrets.domain - # Specifies the header that your server uses for sending files. if ENV['RAILS_SERVE_STATIC_FILES'].blank? # config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache diff --git a/config/initializers/carrierwave.rb b/config/initializers/carrierwave.rb index 71efd4e19..f1ed8503b 100644 --- a/config/initializers/carrierwave.rb +++ b/config/initializers/carrierwave.rb @@ -1,7 +1,9 @@ # frozen_string_literal: true -CarrierWave.configure do |config| - url_options = Zealot.config.url_options - config.asset_host = "#{url_options[:protocol]}#{url_options[:host]}" - config.cache_dir = Rails.root.join('tmp', 'uploads', Rails.env) -end +Rails.configuration.to_prepare do + CarrierWave.configure do |config| + url_options = Zealot.config.url_options + config.asset_host = "#{url_options[:protocol]}#{url_options[:host]}" + config.cache_dir = Rails.root.join('tmp', 'uploads', Rails.env) + end +end \ No newline at end of file From 21d6dc830d80e39a00d2cb1694c8cc6da245c2b5 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 13 Sep 2021 15:12:21 +0800 Subject: [PATCH 0656/2165] =?UTF-8?q?refactor:=20=E4=BD=BF=E7=94=A8=20Sett?= =?UTF-8?q?ing=20=E4=BB=A3=E6=9B=BF=20Rails.config.x?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/setting.rb | 12 ++++++++++++ config/application.rb | 5 +---- config/initializers/0_hosts.rb | 18 +++--------------- config/initializers/carrierwave.rb | 2 +- config/initializers/devise.rb | 2 +- 5 files changed, 18 insertions(+), 21 deletions(-) diff --git a/app/models/setting.rb b/app/models/setting.rb index 2f724f5de..ce409b3e9 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -28,6 +28,18 @@ def find_or_default(var:) def group_configs defined_fields.select { |v| v[:options][:display] == true }.group_by { |v| v[:scope] || :misc } end + + def protocol + site_https ? 'https://' : 'http://' + end + + def url_options + { + host: site_domain, + protocol: protocol, + trailing_slash: false + } + end end # 系统配置 diff --git a/config/application.rb b/config/application.rb index cf3962e78..55b507364 100644 --- a/config/application.rb +++ b/config/application.rb @@ -57,6 +57,7 @@ class Application < Rails::Application # Action Cable setting to de-couple it from the main Rails process. # config.action_cable.url = ENV['ACTION_CABLE_FRONTEND_URL'] || 'ws://localhost:28080' + config.action_cable.mount_path = '/cable' # Action Cable setting to allow connections from these domains. # if origins = ENV['ACTION_CABLE_ALLOWED_REQUEST_ORIGINS'] @@ -99,8 +100,4 @@ class Application < Rails::Application # Manage exception page # config.exceptions_app = self.routes end - - def self.config - @config ||= Rails.configuration.x - end end diff --git a/config/initializers/0_hosts.rb b/config/initializers/0_hosts.rb index 3dff388e3..2657ba9f4 100644 --- a/config/initializers/0_hosts.rb +++ b/config/initializers/0_hosts.rb @@ -1,23 +1,11 @@ # frozen_string_literal: true Rails.configuration.to_prepare do - Rails.application.configure do - https = Setting.site_https - host = Setting.site_domain - - url_options = { - host: host, - protocol: https ? 'https://' : 'http://', - trailing_slash: false - } - - config.x.url_options = url_options - config.x.use_https = https - config.x.local_domain = host - config.x.host = "#{url_options[:protocol]}#{url_options[:host]}" + url_options = Setting.url_options + Rails.application.configure do config.action_mailer.default_url_options = url_options end - Rails.application.routes.default_url_options = Zealot.config.url_options + Rails.application.routes.default_url_options = url_options end \ No newline at end of file diff --git a/config/initializers/carrierwave.rb b/config/initializers/carrierwave.rb index f1ed8503b..f617fd66e 100644 --- a/config/initializers/carrierwave.rb +++ b/config/initializers/carrierwave.rb @@ -2,7 +2,7 @@ Rails.configuration.to_prepare do CarrierWave.configure do |config| - url_options = Zealot.config.url_options + url_options = Setting.url_options config.asset_host = "#{url_options[:protocol]}#{url_options[:host]}" config.cache_dir = Rails.root.join('tmp', 'uploads', Rails.env) end diff --git a/config/initializers/devise.rb b/config/initializers/devise.rb index b26e4a115..d414b9775 100644 --- a/config/initializers/devise.rb +++ b/config/initializers/devise.rb @@ -15,7 +15,7 @@ # Configure the e-mail address which will be shown in Devise::Mailer, # note that it will be overwritten if you use your own mailer class # with default "from" parameter. - # config.mailer_sender = 'no-reply@' + Zealot.config.url_options[:host] + # config.mailer_sender = 'no-reply@' + Setting.url_options[:host] # Configure the class responsible to send e-mails. # config.mailer = 'Devise::Mailer' From fe74b63b3fca7ee9d4d2a5191a8d336929b560cd Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 13 Sep 2021 15:29:55 +0800 Subject: [PATCH 0657/2165] =?UTF-8?q?feat:=20=E7=A6=81=E6=AD=A2=E7=BC=96?= =?UTF-8?q?=E8=BE=91=E8=AE=BE=E7=BD=AE=E5=8F=AA=E8=AF=BB=E7=9A=84=E7=B3=BB?= =?UTF-8?q?=E7=BB=9F=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/admin/settings_controller.rb | 5 +++++ app/models/setting.rb | 8 ++++++-- config/locales/zealot/zh-CN.yml | 6 +++--- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/app/controllers/admin/settings_controller.rb b/app/controllers/admin/settings_controller.rb index 57c97c56a..654d77c4a 100644 --- a/app/controllers/admin/settings_controller.rb +++ b/app/controllers/admin/settings_controller.rb @@ -2,6 +2,7 @@ class Admin::SettingsController < ApplicationController before_action :set_setting, only: %i[edit update] + before_action :verify_editable_setting, only: %i[edit] def index @title = '系统配置' @@ -34,4 +35,8 @@ def set_setting def setting_param params[:setting].permit! end + + def verify_editable_setting + raise Pundit::NotAuthorizedError, '当前设置为可读,无法修改' if @setting.readonly? === true + end end diff --git a/app/models/setting.rb b/app/models/setting.rb index ce409b3e9..6ca42beb6 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -46,8 +46,8 @@ def url_options scope :general do field :site_title, default: 'Zealot', type: :string, display: true, validates: { presence: true, length: { in: 3..16 } } - field :site_https, default: DEFAULT_SITE_HTTPS, type: :boolean, readonly: true - field :site_domain, default: (ENV['ZEALOT_DOMAIN'] || DEFAULT_SITE_DOMAIN), type: :string, readonly: true + field :site_domain, default: (ENV['ZEALOT_DOMAIN'] || DEFAULT_SITE_DOMAIN), type: :string, readonly: true, display: true + field :site_https, default: DEFAULT_SITE_HTTPS, type: :boolean, readonly: true, display: true field :admin_email, default: (ENV['ZEALOT_ADMIN_EMAIL'] || 'admin@zealot.com'), type: :string, readonly: true field :admin_password, default: (ENV['ZEALOT_ADMIN_PASSWORD'] || 'ze@l0t'), type: :string, readonly: true @@ -136,6 +136,10 @@ def url_options field :build_date, default: ENV['BUILD_DATE'], type: :string, readonly: true, display: true end + def readonly? + self.class.get_field(var.to_sym).try(:[], :readonly) === true + end + def field_validates validates = Setting.validators_on(var) validates.each_with_object([]) do |validate, obj| diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index 5994cb107..4edc529c8 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -2,9 +2,9 @@ zh-CN: admin: settings: general: 通用配置 - site_title: 站点标题 - site_https: 站点启用 HTTPS - site_domain: 站点域名 + site_title: 网站标题 + site_https: 启用 HTTPS + site_domain: 网站域名 presets: 默认值 default_schemes: 应用的类型名称 From 6e2ad785ca48c01a9b31823232f8b78460ac6381 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 14 Sep 2021 17:15:29 +0800 Subject: [PATCH 0658/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=20macOS=20?= =?UTF-8?q?=E4=B8=8B=E8=BD=BD=E6=96=87=E4=BB=B6=E5=90=8E=E7=BC=80=E4=B8=8D?= =?UTF-8?q?=E6=AD=A3=E7=A1=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/release.rb | 22 ++++------------------ 1 file changed, 4 insertions(+), 18 deletions(-) diff --git a/app/models/release.rb b/app/models/release.rb index fcbcf1592..157d96aa5 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -138,7 +138,7 @@ def download_url end def install_url - return download_url if channel.device_type.casecmp('android').zero? + return download_url if channel.device_type.casecmp?('android') || channel.device_type.casecmp?('macos') download_url = channel_release_install_url(channel.slug, id) "itms-services://?action=download-manifest&url=#{download_url}" @@ -153,14 +153,9 @@ def qrcode_url(size = :thumb) end def file_extname - case channel.device_type.downcase - when 'iphone', 'ipad', 'ios', 'universal' - '.ipa' - when 'android' - '.apk' - else - '.ipa_or_apk.zip' - end + return '.zip' if file.blank? || !File.file?(file&.path) + + File.extname(file.path) end def download_filename @@ -169,15 +164,6 @@ def download_filename ].join('_') + file_extname end - def mime_type - case channel.device_type - when 'iOS' - :ipa - when 'Android' - :apk - end - end - def empty_changelog(use_default_changelog = true) return [] unless use_default_changelog From 40658f7f6db844f88f7bf6eafead871fce2f0302 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 14 Sep 2021 17:15:29 +0800 Subject: [PATCH 0659/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=20macOS=20?= =?UTF-8?q?=E4=B8=8B=E8=BD=BD=E6=96=87=E4=BB=B6=E5=90=8E=E7=BC=80=E4=B8=8D?= =?UTF-8?q?=E6=AD=A3=E7=A1=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/release.rb | 22 ++++------------------ 1 file changed, 4 insertions(+), 18 deletions(-) diff --git a/app/models/release.rb b/app/models/release.rb index fcbcf1592..82dae80f6 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -138,7 +138,7 @@ def download_url end def install_url - return download_url if channel.device_type.casecmp('android').zero? + return download_url if device.casecmp?('android') || device.casecmp?('macos') download_url = channel_release_install_url(channel.slug, id) "itms-services://?action=download-manifest&url=#{download_url}" @@ -153,14 +153,9 @@ def qrcode_url(size = :thumb) end def file_extname - case channel.device_type.downcase - when 'iphone', 'ipad', 'ios', 'universal' - '.ipa' - when 'android' - '.apk' - else - '.ipa_or_apk.zip' - end + return '.zip' if file.blank? || !File.file?(file&.path) + + File.extname(file.path) end def download_filename @@ -169,15 +164,6 @@ def download_filename ].join('_') + file_extname end - def mime_type - case channel.device_type - when 'iOS' - :ipa - when 'Android' - :apk - end - end - def empty_changelog(use_default_changelog = true) return [] unless use_default_changelog From e90b05c94a5b43212bb1f274ef530df7c23531e5 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 14 Sep 2021 17:23:25 +0800 Subject: [PATCH 0660/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=BC=B9?= =?UTF-8?q?=E5=87=BA=E6=97=A0=E6=B3=95=E5=AE=89=E8=A3=85=E7=9A=84=E7=AA=97?= =?UTF-8?q?=E5=8F=A3=E7=82=B9=E5=87=BB=E4=B8=8D=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../releases/body/_install_cert.html.slim | 33 +++++++++---------- app/views/releases/body/_metadata.html.slim | 2 +- 2 files changed, 17 insertions(+), 18 deletions(-) diff --git a/app/views/releases/body/_install_cert.html.slim b/app/views/releases/body/_install_cert.html.slim index 700952318..39d47c5f5 100644 --- a/app/views/releases/body/_install_cert.html.slim +++ b/app/views/releases/body/_install_cert.html.slim @@ -1,17 +1,16 @@ -- if ios? - #install-issues.modal.fade role="dialog" tabindex="-1" style="display: none" aria-labelledby="install-issues-label" - .modal-dialog role="document" - .modal-content - .modal-header - h4.modal-title 安装中的错误及解决办法 - .modal-body - ol - li - | 在 iOS 9 以上版本,苹果对企业签名的应用做了运行限制。请安装后进 "设置" - "通用" - "描述文件", - | 选择该应用对应的企业证书,点击文字 "信任企业开发者"。 - li - | 受苹果系统生态限制,安装 AdHoc 版本前请确认已经 - strong 卸载 - | 应用商店安装的应用,否则无法进行安装!! - .modal-footer - button.btn.btn-default data-dismiss="modal" type="button" 明白了 \ No newline at end of file +#install-issues.modal.fade role="dialog" tabindex="-1" style="display: none" aria-labelledby="install-issues-label" + .modal-dialog role="document" + .modal-content + .modal-header + h4.modal-title 安装中的错误及解决办法 + .modal-body + ol + li + | 在 iOS 9 以上版本,苹果对企业签名的应用做了运行限制。请安装后进 "设置" - "通用" - "描述文件", + | 选择该应用对应的企业证书,点击文字 "信任企业开发者"。 + li + | 受苹果系统生态限制,安装 AdHoc 版本前请确认已经 + strong 卸载 + | 应用商店安装的应用,否则无法进行安装!! + .modal-footer + button.btn.btn-default data-dismiss="modal" type="button" 明白了 \ No newline at end of file diff --git a/app/views/releases/body/_metadata.html.slim b/app/views/releases/body/_metadata.html.slim index e2357fa01..71db2dbab 100644 --- a/app/views/releases/body/_metadata.html.slim +++ b/app/views/releases/body/_metadata.html.slim @@ -101,6 +101,6 @@ div.ios-install-issues.d-none i.fas.fa-asterisk - a href="javascript:void();" 无法安装或遇到 "未受信任的企业级开发者" 错误? + a href="javascript:void(0);" 无法安装或遇到 "未受信任的企业级开发者" 错误? p#jekins_buld_alert.alert.alert-warning.d-none role="alert" style=("margin-top: 10px") \ No newline at end of file From ded282306e6e610d53dd63e027edeb962cef35f7 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 14 Sep 2021 17:25:51 +0800 Subject: [PATCH 0661/2165] bump 4.2.1 --- Dockerfile | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 00e454be2..b2488a35b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -61,7 +61,7 @@ ARG BUILD_DATE ARG VCS_REF ARG TAG -ARG ZEALOT_VERSION="4.2.0" +ARG ZEALOT_VERSION="4.2.1" ARG REPLACE_CHINA_MIRROR="true" ARG ORIGINAL_REPO_URL="dl-cdn.alpinelinux.org" ARG MIRROR_REPO_URL="mirrors.ustc.edu.cn" diff --git a/package.json b/package.json index f2e0bfaf3..a15441135 100644 --- a/package.json +++ b/package.json @@ -15,5 +15,5 @@ "devDependencies": { "webpack-dev-server": "^3.11.2" }, - "version": "4.2.0" + "version": "4.2.1" } From 86f92deb1f10ca4ca1f18b815f82bfb0e35b800b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Sep 2021 21:01:16 +0000 Subject: [PATCH 0662/2165] chore(deps): bump rails-settings-cached from 2.7.1 to 2.8.0 Bumps [rails-settings-cached](https://github.com/huacnlee/rails-settings-cached) from 2.7.1 to 2.8.0. - [Release notes](https://github.com/huacnlee/rails-settings-cached/releases) - [Changelog](https://github.com/huacnlee/rails-settings-cached/blob/main/CHANGELOG.md) - [Commits](https://github.com/huacnlee/rails-settings-cached/compare/v2.7.1...v2.8.0) --- updated-dependencies: - dependency-name: rails-settings-cached dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index d13693d5b..88935c888 100644 --- a/Gemfile +++ b/Gemfile @@ -83,7 +83,7 @@ gem 'webpacker', '~> 5.4' gem 'app-info', '~> 2.6.4' # Mobile config -gem 'rails-settings-cached', '~> 2.7.1' +gem 'rails-settings-cached', '~> 2.8.0' # Reduces boot times through caching; required in config/boot.rb gem 'bootsnap', '>= 1.4.7', require: false diff --git a/Gemfile.lock b/Gemfile.lock index 70db4a501..306ee8c69 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -263,7 +263,7 @@ GEM marcel (1.0.1) method_source (1.0.0) mini_magick (4.11.0) - mini_mime (1.1.0) + mini_mime (1.1.1) mini_portile2 (2.6.1) minitest (5.14.4) mixlib-shellout (3.2.5) @@ -361,7 +361,7 @@ GEM rails-i18n (6.0.0) i18n (>= 0.7, < 2) railties (>= 6.0.0, < 7) - rails-settings-cached (2.7.1) + rails-settings-cached (2.8.0) rails (>= 5.0.0) railties (6.1.4.1) actionpack (= 6.1.4.1) @@ -551,7 +551,7 @@ DEPENDENCIES rack-cors (~> 1.1.1) rails (~> 6.1.4) rails-i18n (~> 6.0.0) - rails-settings-cached (~> 2.7.1) + rails-settings-cached (~> 2.8.0) rake (~> 13.0.4) redis (~> 4.4.0) rqrcode From ad4f1fc959cf9c1599e6616fe18b6e9b894cd507 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 16 Sep 2021 21:01:57 +0000 Subject: [PATCH 0663/2165] chore(deps): bump bootsnap from 1.8.1 to 1.9.0 Bumps [bootsnap](https://github.com/Shopify/bootsnap) from 1.8.1 to 1.9.0. - [Release notes](https://github.com/Shopify/bootsnap/releases) - [Changelog](https://github.com/Shopify/bootsnap/blob/master/CHANGELOG.md) - [Commits](https://github.com/Shopify/bootsnap/compare/v1.8.1...v1.9.0) --- updated-dependencies: - dependency-name: bootsnap dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 306ee8c69..fa6afaf42 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -91,7 +91,7 @@ GEM bindex (0.8.1) binding_of_caller (1.0.0) debug_inspector (>= 0.0.1) - bootsnap (1.8.1) + bootsnap (1.9.0) msgpack (~> 1.0) builder (3.2.4) byebug (11.1.3) From cb620c3a1287153b242080cdb2cd4ffda23f13b3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 16 Sep 2021 21:02:10 +0000 Subject: [PATCH 0664/2165] chore(deps): bump activejob-status from 0.1.6 to 0.2.0 Bumps [activejob-status](https://github.com/inkstak/activejob-status) from 0.1.6 to 0.2.0. - [Release notes](https://github.com/inkstak/activejob-status/releases) - [Commits](https://github.com/inkstak/activejob-status/compare/v0.1.6...v0.2.0) --- updated-dependencies: - dependency-name: activejob-status dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 306ee8c69..359ccd102 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -50,7 +50,7 @@ GEM activejob (6.1.4.1) activesupport (= 6.1.4.1) globalid (>= 0.3.6) - activejob-status (0.1.6) + activejob-status (0.2.0) activejob (>= 4.2) activesupport (>= 4.2) activemodel (6.1.4.1) From 5e8e3faffdd2fb518a80652cea1c312c82898a29 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 17 Sep 2021 19:05:02 +0800 Subject: [PATCH 0665/2165] =?UTF-8?q?feat:=20=E6=9B=B4=E6=96=B0=20app-info?= =?UTF-8?q?=20=E6=9D=A5=E6=8F=90=E5=8D=87=20android=20=E8=A7=A3=E6=9E=90?= =?UTF-8?q?=E7=9A=84=E6=88=90=E5=8A=9F=E7=8E=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 2 +- Gemfile.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Gemfile b/Gemfile index d13693d5b..8aa070a1d 100644 --- a/Gemfile +++ b/Gemfile @@ -80,7 +80,7 @@ gem 'turbolinks', '~> 5' gem 'webpacker', '~> 5.4' # 用于解析 ipa 和 apk 包 -gem 'app-info', '~> 2.6.4' +gem 'app-info', '~> 2.6.5' # Mobile config gem 'rails-settings-cached', '~> 2.7.1' diff --git a/Gemfile.lock b/Gemfile.lock index 70db4a501..b70c99b0e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -73,12 +73,14 @@ GEM zeitwerk (~> 2.3) addressable (2.8.0) public_suffix (>= 2.0.2, < 5.0) - app-info (2.6.4) + android_parser (2.4.1) + rubyzip (>= 1.0.0) + app-info (2.6.5) CFPropertyList (>= 2.3.4, < 3.1.0) + android_parser (~> 2.4.1) icns (~> 0.2.0) image_size (>= 1.5, < 2.2) ruby-macho (>= 1.4, < 3) - ruby_android (~> 0.7.7) rubyzip (>= 1.2, < 3.0) uuidtools (>= 2.1.5, < 2.3.0) ast (2.4.2) @@ -406,8 +408,6 @@ GEM ruby-vips (2.1.2) ffi (~> 1.12) ruby2_keywords (0.0.5) - ruby_android (0.7.7) - rubyzip (>= 1.1.6) rubyntlm (0.6.3) rubyzip (2.3.2) rufus-scheduler (3.7.0) @@ -507,7 +507,7 @@ DEPENDENCIES active_analytics active_model_serializers (~> 0.10.12) activejob-status - app-info (~> 2.6.4) + app-info (~> 2.6.5) awesome_print better_errors binding_of_caller From cfd582ca7cfcea558e1c38ac3e76abff505281ec Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 22 Apr 2021 15:15:29 +0800 Subject: [PATCH 0666/2165] feat(i18n): dashboard, menu --- app/controllers/dashboards_controller.rb | 2 +- app/views/dashboards/_analytics.html.slim | 16 +++---- .../dashboards/_recently_upload.html.slim | 7 ++- app/views/dashboards/wechat.html.slim | 10 ---- app/views/layouts/_main_sidebar.html.slim | 48 +++++++++---------- app/views/releases/body/_wechat.html.slim | 6 ++- config/locales/zealot/zh-CN.yml | 38 +++++++++++++++ 7 files changed, 78 insertions(+), 49 deletions(-) delete mode 100644 app/views/dashboards/wechat.html.slim diff --git a/app/controllers/dashboards_controller.rb b/app/controllers/dashboards_controller.rb index 849d98adb..e8ff1a147 100644 --- a/app/controllers/dashboards_controller.rb +++ b/app/controllers/dashboards_controller.rb @@ -4,7 +4,7 @@ class DashboardsController < ApplicationController before_action :authenticate_user! unless Setting.guest_mode def index - @title = '我的控制台' + @title = t('dashboard.title') system_analytics recently_upload diff --git a/app/views/dashboards/_analytics.html.slim b/app/views/dashboards/_analytics.html.slim index b0d5c84d0..370dcdebd 100644 --- a/app/views/dashboards/_analytics.html.slim +++ b/app/views/dashboards/_analytics.html.slim @@ -1,12 +1,12 @@ section.analytics .row - == render 'widget', title: '应用', count: @analytics[:apps], url: apps_path, color_style: 'bg-navy', icon: 'fab fa-adn' - == render 'widget', title: '调试文件', count: @analytics[:debug_files], url: debug_files_path, color_style: 'bg-red', icon: 'fas fa-bug' - == render 'widget', title: '应用解包', count: @analytics[:teardowns], url: teardowns_path, color_style: 'bg-pink', icon: 'fas fa-layer-group' - == render 'widget', title: '上传次数', count: @analytics[:releases], url: nil, color_style: 'bg-teal', icon: 'fas fa-paper-plane' + == render 'widget', title: t('dashboard.analytics.apps'), count: @analytics[:apps], url: apps_path, color_style: 'bg-navy', icon: 'fab fa-adn' + == render 'widget', title: t('dashboard.analytics.debug_files'), count: @analytics[:debug_files], url: debug_files_path, color_style: 'bg-red', icon: 'fas fa-bug' + == render 'widget', title: t('dashboard.analytics.teardowns'), count: @analytics[:teardowns], url: teardowns_path, color_style: 'bg-pink', icon: 'fas fa-layer-group' + == render 'widget', title: t('dashboard.analytics.uploads'), count: @analytics[:releases], url: nil, color_style: 'bg-teal', icon: 'fas fa-paper-plane' - if current_user&.admin? - == render 'widget', title: '网络钩子', count: @analytics[:webhooks], url: admin_web_hooks_path, color_style: 'bg-olive', icon: 'fas fa-anchor' - == render 'widget', title: '用户', count: @analytics[:users], url: admin_users_path, color_style: 'bg-warning', icon: 'fas fa-user' - == render 'widget', title: '后台任务', count: @analytics[:jobs], url: admin_background_jobs_path, color_style: 'bg-maroon', icon: 'fas fa-bezier-curve' - == render 'widget', title: '磁盘使用率', count: @analytics[:disk], url: admin_system_info_index_path, color_style: 'bg-indigo', icon: 'fas fa-server' \ No newline at end of file + == render 'widget', title: t('dashboard.analytics.web_hooks'), count: @analytics[:webhooks], url: admin_web_hooks_path, color_style: 'bg-olive', icon: 'fas fa-anchor' + == render 'widget', title: t('dashboard.analytics.users'), count: @analytics[:users], url: admin_users_path, color_style: 'bg-warning', icon: 'fas fa-user' + == render 'widget', title: t('dashboard.analytics.background_jobs'), count: @analytics[:jobs], url: admin_background_jobs_path, color_style: 'bg-maroon', icon: 'fas fa-bezier-curve' + == render 'widget', title: t('dashboard.analytics.disk_usage'), count: @analytics[:disk], url: admin_system_info_index_path, color_style: 'bg-indigo', icon: 'fas fa-server' diff --git a/app/views/dashboards/_recently_upload.html.slim b/app/views/dashboards/_recently_upload.html.slim index 3e3d191e1..949dfed06 100644 --- a/app/views/dashboards/_recently_upload.html.slim +++ b/app/views/dashboards/_recently_upload.html.slim @@ -5,7 +5,7 @@ section .card-header h3.card-title i.fas.fa-history - | 上传时间线 + = t('dashboard.timeline.title') .card-body - if @releases.present? @@ -29,8 +29,7 @@ section = time_ago_in_words(release.created_at) h3.timeline-header = link_to " #{release.app_name}", channel_release_path(release.channel, release) - | 上传了新版本 - = " #{release.release_version} (#{release.build_version})" + = " #{t('dashboard.timeline.upload_release', release_version: release.release_version, build_version: release.build_version)}" - if release.changelog.present? .timeline-body.pb-1 = changelog_format release.changelog_list, class: 'mb-0' @@ -52,7 +51,7 @@ section div i.bg-gray.fas.fa-clock - else - .time-label 没有任何上传,快快上传吧。 + .time-label = t('dashboard.timeline.not_found') - if @releases.present? .card-footer diff --git a/app/views/dashboards/wechat.html.slim b/app/views/dashboards/wechat.html.slim deleted file mode 100644 index 55964d12e..000000000 --- a/app/views/dashboards/wechat.html.slim +++ /dev/null @@ -1,10 +0,0 @@ -h1 微信用户 -p 由于微信的限制,麻烦按照操作提示进行操作。 - -ol - li 点击右上角菜单 - - if ios? - li 在 Safari 中打开并安装 - - else - li 在任意浏览器中打开并安装 - li 如果是登录状态可点击安装,否则需要登录操作 diff --git a/app/views/layouts/_main_sidebar.html.slim b/app/views/layouts/_main_sidebar.html.slim index 4576b4426..f1c7f910c 100644 --- a/app/views/layouts/_main_sidebar.html.slim +++ b/app/views/layouts/_main_sidebar.html.slim @@ -1,65 +1,65 @@ .sidebar nav.mt-2 - ul.nav.nav-pills.nav-sidebar.flex-column data-widget="treeview" role="menu" data-accordion="false" - li.nav-header 功能区域 - li.nav-item + ul.nav.nav-pills.nav-sidebar.nav-child-indent.flex-column data-widget="treeview" role="menu" + li.nav-header = t('menu.function_section') + li class="nav-item" a.nav-link href="#{root_path}" class="#{active_class(root_path)}" i.nav-icon.fas.fa-th - p 控制台 - li.nav-item + p = t('menu.dashboard') + li class="nav-item" a.nav-link href="#{apps_path}" class="#{active_class(apps_path)}" i.nav-icon.fab.fa-adn - p 应用 - li.nav-item + p = t('menu.apps') + li class="nav-item" a.nav-link href="#{debug_files_path}" class="#{active_class(debug_files_path)}" i.nav-icon.fas.fa-bug - p 调试文件 + p = t('menu.debug_files') - li.nav-header 工具箱 - li.nav-item + li.nav-header = t('menu.toolbox_section') + li class="nav-item" a.nav-link href="#{teardowns_path}" class="#{active_class(teardowns_path)}" i.nav-icon.fas.fa-layer-group - p 应用解包 - li.nav-item + p = t('menu.teardown') + li class="nav-item" a.nav-link href="#{udid_path}" class="#{active_class(udid_path)}" i.nav-icon.fas.fa-eye - p 获取 UDID + p = t('menu.fetch_ios_udid') - if current_user&.admin? - li.nav-header 管理区域 + li.nav-header = t('menu.admin_section') li.nav-item a.nav-link href="#{admin_users_path}" class="#{active_class(admin_users_path)}" i.nav-icon.fas.fa-user - p 用户 + p = t('menu.users') li.nav-item a.nav-link href="#{admin_web_hooks_path}" class="#{active_class(admin_web_hooks_path)}" i.nav-icon.fas.fa-anchor - p 网络钩子 + p = t('menu.web_hooks') li.nav-item a.nav-link href="#{admin_settings_path}" class="#{active_class(admin_settings_path)}" i.nav-icon.fas.fa-cog - p 系统设置 - li.nav-item.has-treeview class="#{active_class([admin_system_info_index_path, admin_background_jobs_path, admin_database_analytics_path, admin_page_analytics_path], 'menu-open')}" - a.nav-link href="#" class="#{active_class([admin_system_info_index_path, admin_background_jobs_path, admin_database_analytics_path, admin_page_analytics_path])}" + p = t('menu.system_settings') + li.nav-item.has-treeview class="#{active_class([admin_system_info_index_path, admin_background_jobs_path, admin_page_analytics_path, admin_database_analytics_path], 'menu-open')}" + a.nav-link href="#" class="#{active_class([admin_system_info_index_path, admin_background_jobs_path, admin_page_analytics_path, admin_database_analytics_path])}" i.nav-icon.fas.fa-laptop-code p - | 监控 + = t('menu.monitors') i.right.fas.fa-angle-left ul.nav.nav-treeview li.nav-item a.nav-link href="#{admin_system_info_index_path}" class="#{active_class(admin_system_info_index_path)}" i.nav-icon.fas.fa-info-circle - p 环境信息 + = t('menu.system_info') li.nav-item a.nav-link href="#{admin_background_jobs_path}" class="#{active_class(admin_background_jobs_path)}" i.nav-icon.fas.fa-chart-bar - p 后台任务 + = t('menu.background_jobs') li.nav-item a.nav-link href="#{admin_page_analytics_path}" class="#{active_class(admin_page_analytics_path)}" i.nav-icon.fas.fa-file-contract - p 页面统计分析 + = t('menu.page_analytics') li.nav-item a.nav-link href="#{admin_database_analytics_path}" class="#{active_class(admin_database_analytics_path)}" i.nav-icon.fas.fa-database - p 数据库分析 + = t('menu.database_analytics') diff --git a/app/views/releases/body/_wechat.html.slim b/app/views/releases/body/_wechat.html.slim index 095cefc32..8a0a5d07c 100644 --- a/app/views/releases/body/_wechat.html.slim +++ b/app/views/releases/body/_wechat.html.slim @@ -7,5 +7,7 @@ p 微信限制请按照提示安装: ol style="padding-left: 20px" li 点击右上角微信菜单 - li 选择在 “Safari 中打开” - li 账户登录或密码确认后就进行安装 \ No newline at end of file + - if ios? + li 在 Safari 浏览器中打开后安装 + - else + li 在任意浏览器中打开后安装 \ No newline at end of file diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index 4edc529c8..b9305139d 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -1,4 +1,23 @@ zh-CN: + menu: + function_section: 功能区域 + dashboard: 控制台 + apps: 应用 + debug_files: 调试文件 + + toolbox_section: 工具箱 + teardown: 应用解包 + fetch_ios_udid: 获取 UDID + + admin_section: 管理面板 + users: 用户 + web_hooks: 网络钩子 + system_settings: 系统设置 + monitors: 监控 + system_info: 环境信息 + background_jobs: 后台任务 + page_analytics: 页面统计分析 + database_analytics: 数据库分析 admin: settings: general: 通用配置 @@ -41,6 +60,25 @@ zh-CN: create: 新增设置 update: 更新设置 + dashboard: + title: 我的控制台 + analytics: + apps: 应用 + debug_files: 调试文件 + teardowns: 文件解析 + uploads: 上传次数 + web_hooks: 网络钩子 + users: 用户 + background_jobs: 后台任务 + disk_usage: 磁盘使用率 + timeline: + title: 上传时间线 + upload_release: 上传了新版本 %{release_version} (%{build_version}) + not_found: 没有任何上传,快快上传吧。 + + apps: + + datetime: distance_in_words: about_x_hours: 大约 %{count} 小时 From 65a974945005bd4ccb5ea306a732bd81c540d093 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 22 Apr 2021 16:21:40 +0800 Subject: [PATCH 0667/2165] feat(i18n): apps --- app/controllers/apps_controller.rb | 20 ++++---- app/controllers/dashboards_controller.rb | 2 +- app/views/apps/_form.html.slim | 4 +- app/views/apps/_list.html.slim | 19 ++++---- app/views/apps/index.html.slim | 5 +- app/views/apps/show.html.slim | 30 ++++-------- app/views/channels/show.html.slim | 1 + config/locales/zealot/zh-CN.yml | 58 ++++++++++++++++++++++-- 8 files changed, 87 insertions(+), 52 deletions(-) diff --git a/app/controllers/apps_controller.rb b/app/controllers/apps_controller.rb index 84e9b69a2..79a331a25 100644 --- a/app/controllers/apps_controller.rb +++ b/app/controllers/apps_controller.rb @@ -7,7 +7,7 @@ class AppsController < ApplicationController def index - @title = '应用管理' + @title = t('apps.apps') @apps = App.all authorize @apps end @@ -17,7 +17,7 @@ def show end def new - @title = '新建应用' + @title = t('apps.new_app') @app = App.new authorize @app @@ -25,20 +25,18 @@ def new end def edit - @title = '编辑应用' + @title = t('apps.edit_app') end def create @app = App.new(app_params) authorize @app - if @app.save - @app.users << current_user - app_create_schemes_and_channels - redirect_to apps_path, notice: "#{@app.name}应用已经创建成功!" - else - render :new - end + return render :new unless @app.save + + @app.users << current_user + app_create_schemes_and_channels + redirect_to apps_path, notice: t('apps.messages.create_app_success', name: @app.name) end def update @@ -93,6 +91,6 @@ def app_params end def render_not_found_entity_response(e) - redirect_to apps_path, notice: "没有找到应用 #{e.id},跳转至应用列表" + redirect_to apps_path, notice: t('apps.messages.not_found_app', id: e.id) end end diff --git a/app/controllers/dashboards_controller.rb b/app/controllers/dashboards_controller.rb index e8ff1a147..16c63606b 100644 --- a/app/controllers/dashboards_controller.rb +++ b/app/controllers/dashboards_controller.rb @@ -4,7 +4,7 @@ class DashboardsController < ApplicationController before_action :authenticate_user! unless Setting.guest_mode def index - @title = t('dashboard.title') + @title = t('dashboard.my_dashboard') system_analytics recently_upload diff --git a/app/views/apps/_form.html.slim b/app/views/apps/_form.html.slim index 8f66c15a0..bf2764dc8 100644 --- a/app/views/apps/_form.html.slim +++ b/app/views/apps/_form.html.slim @@ -2,9 +2,9 @@ ruby: checked_scheme = @schemes ? @schemes[:name] : 0 checked_channel = @channels ? @channels[:name] : 0 head_title, back_url = if new_or_create_route? - ['应用管理', apps_path] + [t('apps.apps'), apps_path] else - ['返回应用', app_path(@app)] + [t('apps.goback_to_app'), app_path(@app)] end .col-md-12 diff --git a/app/views/apps/_list.html.slim b/app/views/apps/_list.html.slim index 14deaec49..e7f05f4a1 100644 --- a/app/views/apps/_list.html.slim +++ b/app/views/apps/_list.html.slim @@ -13,34 +13,31 @@ i.far.fa-plus-square a.btn.btn-tool href="#{edit_app_path(app)}" i.fas.fa-edit - a.btn.btn-tool href="#{app_path(app)}" data-confirm="确定删除【#{app.name}】及其所有的数据?" data-method="delete" + a.btn.btn-tool href="#{app_path(app)}" data-confirm="#{t('apps.messages.delete_app_confirm', name: app.name)}" data-method="delete" i.fas.fa-trash-alt .card-body.p-0 .app-schemes - if app.schemes.count > 0 table.table tr - th 类型名称 - th style="width: 100px" 渠道数量 + th = t('apps.table.apps.type') + th style="width: 100px" = t('apps.table.apps.channel_count') - app.schemes.each do |scheme| tr td = link_to scheme.name, app_scheme_path(app, scheme) td span.float-right.badge.bg-blue = scheme.total_releases - else + .p-3 = t('apps.table.apps.new_app_scheme', link: link_to(t('apps.table.apps.new_app_scheme_link_title'), new_app_scheme_path(app))).html_safe .p-3 - | 还没有任何应用类型和渠道,开始 - a href="#{new_app_scheme_path(app)}" 创建第一个应用类型和渠道 - | 吧。 - .p-3 - | 右上角的按钮是本应用的功能区: + = t('apps.table.apps.tips.title') ul li.btn-icon i.far.fa-plus-square - | 创建应用类型和渠道 + = t('apps.table.apps.tips.create_app_scheme_and_channel') li.btn-icon i.fas.fa-edit - | 编辑应用类型 + = t('apps.table.apps.tips.edit_app_name') li.btn-icon i.fas.fa-trash-alt - | 删除应用类型 \ No newline at end of file + = t('apps.table.apps.tips.destroy_app') \ No newline at end of file diff --git a/app/views/apps/index.html.slim b/app/views/apps/index.html.slim index 40dfbff56..8f28821fe 100644 --- a/app/views/apps/index.html.slim +++ b/app/views/apps/index.html.slim @@ -8,8 +8,7 @@ - if user_signed_in? a.btn.btn-icon.bg-green href="#{new_app_path}" i.far.fa-plus-square - | 新建应用 + = t('apps.new_app') .row - == render 'list' - == render 'help' + == render 'list' \ No newline at end of file diff --git a/app/views/apps/show.html.slim b/app/views/apps/show.html.slim index 23cd9da2c..1063ee2b8 100644 --- a/app/views/apps/show.html.slim +++ b/app/views/apps/show.html.slim @@ -6,9 +6,9 @@ - content_for :section_rightpanel do .btn-group - = button_link_to '新增类型', new_app_scheme_path(@app), 'plus-square', class: 'btn-icon btn-default btn-sm btn-flat' - = button_link_to '编辑应用', edit_app_path(@app), 'edit', class: 'btn-icon btn-default btn-sm btn-flat' - = button_link_to '删除应用', app_path(@app), 'trash-alt', class: 'btn-icon btn-default btn-sm btn-flat', data: { confirm: "确定删除【#{@app.name}】应用及其下面所有频道和上传的版本?", method: "delete" } + = button_link_to t('apps.menu.new_scheme'), new_app_scheme_path(@app), 'plus-square', class: 'btn-icon btn-default btn-sm btn-flat' + = button_link_to t('apps.menu.edit_app'), edit_app_path(@app), 'edit', class: 'btn-icon btn-default btn-sm btn-flat' + = button_link_to t('apps.menu.destroy_app'), app_path(@app), 'trash-alt', class: 'btn-icon btn-default btn-sm btn-flat', data: { confirm: "#{t('apps.messages.delete_app_confirm', name: @app.name)}", method: "delete" } .row .col-md-12 @@ -20,9 +20,9 @@ = scheme.name .card-tools .sections-actions.btn-group - = button_link_to '新增渠道', new_app_scheme_channel_path(@app, scheme), 'plus-square', class: 'btn-icon btn-default btn-sm btn-flat' - = button_link_to '编辑渠道', edit_app_scheme_path(@app, scheme), 'edit', class: 'btn-icon btn-default btn-sm btn-flat' - = button_link_to '删除渠道', app_scheme_path(@app, scheme), 'trash-alt', class: 'btn-icon btn-default btn-sm btn-flat', data: { confirm: "确定删除#{scheme.app_name}类型?", method: "delete" } + = button_link_to t('apps.menu.new_channel'), new_app_scheme_channel_path(@app, scheme), 'plus-square', class: 'btn-icon btn-default btn-sm btn-flat' + = button_link_to t('apps.menu.edit_scheme'), edit_app_scheme_path(@app, scheme), 'edit', class: 'btn-icon btn-default btn-sm btn-flat' + = button_link_to t('apps.menu.destory_scheme'), app_scheme_path(@app, scheme), 'trash-alt', class: 'btn-icon btn-default btn-sm btn-flat', data: { confirm: "#{t('apps.messages.delete_app_scheme_confirm', name: scheme.app_name)}", method: "delete" } .card-body.p-0 section.app-section id="scheme-#{scheme.id}" @@ -34,24 +34,12 @@ = link_to channel.name, channel_path(channel) td style="width: 120px" = button_link_to '', edit_app_scheme_channel_path(@app, scheme, channel), 'edit', class: 'btn-box-tool' - = button_link_to '', app_scheme_channel_path(@app, scheme, channel), 'trash-alt', class: 'btn-box-tool', data: { confirm: "确定删除#{channel.app_name}渠道?", method: "delete" } + = button_link_to '', app_scheme_channel_path(@app, scheme, channel), 'trash-alt', class: 'btn-box-tool', data: { confirm: "#{t('apps.messages.delete_app_channel_confirm', name: channel.app_name)}", method: "delete" } - else tr td colspan="2" - small - | 没有发现任何渠道,选择上面  - i.far.fa-plus-square - | 添加新渠道。 + = t('apps.table.app.not_found_channel_body_html') - else - .callout.callout-warning - h5 没有发现任何应用类型! - p - | 创建应用类型通常是给应用进行分类,比如从研发流程来说可以分为: - ul - li 开发版本、内测版本、公测版本、线上版本 - p - | 如果应用仅提供 Android 版本,可以按照应用渠道划分为: - ul - li Google Play、酷安、小米、华为、vivo、oppo、应用宝等 + .callout.callout-warning = t('apps.table.app.emtpy_content_body_html') diff --git a/app/views/channels/show.html.slim b/app/views/channels/show.html.slim index a5ebb0efd..0be3acee1 100755 --- a/app/views/channels/show.html.slim +++ b/app/views/channels/show.html.slim @@ -12,6 +12,7 @@ == render 'activity' - if current_user&.manage? == render 'web_hooks' + .col-md-4 - if user_signed_in? a.btn.btn-success.btn-block.mb-3 href="#{new_channel_release_path(@channel)}" 上传应用 diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index b9305139d..fc0bcc2b9 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -59,9 +59,8 @@ zh-CN: submit: create: 新增设置 update: 更新设置 - dashboard: - title: 我的控制台 + my_dashboard: 我的控制台 analytics: apps: 应用 debug_files: 调试文件 @@ -77,7 +76,60 @@ zh-CN: not_found: 没有任何上传,快快上传吧。 apps: - + apps: 应用管理 + new_app: 新建应用 + edit_app: 编辑应用 + goback_to_app: 返回应用 + messages: + create_app_success: '%{name} 应用已经创建成功!' + not_found_app_by_version: '没有找到应用版本: %{version}' + not_found_app: 没有找到应用 %{id},跳转至应用列表 + delete_app_confirm: 确定删除【%{name}】应用和已关联的类型、渠道以及已上传的应用数据? + delete_app_scheme_confirm: 确定删除【%{name}】类型和渠道以及已上传的应用数据? + delete_app_channel_confirm: 确定删除【%{name}】渠道和已上传的应用数据? + menu: + new_scheme: 新增类型 + edit_app: 编辑应用 + destroy_app: 删除应用 + new_channel: 新增渠道 + edit_scheme: 编辑类型 + destory_scheme: 删除类型 + table: + apps: + type: 类型名称 + channel_count: 渠道数量 + new_app_scheme: 还没有任何应用类型和渠道,开始%{link}吧。 + new_app_scheme_link_title: 创建第一个应用类型和渠道 + tips: + title: 右上角的按钮是本应用的功能区: + create_app_scheme_and_channel: 创建应用类型和渠道 + edit_app_name: 编辑应用名称 + destroy_app: 删除应用 + app: + not_found_channel_body_html: | + 没有发现任何渠道,选择右上角的 新增渠道。 + emtpy_content_body_html: | +
没有发现任何应用类型!
+

创建应用类型通常是给应用进行分类,比如从研发流程来说可以分为:

+
    +
  • 开发版本、内测版本、公测版本、线上版本
  • +
+

如果应用仅提供 Android 版本,可以按照应用渠道划分为:

+
    +
  • Google Play、酷安、小米、华为、vivo、oppo、应用宝等
  • +
+ help: + title: 使用帮助 + body_html: | +

+ Zealot 支持通过网页直接上传和 API 接口上传,更新日志是从自动打包分发系统当前构建 + git commit 的信息检索到上次构建成功之后聚合而成。 +

+

+ 需要注意的是: + 所有上传的版本并非完整保留,系统会定期检查所有的版本鉴定为历史版本号的将会保留最后一个构建的版本, + 之前的会被从磁盘中清除(节省硬盘空间和备份数据带来的耗时操作),最新版本所有的构建版本将会全部保留。 +

datetime: distance_in_words: From 9c2e1b93831308d23920addcf519c2645f1e0243 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 22 Apr 2021 17:36:15 +0800 Subject: [PATCH 0668/2165] feat(i18n): admin 80% --- .../admin/background_jobs_controller.rb | 2 +- .../admin/database_analytics_controller.rb | 2 +- app/controllers/admin/settings_controller.rb | 2 +- .../admin/system_info_controller.rb | 2 +- app/controllers/admin/users_controller.rb | 2 +- app/controllers/admin/web_hooks_controller.rb | 2 +- app/helpers/application_helper.rb | 1 - app/models/setting.rb | 7 +- app/views/admin/settings/_form.html.slim | 11 ++-- app/views/admin/settings/index.html.slim | 4 +- app/views/admin/system_info/index.html.slim | 29 ++++----- app/views/admin/users/edit.html.slim | 9 ++- app/views/admin/users/index.html.slim | 24 +++---- app/views/admin/users/new.html.slim | 4 +- app/views/admin/web_hooks/index.html.slim | 12 ++-- config/initializers/simple_form_bootstrap.rb | 28 ++++---- .../locales/simple_form/simple_form.zh-CN.yml | 4 ++ config/locales/zealot/en.yml | 6 +- config/locales/zealot/zh-CN.yml | 64 +++++++++++++++---- 19 files changed, 133 insertions(+), 82 deletions(-) diff --git a/app/controllers/admin/background_jobs_controller.rb b/app/controllers/admin/background_jobs_controller.rb index 1af78f173..e4354a9f1 100644 --- a/app/controllers/admin/background_jobs_controller.rb +++ b/app/controllers/admin/background_jobs_controller.rb @@ -3,6 +3,6 @@ class Admin::BackgroundJobsController < ApplicationController # GET /admin/background_jobs def index - @title = '后台任务' + @title = t('menu.background_jobs') end end diff --git a/app/controllers/admin/database_analytics_controller.rb b/app/controllers/admin/database_analytics_controller.rb index 3311c9e48..51162975d 100644 --- a/app/controllers/admin/database_analytics_controller.rb +++ b/app/controllers/admin/database_analytics_controller.rb @@ -2,6 +2,6 @@ class Admin::DatabaseAnalyticsController < ApplicationController def index - @title = '数据库分析' + @title = t('menu.database_analytics') end end diff --git a/app/controllers/admin/settings_controller.rb b/app/controllers/admin/settings_controller.rb index 654d77c4a..094daa72f 100644 --- a/app/controllers/admin/settings_controller.rb +++ b/app/controllers/admin/settings_controller.rb @@ -5,7 +5,7 @@ class Admin::SettingsController < ApplicationController before_action :verify_editable_setting, only: %i[edit] def index - @title = '系统配置' + @title = t('menu.system_settings') @settings = Setting.site_configs end diff --git a/app/controllers/admin/system_info_controller.rb b/app/controllers/admin/system_info_controller.rb index f10453042..c2badcddf 100644 --- a/app/controllers/admin/system_info_controller.rb +++ b/app/controllers/admin/system_info_controller.rb @@ -36,7 +36,7 @@ class Admin::SystemInfoController < ApplicationController # GET /admin/system_info def index - @title = '系统信息' + @title = t('menu.system_info') @booted_at = Rails.application.config.booted_at @current_version = Setting.version diff --git a/app/controllers/admin/users_controller.rb b/app/controllers/admin/users_controller.rb index 691cbf255..e61e50037 100644 --- a/app/controllers/admin/users_controller.rb +++ b/app/controllers/admin/users_controller.rb @@ -4,7 +4,7 @@ class Admin::UsersController < ApplicationController before_action :set_user, only: %i[edit update destroy] def index - @title = '用户管理' + @title = t('menu.users') @users = User.all authorize @users end diff --git a/app/controllers/admin/web_hooks_controller.rb b/app/controllers/admin/web_hooks_controller.rb index 95d6b0bb9..5164fe21d 100644 --- a/app/controllers/admin/web_hooks_controller.rb +++ b/app/controllers/admin/web_hooks_controller.rb @@ -4,7 +4,7 @@ class Admin::WebHooksController < ApplicationController before_action :set_web_hook, only: %i[show edit update destroy] def index - @title = '网络钩子管理' + @title = t('menu.web_hooks') @web_hooks = WebHook.all authorize @web_hooks end diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 39ca0de07..127fb4c24 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -13,7 +13,6 @@ def create_route? params[:action] == 'create' end - def user_signed_in_or_guest_mode? user_signed_in? || (Setting.guest_mode && !devise_page?) end diff --git a/app/models/setting.rb b/app/models/setting.rb index 6ca42beb6..ec3a971fd 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -6,6 +6,11 @@ class Setting < RailsSettings::Base DEFAULT_SITE_HTTPS = Rails.env.production? || ENV['ZEALOT_USE_HTTPS'].present? DEFAULT_SITE_DOMAIN = DEFAULT_SITE_HTTPS ? 'localhost' : "localhost:#{ENV['ZEALOT_PORT'] || 3000}" + DEFAULT_SCHEMES = [ + I18n.t('settings.default_schemes.beta'), + I18n.t('settings.default_schemes.adhoc'), + I18n.t('settings.default_schemes.production'), + ] class << self def site_configs @@ -55,7 +60,7 @@ def url_options # 预值 scope :presets do - field :default_schemes, default: %w[测试版 内测版 产品版], type: :array, display: true + field :default_schemes, default: DEFAULT_SCHEMES, type: :array, display: true field :default_role, default: 'user', type: :string, display: true, validates: { presence: true, inclusion: { in: UserRoles::ROLE_NAMES.keys.map(&:to_s) } } end diff --git a/app/views/admin/settings/_form.html.slim b/app/views/admin/settings/_form.html.slim index 9707666e8..cbf7c0481 100644 --- a/app/views/admin/settings/_form.html.slim +++ b/app/views/admin/settings/_form.html.slim @@ -1,6 +1,6 @@ ruby: key = @setting.var - value = @setting.value || Setting.send(key) + value = @setting.value || Setting.send(key.to_sym) type = Setting.get_field(key)[:type] .row @@ -24,15 +24,14 @@ ruby: input.hidden type="hidden" value="#{type}" name="setting[type]" - if type == :boolean - = f.input :value, label: '开启', as: :boolean, checked: type + = f.input :value, label: t('admin.settings.enable'), as: :boolean, checked: type, hint: false - elsif type == :hash || type == :array - = f.text_area :value, value: JSON.pretty_generate(value), class: 'form-control', rows: 15, hint: '按照 JSON 标准格式编辑,否则会保存失败' + = f.input :value, as: :text, input_html: { value: JSON.pretty_generate(value) } - else - = f.text_area :value, value: value, class: 'form-control', rows: 15 + = f.input :value, as: :text, input_html: { value: value }, hint: false - unless @setting.field_validates.empty? small.form-text.text-muted - | 条件: - = @setting.field_validates.join(" / ") + = t("admin.settings.validates", value: @setting.field_validates.join(" / ")) .card-footer = f.button :submit, t('admin.settings.submit.update') \ No newline at end of file diff --git a/app/views/admin/settings/index.html.slim b/app/views/admin/settings/index.html.slim index c85a1eee3..5a84d911b 100644 --- a/app/views/admin/settings/index.html.slim +++ b/app/views/admin/settings/index.html.slim @@ -21,9 +21,9 @@ form.form-horizontal when Array value.join(', ') when TrueClass - '开启' + t('admin.settings.enable') when FalseClass - '关闭' + t('admin.settings.disable') else value.blank? ? t('admin.settings.empty_value') : value.to_s end diff --git a/app/views/admin/system_info/index.html.slim b/app/views/admin/system_info/index.html.slim index 393b55e53..4ae529086 100644 --- a/app/views/admin/system_info/index.html.slim +++ b/app/views/admin/system_info/index.html.slim @@ -8,43 +8,42 @@ .col-md-6 .card.system_info .card-header - h3.card-title 服务器信息 + h3.card-title = t('admin.system_info.server_info') .card-body dl.system-info - dt Zealot 版本 + dt = t('admin.system_info.zealot_version') dd pre #new-version.float-right #current-version = @current_version - dt Ruby 版本 + dt = t('admin.system_info.ruby_version') dd pre = RUBY_DESCRIPTION - dt CPU + dt = t('admin.system_info.cpu_info') dd pre - if @cpus - = "#{@cpus.length} 核" + = t('admin.system_info.cpu_core', size: @cpus.length) - else - | CPU 信息监测失败 - dt 内存 + = t('admin.system_info.fail_detect_cpu') + dt = t('admin.system_info.memory_info') dd pre - if @memory = "#{number_to_human_size(@memory[:used])} / #{number_to_human_size(@memory[:total])}" .progress.progress-bar-striped class="#{@memory[:color]}" role="progressbar" aria-valuenow="#{@memory[:percent]}" aria-valuemin="0" aria-valuemax="100" style="width: #{@memory[:percent]}%" - else - | 内存信息监测失败 - dt - | 磁盘 + = t('admin.system_info.fail_detect_memory') + dt = t('admin.system_info.disk_info') dd pre - if @diskspace = "#{number_to_human_size(@diskspace[:used])} / #{number_to_human_size(@diskspace[:total])}" .progress.progress-bar-striped class="#{@diskspace[:color]}" role="progressbar" aria-valuenow="#{@diskspace[:percent]}" aria-valuemin="0" aria-valuemax="100" style="width: #{@diskspace[:percent]}%" - else - | 监测失败 - dt 运行时间 + = t('admin.system_info.fail_detect_disk') + dt = t('admin.system_info.lauched_time') dd pre = distance_of_time_in_words_to_now(@booted_at) @@ -53,7 +52,7 @@ | ) .card .card-header - h3.card-title 挂载信息 + h3.card-title = t('admin.system_info.volume_mounted') .card-body - unless @disks.blank? dl.system-info @@ -64,12 +63,12 @@ = "#{number_to_human_size(disk[:bytes_used])} / #{number_to_human_size(disk[:bytes_total])}" .progress.progress-bar-striped class="#{disk[:color]}" role="progressbar" aria-valuenow="#{disk[:percent]}" aria-valuemin="0" aria-valuemax="100" style="width: #{disk[:percent]}%" - else - | 硬盘信息无法获取 + = t('admin.system_info.fail_detect_disk') .col-md-6 .card .card-header - h3.card-title 系统变量 + h3.card-title = t('admin.system_info.system_enviroment') .card-body dl.system-info - @env.each do |key, value| diff --git a/app/views/admin/users/edit.html.slim b/app/views/admin/users/edit.html.slim index 7db2ef4ec..5c0cd3d11 100644 --- a/app/views/admin/users/edit.html.slim +++ b/app/views/admin/users/edit.html.slim @@ -9,16 +9,15 @@ - unless @user.confirmed? .card .card-header.card-border - h3.card-title 激活链接 + h3.card-title = t('admin.users.active_link') .card-body input.form-control value="#{confirmation_url(@user, confirmation_token: @user.confirmation_token)}" disabled=true - small.form-text.text-muted 若邀请用户没有收到激活邮件或者没有正确配置发送邮件设置,可通过本链接激活邮箱。 + small.form-text.text-muted = t('admin.users.active_link_tip') .card .card-header.card-border - h3.card-title 用户信息 + h3.card-title = t('admin.users.user_info') .card-tools a href="#{admin_users_path}" i.far.fa-list-alt - | 返回列表 - + = t('admin.users.goback_to_list') == render 'form' diff --git a/app/views/admin/users/index.html.slim b/app/views/admin/users/index.html.slim index a80fef651..c6c5b51fc 100644 --- a/app/views/admin/users/index.html.slim +++ b/app/views/admin/users/index.html.slim @@ -7,7 +7,7 @@ - content_for :section_rightpanel do a.btn.btn-icon.bg-green href="#{new_admin_user_path}" i.far.fa-plus-square - | 新建用户 + = t('admin.users.new_user') .row .col-md-12 @@ -16,13 +16,13 @@ table.table.p-0 thead tr - th NO - th 用户昵称 - th 邮箱 - th 权限 - th 状态 - th 最后登录时间 - th 操作 + th = t('admin.users.number') + th = t('admin.users.nickname') + th = t('admin.users.email') + th = t('admin.users.role') + th = t('admin.users.status') + th = t('admin.users.last_login_time') + th = t('admin.users.action') tbody - @users.each_with_index do |user, i| tr @@ -36,13 +36,13 @@ = user.role_name td - if user.confirmed_at - | 已激活 + = t('admin.users.actived') - else - = link_to '未激活', edit_admin_user_path(user) + = link_to t('admin.users.unactive'), edit_admin_user_path(user) td - if user.last_sign_in_at = time_ago_in_words(user.last_sign_in_at) - else - | 从未登录 + = t('admin.users.never_logined') td - = link_to '删除', admin_user_path(user), method: :delete, data: { confirm: '你确定?'} + = link_to t('admin.users.destroy_user'), admin_user_path(user), method: :delete, data: { confirm: t('admin.users.destroy_user_confirm', user: user.username)} diff --git a/app/views/admin/users/new.html.slim b/app/views/admin/users/new.html.slim index 46bc9c068..3f6cde047 100644 --- a/app/views/admin/users/new.html.slim +++ b/app/views/admin/users/new.html.slim @@ -8,9 +8,9 @@ .col-md-12 .card .card-header - h3.card-title 用户信息 + h3.card-title = t('admin.users.user_info') .card-tools a href="#{admin_users_path}" i.far.fa-list-alt - | 返回列表 + = t('admin.users.goback_to_list') == render 'form' \ No newline at end of file diff --git a/app/views/admin/web_hooks/index.html.slim b/app/views/admin/web_hooks/index.html.slim index d0a7d1df8..6082e7333 100644 --- a/app/views/admin/web_hooks/index.html.slim +++ b/app/views/admin/web_hooks/index.html.slim @@ -17,10 +17,10 @@ table.table.p-0 thead tr - th NO - th URL - th style="width: 240px" 应用渠道 - th style="width: 70px" 操作 + th = t('admin.web_hooks.number') + th = t('admin.web_hooks.url') + th style="width: 240px" = t('admin.web_hooks.channels') + th style="width: 70px" = t('admin.web_hooks.action') tbody - @web_hooks.each_with_index do |web_hook, i| tr @@ -31,8 +31,8 @@ td = raw web_hook.channels.map {|c| c.app_name }.join("
") td - = link_to '删除', admin_web_hook_path(web_hook), method: :delete, data: { confirm: '你确定?'} + = link_to t('admin.web_hooks.destroy'), admin_web_hook_path(web_hook), method: :delete, data: { confirm: t('admin.web_hooks.destroy_confirm') } - else .card-body.p-0 .bg-warning.p-2.text-center - | 没有发现网络钩子 \ No newline at end of file + = t('admin.web_hooks.empty_content') \ No newline at end of file diff --git a/config/initializers/simple_form_bootstrap.rb b/config/initializers/simple_form_bootstrap.rb index f85ace95f..d924e5b5e 100644 --- a/config/initializers/simple_form_bootstrap.rb +++ b/config/initializers/simple_form_bootstrap.rb @@ -74,6 +74,19 @@ end end + # vertical input for text area + config.wrappers :vertical_text_area, tag: 'div', class: 'form-group', error_class: 'form-group-invalid', valid_class: 'form-group-valid' do |b| + b.use :html5 + b.use :placeholder + b.optional :pattern + b.optional :min_max + b.optional :readonly + b.use :label + b.use :input, class: 'form-control', error_class: 'is-invalid', valid_class: 'is-valid', rows: 15 + b.use :full_error, wrap_with: { tag: 'div', class: 'invalid-feedback' } + b.use :hint, wrap_with: { tag: 'small', class: 'form-text text-muted' } + end + # vertical input for radio buttons and check boxes config.wrappers :vertical_collection, item_wrapper_class: 'form-check', item_label_class: 'form-check-label', tag: 'fieldset', class: 'form-group', error_class: 'form-group-invalid', valid_class: 'form-group-valid' do |b| b.use :html5 @@ -416,18 +429,7 @@ file: :vertical_file, radio_buttons: :vertical_collection, range: :vertical_range, - time: :vertical_multi_select + time: :vertical_multi_select, + text: :vertical_text_area } - - # enable custom form wrappers - # config.wrapper_mappings = { - # boolean: :custom_boolean, - # check_boxes: :custom_collection, - # date: :custom_multi_select, - # datetime: :custom_multi_select, - # file: :custom_file, - # radio_buttons: :custom_collection, - # range: :custom_range, - # time: :custom_multi_select - # } end diff --git a/config/locales/simple_form/simple_form.zh-CN.yml b/config/locales/simple_form/simple_form.zh-CN.yml index 168126671..1699d0b40 100644 --- a/config/locales/simple_form/simple_form.zh-CN.yml +++ b/config/locales/simple_form/simple_form.zh-CN.yml @@ -55,6 +55,8 @@ zh-CN: build_version: '构建版本' file: '调试文件' checksum: '唯一校验码' + setting: + value: 值 hints: defaults: @@ -83,6 +85,8 @@ zh-CN: debug_file: device_type: '应用设备类型' file: '必须使用 zip 文件压缩后的调试文件' + setting: + value: '按照 JSON 标准格式编辑,否则会保存失败' placeholders: release: diff --git a/config/locales/zealot/en.yml b/config/locales/zealot/en.yml index cf9b342d0..d7d9efe92 100644 --- a/config/locales/zealot/en.yml +++ b/config/locales/zealot/en.yml @@ -30,4 +30,8 @@ # available at https://guides.rubyonrails.org/i18n.html. en: - hello: "Hello world" + settings: + default_schemes: + beta: Beta + adhoc: Adhoc + production: Production \ No newline at end of file diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index fc0bcc2b9..5a2aa4bd1 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -19,7 +19,27 @@ zh-CN: page_analytics: 页面统计分析 database_analytics: 数据库分析 admin: + system_info: + server_info: 服务器信息 + zealot_version: Zealot 版本 + found_new_version: '发现新版本: %{version}' + ruby_version: Ruby 版本 + cpu_info: CPU + cpu_core: '%{size} 核' + fail_detect_cpu: CPU 信息监测失败 + memory_info: 内存 + fail_detect_memory: 内存信息监测失败 + disk_info: 磁盘 + fail_detect_disk: 磁盘监测失败 + lauched_time: 运行时间 + volume_mounted: 挂载信息 + fail_detect_disk: 硬盘信息无法获取 + system_enviroment: 系统变量 settings: + enable: 开启 + disable: 关闭 + validates: '条件:%{value}' + general: 通用配置 site_title: 网站标题 site_https: 启用 HTTPS @@ -59,6 +79,32 @@ zh-CN: submit: create: 新增设置 update: 更新设置 + users: + new_user: 新建用户 + user_info: 用户信息 + goback_to_list: 返回列表 + number: '#' + nickname: 用户昵称 + email: 邮箱 + role: 权限 + status: 状态 + last_login_time: 最后登录时间 + action: 操作 + actived: 已激活 + unactive: 未激活 + never_logined: 从未登录 + destroy_user: 删除 + destroy_user_confirm: 你确定要删除【%{user}】用户? + active_link: 激活链接 + active_link_tip: 若发送邮件设置错误或邀请用户没有收到激活邮件,可通过本链接激活。 + web_hooks: + number: '#' + url: URL + channels: 渠道列表 + action: 操作 + empty_content: 没有发现网络钩子 + destroy: 删除 + destroy_confirm: 你确定? dashboard: my_dashboard: 我的控制台 analytics: @@ -118,18 +164,12 @@ zh-CN:
  • Google Play、酷安、小米、华为、vivo、oppo、应用宝等
- help: - title: 使用帮助 - body_html: | -

- Zealot 支持通过网页直接上传和 API 接口上传,更新日志是从自动打包分发系统当前构建 - git commit 的信息检索到上次构建成功之后聚合而成。 -

-

- 需要注意的是: - 所有上传的版本并非完整保留,系统会定期检查所有的版本鉴定为历史版本号的将会保留最后一个构建的版本, - 之前的会被从磁盘中清除(节省硬盘空间和备份数据带来的耗时操作),最新版本所有的构建版本将会全部保留。 -

+ + settings: + default_schemes: + beta: 测试版 + adhoc: 内测版 + production: 产品版 datetime: distance_in_words: From 4711e4e946d7cdd9101e0f4e9b27ea4337cd7f8a Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 9 Sep 2021 14:38:19 +0800 Subject: [PATCH 0669/2165] =?UTF-8?q?feat:=20=E7=AE=A1=E7=90=86=E9=9D=A2?= =?UTF-8?q?=E6=9D=BF=E7=9A=84=E7=BD=91=E7=BB=9C=E9=92=A9=E5=AD=90=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E7=BC=96=E8=BE=91=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/page_analytics_controller.rb | 2 +- app/controllers/admin/settings_controller.rb | 3 +- app/controllers/admin/web_hooks_controller.rb | 6 ++- app/helpers/kaminari_helper.rb | 2 +- app/models/setting.rb | 40 ++++++++++++----- app/views/admin/settings/_form.html.slim | 25 +++++------ app/views/admin/users/edit.html.slim | 2 +- app/views/admin/users/new.html.slim | 2 +- app/views/admin/web_hooks/index.html.slim | 5 --- app/views/admin/web_hooks/show.html.slim | 43 +++++-------------- app/views/kaminari/_gap.html.slim | 2 +- app/views/kaminari/_page.html.slim | 4 +- app/views/layouts/_messages.html.slim | 2 +- config/initializers/simple_form_bootstrap.rb | 4 +- .../locales/simple_form/simple_form.zh-CN.yml | 1 + config/locales/zealot/zh-CN.yml | 5 ++- config/routes.rb | 2 +- 17 files changed, 72 insertions(+), 78 deletions(-) diff --git a/app/controllers/admin/page_analytics_controller.rb b/app/controllers/admin/page_analytics_controller.rb index 80d61ada5..f5a358f9f 100644 --- a/app/controllers/admin/page_analytics_controller.rb +++ b/app/controllers/admin/page_analytics_controller.rb @@ -2,6 +2,6 @@ class Admin::PageAnalyticsController < ApplicationController def index - @title = '页面统计' + @title = t('menu.page_analytics') end end diff --git a/app/controllers/admin/settings_controller.rb b/app/controllers/admin/settings_controller.rb index 094daa72f..f78be28f4 100644 --- a/app/controllers/admin/settings_controller.rb +++ b/app/controllers/admin/settings_controller.rb @@ -10,7 +10,8 @@ def index end def edit - @title = '编辑设置' + @title = t('admin.settings.edit_value') + @value = @setting.value || @setting.default_value end def update diff --git a/app/controllers/admin/web_hooks_controller.rb b/app/controllers/admin/web_hooks_controller.rb index 5164fe21d..00ac732ba 100644 --- a/app/controllers/admin/web_hooks_controller.rb +++ b/app/controllers/admin/web_hooks_controller.rb @@ -32,6 +32,7 @@ def edit end def update + channel_ids = web_hook_params.delete(:channel_ids) return render :edit unless @web_hook.update(web_hook_params) redirect_to admin_web_hooks_url, notice: '网络钩子已经更新' @@ -50,6 +51,9 @@ def set_web_hook end def web_hook_params - params.require(:web_hook).permit(:url, :upload_events, :download_events, :changelog_events) + params.require(:web_hook).permit( + :url, :body, :upload_events, :download_events, :changelog_events, + channel_ids: [] + ) end end diff --git a/app/helpers/kaminari_helper.rb b/app/helpers/kaminari_helper.rb index 1126c174a..1171ef7e8 100644 --- a/app/helpers/kaminari_helper.rb +++ b/app/helpers/kaminari_helper.rb @@ -8,7 +8,7 @@ def get_pagination_link(is_true, linkt_text, url, rel, remote) end def build_link(url, css_class, rel, linkt_text, remote) - content_tag :li, class: css_class do + content_tag(:li, class: css_class) do concat(link_to(raw(linkt_text), url, rel: rel, remote: remote, class: 'page-link').html_safe) end end diff --git a/app/models/setting.rb b/app/models/setting.rb index ec3a971fd..75b763b71 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -2,17 +2,27 @@ # RailsSettings Model class Setting < RailsSettings::Base - cache_prefix { 'v1' } + extend ActionView::Helpers::TranslationHelper - DEFAULT_SITE_HTTPS = Rails.env.production? || ENV['ZEALOT_USE_HTTPS'].present? - DEFAULT_SITE_DOMAIN = DEFAULT_SITE_HTTPS ? 'localhost' : "localhost:#{ENV['ZEALOT_PORT'] || 3000}" - DEFAULT_SCHEMES = [ - I18n.t('settings.default_schemes.beta'), - I18n.t('settings.default_schemes.adhoc'), - I18n.t('settings.default_schemes.production'), - ] + cache_prefix { 'v1' } class << self + def present_schemes + [ + t('settings.default_schemes.beta', raise: false), + t('settings.default_schemes.adhoc', raise: false), + t('settings.default_schemes.production', raise: false) + ] + end + + def site_https + Rails.env.production? || ENV['ZEALOT_USE_HTTPS'].present? + end + + def site_domain + site_https ? 'localhost' : "localhost:#{ENV['ZEALOT_PORT'] || 3000}" + end + def site_configs group_configs.each_with_object({}) do |(scope, items), obj| obj[scope] = items.each_with_object({}) do |item, inner| @@ -60,7 +70,7 @@ def url_options # 预值 scope :presets do - field :default_schemes, default: DEFAULT_SCHEMES, type: :array, display: true + field :default_schemes, default: present_schemes, type: :array, display: true field :default_role, default: 'user', type: :string, display: true, validates: { presence: true, inclusion: { in: UserRoles::ROLE_NAMES.keys.map(&:to_s) } } end @@ -146,7 +156,7 @@ def readonly? end def field_validates - validates = Setting.validators_on(var) + validates = self.class.validators_on(var) validates.each_with_object([]) do |validate, obj| next unless value = validate_value(validate) @@ -154,6 +164,16 @@ def field_validates end end + def default_value + self.class.send(self.var.to_sym) + end + alias_method :default, :default_value + + def type + @option ||= self.class.get_field(self.var) + @option[:type] + end + private def validate_value(validate) diff --git a/app/views/admin/settings/_form.html.slim b/app/views/admin/settings/_form.html.slim index cbf7c0481..14360bddc 100644 --- a/app/views/admin/settings/_form.html.slim +++ b/app/views/admin/settings/_form.html.slim @@ -1,37 +1,32 @@ -ruby: - key = @setting.var - value = @setting.value || Setting.send(key.to_sym) - type = Setting.get_field(key)[:type] - .row .col-md-12 .card .card-header - h3.card-title = t("admin.settings.#{key}") + h3.card-title = t("admin.settings.#{@setting.var}") .card-tools a href="#{admin_settings_path}" i.far.fa-list-alt - | 返回系统配置 + = t('admin.link.back_to_list') - = simple_form_for(@setting, url: admin_setting_path(key), method: :patch) do |f| + = simple_form_for(@setting, url: admin_setting_path(@setting.var), method: :patch) do |f| .card-body - if @setting.errors.size > 0 .callout.callout-danger - h5 = t('activerecord.errors.models.setting.default_message', key: t("admin.settings.#{key}")) + h5 = t('activerecord.errors.models.setting.default_message', key: t("admin.settings.#{@setting.var}")) ul style="margin-bottom: 0" - @setting.errors.each do |error| li = error.message - input.hidden type="hidden" value="#{type}" name="setting[type]" - - if type == :boolean + input.hidden type="hidden" value="#{@setting.type}" name="setting[type]" + - if @setting.type == :boolean = f.input :value, label: t('admin.settings.enable'), as: :boolean, checked: type, hint: false - - elsif type == :hash || type == :array - = f.input :value, as: :text, input_html: { value: JSON.pretty_generate(value) } + - elsif @setting.type == :hash || @setting.type == :array + = f.input :value, as: :text, input_html: { value: JSON.pretty_generate(@value) } - else - = f.input :value, as: :text, input_html: { value: value }, hint: false + = f.input :value, as: :text, input_html: { value: @value }, hint: false - unless @setting.field_validates.empty? small.form-text.text-muted - = t("admin.settings.validates", value: @setting.field_validates.join(" / ")) + = t('admin.settings.validates', value: @setting.field_validates.join(' / ')) .card-footer = f.button :submit, t('admin.settings.submit.update') \ No newline at end of file diff --git a/app/views/admin/users/edit.html.slim b/app/views/admin/users/edit.html.slim index 5c0cd3d11..47229bc6a 100644 --- a/app/views/admin/users/edit.html.slim +++ b/app/views/admin/users/edit.html.slim @@ -19,5 +19,5 @@ .card-tools a href="#{admin_users_path}" i.far.fa-list-alt - = t('admin.users.goback_to_list') + = t('admin.link.back_to_list') == render 'form' diff --git a/app/views/admin/users/new.html.slim b/app/views/admin/users/new.html.slim index 3f6cde047..e796a5f8e 100644 --- a/app/views/admin/users/new.html.slim +++ b/app/views/admin/users/new.html.slim @@ -12,5 +12,5 @@ .card-tools a href="#{admin_users_path}" i.far.fa-list-alt - = t('admin.users.goback_to_list') + = t('admin.link.back_to_list') == render 'form' \ No newline at end of file diff --git a/app/views/admin/web_hooks/index.html.slim b/app/views/admin/web_hooks/index.html.slim index 6082e7333..0ecea722e 100644 --- a/app/views/admin/web_hooks/index.html.slim +++ b/app/views/admin/web_hooks/index.html.slim @@ -4,11 +4,6 @@ - content_for :section_title do = @title -/ - content_for :section_rightpanel do -/ a.btn.btn-icon.bg-green href="#{new_admin_web_hook_path}" -/ i.far.fa-plus-square -/ | 新建网络钩子 - .row .col-md-12 .card diff --git a/app/views/admin/web_hooks/show.html.slim b/app/views/admin/web_hooks/show.html.slim index 897561406..12911f588 100644 --- a/app/views/admin/web_hooks/show.html.slim +++ b/app/views/admin/web_hooks/show.html.slim @@ -1,41 +1,18 @@ - content_for :title do = @title -- content_for :section_title do - = @title - -/ - content_for :section_rightpanel do -/ a.btn.bg-green href="#{new_admin_web_hook_path}" -/ i.far.fa-plus-square -/ | 新建网络钩子 +/ - content_for :section_title do +/ = @title .row .col-md-12 .card .card-body - .form-group - label for="url" URL - input.form-control value="#{@web_hook.url}" disabled=true - .form-group - label for="body" Body - textarea.form-control rows="3" disabled=true placeholder="默认结构" - = @web_hook.body - .form-check - = check_box_tag 'upload_events', 1, @web_hook.upload_events == 1, disabled: true, class: 'form-check-input' - label.form-check-label for="upload_events" 上传事件 - .form-check - = check_box_tag 'download_events', 1, @web_hook.download_events == 1, disabled: true, class: 'form-check-input' - label.form-check-label for="download_events" 下载事件 - .form-check - = check_box_tag 'changelog_events', 1, @web_hook.changelog_events == 1, disabled: true, class: 'form-check-input' - label.form-check-label for="changelog_events" 日志变更事件 - .col-md-12 - .card - .card-header - h3.card-title 使用应用渠道 - .card-body.p-0 - table.table - - @web_hook.channels.all.each do |channel| - tr - td - = link_to channel.app_name, channel_path(channel) \ No newline at end of file + = simple_form_for(@web_hook, url: admin_web_hook_path(@web_hook)) do |f| + = f.input :url + = f.input :body + = f.input :upload_events, as: :boolean + = f.input :download_events, as: :boolean + = f.input :changelog_events, as: :boolean + = f.association :channels, label_method: :app_name, value_method: :id, as: :check_boxes + = f.button :submit \ No newline at end of file diff --git a/app/views/kaminari/_gap.html.slim b/app/views/kaminari/_gap.html.slim index 8357d924e..c0c44491b 100644 --- a/app/views/kaminari/_gap.html.slim +++ b/app/views/kaminari/_gap.html.slim @@ -1,2 +1,2 @@ li.disabled - = content_tag :a, raw(t 'views.pagination.truncate'), class: 'page-link' + = content_tag(:a, raw(t('views.pagination.truncate')), class: 'page-link') diff --git a/app/views/kaminari/_page.html.slim b/app/views/kaminari/_page.html.slim index 8ca146c74..f74a2590e 100644 --- a/app/views/kaminari/_page.html.slim +++ b/app/views/kaminari/_page.html.slim @@ -1,6 +1,6 @@ - if page.current? li.page-item class="active" - = content_tag :a, page, remote: remote, rel: (page.next? ? 'next' : (page.prev? ? 'prev' : nil)), class: 'page-link' + = content_tag(:a, page, remote: remote, rel: (page.next? ? 'next' : (page.prev? ? 'prev' : nil)), class: 'page-link') - else li.page-item - = link_to page, url, remote: remote, rel: (page.next? ? 'next' : (page.prev? ? 'prev' : nil)), class: 'page-link' \ No newline at end of file + = link_to(page, url, remote: remote, rel: (page.next? ? 'next' : (page.prev? ? 'prev' : nil)), class: 'page-link') \ No newline at end of file diff --git a/app/views/layouts/_messages.html.slim b/app/views/layouts/_messages.html.slim index f891a3656..0979a6a6a 100644 --- a/app/views/layouts/_messages.html.slim +++ b/app/views/layouts/_messages.html.slim @@ -13,4 +13,4 @@ | × h4 i.icon.fas class="fa-#{icon}" - = content_tag :span, msg, :id => "flash_#{name}" \ No newline at end of file + = content_tag(:span, msg, :id => "flash_#{name}") \ No newline at end of file diff --git a/config/initializers/simple_form_bootstrap.rb b/config/initializers/simple_form_bootstrap.rb index d924e5b5e..f9b6d6b3f 100644 --- a/config/initializers/simple_form_bootstrap.rb +++ b/config/initializers/simple_form_bootstrap.rb @@ -91,9 +91,7 @@ config.wrappers :vertical_collection, item_wrapper_class: 'form-check', item_label_class: 'form-check-label', tag: 'fieldset', class: 'form-group', error_class: 'form-group-invalid', valid_class: 'form-group-valid' do |b| b.use :html5 b.optional :readonly - b.wrapper :legend_tag, tag: 'legend', class: 'col-form-label pt-0' do |ba| - ba.use :label_text - end + b.use :label b.use :input, class: 'form-check-input', error_class: 'is-invalid', valid_class: 'is-valid' b.use :full_error, wrap_with: { tag: 'div', class: 'invalid-feedback d-block' } b.use :hint, wrap_with: { tag: 'small', class: 'form-text text-muted' } diff --git a/config/locales/simple_form/simple_form.zh-CN.yml b/config/locales/simple_form/simple_form.zh-CN.yml index 1699d0b40..fb09035d3 100644 --- a/config/locales/simple_form/simple_form.zh-CN.yml +++ b/config/locales/simple_form/simple_form.zh-CN.yml @@ -48,6 +48,7 @@ zh-CN: upload_events: '上传事件' download_events: '下载事件' changelog_events: '日志变更事件' + channels: 启用的应用渠道 debug_file: app_id: '应用' device_type: '应用平台' diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index 5a2aa4bd1..13cebb772 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -18,7 +18,10 @@ zh-CN: background_jobs: 后台任务 page_analytics: 页面统计分析 database_analytics: 数据库分析 + admin: + link: + back_to_list: 返回列表 system_info: server_info: 服务器信息 zealot_version: Zealot 版本 @@ -39,6 +42,7 @@ zh-CN: enable: 开启 disable: 关闭 validates: '条件:%{value}' + edit_value: 编辑设置 general: 通用配置 site_title: 网站标题 @@ -82,7 +86,6 @@ zh-CN: users: new_user: 新建用户 user_info: 用户信息 - goback_to_list: 返回列表 number: '#' nickname: 用户昵称 email: 邮箱 diff --git a/config/routes.rb b/config/routes.rb index d0fa53800..61ff1697f 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -104,7 +104,7 @@ root to: 'settings#index' resources :users, except: :show - resources :web_hooks, except: %i[edit update] + resources :web_hooks#, except: %i[edit update] resources :settings resources :background_jobs, only: :index From 745805694bc05432e767d329c9095c8b32fb96ef Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 9 Sep 2021 17:37:42 +0800 Subject: [PATCH 0670/2165] =?UTF-8?q?fix:=20=E5=85=BC=E5=AE=B9=20Setting?= =?UTF-8?q?=20=E5=88=9D=E5=A7=8B=E5=8C=96=E7=9A=84=E6=97=B6=E5=80=99?= =?UTF-8?q?=E6=B2=A1=E6=9C=89=E6=8B=BF=E5=88=B0=E7=BF=BB=E8=AF=91=E8=AF=AD?= =?UTF-8?q?=E8=A8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/admin/settings_controller.rb | 6 ++++++ app/helpers/apps_helper.rb | 4 +++- app/models/setting.rb | 8 ++++---- app/views/admin/settings/index.html.slim | 4 ++++ 4 files changed, 17 insertions(+), 5 deletions(-) diff --git a/app/controllers/admin/settings_controller.rb b/app/controllers/admin/settings_controller.rb index f78be28f4..3e1279ba5 100644 --- a/app/controllers/admin/settings_controller.rb +++ b/app/controllers/admin/settings_controller.rb @@ -12,6 +12,12 @@ def index def edit @title = t('admin.settings.edit_value') @value = @setting.value || @setting.default_value + + # FIXME: RailsSettings::Base 初始化会缓存造成 i18n 第一时间拿不到 + # 以至于 index, edit 好些地方都需要兼容 + if @setting.var == 'default_schemes' && (@setting.value.blank? || @setting.value.empty?) + @value = Setting.present_schemes + end end def update diff --git a/app/helpers/apps_helper.rb b/app/helpers/apps_helper.rb index cb440cd93..535f0ba1d 100644 --- a/app/helpers/apps_helper.rb +++ b/app/helpers/apps_helper.rb @@ -2,7 +2,9 @@ module AppsHelper def default_schemes - Setting.default_schemes + schemes = Setting.default_schemes + schemes = Setting.present_schemes if schemes.empty? + schemes end def default_channels diff --git a/app/models/setting.rb b/app/models/setting.rb index 75b763b71..b5aa191cd 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -9,10 +9,10 @@ class Setting < RailsSettings::Base class << self def present_schemes [ - t('settings.default_schemes.beta', raise: false), - t('settings.default_schemes.adhoc', raise: false), - t('settings.default_schemes.production', raise: false) - ] + t('settings.default_schemes.beta', raise: false, default: nil), + t('settings.default_schemes.adhoc', raise: false, default: nil), + t('settings.default_schemes.production', raise: false, default: nil) + ].compact end def site_https diff --git a/app/views/admin/settings/index.html.slim b/app/views/admin/settings/index.html.slim index 5a84d911b..554c8d633 100644 --- a/app/views/admin/settings/index.html.slim +++ b/app/views/admin/settings/index.html.slim @@ -15,6 +15,10 @@ form.form-horizontal - keys.each do |key, params| ruby: value = params[:value] + if key == 'default_schemes' && value&.empty? + value = Setting.present_schemes + end + display_value = case value when Hash JSON.pretty_generate(value) From 44665397a48fde150ac034105188a2c56c697dd3 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 9 Sep 2021 18:50:57 +0800 Subject: [PATCH 0671/2165] feat(i18n): devise 100% --- app/controllers/admin/users_controller.rb | 12 ++--- app/controllers/admin/web_hooks_controller.rb | 12 ++--- app/controllers/apps_controller.rb | 4 +- app/controllers/channels_controller.rb | 2 +- .../users/omniauth_callbacks_controller.rb | 43 +++++++++-------- app/controllers/web_hooks_controller.rb | 10 ++-- app/views/apps/_list.html.slim | 2 +- app/views/apps/show.html.slim | 6 +-- app/views/devise/shared/_form_ldap.html.slim | 16 ++++--- .../devise/shared/_form_normal.html.slim | 5 +- app/views/devise/shared/_links.html.slim | 14 +++--- app/views/devise/shared/_tab_ldap.html.slim | 2 +- app/views/devise/shared/_tab_normal.html.slim | 2 +- config/locales/devise/devise.views.zh-CN.yml | 10 ++-- .../locales/simple_form/simple_form.zh-CN.yml | 2 +- config/locales/zealot/zh-CN.yml | 47 ++++++++++++++++--- 16 files changed, 116 insertions(+), 73 deletions(-) diff --git a/app/controllers/admin/users_controller.rb b/app/controllers/admin/users_controller.rb index e61e50037..90cdc81b4 100644 --- a/app/controllers/admin/users_controller.rb +++ b/app/controllers/admin/users_controller.rb @@ -10,7 +10,7 @@ def index end def new - @title = '新建用户' + @title = t('admin.users.new_user') @user = User.new authorize @user end @@ -21,7 +21,7 @@ def create return render :new unless @user.save - redirect_to admin_users_url, notice: '用户创建成功' + redirect_to admin_users_url, notice: t('activerecord.success.create', key: t('menu.users')) end def edit @@ -30,7 +30,7 @@ def edit def update if helpers.default_admin_in_demo_mode?(@user) - return redirect_to admin_users_url, alert: '演示模式不能编辑默认管理员' + return redirect_to admin_users_url, alert: t('errors.messages.invaild_in_demo_mode') end # 没有设置密码的情况下不更新该字段 @@ -38,16 +38,16 @@ def update params.delete(:password) if params[:password].blank? return render :edit unless @user.update(params) - redirect_to admin_users_url, notice: '用户已经更新' + redirect_to admin_users_url, notice: t('activerecord.success.update', key: t('menu.users')) end def destroy if helpers.default_admin_in_demo_mode?(@user) - return redirect_to admin_users_url, alert: '演示模式不能删除默认管理员!' + return redirect_to admin_users_url, alert: t('errors.messages.invaild_in_demo_mode') end @user.destroy - redirect_to admin_users_url, notice: '用户已经删除' + redirect_to admin_users_url, notice: t('activerecord.success.destroy', key: t('menu.users')) end private diff --git a/app/controllers/admin/web_hooks_controller.rb b/app/controllers/admin/web_hooks_controller.rb index 00ac732ba..e2c2adc38 100644 --- a/app/controllers/admin/web_hooks_controller.rb +++ b/app/controllers/admin/web_hooks_controller.rb @@ -10,11 +10,11 @@ def index end def show - @title = '网络钩子详情' + @title = t('admin.web_hooks.show') end def new - @title = '新建网络钩子' + @title = t('admin.web_hooks.new') @web_hook = WebHook.new authorize @web_hook end @@ -24,23 +24,23 @@ def create authorize @web_hook return render :new unless @web_hook.save - redirect_to admin_users_url, notice: '网络钩子创建成功' + redirect_to admin_users_url, notice: t('activerecord.success.create', key: t('menu.web_hooks')) end def edit - @title = '编辑网络钩子' + @title = t('admin.web_hooks.edit') end def update channel_ids = web_hook_params.delete(:channel_ids) return render :edit unless @web_hook.update(web_hook_params) - redirect_to admin_web_hooks_url, notice: '网络钩子已经更新' + redirect_to admin_web_hooks_url, notice: t('activerecord.success.update', key: t('menu.web_hooks')) end def destroy @web_hook.destroy - redirect_to admin_web_hooks_url, notice: '网络钩子已经删除' + redirect_to admin_web_hooks_url, notice: t('activerecord.success.destroy', key: t('menu.web_hooks')) end private diff --git a/app/controllers/apps_controller.rb b/app/controllers/apps_controller.rb index 79a331a25..18e039562 100644 --- a/app/controllers/apps_controller.rb +++ b/app/controllers/apps_controller.rb @@ -36,7 +36,7 @@ def create @app.users << current_user app_create_schemes_and_channels - redirect_to apps_path, notice: t('apps.messages.create_app_success', name: @app.name) + redirect_to apps_path, notice: t('apps.messages.success.create', name: @app.name) end def update @@ -91,6 +91,6 @@ def app_params end def render_not_found_entity_response(e) - redirect_to apps_path, notice: t('apps.messages.not_found_app', id: e.id) + redirect_to apps_path, notice: t('apps.messages.failture.not_found_app', id: e.id) end end diff --git a/app/controllers/channels_controller.rb b/app/controllers/channels_controller.rb index 1642d03e5..7a3e7b8ad 100644 --- a/app/controllers/channels_controller.rb +++ b/app/controllers/channels_controller.rb @@ -26,7 +26,7 @@ def create authorize @channel if @channel.save - redirect_to app_path(@channel.scheme.app), notice: "#{@channel.scheme.name} #{@channel.name} 渠道创建成功" + redirect_to app_path(@channel.scheme.app), notice: t('activerecord.success.create', key: "#{@channel.scheme.name} #{@channel.name} 渠道") else @channel.errors end diff --git a/app/controllers/users/omniauth_callbacks_controller.rb b/app/controllers/users/omniauth_callbacks_controller.rb index ded4be26b..7e2ac2e29 100644 --- a/app/controllers/users/omniauth_callbacks_controller.rb +++ b/app/controllers/users/omniauth_callbacks_controller.rb @@ -1,30 +1,35 @@ # frozen_string_literal: true class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController - def google_oauth2 - omniauth_callback('Google ', 'google_data') + User.oauth_providers.each do |provider_name| + define_method(provider_name) do + omniauth_callback(provider_name) + end end - def ldap - omniauth_callback('LDAP ', 'ldap_data') - end + # def google_oauth2 + # omniauth_callback('Google ', 'google_data') + # end - def feishu - omniauth_callback('飞书', 'feishu_data') - end + # def ldap + # omniauth_callback('LDAP ', 'ldap_data') + # end - def gitlab - omniauth_callback('Gitlab', 'gitlab_data') - end + # def feishu + # omniauth_callback('飞书', 'feishu_data') + # end - def failure - flash[:error] = "授权失败!请检查你的账户和密码是否正确,原始错误信息:#{failure_message}" - redirect_to after_omniauth_failure_path_for(resource_name) + # def gitlab + # omniauth_callback('Gitlab', 'gitlab_data') + # end + + def passthru + redirect_to root_path(signin: 'true') end private - def omniauth_callback(name, session_key) + def omniauth_callback(name) auth = request.env['omniauth.auth'] provider = UserProvider.find_by(name: auth.provider, uid: auth.uid) @@ -32,7 +37,7 @@ def omniauth_callback(name, session_key) if provider provider.update_omniauth(auth.credentials) - flash[:notice] = "#{name}账户已登录" + flash[:notice] = t('devise.omniauth_callbacks.success', kind: name) return sign_in_and_redirect provider.user end @@ -43,18 +48,16 @@ def omniauth_callback(name, session_key) end end - private - def connect_user_to_provider(name, auth) current_user.providers.from_omniauth(auth) bypass_sign_in(current_user) - redirect_to goback_path, notice: "#{name}账户已关联" + redirect_to goback_path, notice: t('devise.omniauth_callbacks.success', kind: name) end def store_new_user(name, auth) user = User.from_omniauth(auth) - flash[:notice] = "#{name}账户已授权并创建用户" + flash[:notice] = t('devise.registrations.signed_up') sign_in_and_redirect user end diff --git a/app/controllers/web_hooks_controller.rb b/app/controllers/web_hooks_controller.rb index 588b944ce..520289075 100644 --- a/app/controllers/web_hooks_controller.rb +++ b/app/controllers/web_hooks_controller.rb @@ -12,28 +12,28 @@ def create authorize @web_hook return redirect_to_channel_url unless @web_hook.save - redirect_to_channel_url notice: '网络钩子创建成功' + redirect_to_channel_url notice: t('activerecord.success.create', key: t('menu.web_hooks')) end def destroy @web_hook.destroy - redirect_to_channel_url notice: '网络钩子已经成功删除' + redirect_to_channel_url notice: t('activerecord.success.destroy', key: t('menu.web_hooks')) end def disable @channel.web_hooks.delete @web_hook - redirect_to_channel_url notice: '网络钩子已经取消启用' + redirect_to_channel_url notice: t('admin.web_hooks.messages.success.disable') end def enable @web_hook.channels << @channel - redirect_to channel_url(@channel, anchor: 'enabled'), notice: '网络钩子已经成功启用' + redirect_to channel_url(@channel, anchor: 'enabled'), notice: t('admin.web_hooks.messages.success.enable') end def test event = params[:event] || 'upload_events' AppWebHookJob.perform_later event, @web_hook, @channel - redirect_to_channel_url notice: '网络钩子请求测试已发送' + redirect_to_channel_url notice: t('admin.web_hooks.messages.success.test') end private diff --git a/app/views/apps/_list.html.slim b/app/views/apps/_list.html.slim index e7f05f4a1..91fe452e9 100644 --- a/app/views/apps/_list.html.slim +++ b/app/views/apps/_list.html.slim @@ -13,7 +13,7 @@ i.far.fa-plus-square a.btn.btn-tool href="#{edit_app_path(app)}" i.fas.fa-edit - a.btn.btn-tool href="#{app_path(app)}" data-confirm="#{t('apps.messages.delete_app_confirm', name: app.name)}" data-method="delete" + a.btn.btn-tool href="#{app_path(app)}" data-confirm="#{t('apps.messages.confirm.delete_app', name: app.name)}" data-method="delete" i.fas.fa-trash-alt .card-body.p-0 .app-schemes diff --git a/app/views/apps/show.html.slim b/app/views/apps/show.html.slim index 1063ee2b8..93575ad96 100644 --- a/app/views/apps/show.html.slim +++ b/app/views/apps/show.html.slim @@ -8,7 +8,7 @@ .btn-group = button_link_to t('apps.menu.new_scheme'), new_app_scheme_path(@app), 'plus-square', class: 'btn-icon btn-default btn-sm btn-flat' = button_link_to t('apps.menu.edit_app'), edit_app_path(@app), 'edit', class: 'btn-icon btn-default btn-sm btn-flat' - = button_link_to t('apps.menu.destroy_app'), app_path(@app), 'trash-alt', class: 'btn-icon btn-default btn-sm btn-flat', data: { confirm: "#{t('apps.messages.delete_app_confirm', name: @app.name)}", method: "delete" } + = button_link_to t('apps.menu.destroy_app'), app_path(@app), 'trash-alt', class: 'btn-icon btn-default btn-sm btn-flat', data: { confirm: "#{t('apps.messages.confirm.delete_app', name: @app.name)}", method: "delete" } .row .col-md-12 @@ -22,7 +22,7 @@ .sections-actions.btn-group = button_link_to t('apps.menu.new_channel'), new_app_scheme_channel_path(@app, scheme), 'plus-square', class: 'btn-icon btn-default btn-sm btn-flat' = button_link_to t('apps.menu.edit_scheme'), edit_app_scheme_path(@app, scheme), 'edit', class: 'btn-icon btn-default btn-sm btn-flat' - = button_link_to t('apps.menu.destory_scheme'), app_scheme_path(@app, scheme), 'trash-alt', class: 'btn-icon btn-default btn-sm btn-flat', data: { confirm: "#{t('apps.messages.delete_app_scheme_confirm', name: scheme.app_name)}", method: "delete" } + = button_link_to t('apps.menu.destory_scheme'), app_scheme_path(@app, scheme), 'trash-alt', class: 'btn-icon btn-default btn-sm btn-flat', data: { confirm: "#{t('apps.messages.confirm.delete_app_scheme', name: scheme.app_name)}", method: "delete" } .card-body.p-0 section.app-section id="scheme-#{scheme.id}" @@ -34,7 +34,7 @@ = link_to channel.name, channel_path(channel) td style="width: 120px" = button_link_to '', edit_app_scheme_channel_path(@app, scheme, channel), 'edit', class: 'btn-box-tool' - = button_link_to '', app_scheme_channel_path(@app, scheme, channel), 'trash-alt', class: 'btn-box-tool', data: { confirm: "#{t('apps.messages.delete_app_channel_confirm', name: channel.app_name)}", method: "delete" } + = button_link_to '', app_scheme_channel_path(@app, scheme, channel), 'trash-alt', class: 'btn-box-tool', data: { confirm: "#{t('apps.messages.confirm.delete_app_channel', name: channel.app_name)}", method: "delete" } - else tr td colspan="2" diff --git a/app/views/devise/shared/_form_ldap.html.slim b/app/views/devise/shared/_form_ldap.html.slim index 831d0399f..2a08c75f7 100644 --- a/app/views/devise/shared/_form_ldap.html.slim +++ b/app/views/devise/shared/_form_ldap.html.slim @@ -1,12 +1,14 @@ - if ldap_auth_enable? #login-tabs-ldap.tab-pane.fade aria-labelledby="login-tabs-ldap-tab" role="tabpanel" = form_tag(user_ldap_omniauth_callback_path) do + == render 'layouts/messages' + .form-group - = label_tag :username, "LDAP 账户" - = text_field_tag :username, nil, class: "form-control top", title: "This field is required.", autofocus: "autofocus", data: { qa_selector: 'username_field' }, required: true + = label_tag :username, t('devise.ldap.username') + = text_field_tag :username, nil, class: "form-control top", autofocus: "autofocus", data: { qa_selector: 'username_field' }, required: true .form-group - = label_tag :password, "LDAP 密码" - = password_field_tag :password, nil, class: "form-control bottom", title: "This field is required.", data: { qa_selector: 'password_field' }, required: true + = label_tag :password, t('devise.ldap.password') + = password_field_tag :password, nil, class: "form-control bottom", data: { qa_selector: 'password_field' }, required: true - if devise_mapping.rememberable? .row @@ -14,8 +16,10 @@ fieldset.form-group.boolean.optional.user_remember_me.icheck-primary style=("margin-top: 6px!important") .form-check = check_box_tag :remember_me, '1', false, id: 'user_remember_me', class: 'form-check-input boolean optional' - = label_tag :remember_me, '记住我', class: 'form-check-label boolean optional', style: 'font-weight: 700' + = label_tag :remember_me, t('activerecord.attributes.user.remember_me'), class: 'form-check-label boolean optional', style: 'font-weight: 700' .row .col-12 - = submit_tag "登录", class: "btn btn-primary btn-block", data: { qa_selector: 'sign_in_button' } + = submit_tag t('devise.sessions.new.sign_in'), class: "btn btn-primary btn-block", data: { qa_selector: 'sign_in_button' } + + == render 'devise/shared/links' diff --git a/app/views/devise/shared/_form_normal.html.slim b/app/views/devise/shared/_form_normal.html.slim index ac64ad825..f78a4992f 100644 --- a/app/views/devise/shared/_form_normal.html.slim +++ b/app/views/devise/shared/_form_normal.html.slim @@ -7,9 +7,10 @@ .row .col-12 - = f.input :remember_me, as: :boolean, wrapper_html: {class: 'icheck-primary', style: 'margin-top: 6px!important'}, label_html: { style: 'font-weight: 700'} if devise_mapping.rememberable? + - if devise_mapping.rememberable? + = f.input :remember_me, as: :boolean, wrapper_html: {class: 'icheck-primary', style: 'margin-top: 6px!important'}, label_html: { style: 'font-weight: 700'} .row .col-12 - = f.button :submit, '登录', class: 'btn-block' + = f.button :submit, t('devise.sessions.new.sign_in'), class: 'btn-block' == render 'devise/shared/links' \ No newline at end of file diff --git a/app/views/devise/shared/_links.html.slim b/app/views/devise/shared/_links.html.slim index 5b77df70e..0be79eeae 100644 --- a/app/views/devise/shared/_links.html.slim +++ b/app/views/devise/shared/_links.html.slim @@ -1,6 +1,6 @@ - if devise_mapping.omniauthable? .social-auth-links.text-center.mb-3 - p - 或者 - + p = t('devise.shared.hint') - resource_class.oauth_providers.each do |provider| - unless provider == :ldap ruby: @@ -9,25 +9,25 @@ a.btn.btn-icon.btn-block href="#{public_send("user_#{provider}_omniauth_authorize_path")}" class="btn-default btn-auth-#{key}" i.fab class="fa-#{key}" - = "使用 #{title} 账号登录" + = t('devise.shared.links.sign_in_with_provider', provider: title) - if controller_name != 'sessions' p.mb-1 - = link_to "登录账户", new_session_path(resource_name) + = link_to t('devise.shared.links.sign_in'), new_session_path(resource_name) - if Setting.registrations_mode && devise_mapping.registerable? && controller_name != 'registrations' p.mb-1 - = link_to "注册账号", new_registration_path(resource_name) + = link_to t('devise.shared.links.sign_up'), new_registration_path(resource_name) - if devise_mapping.recoverable? && controller_name != 'passwords' && controller_name != 'registrations' p.mb-1 - = link_to "忘记密码?", new_password_path(resource_name) + = link_to t('devise.shared.links.forgot_your_password'), new_password_path(resource_name) - if devise_mapping.confirmable? && controller_name != 'confirmations' p.mb-1 - = link_to "没有收到确认邮件?", new_confirmation_path(resource_name) + = link_to t('devise.shared.links.didn_t_receive_confirmation_instructions'), new_confirmation_path(resource_name) - if devise_mapping.lockable? && resource_class.unlock_strategy_enabled?(:email) && controller_name != 'unlocks' p.mb-0 - = link_to "没有收到解锁账号确认邮件?", new_unlock_path(resource_name) + = link_to t('devise.shared.links.didn_t_receive_unlock_instructions'), new_unlock_path(resource_name) diff --git a/app/views/devise/shared/_tab_ldap.html.slim b/app/views/devise/shared/_tab_ldap.html.slim index 76b532758..db6e22eae 100644 --- a/app/views/devise/shared/_tab_ldap.html.slim +++ b/app/views/devise/shared/_tab_ldap.html.slim @@ -1,4 +1,4 @@ - if ldap_auth_enable? li.nav-item a#login-tabs-ldap-tab.nav-link aria-controls="login-tabs-ldap" aria-selected="true" data-toggle="pill" href="#login-tabs-ldap" role="tab" - | LDAP 登录 \ No newline at end of file + = t('devise.ldap.title') \ No newline at end of file diff --git a/app/views/devise/shared/_tab_normal.html.slim b/app/views/devise/shared/_tab_normal.html.slim index 4b1fd2e32..ebc81e903 100644 --- a/app/views/devise/shared/_tab_normal.html.slim +++ b/app/views/devise/shared/_tab_normal.html.slim @@ -1,3 +1,3 @@ li.nav-item a#login-tabs-standard-tab.nav-link.active aria-controls="login-tabs-standard" aria-selected="false" data-toggle="pill" href="#login-tabs-standard" role="tab" - | 标准登录 \ No newline at end of file + = t('devise.normal.title') \ No newline at end of file diff --git a/config/locales/devise/devise.views.zh-CN.yml b/config/locales/devise/devise.views.zh-CN.yml index 2b41290b0..ca70e2e13 100644 --- a/config/locales/devise/devise.views.zh-CN.yml +++ b/config/locales/devise/devise.views.zh-CN.yml @@ -117,12 +117,12 @@ zh-CN: shared: links: back: 返回 - didn_t_receive_confirmation_instructions: 没有收到确认邮件? - didn_t_receive_unlock_instructions: 没有收到解锁邮件? + didn_t_receive_confirmation_instructions: 没有收到确认邮件? + didn_t_receive_unlock_instructions: 没有收到解锁账号确认邮件? forgot_your_password: 忘记密码? - sign_in: 登录 - sign_in_with_provider: 通过 %{provider} 登录 - sign_up: 注册 + sign_in: 登录账户 + sign_in_with_provider: 通过%{provider}登录 + sign_up: 注册账户 minimum_password_length: "(最少%{count}个字符)" unlocks: new: diff --git a/config/locales/simple_form/simple_form.zh-CN.yml b/config/locales/simple_form/simple_form.zh-CN.yml index fb09035d3..d59f99bdc 100644 --- a/config/locales/simple_form/simple_form.zh-CN.yml +++ b/config/locales/simple_form/simple_form.zh-CN.yml @@ -21,7 +21,7 @@ zh-CN: password: '登录密码' password_confirmation: '密码确认' role: '账户权限' - remember_me: '记住我' + remember_me: '记住登录信息' app: name: '应用名称' schemes: diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index 13cebb772..196d2a6d6 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -22,6 +22,7 @@ zh-CN: admin: link: back_to_list: 返回列表 + system_info: server_info: 服务器信息 zealot_version: Zealot 版本 @@ -38,6 +39,7 @@ zh-CN: volume_mounted: 挂载信息 fail_detect_disk: 硬盘信息无法获取 system_enviroment: 系统变量 + settings: enable: 开启 disable: 关闭 @@ -83,6 +85,7 @@ zh-CN: submit: create: 新增设置 update: 更新设置 + users: new_user: 新建用户 user_info: 用户信息 @@ -100,7 +103,12 @@ zh-CN: destroy_user_confirm: 你确定要删除【%{user}】用户? active_link: 激活链接 active_link_tip: 若发送邮件设置错误或邀请用户没有收到激活邮件,可通过本链接激活。 + web_hooks: + show: 网络钩子详情 + new: 新建网络钩子 + edit: 编辑网络钩子 + number: '#' url: URL channels: 渠道列表 @@ -108,6 +116,12 @@ zh-CN: empty_content: 没有发现网络钩子 destroy: 删除 destroy_confirm: 你确定? + messages: + success: + enable: 网络钩子已经成功启用 + disable: 网络钩子已经取消启用 + test: 网络钩子请求测试已发送 + dashboard: my_dashboard: 我的控制台 analytics: @@ -130,12 +144,15 @@ zh-CN: edit_app: 编辑应用 goback_to_app: 返回应用 messages: - create_app_success: '%{name} 应用已经创建成功!' - not_found_app_by_version: '没有找到应用版本: %{version}' - not_found_app: 没有找到应用 %{id},跳转至应用列表 - delete_app_confirm: 确定删除【%{name}】应用和已关联的类型、渠道以及已上传的应用数据? - delete_app_scheme_confirm: 确定删除【%{name}】类型和渠道以及已上传的应用数据? - delete_app_channel_confirm: 确定删除【%{name}】渠道和已上传的应用数据? + success: + create: '%{name} 应用已经创建成功!' + failture: + not_found_app_by_version: '没有找到应用版本: %{version}' + not_found_app: 没有找到应用 %{id},跳转至应用列表 + confirm: + delete_app_confirm: 确定删除【%{name}】应用和已关联的类型、渠道以及已上传的应用数据? + delete_app_scheme_confirm: 确定删除【%{name}】类型和渠道以及已上传的应用数据? + delete_app_channel_confirm: 确定删除【%{name}】渠道和已上传的应用数据? menu: new_scheme: 新增类型 edit_app: 编辑应用 @@ -189,6 +206,7 @@ zh-CN: x_days: " %{count} 天" x_months: " %{count} 个月" x_years: " %{count} 年" + errors: '400': title: 您提交的请求无效或格式不正确 @@ -213,7 +231,13 @@ zh-CN: title: 服务暂时不可用,无法请求该页面 messages: mini_magick_processing_error: "无法使用 MiniMagick 处理,请检查文件是否是标准图片格式,原始错误: %{e}" + invaild_in_demo_mode: 演示模式不能编辑默认管理员 + activerecord: + success: + create: "%{key}创建成功" + update: "%{key}更新成功" + destroy: "%{key}删除成功" errors: models: setting: @@ -225,6 +249,17 @@ zh-CN: file: blank: 必须选择一个 zip 文件 + devise: + normal: + title: 标准登录 + ldap: + title: LDAP 登录 + username: LDAP 账户 + password: LDAP 密码 + shared: + hint: '- 或者 -' + # sign_in_with_provider: "使用%{provider}账号登录" + helpers: submit: user: From 10b77a7b3625e19a5a95b13068414b3039015361 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 9 Sep 2021 19:30:55 +0800 Subject: [PATCH 0672/2165] feat(i18n): web_hooks 100% --- app/views/channels/_web_hooks.slim | 8 +++--- app/views/web_hooks/_item.html.slim | 29 +++++++++++--------- app/views/web_hooks/_not_found.html.slim | 2 +- config/locales/devise/devise.views.zh-CN.yml | 4 +-- config/locales/zealot/zh-CN.yml | 19 +++++++++++-- 5 files changed, 39 insertions(+), 23 deletions(-) diff --git a/app/views/channels/_web_hooks.slim b/app/views/channels/_web_hooks.slim index 9b57c9727..3fa27d69d 100644 --- a/app/views/channels/_web_hooks.slim +++ b/app/views/channels/_web_hooks.slim @@ -1,24 +1,24 @@ .card .card-header - h3.card-title 网络钩子 + h3.card-title = t('menu.web_hooks') .card-tools button.btn.btn-tool data-card-widget="collapse" i.fas.fa-minus .card-body section#add-webhooks - h5 添加网络钩子 + h5 = t('web_hooks.create') == render 'web_hooks/form' section#webhooks-list ul.nav.nav-tabs id="web_hooks_list" role="tablist" li.nav-item a.nav-link.active data-toggle="tab" role="tab" id="enabled-tab" href="#enabled" aria-controls="enabled" aria-selected="true" - | 启用 + = t('web_hooks.enable') span.badge.badge-secondary.badge-pill.ml-1 = @channel.enabled_web_hooks_count li.nav-item a.nav-link data-toggle="tab" role="tab" id="shared-tab" href="#shared" aria-controls="shared" aria-selected="false" - | 共享 + = t('web_hooks.shared') span.badge.badge-secondary.badge-pill.ml-1 = @channel.available_web_hooks_count diff --git a/app/views/web_hooks/_item.html.slim b/app/views/web_hooks/_item.html.slim index 77ac4e6e4..c5e71bd25 100644 --- a/app/views/web_hooks/_item.html.slim +++ b/app/views/web_hooks/_item.html.slim @@ -5,40 +5,43 @@ tr p - if web_hook.upload_events == 1 span.badge.bg-light-gray - | 上传事件 + = t('simple_form.labels.web_hook.upload_events') - if web_hook.download_events == 1 span.badge.bg-light-gray - | 下载事件 + = t('simple_form.labels.web_hook.download_events') - if web_hook.changelog_events == 1 span.badge.bg-light-gray - | 日志变更事件 + = t('simple_form.labels.web_hook.changelog_events') td style="width: 140px" - web_hook.channels.all.each do |shared_channel| span.badge.bg-light-gray - if shared_channel == current_channel - | 当前渠道 + = t('web_hooks.current_channel') - else = link_to shared_channel.app_name, channel_path(shared_channel) td style="width: 70px" - if type == :enabled .btn-group-vertical .btn-group - button.btn.btn-sm.btn-default data-toggle="tooltip" data-placement="top" title="测试" + button.btn.btn-sm.btn-default data-toggle="tooltip" data-placement="top" title="#{t('web_hooks.test')}" i.fas.fa-bullhorn button.btn.btn-sm.btn-default.dropdown-toggle.dropdown-icon.dropdown-hover data-toggle="dropdown" ul.dropdown-menu role="menu" x-placement="bottom-start" li - a.dropdown-item href="#{test_channel_web_hook_path(@channel, web_hook, 'upload_events')}" 上传事件 + a.dropdown-item href="#{test_channel_web_hook_path(@channel, web_hook, 'upload_events')}" + = t('simple_form.labels.web_hook.upload_events') li - a.dropdown-item href="#{test_channel_web_hook_path(@channel, web_hook, 'download_events')}" 下载事件 + a.dropdown-item href="#{test_channel_web_hook_path(@channel, web_hook, 'download_events')}" + = t('simple_form.labels.web_hook.download_events') li - a.dropdown-item href="#{test_channel_web_hook_path(@channel, web_hook, 'changelog_events')}" 日志变更事件 + a.dropdown-item href="#{test_channel_web_hook_path(@channel, web_hook, 'changelog_events')}" + = t('simple_form.labels.web_hook.changelog_events') - if web_hook.channels_count == 1 - a.btn.btn-sm.btn-danger data-toggle="tooltip" data-placement="bottom" title="删除" data-confirm="确定删除?" rel="nofollow" data-method="delete" href="#{channel_web_hook_path(@channel, web_hook)}" + a.btn.btn-sm.btn-danger data-toggle="tooltip" data-placement="bottom" title="#{t('web_hooks.destroy')}" data-confirm="#{t('web_hooks.messages.confirm.destroy')}" rel="nofollow" data-method="delete" href="#{channel_web_hook_path(@channel, web_hook)}" i.fas.fa-trash-alt - else - a.btn.btn-sm.btn-warning data-toggle="tooltip" data-placement="bottom" title="禁用" href="#{disable_channel_web_hook_path(@channel, web_hook)}" - i.fas.fa-ban + a.btn.btn-sm.btn-warning data-toggle="tooltip" data-placement="bottom" title="#{t('web_hooks.disable')}" href="#{disable_channel_web_hook_path(@channel, web_hook)}" + i.fas.fa-stop - elsif type == :shared - a.btn.btn-sm.btn-default del="nofollow" data-toggle="tooltip" data-placement="bottom" title="启用" href="#{enable_channel_web_hook_path(@channel, web_hook)}" - i.fas.fa-check + a.btn.btn-sm.btn-default del="nofollow" data-toggle="tooltip" data-placement="bottom" title="#{t('web_hooks.enable')}" href="#{enable_channel_web_hook_path(@channel, web_hook)}" + i.fas.fa-play diff --git a/app/views/web_hooks/_not_found.html.slim b/app/views/web_hooks/_not_found.html.slim index 256cdf051..5724dc5d2 100644 --- a/app/views/web_hooks/_not_found.html.slim +++ b/app/views/web_hooks/_not_found.html.slim @@ -1,2 +1,2 @@ .bg-warning.p-2.text-center - | 没有发现网络钩子 \ No newline at end of file + = t('web_hooks.not_found') \ No newline at end of file diff --git a/config/locales/devise/devise.views.zh-CN.yml b/config/locales/devise/devise.views.zh-CN.yml index ca70e2e13..8f41db259 100644 --- a/config/locales/devise/devise.views.zh-CN.yml +++ b/config/locales/devise/devise.views.zh-CN.yml @@ -112,8 +112,8 @@ zh-CN: already_signed_out: 您已登出。 new: sign_in: 登录 - signed_in: 登录成功。 - signed_out: 登出成功。 + signed_in: 登录成功 + signed_out: 登出成功 shared: links: back: 返回 diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index 196d2a6d6..27ef1c313 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -150,9 +150,9 @@ zh-CN: not_found_app_by_version: '没有找到应用版本: %{version}' not_found_app: 没有找到应用 %{id},跳转至应用列表 confirm: - delete_app_confirm: 确定删除【%{name}】应用和已关联的类型、渠道以及已上传的应用数据? - delete_app_scheme_confirm: 确定删除【%{name}】类型和渠道以及已上传的应用数据? - delete_app_channel_confirm: 确定删除【%{name}】渠道和已上传的应用数据? + delete_app: 确定删除【%{name}】应用和已关联的类型、渠道以及已上传的应用数据? + delete_app_scheme: 确定删除【%{name}】类型和渠道以及已上传的应用数据? + delete_app_channel: 确定删除【%{name}】渠道和已上传的应用数据? menu: new_scheme: 新增类型 edit_app: 编辑应用 @@ -184,6 +184,19 @@ zh-CN:
  • Google Play、酷安、小米、华为、vivo、oppo、应用宝等
+ web_hooks: + create: 添加网络钩子 + enable: 启用 + shared: 共享 + not_found: 没有发现网络钩子 + current_channel: 当前渠道 + test: 测试 + destroy: 删除 + disable: 禁用 + enable: 启用 + messages: + confirm: + destroy: 确定删除? settings: default_schemes: From 6079c8590026919ed959875fbfc0fcef610bef3b Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 10 Sep 2021 15:19:39 +0800 Subject: [PATCH 0673/2165] refactor(i18n): split menu --- .../admin/background_jobs_controller.rb | 2 +- .../admin/database_analytics_controller.rb | 2 +- .../admin/page_analytics_controller.rb | 2 +- app/controllers/admin/settings_controller.rb | 2 +- .../admin/system_info_controller.rb | 2 +- app/controllers/admin/users_controller.rb | 8 +-- app/controllers/admin/web_hooks_controller.rb | 8 +-- app/controllers/web_hooks_controller.rb | 4 +- app/views/channels/_web_hooks.slim | 2 +- app/views/layouts/_main_sidebar.html.slim | 32 +++++------ config/locales/zealot/zh-CN.yml | 54 ++++++++++++------- 11 files changed, 67 insertions(+), 51 deletions(-) diff --git a/app/controllers/admin/background_jobs_controller.rb b/app/controllers/admin/background_jobs_controller.rb index e4354a9f1..4a62ed706 100644 --- a/app/controllers/admin/background_jobs_controller.rb +++ b/app/controllers/admin/background_jobs_controller.rb @@ -3,6 +3,6 @@ class Admin::BackgroundJobsController < ApplicationController # GET /admin/background_jobs def index - @title = t('menu.background_jobs') + @title = t('background_jobs.title') end end diff --git a/app/controllers/admin/database_analytics_controller.rb b/app/controllers/admin/database_analytics_controller.rb index 51162975d..5c8bc4c63 100644 --- a/app/controllers/admin/database_analytics_controller.rb +++ b/app/controllers/admin/database_analytics_controller.rb @@ -2,6 +2,6 @@ class Admin::DatabaseAnalyticsController < ApplicationController def index - @title = t('menu.database_analytics') + @title = t('database_analytics.title') end end diff --git a/app/controllers/admin/page_analytics_controller.rb b/app/controllers/admin/page_analytics_controller.rb index f5a358f9f..febb45b92 100644 --- a/app/controllers/admin/page_analytics_controller.rb +++ b/app/controllers/admin/page_analytics_controller.rb @@ -2,6 +2,6 @@ class Admin::PageAnalyticsController < ApplicationController def index - @title = t('menu.page_analytics') + @title = t('page_analytics.title') end end diff --git a/app/controllers/admin/settings_controller.rb b/app/controllers/admin/settings_controller.rb index 3e1279ba5..9a789a24e 100644 --- a/app/controllers/admin/settings_controller.rb +++ b/app/controllers/admin/settings_controller.rb @@ -5,7 +5,7 @@ class Admin::SettingsController < ApplicationController before_action :verify_editable_setting, only: %i[edit] def index - @title = t('menu.system_settings') + @title = t('system_settings.title') @settings = Setting.site_configs end diff --git a/app/controllers/admin/system_info_controller.rb b/app/controllers/admin/system_info_controller.rb index c2badcddf..a3e9bbd51 100644 --- a/app/controllers/admin/system_info_controller.rb +++ b/app/controllers/admin/system_info_controller.rb @@ -36,7 +36,7 @@ class Admin::SystemInfoController < ApplicationController # GET /admin/system_info def index - @title = t('menu.system_info') + @title = t('system_info.title') @booted_at = Rails.application.config.booted_at @current_version = Setting.version diff --git a/app/controllers/admin/users_controller.rb b/app/controllers/admin/users_controller.rb index 90cdc81b4..7ed507a6c 100644 --- a/app/controllers/admin/users_controller.rb +++ b/app/controllers/admin/users_controller.rb @@ -4,7 +4,7 @@ class Admin::UsersController < ApplicationController before_action :set_user, only: %i[edit update destroy] def index - @title = t('menu.users') + @title = t('users.title') @users = User.all authorize @users end @@ -21,7 +21,7 @@ def create return render :new unless @user.save - redirect_to admin_users_url, notice: t('activerecord.success.create', key: t('menu.users')) + redirect_to admin_users_url, notice: t('activerecord.success.create', key: t('users.title')) end def edit @@ -38,7 +38,7 @@ def update params.delete(:password) if params[:password].blank? return render :edit unless @user.update(params) - redirect_to admin_users_url, notice: t('activerecord.success.update', key: t('menu.users')) + redirect_to admin_users_url, notice: t('activerecord.success.update', key: t('users.title')) end def destroy @@ -47,7 +47,7 @@ def destroy end @user.destroy - redirect_to admin_users_url, notice: t('activerecord.success.destroy', key: t('menu.users')) + redirect_to admin_users_url, notice: t('activerecord.success.destroy', key: t('users.title')) end private diff --git a/app/controllers/admin/web_hooks_controller.rb b/app/controllers/admin/web_hooks_controller.rb index e2c2adc38..fa1b4229a 100644 --- a/app/controllers/admin/web_hooks_controller.rb +++ b/app/controllers/admin/web_hooks_controller.rb @@ -4,7 +4,7 @@ class Admin::WebHooksController < ApplicationController before_action :set_web_hook, only: %i[show edit update destroy] def index - @title = t('menu.web_hooks') + @title = t('web_hooks.title') @web_hooks = WebHook.all authorize @web_hooks end @@ -24,7 +24,7 @@ def create authorize @web_hook return render :new unless @web_hook.save - redirect_to admin_users_url, notice: t('activerecord.success.create', key: t('menu.web_hooks')) + redirect_to admin_users_url, notice: t('activerecord.success.create', key: t('web_hooks.title')) end def edit @@ -35,12 +35,12 @@ def update channel_ids = web_hook_params.delete(:channel_ids) return render :edit unless @web_hook.update(web_hook_params) - redirect_to admin_web_hooks_url, notice: t('activerecord.success.update', key: t('menu.web_hooks')) + redirect_to admin_web_hooks_url, notice: t('activerecord.success.update', key: t('web_hooks.title')) end def destroy @web_hook.destroy - redirect_to admin_web_hooks_url, notice: t('activerecord.success.destroy', key: t('menu.web_hooks')) + redirect_to admin_web_hooks_url, notice: t('activerecord.success.destroy', key: t('web_hooks.title')) end private diff --git a/app/controllers/web_hooks_controller.rb b/app/controllers/web_hooks_controller.rb index 520289075..0c7aa8624 100644 --- a/app/controllers/web_hooks_controller.rb +++ b/app/controllers/web_hooks_controller.rb @@ -12,12 +12,12 @@ def create authorize @web_hook return redirect_to_channel_url unless @web_hook.save - redirect_to_channel_url notice: t('activerecord.success.create', key: t('menu.web_hooks')) + redirect_to_channel_url notice: t('activerecord.success.create', key: t('web_hooks.title')) end def destroy @web_hook.destroy - redirect_to_channel_url notice: t('activerecord.success.destroy', key: t('menu.web_hooks')) + redirect_to_channel_url notice: t('activerecord.success.destroy', key: t('web_hooks.title')) end def disable diff --git a/app/views/channels/_web_hooks.slim b/app/views/channels/_web_hooks.slim index 3fa27d69d..a03aa1038 100644 --- a/app/views/channels/_web_hooks.slim +++ b/app/views/channels/_web_hooks.slim @@ -1,6 +1,6 @@ .card .card-header - h3.card-title = t('menu.web_hooks') + h3.card-title = t('web_hooks.title') .card-tools button.btn.btn-tool data-card-widget="collapse" i.fas.fa-minus diff --git a/app/views/layouts/_main_sidebar.html.slim b/app/views/layouts/_main_sidebar.html.slim index f1c7f910c..b4819bc61 100644 --- a/app/views/layouts/_main_sidebar.html.slim +++ b/app/views/layouts/_main_sidebar.html.slim @@ -1,65 +1,65 @@ .sidebar nav.mt-2 ul.nav.nav-pills.nav-sidebar.nav-child-indent.flex-column data-widget="treeview" role="menu" - li.nav-header = t('menu.function_section') + li.nav-header = t('function_section') li class="nav-item" a.nav-link href="#{root_path}" class="#{active_class(root_path)}" i.nav-icon.fas.fa-th - p = t('menu.dashboard') + p = t('dashboard.title') li class="nav-item" a.nav-link href="#{apps_path}" class="#{active_class(apps_path)}" i.nav-icon.fab.fa-adn - p = t('menu.apps') + p = t('apps.title') li class="nav-item" a.nav-link href="#{debug_files_path}" class="#{active_class(debug_files_path)}" i.nav-icon.fas.fa-bug - p = t('menu.debug_files') + p = t('debug_files.title') - li.nav-header = t('menu.toolbox_section') + li.nav-header = t('toolbox_section') li class="nav-item" a.nav-link href="#{teardowns_path}" class="#{active_class(teardowns_path)}" i.nav-icon.fas.fa-layer-group - p = t('menu.teardown') + p = t('teardown.title') li class="nav-item" a.nav-link href="#{udid_path}" class="#{active_class(udid_path)}" i.nav-icon.fas.fa-eye - p = t('menu.fetch_ios_udid') + p = t('fetch_ios_udid.title') - if current_user&.admin? - li.nav-header = t('menu.admin_section') + li.nav-header = t('admin_section.title') li.nav-item a.nav-link href="#{admin_users_path}" class="#{active_class(admin_users_path)}" i.nav-icon.fas.fa-user - p = t('menu.users') + p = t('users.title') li.nav-item a.nav-link href="#{admin_web_hooks_path}" class="#{active_class(admin_web_hooks_path)}" i.nav-icon.fas.fa-anchor - p = t('menu.web_hooks') + p = t('web_hooks.title') li.nav-item a.nav-link href="#{admin_settings_path}" class="#{active_class(admin_settings_path)}" i.nav-icon.fas.fa-cog - p = t('menu.system_settings') + p = t('system_settings.title') li.nav-item.has-treeview class="#{active_class([admin_system_info_index_path, admin_background_jobs_path, admin_page_analytics_path, admin_database_analytics_path], 'menu-open')}" a.nav-link href="#" class="#{active_class([admin_system_info_index_path, admin_background_jobs_path, admin_page_analytics_path, admin_database_analytics_path])}" i.nav-icon.fas.fa-laptop-code p - = t('menu.monitors') + = t('monitors_section') i.right.fas.fa-angle-left ul.nav.nav-treeview li.nav-item a.nav-link href="#{admin_system_info_index_path}" class="#{active_class(admin_system_info_index_path)}" i.nav-icon.fas.fa-info-circle - = t('menu.system_info') + = t('system_info.title') li.nav-item a.nav-link href="#{admin_background_jobs_path}" class="#{active_class(admin_background_jobs_path)}" i.nav-icon.fas.fa-chart-bar - = t('menu.background_jobs') + = t('background_jobs.title') li.nav-item a.nav-link href="#{admin_page_analytics_path}" class="#{active_class(admin_page_analytics_path)}" i.nav-icon.fas.fa-file-contract - = t('menu.page_analytics') + = t('page_analytics.title') li.nav-item a.nav-link href="#{admin_database_analytics_path}" class="#{active_class(admin_database_analytics_path)}" i.nav-icon.fas.fa-database - = t('menu.database_analytics') + = t('database_analytics.title') diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index 27ef1c313..2bc219fce 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -1,23 +1,8 @@ zh-CN: - menu: - function_section: 功能区域 - dashboard: 控制台 - apps: 应用 - debug_files: 调试文件 - - toolbox_section: 工具箱 - teardown: 应用解包 - fetch_ios_udid: 获取 UDID - - admin_section: 管理面板 - users: 用户 - web_hooks: 网络钩子 - system_settings: 系统设置 - monitors: 监控 - system_info: 环境信息 - background_jobs: 后台任务 - page_analytics: 页面统计分析 - database_analytics: 数据库分析 + function_section: 功能区域 + toolbox_section: 工具箱 + admin_section: 管理面板 + monitors_section: 监控 admin: link: @@ -123,6 +108,7 @@ zh-CN: test: 网络钩子请求测试已发送 dashboard: + title: 控制台 my_dashboard: 我的控制台 analytics: apps: 应用 @@ -139,6 +125,7 @@ zh-CN: not_found: 没有任何上传,快快上传吧。 apps: + title: 应用 apps: 应用管理 new_app: 新建应用 edit_app: 编辑应用 @@ -184,7 +171,21 @@ zh-CN:
  • Google Play、酷安、小米、华为、vivo、oppo、应用宝等
+ + debug_files: + title: 调试文件 + + teardown: + title: 应用解包 + + fetch_ios_udid: + title: 获取 UDID + + users: + title: 用户 + web_hooks: + title: 网络钩子 create: 添加网络钩子 enable: 启用 shared: 共享 @@ -198,6 +199,21 @@ zh-CN: confirm: destroy: 确定删除? + system_settings: + title: 系统设置 + + system_info: + title: 环境信息 + + background_jobs: + title: 后台任务 + + page_analytics: + title: 页面统计分析 + + database_analytics: + title: 数据库分析 + settings: default_schemes: beta: 测试版 From 3c8f820c4e429def15931b467e2a16d531ab3c97 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 10 Sep 2021 17:35:58 +0800 Subject: [PATCH 0674/2165] refactor(i18n): apps --- app/controllers/apps_controller.rb | 8 +- app/controllers/dashboards_controller.rb | 2 +- app/models/scheme.rb | 2 +- app/views/apps/_form.html.slim | 10 +- app/views/apps/_list.html.slim | 109 +++++++++++------- app/views/apps/index.html.slim | 2 +- app/views/channels/_activity.html.slim | 2 +- app/views/layouts/_main_sidebar.html.slim | 2 +- app/views/releases/body/_metadata.html.slim | 2 +- .../locales/simple_form/simple_form.zh-CN.yml | 2 - config/locales/zealot/zh-CN.yml | 65 ++++++----- 11 files changed, 114 insertions(+), 92 deletions(-) diff --git a/app/controllers/apps_controller.rb b/app/controllers/apps_controller.rb index 18e039562..020de6628 100644 --- a/app/controllers/apps_controller.rb +++ b/app/controllers/apps_controller.rb @@ -5,9 +5,8 @@ class AppsController < ApplicationController before_action :set_app, only: %i[show edit update destroy] before_action :process_scheme_and_channel, only: %i[create] - def index - @title = t('apps.apps') + @title = t('.title') @apps = App.all authorize @apps end @@ -17,7 +16,7 @@ def show end def new - @title = t('apps.new_app') + @title = t('.title') @app = App.new authorize @app @@ -25,7 +24,7 @@ def new end def edit - @title = t('apps.edit_app') + @title = t('.title') end def create @@ -55,6 +54,7 @@ def destroy def destory_app_data require 'fileutils' + app_binary_path = Rails.root.join('public', 'uploads', 'apps', "a#{@app.id}") logger.debug "Delete app all binary and icons in #{app_binary_path}" FileUtils.rm_rf(app_binary_path) if Dir.exist?(app_binary_path) diff --git a/app/controllers/dashboards_controller.rb b/app/controllers/dashboards_controller.rb index 16c63606b..e8ff1a147 100644 --- a/app/controllers/dashboards_controller.rb +++ b/app/controllers/dashboards_controller.rb @@ -4,7 +4,7 @@ class DashboardsController < ApplicationController before_action :authenticate_user! unless Setting.guest_mode def index - @title = t('dashboard.my_dashboard') + @title = t('dashboard.title') system_analytics recently_upload diff --git a/app/models/scheme.rb b/app/models/scheme.rb index fdf8a50bd..9c0167d3c 100644 --- a/app/models/scheme.rb +++ b/app/models/scheme.rb @@ -16,6 +16,6 @@ def latest_channel end def total_releases - channels.count + channels.size end end diff --git a/app/views/apps/_form.html.slim b/app/views/apps/_form.html.slim index bf2764dc8..3a2a74eaa 100644 --- a/app/views/apps/_form.html.slim +++ b/app/views/apps/_form.html.slim @@ -1,11 +1,7 @@ ruby: checked_scheme = @schemes ? @schemes[:name] : 0 checked_channel = @channels ? @channels[:name] : 0 - head_title, back_url = if new_or_create_route? - [t('apps.apps'), apps_path] - else - [t('apps.goback_to_app'), app_path(@app)] - end + link_url = new_or_create_route? ? apps_path : app_path(@app) .col-md-12 .card @@ -13,9 +9,9 @@ ruby: h3.card-title = @title .card-tools - a href="#{back_url}" + a href="#{link_url}" i.far.fa-list-alt - = " #{head_title}" + = t('links.goback_to_list') .card-body = simple_form_for @app do |f| = f.error_notification diff --git a/app/views/apps/_list.html.slim b/app/views/apps/_list.html.slim index 91fe452e9..e3e900cc8 100644 --- a/app/views/apps/_list.html.slim +++ b/app/views/apps/_list.html.slim @@ -1,43 +1,68 @@ - @apps.each_with_index do |app, i| - ruby: - has_debug_files = app.debug_files.count > 0 - .col-md-12 - .card.apps - .card-header - h3.card-title - = app_icon(app.recently_release, class: 'app-icon img-circle') - = link_to app.name, app_path(app), style: "color: #000" - - if user_signed_in? - .card-tools - a.btn.btn-tool href="#{new_app_scheme_path(app)}" - i.far.fa-plus-square - a.btn.btn-tool href="#{edit_app_path(app)}" - i.fas.fa-edit - a.btn.btn-tool href="#{app_path(app)}" data-confirm="#{t('apps.messages.confirm.delete_app', name: app.name)}" data-method="delete" - i.fas.fa-trash-alt - .card-body.p-0 - .app-schemes - - if app.schemes.count > 0 - table.table - tr - th = t('apps.table.apps.type') - th style="width: 100px" = t('apps.table.apps.channel_count') - - app.schemes.each do |scheme| - tr - td = link_to scheme.name, app_scheme_path(app, scheme) - td - span.float-right.badge.bg-blue = scheme.total_releases - - else - .p-3 = t('apps.table.apps.new_app_scheme', link: link_to(t('apps.table.apps.new_app_scheme_link_title'), new_app_scheme_path(app))).html_safe - .p-3 - = t('apps.table.apps.tips.title') - ul - li.btn-icon - i.far.fa-plus-square - = t('apps.table.apps.tips.create_app_scheme_and_channel') - li.btn-icon - i.fas.fa-edit - = t('apps.table.apps.tips.edit_app_name') - li.btn-icon - i.fas.fa-trash-alt - = t('apps.table.apps.tips.destroy_app') \ No newline at end of file + .col-md-4 + .card.widget-user + .widget-user-header.bg-gray + h3.widget-user-username + = link_to app.name, app_path(app), style: "color: #FFF" + small.widget-user-desc + | 创建于#{time_ago_in_words(app.created_at)} + .widget-user-image + = app_icon(app.recently_release, class: 'elevation-2 img-circle') + .card-footer + .row + .col-sm-4.border-right + .description-block + h5.description-header + = app.total_schemes + span.description-text 类型 + .col-sm-4.border-right + .description-block + h5.description-header + = app.total_channels + span.description-text 渠道 + .col-sm-4 + .description-block + h5.description-header + = app.total_releases + span.description-text 上传 + + + / .apps.card + / .card-header + / h3.card-title + / = app_icon(app.recently_release, class: 'app-icon img-circle') + / = link_to app.name, app_path(app), style: "color: #000" + / - if user_signed_in? + / .card-tools + / a.btn.btn-tool href="#{new_app_scheme_path(app)}" + / i.far.fa-plus-square + / a.btn.btn-tool href="#{edit_app_path(app)}" + / i.fas.fa-edit + / a.btn.btn-tool href="#{app_path(app)}" data-confirm="#{t('apps.messages.confirm.delete_app', name: app.name)}" data-method="delete" + / i.fas.fa-trash-alt + / .card-body.p-0 + / .app-schemes + / - if app.schemes.count > 0 + / table.table + / tr + / th = t('apps.index.apps.type') + / th style="width: 100px" = t('apps.index.apps.channel_count') + / - app.schemes.each do |scheme| + / tr + / td = link_to scheme.name, app_scheme_path(app, scheme) + / td + / span.float-right.badge.bg-blue = scheme.total_releases + / - else + / .p-3 = t('apps.index.apps.new_app_scheme', link: link_to(t('apps.index.apps.new_app_scheme_link_title'), new_app_scheme_path(app))).html_safe + / .p-3 + / = t('apps.index.apps.tips.title') + / ul + / li.btn-icon + / i.far.fa-plus-square + / = t('apps.index.apps.tips.create_app_scheme_and_channel') + / li.btn-icon + / i.fas.fa-edit + / = t('apps.index.apps.tips.edit_app_name') + / li.btn-icon + / i.fas.fa-trash-alt + / = t('apps.index.apps.tips.destroy_app') \ No newline at end of file diff --git a/app/views/apps/index.html.slim b/app/views/apps/index.html.slim index 8f28821fe..3217d333a 100644 --- a/app/views/apps/index.html.slim +++ b/app/views/apps/index.html.slim @@ -8,7 +8,7 @@ - if user_signed_in? a.btn.btn-icon.bg-green href="#{new_app_path}" i.far.fa-plus-square - = t('apps.new_app') + = t('apps.new.title') .row == render 'list' \ No newline at end of file diff --git a/app/views/channels/_activity.html.slim b/app/views/channels/_activity.html.slim index 4097ce8da..f609a2526 100644 --- a/app/views/channels/_activity.html.slim +++ b/app/views/channels/_activity.html.slim @@ -13,7 +13,7 @@ - @releases.each do |release| li.item .product-img - = app_icon(release, size: :medium, class: 'img-circle') + = app_icon(release, class: 'img-circle') .product-info a.product-title href="javascript:void(0)" = link_to release.name || release.app_name, channel_release_path(release.channel, release) diff --git a/app/views/layouts/_main_sidebar.html.slim b/app/views/layouts/_main_sidebar.html.slim index b4819bc61..bac8a9c0e 100644 --- a/app/views/layouts/_main_sidebar.html.slim +++ b/app/views/layouts/_main_sidebar.html.slim @@ -19,7 +19,7 @@ li class="nav-item" a.nav-link href="#{teardowns_path}" class="#{active_class(teardowns_path)}" i.nav-icon.fas.fa-layer-group - p = t('teardown.title') + p = t('teardowns.title') li class="nav-item" a.nav-link href="#{udid_path}" class="#{active_class(udid_path)}" i.nav-icon.fas.fa-eye diff --git a/app/views/releases/body/_metadata.html.slim b/app/views/releases/body/_metadata.html.slim index 71db2dbab..7e3f7fa3a 100644 --- a/app/views/releases/body/_metadata.html.slim +++ b/app/views/releases/body/_metadata.html.slim @@ -13,7 +13,7 @@ .app-detail.card .card-header h3.card-title - = app_icon(@release, size: :medium, class: 'app-icon img-circle img-bordered-sm') + = app_icon(@release, class: 'app-icon img-circle img-bordered-sm') .app-name = @release.name || @release.app_name .app-identifier diff --git a/config/locales/simple_form/simple_form.zh-CN.yml b/config/locales/simple_form/simple_form.zh-CN.yml index d59f99bdc..4e995488d 100644 --- a/config/locales/simple_form/simple_form.zh-CN.yml +++ b/config/locales/simple_form/simple_form.zh-CN.yml @@ -24,8 +24,6 @@ zh-CN: remember_me: '记住登录信息' app: name: '应用名称' - schemes: - name: :'simple_form.labels.scheme.name' scheme: name: '类型名称' channel: diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index 2bc219fce..41d0db718 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -4,6 +4,10 @@ zh-CN: admin_section: 管理面板 monitors_section: 监控 + links: + goback_to_list: 返回列表 + goback: 返回 + admin: link: back_to_list: 返回列表 @@ -109,15 +113,14 @@ zh-CN: dashboard: title: 控制台 - my_dashboard: 我的控制台 analytics: - apps: 应用 - debug_files: 调试文件 - teardowns: 文件解析 + apps: :'apps.title' + debug_files: :'debug_files.title' + teardowns: :'teardowns.title' uploads: 上传次数 - web_hooks: 网络钩子 - users: 用户 - background_jobs: 后台任务 + web_hooks: :'web_hooks.title' + users: :'users.title' + background_jobs: :'background_jobs.title' disk_usage: 磁盘使用率 timeline: title: 上传时间线 @@ -126,30 +129,9 @@ zh-CN: apps: title: 应用 - apps: 应用管理 - new_app: 新建应用 - edit_app: 编辑应用 - goback_to_app: 返回应用 - messages: - success: - create: '%{name} 应用已经创建成功!' - failture: - not_found_app_by_version: '没有找到应用版本: %{version}' - not_found_app: 没有找到应用 %{id},跳转至应用列表 - confirm: - delete_app: 确定删除【%{name}】应用和已关联的类型、渠道以及已上传的应用数据? - delete_app_scheme: 确定删除【%{name}】类型和渠道以及已上传的应用数据? - delete_app_channel: 确定删除【%{name}】渠道和已上传的应用数据? - menu: - new_scheme: 新增类型 - edit_app: 编辑应用 - destroy_app: 删除应用 - new_channel: 新增渠道 - edit_scheme: 编辑类型 - destory_scheme: 删除类型 - table: + index: apps: - type: 类型名称 + type: 类型 channel_count: 渠道数量 new_app_scheme: 还没有任何应用类型和渠道,开始%{link}吧。 new_app_scheme_link_title: 创建第一个应用类型和渠道 @@ -171,11 +153,32 @@ zh-CN:
  • Google Play、酷安、小米、华为、vivo、oppo、应用宝等
+ new: + title: 新建应用 + edit: + title: 编辑应用 + messages: + success: + create: '%{name} 应用已经创建成功!' + failture: + not_found_app_by_version: '没有找到应用版本: %{version}' + not_found_app: 没有找到应用 %{id},跳转至应用列表 + confirm: + delete_app: 确定删除【%{name}】应用和已关联的类型、渠道以及已上传的应用数据? + delete_app_scheme: 确定删除【%{name}】类型和渠道以及已上传的应用数据? + delete_app_channel: 确定删除【%{name}】渠道和已上传的应用数据? + menu: + new_scheme: 新增类型 + edit_app: 编辑应用 + destroy_app: 删除应用 + new_channel: 新增渠道 + edit_scheme: 编辑类型 + destory_scheme: 删除类型 debug_files: title: 调试文件 - teardown: + teardowns: title: 应用解包 fetch_ios_udid: From a770ff38fe17a89e74b1fe4d3b801b85eec797b9 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 13 Sep 2021 15:52:54 +0800 Subject: [PATCH 0675/2165] =?UTF-8?q?style:=20=E4=BF=AE=E6=94=B9=E5=BA=94?= =?UTF-8?q?=E7=94=A8=E5=88=97=E8=A1=A8=E7=9A=84=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/javascript/stylesheets/app.scss | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/app/javascript/stylesheets/app.scss b/app/javascript/stylesheets/app.scss index ea3ca01b3..e745e1a7c 100644 --- a/app/javascript/stylesheets/app.scss +++ b/app/javascript/stylesheets/app.scss @@ -13,8 +13,15 @@ $ios-install-issue-color: rgb(245, 39, 90); } } -// show page +.widget-user { + .widget-user-image { + img { + background-color: #fff; + } + } +} +// show page .cover { position: fixed; top: 0; From 31446fb9de6747d4ecddb8f5473103b73e611b17 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 13 Sep 2021 16:03:59 +0800 Subject: [PATCH 0676/2165] =?UTF-8?q?feat(i180):=20=E8=A1=A5=E5=85=85?= =?UTF-8?q?=E5=90=88=E5=B9=B6=E5=90=8E=E7=9A=84=20admin=20=E7=BF=BB?= =?UTF-8?q?=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/admin/settings_controller.rb | 2 +- app/models/setting.rb | 12 ++++++------ config/locales/zealot/zh-CN.yml | 2 ++ 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/app/controllers/admin/settings_controller.rb b/app/controllers/admin/settings_controller.rb index 9a789a24e..84c7ce225 100644 --- a/app/controllers/admin/settings_controller.rb +++ b/app/controllers/admin/settings_controller.rb @@ -44,6 +44,6 @@ def setting_param end def verify_editable_setting - raise Pundit::NotAuthorizedError, '当前设置为可读,无法修改' if @setting.readonly? === true + raise Pundit::NotAuthorizedError, t('admin.settings.no_editable_key') if @setting.readonly? === true end end diff --git a/app/models/setting.rb b/app/models/setting.rb index b5aa191cd..4d84fb464 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -9,10 +9,10 @@ class Setting < RailsSettings::Base class << self def present_schemes [ - t('settings.default_schemes.beta', raise: false, default: nil), - t('settings.default_schemes.adhoc', raise: false, default: nil), - t('settings.default_schemes.production', raise: false, default: nil) - ].compact + t('settings.default_schemes.beta', raise: false), + t('settings.default_schemes.adhoc', raise: false), + t('settings.default_schemes.production', raise: false) + ] end def site_https @@ -61,8 +61,8 @@ def url_options scope :general do field :site_title, default: 'Zealot', type: :string, display: true, validates: { presence: true, length: { in: 3..16 } } - field :site_domain, default: (ENV['ZEALOT_DOMAIN'] || DEFAULT_SITE_DOMAIN), type: :string, readonly: true, display: true - field :site_https, default: DEFAULT_SITE_HTTPS, type: :boolean, readonly: true, display: true + field :site_domain, default: (ENV['ZEALOT_DOMAIN'] || site_domain), type: :string, readonly: true, display: true + field :site_https, default: site_https, type: :boolean, readonly: true, display: true field :admin_email, default: (ENV['ZEALOT_ADMIN_EMAIL'] || 'admin@zealot.com'), type: :string, readonly: true field :admin_password, default: (ENV['ZEALOT_ADMIN_PASSWORD'] || 'ze@l0t'), type: :string, readonly: true diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index 41d0db718..a1e2f346d 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -71,6 +71,8 @@ zh-CN: build_date: 构建日期 empty_value: 空值 + + no_editable_key: 当前设置为可读,无法修改 submit: create: 新增设置 update: 更新设置 From a2ec925868629a59197f04c37ede5a3e240d48f3 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 13 Sep 2021 16:46:23 +0800 Subject: [PATCH 0677/2165] feat(i18n): udid 100% --- app/controllers/udid_controller.rb | 4 ++- app/views/layouts/_main_sidebar.html.slim | 2 +- app/views/udid/index.html.slim | 18 +++------- app/views/udid/install.html.erb | 7 ++-- app/views/udid/show.html.slim | 26 +++++--------- config/locales/zealot/zh-CN.yml | 42 +++++++++++++++++++++-- 6 files changed, 59 insertions(+), 40 deletions(-) diff --git a/app/controllers/udid_controller.rb b/app/controllers/udid_controller.rb index 71339e147..113fdebc0 100644 --- a/app/controllers/udid_controller.rb +++ b/app/controllers/udid_controller.rb @@ -2,7 +2,7 @@ class UdidController < ApplicationController def index - @title = '获取设备 UDID' + @title = t('udid.title') @qrcode = RQRCode::QRCode.new(udid_url) end @@ -24,6 +24,7 @@ def create end def show + @title = t('udid.show.title') @device = Device.find_by(udid: params[:udid]) end @@ -33,6 +34,7 @@ def install content_type = params[:preview].present? ? 'application/xml' : 'application/x-apple-aspen-config' render content_type: content_type, layout: false + # TODO: 做不做都可,以下是使用 tls 签名后的 profile # plist = render_to_string(layout: false) # server = File.read('public/certs/server.pem') diff --git a/app/views/layouts/_main_sidebar.html.slim b/app/views/layouts/_main_sidebar.html.slim index bac8a9c0e..0660b24b3 100644 --- a/app/views/layouts/_main_sidebar.html.slim +++ b/app/views/layouts/_main_sidebar.html.slim @@ -23,7 +23,7 @@ li class="nav-item" a.nav-link href="#{udid_path}" class="#{active_class(udid_path)}" i.nav-icon.fas.fa-eye - p = t('fetch_ios_udid.title') + p = t('udid.title') - if current_user&.admin? li.nav-header = t('admin_section.title') diff --git a/app/views/udid/index.html.slim b/app/views/udid/index.html.slim index 1c7a386dd..a5aa83fd1 100644 --- a/app/views/udid/index.html.slim +++ b/app/views/udid/index.html.slim @@ -11,22 +11,12 @@ .card .card-body.text-center = raw @qrcode.as_svg - .pt-4.text-center 电脑打开本页面的请使用 iPhone 或 iPad 扫描上面的二维码后点击下面的按钮 + .pt-4.text-center = t('udid.index.tip') .card-footer - = link_to '点击获取设备 UDID', udid_install_path, class: 'btn bg-success btn-lg btn-block' + = link_to t('udid.index.fetch_udid'), udid_install_path, class: 'btn bg-success btn-lg btn-block' .col-md-12 .card .card-header.card-border - h3.card-title 为什么需要设备 UDID? - .card-body - p - | UDID 全称 Unique Device Identifier 是 iOS 设备唯一且独一无二的识别码,iOS 7 之前可以从应用获取, - | 之后版本不再允许从应用内随意获取,iOS 的应用打包如使用 AdHoc 的方式签名必须设置设备白名单来保证设备测试的安全性 - | (说人话就是不允许在非苹果应用市场分发),因此需要通过外部安装描述文件的方式单次授权获取。 - strong 获取步骤 - ol - li 点击系统会弹窗的 “允许” 下载描述文件 - li 打开手机 ”设置” 找到顶部的 ”已下载描述文件“ 点击可以待安装的 ”获取设备UDID“ 的描述文件 - li 一路点击 ”安装“ 并输入锁屏密码允许安装描述文件 - li 安装之后描述文件会自动删除并跳转一个结果页面 \ No newline at end of file + h3.card-title = t('udid.index.help.title') + .card-body = t('udid.index.help.body_html') \ No newline at end of file diff --git a/app/views/udid/install.html.erb b/app/views/udid/install.html.erb index af0719fa2..a8257ecaf 100644 --- a/app/views/udid/install.html.erb +++ b/app/views/udid/install.html.erb @@ -20,12 +20,9 @@ PayloadIdentifier im.ews.zealot.profile-service PayloadDisplayName - 获取设备UDID + <%= t('udid.install.title') %> PayloadDescription - 本描述文件仅用来获取本机设备 UDID,获取信息后会自动删除掉本描述文件。 - -本服务由 <%= root_url %> 提供。 - + <%= t('udid.install.description', url: root_url) %> PayloadType Profile Service PayloadVersion diff --git a/app/views/udid/show.html.slim b/app/views/udid/show.html.slim index a85826caf..3137caf4c 100644 --- a/app/views/udid/show.html.slim +++ b/app/views/udid/show.html.slim @@ -10,46 +10,41 @@ .card-header h3.card-title i.fas.fa-info-circle - | 设备信息 + = @title .card-body .pl-2.pr-2 - if @device .alert.alert-success strong Woo-ha! - | 本设备已注册 - - if @device.name.present? - | 【 - = @device.name - | 】 - | ,快往下看看有没有关联的应用吧! + = t('udid.show.registered', device: @device.name.present? ? "【#{@device.name}】" : '') - else .alert.alert-warning strong Ta-Da! - | 发现一台未注册的设备,复制 UDID 给 iOS 工程师哦! + = t('udid.show.unregistered') dl.system-info - dt UDID + dt = t('udid.show.udid') dd .input-group.mb-3 input#udid-text.form-control.rounded-0 value="#{params[:udid]}" readonly="true" span.input-group-append button.btn.btn-success.btn-flat.btn-clipboard data-clipboard-target="#udid-text" i.far.fa-clipboard - dt 型号 + dt = t('udid.show.product') dd .input-group.mb-3 input#product-text.form-control.rounded-0 value="#{params[:product]}" readonly="true" span.input-group-append button.btn.btn-success.btn-flat.btn-clipboard data-clipboard-target="#product-text" i.far.fa-clipboard - dt 序列号 + dt = t('udid.show.serial') dd .input-group.mb-3 input#serial-text.form-control.rounded-0 value="#{params[:serial]}" readonly="true" span.input-group-append button.btn.btn-success.btn-flat.btn-clipboard data-clipboard-target="#serial-text" i.far.fa-clipboard - dt 版本 + dt = t('udid.show.version') dd .input-group.mb-3 input#version-text.form-control.rounded-0 value="#{params[:version]}" readonly="true" @@ -62,7 +57,7 @@ .card-header h3.card-title i.fas.fa-cubes - | 可安装应用 + = t('udid.show.registered_apps') .card-body - if @device && @device.channels.present? .timeline @@ -100,8 +95,5 @@ i.fas.fa-clock.bg-gray - else .p-2 - p - strong 没有发现可安装应用! - | 请复制上面设备 UDID 并发给 iOS 工程师来添加测试设备并重新打包。 - | 新安装包上传之后可以刷新本页面检查是否出现对应的应用。 + p = t('udid.show.not_found_html') diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index a1e2f346d..619b0f383 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -183,8 +183,46 @@ zh-CN: teardowns: title: 应用解包 - fetch_ios_udid: - title: 获取 UDID + udid: + title: 设备 UDID + index: + tip: 电脑打开本页面的请使用 iPhone 或 iPad 扫描上面的二维码后点击下面的按钮 + fetch_udid: 点击获取设备 UDID + help: + title: 为什么需要设备 UDID? + body_html: | +

+ UDID 全称 Unique Device Identifier 是 iOS 设备唯一且独一无二的识别码,iOS 7 之前可以从应用获取, + 之后版本不再允许从应用内随意获取,iOS 的应用打包如使用 AdHoc 的方式签名必须设置设备白名单来保证设备测试的安全性 + (说人话就是不允许在非苹果应用市场分发),因此需要通过外部安装描述文件的方式单次授权获取。 +

+ 获取步骤 +
    +
  1. 点击系统会弹窗的 “允许” 下载描述文件
  2. +
  3. 打开手机 ”设置” 找到顶部的 ”已下载描述文件“ 点击可以待安装的 ”获取设备UDID“ 的描述文件
  4. +
  5. 一路点击 ”安装“ 并输入锁屏密码允许安装描述文件
  6. +
  7. 安装之后描述文件会自动删除并跳转一个结果页面
  8. +
+ show: + title: 设备信息 + registered: 本设备已注册%{device},快往下看看有没有关联的应用吧! + unregistered: 发现一台未注册的设备,复制 UDID 给 iOS 工程师哦! + registered_apps: 可安装应用 + udid: UDID + product: 型号 + serial: 序列化 + version: 版本 + not_found_html: | + 没有发现可安装应用! + 请复制上面设备 UDID 并发给 iOS 工程师来添加测试设备并重新打包。 + 新安装包上传之后可以刷新本页面检查是否出现对应的应用。 + + install: + title: 获取设备 UDID + description: | + 本描述文件仅用来获取本机设备 UDID,获取信息后会自动删除掉本描述文件。 + + 本服务由 %{url} 提供。 users: title: 用户 From 68daf0dd1fafd5565f0ada5b9bc2fc5d911245a2 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 13 Sep 2021 17:25:19 +0800 Subject: [PATCH 0678/2165] feat(i18n): debug_files 100% --- app/controllers/debug_files_controller.rb | 10 ++-- .../javascripts/debug_files/index.js | 2 +- app/views/debug_files/_debug_file.html.slim | 18 +++---- app/views/debug_files/_form.html.slim | 2 +- app/views/debug_files/_help.html.slim | 24 +-------- app/views/debug_files/index.html.slim | 25 ++++----- app/views/debug_files/new.html.slim | 19 +------ config/locales/zealot/zh-CN.yml | 53 +++++++++++++++++++ 8 files changed, 80 insertions(+), 73 deletions(-) diff --git a/app/controllers/debug_files_controller.rb b/app/controllers/debug_files_controller.rb index 822d3c9ad..3bda38569 100644 --- a/app/controllers/debug_files_controller.rb +++ b/app/controllers/debug_files_controller.rb @@ -5,32 +5,32 @@ class DebugFilesController < ApplicationController before_action :set_debug_file, only: %i[destroy] def index - @title = '调试文件' + @title = t('debug_files.title') @apps = App.avaiable_debug_files authorize @apps end def new - @title = '上传调试文件' + @title = t('debug_files.index.upload') @apps = App.all @debug_file = DebugFile.new authorize @debug_file end def create - @title = '上传调试文件' + @title = t('debug_files.index.upload') @debug_file = DebugFile.new(debug_file_params) authorize @debug_file return render :new unless @debug_file.save DebugFileTeardownJob.perform_later(@debug_file, current_user.id) - redirect_to debug_files_url, notice: '调试文件上传成功,后台正在应用解包请稍后查看详情' + redirect_to debug_files_url, notice: t('activerecord.success.create', key: t('debug_files.title')) end def destroy @debug_file.destroy - redirect_to debug_files_url, notice: '调试文件已删除成功' + redirect_to debug_files_url, notice: t('activerecord.success.destroy', key: t('debug_files.title')) end private diff --git a/app/javascript/javascripts/debug_files/index.js b/app/javascript/javascripts/debug_files/index.js index 0121eb6f6..06276367f 100644 --- a/app/javascript/javascripts/debug_files/index.js +++ b/app/javascript/javascripts/debug_files/index.js @@ -14,7 +14,7 @@ $(document).on('turbolinks:load', function () { var elm = $('#destory_modal'); elm.find('.empty-content').html(function () { - var tips = "删除确认:"; + var tips = ""; var conform_text = "" + app_name + " " + device_type + " v" + releas_version + diff --git a/app/views/debug_files/_debug_file.html.slim b/app/views/debug_files/_debug_file.html.slim index 41656ad13..8d005e673 100644 --- a/app/views/debug_files/_debug_file.html.slim +++ b/app/views/debug_files/_debug_file.html.slim @@ -18,32 +18,28 @@ ruby: = device_name(debug_file.device_type) .debug-file-build-version - if debug_file.build_version.blank? - | 后台任务正在解包中,请稍候刷新。 + = t('debug_files.index.processing') - else - | 构建版本: - = debug_file.build_version + = t('debug_files.index.version', version: debug_file.build_version) .debug-file-section-size - if debug_file.file? a.btn.btn-icon.btn-sm.btn-success.btn-flat href="#{debug_file.file_url}" target="_blank" i.fas.fa-download - | 下载 ( - = number_to_human_size(debug_file.file.size) - | ) + = t('debug_files.index.download', size: number_to_human_size(debug_file.file.size)) - else button.btn.btn-secondary.btn-icon.btn-sm.btn-flat.disabled i.fas.fa-ghost - | 遗失文件无法下载 + = t('debug_files.index.missing_file') - if user_signed_in? button.btn.btn-icon.btn-sm.btn-danger.btn-flat.destroy-debug-file data-id="#{debug_file.id}" data-url="#{debug_file_path(debug_file)}" data-toggle="modal" i.fas.fa-trash-alt - | 删除 + = t('debug_files.index.destroy') .div.text-center small style="color: #999" - | 上传于 - = time_ago_in_words(debug_file.created_at) + = t('debug_files.index.uploaded_at', time: time_ago_in_words(debug_file.created_at)) == render 'metadata', debug_file: debug_file - else .alert - | 还没有上传任何调试文件,点击右上角上传一个吧。 \ No newline at end of file + = t('debug_files.index.empty_content') \ No newline at end of file diff --git a/app/views/debug_files/_form.html.slim b/app/views/debug_files/_form.html.slim index 30779346e..7e028a86b 100644 --- a/app/views/debug_files/_form.html.slim +++ b/app/views/debug_files/_form.html.slim @@ -6,5 +6,5 @@ = f.input :release_version = f.input :build_version = f.input :file, required: true - = f.input :checksum, disabled: true, error: '文件不能重复上传' + = f.input :checksum, disabled: true = f.button :submit \ No newline at end of file diff --git a/app/views/debug_files/_help.html.slim b/app/views/debug_files/_help.html.slim index 544641871..a21af8610 100644 --- a/app/views/debug_files/_help.html.slim +++ b/app/views/debug_files/_help.html.slim @@ -1,26 +1,6 @@ .col-md-12 .card .card-header.card-border - h3.card-title 什么是调试文件? + h3.card-title = t('debug_files.help.title') .card-body.table-responsive - div - h4 iOS - p 使用 XCode 打包(Archive)成功后 dSYM 文件跟 app 文件在同一个目录下,下面以 XCode 作为 IDE 详细说明定位 dSYM 文件。 - ul - li 进入 XCode - li 打开工程(已编译过) - li 在左栏找到 "Product" 项 - li 鼠标右键点击编译生成的 "xxx.app" - li 点击 "Show in Finder" 即可看到 dsym 文件 - - p XCode Release 编译默认会生成 dSYM 文件,而 Debug 编译默认不会生成,需要在 "Build Settings" 中的 "Build Options" 设置: - pre - code Debug Information Format = "DWARF with dSYM File" - p 如果确认非 Debug 构建后在 XCode Organizer 的 Archives 里选择刚生成的版本后在右侧菜单找到 "Download Debug Symbols" 并点击下载。 - div - h4 Android - p - | 通常指的是 Mapping Files,主要用于被 - a href="https://developer.android.com/studio/build/shrink-code?hl=zh-cn" - | proguard 混淆 - | 后代码复原使用。如果你是要了 tinker 还可以把 AndroidManifest.xml 和 R.txt 等文件也做备份。 + = t('debug_files.help.body_html') \ No newline at end of file diff --git a/app/views/debug_files/index.html.slim b/app/views/debug_files/index.html.slim index 7d9fb1556..18ce35114 100644 --- a/app/views/debug_files/index.html.slim +++ b/app/views/debug_files/index.html.slim @@ -8,7 +8,7 @@ - if user_signed_in? a.btn.btn-icon.bg-green href="#{new_debug_file_path}" i.far.fa-plus-square - | 上传调试文件 + = t('debug_files.index.upload') .row .col-md-12 @@ -28,16 +28,10 @@ - DebugFile.device_types.each_with_index do |(value, name), i| == render 'debug_file', app: app, value: value, name: name, i: i - else - .callout.callout-warning - h5 没有发现任何应用类型! - p - | 创建应用类型通常是给应用进行分类,比如从研发流程来说可以分为: - ul - li 开发版本、内测版本、公测版本、线上版本 - p - | 如果应用仅提供 Android 版本,可以按照应用渠道划分为: - ul - li Google Play、酷安、小米、华为、vivo、oppo、应用宝等 + .card.card-outline.card-warning + .card-header.card-border + h3.card-title = t('debug_files.index.not_found.title') + .card-body = t('debug_files.index.not_found.body_html') == render 'help' @@ -45,14 +39,13 @@ .modal-dialog role="document" .modal-content .modal-header - h4.modal-title 删除确认调试文件? + h4.modal-title = t('debug_files.confirm.destroy.title') button.close aria-label="Close" data-dismiss="modal" type="button" span aria-hidden="true" × .modal-body - p 一旦删除数据将永久无法找回或恢复,请慎重操作! + p = t('debug_files.confirm.destroy.body') p.empty-content .modal-footer input type="hidden" id="dsym-destory-id" value="" - button.btn.btn-default data-dismiss="modal" type="button" 还是算了 - a.btn.btn-danger data-method="delete" - | 我心已决 \ No newline at end of file + button.btn.btn-default data-dismiss="modal" type="button" = t('debug_files.confirm.destroy.cancel') + a.btn.btn-danger data-method="delete" = t('debug_files.confirm.destroy.ok') \ No newline at end of file diff --git a/app/views/debug_files/new.html.slim b/app/views/debug_files/new.html.slim index ad41205e6..ceec04b3d 100644 --- a/app/views/debug_files/new.html.slim +++ b/app/views/debug_files/new.html.slim @@ -10,23 +10,8 @@ .card-tools a href="#{debug_files_path}" i.far.fa-list-alt - | 返回列表 + = t('links.goback_to_list') .card-body == render 'form' - .card - .card-header.card-border - h3.card-title 如何找到调试文件 - .card-body.table-responsive - p 一般情况下,项目编译完 dSYM 文件跟 app 文件在同一个目录下,下面以 XCode 作为 IDE 详细说明定位 dSYM 文件。 - ul - li 进入 XCode - li 打开工程(已编译过) - li 在左栏找到 "Product" 项 - li 鼠标右键点击编译生成的 "xxx.app" - li 点击 "Show in Finder" 即可看到 dsym 文件 - - h4 XCode 编译后没有生成 dSYM 文件? - p XCode Release 编译默认会生成 dSYM 文件,而 Debug 编译默认不会生成,需要在 "Build Settings" 中的 "Build Options" 设置: - pre - code Debug Information Format = "DWARF with dSYM File" + == render 'help' \ No newline at end of file diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index 619b0f383..6a4c00583 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -179,6 +179,57 @@ zh-CN: debug_files: title: 调试文件 + index: + upload: 上传调试文件 + processing: 后台任务正在解包中,请稍候刷新。 + version: 构建版本:%{version} + download: 下载 (%{size}) + destroy: 删除 + uploaded_at: 上传于%{time} + missing_file: 遗失文件无法下载 + empty_content: 还没有上传任何调试文件,点击右上角上传一个吧。 + not_found: + title: 没有发现任何应用类型! + body_html: | +

创建应用类型通常是给应用进行分类,比如从研发流程来说可以分为:

+
    +
  • 开发版本、内测版本、公测版本、线上版本
  • +
+

+

如果应用仅提供 Android 版本,可以按照应用渠道划分为:

+
    +
  • Google Play、酷安、小米、华为、vivo、oppo、应用宝等
  • +
+ help: + title: 什么是调试文件,如何找到它? + body_html: | +

iOS

+

下面以 XCode 作为 IDE 详细说明定位 dSYM 文件:

+
    +
  • 打开 XCode 后点击顶部菜单 "Window" -> "Organizer"
  • +
  • 左栏找到对应的项目并查看 "Products" 下面的 "Archivers"
  • +
  • 右侧选择对应的构建版本点击右键 "Show in Finder" 即可 .xcarchive 目录
  • +
  • 在该文件继续右键选择 "显示包内容" 并进入 dSYMs 目录
  • +
  • 最后就可以找到 Target 的 dSYM 文件,最后进行压缩处理即可
  • +
+

+ XCode Release 编译默认会生成 dSYM 文件,而 Debug 编译默认不会生成,需要在 "Build Settings" 中的 "Build Options" 设置: + Debug Information Format = "DWARF with dSYM File" +

+

如果确认非 Debug 构建后在 XCode Organizer 的 Archives 里选择刚生成的版本后在右侧菜单找到 "Download Debug Symbols" 并点击下载。

+ +

Android

+

+ 通常指的是 Mapping Files,主要用于被 + proguard 混淆 + 后代码复原使用。如果使用了 tinker 还可以生成的 AndroidManifest.xml 和 R.txt 等文件也做一起压缩处理。 +

+ confirm: + destroy: + title: 删除确认调试文件? + body: 一旦删除数据将永久无法找回或恢复,请慎重操作! + ok: 我心已决 + cancel: 还是算了 teardowns: title: 应用解包 @@ -320,6 +371,8 @@ zh-CN: blank: 请选择要上传对于的应用 file: blank: 必须选择一个 zip 文件 + checksum: + taken: 文件已经存在,不能重复上传 devise: normal: From 3a15ac87b62c0d0696b0b71af71347cb62b50c3f Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 13 Sep 2021 20:21:15 +0800 Subject: [PATCH 0679/2165] feat(i18n): schemes, channels 100% --- app/controllers/apps_controller.rb | 3 +- app/controllers/channels_controller.rb | 12 +-- app/controllers/schemes_controller.rb | 62 ++++++------ app/views/apps/_help.html.slim | 26 ------ app/views/apps/_list.html.slim | 49 +--------- app/views/apps/index.html.slim | 9 +- app/views/apps/show.html.slim | 21 +++-- app/views/channels/_activity.html.slim | 6 +- app/views/channels/_channels.html.slim | 2 +- app/views/channels/_form.html.slim | 2 +- app/views/channels/_metadata.html.slim | 30 +++--- app/views/channels/_schemes.html.slim | 5 +- app/views/channels/_versions.html.slim | 11 +-- app/views/channels/filters/_list.slim | 20 ++-- app/views/channels/filters/index.slim | 2 +- app/views/channels/show.html.slim | 6 +- app/views/releases/show.html.slim | 2 +- app/views/schemes/_form.html.slim | 6 +- app/views/schemes/channels/_list.html.slim | 18 ---- config/locales/zealot/zh-CN.yml | 104 ++++++++++++++------- 20 files changed, 170 insertions(+), 226 deletions(-) delete mode 100644 app/views/apps/_help.html.slim delete mode 100644 app/views/schemes/channels/_list.html.slim diff --git a/app/controllers/apps_controller.rb b/app/controllers/apps_controller.rb index 020de6628..742ce13ac 100644 --- a/app/controllers/apps_controller.rb +++ b/app/controllers/apps_controller.rb @@ -35,7 +35,7 @@ def create @app.users << current_user app_create_schemes_and_channels - redirect_to apps_path, notice: t('apps.messages.success.create', name: @app.name) + redirect_to apps_path, notice: t('activerecord.success.create', key: "#{@app.name} #{t('apps.title')}") end def update @@ -56,7 +56,6 @@ def destory_app_data require 'fileutils' app_binary_path = Rails.root.join('public', 'uploads', 'apps', "a#{@app.id}") - logger.debug "Delete app all binary and icons in #{app_binary_path}" FileUtils.rm_rf(app_binary_path) if Dir.exist?(app_binary_path) end diff --git a/app/controllers/channels_controller.rb b/app/controllers/channels_controller.rb index 7a3e7b8ad..a9160ffd7 100644 --- a/app/controllers/channels_controller.rb +++ b/app/controllers/channels_controller.rb @@ -15,10 +15,9 @@ def show end def new + @title = t('channels.new.title', name: @scheme.app_name) @channel = Channel.new authorize @channel - - @title = "新建#{@scheme.app_name}渠道" end def create @@ -33,13 +32,10 @@ def create end def edit - @title = "编辑#{@scheme.app_name}渠道" - raise ActionController::RoutingError, '这里没有你找的东西' unless @app + @title = t('channels.edit.title', name: @scheme.app_name) end def update - raise ActionController::RoutingError, '这里没有你找的东西' unless @app - @channel.update(channel_params) redirect_to app_path(@app) end @@ -62,7 +58,7 @@ def set_channel @app = @channel.scheme.app @title = @channel.app_name - @subtitle = " #{@app.schemes.count} 类型共 #{@channel.scheme.channels.count} 渠道" + @subtitle = t('channels.subtitle', total_scheme: @app.schemes.count, total_channel: @channel.scheme.channels.count) end def channel_params @@ -73,6 +69,6 @@ def channel_params end def render_not_found_entity_response(e) - redirect_to apps_path, notice: "没有找到应用渠道 #{e.id},跳转至应用列表" + redirect_to apps_path, notice: t('channels.messages.errors.not_found_channel', id: e.id) end end diff --git a/app/controllers/schemes_controller.rb b/app/controllers/schemes_controller.rb index 0702fa605..92b88b410 100644 --- a/app/controllers/schemes_controller.rb +++ b/app/controllers/schemes_controller.rb @@ -3,52 +3,40 @@ class SchemesController < ApplicationController before_action :authenticate_user!, except: :show before_action :set_scheme, except: %i[create new] + before_action :set_channel, only: %i[show] before_action :set_app def show - if (referer = request.referer) && - (segment = Rails.application.routes.recognize_path(referer)) && - segment[:controller] == 'channels' && - segment[:action] == 'show' - previouse_channel = Channel.friendly.find(segment[:id]) - @channel = @scheme.channels.find_by(device_type: previouse_channel.device_type) - else - @channel = @scheme.latest_channel - end - if @channel redirect_to channel_path(@channel) else - redirect_to new_app_scheme_channel_path(@scheme.app, @scheme), alert: '没有发现已创建的渠道,请新建一个' + redirect_to new_app_scheme_channel_path(@scheme.app, @scheme), alert: t('schemes.show.empty_channel') end end def new - @title = "新建#{@app.name}类型" + @title = t('schemes.new.title', app: @app.name) @scheme = Scheme.new authorize @scheme end def create - @channel = scheme_params.delete(:channel) + channels = scheme_params.delete(:channel_attributes)[:name].reject(&:empty?) @scheme = Scheme.new(scheme_params) authorize @scheme @scheme.app = @app return render :new unless @scheme.save - create_channel_by(@scheme, @channel) - redirect_to app_path(@app), notice: '类型已经创建成功!' + create_channels(channels) + redirect_to app_path(@app), notice: t('activerecord.success.create', key: t('schemes.title')) end def edit - @title = "编辑#{@app.name}类型" - raise ActionController::RoutingError, '这里没有你找的东西' unless @scheme + @title = t('schemes.edit.title', app: @app.name) end def update - raise ActionController::RoutingError, '这里没有你找的东西' unless @scheme - @scheme.update(scheme_params) redirect_to app_path(@app) end @@ -61,19 +49,11 @@ def destroy protected - def create_channel_by(scheme, channel) - return unless channels = channel_value(channel) + def create_channels(channels) + return if channels.empty? channels.each do |channel_name| - scheme.channels.create name: channel_name, device_type: channel_name.downcase.to_sym - end - end - - def channel_value(platform) - case platform - when 'ios' then ['iOS'] - when 'android' then ['Android'] - when 'both' then ['Android', 'iOS'] + @scheme.channels.create name: channel_name, device_type: channel_name.downcase.to_sym end end @@ -88,6 +68,26 @@ def set_scheme def scheme_params @scheme_params ||= params.require(:scheme) - .permit(:name, :channel) + .permit(:name, channel_attributes: { name: [] }) + end + + def set_channel + from_channel, segment = from_channel? + unless from_channel + @channel = @scheme.latest_channel + return + end + + previouse_channel = Channel.friendly.find(segment[:id]) + @channel = @scheme.channels.find_by(device_type: previouse_channel.device_type) + end + + def from_channel? + return [false, nil] unless referer = request.referer + return [false, nil] unless segment = Rails.application.routes.recognize_path(referer) + + from_channel = segment[:controller] == 'channels' && segment[:action] == 'show' + + [from_channel, segment] end end diff --git a/app/views/apps/_help.html.slim b/app/views/apps/_help.html.slim deleted file mode 100644 index db95a63af..000000000 --- a/app/views/apps/_help.html.slim +++ /dev/null @@ -1,26 +0,0 @@ -.col-md-12 - .card - .card-header.card-border - h3.card-title 使用帮助 - .card-body.table-responsive - - if ENV['JENKINS_URL'].present? - p - | Zealot 接管的所有应用可由 - a href="#{ENV['JENKINS_URL']}" Jenkins - p - | 推荐通过使用 - a href="https://github.com/tryzealot/fastlane-plugin-zealot" fastlane-plugin-zealot - | 插件配合 - a href="https://github.com/icyleaf/fastlane-plugin-humanable_build_number" fastlane-plugin-humanable_build_number - | 上传的应用基本上会修改 build version(code) 主要用于内部测试版本更新检查使用,其命名规范是打包时最后一次 - | git commit 的时间做格式化 - strong mmddHHMM - | 。鉴于 Android build code 最大值不能超过 2100000000 只能放弃年份。 - p - | 且使用 fastlane-plugin-zealot 更新日志是从 CI 系统当前构建 git commit 的信息检索到上次构建成功之后聚合而成。 - - p - strong - | 需要注意的是: - | 如果开启了自动清理老版本的功能所有上传的版本并非完整保留,系统会定期检查所有的版本鉴定为历史版本号的将会保留最后一个构建的版本, - | 之前的会被从磁盘中清除(节省硬盘空间和备份数据带来的耗时操作),最新版本所有的构建版本将会全部保留。 \ No newline at end of file diff --git a/app/views/apps/_list.html.slim b/app/views/apps/_list.html.slim index e3e900cc8..a55e5d438 100644 --- a/app/views/apps/_list.html.slim +++ b/app/views/apps/_list.html.slim @@ -5,7 +5,7 @@ h3.widget-user-username = link_to app.name, app_path(app), style: "color: #FFF" small.widget-user-desc - | 创建于#{time_ago_in_words(app.created_at)} + = t('apps.index.created_at', time: time_ago_in_words(app.created_at)) .widget-user-image = app_icon(app.recently_release, class: 'elevation-2 img-circle') .card-footer @@ -14,55 +14,14 @@ .description-block h5.description-header = app.total_schemes - span.description-text 类型 + span.description-text = t('apps.index.schemes') .col-sm-4.border-right .description-block h5.description-header = app.total_channels - span.description-text 渠道 + span.description-text = t('apps.index.channels') .col-sm-4 .description-block h5.description-header = app.total_releases - span.description-text 上传 - - - / .apps.card - / .card-header - / h3.card-title - / = app_icon(app.recently_release, class: 'app-icon img-circle') - / = link_to app.name, app_path(app), style: "color: #000" - / - if user_signed_in? - / .card-tools - / a.btn.btn-tool href="#{new_app_scheme_path(app)}" - / i.far.fa-plus-square - / a.btn.btn-tool href="#{edit_app_path(app)}" - / i.fas.fa-edit - / a.btn.btn-tool href="#{app_path(app)}" data-confirm="#{t('apps.messages.confirm.delete_app', name: app.name)}" data-method="delete" - / i.fas.fa-trash-alt - / .card-body.p-0 - / .app-schemes - / - if app.schemes.count > 0 - / table.table - / tr - / th = t('apps.index.apps.type') - / th style="width: 100px" = t('apps.index.apps.channel_count') - / - app.schemes.each do |scheme| - / tr - / td = link_to scheme.name, app_scheme_path(app, scheme) - / td - / span.float-right.badge.bg-blue = scheme.total_releases - / - else - / .p-3 = t('apps.index.apps.new_app_scheme', link: link_to(t('apps.index.apps.new_app_scheme_link_title'), new_app_scheme_path(app))).html_safe - / .p-3 - / = t('apps.index.apps.tips.title') - / ul - / li.btn-icon - / i.far.fa-plus-square - / = t('apps.index.apps.tips.create_app_scheme_and_channel') - / li.btn-icon - / i.fas.fa-edit - / = t('apps.index.apps.tips.edit_app_name') - / li.btn-icon - / i.fas.fa-trash-alt - / = t('apps.index.apps.tips.destroy_app') \ No newline at end of file + span.description-text = t('apps.index.uploads') diff --git a/app/views/apps/index.html.slim b/app/views/apps/index.html.slim index 3217d333a..23b5bcc28 100644 --- a/app/views/apps/index.html.slim +++ b/app/views/apps/index.html.slim @@ -11,4 +11,11 @@ = t('apps.new.title') .row - == render 'list' \ No newline at end of file + - if @apps.size > 0 + == render 'list' + - else + .col-md-12 + .card.card-outline.card-warning + .card-header.card-border + h3.card-title = t('apps.index.not_found.title') + .card-body = t('apps.index.not_found.body_html') \ No newline at end of file diff --git a/app/views/apps/show.html.slim b/app/views/apps/show.html.slim index 93575ad96..147627765 100644 --- a/app/views/apps/show.html.slim +++ b/app/views/apps/show.html.slim @@ -6,9 +6,9 @@ - content_for :section_rightpanel do .btn-group - = button_link_to t('apps.menu.new_scheme'), new_app_scheme_path(@app), 'plus-square', class: 'btn-icon btn-default btn-sm btn-flat' - = button_link_to t('apps.menu.edit_app'), edit_app_path(@app), 'edit', class: 'btn-icon btn-default btn-sm btn-flat' - = button_link_to t('apps.menu.destroy_app'), app_path(@app), 'trash-alt', class: 'btn-icon btn-default btn-sm btn-flat', data: { confirm: "#{t('apps.messages.confirm.delete_app', name: @app.name)}", method: "delete" } + = button_link_to t('apps.show.new_scheme'), new_app_scheme_path(@app), 'plus-square', class: 'btn-icon btn-default btn-sm btn-flat' + = button_link_to t('apps.show.edit_app'), edit_app_path(@app), 'edit', class: 'btn-icon btn-default btn-sm btn-flat' + = button_link_to t('apps.show.destroy_app'), app_path(@app), 'trash-alt', class: 'btn-icon btn-default btn-sm btn-flat', data: { confirm: "#{t('apps.messages.confirm.delete_app', name: @app.name)}", method: "delete" } .row .col-md-12 @@ -20,9 +20,9 @@ = scheme.name .card-tools .sections-actions.btn-group - = button_link_to t('apps.menu.new_channel'), new_app_scheme_channel_path(@app, scheme), 'plus-square', class: 'btn-icon btn-default btn-sm btn-flat' - = button_link_to t('apps.menu.edit_scheme'), edit_app_scheme_path(@app, scheme), 'edit', class: 'btn-icon btn-default btn-sm btn-flat' - = button_link_to t('apps.menu.destory_scheme'), app_scheme_path(@app, scheme), 'trash-alt', class: 'btn-icon btn-default btn-sm btn-flat', data: { confirm: "#{t('apps.messages.confirm.delete_app_scheme', name: scheme.app_name)}", method: "delete" } + = button_link_to t('apps.show.new_channel'), new_app_scheme_channel_path(@app, scheme), 'plus-square', class: 'btn-icon btn-default btn-sm btn-flat' + = button_link_to t('apps.show.edit_scheme'), edit_app_scheme_path(@app, scheme), 'edit', class: 'btn-icon btn-default btn-sm btn-flat' + = button_link_to t('apps.show.destory_scheme'), app_scheme_path(@app, scheme), 'trash-alt', class: 'btn-icon btn-default btn-sm btn-flat', data: { confirm: "#{t('apps.messages.confirm.delete_app_scheme', name: scheme.app_name)}", method: "delete" } .card-body.p-0 section.app-section id="scheme-#{scheme.id}" @@ -38,8 +38,9 @@ - else tr td colspan="2" - = t('apps.table.app.not_found_channel_body_html') + = t('apps.show.not_found_channel_body_html') - else - .callout.callout-warning = t('apps.table.app.emtpy_content_body_html') - - + .card.card-outline.card-warning + .card-header.card-border + h3.card-title = t('apps.show.not_found_scheme.title') + .card-body = t('apps.show.not_found_scheme.body_html') diff --git a/app/views/channels/_activity.html.slim b/app/views/channels/_activity.html.slim index f609a2526..a0a91e7ad 100644 --- a/app/views/channels/_activity.html.slim +++ b/app/views/channels/_activity.html.slim @@ -2,7 +2,7 @@ .card-header h3.card-title i.fas.fa-history - | 最近上传动态 + = t('channels.show.activity') .card-tools span.badge.bg-yellow = @channel.releases.count @@ -24,9 +24,7 @@ = "#{release.release_version} (#{release.build_version})" - else li.item.p-3 - | 还没有收到任何上传记录,开始 - a href="#{new_channel_release_path(@channel)}" 上传第一个版本 - | 吧。 + = raw t('channels.show.not_found') - if @releases.total_pages > 1 .card-footer.clearfix .float-right diff --git a/app/views/channels/_channels.html.slim b/app/views/channels/_channels.html.slim index febb6686c..8553d4f36 100755 --- a/app/views/channels/_channels.html.slim +++ b/app/views/channels/_channels.html.slim @@ -1,6 +1,6 @@ .card.card-solid.d-none.d-sm-block .card-header - h3.card-title 渠道 + h3.card-title = t('channels.show.channel') .card-body.p-0 ul.nav.nav-pills.flex-column - @channel.scheme.channels.each do |channel| diff --git a/app/views/channels/_form.html.slim b/app/views/channels/_form.html.slim index 7890a7ef6..e699f851b 100644 --- a/app/views/channels/_form.html.slim +++ b/app/views/channels/_form.html.slim @@ -9,7 +9,7 @@ ruby: .card-tools a href="#{app_path(@scheme.app)}" i.far.fa-list-alt - | 返回应用 + = t('links.goback_to_list') .card-body = simple_form_for(@channel, url: form_url) do |f| = f.error_notification diff --git a/app/views/channels/_metadata.html.slim b/app/views/channels/_metadata.html.slim index 9f6a007ef..851d6c70e 100644 --- a/app/views/channels/_metadata.html.slim +++ b/app/views/channels/_metadata.html.slim @@ -1,36 +1,28 @@ .card.card-solid .card-header - h3.card-title 渠道信息 + h3.card-title = t('channels.show.metadata') .card-body.p-0.pt-3 p.d-flex.flex-column.border-bottom.pl-3.pb-3.pt-3 span.font-weight-bold = device_name(@channel.device_type) - span.text-muted 设备类型 + span.text-muted = t('channels.show.device_type') p.d-flex.flex-column.border-bottom.pl-3.pb-3 span.font-weight-bold = @channel.slug - span.text-muted 唯一地址 + span.text-muted = t('channels.show.slug') - if user_signed_in? p.d-flex.flex-column.border-bottom.pl-3.pb-3 - span.font-weight-bold = @channel.password.blank? ? '未设置' : @channel.password - span.text-muted 访问密码 + span.font-weight-bold = @channel.password.blank? ? t('channels.show.none') : @channel.password + span.text-muted = t('channels.show.password') p.d-flex.flex-column.border-bottom.pl-3.pb-3 span.font-weight-bold = @channel.bundle_id - span.text-muted - | 匹配模式 - - if @channel.bundle_id == '*' - | (不限制上传包的包名) + span.text-muted = t('channels.show.match_rule', value: @channel.bundle_id == '*' ? t('channels.show.wildmatch') : '') p.d-flex.flex-column.border-bottom.pl-3.pb-3 - span.font-weight-bold - - if @channel.git_url.blank? - | 未设置 ( - = link_to '修改', edit_app_scheme_channel_path(@channel.app, @channel.scheme, @channel) - | ) - - else @channel.git_url - span.text-muted Git 仓库地址 + span.font-weight-bold = @channel.git_url.blank? ? t('channels.show.none') : @channel.git_url + span.text-muted = t('channels.show.git_url') p.d-flex.flex-column.border-bottom.pl-3.pb-3 span.font-weight-bold = @channel.releases.count - span.text-muted 上传版本 + span.text-muted = t('channels.show.total_releases') p.d-flex.flex-column.border-bottom.pl-3.pb-3 span.font-weight-bold = @channel.key - span.text-muted 渠道 KEY + span.text-muted = t('channels.show.channel_key') .card-footbar.pl-3.pr-3.pb-3 - a.btn.btn-default.btn-block href="#{app_path(@channel.app)}" 应用管理 \ No newline at end of file + a.btn.btn-default.btn-block href="#{app_path(@channel.app)}" = t('channels.show.manage_app') \ No newline at end of file diff --git a/app/views/channels/_schemes.html.slim b/app/views/channels/_schemes.html.slim index e239836af..8f08ae607 100755 --- a/app/views/channels/_schemes.html.slim +++ b/app/views/channels/_schemes.html.slim @@ -3,11 +3,10 @@ ruby: .card.card-solid.d-none.d-sm-block .card-header - h3.card-title 应用类型 + h3.card-title = t('channels.show.scheme') .card-body.p-0 ul.nav.nav-pills.flex-column - @app.schemes.each do |scheme| li.nav-item a.nav-link href="#{app_scheme_path(@app, scheme)}" class="#{@channel.scheme.name == scheme.name ? 'active' : ''}" - = scheme.name - / span.label.label-primary.float-right 12 \ No newline at end of file + = scheme.name \ No newline at end of file diff --git a/app/views/channels/_versions.html.slim b/app/views/channels/_versions.html.slim index c7a76a9e1..5451f089a 100755 --- a/app/views/channels/_versions.html.slim +++ b/app/views/channels/_versions.html.slim @@ -1,12 +1,12 @@ .card.card-solid .card-header - h3.card-title 近期版本 + h3.card-title = t('channels.show.recently_versions') .card-body.table-responsive.p-0 - if @versions.count > 0 table.table.table-striped.table-borderd tr - th 主版本号 - th 版本数量 + th = t('channels.show.release_version') + th = t('channels.show.total_version') - @versions.each do |version| tr td @@ -14,9 +14,8 @@ td = @channel.release_version_count(version) - else - .p-3 - | 暂无版本 + .p-3 = t('channels.show.empty_version_shortly') - if @versions.count > 0 .card-footbar a.btn.btn-default.btn-block href="#{channel_versions_path(@channel)}" - | 查看更多 + = t('channels.show.more') diff --git a/app/views/channels/filters/_list.slim b/app/views/channels/filters/_list.slim index a062e585a..3e35a8898 100644 --- a/app/views/channels/filters/_list.slim +++ b/app/views/channels/filters/_list.slim @@ -1,14 +1,14 @@ table.table.table-hover tr - th ID - th 主版本 - th 开发版本 - th 打包类型 - th 分支 - th Git 提交信息 - th 上传时间 + th = t('channels.show.id') + th = t('channels.show.release_version') + th = t('channels.show.build_version') + th = t('channels.show.release_type') + th = t('channels.show.git_branch') + th = t('channels.show.git_commit') + th = t('channels.show.uploaded_at') - if user_signed_in? - th 操作 + th = t('channels.show.actions') - if @releases.present? - @releases.each_with_index do |release, index| tr @@ -29,8 +29,8 @@ table.table.table-hover = time_ago_in_words(release.created_at) - if user_signed_in? td - a.btn.btn-tool href="#{channel_release_path(@channel, release)}" data-confirm="确定删除?" data-method="delete" + a.btn.btn-tool href="#{channel_release_path(@channel, release)}" data-confirm="#{t('channels.messages.confirm.destroy')}" data-method="delete" i.fas.fa-trash-alt - else tr - th colspan="5" 该版本没有任何上传记录! + th colspan="5" = t('channels.show.empty_version') diff --git a/app/views/channels/filters/index.slim b/app/views/channels/filters/index.slim index a913db9a6..8aac4f505 100644 --- a/app/views/channels/filters/index.slim +++ b/app/views/channels/filters/index.slim @@ -12,6 +12,6 @@ .card-tools a href="#{channel_path(@channel)}" i.far.fa-list-alt - | 返回上级页面 + = t('links.goback_to_list') .table-responsive == render 'channels/filters/list' diff --git a/app/views/channels/show.html.slim b/app/views/channels/show.html.slim index 0be3acee1..8f9ee1759 100755 --- a/app/views/channels/show.html.slim +++ b/app/views/channels/show.html.slim @@ -3,7 +3,7 @@ - content_for :section_title do = @title - small + small.pl-2 = @subtitle .row @@ -15,7 +15,9 @@ .col-md-4 - if user_signed_in? - a.btn.btn-success.btn-block.mb-3 href="#{new_channel_release_path(@channel)}" 上传应用 + a.btn.btn-success.btn-block.mb-3 href="#{new_channel_release_path(@channel)}" + i.far.fa-plus-square + = t('channels.show.upload_release') == render 'schemes' == render 'channels' == render 'versions' diff --git a/app/views/releases/show.html.slim b/app/views/releases/show.html.slim index f45130dd5..d3da88bbc 100644 --- a/app/views/releases/show.html.slim +++ b/app/views/releases/show.html.slim @@ -12,7 +12,7 @@ .col-md-4 - if user_signed_in? - a.btn.btn-success.btn-block.mb-3 href="#{new_channel_release_path(@channel)}" 上传应用 + a.btn.btn-success.btn-block.mb-3 href="#{new_channel_release_path(@channel)}" = t('channels.show.upload_release') == render 'releases/sidebar/qrcode' == render 'releases/sidebar/version' a.btn.btn-default.btn-block href="#{channel_path(@channel)}" 应用管理 diff --git a/app/views/schemes/_form.html.slim b/app/views/schemes/_form.html.slim index 98b358bb3..0899f56b0 100644 --- a/app/views/schemes/_form.html.slim +++ b/app/views/schemes/_form.html.slim @@ -1,5 +1,6 @@ ruby: form_url = new_or_create_route? ? app_schemes_path : app_scheme_path(@scheme.app, @scheme) + checked_channel = @channels ? @channels[:name] : 0 .col-md-12 .card @@ -9,12 +10,13 @@ ruby: .card-tools a href="#{app_path(@app)}" i.far.fa-list-alt - | 返回应用 + = t('links.goback_to_list') .card-body = simple_form_for(@scheme, url: form_url) do |f| = f.error_notification = f.input :name, required: true - if new_or_create_route? - = f.input :channel, collection: default_channels, selected: @channel || 0 + = f.simple_fields_for :channel_attributes do |n| + = n.input :name, as: :check_boxes, collection: default_channels, checked: checked_channel = f.button :submit diff --git a/app/views/schemes/channels/_list.html.slim b/app/views/schemes/channels/_list.html.slim deleted file mode 100644 index fb4aa7e8d..000000000 --- a/app/views/schemes/channels/_list.html.slim +++ /dev/null @@ -1,18 +0,0 @@ -- @schemes.each do |scheme| - li.dropdown - a.dropdown-toggle data-toggle="dropdown" href="#{app_scheme_path(scheme.app, scheme)}" - = scheme.name - span.caret - ul.dropdown-menu - - scheme.channels.each do |channel| - li role="presentation" - = link_to channel.name, channel_path(channel) - li.divider - li role="presentation" - = link_to '添加渠道', new_app_scheme_channel_path(scheme.app, scheme) - li.divider - li role="presentation" - = link_to '编辑类型', edit_app_scheme_path(scheme.app, scheme) - li role="presentation" - = link_to '删除类型', app_scheme_path(scheme.app, scheme), - method: :delete, data: { confirm: "确定删除:#{scheme.app.name} #{scheme.name}?" } \ No newline at end of file diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index 6a4c00583..a432ce11d 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -132,21 +132,26 @@ zh-CN: apps: title: 应用 index: - apps: - type: 类型 - channel_count: 渠道数量 - new_app_scheme: 还没有任何应用类型和渠道,开始%{link}吧。 - new_app_scheme_link_title: 创建第一个应用类型和渠道 - tips: - title: 右上角的按钮是本应用的功能区: - create_app_scheme_and_channel: 创建应用类型和渠道 - edit_app_name: 编辑应用名称 - destroy_app: 删除应用 - app: - not_found_channel_body_html: | - 没有发现任何渠道,选择右上角的 新增渠道。 - emtpy_content_body_html: | -
没有发现任何应用类型!
+ schemes: 类型 + channels: 渠道 + uploads: 上传 + created_at: 创建于%{time} + not_found: + title: 没有发现任何应用 + body_html: 点击右上角的 新增应用。 + show: + new_scheme: 新增类型 + edit_app: 编辑应用 + destroy_app: 删除应用 + new_channel: 新增渠道 + edit_scheme: 编辑类型 + destory_scheme: 删除类型 + not_found_channel_body_html: | + 没有发现任何渠道,选择右上角的 新增渠道 + not_found_scheme: + title: 没有发现任何应用类型 + body_html: | +

选择右上角的 新增类型

创建应用类型通常是给应用进行分类,比如从研发流程来说可以分为:

  • 开发版本、内测版本、公测版本、线上版本
  • @@ -160,8 +165,6 @@ zh-CN: edit: title: 编辑应用 messages: - success: - create: '%{name} 应用已经创建成功!' failture: not_found_app_by_version: '没有找到应用版本: %{version}' not_found_app: 没有找到应用 %{id},跳转至应用列表 @@ -169,13 +172,53 @@ zh-CN: delete_app: 确定删除【%{name}】应用和已关联的类型、渠道以及已上传的应用数据? delete_app_scheme: 确定删除【%{name}】类型和渠道以及已上传的应用数据? delete_app_channel: 确定删除【%{name}】渠道和已上传的应用数据? - menu: - new_scheme: 新增类型 - edit_app: 编辑应用 - destroy_app: 删除应用 - new_channel: 新增渠道 - edit_scheme: 编辑类型 - destory_scheme: 删除类型 + + schemes: + title: 应用类型 + show: + empty_channel: 没有发现已创建的渠道,请新建一个 + new: + title: '%{app}新建类型' + edit: + title: '%{app}编辑类型' + + channels: + title: 应用渠道 + show: + scheme: :'schemes.title' + channel: :'channels.title' + activity: 最近上传动态 + upload_release: 上传应用 + metadata: 渠道信息 + device_type: 设备类型 + slug: 唯一地址 + password: 访问密码 + git_url: Git 仓库地址 + match_rule: 匹配模式 %{value} + wildmatch: (不限制上传包的包名) + total_releases: 上传版本 + channel_key: 渠道 KEY + manage_app: 应用管理 + none: 未设置 + not_found: 还没有收到任何上传记录,点击右上角的 上传应用 + + recently_versions: 最近版本 + release_version: 主版本号 + total_version: 版本数量 + empty_version_shortly: 暂无版本 + empty_version: 该版本没有任何上传记录! + more: 查看更多 + + id: ID + build_version: 开发版本 + git_branch: 分支 + git_commit: 开发版本 + release_type: 打包类型 + uploaded_at: 上传时间 + actions: 操作 + messages: + confirm: + destroy: :'web_hooks.messages.confirm.destroy' debug_files: title: 调试文件 @@ -189,17 +232,8 @@ zh-CN: missing_file: 遗失文件无法下载 empty_content: 还没有上传任何调试文件,点击右上角上传一个吧。 not_found: - title: 没有发现任何应用类型! - body_html: | -

    创建应用类型通常是给应用进行分类,比如从研发流程来说可以分为:

    -
      -
    • 开发版本、内测版本、公测版本、线上版本
    • -
    -

    -

    如果应用仅提供 Android 版本,可以按照应用渠道划分为:

    -
      -
    • Google Play、酷安、小米、华为、vivo、oppo、应用宝等
    • -
    + title: 没有发现任何调试文件! + body_html: 选择右上角的 上传调试文件 help: title: 什么是调试文件,如何找到它? body_html: | From 75ffb615944cd1443b8f6ec8a820af33b78ea379 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 14 Sep 2021 14:01:28 +0800 Subject: [PATCH 0680/2165] =?UTF-8?q?style:=E8=B0=83=E6=95=B4=E5=9B=BE?= =?UTF-8?q?=E6=A0=87=E5=90=8E=E8=B7=9F=E6=96=87=E5=AD=97=E7=9A=84=E9=97=B4?= =?UTF-8?q?=E8=B7=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/application_controller.rb | 3 +- app/controllers/releases_controller.rb | 25 ++++++++--- app/javascript/stylesheets/layout.scss | 12 +++++ app/views/admin/settings/_form.html.slim | 4 +- app/views/admin/users/index.html.slim | 2 +- app/views/admin/users/new.html.slim | 2 +- app/views/apps/_form.html.slim | 2 +- app/views/apps/index.html.slim | 2 +- app/views/channels/_activity.html.slim | 2 +- app/views/channels/_form.html.slim | 2 +- app/views/channels/_metadata.html.slim | 2 +- app/views/channels/filters/index.slim | 2 +- app/views/channels/show.html.slim | 2 +- .../dashboards/_recently_upload.html.slim | 9 ++-- app/views/debug_files/_debug_file.html.slim | 6 +-- app/views/debug_files/index.html.slim | 2 +- app/views/debug_files/new.html.slim | 2 +- .../devise/shared/_error_messages.html.slim | 4 +- app/views/devise/shared/_links.html.slim | 2 +- app/views/errors/_debug.html.slim | 2 +- app/views/errors/_head.html.slim | 4 +- app/views/layouts/_content_header.html.slim | 2 +- app/views/layouts/error.html.slim | 2 +- app/views/releases/_tips.html.slim | 8 ++-- app/views/releases/body/_activity.html.slim | 9 ++-- app/views/releases/body/_changelog.html.slim | 4 +- app/views/releases/body/_devices.html.slim | 2 +- app/views/releases/body/_metadata.html.slim | 19 ++++---- app/views/releases/body/_wechat.html.slim | 11 +++-- app/views/releases/new.html.slim | 4 +- app/views/releases/not_found.html.slim | 16 +++---- app/views/releases/show.html.slim | 2 +- app/views/releases/sidebar/_qrcode.html.slim | 4 +- app/views/releases/sidebar/_version.html.slim | 4 +- app/views/schemes/_form.html.slim | 2 +- app/views/teardowns/_android.html.slim | 8 ++-- .../teardowns/_developer_certs_part.html.slim | 2 +- app/views/teardowns/_help.html.slim | 4 +- app/views/teardowns/_ios.html.slim | 12 ++--- app/views/teardowns/_list.html.slim | 4 +- app/views/teardowns/index.html.slim | 2 +- app/views/udid/show.html.slim | 7 ++- config/locales/zealot/zh-CN.yml | 45 +++++++++++++++---- 43 files changed, 156 insertions(+), 110 deletions(-) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 8e99e9c8f..319d6e100 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -12,8 +12,7 @@ class ApplicationController < ActionController::Base before_action :set_sentry_context before_action :record_page_view - rescue_from ActiveRecord::RecordNotFound, with: :not_found - rescue_from ActionController::RoutingError, with: :not_found + rescue_from ActiveRecord::RecordNotFound, ActionController::RoutingError, with: :not_found rescue_from ActionController::InvalidAuthenticityToken, with: :unprocessable_entity rescue_from ActionController::UnknownFormat, AppInfo::Error, with: :not_acceptable rescue_from ActionController::ParameterMissing, CarrierWave::InvalidParameter, JSON::ParserError, AppInfo::UnkownFileTypeError, with: :bad_request diff --git a/app/controllers/releases_controller.rb b/app/controllers/releases_controller.rb index fbc5cc3a8..be67138fc 100644 --- a/app/controllers/releases_controller.rb +++ b/app/controllers/releases_controller.rb @@ -7,9 +7,8 @@ class ReleasesController < ApplicationController before_action :authenticate_app!, only: :show def index - return redirect_to root_path, notice: "应用不存在或已经被移除,页面跳转至首页" unless @channel - return redirect_to channel_path(@channel), notice: "应用版本不存在或已经被移除,页面跳转至应用渠道详情" if @channel.releases.empty? - redirect_to channel_release_path(@channel, @channel.releases.last), notice: "版本不存在或已经被移除,跳转至最新版本" + return redirect_to channel_path(@channel), notice: t('releases.messages.errors.not_found_release_and_redirect_to_channel') if @channel.releases.empty? + redirect_to channel_release_path(@channel, @channel.releases.last), notice: t('releases.messages.errors.not_found_release_and_redirect_to_latest_release') end def show @@ -79,9 +78,23 @@ def release_params ) end - def render_not_found_entity_response(e) - @title = "#{@channel.app_name} 找不到 #{e.id} 版本" - @release_id = params[:id] + def not_found(e) + @e = e + @title = t('releases.messages.errors.not_found') + @link_title = t('releases.messages.errors.redirect_to_app_list') + @link_href = apps_path + case e + when ActiveRecord::RecordNotFound + case e.model + when 'Channel' + @title = t('releases.messages.errors.not_found_app') + when 'Release' + @title = t('releases.messages.errors.not_found_release') + @link_title = t('releases.messages.errors.reidrect_channel_detal') + @link_href = channel_path(@channel) + end + end + render :not_found, status: :not_found end end diff --git a/app/javascript/stylesheets/layout.scss b/app/javascript/stylesheets/layout.scss index 8fabf1084..842cf0ae6 100644 --- a/app/javascript/stylesheets/layout.scss +++ b/app/javascript/stylesheets/layout.scss @@ -39,4 +39,16 @@ .fas { margin-right: 5px; } +} + +i.icon { + margin-right: 5px; +} + +.timeline-item { + .time { + i.icon { + margin-right: 3px; + } + } } \ No newline at end of file diff --git a/app/views/admin/settings/_form.html.slim b/app/views/admin/settings/_form.html.slim index 14360bddc..e0d304153 100644 --- a/app/views/admin/settings/_form.html.slim +++ b/app/views/admin/settings/_form.html.slim @@ -5,7 +5,7 @@ h3.card-title = t("admin.settings.#{@setting.var}") .card-tools a href="#{admin_settings_path}" - i.far.fa-list-alt + i.icon.far.fa-list-alt = t('admin.link.back_to_list') = simple_form_for(@setting, url: admin_setting_path(@setting.var), method: :patch) do |f| @@ -13,7 +13,7 @@ - if @setting.errors.size > 0 .callout.callout-danger h5 = t('activerecord.errors.models.setting.default_message', key: t("admin.settings.#{@setting.var}")) - ul style="margin-bottom: 0" + ul.mb-0 - @setting.errors.each do |error| li = error.message diff --git a/app/views/admin/users/index.html.slim b/app/views/admin/users/index.html.slim index c6c5b51fc..7fbd49ec2 100644 --- a/app/views/admin/users/index.html.slim +++ b/app/views/admin/users/index.html.slim @@ -6,7 +6,7 @@ - content_for :section_rightpanel do a.btn.btn-icon.bg-green href="#{new_admin_user_path}" - i.far.fa-plus-square + i.icon.far.fa-plus-square = t('admin.users.new_user') .row diff --git a/app/views/admin/users/new.html.slim b/app/views/admin/users/new.html.slim index e796a5f8e..c9eb9f869 100644 --- a/app/views/admin/users/new.html.slim +++ b/app/views/admin/users/new.html.slim @@ -11,6 +11,6 @@ h3.card-title = t('admin.users.user_info') .card-tools a href="#{admin_users_path}" - i.far.fa-list-alt + i.icon.far.fa-list-alt = t('admin.link.back_to_list') == render 'form' \ No newline at end of file diff --git a/app/views/apps/_form.html.slim b/app/views/apps/_form.html.slim index 3a2a74eaa..6214cbf9e 100644 --- a/app/views/apps/_form.html.slim +++ b/app/views/apps/_form.html.slim @@ -10,7 +10,7 @@ ruby: = @title .card-tools a href="#{link_url}" - i.far.fa-list-alt + i.icon.far.fa-list-alt = t('links.goback_to_list') .card-body = simple_form_for @app do |f| diff --git a/app/views/apps/index.html.slim b/app/views/apps/index.html.slim index 23b5bcc28..5e7edfd52 100644 --- a/app/views/apps/index.html.slim +++ b/app/views/apps/index.html.slim @@ -7,7 +7,7 @@ - content_for :section_rightpanel do - if user_signed_in? a.btn.btn-icon.bg-green href="#{new_app_path}" - i.far.fa-plus-square + i.icon.far.fa-plus-square = t('apps.new.title') .row diff --git a/app/views/channels/_activity.html.slim b/app/views/channels/_activity.html.slim index a0a91e7ad..53b8002d8 100644 --- a/app/views/channels/_activity.html.slim +++ b/app/views/channels/_activity.html.slim @@ -1,7 +1,7 @@ .card .card-header h3.card-title - i.fas.fa-history + i.icon.fas.fa-history = t('channels.show.activity') .card-tools span.badge.bg-yellow diff --git a/app/views/channels/_form.html.slim b/app/views/channels/_form.html.slim index e699f851b..72439bb28 100644 --- a/app/views/channels/_form.html.slim +++ b/app/views/channels/_form.html.slim @@ -8,7 +8,7 @@ ruby: = @title .card-tools a href="#{app_path(@scheme.app)}" - i.far.fa-list-alt + i.icon.far.fa-list-alt = t('links.goback_to_list') .card-body = simple_form_for(@channel, url: form_url) do |f| diff --git a/app/views/channels/_metadata.html.slim b/app/views/channels/_metadata.html.slim index 851d6c70e..5b7207274 100644 --- a/app/views/channels/_metadata.html.slim +++ b/app/views/channels/_metadata.html.slim @@ -25,4 +25,4 @@ span.font-weight-bold = @channel.key span.text-muted = t('channels.show.channel_key') .card-footbar.pl-3.pr-3.pb-3 - a.btn.btn-default.btn-block href="#{app_path(@channel.app)}" = t('channels.show.manage_app') \ No newline at end of file + a.btn.btn-default.btn-block href="#{edit_app_scheme_channel_path(@channel.scheme.app, @channel.scheme, @channel)}" = t('channels.show.edit_channel') \ No newline at end of file diff --git a/app/views/channels/filters/index.slim b/app/views/channels/filters/index.slim index 8aac4f505..69e42c73c 100644 --- a/app/views/channels/filters/index.slim +++ b/app/views/channels/filters/index.slim @@ -11,7 +11,7 @@ h3.card-title = @subtitle .card-tools a href="#{channel_path(@channel)}" - i.far.fa-list-alt + i.icon.far.fa-list-alt = t('links.goback_to_list') .table-responsive == render 'channels/filters/list' diff --git a/app/views/channels/show.html.slim b/app/views/channels/show.html.slim index 8f9ee1759..15940a144 100755 --- a/app/views/channels/show.html.slim +++ b/app/views/channels/show.html.slim @@ -16,7 +16,7 @@ .col-md-4 - if user_signed_in? a.btn.btn-success.btn-block.mb-3 href="#{new_channel_release_path(@channel)}" - i.far.fa-plus-square + i.icon.far.fa-plus-square = t('channels.show.upload_release') == render 'schemes' == render 'channels' diff --git a/app/views/dashboards/_recently_upload.html.slim b/app/views/dashboards/_recently_upload.html.slim index 949dfed06..38cf35076 100644 --- a/app/views/dashboards/_recently_upload.html.slim +++ b/app/views/dashboards/_recently_upload.html.slim @@ -4,10 +4,10 @@ section .card .card-header h3.card-title - i.fas.fa-history + i.icon.fas.fa-history = t('dashboard.timeline.title') - .card-body + .card-body.pb-0 - if @releases.present? .timeline ruby: @@ -24,8 +24,7 @@ section i.fab class="#{timeline_app_icon(release.channel.device_type)}" style="margin-top: 4px" .timeline-item span.time data-toggle="tooltip" data-placement="left" title="#{release.created_at}" - i.fas.fa-clock - |   + i.icon.fas.fa-clock = time_ago_in_words(release.created_at) h3.timeline-header = link_to " #{release.app_name}", channel_release_path(release.channel, release) @@ -53,7 +52,7 @@ section - else .time-label = t('dashboard.timeline.not_found') - - if @releases.present? + - if @releases.total_pages > 1 .card-footer .float-right = paginate @releases diff --git a/app/views/debug_files/_debug_file.html.slim b/app/views/debug_files/_debug_file.html.slim index 8d005e673..ea88b35bb 100644 --- a/app/views/debug_files/_debug_file.html.slim +++ b/app/views/debug_files/_debug_file.html.slim @@ -25,15 +25,15 @@ ruby: .debug-file-section-size - if debug_file.file? a.btn.btn-icon.btn-sm.btn-success.btn-flat href="#{debug_file.file_url}" target="_blank" - i.fas.fa-download + i.icon.fas.fa-download = t('debug_files.index.download', size: number_to_human_size(debug_file.file.size)) - else button.btn.btn-secondary.btn-icon.btn-sm.btn-flat.disabled - i.fas.fa-ghost + i.icon.fas.fa-ghost = t('debug_files.index.missing_file') - if user_signed_in? button.btn.btn-icon.btn-sm.btn-danger.btn-flat.destroy-debug-file data-id="#{debug_file.id}" data-url="#{debug_file_path(debug_file)}" data-toggle="modal" - i.fas.fa-trash-alt + i.icon.fas.fa-trash-alt = t('debug_files.index.destroy') .div.text-center small style="color: #999" diff --git a/app/views/debug_files/index.html.slim b/app/views/debug_files/index.html.slim index 18ce35114..cd6534913 100644 --- a/app/views/debug_files/index.html.slim +++ b/app/views/debug_files/index.html.slim @@ -7,7 +7,7 @@ - content_for :section_rightpanel do - if user_signed_in? a.btn.btn-icon.bg-green href="#{new_debug_file_path}" - i.far.fa-plus-square + i.icon.far.fa-plus-square = t('debug_files.index.upload') .row diff --git a/app/views/debug_files/new.html.slim b/app/views/debug_files/new.html.slim index ceec04b3d..2e28f8304 100644 --- a/app/views/debug_files/new.html.slim +++ b/app/views/debug_files/new.html.slim @@ -9,7 +9,7 @@ = @title .card-tools a href="#{debug_files_path}" - i.far.fa-list-alt + i.icon.far.fa-list-alt = t('links.goback_to_list') .card-body == render 'form' diff --git a/app/views/devise/shared/_error_messages.html.slim b/app/views/devise/shared/_error_messages.html.slim index d7ce0bf57..d3a3fdc04 100644 --- a/app/views/devise/shared/_error_messages.html.slim +++ b/app/views/devise/shared/_error_messages.html.slim @@ -3,7 +3,7 @@ button.close data-dismiss="alert" aria-hidden="true" × h4 i.icon.fas.fa-ban - = I18n.t("errors.messages.not_saved", count: resource.errors.count, resource: resource.class.model_name.human.downcase) - ul style="padding-left: 20px" + = t('errors.messages.not_saved', count: resource.errors.count, resource: resource.class.model_name.human.downcase) + ul.pl-3 - resource.errors.full_messages.each do |message| li = message diff --git a/app/views/devise/shared/_links.html.slim b/app/views/devise/shared/_links.html.slim index 0be79eeae..7c3aadb9d 100644 --- a/app/views/devise/shared/_links.html.slim +++ b/app/views/devise/shared/_links.html.slim @@ -8,7 +8,7 @@ key = title.downcase a.btn.btn-icon.btn-block href="#{public_send("user_#{provider}_omniauth_authorize_path")}" class="btn-default btn-auth-#{key}" - i.fab class="fa-#{key}" + i.icon.fab class="fa-#{key}" = t('devise.shared.links.sign_in_with_provider', provider: title) - if controller_name != 'sessions' diff --git a/app/views/errors/_debug.html.slim b/app/views/errors/_debug.html.slim index 60f1a7e64..8ff3c1557 100644 --- a/app/views/errors/_debug.html.slim +++ b/app/views/errors/_debug.html.slim @@ -3,7 +3,7 @@ .card .card-header h3.card-title - i.fas.fa-error + i.icon.fas.fa-error = "#{@exception.class}: #{@exception.message}" .card-tools small.badge 仅开发环境显示 diff --git a/app/views/errors/_head.html.slim b/app/views/errors/_head.html.slim index a39b2d9ae..7b8441142 100644 --- a/app/views/errors/_head.html.slim +++ b/app/views/errors/_head.html.slim @@ -2,5 +2,5 @@ ruby: color = @code == 404 ? 'text-red' : 'text-warning' h3 - i.fa.fa-warning class="#{color}" - = "#{@code} #{@title}" \ No newline at end of file + i.icon.fa.fa-warning class="#{color}" + = "#{@code} #{@title}" \ No newline at end of file diff --git a/app/views/layouts/_content_header.html.slim b/app/views/layouts/_content_header.html.slim index 12180cf5a..a4a976329 100644 --- a/app/views/layouts/_content_header.html.slim +++ b/app/views/layouts/_content_header.html.slim @@ -20,4 +20,4 @@ ruby: ol.breadcrumb.float-sm-right = breadcrumb - else - div style="padding: 7px 0;" \ No newline at end of file + .pt-3 \ No newline at end of file diff --git a/app/views/layouts/error.html.slim b/app/views/layouts/error.html.slim index e314aa722..b33b9a718 100644 --- a/app/views/layouts/error.html.slim +++ b/app/views/layouts/error.html.slim @@ -22,7 +22,7 @@ html h2.headline.text-warning = @code .error-content h3 - i.fas.fa-exclamation-triangle.text-warning + i.icon.fas.fa-exclamation-triangle.text-warning | Oops! Page not found. p | We could not find the page you were looking for. diff --git a/app/views/releases/_tips.html.slim b/app/views/releases/_tips.html.slim index e82d2cb98..bb69aaa3c 100644 --- a/app/views/releases/_tips.html.slim +++ b/app/views/releases/_tips.html.slim @@ -1,11 +1,11 @@ - if wechat? div.cover div.wechat-tips - span - = "点击右上角菜单" + span.text-right + = t('releases.show.wechat_touch_menu') br - if ios? - = "在 Safari 中打开并安装" + = t('releases.show.wechat_open_in_safari') - else - = "在任意浏览器中打开并安装" + = t('releases.show.wechat_open_in_webbrower') = image_pack_tag('media/images/wechat/short-arrow.png') \ No newline at end of file diff --git a/app/views/releases/body/_activity.html.slim b/app/views/releases/body/_activity.html.slim index 12a732ccb..d7f222806 100644 --- a/app/views/releases/body/_activity.html.slim +++ b/app/views/releases/body/_activity.html.slim @@ -5,20 +5,19 @@ ruby: .card .card-header h3.card-title - i.fas.fa-history - | 最近 10 次上传 + i.icon.fas.fa-history + | 最近 10 次上传 .card-tools button.btn.btn-tool data-card-widget="collapse" i.fas.fa-minus - .card-body + .card-body.pb-0 .timeline - releases.each do |release| div i.fa-circle class="#{@release == release ? 'fas' : 'far'}" .timeline-item span.time - i.fas.fa-clock - |   + i.icon.fas.fa-clock = time_ago_in_words(release.created_at) h3.timeline-header = link_to release.app_name, channel_release_path(@release.channel, release) diff --git a/app/views/releases/body/_changelog.html.slim b/app/views/releases/body/_changelog.html.slim index 891b6bc14..3256e998e 100644 --- a/app/views/releases/body/_changelog.html.slim +++ b/app/views/releases/body/_changelog.html.slim @@ -1,8 +1,8 @@ .card .card-header h3.card-title - i.fas.fa-info-circle - | 更新日志 + i.icon.fas.fa-info-circle + | 更新日志 .card-tools button.btn.btn-tool data-card-widget="collapse" i.fas.fa-minus diff --git a/app/views/releases/body/_devices.html.slim b/app/views/releases/body/_devices.html.slim index 966a1aee9..65876fcb4 100644 --- a/app/views/releases/body/_devices.html.slim +++ b/app/views/releases/body/_devices.html.slim @@ -3,7 +3,7 @@ .card.collapsed-card .card-header h3.card-title - i.fas.fa-mobile-alt + i.icon.fas.fa-mobile-alt = " #{@release.devices.count} 台测试设备 (UDID)" .card-tools button.btn.btn-tool data-toggle="dropdown" title="显示设备名称需要使用 zealot_sync_device fastlane 插件" diff --git a/app/views/releases/body/_metadata.html.slim b/app/views/releases/body/_metadata.html.slim index 7e3f7fa3a..44ac3bcd6 100644 --- a/app/views/releases/body/_metadata.html.slim +++ b/app/views/releases/body/_metadata.html.slim @@ -3,7 +3,7 @@ .callout.callout-warning h5 i.icon.fas.fa-info - | 当前不是最新版本! + = t('releases.show.not_latest_release') p = " #{latest_release.release_version} (#{latest_release.build_version}) " = "于 #{time_ago_in_words(latest_release.created_at)}发布了," @@ -77,13 +77,13 @@ button.btn.btn-icon.btn-lg.bg-success[ id="download_it" data-install-url="#{@release.install_url}" - data-loading-text=" 等待安装 ..."] - i.fas.fa-paper-plane - | 安装 + data-loading-text=" 安装到桌面 ..."] + i.fas.fa-mobile-alt + | 设备安装 a.btn.btn-icon.btn-lg.bg-success href="#{@release.download_url}" target="_blank" i.fas.fa-download - | 下载 + | 本地下载 - else button.btn.btn-secondary.btn-icon.disabled i.fas.fa-ghost @@ -91,16 +91,15 @@ - if current_user&.manage? a.btn.btn-danger.btn-icon href="#{channel_release_path(@release.channel, @release)}" data-confirm="确定删除?" data-method="delete" i.fas.fa-trash-alt - | 删除 + | 删除版本 - / span style=("margin:0 5px") / - if @release.ci_url.present? - / button#build_it.btn.btn-icon.bg-success.btn-social data-app-id="#{@release.app.id}" data-job="#{@release.ci_url}" data-loading-text=(" 正在构建...") data-toggle="modal" onclick="build()" style=("margin-left: 10px") + / button#build_it.btn.btn-icon.btn-lg.btn-success data-app-id="#{@release.app.id}" data-job="#{@release.ci_url}" data-loading-text=(" 正在构建...") data-toggle="modal" onclick="build()" / i.fas.fa-wrench - / | 构建新版 + / | 构建 div.ios-install-issues.d-none i.fas.fa-asterisk a href="javascript:void(0);" 无法安装或遇到 "未受信任的企业级开发者" 错误? - p#jekins_buld_alert.alert.alert-warning.d-none role="alert" style=("margin-top: 10px") \ No newline at end of file + p#jekins_buld_alert.alert.alert-warning.d-none.mt-1 role="alert" \ No newline at end of file diff --git a/app/views/releases/body/_wechat.html.slim b/app/views/releases/body/_wechat.html.slim index 8a0a5d07c..4b6dab7ca 100644 --- a/app/views/releases/body/_wechat.html.slim +++ b/app/views/releases/body/_wechat.html.slim @@ -3,11 +3,10 @@ .alert.alert-danger.alert-dismissible button.close data-dismiss="alert" aria-hidden="true" × - h4 - p 微信限制请按照提示安装: - ol style="padding-left: 20px" - li 点击右上角微信菜单 + h5 = t('releases.show.wechat_limited') + ol.pl-4.mb-0 + li = t('releases.show.wechat_touch_menu') - if ios? - li 在 Safari 浏览器中打开后安装 + li = t('releases.show.wechat_open_in_safari') - else - li 在任意浏览器中打开后安装 \ No newline at end of file + li = t('releases.show.wechat_open_in_webbrower') \ No newline at end of file diff --git a/app/views/releases/new.html.slim b/app/views/releases/new.html.slim index c9e3d2548..6203113b1 100644 --- a/app/views/releases/new.html.slim +++ b/app/views/releases/new.html.slim @@ -12,7 +12,7 @@ = @title .card-tools a href="#{channel_path(@channel)}" - i.far.fa-list-alt - | 返回应用 + i.icon.far.fa-list-alt + = t('links.goback_to_list') .card-body == render 'form' \ No newline at end of file diff --git a/app/views/releases/not_found.html.slim b/app/views/releases/not_found.html.slim index c469a8026..f662b5524 100644 --- a/app/views/releases/not_found.html.slim +++ b/app/views/releases/not_found.html.slim @@ -3,16 +3,16 @@ .row .col-md-12 - .card + .card.card-outline.card-danger .card-header h3.card-title - i.fas.fa-cloud-rain - = " #{@channel.app_name}" + i.icon.fas.fa-cloud-rain + = @title .card-body - p = "抱歉,你要找的 #{@release_id} 版本已经不存在,可能存在以下原因:" ul - li 可能当前版本被人工删除 - li 系统开启了清理老版本功能而当前版本属于历史老版本被清理掉 - li 您访问的应用版本真的不存在 + li = t('releases.messages.errors.deleted_manually') + li = t('releases.messages.errors.deleted_programly') + li = t('releases.messages.errors.not_found_really') .card-footbar - a.btn.btn-success.btn-block href="#{channel_releases_path(@channel)}" 点击访问最新版本 \ No newline at end of file + a.btn.btn-outline-danger.btn-block href="#{@link_href}" + = @link_title \ No newline at end of file diff --git a/app/views/releases/show.html.slim b/app/views/releases/show.html.slim index d3da88bbc..344766f14 100644 --- a/app/views/releases/show.html.slim +++ b/app/views/releases/show.html.slim @@ -20,7 +20,7 @@ .login-box .card .card-body.login-card-body - p.login-box-msg 访问密码 + p.login-box-msg = t('releases.show.enter_password') form.form action="#{auth_channel_release_path(@channel, @release)}" method="post" role="form" .input-group .input-group-prepend diff --git a/app/views/releases/sidebar/_qrcode.html.slim b/app/views/releases/sidebar/_qrcode.html.slim index 121cfd865..2dcb58d55 100644 --- a/app/views/releases/sidebar/_qrcode.html.slim +++ b/app/views/releases/sidebar/_qrcode.html.slim @@ -2,8 +2,8 @@ .card .card-header h3.card-title - i.fas.fa-qrcode - | 二维码安装 + i.icon.fas.fa-qrcode + | 二维码安装 .card-tools button.btn.btn-tool data-card-widget="collapse" i.fas.fa-minus diff --git a/app/views/releases/sidebar/_version.html.slim b/app/views/releases/sidebar/_version.html.slim index 212e713fb..d0bce2f88 100644 --- a/app/views/releases/sidebar/_version.html.slim +++ b/app/views/releases/sidebar/_version.html.slim @@ -5,8 +5,8 @@ ruby: .card .card-header h3.card-title - i.fas.fa-archive - | 历史主版本 + i.icon.fas.fa-archive + | 历史主版本 .card-tools button.btn.btn-tool data-card-widget="collapse" i.fas.fa-minus diff --git a/app/views/schemes/_form.html.slim b/app/views/schemes/_form.html.slim index 0899f56b0..73fce37c0 100644 --- a/app/views/schemes/_form.html.slim +++ b/app/views/schemes/_form.html.slim @@ -9,7 +9,7 @@ ruby: = @title .card-tools a href="#{app_path(@app)}" - i.far.fa-list-alt + i.icon.far.fa-list-alt = t('links.goback_to_list') .card-body = simple_form_for(@scheme, url: form_url) do |f| diff --git a/app/views/teardowns/_android.html.slim b/app/views/teardowns/_android.html.slim index 6b4da380a..f1d6828f4 100644 --- a/app/views/teardowns/_android.html.slim +++ b/app/views/teardowns/_android.html.slim @@ -5,7 +5,7 @@ ruby: app_name = '未知' end -.col-md-8 +.col-md-6 .card .card-header h3.card-title 应用信息 @@ -34,8 +34,8 @@ ruby: pre = number_to_human_size(@metadata.size) = render 'card', title: 'Activities', raw: @metadata.activities - = render 'card', title: 'Services', raw: @metadata.services -.col-md-4 +.col-md-6 = render 'card', title: 'Features', raw: @metadata.features - = render 'card', title: 'Permissions', raw: @metadata.permissions \ No newline at end of file + = render 'card', title: 'Permissions', raw: @metadata.permissions + = render 'card', title: 'Services', raw: @metadata.services \ No newline at end of file diff --git a/app/views/teardowns/_developer_certs_part.html.slim b/app/views/teardowns/_developer_certs_part.html.slim index 29fded446..62f5f3ad1 100644 --- a/app/views/teardowns/_developer_certs_part.html.slim +++ b/app/views/teardowns/_developer_certs_part.html.slim @@ -11,7 +11,7 @@ .card-body.card-comments - @metadata.developer_certs.each_with_index do |cert, i| .card-comment - .comment-text style="margin-left: 0" + .comment-text.ml-0 span.username | 证书 = i + 1 diff --git a/app/views/teardowns/_help.html.slim b/app/views/teardowns/_help.html.slim index 1a7002093..583b8b5bb 100644 --- a/app/views/teardowns/_help.html.slim +++ b/app/views/teardowns/_help.html.slim @@ -5,8 +5,8 @@ .card-body.table-responsive div | 通过右上角的  - i.far.fa-plus-square - | 新建解包上传 iOS、Android 移动应用通过一系列复杂的解析和运算读取出来应用中的实用信息用于辅助阅读、参考和定位问题。具体的内容如下: + i.icon.far.fa-plus-square + | 新建解包上传 iOS、Android 移动应用通过一系列复杂的解析和运算读取出来应用中的实用信息用于辅助阅读、参考和定位问题。具体的内容如下: div h5 Android ul diff --git a/app/views/teardowns/_ios.html.slim b/app/views/teardowns/_ios.html.slim index b173cf265..cd92228d6 100644 --- a/app/views/teardowns/_ios.html.slim +++ b/app/views/teardowns/_ios.html.slim @@ -1,5 +1,5 @@ -.col-md-8 +.col-md-6 .card .card-header h3.card-title 应用信息 @@ -31,11 +31,11 @@ dd pre = number_to_human_size(@metadata.size) - == render 'mobileprovision_part' - == render 'developer_certs_part' == render 'devices_part' - == render 'card', title: 'Entitlements', raw: @metadata.entitlements + == render 'developer_certs_part' -.col-md-4 +.col-md-6 + == render 'mobileprovision_part' == render 'card', title: '启用能力', raw: @metadata.capabilities - == render 'card', title: 'URL Schemes', raw: @metadata.url_schemes \ No newline at end of file + == render 'card', title: 'URL Schemes', raw: @metadata.url_schemes + == render 'card', title: 'Entitlements', raw: @metadata.entitlements \ No newline at end of file diff --git a/app/views/teardowns/_list.html.slim b/app/views/teardowns/_list.html.slim index d1feb8207..7d24c361c 100644 --- a/app/views/teardowns/_list.html.slim +++ b/app/views/teardowns/_list.html.slim @@ -2,8 +2,8 @@ .card .card-header h3.card-title - i.fas.fa-history - | 上传历史 + i.icon.fas.fa-history + | 上传历史 .card-body.p-0 - if @metadata.present? table.table.table-hover diff --git a/app/views/teardowns/index.html.slim b/app/views/teardowns/index.html.slim index 616451225..d84620e0e 100644 --- a/app/views/teardowns/index.html.slim +++ b/app/views/teardowns/index.html.slim @@ -6,7 +6,7 @@ - content_for :section_rightpanel do a.btn.btn-icon.bg-green href="#{new_teardown_path}" - i.far.fa-plus-square + i.icon.far.fa-plus-square | 新建解包 .row diff --git a/app/views/udid/show.html.slim b/app/views/udid/show.html.slim index 3137caf4c..984e197f3 100644 --- a/app/views/udid/show.html.slim +++ b/app/views/udid/show.html.slim @@ -9,7 +9,7 @@ .card.system_info .card-header h3.card-title - i.fas.fa-info-circle + i.icon.fas.fa-info-circle = @title .card-body .pl-2.pr-2 @@ -56,7 +56,7 @@ .card .card-header h3.card-title - i.fas.fa-cubes + i.icon.fas.fa-cubes = t('udid.show.registered_apps') .card-body - if @device && @device.channels.present? @@ -68,8 +68,7 @@ i.far.fa-circle .timeline-item span.time - i.fas.fa-clock - |   + i.icon.fas.fa-clock = time_ago_in_words(release.created_at) h3.timeline-header = link_to release.app_name, channel_release_path(channel, release) diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index a432ce11d..a7a6ee7af 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -184,6 +184,7 @@ zh-CN: channels: title: 应用渠道 + subtitle: '%{total_scheme} 类型共 %{total_channel} 渠道' show: scheme: :'schemes.title' channel: :'channels.title' @@ -198,17 +199,9 @@ zh-CN: wildmatch: (不限制上传包的包名) total_releases: 上传版本 channel_key: 渠道 KEY - manage_app: 应用管理 + edit_channel: 渠道管理 none: 未设置 not_found: 还没有收到任何上传记录,点击右上角的 上传应用 - - recently_versions: 最近版本 - release_version: 主版本号 - total_version: 版本数量 - empty_version_shortly: 暂无版本 - empty_version: 该版本没有任何上传记录! - more: 查看更多 - id: ID build_version: 开发版本 git_branch: 分支 @@ -216,9 +209,43 @@ zh-CN: release_type: 打包类型 uploaded_at: 上传时间 actions: 操作 + recently_versions: 最近版本 + release_version: 主版本号 + total_version: 版本数量 + empty_version_shortly: 暂无版本 + empty_version: 该版本没有任何上传记录! + more: 查看更多 + new: + title: '%{name}新建渠道' + edit: + title: '%{name}编辑渠道' messages: confirm: destroy: :'web_hooks.messages.confirm.destroy' + errors: + not_found_channel: 没有找到应用渠道 %{id},跳转至应用列表 + + releases: + show: + enter_password: 访问密码 + wechat_limited: 应用限制请按照提示安装 + wechat_touch_menu: 点击右上角菜单 + wechat_open_in_safari: 在 Safari 中打开并安装 + wechat_open_in_webbrower: 在任意浏览器中打开并安装 + + not_latest_release: 当前不是最新版本! + messages: + errors: + not_found_release_and_redirect_to_channel: 应用版本不存在或已经被移除,页面跳转至应用渠道详情 + not_found_release_and_redirect_to_latest_release: 版本不存在或已经被移除,跳转至最新版本 + not_found: 页面找不到 + not_found_app: 应用不存在或已经被移除 + not_found_release: 应用渠道没有找到版本 + redirect_to_app_list: 跳转到应用列表 + reidrect_channel_detal: 跳转应用渠道详情 + deleted_manually: 可能当前版本被人工删除 + deleted_programly: 系统开启了清理老版本功能而当前版本属于历史老版本被清理掉 + not_found_really: 您访问的应用版本真的不存在 debug_files: title: 调试文件 From ac60331f4bee4a236b374114d94cb27963790c65 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 14 Sep 2021 15:05:22 +0800 Subject: [PATCH 0681/2165] feat(i18n): releases 100% --- app/controllers/admin/users_controller.rb | 4 +- app/controllers/channels_controller.rb | 2 +- app/controllers/releases_controller.rb | 12 ++-- app/views/channels/_metadata.html.slim | 6 +- app/views/channels/_versions.html.slim | 6 +- app/views/channels/_web_hooks.slim | 4 +- .../dashboards/_recently_upload.html.slim | 6 +- app/views/errors/_body.slim | 8 +-- app/views/errors/_debug.html.slim | 9 ++- app/views/layouts/_main_sidebar.html.slim | 2 +- app/views/releases/body/_activity.html.slim | 10 +-- app/views/releases/body/_changelog.html.slim | 4 +- app/views/releases/body/_devices.html.slim | 8 +-- .../releases/body/_install_cert.html.slim | 14 +--- app/views/releases/body/_metadata.html.slim | 57 +++++++++-------- app/views/releases/show.html.slim | 43 +++++++------ app/views/releases/sidebar/_qrcode.html.slim | 4 +- app/views/releases/sidebar/_version.html.slim | 2 +- app/views/udid/show.html.slim | 4 +- config/locales/zealot/zh-CN.yml | 64 +++++++++++++++++-- 20 files changed, 163 insertions(+), 106 deletions(-) diff --git a/app/controllers/admin/users_controller.rb b/app/controllers/admin/users_controller.rb index 7ed507a6c..b88af05d9 100644 --- a/app/controllers/admin/users_controller.rb +++ b/app/controllers/admin/users_controller.rb @@ -30,7 +30,7 @@ def edit def update if helpers.default_admin_in_demo_mode?(@user) - return redirect_to admin_users_url, alert: t('errors.messages.invaild_in_demo_mode') + return redirect_to admin_users_url, alert: t('errors.invaild_in_demo_mode') end # 没有设置密码的情况下不更新该字段 @@ -43,7 +43,7 @@ def update def destroy if helpers.default_admin_in_demo_mode?(@user) - return redirect_to admin_users_url, alert: t('errors.messages.invaild_in_demo_mode') + return redirect_to admin_users_url, alert: t('errors.invaild_in_demo_mode') end @user.destroy diff --git a/app/controllers/channels_controller.rb b/app/controllers/channels_controller.rb index a9160ffd7..e19c6e7e3 100644 --- a/app/controllers/channels_controller.rb +++ b/app/controllers/channels_controller.rb @@ -37,7 +37,7 @@ def edit def update @channel.update(channel_params) - redirect_to app_path(@app) + redirect_to channel_path(@channel) end def destroy diff --git a/app/controllers/releases_controller.rb b/app/controllers/releases_controller.rb index be67138fc..878e8c6b7 100644 --- a/app/controllers/releases_controller.rb +++ b/app/controllers/releases_controller.rb @@ -16,13 +16,13 @@ def show end def new - @title = '上传应用' + @title = t('release.new.title') @release = @channel.releases.new authorize @release end def create - @title = '上传应用' + @title = t('release.new.title') @release = @channel.releases.upload_file(release_params) authorize @release @@ -32,20 +32,20 @@ def create @release.channel.perform_web_hook('upload_events') @release.perform_teardown_job(current_user.id) - redirect_to channel_release_url(@channel, @release), notice: '应用上传成功' + redirect_to channel_release_url(@channel, @release), notice: t('activerecord.success.create', key: "#{t('apps.title')}") end def destroy @release.destroy - redirect_to channel_versions_url(@channel), notice: '应用版本删除成功' + redirect_to channel_versions_url(@channel), notice: t('activerecord.success.destroy', key: "#{t('apps.title')}") end def auth if @channel.password == params[:password] - cookies["app_release_#{release.id}_auth"] = @channel.encode_password + cookies["app_release_#{@release.id}_auth"] = @channel.encode_password redirect_to channel_release_path(@channel, @release) else - flash[:danger] = '密码错误,请重新输入' + @error_message = t('releases.messages.errors.invalid_password') render :show end end diff --git a/app/views/channels/_metadata.html.slim b/app/views/channels/_metadata.html.slim index 5b7207274..b1a988365 100644 --- a/app/views/channels/_metadata.html.slim +++ b/app/views/channels/_metadata.html.slim @@ -1,7 +1,9 @@ .card.card-solid .card-header - h3.card-title = t('channels.show.metadata') - .card-body.p-0.pt-3 + h3.card-title + i.icon.fas.fa-sticky-note + = t('channels.show.metadata') + .card-body.p-0 p.d-flex.flex-column.border-bottom.pl-3.pb-3.pt-3 span.font-weight-bold = device_name(@channel.device_type) span.text-muted = t('channels.show.device_type') diff --git a/app/views/channels/_versions.html.slim b/app/views/channels/_versions.html.slim index 5451f089a..29aef67b8 100755 --- a/app/views/channels/_versions.html.slim +++ b/app/views/channels/_versions.html.slim @@ -1,9 +1,11 @@ .card.card-solid .card-header - h3.card-title = t('channels.show.recently_versions') + h3.card-title + i.icon.fas.fa-archive + = t('channels.show.majar_versions') .card-body.table-responsive.p-0 - if @versions.count > 0 - table.table.table-striped.table-borderd + table.table tr th = t('channels.show.release_version') th = t('channels.show.total_version') diff --git a/app/views/channels/_web_hooks.slim b/app/views/channels/_web_hooks.slim index a03aa1038..73597c218 100644 --- a/app/views/channels/_web_hooks.slim +++ b/app/views/channels/_web_hooks.slim @@ -1,6 +1,8 @@ .card .card-header - h3.card-title = t('web_hooks.title') + h3.card-title + i.icon.fas.fa-anchor + = t('web_hooks.title') .card-tools button.btn.btn-tool data-card-widget="collapse" i.fas.fa-minus diff --git a/app/views/dashboards/_recently_upload.html.slim b/app/views/dashboards/_recently_upload.html.slim index 38cf35076..6f774a6c5 100644 --- a/app/views/dashboards/_recently_upload.html.slim +++ b/app/views/dashboards/_recently_upload.html.slim @@ -21,14 +21,14 @@ section = release.created_at.strftime('%Y-%m-%d') div - i.fab class="#{timeline_app_icon(release.channel.device_type)}" style="margin-top: 4px" + i.fab.mt-1 class="#{timeline_app_icon(release.channel.device_type)}" .timeline-item span.time data-toggle="tooltip" data-placement="left" title="#{release.created_at}" i.icon.fas.fa-clock = time_ago_in_words(release.created_at) h3.timeline-header - = link_to " #{release.app_name}", channel_release_path(release.channel, release) - = " #{t('dashboard.timeline.upload_release', release_version: release.release_version, build_version: release.build_version)}" + = link_to(release.app_name, channel_release_path(release.channel, release), class: 'pr-1') + = t('dashboard.timeline.upload_release', release_version: release.release_version, build_version: release.build_version) - if release.changelog.present? .timeline-body.pb-1 = changelog_format release.changelog_list, class: 'mb-0' diff --git a/app/views/errors/_body.slim b/app/views/errors/_body.slim index 248372a4d..e4256ad65 100644 --- a/app/views/errors/_body.slim +++ b/app/views/errors/_body.slim @@ -1,6 +1,7 @@ ruby: content = t("errors.#{@code}.content") content = nil if content.include?('translation_missing') + goback_link = session[:return_to] || request.referer - if content.present? p = content @@ -8,9 +9,4 @@ ruby: - if @message.present? p = @message -p - | 请返回 - = link_to '上级页面', session[:return_to] || request.referer - | 或 - = link_to '控制台', root_path - | 看看 +p = raw t('errors.goback_or_redirect_to_homepage', goback_link: link_to(t('errors.goback_title'), goback_link), homepage_link: link_to(t('errors.homepage_title'), root_path)) diff --git a/app/views/errors/_debug.html.slim b/app/views/errors/_debug.html.slim index 8ff3c1557..dc873aa3c 100644 --- a/app/views/errors/_debug.html.slim +++ b/app/views/errors/_debug.html.slim @@ -6,6 +6,9 @@ i.icon.fas.fa-error = "#{@exception.class}: #{@exception.message}" .card-tools - small.badge 仅开发环境显示 - .card-body - = debug @exception.backtrace \ No newline at end of file + small.badge = t('errors.development_only') + .card-body.p-0 + table.table.table-hover + - @exception.backtrace.each do |link| + tr + td = link \ No newline at end of file diff --git a/app/views/layouts/_main_sidebar.html.slim b/app/views/layouts/_main_sidebar.html.slim index 0660b24b3..13a30b506 100644 --- a/app/views/layouts/_main_sidebar.html.slim +++ b/app/views/layouts/_main_sidebar.html.slim @@ -26,7 +26,7 @@ p = t('udid.title') - if current_user&.admin? - li.nav-header = t('admin_section.title') + li.nav-header = t('admin_section') li.nav-item a.nav-link href="#{admin_users_path}" class="#{active_class(admin_users_path)}" i.nav-icon.fas.fa-user diff --git a/app/views/releases/body/_activity.html.slim b/app/views/releases/body/_activity.html.slim index d7f222806..32c773ce6 100644 --- a/app/views/releases/body/_activity.html.slim +++ b/app/views/releases/body/_activity.html.slim @@ -6,7 +6,7 @@ ruby: .card-header h3.card-title i.icon.fas.fa-history - | 最近 10 次上传 + = t('releases.show.last_ten_uploads') .card-tools button.btn.btn-tool data-card-widget="collapse" i.fas.fa-minus @@ -20,11 +20,11 @@ ruby: i.icon.fas.fa-clock = time_ago_in_words(release.created_at) h3.timeline-header - = link_to release.app_name, channel_release_path(@release.channel, release) - = " 上传了新版本 #{release.release_version} (#{release.build_version})" + = link_to release.app_name, channel_release_path(@release.channel, release), class: 'pr-1' + = t('releases.show.upload_release', release_version: release.release_version, build_version: release.build_version) - if release.changelog.present? .timeline-body.pb-0 - = changelog_format release.changelog_list, class: 'mb-0' + = changelog_format(release.changelog_list, class: 'mb-0') - if release.release_type.present? || release.branch.present? || release.short_git_commit.present? .timeline-footer - if release.device @@ -45,4 +45,4 @@ ruby: div i.fas.fa-clock.bg-gray .card-footbar - a.btn.btn-default.btn-block href="#{channel_path(@release.channel)}" 更多上传 \ No newline at end of file + a.btn.btn-default.btn-block href="#{channel_path(@release.channel)}" = t('releases.show.more') \ No newline at end of file diff --git a/app/views/releases/body/_changelog.html.slim b/app/views/releases/body/_changelog.html.slim index 3256e998e..3ff2486d8 100644 --- a/app/views/releases/body/_changelog.html.slim +++ b/app/views/releases/body/_changelog.html.slim @@ -1,8 +1,8 @@ .card .card-header h3.card-title - i.icon.fas.fa-info-circle - | 更新日志 + i.icon.fas.fa-align-left + = t('releases.show.changelog') .card-tools button.btn.btn-tool data-card-widget="collapse" i.fas.fa-minus diff --git a/app/views/releases/body/_devices.html.slim b/app/views/releases/body/_devices.html.slim index 65876fcb4..90f7dc0f8 100644 --- a/app/views/releases/body/_devices.html.slim +++ b/app/views/releases/body/_devices.html.slim @@ -4,15 +4,13 @@ .card-header h3.card-title i.icon.fas.fa-mobile-alt - = " #{@release.devices.count} 台测试设备 (UDID)" + = t('releases.show.devices', count: @release.devices.count) .card-tools - button.btn.btn-tool data-toggle="dropdown" title="显示设备名称需要使用 zealot_sync_device fastlane 插件" + button.btn.btn-tool data-toggle="dropdown" title="#{t('releases.show.use_fastlane_plugin_sync_devices', link: 'zealot_sync_device')}" i.fas.fa-info-circle .dropdown-menu.dropdown-menu-right small.dropdown-item - | 使用  - a href="http://zealot.ews.im/#/modules?id=zealot_sync_devices" target="_blank" zealot_sync_device - | 同步设备名称 + = raw t('releases.show.use_fastlane_plugin_sync_devices', link: link_to('zealot_sync_device', 'http://zealot.ews.im/#/modules?id=zealot_sync_devices', target: '_blank')) button.btn.btn-tool data-card-widget="collapse" i.fas.fa-plus diff --git a/app/views/releases/body/_install_cert.html.slim b/app/views/releases/body/_install_cert.html.slim index 39d47c5f5..09766276e 100644 --- a/app/views/releases/body/_install_cert.html.slim +++ b/app/views/releases/body/_install_cert.html.slim @@ -2,15 +2,7 @@ .modal-dialog role="document" .modal-content .modal-header - h4.modal-title 安装中的错误及解决办法 - .modal-body - ol - li - | 在 iOS 9 以上版本,苹果对企业签名的应用做了运行限制。请安装后进 "设置" - "通用" - "描述文件", - | 选择该应用对应的企业证书,点击文字 "信任企业开发者"。 - li - | 受苹果系统生态限制,安装 AdHoc 版本前请确认已经 - strong 卸载 - | 应用商店安装的应用,否则无法进行安装!! + h4.modal-title = t('releases.messages.install_error.title') + .modal-body = t('releases.messages.install_error.body_html') .modal-footer - button.btn.btn-default data-dismiss="modal" type="button" 明白了 \ No newline at end of file + button.btn.btn-default data-dismiss="modal" = t('releases.messages.install_error.ok') diff --git a/app/views/releases/body/_metadata.html.slim b/app/views/releases/body/_metadata.html.slim index 44ac3bcd6..2dfb39fa5 100644 --- a/app/views/releases/body/_metadata.html.slim +++ b/app/views/releases/body/_metadata.html.slim @@ -5,10 +5,11 @@ i.icon.fas.fa-info = t('releases.show.not_latest_release') p - = " #{latest_release.release_version} (#{latest_release.build_version}) " - = "于 #{time_ago_in_words(latest_release.created_at)}发布了," - = link_to '点击查看最新版本', channel_release_path(latest_release.channel, latest_release) - | 。 + = raw t('releases.show.released_new_version', \ + release_version: latest_release.release_version, \ + build_version: latest_release.build_version, \ + time: time_ago_in_words(latest_release.created_at), \ + link: link_to(t('releases.show.view_latest_version'), channel_release_path(latest_release.channel, latest_release))) .app-detail.card .card-header @@ -21,51 +22,51 @@ .card-body ul.app-metadata - if @release.name.present? - li title="应用" + li title="#{t('releases.show.name')}" i.fas.fa-list-ul = link_to @release.app_name, channel_path(@release.channel) - li title="上传版本" + li title="#{t('releases.show.version')}" i.fab.fa-gg = @release.version - li title="平台" + li title="#{t('releases.show.device')}" = device_icon(@release.channel.device_type) = display_app_device(@release) - li title="主版本" + li title="#{t('releases.show.release_version')}" i.fas.fa-server = "#{@release.release_version} (#{@release.build_version})" - if @release.release_type.present? - li title="类型" + li title="#{t('releases.show.release_type')}" i.fas.fa-cubes = release_type_url(@release) - if @release.file.present? - li title="文件体积" + li title="#{t('releases.show.filesize')}" i.fas.fa-weight = " #{number_to_human_size(@release.file.size)}" - li title="上传时间" + li title="#{t('releases.show.uploaded_at')}" i.fas.fa-calendar = time_ago_in_words(@release.created_at) - if @release.branch.present? - li title="Git 分支" + li title="#{t('releases.show.git_branch')}" i.fas.fa-code-branch = git_branch_url(@release) - if @release.git_commit.present? - li title="Git Commit" + li title="#{t('releases.show.git_commit')}" i.fab.fa-git-alt = git_commit_url(@release.channel.git_url, @release.git_commit) - @release.custom_fields.each do |field| li title="#{field['name']}" i class="#{field['icon'] || 'fas fa-hashtag'}" = field['value'] - li title="上传来源" + li title="#{t('releases.show.source')}" i.fas.fa-compass - if @release.ci_url.blank? = @release.source - else = link_to @release.source, @release.ci_url - if @release.metadata.present? - li title="更多信息" + li title="#{t('releases.show.metadata')}" i.fas.fa-layer-group - = link_to '解包信息', teardown_path(@release.metadata) + = link_to t('releases.show.teardown_meatdata'), teardown_path(@release.metadata) .app-actions - unless wechat? @@ -77,21 +78,23 @@ button.btn.btn-icon.btn-lg.bg-success[ id="download_it" data-install-url="#{@release.install_url}" - data-loading-text=" 安装到桌面 ..."] + data-loading-text="#{t('releases.show.installing')}" + ] i.fas.fa-mobile-alt - | 设备安装 + = t('releases.show.install') a.btn.btn-icon.btn-lg.bg-success href="#{@release.download_url}" target="_blank" i.fas.fa-download - | 本地下载 + = t('releases.show.download') - else - button.btn.btn-secondary.btn-icon.disabled + button.btn.btn-icon.btn-lg.btn-secondary.disabled i.fas.fa-ghost - | 遗失文件不可安装或下载 - - if current_user&.manage? - a.btn.btn-danger.btn-icon href="#{channel_release_path(@release.channel, @release)}" data-confirm="确定删除?" data-method="delete" - i.fas.fa-trash-alt - | 删除版本 + = t('releases.show.missing_file') + + - if current_user&.manage? + a.btn.btn-icon.btn-lg.btn-danger href="#{channel_release_path(@release.channel, @release)}" data-confirm="#{t('releases.messages.confirm.destroy')}" data-method="delete" + i.fas.fa-trash-alt + = t('releases.show.destroy') / - if @release.ci_url.present? / button#build_it.btn.btn-icon.btn-lg.btn-success data-app-id="#{@release.app.id}" data-job="#{@release.ci_url}" data-loading-text=(" 正在构建...") data-toggle="modal" onclick="build()" @@ -100,6 +103,6 @@ div.ios-install-issues.d-none i.fas.fa-asterisk - a href="javascript:void(0);" 无法安装或遇到 "未受信任的企业级开发者" 错误? + a href="javascript:void(0);" = t('releases.show.cannot_install_or_untrusted_enterprise_developer') - p#jekins_buld_alert.alert.alert-warning.d-none.mt-1 role="alert" \ No newline at end of file + / p#jekins_buld_alert.alert.alert-warning.d-none.mt-1 role="alert" \ No newline at end of file diff --git a/app/views/releases/show.html.slim b/app/views/releases/show.html.slim index 344766f14..e616caeff 100644 --- a/app/views/releases/show.html.slim +++ b/app/views/releases/show.html.slim @@ -1,8 +1,8 @@ - content_for :title do = @title -- if logged_in_or_without_auth?(@release) - .row +.row + - if logged_in_or_without_auth?(@release) .col-md-8 == render 'releases/body/wechat' == render 'releases/body/metadata' @@ -12,21 +12,28 @@ .col-md-4 - if user_signed_in? - a.btn.btn-success.btn-block.mb-3 href="#{new_channel_release_path(@channel)}" = t('channels.show.upload_release') + a.btn.btn-success.btn-block.mb-3 href="#{new_channel_release_path(@channel)}" = t('release.new.title') == render 'releases/sidebar/qrcode' == render 'releases/sidebar/version' - a.btn.btn-default.btn-block href="#{channel_path(@channel)}" 应用管理 -- else - .login-box - .card - .card-body.login-card-body - p.login-box-msg = t('releases.show.enter_password') - form.form action="#{auth_channel_release_path(@channel, @release)}" method="post" role="form" - .input-group - .input-group-prepend - span.input-group-text style="border-left: 1px solid #ced4da" - i.fas.fa-key - input.form-control name="password" placeholder='******' type="password" - span.input-group-append - button.btn.btn-default.btn-flat - i.fas.fa-arrow-right \ No newline at end of file + a.btn.btn-default.btn-block href="#{channel_path(@channel)}" = t('releases.show.view_detail') + - else + .col-md-12 + .card + .card-header + h3.card-title = t('releases.show.enter_password') + .card-body + - if @error_message.present? + .alert.alert-danger.alert-dismissible + h4 + i.icon.fas.fa-exclamation-triangle + = @error_message + + form.form action="#{auth_channel_release_path(@channel, @release)}" method="post" role="form" + .input-group + .input-group-prepend + span.input-group-text style="border-left: 1px solid #ced4da" + i.fas.fa-key + input.form-control name="password" placeholder='******' type="password" + span.input-group-append + button.btn.btn-default.btn-flat + i.fas.fa-arrow-right \ No newline at end of file diff --git a/app/views/releases/sidebar/_qrcode.html.slim b/app/views/releases/sidebar/_qrcode.html.slim index 2dcb58d55..29c366b64 100644 --- a/app/views/releases/sidebar/_qrcode.html.slim +++ b/app/views/releases/sidebar/_qrcode.html.slim @@ -3,11 +3,11 @@ .card-header h3.card-title i.icon.fas.fa-qrcode - | 二维码安装 + = t('releases.show.qrcode') .card-tools button.btn.btn-tool data-card-widget="collapse" i.fas.fa-minus .card-body.text-center.p-0 .qr_code = image_tag channel_release_qrcode_path(@release.channel, @release, size: :large) - .card-footer.text-center 任何支持二维码识别的 App 均可 + .card-footer.text-center = t('releases.show.scan_qrcode_with_any_suppprted_app') diff --git a/app/views/releases/sidebar/_version.html.slim b/app/views/releases/sidebar/_version.html.slim index d0bce2f88..47ce81c65 100644 --- a/app/views/releases/sidebar/_version.html.slim +++ b/app/views/releases/sidebar/_version.html.slim @@ -6,7 +6,7 @@ ruby: .card-header h3.card-title i.icon.fas.fa-archive - | 历史主版本 + = t('releases.show.majar_versions') .card-tools button.btn.btn-tool data-card-widget="collapse" i.fas.fa-minus diff --git a/app/views/udid/show.html.slim b/app/views/udid/show.html.slim index 984e197f3..709673606 100644 --- a/app/views/udid/show.html.slim +++ b/app/views/udid/show.html.slim @@ -71,8 +71,8 @@ i.icon.fas.fa-clock = time_ago_in_words(release.created_at) h3.timeline-header - = link_to release.app_name, channel_release_path(channel, release) - = " 上传了新版本 #{release.release_version} (#{release.build_version})" + = link_to(release.app_name, channel_release_path(channel, release), class: 'pr-1') + = t('udid.show.upload_release', release_version: release.release_version, build_version: release.build_version) - if release.changelog.present? .timeline-body.pb-0 = changelog_format release.changelog_list, class: 'mb-0' diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index a7a6ee7af..1e840eda7 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -184,7 +184,7 @@ zh-CN: channels: title: 应用渠道 - subtitle: '%{total_scheme} 类型共 %{total_channel} 渠道' + subtitle: '%{total_scheme} 类型 %{total_channel} 渠道' show: scheme: :'schemes.title' channel: :'channels.title' @@ -209,7 +209,7 @@ zh-CN: release_type: 打包类型 uploaded_at: 上传时间 actions: 操作 - recently_versions: 最近版本 + majar_versions: 历史主版本 release_version: 主版本号 total_version: 版本数量 empty_version_shortly: 暂无版本 @@ -232,9 +232,57 @@ zh-CN: wechat_touch_menu: 点击右上角菜单 wechat_open_in_safari: 在 Safari 中打开并安装 wechat_open_in_webbrower: 在任意浏览器中打开并安装 - not_latest_release: 当前不是最新版本! + released_new_version: '%{release_version} (%{build_version}) 于%{time}发布了,%{link}。' + view_latest_version: 查看最新版本 + + name: 应用 + version: 上传版本 + device: 平台 + release_version: 构建版本 + release_type: 打包类型 + filesize: 文件体积 + uploaded_at: 上传时间 + git_branch: Git 分支 + git_commit: Git 提交 SHA + source: 上传来源 + metadata: 更多信息 + teardown_meatdata: 解包信息 + install: 设备安装 + download: 本地下载 + installing: 安装到桌面 ... + destroy: 删除版本 + missing_file: 遗失文件不可安装或下载 + more: 更多上传 + cannot_install_or_untrusted_enterprise_developer: 桌面没有发现下载的应用或遇到 "未受信任的企业级开发者" 错误? + + last_ten_uploads: 最近 10 次上传 + upload_release: :'dashboard.timeline.upload_release' + changelog: 更新日志 + devices: '%{count} 台测试设备 (UDID)' + use_fastlane_plugin_sync_devices: 使用 %{link} fastlane 插件同步设备名称 + + qrcode: 二维码 + scan_qrcode_with_any_suppprted_app: 任何支持二维码识别的 App 均可 + + majar_versions: :'channels.show.majar_versions' + view_detail: 渠道详情 + new: + title: :'channels.show.upload_release' messages: + install_error: + title: 安装中的错误及解决办法 + body_html: | +
      +
    1. + 在 iOS 9 以上版本,苹果对企业签名的应用做了运行限制。请安装后进 "设置" - "通用" - "描述文件", + 选择该应用对应的企业证书,点击文字 "信任企业开发者"。 +
    2. +
    3. 受苹果系统生态限制,安装 AdHoc 版本前请确认已经卸载应用商店安装的应用,否则无法进行安装!!
    4. +
    + ok: 明白了 + confirm: + destroy: :'web_hooks.messages.confirm.destroy' errors: not_found_release_and_redirect_to_channel: 应用版本不存在或已经被移除,页面跳转至应用渠道详情 not_found_release_and_redirect_to_latest_release: 版本不存在或已经被移除,跳转至最新版本 @@ -246,6 +294,7 @@ zh-CN: deleted_manually: 可能当前版本被人工删除 deleted_programly: 系统开启了清理老版本功能而当前版本属于历史老版本被清理掉 not_found_really: 您访问的应用版本真的不存在 + invalid_password: 密码错误,请重新输入 debug_files: title: 调试文件 @@ -324,6 +373,7 @@ zh-CN: product: 型号 serial: 序列化 version: 版本 + upload_release: :'dashboard.timeline.upload_release' not_found_html: | 没有发现可安装应用! 请复制上面设备 UDID 并发给 iOS 工程师来添加测试设备并重新打包。 @@ -413,9 +463,11 @@ zh-CN: title: 这个页面有问题 '503': title: 服务暂时不可用,无法请求该页面 - messages: - mini_magick_processing_error: "无法使用 MiniMagick 处理,请检查文件是否是标准图片格式,原始错误: %{e}" - invaild_in_demo_mode: 演示模式不能编辑默认管理员 + invaild_in_demo_mode: 演示模式不能编辑默认管理员 + development_only: 仅开发环境显示 + goback_or_redirect_to_homepage: 请返回%{goback_link}或%{homepage_link}看看 + goback_title: 上级页面 + homepage_title: 首页 activerecord: success: From c506bf44bedf44879b73d74da5c03308574b044e Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 14 Sep 2021 16:40:22 +0800 Subject: [PATCH 0682/2165] feat(i18n): teardowns 100% --- app/controllers/releases_controller.rb | 4 ++-- app/controllers/teardowns_controller.rb | 27 ++++++++++++------------- app/models/release.rb | 14 +++++++------ app/views/releases/show.html.slim | 2 +- config/locales/zealot/zh-CN.yml | 16 +++++++++++++++ 5 files changed, 40 insertions(+), 23 deletions(-) diff --git a/app/controllers/releases_controller.rb b/app/controllers/releases_controller.rb index 878e8c6b7..7205a5efe 100644 --- a/app/controllers/releases_controller.rb +++ b/app/controllers/releases_controller.rb @@ -16,13 +16,13 @@ def show end def new - @title = t('release.new.title') + @title = t('releases.new.title') @release = @channel.releases.new authorize @release end def create - @title = t('release.new.title') + @title = t('releases.new.title') @release = @channel.releases.upload_file(release_params) authorize @release diff --git a/app/controllers/teardowns_controller.rb b/app/controllers/teardowns_controller.rb index 603d21526..e93a8fff2 100644 --- a/app/controllers/teardowns_controller.rb +++ b/app/controllers/teardowns_controller.rb @@ -5,53 +5,52 @@ class TeardownsController < ApplicationController before_action :set_metadata, only: %i[show destroy] def index - @title = '应用解包' + @title = t('teardowns.title') @metadata = Metadatum.page(params.fetch(:page, 1)) .per(params.fetch(:per_page, 10)) .order(id: :desc) end def show - @title = "#{@metadata.name} #{@metadata.release_version} (#{@metadata.build_version}) 解包信息" + @title = t('teardowns.show.title', name: @metadata.name, + release_version: @metadata.release_version, + build_version: @metadata.build_version) end def new - @title = '应用解包' + @title = t('teardowns.title') end def create parse_app - rescue ActiveRecord::RecordNotFound => e - flash[:error] = "无法找到解包文件: #{e}" + rescue AppInfo::NotFoundError, ActiveRecord::RecordNotFound => e + flash[:error] = t('teardowns.messages.errors.not_found_file', message: e.message) render :new rescue ActionController::RoutingError => e flash[:error] = e.message render :new rescue AppInfo::UnkownFileTypeError - flash[:error] = '无法识别上传的应用类型' - render :new - rescue AppInfo::NotFoundError => e - flash[:error] = "无法找到解包文件: #{e}" + flash[:error] = t('teardowns.messages.errors.failed_detect_file_type') render :new rescue AppInfo::UnkownFileTypeError - flash[:error] = '上传应用的文件类型不支持' + flash[:error] = t('teardowns.messages.errors.not_support_file_type') render :new rescue NoMethodError => e logger.error "Teardown error: #{e}" Sentry.capture_exception e - flash[:error] = '上传应用解析异常,请确保应用是支持的文件类型且没有安全加固处理' + flash[:error] = t('teardowns.messages.errors.failed_get_metadata') render :new rescue => e logger.error "Teardown error: #{e}" Sentry.capture_exception e - flash[:error] = "上传应用解析发现未知异常,原始错误 [#{e.class}]:#{e.message}" + flash[:error] = t('teardowns.messages.errors.unknown_parse', class: e.class, message: e.message) render :new end def destroy @metadata.destroy - redirect_to teardowns_path, notice: "[#{@metadata.id}] #{@metadata.name} 应用解包记录删除成功!" + redirect_to teardowns_path, notice: t('activerecord.success.destroy', key: "#{t('teardowns.title')}") end private @@ -63,7 +62,7 @@ def set_metadata def parse_app unless file = params[:file] - raise ActionController::RoutingError, '请选择需要解包的 ipa、apk 安装包或 .mobileprovision 文件' + raise ActionController::RoutingError, t('teardowns.messages.errors.choose_supported_file_type') end metadata = TeardownService.call(file) diff --git a/app/models/release.rb b/app/models/release.rb index 82dae80f6..47a56cb0c 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -1,6 +1,8 @@ # frozen_string_literal: true class Release < ApplicationRecord + extend ActionView::Helpers::TranslationHelper + include ActionView::Helpers::TranslationHelper include Rails.application.routes.url_helpers mount_uploader :file, AppFileUploader @@ -35,7 +37,6 @@ def self.version_by_channel(channel_slug, release_id) # 上传 app def self.upload_file(params, parser = nil) - logger.debug "upload file params: #{params}" file = params[:file].path return if file.blank? @@ -93,15 +94,15 @@ def self.fetch_icon(parser) def self.rescuing_app_parse_errors yield rescue AppInfo::UnkownFileTypeError - raise AppInfo::UnkownFileTypeError, '上传应用的文件类型不支持' + raise AppInfo::UnkownFileTypeError, t('teardowns.messages.errors.not_support_file_type') rescue NoMethodError => e logger.error e.full_message Sentry.capture_exception e - raise AppInfo::Error, '上传应用解析异常,请确保应用是支持的文件类型且没有安全加固处理' + raise AppInfo::Error, t('teardowns.messages.errors.failed_get_metadata') rescue => e logger.error e.full_message Sentry.capture_exception e - raise AppInfo::Error, "上传应用解析发现未知异常,原始错误 [#{e.class}]:#{e.message}" + raise AppInfo::Error, t('teardowns.messages.errors.unknown_parse', class: e.class, message: e.message) end private_methods :rescuing_app_parse_errors @@ -168,7 +169,7 @@ def empty_changelog(use_default_changelog = true) return [] unless use_default_changelog @empty_changelog ||= [{ - 'message' => "没有找到更新日志,可能的原因:\n\n- 开发者很懒没有留下更新日志😂\n- 有不可抗拒的因素造成日志丢失👽", + 'message' => t('releases.messages.default_changelog') }] end @@ -182,7 +183,8 @@ def bundle_id_matched return if file.blank? || channel&.bundle_id.blank? return if channel.bundle_id_matched?(self.bundle_id) - message = "#{channel.app_name} 的 bundle id 或 packet name `#{self.bundle_id}` 无法和 `#{channel.bundle_id}` 匹配" + message = t('releases.messages.errors.bundle_id_not_matched', got: self.bundle_id, + expect: channel.bundle_id) errors.add(:file, message) end diff --git a/app/views/releases/show.html.slim b/app/views/releases/show.html.slim index e616caeff..5551376a4 100644 --- a/app/views/releases/show.html.slim +++ b/app/views/releases/show.html.slim @@ -12,7 +12,7 @@ .col-md-4 - if user_signed_in? - a.btn.btn-success.btn-block.mb-3 href="#{new_channel_release_path(@channel)}" = t('release.new.title') + a.btn.btn-success.btn-block.mb-3 href="#{new_channel_release_path(@channel)}" = t('releases.new.title') == render 'releases/sidebar/qrcode' == render 'releases/sidebar/version' a.btn.btn-default.btn-block href="#{channel_path(@channel)}" = t('releases.show.view_detail') diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index 1e840eda7..04d51afa3 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -270,6 +270,11 @@ zh-CN: new: title: :'channels.show.upload_release' messages: + default_changelog: | + 没有找到更新日志,可能的原因: + + - 开发者很懒没有留下更新日志😂 + - 有不可抗拒的因素造成日志丢失👽 install_error: title: 安装中的错误及解决办法 body_html: | @@ -295,6 +300,7 @@ zh-CN: deleted_programly: 系统开启了清理老版本功能而当前版本属于历史老版本被清理掉 not_found_really: 您访问的应用版本真的不存在 invalid_password: 密码错误,请重新输入 + bundle_id_not_matched: '应用的包名 %{got} 和约束的包名 %{expect} 无法匹配' debug_files: title: 调试文件 @@ -343,6 +349,16 @@ zh-CN: teardowns: title: 应用解包 + show: + title: '%{name} %{release_version} (%{build_version}) 解包信息' + messages: + errors: + not_found_file: '无法找到解包文件: %{message}' + failed_detect_file_type: 无法识别应用类型 + not_support_file_type: 应用的文件类型不支持 + failed_get_metadata: 应用解析异常,请确保是支持的文件类型且没有安全加固处理 + unknown_parse: '上传应用解析发现未知异常,原始错误 [%{class}]: %{message}' + choose_supported_file_type: 请选择需要解包的 ipa、apk 安装包或 .mobileprovision 文件 udid: title: 设备 UDID From 627134623867ae89d8ceb177805388f42b68b576 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 14 Sep 2021 17:09:58 +0800 Subject: [PATCH 0683/2165] feat(i18n): admin/web_hooks --- app/views/admin/web_hooks/index.html.slim | 13 +++++++------ config/locales/zealot/zh-CN.yml | 3 ++- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/app/views/admin/web_hooks/index.html.slim b/app/views/admin/web_hooks/index.html.slim index 0ecea722e..24987bf3e 100644 --- a/app/views/admin/web_hooks/index.html.slim +++ b/app/views/admin/web_hooks/index.html.slim @@ -6,8 +6,8 @@ .row .col-md-12 - .card - - if @web_hooks.size > 0 + - if @web_hooks.size > 0 + .card .card-body table.table.p-0 thead @@ -27,7 +27,8 @@ = raw web_hook.channels.map {|c| c.app_name }.join("
    ") td = link_to t('admin.web_hooks.destroy'), admin_web_hook_path(web_hook), method: :delete, data: { confirm: t('admin.web_hooks.destroy_confirm') } - - else - .card-body.p-0 - .bg-warning.p-2.text-center - = t('admin.web_hooks.empty_content') \ No newline at end of file + - else + .card.card-outline.card-warning + .card-header.card-border + h3.card-title = t('admin.web_hooks.not_found') + .card-body = t('admin.web_hooks.create_web_hook_from_channel_inside') diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index 04d51afa3..fe17971a8 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -104,7 +104,8 @@ zh-CN: url: URL channels: 渠道列表 action: 操作 - empty_content: 没有发现网络钩子 + not_found: 没有发现网络钩子 + create_web_hook_from_channel_inside: 这里仅作已添加网络钩子的展示,添加需要从应用渠道详情中进行操作 destroy: 删除 destroy_confirm: 你确定? messages: From 1988b2728cc2afceda339b8cce848ab625c560fd Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 16 Sep 2021 11:53:45 +0800 Subject: [PATCH 0684/2165] =?UTF-8?q?style:=20=E8=B0=83=E6=95=B4=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E7=9A=84=E5=85=A8=E9=83=A8=E7=95=8C=E9=9D=A2=E6=A0=B7?= =?UTF-8?q?=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/javascript/stylesheets/devise.scss | 18 ++++- app/views/devise/confirmations/new.html.slim | 36 +++++---- app/views/devise/passwords/new.html.slim | 32 ++++---- app/views/devise/registrations/edit.html.slim | 26 +++---- app/views/devise/registrations/new.html.slim | 74 ++++++++++--------- app/views/devise/sessions/new.html.slim | 8 +- .../devise/shared/_error_messages.html.slim | 4 +- app/views/devise/shared/_form_ldap.html.slim | 41 +++++----- .../devise/shared/_form_normal.html.slim | 28 +++---- app/views/devise/shared/_intro.html.slim | 5 +- app/views/devise/shared/_links.html.slim | 1 - app/views/devise/unlocks/new.html.slim | 36 +++++---- app/views/layouts/_content.html.slim | 3 +- config/locales/devise/devise.views.zh-CN.yml | 22 +++--- .../locales/simple_form/simple_form.zh-CN.yml | 2 +- config/locales/zealot/zh-CN.yml | 15 ++++ 16 files changed, 196 insertions(+), 155 deletions(-) diff --git a/app/javascript/stylesheets/devise.scss b/app/javascript/stylesheets/devise.scss index b932ab0db..4789bf0d0 100644 --- a/app/javascript/stylesheets/devise.scss +++ b/app/javascript/stylesheets/devise.scss @@ -1,7 +1,3 @@ -.login-box { - width: 440px; -} - .btn-auth-google { background-color: #ea4335; color: #fff; @@ -30,4 +26,18 @@ .btn-auth-gitlab:hover { background-color: #e45432; color: #fff; +} + +@media (min-width: 768px) { + .auth-providers { + border-left: 1px solid #e2dee6; + } +} + +@media (max-width: 767px) { + .auth-providers { + border-top: 1px solid #e2dee6; + margin-top: 20px; + padding-top: 10px; + } } \ No newline at end of file diff --git a/app/views/devise/confirmations/new.html.slim b/app/views/devise/confirmations/new.html.slim index 070a06246..d37686204 100644 --- a/app/views/devise/confirmations/new.html.slim +++ b/app/views/devise/confirmations/new.html.slim @@ -1,23 +1,27 @@ - content_for :title do - | 邮箱确认 + = t('.title') -.row.mb-3.mt-3 - .col-sm-7.order-12.order-sm-1 +.row.m-3 + .col-md-6.order-12.order-sm-1 == render 'devise/shared/intro' - .login-box.col-sm-5.order-1.order-sm-12 + .col-md-6.order-1.order-sm-12.mb-4 .card - .card-body.login-card-body - p.login-box-msg 邮箱确认 - = simple_form_for(resource, as: resource_name, url: confirmation_path(resource_name), html: { method: :post }) do |f| - = render "devise/shared/error_messages", resource: resource + .card-header + h3.card-title = t('.title') + .card-body + .row + .auth-form.col-md-6 + = simple_form_for(resource, as: resource_name, url: confirmation_path(resource_name), html: { method: :post }) do |f| + == render "devise/shared/error_messages", resource: resource - = f.input :email, - required: true, - autofocus: true, - hint: '', - value: (resource.pending_reconfirmation? ? resource.unconfirmed_email : resource.email), - input_html: { autocomplete: 'email', class: 'form-control' } + = f.input :email, + required: true, + autofocus: true, + hint: '', + value: (resource.pending_reconfirmation? ? resource.unconfirmed_email : resource.email), + input_html: { autocomplete: 'email', class: 'form-control' } - = f.button :submit, '重新发送确认邮件', class: 'btn-block' + = f.button :submit, t('.resend_confirmation_instructions'), class: 'btn-block' - == render 'devise/shared/links' + .auth-providers.col-md-6 + == render 'devise/shared/links' diff --git a/app/views/devise/passwords/new.html.slim b/app/views/devise/passwords/new.html.slim index 1c3755c7f..6434a7037 100644 --- a/app/views/devise/passwords/new.html.slim +++ b/app/views/devise/passwords/new.html.slim @@ -1,22 +1,26 @@ - content_for :title do - | 找回密码 + = t('.forgot_your_password') -.row.mb-3.mt-3 - .col-sm-7.order-12.order-sm-1 +.row.m-3 + .col-md-6.order-12.order-sm-1 == render 'devise/shared/intro' - .login-box.col-sm-5.order-1.order-sm-12 + .col-md-6.order-1.order-sm-12.mb-4 .card - .card-body.login-card-body - p.login-box-msg 找回密码 - = simple_form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :post }) do |f| - = f.error_notification + .card-header + h3.card-title = t('.forgot_your_password') + .card-body + .row + .auth-form.col-md-6 + = simple_form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :post }) do |f| + = f.error_notification - = f.input :email, hint: '', - required: true, - autofocus: true, - input_html: { autocomplete: "email" } + = f.input :email, hint: '', + required: true, + autofocus: true, + input_html: { autocomplete: "email" } - = f.button :submit, '发送重置邮件', class: 'btn-block' + = f.button :submit, t('.send_me_reset_password_instructions'), class: 'btn-block' - == render 'devise/shared/links' \ No newline at end of file + .auth-providers.col-md-6 + == render 'devise/shared/links' \ No newline at end of file diff --git a/app/views/devise/registrations/edit.html.slim b/app/views/devise/registrations/edit.html.slim index 0a6e53a88..108600253 100644 --- a/app/views/devise/registrations/edit.html.slim +++ b/app/views/devise/registrations/edit.html.slim @@ -1,11 +1,11 @@ - content_for :title do - = "编辑 #{resource_name.to_s.humanize}" + = t('.title', resource: resource.model_name.human) .row .col-md-12 .card .card-header.card-border - h3.card-title 个人信息 + h3.card-title = t('.title', resource: resource.model_name.human) .card-body = simple_form_for(resource, as: resource_name, url: registration_path(resource_name), html: { method: :put }) do |f| = f.error_notification @@ -15,26 +15,24 @@ - if devise_mapping.confirmable? && resource.pending_reconfirmation? p - | 等待确认邮件: - = resource.unconfirmed_email + = t('.currently_waiting_confirmation_for_email', email: resource.unconfirmed_email) - = f.input :current_password, label: '当前密码', input_html: { autocomplete: "password" } - = f.input :password, label: '新密码', input_html: { autocomplete: "new-password" } - = f.input :password_confirmation, label: '重复新密码', input_html: { autocomplete: "new-password" } - = f.submit '更新', class: 'btn btn-lg btn-primary' + = f.input :current_password, input_html: { autocomplete: "password" } + = f.input :password, input_html: { autocomplete: "new-password" } + = f.input :password_confirmation, input_html: { autocomplete: "new-password" } + = f.submit class: 'btn btn-lg btn-primary' .card.card-info .card-header.card-border - h3.card-title API + h3.card-title = t('.api') .card-body .form-group - label 密钥 + label = t('.token') input type="text" class="form-control" disabled="true" value="#{@user.token}" .card.card-danger .card-header.card-border - h3.card-title 注销您的账户 + h3.card-title = t('.cancel_my_account') .card-body - p - | 注销账户后,您的数据将会彻底移除! - = button_to "确认注销", user_registration_path, data: { confirm: "最后确认你要注销自己的账户?" }, method: :delete, class: 'btn btn-lg btn-danger' \ No newline at end of file + p = t('.unhappy') + = button_to t('.cancel_my_account'), user_registration_path, data: { confirm: t('.are_you_sure') }, method: :delete, class: 'btn btn-lg btn-danger' \ No newline at end of file diff --git a/app/views/devise/registrations/new.html.slim b/app/views/devise/registrations/new.html.slim index 5327b4c9b..4381ca4e3 100644 --- a/app/views/devise/registrations/new.html.slim +++ b/app/views/devise/registrations/new.html.slim @@ -1,41 +1,43 @@ - content_for :title do - | 用户注册 + = t('.resend_confirmation_instructions') -- if Setting.registrations_mode - .row.mb-3.mt-3 - .col-sm-7.order-12.order-sm-1 - == render 'devise/shared/intro' - .login-box.col-sm-5.order-1.order-sm-12 +.row.m-3 + .col-md-6.order-12.order-sm-1 + == render 'devise/shared/intro' + .col-md-6.order-1.order-sm-12.mb-4 + - if Setting.registrations_mode .card - .card-body.login-card-body - p.login-box-msg 用户注册 - = simple_form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| - = render "devise/shared/error_messages", resource: resource + .card-header + h3.card-title = t('.sign_up') + .card-body + .row + .auth-form.col-md-6 + = simple_form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| + == render "devise/shared/error_messages", resource: resource - = f.input :username, - required: true, - autofocus: true, - hint: '', - input_html: { autocomplete: "username", class: 'form-control' } - = f.input :email, - required: true, - autofocus: true, - hint: '', - input_html: { autocomplete: "email", class: 'form-control' } - = f.input :password, - required: true, - hint: ("最小 #{@minimum_password_length} 个字符" if @minimum_password_length), - input_html: { autocomplete: "new-password" } - = f.input :password_confirmation, - required: true, - input_html: { autocomplete: "new-password" } + = f.input :username, + required: true, + autofocus: true, + hint: '', + input_html: { autocomplete: "username", class: 'form-control' } + = f.input :email, + required: true, + autofocus: true, + hint: '', + input_html: { autocomplete: "email", class: 'form-control' } + = f.input :password, + required: true, + hint: t('devise.shared.minimum_password_length', count: @minimum_password_length), + input_html: { autocomplete: "new-password" } + = f.input :password_confirmation, + required: true, + input_html: { autocomplete: "new-password" } - = f.button :submit, '注册', class: 'btn-block' - - == render 'devise/shared/links' -- else - .alert.alert-warning - h5 - i.icon.fas.fa-exclamation-triangle - | 错误! - | 服务没有开放注册功能!请联系管理员开通账户。 + = f.button :submit, t('.register'), class: 'btn-block' + .auth-providers.col-md-6 + == render 'devise/shared/links' + - else + .card.card-outline.card-warning + .card-header.card-border + h3.card-title = t('.error') + .card-body = t('.register_closed') diff --git a/app/views/devise/sessions/new.html.slim b/app/views/devise/sessions/new.html.slim index bb1a0912d..7254572ed 100644 --- a/app/views/devise/sessions/new.html.slim +++ b/app/views/devise/sessions/new.html.slim @@ -1,10 +1,10 @@ - content_for :title do - | 用户登录 + = t('.sign_in') -.row.mb-3.mt-3 - .col-sm-6.order-12.order-sm-1.ml-4 +.row.mt-3 + .col-md-6.order-12.order-sm-1 == render 'devise/shared/intro' - .login-box.col-sm-5.order-1.order-sm-12 + .col-md-6.order-1.order-sm-12.mb-4 .card.card-primary.card-outline.card-outline-tabs .card-header.p-0.border-bottom-0 ul.nav.nav-tabs role="tablist" diff --git a/app/views/devise/shared/_error_messages.html.slim b/app/views/devise/shared/_error_messages.html.slim index d3a3fdc04..8868e8eb8 100644 --- a/app/views/devise/shared/_error_messages.html.slim +++ b/app/views/devise/shared/_error_messages.html.slim @@ -1,9 +1,9 @@ - if resource.errors.any? .alert.alert-danger.alert-dismissible button.close data-dismiss="alert" aria-hidden="true" × - h4 + h5 i.icon.fas.fa-ban = t('errors.messages.not_saved', count: resource.errors.count, resource: resource.class.model_name.human.downcase) - ul.pl-3 + ul.pl-3.mb-0 - resource.errors.full_messages.each do |message| li = message diff --git a/app/views/devise/shared/_form_ldap.html.slim b/app/views/devise/shared/_form_ldap.html.slim index 2a08c75f7..d7126908e 100644 --- a/app/views/devise/shared/_form_ldap.html.slim +++ b/app/views/devise/shared/_form_ldap.html.slim @@ -1,25 +1,26 @@ - if ldap_auth_enable? #login-tabs-ldap.tab-pane.fade aria-labelledby="login-tabs-ldap-tab" role="tabpanel" - = form_tag(user_ldap_omniauth_callback_path) do - == render 'layouts/messages' + .row + .auth-form.col-md-6 + = form_tag(user_ldap_omniauth_callback_path) do + .form-group + = label_tag :username, t('devise.ldap.username') + = text_field_tag :username, nil, class: "form-control top", autofocus: "autofocus", data: { qa_selector: 'username_field' }, required: true + .form-group + = label_tag :password, t('devise.ldap.password') + = password_field_tag :password, nil, class: "form-control bottom", data: { qa_selector: 'password_field' }, required: true - .form-group - = label_tag :username, t('devise.ldap.username') - = text_field_tag :username, nil, class: "form-control top", autofocus: "autofocus", data: { qa_selector: 'username_field' }, required: true - .form-group - = label_tag :password, t('devise.ldap.password') - = password_field_tag :password, nil, class: "form-control bottom", data: { qa_selector: 'password_field' }, required: true + - if devise_mapping.rememberable? + .row + .col-12 + fieldset.form-group.boolean.optional.user_remember_me.icheck-primary style=("margin-top: 6px!important") + .form-check + = check_box_tag :remember_me, '1', false, id: 'user_remember_me', class: 'form-check-input boolean optional' + = label_tag :remember_me, t('activerecord.attributes.user.remember_me'), class: 'form-check-label boolean optional', style: 'font-weight: 700' + .row + .col-12 + = submit_tag t('devise.sessions.new.sign_in'), class: "btn btn-primary btn-block", data: { qa_selector: 'sign_in_button' } - - if devise_mapping.rememberable? - .row - .col-12 - fieldset.form-group.boolean.optional.user_remember_me.icheck-primary style=("margin-top: 6px!important") - .form-check - = check_box_tag :remember_me, '1', false, id: 'user_remember_me', class: 'form-check-input boolean optional' - = label_tag :remember_me, t('activerecord.attributes.user.remember_me'), class: 'form-check-label boolean optional', style: 'font-weight: 700' - .row - .col-12 - = submit_tag t('devise.sessions.new.sign_in'), class: "btn btn-primary btn-block", data: { qa_selector: 'sign_in_button' } - - == render 'devise/shared/links' + .auth-providers.col-md-6 + == render 'devise/shared/links' diff --git a/app/views/devise/shared/_form_normal.html.slim b/app/views/devise/shared/_form_normal.html.slim index f78a4992f..a96135d9a 100644 --- a/app/views/devise/shared/_form_normal.html.slim +++ b/app/views/devise/shared/_form_normal.html.slim @@ -1,16 +1,16 @@ #login-tabs-standard.tab-pane.fade.show.active aria-labelledby="login-tabs-standard-tab" role="tabpanel" - = simple_form_for(resource, as: resource_name, url: session_path(resource_name)) do |f| - == render 'layouts/messages' + .row + .auth-form.col-md-6 + = simple_form_for(resource, as: resource_name, url: session_path(resource_name)) do |f| + = f.input :email, required: true, autofocus: true, hint: '', input_html: { autocomplete: "email", class: 'form-control' } + = f.input :password, required: true, input_html: { autocomplete: "current-password" } - = f.input :email, required: true, autofocus: true, hint: '', input_html: { autocomplete: "email", class: 'form-control' } - = f.input :password, required: true, input_html: { autocomplete: "current-password" } - - .row - .col-12 - - if devise_mapping.rememberable? - = f.input :remember_me, as: :boolean, wrapper_html: {class: 'icheck-primary', style: 'margin-top: 6px!important'}, label_html: { style: 'font-weight: 700'} - .row - .col-12 - = f.button :submit, t('devise.sessions.new.sign_in'), class: 'btn-block' - - == render 'devise/shared/links' \ No newline at end of file + .row + .col-12 + - if devise_mapping.rememberable? + = f.input :remember_me, as: :boolean, wrapper_html: {class: 'icheck-primary', style: 'margin-top: 6px!important'}, label_html: { style: 'font-weight: 700'} + .row + .col-12 + = f.button :submit, t('devise.sessions.new.sign_in'), class: 'btn-block' + .auth-providers.col-md-6 + == render 'devise/shared/links' \ No newline at end of file diff --git a/app/views/devise/shared/_intro.html.slim b/app/views/devise/shared/_intro.html.slim index 788c0ff59..86a9c2c86 100644 --- a/app/views/devise/shared/_intro.html.slim +++ b/app/views/devise/shared/_intro.html.slim @@ -1,3 +1,2 @@ -h4.mb-3.font-weight-normal 移动应用上传竟然如此简单、移动 App 应用分发系统 -h5.mb-3 The Air Server for deployment of Android and iOS apps -p 解放开发打包的烦恼,轻松放权给测试、产品、运营等使用 App 的人员,提供丰富组件库,打包流程一键上传,iOS 和 Android 轻松接入,深度与 Jenkins 和 Gitlab 集成。 \ No newline at end of file +h4.mb-3.font-weight-normal = t('intro.title') +p = t('intro.description') \ No newline at end of file diff --git a/app/views/devise/shared/_links.html.slim b/app/views/devise/shared/_links.html.slim index 7c3aadb9d..ca74578a9 100644 --- a/app/views/devise/shared/_links.html.slim +++ b/app/views/devise/shared/_links.html.slim @@ -1,6 +1,5 @@ - if devise_mapping.omniauthable? .social-auth-links.text-center.mb-3 - p = t('devise.shared.hint') - resource_class.oauth_providers.each do |provider| - unless provider == :ldap ruby: diff --git a/app/views/devise/unlocks/new.html.slim b/app/views/devise/unlocks/new.html.slim index cc39be4b5..4bb0e3a12 100644 --- a/app/views/devise/unlocks/new.html.slim +++ b/app/views/devise/unlocks/new.html.slim @@ -1,17 +1,25 @@ - content_for :title do - | 解锁账户 + = t('.resend_unlock_instructions') -.login-box - .card - .card-body.login-card-body - p.login-box-msg 解锁账户 - = simple_form_for(resource, as: resource_name, url: unlock_path(resource_name), html: { method: :post }) do |f| - = render "devise/shared/error_messages", resource: resource +/ zealot not use lockable +.row.m-3 + .col-md-6.order-12.order-sm-1 + == render 'devise/shared/intro' + .col-md-6.order-1.order-sm-12.mb-4 + - if Setting.registrations_mode + .card + .card-header + h3.card-title = t('.resend_unlock_instructions') + .card-body + .row + .auth-form.col-md-6 + = simple_form_for(resource, as: resource_name, url: unlock_path(resource_name), html: { method: :post }) do |f| + == render "devise/shared/error_messages", resource: resource - = f.input :email, hint: '', - required: true, - autofocus: true, - input_html: { autocomplete: "email" } - = f.button :submit, '发送解锁邮件', class: 'btn-block' - - == render 'devise/shared/links' \ No newline at end of file + = f.input :email, hint: '', + required: true, + autofocus: true, + input_html: { autocomplete: "email" } + = f.button :submit, t('.resend_unlock_instructions'), class: 'btn-block' + .auth-providers.col-md-6 + == render 'devise/shared/links' \ No newline at end of file diff --git a/app/views/layouts/_content.html.slim b/app/views/layouts/_content.html.slim index 50bbdc0ec..c34ca368e 100644 --- a/app/views/layouts/_content.html.slim +++ b/app/views/layouts/_content.html.slim @@ -2,7 +2,6 @@ // Main content section.content - - if user_signed_in? - == render 'layouts/messages' + == render 'layouts/messages' == yield \ No newline at end of file diff --git a/config/locales/devise/devise.views.zh-CN.yml b/config/locales/devise/devise.views.zh-CN.yml index 8f41db259..90d588cf3 100644 --- a/config/locales/devise/devise.views.zh-CN.yml +++ b/config/locales/devise/devise.views.zh-CN.yml @@ -9,6 +9,7 @@ zh-CN: current_password: 当前密码 current_sign_in_at: 最近登录于 current_sign_in_ip: 最近登录 IP + username: 昵称 email: 电子邮箱 encrypted_password: 密码被加密 failed_attempts: 失败尝试 @@ -53,7 +54,8 @@ zh-CN: email_changed: greeting: 您好 %{recipient}! message: 收到此邮件是因为您的电子邮件地址已被更改为 %{email}。 - subject: 电邮已被修改 + message_unconfirmed: 收到此邮件是因为您的电子邮件地址正被更改为 %{email}。 + subject: 电子邮件已被修改 password_change: greeting: 您好 %{recipient}! message: 收到此邮件是因为您的帐户密码已被修改。 @@ -81,8 +83,8 @@ zh-CN: confirm_new_password: 确认新密码 new_password: 新密码 new: - forgot_your_password: 忘记密码? - send_me_reset_password_instructions: 请给我发送重设密码的邮件 + forgot_your_password: 找回密码 + send_me_reset_password_instructions: 发送重设密码邮件 no_token: 无重置邮件不可访问密码重置页面。如果您是从重置邮件来到了这个页面,请确保您输入的 URL 链接的完整。 send_instructions: 您的电子邮箱将在几分钟后收到一封重置密码的邮件。 send_paranoid_instructions: 如果您的邮箱存在于我们的数据库中,您将收到一封找回密码的邮件。 @@ -91,16 +93,16 @@ zh-CN: registrations: destroyed: 再见!您的帐户已成功注销。我们希望很快可以再见到您。 edit: - are_you_sure: 您确定吗? + are_you_sure: 最后确认要注销自己的账户,您确定吗? cancel_my_account: 注销我的帐户 currently_waiting_confirmation_for_email: 等待确认 %{email} leave_blank_if_you_don_t_want_to_change_it: 如不想更改,则无需填写 - title: 修改%{resource} - unhappy: 不喜欢 + title: '%{resource}信息' + unhappy: 注销账户后,您的数据将会彻底移除! update: 更新 we_need_your_current_password_to_confirm_your_changes: 我们需要您的当前密码以确认更改 new: - sign_up: 注册 + sign_up: 用户注册 signed_up: 欢迎您!您已注册成功。 signed_up_but_inactive: 您的帐户还未被激活。激活前无法登录。 signed_up_but_locked: 您已成功注册,但帐号被锁定了,因此无法登录。 @@ -111,7 +113,7 @@ zh-CN: sessions: already_signed_out: 您已登出。 new: - sign_in: 登录 + sign_in: 用户登录 signed_in: 登录成功 signed_out: 登出成功 shared: @@ -138,5 +140,5 @@ zh-CN: not_found: 找不到 not_locked: 未被锁定 not_saved: - one: 发生一个错误导致%{resource}保存失败: - other: 发生 %{count} 个错误导致%{resource}保存失败: + one: 一个%{resource}错误: + other: '%{count} 个%{resource}错误:' diff --git a/config/locales/simple_form/simple_form.zh-CN.yml b/config/locales/simple_form/simple_form.zh-CN.yml index 4e995488d..9c1f28ad9 100644 --- a/config/locales/simple_form/simple_form.zh-CN.yml +++ b/config/locales/simple_form/simple_form.zh-CN.yml @@ -62,7 +62,7 @@ zh-CN: channel: '应用会使用的平台' app: schemes: - name: '应用在功能、面向受众划分的类型' + name: :'simple_form.hits.scheme.name' scheme: name: '应用在功能、面向受众划分的类型' channel: diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index fe17971a8..804f7bbc7 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -4,6 +4,10 @@ zh-CN: admin_section: 管理面板 monitors_section: 监控 + intro: + title: 移动应用上传竟然如此简单、移动 App 应用分发系统 + description: 解放开发打包的烦恼,轻松放权给测试、产品、运营等使用 App 的人员,提供丰富组件库,打包流程一键上传,iOS 和 Android 轻松接入,深度与 Jenkins 和 Gitlab 集成。 + links: goback_to_list: 返回列表 goback: 返回 @@ -505,6 +509,17 @@ zh-CN: taken: 文件已经存在,不能重复上传 devise: + confirmations: + new: + title: 邮箱确认 + registrations: + new: + error: 错误! + register_closed: 服务没有开放注册功能!请联系管理员开通账户。 + register: 注册 + edit: + api: API + token: 密钥 normal: title: 标准登录 ldap: From 1ecdd43e2f60dee6b06bb9619e70d3a329c5face Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 16 Sep 2021 12:00:10 +0800 Subject: [PATCH 0685/2165] =?UTF-8?q?feat:=20=E5=8F=98=E6=9B=B4=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E5=A2=9E=E5=8A=A0=E8=8B=B1=E6=96=87=E6=A0=87=E9=A2=98?= =?UTF-8?q?=EF=BC=8C=E8=99=BD=E7=84=B6=E6=B2=A1=E5=95=A5=E5=8D=B5=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 4 +- app/views/devise/passwords/edit.html.slim | 59 ++++++++++++----------- 2 files changed, 33 insertions(+), 30 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f0483ef0a..10b71e395 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,3 @@ -# 变更日志 +# 变更日志 Changelog -请移步:https://zealot.ews.im/#/changelog \ No newline at end of file +请移步(Detail): https://zealot.ews.im/#/changelog \ No newline at end of file diff --git a/app/views/devise/passwords/edit.html.slim b/app/views/devise/passwords/edit.html.slim index bbfd3b9fa..04b596471 100644 --- a/app/views/devise/passwords/edit.html.slim +++ b/app/views/devise/passwords/edit.html.slim @@ -1,33 +1,36 @@ - content_for :title do - | 修改密码 + = t('.change_my_password') -.row.mb-3.mt-3 - .col-sm-7.order-12.order-sm-1 +.row.m-3 + .col-md-6.order-12.order-sm-1 == render 'devise/shared/intro' - .login-box.col-sm-5.order-1.order-sm-12 - .card - .login-box-body - p.login-box-msg 修改密码 - = simple_form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :put }) do |f| - = f.error_notification - - = f.input :reset_password_token, as: :hidden - = f.full_error :reset_password_token - - .form-group.has-feedback - = f.input :password, - label: "新密码", - required: true, - autofocus: true, - hint: ("最小 #{@minimum_password_length} 个字符" if @minimum_password_length), - input_html: { autocomplete: "new-password" } - .form-group.has-feedback - = f.input :password_confirmation, - label: "重复新密码", - required: true, - input_html: { autocomplete: "new-password" } + .col-md-6.order-1.order-sm-12.mb-4 + - if Setting.registrations_mode + .card + .card-header + h3.card-title = t('.change_my_password') + .card-body .row - .col-xs-4 - = f.submit '重置密码', class: 'btn btn-primary btn-flat' + .auth-form.col-md-6 + = simple_form_for(resource, as: resource_name, url: password_path(resource_name), html: { method: :put }) do |f| + = f.error_notification + + = f.input :reset_password_token, as: :hidden + = f.full_error :reset_password_token - == render 'devise/shared/links' \ No newline at end of file + .form-group.has-feedback + = f.input :password, + label: t('.new_password'), + required: true, + autofocus: true, + input_html: { autocomplete: "new-password" } + .form-group.has-feedback + = f.input :password_confirmation, + label: t('.confirm_new_password'), + required: true, + input_html: { autocomplete: "new-password" } + .row + .col-xs-4 + = f.submit t('.change_your_password'), class: 'btn btn-primary btn-flat' + .auth-providers.col-md-6 + == render 'devise/shared/links' \ No newline at end of file From 1ee95dde9ae2eefb99780e3e07bcb666ba410bb9 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 16 Sep 2021 15:49:30 +0800 Subject: [PATCH 0686/2165] feat(i18n): laytout --- app/views/layouts/_navigation.html.slim | 6 +++--- app/views/messages/_message.html.slim | 26 ------------------------- config/locales/zealot/zh-CN.yml | 3 +++ 3 files changed, 6 insertions(+), 29 deletions(-) delete mode 100644 app/views/messages/_message.html.slim diff --git a/app/views/layouts/_navigation.html.slim b/app/views/layouts/_navigation.html.slim index a4fbb4c04..aa4fecd5c 100644 --- a/app/views/layouts/_navigation.html.slim +++ b/app/views/layouts/_navigation.html.slim @@ -13,11 +13,11 @@ nav.main-header.navbar.navbar-expand.navbar-white.navbar-light a.nav-link.dropdown-toggle.dropstart data-toggle="dropdown" href="#" aria-haspopup="true" aria-expanded="false" = current_user.username .dropdown-menu.dropdown-menu-right - = link_to '详情', edit_user_registration_path, class: 'dropdown-item' - = link_to '登出', destroy_user_session_path, method: :delete, class: 'dropdown-item' + = link_to t('user_profile'), edit_user_registration_path, class: 'dropdown-item' + = link_to t('log_out'), destroy_user_session_path, method: :delete, class: 'dropdown-item' - else li.nav-item - = link_to '登录', new_user_session_path, class: 'nav-link' + = link_to t('log_in'), new_user_session_path, class: 'nav-link' - else .navbar-empty == render 'layouts/brand_logo' diff --git a/app/views/messages/_message.html.slim b/app/views/messages/_message.html.slim deleted file mode 100644 index b3c2177ef..000000000 --- a/app/views/messages/_message.html.slim +++ /dev/null @@ -1,26 +0,0 @@ -ruby: - custom_data = JSON.parse message.custom_data -tr - td - = message.id - td - = link_to message.group_name, group_path(message.group) - br - = message.group_type - td - = message.timestamp.strftime("%Y-%m-%d %H:%M:%S") - td style="text-align:center" - div - img.img-circle src=custom_data["fromUserAvatar"] style="width:3.2em;height:3.2em" - div - = link_to message.user_name, user_messages_path(message.user_id) - td - - if message.content_type == 'text' - = emojify(message.message) - - else - = image_tag(messages_image_path(message)) - td - - if message.is_deleted - | 已删除 - - else - = link_to '删除', destroy_message_path(message) diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index 804f7bbc7..a4bbe09fe 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -3,6 +3,9 @@ zh-CN: toolbox_section: 工具箱 admin_section: 管理面板 monitors_section: 监控 + user_profile: 详情 + log_out: 登出 + log_in: 登录 intro: title: 移动应用上传竟然如此简单、移动 App 应用分发系统 From 5115e7bd160695d06ec238a0f47bdb56346260f9 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 16 Sep 2021 16:52:25 +0800 Subject: [PATCH 0687/2165] =?UTF-8?q?style:=20=E6=9B=B4=E6=96=B0=E9=82=AE?= =?UTF-8?q?=E4=BB=B6=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/mailers/devise_mailer.rb | 5 ++++ app/mailers/user_mailer.rb | 2 +- app/views/layouts/mailer.html.slim | 23 +++++++++++++++++-- .../omniauth_welcome_email.html.slim | 12 ++++------ config/initializers/devise.rb | 2 +- config/locales/zealot/zh-CN.yml | 5 ++++ 6 files changed, 37 insertions(+), 12 deletions(-) create mode 100644 app/mailers/devise_mailer.rb diff --git a/app/mailers/devise_mailer.rb b/app/mailers/devise_mailer.rb new file mode 100644 index 000000000..457710b41 --- /dev/null +++ b/app/mailers/devise_mailer.rb @@ -0,0 +1,5 @@ +# frozen_string_literal: true + +class DeviseMailer < Devise::Mailer + layout 'mailer' +end diff --git a/app/mailers/user_mailer.rb b/app/mailers/user_mailer.rb index d0be8cb33..0ad1fdfea 100644 --- a/app/mailers/user_mailer.rb +++ b/app/mailers/user_mailer.rb @@ -4,6 +4,6 @@ class UserMailer < ApplicationMailer def omniauth_welcome_email(user, password) @user = user @password = password - mail(to: @user.email, subject: '欢迎使用 Zealot') + mail(to: @user.email, subject: t('.subject', title: Setting.site_title)) end end diff --git a/app/views/layouts/mailer.html.slim b/app/views/layouts/mailer.html.slim index e17dcf67e..700f8c92e 100644 --- a/app/views/layouts/mailer.html.slim +++ b/app/views/layouts/mailer.html.slim @@ -1,3 +1,22 @@ +doctype html html - body - = yield + head + title = yield :title + meta[name="viewport" content="width=device-width, initial-scale=1.0"] + link[rel="apple-touch-icon" sizes="60x60" href="#{asset_pack_path('media/images/touch-icon.png')}"] + link[rel="apple-touch-icon" sizes="120x120" href="#{asset_pack_path('media/images/touch-icon@2x.png')}"] + link[rel="apple-touch-icon" sizes="180x180" href="#{asset_pack_path('media/images/touch-icon@3x.png')}"] + link[rel="icon" type="image/x-icon" href="#{asset_pack_path('media/images/touch-icon@3x.png')}"] + == favicon_link_tag asset_pack_path('media/images/touch-icon.png') + == stylesheet_pack_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' + == javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' + == csrf_meta_tags + + body class="hold-transition layout-top-nav" + .container + .col.align-self-center.mt-5 + .card.card-outline.card-primary + .card-header.text-center + = link_to Setting.site_title, Setting.site_domain, class: 'h1' + .card-body + = yield \ No newline at end of file diff --git a/app/views/user_mailer/omniauth_welcome_email.html.slim b/app/views/user_mailer/omniauth_welcome_email.html.slim index 9c2ad7922..44d171f55 100644 --- a/app/views/user_mailer/omniauth_welcome_email.html.slim +++ b/app/views/user_mailer/omniauth_welcome_email.html.slim @@ -1,10 +1,6 @@ p - | 你好 - = @user.username - | ,欢迎来到 Zealot! - + = t('.welcome', name: @user.username) p - | 您已经使用第三方登录成功授权注册了 Zealot 账号,系统随机生成了默认的密码: - pre - code - = @password \ No newline at end of file + = t('.default_password') + h3 + span.badge.bg-success = @password \ No newline at end of file diff --git a/config/initializers/devise.rb b/config/initializers/devise.rb index d414b9775..f8eb5158f 100644 --- a/config/initializers/devise.rb +++ b/config/initializers/devise.rb @@ -18,7 +18,7 @@ # config.mailer_sender = 'no-reply@' + Setting.url_options[:host] # Configure the class responsible to send e-mails. - # config.mailer = 'Devise::Mailer' + config.mailer = 'DeviseMailer' # Configure the parent class responsible to send e-mails. # config.parent_mailer = 'ActionMailer::Base' diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index a4bbe09fe..711ffee6a 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -511,6 +511,11 @@ zh-CN: checksum: taken: 文件已经存在,不能重复上传 + user_mailer: + omniauth_welcome_email: + subject: 欢迎使用 %{title} + default_password: 您已经使用第三方登录成功授权注册了 Zealot 账号,系统随机生成了默认的密码: + devise: confirmations: new: From 2ed09072de012e0aebe011b8bb573fe47c947d61 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 17 Sep 2021 14:52:43 +0800 Subject: [PATCH 0688/2165] feat(i18n): jobs and services --- app/helpers/teardown_helper.rb | 6 ++-- app/jobs/app_web_hook_job.rb | 11 +++--- app/jobs/application_job.rb | 3 +- app/jobs/debug_file_teardown_job.rb | 2 +- app/jobs/teardown_job.rb | 2 +- app/models/concerns/user_roles.rb | 12 +++---- app/services/create_admin_service.rb | 4 ++- app/services/create_sample_apps_service.rb | 40 +++++++++++++--------- app/uploaders/app_file_uploader.rb | 2 +- config/locales/zealot/zh-CN.yml | 24 +++++++++++++ 10 files changed, 70 insertions(+), 36 deletions(-) diff --git a/app/helpers/teardown_helper.rb b/app/helpers/teardown_helper.rb index 7de063922..ea9b4795d 100644 --- a/app/helpers/teardown_helper.rb +++ b/app/helpers/teardown_helper.rb @@ -7,14 +7,14 @@ def expired_date_tips(expired_date) time_in_words = distance_of_time_in_words(time, Time.now) style_name = 'text-green' - message = "还有#{time_in_words}左右过期" + message = t('teardowns.show.expired_in', time: time_in_words) if duration.value < 0 style_name = 'text-red' - message = "已经过期#{time_in_words}" + message = t('teardowns.show.already_expired', time: time_in_words) elsif duration.value == 0 style_name = 'text-red' - message = '此时此刻刚好过期了!' + message = t('teardowns.show.expired') else style_name = duration.parts[:months] <= 3 ? 'text-yellow' : 'text-green' end diff --git a/app/jobs/app_web_hook_job.rb b/app/jobs/app_web_hook_job.rb index d0a9556c8..c6de89a58 100644 --- a/app/jobs/app_web_hook_job.rb +++ b/app/jobs/app_web_hook_job.rb @@ -3,6 +3,7 @@ class AppWebHookJob < ApplicationJob include Rails.application.routes.url_helpers include ActionView::Helpers::DateHelper + include ActionView::Helpers::TranslationHelper include ActiveSupport::NumberHelper queue_as :webhook @@ -25,7 +26,7 @@ def perform(event, web_hook, channel) def send_request r = HTTP.headers(content_type: 'application/json') .post(@web_hook.url, body: json_body) - logger.debug("trigger response body: #{r.body}") + logger.debug(log_message("trigger response body: #{r.body}")) logger.info(log_message('trigger successfully')) if r.code == 200 rescue HTTP::Error => e logger.error(log_message("trigger fail: #{e}")) @@ -64,13 +65,13 @@ def build_body def title case @event when 'upload_events' - "#{@release.app_name} 上传了 #{@release.release_version} 版本" + t('teardowns.messages.upload_events', name: @release.app_name, version: @release.release_version) when 'download_events' - "#{@release.app_name} #{@release.release_version} 版本被下载" + t('teardowns.messages.download_events', name: @release.app_name, version: @release.release_version) when 'changelog_events' - "#{@release.app_name} #{@release.release_version} 版本更新了变更日志" + t('teardowns.messages.changelog_events', name: @release.app_name, version: @release.release_version) else - "#{@release.app_name} 触发了未知事件: #{@event}" + t('teardowns.messages.unknown_events', name: @release.app_name, event: @event) end end diff --git a/app/jobs/application_job.rb b/app/jobs/application_job.rb index 9cf1a3f8b..1cc5499cd 100644 --- a/app/jobs/application_job.rb +++ b/app/jobs/application_job.rb @@ -2,6 +2,7 @@ class ApplicationJob < ActiveJob::Base include ActiveJob::Status + include ActionView::Helpers::TranslationHelper protected @@ -11,7 +12,7 @@ def notification_user(type:, status:, user_id:, message:) status: status, html: "
    - 调试文件解析完成! + #{t('web_hooks.messages.done')}
    " } end diff --git a/app/jobs/debug_file_teardown_job.rb b/app/jobs/debug_file_teardown_job.rb index 862682ffe..d4f828130 100644 --- a/app/jobs/debug_file_teardown_job.rb +++ b/app/jobs/debug_file_teardown_job.rb @@ -29,7 +29,7 @@ def notification_user(debug_file, user_id) ActionCable.server.broadcast "notification:#{user_id}", { type: 'teardown', status: 'success', - message: "调试文件 #{debug_file.id} 解析完成,需要手动刷新页面才能看到哟" + message: t('web_hooks.messages.parse_done', id: debug_file.i)} } end diff --git a/app/jobs/teardown_job.rb b/app/jobs/teardown_job.rb index c83f8b2ef..aa4a9c0ca 100644 --- a/app/jobs/teardown_job.rb +++ b/app/jobs/teardown_job.rb @@ -25,7 +25,7 @@ def determine_file!(release_id) release = release(id: release_id) file = release&.file.file unless file && File.exist?(file.path) - logger.error('文件已经无法找到,可能已经被清理或删除') + logger.error('File was not found, it had been clean or deleted') return end diff --git a/app/models/concerns/user_roles.rb b/app/models/concerns/user_roles.rb index 89031a426..ac337d71c 100644 --- a/app/models/concerns/user_roles.rb +++ b/app/models/concerns/user_roles.rb @@ -4,9 +4,9 @@ module UserRoles extend ActiveSupport::Concern ROLE_NAMES = { - user: '用户', - developer: '开发者', - admin: '管理员' + user: I18n.t('users.roles.user'), + developer: I18n.t('users.roles.developer'), + admin: I18n.t('users.roles.admin') } included do @@ -41,11 +41,11 @@ def roles?(value) def role_name if admin? - '管理员' + ROLE_NAMES[:admin] elsif developer? - '开发者' + ROLE_NAMES[:developer] else - '用户' + ROLE_NAMES[:user] end end end diff --git a/app/services/create_admin_service.rb b/app/services/create_admin_service.rb index 206528f1f..ed15948ed 100644 --- a/app/services/create_admin_service.rb +++ b/app/services/create_admin_service.rb @@ -1,9 +1,11 @@ # frozen_string_literal: true class CreateAdminService + include ActionView::Helpers::TranslationHelper + def call User.find_or_create_by!(email: Setting.admin_email) do |user| - user.username = '管理员' + user.username = t('users.roles.admin') user.password = Setting.admin_password user.password_confirmation = Setting.admin_password user.role = :admin diff --git a/app/services/create_sample_apps_service.rb b/app/services/create_sample_apps_service.rb index 0e202dee0..54ae4ccd4 100644 --- a/app/services/create_sample_apps_service.rb +++ b/app/services/create_sample_apps_service.rb @@ -1,6 +1,8 @@ # frozen_string_literal: true class CreateSampleAppsService + include ActionView::Helpers::TranslationHelper + RELEASE_COUNT = 3 def call(user) @@ -11,27 +13,31 @@ def call(user) private def stardford_app(user) - app_name = '演示应用' + app_name = t('demo.app_name1') app_bundle_id = 'com.zealot.app-demo' - schemes = %i[开发版 测试版 产品版] channels = %i[Android iOS] + schemes = [ + t('settings.default_schemes.beta'), + t('settings.default_schemes.adhoc'), + t('settings.default_schemes.production'), + ] changelog = [ { - author: '管理员', + author: t('users.roles.developer'), date: '2019-10-24 23:0:24 +0800', - message: 'release: 发布 0.1.0', + message: 'bump 0.1.0', email: 'admin@zealt.com' }, { - author: '管理员', + author: t('users.roles.developer'), date: '2019-10-23 17:41:41 +0800', - message: 'fix: 修复 xxx 问题', + message: 'fix: xxx', email: 'admin@zealt.com' }, { - author: '管理员', + author: t('users.roles.developer'), date: '2019-10-22 11:11:11 +0800', - message: 'feat: 初始化项目', + message: 'feat: xxx done', email: 'admin@zealt.com' } ] @@ -45,11 +51,11 @@ def stardford_app(user) device_type: channel_name.downcase.to_sym bundle_id = generate_bundle_id app_bundle_id, channel release_type = case scheme.name - when '开发版' - 'debug' - when '测试版' - channel.name == 'iOS' ? 'adhoc' : 'beta' - when '产品版' + when t('settings.default_schemes.beta') + 'beta' + when t('settings.default_schemes.adhoc') + 'adhoc' + when t('settings.default_schemes.production') 'release' end @@ -61,11 +67,11 @@ def stardford_app(user) end def android_channels_app(user) - app_name = '演示桌面' + app_name = t('demo.app_name2') app_bundle_id = 'com.zealot.android.app-demo' - schemes = %i[产品版] - channels = %i[华为 小米 oppo viio 魅族 应用宝 百度 GooglePlay] - changelog = "release: 发布 0.1.0\nfix: 修复 xxx 问题\nfeat: 初始化项目" + schemes = [ t('settings.default_schemes.production') ] + channels = t('demo.android_channels').values + changelog = "bump 0.1.0\nfix: xxx\nfeat: xxx done" app = create_app(app_name, user) diff --git a/app/uploaders/app_file_uploader.rb b/app/uploaders/app_file_uploader.rb index 1a8cb77e3..f0295b904 100644 --- a/app/uploaders/app_file_uploader.rb +++ b/app/uploaders/app_file_uploader.rb @@ -18,6 +18,6 @@ def extension_allowlist def validate_app_type return if SUPPORT_APP.include?(AppInfo.file_type(file.path)) - raise CarrierWave::InvalidParameter, "无法正常解析应用的类型,目前仅支持 iOS、Android 和使用 Zip 压缩的 macOS App" + raise CarrierWave::InvalidParameter, I18n.t('errors.unknown_file_type') end end diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index 711ffee6a..2ce5c34bd 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -359,7 +359,15 @@ zh-CN: title: 应用解包 show: title: '%{name} %{release_version} (%{build_version}) 解包信息' + expired_in: 还有%{time}左右过期 + already_expired: 已经过期%{time} + expired: 此时此刻刚好过期了! messages: + upload_events: '%{name} 上传了 %{version} 版本' + download_events: '%{name} %{version} 版本被下载' + changelog_events: '%{name} %{version} 版本更新了变更日志' + unknown_events: '%{name} 触发了未知事件: %{event}' + parse_done: 调试文件 %{id} 解析完成,需要手动刷新页面才能看到哟 errors: not_found_file: '无法找到解包文件: %{message}' failed_detect_file_type: 无法识别应用类型 @@ -412,6 +420,10 @@ zh-CN: users: title: 用户 + roles: + user: 用户 + developer: 开发者 + admin: 管理员 web_hooks: title: 网络钩子 @@ -425,6 +437,7 @@ zh-CN: disable: 禁用 enable: 启用 messages: + done: 调试文件解析完成! confirm: destroy: 确定删除? @@ -449,6 +462,16 @@ zh-CN: adhoc: 内测版 production: 产品版 + demo: + app_name1: 默认应用 + app_name2: 默认 Android 应用 + android_channels: + channel1: 华为 + channel2: 小米 + channel3: oppo + channel4: vivo + channel5: 应用宝 + datetime: distance_in_words: about_x_hours: 大约 %{count} 小时 @@ -492,6 +515,7 @@ zh-CN: goback_or_redirect_to_homepage: 请返回%{goback_link}或%{homepage_link}看看 goback_title: 上级页面 homepage_title: 首页 + unknown_file_type: 无法正常解析应用的类型,目前仅支持 iOS、Android 和使用 Zip 压缩的 macOS App activerecord: success: From 9cc092cc4418ed8bd07220f6d78d1e2b2aa60d24 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 17 Sep 2021 15:38:57 +0800 Subject: [PATCH 0689/2165] =?UTF-8?q?fix:=20=E4=BD=BF=E7=94=A8=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E6=8F=90=E4=BE=9B=E7=9A=84=20webhook=20=E7=BB=93?= =?UTF-8?q?=E6=9E=84=E4=BD=93=E5=BD=93=E5=81=9A=E9=BB=98=E8=AE=A4=E7=9A=84?= =?UTF-8?q?=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/jobs/app_web_hook_job.rb | 36 ++++++++++++++------ app/jobs/application_job.rb | 4 +++ app/serializers/web_hooks/push_serializer.rb | 14 -------- app/services/teardown_service.rb | 2 +- config/initializers/sidekiq.rb | 2 +- 5 files changed, 32 insertions(+), 26 deletions(-) delete mode 100644 app/serializers/web_hooks/push_serializer.rb diff --git a/app/jobs/app_web_hook_job.rb b/app/jobs/app_web_hook_job.rb index c6de89a58..3b2074b8e 100644 --- a/app/jobs/app_web_hook_job.rb +++ b/app/jobs/app_web_hook_job.rb @@ -16,7 +16,7 @@ def perform(event, web_hook, channel) logger.info(log_message("trigger event: #{@event}")) logger.info(log_message("trigger url: #{@web_hook.url}")) - logger.info(log_message("trigger json body: #{json_body}")) + logger.info(log_message("trigger json body: #{message_body}")) send_request end @@ -25,23 +25,20 @@ def perform(event, web_hook, channel) def send_request r = HTTP.headers(content_type: 'application/json') - .post(@web_hook.url, body: json_body) + .post(@web_hook.url, body: message_body) logger.debug(log_message("trigger response body: #{r.body}")) logger.info(log_message('trigger successfully')) if r.code == 200 rescue HTTP::Error => e logger.error(log_message("trigger fail: #{e}")) end - def json_body - # 如果发现自定义钩子就进行组装 - return build_body if @web_hook.body.present? - - # 默认结构体 - WebHooks::PushSerializer.new(@channel).to_json + def message_body + body = @web_hook.body.present? ? @web_hook.body : default_body + build(body) end - def build_body - ApplicationController.render inline: @web_hook.body, + def build(body) + ApplicationController.render inline: body, type: :jb, assigns: { event: @event, @@ -62,6 +59,25 @@ def build_body } end + def default_body + '{ + event: @event, + title: @title, + name: @app_name, + app_name: @app_name, + device_type: @device_type, + release_version: @release_version, + build_version: @build_version, + size: @file_size, + changelog: @changelog, + release_url: @release_url, + install_url: @install_url, + icon_url: @icon_url, + qrcode_url: @qrcode_url, + uploaded_at: @uploaded_at + }' + end + def title case @event when 'upload_events' diff --git a/app/jobs/application_job.rb b/app/jobs/application_job.rb index 1cc5499cd..96fdc1bee 100644 --- a/app/jobs/application_job.rb +++ b/app/jobs/application_job.rb @@ -6,6 +6,10 @@ class ApplicationJob < ActiveJob::Base protected + def logger + @logger ||= Sidekiq.logger + end + def notification_user(type:, status:, user_id:, message:) ActionCable.server.broadcast "notification:#{user_id}", { type: type, diff --git a/app/serializers/web_hooks/push_serializer.rb b/app/serializers/web_hooks/push_serializer.rb deleted file mode 100644 index 1dcf3117f..000000000 --- a/app/serializers/web_hooks/push_serializer.rb +++ /dev/null @@ -1,14 +0,0 @@ -# frozen_string_literal: true - -class WebHooks::PushSerializer < ApplicationSerializer - # channel model based - attributes :app_name, :bundle_id, :git_url - - belongs_to :app - belongs_to :scheme - has_many :releases - - def releases - [object.releases.last] - end -end diff --git a/app/services/teardown_service.rb b/app/services/teardown_service.rb index ec8cbb02f..2a1d0cdfa 100644 --- a/app/services/teardown_service.rb +++ b/app/services/teardown_service.rb @@ -12,7 +12,7 @@ def initialize(file) def call file_type = AppInfo.file_type(file) unless SUPPORT_APP.include?(file_type) - raise ActionController::UnknownFormat, "无法处理文件: #{file}, 不支持本文件类型: #{file_type}" + raise ActionController::UnknownFormat, t('teardowns.messages.errors.not_support_file_type') end process diff --git a/config/initializers/sidekiq.rb b/config/initializers/sidekiq.rb index e98569278..0c8cf547a 100644 --- a/config/initializers/sidekiq.rb +++ b/config/initializers/sidekiq.rb @@ -4,7 +4,7 @@ Sidekiq.configure_server do |config| config.redis = sidekiq_config logger_level = ::Logger.const_get(ENV.fetch('RAILS_LOG_LEVEL', 'info').upcase.to_s) - logger_level = :debug if Rails.env.development? + logger_level = ::Logger::DEBUG if Rails.env.development? config.logger.level = logger_level end From 2fdf622f81eb74acd0a1dced903c63a5119fc32b Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 17 Sep 2021 16:07:49 +0800 Subject: [PATCH 0690/2165] feat(i18n): api 100% --- app/controllers/admin/settings_controller.rb | 2 +- app/controllers/api/apps/upload_controller.rb | 13 ++--------- .../api/apps/version_exist_controller.rb | 5 ++-- app/controllers/api/base_controller.rb | 7 +++--- .../api/debug_files/download_controller.rb | 2 +- .../api/debug_files/exists_controller.rb | 9 +++++--- .../api/jenkins/build_controller.rb | 2 +- config/locales/zealot/zh-CN.yml | 23 +++++++++++++++++++ 8 files changed, 40 insertions(+), 23 deletions(-) diff --git a/app/controllers/admin/settings_controller.rb b/app/controllers/admin/settings_controller.rb index 84c7ce225..f7dcc6254 100644 --- a/app/controllers/admin/settings_controller.rb +++ b/app/controllers/admin/settings_controller.rb @@ -27,7 +27,7 @@ def update @setting.value = new_value return render :edit unless @setting.save - redirect_to admin_settings_path, notice: "保存成功." + redirect_to admin_settings_path, notice: t('activerecord.success.update', key: t("admin.settings.#{@setting.var}")) else redirect_to admin_settings_path end diff --git a/app/controllers/api/apps/upload_controller.rb b/app/controllers/api/apps/upload_controller.rb index 659787f3d..08fdd7211 100644 --- a/app/controllers/api/apps/upload_controller.rb +++ b/app/controllers/api/apps/upload_controller.rb @@ -85,7 +85,7 @@ def with_channel(scheme) end def and_scheme(app) - name = parse_scheme_name || '测试版' + name = parse_scheme_name app.schemes.find_or_create_by name: name end @@ -101,16 +101,7 @@ def and_app def parse_scheme_name return unless app_parser.os == AppInfo::Platform::IOS - case app_parser.release_type - when AppInfo::IPA::ExportType::DEBUG - '开发版' - when AppInfo::IPA::ExportType::ADHOC - '测试版' - when AppInfo::IPA::ExportType::INHOUSE - '企业版' - when AppInfo::IPA::ExportType::RELEASE - '线上版' - end + t("api.apps.upload.create.#{app_parser.release_type.downcase}", default: t('api.apps.upload.create.adhoc')) end def release_params diff --git a/app/controllers/api/apps/version_exist_controller.rb b/app/controllers/api/apps/version_exist_controller.rb index da141cc39..b1ba905c0 100644 --- a/app/controllers/api/apps/version_exist_controller.rb +++ b/app/controllers/api/apps/version_exist_controller.rb @@ -8,7 +8,7 @@ def show determine_params! where_params = channel_params.merge(channel_id: @channel.id) - raise ActiveRecord::RecordNotFound, '应用版本不存在' unless Release.exists?(where_params) + raise ActiveRecord::RecordNotFound, t('.not_found') unless Release.exists?(where_params) render json: Release.find_by(where_params) end @@ -20,8 +20,7 @@ def determine_params! (channel_params.key?(:bundle_id) && channel_params.key?(:release_version) && channel_params.key?(:build_version)) - raise ActionController::ParameterMissing, - '参数缺失,请使用 bundle_id, release_version, build_version 或 bundle_id, git_commit 组合参数' + raise ActionController::ParameterMissing, t('api.apps.version_exist.missing_params') end def channel_params diff --git a/app/controllers/api/base_controller.rb b/app/controllers/api/base_controller.rb index da872fb8d..55abb695c 100644 --- a/app/controllers/api/base_controller.rb +++ b/app/controllers/api/base_controller.rb @@ -1,6 +1,7 @@ # frozen_string_literal: true class Api::BaseController < ActionController::API + include ActionView::Helpers::TranslationHelper respond_to :json before_action :set_cache_headers @@ -18,18 +19,18 @@ class Api::BaseController < ActionController::API def validate_user_token @user = User.find_by(token: params[:token]) - raise ActionCable::Connection::Authorization::UnauthorizedError, '未授权用户' unless @user + raise ActionCable::Connection::Authorization::UnauthorizedError, t('api.unauthorized_token') unless @user end def validate_channel_key @channel = Channel.find_by(key: params[:channel_key]) - raise ActionCable::Connection::Authorization::UnauthorizedError, '无效的应用渠道 Key' unless @channel + raise ActionCable::Connection::Authorization::UnauthorizedError, t('api.unauthorized_channel_key') unless @channel end def record_invalid(e) respond_with_error( :unprocessable_entity, e, - error: '参数错误,请检查请求的参数是否正确', + error: t('api.unprocessable_entity'), entry: exception.record.errors ) end diff --git a/app/controllers/api/debug_files/download_controller.rb b/app/controllers/api/debug_files/download_controller.rb index 8ad7634f6..269e5267c 100644 --- a/app/controllers/api/debug_files/download_controller.rb +++ b/app/controllers/api/debug_files/download_controller.rb @@ -26,7 +26,7 @@ def index private def render_not_found - render json: { error: '没有找到调试文件' }, status: :not_found + render json: { error: t('api.debug_files.download.default.not_found') }, status: :not_found end def both_version?(release_version, build_version) diff --git a/app/controllers/api/debug_files/exists_controller.rb b/app/controllers/api/debug_files/exists_controller.rb index a53485828..8e802f48a 100644 --- a/app/controllers/api/debug_files/exists_controller.rb +++ b/app/controllers/api/debug_files/exists_controller.rb @@ -11,7 +11,10 @@ def version app_id: @channel.app.id, device_type: @channel.device_type ) - raise ActiveRecord::RecordNotFound, '调试文件版本不存在' unless DebugFile.exists?(where_params) + + unless DebugFile.exists?(where_params) + raise ActiveRecord::RecordNotFound, t('api.debug_files.download.default.not_found') + end render json: DebugFile.find_by(where_params) end @@ -22,7 +25,7 @@ def binary raise ActionController::ParameterMissing, 'checksum' if checksum.blank? debug_file = DebugFile.find_by(checksum: checksum) - raise ActiveRecord::RecordNotFound, "调试文件指纹 #{checksum} 不存在" unless debug_file + raise ActiveRecord::RecordNotFound, t('api.debug_files.download.default.not_found') unless debug_file render json: debug_file end @@ -33,7 +36,7 @@ def uuid raise ActionController::ParameterMissing, 'uuid' if uuid.blank? metadata = DebugFileMetadatum.find_by(uuid: uuid) - raise ActiveRecord::RecordNotFound, "调试文件 uuid #{uuid} 不存在" unless metadata + raise ActiveRecord::RecordNotFound, t('api.debug_files.download.default.not_found') unless metadata render json: metadata.debug_file end diff --git a/app/controllers/api/jenkins/build_controller.rb b/app/controllers/api/jenkins/build_controller.rb index 82fdcaf3d..b421a3fc1 100644 --- a/app/controllers/api/jenkins/build_controller.rb +++ b/app/controllers/api/jenkins/build_controller.rb @@ -29,7 +29,7 @@ def render_running_status def render_build_failed render json: { code: 500, - message: '构建请求失败,请重新尝试' + message: t('api.jenkins.build.failed_request') } end diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index 2ce5c34bd..10ea8e2ee 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -462,6 +462,29 @@ zh-CN: adhoc: 内测版 production: 产品版 + api: + unauthorized_channel_key: 无效的应用渠道 Key + unauthorized_token: 未授权用户 token + unprocessable_entity: 参数错误,请检查请求的参数是否正确 + apps: + upload: + create: + debug: 开发版 + adhoc: 测试版 + enterpse: 企业版 + release: 线上版 + version_exist: + show: + not_found: 应用版本不存在 + missing_params: 参数缺失,请使用 bundle_id, release_version, build_version 或 bundle_id, git_commit 组合参数 + debug_files: + download: + default: + not_found: 调试文件版本不存在 + jenkins: + build: + failed_request: 构建请求失败,请重新尝试 + demo: app_name1: 默认应用 app_name2: 默认 Android 应用 From 12d15f22331ce6de11077c121b5c3246ba36f84f Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 17 Sep 2021 16:26:40 +0800 Subject: [PATCH 0691/2165] feat(i18n): download, install, missing channels --- .../channels/branches_controller.rb | 2 +- .../channels/release_types_controller.rb | 2 +- .../channels/versions_controller.rb | 4 ++-- .../download/debug_files_controller.rb | 2 +- .../download/releases_controller.rb | 2 +- .../releases/install_controller.rb | 5 ++++- config/locales/zealot/zh-CN.yml | 22 +++++++++++++++++++ 7 files changed, 32 insertions(+), 7 deletions(-) diff --git a/app/controllers/channels/branches_controller.rb b/app/controllers/channels/branches_controller.rb index 440ed1c01..c312b0d54 100644 --- a/app/controllers/channels/branches_controller.rb +++ b/app/controllers/channels/branches_controller.rb @@ -6,7 +6,7 @@ class Channels::BranchesController < ApplicationController def index @title = @channel.app_name - @subtitle = "#{@branch} 分支版本列表" + @subtitle = t('.subtitle', branch: @branch) render 'channels/filters/index' end diff --git a/app/controllers/channels/release_types_controller.rb b/app/controllers/channels/release_types_controller.rb index 94da49dbb..0c53dfb46 100644 --- a/app/controllers/channels/release_types_controller.rb +++ b/app/controllers/channels/release_types_controller.rb @@ -6,7 +6,7 @@ class Channels::ReleaseTypesController < ApplicationController def index @title = @channel.app_name - @subtitle = "#{@type} 类型版本列表" + @subtitle = t('.subtitle', type: @type) render 'channels/filters/index' end diff --git a/app/controllers/channels/versions_controller.rb b/app/controllers/channels/versions_controller.rb index f0f00e25c..55be02ebf 100644 --- a/app/controllers/channels/versions_controller.rb +++ b/app/controllers/channels/versions_controller.rb @@ -5,7 +5,7 @@ class Channels::VersionsController < ApplicationController def index @title = @channel.app_name - @subtitle = '上传版本列表' + @subtitle = t('.subtitle') @releases = @channel.releases .order(id: :desc) .page(params.fetch(:page, 1)) @@ -17,7 +17,7 @@ def index def show @version = params[:id] @title = @channel.app_name - @subtitle = "#{@version} 上传版本列表" + @subtitle = t('.subtitle', version: @version) @back_url = URI(request.referer || '').path @releases = @channel.releases .where(release_version: @version) diff --git a/app/controllers/download/debug_files_controller.rb b/app/controllers/download/debug_files_controller.rb index 151b270a9..19fcadad9 100644 --- a/app/controllers/download/debug_files_controller.rb +++ b/app/controllers/download/debug_files_controller.rb @@ -22,7 +22,7 @@ def download def render_not_found_entity_response render json: { - error: '没有找到调试文件' + error: t('.not_found') }, status: :not_found end diff --git a/app/controllers/download/releases_controller.rb b/app/controllers/download/releases_controller.rb index eb0235e6d..06d4a75eb 100644 --- a/app/controllers/download/releases_controller.rb +++ b/app/controllers/download/releases_controller.rb @@ -26,7 +26,7 @@ def download def render_not_found_entity_response render json: { - error: '没有找到应用文件' + error: t('.not_found') }, status: :not_found end diff --git a/app/controllers/releases/install_controller.rb b/app/controllers/releases/install_controller.rb index 95c439f58..034657fae 100644 --- a/app/controllers/releases/install_controller.rb +++ b/app/controllers/releases/install_controller.rb @@ -1,6 +1,9 @@ # frozen_string_literal: true class Releases::InstallController < ApplicationController + + rescue_from ActiveRecord::RecordNotFound, with: :render_not_found_entity_response + def show @release = Release.version_by_channel(params[:channel_id], params[:release_id]) render content_type: 'text/xml', layout: false @@ -9,7 +12,7 @@ def show private def render_not_found_entity_response - render json: { error: '没有找到对应的应用或版本' }, status: :not_found + render xml: { error: t('.not_found') }, status: :not_found end end diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index 10ea8e2ee..b0cfcccbb 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -227,6 +227,17 @@ zh-CN: title: '%{name}新建渠道' edit: title: '%{name}编辑渠道' + branches: + index: + subtitle: '%{branch} 分支版本列表' + release_types: + index: + subtitle: '%{type} 类型版本列表' + versions: + index: + subtitle: 版本列表 + show: + subtitle: '%{version} 主版本列表' messages: confirm: destroy: :'web_hooks.messages.confirm.destroy' @@ -277,6 +288,9 @@ zh-CN: view_detail: 渠道详情 new: title: :'channels.show.upload_release' + install: + show: + not_found: 找不到应用文件,无法提供下载服务 messages: default_changelog: | 没有找到更新日志,可能的原因: @@ -462,6 +476,14 @@ zh-CN: adhoc: 内测版 production: 产品版 + download: + releases: + show: + not_found: 找不到应用文件,无法提供下载服务 + debug_files: + show: + not_found: 找不到调试文件,无法提供下载服务 + api: unauthorized_channel_key: 无效的应用渠道 Key unauthorized_token: 未授权用户 token From 0fb4836d7f55639f969cbcada37c8812fbd37d7f Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 17 Sep 2021 19:15:05 +0800 Subject: [PATCH 0692/2165] code format --- app/controllers/admin/settings_controller.rb | 3 ++- app/controllers/channels_controller.rb | 3 ++- app/controllers/releases_controller.rb | 12 +++++++++--- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/app/controllers/admin/settings_controller.rb b/app/controllers/admin/settings_controller.rb index f7dcc6254..37c500898 100644 --- a/app/controllers/admin/settings_controller.rb +++ b/app/controllers/admin/settings_controller.rb @@ -27,7 +27,8 @@ def update @setting.value = new_value return render :edit unless @setting.save - redirect_to admin_settings_path, notice: t('activerecord.success.update', key: t("admin.settings.#{@setting.var}")) + message = t('activerecord.success.update', key: t("admin.settings.#{@setting.var}")) + redirect_to admin_settings_path, notice: message else redirect_to admin_settings_path end diff --git a/app/controllers/channels_controller.rb b/app/controllers/channels_controller.rb index e19c6e7e3..11bee69fd 100644 --- a/app/controllers/channels_controller.rb +++ b/app/controllers/channels_controller.rb @@ -25,7 +25,8 @@ def create authorize @channel if @channel.save - redirect_to app_path(@channel.scheme.app), notice: t('activerecord.success.create', key: "#{@channel.scheme.name} #{@channel.name} 渠道") + message = t('activerecord.success.create', key: "#{@channel.scheme.name} #{@channel.name} #{t('channels.title')}") + redirect_to app_path(@channel.scheme.app), notice: message else @channel.errors end diff --git a/app/controllers/releases_controller.rb b/app/controllers/releases_controller.rb index 7205a5efe..8b495be2b 100644 --- a/app/controllers/releases_controller.rb +++ b/app/controllers/releases_controller.rb @@ -7,8 +7,13 @@ class ReleasesController < ApplicationController before_action :authenticate_app!, only: :show def index - return redirect_to channel_path(@channel), notice: t('releases.messages.errors.not_found_release_and_redirect_to_channel') if @channel.releases.empty? - redirect_to channel_release_path(@channel, @channel.releases.last), notice: t('releases.messages.errors.not_found_release_and_redirect_to_latest_release') + if @channel.releases.empty? + return redirect_to channel_path(@channel), + notice: t('releases.messages.errors.not_found_release_and_redirect_to_channel') + end + + redirect_to channel_release_path(@channel, @channel.releases.last), + notice: t('releases.messages.errors.not_found_release_and_redirect_to_latest_release') end def show @@ -32,7 +37,8 @@ def create @release.channel.perform_web_hook('upload_events') @release.perform_teardown_job(current_user.id) - redirect_to channel_release_url(@channel, @release), notice: t('activerecord.success.create', key: "#{t('apps.title')}") + message = t('activerecord.success.create', key: "#{t('apps.title')}") + redirect_to channel_release_url(@channel, @release), notice: message end def destroy From 76b705e87fe13780ff7920c348cbb5f39dc4ec56 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 Sep 2021 21:01:37 +0000 Subject: [PATCH 0693/2165] chore(deps): bump puma from 5.4.0 to 5.5.0 Bumps [puma](https://github.com/puma/puma) from 5.4.0 to 5.5.0. - [Release notes](https://github.com/puma/puma/releases) - [Changelog](https://github.com/puma/puma/blob/master/History.md) - [Commits](https://github.com/puma/puma/compare/v5.4.0...v5.5.0) --- updated-dependencies: - dependency-name: puma dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 2d3cf0cd4..d206e5884 100644 --- a/Gemfile +++ b/Gemfile @@ -4,7 +4,7 @@ source 'https://rubygems.org' git_source(:github) { |repo_name| "https://github.com/#{repo_name}" } -gem 'puma', '~> 5.4.0' +gem 'puma', '~> 5.5.0' gem 'rails', '~> 6.1.4' gem 'rails-i18n', '~> 6.0.0' gem 'rake', '~> 13.0.4' diff --git a/Gemfile.lock b/Gemfile.lock index 0fe5c386a..74d1759a3 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -326,7 +326,7 @@ GEM interception (>= 0.5) pry (>= 0.12.0) public_suffix (4.0.6) - puma (5.4.0) + puma (5.5.0) nio4r (~> 2.0) pundit (2.1.0) activesupport (>= 3.0.0) @@ -546,7 +546,7 @@ DEPENDENCIES pry-byebug pry-rails pry-rescue - puma (~> 5.4.0) + puma (~> 5.5.0) pundit (~> 2.1.0) rack-cors (~> 1.1.1) rails (~> 6.1.4) From a6dcb467087c71915a086df4b3d9c3dcdc5068ff Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 Sep 2021 21:02:15 +0000 Subject: [PATCH 0694/2165] chore(deps): bump bootsnap from 1.9.0 to 1.9.1 Bumps [bootsnap](https://github.com/Shopify/bootsnap) from 1.9.0 to 1.9.1. - [Release notes](https://github.com/Shopify/bootsnap/releases) - [Changelog](https://github.com/Shopify/bootsnap/blob/master/CHANGELOG.md) - [Commits](https://github.com/Shopify/bootsnap/compare/v1.9.0...v1.9.1) --- updated-dependencies: - dependency-name: bootsnap dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 0fe5c386a..3c37af67e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -93,7 +93,7 @@ GEM bindex (0.8.1) binding_of_caller (1.0.0) debug_inspector (>= 0.0.1) - bootsnap (1.9.0) + bootsnap (1.9.1) msgpack (~> 1.0) builder (3.2.4) byebug (11.1.3) From 4a36cb9a6735dc21c3328a6d97e7ceab646c2b86 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 Sep 2021 21:02:31 +0000 Subject: [PATCH 0695/2165] chore(deps-dev): bump ruby-debug-ide from 0.7.2 to 0.7.3 Bumps [ruby-debug-ide](https://github.com/ruby-debug/ruby-debug-ide) from 0.7.2 to 0.7.3. - [Release notes](https://github.com/ruby-debug/ruby-debug-ide/releases) - [Changelog](https://github.com/ruby-debug/ruby-debug-ide/blob/master/ChangeLog.archive) - [Commits](https://github.com/ruby-debug/ruby-debug-ide/commits/v0.7.3) --- updated-dependencies: - dependency-name: ruby-debug-ide dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 0fe5c386a..bb2b1f7cf 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -401,7 +401,7 @@ GEM activesupport (>= 4.2.0) rack (>= 1.1) rubocop (>= 1.7.0, < 2.0) - ruby-debug-ide (0.7.2) + ruby-debug-ide (0.7.3) rake (>= 0.8.1) ruby-macho (2.5.1) ruby-progressbar (1.11.0) From 261551430af74393575071f555200ecf2f77983a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 Sep 2021 21:02:04 +0000 Subject: [PATCH 0696/2165] chore(deps): bump activejob-status from 0.2.0 to 0.2.1 Bumps [activejob-status](https://github.com/inkstak/activejob-status) from 0.2.0 to 0.2.1. - [Release notes](https://github.com/inkstak/activejob-status/releases) - [Commits](https://github.com/inkstak/activejob-status/compare/v0.2.0...v0.2.1) --- updated-dependencies: - dependency-name: activejob-status dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 0fe5c386a..a2ad69044 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -50,7 +50,7 @@ GEM activejob (6.1.4.1) activesupport (= 6.1.4.1) globalid (>= 0.3.6) - activejob-status (0.2.0) + activejob-status (0.2.1) activejob (>= 4.2) activesupport (>= 4.2) activemodel (6.1.4.1) From faa1f00977e745d089d3c59754706e514f0f9fb1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 22 Sep 2021 21:01:40 +0000 Subject: [PATCH 0697/2165] chore(deps): bump sentry-rails from 4.7.2 to 4.7.3 Bumps [sentry-rails](https://github.com/getsentry/sentry-ruby) from 4.7.2 to 4.7.3. - [Release notes](https://github.com/getsentry/sentry-ruby/releases) - [Changelog](https://github.com/getsentry/sentry-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-ruby/compare/4.7.2...4.7.3) --- updated-dependencies: - dependency-name: sentry-rails dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index e1ce3cef6..435e85908 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -136,7 +136,7 @@ GEM erubi (1.10.0) et-orbi (1.2.4) tzinfo - faraday (1.7.1) + faraday (1.8.0) faraday-em_http (~> 1.0) faraday-em_synchrony (~> 1.0) faraday-excon (~> 1.1) @@ -413,7 +413,7 @@ GEM rufus-scheduler (3.7.0) fugit (~> 1.1, >= 1.1.6) semantic_range (3.0.0) - sentry-rails (4.7.2) + sentry-rails (4.7.3) railties (>= 5.0) sentry-ruby-core (~> 4.7.0) sentry-ruby (4.7.2) From 0ab7f4f1e9aa81872a1f912d58f39f7417aa0ba6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 22 Sep 2021 21:02:06 +0000 Subject: [PATCH 0698/2165] chore(deps): bump sentry-sidekiq from 4.7.2 to 4.7.3 Bumps [sentry-sidekiq](https://github.com/getsentry/sentry-ruby) from 4.7.2 to 4.7.3. - [Release notes](https://github.com/getsentry/sentry-ruby/releases) - [Changelog](https://github.com/getsentry/sentry-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-ruby/compare/4.7.2...4.7.3) --- updated-dependencies: - dependency-name: sentry-sidekiq dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index e1ce3cef6..4b5fd25c1 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -136,7 +136,7 @@ GEM erubi (1.10.0) et-orbi (1.2.4) tzinfo - faraday (1.7.1) + faraday (1.8.0) faraday-em_http (~> 1.0) faraday-em_synchrony (~> 1.0) faraday-excon (~> 1.1) @@ -423,7 +423,7 @@ GEM sentry-ruby-core (4.7.2) concurrent-ruby faraday - sentry-sidekiq (4.7.2) + sentry-sidekiq (4.7.3) sentry-ruby-core (~> 4.7.0) sidekiq (>= 3.0) shellany (0.0.1) From 1a4e059a2f862a8cff7d4ad9dc3f131cfa9f741b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 22 Sep 2021 21:02:33 +0000 Subject: [PATCH 0699/2165] chore(deps): bump activejob-status from 0.2.1 to 0.2.2 Bumps [activejob-status](https://github.com/inkstak/activejob-status) from 0.2.1 to 0.2.2. - [Release notes](https://github.com/inkstak/activejob-status/releases) - [Commits](https://github.com/inkstak/activejob-status/compare/v0.2.1...v0.2.2) --- updated-dependencies: - dependency-name: activejob-status dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index e1ce3cef6..52e836659 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -50,7 +50,7 @@ GEM activejob (6.1.4.1) activesupport (= 6.1.4.1) globalid (>= 0.3.6) - activejob-status (0.2.1) + activejob-status (0.2.2) activejob (>= 4.2) activesupport (>= 4.2) activemodel (6.1.4.1) From ef0d6f1d5a55e47ec0a4d71d8149fca1216b0079 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 23 Sep 2021 11:12:10 +0000 Subject: [PATCH 0700/2165] chore(deps): bump sentry-ruby from 4.7.2 to 4.7.3 Bumps [sentry-ruby](https://github.com/getsentry/sentry-ruby) from 4.7.2 to 4.7.3. - [Release notes](https://github.com/getsentry/sentry-ruby/releases) - [Changelog](https://github.com/getsentry/sentry-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-ruby/compare/4.7.2...4.7.3) --- updated-dependencies: - dependency-name: sentry-ruby dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index e1ce3cef6..87091a81a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -50,7 +50,7 @@ GEM activejob (6.1.4.1) activesupport (= 6.1.4.1) globalid (>= 0.3.6) - activejob-status (0.2.1) + activejob-status (0.2.2) activejob (>= 4.2) activesupport (>= 4.2) activemodel (6.1.4.1) @@ -136,7 +136,7 @@ GEM erubi (1.10.0) et-orbi (1.2.4) tzinfo - faraday (1.7.1) + faraday (1.8.0) faraday-em_http (~> 1.0) faraday-em_synchrony (~> 1.0) faraday-excon (~> 1.1) @@ -416,11 +416,11 @@ GEM sentry-rails (4.7.2) railties (>= 5.0) sentry-ruby-core (~> 4.7.0) - sentry-ruby (4.7.2) + sentry-ruby (4.7.3) concurrent-ruby (~> 1.0, >= 1.0.2) faraday (>= 1.0) - sentry-ruby-core (= 4.7.2) - sentry-ruby-core (4.7.2) + sentry-ruby-core (= 4.7.3) + sentry-ruby-core (4.7.3) concurrent-ruby faraday sentry-sidekiq (4.7.2) From bc6fa4595d974825e35e976261b5a91385572eda Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 28 Sep 2021 00:03:25 +0000 Subject: [PATCH 0701/2165] chore(deps): bump nokogiri from 1.12.4 to 1.12.5 Bumps [nokogiri](https://github.com/sparklemotion/nokogiri) from 1.12.4 to 1.12.5. - [Release notes](https://github.com/sparklemotion/nokogiri/releases) - [Changelog](https://github.com/sparklemotion/nokogiri/blob/main/CHANGELOG.md) - [Commits](https://github.com/sparklemotion/nokogiri/compare/v1.12.4...v1.12.5) --- updated-dependencies: - dependency-name: nokogiri dependency-type: indirect ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 52e836659..d60a69d08 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -277,7 +277,7 @@ GEM nenv (0.3.0) net-ldap (0.17.0) nio4r (2.5.8) - nokogiri (1.12.4) + nokogiri (1.12.5) mini_portile2 (~> 2.6.1) racc (~> 1.4) notiffany (0.1.3) From af407ac54767155892e3d1da56927a5846b194b9 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 28 Sep 2021 11:55:08 +0800 Subject: [PATCH 0702/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E6=B8=A0=E9=81=93=E6=98=BE=E7=A4=BA=E4=B8=A2=E5=A4=B1?= =?UTF-8?q?=20i18n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/setting.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/models/setting.rb b/app/models/setting.rb index 4d84fb464..83b9fd45e 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -9,10 +9,10 @@ class Setting < RailsSettings::Base class << self def present_schemes [ - t('settings.default_schemes.beta', raise: false), - t('settings.default_schemes.adhoc', raise: false), - t('settings.default_schemes.production', raise: false) - ] + t('settings.default_schemes.beta', default: nil), + t('settings.default_schemes.adhoc', default: nil), + t('settings.default_schemes.production', default: nil) + ].compact end def site_https From 7e9655a12b0b442307b68c097f1038b63b6f01f8 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 28 Sep 2021 14:14:26 +0800 Subject: [PATCH 0703/2165] fix: grammar error --- app/jobs/debug_file_teardown_job.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/jobs/debug_file_teardown_job.rb b/app/jobs/debug_file_teardown_job.rb index d4f828130..c836a2216 100644 --- a/app/jobs/debug_file_teardown_job.rb +++ b/app/jobs/debug_file_teardown_job.rb @@ -26,12 +26,12 @@ def perform(debug_file, user_id = nil) def notification_user(debug_file, user_id) return if user_id.blank? - ActionCable.server.broadcast "notification:#{user_id}", { + ActionCable.server.broadcast("notification:#{user_id}", type: 'teardown', status: 'success', - message: t('web_hooks.messages.parse_done', id: debug_file.i)} - } -end + message: t('web_hooks.messages.parse_done', id: debug_file.id) + ) + end def parse_dsym(debug_file, parser) parser.machos.each do |macho| From fb1efc814f78ab0ebfcc8a56e52592875b896e19 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 5 Oct 2021 21:05:59 +0000 Subject: [PATCH 0704/2165] chore(deps): bump filepond from 4.29.1 to 4.30.3 Bumps [filepond](https://github.com/pqina/filepond) from 4.29.1 to 4.30.3. - [Release notes](https://github.com/pqina/filepond/releases) - [Changelog](https://github.com/pqina/filepond/blob/master/CHANGELOG.md) - [Commits](https://github.com/pqina/filepond/compare/4.29.1...4.30.3) --- updated-dependencies: - dependency-name: filepond dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index a15441135..8a54a1adf 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "admin-lte": "^3.1.0", "clipboard": "^2.0.8", "compare-versions": "^3.6.0", - "filepond": "^4.29.1", + "filepond": "^4.30.3", "rails-erb-loader": "^5.5.2", "turbolinks": "^5.2.0" }, diff --git a/yarn.lock b/yarn.lock index 7d7d881e2..09821df79 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3706,10 +3706,10 @@ file-uri-to-path@1.0.0: resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== -filepond@^4.29.1: - version "4.29.1" - resolved "https://registry.yarnpkg.com/filepond/-/filepond-4.29.1.tgz#cd3d290091f96dca7f2db19c7dd485bf97ecb0be" - integrity sha512-j2YMYxzhDXYQScARkkYb5NwwfOxLWKWJK3v/Wozq1gQX3s5XLY3GfJhR9ysqP5l4697J3gIn898fRG5Z61UYIQ== +filepond@^4.30.3: + version "4.30.3" + resolved "https://registry.yarnpkg.com/filepond/-/filepond-4.30.3.tgz#63a50da7d1f58e5ca39a13e62d8ffe6a2b4baa5f" + integrity sha512-G2b1LEe90Sq2vH0SYDASTB+vVU735NBctzIaFPlZtb14QAgi/AL89WyQ6LhTfqgyrMyuZur2O9yHAmzS2E9ZnA== fill-range@^4.0.0: version "4.0.0" From d364a0b81b18e1cb6b905027876c2fecaa85c53f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Oct 2021 03:49:41 +0000 Subject: [PATCH 0705/2165] chore(deps-dev): bump letter_opener_web from 1.4.0 to 1.4.1 Bumps [letter_opener_web](https://github.com/fgrehm/letter_opener_web) from 1.4.0 to 1.4.1. - [Release notes](https://github.com/fgrehm/letter_opener_web/releases) - [Changelog](https://github.com/fgrehm/letter_opener_web/blob/master/CHANGELOG.md) - [Commits](https://github.com/fgrehm/letter_opener_web/compare/v1.4.0...v1.4.1) --- updated-dependencies: - dependency-name: letter_opener_web dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index d60a69d08..0e3d8af47 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -136,7 +136,7 @@ GEM erubi (1.10.0) et-orbi (1.2.4) tzinfo - faraday (1.7.1) + faraday (1.8.0) faraday-em_http (~> 1.0) faraday-em_synchrony (~> 1.0) faraday-excon (~> 1.1) @@ -246,7 +246,7 @@ GEM addressable (~> 2.7) letter_opener (1.7.0) launchy (~> 2.2) - letter_opener_web (1.4.0) + letter_opener_web (1.4.1) actionmailer (>= 3.2) letter_opener (~> 1.0) railties (>= 3.2) @@ -416,14 +416,14 @@ GEM sentry-rails (4.7.2) railties (>= 5.0) sentry-ruby-core (~> 4.7.0) - sentry-ruby (4.7.2) + sentry-ruby (4.7.3) concurrent-ruby (~> 1.0, >= 1.0.2) faraday (>= 1.0) - sentry-ruby-core (= 4.7.2) - sentry-ruby-core (4.7.2) + sentry-ruby-core (= 4.7.3) + sentry-ruby-core (4.7.3) concurrent-ruby faraday - sentry-sidekiq (4.7.2) + sentry-sidekiq (4.7.3) sentry-ruby-core (~> 4.7.0) sidekiq (>= 3.0) shellany (0.0.1) From ebb5ddca1f30de2140c9d371af35a78bad47d327 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Oct 2021 03:50:12 +0000 Subject: [PATCH 0706/2165] chore(deps): bump active_analytics from 0.2.0 to 0.2.1 Bumps [active_analytics](https://github.com/BaseSecrete/active_analytics) from 0.2.0 to 0.2.1. - [Release notes](https://github.com/BaseSecrete/active_analytics/releases) - [Commits](https://github.com/BaseSecrete/active_analytics/commits/v0.2.1) --- updated-dependencies: - dependency-name: active_analytics dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index d60a69d08..8d6ec4296 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -40,7 +40,7 @@ GEM erubi (~> 1.4) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.1, >= 1.2.0) - active_analytics (0.2.0) + active_analytics (0.2.1) rails (>= 5.2.0) active_model_serializers (0.10.12) actionpack (>= 4.1, < 6.2) @@ -136,7 +136,7 @@ GEM erubi (1.10.0) et-orbi (1.2.4) tzinfo - faraday (1.7.1) + faraday (1.8.0) faraday-em_http (~> 1.0) faraday-em_synchrony (~> 1.0) faraday-excon (~> 1.1) @@ -262,7 +262,7 @@ GEM lumberjack (1.2.8) mail (2.7.1) mini_mime (>= 0.1.1) - marcel (1.0.1) + marcel (1.0.2) method_source (1.0.0) mini_magick (4.11.0) mini_mime (1.1.1) @@ -416,14 +416,14 @@ GEM sentry-rails (4.7.2) railties (>= 5.0) sentry-ruby-core (~> 4.7.0) - sentry-ruby (4.7.2) + sentry-ruby (4.7.3) concurrent-ruby (~> 1.0, >= 1.0.2) faraday (>= 1.0) - sentry-ruby-core (= 4.7.2) - sentry-ruby-core (4.7.2) + sentry-ruby-core (= 4.7.3) + sentry-ruby-core (4.7.3) concurrent-ruby faraday - sentry-sidekiq (4.7.2) + sentry-sidekiq (4.7.3) sentry-ruby-core (~> 4.7.0) sidekiq (>= 3.0) shellany (0.0.1) From 9c0cb9eb435b77389dc1e97b7f40708f1e6d552c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Oct 2021 03:51:00 +0000 Subject: [PATCH 0707/2165] chore(deps): bump rails-settings-cached from 2.8.0 to 2.8.1 Bumps [rails-settings-cached](https://github.com/huacnlee/rails-settings-cached) from 2.8.0 to 2.8.1. - [Release notes](https://github.com/huacnlee/rails-settings-cached/releases) - [Changelog](https://github.com/huacnlee/rails-settings-cached/blob/main/CHANGELOG.md) - [Commits](https://github.com/huacnlee/rails-settings-cached/compare/v2.8.0...v2.8.1) --- updated-dependencies: - dependency-name: rails-settings-cached dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Gemfile b/Gemfile index 2d3cf0cd4..5dda2113d 100644 --- a/Gemfile +++ b/Gemfile @@ -83,7 +83,7 @@ gem 'webpacker', '~> 5.4' gem 'app-info', '~> 2.6.5' # Mobile config -gem 'rails-settings-cached', '~> 2.8.0' +gem 'rails-settings-cached', '~> 2.8.1' # Reduces boot times through caching; required in config/boot.rb gem 'bootsnap', '>= 1.4.7', require: false diff --git a/Gemfile.lock b/Gemfile.lock index d60a69d08..542b30b55 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -136,7 +136,7 @@ GEM erubi (1.10.0) et-orbi (1.2.4) tzinfo - faraday (1.7.1) + faraday (1.8.0) faraday-em_http (~> 1.0) faraday-em_synchrony (~> 1.0) faraday-excon (~> 1.1) @@ -262,7 +262,7 @@ GEM lumberjack (1.2.8) mail (2.7.1) mini_mime (>= 0.1.1) - marcel (1.0.1) + marcel (1.0.2) method_source (1.0.0) mini_magick (4.11.0) mini_mime (1.1.1) @@ -363,7 +363,7 @@ GEM rails-i18n (6.0.0) i18n (>= 0.7, < 2) railties (>= 6.0.0, < 7) - rails-settings-cached (2.8.0) + rails-settings-cached (2.8.1) rails (>= 5.0.0) railties (6.1.4.1) actionpack (= 6.1.4.1) @@ -416,14 +416,14 @@ GEM sentry-rails (4.7.2) railties (>= 5.0) sentry-ruby-core (~> 4.7.0) - sentry-ruby (4.7.2) + sentry-ruby (4.7.3) concurrent-ruby (~> 1.0, >= 1.0.2) faraday (>= 1.0) - sentry-ruby-core (= 4.7.2) - sentry-ruby-core (4.7.2) + sentry-ruby-core (= 4.7.3) + sentry-ruby-core (4.7.3) concurrent-ruby faraday - sentry-sidekiq (4.7.2) + sentry-sidekiq (4.7.3) sentry-ruby-core (~> 4.7.0) sidekiq (>= 3.0) shellany (0.0.1) @@ -551,7 +551,7 @@ DEPENDENCIES rack-cors (~> 1.1.1) rails (~> 6.1.4) rails-i18n (~> 6.0.0) - rails-settings-cached (~> 2.8.0) + rails-settings-cached (~> 2.8.1) rake (~> 13.0.4) redis (~> 4.4.0) rqrcode From cb12c89c91bb1af392befd53d055bffb944659cd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Oct 2021 03:51:12 +0000 Subject: [PATCH 0708/2165] chore(deps): bump http from 5.0.2 to 5.0.4 Bumps [http](https://github.com/httprb/http) from 5.0.2 to 5.0.4. - [Release notes](https://github.com/httprb/http/releases) - [Changelog](https://github.com/httprb/http/blob/main/CHANGES.md) - [Commits](https://github.com/httprb/http/compare/v5.0.2...v5.0.4) --- updated-dependencies: - dependency-name: http dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Gemfile b/Gemfile index 2d3cf0cd4..6d340e597 100644 --- a/Gemfile +++ b/Gemfile @@ -37,7 +37,7 @@ gem 'carrierwave', '~> 2.2.2' # Helper ## HTTP 请求 -gem 'http', '~> 5.0.2' +gem 'http', '~> 5.0.4' ## 用户认证 gem 'pundit', '~> 2.1.0' gem 'devise', '~> 4.8.0' diff --git a/Gemfile.lock b/Gemfile.lock index d60a69d08..d84a2aacc 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -136,7 +136,7 @@ GEM erubi (1.10.0) et-orbi (1.2.4) tzinfo - faraday (1.7.1) + faraday (1.8.0) faraday-em_http (~> 1.0) faraday-em_synchrony (~> 1.0) faraday-excon (~> 1.1) @@ -203,7 +203,7 @@ GEM hashie (4.1.0) health_check (3.1.0) railties (>= 5.0) - http (5.0.2) + http (5.0.4) addressable (~> 2.8) http-cookie (~> 1.0) http-form_data (~> 2.2) @@ -416,14 +416,14 @@ GEM sentry-rails (4.7.2) railties (>= 5.0) sentry-ruby-core (~> 4.7.0) - sentry-ruby (4.7.2) + sentry-ruby (4.7.3) concurrent-ruby (~> 1.0, >= 1.0.2) faraday (>= 1.0) - sentry-ruby-core (= 4.7.2) - sentry-ruby-core (4.7.2) + sentry-ruby-core (= 4.7.3) + sentry-ruby-core (4.7.3) concurrent-ruby faraday - sentry-sidekiq (4.7.2) + sentry-sidekiq (4.7.3) sentry-ruby-core (~> 4.7.0) sidekiq (>= 3.0) shellany (0.0.1) @@ -479,7 +479,7 @@ GEM concurrent-ruby (~> 1.0) unf (0.1.4) unf_ext - unf_ext (0.0.7.7) + unf_ext (0.0.8) unicode-display_width (2.0.0) uuidtools (2.2.0) vmstat (2.3.1) @@ -528,7 +528,7 @@ DEPENDENCIES guard-sidekiq guard-webpacker health_check (~> 3.1.0) - http (~> 5.0.2) + http (~> 5.0.4) jb (~> 0.8.0) jenkins_api_client kaminari From 63c2596c23817a044dc5f1780aba95495cdb4548 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 12 Oct 2021 14:04:06 +0800 Subject: [PATCH 0709/2165] =?UTF-8?q?feat:=20=E7=8E=AF=E5=A2=83=E5=8F=98?= =?UTF-8?q?=E9=87=8F=E5=A2=9E=E5=8A=A0=E6=96=87=E4=BB=B6=E8=B7=AF=E5=BE=84?= =?UTF-8?q?=E6=9D=83=E9=99=90=E6=A3=80=E6=9F=A5=E5=92=8C=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E4=BE=9D=E8=B5=96=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/system_info_controller.rb | 121 +++++++++++++----- app/javascript/javascripts/admin/index.js | 21 ++- app/models/setting.rb | 7 +- app/views/admin/system_info/index.html.slim | 100 +++++++++++---- config/locales/zealot/zh-CN.yml | 57 +++++---- 5 files changed, 212 insertions(+), 94 deletions(-) diff --git a/app/controllers/admin/system_info_controller.rb b/app/controllers/admin/system_info_controller.rb index a3e9bbd51..f4dead340 100644 --- a/app/controllers/admin/system_info_controller.rb +++ b/app/controllers/admin/system_info_controller.rb @@ -3,6 +3,18 @@ class Admin::SystemInfoController < ApplicationController VERSION_CHECK_URL = 'https://api.github.com/repos/tryzealot/zealot/releases/latest' + FILE_PERMISSIONS = { + app: [ + 'log', + 'public/backup', + 'public/uploads', + 'tmp' + ], + system: [ + '/tmp' + ] + }.freeze + EXCLUDED_MOUNT_OPTIONS = [ 'nobrowse', 'read-only', @@ -37,35 +49,33 @@ class Admin::SystemInfoController < ApplicationController # GET /admin/system_info def index @title = t('system_info.title') - @booted_at = Rails.application.config.booted_at - @current_version = Setting.version - set_cpus - set_memory - set_diskspace - set_disks set_env + set_gems + set_server_info + set_disk_volumes + set_file_permissions end private - def set_cpus - @cpus = Vmstat.cpu - rescue - @cpus = nil - end - - def set_memory - memory = Vmstat.memory - percent = percent(memory.active_bytes, memory.total_bytes) - @memory = { - used: memory.active_bytes, - total: memory.total_bytes, - percent: percent, - color: progress_color(percent) + def set_file_permissions + @file_permissions = { + health: true, + permissions: [] } - rescue - @memory = nil + + FILE_PERMISSIONS.each do |scope, paths| + paths.each do |path| + real_path = scope == :system ? path : Rails.root.join(path) + health = File.writable?(real_path) + + @file_permissions[:health] = false if !health + @file_permissions[:permissions].push(path: real_path.to_s, health: health) + end + end + + @file_permissions end def set_env @@ -74,20 +84,11 @@ def set_env end.sort end - def set_diskspace - disk = Sys::Filesystem.stat(Rails.root) - percent = percent(disk.bytes_used, disk.bytes_total) - @diskspace = { - used: disk.bytes_used, - total: disk.bytes_total, - percent: percent, - color: progress_color(percent) - } - rescue - @diskspace = nil + def set_gems + @gems ||= Sentry.configuration.gem_specs.sort end - def set_disks + def set_disk_volumes @disks = ::Sys::Filesystem.mounts.each_with_object([]) do |mount, obj| mount_options = mount.options.split(',').map(&:strip) next if (EXCLUDED_MOUNT_OPTIONS & mount_options).any? @@ -111,6 +112,58 @@ def set_disks end end + def set_server_info + require 'etc' + + @server = { + os_info: Etc.uname.values.join(' '), + ruby_version: RUBY_DESCRIPTION, + zealot_version: Setting.version, + zealot_vcs_ref: Setting.vcs_ref, + build_date: Setting.build_date, + cpu: cpu&.length, + memory: memory, + diskspace: diskspace, + booted_at: Rails.application.config.booted_at + } + end + + def cpu + @cpu ||= Vmstat.cpu + rescue + @cpu = nil + end + + def memory + return @memory if @memory + + memory = Vmstat.memory + percent = percent(memory.active_bytes, memory.total_bytes) + @memory = { + used: memory.active_bytes, + total: memory.total_bytes, + percent: percent, + color: progress_color(percent) + } + rescue + @memory = nil + end + + def diskspace + return @diskspace if @diskspace + + disk = Sys::Filesystem.stat(Rails.root) + percent = percent(disk.bytes_used, disk.bytes_total) + @diskspace ||= { + used: disk.bytes_used, + total: disk.bytes_total, + percent: percent, + color: progress_color(percent) + } + rescue + @diskspace = nil + end + def secure_key?(key) Rails.application .config diff --git a/app/javascript/javascripts/admin/index.js b/app/javascript/javascripts/admin/index.js index e1338ac75..5a55ccadf 100644 --- a/app/javascript/javascripts/admin/index.js +++ b/app/javascript/javascripts/admin/index.js @@ -1,12 +1,21 @@ import compareVersion from 'compare-versions'; const newVesionUrl = 'https://api.github.com/repos/tryzealot/zealot/releases/latest'; -$(document).on('turbolinks:load', () => { +function insert_link(elm, title, link) { + elm.html( + '' + + '' + title + ''); +} + +function check_new_version() { var elm = $('#new-version'); if (!elm.length) { return; } var current_version = $('#current-version').html(); - if (current_version == 'development') { return; } + if (current_version == 'development') { + insert_link(elm, '发现新版本 (始终显示)', 'https://github.com/tryzealot/zealot'); + return; + } fetch(newVesionUrl, { method: 'GET', @@ -20,8 +29,10 @@ $(document).on('turbolinks:load', () => { if (compareVersion(latest_version, current_version) <= 0) { return; } var release_link = json.html_url; - elm.html( - '' + - '发现新版本 ' + latest_version + ''); + insert_link(elm, '发现新版本 ' + latest_version, release_link); }); +} + +$(document).on('turbolinks:load', () => { + check_new_version(); }); \ No newline at end of file diff --git a/app/models/setting.rb b/app/models/setting.rb index 83b9fd45e..a05b5bab6 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -145,10 +145,9 @@ def url_options # 版本信息(只读) scope :information do - field :version, default: (ENV['ZEALOT_VERSION'] || 'development'), type: :string, readonly: true, display: true - field :vcs_ref, default: (ENV['ZEALOT_VCS_REF']), type: :string, readonly: true, display: true - field :version, default: (ENV['ZEALOT_VERSION'] || 'development'), type: :string, readonly: true, display: true - field :build_date, default: ENV['BUILD_DATE'], type: :string, readonly: true, display: true + field :version, default: (ENV['ZEALOT_VERSION'] || 'development'), type: :string, readonly: true + field :vcs_ref, default: (ENV['ZEALOT_VCS_REF']), type: :string, readonly: true + field :build_date, default: ENV['BUILD_DATE'], type: :string, readonly: true end def readonly? diff --git a/app/views/admin/system_info/index.html.slim b/app/views/admin/system_info/index.html.slim index 4ae529086..44fa4eb6c 100644 --- a/app/views/admin/system_info/index.html.slim +++ b/app/views/admin/system_info/index.html.slim @@ -8,51 +8,82 @@ .col-md-6 .card.system_info .card-header - h3.card-title = t('admin.system_info.server_info') + h3.card-title = t('.server_info') .card-body dl.system-info - dt = t('admin.system_info.zealot_version') + dt = t('.zealot_version') dd pre #new-version.float-right #current-version - = @current_version - dt = t('admin.system_info.ruby_version') + = @server[:zealot_version] + dt = t('.vcs_ref') dd - pre = RUBY_DESCRIPTION - dt = t('admin.system_info.cpu_info') + pre = @server[:zealot_vcs_ref] + dt = t('.build_date') + dd + pre = @server[:build_date] + dt = t('.os_info') + dd + pre = @server[:os_info] + dt = t('.ruby_version') + dd + pre = @server[:ruby_version] + dt = t('.cpu_info') dd pre - - if @cpus - = t('admin.system_info.cpu_core', size: @cpus.length) + - if @server[:cpu] + = t('.cpu_core', size: @server[:cpu]) - else - = t('admin.system_info.fail_detect_cpu') - dt = t('admin.system_info.memory_info') + = t('.fail_detect_cpu') + dt = t('.memory_info') dd pre - - if @memory - = "#{number_to_human_size(@memory[:used])} / #{number_to_human_size(@memory[:total])}" - .progress.progress-bar-striped class="#{@memory[:color]}" role="progressbar" aria-valuenow="#{@memory[:percent]}" aria-valuemin="0" aria-valuemax="100" style="width: #{@memory[:percent]}%" + - if memory = @server[:memory] + = "#{number_to_human_size(memory[:used])} / #{number_to_human_size(memory[:total])}" + .progress.progress-bar-striped class="#{memory[:color]}" role="progressbar" aria-valuenow="#{memory[:percent]}" aria-valuemin="0" aria-valuemax="100" style="width: #{memory[:percent]}%" - else - = t('admin.system_info.fail_detect_memory') - dt = t('admin.system_info.disk_info') + = t('.fail_detect_memory') + dt = t('.disk_info') dd pre - - if @diskspace - = "#{number_to_human_size(@diskspace[:used])} / #{number_to_human_size(@diskspace[:total])}" - .progress.progress-bar-striped class="#{@diskspace[:color]}" role="progressbar" aria-valuenow="#{@diskspace[:percent]}" aria-valuemin="0" aria-valuemax="100" style="width: #{@diskspace[:percent]}%" + - if diskspace = @server[:diskspace] + = "#{number_to_human_size(diskspace[:used])} / #{number_to_human_size(diskspace[:total])}" + .progress.progress-bar-striped class="#{diskspace[:color]}" role="progressbar" aria-valuenow="#{diskspace[:percent]}" aria-valuemin="0" aria-valuemax="100" style="width: #{diskspace[:percent]}%" - else - = t('admin.system_info.fail_detect_disk') - dt = t('admin.system_info.lauched_time') + = t('.fail_detect_disk') + dt = t('.lauched_time') dd pre - = distance_of_time_in_words_to_now(@booted_at) + = distance_of_time_in_words_to_now(@server[:booted_at]) | ( - = @booted_at + = @server[:booted_at] | ) + + .col-md-6 + .card.card-outline class="#{@file_permissions[:health] ? 'card-success' : 'card-danger'}" + .card-header + h3.card-title = t('.file_permissions') + .card-tools + button.btn.btn-tool data-card-widget="collapse" + i.fas.fa-minus + .card-body + p = t('.messages.file_permissions_tip', icon: '') + table.table + - @file_permissions[:permissions].each do |permission| + tr + td = permission[:path] + td + - if permission[:health] + i.fas.fa-check.text-green + - else + i.fas.fa-exclamation-triangle.text-red .card .card-header - h3.card-title = t('admin.system_info.volume_mounted') + h3.card-title = t('.volume_mounted') + .card-tools + button.btn.btn-tool data-card-widget="collapse" + i.fas.fa-minus .card-body - unless @disks.blank? dl.system-info @@ -63,12 +94,14 @@ = "#{number_to_human_size(disk[:bytes_used])} / #{number_to_human_size(disk[:bytes_total])}" .progress.progress-bar-striped class="#{disk[:color]}" role="progressbar" aria-valuenow="#{disk[:percent]}" aria-valuemin="0" aria-valuemax="100" style="width: #{disk[:percent]}%" - else - = t('admin.system_info.fail_detect_disk') + = t('.fail_detect_disk') - .col-md-6 - .card + .card.collapsed-card .card-header - h3.card-title = t('admin.system_info.system_enviroment') + h3.card-title = t('.system_enviroment') + .card-tools + button.btn.btn-tool data-card-widget="collapse" + i.fas.fa-plus .card-body dl.system-info - @env.each do |key, value| @@ -76,3 +109,16 @@ dd pre = value + + .card.collapsed-card + .card-header + h3.card-title = t('.ruby_gems') + .card-tools + button.btn.btn-tool data-card-widget="collapse" + i.fas.fa-plus + .card-body.p-0 + table.table + - @gems.each do |name, version| + tr + td = name + td = version \ No newline at end of file diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index b0cfcccbb..e64d28262 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -20,21 +20,30 @@ zh-CN: back_to_list: 返回列表 system_info: - server_info: 服务器信息 - zealot_version: Zealot 版本 - found_new_version: '发现新版本: %{version}' - ruby_version: Ruby 版本 - cpu_info: CPU - cpu_core: '%{size} 核' - fail_detect_cpu: CPU 信息监测失败 - memory_info: 内存 - fail_detect_memory: 内存信息监测失败 - disk_info: 磁盘 - fail_detect_disk: 磁盘监测失败 - lauched_time: 运行时间 - volume_mounted: 挂载信息 - fail_detect_disk: 硬盘信息无法获取 - system_enviroment: 系统变量 + index: + zealot_version: Zealot 版本 + vcs_ref: 哈希值 + build_date: 构建日期 + server_info: 服务器信息 + found_new_version: '发现新版本: %{version}' + os_info: 操作系统 + ruby_version: Ruby 版本 + cpu_info: CPU + cpu_core: '%{size} 核' + fail_detect_cpu: CPU 信息监测失败 + memory_info: 内存 + fail_detect_memory: 内存信息监测失败 + disk_info: 磁盘 + fail_detect_disk: 磁盘监测失败 + lauched_time: 运行时间 + volume_mounted: 挂载信息 + fail_detect_disk: 硬盘信息无法获取 + system_enviroment: 系统变量 + file_permissions: 文件权限 + ruby_gems: Ruby Gems + logs: 日志 + messages: + file_permissions_tip: 如果你看到下面路径有显示红色异常图标那就是表面该路径无法写入可能会造成 Zealot 无法正常使用或发生异常情况 settings: enable: 开启 @@ -72,11 +81,6 @@ zh-CN: archives: 上传文件 keep_uploads: 永久保存上传应用版本 - information: 版本信息 - version: 版本 - vcs_ref: 哈希值 - build_date: 构建日期 - empty_value: 空值 no_editable_key: 当前设置为可读,无法修改 @@ -339,9 +343,10 @@ zh-CN: title: 没有发现任何调试文件! body_html: 选择右上角的 上传调试文件 help: - title: 什么是调试文件,如何找到它? + title: 帮助中心 body_html: | -

    iOS

    +

    什么是调试文件,如何找到它?

    +
    iOS

    下面以 XCode 作为 IDE 详细说明定位 dSYM 文件:

    • 打开 XCode 后点击顶部菜单 "Window" -> "Organizer"
    • @@ -356,7 +361,7 @@ zh-CN:

      如果确认非 Debug 构建后在 XCode Organizer 的 Archives 里选择刚生成的版本后在右侧菜单找到 "Download Debug Symbols" 并点击下载。

      -

      Android

      +
      Android

      通常指的是 Mapping Files,主要用于被 proguard 混淆 @@ -605,7 +610,11 @@ zh-CN: password: LDAP 密码 shared: hint: '- 或者 -' - # sign_in_with_provider: "使用%{provider}账号登录" + links: + provider: + feishu: 飞书 + google: ' Google ' + gitlab: ' Gitlab ' helpers: submit: From 7739ef6c5e8bff59afd5027dd276127c4725d859 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 12 Oct 2021 14:18:16 +0800 Subject: [PATCH 0710/2165] =?UTF-8?q?style:=20=E5=BC=B1=E5=8C=96=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E7=AA=97=E5=8F=A3=E7=AC=AC=E4=B8=89=E6=96=B9=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E7=9A=84=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/javascript/stylesheets/devise.scss | 34 ++++--------------- app/views/devise/shared/_form_ldap.html.slim | 4 +-- .../devise/shared/_form_normal.html.slim | 4 +-- app/views/devise/shared/_links.html.slim | 8 ++--- 4 files changed, 14 insertions(+), 36 deletions(-) diff --git a/app/javascript/stylesheets/devise.scss b/app/javascript/stylesheets/devise.scss index 4789bf0d0..0145d6c93 100644 --- a/app/javascript/stylesheets/devise.scss +++ b/app/javascript/stylesheets/devise.scss @@ -1,31 +1,9 @@ -.btn-auth-google { - background-color: #ea4335; - color: #fff; -} - -.btn-auth-google:hover { - background-color: #ba4335; - color: #fff; -} - -.btn-auth-feishu { - background-color: #3370ff; - color: #fff; -} - -.btn-auth-feishu:hover { - background-color: #2851b3; - color: #fff; -} - -.btn-auth-gitlab { - background-color: #fa7035; - color: #fff; -} - -.btn-auth-gitlab:hover { - background-color: #e45432; - color: #fff; +.social-auth-links { + i.icon { + float: right !important; + margin-right: 0; + margin-top: 0.5rem; + } } @media (min-width: 768px) { diff --git a/app/views/devise/shared/_form_ldap.html.slim b/app/views/devise/shared/_form_ldap.html.slim index d7126908e..725e01542 100644 --- a/app/views/devise/shared/_form_ldap.html.slim +++ b/app/views/devise/shared/_form_ldap.html.slim @@ -1,7 +1,7 @@ - if ldap_auth_enable? #login-tabs-ldap.tab-pane.fade aria-labelledby="login-tabs-ldap-tab" role="tabpanel" .row - .auth-form.col-md-6 + .auth-form.col-md-7 = form_tag(user_ldap_omniauth_callback_path) do .form-group = label_tag :username, t('devise.ldap.username') @@ -21,6 +21,6 @@ .col-12 = submit_tag t('devise.sessions.new.sign_in'), class: "btn btn-primary btn-block", data: { qa_selector: 'sign_in_button' } - .auth-providers.col-md-6 + .auth-providers.col-md-5 == render 'devise/shared/links' diff --git a/app/views/devise/shared/_form_normal.html.slim b/app/views/devise/shared/_form_normal.html.slim index a96135d9a..af8dc57b8 100644 --- a/app/views/devise/shared/_form_normal.html.slim +++ b/app/views/devise/shared/_form_normal.html.slim @@ -1,6 +1,6 @@ #login-tabs-standard.tab-pane.fade.show.active aria-labelledby="login-tabs-standard-tab" role="tabpanel" .row - .auth-form.col-md-6 + .auth-form.col-md-7 = simple_form_for(resource, as: resource_name, url: session_path(resource_name)) do |f| = f.input :email, required: true, autofocus: true, hint: '', input_html: { autocomplete: "email", class: 'form-control' } = f.input :password, required: true, input_html: { autocomplete: "current-password" } @@ -12,5 +12,5 @@ .row .col-12 = f.button :submit, t('devise.sessions.new.sign_in'), class: 'btn-block' - .auth-providers.col-md-6 + .auth-providers.col-md-5 == render 'devise/shared/links' \ No newline at end of file diff --git a/app/views/devise/shared/_links.html.slim b/app/views/devise/shared/_links.html.slim index ca74578a9..199eaf587 100644 --- a/app/views/devise/shared/_links.html.slim +++ b/app/views/devise/shared/_links.html.slim @@ -1,14 +1,14 @@ - if devise_mapping.omniauthable? - .social-auth-links.text-center.mb-3 + .social-auth-links.mb-3 - resource_class.oauth_providers.each do |provider| - unless provider == :ldap ruby: title = omniauth_display_name(provider) key = title.downcase - a.btn.btn-icon.btn-block href="#{public_send("user_#{provider}_omniauth_authorize_path")}" class="btn-default btn-auth-#{key}" - i.icon.fab class="fa-#{key}" - = t('devise.shared.links.sign_in_with_provider', provider: title) + a.btn.btn-default.btn-block.text-left href="#{public_send("user_#{provider}_omniauth_authorize_path")}" class="btn-auth-#{key}" + = t('devise.shared.links.sign_in_with_provider', provider: t("devise.shared.links.provider.#{key}", default: title)) + i.icon.fab.float-right class="fa-#{key}" - if controller_name != 'sessions' p.mb-1 From e665a373079adbea45689bae4401267037cdf7e7 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 12 Oct 2021 16:02:25 +0800 Subject: [PATCH 0711/2165] =?UTF-8?q?feat:=20=E5=BA=94=E7=94=A8=E8=A7=A3?= =?UTF-8?q?=E5=8C=85=20i18n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/teardowns_controller.rb | 10 +- app/models/metadatum.rb | 3 + app/views/debug_files/_help.html.slim | 5 +- app/views/teardowns/_android.html.slim | 16 +-- .../teardowns/_developer_certs_part.html.slim | 10 +- app/views/teardowns/_devices_part.html.slim | 4 +- app/views/teardowns/_help.html.slim | 56 +-------- app/views/teardowns/_ios.html.slim | 22 ++-- app/views/teardowns/_list.html.slim | 57 ++++----- app/views/teardowns/_macos.html.slim | 16 +-- .../teardowns/_mobileprovision.html.slim | 2 +- .../teardowns/_mobileprovision_part.html.slim | 22 +--- app/views/teardowns/create.html.slim | 9 -- app/views/teardowns/index.html.slim | 2 +- app/views/teardowns/new.html.slim | 12 +- app/views/teardowns/show.html.slim | 8 +- config/locales/zealot/zh-CN.yml | 110 +++++++++++++++++- 17 files changed, 204 insertions(+), 160 deletions(-) delete mode 100644 app/views/teardowns/create.html.slim diff --git a/app/controllers/teardowns_controller.rb b/app/controllers/teardowns_controller.rb index e93a8fff2..9a40ee47d 100644 --- a/app/controllers/teardowns_controller.rb +++ b/app/controllers/teardowns_controller.rb @@ -5,23 +5,25 @@ class TeardownsController < ApplicationController before_action :set_metadata, only: %i[show destroy] def index - @title = t('teardowns.title') + @title = t('.title') @metadata = Metadatum.page(params.fetch(:page, 1)) - .per(params.fetch(:per_page, 10)) + .per(params.fetch(:per_page, 50)) .order(id: :desc) end def show - @title = t('teardowns.show.title', name: @metadata.name, + @title = t('.title', name: @metadata.name, release_version: @metadata.release_version, build_version: @metadata.build_version) end def new - @title = t('teardowns.title') + @title = t('.title') + @metadata = Metadatum.new end def create + @title = t('.title') parse_app rescue AppInfo::NotFoundError, ActiveRecord::RecordNotFound => e flash[:error] = t('teardowns.messages.errors.not_found_file', message: e.message) diff --git a/app/models/metadatum.rb b/app/models/metadatum.rb index 0c608c420..ed41704d0 100644 --- a/app/models/metadatum.rb +++ b/app/models/metadatum.rb @@ -7,4 +7,7 @@ class Metadatum < ApplicationRecord enum platform: { ios: 'ios', android: 'android', mobileprovision: 'mobileprovision', macos: 'macos' } alias_attribute :packet_name, :bundle_id + + paginates_per 50 + max_paginates_per 100 end diff --git a/app/views/debug_files/_help.html.slim b/app/views/debug_files/_help.html.slim index a21af8610..da8fd2fc8 100644 --- a/app/views/debug_files/_help.html.slim +++ b/app/views/debug_files/_help.html.slim @@ -1,6 +1,9 @@ .col-md-12 - .card + .card.collapsed-card .card-header.card-border h3.card-title = t('debug_files.help.title') + .card-tools + button.btn.btn-tool data-card-widget="collapse" + i.fas.fa-plus .card-body.table-responsive = t('debug_files.help.body_html') \ No newline at end of file diff --git a/app/views/teardowns/_android.html.slim b/app/views/teardowns/_android.html.slim index f1d6828f4..7ce0a3c20 100644 --- a/app/views/teardowns/_android.html.slim +++ b/app/views/teardowns/_android.html.slim @@ -2,34 +2,34 @@ ruby: begin app_name = @metadata.name rescue Android::NotFoundError - app_name = '未知' + app_name = t('teardowns.show.unknow_app_name') end .col-md-6 .card .card-header - h3.card-title 应用信息 + h3.card-title = t('teardowns.show.metadata') .card-tools button.btn.btn-tool data-card-widget="collapse" i.fas.fa-minus .card-body dl.system-info - dt 名称 + dt = t('teardowns.show.app_name') dd pre = app_name - dt 版本 + dt = t('teardowns.show.version') dd pre = "#{@metadata.release_version} (#{@metadata.build_version})" - dt 包名 + dt = t('teardowns.show.package_name') dd pre = @metadata.packet_name - dt 支持设备 + dt = t('teardowns.show.supported_device') dd pre = @metadata.device - dt Android 最低版本 / 目标版本 + dt = t('teardowns.show.sdk_version_range') dd pre = "#{@metadata.min_sdk_version} / #{@metadata.target_sdk_version}" - dt 文件大小 + dt = t('teardowns.show.file_size') dd pre = number_to_human_size(@metadata.size) diff --git a/app/views/teardowns/_developer_certs_part.html.slim b/app/views/teardowns/_developer_certs_part.html.slim index 62f5f3ad1..b870c90ed 100644 --- a/app/views/teardowns/_developer_certs_part.html.slim +++ b/app/views/teardowns/_developer_certs_part.html.slim @@ -2,9 +2,7 @@ .card .card-header h3.card-title - | 开发者证书 ( - = @metadata.developer_certs.size - | ) + = t('teardowns.show.developer_certs_list', total: @metadata.developer_certs.size) .card-tools button.btn.btn-tool data-card-widget="collapse" i.fas.fa-minus @@ -13,9 +11,7 @@ .card-comment .comment-text.ml-0 span.username - | 证书 - = i + 1 + = t('teardowns.show.cert', index: i + 1) span.text-muted.float-right - = cert['expired_at'] - | 到期 + = t('teardowns.show.cert_expired_at', date: cert['expired_at']) = cert['name'] diff --git a/app/views/teardowns/_devices_part.html.slim b/app/views/teardowns/_devices_part.html.slim index 3a1e32308..877e04d14 100644 --- a/app/views/teardowns/_devices_part.html.slim +++ b/app/views/teardowns/_devices_part.html.slim @@ -2,9 +2,7 @@ .card .card-header h3.card-title - | 设备列表 ( - = @metadata.devices.size - | ) + = t('teardowns.show.devise_list', total: @metadata.devices.size) .card-tools button.btn.btn-tool data-card-widget="collapse" i.fas.fa-minus diff --git a/app/views/teardowns/_help.html.slim b/app/views/teardowns/_help.html.slim index 583b8b5bb..bbe7667c4 100644 --- a/app/views/teardowns/_help.html.slim +++ b/app/views/teardowns/_help.html.slim @@ -1,53 +1,9 @@ .col-md-12 - .card + .card.collapsed-card .card-header.card-border - h3.card-title 什么是应用解包? + h3.card-title = t('teardowns.help.title') + .card-tools + button.btn.btn-tool data-card-widget="collapse" + i.fas.fa-plus .card-body.table-responsive - div - | 通过右上角的  - i.icon.far.fa-plus-square - | 新建解包上传 iOS、Android 移动应用通过一系列复杂的解析和运算读取出来应用中的实用信息用于辅助阅读、参考和定位问题。具体的内容如下: - div - h5 Android - ul - li 名称 - li 支持设备 - li 版本 - li 包名(package name) - li 打包类型 - li Android 最低版本 / 目标版本 - li 文件大小 - li Activities - li Services - li Features - li Permissions - div - h5 iOS - ul - li 名称 - li 支持设备 - li 版本 - li 包名(bundle identifier) - li 打包类型 - li 最低 iOS 版本 - li 文件大小 - li Entitlements - li 启用能力 - li URL Schemes - li 测试设备列表 - li 开发者证书 - li - | 描述文件 - ul - li 名称 (类型) - li UUID - li 应用标识 - li 平台 - li 类型 - li 团队名称 (Team ID) - li 创建时间 - li 过期时间 - div - | 此功能由强大的  - a href="https://github.com/icyleaf/app_info" target="_blank" app_info - | 强力驱动。 + = t('teardowns.help.body_html') \ No newline at end of file diff --git a/app/views/teardowns/_ios.html.slim b/app/views/teardowns/_ios.html.slim index cd92228d6..e30c35ac7 100644 --- a/app/views/teardowns/_ios.html.slim +++ b/app/views/teardowns/_ios.html.slim @@ -1,33 +1,31 @@ - .col-md-6 .card .card-header - h3.card-title 应用信息 + h3.card-title = t('teardowns.show.metadata') .card-tools button.btn.btn-tool data-card-widget="collapse" i.fas.fa-minus .card-body dl.system-info - dt 名称 + dt = t('teardowns.show.app_name') dd pre = @metadata.name - dt 支持设备 + dt = t('teardowns.show.supported_device') dd - pre #{@metadata.device} (#{@metadata.platform}) - dt 版本 + pre #{@metadata.device} (#{device_name(@metadata.platform)}) + dt = t('teardowns.show.version') dd pre = "#{@metadata.release_version} (#{@metadata.build_version})" - dt Bundle Id + dt = t('teardowns.show.package_name') dd pre = @metadata.bundle_id - dt 打包类型 + dt = t('teardowns.show.release_type') dd pre = @metadata.release_type - - dt 最低 iOS 版本 + dt = t('teardowns.show.min_ios_version') dd pre = @metadata.min_sdk_version - dt 文件大小 + dt = t('teardowns.show.file_size') dd pre = number_to_human_size(@metadata.size) @@ -36,6 +34,6 @@ .col-md-6 == render 'mobileprovision_part' - == render 'card', title: '启用能力', raw: @metadata.capabilities + == render 'card', title: t('teardowns.show.capabilities'), raw: @metadata.capabilities == render 'card', title: 'URL Schemes', raw: @metadata.url_schemes == render 'card', title: 'Entitlements', raw: @metadata.entitlements \ No newline at end of file diff --git a/app/views/teardowns/_list.html.slim b/app/views/teardowns/_list.html.slim index 7d24c361c..b1277c2d4 100644 --- a/app/views/teardowns/_list.html.slim +++ b/app/views/teardowns/_list.html.slim @@ -1,44 +1,47 @@ .col-md-12 - .card - .card-header - h3.card-title - i.icon.fas.fa-history - | 上传历史 - .card-body.p-0 - - if @metadata.present? + - if @metadata.present? + .card + .card-header + h3.card-title + i.icon.fas.fa-history + = t('teardowns.index.upload_history') + .card-body.p-0 table.table.table-hover tr - th ID - th 应用名 - th 平台 - th 版本 - th 提交者 - th 上传时间 + th = t('teardowns.index.uploaded_at') + th = t('teardowns.index.app_name') + th = t('teardowns.index.version') + th = t('teardowns.index.type') + th = t('teardowns.index.uploader') + - if user_signed_in? - th 操作 + th = t('teardowns.index.actions') - @metadata.each_with_index do |md, index| tr td - = md.id + span data-toggle="tooltip" title="#{md.created_at}" + = time_ago_in_words(md.created_at) td = link_to md.name, teardown_path(md) - td - = md.platform td = md.mobileprovision? ? '-' : "#{md.release_version} (#{md.build_version})" td - = md.user&.username || '匿名者' + = device_name(md.platform) td - span data-toggle="tooltip" title="#{md.created_at}" - = time_ago_in_words(md.created_at) + = md.user&.username || t('teardowns.index.anonymous') + - if user_signed_in? td - a.btn.btn-tool href="#{teardown_path(md)}" data-confirm="确定删除?" data-method="delete" + a.btn.btn-tool href="#{teardown_path(md)}" data-confirm="#{t('teardowns.messages.confirm.destroy')}" data-method="delete" i.fas.fa-trash-alt - - else - .p-3 还没有任何应用解包记录! - - if @metadata.total_pages > 1 - .card-footer.clearfix - .float-right - = paginate @metadata \ No newline at end of file + - if @metadata.total_pages > 1 + .card-footer.clearfix + .float-right + = paginate @metadata + - else + .card.card-outline.card-warning + .card-header.card-border + h3.card-title = t('teardowns.index.not_found.title') + .card-body = t('teardowns.index.not_found.body_html') + diff --git a/app/views/teardowns/_macos.html.slim b/app/views/teardowns/_macos.html.slim index 4441b67bf..4f6d33f07 100644 --- a/app/views/teardowns/_macos.html.slim +++ b/app/views/teardowns/_macos.html.slim @@ -2,28 +2,28 @@ .col-md-12 .card .card-header - h3.card-title 应用信息 + h3.card-title = t('teardowns.show.metadata') .card-tools button.btn.btn-tool data-card-widget="collapse" i.fas.fa-minus .card-body dl.system-info - dt 名称 + dt = t('teardowns.show.app_name') dd pre = @metadata.name - dt 支持设备 + dt = t('teardowns.show.supported_device') dd pre #{@metadata.device} - dt 版本 + dt = t('teardowns.show.version') dd pre = "#{@metadata.release_version} (#{@metadata.build_version})" - dt Bundle Id + dt = t('teardowns.show.package_name') dd pre = @metadata.bundle_id - dt 最低 macOS 版本 + dt = t('teardowns.show.min_macos_version') dd pre = @metadata.min_sdk_version - dt 文件大小 + dt = t('teardowns.show.file_size') dd pre = number_to_human_size(@metadata.size) @@ -33,5 +33,5 @@ == render 'card', title: 'Entitlements', raw: @metadata.entitlements .col-md-4 - == render 'card', title: '启用能力', raw: @metadata.capabilities + == render 'card', title: t('teardowns.show.capabilities'), raw: @metadata.capabilities == render 'card', title: 'URL Schemes', raw: @metadata.url_schemes \ No newline at end of file diff --git a/app/views/teardowns/_mobileprovision.html.slim b/app/views/teardowns/_mobileprovision.html.slim index 23105fbcd..2734fca82 100644 --- a/app/views/teardowns/_mobileprovision.html.slim +++ b/app/views/teardowns/_mobileprovision.html.slim @@ -5,5 +5,5 @@ == render 'card', title: 'Entitlements', raw: @metadata.entitlements .col-md-4 - == render 'card', title: '启用能力', raw: @metadata.capabilities + == render 'card', title: t('teardowns.show.capabilities'), raw: @metadata.capabilities == render 'card', title: 'URL Schemes', raw: @metadata.url_schemes \ No newline at end of file diff --git a/app/views/teardowns/_mobileprovision_part.html.slim b/app/views/teardowns/_mobileprovision_part.html.slim index fed49f3cd..8fffba685 100644 --- a/app/views/teardowns/_mobileprovision_part.html.slim +++ b/app/views/teardowns/_mobileprovision_part.html.slim @@ -1,35 +1,25 @@ - if @metadata.mobileprovision.present? .card .card-header - h3.card-title 描述文件 + h3.card-title = t('teardowns.show.mobileprovision') .card-tools button.btn.btn-tool data-card-widget="collapse" i.fas.fa-minus .card-body dl.system-info - dt 名称 (类型) + dt = t('teardowns.show.mobileprovision_name') dd pre = "#{@metadata.mobileprovision['profile_name']} (#{@metadata.release_type})" - dt UUID + dt = t('teardowns.show.uuid') dd pre = @metadata.mobileprovision['uuid'] - - if @metadata.mobileprovision? - dt 应用标识 - dd - pre = @metadata.name - dt 平台 - dd - pre = @metadata.platform - dt 类型 - dd - pre = @metadata.device - dt 团队名称 (Team ID) + dt = t('teardowns.show.team_id') dd pre = "#{@metadata.mobileprovision['team_name']} (#{@metadata.mobileprovision['team_identifier'].first})" - dt 创建时间 + dt = t('teardowns.show.created_at') dd pre = @metadata.mobileprovision['created_at'] - dt 过期时间 + dt = t('teardowns.show.expired_at') dd pre = "#{@metadata.mobileprovision['expired_at']} (" diff --git a/app/views/teardowns/create.html.slim b/app/views/teardowns/create.html.slim deleted file mode 100644 index 704a6f424..000000000 --- a/app/views/teardowns/create.html.slim +++ /dev/null @@ -1,9 +0,0 @@ -- content_for :title do - | 应用解包结果 - -- if @app_info.respond_to?(:os) - == render "#{@app_info.os.downcase.to_s}" -- elsif @app_info.respond_to?(:mobileprovision) - == render "mobileprovision" -- else - p 抱歉无法解包,类型无法匹配! \ No newline at end of file diff --git a/app/views/teardowns/index.html.slim b/app/views/teardowns/index.html.slim index d84620e0e..f133eb0c9 100644 --- a/app/views/teardowns/index.html.slim +++ b/app/views/teardowns/index.html.slim @@ -7,7 +7,7 @@ - content_for :section_rightpanel do a.btn.btn-icon.bg-green href="#{new_teardown_path}" i.icon.far.fa-plus-square - | 新建解包 + = t('.create') .row == render 'list' diff --git a/app/views/teardowns/new.html.slim b/app/views/teardowns/new.html.slim index 22e638b79..078a07473 100644 --- a/app/views/teardowns/new.html.slim +++ b/app/views/teardowns/new.html.slim @@ -10,13 +10,9 @@ .card-body = form_tag(teardowns_path, multipart: true) do |form| .form-group - label.control-label.required for="file" - abbr title="必填项" * - | 解包文件 + = label_tag :file, "#{t('.file')} #{content_tag(:abbr, '*', title: 'required')}".html_safe, for: 'file' .input-group - = file_field_tag 'file', class: 'custom-file-input2' - input name="type" value="upload" type="hidden" + = file_field_tag 'file', class: 'form-control-file', id: 'file' + small.form-text.text-muted = t('.file_hint') - p.help-block 支持 .apk、 .ipa、.mobileprovision 以及 macOS.app.zip 文件 - - = submit_tag '开始解包', class: 'btn btn-primary' + = submit_tag t('.submit'), class: 'btn btn-primary' diff --git a/app/views/teardowns/show.html.slim b/app/views/teardowns/show.html.slim index 68e2cb74c..c0d99497c 100644 --- a/app/views/teardowns/show.html.slim +++ b/app/views/teardowns/show.html.slim @@ -1,13 +1,13 @@ - content_for :title do - = @title || '解包结果信息' + = @title .row - if @metadata.release.present? .col-md-12 .callout.callout-info - h5 关联提醒 + h5 = t('.related_app') p - | 当前解包关联的应用是 + = t('.related_body') = link_to @metadata.release.app_name, channel_release_path(@metadata.release.channel, @metadata.release) - == render @metadata.platform.downcase.to_s \ No newline at end of file + == render @metadata.platform.to_s.downcase \ No newline at end of file diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index b0cfcccbb..e7ce71de4 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -371,12 +371,120 @@ zh-CN: teardowns: title: 应用解包 + new: + title: 新建应用解包 + file: 文件 + choose_file: 选择文件 + file_hint: 支持 .apk、 .ipa、.mobileprovision 以及 macOS.app.zip 文件 + submit: 开始解包 + create: + create: :'teardowns.new.title' + index: + create: :'teardowns.new.title' + upload_history: 上传历史 + uploaded_at: 上传时间 + app_name: 应用名称 + version: 版本 + type: 类型 + uploader: 提交者 + actions: 操作 + anonymous: 匿名者 + not_found: + title: 没有发现任何应用解包! + body_html: 点击右上角的 新建应用解包。 + show: title: '%{name} %{release_version} (%{build_version}) 解包信息' expired_in: 还有%{time}左右过期 already_expired: 已经过期%{time} expired: 此时此刻刚好过期了! + related_app: 关联提醒 + related_body: 当前解包关联的应用是 + unknow_app_name: 未知 + + metadata: 应用信息 + app_name: 名称 + version: 版本 + package_name: 包名 + supported_device: 支持设备 + sdk_version_range: Android 最低版本 / 目标版本 + file_size: 文件大小 + release_type: 打包类型 + min_ios_version: 最低 iOS 版本 + min_macos_version: 最低 macOS 版本 + capabilities: 启用能力 + devise_list: '设备列表 (%{total})' + developer_certs_list: '开发者证书 (%{total})' + cert: '证书 %{index}' + cert_expired_at: '%{date} 到期' + mobileprovision: 描述文件 + uuid: UUID + mobileprovision_name: 名称 (类型) + team_id: 团队名称 (Team ID) + created_at: 创建时间 + expired_at: 过期时间 + + help: + title: 帮助中心 + body_html: | +

      + 通过右上角 按钮上传 iOS、Android 移动应用通过强大的 + app_info 强力驱动读取出来应用中的实用信息用于辅助阅读、 + 参考和定位问题: +

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      iOSAndroid
      名称名称
      支持设备支持设备
      包名(bundle identifier)包名(package name)
      打包类型打包类型
      最低 iOS 版本Android 最低版本 / 目标版本
      EntitlementsActivities
      启用能力Services
      URL SchemesFeatures
      测试设备列表Permissions
      开发者证书
      描述文件
      messages: + confirm: + destroy: 确定删除? upload_events: '%{name} 上传了 %{version} 版本' download_events: '%{name} %{version} 版本被下载' changelog_events: '%{name} %{version} 版本更新了变更日志' @@ -388,7 +496,7 @@ zh-CN: not_support_file_type: 应用的文件类型不支持 failed_get_metadata: 应用解析异常,请确保是支持的文件类型且没有安全加固处理 unknown_parse: '上传应用解析发现未知异常,原始错误 [%{class}]: %{message}' - choose_supported_file_type: 请选择需要解包的 ipa、apk 安装包或 .mobileprovision 文件 + choose_supported_file_type: 请选择需要解包的 .apk、 .ipa、.mobileprovision 或 macOS.app.zip 文件 udid: title: 设备 UDID From 19c697b1ff7c87d23faa6f6e5770860d7580f881 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 12 Oct 2021 20:08:58 +0800 Subject: [PATCH 0712/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E7=B3=BB?= =?UTF-8?q?=E7=BB=9F=E8=AE=BE=E7=BD=AE=E5=AF=B9=E4=BA=8E=20boolean=20?= =?UTF-8?q?=E5=80=BC=E9=BB=98=E8=AE=A4=E7=8A=B6=E6=80=81=E7=9A=84=E5=8B=BE?= =?UTF-8?q?=E9=80=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/admin/settings/_form.html.slim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/admin/settings/_form.html.slim b/app/views/admin/settings/_form.html.slim index e0d304153..f6417a7a7 100644 --- a/app/views/admin/settings/_form.html.slim +++ b/app/views/admin/settings/_form.html.slim @@ -19,7 +19,7 @@ input.hidden type="hidden" value="#{@setting.type}" name="setting[type]" - if @setting.type == :boolean - = f.input :value, label: t('admin.settings.enable'), as: :boolean, checked: type, hint: false + = f.input :value, label: t('admin.settings.enable'), as: :boolean, input_html: { checked: @value }, hint: false - elsif @setting.type == :hash || @setting.type == :array = f.input :value, as: :text, input_html: { value: JSON.pretty_generate(@value) } - else From bb833b799d9426499ca003257bf019d7bc9c92d7 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 12 Oct 2021 20:10:50 +0800 Subject: [PATCH 0713/2165] =?UTF-8?q?fix:=20=E8=AE=BE=E7=BD=AE=E7=AC=AC?= =?UTF-8?q?=E4=B8=89=E6=96=B9=E7=99=BB=E5=BD=95=E4=BF=AE=E6=94=B9=E4=B8=BA?= =?UTF-8?q?=E4=B8=8D=E5=8F=AF=E7=BC=96=E8=BE=91=EF=BC=8C=E7=BC=96=E8=BE=91?= =?UTF-8?q?=E4=B8=8D=E9=87=8D=E5=90=AF=E4=B9=9F=E6=97=A0=E6=B3=95=E7=94=9F?= =?UTF-8?q?=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/setting.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/models/setting.rb b/app/models/setting.rb index a05b5bab6..112f43bea 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -89,13 +89,13 @@ def url_options # 第三方登录 scope :third_party_auth do - field :feishu, type: :hash, display: true, default: { + field :feishu, type: :hash, readonly: true, display: true, default: { enabled: ENV['FEISHU_ENABLED'] || false, app_id: ENV['FEISHU_APP_ID'], app_secret: ENV['FEISHU_APP_SECRET'], } - field :gitlab, type: :hash, display: true, default: { + field :gitlab, type: :hash, readonly: true, display: true, default: { enabled: ENV['GITLAB_ENABLED'] || false, site: ENV['GITLAB_SITE'] || 'https://gitlab.com/api/v4', scope: ENV['GITLAB_SCOPE'] || 'read_user', @@ -103,13 +103,13 @@ def url_options secret: ENV['GITLAB_SECRET'], } - field :google_oauth, type: :hash, display: true, default: { + field :google_oauth, type: :hash, readonly: true, display: true, default: { enabled: ENV['GOOGLE_OAUTH_ENABLED'] || false, client_id: ENV['GOOGLE_CLIENT_ID'], secret: ENV['GOOGLE_SECRET'], } - field :ldap, type: :hash, display: true, default: { + field :ldap, type: :hash, readonly: true, display: true, default: { enabled: ENV['LDAP_ENABLED'] || false, host: ENV['LDAP_HOST'], port: ENV['LDAP_PORT'] || '389', From d2647cd42fe9f0a4351b306984caf52885cc88a0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 Oct 2021 18:16:53 +0000 Subject: [PATCH 0714/2165] chore(deps): bump puma from 5.5.0 to 5.5.1 Bumps [puma](https://github.com/puma/puma) from 5.5.0 to 5.5.1. - [Release notes](https://github.com/puma/puma/releases) - [Changelog](https://github.com/puma/puma/blob/master/History.md) - [Commits](https://github.com/puma/puma/compare/v5.5.0...v5.5.1) --- updated-dependencies: - dependency-name: puma dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 6384a0c8f..da68f710d 100644 --- a/Gemfile +++ b/Gemfile @@ -4,7 +4,7 @@ source 'https://rubygems.org' git_source(:github) { |repo_name| "https://github.com/#{repo_name}" } -gem 'puma', '~> 5.5.0' +gem 'puma', '~> 5.5.1' gem 'rails', '~> 6.1.4' gem 'rails-i18n', '~> 6.0.0' gem 'rake', '~> 13.0.4' diff --git a/Gemfile.lock b/Gemfile.lock index ca0236b6c..bc378a8f7 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -326,7 +326,7 @@ GEM interception (>= 0.5) pry (>= 0.12.0) public_suffix (4.0.6) - puma (5.5.0) + puma (5.5.1) nio4r (~> 2.0) pundit (2.1.0) activesupport (>= 3.0.0) @@ -546,7 +546,7 @@ DEPENDENCIES pry-byebug pry-rails pry-rescue - puma (~> 5.5.0) + puma (~> 5.5.1) pundit (~> 2.1.0) rack-cors (~> 1.1.1) rails (~> 6.1.4) From 2e1bb76548841c27cd8833615c750f4298735f5c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 13 Oct 2021 21:02:04 +0000 Subject: [PATCH 0715/2165] chore(deps): bump puma from 5.5.1 to 5.5.2 Bumps [puma](https://github.com/puma/puma) from 5.5.1 to 5.5.2. - [Release notes](https://github.com/puma/puma/releases) - [Changelog](https://github.com/puma/puma/blob/master/History.md) - [Commits](https://github.com/puma/puma/compare/v5.5.1...v5.5.2) --- updated-dependencies: - dependency-name: puma dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index da68f710d..3e063da94 100644 --- a/Gemfile +++ b/Gemfile @@ -4,7 +4,7 @@ source 'https://rubygems.org' git_source(:github) { |repo_name| "https://github.com/#{repo_name}" } -gem 'puma', '~> 5.5.1' +gem 'puma', '~> 5.5.2' gem 'rails', '~> 6.1.4' gem 'rails-i18n', '~> 6.0.0' gem 'rake', '~> 13.0.4' diff --git a/Gemfile.lock b/Gemfile.lock index bc378a8f7..b7e96d84d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -326,7 +326,7 @@ GEM interception (>= 0.5) pry (>= 0.12.0) public_suffix (4.0.6) - puma (5.5.1) + puma (5.5.2) nio4r (~> 2.0) pundit (2.1.0) activesupport (>= 3.0.0) @@ -546,7 +546,7 @@ DEPENDENCIES pry-byebug pry-rails pry-rescue - puma (~> 5.5.1) + puma (~> 5.5.2) pundit (~> 2.1.0) rack-cors (~> 1.1.1) rails (~> 6.1.4) From 5dd178bc110f72e52c51f1889fbbff0ad7f5964f Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 14 Oct 2021 15:32:42 +0800 Subject: [PATCH 0716/2165] =?UTF-8?q?feat:=20=E8=8B=B1=E8=AF=AD=E8=AF=AD?= =?UTF-8?q?=E8=A8=80=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/admin/settings_controller.rb | 5 +- app/controllers/api/apps/upload_controller.rb | 2 +- .../api/apps/version_exist_controller.rb | 2 +- app/javascript/javascripts/admin/index.js | 5 +- app/javascript/stylesheets/system_info.scss | 36 +- app/models/release.rb | 4 +- app/views/admin/settings/_form.html.slim | 2 +- app/views/admin/system_info/index.html.slim | 6 +- app/views/admin/users/edit.html.slim | 4 +- app/views/admin/users/new.html.slim | 2 +- app/views/apps/_form.html.slim | 2 +- app/views/channels/_form.html.slim | 2 +- app/views/channels/filters/_list.slim | 70 +- app/views/channels/filters/index.slim | 2 +- app/views/debug_files/new.html.slim | 2 +- app/views/layouts/_content_header.html.slim | 4 +- app/views/layouts/_main_sidebar.html.slim | 2 +- app/views/releases/body/_metadata.html.slim | 2 +- app/views/releases/new.html.slim | 2 +- app/views/schemes/_form.html.slim | 2 +- .../teardowns/_developer_certs_part.html.slim | 2 +- app/views/teardowns/_devices_part.html.slim | 2 +- app/views/udid/show.html.slim | 19 +- config/locales/simple_form/simple_form.en.yml | 122 ++- config/locales/zealot/en.yml | 767 +++++++++++++++++- config/locales/zealot/zh-CN.yml | 34 +- 26 files changed, 959 insertions(+), 145 deletions(-) diff --git a/app/controllers/admin/settings_controller.rb b/app/controllers/admin/settings_controller.rb index 37c500898..f69d8941d 100644 --- a/app/controllers/admin/settings_controller.rb +++ b/app/controllers/admin/settings_controller.rb @@ -5,12 +5,12 @@ class Admin::SettingsController < ApplicationController before_action :verify_editable_setting, only: %i[edit] def index - @title = t('system_settings.title') + @title = t('.title') @settings = Setting.site_configs end def edit - @title = t('admin.settings.edit_value') + @title = t('.title') @value = @setting.value || @setting.default_value # FIXME: RailsSettings::Base 初始化会缓存造成 i18n 第一时间拿不到 @@ -21,6 +21,7 @@ def edit end def update + @title = t('.title') new_value = setting_param[:value] new_value = JSON.parse(new_value) if setting_param[:type] == 'hash' || setting_param[:type] == 'array' if @setting.value != new_value diff --git a/app/controllers/api/apps/upload_controller.rb b/app/controllers/api/apps/upload_controller.rb index 08fdd7211..28274e1f5 100644 --- a/app/controllers/api/apps/upload_controller.rb +++ b/app/controllers/api/apps/upload_controller.rb @@ -73,7 +73,7 @@ def with_updated_channel end def create_release(channel) - @release = channel.releases.upload_file(release_params, app_parser) + @release = channel.releases.upload_file(release_params, app_parser, 'api') @release.save! end diff --git a/app/controllers/api/apps/version_exist_controller.rb b/app/controllers/api/apps/version_exist_controller.rb index b1ba905c0..c2b4d8bc3 100644 --- a/app/controllers/api/apps/version_exist_controller.rb +++ b/app/controllers/api/apps/version_exist_controller.rb @@ -20,7 +20,7 @@ def determine_params! (channel_params.key?(:bundle_id) && channel_params.key?(:release_version) && channel_params.key?(:build_version)) - raise ActionController::ParameterMissing, t('api.apps.version_exist.missing_params') + raise ActionController::ParameterMissing, t('api.apps.version_exist.show.missing_params') end def channel_params diff --git a/app/javascript/javascripts/admin/index.js b/app/javascript/javascripts/admin/index.js index 5a55ccadf..3bf02e9ca 100644 --- a/app/javascript/javascripts/admin/index.js +++ b/app/javascript/javascripts/admin/index.js @@ -12,8 +12,9 @@ function check_new_version() { if (!elm.length) { return; } var current_version = $('#current-version').html(); + var title = elm.data('title'); if (current_version == 'development') { - insert_link(elm, '发现新版本 (始终显示)', 'https://github.com/tryzealot/zealot'); + insert_link(elm, title, 'https://github.com/tryzealot/zealot'); return; } @@ -29,7 +30,7 @@ function check_new_version() { if (compareVersion(latest_version, current_version) <= 0) { return; } var release_link = json.html_url; - insert_link(elm, '发现新版本 ' + latest_version, release_link); + insert_link(elm, title + ' ' + latest_version, release_link); }); } diff --git a/app/javascript/stylesheets/system_info.scss b/app/javascript/stylesheets/system_info.scss index ebba19b21..4bd55fd62 100644 --- a/app/javascript/stylesheets/system_info.scss +++ b/app/javascript/stylesheets/system_info.scss @@ -15,11 +15,39 @@ dl.system-info { background-color: #f7f8f9; color: #2f2936; - #new-version a { - color: rgb(233, 120, 120); + #current-version { + float: none; + } + + #new-version { + float: none; + + a { + color: rgb(233, 120, 120); + + i { + padding-right: 5px; + } + } + } + + @media (min-width: 768px) { + #current-version { + float: left !important; + } + + #new-version { + float: right !important; + } + } + + @media (max-width: 767px) { + #current-version { + float: none; + } - i { - padding-right: 5px; + #new-version { + float: none; } } } diff --git a/app/models/release.rb b/app/models/release.rb index 47a56cb0c..73aa51a23 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -36,7 +36,7 @@ def self.version_by_channel(channel_slug, release_id) end # 上传 app - def self.upload_file(params, parser = nil) + def self.upload_file(params, parser = nil, default_source = 'web') file = params[:file].path return if file.blank? @@ -44,7 +44,7 @@ def self.upload_file(params, parser = nil) rescuing_app_parse_errors do parser ||= AppInfo.parse(file) - release.source ||= 'Web' + release.source ||= default_source release.name = parser.name release.bundle_id = parser.bundle_id release.release_version = parser.release_version diff --git a/app/views/admin/settings/_form.html.slim b/app/views/admin/settings/_form.html.slim index f6417a7a7..afcccf322 100644 --- a/app/views/admin/settings/_form.html.slim +++ b/app/views/admin/settings/_form.html.slim @@ -6,7 +6,7 @@ .card-tools a href="#{admin_settings_path}" i.icon.far.fa-list-alt - = t('admin.link.back_to_list') + = t('links.back_to_list') = simple_form_for(@setting, url: admin_setting_path(@setting.var), method: :patch) do |f| .card-body diff --git a/app/views/admin/system_info/index.html.slim b/app/views/admin/system_info/index.html.slim index 44fa4eb6c..ae3dd6bb0 100644 --- a/app/views/admin/system_info/index.html.slim +++ b/app/views/admin/system_info/index.html.slim @@ -14,9 +14,9 @@ dt = t('.zealot_version') dd pre - #new-version.float-right #current-version = @server[:zealot_version] + #new-version data-title="#{Rails.env.development? ? t('.dev_new_version') : t('.new_version')}" dt = t('.vcs_ref') dd pre = @server[:zealot_vcs_ref] @@ -33,7 +33,7 @@ dd pre - if @server[:cpu] - = t('.cpu_core', size: @server[:cpu]) + = t('.cpu_core', count: @server[:cpu]) - else = t('.fail_detect_cpu') dt = t('.memory_info') @@ -98,7 +98,7 @@ .card.collapsed-card .card-header - h3.card-title = t('.system_enviroment') + h3.card-title = t('.system_environment') .card-tools button.btn.btn-tool data-card-widget="collapse" i.fas.fa-plus diff --git a/app/views/admin/users/edit.html.slim b/app/views/admin/users/edit.html.slim index 47229bc6a..753f8a3c0 100644 --- a/app/views/admin/users/edit.html.slim +++ b/app/views/admin/users/edit.html.slim @@ -18,6 +18,6 @@ h3.card-title = t('admin.users.user_info') .card-tools a href="#{admin_users_path}" - i.far.fa-list-alt - = t('admin.link.back_to_list') + i.icon.far.fa-list-alt + = t('links.back_to_list') == render 'form' diff --git a/app/views/admin/users/new.html.slim b/app/views/admin/users/new.html.slim index c9eb9f869..b145d7397 100644 --- a/app/views/admin/users/new.html.slim +++ b/app/views/admin/users/new.html.slim @@ -12,5 +12,5 @@ .card-tools a href="#{admin_users_path}" i.icon.far.fa-list-alt - = t('admin.link.back_to_list') + = t('links.back_to_list') == render 'form' \ No newline at end of file diff --git a/app/views/apps/_form.html.slim b/app/views/apps/_form.html.slim index 6214cbf9e..d65fd870d 100644 --- a/app/views/apps/_form.html.slim +++ b/app/views/apps/_form.html.slim @@ -11,7 +11,7 @@ ruby: .card-tools a href="#{link_url}" i.icon.far.fa-list-alt - = t('links.goback_to_list') + = t('links.back_to_list') .card-body = simple_form_for @app do |f| = f.error_notification diff --git a/app/views/channels/_form.html.slim b/app/views/channels/_form.html.slim index 72439bb28..c8262bdac 100644 --- a/app/views/channels/_form.html.slim +++ b/app/views/channels/_form.html.slim @@ -9,7 +9,7 @@ ruby: .card-tools a href="#{app_path(@scheme.app)}" i.icon.far.fa-list-alt - = t('links.goback_to_list') + = t('links.back_to_list') .card-body = simple_form_for(@channel, url: form_url) do |f| = f.error_notification diff --git a/app/views/channels/filters/_list.slim b/app/views/channels/filters/_list.slim index 3e35a8898..dfce19f2f 100644 --- a/app/views/channels/filters/_list.slim +++ b/app/views/channels/filters/_list.slim @@ -1,36 +1,36 @@ -table.table.table-hover - tr - th = t('channels.show.id') - th = t('channels.show.release_version') - th = t('channels.show.build_version') - th = t('channels.show.release_type') - th = t('channels.show.git_branch') - th = t('channels.show.git_commit') - th = t('channels.show.uploaded_at') - - if user_signed_in? - th = t('channels.show.actions') - - if @releases.present? - - @releases.each_with_index do |release, index| - tr - td - = link_to index + 1, channel_release_path(release.channel, release) - td - = link_to release.release_version, channel_version_path(release.channel, release.release_version) - td - = release.build_version - td - = release_type_url(release) - td - = git_branch_url(release) - td - = git_commit_url(release.channel.git_url, release.git_commit) - td - span data-toggle="tooltip" title="#{release.created_at}" - = time_ago_in_words(release.created_at) - - if user_signed_in? - td - a.btn.btn-tool href="#{channel_release_path(@channel, release)}" data-confirm="#{t('channels.messages.confirm.destroy')}" data-method="delete" - i.fas.fa-trash-alt - - else +- if @releases.present? + table.table.table-hover tr - th colspan="5" = t('channels.show.empty_version') + th = t('channels.show.id') + th = t('channels.show.release_version') + th = t('channels.show.build_version') + th = t('channels.show.release_type') + th = t('channels.show.git_branch') + th = t('channels.show.git_commit') + th = t('channels.show.uploaded_at') + - if user_signed_in? + th = t('channels.show.actions') + + - @releases.each_with_index do |release, index| + tr + td + = link_to index + 1, channel_release_path(release.channel, release) + td + = link_to release.release_version, channel_version_path(release.channel, release.release_version) + td + = release.build_version + td + = release_type_url(release) + td + = git_branch_url(release) + td + = git_commit_url(release.channel.git_url, release.git_commit) + td + span data-toggle="tooltip" title="#{release.created_at}" + = time_ago_in_words(release.created_at) + - if user_signed_in? + td + a.btn.btn-tool href="#{channel_release_path(@channel, release)}" data-confirm="#{t('channels.messages.confirm.destroy')}" data-method="delete" + i.fas.fa-trash-alt +- else + p.p-3 = t('channels.show.empty_version') diff --git a/app/views/channels/filters/index.slim b/app/views/channels/filters/index.slim index 69e42c73c..8d89b3cee 100644 --- a/app/views/channels/filters/index.slim +++ b/app/views/channels/filters/index.slim @@ -12,6 +12,6 @@ .card-tools a href="#{channel_path(@channel)}" i.icon.far.fa-list-alt - = t('links.goback_to_list') + = t('links.back_to_list') .table-responsive == render 'channels/filters/list' diff --git a/app/views/debug_files/new.html.slim b/app/views/debug_files/new.html.slim index 2e28f8304..43d223cfb 100644 --- a/app/views/debug_files/new.html.slim +++ b/app/views/debug_files/new.html.slim @@ -10,7 +10,7 @@ .card-tools a href="#{debug_files_path}" i.icon.far.fa-list-alt - = t('links.goback_to_list') + = t('links.back_to_list') .card-body == render 'form' diff --git a/app/views/layouts/_content_header.html.slim b/app/views/layouts/_content_header.html.slim index a4a976329..0bfb02c15 100644 --- a/app/views/layouts/_content_header.html.slim +++ b/app/views/layouts/_content_header.html.slim @@ -9,9 +9,9 @@ ruby: section.content-header .container-fluid .row.pl-2 - .col-sm-6 + .col-sm-8 h1 = yield :section_title - .col-sm-6 + .col-sm-4 - if right_panel.present? div.float-sm-right = right_panel diff --git a/app/views/layouts/_main_sidebar.html.slim b/app/views/layouts/_main_sidebar.html.slim index 13a30b506..100f829fd 100644 --- a/app/views/layouts/_main_sidebar.html.slim +++ b/app/views/layouts/_main_sidebar.html.slim @@ -38,7 +38,7 @@ li.nav-item a.nav-link href="#{admin_settings_path}" class="#{active_class(admin_settings_path)}" i.nav-icon.fas.fa-cog - p = t('system_settings.title') + p = t('settings.title') li.nav-item.has-treeview class="#{active_class([admin_system_info_index_path, admin_background_jobs_path, admin_page_analytics_path, admin_database_analytics_path], 'menu-open')}" a.nav-link href="#" class="#{active_class([admin_system_info_index_path, admin_background_jobs_path, admin_page_analytics_path, admin_database_analytics_path])}" i.nav-icon.fas.fa-laptop-code diff --git a/app/views/releases/body/_metadata.html.slim b/app/views/releases/body/_metadata.html.slim index 2dfb39fa5..28294e8be 100644 --- a/app/views/releases/body/_metadata.html.slim +++ b/app/views/releases/body/_metadata.html.slim @@ -60,7 +60,7 @@ li title="#{t('releases.show.source')}" i.fas.fa-compass - if @release.ci_url.blank? - = @release.source + = t("releases.sources.#{@release.source.downcase}", default: @release.source) - else = link_to @release.source, @release.ci_url - if @release.metadata.present? diff --git a/app/views/releases/new.html.slim b/app/views/releases/new.html.slim index 6203113b1..39c1c27eb 100644 --- a/app/views/releases/new.html.slim +++ b/app/views/releases/new.html.slim @@ -13,6 +13,6 @@ .card-tools a href="#{channel_path(@channel)}" i.icon.far.fa-list-alt - = t('links.goback_to_list') + = t('links.back_to_list') .card-body == render 'form' \ No newline at end of file diff --git a/app/views/schemes/_form.html.slim b/app/views/schemes/_form.html.slim index 73fce37c0..c1eab23c4 100644 --- a/app/views/schemes/_form.html.slim +++ b/app/views/schemes/_form.html.slim @@ -10,7 +10,7 @@ ruby: .card-tools a href="#{app_path(@app)}" i.icon.far.fa-list-alt - = t('links.goback_to_list') + = t('links.back_to_list') .card-body = simple_form_for(@scheme, url: form_url) do |f| = f.error_notification diff --git a/app/views/teardowns/_developer_certs_part.html.slim b/app/views/teardowns/_developer_certs_part.html.slim index b870c90ed..e193e2181 100644 --- a/app/views/teardowns/_developer_certs_part.html.slim +++ b/app/views/teardowns/_developer_certs_part.html.slim @@ -2,7 +2,7 @@ .card .card-header h3.card-title - = t('teardowns.show.developer_certs_list', total: @metadata.developer_certs.size) + = t('teardowns.show.developer_certs_list', count: @metadata.developer_certs.size) .card-tools button.btn.btn-tool data-card-widget="collapse" i.fas.fa-minus diff --git a/app/views/teardowns/_devices_part.html.slim b/app/views/teardowns/_devices_part.html.slim index 877e04d14..061f39084 100644 --- a/app/views/teardowns/_devices_part.html.slim +++ b/app/views/teardowns/_devices_part.html.slim @@ -2,7 +2,7 @@ .card .card-header h3.card-title - = t('teardowns.show.devise_list', total: @metadata.devices.size) + = t('teardowns.show.devise_list', count: @metadata.devices.size) .card-tools button.btn.btn-tool data-card-widget="collapse" i.fas.fa-minus diff --git a/app/views/udid/show.html.slim b/app/views/udid/show.html.slim index 709673606..eac12f122 100644 --- a/app/views/udid/show.html.slim +++ b/app/views/udid/show.html.slim @@ -52,14 +52,14 @@ button.btn.btn-success.btn-flat.btn-clipboard data-clipboard-target="#version-text" i.far.fa-clipboard - .col-md-12 - .card - .card-header - h3.card-title - i.icon.fas.fa-cubes - = t('udid.show.registered_apps') - .card-body - - if @device && @device.channels.present? + - if @device && @device.channels.present? + .col-md-12 + .card + .card-header + h3.card-title + i.icon.fas.fa-cubes + = t('udid.show.registered_apps') + .card-body .timeline - @device.channels.each do |channel| ruby: @@ -92,7 +92,4 @@ = release.short_git_commit div i.fas.fa-clock.bg-gray - - else - .p-2 - p = t('udid.show.not_found_html') diff --git a/config/locales/simple_form/simple_form.en.yml b/config/locales/simple_form/simple_form.en.yml index 237438334..bc214c08e 100644 --- a/config/locales/simple_form/simple_form.en.yml +++ b/config/locales/simple_form/simple_form.en.yml @@ -10,22 +10,106 @@ en: # html: '*' error_notification: default_message: "Please review the problems below:" - # Examples - # labels: - # defaults: - # password: 'Password' - # user: - # new: - # email: 'E-mail to sign in.' - # edit: - # email: 'E-mail.' - # hints: - # defaults: - # username: 'User name to sign in.' - # password: 'No special characters, please.' - # include_blanks: - # defaults: - # age: 'Rather not say' - # prompts: - # defaults: - # age: 'Select your age' + labels: + defaults: + name: Name + password: Password + channel: Channel + user: + username: Username + email: E-mail + password: Password + password_confirmation: Password confirmation + role: 'Role' + remember_me: Remember me + app: + name: App name + scheme: + name: Scheme name + channel: + name: Channel name + device_type: Device type + bundle_id: Bundle id + git_url: Git URL + slug: Slug + password: Password + release: + file: File + changelog: Changelog + release_type: Release type + branch: Git branch + git_commit: Git commit SHA + ci_url: CI URL + web_hook: + url: URL + body: Body + upload_events: Upload events + download_events: Download events + changelog_events: Changelog events + channels: Enabled channels + debug_file: + app_id: App + device_type: Device type + release_version: Release version + build_version: Build version + file: File + checksum: File checksum + setting: + value: Value + + hints: + defaults: + channel: For example, the platform of app. + app: + schemes: + name: :'simple_form.hits.scheme.name' + scheme: + name: App in the function, the type of audience-oriented division. for example, adhoc, test, production etc. + channel: + name: Recommended to distinguish different channels according to the application platform, single platform applications can also be the name of the distribution market. + device_type: Whic device type of app. for example, iOS, Android, macOS etc. + bundle_id: Validate the bundle id (package name) of app, leave empty or fill * to skip validate. + git_url: Git URL, for example, the repo URL of Github, Gitlab or self-host. + slug: A slug is the part of a URL that identifies a particular page on a website in an easy-to-read form. + password: Need password by fill it when user is not log in. + release: + file: Support iOS.ipa、Android.apk and macOS.app.zip file + changelog: a log or record of all notable changes made to a upload. + release_type: 'iOS: debug、adhoc、release; Android: debug、release' + branch: Git branch. In general either main or develop. + git_commit: 40 bit length SHA value of git commit + ci_url: the detail URL of Jenkins、Gitlab CI + web_hook: + body: Custom JSON struct body to apply the third party notification services, Use default struct by leave it empty. + debug_file: + device_type: Whic device type of app. for example, iOS, Android, macOS etc. + file: Require a zipped file of debug file. for example, dSYM in iOS, proguard in Android. + setting: + value: Use JSON standard format to edit, otherwise it will fail to save. + + placeholders: + release: + changelog: The developer is lazy without leaving anyting. + web_hook: + url: 'http://example.com/web-hooks' + body: | + { + event: @event, + title: @title, + name: @app_name, + app_name: @app_name, + device_type: @device_type, + release_version: @release_version, + build_version: @build_version, + size: @file_size, + changelog: @changelog, + release_url: @release_url, + install_url: @install_url, + icon_url: @icon_url, + qrcode_url: @qrcode_url, + uploaded_at: @uploaded_at + } + debug_file: + release_version: '1.0.0' + build_version: '1.0' + checksum: Ignore me, pure validate the file use \ No newline at end of file diff --git a/config/locales/zealot/en.yml b/config/locales/zealot/en.yml index d7d9efe92..412545d79 100644 --- a/config/locales/zealot/en.yml +++ b/config/locales/zealot/en.yml @@ -1,37 +1,740 @@ -# Files in the config/locales directory are used for internationalization -# and are automatically loaded by Rails. If you want to use locales other -# than English, add the necessary files in this directory. -# -# To use the locales, use `I18n.t`: -# -# I18n.t 'hello' -# -# In views, this is aliased to just `t`: -# -# <%= t('hello') %> -# -# To use a different locale, set it with `I18n.locale`: -# -# I18n.locale = :es -# -# This would use the information in config/locales/es.yml. -# -# The following keys must be escaped otherwise they will not be retrieved by -# the default I18n backend: -# -# true, false, on, off, yes, no -# -# Instead, surround them with single quotes. -# -# en: -# 'true': 'foo' -# -# To learn more, please read the Rails Internationalization guide -# available at https://guides.rubyonrails.org/i18n.html. - en: + function_section: Function + toolbox_section: Toolbox + admin_section: Admin + monitors_section: Monitor + user_profile: User profile + log_out: Log out + log_in: Log in + + intro: + title: Over The Air Server for deployment of mobile and macOS apps + description: Zealot makes it easy to let users to test your apps which it provides rich component libraries to make integration with Jenkins and Gitlab easily. + + links: + back_to_list: Back to list + + admin: + system_info: + index: + zealot_version: Zealot version + vcs_ref: VCS Ref + build_date: Build date + server_info: Server info + found_new_version: 'Found new version: %{version}' + os_info: OS info + ruby_version: Ruby version + cpu_info: CPU + cpu_core: + one: 'One Core' + other: '%{count} Cores' + fail_detect_cpu: Fail to detect CPU information + memory_info: Memory + fail_detect_memory: Fail to detect memory information + disk_info: Disk + fail_detect_disk: Fail to detect disk information + lauched_time: Launched time + volume_mounted: Volume mounted + system_environment: System environment + file_permissions: File permissions + ruby_gems: Ruby Gems + logs: Logs + new_version: Found new version + dev_new_version: Found new version (dev mode) + messages: + file_permissions_tip: If you see a warning icon in the list below it means that the paths are not writable, which may cause Zealot to be unavailable or abnormal. + + settings: + index: + title: :'settings.title' + edit: + title: Edit setting + + enable: Enabled + disable: Disabled + validates: 'Rule:%{value}' + + general: General + site_title: Site title + site_https: Enable HTTPS + site_domain: Site domain + + presets: Presets + default_schemes: Default schemes + default_role: Default user role + + switch_mode: Switch mode + registrations_mode: Registrations mode + guest_mode: Guest mode + demo_mode: Demo mode (Reset data daily) + + third_party_auth: Third pary auth + ldap: LDAP + feishu: Feihsu + google_oauth: Google OAuth + + backup: Backup + misc: Misc + + stmp: Mail STMP + mailer_default_from: Default email send from + mailer_default_to: Default sender + mailer_options: Options + + archives: Archive uploaded binaries + keep_uploads: Keep all + + empty_value: Empty + + no_editable_key: Read only + submit: + create: Create + update: Edit + + users: + new_user: New user + user_info: User information + number: '#' + nickname: Nickname + email: E-mail + role: Role + status: Status + last_login_time: Last login tiem + action: Action + actived: Actived + unactive: Unactive + never_logined: Never logined + destroy_user: Destroy + destroy_user_confirm: Are you sure you want to delete the [%{user}] user? + active_link: Active link + active_link_tip: If the inviting user does not receive the activation email, send this link to active. + + web_hooks: + show: Web hook detail + new: New web hook + edit: Edit web hook + + number: '#' + url: URL + channels: Channels + action: Action + not_found: Not found any web hook. + create_web_hook_from_channel_inside: Create the web hook via inside the channel of app, You can edit, destory them here. + destroy: Destroy + destroy_confirm: Destroy confirm? + messages: + success: + enable: Enabled the web hook successfully + disable: Disabled the web hook successfully + test: Test sent successfully + + dashboard: + title: Dashboard + analytics: + apps: :'apps.title' + debug_files: :'debug_files.title' + teardowns: :'teardowns.title' + uploads: Uploads + web_hooks: :'web_hooks.title' + users: :'users.title' + background_jobs: :'background_jobs.title' + disk_usage: Disk usage + timeline: + title: Timeline + upload_release: uploaded a verison %{release_version} (%{build_version}) + not_found: Not found any upload. + + apps: + title: Apps + index: + schemes: schemes + channels: channels + uploads: uploads + created_at: Created at %{time} + not_found: + title: Not found app. + body_html: Click the button New app on the top-right. + show: + new_scheme: New scheme + edit_app: Edit app + destroy_app: Destroy app + new_channel: New Channel + edit_scheme: Edit Scheme + destory_scheme: Destroy Scheme + not_found_channel_body_html: | + Not found any channel. Click the button to new a channel. + not_found_scheme: + title: Not found any scheme. + body_html: | +

      Click the button to new a scheme.

      +

      Usually use a matter of classifying the app, for example in terms of the development process it can be divided:

      +
        +
      • Debug、Adhoc、Public test、Production
      • +
      +

      Use the app store channal in Android app:

      +
        +
      • Google Play、Huawei、Xiaomi、Vivo、Oppo etc
      • +
      + new: + title: New app + edit: + title: Edit app + messages: + failture: + not_found_app_by_version: 'Not found app version: %{version}' + not_found_app: Not found app by id %{id}, redirect to list of app. + confirm: + delete_app: Confirm to destroy【%{name}】app and all related data of schemes, channels and uploaded releases? + delete_app_scheme: Confirm to destroy【%{name}】scheme and all related data of channels and uploaded releases? + delete_app_channel: Confirm to destroy【%{name}】channel and all related data of uploaded releases? + + schemes: + title: Schemes + show: + empty_channel: Not found any channel. + new: + title: New scheme for %{app} + edit: + title: Edit scheme for %{app} + + channels: + title: Channels + subtitle: 'scheme %{total_scheme}, channel %{total_channel}' + show: + scheme: :'schemes.title' + channel: :'channels.title' + activity: Activity + upload_release: Upload a release + metadata: Metadata + device_type: Device type + slug: Slug + password: Visit password + git_url: Git URL + match_rule: Match Rule %{value} + wildmatch: (wild match) + total_releases: Total uploads + channel_key: Channel KEY + edit_channel: Edit channel + none: None + not_found: Not found any releases, click the button upload a release. + id: ID + build_version: Build version + git_branch: Branch + git_commit: Commit SHA + release_type: Release type + uploaded_at: Uploaded time + actions: Action + majar_versions: Majar versions + release_version: Release version + total_version: Versions + empty_version_shortly: Nothing + empty_version: Not found any release with this version! + more: More + new: + title: Create new channel for %{name} + edit: + title: Edit channel for %{name} + branches: + index: + subtitle: 'Releases of branch %{branch}' + release_types: + index: + subtitle: 'Releases of scheme %{type}' + versions: + index: + subtitle: Releases + show: + subtitle: 'Releases of version %{version}' + messages: + confirm: + destroy: :'web_hooks.messages.confirm.destroy' + errors: + not_found_channel: Not found any channel by id %{id}, redirect to app list + + releases: + sources: + web: Web + api: API + show: + enter_password: Enter password + wechat_limited: Install limited in current app + wechat_touch_menu: Click menu right-top concor + wechat_open_in_safari: Choose "Open in Safari" and install + wechat_open_in_webbrower: Open with any brower and install + not_latest_release: New release found! + released_new_version: 'New release %{release_version} (%{build_version}) uploaded at %{time} ago, %{link}.' + view_latest_version: Check it out + + name: App + version: Auto Version + device: Device + release_version: Release version (build version) + release_type: Release type + filesize: Filesize + uploaded_at: Uploaded time + git_branch: Git branch + git_commit: Git commit SHA + source: Source + metadata: Metadata + teardown_meatdata: More metadata + install: Install + download: Download + installing: Installing ... + destroy: Destroy + missing_file: Missing file + more: More releases + cannot_install_or_untrusted_enterprise_developer: Occurred "Untrusted Enterprise Developer" or app failed to install? + + last_ten_uploads: Activity + upload_release: :'dashboard.timeline.upload_release' + changelog: Changelog + devices: + one: "One device's UDID" + other: "%{count} device's UDIDs" + use_fastlane_plugin_sync_devices: Sync device name by using %{link} fastlane plugin + + qrcode: QR Code + scan_qrcode_with_any_suppprted_app: Use your phone's camera to install it + + majar_versions: :'channels.show.majar_versions' + view_detail: Manage channel + new: + title: :'channels.show.upload_release' + install: + show: + not_found: Can not download, missing binary file. + messages: + default_changelog: | + Not found any changelog, cause: + + - The developer is lazy without leaving anyting 😂 + - Error occurred 👽 + install_error: + title: What is the solution? + body_html: | +
        +
      1. + If you manually install an app on iOS 9+, you must also manually establish trust. + Follow the steps to install: Settings.app -> General -> Profile -> Select Profile -> Trust. +
      2. +
      3. If you manually install an Adhoc app, make sure uninstall the same app from App Store!!
      4. +
      + ok: Okay + confirm: + destroy: :'web_hooks.messages.confirm.destroy' + errors: + not_found_release_and_redirect_to_channel: Not found release or had been destroyed, redirect to channel page + not_found_release_and_redirect_to_latest_release: Not found release or had been destroyed, redirect to the latest release page + not_found: Not found + not_found_app: App not found or had been destroyed + not_found_release: Not found any release of channel + redirect_to_app_list: Redirect to app list + reidrect_channel_detal: Redirect to channel page + deleted_manually: Maybe clean up manually + deleted_programly: Maybe clean up by enabled auto clean in system + not_found_really: Not found release + invalid_password: Invailed password + bundle_id_not_matched: 'Bundle id (package name) not matched between release %{got} and rule %{expect}' + + debug_files: + title: Debug files + index: + upload: Upload a debug file + processing: Processing in background, refreash the web page later. + version: 'Version: %{version}' + download: Download (%{size}) + destroy: Destroy + uploaded_at: Uploaded at %{time} + missing_file: Missing file + empty_content: Not found any debug file. + not_found: + title: Not found any debug file! + body_html: Click the button upload a debug file on the top-right. + help: + title: Help center + body_html: | +

      What is debug file, how to location?

      +
      iOS
      +

      Locate with Xcode:

      +
        +
      • Open XCode app and choose menu "Window" -> "Organizer"
      • +
      • Select the project and found Archivers" in "Products"
      • +
      • Select build -> "Show in Finder" to open .xcarchive folder
      • +
      • Right click -> "Display package" -> dSYMs
      • +
      • Zip the dSYM file
      • +
      +

      + Enabled generate dSYM in XCode: "Build Settings" -> "Build Options": + Debug Information Format = "DWARF with dSYM File" +

      +

      Or you can try "Download Debug Symbols" in XCode Organizer

      + +
      Android
      +

      + It means Mapping Files, use it to restore + proguard + code to debug. +

      + confirm: + destroy: + title: Destroy the debug file confirm? + body: Once the data is deleted it will be permanently unrecoverable or unrecoverable, please operate with caution! + ok: Destroy + cancel: Cancel + + teardowns: + title: Teardowns + new: + title: New teardown + file: File + choose_file: Choose file + file_hint: Support .apk, .ipa, .mobileprovision and macOS.app.zip file + submit: Start work + create: + create: :'teardowns.new.title' + index: + create: :'teardowns.new.title' + upload_history: History + uploaded_at: Uploaded time + app_name: App name + version: Version + type: Type + uploader: Uploader + actions: Action + anonymous: Anonymous + not_found: + title: Not found any teardown! + body_html: Click the button New teardown + + show: + title: 'Teardown: %{name} %{release_version} (%{build_version})' + expired_in: Expire in %{time} + already_expired: Expired at %{time} + expired: Expired now! + related_app: Release related + related_body: 'This teardown was relates with ' + unknow_app_name: Unkown + + metadata: Metadat + app_name: App name + version: Version + package_name: Bundle id (package name) + supported_device: Supported device + sdk_version_range: Android min SDK / target SDK + file_size: File size + release_type: release type + min_ios_version: Min iOS version + min_macos_version: Min macOS version + capabilities: Capabilities + devise_list: UDID (%{count}) + developer_certs_list: + one: 'Developer cert (%{count})' + other: 'Developer certs (%{count})' + cert: 'Cert %{index}' + cert_expired_at: 'Expired at %{date}' + mobileprovision: Mobileprovision + uuid: UUID + mobileprovision_name: Name (Type) + team_id: Team ID + created_at: Created time + expired_at: Expired time + + help: + title: Helpe center + body_html: | +

      + Click the button to upload app and use + app_info powered to teardown it inside: +

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      iOSAndroid
      App NameApp Name
      Supported deviceSupported device
      bundle identifierpackage name
      Release typeRelease type
      Min iOS versionAndroid min SDK / targer SDK version
      EntitlementsActivities
      CapabilitiesServices
      URL SchemesFeatures
      UDID devicesPermissions
      Developer certs
      Mobileprovision
      + messages: + confirm: + destroy: Destroy confirm? + upload_events: '%{name} uploaded release %{version}' + download_events: '%{name} %{version} downloaded' + changelog_events: '%{name} %{version} update the changelog' + unknown_events: '%{name} triggered unkown event: %{event}' + parse_done: Debug file (%{id}) pare done, Refresh the web page please. + errors: + not_found_file: 'Not found debug file: %{message}' + failed_detect_file_type: Failed to detect file type + not_support_file_type: Not support file type + failed_get_metadata: Failed to parse, make sure supported file type and un-hardened + unknown_parse: 'Unkown parse error [%{class}]: %{message}' + choose_supported_file_type: 'Choose support file type: .apk, .ipa, .mobileprovision or macOS.app.zip file' + + udid: + title: Fetch UDID + index: + tip: Use iPhone or iPad to scan the QR Code then click the button below + fetch_udid: Click to fetch UDID + help: + title: Why we need device's UDID? + body_html: | +

      + UDID is an abbreviation for Unique Device Identifier (UDID). The UDID is a feature provided by Apple to identify iOS devices. + Apple uses the UDID to communicate between Apple servers and individual iOS devices. This allows Apple to associate the + Apple ID and the Cloud ID with the corresponding iOS device. Each iOS device has an unique ID. +

      +

      + The UDID of your iOS devices is needed if you want to install alpha and beta iOS apps onto your device before they are released to the official apple store. +

      + Fetch steps: +
        +
      1. Click "Accept" to download profile
      2. +
      3. Open "Setting.app" -> "Downloeded profile" -> "Fetch device's UDID" -> Install
      4. +
      5. After install it will open Safari and redirect a result page then delete the profile automatically
      6. +
      + show: + title: Device + registered: '%{device} was registerd the apps' + unregistered: New device found, copy the UDID to iOS Developer! + registered_apps: Registerd apps + udid: UDID + product: Product + serial: Serial + version: Version + upload_release: :'dashboard.timeline.upload_release' + install: + title: :'udids.title' + description: | + Install this temporary profile to find and display your current device's UDID. It is automatically removed from device right after you get your UDID. + + Powered by %{url}. + + users: + title: Users + roles: + user: User + developer: Developer + admin: Admin + + web_hooks: + title: Webhooks + create: New webhook + enable: Enabled + shared: Shared + not_found: Not found any webhook + current_channel: Current channel + test: Test + destroy: Destroy + disable: Disable + enable: Enable + messages: + done: Teardown done! + confirm: + destroy: Destroy confirm? + + system_info: + title: System information + + background_jobs: + title: Background jobs + + page_analytics: + title: Page analytics + + database_analytics: + title: Database analytics + settings: + title: Settings default_schemes: beta: Beta adhoc: Adhoc - production: Production \ No newline at end of file + production: Production + + download: + releases: + show: + not_found: Not found release + debug_files: + show: + not_found: Not found debug file + + api: + unauthorized_channel_key: Unauthorized channel key + unauthorized_token: Unauthorized user token + unprocessable_entity: Unprocessable entity + apps: + upload: + create: + debug: Debug + adhoc: Adhoc + enterpse: Enterpse + release: Release + version_exist: + show: + not_found: Not found release + missing_params: combo with bundle_id, release_version, build_version or bundle_id, git_commit + debug_files: + download: + default: + not_found: Not found debug file + jenkins: + build: + failed_request: Build request failed, please try again + + demo: + app_name1: First App + app_name2: Android Only App + android_channels: + channel1: google play + channel2: huawei + channel3: oppo + channel4: vivo + channel5: xiaomi + + errors: + '400': + title: The request you submitted was invalid or malformed + '403': + title: You don't have permission to view this page + '404': + title: Not Found + content: The page you are looking for isn't here. + '406': + title: This page is not available in the requested format. + '410': + title: The page you were looking for doesn't exist here anymore. + '422': + title: Security verification failed + content: Security verification failed. Are you blocking cookies? + '429': + title: Too many requests + '500': + title: This page is not correct + content: We're sorry, but something went wrong on our end. + '503': + title: The page could not be served due to a temporary server failure. + invaild_in_demo_mode: Forbidden in demo mode + development_only: Development only + goback_or_redirect_to_homepage: you may %{goback_link} or return to %{homepage_link} + goback_title: Goback + homepage_title: Homepage + unknown_file_type: Unkown file type to parse + + activerecord: + success: + create: Created %{key} successfully + update: Updated %{key} successfully + destroy: Deleteed %{key} successfully + errors: + models: + debug_file: + attributes: + app_id: + blank: Select the application to be associated + file: + blank: Choose a zipped file with supported type + checksum: + taken: File exists, cannot be uploaded + + user_mailer: + omniauth_welcome_email: + subject: Welcome to %{title} + default_password: 'You authorized the third-party service to register Zealot, Here is the password:' + + devise: + confirmations: + new: + title: Confirmation email + registrations: + new: + error: Error! + register_closed: Close to register now, contact the administrator please. + register: Register + edit: + api: API + token: Token + normal: + title: Normal + ldap: + title: LDAP + username: LDAP Username + password: LDAP Password + shared: + hint: '- Or -' + links: + provider: + feishu: ' Feishu' + google: ' Google' + gitlab: ' Gitlab' + + helpers: + submit: + user: + create: Create + update: Update + app: + create: Create + update: Update + scheme: + create: Create + update: Update + channel: + create: Create + update: Update + release: + create: Upload + web_hook: + create: Create + update: Update + debug_file: + create: Upload + views: + pagination: + truncate: ... + first: First + previous: Previous + next: Next + last: Last diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index 2af360b5e..e14c7962c 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -12,13 +12,9 @@ zh-CN: description: 解放开发打包的烦恼,轻松放权给测试、产品、运营等使用 App 的人员,提供丰富组件库,打包流程一键上传,iOS 和 Android 轻松接入,深度与 Jenkins 和 Gitlab 集成。 links: - goback_to_list: 返回列表 - goback: 返回 + back_to_list: 返回列表 admin: - link: - back_to_list: 返回列表 - system_info: index: zealot_version: Zealot 版本 @@ -29,7 +25,7 @@ zh-CN: os_info: 操作系统 ruby_version: Ruby 版本 cpu_info: CPU - cpu_core: '%{size} 核' + cpu_core: '%{count} 核' fail_detect_cpu: CPU 信息监测失败 memory_info: 内存 fail_detect_memory: 内存信息监测失败 @@ -38,14 +34,21 @@ zh-CN: lauched_time: 运行时间 volume_mounted: 挂载信息 fail_detect_disk: 硬盘信息无法获取 - system_enviroment: 系统变量 + system_environment: 系统变量 file_permissions: 文件权限 ruby_gems: Ruby Gems logs: 日志 + new_version: '发现新版本 ' + dev_new_version: 发现新版本 (开发环境始终显示) messages: file_permissions_tip: 如果你看到下面路径有显示红色异常图标那就是表面该路径无法写入可能会造成 Zealot 无法正常使用或发生异常情况 settings: + index: + title: :'settings.title' + edit: + title: 编辑设置 + enable: 开启 disable: 关闭 validates: '条件:%{value}' @@ -249,6 +252,9 @@ zh-CN: not_found_channel: 没有找到应用渠道 %{id},跳转至应用列表 releases: + sources: + web: 网页上传 + api: 接口上传 show: enter_password: 访问密码 wechat_limited: 应用限制请按照提示安装 @@ -418,8 +424,8 @@ zh-CN: min_ios_version: 最低 iOS 版本 min_macos_version: 最低 macOS 版本 capabilities: 启用能力 - devise_list: '设备列表 (%{total})' - developer_certs_list: '开发者证书 (%{total})' + devise_list: '设备列表 (%{count})' + developer_certs_list: '开发者证书 (%{count})' cert: '证书 %{index}' cert_expired_at: '%{date} 到期' mobileprovision: 描述文件 @@ -533,10 +539,6 @@ zh-CN: serial: 序列化 version: 版本 upload_release: :'dashboard.timeline.upload_release' - not_found_html: | - 没有发现可安装应用! - 请复制上面设备 UDID 并发给 iOS 工程师来添加测试设备并重新打包。 - 新安装包上传之后可以刷新本页面检查是否出现对应的应用。 install: title: 获取设备 UDID @@ -568,9 +570,6 @@ zh-CN: confirm: destroy: 确定删除? - system_settings: - title: 系统设置 - system_info: title: 环境信息 @@ -584,6 +583,7 @@ zh-CN: title: 数据库分析 settings: + title: 系统设置 default_schemes: beta: 测试版 adhoc: 内测版 @@ -687,7 +687,7 @@ zh-CN: debug_file: attributes: app_id: - blank: 请选择要上传对于的应用 + blank: 请选择需要关联的应用 file: blank: 必须选择一个 zip 文件 checksum: From 11cb819bd41fa5a9f507d1b0640aee60f1bde13f Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 14 Oct 2021 15:47:25 +0800 Subject: [PATCH 0717/2165] =?UTF-8?q?style:=20=E8=B0=83=E6=95=B4=E5=86=85?= =?UTF-8?q?=E5=AE=B9=E5=A4=B4=E9=83=A8=E6=A0=87=E9=A2=98=E5=92=8C=E5=8F=B3?= =?UTF-8?q?=E4=BE=A7=E6=8C=89=E9=92=AE=E7=9A=84=E5=AE=BD=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/layouts/_content_header.html.slim | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/layouts/_content_header.html.slim b/app/views/layouts/_content_header.html.slim index 0bfb02c15..50bf883db 100644 --- a/app/views/layouts/_content_header.html.slim +++ b/app/views/layouts/_content_header.html.slim @@ -9,9 +9,9 @@ ruby: section.content-header .container-fluid .row.pl-2 - .col-sm-8 + .col-sm-7 h1 = yield :section_title - .col-sm-4 + .col-sm-5 - if right_panel.present? div.float-sm-right = right_panel From 8857361a06cadb1595db00cbef80b6a8bb7f6691 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 14 Oct 2021 16:27:11 +0800 Subject: [PATCH 0718/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E6=AD=A3=E4=B8=AA?= =?UTF-8?q?=E5=88=AB=E8=8B=B1=E6=96=87=E5=9C=A8=E5=AF=B9=E5=BA=94=E5=9C=BA?= =?UTF-8?q?=E6=99=AF=E7=9A=84=E5=A4=A7=E5=B0=8F=E5=86=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/locales/zealot/en.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/locales/zealot/en.yml b/config/locales/zealot/en.yml index 412545d79..620931ee0 100644 --- a/config/locales/zealot/en.yml +++ b/config/locales/zealot/en.yml @@ -659,8 +659,8 @@ en: invaild_in_demo_mode: Forbidden in demo mode development_only: Development only goback_or_redirect_to_homepage: you may %{goback_link} or return to %{homepage_link} - goback_title: Goback - homepage_title: Homepage + goback_title: goback + homepage_title: homepage unknown_file_type: Unkown file type to parse activerecord: From b95c4502e9bf5755f4b41d27511c4934672ef9cb Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 15 Oct 2021 10:33:51 +0800 Subject: [PATCH 0719/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=20API=20?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E4=BF=9D=E5=AD=98=E5=8F=82=E6=95=B0=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/api/base_controller.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/controllers/api/base_controller.rb b/app/controllers/api/base_controller.rb index da872fb8d..5c7a54b1f 100644 --- a/app/controllers/api/base_controller.rb +++ b/app/controllers/api/base_controller.rb @@ -30,7 +30,7 @@ def record_invalid(e) respond_with_error( :unprocessable_entity, e, error: '参数错误,请检查请求的参数是否正确', - entry: exception.record.errors + entry: e.record.errors ) end @@ -85,9 +85,9 @@ def set_cache_headers response.headers['Cache-Control'] = 'no-cache, no-store, max-age=0, must-revalidate' end - def logger_error(exception) + def logger_error(e) return unless Rails.env.development? - logger.error exception.full_message + logger.error e.full_message end end From 96ae5b239ebae6355cd88d77e008dc6572b09c3c Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 17 Sep 2021 19:05:02 +0800 Subject: [PATCH 0720/2165] =?UTF-8?q?feat:=20=E6=9B=B4=E6=96=B0=20app-info?= =?UTF-8?q?=20=E6=9D=A5=E6=8F=90=E5=8D=87=20android=20=E8=A7=A3=E6=9E=90?= =?UTF-8?q?=E7=9A=84=E6=88=90=E5=8A=9F=E7=8E=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 2 +- Gemfile.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Gemfile b/Gemfile index d13693d5b..8aa070a1d 100644 --- a/Gemfile +++ b/Gemfile @@ -80,7 +80,7 @@ gem 'turbolinks', '~> 5' gem 'webpacker', '~> 5.4' # 用于解析 ipa 和 apk 包 -gem 'app-info', '~> 2.6.4' +gem 'app-info', '~> 2.6.5' # Mobile config gem 'rails-settings-cached', '~> 2.7.1' diff --git a/Gemfile.lock b/Gemfile.lock index 70db4a501..b70c99b0e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -73,12 +73,14 @@ GEM zeitwerk (~> 2.3) addressable (2.8.0) public_suffix (>= 2.0.2, < 5.0) - app-info (2.6.4) + android_parser (2.4.1) + rubyzip (>= 1.0.0) + app-info (2.6.5) CFPropertyList (>= 2.3.4, < 3.1.0) + android_parser (~> 2.4.1) icns (~> 0.2.0) image_size (>= 1.5, < 2.2) ruby-macho (>= 1.4, < 3) - ruby_android (~> 0.7.7) rubyzip (>= 1.2, < 3.0) uuidtools (>= 2.1.5, < 2.3.0) ast (2.4.2) @@ -406,8 +408,6 @@ GEM ruby-vips (2.1.2) ffi (~> 1.12) ruby2_keywords (0.0.5) - ruby_android (0.7.7) - rubyzip (>= 1.1.6) rubyntlm (0.6.3) rubyzip (2.3.2) rufus-scheduler (3.7.0) @@ -507,7 +507,7 @@ DEPENDENCIES active_analytics active_model_serializers (~> 0.10.12) activejob-status - app-info (~> 2.6.4) + app-info (~> 2.6.5) awesome_print better_errors binding_of_caller From c97497a91d3ed0ce48790668385cf10fba3ef709 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 15 Oct 2021 10:50:41 +0800 Subject: [PATCH 0721/2165] =?UTF-8?q?release:=20=E5=8F=91=E5=B8=83=204.2.2?= =?UTF-8?q?=20=E4=BF=AE=E5=A4=8D=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index b2488a35b..a9af82391 100644 --- a/Dockerfile +++ b/Dockerfile @@ -61,7 +61,7 @@ ARG BUILD_DATE ARG VCS_REF ARG TAG -ARG ZEALOT_VERSION="4.2.1" +ARG ZEALOT_VERSION="4.2.2" ARG REPLACE_CHINA_MIRROR="true" ARG ORIGINAL_REPO_URL="dl-cdn.alpinelinux.org" ARG MIRROR_REPO_URL="mirrors.ustc.edu.cn" diff --git a/package.json b/package.json index 8a54a1adf..74c7fd0a4 100644 --- a/package.json +++ b/package.json @@ -15,5 +15,5 @@ "devDependencies": { "webpack-dev-server": "^3.11.2" }, - "version": "4.2.1" + "version": "4.2.2" } From c272396a8ac9c85de2b6239314b06426fa0e2904 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 15 Oct 2021 11:03:39 +0800 Subject: [PATCH 0722/2165] =?UTF-8?q?chore:=20=E5=8F=91=E5=B8=83=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E7=9A=84=E6=97=B6=E5=80=99=E5=90=8C=E6=97=B6=E6=89=93?= =?UTF-8?q?=E4=B8=80=E4=B8=AA=20latest=20tag=20=E7=9A=84=E9=95=9C=E5=83=8F?= =?UTF-8?q?=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/publish_release.yml | 29 +++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/.github/workflows/publish_release.yml b/.github/workflows/publish_release.yml index b7307f6b7..3ff7a8fff 100644 --- a/.github/workflows/publish_release.yml +++ b/.github/workflows/publish_release.yml @@ -19,7 +19,7 @@ jobs: - name: Get the version id: version run: echo ::set-output name=tag::$(echo ${GITHUB_REF:10}) - - name: Publish to Github Hub Registry + - name: Publish to Github Hub Registry using tag version uses: elgohr/Publish-Docker-Github-Action@master env: REPLACE_CHINA_MIRROR: false @@ -32,7 +32,20 @@ jobs: password: ${{ secrets.CR_PAT }} buildargs: BUILD_DATE,VCS_REF,TAG,REPLACE_CHINA_MIRROR registry: ghcr.io - - name: Publish to Docker Registry + - name: Publish to Github Hub Registry using latest version + uses: elgohr/Publish-Docker-Github-Action@master + env: + REPLACE_CHINA_MIRROR: false + VCS_REF: ${{ github.sha }} + BUILD_DATE: ${{ steps.date.outputs.date }} + TAG: ${{ steps.version.outputs.tag }} + with: + name: ghcr.io/tryzealot/zealot:latest + username: ${{ github.actor }} + password: ${{ secrets.CR_PAT }} + buildargs: BUILD_DATE,VCS_REF,TAG,REPLACE_CHINA_MIRROR + registry: ghcr.io + - name: Publish to Docker Registry using tag version uses: elgohr/Publish-Docker-Github-Action@master env: REPLACE_CHINA_MIRROR: false @@ -44,6 +57,18 @@ jobs: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} buildargs: BUILD_DATE,VCS_REF,TAG,REPLACE_CHINA_MIRROR + - name: Publish to Docker Registry using latest tag + uses: elgohr/Publish-Docker-Github-Action@master + env: + REPLACE_CHINA_MIRROR: false + VCS_REF: ${{ github.sha }} + BUILD_DATE: ${{ steps.date.outputs.date }} + TAG: ${{ steps.version.outputs.tag }} + with: + name: tryzealot/zealot:latest + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + buildargs: BUILD_DATE,VCS_REF,TAG,REPLACE_CHINA_MIRROR - name: Update Docker Hub Description uses: peter-evans/dockerhub-description@v2.1.0 env: From 97b4dc9f94e5381560f1b9ef81cec40dcad7c92b Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 15 Oct 2021 11:37:46 +0800 Subject: [PATCH 0723/2165] =?UTF-8?q?style:=20=E7=AC=AC=E4=B8=89=E6=96=B9?= =?UTF-8?q?=E7=99=BB=E5=BD=95=20logo=20=E4=BD=8D=E7=BD=AE=E5=81=8F?= =?UTF-8?q?=E4=BD=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/javascript/stylesheets/devise.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/javascript/stylesheets/devise.scss b/app/javascript/stylesheets/devise.scss index 0145d6c93..998c36ede 100644 --- a/app/javascript/stylesheets/devise.scss +++ b/app/javascript/stylesheets/devise.scss @@ -2,7 +2,7 @@ i.icon { float: right !important; margin-right: 0; - margin-top: 0.5rem; + margin-top: 0.3rem; } } From 592ea5de96cb074bbe81851056017b62dd69ac06 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 15 Oct 2021 14:53:43 +0800 Subject: [PATCH 0724/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=BC=82?= =?UTF-8?q?=E6=AD=A5=E4=BB=BB=E5=8A=A1=E5=BC=95=E5=85=A5=E5=A4=9A=E8=AF=AD?= =?UTF-8?q?=E8=A8=80=E8=B0=83=E7=94=A8=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/services/teardown_service.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/app/services/teardown_service.rb b/app/services/teardown_service.rb index 2a1d0cdfa..5bb2ca83f 100644 --- a/app/services/teardown_service.rb +++ b/app/services/teardown_service.rb @@ -1,6 +1,7 @@ # frozen_string_literal: true class TeardownService < ApplicationService + include ActionView::Helpers::TranslationHelper attr_reader :file SUPPORT_APP = %i[apk ipa mobileprovision macos] From 5c880844cce40218cc4a0ddde471ac511930a364 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 15 Oct 2021 16:36:36 +0800 Subject: [PATCH 0725/2165] =?UTF-8?q?feat:=20=E6=94=AF=E6=8C=81=E4=B8=AD?= =?UTF-8?q?=E6=96=87/=E8=8B=B1=E6=96=87=E8=AF=AD=E8=A8=80=E5=88=87?= =?UTF-8?q?=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/application_controller.rb | 7 ++++++- app/models/setting.rb | 2 ++ config/application.rb | 2 +- config/locales/zealot/en.yml | 3 ++- config/locales/zealot/zh-CN.yml | 3 ++- 5 files changed, 13 insertions(+), 4 deletions(-) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 319d6e100..6f6d7a6f0 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -9,6 +9,7 @@ class ApplicationController < ActionController::Base skip_before_action :verify_authenticity_token + before_action :set_locale before_action :set_sentry_context before_action :record_page_view @@ -25,6 +26,10 @@ def raise_not_found private + def set_locale + I18n.locale = Setting.site_locale || I18n.default_locale + end + def set_sentry_context Sentry.configure_scope do |scope| context = params.to_unsafe_h || {} @@ -82,7 +87,7 @@ def respond_with_error(code, exception) respond_to do |format| @code = code @exception = exception - @title = t("errors.#{@code}.title") + @title = t("errors.code.#{@code}.title") @message = exception.message if code < 500 format.any { render 'errors/index', status: code, formats: [:html] } diff --git a/app/models/setting.rb b/app/models/setting.rb index 112f43bea..a1d5ddf9b 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -62,6 +62,8 @@ def url_options field :site_title, default: 'Zealot', type: :string, display: true, validates: { presence: true, length: { in: 3..16 } } field :site_domain, default: (ENV['ZEALOT_DOMAIN'] || site_domain), type: :string, readonly: true, display: true + field :site_locale, default: I18n.default_locale, type: :string, display: true, + validates: { presence: true, inclusion: { in: I18n.available_locales.map(&:to_s) } } field :site_https, default: site_https, type: :boolean, readonly: true, display: true field :admin_email, default: (ENV['ZEALOT_ADMIN_EMAIL'] || 'admin@zealot.com'), type: :string, readonly: true diff --git a/config/application.rb b/config/application.rb index 55b507364..60554cb78 100644 --- a/config/application.rb +++ b/config/application.rb @@ -34,7 +34,7 @@ class Application < Rails::Application locale = ENV['LOCALE'] || 'zh-CN' config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}')] config.i18n.default_locale = locale.to_sym - config.i18n.available_locales = [locale, :en] + config.i18n.available_locales = [:'zh-CN', :en] # Enable locale fallbacks for I18n (makes lookups for any locale fall back to # the I18n.default_locale when a translation cannot be found). diff --git a/config/locales/zealot/en.yml b/config/locales/zealot/en.yml index 620931ee0..907825979 100644 --- a/config/locales/zealot/en.yml +++ b/config/locales/zealot/en.yml @@ -55,8 +55,9 @@ en: validates: 'Rule:%{value}' general: General - site_title: Site title site_https: Enable HTTPS + site_title: Site title + site_locale: Site Locale site_domain: Site domain presets: Presets diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index e14c7962c..4e894d192 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -55,8 +55,9 @@ zh-CN: edit_value: 编辑设置 general: 通用配置 - site_title: 网站标题 site_https: 启用 HTTPS + site_title: 网站标题 + site_locale: 网站语言 site_domain: 网站域名 presets: 默认值 From 193596a1a0755ead946f12a486643ae9bf017260 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 15 Oct 2021 17:41:21 +0800 Subject: [PATCH 0726/2165] =?UTF-8?q?refactor:=20=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E5=AF=B9=E4=BA=8E=E5=8F=AF=E9=80=89=E5=80=BC?= =?UTF-8?q?=E6=9B=B4=E6=94=B9=E4=B8=BA=E5=8B=BE=E9=80=89=E7=BC=96=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/admin/settings_controller.rb | 5 ++ app/controllers/admin/users_controller.rb | 4 +- app/models/concerns/user_roles.rb | 6 +- app/models/setting.rb | 27 ++++++-- app/uploaders/app_file_uploader.rb | 2 +- app/views/admin/settings/_form.html.slim | 2 + app/views/admin/settings/index.html.slim | 2 +- app/views/errors/_body.slim | 4 +- app/views/errors/_debug.html.slim | 2 +- config/locales/zealot/en.yml | 71 +++++++++++--------- config/locales/zealot/zh-CN.yml | 34 ++++++---- 11 files changed, 101 insertions(+), 58 deletions(-) diff --git a/app/controllers/admin/settings_controller.rb b/app/controllers/admin/settings_controller.rb index f69d8941d..4645f4605 100644 --- a/app/controllers/admin/settings_controller.rb +++ b/app/controllers/admin/settings_controller.rb @@ -18,16 +18,21 @@ def edit if @setting.var == 'default_schemes' && (@setting.value.blank? || @setting.value.empty?) @value = Setting.present_schemes end + + @value = t("settings.#{@value}", default: @value) if @value.is_a?(String) end def update @title = t('.title') new_value = setting_param[:value] new_value = JSON.parse(new_value) if setting_param[:type] == 'hash' || setting_param[:type] == 'array' + if @setting.value != new_value @setting.value = new_value return render :edit unless @setting.save + Setting.clear_cache + message = t('activerecord.success.update', key: t("admin.settings.#{@setting.var}")) redirect_to admin_settings_path, notice: message else diff --git a/app/controllers/admin/users_controller.rb b/app/controllers/admin/users_controller.rb index b88af05d9..7ed507a6c 100644 --- a/app/controllers/admin/users_controller.rb +++ b/app/controllers/admin/users_controller.rb @@ -30,7 +30,7 @@ def edit def update if helpers.default_admin_in_demo_mode?(@user) - return redirect_to admin_users_url, alert: t('errors.invaild_in_demo_mode') + return redirect_to admin_users_url, alert: t('errors.messages.invaild_in_demo_mode') end # 没有设置密码的情况下不更新该字段 @@ -43,7 +43,7 @@ def update def destroy if helpers.default_admin_in_demo_mode?(@user) - return redirect_to admin_users_url, alert: t('errors.invaild_in_demo_mode') + return redirect_to admin_users_url, alert: t('errors.messages.invaild_in_demo_mode') end @user.destroy diff --git a/app/models/concerns/user_roles.rb b/app/models/concerns/user_roles.rb index ac337d71c..ddc3964bd 100644 --- a/app/models/concerns/user_roles.rb +++ b/app/models/concerns/user_roles.rb @@ -4,9 +4,9 @@ module UserRoles extend ActiveSupport::Concern ROLE_NAMES = { - user: I18n.t('users.roles.user'), - developer: I18n.t('users.roles.developer'), - admin: I18n.t('users.roles.admin') + user: I18n.t('settings.default_role.user'), + developer: I18n.t('settings.default_role.developer'), + admin: I18n.t('settings.default_role.admin') } included do diff --git a/app/models/setting.rb b/app/models/setting.rb index a1d5ddf9b..93a764c93 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -3,6 +3,7 @@ # RailsSettings Model class Setting < RailsSettings::Base extend ActionView::Helpers::TranslationHelper + include ActionView::Helpers::TranslationHelper cache_prefix { 'v1' } @@ -157,7 +158,6 @@ def readonly? end def field_validates - validates = self.class.validators_on(var) validates.each_with_object([]) do |validate, obj| next unless value = validate_value(validate) @@ -165,6 +165,20 @@ def field_validates end end + def inclusion? + inclusions = validates.select {|v| v.is_a?(ActiveModel::Validations::InclusionValidator) } + inclusions&.first + end + + def inclusion_values + return unless inclusion = inclusion? + + inclusion.send(:delimiter).each_with_object({}) do |v, obj| + key = t("settings.#{var}.#{v}", default: v) + obj[key] = v + end + end + def default_value self.class.send(self.var.to_sym) end @@ -175,19 +189,22 @@ def type @option[:type] end + def validates + @validates ||= self.class.validators_on(var) + end + private def validate_value(validate) case validate when ActiveModel::Validations::PresenceValidator - '不能为空值' + t('errors.messages.blank') when ActiveRecord::Validations::LengthValidator minimum = validate.options[:minimum] maximum = validate.options[:maximum] - "长度限制: #{minimum} ~ #{maximum} 位" + t('errors.messages.length_range', minimum: minimum, maximum: maximum) when ActiveModel::Validations::InclusionValidator - values = validate.send(:delimiter) - "可选值: #{values.join(', ')}" + t('errors.messages.optional_value', value: inclusion_values.values.join(', ')) end end end diff --git a/app/uploaders/app_file_uploader.rb b/app/uploaders/app_file_uploader.rb index f0295b904..d3d8a21ba 100644 --- a/app/uploaders/app_file_uploader.rb +++ b/app/uploaders/app_file_uploader.rb @@ -18,6 +18,6 @@ def extension_allowlist def validate_app_type return if SUPPORT_APP.include?(AppInfo.file_type(file.path)) - raise CarrierWave::InvalidParameter, I18n.t('errors.unknown_file_type') + raise CarrierWave::InvalidParameter, I18n.t('errors.messages.unknown_file_type') end end diff --git a/app/views/admin/settings/_form.html.slim b/app/views/admin/settings/_form.html.slim index afcccf322..a7220ae4a 100644 --- a/app/views/admin/settings/_form.html.slim +++ b/app/views/admin/settings/_form.html.slim @@ -22,6 +22,8 @@ = f.input :value, label: t('admin.settings.enable'), as: :boolean, input_html: { checked: @value }, hint: false - elsif @setting.type == :hash || @setting.type == :array = f.input :value, as: :text, input_html: { value: JSON.pretty_generate(@value) } + - elsif @setting.inclusion? + = f.input :value, as: :radio_buttons, collection: @setting.inclusion_values, hint: false - else = f.input :value, as: :text, input_html: { value: @value }, hint: false diff --git a/app/views/admin/settings/index.html.slim b/app/views/admin/settings/index.html.slim index 554c8d633..567edd51b 100644 --- a/app/views/admin/settings/index.html.slim +++ b/app/views/admin/settings/index.html.slim @@ -29,7 +29,7 @@ form.form-horizontal when FalseClass t('admin.settings.disable') else - value.blank? ? t('admin.settings.empty_value') : value.to_s + value.blank? ? t('admin.settings.empty_value') : t("settings.#{key}.#{value}", default: value.to_s) end dl.system-info dt = t("admin.settings.#{key}") diff --git a/app/views/errors/_body.slim b/app/views/errors/_body.slim index e4256ad65..a78274def 100644 --- a/app/views/errors/_body.slim +++ b/app/views/errors/_body.slim @@ -1,5 +1,5 @@ ruby: - content = t("errors.#{@code}.content") + content = t("errors.code.#{@code}.content") content = nil if content.include?('translation_missing') goback_link = session[:return_to] || request.referer @@ -9,4 +9,4 @@ ruby: - if @message.present? p = @message -p = raw t('errors.goback_or_redirect_to_homepage', goback_link: link_to(t('errors.goback_title'), goback_link), homepage_link: link_to(t('errors.homepage_title'), root_path)) +p = raw t('errors.messages.goback_or_redirect_to_homepage', goback_link: link_to(t('errors.messages.goback_title'), goback_link), homepage_link: link_to(t('errors.messages.homepage_title'), root_path)) diff --git a/app/views/errors/_debug.html.slim b/app/views/errors/_debug.html.slim index dc873aa3c..00f3c7cbc 100644 --- a/app/views/errors/_debug.html.slim +++ b/app/views/errors/_debug.html.slim @@ -6,7 +6,7 @@ i.icon.fas.fa-error = "#{@exception.class}: #{@exception.message}" .card-tools - small.badge = t('errors.development_only') + small.badge = t('errors.messages.development_only') .card-body.p-0 table.table.table-hover - @exception.backtrace.each do |link| diff --git a/config/locales/zealot/en.yml b/config/locales/zealot/en.yml index 907825979..13c2159ff 100644 --- a/config/locales/zealot/en.yml +++ b/config/locales/zealot/en.yml @@ -47,6 +47,8 @@ en: settings: index: title: :'settings.title' + update: + title: Edit setting edit: title: Edit setting @@ -554,10 +556,6 @@ en: users: title: Users - roles: - user: User - developer: Developer - admin: Admin web_hooks: title: Webhooks @@ -593,6 +591,13 @@ en: beta: Beta adhoc: Adhoc production: Production + default_role: + user: User + developer: Developer + admin: Admin + site_locale: + zh-CN: Simplified Chinese + en: English download: releases: @@ -636,33 +641,37 @@ en: channel5: xiaomi errors: - '400': - title: The request you submitted was invalid or malformed - '403': - title: You don't have permission to view this page - '404': - title: Not Found - content: The page you are looking for isn't here. - '406': - title: This page is not available in the requested format. - '410': - title: The page you were looking for doesn't exist here anymore. - '422': - title: Security verification failed - content: Security verification failed. Are you blocking cookies? - '429': - title: Too many requests - '500': - title: This page is not correct - content: We're sorry, but something went wrong on our end. - '503': - title: The page could not be served due to a temporary server failure. - invaild_in_demo_mode: Forbidden in demo mode - development_only: Development only - goback_or_redirect_to_homepage: you may %{goback_link} or return to %{homepage_link} - goback_title: goback - homepage_title: homepage - unknown_file_type: Unkown file type to parse + code: + '400': + title: The request you submitted was invalid or malformed + '403': + title: You don't have permission to view this page + '404': + title: Not Found + content: The page you are looking for isn't here. + '406': + title: This page is not available in the requested format. + '410': + title: The page you were looking for doesn't exist here anymore. + '422': + title: Security verification failed + content: Security verification failed. Are you blocking cookies? + '429': + title: Too many requests + '500': + title: This page is not correct + content: We're sorry, but something went wrong on our end. + '503': + title: The page could not be served due to a temporary server failure. + messages: + length_range: 'Length range: %{minimum} ~ %{maximum}' + optional_value: 'Optinal value: %{value}' + invaild_in_demo_mode: Forbidden in demo mode + development_only: Development only + goback_or_redirect_to_homepage: you may %{goback_link} or return to %{homepage_link} + goback_title: goback + homepage_title: homepage + unknown_file_type: Unkown file type to parse activerecord: success: diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index 4e894d192..8e60abc90 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -46,6 +46,8 @@ zh-CN: settings: index: title: :'settings.title' + update: + title: 编辑设置 edit: title: 编辑设置 @@ -61,8 +63,8 @@ zh-CN: site_domain: 网站域名 presets: 默认值 - default_schemes: 应用的类型名称 - default_role: 用户注册默认权限 + default_schemes: 应用类型模板 + default_role: 初始化权限 switch_mode: 模式开关 registrations_mode: 注册模式 @@ -550,10 +552,6 @@ zh-CN: users: title: 用户 - roles: - user: 用户 - developer: 开发者 - admin: 管理员 web_hooks: title: 网络钩子 @@ -589,6 +587,13 @@ zh-CN: beta: 测试版 adhoc: 内测版 production: 产品版 + default_role: + user: 用户 + developer: 开发者 + admin: 管理员 + site_locale: + zh-CN: 简体中文 + en: 英文 download: releases: @@ -669,12 +674,17 @@ zh-CN: title: 这个页面有问题 '503': title: 服务暂时不可用,无法请求该页面 - invaild_in_demo_mode: 演示模式不能编辑默认管理员 - development_only: 仅开发环境显示 - goback_or_redirect_to_homepage: 请返回%{goback_link}或%{homepage_link}看看 - goback_title: 上级页面 - homepage_title: 首页 - unknown_file_type: 无法正常解析应用的类型,目前仅支持 iOS、Android 和使用 Zip 压缩的 macOS App + messages: + blank: 不能为空值 + inclusion: 不包含在可选值列表中 + length_range: 长度限制:%{minimum} ~ %{maximum} 位 + optional_value: 可选值:%{value} + invaild_in_demo_mode: 演示模式不能编辑默认管理员 + development_only: 仅开发环境显示 + goback_or_redirect_to_homepage: 请返回%{goback_link}或%{homepage_link}看看 + goback_title: 上级页面 + homepage_title: 首页 + unknown_file_type: 无法正常解析应用的类型,目前仅支持 iOS、Android 和使用 Zip 压缩的 macOS App activerecord: success: From c17a63381d7a1c14f5c7aeda920136c20ad3b252 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 14 Oct 2021 19:37:51 +0800 Subject: [PATCH 0727/2165] =?UTF-8?q?feat:=20=E6=94=AF=E6=8C=81=20aab=20?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E6=A0=BC=E5=BC=8F=E7=9A=84=E8=A7=A3=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 2 +- Gemfile | 7 ++++--- Gemfile.lock | 13 ++++++++++--- app/services/teardown_service.rb | 5 +++-- app/uploaders/app_file_uploader.rb | 4 ++-- app/uploaders/app_icon_uploader.rb | 27 ++++++++++++++++++++------- 6 files changed, 40 insertions(+), 18 deletions(-) diff --git a/Dockerfile b/Dockerfile index a9af82391..09fcdada1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ FROM ruby:2.7-alpine as builder ARG BUILD_PACKAGES="build-base libxml2 libxslt git" -ARG DEV_PACKAGES="libxml2-dev libxslt-dev yaml-dev postgresql-dev nodejs npm yarn" +ARG DEV_PACKAGES="libxml2-dev libxslt-dev yaml-dev postgresql-dev nodejs npm yarn libwebp-dev libpng-dev tiff-dev" ARG RUBY_PACKAGES="tzdata" ARG REPLACE_CHINA_MIRROR="true" diff --git a/Gemfile b/Gemfile index 3e063da94..3a9b0da8b 100644 --- a/Gemfile +++ b/Gemfile @@ -34,6 +34,7 @@ gem 'friendly_id', '~> 5.4.2' gem 'kaminari' ## 文件上传 gem 'carrierwave', '~> 2.2.2' +gem 'webp-ffi', '~> 0.3.1' # Helper ## HTTP 请求 @@ -79,10 +80,10 @@ gem 'sidekiq-scheduler', '~> 3.1.0' gem 'turbolinks', '~> 5' gem 'webpacker', '~> 5.4' -# 用于解析 ipa 和 apk 包 -gem 'app-info', '~> 2.6.5' +# 用于解析 iOS, Android 和 macOS 应用 +gem 'app-info', '~> 2.7.0.beta5' -# Mobile config +# 带缓存的配置库 gem 'rails-settings-cached', '~> 2.8.1' # Reduces boot times through caching; required in config/boot.rb diff --git a/Gemfile.lock b/Gemfile.lock index b7e96d84d..7308e34e5 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,8 @@ GEM remote: https://rubygems.org/ specs: - CFPropertyList (3.0.3) + CFPropertyList (3.0.4) + rexml actioncable (6.1.4.1) actionpack (= 6.1.4.1) activesupport (= 6.1.4.1) @@ -75,9 +76,10 @@ GEM public_suffix (>= 2.0.2, < 5.0) android_parser (2.4.1) rubyzip (>= 1.0.0) - app-info (2.6.5) + app-info (2.7.0.beta5) CFPropertyList (>= 2.3.4, < 3.1.0) android_parser (~> 2.4.1) + google-protobuf (~> 3.18.0) icns (~> 0.2.0) image_size (>= 1.5, < 2.2) ruby-macho (>= 1.4, < 3) @@ -172,6 +174,7 @@ GEM rubyntlm (~> 0.5) globalid (0.5.2) activesupport (>= 5.0) + google-protobuf (3.18.1) graphql (1.12.14) guard (2.17.0) formatador (>= 0.2.4) @@ -490,6 +493,9 @@ GEM activemodel (>= 6.0.0) bindex (>= 0.4.0) railties (>= 6.0.0) + webp-ffi (0.3.1) + ffi (>= 1.9.0) + ffi-compiler (>= 0.1.2) webpacker (5.4.0) activesupport (>= 5.2) rack-proxy (>= 0.6.1) @@ -507,7 +513,7 @@ DEPENDENCIES active_analytics active_model_serializers (~> 0.10.12) activejob-status - app-info (~> 2.6.5) + app-info (~> 2.7.0.beta5) awesome_print better_errors binding_of_caller @@ -573,6 +579,7 @@ DEPENDENCIES turbolinks (~> 5) vmstat (~> 2.3.0) web-console (>= 3.3.0) + webp-ffi (~> 0.3.1) webpacker (~> 5.4) BUNDLED WITH diff --git a/app/services/teardown_service.rb b/app/services/teardown_service.rb index 5bb2ca83f..ee4c78716 100644 --- a/app/services/teardown_service.rb +++ b/app/services/teardown_service.rb @@ -2,9 +2,10 @@ class TeardownService < ApplicationService include ActionView::Helpers::TranslationHelper + attr_reader :file - SUPPORT_APP = %i[apk ipa mobileprovision macos] + SUPPORTED_TYPES = %i[apk aab ipa mobileprovision macos] def initialize(file) @file = file @@ -12,7 +13,7 @@ def initialize(file) def call file_type = AppInfo.file_type(file) - unless SUPPORT_APP.include?(file_type) + unless SUPPORTED_TYPES.include?(file_type) raise ActionController::UnknownFormat, t('teardowns.messages.errors.not_support_file_type') end diff --git a/app/uploaders/app_file_uploader.rb b/app/uploaders/app_file_uploader.rb index d3d8a21ba..a8ebf45b7 100644 --- a/app/uploaders/app_file_uploader.rb +++ b/app/uploaders/app_file_uploader.rb @@ -3,14 +3,14 @@ class AppFileUploader < ApplicationUploader process :validate_app_type - SUPPORT_APP = %i[apk ipa macos] + SUPPORT_APP = %i[apk aab ipa macos] def store_dir "#{base_store_dir}/apps/a#{model.app.id}/r#{model.id}/binary" end def extension_allowlist - %w[ipa apk zip] + %w[ipa apk aab zip] end private diff --git a/app/uploaders/app_icon_uploader.rb b/app/uploaders/app_icon_uploader.rb index 142692e6e..1815020f7 100644 --- a/app/uploaders/app_icon_uploader.rb +++ b/app/uploaders/app_icon_uploader.rb @@ -1,18 +1,31 @@ # frozen_string_literal: true class AppIconUploader < ApplicationUploader + process convert_webp_to_png: [{ quality: 80, method: 5 }], if: :webp? + def store_dir "#{base_store_dir}/apps/a#{model.app.id}/r#{model.id}/icons" end - # def default_url - # # For Rails 3.1+ asset pipeline compatibility: - # # ActionController::Base.helpers.asset_path("fallback/" + [version_name, "default.png"].compact.join('_')) + def extension_allowlist + %i(png webp jpeg jpg) + end - # "/media/images/touch-icon.png" - # end + private - def extension_allowlist - [:png] + def convert_webp_to_png(options = {}) + png_path = "#{path}.png" + WebP.decode(path, png_path) + + @filename = png_path.split('/').pop + @file = CarrierWave::SanitizedFile.new( + tempfile: png_path, + filename: png_path, + content_type: 'image/png' + ) + end + + def webp?(file) + File.extname(file.path) == '.webp' end end From bdbc2ce975f2e4a9d1688b639d225945b2739960 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 15 Oct 2021 17:54:39 +0800 Subject: [PATCH 0728/2165] =?UTF-8?q?feat:=20=E4=BD=BF=E7=94=A8=E6=AD=A3?= =?UTF-8?q?=E5=BC=8F=E7=89=88=20app-info?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 3a9b0da8b..755891ea1 100644 --- a/Gemfile +++ b/Gemfile @@ -81,7 +81,7 @@ gem 'turbolinks', '~> 5' gem 'webpacker', '~> 5.4' # 用于解析 iOS, Android 和 macOS 应用 -gem 'app-info', '~> 2.7.0.beta5' +gem 'app-info', '~> 2.7.0' # 带缓存的配置库 gem 'rails-settings-cached', '~> 2.8.1' diff --git a/Gemfile.lock b/Gemfile.lock index 7308e34e5..24acb3759 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -76,7 +76,7 @@ GEM public_suffix (>= 2.0.2, < 5.0) android_parser (2.4.1) rubyzip (>= 1.0.0) - app-info (2.7.0.beta5) + app-info (2.7.0) CFPropertyList (>= 2.3.4, < 3.1.0) android_parser (~> 2.4.1) google-protobuf (~> 3.18.0) @@ -513,7 +513,7 @@ DEPENDENCIES active_analytics active_model_serializers (~> 0.10.12) activejob-status - app-info (~> 2.7.0.beta5) + app-info (~> 2.7.0) awesome_print better_errors binding_of_caller From 85b846a5bf1f0d880934dbf24ddcad716cbf9b80 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 15 Oct 2021 18:43:16 +0800 Subject: [PATCH 0729/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E6=9D=83=E9=99=90=E7=BC=96=E8=BE=91=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E6=B2=A1=E6=9C=89=E9=80=89=E4=B8=AD=E5=BD=93=E5=89=8D=E7=9A=84?= =?UTF-8?q?=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/admin/settings/_form.html.slim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/admin/settings/_form.html.slim b/app/views/admin/settings/_form.html.slim index a7220ae4a..1d666f445 100644 --- a/app/views/admin/settings/_form.html.slim +++ b/app/views/admin/settings/_form.html.slim @@ -23,7 +23,7 @@ - elsif @setting.type == :hash || @setting.type == :array = f.input :value, as: :text, input_html: { value: JSON.pretty_generate(@value) } - elsif @setting.inclusion? - = f.input :value, as: :radio_buttons, collection: @setting.inclusion_values, hint: false + = f.input :value, as: :radio_buttons, collection: @setting.inclusion_values, checked: @value, hint: false - else = f.input :value, as: :text, input_html: { value: @value }, hint: false From e2c076733f2277d5dea5ce1f5f604fc2b40aa814 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 18 Oct 2021 17:54:38 +0800 Subject: [PATCH 0730/2165] =?UTF-8?q?chore:=20fix=20docker=20=E9=95=9C?= =?UTF-8?q?=E5=83=8F=20Error=20loading=20shared=20library=20libwebp.so.7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 09fcdada1..b66c51fc8 100644 --- a/Dockerfile +++ b/Dockerfile @@ -66,7 +66,7 @@ ARG REPLACE_CHINA_MIRROR="true" ARG ORIGINAL_REPO_URL="dl-cdn.alpinelinux.org" ARG MIRROR_REPO_URL="mirrors.ustc.edu.cn" ARG RUBYGEMS_SOURCE="https://gems.ruby-china.com/" -ARG PACKAGES="tzdata curl logrotate postgresql-dev postgresql-client openssl openssl-dev caddy" +ARG PACKAGES="tzdata curl logrotate postgresql-dev libwebp-dev libpng-dev tiff-dev postgresql-client openssl openssl-dev caddy" ARG RUBY_GEMS="bundler" ARG APP_ROOT=/app ARG S6_OVERLAY_VERSION="2.2.0.3" From bd4ff6ef090740bda47491b7d4107fd5ee0ee4d9 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 18 Oct 2021 19:17:40 +0800 Subject: [PATCH 0731/2165] =?UTF-8?q?chore:=20=E8=A7=A3=E5=86=B3=20heroku?= =?UTF-8?q?=20=E4=BE=9D=E8=B5=96=20webp?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Aptfile | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 Aptfile diff --git a/Aptfile b/Aptfile new file mode 100644 index 000000000..7f4f3ee13 --- /dev/null +++ b/Aptfile @@ -0,0 +1,2 @@ +libwebp-dev +webp \ No newline at end of file From 75294ed5a21a874411d58c5940470f3e18760147 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Oct 2021 21:01:38 +0000 Subject: [PATCH 0732/2165] chore(deps): bump openssl from 2.2.0 to 2.2.1 Bumps [openssl](https://github.com/ruby/openssl) from 2.2.0 to 2.2.1. - [Release notes](https://github.com/ruby/openssl/releases) - [Changelog](https://github.com/ruby/openssl/blob/master/History.md) - [Commits](https://github.com/ruby/openssl/compare/v2.2.0...v2.2.1) --- updated-dependencies: - dependency-name: openssl dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 755891ea1..d228f2306 100644 --- a/Gemfile +++ b/Gemfile @@ -51,7 +51,7 @@ gem 'omniauth-feishu', '~> 0.1.6' gem 'omniauth-gitlab', '~> 2.0.0' ## UDID -gem 'openssl', '~> 2.2.0' +gem 'openssl', '~> 2.2.1' gem 'plist', '~> 3.6.0' ## 系统信息 diff --git a/Gemfile.lock b/Gemfile.lock index 24acb3759..6ce89d22f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -222,6 +222,7 @@ GEM ruby-vips (>= 2.0.17, < 3) image_size (2.1.2) interception (0.5) + ipaddr (1.2.2) jb (0.8.0) jenkins_api_client (1.5.3) json (>= 1.0) @@ -308,7 +309,8 @@ GEM omniauth-oauth2 (1.6.0) oauth2 (~> 1.1) omniauth (~> 1.9) - openssl (2.2.0) + openssl (2.2.1) + ipaddr orm_adapter (0.5.0) parallel (1.20.1) parser (3.0.1.1) @@ -545,7 +547,7 @@ DEPENDENCIES omniauth-feishu (~> 0.1.6) omniauth-gitlab (~> 2.0.0) omniauth-google-oauth2 (~> 0.8.2) - openssl (~> 2.2.0) + openssl (~> 2.2.1) pg (>= 0.18, < 2.0) pghero plist (~> 3.6.0) From 1d97f084acdf3963952d523afd96e5ce45cee8e8 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 19 Oct 2021 19:01:01 +0800 Subject: [PATCH 0733/2165] =?UTF-8?q?fix:=20=E9=BB=98=E8=AE=A4=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E6=98=B5=E7=A7=B0=E5=8C=B9=E9=85=8D=E8=AF=AD=E8=A8=80?= =?UTF-8?q?=E5=8C=85=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/services/create_admin_service.rb | 2 +- app/services/create_sample_apps_service.rb | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/services/create_admin_service.rb b/app/services/create_admin_service.rb index ed15948ed..7dcd9853b 100644 --- a/app/services/create_admin_service.rb +++ b/app/services/create_admin_service.rb @@ -5,7 +5,7 @@ class CreateAdminService def call User.find_or_create_by!(email: Setting.admin_email) do |user| - user.username = t('users.roles.admin') + user.username = t('settings.default_role.admin') user.password = Setting.admin_password user.password_confirmation = Setting.admin_password user.role = :admin diff --git a/app/services/create_sample_apps_service.rb b/app/services/create_sample_apps_service.rb index 54ae4ccd4..6714c6f59 100644 --- a/app/services/create_sample_apps_service.rb +++ b/app/services/create_sample_apps_service.rb @@ -23,19 +23,19 @@ def stardford_app(user) ] changelog = [ { - author: t('users.roles.developer'), + author: t('settings.default_role.developer'), date: '2019-10-24 23:0:24 +0800', message: 'bump 0.1.0', email: 'admin@zealt.com' }, { - author: t('users.roles.developer'), + author: t('settings.default_role.developer'), date: '2019-10-23 17:41:41 +0800', message: 'fix: xxx', email: 'admin@zealt.com' }, { - author: t('users.roles.developer'), + author: t('settings.default_role.developer'), date: '2019-10-22 11:11:11 +0800', message: 'feat: xxx done', email: 'admin@zealt.com' From 206ada7eb206b8b66dc7215ba68814d778c00625 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 19 Oct 2021 19:07:09 +0800 Subject: [PATCH 0734/2165] =?UTF-8?q?refactor:=20=E5=BA=94=E7=94=A8?= =?UTF-8?q?=E7=89=88=E6=9C=AC=20device=20=E5=AD=97=E6=AE=B5=E5=92=8C?= =?UTF-8?q?=E5=AD=90=E5=85=B3=E7=B3=BB=E6=9C=89=E5=86=B2=E7=AA=81=E6=94=B9?= =?UTF-8?q?=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/apps_helper.rb | 4 ++-- app/models/release.rb | 4 ++-- app/views/dashboards/_recently_upload.html.slim | 4 ++-- app/views/releases/body/_activity.html.slim | 4 ++-- db/migrate/20211019110202_rename_device_to_device_name.rb | 5 +++++ db/schema.rb | 4 ++-- 6 files changed, 15 insertions(+), 10 deletions(-) create mode 100644 db/migrate/20211019110202_rename_device_to_device_name.rb diff --git a/app/helpers/apps_helper.rb b/app/helpers/apps_helper.rb index 535f0ba1d..06ced7a64 100644 --- a/app/helpers/apps_helper.rb +++ b/app/helpers/apps_helper.rb @@ -70,8 +70,8 @@ def display_app_device(value) if value.is_a?(Release) channel = value.channel channal_device_type = device_name(channel.device_type) - if value.device - return channal_device_type == value.device ? channal_device_type : "#{channal_device_type} (#{value.device})" + if value.device_type + return channal_device_type == value.device_type ? channal_device_type : "#{channal_device_type} (#{value.device_type})" end else channel = value diff --git a/app/models/release.rb b/app/models/release.rb index 73aa51a23..b871f55d2 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -49,7 +49,7 @@ def self.upload_file(params, parser = nil, default_source = 'web') release.bundle_id = parser.bundle_id release.release_version = parser.release_version release.build_version = parser.build_version - release.device = parser.device_type + release.device_type = parser.device_type release.release_type ||= parser.release_type if parser.respond_to?(:release_type) icon_file = fetch_icon(parser) @@ -228,7 +228,7 @@ def convert_custom_fields end def detect_device - self.device ||= channel.device_type + self.device_type ||= channel.device_type end ORIGIN_PREFIX = 'origin/' diff --git a/app/views/dashboards/_recently_upload.html.slim b/app/views/dashboards/_recently_upload.html.slim index 6f774a6c5..a9e7ac1af 100644 --- a/app/views/dashboards/_recently_upload.html.slim +++ b/app/views/dashboards/_recently_upload.html.slim @@ -34,9 +34,9 @@ section = changelog_format release.changelog_list, class: 'mb-0' - if release.release_type.present? || release.branch.present? || release.short_git_commit.present? .timeline-footer - - if release.device + - if release.device_type small.badge - = device_name(release.device) + = device_name(release.device_type) - if release.release_type small.badge = release.release_type diff --git a/app/views/releases/body/_activity.html.slim b/app/views/releases/body/_activity.html.slim index 32c773ce6..ae2a3d092 100644 --- a/app/views/releases/body/_activity.html.slim +++ b/app/views/releases/body/_activity.html.slim @@ -27,9 +27,9 @@ ruby: = changelog_format(release.changelog_list, class: 'mb-0') - if release.release_type.present? || release.branch.present? || release.short_git_commit.present? .timeline-footer - - if release.device + - if release.device_type small.badge - = device_name(release.device) + = device_name(release.device_type) - if release.release_type.present? small.badge = release.release_type diff --git a/db/migrate/20211019110202_rename_device_to_device_name.rb b/db/migrate/20211019110202_rename_device_to_device_name.rb new file mode 100644 index 000000000..432dc9fa4 --- /dev/null +++ b/db/migrate/20211019110202_rename_device_to_device_name.rb @@ -0,0 +1,5 @@ +class RenameDeviceToDeviceName < ActiveRecord::Migration[6.1] + def change + rename_column :releases, :device, :device_type + end +end diff --git a/db/schema.rb b/db/schema.rb index 5c3d9b234..2fb73635a 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 2021_08_26_114522) do +ActiveRecord::Schema.define(version: 2021_10_19_110202) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -129,7 +129,7 @@ t.datetime "updated_at", precision: 6, null: false t.jsonb "custom_fields", default: [], null: false t.string "name" - t.string "device" + t.string "device_type" t.index ["build_version"], name: "index_releases_on_build_version" t.index ["bundle_id"], name: "index_releases_on_bundle_id" t.index ["channel_id", "version"], name: "index_releases_on_channel_id_and_version", unique: true From 0dd15fea6a23d467f44c19b610fb85c1193cda81 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 19 Oct 2021 19:36:47 +0800 Subject: [PATCH 0735/2165] =?UTF-8?q?fix:=20=E5=88=9B=E5=BB=BA=E6=A0=B7?= =?UTF-8?q?=E4=BE=8B=E6=95=B0=E6=8D=AE=E9=BB=98=E8=AE=A4=E8=B5=8B=E5=80=BC?= =?UTF-8?q?=20device?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/release.rb | 2 +- app/services/create_sample_apps_service.rb | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/app/models/release.rb b/app/models/release.rb index b871f55d2..964ee4992 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -19,10 +19,10 @@ class Release < ApplicationRecord before_create :auto_release_version before_create :default_source + before_create :detect_device before_save :convert_changelog before_save :convert_custom_fields before_save :trip_branch - before_save :detect_device delegate :scheme, to: :channel delegate :app, to: :scheme diff --git a/app/services/create_sample_apps_service.rb b/app/services/create_sample_apps_service.rb index 6714c6f59..742b4dad1 100644 --- a/app/services/create_sample_apps_service.rb +++ b/app/services/create_sample_apps_service.rb @@ -93,6 +93,7 @@ def generate_release(channel, app_bundle_id, release_type, changelog) release.release_type = release_type release.source = 'API' release.branch = 'develop' + release.device_type = channel.device_type release.git_commit = SecureRandom.hex release.changelog = changelog release.save validate: false From 617e6b960e9365ce5a2430bab5e0c33b0f8dd0af Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 20 Oct 2021 21:00:57 +0000 Subject: [PATCH 0736/2165] chore(deps): bump sys-filesystem from 1.4.2 to 1.4.3 Bumps [sys-filesystem](https://github.com/djberg96/sys-filesystem) from 1.4.2 to 1.4.3. - [Release notes](https://github.com/djberg96/sys-filesystem/releases) - [Changelog](https://github.com/djberg96/sys-filesystem/blob/main/CHANGES.md) - [Commits](https://github.com/djberg96/sys-filesystem/compare/sys-filesystem-1.4.2...sys-filesystem-1.4.3) --- updated-dependencies: - dependency-name: sys-filesystem dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index d228f2306..4c87d0165 100644 --- a/Gemfile +++ b/Gemfile @@ -55,7 +55,7 @@ gem 'openssl', '~> 2.2.1' gem 'plist', '~> 3.6.0' ## 系统信息 -gem 'sys-filesystem', '~> 1.4.2' +gem 'sys-filesystem', '~> 1.4.3' gem 'vmstat', '~> 2.3.0' gem 'pghero' gem 'active_analytics' diff --git a/Gemfile.lock b/Gemfile.lock index 6ce89d22f..6688035c4 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -466,7 +466,7 @@ GEM activesupport (>= 4.0) sprockets (>= 3.0.0) ssrf_filter (1.0.7) - sys-filesystem (1.4.2) + sys-filesystem (1.4.3) ffi (~> 1.1) temple (0.8.2) terminal-notifier (2.0.0) @@ -575,7 +575,7 @@ DEPENDENCIES slim-rails (~> 3.3.0) spring spring-watcher-listen (~> 2.0.0) - sys-filesystem (~> 1.4.2) + sys-filesystem (~> 1.4.3) terminal-notifier terminal-notifier-guard turbolinks (~> 5) From 719f0b1eff92f358d246ededd6c1e6f9863f7f85 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 25 Oct 2021 18:39:07 +0800 Subject: [PATCH 0737/2165] =?UTF-8?q?refactor:=20=E5=BA=94=E7=94=A8?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E7=89=88=E6=9C=AC=E8=AF=A6=E6=83=85=E7=9A=84?= =?UTF-8?q?=20changelog=5Flist=20=E6=94=B9=E5=90=8D=20array=5Fchangelog;?= =?UTF-8?q?=20=E7=BD=91=E7=BB=9C=E9=92=A9=E5=AD=90=E7=9A=84=20changelog=20?= =?UTF-8?q?=E9=BB=98=E8=AE=A4=E8=BE=93=E5=87=BA=20markdown=20=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/application_helper.rb | 6 +----- app/jobs/app_web_hook_job.rb | 2 +- app/models/release.rb | 8 +++++++- app/serializers/api/upload_app_serializer.rb | 2 +- app/serializers/release_serializer.rb | 2 +- app/views/dashboards/_recently_upload.html.slim | 2 +- app/views/releases/body/_activity.html.slim | 2 +- app/views/releases/body/_changelog.html.slim | 2 +- app/views/udid/show.html.slim | 2 +- 9 files changed, 15 insertions(+), 13 deletions(-) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 127fb4c24..178f95ffa 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -49,11 +49,7 @@ def active_class(link_paths, class_name = 'active') end def changelog_format(changelog, **options) - raw = changelog.each_with_object([]) do |line, obj| - obj << "- #{line['message']}" - end.join("\n") - - simple_format raw, **options + simple_format changelog, **options end def device_name(device_type) diff --git a/app/jobs/app_web_hook_job.rb b/app/jobs/app_web_hook_job.rb index 3b2074b8e..fe50ed955 100644 --- a/app/jobs/app_web_hook_job.rb +++ b/app/jobs/app_web_hook_job.rb @@ -49,7 +49,7 @@ def build(body) release_version: @release.release_version, build_version: @release.build_version, bundle_id: @release.bundle_id, - changelog: @release.changelog, + changelog: @release.text_changelog, file_size: @release.file.size, release_url: @release.release_url, install_url: @release.install_url, diff --git a/app/models/release.rb b/app/models/release.rb index 964ee4992..dcd732ec8 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -121,13 +121,19 @@ def short_git_commit git_commit[0..8] end - def changelog_list(use_default_changelog = true) + def array_changelog(use_default_changelog = true) return empty_changelog(use_default_changelog) if changelog.blank? return [{'message' => changelog.to_s}] unless changelog.is_a?(Array) || changelog.is_a?(Hash) changelog end + def text_changelog(use_default_changelog = true) + array_changelog(use_default_changelog).each_with_object([]) do |line, obj| + obj << "- #{line['message']}" + end.join("\n") + end + def file? return false if file.blank? diff --git a/app/serializers/api/upload_app_serializer.rb b/app/serializers/api/upload_app_serializer.rb index 35221e95c..a60478b62 100644 --- a/app/serializers/api/upload_app_serializer.rb +++ b/app/serializers/api/upload_app_serializer.rb @@ -4,7 +4,7 @@ class Api::UploadAppSerializer < ApplicationSerializer # release model based attributes :id, :version, :app_name, :bundle_id, :release_version, :build_version, :source, :branch, :git_commit, :ci_url, :size, - :icon_url, :release_url, :install_url, :qrcode_url, :changelog_list, + :icon_url, :release_url, :install_url, :qrcode_url, :array_changelog, :custom_fields, :created_at belongs_to :app diff --git a/app/serializers/release_serializer.rb b/app/serializers/release_serializer.rb index 17186ccd4..d3e1b3752 100644 --- a/app/serializers/release_serializer.rb +++ b/app/serializers/release_serializer.rb @@ -7,6 +7,6 @@ class ReleaseSerializer < ApplicationSerializer :created_at def changelog - object.changelog_list(false) + object.array_changelog(false) end end diff --git a/app/views/dashboards/_recently_upload.html.slim b/app/views/dashboards/_recently_upload.html.slim index a9e7ac1af..16b47f9b1 100644 --- a/app/views/dashboards/_recently_upload.html.slim +++ b/app/views/dashboards/_recently_upload.html.slim @@ -31,7 +31,7 @@ section = t('dashboard.timeline.upload_release', release_version: release.release_version, build_version: release.build_version) - if release.changelog.present? .timeline-body.pb-1 - = changelog_format release.changelog_list, class: 'mb-0' + = changelog_format release.text_changelog, class: 'mb-0' - if release.release_type.present? || release.branch.present? || release.short_git_commit.present? .timeline-footer - if release.device_type diff --git a/app/views/releases/body/_activity.html.slim b/app/views/releases/body/_activity.html.slim index ae2a3d092..86ae31797 100644 --- a/app/views/releases/body/_activity.html.slim +++ b/app/views/releases/body/_activity.html.slim @@ -24,7 +24,7 @@ ruby: = t('releases.show.upload_release', release_version: release.release_version, build_version: release.build_version) - if release.changelog.present? .timeline-body.pb-0 - = changelog_format(release.changelog_list, class: 'mb-0') + = changelog_format(release.text_changelog, class: 'mb-0') - if release.release_type.present? || release.branch.present? || release.short_git_commit.present? .timeline-footer - if release.device_type diff --git a/app/views/releases/body/_changelog.html.slim b/app/views/releases/body/_changelog.html.slim index 3ff2486d8..894227f3f 100644 --- a/app/views/releases/body/_changelog.html.slim +++ b/app/views/releases/body/_changelog.html.slim @@ -8,7 +8,7 @@ i.fas.fa-minus .card-body.p-0 ul.products-list.product-list-in-card - - @release.changelog_list.each do |changelog| + - @release.array_changelog.each do |changelog| li.item.pl-3.pr-3 .product-title - if date = changelog['date'] diff --git a/app/views/udid/show.html.slim b/app/views/udid/show.html.slim index eac12f122..5a68f2c0e 100644 --- a/app/views/udid/show.html.slim +++ b/app/views/udid/show.html.slim @@ -75,7 +75,7 @@ = t('udid.show.upload_release', release_version: release.release_version, build_version: release.build_version) - if release.changelog.present? .timeline-body.pb-0 - = changelog_format release.changelog_list, class: 'mb-0' + = changelog_format release.text_changelog, class: 'mb-0' - if release.release_type.present? || release.branch.present? || release.short_git_commit.present? .timeline-footer - if release.release_type.present? From feaf1b8172c0f606a8830c09d60c8e5634fa539a Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 25 Oct 2021 19:11:03 +0800 Subject: [PATCH 0738/2165] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E9=92=89?= =?UTF-8?q?=E9=92=89=E4=B9=9F=E6=98=BE=E7=A4=BA=E6=89=93=E5=BC=80=E6=B5=8F?= =?UTF-8?q?=E8=A7=88=E5=99=A8=E8=BF=9B=E8=A1=8C=E4=B8=8B=E8=BD=BD=E7=9A=84?= =?UTF-8?q?=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/releases_controller.rb | 8 ++++---- app/helpers/application_helper.rb | 4 ++-- .../images/{wechat => icons}/short-arrow.png | Bin app/javascript/javascripts/releases/index.js | 8 ++++---- app/javascript/stylesheets/app.scss | 11 +++++------ app/views/releases/_tips.html.slim | 12 ++++++------ app/views/releases/body/_app_limited.html.slim | 12 ++++++++++++ app/views/releases/body/_metadata.html.slim | 2 +- app/views/releases/body/_wechat.html.slim | 12 ------------ app/views/releases/show.html.slim | 2 +- app/views/udid/index.html.slim | 2 +- config/locales/zealot/en.yml | 8 ++++---- config/locales/zealot/zh-CN.yml | 8 ++++---- 13 files changed, 44 insertions(+), 45 deletions(-) rename app/javascript/images/{wechat => icons}/short-arrow.png (100%) create mode 100644 app/views/releases/body/_app_limited.html.slim delete mode 100644 app/views/releases/body/_wechat.html.slim diff --git a/app/controllers/releases_controller.rb b/app/controllers/releases_controller.rb index 8b495be2b..c66f75448 100644 --- a/app/controllers/releases_controller.rb +++ b/app/controllers/releases_controller.rb @@ -59,15 +59,15 @@ def auth protected def authenticate_login! - authenticate_user! unless wechat? || Setting.guest_mode + authenticate_user! unless app_limited? || Setting.guest_mode end def authenticate_app! - return if wechat? || @channel.password.present? || user_signed_in? || Setting.guest_mode + return if app_limited? || @channel.password.present? || user_signed_in? || Setting.guest_mode end - def wechat? - request.user_agent.include? 'MicroMessenger' + def app_limited? + request.user_agent.include?('MicroMessenger') || request.user_agent.include?('DingTalk') end def set_release diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 178f95ffa..243cde4f2 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -98,8 +98,8 @@ def device_style(device_type) # 获取浏览器 user agent delegate :user_agent, to: :request - def wechat? - user_agent.include?('MicroMessenger') + def app_limited? + user_agent.include?('MicroMessenger') || user_agent.include?('DingTalk') end def macos?(source = nil) diff --git a/app/javascript/images/wechat/short-arrow.png b/app/javascript/images/icons/short-arrow.png similarity index 100% rename from app/javascript/images/wechat/short-arrow.png rename to app/javascript/images/icons/short-arrow.png diff --git a/app/javascript/javascripts/releases/index.js b/app/javascript/javascripts/releases/index.js index 57f0eae80..b0bef95d4 100644 --- a/app/javascript/javascripts/releases/index.js +++ b/app/javascript/javascripts/releases/index.js @@ -42,11 +42,11 @@ $(document).on('turbolinks:load', function () { $('#download_it').on('click', function () { - var wechat_regex = /MicroMessenger/i; + var app_limit_regex = /MicroMessenger|DingTalk/i; var that = $('#download_it'); - if (wechat_regex.test(navigator.userAgent)) { + if (app_limit_regex.test(navigator.userAgent)) { $('.cover').removeClass('hide'); - $('.wechat-tips').removeClass('hide'); + $('.app-limited-tips').removeClass('hide'); $('.navbar-fixed-top').css('z-index', 0); } @@ -66,7 +66,7 @@ $(document).on('turbolinks:load', function () { $('.cover').on('click', function () { $(this).addClass('hide'); - $('.wechat-tips').addClass('hide'); + $('.app-limited-tips').addClass('hide'); $('.navbar-fixed-top').css('z-index', 1030); }); diff --git a/app/javascript/stylesheets/app.scss b/app/javascript/stylesheets/app.scss index e745e1a7c..e0a69a9e0 100644 --- a/app/javascript/stylesheets/app.scss +++ b/app/javascript/stylesheets/app.scss @@ -33,7 +33,7 @@ $ios-install-issue-color: rgb(245, 39, 90); z-index: 1050; } -.wechat-tips { +.app-limited-tips { position: fixed; width: 100%; text-align: right; @@ -43,7 +43,7 @@ $ios-install-issue-color: rgb(245, 39, 90); top: 0; } -.wechat-tips span { +.app-limited-tips span { text-align: left; vertical-align: middle; font-size: 16px; @@ -54,7 +54,7 @@ $ios-install-issue-color: rgb(245, 39, 90); display: inline-block; } -.wechat-tips img { +.app-limited-tips img { width: 50px; display: inline-block; vertical-align: middle; @@ -62,13 +62,12 @@ $ios-install-issue-color: rgb(245, 39, 90); margin-right: 30px; } - @media (min-width: 420px) { - .wechat-tips span { + .app-limited-tips span { margin-right: 15px; } - .wechat-tips img { + .app-limited-tips img { margin-right: 20px; } } diff --git a/app/views/releases/_tips.html.slim b/app/views/releases/_tips.html.slim index bb69aaa3c..5fe909772 100644 --- a/app/views/releases/_tips.html.slim +++ b/app/views/releases/_tips.html.slim @@ -1,11 +1,11 @@ -- if wechat? +- if app_limited? div.cover - div.wechat-tips + div.app-limited-tips span.text-right - = t('releases.show.wechat_touch_menu') + = t('releases.show.app_touch_menu') br - if ios? - = t('releases.show.wechat_open_in_safari') + = t('releases.show.app_open_in_safari') - else - = t('releases.show.wechat_open_in_webbrower') - = image_pack_tag('media/images/wechat/short-arrow.png') \ No newline at end of file + = t('releases.show.app_open_in_webbrower') + = image_pack_tag('media/images/icons/short-arrow.png') \ No newline at end of file diff --git a/app/views/releases/body/_app_limited.html.slim b/app/views/releases/body/_app_limited.html.slim new file mode 100644 index 000000000..3e69aebaa --- /dev/null +++ b/app/views/releases/body/_app_limited.html.slim @@ -0,0 +1,12 @@ +- if app_limited? + = render "releases/tips" + + .alert.alert-danger.alert-dismissible + button.close data-dismiss="alert" aria-hidden="true" × + h5 = t('releases.show.app_limited') + ol.pl-4.mb-0 + li = t('releases.show.app_touch_menu') + - if ios? + li = t('releases.show.app_open_in_safari') + - else + li = t('releases.show.app_open_in_webbrower') \ No newline at end of file diff --git a/app/views/releases/body/_metadata.html.slim b/app/views/releases/body/_metadata.html.slim index 28294e8be..ba3f633ca 100644 --- a/app/views/releases/body/_metadata.html.slim +++ b/app/views/releases/body/_metadata.html.slim @@ -69,7 +69,7 @@ = link_to t('releases.show.teardown_meatdata'), teardown_path(@release.metadata) .app-actions - - unless wechat? + - unless app_limited? - if @release.file? == render 'releases/body/install_cert' diff --git a/app/views/releases/body/_wechat.html.slim b/app/views/releases/body/_wechat.html.slim deleted file mode 100644 index 4b6dab7ca..000000000 --- a/app/views/releases/body/_wechat.html.slim +++ /dev/null @@ -1,12 +0,0 @@ -- if wechat? - = render "releases/tips" - - .alert.alert-danger.alert-dismissible - button.close data-dismiss="alert" aria-hidden="true" × - h5 = t('releases.show.wechat_limited') - ol.pl-4.mb-0 - li = t('releases.show.wechat_touch_menu') - - if ios? - li = t('releases.show.wechat_open_in_safari') - - else - li = t('releases.show.wechat_open_in_webbrower') \ No newline at end of file diff --git a/app/views/releases/show.html.slim b/app/views/releases/show.html.slim index 5551376a4..40ef6f58c 100644 --- a/app/views/releases/show.html.slim +++ b/app/views/releases/show.html.slim @@ -4,7 +4,7 @@ .row - if logged_in_or_without_auth?(@release) .col-md-8 - == render 'releases/body/wechat' + == render 'releases/body/app_limited' == render 'releases/body/metadata' == render 'releases/body/changelog' == render 'releases/body/devices' diff --git a/app/views/udid/index.html.slim b/app/views/udid/index.html.slim index a5aa83fd1..06baa3a6e 100644 --- a/app/views/udid/index.html.slim +++ b/app/views/udid/index.html.slim @@ -6,7 +6,7 @@ .row .col-md-12 - == render 'releases/body/wechat' + == render 'releases/body/app_limited' .card .card-body.text-center diff --git a/config/locales/zealot/en.yml b/config/locales/zealot/en.yml index 13c2159ff..779f7d04f 100644 --- a/config/locales/zealot/en.yml +++ b/config/locales/zealot/en.yml @@ -260,10 +260,10 @@ en: api: API show: enter_password: Enter password - wechat_limited: Install limited in current app - wechat_touch_menu: Click menu right-top concor - wechat_open_in_safari: Choose "Open in Safari" and install - wechat_open_in_webbrower: Open with any brower and install + app_limited: Install limited in current app + app_touch_menu: Click menu right-top concor + app_open_in_safari: Choose "Open in Safari" and install + app_open_in_webbrower: Open with any brower and install not_latest_release: New release found! released_new_version: 'New release %{release_version} (%{build_version}) uploaded at %{time} ago, %{link}.' view_latest_version: Check it out diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index 8e60abc90..16624ed19 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -260,10 +260,10 @@ zh-CN: api: 接口上传 show: enter_password: 访问密码 - wechat_limited: 应用限制请按照提示安装 - wechat_touch_menu: 点击右上角菜单 - wechat_open_in_safari: 在 Safari 中打开并安装 - wechat_open_in_webbrower: 在任意浏览器中打开并安装 + app_limited: 应用限制请按照提示安装 + app_touch_menu: 点击右上角菜单 + app_open_in_safari: 在 Safari 中打开并安装 + app_open_in_webbrower: 在任意浏览器中打开并安装 not_latest_release: 当前不是最新版本! released_new_version: '%{release_version} (%{build_version}) 于%{time}发布了,%{link}。' view_latest_version: 查看最新版本 From d76a69f98c532cffd7e58cf3d1821310160fc066 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 27 Oct 2021 11:48:18 +0800 Subject: [PATCH 0739/2165] =?UTF-8?q?feat:=20=E5=90=8E=E5=8F=B0=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E6=94=AF=E6=8C=81=E6=98=BE=E7=A4=BA=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E7=9A=84=E5=8E=86=E5=8F=B2=E8=AE=B0=E5=BD=95?= =?UTF-8?q?,=E9=BB=98=E8=AE=A4=E4=BF=9D=E5=AD=98=205000=20=E6=9D=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 1 + Gemfile.lock | 3 +++ config/initializers/sidekiq.rb | 3 +++ 3 files changed, 7 insertions(+) diff --git a/Gemfile b/Gemfile index 4c87d0165..675f7d3d8 100644 --- a/Gemfile +++ b/Gemfile @@ -75,6 +75,7 @@ gem 'rqrcode' gem 'activejob-status' gem 'sidekiq', '~> 6.2.1' gem 'sidekiq-scheduler', '~> 3.1.0' +gem 'sidekiq-failures', '~> 1.0.1' # Assets gem 'turbolinks', '~> 5' diff --git a/Gemfile.lock b/Gemfile.lock index 6688035c4..88623f807 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -436,6 +436,8 @@ GEM connection_pool (>= 2.2.2) rack (~> 2.0) redis (>= 4.2.0) + sidekiq-failures (1.0.1) + sidekiq (>= 4.0.0) sidekiq-scheduler (3.1.0) e2mmap redis (>= 3, < 5) @@ -570,6 +572,7 @@ DEPENDENCIES sentry-ruby sentry-sidekiq sidekiq (~> 6.2.1) + sidekiq-failures (~> 1.0.1) sidekiq-scheduler (~> 3.1.0) simple_form (~> 5.1) slim-rails (~> 3.3.0) diff --git a/config/initializers/sidekiq.rb b/config/initializers/sidekiq.rb index 0c8cf547a..7e8cefe02 100644 --- a/config/initializers/sidekiq.rb +++ b/config/initializers/sidekiq.rb @@ -6,6 +6,9 @@ logger_level = ::Logger.const_get(ENV.fetch('RAILS_LOG_LEVEL', 'info').upcase.to_s) logger_level = ::Logger::DEBUG if Rails.env.development? config.logger.level = logger_level + + # Max limits failures + config.failures_max_count = 5000 end Sidekiq.configure_client do |config| From 8d4474169b0563b6b451f1d2bbcd820898c2ce11 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 27 Oct 2021 16:30:56 +0800 Subject: [PATCH 0740/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=20device=20?= =?UTF-8?q?=E6=94=B9=E5=90=8D=20device=5Ftype=20=E9=83=A8=E5=88=86?= =?UTF-8?q?=E5=8F=98=E9=87=8F=E9=81=97=E6=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/release.rb | 2 +- app/views/releases/body/_metadata.html.slim | 2 +- config/locales/zealot/en.yml | 2 +- config/locales/zealot/zh-CN.yml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/models/release.rb b/app/models/release.rb index dcd732ec8..b95eef3ba 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -145,7 +145,7 @@ def download_url end def install_url - return download_url if device.casecmp?('android') || device.casecmp?('macos') + return download_url if device_type.casecmp?('android') || device_type.casecmp?('macos') download_url = channel_release_install_url(channel.slug, id) "itms-services://?action=download-manifest&url=#{download_url}" diff --git a/app/views/releases/body/_metadata.html.slim b/app/views/releases/body/_metadata.html.slim index ba3f633ca..c620ae72b 100644 --- a/app/views/releases/body/_metadata.html.slim +++ b/app/views/releases/body/_metadata.html.slim @@ -28,7 +28,7 @@ li title="#{t('releases.show.version')}" i.fab.fa-gg = @release.version - li title="#{t('releases.show.device')}" + li title="#{t('releases.show.device_type')}" = device_icon(@release.channel.device_type) = display_app_device(@release) li title="#{t('releases.show.release_version')}" diff --git a/config/locales/zealot/en.yml b/config/locales/zealot/en.yml index 779f7d04f..647f00877 100644 --- a/config/locales/zealot/en.yml +++ b/config/locales/zealot/en.yml @@ -270,7 +270,7 @@ en: name: App version: Auto Version - device: Device + device_type: Device release_version: Release version (build version) release_type: Release type filesize: Filesize diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index 16624ed19..2eed201e4 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -270,7 +270,7 @@ zh-CN: name: 应用 version: 上传版本 - device: 平台 + device_type: 平台 release_version: 构建版本 release_type: 打包类型 filesize: 文件体积 From 719be545a8906f27673bafa9e2463b9f16c04e9f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 1 Nov 2021 21:01:55 +0000 Subject: [PATCH 0741/2165] chore(deps): bump devise-i18n from 1.9.4 to 1.10.1 Bumps [devise-i18n](https://github.com/tigrish/devise-i18n) from 1.9.4 to 1.10.1. - [Release notes](https://github.com/tigrish/devise-i18n/releases) - [Changelog](https://github.com/tigrish/devise-i18n/blob/master/CHANGELOG.md) - [Commits](https://github.com/tigrish/devise-i18n/compare/v1.9.4...v1.10.1) --- updated-dependencies: - dependency-name: devise-i18n dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Gemfile b/Gemfile index 675f7d3d8..a97695152 100644 --- a/Gemfile +++ b/Gemfile @@ -42,7 +42,7 @@ gem 'http', '~> 5.0.4' ## 用户认证 gem 'pundit', '~> 2.1.0' gem 'devise', '~> 4.8.0' -gem 'devise-i18n', '~> 1.9.4' +gem 'devise-i18n', '~> 1.10.1' gem 'omniauth', '~> 1.9' gem 'omniauth-google-oauth2', '~> 0.8.2' diff --git a/Gemfile.lock b/Gemfile.lock index 88623f807..35ca75aa3 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -126,8 +126,8 @@ GEM railties (>= 4.1.0) responders warden (~> 1.2.3) - devise-i18n (1.9.4) - devise (>= 4.7.1) + devise-i18n (1.10.1) + devise (>= 4.8.0) domain_name (0.5.20190701) unf (>= 0.0.5, < 1.0.0) dotenv (2.7.6) @@ -337,7 +337,7 @@ GEM activesupport (>= 3.0.0) pyu-ruby-sasl (0.0.3.3) raabro (1.4.0) - racc (1.5.2) + racc (1.6.0) rack (2.2.3) rack-cors (1.1.1) rack (>= 2.0.0) @@ -508,7 +508,7 @@ GEM websocket-driver (0.7.5) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) - zeitwerk (2.4.2) + zeitwerk (2.5.1) PLATFORMS ruby @@ -526,7 +526,7 @@ DEPENDENCIES carrierwave (~> 2.2.2) debase devise (~> 4.8.0) - devise-i18n (~> 1.9.4) + devise-i18n (~> 1.10.1) dotenv-rails friendly_id (~> 5.4.2) gitlab_omniauth-ldap (~> 2.1.1) From f9c8f60d8e443c767c557a9bd53290f0b699e58c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Nov 2021 21:01:50 +0000 Subject: [PATCH 0742/2165] chore(deps): bump sidekiq from 6.2.2 to 6.3.1 Bumps [sidekiq](https://github.com/mperham/sidekiq) from 6.2.2 to 6.3.1. - [Release notes](https://github.com/mperham/sidekiq/releases) - [Changelog](https://github.com/mperham/sidekiq/blob/main/Changes.md) - [Commits](https://github.com/mperham/sidekiq/compare/v6.2.2...v6.3.1) --- updated-dependencies: - dependency-name: sidekiq dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index a97695152..548b6d505 100644 --- a/Gemfile +++ b/Gemfile @@ -73,7 +73,7 @@ gem 'rqrcode' # 异步队列 gem 'activejob-status' -gem 'sidekiq', '~> 6.2.1' +gem 'sidekiq', '~> 6.3.1' gem 'sidekiq-scheduler', '~> 3.1.0' gem 'sidekiq-failures', '~> 1.0.1' diff --git a/Gemfile.lock b/Gemfile.lock index 35ca75aa3..ac1b099fc 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -432,7 +432,7 @@ GEM sentry-ruby-core (~> 4.7.0) sidekiq (>= 3.0) shellany (0.0.1) - sidekiq (6.2.2) + sidekiq (6.3.1) connection_pool (>= 2.2.2) rack (~> 2.0) redis (>= 4.2.0) @@ -571,7 +571,7 @@ DEPENDENCIES sentry-rails sentry-ruby sentry-sidekiq - sidekiq (~> 6.2.1) + sidekiq (~> 6.3.1) sidekiq-failures (~> 1.0.1) sidekiq-scheduler (~> 3.1.0) simple_form (~> 5.1) From 6deaa0b060b1273a5674784e22ebccc02e36fb0b Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 9 Nov 2021 14:38:30 +0800 Subject: [PATCH 0743/2165] =?UTF-8?q?feat:=20=E5=8D=87=E7=BA=A7=20letter?= =?UTF-8?q?=5Fopener=5Fweb?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 2 +- Gemfile.lock | 11 ++++++----- config/routes.rb | 2 +- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/Gemfile b/Gemfile index 675f7d3d8..622ddee5e 100644 --- a/Gemfile +++ b/Gemfile @@ -121,7 +121,7 @@ group :development do # 在线查看 Action Mailer 内容 gem 'letter_opener', '~> 1.7' - gem 'letter_opener_web', '~> 1.4' + gem 'letter_opener_web', '~> 2.0' end group :development, :test do diff --git a/Gemfile.lock b/Gemfile.lock index 88623f807..1b3683556 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -250,10 +250,11 @@ GEM addressable (~> 2.7) letter_opener (1.7.0) launchy (~> 2.2) - letter_opener_web (1.4.1) - actionmailer (>= 3.2) - letter_opener (~> 1.0) - railties (>= 3.2) + letter_opener_web (2.0.0) + actionmailer (>= 5.2) + letter_opener (~> 1.7) + railties (>= 5.2) + rexml listen (3.7.0) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) @@ -543,7 +544,7 @@ DEPENDENCIES jenkins_api_client kaminari letter_opener (~> 1.7) - letter_opener_web (~> 1.4) + letter_opener_web (~> 2.0) listen (>= 3.0.5, < 3.8) omniauth (~> 1.9) omniauth-feishu (~> 0.1.6) diff --git a/config/routes.rb b/config/routes.rb index 61ff1697f..275f36598 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -124,7 +124,7 @@ ############################################# # Development Only ############################################# - mount LetterOpenerWeb::Engine, at: 'letter_opener' if Rails.env.development? + mount LetterOpenerWeb::Engine, at: 'inbox' if Rails.env.development? ############################################# # API v1 From 0e9e7f8e3ec72c3d4b83d0ae973651b64abededa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 9 Nov 2021 06:47:06 +0000 Subject: [PATCH 0744/2165] chore(deps): bump redis from 4.4.0 to 4.5.1 Bumps [redis](https://github.com/redis/redis-rb) from 4.4.0 to 4.5.1. - [Release notes](https://github.com/redis/redis-rb/releases) - [Changelog](https://github.com/redis/redis-rb/blob/master/CHANGELOG.md) - [Commits](https://github.com/redis/redis-rb/compare/v4.4.0...v4.5.1) --- updated-dependencies: - dependency-name: redis dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 219f6c4c3..9378a2b27 100644 --- a/Gemfile +++ b/Gemfile @@ -11,7 +11,7 @@ gem 'rake', '~> 13.0.4' # DB & Cache gem 'pg', '>= 0.18', '< 2.0' -gem 'redis', '~> 4.4.0' +gem 'redis', '~> 4.5.1' # API gem 'active_model_serializers', '~> 0.10.12' diff --git a/Gemfile.lock b/Gemfile.lock index fcacebd4a..7129b0983 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -382,7 +382,7 @@ GEM rb-fsevent (0.11.0) rb-inotify (0.10.1) ffi (~> 1.0) - redis (4.4.0) + redis (4.5.1) regexp_parser (2.1.1) responders (3.0.1) actionpack (>= 5.0) @@ -564,7 +564,7 @@ DEPENDENCIES rails-i18n (~> 6.0.0) rails-settings-cached (~> 2.8.1) rake (~> 13.0.4) - redis (~> 4.4.0) + redis (~> 4.5.1) rqrcode rubocop (>= 0.70) rubocop-rails From eb62c48f77c4f6eeb1239abd9847fa10eb0bcea2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 12 Nov 2021 21:03:29 +0000 Subject: [PATCH 0745/2165] chore(deps): bump compare-versions from 3.6.0 to 4.0.2 Bumps [compare-versions](https://github.com/omichelsen/compare-versions) from 3.6.0 to 4.0.2. - [Release notes](https://github.com/omichelsen/compare-versions/releases) - [Changelog](https://github.com/omichelsen/compare-versions/blob/master/CHANGELOG.md) - [Commits](https://github.com/omichelsen/compare-versions/compare/v3.6.0...v4.0.2) --- updated-dependencies: - dependency-name: compare-versions dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 74c7fd0a4..edcaa2758 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "@rails/webpacker": "^5.4.2", "admin-lte": "^3.1.0", "clipboard": "^2.0.8", - "compare-versions": "^3.6.0", + "compare-versions": "^4.0.2", "filepond": "^4.30.3", "rails-erb-loader": "^5.5.2", "turbolinks": "^5.2.0" diff --git a/yarn.lock b/yarn.lock index 09821df79..9227071de 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2347,10 +2347,10 @@ commondir@^1.0.1: resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= -compare-versions@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-3.6.0.tgz#1a5689913685e5a87637b8d3ffca75514ec41d62" - integrity sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA== +compare-versions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-4.0.2.tgz#6b7af39d9a51f6ddc392db7d5307dceca1c27cb4" + integrity sha512-/ApNVPwcd7HiXWyONT6iJMdzdo4VUF06P/GpQV53NCgeCjQqDQTNEXDqIKa6NIAbc227ANON2sKlLSJxrVXfmg== component-emitter@^1.2.1: version "1.3.0" From 969d6c76846760c0550bf896b3debaab0bb63f66 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 15 Nov 2021 18:02:15 +0800 Subject: [PATCH 0746/2165] =?UTF-8?q?refactor:=20=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=E5=BA=94=E7=94=A8=E6=88=96=E8=B0=83=E8=AF=95=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E7=A7=BB=E5=8A=A8=E4=BB=A3=E6=9B=BF=E6=8B=B7?= =?UTF-8?q?=E8=B4=9D=E6=8F=90=E5=8D=87=E5=93=8D=E5=BA=94=E9=80=9F=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/uploaders/app_file_uploader.rb | 8 ++++++++ app/uploaders/debug_file_uploader.rb | 8 ++++++++ 2 files changed, 16 insertions(+) diff --git a/app/uploaders/app_file_uploader.rb b/app/uploaders/app_file_uploader.rb index a8ebf45b7..89425506f 100644 --- a/app/uploaders/app_file_uploader.rb +++ b/app/uploaders/app_file_uploader.rb @@ -13,6 +13,14 @@ def extension_allowlist %w[ipa apk aab zip] end + def move_to_cache + true + end + + def move_to_store + true + end + private def validate_app_type diff --git a/app/uploaders/debug_file_uploader.rb b/app/uploaders/debug_file_uploader.rb index e7073c747..8468eddf4 100644 --- a/app/uploaders/debug_file_uploader.rb +++ b/app/uploaders/debug_file_uploader.rb @@ -8,4 +8,12 @@ def store_dir def extension_allowlist %w[zip] end + + def move_to_cache + true + end + + def move_to_store + true + end end From c4d4cf9aa59e026fee67c26019852fc41204e9f9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Nov 2021 21:02:39 +0000 Subject: [PATCH 0747/2165] chore(deps): bump compare-versions from 4.0.2 to 4.1.1 Bumps [compare-versions](https://github.com/omichelsen/compare-versions) from 4.0.2 to 4.1.1. - [Release notes](https://github.com/omichelsen/compare-versions/releases) - [Changelog](https://github.com/omichelsen/compare-versions/blob/master/CHANGELOG.md) - [Commits](https://github.com/omichelsen/compare-versions/compare/v4.0.2...v4.1.1) --- updated-dependencies: - dependency-name: compare-versions dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index edcaa2758..482f7d498 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "@rails/webpacker": "^5.4.2", "admin-lte": "^3.1.0", "clipboard": "^2.0.8", - "compare-versions": "^4.0.2", + "compare-versions": "^4.1.1", "filepond": "^4.30.3", "rails-erb-loader": "^5.5.2", "turbolinks": "^5.2.0" diff --git a/yarn.lock b/yarn.lock index 9227071de..c4d711f20 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2347,10 +2347,10 @@ commondir@^1.0.1: resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= -compare-versions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-4.0.2.tgz#6b7af39d9a51f6ddc392db7d5307dceca1c27cb4" - integrity sha512-/ApNVPwcd7HiXWyONT6iJMdzdo4VUF06P/GpQV53NCgeCjQqDQTNEXDqIKa6NIAbc227ANON2sKlLSJxrVXfmg== +compare-versions@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-4.1.1.tgz#d881fc9f47d6eb2b8f63109dc5e82dae39c3680c" + integrity sha512-jHQA7zMUpbO+FhPz/kADChZVSk3edtD7c3WkEAjleBtwgAl0ji6wGrYxryaBhViGgq0A+Pb6JPhjhg9jpth4mQ== component-emitter@^1.2.1: version "1.3.0" From 41963280efda1acb50e813c76bafca73e3c65eea Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 17 Nov 2021 21:02:35 +0000 Subject: [PATCH 0748/2165] chore(deps-dev): bump web-console from 4.1.0 to 4.2.0 Bumps [web-console](https://github.com/rails/web-console) from 4.1.0 to 4.2.0. - [Release notes](https://github.com/rails/web-console/releases) - [Changelog](https://github.com/rails/web-console/blob/master/CHANGELOG.markdown) - [Commits](https://github.com/rails/web-console/compare/v4.1.0...v4.2.0) --- updated-dependencies: - dependency-name: web-console dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index fcacebd4a..65f4cbf9f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -214,7 +214,7 @@ GEM http-cookie (1.0.4) domain_name (~> 0.5) http-form_data (2.3.0) - i18n (1.8.10) + i18n (1.8.11) concurrent-ruby (~> 1.0) icns (0.2.0) image_processing (1.12.1) @@ -493,7 +493,7 @@ GEM vmstat (2.3.1) warden (1.2.9) rack (>= 2.0.9) - web-console (4.1.0) + web-console (4.2.0) actionview (>= 6.0.0) activemodel (>= 6.0.0) bindex (>= 0.4.0) From 698ddcd8ca353085ca3d844cf114a6844aaacab4 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 18 Nov 2021 11:15:29 +0800 Subject: [PATCH 0749/2165] =?UTF-8?q?fix:=20=E6=9E=84=E5=BB=BA=E6=97=A5?= =?UTF-8?q?=E6=9C=9F=E4=B8=BA=E7=A9=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 1 + app/models/setting.rb | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index b66c51fc8..1bdac0db5 100644 --- a/Dockerfile +++ b/Dockerfile @@ -86,6 +86,7 @@ ENV TZ="Asia/Shanghai" \ BUNDLE_APP_CONFIG="$APP_ROOT/.bundle" \ ZEALOT_VCS_REF="$VCS_REF" \ ZEALOT_VERSION="$ZEALOT_VERSION" \ + ZEALOT_BUILD_DATE="$BUILD_DATE" \ RAILS_ENV="production" # System dependencies diff --git a/app/models/setting.rb b/app/models/setting.rb index 93a764c93..25617fb79 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -150,7 +150,7 @@ def url_options scope :information do field :version, default: (ENV['ZEALOT_VERSION'] || 'development'), type: :string, readonly: true field :vcs_ref, default: (ENV['ZEALOT_VCS_REF']), type: :string, readonly: true - field :build_date, default: ENV['BUILD_DATE'], type: :string, readonly: true + field :build_date, default: ENV['ZEALOT_BUILD_DATE'], type: :string, readonly: true end def readonly? From b710d3d632ef94f99865cd7277bb96d0c5278992 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 18 Nov 2021 11:16:10 +0800 Subject: [PATCH 0750/2165] =?UTF-8?q?Revert=20"refactor:=20=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0=E5=BA=94=E7=94=A8=E6=88=96=E8=B0=83=E8=AF=95=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E4=BD=BF=E7=94=A8=E7=A7=BB=E5=8A=A8=E4=BB=A3=E6=9B=BF?= =?UTF-8?q?=E6=8B=B7=E8=B4=9D=E6=8F=90=E5=8D=87=E5=93=8D=E5=BA=94=E9=80=9F?= =?UTF-8?q?=E5=BA=A6"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 969d6c76846760c0550bf896b3debaab0bb63f66. --- app/uploaders/app_file_uploader.rb | 8 -------- app/uploaders/debug_file_uploader.rb | 8 -------- 2 files changed, 16 deletions(-) diff --git a/app/uploaders/app_file_uploader.rb b/app/uploaders/app_file_uploader.rb index 89425506f..a8ebf45b7 100644 --- a/app/uploaders/app_file_uploader.rb +++ b/app/uploaders/app_file_uploader.rb @@ -13,14 +13,6 @@ def extension_allowlist %w[ipa apk aab zip] end - def move_to_cache - true - end - - def move_to_store - true - end - private def validate_app_type diff --git a/app/uploaders/debug_file_uploader.rb b/app/uploaders/debug_file_uploader.rb index 8468eddf4..e7073c747 100644 --- a/app/uploaders/debug_file_uploader.rb +++ b/app/uploaders/debug_file_uploader.rb @@ -8,12 +8,4 @@ def store_dir def extension_allowlist %w[zip] end - - def move_to_cache - true - end - - def move_to_store - true - end end From 7a75dc902eff56c0243de66a5d3449a9ddb36d45 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 18 Nov 2021 16:06:51 +0800 Subject: [PATCH 0751/2165] fix: request origin not allowed --- app/models/setting.rb | 2 ++ app/views/layouts/application.html.slim | 1 + config/environments/production.rb | 9 +++++---- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/app/models/setting.rb b/app/models/setting.rb index 25617fb79..d2f7e530f 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -1,5 +1,7 @@ # frozen_string_literal: true +require_relative './concerns/user_roles' + # RailsSettings Model class Setting < RailsSettings::Base extend ActionView::Helpers::TranslationHelper diff --git a/app/views/layouts/application.html.slim b/app/views/layouts/application.html.slim index c502edf2a..9e30c51c8 100644 --- a/app/views/layouts/application.html.slim +++ b/app/views/layouts/application.html.slim @@ -17,6 +17,7 @@ html == favicon_link_tag asset_pack_path('media/images/touch-icon.png') == stylesheet_pack_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' == javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' + == action_cable_meta_tag == csrf_meta_tags body class="hold-transition #{body_class}" diff --git a/config/environments/production.rb b/config/environments/production.rb index 30b22cfd8..4a17681ea 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -1,5 +1,7 @@ # frozen_string_literal: true +require_relative '../../app/models/setting' + Rails.application.configure do # Settings specified here will take precedence over those in config/application.rb. @@ -48,10 +50,9 @@ # Mount Action Cable outside main process or domain # config.action_cable.mount_path = nil # config.action_cable.url = 'wss://example.com/cable' - # config.action_cable.allowed_request_origins = [ - # 'http://example.com', - # /http:\/\/example.*/ - # ] + config.action_cable.allowed_request_origins = [ + /http(s)?:\/\/#{Setting.site_domain}/ + ] # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies. # config.force_ssl = true From 2b4fe5864b8d946d2e04a5d02bdfe417368acb2d Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 22 Nov 2021 20:03:56 +0800 Subject: [PATCH 0752/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=20gems=20=E4=B8=BA=E7=A9=BA=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/admin/system_info_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/admin/system_info_controller.rb b/app/controllers/admin/system_info_controller.rb index f4dead340..ab7018c2a 100644 --- a/app/controllers/admin/system_info_controller.rb +++ b/app/controllers/admin/system_info_controller.rb @@ -85,7 +85,7 @@ def set_env end def set_gems - @gems ||= Sentry.configuration.gem_specs.sort + @gems ||= Hash[Gem::Specification.map { |spec| [spec.name, spec.version.to_s] }].sort end def set_disk_volumes From 8743caea60ef40740fe0cad27c71603538e92ee2 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 23 Nov 2021 10:39:32 +0800 Subject: [PATCH 0753/2165] =?UTF-8?q?style:=20=E8=B0=83=E6=95=B4=E6=B2=A1?= =?UTF-8?q?=E6=9C=89=E4=BB=BB=E4=BD=95=E4=B8=8A=E4=BC=A0=E7=9A=84=E6=8F=90?= =?UTF-8?q?=E7=A4=BA=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/dashboards/_recently_upload.html.slim | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/app/views/dashboards/_recently_upload.html.slim b/app/views/dashboards/_recently_upload.html.slim index 16b47f9b1..26563c97b 100644 --- a/app/views/dashboards/_recently_upload.html.slim +++ b/app/views/dashboards/_recently_upload.html.slim @@ -7,8 +7,8 @@ section i.icon.fas.fa-history = t('dashboard.timeline.title') - .card-body.pb-0 - - if @releases.present? + - if @releases.present? + .card-body.pb-0 .timeline ruby: loop_date = Time.current @@ -49,8 +49,9 @@ section div i.bg-gray.fas.fa-clock - - else - .time-label = t('dashboard.timeline.not_found') + - else + .card-body + = t('dashboard.timeline.not_found') - if @releases.total_pages > 1 .card-footer From d7df3ce3924087ab213b9e85fe7f6770dfad4ab8 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 23 Nov 2021 10:52:43 +0800 Subject: [PATCH 0754/2165] =?UTF-8?q?refactor:=20=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E8=AF=AD=E8=A8=80=E5=8C=85=E7=9A=84=E5=8F=98=E9=87=8F=E5=90=8D?= =?UTF-8?q?=E6=94=B9=E4=B8=BA=20DEFAULT=5FLOCALE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/application.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/application.rb b/config/application.rb index 60554cb78..4177628cf 100644 --- a/config/application.rb +++ b/config/application.rb @@ -31,10 +31,10 @@ class Application < Rails::Application config.active_record.default_timezone = :local # Set default locale - locale = ENV['LOCALE'] || 'zh-CN' + locale = ENV['DEFAULT_LOCALE']&.to_sym config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}')] - config.i18n.default_locale = locale.to_sym config.i18n.available_locales = [:'zh-CN', :en] + config.i18n.default_locale = config.i18n.available_locales.include?(locale) ? locale : :'zh-CN' # Enable locale fallbacks for I18n (makes lookups for any locale fall back to # the I18n.default_locale when a translation cannot be found). From f850e929af8f9f4a631828acaeb9a8434f6aa70c Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 23 Nov 2021 12:01:04 +0800 Subject: [PATCH 0755/2165] =?UTF-8?q?feat:=20=E9=85=8D=E7=BD=AE=E7=B1=BB?= =?UTF-8?q?=E5=8F=AF=E4=BB=A5=E8=8E=B7=E5=8F=96=E9=A2=84=E8=AE=BE=E7=9A=84?= =?UTF-8?q?=E6=9B=B4=E5=A4=9A=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/admin/settings_controller.rb | 2 -- app/models/setting.rb | 23 +++++++++++--------- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/app/controllers/admin/settings_controller.rb b/app/controllers/admin/settings_controller.rb index 4645f4605..b8634a8d7 100644 --- a/app/controllers/admin/settings_controller.rb +++ b/app/controllers/admin/settings_controller.rb @@ -31,8 +31,6 @@ def update @setting.value = new_value return render :edit unless @setting.save - Setting.clear_cache - message = t('activerecord.success.update', key: t("admin.settings.#{@setting.var}")) redirect_to admin_settings_path, notice: message else diff --git a/app/models/setting.rb b/app/models/setting.rb index d2f7e530f..ed6b9997b 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -7,7 +7,7 @@ class Setting < RailsSettings::Base extend ActionView::Helpers::TranslationHelper include ActionView::Helpers::TranslationHelper - cache_prefix { 'v1' } + cache_prefix { 'v2' } class << self def present_schemes @@ -30,7 +30,7 @@ def site_configs group_configs.each_with_object({}) do |(scope, items), obj| obj[scope] = items.each_with_object({}) do |item, inner| key = item[:key] - value = Setting.send(key.to_sym) + value = self.class.send(key.to_sym) inner[key] = { value: value, readonly: item[:readonly] @@ -65,7 +65,7 @@ def url_options field :site_title, default: 'Zealot', type: :string, display: true, validates: { presence: true, length: { in: 3..16 } } field :site_domain, default: (ENV['ZEALOT_DOMAIN'] || site_domain), type: :string, readonly: true, display: true - field :site_locale, default: I18n.default_locale, type: :string, display: true, + field :site_locale, default: I18n.default_locale.to_s, type: :string, display: true, validates: { presence: true, inclusion: { in: I18n.available_locales.map(&:to_s) } } field :site_https, default: site_https, type: :boolean, readonly: true, display: true @@ -95,13 +95,13 @@ def url_options # 第三方登录 scope :third_party_auth do field :feishu, type: :hash, readonly: true, display: true, default: { - enabled: ENV['FEISHU_ENABLED'] || false, + enabled: ActiveModel::Type::Boolean.new.cast(ENV['FEISHU_ENABLED'] || false), app_id: ENV['FEISHU_APP_ID'], app_secret: ENV['FEISHU_APP_SECRET'], } field :gitlab, type: :hash, readonly: true, display: true, default: { - enabled: ENV['GITLAB_ENABLED'] || false, + enabled: ActiveModel::Type::Boolean.new.cast(ENV['GITLAB_ENABLED'] || false), site: ENV['GITLAB_SITE'] || 'https://gitlab.com/api/v4', scope: ENV['GITLAB_SCOPE'] || 'read_user', app_id: ENV['GITLAB_APP_ID'], @@ -109,13 +109,13 @@ def url_options } field :google_oauth, type: :hash, readonly: true, display: true, default: { - enabled: ENV['GOOGLE_OAUTH_ENABLED'] || false, + enabled: ActiveModel::Type::Boolean.new.cast(ENV['GOOGLE_OAUTH_ENABLED'] || false), client_id: ENV['GOOGLE_CLIENT_ID'], secret: ENV['GOOGLE_SECRET'], } field :ldap, type: :hash, readonly: true, display: true, default: { - enabled: ENV['LDAP_ENABLED'] || false, + enabled: ActiveModel::Type::Boolean.new.cast(ENV['LDAP_ENABLED'] || false), host: ENV['LDAP_HOST'], port: ENV['LDAP_PORT'] || '389', encryption: ENV['LDAP_METHOD'] || ENV['LDAP_ENCRYPTION'] || 'plain', # LDAP_METHOD will be abandon in the future @@ -182,19 +182,22 @@ def inclusion_values end def default_value - self.class.send(self.var.to_sym) + present[:default] end alias_method :default, :default_value def type - @option ||= self.class.get_field(self.var) - @option[:type] + present[:type] end def validates @validates ||= self.class.validators_on(var) end + def present + @present ||= self.class.get_field(var) + end + private def validate_value(validate) From f8968f99a51d8b4ae6cf92ea282ebc216d7e1a33 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 23 Nov 2021 12:02:31 +0800 Subject: [PATCH 0756/2165] =?UTF-8?q?fix:=20=E6=B7=BB=E5=8A=A0=20gitlab=20?= =?UTF-8?q?key=20=E8=AF=AD=E8=A8=80=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/setting.rb | 2 +- config/locales/zealot/en.yml | 1 + config/locales/zealot/zh-CN.yml | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/app/models/setting.rb b/app/models/setting.rb index ed6b9997b..92011a2b9 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -30,7 +30,7 @@ def site_configs group_configs.each_with_object({}) do |(scope, items), obj| obj[scope] = items.each_with_object({}) do |item, inner| key = item[:key] - value = self.class.send(key.to_sym) + value = send(key.to_sym) inner[key] = { value: value, readonly: item[:readonly] diff --git a/config/locales/zealot/en.yml b/config/locales/zealot/en.yml index 647f00877..b2d23e14e 100644 --- a/config/locales/zealot/en.yml +++ b/config/locales/zealot/en.yml @@ -74,6 +74,7 @@ en: third_party_auth: Third pary auth ldap: LDAP feishu: Feihsu + gitlab: Gitlab google_oauth: Google OAuth backup: Backup diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index 2eed201e4..7faa9e674 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -74,6 +74,7 @@ zh-CN: third_party_auth: 第三方登录 ldap: LDAP feishu: 飞书 + gitlab: Gitlab google_oauth: Google OAuth backup: 备份 From 971fedbb1bab6ff45639974ef5f2f94ebbb2b5fd Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 23 Nov 2021 17:10:33 +0800 Subject: [PATCH 0757/2165] =?UTF-8?q?style:=20=E6=9B=B4=E6=96=B0=E4=BF=9D?= =?UTF-8?q?=E5=AD=98=E9=85=8D=E7=BD=AE=E7=9A=84=E8=8B=B1=E6=96=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/admin/settings/_form.html.slim | 2 +- config/locales/zealot/en.yml | 6 +++--- config/locales/zealot/zh-CN.yml | 6 +++--- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/app/views/admin/settings/_form.html.slim b/app/views/admin/settings/_form.html.slim index 1d666f445..179d84349 100644 --- a/app/views/admin/settings/_form.html.slim +++ b/app/views/admin/settings/_form.html.slim @@ -31,4 +31,4 @@ small.form-text.text-muted = t('admin.settings.validates', value: @setting.field_validates.join(' / ')) .card-footer - = f.button :submit, t('admin.settings.submit.update') \ No newline at end of file + = f.button :submit \ No newline at end of file diff --git a/config/locales/zealot/en.yml b/config/locales/zealot/en.yml index b2d23e14e..8dad86314 100644 --- a/config/locales/zealot/en.yml +++ b/config/locales/zealot/en.yml @@ -91,9 +91,6 @@ en: empty_value: Empty no_editable_key: Read only - submit: - create: Create - update: Edit users: new_user: New user @@ -742,6 +739,9 @@ en: update: Update debug_file: create: Upload + setting: + create: Save + update: Save views: pagination: truncate: ... diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index 7faa9e674..a11f96732 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -91,9 +91,6 @@ zh-CN: empty_value: 空值 no_editable_key: 当前设置为可读,无法修改 - submit: - create: 新增设置 - update: 更新设置 users: new_user: 新建用户 @@ -757,6 +754,9 @@ zh-CN: update: 更新网络钩子 debug_file: create: 上传调试文件 + setting: + create: 保存设置 + update: 更新设置 views: pagination: truncate: ... From dd6a57a7c5596a660daff5e0e7527a29542c7440 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 23 Nov 2021 17:21:52 +0800 Subject: [PATCH 0758/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E8=AF=AD=E8=A8=80=E5=8C=85=E4=B8=8D=E7=94=9F=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/application_controller.rb | 2 +- app/models/setting.rb | 12 +++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 6f6d7a6f0..0a75a37b6 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -27,7 +27,7 @@ def raise_not_found private def set_locale - I18n.locale = Setting.site_locale || I18n.default_locale + I18n.locale = Setting.site_locale end def set_sentry_context diff --git a/app/models/setting.rb b/app/models/setting.rb index 92011a2b9..13e016660 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -65,8 +65,8 @@ def url_options field :site_title, default: 'Zealot', type: :string, display: true, validates: { presence: true, length: { in: 3..16 } } field :site_domain, default: (ENV['ZEALOT_DOMAIN'] || site_domain), type: :string, readonly: true, display: true - field :site_locale, default: I18n.default_locale.to_s, type: :string, display: true, - validates: { presence: true, inclusion: { in: I18n.available_locales.map(&:to_s) } } + field :site_locale, default: Rails.configuration.i18n.default_locale.to_s, type: :string, display: true, + validates: { presence: true, inclusion: { in: Rails.configuration.i18n.available_locales.map(&:to_s) } } field :site_https, default: site_https, type: :boolean, readonly: true, display: true field :admin_email, default: (ENV['ZEALOT_ADMIN_EMAIL'] || 'admin@zealot.com'), type: :string, readonly: true @@ -175,9 +175,11 @@ def inclusion? def inclusion_values return unless inclusion = inclusion? - inclusion.send(:delimiter).each_with_object({}) do |v, obj| - key = t("settings.#{var}.#{v}", default: v) - obj[key] = v + delimiters = inclusion.send(:delimiter) + delimiters = delimiters.call if delimiters.respond_to?(:call) + delimiters.each_with_object({}) do |value, obj| + key = t("settings.#{var}.#{value}", default: value) + obj[key] = value end end From 1e2440c46581107572da66d8703e7394162018cc Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 23 Nov 2021 18:17:31 +0800 Subject: [PATCH 0759/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E6=9D=83=E9=99=90=E8=AF=AD=E9=9F=B3=E5=8C=85=E6=B2=A1?= =?UTF-8?q?=E6=9C=89=E6=AD=A3=E7=A1=AE=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/users_helper.rb | 4 ++-- app/models/concerns/user_roles.rb | 22 +++++++++------------- app/models/setting.rb | 16 +++++++++++----- app/views/admin/users/_form.html.slim | 2 +- 4 files changed, 23 insertions(+), 21 deletions(-) diff --git a/app/helpers/users_helper.rb b/app/helpers/users_helper.rb index c352ca8a1..bb3e28f17 100644 --- a/app/helpers/users_helper.rb +++ b/app/helpers/users_helper.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true module UsersHelper - def roles - User.roles.to_a.collect { |c| [User::ROLE_NAMES[c[0].to_sym], c[0]] } + def roles_collection + User.roles.to_a.collect { |c| [Setting.present_roles[c[0].to_sym], c[0]] } end end diff --git a/app/models/concerns/user_roles.rb b/app/models/concerns/user_roles.rb index ddc3964bd..ac5980fae 100644 --- a/app/models/concerns/user_roles.rb +++ b/app/models/concerns/user_roles.rb @@ -3,12 +3,6 @@ module UserRoles extend ActiveSupport::Concern - ROLE_NAMES = { - user: I18n.t('settings.default_role.user'), - developer: I18n.t('settings.default_role.developer'), - admin: I18n.t('settings.default_role.admin') - } - included do scope :admins, -> { where(role: :admin) } scope :developers, -> { where(role: :developer) } @@ -40,12 +34,14 @@ def roles?(value) end def role_name - if admin? - ROLE_NAMES[:admin] - elsif developer? - ROLE_NAMES[:developer] - else - ROLE_NAMES[:user] - end + key = if admin? + :admin + elsif developer? + :developer + else + :user + end + + Setting.present_roles[key] end end diff --git a/app/models/setting.rb b/app/models/setting.rb index 13e016660..08edfcdc2 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require_relative './concerns/user_roles' - # RailsSettings Model class Setting < RailsSettings::Base extend ActionView::Helpers::TranslationHelper @@ -18,6 +16,14 @@ def present_schemes ].compact end + def present_roles + { + user: t('settings.default_role.user', default: nil), + developer: t('settings.default_role.developer', default: nil), + admin: t('settings.default_role.admin', default: nil) + } + end + def site_https Rails.env.production? || ENV['ZEALOT_USE_HTTPS'].present? end @@ -63,10 +69,10 @@ def url_options # 系统配置 scope :general do field :site_title, default: 'Zealot', type: :string, display: true, - validates: { presence: true, length: { in: 3..16 } } + validates: { presence: true, length: { in: 3..16 } } field :site_domain, default: (ENV['ZEALOT_DOMAIN'] || site_domain), type: :string, readonly: true, display: true field :site_locale, default: Rails.configuration.i18n.default_locale.to_s, type: :string, display: true, - validates: { presence: true, inclusion: { in: Rails.configuration.i18n.available_locales.map(&:to_s) } } + validates: { presence: true, inclusion: { in: Rails.configuration.i18n.available_locales.map(&:to_s) } } field :site_https, default: site_https, type: :boolean, readonly: true, display: true field :admin_email, default: (ENV['ZEALOT_ADMIN_EMAIL'] || 'admin@zealot.com'), type: :string, readonly: true @@ -77,7 +83,7 @@ def url_options scope :presets do field :default_schemes, default: present_schemes, type: :array, display: true field :default_role, default: 'user', type: :string, display: true, - validates: { presence: true, inclusion: { in: UserRoles::ROLE_NAMES.keys.map(&:to_s) } } + validates: { presence: true, inclusion: { in: present_roles.keys.map(&:to_s) } } end # 模式开关 diff --git a/app/views/admin/users/_form.html.slim b/app/views/admin/users/_form.html.slim index 4095f7130..e914d0575 100644 --- a/app/views/admin/users/_form.html.slim +++ b/app/views/admin/users/_form.html.slim @@ -5,7 +5,7 @@ = f.input :username, required: true = f.input :email, required: true = f.input :password - = f.input :role, collection: roles, include_blank: false + = f.input :role, collection: roles_collection, include_blank: false .card-footer = f.button :submit \ No newline at end of file From 7c5119359529ba31af17b183502c3daa5375f52f Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 23 Nov 2021 18:18:39 +0800 Subject: [PATCH 0760/2165] =?UTF-8?q?feat:=20=E8=A1=A5=E5=85=85=E9=83=A8?= =?UTF-8?q?=E5=88=86=E6=8A=A5=E9=94=99=E7=9A=84=E8=AF=AD=E8=A8=80=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/api/apps/upload_controller.rb | 3 +- app/controllers/application_controller.rb | 2 +- app/controllers/graphql_controller.rb | 2 +- .../users/activations_controller.rb | 35 ------------------- .../users/omniauth_callbacks_controller.rb | 16 --------- .../users/registrations_controller.rb | 2 +- config/locales/zealot/en.yml | 2 ++ config/locales/zealot/zh-CN.yml | 2 ++ 8 files changed, 9 insertions(+), 55 deletions(-) delete mode 100644 app/controllers/users/activations_controller.rb diff --git a/app/controllers/api/apps/upload_controller.rb b/app/controllers/api/apps/upload_controller.rb index 28274e1f5..77f10953e 100644 --- a/app/controllers/api/apps/upload_controller.rb +++ b/app/controllers/api/apps/upload_controller.rb @@ -46,7 +46,8 @@ def create_new_app_build # 使用现有 App 创建新版本 def create_build_from_exist_app - message = "bundle id `#{app_parser.bundle_id}` not matched with `#{@channel.bundle_id}` in channel #{@channel.id}" + message = t('releases.messages.errors.bundle_id_not_matched', got: app_parser.bundle_id, + expect: @channel.bundle_id) raise TypeError, message unless @channel.bundle_id_matched? app_parser.bundle_id create_release with_updated_channel diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 0a75a37b6..799428ce9 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -21,7 +21,7 @@ class ApplicationController < ActionController::Base rescue_from Pundit::NotAuthorizedError, with: :forbidden def raise_not_found - raise ActionController::RoutingError, "No route matches #{params[:unmatched_route]}" + raise ActionController::RoutingError, t('errors.messages.not_match_url', url: params[:unmatched_route]) end private diff --git a/app/controllers/graphql_controller.rb b/app/controllers/graphql_controller.rb index 74b5cdf3e..de39f9f40 100644 --- a/app/controllers/graphql_controller.rb +++ b/app/controllers/graphql_controller.rb @@ -35,7 +35,7 @@ def ensure_hash(ambiguous_param) when nil {} else - raise ArgumentError, "Unexpected parameter: #{ambiguous_param}" + raise ArgumentError, t('errors.messages.unexpected_parameter', value: ambiguous_param) end end diff --git a/app/controllers/users/activations_controller.rb b/app/controllers/users/activations_controller.rb deleted file mode 100644 index 47a0694d8..000000000 --- a/app/controllers/users/activations_controller.rb +++ /dev/null @@ -1,35 +0,0 @@ -# frozen_string_literal: true - -class Users::ActivationsController < ApplicationController - before_action :verify_user - rescue_from ActiveRecord::RecordNotFound, with: :render_unprocessable_entity_response - - def edit - end - - def update - if @user.active(user_params) - redirect_to new_user_session_url, notice: '账户已激活,请使用邮箱和刚设置的密码登录。' - else - render :edit - end - end - - private - - def verify_user - return redirect_back fallback_location: root_path, notice: '你已经登录,无法激活其他账户。' if current_user - - @title = '激活你的账户' - @user = User.find_by!(activation_token: params[:token]) - end - - def render_unprocessable_entity_response(_) - flash[:alert] = '无效的激活码' - render 'empty' - end - - def user_params - params.require(:user).permit(:password) - end -end diff --git a/app/controllers/users/omniauth_callbacks_controller.rb b/app/controllers/users/omniauth_callbacks_controller.rb index 7e2ac2e29..77713bb3e 100644 --- a/app/controllers/users/omniauth_callbacks_controller.rb +++ b/app/controllers/users/omniauth_callbacks_controller.rb @@ -7,22 +7,6 @@ class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController end end - # def google_oauth2 - # omniauth_callback('Google ', 'google_data') - # end - - # def ldap - # omniauth_callback('LDAP ', 'ldap_data') - # end - - # def feishu - # omniauth_callback('飞书', 'feishu_data') - # end - - # def gitlab - # omniauth_callback('Gitlab', 'gitlab_data') - # end - def passthru redirect_to root_path(signin: 'true') end diff --git a/app/controllers/users/registrations_controller.rb b/app/controllers/users/registrations_controller.rb index fbd9bfee5..f882c50fc 100644 --- a/app/controllers/users/registrations_controller.rb +++ b/app/controllers/users/registrations_controller.rb @@ -3,7 +3,7 @@ class Users::RegistrationsController < Devise::RegistrationsController def update if helpers.default_admin_in_demo_mode?(resource) - return redirect_to edit_user_registration_url, alert: '演示模式不能编辑默认管理员' + return redirect_to edit_user_registration_url, alert: t('errors.messages.invaild_in_demo_mode') end super diff --git a/config/locales/zealot/en.yml b/config/locales/zealot/en.yml index 8dad86314..0f3f1c379 100644 --- a/config/locales/zealot/en.yml +++ b/config/locales/zealot/en.yml @@ -662,6 +662,8 @@ en: '503': title: The page could not be served due to a temporary server failure. messages: + not_match_url: "Not match url: %{url}" + unexpected_parameter: "Unexpected parameter: %{value}" length_range: 'Length range: %{minimum} ~ %{maximum}' optional_value: 'Optinal value: %{value}' invaild_in_demo_mode: Forbidden in demo mode diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index a11f96732..156fcf261 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -673,6 +673,8 @@ zh-CN: '503': title: 服务暂时不可用,无法请求该页面 messages: + not_match_url: "页面路径不存在 %{url}" + unexpected_parameter: "不可使用的参数: %{value}" blank: 不能为空值 inclusion: 不包含在可选值列表中 length_range: 长度限制:%{minimum} ~ %{maximum} 位 From 0fc56c6f4b92ae5e83d1b462e00dbf48a609f9f3 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 23 Nov 2021 19:31:18 +0800 Subject: [PATCH 0761/2165] =?UTF-8?q?style:=20=E7=BB=9F=E4=B8=80=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E8=AE=A4=E8=AF=81=E7=9A=84=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/application_helper.rb | 3 ++- app/views/admin/users/_form.html.slim | 11 ++++++-- app/views/devise/passwords/edit.html.slim | 26 +++++++++---------- app/views/devise/registrations/edit.html.slim | 18 ++++++++++--- app/views/devise/sessions/new.html.slim | 2 +- app/views/errors/index.html.slim | 12 ++++++--- config/routes.rb | 26 +++++++------------ 7 files changed, 57 insertions(+), 41 deletions(-) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 243cde4f2..5efec08ea 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -18,7 +18,8 @@ def user_signed_in_or_guest_mode? end def devise_page? - params[:controller].start_with?('devise/') + contoller_name = params[:controller] + contoller_name.start_with?('devise/') || contoller_name == 'users/registrations' end def button_link_to(title, url, icon = nil, **options) diff --git a/app/views/admin/users/_form.html.slim b/app/views/admin/users/_form.html.slim index e914d0575..52228470f 100644 --- a/app/views/admin/users/_form.html.slim +++ b/app/views/admin/users/_form.html.slim @@ -1,4 +1,8 @@ -= simple_form_for(@user, url: @user.new_record? ? admin_users_path : admin_user_path(@user)) do |f| +ruby: + demo_mode = default_admin_in_demo_mode?(@user) + update_url = demo_mode ? root_path : @user.new_record? ? admin_users_path : admin_user_path(@user) + += simple_form_for(@user, url: update_url) do |f| .card-body = f.error_notification @@ -8,4 +12,7 @@ = f.input :role, collection: roles_collection, include_blank: false .card-footer - = f.button :submit \ No newline at end of file + - if demo_mode + = f.button :button, t('errors.messages.invaild_in_demo_mode'), disabled: true + - else + = f.button :submit \ No newline at end of file diff --git a/app/views/devise/passwords/edit.html.slim b/app/views/devise/passwords/edit.html.slim index 04b596471..c419a73ef 100644 --- a/app/views/devise/passwords/edit.html.slim +++ b/app/views/devise/passwords/edit.html.slim @@ -18,19 +18,17 @@ = f.input :reset_password_token, as: :hidden = f.full_error :reset_password_token - .form-group.has-feedback - = f.input :password, - label: t('.new_password'), - required: true, - autofocus: true, - input_html: { autocomplete: "new-password" } - .form-group.has-feedback - = f.input :password_confirmation, - label: t('.confirm_new_password'), - required: true, - input_html: { autocomplete: "new-password" } - .row - .col-xs-4 - = f.submit t('.change_your_password'), class: 'btn btn-primary btn-flat' + = f.input :password, + label: t('.new_password'), + required: true, + autofocus: true, + input_html: { autocomplete: "new-password" } + + = f.input :password_confirmation, + label: t('.confirm_new_password'), + required: true, + input_html: { autocomplete: "new-password" } + + = f.button :submit, t('.change_your_password'), class: 'btn-block' .auth-providers.col-md-6 == render 'devise/shared/links' \ No newline at end of file diff --git a/app/views/devise/registrations/edit.html.slim b/app/views/devise/registrations/edit.html.slim index 108600253..1ddfacfd4 100644 --- a/app/views/devise/registrations/edit.html.slim +++ b/app/views/devise/registrations/edit.html.slim @@ -1,13 +1,17 @@ - content_for :title do = t('.title', resource: resource.model_name.human) +ruby: + demo_mode = default_admin_in_demo_mode?(resource) + update_url = demo_mode ? root_path : registration_path(resource_name) + .row .col-md-12 .card .card-header.card-border h3.card-title = t('.title', resource: resource.model_name.human) .card-body - = simple_form_for(resource, as: resource_name, url: registration_path(resource_name), html: { method: :put }) do |f| + = simple_form_for(resource, as: resource_name, url: update_url, html: { method: :put }) do |f| = f.error_notification = f.input :username, required: true, :autofocus => true @@ -20,7 +24,11 @@ = f.input :current_password, input_html: { autocomplete: "password" } = f.input :password, input_html: { autocomplete: "new-password" } = f.input :password_confirmation, input_html: { autocomplete: "new-password" } - = f.submit class: 'btn btn-lg btn-primary' + + - if demo_mode + = f.button :button, t('errors.messages.invaild_in_demo_mode'), class: 'btn btn-lg btn-primary', disabled: true + - else + = f.button :submit, class: 'btn-lg' .card.card-info .card-header.card-border @@ -35,4 +43,8 @@ h3.card-title = t('.cancel_my_account') .card-body p = t('.unhappy') - = button_to t('.cancel_my_account'), user_registration_path, data: { confirm: t('.are_you_sure') }, method: :delete, class: 'btn btn-lg btn-danger' \ No newline at end of file + + - if demo_mode + = f.button :button, t('errors.messages.invaild_in_demo_mode'), class: 'btn btn-lg btn-primary', disabled: true + - else + = button_to t('.cancel_my_account'), user_registration_path, data: { confirm: t('.are_you_sure') }, method: :delete, class: 'btn btn-lg btn-danger' \ No newline at end of file diff --git a/app/views/devise/sessions/new.html.slim b/app/views/devise/sessions/new.html.slim index 7254572ed..085634790 100644 --- a/app/views/devise/sessions/new.html.slim +++ b/app/views/devise/sessions/new.html.slim @@ -1,7 +1,7 @@ - content_for :title do = t('.sign_in') -.row.mt-3 +.row.m-3 .col-md-6.order-12.order-sm-1 == render 'devise/shared/intro' .col-md-6.order-1.order-sm-12.mb-4 diff --git a/app/views/errors/index.html.slim b/app/views/errors/index.html.slim index 844709863..754c72cba 100644 --- a/app/views/errors/index.html.slim +++ b/app/views/errors/index.html.slim @@ -1,9 +1,13 @@ +ruby: + color = @code >= 500 ? 'text-red' : 'text-warning' + - content_for :title do = @title +- content_for :section_title do + = "#{@code} #{@title}" + .row - .error-page.col-md-12 - == render 'errors/head' + .col-md-12 == render "errors/body" - - == render 'errors/debug' \ No newline at end of file + == render 'errors/debug' \ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb index 275f36598..95217ab27 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -6,17 +6,11 @@ ############################################# # User ############################################# - devise_for :users, controllers: { omniauth_callbacks: 'users/omniauth_callbacks' } - devise_scope :user do - resource :registration, - only: %i[new create edit update], - path: 'users', - path_names: { new: 'sign_up' }, - controller: 'users/registrations', - as: :user_registration do - get :cancel - end - end + devise_for :users, controllers: { + omniauth_callbacks: 'users/omniauth_callbacks', + registrations: 'users/registrations' + } + ############################################# # App ############################################# @@ -121,11 +115,6 @@ end end - ############################################# - # Development Only - ############################################# - mount LetterOpenerWeb::Engine, at: 'inbox' if Rails.env.development? - ############################################# # API v1 ############################################# @@ -174,6 +163,11 @@ ############################################# post '/graphql', to: 'graphql#execute' + ############################################# + # Development Only + ############################################# + mount LetterOpenerWeb::Engine, at: '/inbox' if Rails.env.development? + match '/', via: [:post, :put, :patch, :delete], to: 'application#raise_not_found', format: false match '*unmatched_route', via: :all, to: 'application#raise_not_found', format: false end From 6ad12f6e02edb01dcceb27ed6148a0453043e062 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 23 Nov 2021 19:32:01 +0800 Subject: [PATCH 0762/2165] =?UTF-8?q?style:=20=E4=BC=98=E5=8C=96=E6=8A=A5?= =?UTF-8?q?=E9=94=99=E9=A1=B5=E9=9D=A2=E7=9A=84=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/application_controller.rb | 6 ++- .../users/registrations_controller.rb | 8 ++-- app/views/errors/_body.slim | 24 ++++++---- app/views/errors/_debug.html.slim | 25 +++++------ app/views/errors/_head.html.slim | 6 --- config/locales/devise/devise.views.zh-CN.yml | 1 + config/locales/zealot/en.yml | 1 + config/locales/zealot/zh-CN.yml | 44 ++++++++++--------- 8 files changed, 61 insertions(+), 54 deletions(-) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 799428ce9..8a43751d1 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -47,7 +47,11 @@ def record_page_view end def forbidden(e) - respond_with_error(403, e) + message = t('errors.messages.not_authorized_policy', query: e.query, model: e.record.class) + new_exception = StandardError.new(message) + new_exception.set_backtrace(e.backtrace) + + respond_with_error(403, new_exception) end def not_found(e) diff --git a/app/controllers/users/registrations_controller.rb b/app/controllers/users/registrations_controller.rb index f882c50fc..da51d3035 100644 --- a/app/controllers/users/registrations_controller.rb +++ b/app/controllers/users/registrations_controller.rb @@ -9,9 +9,9 @@ def update super end - protected + # protected - def update_resource(resource, params) - resource.update_without_password(params) - end + # def update_resource(resource, params) + # resource.update_without_password(params) + # end end diff --git a/app/views/errors/_body.slim b/app/views/errors/_body.slim index a78274def..6ce8cfb01 100644 --- a/app/views/errors/_body.slim +++ b/app/views/errors/_body.slim @@ -1,12 +1,18 @@ ruby: - content = t("errors.code.#{@code}.content") - content = nil if content.include?('translation_missing') - goback_link = session[:return_to] || request.referer + card_header_color = @code >= 500 ? 'card-danger' : 'card-warning' + content = t("errors.code.#{@code}.content", default: nil) + goback_href = session[:return_to] || request.referer + goback_link_html = link_to(t('errors.messages.goback_title'), goback_href) + homepage_link_html = link_to(t('errors.messages.homepage_title'), root_path) -- if content.present? - p = content +.card class="#{card_header_color}" + .card-header + - if content.present? + h3.card-title + i.icon.fas.fa-error + = content -- if @message.present? - p = @message - -p = raw t('errors.messages.goback_or_redirect_to_homepage', goback_link: link_to(t('errors.messages.goback_title'), goback_link), homepage_link: link_to(t('errors.messages.homepage_title'), root_path)) + .card-body + - if @message.present? + div = @message + div = raw t('errors.messages.goback_or_redirect_to_homepage', goback_link: goback_link_html, homepage_link: homepage_link_html) diff --git a/app/views/errors/_debug.html.slim b/app/views/errors/_debug.html.slim index 00f3c7cbc..3bebb23e2 100644 --- a/app/views/errors/_debug.html.slim +++ b/app/views/errors/_debug.html.slim @@ -1,14 +1,13 @@ - if Rails.env.development? - .col-md-12 - .card - .card-header - h3.card-title - i.icon.fas.fa-error - = "#{@exception.class}: #{@exception.message}" - .card-tools - small.badge = t('errors.messages.development_only') - .card-body.p-0 - table.table.table-hover - - @exception.backtrace.each do |link| - tr - td = link \ No newline at end of file + .card + .card-header + h3.card-title + i.icon.fas.fa-error + = "#{@exception.class}: #{@exception.message}" + .card-tools + small.badge = t('errors.messages.development_only') + .card-body.p-0 + table.table.table-hover + - @exception.backtrace.each do |link| + tr + td = link \ No newline at end of file diff --git a/app/views/errors/_head.html.slim b/app/views/errors/_head.html.slim index 7b8441142..e69de29bb 100644 --- a/app/views/errors/_head.html.slim +++ b/app/views/errors/_head.html.slim @@ -1,6 +0,0 @@ -ruby: - color = @code == 404 ? 'text-red' : 'text-warning' - -h3 - i.icon.fa.fa-warning class="#{color}" - = "#{@code} #{@title}" \ No newline at end of file diff --git a/config/locales/devise/devise.views.zh-CN.yml b/config/locales/devise/devise.views.zh-CN.yml index 90d588cf3..912543472 100644 --- a/config/locales/devise/devise.views.zh-CN.yml +++ b/config/locales/devise/devise.views.zh-CN.yml @@ -103,6 +103,7 @@ zh-CN: we_need_your_current_password_to_confirm_your_changes: 我们需要您的当前密码以确认更改 new: sign_up: 用户注册 + resend_confirmation_instructions: 用户注册 signed_up: 欢迎您!您已注册成功。 signed_up_but_inactive: 您的帐户还未被激活。激活前无法登录。 signed_up_but_locked: 您已成功注册,但帐号被锁定了,因此无法登录。 diff --git a/config/locales/zealot/en.yml b/config/locales/zealot/en.yml index 0f3f1c379..e0d585e27 100644 --- a/config/locales/zealot/en.yml +++ b/config/locales/zealot/en.yml @@ -662,6 +662,7 @@ en: '503': title: The page could not be served due to a temporary server failure. messages: + not_authorized_policy: "No authorized operate %{model} on %{query} action" not_match_url: "Not match url: %{url}" unexpected_parameter: "Unexpected parameter: %{value}" length_range: 'Length range: %{minimum} ~ %{maximum}' diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index 156fcf261..61d66e9f4 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -651,28 +651,30 @@ zh-CN: x_years: " %{count} 年" errors: - '400': - title: 您提交的请求无效或格式不正确 - '403': - title: 你没有访问这个页面的权限 - '404': - title: 找不到你想要的内容 - content: 当前访问的页面不存在或者已经被移动 - '406': - title: 页面无法处理请求 - '410': - title: 你所要访问的页面此处已不存在 - '422': - content: 无法确认登录信息。你是不是屏蔽了 Cookie? - title: 无法确认登录信息 - '429': - title: 请求被限制 - '500': - content: 抱歉,我们的后台出错了 - title: 这个页面有问题 - '503': - title: 服务暂时不可用,无法请求该页面 + code: + '400': + title: 您提交的请求无效或格式不正确 + '403': + title: 你没有访问这个页面的权限 + '404': + title: 找不到你想要的内容 + content: 当前访问的页面不存在或者已经被移动 + '406': + title: 页面无法处理请求 + '410': + title: 你所要访问的页面此处已不存在 + '422': + content: 无法确认登录信息。你是不是屏蔽了 Cookie? + title: 无法确认登录信息 + '429': + title: 请求被限制 + '500': + content: 抱歉,我们的后台出错了 + title: 这个页面有问题 + '503': + title: 服务暂时不可用,无法请求该页面 messages: + not_authorized_policy: "没有用户权限无法对 %{model} 进行 %{query} 操作" not_match_url: "页面路径不存在 %{url}" unexpected_parameter: "不可使用的参数: %{value}" blank: 不能为空值 From 8908906d7f7cfb97e66bc70f9543bef9eb05b508 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 23 Nov 2021 19:44:15 +0800 Subject: [PATCH 0763/2165] =?UTF-8?q?refactor:=20=E5=8A=A0=E5=BC=BA?= =?UTF-8?q?=E6=BC=94=E7=A4=BA=E6=A8=A1=E5=BC=8F=E4=B8=8D=E8=83=BD=E7=BC=96?= =?UTF-8?q?=E8=BE=91=E7=9A=84=E5=AE=89=E5=85=A8=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/setting.rb | 8 ++++---- app/policies/application_policy.rb | 12 ++++++++++-- app/views/devise/registrations/edit.html.slim | 2 +- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/app/models/setting.rb b/app/models/setting.rb index 08edfcdc2..c94873188 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -88,14 +88,14 @@ def url_options # 模式开关 scope :switch_mode do - field :registrations_mode, default: (ENV['ZEALOT_REGISTER_ENABLED'] || 'true'), type: :boolean, display: true - field :guest_mode, default: (ENV['ZEALOT_GUEST_MODE'] || 'false'), type: :boolean, readonly: true, display: true - field :demo_mode, default: (ENV['ZEALOT_DEMO_MODE'] || 'false'), type: :boolean, readonly: true, display: true + field :registrations_mode, default: ActiveModel::Type::Boolean.new.cast(ENV['ZEALOT_REGISTER_ENABLED'] || 'true'), type: :boolean, display: true + field :guest_mode, default: ActiveModel::Type::Boolean.new.cast(ENV['ZEALOT_GUEST_MODE'] || 'false'), type: :boolean, readonly: true, display: true + field :demo_mode, default: ActiveModel::Type::Boolean.new.cast(ENV['ZEALOT_DEMO_MODE'] || 'false'), type: :boolean, readonly: true, display: true end # 上传文件保留策略 scope :limits do - field :keep_uploads, default: (ENV['ZEALOT_KEEP_UPLOADS'] || 'true'), type: :boolean, readonly: true + field :keep_uploads, default: ActiveModel::Type::Boolean.new.cast(ENV['ZEALOT_KEEP_UPLOADS'] || 'true'), type: :boolean, readonly: true end # 第三方登录 diff --git a/app/policies/application_policy.rb b/app/policies/application_policy.rb index 788ba2952..28b1a5674 100644 --- a/app/policies/application_policy.rb +++ b/app/policies/application_policy.rb @@ -9,7 +9,7 @@ def initialize(user, record) end def index? - Setting.guest_mode || user_signed_in? + guest_mode_or_signed_in? end def show? @@ -55,7 +55,15 @@ def resolve end end - private + protected + + def demo_mode? + Setting.demo_mode == true + end + + def guest_mode_or_signed_in? + Setting.guest_mode || user_signed_in? + end def user_signed_in? user.present? diff --git a/app/views/devise/registrations/edit.html.slim b/app/views/devise/registrations/edit.html.slim index 1ddfacfd4..780b2285d 100644 --- a/app/views/devise/registrations/edit.html.slim +++ b/app/views/devise/registrations/edit.html.slim @@ -45,6 +45,6 @@ ruby: p = t('.unhappy') - if demo_mode - = f.button :button, t('errors.messages.invaild_in_demo_mode'), class: 'btn btn-lg btn-primary', disabled: true + = button_to t('errors.messages.invaild_in_demo_mode'), root_path, class: 'btn btn-lg btn-primary', disabled: true - else = button_to t('.cancel_my_account'), user_registration_path, data: { confirm: t('.are_you_sure') }, method: :delete, class: 'btn btn-lg btn-danger' \ No newline at end of file From bbf27f68ac0d26a946ef373133f5146234eb6872 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 23 Nov 2021 21:01:35 +0000 Subject: [PATCH 0764/2165] chore(deps): bump sentry-sidekiq from 4.7.3 to 4.8.1 Bumps [sentry-sidekiq](https://github.com/getsentry/sentry-ruby) from 4.7.3 to 4.8.1. - [Release notes](https://github.com/getsentry/sentry-ruby/releases) - [Changelog](https://github.com/getsentry/sentry-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-ruby/compare/4.7.3...4.8.1) --- updated-dependencies: - dependency-name: sentry-sidekiq dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 65f4cbf9f..6862e1c0b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -419,18 +419,18 @@ GEM rufus-scheduler (3.7.0) fugit (~> 1.1, >= 1.1.6) semantic_range (3.0.0) - sentry-rails (4.7.3) + sentry-rails (4.8.1) railties (>= 5.0) - sentry-ruby-core (~> 4.7.0) - sentry-ruby (4.7.3) + sentry-ruby-core (~> 4.8.1) + sentry-ruby (4.8.1) concurrent-ruby (~> 1.0, >= 1.0.2) faraday (>= 1.0) - sentry-ruby-core (= 4.7.3) - sentry-ruby-core (4.7.3) + sentry-ruby-core (= 4.8.1) + sentry-ruby-core (4.8.1) concurrent-ruby faraday - sentry-sidekiq (4.7.3) - sentry-ruby-core (~> 4.7.0) + sentry-sidekiq (4.8.1) + sentry-ruby-core (~> 4.8.1) sidekiq (>= 3.0) shellany (0.0.1) sidekiq (6.3.1) From 6bd1bb6a289fc74e0f88094c7ff055a081b7f13b Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 24 Nov 2021 11:01:00 +0800 Subject: [PATCH 0765/2165] =?UTF-8?q?chore:=20=E5=BC=82=E5=B8=B8=E6=8A=A5?= =?UTF-8?q?=E9=94=99=E6=94=AF=E6=8C=81=E6=8D=95=E8=8E=B7=20frame's=20local?= =?UTF-8?q?=20variable?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/initializers/sentry.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/config/initializers/sentry.rb b/config/initializers/sentry.rb index 3cbdd7f1c..3470e7e01 100644 --- a/config/initializers/sentry.rb +++ b/config/initializers/sentry.rb @@ -6,8 +6,9 @@ Sentry.init do |config| config.dsn = ENV['ZEALOT_SENTRY_DNS'] || 'https://133aefa9f52448a1a7900ba9d02f93e1@sentry.io/1878137' + config.capture_exception_frame_locals = true config.rails.report_rescued_exceptions = true - config.breadcrumbs_logger = [:active_support_logger, :sentry_logger, :http_logger] + config.breadcrumbs_logger = %i[active_support_logger sentry_logger http_logger] config.send_default_pii = true config.environment = Rails.env From 650f1ffd3731f6a1f4cc703430be1b1b6f5d1cee Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 24 Nov 2021 11:46:20 +0800 Subject: [PATCH 0766/2165] =?UTF-8?q?feature:=20=E6=B6=89=E5=8F=8A?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E8=AF=A6=E6=83=85=E7=9A=84=E7=BB=93=E6=9E=84?= =?UTF-8?q?=E4=BD=93=E6=96=B0=E5=A2=9E=20text=5Fchangelog=20=E8=BF=94?= =?UTF-8?q?=E5=9B=9E=E5=AD=97=E7=AC=A6=E4=B8=B2=E7=B1=BB=E5=9E=8B=E7=9A=84?= =?UTF-8?q?=E5=8F=98=E6=9B=B4=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/serializers/api/upload_app_serializer.rb | 6 +++++- app/serializers/release_serializer.rb | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/app/serializers/api/upload_app_serializer.rb b/app/serializers/api/upload_app_serializer.rb index a60478b62..e40e572a9 100644 --- a/app/serializers/api/upload_app_serializer.rb +++ b/app/serializers/api/upload_app_serializer.rb @@ -4,10 +4,14 @@ class Api::UploadAppSerializer < ApplicationSerializer # release model based attributes :id, :version, :app_name, :bundle_id, :release_version, :build_version, :source, :branch, :git_commit, :ci_url, :size, - :icon_url, :release_url, :install_url, :qrcode_url, :array_changelog, + :icon_url, :release_url, :install_url, :qrcode_url, :changelog, :text_changelog, :custom_fields, :created_at belongs_to :app belongs_to :scheme belongs_to :channel + + def changelog + object.array_changelog(false) + end end diff --git a/app/serializers/release_serializer.rb b/app/serializers/release_serializer.rb index d3e1b3752..bdb1e9f62 100644 --- a/app/serializers/release_serializer.rb +++ b/app/serializers/release_serializer.rb @@ -3,10 +3,14 @@ class ReleaseSerializer < ApplicationSerializer attributes :version, :app_name, :bundle_id, :release_version, :build_version, :source, :branch, :git_commit, :ci_url, :size, - :icon_url, :install_url, :changelog, + :icon_url, :install_url, :changelog, :text_changelog :created_at def changelog object.array_changelog(false) end + + def text_changelog + object.text_changelog(false) + end end From 0addbb2d271094dd0f59c566517c805ebe8c426b Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 24 Nov 2021 12:06:32 +0800 Subject: [PATCH 0767/2165] =?UTF-8?q?fix:=20iOS=20=E8=AF=81=E4=B9=A6?= =?UTF-8?q?=E8=BF=87=E6=9C=9F=E6=97=B6=E9=97=B4=E5=88=A4=E6=96=AD=E5=BC=82?= =?UTF-8?q?=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/teardown_helper.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/helpers/teardown_helper.rb b/app/helpers/teardown_helper.rb index ea9b4795d..1cd0baf57 100644 --- a/app/helpers/teardown_helper.rb +++ b/app/helpers/teardown_helper.rb @@ -16,7 +16,7 @@ def expired_date_tips(expired_date) style_name = 'text-red' message = t('teardowns.show.expired') else - style_name = duration.parts[:months] <= 3 ? 'text-yellow' : 'text-green' + style_name = (duration.value <= 3.months.to_i) ? 'text-yellow' : 'text-green' end content_tag(:span, message, class: [style_name, 'text-bold']) From 65432d7aff45b1759cb1dd8e154a8dbc77d0b9b2 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 24 Nov 2021 14:41:39 +0800 Subject: [PATCH 0768/2165] =?UTF-8?q?style:=20=E5=93=88=E5=B8=8C=E5=80=BC?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=9F=A5=E7=9C=8B=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/application_helper.rb | 4 ++++ app/models/setting.rb | 6 ++++++ app/views/admin/system_info/index.html.slim | 2 +- 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 5efec08ea..45c7bc4fa 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -144,4 +144,8 @@ def omniauth_display_name(provider) OmniAuth::Utils.camelize(provider).sub('Oauth2', '') end end + + def github_repo_commit(ref) + "#{Setting.repo_url}/commit/#{ref}" + end end diff --git a/app/models/setting.rb b/app/models/setting.rb index c94873188..ceffceffa 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -7,6 +7,8 @@ class Setting < RailsSettings::Base cache_prefix { 'v2' } + REPO_URL = 'https://github.com/tryzealot/zealot' + class << self def present_schemes [ @@ -64,6 +66,10 @@ def url_options trailing_slash: false } end + + def repo_url + REPO_URL + end end # 系统配置 diff --git a/app/views/admin/system_info/index.html.slim b/app/views/admin/system_info/index.html.slim index ae3dd6bb0..99fa3c6d5 100644 --- a/app/views/admin/system_info/index.html.slim +++ b/app/views/admin/system_info/index.html.slim @@ -19,7 +19,7 @@ #new-version data-title="#{Rails.env.development? ? t('.dev_new_version') : t('.new_version')}" dt = t('.vcs_ref') dd - pre = @server[:zealot_vcs_ref] + pre = link_to @server[:zealot_vcs_ref], github_repo_commit(@server[:zealot_vcs_ref]), target: :blank dt = t('.build_date') dd pre = @server[:build_date] From 70d521f7110f9e9aae8d535311a763bcd8a61f9c Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 24 Nov 2021 17:58:08 +0800 Subject: [PATCH 0769/2165] =?UTF-8?q?feat:=20=E9=A1=B5=E9=9D=A2=E6=A0=87?= =?UTF-8?q?=E9=A2=98=E6=9C=AB=E5=B0=BE=E8=BF=BD=E5=8A=A0=E7=BD=91=E7=AB=99?= =?UTF-8?q?=E5=90=8D=E7=A7=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/application_helper.rb | 8 ++++++++ app/views/layouts/application.html.slim | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 45c7bc4fa..24b72ce34 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -1,6 +1,14 @@ # frozen_string_literal: true module ApplicationHelper + def page_title(title) + "#{title} - #{site_title}" + end + + def site_title + Setting.site_title + end + def new_or_create_route? new_route? || create_route? end diff --git a/app/views/layouts/application.html.slim b/app/views/layouts/application.html.slim index 9e30c51c8..6c099bf50 100644 --- a/app/views/layouts/application.html.slim +++ b/app/views/layouts/application.html.slim @@ -8,7 +8,7 @@ ruby: doctype html html head - title = yield :title + title = page_title(yield :title) meta[name="viewport" content="width=device-width, initial-scale=1.0"] link[rel="apple-touch-icon" sizes="60x60" href="#{asset_pack_path('media/images/touch-icon.png')}"] link[rel="apple-touch-icon" sizes="120x120" href="#{asset_pack_path('media/images/touch-icon@2x.png')}"] From 505be5947ff152150a38aa3f402b749aa24fbe7a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 24 Nov 2021 21:02:24 +0000 Subject: [PATCH 0770/2165] chore(deps): bump bootsnap from 1.9.1 to 1.9.3 Bumps [bootsnap](https://github.com/Shopify/bootsnap) from 1.9.1 to 1.9.3. - [Release notes](https://github.com/Shopify/bootsnap/releases) - [Changelog](https://github.com/Shopify/bootsnap/blob/master/CHANGELOG.md) - [Commits](https://github.com/Shopify/bootsnap/compare/v1.9.1...v1.9.3) --- updated-dependencies: - dependency-name: bootsnap dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 6862e1c0b..df3397a4b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -95,7 +95,7 @@ GEM bindex (0.8.1) binding_of_caller (1.0.0) debug_inspector (>= 0.0.1) - bootsnap (1.9.1) + bootsnap (1.9.3) msgpack (~> 1.0) builder (3.2.4) byebug (11.1.3) From a876096d94d42d79b66e5a8cb87501aff4242b6c Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 25 Nov 2021 14:40:14 +0800 Subject: [PATCH 0771/2165] =?UTF-8?q?chore:=20=E6=9B=B4=E6=96=B0=20guard?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 2 +- Gemfile.lock | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index 219f6c4c3..86b16b27d 100644 --- a/Gemfile +++ b/Gemfile @@ -97,7 +97,7 @@ group :development do # 调试器 gem 'byebug', platforms: %i[mri mingw x64_mingw] - gem 'guard', '~> 2.17.0' + gem 'guard', '~> 2.18.0' gem 'guard-bundler' gem 'guard-migrate' gem 'guard-rails' diff --git a/Gemfile.lock b/Gemfile.lock index df3397a4b..a9d9e96f3 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -176,13 +176,13 @@ GEM activesupport (>= 5.0) google-protobuf (3.18.1) graphql (1.12.14) - guard (2.17.0) + guard (2.18.0) formatador (>= 0.2.4) listen (>= 2.7, < 4.0) lumberjack (>= 1.0.12, < 2.0) nenv (~> 0.1) notiffany (~> 0.0) - pry (>= 0.9.12) + pry (>= 0.13.0) shellany (~> 0.0) thor (>= 0.18.1) guard-bundler (3.0.0) @@ -532,7 +532,7 @@ DEPENDENCIES friendly_id (~> 5.4.2) gitlab_omniauth-ldap (~> 2.1.1) graphql (~> 1.12.14) - guard (~> 2.17.0) + guard (~> 2.18.0) guard-bundler guard-migrate guard-rails From c52ab7257be1f4271602d6ac1d68ec6762e0141a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 25 Nov 2021 06:41:16 +0000 Subject: [PATCH 0772/2165] chore(deps): bump graphql from 1.12.14 to 1.13.0 Bumps [graphql](https://github.com/rmosolgo/graphql-ruby) from 1.12.14 to 1.13.0. - [Release notes](https://github.com/rmosolgo/graphql-ruby/releases) - [Changelog](https://github.com/rmosolgo/graphql-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/rmosolgo/graphql-ruby/compare/v1.12.14...v1.13.0) --- updated-dependencies: - dependency-name: graphql dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 86b16b27d..87272d570 100644 --- a/Gemfile +++ b/Gemfile @@ -15,7 +15,7 @@ gem 'redis', '~> 4.4.0' # API gem 'active_model_serializers', '~> 0.10.12' -gem 'graphql', '~> 1.12.14' +gem 'graphql', '~> 1.13.0' gem 'rack-cors', '~> 1.1.1' gem 'health_check', '~> 3.1.0' diff --git a/Gemfile.lock b/Gemfile.lock index a9d9e96f3..1d26d8968 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -175,7 +175,7 @@ GEM globalid (0.5.2) activesupport (>= 5.0) google-protobuf (3.18.1) - graphql (1.12.14) + graphql (1.13.0) guard (2.18.0) formatador (>= 0.2.4) listen (>= 2.7, < 4.0) @@ -531,7 +531,7 @@ DEPENDENCIES dotenv-rails friendly_id (~> 5.4.2) gitlab_omniauth-ldap (~> 2.1.1) - graphql (~> 1.12.14) + graphql (~> 1.13.0) guard (~> 2.18.0) guard-bundler guard-migrate From 313a99e6249f8196066a9f6a5bf7a2d97883495b Mon Sep 17 00:00:00 2001 From: icyleaf Date: Sat, 27 Nov 2021 15:01:59 +0000 Subject: [PATCH 0773/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=20vm=20=E5=BC=80=E5=8F=91=E6=8C=82=E8=BD=BD=E7=A3=81?= =?UTF-8?q?=E7=9B=98=E7=A9=BA=E9=97=B4=E6=97=A0=E6=B3=95=E8=8E=B7=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/admin/system_info_controller.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/app/controllers/admin/system_info_controller.rb b/app/controllers/admin/system_info_controller.rb index ab7018c2a..dbc4d9d89 100644 --- a/app/controllers/admin/system_info_controller.rb +++ b/app/controllers/admin/system_info_controller.rb @@ -97,6 +97,7 @@ def set_disk_volumes begin disk = Sys::Filesystem.stat(mount.mount_point) next if obj.any? { |i| i[:mount_path] == disk.path } + next if disk.bytes_total.zero? percent = percent(disk.bytes_used, disk.bytes_total) obj.push( From 4244009f89021aafd2fc906c7b5865789b27f75d Mon Sep 17 00:00:00 2001 From: icyleaf Date: Sat, 27 Nov 2021 15:06:11 +0000 Subject: [PATCH 0774/2165] =?UTF-8?q?feat:=20=E5=BC=80=E5=8F=91=E7=8E=AF?= =?UTF-8?q?=E5=A2=83=E6=94=AF=E6=8C=81=E8=BF=9C=E7=A8=8B=E5=BC=80=E5=8F=91?= =?UTF-8?q?=E6=BF=80=E6=B4=BB=20better=20errors?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/environments/development.rb | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/config/environments/development.rb b/config/environments/development.rb index 08b6866ba..761ca54f8 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -75,4 +75,9 @@ # Use an evented file watcher to asynchronously detect changes in source code, # routes, locales, etc. This feature depends on the listen gem. config.file_watcher = ActiveSupport::EventedFileUpdateChecker -end + + if defined?(BetterErrors) && ENV['TRUST_IP'] + require 'ipaddr' + BetterErrors::Middleware.allow_ip! IPAddr.new(ENV['TRUST_IP']) + end +end \ No newline at end of file From d5b4c79159ef4da4601f7e30dedeeab6e52f19eb Mon Sep 17 00:00:00 2001 From: icyleaf Date: Sat, 27 Nov 2021 15:09:09 +0000 Subject: [PATCH 0775/2165] =?UTF-8?q?feat:=20=E6=9E=84=E5=BB=BA=E6=97=A5?= =?UTF-8?q?=E6=9C=9F=E5=92=8C=E5=93=88=E5=B8=8C=E5=80=BC=E6=97=A0=E6=B3=95?= =?UTF-8?q?=E8=8E=B7=E5=8F=96=E4=B8=8D=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/admin/system_info/index.html.slim | 14 ++++++++------ config/environments/development.rb | 18 +++++++++++++++--- 2 files changed, 23 insertions(+), 9 deletions(-) diff --git a/app/views/admin/system_info/index.html.slim b/app/views/admin/system_info/index.html.slim index 99fa3c6d5..538656ab9 100644 --- a/app/views/admin/system_info/index.html.slim +++ b/app/views/admin/system_info/index.html.slim @@ -17,12 +17,14 @@ #current-version = @server[:zealot_version] #new-version data-title="#{Rails.env.development? ? t('.dev_new_version') : t('.new_version')}" - dt = t('.vcs_ref') - dd - pre = link_to @server[:zealot_vcs_ref], github_repo_commit(@server[:zealot_vcs_ref]), target: :blank - dt = t('.build_date') - dd - pre = @server[:build_date] + - if @server[:zealot_vcs_ref] + dt = t('.vcs_ref') + dd + pre = link_to @server[:zealot_vcs_ref], github_repo_commit(@server[:zealot_vcs_ref]), target: :blank + - if @server[:build_date] + dt = t('.build_date') + dd + pre = @server[:build_date] dt = t('.os_info') dd pre = @server[:os_info] diff --git a/config/environments/development.rb b/config/environments/development.rb index 761ca54f8..a4a7839ac 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -1,5 +1,7 @@ # frozen_string_literal: true +require_relative '../../app/models/setting' + Rails.application.configure do # Settings specified here will take precedence over those in config/application.rb. @@ -76,8 +78,18 @@ # routes, locales, etc. This feature depends on the listen gem. config.file_watcher = ActiveSupport::EventedFileUpdateChecker - if defined?(BetterErrors) && ENV['TRUST_IP'] - require 'ipaddr' - BetterErrors::Middleware.allow_ip! IPAddr.new(ENV['TRUST_IP']) + config.action_cable.allowed_request_origins = [ + /http(s)?:\/\/#{Setting.site_domain}/ + ] + + if ENV['TRUST_IP'] + config.web_console.permissions = ENV['TRUST_IP'] + + if defined?(BetterErrors) + require 'ipaddr' + BetterErrors::Middleware.allow_ip! IPAddr.new(ENV['TRUST_IP']) + end end + + config.hosts << ENV['ZEALOT_DOMAIN'] if ENV['ZEALOT_DOMAIN'] end \ No newline at end of file From 79c3c454e042c63267d6dd11766b84e5309b4d8d Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 25 Nov 2021 14:40:14 +0800 Subject: [PATCH 0776/2165] =?UTF-8?q?chore:=20=E6=9B=B4=E6=96=B0=20guard?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 2 +- Gemfile.lock | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index 219f6c4c3..86b16b27d 100644 --- a/Gemfile +++ b/Gemfile @@ -97,7 +97,7 @@ group :development do # 调试器 gem 'byebug', platforms: %i[mri mingw x64_mingw] - gem 'guard', '~> 2.17.0' + gem 'guard', '~> 2.18.0' gem 'guard-bundler' gem 'guard-migrate' gem 'guard-rails' diff --git a/Gemfile.lock b/Gemfile.lock index df3397a4b..a9d9e96f3 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -176,13 +176,13 @@ GEM activesupport (>= 5.0) google-protobuf (3.18.1) graphql (1.12.14) - guard (2.17.0) + guard (2.18.0) formatador (>= 0.2.4) listen (>= 2.7, < 4.0) lumberjack (>= 1.0.12, < 2.0) nenv (~> 0.1) notiffany (~> 0.0) - pry (>= 0.9.12) + pry (>= 0.13.0) shellany (~> 0.0) thor (>= 0.18.1) guard-bundler (3.0.0) @@ -532,7 +532,7 @@ DEPENDENCIES friendly_id (~> 5.4.2) gitlab_omniauth-ldap (~> 2.1.1) graphql (~> 1.12.14) - guard (~> 2.17.0) + guard (~> 2.18.0) guard-bundler guard-migrate guard-rails From a52f2c8d523e69248d6180fe6c0676c8c30b30bf Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 18 Nov 2021 16:06:51 +0800 Subject: [PATCH 0777/2165] fix: request origin not allowed --- app/models/setting.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/models/setting.rb b/app/models/setting.rb index ceffceffa..7f048b7e8 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -1,5 +1,7 @@ # frozen_string_literal: true +require_relative './concerns/user_roles' + # RailsSettings Model class Setting < RailsSettings::Base extend ActionView::Helpers::TranslationHelper From 0ae57159e8061f758382207b0bd677388c3d2d81 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 18 Nov 2021 16:07:28 +0800 Subject: [PATCH 0778/2165] =?UTF-8?q?feat:=20puma=20=E5=A2=9E=E5=8A=A0=20c?= =?UTF-8?q?ontrol=20url=20=E5=92=8C=E5=A4=96=E9=83=A8=E5=AE=A2=E6=88=B7?= =?UTF-8?q?=E7=AB=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/application.rb | 8 +------ config/puma.rb | 11 ++++++++-- lib/puma_control_client.rb | 44 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 54 insertions(+), 9 deletions(-) create mode 100644 lib/puma_control_client.rb diff --git a/config/application.rb b/config/application.rb index 4177628cf..db1c5cec4 100644 --- a/config/application.rb +++ b/config/application.rb @@ -83,13 +83,7 @@ class Application < Rails::Application ################################################################ # Auto load path - config.autoload_paths += [ - Rails.root.join('lib') - ] - - # config.eager_load_paths += %W( - # #{config.root}/lib - # ) + config.autoload_paths += Dir[Rails.root.join('lib')] # Don't generate system test files. config.generators.system_tests = nil diff --git a/config/puma.rb b/config/puma.rb index e2d7219ec..38acd0a4d 100644 --- a/config/puma.rb +++ b/config/puma.rb @@ -53,7 +53,7 @@ worker_timeout rails_env == 'development' ? 3600 : 30 # The path to the puma binary without any arguments. -restart_command 'puma' +# restart_command 'puma' # Use the `preload_app!` method when specifying a `workers` number. # This directive tells Puma to first boot the application and load code before @@ -63,4 +63,11 @@ # preload_app! # Allow puma to be restarted by `rails restart` command. -plugin :tmp_restart \ No newline at end of file +# plugin :tmp_restart + +# Start the Puma control rack application on +url+. This application can +# be communicated with to control the main server. Additionally, you can +# provide an authentication token, so all requests to the control server +# will need to include that token as a query parameter. This allows for +# simple authentication. +activate_control_app "tcp://#{ENV.fetch('PUMA_CONTROL_URL') { '0.0.0.0:9293' }}", { auth_token: ENV.fetch('PUMA_CONTROL_URL_TOKEN') { 'zealot' } } \ No newline at end of file diff --git a/lib/puma_control_client.rb b/lib/puma_control_client.rb new file mode 100644 index 000000000..0c138164b --- /dev/null +++ b/lib/puma_control_client.rb @@ -0,0 +1,44 @@ +# frozen_string_literal: true + +require 'http' + +class PumaControlClient + def initialize(url = nil, token: nil) + @uri ||= ENV['PUMA_CONTROL_URL'] + @token ||= ENV['PUMA_CONTROL_URL_TOKEN'] { 'none' } + end + + def stats + get 'stats' + rescue HTTP::Error + false + end + + def restart + get 'restart' + end + + private + + def get(path) + client.get(url(path), params: auth_token)&.parse(:json) + end + + def url(path) + "http://#{@uri}/#{path}" + end + + def auth_token + @auth_token ||= { + token: @token + } + end + + def client + @client ||= HTTP::Client.new(HTTP::Options.new(features: { + logging: { + logger: Logger.new(STDOUT) + } + })) + end +end \ No newline at end of file From c9b183bf5ac2173936e2fb542d98f8c0ce71fa09 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 22 Nov 2021 17:53:32 +0800 Subject: [PATCH 0779/2165] =?UTF-8?q?=20feat:=20=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E9=87=8D=E5=90=AF=E9=85=8D=E7=BD=AE=E6=9B=B4?= =?UTF-8?q?=E5=A4=9A=E7=9A=84=E7=B3=BB=E7=BB=9F=E8=AE=BE=E7=BD=AE=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Guardfile | 1 + app/controllers/admin/service_controller.rb | 23 ++++++ app/controllers/admin/settings_controller.rb | 3 +- app/javascript/channels/consumer.js | 2 +- app/javascript/channels/index.js | 2 +- app/javascript/javascripts/admin/service.js | 48 +++++++++++ app/javascript/packs/admin_service.js | 6 ++ app/models/setting.rb | 85 +++++++++++++++----- app/views/admin/settings/_form.html.slim | 2 +- app/views/admin/settings/index.html.slim | 13 +++ app/views/layouts/application.html.slim | 4 +- babel.config.js | 4 +- config/locales/zealot/en.yml | 4 + config/locales/zealot/zh-CN.yml | 4 + config/routes.rb | 5 ++ package.json | 2 +- yarn.lock | 13 +-- 17 files changed, 186 insertions(+), 35 deletions(-) create mode 100644 app/controllers/admin/service_controller.rb create mode 100644 app/javascript/javascripts/admin/service.js create mode 100644 app/javascript/packs/admin_service.js diff --git a/Guardfile b/Guardfile index f6a324b24..c9a36f9b4 100644 --- a/Guardfile +++ b/Guardfile @@ -22,6 +22,7 @@ guard :sidekiq, environment: environment, concurrency: 5 do end guard :webpacker do + watch(%r{^app/javascript/(channels|javascripts|packs)/.*$}) watch('config/webpacker.yml') watch(%r{^config/webpack/.*$}) end diff --git a/app/controllers/admin/service_controller.rb b/app/controllers/admin/service_controller.rb new file mode 100644 index 000000000..ae4c98aa4 --- /dev/null +++ b/app/controllers/admin/service_controller.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +class Admin::ServiceController < ApplicationController + + def restart + client.restart + render json: { request: 'accepted' } + end + + def status + client.stats + + render json: { health: 'ok' } + rescue + render json: { health: 'fail' }, status: :internal_server_error + end + + private + + def client + @client ||= PumaControlClient.new + end +end diff --git a/app/controllers/admin/settings_controller.rb b/app/controllers/admin/settings_controller.rb index b8634a8d7..73eb8d624 100644 --- a/app/controllers/admin/settings_controller.rb +++ b/app/controllers/admin/settings_controller.rb @@ -34,7 +34,8 @@ def update message = t('activerecord.success.update', key: t("admin.settings.#{@setting.var}")) redirect_to admin_settings_path, notice: message else - redirect_to admin_settings_path + message = t('activerecord.errors.same_value', key: t("admin.settings.#{@setting.var}")) + redirect_to admin_settings_path, alert: message end end diff --git a/app/javascript/channels/consumer.js b/app/javascript/channels/consumer.js index b6a99de10..a81e10aa8 100644 --- a/app/javascript/channels/consumer.js +++ b/app/javascript/channels/consumer.js @@ -3,4 +3,4 @@ import { createConsumer } from "@rails/actioncable"; -export default createConsumer(); +export default createConsumer(); \ No newline at end of file diff --git a/app/javascript/channels/index.js b/app/javascript/channels/index.js index c9333a2e9..22875c493 100644 --- a/app/javascript/channels/index.js +++ b/app/javascript/channels/index.js @@ -6,4 +6,4 @@ // ActionCable.logger.enabled = true const channels = require.context('.', true, /_channel\.js$/); -channels.keys().forEach(channels); +channels.keys().forEach(channels); \ No newline at end of file diff --git a/app/javascript/javascripts/admin/service.js b/app/javascript/javascripts/admin/service.js new file mode 100644 index 000000000..2845e2886 --- /dev/null +++ b/app/javascript/javascripts/admin/service.js @@ -0,0 +1,48 @@ +function restarting() { + fetch("/admin/service/restart", { + method: "POST" + }); +} + +function isOnline() { + try { + fetch("/admin/service/status", { + method: "GET" + }); + return true; + } catch (error) { + return false; + } +} + +function sleep(ms) { + return new Promise((resolve) => setTimeout(resolve, ms)); +} + +export async function restartService(button) { + $("#notifications").fadeOut(); + + var restartingText = $(button).data("restart-text"); + var restartedText = $(button).data("restarted-text"); + $(button).html("" + restartingText); + var serverRestarting = true; + + await restarting(); + await sleep(2000); + + do { + var online = await isOnline(); + if (online) { + serverRestarting = false; + } else { + await sleep(1000); + } + } while (serverRestarting); + + $(button).removeClass("bg-warning") + .addClass("bg-success") + .html("" + restartedText); + + await sleep(2000); + window.location.reload(); +} diff --git a/app/javascript/packs/admin_service.js b/app/javascript/packs/admin_service.js new file mode 100644 index 000000000..08a6ecdb4 --- /dev/null +++ b/app/javascript/packs/admin_service.js @@ -0,0 +1,6 @@ +import { restartService } from "javascripts/admin/service"; + +$(document).on("turbolinks:load", () => { + var button = $("#restart-service-button"); + button.on("click", () => restartService(button)); +}); \ No newline at end of file diff --git a/app/models/setting.rb b/app/models/setting.rb index 7f048b7e8..42b46034c 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -1,12 +1,13 @@ # frozen_string_literal: true -require_relative './concerns/user_roles' - # RailsSettings Model class Setting < RailsSettings::Base extend ActionView::Helpers::TranslationHelper include ActionView::Helpers::TranslationHelper + before_save :convert_third_party_enabled_value, if: :third_party_auth_scope? + before_save :mark_restart_flag, if: :need_restart? + cache_prefix { 'v2' } REPO_URL = 'https://github.com/tryzealot/zealot' @@ -49,6 +50,18 @@ def site_configs end end + def need_restart? + Rails.configuration.x.restart_required == true + end + + def restart_required! + Rails.configuration.x.restart_required = true + end + + def clear_restart_flag! + Rails.configuration.x.restart_required = false + end + def find_or_default(var:) find_by(var: var) || new(var: var) end @@ -78,7 +91,8 @@ def repo_url scope :general do field :site_title, default: 'Zealot', type: :string, display: true, validates: { presence: true, length: { in: 3..16 } } - field :site_domain, default: (ENV['ZEALOT_DOMAIN'] || site_domain), type: :string, readonly: true, display: true + field :site_domain, default: (ENV['ZEALOT_DOMAIN'] || site_domain), type: :string, + restart_required: true, display: true field :site_locale, default: Rails.configuration.i18n.default_locale.to_s, type: :string, display: true, validates: { presence: true, inclusion: { in: Rails.configuration.i18n.available_locales.map(&:to_s) } } field :site_https, default: site_https, type: :boolean, readonly: true, display: true @@ -96,25 +110,23 @@ def repo_url # 模式开关 scope :switch_mode do - field :registrations_mode, default: ActiveModel::Type::Boolean.new.cast(ENV['ZEALOT_REGISTER_ENABLED'] || 'true'), type: :boolean, display: true - field :guest_mode, default: ActiveModel::Type::Boolean.new.cast(ENV['ZEALOT_GUEST_MODE'] || 'false'), type: :boolean, readonly: true, display: true - field :demo_mode, default: ActiveModel::Type::Boolean.new.cast(ENV['ZEALOT_DEMO_MODE'] || 'false'), type: :boolean, readonly: true, display: true - end - - # 上传文件保留策略 - scope :limits do - field :keep_uploads, default: ActiveModel::Type::Boolean.new.cast(ENV['ZEALOT_KEEP_UPLOADS'] || 'true'), type: :boolean, readonly: true + field :registrations_mode, default: ActiveModel::Type::Boolean.new.cast(ENV['ZEALOT_REGISTER_ENABLED'] || 'true'), + type: :boolean, display: true + field :guest_mode, default: ActiveModel::Type::Boolean.new.cast(ENV['ZEALOT_GUEST_MODE'] || 'false'), + type: :boolean, restart_required: true, display: true + field :demo_mode, default: ActiveModel::Type::Boolean.new.cast(ENV['ZEALOT_DEMO_MODE'] || 'false'), + type: :boolean, readonly: true, display: true end # 第三方登录 scope :third_party_auth do - field :feishu, type: :hash, readonly: true, display: true, default: { + field :feishu, type: :hash, display: true, restart_required: true, default: { enabled: ActiveModel::Type::Boolean.new.cast(ENV['FEISHU_ENABLED'] || false), app_id: ENV['FEISHU_APP_ID'], app_secret: ENV['FEISHU_APP_SECRET'], } - field :gitlab, type: :hash, readonly: true, display: true, default: { + field :gitlab, type: :hash, display: true, restart_required: true, default: { enabled: ActiveModel::Type::Boolean.new.cast(ENV['GITLAB_ENABLED'] || false), site: ENV['GITLAB_SITE'] || 'https://gitlab.com/api/v4', scope: ENV['GITLAB_SCOPE'] || 'read_user', @@ -122,13 +134,13 @@ def repo_url secret: ENV['GITLAB_SECRET'], } - field :google_oauth, type: :hash, readonly: true, display: true, default: { + field :google_oauth, type: :hash, display: true, restart_required: true, default: { enabled: ActiveModel::Type::Boolean.new.cast(ENV['GOOGLE_OAUTH_ENABLED'] || false), client_id: ENV['GOOGLE_CLIENT_ID'], secret: ENV['GOOGLE_SECRET'], } - field :ldap, type: :hash, readonly: true, display: true, default: { + field :ldap, type: :hash, display: true, restart_required: true, default: { enabled: ActiveModel::Type::Boolean.new.cast(ENV['LDAP_ENABLED'] || false), host: ENV['LDAP_HOST'], port: ENV['LDAP_PORT'] || '389', @@ -142,16 +154,18 @@ def repo_url # 邮件配置 scope :stmp do - field :mailer_default_from, default: ENV['ACTION_MAILER_DEFAULT_FROM'], type: :string, display: true - field :mailer_default_to, default: ENV['ACTION_MAILER_DEFAULT_TO'], type: :string, display: true - field :mailer_options, type: :hash, readonly: true, default: { + field :mailer_default_from, default: ENV['ACTION_MAILER_DEFAULT_FROM'], type: :string, + restart_required: true, display: true + field :mailer_default_to, default: ENV['ACTION_MAILER_DEFAULT_TO'], type: :string, + restart_required: true, display: true + field :mailer_options, type: :hash, restart_required: true, display: true, default: { address: ENV['SMTP_ADDRESS'], port: ENV['SMTP_PORT'].to_i, domain: ENV['SMTP_DOMAIN'], username: ENV['SMTP_USERNAME'], password: ENV['SMTP_PASSWORD'], auth_method: ENV['SMTP_AUTH_METHOD'], - enable_starttls_auto: ENV['SMTP_ENABLE_STARTTLS_AUTO'], + enable_starttls_auto: ActiveModel::Type::Boolean.new.cast(ENV['SMTP_ENABLE_STARTTLS_AUTO']), } end @@ -162,6 +176,13 @@ def repo_url pg_schema: 'public', } + # 杂项 + scope :misc do + # 上传文件保留策略 + field :keep_uploads, default: ActiveModel::Type::Boolean.new.cast(ENV['ZEALOT_KEEP_UPLOADS'] || 'true'), + type: :boolean, restart_required: true, display: true + end + # 版本信息(只读) scope :information do field :version, default: (ENV['ZEALOT_VERSION'] || 'development'), type: :string, readonly: true @@ -216,6 +237,20 @@ def present private + def mark_restart_flag + self.class.restart_required! + end + + def need_restart? + value_of(var, source: :restart_required) == true + end + + def convert_third_party_enabled_value + new_value = value.dup + new_value['enabled'] = ActiveModel::Type::Boolean.new.cast(value['enabled']) + self.value = new_value + end + def validate_value(validate) case validate when ActiveModel::Validations::PresenceValidator @@ -228,4 +263,16 @@ def validate_value(validate) t('errors.messages.optional_value', value: inclusion_values.values.join(', ')) end end + + def third_party_auth_scope? + value_of(var, source: :scope) == :third_party_auth + end + + def value_of(key, source:) + scope = Setting.defined_fields + .select { |s| s[:key] == key } + .map { |s| s[source] || s[:options][source] } + + scope.any? ? scope.first : false + end end diff --git a/app/views/admin/settings/_form.html.slim b/app/views/admin/settings/_form.html.slim index 179d84349..dfbe2c91b 100644 --- a/app/views/admin/settings/_form.html.slim +++ b/app/views/admin/settings/_form.html.slim @@ -19,7 +19,7 @@ input.hidden type="hidden" value="#{@setting.type}" name="setting[type]" - if @setting.type == :boolean - = f.input :value, label: t('admin.settings.enable'), as: :boolean, input_html: { checked: @value }, hint: false + = f.input :value, label: t('admin.settings.enable'), as: :boolean, hint: false - elsif @setting.type == :hash || @setting.type == :array = f.input :value, as: :text, input_html: { value: JSON.pretty_generate(@value) } - elsif @setting.inclusion? diff --git a/app/views/admin/settings/index.html.slim b/app/views/admin/settings/index.html.slim index 567edd51b..11c26a191 100644 --- a/app/views/admin/settings/index.html.slim +++ b/app/views/admin/settings/index.html.slim @@ -4,6 +4,19 @@ - content_for :section_title do = @title +- content_for :header_tags do + == javascript_pack_tag 'admin_service', 'data-turbolinks-track': 'reload' + +- content_for :section_rightpanel do + - if Setting.need_restart? + button#restart-service-button.btn.btn-icon.bg-warning[ + data-url="#{admin_settings_url}" + data-restart-text="#{t('.service_restarting')}" + data-restarted-text="#{t('.service_restarted')}" + ] + i.icon.fas.fa-redo-alt + = t('.apply_for_restart') + form.form-horizontal - @settings.each do |scope, keys| .row diff --git a/app/views/layouts/application.html.slim b/app/views/layouts/application.html.slim index 6c099bf50..1cac5a712 100644 --- a/app/views/layouts/application.html.slim +++ b/app/views/layouts/application.html.slim @@ -6,9 +6,10 @@ ruby: end doctype html -html +html lang="#{I18n.locale}" head title = page_title(yield :title) + meta[charset="utf-8"] meta[name="viewport" content="width=device-width, initial-scale=1.0"] link[rel="apple-touch-icon" sizes="60x60" href="#{asset_pack_path('media/images/touch-icon.png')}"] link[rel="apple-touch-icon" sizes="120x120" href="#{asset_pack_path('media/images/touch-icon@2x.png')}"] @@ -17,6 +18,7 @@ html == favicon_link_tag asset_pack_path('media/images/touch-icon.png') == stylesheet_pack_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' == javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' + == yield :header_tags == action_cable_meta_tag == csrf_meta_tags diff --git a/babel.config.js b/babel.config.js index 84888b619..24f4018d7 100644 --- a/babel.config.js +++ b/babel.config.js @@ -66,7 +66,9 @@ module.exports = function(api) { { async: false } - ] + ], + ["@babel/plugin-proposal-private-methods", { "loose": true }], + ["@babel/plugin-proposal-private-property-in-object", { "loose": true }] ].filter(Boolean) } } diff --git a/config/locales/zealot/en.yml b/config/locales/zealot/en.yml index e0d585e27..c56df337c 100644 --- a/config/locales/zealot/en.yml +++ b/config/locales/zealot/en.yml @@ -47,6 +47,9 @@ en: settings: index: title: :'settings.title' + apply_for_restart: Apply for restart + service_restarting: Service restarting ... + service_restarted: Refresh page ... update: title: Edit setting edit: @@ -680,6 +683,7 @@ en: update: Updated %{key} successfully destroy: Deleteed %{key} successfully errors: + same_value: "%{key} not change, skip to update" models: debug_file: attributes: diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index 61d66e9f4..48044c06d 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -46,6 +46,9 @@ zh-CN: settings: index: title: :'settings.title' + apply_for_restart: 需重启服务生效 + service_restarting: 服务重启中 ... + service_restarted: 刷新页面 ... update: title: 编辑设置 edit: @@ -694,6 +697,7 @@ zh-CN: update: "%{key}更新成功" destroy: "%{key}删除成功" errors: + same_value: "%{key}没有发生变化,无法保存" models: setting: default_message: "请检查 '%{key}' 的如下问题:" diff --git a/config/routes.rb b/config/routes.rb index 95217ab27..8ee12eb9e 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -106,6 +106,11 @@ resources :database_analytics, only: :index resources :page_analytics, only: :index + namespace :service do + post :restart + get :status + end + require 'sidekiq/web' require 'sidekiq-scheduler/web' diff --git a/package.json b/package.json index 482f7d498..6dbc572fb 100644 --- a/package.json +++ b/package.json @@ -2,8 +2,8 @@ "name": "zealot", "private": true, "dependencies": { - "@rails/ujs": "^6.1.4", "@rails/actioncable": "^6.1.4", + "@rails/ujs": "^6.1.4", "@rails/webpacker": "^5.4.2", "admin-lte": "^3.1.0", "clipboard": "^2.0.8", diff --git a/yarn.lock b/yarn.lock index c4d711f20..6fb99312a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2130,15 +2130,10 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001219: - version "1.0.30001235" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001235.tgz#ad5ca75bc5a1f7b12df79ad806d715a43a5ac4ed" - integrity sha512-zWEwIVqnzPkSAXOUlQnPW2oKoYb2aLQ4Q5ejdjBcnH63rfypaW34CxaeBn1VMya2XaEU3P/R2qHpWyj+l0BT1A== - -caniuse-lite@^1.0.30001251: - version "1.0.30001251" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001251.tgz#6853a606ec50893115db660f82c094d18f096d85" - integrity sha512-HOe1r+9VkU4TFmnU70z+r7OLmtR+/chB1rdcJUeQlAinjEeb0cKL20tlAtOagNZhbrtLnCvV19B4FmF1rgzl6A== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001219, caniuse-lite@^1.0.30001251: + version "1.0.30001283" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001283.tgz" + integrity sha512-9RoKo841j1GQFSJz/nCXOj0sD7tHBtlowjYlrqIUS812x9/emfBLBt6IyMz1zIaYc/eRL8Cs6HPUVi2Hzq4sIg== case-sensitive-paths-webpack-plugin@^2.4.0: version "2.4.0" From 0f6304d9f9ef6a3f690aeb699214de2fb2876ca8 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 3 Dec 2021 10:49:41 +0800 Subject: [PATCH 0780/2165] =?UTF-8?q?fix:=20=E8=A7=A3=E5=86=B3=E5=BE=AA?= =?UTF-8?q?=E7=8E=AF=E5=BC=95=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/setting.rb | 7 +++---- config/environments/production.rb | 5 ++--- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/app/models/setting.rb b/app/models/setting.rb index 42b46034c..ec087d5c8 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -33,7 +33,7 @@ def site_https Rails.env.production? || ENV['ZEALOT_USE_HTTPS'].present? end - def site_domain + def site_host site_https ? 'localhost' : "localhost:#{ENV['ZEALOT_PORT'] || 3000}" end @@ -76,7 +76,7 @@ def protocol def url_options { - host: site_domain, + host: site_host, protocol: protocol, trailing_slash: false } @@ -91,7 +91,7 @@ def repo_url scope :general do field :site_title, default: 'Zealot', type: :string, display: true, validates: { presence: true, length: { in: 3..16 } } - field :site_domain, default: (ENV['ZEALOT_DOMAIN'] || site_domain), type: :string, + field :site_domain, default: (ENV['ZEALOT_DOMAIN'] || site_host), type: :string, restart_required: true, display: true field :site_locale, default: Rails.configuration.i18n.default_locale.to_s, type: :string, display: true, validates: { presence: true, inclusion: { in: Rails.configuration.i18n.available_locales.map(&:to_s) } } @@ -221,7 +221,6 @@ def inclusion_values def default_value present[:default] end - alias_method :default, :default_value def type present[:type] diff --git a/config/environments/production.rb b/config/environments/production.rb index 4a17681ea..5f01198ee 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -51,7 +51,7 @@ # config.action_cable.mount_path = nil # config.action_cable.url = 'wss://example.com/cable' config.action_cable.allowed_request_origins = [ - /http(s)?:\/\/#{Setting.site_domain}/ + /http(s)?:\/\/#{Setting.site_host}/ ] # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies. @@ -69,8 +69,7 @@ # Ignore bad email addresses and do not raise email delivery errors. # Set this to true and configure the email server for immediate delivery to raise delivery errors. config.action_mailer.raise_delivery_errors = false - # config.action_mailer.default_url_options = { host: Setting.site_domain } - + # config.action_mailer.default_url_options = { host: Setting.site_host } # Send deprecation notices to registered listeners. config.active_support.deprecation = :notify From 8ae7eb5bb8c04ec983382f550637f2bc3e9c1d99 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 3 Dec 2021 13:34:43 +0800 Subject: [PATCH 0781/2165] =?UTF-8?q?chore:=20=E5=8D=87=E7=BA=A7=20graphql?= =?UTF-8?q?=20=E8=87=B3=201.13.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 6 ++-- Gemfile.lock | 4 +++ app/controllers/graphql_controller.rb | 43 +++++++++++------------ app/graphql/mutations/.keep | 0 app/graphql/types/.keep | 0 app/graphql/types/base_connection.rb | 8 +++++ app/graphql/types/base_edge.rb | 8 +++++ app/graphql/types/base_interface.rb | 2 ++ app/graphql/types/base_object.rb | 2 ++ app/graphql/types/base_union.rb | 2 ++ app/graphql/types/node_type.rb | 9 +++++ app/graphql/types/query_type.rb | 8 +++-- app/graphql/types/user_type.rb | 3 +- app/graphql/zealot_schema.rb | 49 +++++++++++++++++++++++++-- config/routes.rb | 4 +++ 15 files changed, 116 insertions(+), 32 deletions(-) create mode 100644 app/graphql/mutations/.keep create mode 100644 app/graphql/types/.keep create mode 100644 app/graphql/types/base_connection.rb create mode 100644 app/graphql/types/base_edge.rb create mode 100644 app/graphql/types/node_type.rb diff --git a/Gemfile b/Gemfile index 611108b6d..155d52aed 100644 --- a/Gemfile +++ b/Gemfile @@ -94,6 +94,7 @@ group :development do # 调试控制台 gem 'listen', '>= 3.0.5', '< 3.8' gem 'web-console', '>= 3.3.0' + gem 'graphiql-rails' # 调试器 gem 'byebug', platforms: %i[mri mingw x64_mingw] @@ -132,7 +133,4 @@ group :development, :test do gem 'pry-byebug' gem 'pry-rails' gem 'pry-rescue' -end - -# docker 部署无需此 gem -# gem 'tzinfo-data', platforms: %i[mingw mswin x64_mingw jruby] +end \ No newline at end of file diff --git a/Gemfile.lock b/Gemfile.lock index a571af167..8962c1c0b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -175,6 +175,9 @@ GEM globalid (0.5.2) activesupport (>= 5.0) google-protobuf (3.18.1) + graphiql-rails (1.8.0) + railties + sprockets-rails graphql (1.13.0) guard (2.18.0) formatador (>= 0.2.4) @@ -531,6 +534,7 @@ DEPENDENCIES dotenv-rails friendly_id (~> 5.4.2) gitlab_omniauth-ldap (~> 2.1.1) + graphiql-rails graphql (~> 1.13.0) guard (~> 2.18.0) guard-bundler diff --git a/app/controllers/graphql_controller.rb b/app/controllers/graphql_controller.rb index de39f9f40..ab81c2b7d 100644 --- a/app/controllers/graphql_controller.rb +++ b/app/controllers/graphql_controller.rb @@ -7,48 +7,45 @@ class GraphqlController < ApplicationController # protect_from_forgery with: :null_session def execute - variables = ensure_hash(params[:variables]) + variables = prepare_variables(params[:variables]) query = params[:query] operation_name = params[:operationName] - context = { current_user: current_user } + context = { + current_user: current_user, + } result = ZealotSchema.execute(query, variables: variables, context: context, operation_name: operation_name) render json: result - rescue => e + rescue StandardError => e raise e unless Rails.env.development? - - handle_error_in_development e + handle_error_in_development(e) end private - # Handle form data, JSON body, or a blank value - def ensure_hash(ambiguous_param) - case ambiguous_param + # Handle variables in form data, JSON body, or a blank value + def prepare_variables(variables_param) + case variables_param when String - if ambiguous_param.present? - ensure_hash(JSON.parse(ambiguous_param)) + if variables_param.present? + JSON.parse(variables_param) || {} else {} end - when Hash, ActionController::Parameters - ambiguous_param + when Hash + variables_param + when ActionController::Parameters + variables_param.to_unsafe_hash # GraphQL-Ruby will validate name and type of incoming variables. when nil {} else - raise ArgumentError, t('errors.messages.unexpected_parameter', value: ambiguous_param) + raise ArgumentError, "Unexpected parameter: #{variables_param}" end end - def handle_error_in_development(exception) - logger.error exception.message - logger.error exception.backtrace.join("\n") + def handle_error_in_development(e) + logger.error e.message + logger.error e.backtrace.join("\n") - render json: { - error: { - message: exception.message, - backtrace: exception.backtrace - }, - data: {} - }, status: :internal_server_error + render json: { errors: [{ message: e.message, backtrace: e.backtrace }], data: {} }, status: 500 end end diff --git a/app/graphql/mutations/.keep b/app/graphql/mutations/.keep new file mode 100644 index 000000000..e69de29bb diff --git a/app/graphql/types/.keep b/app/graphql/types/.keep new file mode 100644 index 000000000..e69de29bb diff --git a/app/graphql/types/base_connection.rb b/app/graphql/types/base_connection.rb new file mode 100644 index 000000000..366c69e8a --- /dev/null +++ b/app/graphql/types/base_connection.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Types + class BaseConnection < Types::BaseObject + # add `nodes` and `pageInfo` fields, as well as `edge_type(...)` and `node_nullable(...)` overrides + include GraphQL::Types::Relay::ConnectionBehaviors + end +end diff --git a/app/graphql/types/base_edge.rb b/app/graphql/types/base_edge.rb new file mode 100644 index 000000000..e0d2f79c0 --- /dev/null +++ b/app/graphql/types/base_edge.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module Types + class BaseEdge < Types::BaseObject + # add `node` and `cursor` fields, as well as `node_type(...)` override + include GraphQL::Types::Relay::EdgeBehaviors + end +end diff --git a/app/graphql/types/base_interface.rb b/app/graphql/types/base_interface.rb index 256779bdb..188993871 100644 --- a/app/graphql/types/base_interface.rb +++ b/app/graphql/types/base_interface.rb @@ -3,6 +3,8 @@ module Types module BaseInterface include GraphQL::Schema::Interface + edge_type_class(Types::BaseEdge) + connection_type_class(Types::BaseConnection) field_class Types::BaseField end diff --git a/app/graphql/types/base_object.rb b/app/graphql/types/base_object.rb index 532b8bcac..487af2f58 100644 --- a/app/graphql/types/base_object.rb +++ b/app/graphql/types/base_object.rb @@ -2,6 +2,8 @@ module Types class BaseObject < GraphQL::Schema::Object + edge_type_class(Types::BaseEdge) + connection_type_class(Types::BaseConnection) field_class Types::BaseField end end diff --git a/app/graphql/types/base_union.rb b/app/graphql/types/base_union.rb index 30a5668c0..959416963 100644 --- a/app/graphql/types/base_union.rb +++ b/app/graphql/types/base_union.rb @@ -2,5 +2,7 @@ module Types class BaseUnion < GraphQL::Schema::Union + edge_type_class(Types::BaseEdge) + connection_type_class(Types::BaseConnection) end end diff --git a/app/graphql/types/node_type.rb b/app/graphql/types/node_type.rb new file mode 100644 index 000000000..c71ec3ee6 --- /dev/null +++ b/app/graphql/types/node_type.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +module Types + module NodeType + include Types::BaseInterface + # Add the `id` field + include GraphQL::Types::Relay::NodeBehaviors + end +end diff --git a/app/graphql/types/query_type.rb b/app/graphql/types/query_type.rb index 7958fe4a1..4c7e0c713 100644 --- a/app/graphql/types/query_type.rb +++ b/app/graphql/types/query_type.rb @@ -1,7 +1,11 @@ -# frozen_string_literal: true - module Types class QueryType < Types::BaseObject + # Add `node(id: ID!) and `nodes(ids: [ID!]!)` + include GraphQL::Types::Relay::HasNodeField + include GraphQL::Types::Relay::HasNodesField + + # Add root-level fields here. + # They will be entry points for queries on your schema. description 'The query root of this schema' # First describe the field signature: diff --git a/app/graphql/types/user_type.rb b/app/graphql/types/user_type.rb index a0933eb48..e8558b9c6 100644 --- a/app/graphql/types/user_type.rb +++ b/app/graphql/types/user_type.rb @@ -3,8 +3,9 @@ module Types class UserType < Types::BaseObject field :id, Int, null: false - field :name, String, null: true + field :username, String, null: true field :email, String, null: false field :token, String, null: false + field :created_at, Time, null: false end end diff --git a/app/graphql/zealot_schema.rb b/app/graphql/zealot_schema.rb index 68ced02e9..1fb5b62da 100644 --- a/app/graphql/zealot_schema.rb +++ b/app/graphql/zealot_schema.rb @@ -1,6 +1,51 @@ -# frozen_string_literal: true - class ZealotSchema < GraphQL::Schema mutation(Types::MutationType) query(Types::QueryType) + + # For batch-loading (see https://graphql-ruby.org/dataloader/overview.html) + use GraphQL::Dataloader + + # GraphQL-Ruby calls this when something goes wrong while running a query: + def self.type_error(err, context) + # if err.is_a?(GraphQL::InvalidNullError) + # # report to your bug tracker here + # return nil + # end + super + end + + # Union and Interface Resolution + def self.resolve_type(abstract_type, obj, ctx) + # TODO: Implement this method + # to return the correct GraphQL object type for `obj` + raise(GraphQL::RequiredImplementationMissingError) + end + + # Relay-style Object Identification: + + # Return a string UUID for `object` + def self.id_from_object(object, type_definition, query_ctx) + # For example, use Rails' GlobalID library (https://github.com/rails/globalid): + object_id = object.to_global_id.to_s + # Remove this redundant prefix to make IDs shorter: + object_id = object_id.sub("gid://#{GlobalID.app}/", "") + encoded_id = Base64.urlsafe_encode64(object_id) + # Remove the "=" padding + encoded_id = encoded_id.sub(/=+/, "") + # Add a type hint + type_hint = type_definition.graphql_name.first + "#{type_hint}_#{encoded_id}" + end + + # Given a string UUID, find the object + def self.object_from_id(encoded_id_with_hint, query_ctx) + # For example, use Rails' GlobalID library (https://github.com/rails/globalid): + # Split off the type hint + _type_hint, encoded_id = encoded_id_with_hint.split("_", 2) + # Decode the ID + id = Base64.urlsafe_decode64(encoded_id) + # Rebuild it for Rails then find the object: + full_global_id = "gid://#{GlobalID.app}/#{id}" + GlobalID::Locator.locate(full_global_id) + end end diff --git a/config/routes.rb b/config/routes.rb index 8ee12eb9e..279d8e590 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -168,6 +168,10 @@ ############################################# post '/graphql', to: 'graphql#execute' + if Rails.env.development? + mount GraphiQL::Rails::Engine, at: "/graphiql", graphql_path: "/graphql" + end + ############################################# # Development Only ############################################# From a9d1ad3285272bfeb9666d348bc6dd441e2b34b9 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 3 Dec 2021 13:44:50 +0800 Subject: [PATCH 0782/2165] =?UTF-8?q?refactor:=20puma=20=E6=8E=A7=E5=88=B6?= =?UTF-8?q?=20uri=20=E9=BB=98=E8=AE=A4=E9=85=8D=E7=BD=AE=E4=B8=80=E4=B8=AA?= =?UTF-8?q?=20uri?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/graphql/types/app_type.rb | 6 +++--- app/graphql/types/mutation_type.rb | 10 +++++----- app/graphql/types/release_type.rb | 2 +- app/graphql/types/user_type.rb | 4 ++-- config/routes.rb | 9 ++++----- lib/puma_control_client.rb | 4 ++-- 6 files changed, 17 insertions(+), 18 deletions(-) diff --git a/app/graphql/types/app_type.rb b/app/graphql/types/app_type.rb index 25a7f71d5..72e30ce4f 100644 --- a/app/graphql/types/app_type.rb +++ b/app/graphql/types/app_type.rb @@ -4,7 +4,7 @@ module Types class AppType < Types::BaseObject description 'App 信息' - field :id, Int, null: false + field :id, ID, null: false field :slug, String, null: false field :name, String, null: false field :platform, String, null: false @@ -19,7 +19,7 @@ class AppType < Types::BaseObject field :key, String, null: false - field :created_at, String, null: false - field :updated_at, String, null: false + field :created_at, GraphQL::Types::ISO8601DateTime, null: false + field :updated_at, GraphQL::Types::ISO8601DateTime, null: false end end diff --git a/app/graphql/types/mutation_type.rb b/app/graphql/types/mutation_type.rb index 69c2747bc..0629d6a63 100644 --- a/app/graphql/types/mutation_type.rb +++ b/app/graphql/types/mutation_type.rb @@ -2,11 +2,11 @@ module Types class MutationType < Types::BaseObject - field :test_field, String, null: false, - description: 'An example field added by the generator' + # field :test_field, String, null: false, + # description: 'An example field added by the generator' - def test_field - 'Hello World' - end + # def test_field + # 'Hello World' + # end end end diff --git a/app/graphql/types/release_type.rb b/app/graphql/types/release_type.rb index d8f6c4c8b..e8428a703 100644 --- a/app/graphql/types/release_type.rb +++ b/app/graphql/types/release_type.rb @@ -4,7 +4,7 @@ module Types class ReleaseType < Types::BaseObject description 'App 的版本列表' - field :id, Int, null: false + field :id, ID, null: false field :version, Int, null: false field :release_version, String, null: false field :build_version, String, null: false diff --git a/app/graphql/types/user_type.rb b/app/graphql/types/user_type.rb index e8558b9c6..50298bc9b 100644 --- a/app/graphql/types/user_type.rb +++ b/app/graphql/types/user_type.rb @@ -2,10 +2,10 @@ module Types class UserType < Types::BaseObject - field :id, Int, null: false + field :id, ID, null: false field :username, String, null: true field :email, String, null: false field :token, String, null: false - field :created_at, Time, null: false + field :created_at, GraphQL::Types::ISO8601DateTime, null: false end end diff --git a/config/routes.rb b/config/routes.rb index 279d8e590..0724e32a2 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -168,14 +168,13 @@ ############################################# post '/graphql', to: 'graphql#execute' - if Rails.env.development? - mount GraphiQL::Rails::Engine, at: "/graphiql", graphql_path: "/graphql" - end - ############################################# # Development Only ############################################# - mount LetterOpenerWeb::Engine, at: '/inbox' if Rails.env.development? + if Rails.env.development? + mount LetterOpenerWeb::Engine, at: '/inbox' + mount GraphiQL::Rails::Engine, at: "/graphiql", graphql_path: "/graphql" + end match '/', via: [:post, :put, :patch, :delete], to: 'application#raise_not_found', format: false match '*unmatched_route', via: :all, to: 'application#raise_not_found', format: false diff --git a/lib/puma_control_client.rb b/lib/puma_control_client.rb index 0c138164b..40a96cc6d 100644 --- a/lib/puma_control_client.rb +++ b/lib/puma_control_client.rb @@ -4,8 +4,8 @@ class PumaControlClient def initialize(url = nil, token: nil) - @uri ||= ENV['PUMA_CONTROL_URL'] - @token ||= ENV['PUMA_CONTROL_URL_TOKEN'] { 'none' } + @uri ||= ENV['PUMA_CONTROL_URL'] { '0.0.0.0:9293' } + @token ||= ENV['PUMA_CONTROL_URL_TOKEN'] { 'zealot' } end def stats From 63423d2edb83cd369a63871a3babbc0bc4ac8881 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 3 Dec 2021 15:48:18 +0800 Subject: [PATCH 0783/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=9F=9F?= =?UTF-8?q?=E5=90=8D=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/setting.rb | 16 ++++++++++------ app/views/layouts/mailer.html.slim | 2 +- config/environments/development.rb | 6 ------ config/environments/production.rb | 28 ---------------------------- config/initializers/0_hosts.rb | 4 ++++ 5 files changed, 15 insertions(+), 41 deletions(-) diff --git a/app/models/setting.rb b/app/models/setting.rb index ec087d5c8..3fe463ca1 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -33,10 +33,6 @@ def site_https Rails.env.production? || ENV['ZEALOT_USE_HTTPS'].present? end - def site_host - site_https ? 'localhost' : "localhost:#{ENV['ZEALOT_PORT'] || 3000}" - end - def site_configs group_configs.each_with_object({}) do |(scope, items), obj| obj[scope] = items.each_with_object({}) do |item, inner| @@ -70,13 +66,17 @@ def group_configs defined_fields.select { |v| v[:options][:display] == true }.group_by { |v| v[:scope] || :misc } end + def host + "#{protocol}#{site_domain}" + end + def protocol site_https ? 'https://' : 'http://' end def url_options { - host: site_host, + host: site_domain, protocol: protocol, trailing_slash: false } @@ -85,13 +85,17 @@ def url_options def repo_url REPO_URL end + + def default_domain + site_https ? 'localhost' : "localhost:#{ENV['ZEALOT_PORT'] || 3000}" + end end # 系统配置 scope :general do field :site_title, default: 'Zealot', type: :string, display: true, validates: { presence: true, length: { in: 3..16 } } - field :site_domain, default: (ENV['ZEALOT_DOMAIN'] || site_host), type: :string, + field :site_domain, default: (ENV['ZEALOT_DOMAIN'] || default_domain), type: :string, restart_required: true, display: true field :site_locale, default: Rails.configuration.i18n.default_locale.to_s, type: :string, display: true, validates: { presence: true, inclusion: { in: Rails.configuration.i18n.available_locales.map(&:to_s) } } diff --git a/app/views/layouts/mailer.html.slim b/app/views/layouts/mailer.html.slim index 0fecfc534..700f8c92e 100644 --- a/app/views/layouts/mailer.html.slim +++ b/app/views/layouts/mailer.html.slim @@ -17,6 +17,6 @@ html .col.align-self-center.mt-5 .card.card-outline.card-primary .card-header.text-center - = link_to Setting.site_title, Setting.site_host, class: 'h1' + = link_to Setting.site_title, Setting.site_domain, class: 'h1' .card-body = yield \ No newline at end of file diff --git a/config/environments/development.rb b/config/environments/development.rb index f248db30e..dc703bc99 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require_relative '../../app/models/setting' - Rails.application.configure do # Settings specified here will take precedence over those in config/application.rb. @@ -78,10 +76,6 @@ # routes, locales, etc. This feature depends on the listen gem. config.file_watcher = ActiveSupport::EventedFileUpdateChecker - config.action_cable.allowed_request_origins = [ - /http(s)?:\/\/#{Setting.site_host}/ - ] - if ENV['TRUST_IP'] config.web_console.permissions = ENV['TRUST_IP'] diff --git a/config/environments/production.rb b/config/environments/production.rb index 5f01198ee..9226bc64f 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -1,7 +1,5 @@ # frozen_string_literal: true -require_relative '../../app/models/setting' - Rails.application.configure do # Settings specified here will take precedence over those in config/application.rb. @@ -28,32 +26,14 @@ # Apache or NGINX already handles this. config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present? - # Compress CSS using a preprocessor. - # config.assets.css_compressor = :sass - - # Compress JavaScripts and CSS. - # config.assets.js_compressor = :uglifier - # Do not fallback to assets pipeline if a precompiled asset is missed. config.assets.compile = false # Specifies the header that your server uses for sending files. if ENV['RAILS_SERVE_STATIC_FILES'].blank? - # config.action_dispatch.x_sendfile_header = 'X-Sendfile' # for Apache config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX end - # Store uploaded files on the local file system - # (see config/storage.yml for options) - # config.active_storage.service = :local - - # Mount Action Cable outside main process or domain - # config.action_cable.mount_path = nil - # config.action_cable.url = 'wss://example.com/cable' - config.action_cable.allowed_request_origins = [ - /http(s)?:\/\/#{Setting.site_host}/ - ] - # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies. # config.force_ssl = true @@ -69,7 +49,6 @@ # Ignore bad email addresses and do not raise email delivery errors. # Set this to true and configure the email server for immediate delivery to raise delivery errors. config.action_mailer.raise_delivery_errors = false - # config.action_mailer.default_url_options = { host: Setting.site_host } # Send deprecation notices to registered listeners. config.active_support.deprecation = :notify @@ -105,11 +84,4 @@ enable_starttls_auto: ENV['SMTP_ENABLE_STARTTLS_AUTO'] || true, openssl_verify_mode: ENV['SMTP_OPENSSL_VERIFY_MODE'], } - - config.action_dispatch.default_headers = { - 'Server' => 'Zealot', - 'X-Frame-Options' => 'sameorigin', - 'X-Content-Type-Options' => 'nosniff', - 'X-XSS-Protection' => '1; mode=block', - } end diff --git a/config/initializers/0_hosts.rb b/config/initializers/0_hosts.rb index 2657ba9f4..cfeb64742 100644 --- a/config/initializers/0_hosts.rb +++ b/config/initializers/0_hosts.rb @@ -5,6 +5,10 @@ Rails.application.configure do config.action_mailer.default_url_options = url_options + + config.action_cable.allowed_request_origins = [ + /http(s)?:\/\/#{Setting.site_domain}/ + ] end Rails.application.routes.default_url_options = url_options From 1019de9bf8cdf0dca41b4dea5d43b2c7fec240b5 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 3 Dec 2021 17:45:16 +0800 Subject: [PATCH 0784/2165] =?UTF-8?q?feat:=20=E6=BC=94=E7=A4=BA=E6=A8=A1?= =?UTF-8?q?=E5=BC=8F=E6=94=AF=E6=8C=81=E6=98=BE=E7=A4=BA=E4=B8=80=E4=BA=9B?= =?UTF-8?q?=E5=AF=86=E9=92=A5=E7=B1=BB=E7=9A=84=E9=85=8D=E7=BD=AE=E4=BD=86?= =?UTF-8?q?=E4=BC=9A=E4=BB=8E=E5=AE=89=E5=85=A8=E5=B1=82=E9=9D=A2=E5=81=9A?= =?UTF-8?q?=E9=99=90=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/admin/settings_controller.rb | 6 ++- .../admin/system_info_controller.rb | 24 +---------- app/helpers/admin_helper.rb | 41 +++++++++++++++++++ app/helpers/application_helper.rb | 4 ++ app/models/setting.rb | 9 +--- app/views/admin/settings/index.html.slim | 9 ++-- app/views/admin/system_info/index.html.slim | 2 +- config/locales/zealot/en.yml | 3 +- config/locales/zealot/zh-CN.yml | 13 +++--- 9 files changed, 69 insertions(+), 42 deletions(-) create mode 100644 app/helpers/admin_helper.rb diff --git a/app/controllers/admin/settings_controller.rb b/app/controllers/admin/settings_controller.rb index 73eb8d624..c6c8da5c0 100644 --- a/app/controllers/admin/settings_controller.rb +++ b/app/controllers/admin/settings_controller.rb @@ -50,6 +50,10 @@ def setting_param end def verify_editable_setting - raise Pundit::NotAuthorizedError, t('admin.settings.no_editable_key') if @setting.readonly? === true + readonly = @setting.readonly? === true + demo_guest_with_secure_key = @setting.value.is_a?(Hash) && helpers.secure_key?(@setting.value) + if readonly || demo_guest_with_secure_key + raise Pundit::NotAuthorizedError.new({ query: :edit, record: @setting}) + end end end diff --git a/app/controllers/admin/system_info_controller.rb b/app/controllers/admin/system_info_controller.rb index dbc4d9d89..90739e3b5 100644 --- a/app/controllers/admin/system_info_controller.rb +++ b/app/controllers/admin/system_info_controller.rb @@ -79,9 +79,7 @@ def set_file_permissions end def set_env - @env = ENV.each_with_object({}) do |(key, value), obj| - obj[key] = secure_key?(key) ? filtered_token(value) : value - end.sort + @env = ENV.sort end def set_gems @@ -165,26 +163,6 @@ def diskspace @diskspace = nil end - def secure_key?(key) - Rails.application - .config - .filter_parameters - .select { |p| key.downcase.include?(p.to_s) } - .size - .positive? - end - - def filtered_token(chars) - chars = chars.to_s - return '*' * chars.size if chars.size < 4 - - average = chars.size / 4 - prefix = chars[0..average - 1] - hidden = '*' * (average * 2) - suffix = chars[(prefix.size + average * 2)..-1] - "#{prefix}#{hidden}#{suffix}" - end - def percent(value, n) value.to_f / n.to_f * 100.0 end diff --git a/app/helpers/admin_helper.rb b/app/helpers/admin_helper.rb new file mode 100644 index 000000000..3b117e29b --- /dev/null +++ b/app/helpers/admin_helper.rb @@ -0,0 +1,41 @@ +# frozen_string_literal: true + +module AdminHelper + def pretty_json(data) + new_data = data.each_with_object({}) do |(key, value), obj| + obj[key] = secure_value(key, value) + end + + JSON.pretty_generate(new_data) + end + + def secure_key?(data) + demo_mode? && data.keys.select {|k| secure?(k) }.any? + end + + def secure_value(key, value) + (secure?(key) && demo_mode?) ? filtered_token(value) : value + end + + private + + def secure?(key) + Rails.application + .config + .filter_parameters + .select { |p| key.downcase.include?(p.to_s) } + .size + .positive? + end + + def filtered_token(chars) + chars = chars.to_s + return '*' * chars.size if chars.size < 4 + + average = chars.size / 4 + prefix = chars[0..average - 1] + hidden = '*' * (average * 2) + suffix = chars[(prefix.size + average * 2)..-1] + "#{prefix}#{hidden}#{suffix}" + end +end \ No newline at end of file diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 24b72ce34..39bf847a6 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -25,6 +25,10 @@ def user_signed_in_or_guest_mode? user_signed_in? || (Setting.guest_mode && !devise_page?) end + def demo_mode? + Setting.demo_mode + end + def devise_page? contoller_name = params[:controller] contoller_name.start_with?('devise/') || contoller_name == 'users/registrations' diff --git a/app/models/setting.rb b/app/models/setting.rb index 3fe463ca1..394ef1f60 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -118,6 +118,8 @@ def default_domain type: :boolean, display: true field :guest_mode, default: ActiveModel::Type::Boolean.new.cast(ENV['ZEALOT_GUEST_MODE'] || 'false'), type: :boolean, restart_required: true, display: true + field :keep_uploads, default: ActiveModel::Type::Boolean.new.cast(ENV['ZEALOT_KEEP_UPLOADS'] || 'true'), + type: :boolean, restart_required: true, display: true field :demo_mode, default: ActiveModel::Type::Boolean.new.cast(ENV['ZEALOT_DEMO_MODE'] || 'false'), type: :boolean, readonly: true, display: true end @@ -180,13 +182,6 @@ def default_domain pg_schema: 'public', } - # 杂项 - scope :misc do - # 上传文件保留策略 - field :keep_uploads, default: ActiveModel::Type::Boolean.new.cast(ENV['ZEALOT_KEEP_UPLOADS'] || 'true'), - type: :boolean, restart_required: true, display: true - end - # 版本信息(只读) scope :information do field :version, default: (ENV['ZEALOT_VERSION'] || 'development'), type: :string, readonly: true diff --git a/app/views/admin/settings/index.html.slim b/app/views/admin/settings/index.html.slim index 11c26a191..5db308c9b 100644 --- a/app/views/admin/settings/index.html.slim +++ b/app/views/admin/settings/index.html.slim @@ -34,7 +34,7 @@ form.form-horizontal display_value = case value when Hash - JSON.pretty_generate(value) + pretty_json(value) when Array value.join(', ') when TrueClass @@ -47,7 +47,10 @@ form.form-horizontal dl.system-info dt = t("admin.settings.#{key}") dd - - if params[:readonly] + - if params[:readonly] || (value.is_a?(Hash) && secure_key?(value)) pre.disabled = display_value - else - pre = link_to display_value, edit_admin_setting_path(key) \ No newline at end of file + pre = link_to display_value, edit_admin_setting_path(key) + + - if key == 'demo_mode' + small = t('admin.settings.demo_mode_tips') \ No newline at end of file diff --git a/app/views/admin/system_info/index.html.slim b/app/views/admin/system_info/index.html.slim index 538656ab9..bb0c05a18 100644 --- a/app/views/admin/system_info/index.html.slim +++ b/app/views/admin/system_info/index.html.slim @@ -110,7 +110,7 @@ dt = key dd pre - = value + = secure_value(key, value) .card.collapsed-card .card-header diff --git a/config/locales/zealot/en.yml b/config/locales/zealot/en.yml index c56df337c..453d9968f 100644 --- a/config/locales/zealot/en.yml +++ b/config/locales/zealot/en.yml @@ -72,7 +72,8 @@ en: switch_mode: Switch mode registrations_mode: Registrations mode guest_mode: Guest mode - demo_mode: Demo mode (Reset data daily) + demo_mode: Demo mode + demo_mode_tips: 'Enable demo mode will: RESET data daily, CAN NOT destroy or edit default admin user profile, Filtered secure key and read only' third_party_auth: Third pary auth ldap: LDAP diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index 48044c06d..d03861913 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -65,14 +65,15 @@ zh-CN: site_locale: 网站语言 site_domain: 网站域名 - presets: 默认值 + presets: 预设值 default_schemes: 应用类型模板 - default_role: 初始化权限 + default_role: 新用户权限 switch_mode: 模式开关 registrations_mode: 注册模式 - guest_mode: 开启游客模式 - demo_mode: 演示模式(定时恢复默认数据) + guest_mode: 游客模式 + demo_mode: 演示模式 + demo_mode_tips: 开启演示模式会触发:每天定时恢复默认数据;无法编辑或删除默认管理员;隐私数据会安全化显示且无法编辑 third_party_auth: 第三方登录 ldap: LDAP @@ -80,8 +81,8 @@ zh-CN: gitlab: Gitlab google_oauth: Google OAuth - backup: 备份 - misc: 杂项 + # backup: 备份 + # misc: 杂项 stmp: 邮件配置 mailer_default_from: 默认邮件发件地址 From 765bdd9dea3d7b0591c5d6beb64309880b460370 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 3 Dec 2021 18:52:18 +0800 Subject: [PATCH 0785/2165] =?UTF-8?q?fix:=20=E6=A3=80=E6=9F=A5=E5=8F=98?= =?UTF-8?q?=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/admin_helper.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/helpers/admin_helper.rb b/app/helpers/admin_helper.rb index 3b117e29b..f3421c8eb 100644 --- a/app/helpers/admin_helper.rb +++ b/app/helpers/admin_helper.rb @@ -23,7 +23,7 @@ def secure?(key) Rails.application .config .filter_parameters - .select { |p| key.downcase.include?(p.to_s) } + .select { |p| key.to_s.downcase.include?(p.to_s) } .size .positive? end From f8b7a055a4f13e89a8639d065243a563d88c0aa6 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 3 Dec 2021 19:06:50 +0800 Subject: [PATCH 0786/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=A0=B7?= =?UTF-8?q?=E4=BE=8B=E4=BB=A3=E7=A0=81=E5=88=9B=E5=BB=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/services/create_sample_apps_service.rb | 23 +++++++++++----------- db/seeds.rb | 1 + 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/app/services/create_sample_apps_service.rb b/app/services/create_sample_apps_service.rb index 742b4dad1..d7f67be89 100644 --- a/app/services/create_sample_apps_service.rb +++ b/app/services/create_sample_apps_service.rb @@ -86,17 +86,18 @@ def android_channels_app(user) end def generate_release(channel, app_bundle_id, release_type, changelog) - release = channel.releases.new - release.bundle_id = app_bundle_id - release.release_version = '1.0.0' - release.build_version = '1' - release.release_type = release_type - release.source = 'API' - release.branch = 'develop' - release.device_type = channel.device_type - release.git_commit = SecureRandom.hex - release.changelog = changelog - release.save validate: false + Release.new( + channel: channel, + bundle_id: app_bundle_id, + release_version: '1.0.0', + build_version: '1', + release_type: release_type, + source: 'API', + branch: 'develop', + device_type: channel.device_type, + git_commit: SecureRandom.hex, + changelog: changelog + ).save(validate: false) end def create_app(name, user) diff --git a/db/seeds.rb b/db/seeds.rb index 01cd02d30..101ae697e 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -11,3 +11,4 @@ puts 'CREATED ADMIN USER: ' << user.email CreateSampleAppsService.new.call(user) +puts 'CREATED EXAMPLE APPS' \ No newline at end of file From 42273dd292eaba32a6dea22b942b3bcfd34301e3 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 3 Dec 2021 19:22:46 +0800 Subject: [PATCH 0787/2165] =?UTF-8?q?fix:=20=E6=BC=94=E7=A4=BA=E6=A8=A1?= =?UTF-8?q?=E5=BC=8F=E7=9A=84=E5=BC=82=E6=AD=A5=E4=BB=BB=E5=8A=A1=E6=89=A7?= =?UTF-8?q?=E8=A1=8C=E6=97=B6=E8=87=AA=E8=BA=AB=E4=B9=9F=E9=87=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/jobs/reset_for_demo_mode_job.rb | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/app/jobs/reset_for_demo_mode_job.rb b/app/jobs/reset_for_demo_mode_job.rb index d8aa5a523..02d410389 100644 --- a/app/jobs/reset_for_demo_mode_job.rb +++ b/app/jobs/reset_for_demo_mode_job.rb @@ -13,6 +13,7 @@ def perform clean_apps clean_users + reset_jobs init_demo_data end @@ -32,6 +33,14 @@ def clean_users end end + def reset_jobs + require 'sidekiq/api' + + Sidekiq::RetrySet.new.clear + Sidekiq::DeadSet.new.clear + Sidekiq::Stats.new.reset + end + def init_demo_data user = CreateAdminService.new.call CreateSampleAppsService.new.call(user) From 22676f848dcbc7c151eeda22732a673398a9ceb6 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 3 Dec 2021 19:35:52 +0800 Subject: [PATCH 0788/2165] =?UTF-8?q?feat:=20=E7=89=88=E6=9C=AC=20commit?= =?UTF-8?q?=20=E4=BC=9A=E4=BB=8E=20heroku=20=E8=8E=B7=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/setting.rb | 2 +- config/environments/production.rb | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/app/models/setting.rb b/app/models/setting.rb index 394ef1f60..bf2d90ebb 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -185,7 +185,7 @@ def default_domain # 版本信息(只读) scope :information do field :version, default: (ENV['ZEALOT_VERSION'] || 'development'), type: :string, readonly: true - field :vcs_ref, default: (ENV['ZEALOT_VCS_REF']), type: :string, readonly: true + field :vcs_ref, default: (ENV['ZEALOT_VCS_REF'] || ENV['HEROKU_SLUG_COMMIT']), type: :string, readonly: true field :build_date, default: ENV['ZEALOT_BUILD_DATE'], type: :string, readonly: true end diff --git a/config/environments/production.rb b/config/environments/production.rb index 9226bc64f..129def12e 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -84,4 +84,11 @@ enable_starttls_auto: ENV['SMTP_ENABLE_STARTTLS_AUTO'] || true, openssl_verify_mode: ENV['SMTP_OPENSSL_VERIFY_MODE'], } + + config.action_dispatch.default_headers = { + 'Server' => 'Zealot', + 'X-Frame-Options' => 'sameorigin', + 'X-Content-Type-Options' => 'nosniff', + 'X-XSS-Protection' => '1; mode=block', + } end From 9d6b26cf5361432c25f62be74be1c5c8b9958179 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 3 Dec 2021 21:02:32 +0000 Subject: [PATCH 0789/2165] chore(deps-dev): bump webpack-dev-server from 3.11.2 to 3.11.3 Bumps [webpack-dev-server](https://github.com/webpack/webpack-dev-server) from 3.11.2 to 3.11.3. - [Release notes](https://github.com/webpack/webpack-dev-server/releases) - [Changelog](https://github.com/webpack/webpack-dev-server/blob/v3.11.3/CHANGELOG.md) - [Commits](https://github.com/webpack/webpack-dev-server/compare/v3.11.2...v3.11.3) --- updated-dependencies: - dependency-name: webpack-dev-server dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index 6dbc572fb..70b09f329 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "turbolinks": "^5.2.0" }, "devDependencies": { - "webpack-dev-server": "^3.11.2" + "webpack-dev-server": "^3.11.3" }, "version": "4.2.2" } diff --git a/yarn.lock b/yarn.lock index 6fb99312a..6f54000a0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1449,10 +1449,10 @@ ansi-colors@^3.0.0: resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== -ansi-html@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" - integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4= +ansi-html-community@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/ansi-html-community/-/ansi-html-community-0.0.8.tgz#69fbc4d6ccbe383f9736934ae34c3f8290f1bf41" + integrity sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw== ansi-regex@^2.0.0: version "2.1.1" @@ -8078,12 +8078,12 @@ webpack-dev-middleware@^3.7.2: range-parser "^1.2.1" webpack-log "^2.0.0" -webpack-dev-server@^3.11.2: - version "3.11.2" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.2.tgz#695ebced76a4929f0d5de7fd73fafe185fe33708" - integrity sha512-A80BkuHRQfCiNtGBS1EMf2ChTUs0x+B3wGDFmOeT4rmJOHhHTCH2naNxIHhmkr0/UillP4U3yeIyv1pNp+QDLQ== +webpack-dev-server@^3.11.3: + version "3.11.3" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.11.3.tgz#8c86b9d2812bf135d3c9bce6f07b718e30f7c3d3" + integrity sha512-3x31rjbEQWKMNzacUZRE6wXvUFuGpH7vr0lIEbYpMAG9BOxi0928QU1BBswOAP3kg3H1O4hiS+sq4YyAn6ANnA== dependencies: - ansi-html "0.0.7" + ansi-html-community "0.0.8" bonjour "^3.5.0" chokidar "^2.1.8" compression "^1.7.4" From 76d7846dd99a4017796f64bb87d20d237da2782d Mon Sep 17 00:00:00 2001 From: icyleaf Date: Sat, 4 Dec 2021 06:21:12 +0000 Subject: [PATCH 0790/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=20puma=20?= =?UTF-8?q?=E9=BB=98=E8=AE=A4=E5=8F=98=E9=87=8F=E6=B2=A1=E6=9C=89=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E6=88=90=E5=8A=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/puma_control_client.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/puma_control_client.rb b/lib/puma_control_client.rb index 40a96cc6d..ec875f66a 100644 --- a/lib/puma_control_client.rb +++ b/lib/puma_control_client.rb @@ -4,8 +4,8 @@ class PumaControlClient def initialize(url = nil, token: nil) - @uri ||= ENV['PUMA_CONTROL_URL'] { '0.0.0.0:9293' } - @token ||= ENV['PUMA_CONTROL_URL_TOKEN'] { 'zealot' } + @uri ||= ENV.fetch('PUMA_CONTROL_URL') { '0.0.0.0:9293' } + @token ||= ENV.fetch('PUMA_CONTROL_URL_TOKEN') { 'zealot' } end def stats From 0bea8b41a7f20f344a07f051bf4f92a1ded29448 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Sat, 4 Dec 2021 06:32:27 +0000 Subject: [PATCH 0791/2165] =?UTF-8?q?fix:=20=E9=87=8D=E5=90=AF=E5=A4=B1?= =?UTF-8?q?=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/javascript/javascripts/admin/service.js | 23 ++++++++++++++++----- app/javascript/packs/application.js | 2 ++ yarn.lock | 6 +++--- 3 files changed, 23 insertions(+), 8 deletions(-) diff --git a/app/javascript/javascripts/admin/service.js b/app/javascript/javascripts/admin/service.js index 2845e2886..a5a79b56c 100644 --- a/app/javascript/javascripts/admin/service.js +++ b/app/javascript/javascripts/admin/service.js @@ -1,12 +1,18 @@ function restarting() { - fetch("/admin/service/restart", { - method: "POST" - }); + try { + fetch(window.HOST + "admin/service/restart", { + method: "POST" + }); + + return true; + } catch (error) { + return false; + } } function isOnline() { try { - fetch("/admin/service/status", { + fetch(window.HOST + "admin/service/status", { method: "GET" }); return true; @@ -21,14 +27,21 @@ function sleep(ms) { export async function restartService(button) { $("#notifications").fadeOut(); + var orinalText = $(button).html(); var restartingText = $(button).data("restart-text"); var restartedText = $(button).data("restarted-text"); $(button).html("" + restartingText); var serverRestarting = true; - await restarting(); + var restart_success = await restarting(); + console.debug(restart_success ? 'success' : 'fail'); await sleep(2000); + if (!restart_success) { + console.error('Error restarted'); + $(button).html(orinalText); + return false; + } do { var online = await isOnline(); diff --git a/app/javascript/packs/application.js b/app/javascript/packs/application.js index 42a456b76..4e4ea8240 100644 --- a/app/javascript/packs/application.js +++ b/app/javascript/packs/application.js @@ -16,6 +16,8 @@ const images = require.context("../images", true); const imagePath = (name) => images(name, true); const HOST = location.protocol + "//" + location.hostname + (location.port ? ":" + location.port : "") + "/"; +window.HOST = HOST; + // Import Rails import Rails from "@rails/ujs"; import Turbolinks from "turbolinks"; diff --git a/yarn.lock b/yarn.lock index 6fb99312a..0b8183509 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2131,9 +2131,9 @@ caniuse-api@^3.0.0: lodash.uniq "^4.5.0" caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000981, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001219, caniuse-lite@^1.0.30001251: - version "1.0.30001283" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001283.tgz" - integrity sha512-9RoKo841j1GQFSJz/nCXOj0sD7tHBtlowjYlrqIUS812x9/emfBLBt6IyMz1zIaYc/eRL8Cs6HPUVi2Hzq4sIg== + version "1.0.30001284" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001284.tgz" + integrity sha512-t28SKa7g6kiIQi6NHeOcKrOrGMzCRrXvlasPwWC26TH2QNdglgzQIRUuJ0cR3NeQPH+5jpuveeeSFDLm2zbkEw== case-sensitive-paths-webpack-plugin@^2.4.0: version "2.4.0" From 09aca9a33769b5ab9d93a4f4e0568b1730d572b0 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Sat, 4 Dec 2021 06:35:03 +0000 Subject: [PATCH 0792/2165] =?UTF-8?q?fix:=20=E9=87=8D=E7=BD=AE=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=8A=8A=E5=A4=B1=E8=B4=A5=E9=87=8D=E8=AF=95=E7=9A=84?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E4=B9=9F=E6=B8=85=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/jobs/reset_for_demo_mode_job.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/jobs/reset_for_demo_mode_job.rb b/app/jobs/reset_for_demo_mode_job.rb index 02d410389..732745171 100644 --- a/app/jobs/reset_for_demo_mode_job.rb +++ b/app/jobs/reset_for_demo_mode_job.rb @@ -13,8 +13,8 @@ def perform clean_apps clean_users - reset_jobs init_demo_data + reset_jobs end private @@ -38,6 +38,7 @@ def reset_jobs Sidekiq::RetrySet.new.clear Sidekiq::DeadSet.new.clear + Sidekiq::FailureSet.new.clear Sidekiq::Stats.new.reset end From 53410f1ba713af60de2d62e485f9db771ba5660e Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 7 Dec 2021 11:26:05 +0800 Subject: [PATCH 0793/2165] =?UTF-8?q?feat:=20=E9=87=8D=E7=BD=AE=E6=BC=94?= =?UTF-8?q?=E7=A4=BA=E4=BB=BB=E5=8A=A1=E8=A1=A5=E5=85=A8=E5=85=B6=E4=BB=96?= =?UTF-8?q?=E5=BA=94=E7=94=A8=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/jobs/reset_for_demo_mode_job.rb | 23 +++++++++-------------- 1 file changed, 9 insertions(+), 14 deletions(-) diff --git a/app/jobs/reset_for_demo_mode_job.rb b/app/jobs/reset_for_demo_mode_job.rb index 732745171..3a5f1f826 100644 --- a/app/jobs/reset_for_demo_mode_job.rb +++ b/app/jobs/reset_for_demo_mode_job.rb @@ -11,8 +11,7 @@ def perform return end - clean_apps - clean_users + clean_app_data init_demo_data reset_jobs end @@ -20,25 +19,21 @@ def perform private def clean_apps - apps = App.all - apps.each do |app| - app.destroy - end - end - - def clean_users - users = User.all - users.each do |user| - user.destroy - end + App.delete_all + DebugFile.delete_all + Metadatum.delete_all + WebHook.delete_all + Setting.delete_all + User.delete_all end def reset_jobs require 'sidekiq/api' + require 'sidekiq/failures/failure_set' + Sidekiq::Failures::FailureSet.new.clear Sidekiq::RetrySet.new.clear Sidekiq::DeadSet.new.clear - Sidekiq::FailureSet.new.clear Sidekiq::Stats.new.reset end From c864de38e3f42a1070a7be771f93abc9295287e8 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 7 Dec 2021 13:46:25 +0800 Subject: [PATCH 0794/2165] cleanup --- config/application.rb | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/config/application.rb b/config/application.rb index db1c5cec4..6aedd9aa2 100644 --- a/config/application.rb +++ b/config/application.rb @@ -33,7 +33,7 @@ class Application < Rails::Application # Set default locale locale = ENV['DEFAULT_LOCALE']&.to_sym config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}')] - config.i18n.available_locales = [:'zh-CN', :en] + config.i18n.available_locales = %i[zh-CN en] config.i18n.default_locale = config.i18n.available_locales.include?(locale) ? locale : :'zh-CN' # Enable locale fallbacks for I18n (makes lookups for any locale fall back to @@ -52,7 +52,6 @@ class Application < Rails::Application } # Set Sidekiq as the back-end for Active Job. - # Sidekiq not suggest to use perfix: https://github.com/mperham/sidekiq/issues/4034#issuecomment-442988685 config.active_job.queue_adapter = :sidekiq # Action Cable setting to de-couple it from the main Rails process. @@ -70,9 +69,6 @@ class Application < Rails::Application # config.assets.enabled = false # config.assets.compile = false - # Use a real queuing backend for Active Job (and separate queues per environment) - config.active_job.queue_adapter = :sidekiq - # Settings in config/environments/* take precedence over those specified here. # Application configuration can go into files in config/initializers # -- all .rb files in that directory are automatically loaded after loading @@ -90,8 +86,5 @@ class Application < Rails::Application # Disable yarn check(this must disable with docker) # config.webpacker.check_yarn_integrity = false - - # Manage exception page - # config.exceptions_app = self.routes end end From 8d3529b133b2eaa61c14b9da3251f31806e6de65 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 6 Dec 2021 12:17:17 +0800 Subject: [PATCH 0795/2165] =?UTF-8?q?feat:=20=E6=9B=B4=E5=A5=BD=E7=9A=84?= =?UTF-8?q?=E6=97=A5=E5=BF=97=E8=BE=93=E5=87=BA=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 3 + Gemfile.lock | 8 +++ app/controllers/api/version_controller.rb | 12 ++++ config/environments/production.rb | 25 ++------- config/initializers/1_lograge.rb | 67 +++++++++++++++++++++++ config/routes.rb | 4 +- 6 files changed, 96 insertions(+), 23 deletions(-) create mode 100644 app/controllers/api/version_controller.rb create mode 100644 config/initializers/1_lograge.rb diff --git a/Gemfile b/Gemfile index 155d52aed..034d3fe55 100644 --- a/Gemfile +++ b/Gemfile @@ -13,6 +13,9 @@ gem 'rake', '~> 13.0.4' gem 'pg', '>= 0.18', '< 2.0' gem 'redis', '~> 4.5.1' +# Logger +gem 'lograge', '~> 0.11.2' + # API gem 'active_model_serializers', '~> 0.10.12' gem 'graphql', '~> 1.13.0' diff --git a/Gemfile.lock b/Gemfile.lock index 8962c1c0b..d2e138eac 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -264,6 +264,11 @@ GEM llhttp-ffi (0.4.0) ffi-compiler (~> 1.0) rake (~> 13.0) + lograge (0.11.2) + actionpack (>= 4) + activesupport (>= 4) + railties (>= 4) + request_store (~> 1.0) loofah (2.12.0) crass (~> 1.0.2) nokogiri (>= 1.5.9) @@ -387,6 +392,8 @@ GEM ffi (~> 1.0) redis (4.5.1) regexp_parser (2.1.1) + request_store (1.5.0) + rack (>= 1.4) responders (3.0.1) actionpack (>= 5.0) railties (>= 5.0) @@ -550,6 +557,7 @@ DEPENDENCIES letter_opener (~> 1.7) letter_opener_web (~> 2.0) listen (>= 3.0.5, < 3.8) + lograge (~> 0.11.2) omniauth (~> 1.9) omniauth-feishu (~> 0.1.6) omniauth-gitlab (~> 2.0.0) diff --git a/app/controllers/api/version_controller.rb b/app/controllers/api/version_controller.rb new file mode 100644 index 000000000..e5f42e5c2 --- /dev/null +++ b/app/controllers/api/version_controller.rb @@ -0,0 +1,12 @@ +# frozen_string_literal: true + +class Api::VersionController < Api::BaseController + # GET /version + def index + render json: { + version: Setting.version, + vcs_ref: Setting.vcs_ref, + build_date: Setting.build_date + } + end +end diff --git a/config/environments/production.rb b/config/environments/production.rb index 129def12e..9ed28d698 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -37,13 +37,6 @@ # Force all access to the app over SSL, use Strict-Transport-Security, and use secure cookies. # config.force_ssl = true - # Use the lowest log level to ensure availability of diagnostic information - # when problems arise. - config.log_level = ENV.fetch('RAILS_LOG_LEVEL', 'info').to_sym - - # Prepend all log lines with the following tags. - config.log_tags = %i[subdomain request_id] - config.action_mailer.perform_caching = false # Ignore bad email addresses and do not raise email delivery errors. @@ -53,20 +46,12 @@ # Send deprecation notices to registered listeners. config.active_support.deprecation = :notify - # Use default logging formatter so that PID and timestamp are not suppressed. - config.log_formatter = ::Logger::Formatter.new - - # Log to STDOUT because Docker expects all processes to log here. You could - # the framework and any gems in your application. - # or a third party host such as Loggly, etc.. - ActiveSupport::Logger.new(STDOUT).tap do |logger| - logger.formatter = config.log_formatter - config.logger = ActiveSupport::TaggedLogging.new(logger) - end + # Prepend all log lines with the following tags. + config.log_tags = %i[request_id] - # Use a different logger for distributed setups. - # require 'syslog/logger' - # config.logger = ActiveSupport::TaggedLogging.new(Syslog::Logger.new 'orats') + # Use the lowest log level to ensure availability of diagnostic information + # when problems arise. + config.log_level = ENV.fetch('RAILS_LOG_LEVEL', 'info').to_sym # Do not dump schema after migrations. config.active_record.dump_schema_after_migration = false diff --git a/config/initializers/1_lograge.rb b/config/initializers/1_lograge.rb new file mode 100644 index 000000000..6b59abb95 --- /dev/null +++ b/config/initializers/1_lograge.rb @@ -0,0 +1,67 @@ +# frozen_string_literal: true + +if Rails.env.production? + def fetch_ip(controller) + controller.request.remote_ip + rescue ActionDispatch::RemoteIp::IpSpoofAttackError + nil + end + + def fetch_username(controller) + controller&.current_user&.username || 'guest' + end + + def api_payload(controller) + { + ip: fetch_ip(controller), + token: controller.request.params[:token], + channel_key: controller.request.params[:channel_key] + } + end + + def page_payload(controller) + { + ip: fetch_ip(controller), + username: fetch_username(controller) + } + end + + def custom_payload(controller) + controller.kind_of?(ActionController::API) ? api_payload(controller) : page_payload(controller) + rescue => e + Rails.logger.warn("Failed to append custom payload: #{e.message}\n#{e.backtrace.join("\n")}") + {} + end + + Rails.application.configure do + # Better log formatting + config.lograge.enabled = true + + config.lograge.custom_payload do |controller| + custom_payload(controller) + end + + config.lograge.custom_options = lambda do |event| + options = {} + if exception = event.payload[:exception] + options[:exception] = exception + end + + if exception_object = event.payload[:exception_object] + options[:exception_object] = exception_object + end + options + end + + config.lograge.base_controller_class = [ + 'ActionController::API', + 'ActionController::Base' + ] + + config.lograge.ignore_actions = [ + 'HealthCheck::HealthCheckController#index', + 'ApplicationCable::Connection#connect', + 'ApplicationCable::Connection#disconnect' + ] + end +end \ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb index 0724e32a2..e0fc9b783 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -158,9 +158,7 @@ get 'projects/:project/status/(:id)', to: 'status#show', as: 'project_status' end - namespace :zealot do - resources :version, only: :index - end + resources :version, only: :index end ############################################# From c6c46cfb20ff0ffb32ffa45a281b01fe8dc53c19 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 7 Dec 2021 14:37:57 +0800 Subject: [PATCH 0796/2165] =?UTF-8?q?fix:=20=E6=B6=88=E9=99=A4=E8=87=AA?= =?UTF-8?q?=E5=8A=A8=E5=8A=A0=E8=BD=BD=E5=BC=82=E5=B8=B8=E7=9A=84=E8=AD=A6?= =?UTF-8?q?=E5=91=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/initializers/devise.rb | 605 +++++++++++++++++----------------- 1 file changed, 303 insertions(+), 302 deletions(-) diff --git a/config/initializers/devise.rb b/config/initializers/devise.rb index f8eb5158f..5247ff406 100644 --- a/config/initializers/devise.rb +++ b/config/initializers/devise.rb @@ -2,313 +2,314 @@ # Use this hook to configure devise mailer, warden hooks and so forth. # Many of these configuration options can be set straight in your model. +Rails.application.reloader.to_prepare do + Devise.setup do |config| + # The secret key used by Devise. Devise uses this key to generate + # random tokens. Changing this key will render invalid all existing + # confirmation, reset password and unlock tokens in the database. + # Devise will use the `secret_key_base` as its `secret_key` + # by default. You can change it below and use your own secret key. + # config.secret_key = '' + + # ==> Mailer Configuration + # Configure the e-mail address which will be shown in Devise::Mailer, + # note that it will be overwritten if you use your own mailer class + # with default "from" parameter. + # config.mailer_sender = 'no-reply@' + Setting.url_options[:host] + + # Configure the class responsible to send e-mails. + config.mailer = 'DeviseMailer' + + # Configure the parent class responsible to send e-mails. + # config.parent_mailer = 'ActionMailer::Base' + + # ==> ORM configuration + # Load and configure the ORM. Supports :active_record (default) and + # :mongoid (bson_ext recommended) by default. Other ORMs may be + # available as additional gems. + require 'devise/orm/active_record' + + # ==> Configuration for any authentication mechanism + # Configure which keys are used when authenticating a user. The default is + # just :email. You can configure it to use [:username, :subdomain], so for + # authenticating a user, both parameters are required. Remember that those + # parameters are used only when authenticating and not when retrieving from + # session. If you need permissions, you should implement that in a before filter. + # You can also supply a hash where the value is a boolean determining whether + # or not authentication should be aborted when the value is not present. + # config.authentication_keys = [:email] + + # Configure parameters from the request object used for authentication. Each entry + # given should be a request method and it will automatically be passed to the + # find_for_authentication method and considered in your model lookup. For instance, + # if you set :request_keys to [:subdomain], :subdomain will be used on authentication. + # The same considerations mentioned for authentication_keys also apply to request_keys. + # config.request_keys = [] + + # Configure which authentication keys should be case-insensitive. + # These keys will be downcased upon creating or modifying a user and when used + # to authenticate or find a user. Default is :email. + config.case_insensitive_keys = [:email] + + # Configure which authentication keys should have whitespace stripped. + # These keys will have whitespace before and after removed upon creating or + # modifying a user and when used to authenticate or find a user. Default is :email. + config.strip_whitespace_keys = [:email] + + # Tell if authentication through request.params is enabled. True by default. + # It can be set to an array that will enable params authentication only for the + # given strategies, for example, `config.params_authenticatable = [:database]` will + # enable it only for database (email + password) authentication. + # config.params_authenticatable = true + + # Tell if authentication through HTTP Auth is enabled. False by default. + # It can be set to an array that will enable http authentication only for the + # given strategies, for example, `config.http_authenticatable = [:database]` will + # enable it only for database authentication. The supported strategies are: + # :database = Support basic authentication with authentication key + password + # config.http_authenticatable = false + + # If 401 status code should be returned for AJAX requests. True by default. + # config.http_authenticatable_on_xhr = true + + # The realm used in Http Basic Authentication. 'Application' by default. + # config.http_authentication_realm = 'Zealot' + + # It will change confirmation, password recovery and other workflows + # to behave the same regardless if the e-mail provided was right or wrong. + # Does not affect registerable. + # config.paranoid = true + + # By default Devise will store the user in session. You can skip storage for + # particular strategies by setting this option. + # Notice that if you are skipping storage for all authentication paths, you + # may want to disable generating routes to Devise's sessions controller by + # passing skip: :sessions to `devise_for` in your config/routes.rb + config.skip_session_storage = [:http_auth] + + # By default, Devise cleans up the CSRF token on authentication to + # avoid CSRF token fixation attacks. This means that, when using AJAX + # requests for sign in and sign up, you need to get a new CSRF token + # from the server. You can disable this option at your own risk. + # config.clean_up_csrf_token_on_authentication = true + + # When false, Devise will not attempt to reload routes on eager load. + # This can reduce the time taken to boot the app but if your application + # requires the Devise mappings to be loaded during boot time the application + # won't boot properly. + # config.reload_routes = true + + # ==> Configuration for :database_authenticatable + # For bcrypt, this is the cost for hashing the password and defaults to 11. If + # using other algorithms, it sets how many times you want the password to be hashed. + # + # Limiting the stretches to just one in testing will increase the performance of + # your test suite dramatically. However, it is STRONGLY RECOMMENDED to not use + # a value less than 10 in other environments. Note that, for bcrypt (the default + # algorithm), the cost increases exponentially with the number of stretches (e.g. + # a value of 20 is already extremely slow: approx. 60 seconds for 1 calculation). + config.stretches = Rails.env.test? ? 1 : 10 + + # Set up a pepper to generate the hashed password. + # config.pepper = 'afb9f9d6fef3af737f6c1ffbf76a92ecea727a79ecd5976107a250420cb439965d89f5721c7052439308133c1b51aec9a61a9fc4f32b658432a1ab859969cd12' + + # Send a notification email when the user's password is changed + config.send_password_change_notification = true + + # ==> Configuration for :confirmable + # A period that the user is allowed to access the website even without + # confirming their account. For instance, if set to 2.days, the user will be + # able to access the website for two days without confirming their account, + # access will be blocked just in the third day. Default is 0.days, meaning + # the user cannot access the website without confirming their account. + # config.allow_unconfirmed_access_for = 2.days + + # A period that the user is allowed to confirm their account before their + # token becomes invalid. For example, if set to 3.days, the user can confirm + # their account within 3 days after the mail was sent, but on the fourth day + # their account can't be confirmed with the token any more. + # Default is nil, meaning there is no restriction on how long a user can take + # before confirming their account. + config.confirm_within = 2.days + + # If true, requires any email changes to be confirmed (exactly the same way as + # initial account confirmation) to be applied. Requires additional unconfirmed_email + # db field (see migrations). Until confirmed, new email is stored in + # unconfirmed_email column, and copied to email column on successful confirmation. + config.reconfirmable = false + + # Defines which key will be used when confirming an account + # config.confirmation_keys = [:email] + + # ==> Configuration for :rememberable + # The time the user will be remembered without asking for credentials again. + config.remember_for = 1.year + + # Invalidates all the remember me tokens when the user signs out. + config.expire_all_remember_me_on_sign_out = true + + # If true, extends the user's remember period when remembered via cookie. + # config.extend_remember_period = false + + # Options to be passed to the created cookie. For instance, you can set + # secure: true in order to force SSL only cookies. + config.rememberable_options = { secure: true } + + # ==> Configuration for :validatable + # Range for password length. + config.password_length = 6..128 + + # Email regex used to validate email formats. It simply asserts that + # one (and only one) @ exists in the given string. This is mainly + # to give user feedback and not to assert the e-mail validity. + # config.email_regexp = /\A[^@\s]+@[^@\s]+\z/ + + # ==> Configuration for :timeoutable + # The time you want to timeout the user session without activity. After this + # time the user will be asked for credentials again. Default is 30 minutes. + # config.timeout_in = 30.minutes + + # ==> Configuration for :lockable + # Defines which strategy will be used to lock an account. + # :failed_attempts = Locks an account after a number of failed attempts to sign in. + # :none = No lock strategy. You should handle locking by yourself. + # config.lock_strategy = :failed_attempts + + # Defines which key will be used when locking and unlocking an account + # config.unlock_keys = [:email] + + # Defines which strategy will be used to unlock an account. + # :email = Sends an unlock link to the user email + # :time = Re-enables login after a certain amount of time (see :unlock_in below) + # :both = Enables both strategies + # :none = No unlock strategy. You should handle unlocking by yourself. + # config.unlock_strategy = :both + + # Number of authentication tries before locking an account if lock_strategy + # is failed attempts. + config.maximum_attempts = 5 + + # Time interval to unlock the account if :time is enabled as unlock_strategy. + config.unlock_in = 1.hour + + # Warn on the last attempt before the account is locked. + config.last_attempt_warning = true + + # ==> Configuration for :recoverable + # + # Defines which key will be used when recovering the password for an account + # config.reset_password_keys = [:email] + + # Time interval you can reset your password with a reset password key. + # Don't put a too small interval or your users won't have the time to + # change their passwords. + config.reset_password_within = 6.hours + + # When set to false, does not sign a user in automatically after their password is + # reset. Defaults to true, so a user is signed in automatically after a reset. + # config.sign_in_after_reset_password = true + + # ==> Configuration for :encryptable + # Allow you to use another hashing or encryption algorithm besides bcrypt (default). + # You can use :sha1, :sha512 or algorithms from others authentication tools as + # :clearance_sha1, :authlogic_sha512 (then you should set stretches above to 20 + # for default behavior) and :restful_authentication_sha1 (then you should set + # stretches to 10, and copy REST_AUTH_SITE_KEY to pepper). + # + # Require the `devise-encryptable` gem when using anything other than bcrypt + # config.encryptor = :sha512 + + # ==> Scopes configuration + # Turn scoped views on. Before rendering "sessions/new", it will first check for + # "users/sessions/new". It's turned off by default because it's slower if you + # are using only default views. + # config.scoped_views = false + + # Configure the default scope given to Warden. By default it's the first + # devise role declared in your routes (usually :user). + # config.default_scope = :user + + # Set this configuration to false if you want /users/sign_out to sign out + # only the current scope. By default, Devise signs out all scopes. + # config.sign_out_all_scopes = true + + # ==> Navigation configuration + # Lists the formats that should be treated as navigational. Formats like + # :html, should redirect to the sign in page when the user does not have + # access, but formats like :xml or :json, should return 401. + # + # If you have any extra navigational formats, like :iphone or :mobile, you + # should add them to the navigational formats lists. + # + # The "*/*" below is required to match Internet Explorer requests. + # config.navigational_formats = ['*/*', :html] + + # The default HTTP method used to sign out a resource. Default is :delete. + config.sign_out_via = :delete + + # ==> Warden configuration + # If you want to use other strategies, that are not supported by Devise, or + # change the failure app, you can configure them inside the config.warden block. + # + # config.warden do |manager| + # manager.intercept_401 = false + # manager.default_strategies(scope: :user).unshift :some_external_strategy + # end + + # ==> Mountable engine configurations + # When using Devise inside an engine, let's call it `MyEngine`, and this engine + # is mountable, there are some extra configurations to be taken into account. + # The following options are available, assuming the engine is mounted as: + # + # mount MyEngine, at: '/my_engine' + # + # The router that invoked `devise_for`, in the example above, would be: + # config.router_name = :my_engine + + # ==> OmniAuth + # Add a new OmniAuth provider. Check the wiki for more information on setting + # up on your models and hooks. + # config.omniauth :github, 'APP_ID', 'APP_SECRET', scope: 'user,public_repo' + + # 飞书 + feishu = Setting.feishu + if defined?(OmniAuth::Strategies::Feishu) && feishu[:enabled] + config.omniauth :feishu, feishu[:app_id], feishu[:app_secret] + end -Devise.setup do |config| - # The secret key used by Devise. Devise uses this key to generate - # random tokens. Changing this key will render invalid all existing - # confirmation, reset password and unlock tokens in the database. - # Devise will use the `secret_key_base` as its `secret_key` - # by default. You can change it below and use your own secret key. - # config.secret_key = '' - - # ==> Mailer Configuration - # Configure the e-mail address which will be shown in Devise::Mailer, - # note that it will be overwritten if you use your own mailer class - # with default "from" parameter. - # config.mailer_sender = 'no-reply@' + Setting.url_options[:host] - - # Configure the class responsible to send e-mails. - config.mailer = 'DeviseMailer' - - # Configure the parent class responsible to send e-mails. - # config.parent_mailer = 'ActionMailer::Base' - - # ==> ORM configuration - # Load and configure the ORM. Supports :active_record (default) and - # :mongoid (bson_ext recommended) by default. Other ORMs may be - # available as additional gems. - require 'devise/orm/active_record' - - # ==> Configuration for any authentication mechanism - # Configure which keys are used when authenticating a user. The default is - # just :email. You can configure it to use [:username, :subdomain], so for - # authenticating a user, both parameters are required. Remember that those - # parameters are used only when authenticating and not when retrieving from - # session. If you need permissions, you should implement that in a before filter. - # You can also supply a hash where the value is a boolean determining whether - # or not authentication should be aborted when the value is not present. - # config.authentication_keys = [:email] - - # Configure parameters from the request object used for authentication. Each entry - # given should be a request method and it will automatically be passed to the - # find_for_authentication method and considered in your model lookup. For instance, - # if you set :request_keys to [:subdomain], :subdomain will be used on authentication. - # The same considerations mentioned for authentication_keys also apply to request_keys. - # config.request_keys = [] - - # Configure which authentication keys should be case-insensitive. - # These keys will be downcased upon creating or modifying a user and when used - # to authenticate or find a user. Default is :email. - config.case_insensitive_keys = [:email] - - # Configure which authentication keys should have whitespace stripped. - # These keys will have whitespace before and after removed upon creating or - # modifying a user and when used to authenticate or find a user. Default is :email. - config.strip_whitespace_keys = [:email] - - # Tell if authentication through request.params is enabled. True by default. - # It can be set to an array that will enable params authentication only for the - # given strategies, for example, `config.params_authenticatable = [:database]` will - # enable it only for database (email + password) authentication. - # config.params_authenticatable = true - - # Tell if authentication through HTTP Auth is enabled. False by default. - # It can be set to an array that will enable http authentication only for the - # given strategies, for example, `config.http_authenticatable = [:database]` will - # enable it only for database authentication. The supported strategies are: - # :database = Support basic authentication with authentication key + password - # config.http_authenticatable = false - - # If 401 status code should be returned for AJAX requests. True by default. - # config.http_authenticatable_on_xhr = true - - # The realm used in Http Basic Authentication. 'Application' by default. - # config.http_authentication_realm = 'Zealot' - - # It will change confirmation, password recovery and other workflows - # to behave the same regardless if the e-mail provided was right or wrong. - # Does not affect registerable. - # config.paranoid = true - - # By default Devise will store the user in session. You can skip storage for - # particular strategies by setting this option. - # Notice that if you are skipping storage for all authentication paths, you - # may want to disable generating routes to Devise's sessions controller by - # passing skip: :sessions to `devise_for` in your config/routes.rb - config.skip_session_storage = [:http_auth] - - # By default, Devise cleans up the CSRF token on authentication to - # avoid CSRF token fixation attacks. This means that, when using AJAX - # requests for sign in and sign up, you need to get a new CSRF token - # from the server. You can disable this option at your own risk. - # config.clean_up_csrf_token_on_authentication = true - - # When false, Devise will not attempt to reload routes on eager load. - # This can reduce the time taken to boot the app but if your application - # requires the Devise mappings to be loaded during boot time the application - # won't boot properly. - # config.reload_routes = true - - # ==> Configuration for :database_authenticatable - # For bcrypt, this is the cost for hashing the password and defaults to 11. If - # using other algorithms, it sets how many times you want the password to be hashed. - # - # Limiting the stretches to just one in testing will increase the performance of - # your test suite dramatically. However, it is STRONGLY RECOMMENDED to not use - # a value less than 10 in other environments. Note that, for bcrypt (the default - # algorithm), the cost increases exponentially with the number of stretches (e.g. - # a value of 20 is already extremely slow: approx. 60 seconds for 1 calculation). - config.stretches = Rails.env.test? ? 1 : 10 - - # Set up a pepper to generate the hashed password. - # config.pepper = 'afb9f9d6fef3af737f6c1ffbf76a92ecea727a79ecd5976107a250420cb439965d89f5721c7052439308133c1b51aec9a61a9fc4f32b658432a1ab859969cd12' - - # Send a notification email when the user's password is changed - config.send_password_change_notification = true - - # ==> Configuration for :confirmable - # A period that the user is allowed to access the website even without - # confirming their account. For instance, if set to 2.days, the user will be - # able to access the website for two days without confirming their account, - # access will be blocked just in the third day. Default is 0.days, meaning - # the user cannot access the website without confirming their account. - # config.allow_unconfirmed_access_for = 2.days - - # A period that the user is allowed to confirm their account before their - # token becomes invalid. For example, if set to 3.days, the user can confirm - # their account within 3 days after the mail was sent, but on the fourth day - # their account can't be confirmed with the token any more. - # Default is nil, meaning there is no restriction on how long a user can take - # before confirming their account. - config.confirm_within = 2.days - - # If true, requires any email changes to be confirmed (exactly the same way as - # initial account confirmation) to be applied. Requires additional unconfirmed_email - # db field (see migrations). Until confirmed, new email is stored in - # unconfirmed_email column, and copied to email column on successful confirmation. - config.reconfirmable = false - - # Defines which key will be used when confirming an account - # config.confirmation_keys = [:email] - - # ==> Configuration for :rememberable - # The time the user will be remembered without asking for credentials again. - config.remember_for = 1.year - - # Invalidates all the remember me tokens when the user signs out. - config.expire_all_remember_me_on_sign_out = true - - # If true, extends the user's remember period when remembered via cookie. - # config.extend_remember_period = false - - # Options to be passed to the created cookie. For instance, you can set - # secure: true in order to force SSL only cookies. - config.rememberable_options = { secure: true } - - # ==> Configuration for :validatable - # Range for password length. - config.password_length = 6..128 - - # Email regex used to validate email formats. It simply asserts that - # one (and only one) @ exists in the given string. This is mainly - # to give user feedback and not to assert the e-mail validity. - # config.email_regexp = /\A[^@\s]+@[^@\s]+\z/ - - # ==> Configuration for :timeoutable - # The time you want to timeout the user session without activity. After this - # time the user will be asked for credentials again. Default is 30 minutes. - # config.timeout_in = 30.minutes - - # ==> Configuration for :lockable - # Defines which strategy will be used to lock an account. - # :failed_attempts = Locks an account after a number of failed attempts to sign in. - # :none = No lock strategy. You should handle locking by yourself. - # config.lock_strategy = :failed_attempts - - # Defines which key will be used when locking and unlocking an account - # config.unlock_keys = [:email] - - # Defines which strategy will be used to unlock an account. - # :email = Sends an unlock link to the user email - # :time = Re-enables login after a certain amount of time (see :unlock_in below) - # :both = Enables both strategies - # :none = No unlock strategy. You should handle unlocking by yourself. - # config.unlock_strategy = :both - - # Number of authentication tries before locking an account if lock_strategy - # is failed attempts. - config.maximum_attempts = 5 - - # Time interval to unlock the account if :time is enabled as unlock_strategy. - config.unlock_in = 1.hour - - # Warn on the last attempt before the account is locked. - config.last_attempt_warning = true - - # ==> Configuration for :recoverable - # - # Defines which key will be used when recovering the password for an account - # config.reset_password_keys = [:email] - - # Time interval you can reset your password with a reset password key. - # Don't put a too small interval or your users won't have the time to - # change their passwords. - config.reset_password_within = 6.hours - - # When set to false, does not sign a user in automatically after their password is - # reset. Defaults to true, so a user is signed in automatically after a reset. - # config.sign_in_after_reset_password = true - - # ==> Configuration for :encryptable - # Allow you to use another hashing or encryption algorithm besides bcrypt (default). - # You can use :sha1, :sha512 or algorithms from others authentication tools as - # :clearance_sha1, :authlogic_sha512 (then you should set stretches above to 20 - # for default behavior) and :restful_authentication_sha1 (then you should set - # stretches to 10, and copy REST_AUTH_SITE_KEY to pepper). - # - # Require the `devise-encryptable` gem when using anything other than bcrypt - # config.encryptor = :sha512 - - # ==> Scopes configuration - # Turn scoped views on. Before rendering "sessions/new", it will first check for - # "users/sessions/new". It's turned off by default because it's slower if you - # are using only default views. - # config.scoped_views = false - - # Configure the default scope given to Warden. By default it's the first - # devise role declared in your routes (usually :user). - # config.default_scope = :user - - # Set this configuration to false if you want /users/sign_out to sign out - # only the current scope. By default, Devise signs out all scopes. - # config.sign_out_all_scopes = true - - # ==> Navigation configuration - # Lists the formats that should be treated as navigational. Formats like - # :html, should redirect to the sign in page when the user does not have - # access, but formats like :xml or :json, should return 401. - # - # If you have any extra navigational formats, like :iphone or :mobile, you - # should add them to the navigational formats lists. - # - # The "*/*" below is required to match Internet Explorer requests. - # config.navigational_formats = ['*/*', :html] - - # The default HTTP method used to sign out a resource. Default is :delete. - config.sign_out_via = :delete - - # ==> Warden configuration - # If you want to use other strategies, that are not supported by Devise, or - # change the failure app, you can configure them inside the config.warden block. - # - # config.warden do |manager| - # manager.intercept_401 = false - # manager.default_strategies(scope: :user).unshift :some_external_strategy - # end - - # ==> Mountable engine configurations - # When using Devise inside an engine, let's call it `MyEngine`, and this engine - # is mountable, there are some extra configurations to be taken into account. - # The following options are available, assuming the engine is mounted as: - # - # mount MyEngine, at: '/my_engine' - # - # The router that invoked `devise_for`, in the example above, would be: - # config.router_name = :my_engine - - # ==> OmniAuth - # Add a new OmniAuth provider. Check the wiki for more information on setting - # up on your models and hooks. - # config.omniauth :github, 'APP_ID', 'APP_SECRET', scope: 'user,public_repo' - - # 飞书 - feishu = Setting.feishu - if defined?(OmniAuth::Strategies::Feishu) && feishu[:enabled] - config.omniauth :feishu, feishu[:app_id], feishu[:app_secret] - end + # Gitlab + gitlab = Setting.gitlab + if defined?(OmniAuth::Strategies::GitLab) && gitlab[:enabled] + options = { scope: 'read_user' } + if (scope = gitlab[:scope]) && scope.present? + options[:scope] = scope.split(',').map(&:chomp).join(' ') + end - # Gitlab - gitlab = Setting.gitlab - if defined?(OmniAuth::Strategies::GitLab) && gitlab[:enabled] - options = { scope: 'read_user' } - if (scope = gitlab[:scope]) && scope.present? - options[:scope] = scope.split(',').map(&:chomp).join(' ') - end + if (site = gitlab[:site]) && site.present? + options[:client_options] = { site: site } + end - if (site = gitlab[:site]) && site.present? - options[:client_options] = { site: site } + config.omniauth :gitlab, gitlab[:app_id], gitlab[:secret], options end - config.omniauth :gitlab, gitlab[:app_id], gitlab[:secret], options - end - - # Google OAuth - google_oauth = Setting.google_oauth - if defined?(OmniAuth::Strategies::GoogleOauth2) && google_oauth[:enabled] - config.omniauth :google_oauth2, google_oauth[:client_id], google_oauth[:secret], - skip_jwt: true, prompt: 'select_account', access_type: 'offline', - scope: 'email,profile' - end + # Google OAuth + google_oauth = Setting.google_oauth + if defined?(OmniAuth::Strategies::GoogleOauth2) && google_oauth[:enabled] + config.omniauth :google_oauth2, google_oauth[:client_id], google_oauth[:secret], + skip_jwt: true, prompt: 'select_account', access_type: 'offline', + scope: 'email,profile' + end - # LDAP - ldap = Setting.ldap - if defined?(OmniAuth::Strategies::LDAP) && ldap[:enabled] - config.omniauth :ldap, title: 'Zealot LDAP 认证登录', - host: ldap[:host], port: ldap[:port].to_i, - encryption: ldap[:encryption].to_sym, - bind_dn: ldap[:bind_dn], - password: ldap[:password], - base: ldap[:base], uid: ldap[:uid] - # try_sasl: true, sasl_mechanisms: ['DIGEST-MD5'] + # LDAP + ldap = Setting.ldap + if defined?(OmniAuth::Strategies::LDAP) && ldap[:enabled] + config.omniauth :ldap, title: 'Zealot LDAP 认证登录', + host: ldap[:host], port: ldap[:port].to_i, + encryption: ldap[:encryption].to_sym, + bind_dn: ldap[:bind_dn], + password: ldap[:password], + base: ldap[:base], uid: ldap[:uid] + # try_sasl: true, sasl_mechanisms: ['DIGEST-MD5'] + end end end From 1929a52c5ee284ede7b41cb0575f8beb4d253502 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 7 Dec 2021 14:57:29 +0800 Subject: [PATCH 0797/2165] fix: zeitwerk check --- config/application.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/config/application.rb b/config/application.rb index 6aedd9aa2..6399da720 100644 --- a/config/application.rb +++ b/config/application.rb @@ -79,7 +79,8 @@ class Application < Rails::Application ################################################################ # Auto load path - config.autoload_paths += Dir[Rails.root.join('lib')] + config.autoload_paths += %W(#{config.root}/lib) + config.eager_load_paths += %W(#{config.root}/lib) # Don't generate system test files. config.generators.system_tests = nil From 13f78834632bc6a287f9b061c75ee79431dbf94b Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 7 Dec 2021 16:46:38 +0800 Subject: [PATCH 0798/2165] =?UTF-8?q?style:=20=E8=B0=83=E6=95=B4=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=20ios=20udid=20=E5=9C=A8=E7=A7=BB=E5=8A=A8=E8=AE=BE?= =?UTF-8?q?=E5=A4=87=E4=B8=8B=E4=BA=8C=E7=BB=B4=E7=A0=81=E8=B6=85=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/udid/index.html.slim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/udid/index.html.slim b/app/views/udid/index.html.slim index 06baa3a6e..04ffd553c 100644 --- a/app/views/udid/index.html.slim +++ b/app/views/udid/index.html.slim @@ -10,7 +10,7 @@ .card .card-body.text-center - = raw @qrcode.as_svg + = raw @qrcode.as_svg(module_size: 8) .pt-4.text-center = t('udid.index.tip') .card-footer = link_to t('udid.index.fetch_udid'), udid_install_path, class: 'btn bg-success btn-lg btn-block' From 7aecaf6268fcc653ef083008218d20d5fb5b5b57 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 7 Dec 2021 16:46:56 +0800 Subject: [PATCH 0799/2165] =?UTF-8?q?i18n:=20=E8=A1=A5=E5=85=85=20aab=20?= =?UTF-8?q?=E7=9A=84=E6=A0=BC=E5=BC=8F=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/locales/zealot/en.yml | 4 ++-- config/locales/zealot/zh-CN.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/config/locales/zealot/en.yml b/config/locales/zealot/en.yml index 453d9968f..8b6580cfb 100644 --- a/config/locales/zealot/en.yml +++ b/config/locales/zealot/en.yml @@ -393,7 +393,7 @@ en: title: New teardown file: File choose_file: Choose file - file_hint: Support .apk, .ipa, .mobileprovision and macOS.app.zip file + file_hint: Support .apk, .aab, .ipa, .mobileprovision and macOS.app.zip file submit: Start work create: create: :'teardowns.new.title' @@ -515,7 +515,7 @@ en: not_support_file_type: Not support file type failed_get_metadata: Failed to parse, make sure supported file type and un-hardened unknown_parse: 'Unkown parse error [%{class}]: %{message}' - choose_supported_file_type: 'Choose support file type: .apk, .ipa, .mobileprovision or macOS.app.zip file' + choose_supported_file_type: 'Choose support file type: .apk, .abb, .ipa, .mobileprovision or macOS.app.zip file' udid: title: Fetch UDID diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index d03861913..737a81f2f 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -391,7 +391,7 @@ zh-CN: title: 新建应用解包 file: 文件 choose_file: 选择文件 - file_hint: 支持 .apk、 .ipa、.mobileprovision 以及 macOS.app.zip 文件 + file_hint: 支持 .apk、 .aab、.ipa、.mobileprovision 以及 macOS.app.zip 文件 submit: 开始解包 create: create: :'teardowns.new.title' @@ -512,7 +512,7 @@ zh-CN: not_support_file_type: 应用的文件类型不支持 failed_get_metadata: 应用解析异常,请确保是支持的文件类型且没有安全加固处理 unknown_parse: '上传应用解析发现未知异常,原始错误 [%{class}]: %{message}' - choose_supported_file_type: 请选择需要解包的 .apk、 .ipa、.mobileprovision 或 macOS.app.zip 文件 + choose_supported_file_type: 请选择需要解包的 .apk、.aab、.ipa、.mobileprovision 或 macOS.app.zip 文件 udid: title: 设备 UDID From 3ae29372119a62c6cf82dead78e6b6e42ea51361 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 7 Dec 2021 17:09:24 +0800 Subject: [PATCH 0800/2165] =?UTF-8?q?fix:=20=E8=8B=B1=E6=96=87=E8=AF=AD?= =?UTF-8?q?=E9=9F=B3=E5=8C=85=E6=97=A0=E6=B3=95=E5=AE=89=E8=A3=85=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=20udid=20=E7=9A=84=E9=85=8D=E7=BD=AE=E6=96=87?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/locales/zealot/en.yml | 4 ++-- config/locales/zealot/zh-CN.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/config/locales/zealot/en.yml b/config/locales/zealot/en.yml index 8b6580cfb..fd45d18c8 100644 --- a/config/locales/zealot/en.yml +++ b/config/locales/zealot/en.yml @@ -550,9 +550,9 @@ en: version: Version upload_release: :'dashboard.timeline.upload_release' install: - title: :'udids.title' + title: Zealot fetch device UDID description: | - Install this temporary profile to find and display your current device's UDID. It is automatically removed from device right after you get your UDID. + Install this temporary profile to find and display the UDID on your device. It is automatically removed from device right after you get your UDID. Powered by %{url}. diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index 737a81f2f..4b778a884 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -546,7 +546,7 @@ zh-CN: upload_release: :'dashboard.timeline.upload_release' install: - title: 获取设备 UDID + title: Zealot 获取设备 UDID description: | 本描述文件仅用来获取本机设备 UDID,获取信息后会自动删除掉本描述文件。 From a4f2be7e27fedbab58fdf255415efd26a69f06d1 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 7 Dec 2021 18:33:23 +0800 Subject: [PATCH 0801/2165] =?UTF-8?q?doc:=20=E6=9B=B4=E6=96=B0=E8=8B=B1?= =?UTF-8?q?=E6=96=87=E6=96=87=E6=A1=A3=E5=9C=B0=E5=9D=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 49aaecb3e..d093a0dda 100644 --- a/README.md +++ b/README.md @@ -6,12 +6,14 @@ [![Codacy Badge](https://app.codacy.com/project/badge/Grade/5e5c7bbeb1214fa39b11a7414f0d7171)](https://www.codacy.com/gh/tryzealot/zealot) [![License](https://img.shields.io/github/license/tryzealot/zealot)](LICENSE) +[Enligsh Document](https://zealot.ews.im/#/en/) | [简体中文文档](https://zealot.ews.im) + 开源自部署 iOS、Android 及 macOS 应用分发平台,提供 iOS、Android SDK、fastlane 等丰富组件库,打包分发流程、上传应用竟然如此简单、独立部署解决企业使用的烦恼。 En Taro Adun! 🖖 ![Zealot Showcase](https://zealot.ews.im/_media/showcase.png) ## 特性 -- [x] 支持 iOS、Android 和 macOS 应用的上传、在线安装和本地下载 +- [x] 支持 iOS、Android (apk/aab) 和 macOS 应用的上传、在线安装和本地下载 - [x] 支持创建类型(Debug、AdHoc、Release)及渠道(小米商店等) - [x] 支持自定义网络钩子通知各种服务(钉钉、企业微信、Slack 等) - [x] 支持 iOS dSYM 和 Android Progruard 文件的解析和上传 From 03abc2516f8b39f667bede28cfdfce2717ff35e3 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 8 Dec 2021 12:11:20 +0800 Subject: [PATCH 0802/2165] =?UTF-8?q?=E5=8F=91=E5=B8=83=204.3.0=20?= =?UTF-8?q?=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 1bdac0db5..51c71b92f 100644 --- a/Dockerfile +++ b/Dockerfile @@ -61,7 +61,7 @@ ARG BUILD_DATE ARG VCS_REF ARG TAG -ARG ZEALOT_VERSION="4.2.2" +ARG ZEALOT_VERSION="4.3.0" ARG REPLACE_CHINA_MIRROR="true" ARG ORIGINAL_REPO_URL="dl-cdn.alpinelinux.org" ARG MIRROR_REPO_URL="mirrors.ustc.edu.cn" diff --git a/package.json b/package.json index 70b09f329..d34ae9252 100644 --- a/package.json +++ b/package.json @@ -15,5 +15,5 @@ "devDependencies": { "webpack-dev-server": "^3.11.3" }, - "version": "4.2.2" + "version": "4.3.0" } From 3878d645a8baf396fcb0a8a735f3d848e356c75d Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 8 Dec 2021 12:44:00 +0800 Subject: [PATCH 0803/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=9B=A0?= =?UTF-8?q?=E4=B8=BA=E9=94=99=E8=AF=AF=E8=AF=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/locales/zealot/en.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/zealot/en.yml b/config/locales/zealot/en.yml index fd45d18c8..5e61d789f 100644 --- a/config/locales/zealot/en.yml +++ b/config/locales/zealot/en.yml @@ -420,7 +420,7 @@ en: related_body: 'This teardown was relates with ' unknow_app_name: Unkown - metadata: Metadat + metadata: Metadata app_name: App name version: Version package_name: Bundle id (package name) From 272f06fdc94511abfca0e5d0123cafad49fb6499 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 8 Dec 2021 14:54:21 +0800 Subject: [PATCH 0804/2165] =?UTF-8?q?fix:=20=E8=99=BD=E7=84=B6=E4=B8=8D?= =?UTF-8?q?=E7=94=A8=20db:schema=20=E4=BD=86=E6=9B=B4=E6=96=B0=E4=B8=BA?= =?UTF-8?q?=E5=8F=AF=E7=94=A8=E7=9A=84=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/schema.rb | 37 ++++++++++++++++++++++++++----------- 1 file changed, 26 insertions(+), 11 deletions(-) diff --git a/db/schema.rb b/db/schema.rb index 2fb73635a..c532cb474 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -108,8 +108,32 @@ t.index ["release_id", "device_id"], name: "index_devices_releases_on_release_id_and_device_id" end -# Could not dump table "metadata" because of following StandardError -# Unknown type 'metadata_platform' for column 'platform' + create_table "metadata", force: :cascade do |t| + t.bigint "release_id" + t.bigint "user_id" + t.string "device", null: false + t.string "name" + t.string "release_version" + t.string "build_version" + t.string "bundle_id" + t.integer "size" + t.string "min_sdk_version" + t.string "target_sdk_version" + t.jsonb "activities", default: [], null: false + t.jsonb "services", default: [], null: false + t.jsonb "permissions", default: [], null: false + t.jsonb "features", default: [], null: false + t.string "release_type" + t.jsonb "mobileprovision", default: {}, null: false + t.jsonb "developer_certs", default: [], null: false + t.jsonb "entitlements", default: {}, null: false + t.jsonb "devices", default: [], null: false + t.jsonb "capabilities", default: [], null: false + t.jsonb "url_schemes", default: [], null: false + t.string "checksum", null: false + t.datetime "created_at", precision: 6, null: false + t.datetime "updated_at", precision: 6, null: false + end create_table "releases", force: :cascade do |t| t.bigint "channel_id" @@ -206,13 +230,4 @@ t.index ["url"], name: "index_web_hooks_on_url" end - add_foreign_key "channels", "schemes", on_delete: :cascade - add_foreign_key "debug_file_metadata", "debug_files" - add_foreign_key "debug_files", "apps", on_delete: :cascade - add_foreign_key "metadata", "releases", on_delete: :cascade - add_foreign_key "metadata", "users", on_delete: :cascade - add_foreign_key "releases", "channels", on_delete: :cascade - add_foreign_key "schemes", "apps", on_delete: :cascade - add_foreign_key "user_providers", "users", on_delete: :cascade - add_foreign_key "web_hooks", "channels", on_delete: :cascade end From 6a1443528fae23f26b44e25fdf7048eb90e68419 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 14 Dec 2021 13:58:32 +0800 Subject: [PATCH 0805/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=BC=94?= =?UTF-8?q?=E7=A4=BA=E6=A8=A1=E5=BC=8F=E5=BC=82=E6=AD=A5=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E6=96=B9=E6=B3=95=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/jobs/reset_for_demo_mode_job.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/jobs/reset_for_demo_mode_job.rb b/app/jobs/reset_for_demo_mode_job.rb index 3a5f1f826..bee3b2280 100644 --- a/app/jobs/reset_for_demo_mode_job.rb +++ b/app/jobs/reset_for_demo_mode_job.rb @@ -18,7 +18,7 @@ def perform private - def clean_apps + def clean_app_data App.delete_all DebugFile.delete_all Metadatum.delete_all From 01a6ae0ed038a775421e3019e4453796c0a8756b Mon Sep 17 00:00:00 2001 From: Zane Chua <4265429+zanechua@users.noreply.github.com> Date: Sun, 12 Dec 2021 10:06:36 -0800 Subject: [PATCH 0806/2165] doc: fix typo --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index d093a0dda..fdda7974b 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ [![Codacy Badge](https://app.codacy.com/project/badge/Grade/5e5c7bbeb1214fa39b11a7414f0d7171)](https://www.codacy.com/gh/tryzealot/zealot) [![License](https://img.shields.io/github/license/tryzealot/zealot)](LICENSE) -[Enligsh Document](https://zealot.ews.im/#/en/) | [简体中文文档](https://zealot.ews.im) +[English Document](https://zealot.ews.im/#/en/) | [简体中文文档](https://zealot.ews.im) 开源自部署 iOS、Android 及 macOS 应用分发平台,提供 iOS、Android SDK、fastlane 等丰富组件库,打包分发流程、上传应用竟然如此简单、独立部署解决企业使用的烦恼。 En Taro Adun! 🖖 @@ -71,4 +71,4 @@ https://zealot.ews.im/#/changelog https://zealot.ews.im -对 Zealot 有疑问或者建议,欢迎[提交问题](https://github.com/tryzealot/zealot/issues/new),我会非常欢迎的。 \ No newline at end of file +对 Zealot 有疑问或者建议,欢迎[提交问题](https://github.com/tryzealot/zealot/issues/new),我会非常欢迎的。 From 5748a658f6267c0c742dcf7860e2cde7efd70b4a Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 13 Dec 2021 08:07:11 +0800 Subject: [PATCH 0807/2165] chore: update welcome config --- .github/config.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/config.yml b/.github/config.yml index 49f3bcf05..02d5d4701 100644 --- a/.github/config.yml +++ b/.github/config.yml @@ -1,10 +1,18 @@ newIssueWelcomeComment: > 感谢你提交的问题或反馈,我会在有时间的时候回复在此期间你可以看看[之前被解决的反馈](https://github.com/tryzealot/zealot/issues?q=is%3Aissue+is%3Aclosed)说不定有你需要的答案。 + + Thanks for opening this issue, a maintainer will get back to you shortly! + newPRWelcomeComment: > 感谢你提交的问题或反馈,我会在有时间的时候来审查代码。 + + Thanks so much for opening your first PR here! + firstPRMergeComment: > 感谢贡献 PR 来支持 Zealot! :tada: + + Congrats on merging your first pull request here! :tada: How awesome! ![Congrats!](https://media.giphy.com/media/Tugu78Y5vg0Ss/giphy.gif) From 2c20486df0f6b3b3d9b17e054cd7d1f8591229f9 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 13 Dec 2021 08:08:13 +0800 Subject: [PATCH 0808/2165] chore: update stale config --- .github/stale.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/stale.yml b/.github/stale.yml index 892f72ad2..698c41237 100644 --- a/.github/stale.yml +++ b/.github/stale.yml @@ -13,6 +13,10 @@ staleLabel: wontfix # Comment to post when marking an issue as stale. Set to `false` to disable markComment: > 由于太长时间没有得到回复本问题会自动被关闭,如果您还有问题可以重新开启或提交新问题。感谢你对于 Zealot 的关注! + + This issue has been automatically marked as stale because it has not had + recent activity. It will be closed if no further activity occurs. Thank you + for your contributions. # Comment to post when closing a stale issue. Set to `false` to disable closeComment: false From 1e618b5d0c6637ba44cfd349eec389e4d042e67a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 Dec 2021 21:02:16 +0000 Subject: [PATCH 0809/2165] chore(deps): bump graphql from 1.13.0 to 1.13.1 Bumps [graphql](https://github.com/rmosolgo/graphql-ruby) from 1.13.0 to 1.13.1. - [Release notes](https://github.com/rmosolgo/graphql-ruby/releases) - [Changelog](https://github.com/rmosolgo/graphql-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/rmosolgo/graphql-ruby/compare/v1.13.0...v1.13.1) --- updated-dependencies: - dependency-name: graphql dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 034d3fe55..c657cd2a2 100644 --- a/Gemfile +++ b/Gemfile @@ -18,7 +18,7 @@ gem 'lograge', '~> 0.11.2' # API gem 'active_model_serializers', '~> 0.10.12' -gem 'graphql', '~> 1.13.0' +gem 'graphql', '~> 1.13.1' gem 'rack-cors', '~> 1.1.1' gem 'health_check', '~> 3.1.0' diff --git a/Gemfile.lock b/Gemfile.lock index d2e138eac..e76a4cd23 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -178,7 +178,7 @@ GEM graphiql-rails (1.8.0) railties sprockets-rails - graphql (1.13.0) + graphql (1.13.1) guard (2.18.0) formatador (>= 0.2.4) listen (>= 2.7, < 4.0) @@ -542,7 +542,7 @@ DEPENDENCIES friendly_id (~> 5.4.2) gitlab_omniauth-ldap (~> 2.1.1) graphiql-rails - graphql (~> 1.13.0) + graphql (~> 1.13.1) guard (~> 2.18.0) guard-bundler guard-migrate From 3caca1689170b921e1e4e548c92696930bdf9fd2 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 14 Dec 2021 15:35:41 +0800 Subject: [PATCH 0810/2165] =?UTF-8?q?fix:=20=E5=88=9B=E5=BB=BA=E5=92=8C?= =?UTF-8?q?=E7=BC=96=E8=BE=91=E5=BA=94=E7=94=A8=E6=97=A0=E6=B3=95=E5=8B=BE?= =?UTF-8?q?=E9=80=89=E9=80=89=E4=B8=AD=E7=9A=84=E5=BA=94=E7=94=A8=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E5=92=8C=E6=B8=A0=E9=81=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/apps_controller.rb | 14 ++++++++++++++ app/controllers/channels_controller.rb | 10 ++++------ app/controllers/schemes_controller.rb | 5 +++++ app/views/apps/_form.html.slim | 8 ++++---- app/views/channels/_form.html.slim | 2 +- app/views/schemes/_form.html.slim | 2 +- 6 files changed, 29 insertions(+), 12 deletions(-) diff --git a/app/controllers/apps_controller.rb b/app/controllers/apps_controller.rb index 742ce13ac..ea515d0a6 100644 --- a/app/controllers/apps_controller.rb +++ b/app/controllers/apps_controller.rb @@ -3,6 +3,7 @@ class AppsController < ApplicationController before_action :authenticate_user! unless Setting.guest_mode before_action :set_app, only: %i[show edit update destroy] + before_action :set_selected_schemes_and_channels, only: %i[edit] before_action :process_scheme_and_channel, only: %i[create] def index @@ -75,6 +76,19 @@ def set_app authorize @app end + def set_selected_schemes_and_channels + @schemes = [] + @channels = [] + @app.schemes.each do |scheme| + @schemes << scheme.name + + channels = scheme.channels.pluck(:name) + channels.each do |channel_name| + @channels << channel_name unless @channels.include?(channel_name) + end + end + end + def process_scheme_and_channel @schemes = app_params.delete(:scheme_attributes)[:name].reject(&:empty?) @channels = app_params.delete(:channel_attributes)[:name].reject(&:empty?) diff --git a/app/controllers/channels_controller.rb b/app/controllers/channels_controller.rb index 11bee69fd..bcffef5ec 100644 --- a/app/controllers/channels_controller.rb +++ b/app/controllers/channels_controller.rb @@ -24,12 +24,10 @@ def create @channel = Channel.new(channel_params) authorize @channel - if @channel.save - message = t('activerecord.success.create', key: "#{@channel.scheme.name} #{@channel.name} #{t('channels.title')}") - redirect_to app_path(@channel.scheme.app), notice: message - else - @channel.errors - end + return render :new unless @channel.save + + message = t('activerecord.success.create', key: "#{@channel.scheme.name} #{@channel.name} #{t('channels.title')}") + redirect_to app_path(@channel.scheme.app), notice: message end def edit diff --git a/app/controllers/schemes_controller.rb b/app/controllers/schemes_controller.rb index 92b88b410..26a31e827 100644 --- a/app/controllers/schemes_controller.rb +++ b/app/controllers/schemes_controller.rb @@ -3,6 +3,7 @@ class SchemesController < ApplicationController before_action :authenticate_user!, except: :show before_action :set_scheme, except: %i[create new] + before_action :process_scheme_params, only: %i[create] before_action :set_channel, only: %i[show] before_action :set_app @@ -82,6 +83,10 @@ def set_channel @channel = @scheme.channels.find_by(device_type: previouse_channel.device_type) end + def process_scheme_params + @channels = scheme_params[:channel_attributes][:name].reject(&:empty?) + end + def from_channel? return [false, nil] unless referer = request.referer return [false, nil] unless segment = Rails.application.routes.recognize_path(referer) diff --git a/app/views/apps/_form.html.slim b/app/views/apps/_form.html.slim index d65fd870d..e533f4eb1 100644 --- a/app/views/apps/_form.html.slim +++ b/app/views/apps/_form.html.slim @@ -1,6 +1,6 @@ ruby: - checked_scheme = @schemes ? @schemes[:name] : 0 - checked_channel = @channels ? @channels[:name] : 0 + @schemes ||= 0 + @channels ||= 0 link_url = new_or_create_route? ? apps_path : app_path(@app) .col-md-12 @@ -18,7 +18,7 @@ ruby: = f.input :name, required: true = f.simple_fields_for :scheme_attributes do |n| - = n.input :name, as: :check_boxes, collection: default_schemes, checked: checked_scheme + = n.input :name, as: :check_boxes, collection: default_schemes, checked: @schemes, required: false = f.simple_fields_for :channel_attributes do |n| - = n.input :name, as: :check_boxes, collection: default_channels, checked: checked_channel + = n.input :name, as: :check_boxes, collection: default_channels, checked: @channels, required: false = f.button :submit diff --git a/app/views/channels/_form.html.slim b/app/views/channels/_form.html.slim index c8262bdac..40ec4ec3e 100644 --- a/app/views/channels/_form.html.slim +++ b/app/views/channels/_form.html.slim @@ -1,5 +1,5 @@ ruby: - form_url = params[:action] == 'new' ? app_scheme_channels_path(@scheme.app, @scheme) : app_scheme_channel_path(@app, @scheme, @channel) + form_url = new_or_create_route? ? app_scheme_channels_path(@scheme.app, @scheme) : app_scheme_channel_path(@app, @scheme, @channel) .col-md-12 .card diff --git a/app/views/schemes/_form.html.slim b/app/views/schemes/_form.html.slim index c1eab23c4..6970257a6 100644 --- a/app/views/schemes/_form.html.slim +++ b/app/views/schemes/_form.html.slim @@ -1,6 +1,6 @@ ruby: form_url = new_or_create_route? ? app_schemes_path : app_scheme_path(@scheme.app, @scheme) - checked_channel = @channels ? @channels[:name] : 0 + checked_channel = @channels ? @channels : 0 .col-md-12 .card From bd5b29d66a901dae7d9d78a5d36dc6bfe31e3160 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 14 Dec 2021 16:55:07 +0800 Subject: [PATCH 0811/2165] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=20GA=20?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/admin/settings_controller.rb | 5 ++++- app/models/setting.rb | 5 +++++ app/views/layouts/_google_analytics.html.slim | 10 ++++++++++ app/views/layouts/application.html.slim | 5 ++++- config/locales/zealot/en.yml | 3 +++ config/locales/zealot/zh-CN.yml | 3 +++ 6 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 app/views/layouts/_google_analytics.html.slim diff --git a/app/controllers/admin/settings_controller.rb b/app/controllers/admin/settings_controller.rb index c6c8da5c0..0ad08adae 100644 --- a/app/controllers/admin/settings_controller.rb +++ b/app/controllers/admin/settings_controller.rb @@ -19,7 +19,10 @@ def edit @value = Setting.present_schemes end - @value = t("settings.#{@value}", default: @value) if @value.is_a?(String) + # 值的多语言支持显示 + if @value.is_a?(String) && @value.present? + @value = t("settings.#{@value}", default: @value) + end end def update diff --git a/app/models/setting.rb b/app/models/setting.rb index bf2d90ebb..bbe0ece0e 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -189,6 +189,11 @@ def default_domain field :build_date, default: ENV['ZEALOT_BUILD_DATE'], type: :string, readonly: true end + # 统计 + scope :analytics do + field :google_analytics_id, default: ENV['GOOGLE_ANALYTICS_ID'], type: :string, display: true + end + def readonly? self.class.get_field(var.to_sym).try(:[], :readonly) === true end diff --git a/app/views/layouts/_google_analytics.html.slim b/app/views/layouts/_google_analytics.html.slim new file mode 100644 index 000000000..c746eb25b --- /dev/null +++ b/app/views/layouts/_google_analytics.html.slim @@ -0,0 +1,10 @@ +javascript: + var _gaq = _gaq || []; + _gaq.push(['_setAccount', '#{Setting.google_analytics_id}']); + _gaq.push(['_trackPageview']); + + (function() { + var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; + ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; + var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); + })(); \ No newline at end of file diff --git a/app/views/layouts/application.html.slim b/app/views/layouts/application.html.slim index 1cac5a712..6c4a3fd75 100644 --- a/app/views/layouts/application.html.slim +++ b/app/views/layouts/application.html.slim @@ -29,4 +29,7 @@ html lang="#{I18n.locale}" .content-wrapper == render 'layouts/content' - / == render 'layouts/footer' \ No newline at end of file + / == render 'layouts/footer' + + - if Setting.google_analytics_id.present? + == render 'layouts/google_analytics' \ No newline at end of file diff --git a/config/locales/zealot/en.yml b/config/locales/zealot/en.yml index 5e61d789f..a2c51ce4f 100644 --- a/config/locales/zealot/en.yml +++ b/config/locales/zealot/en.yml @@ -89,6 +89,9 @@ en: mailer_default_to: Default sender mailer_options: Options + analytics: Analytics + google_analytics_id: Google Analytics ID + archives: Archive uploaded binaries keep_uploads: Keep all diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index 4b778a884..7557397b4 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -89,6 +89,9 @@ zh-CN: mailer_default_to: 默认邮件发件人 mailer_options: 发件服务器配置 + analytics: 统计 + google_analytics_id: Google Analytics ID + archives: 上传文件 keep_uploads: 永久保存上传应用版本 From a0d3b74ec66c1f11b92c42c15361e8ce7c4aec73 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 14 Dec 2021 17:54:59 +0800 Subject: [PATCH 0812/2165] =?UTF-8?q?feat:=20=E6=9B=B4=E6=94=B9=E7=9A=84?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E5=8F=AF=E6=81=A2=E5=A4=8D=E5=8E=9F=E5=A7=8B?= =?UTF-8?q?=E9=BB=98=E8=AE=A4=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/admin/settings_controller.rb | 12 +++++-- app/controllers/admin/users_controller.rb | 10 +++--- app/policies/setting_policy.rb | 38 ++++++++++++++++++++ app/views/admin/settings/_form.html.slim | 7 +++- config/locales/zealot/en.yml | 2 +- config/locales/zealot/zh-CN.yml | 2 +- 6 files changed, 61 insertions(+), 10 deletions(-) create mode 100644 app/policies/setting_policy.rb diff --git a/app/controllers/admin/settings_controller.rb b/app/controllers/admin/settings_controller.rb index 0ad08adae..0ce7434c8 100644 --- a/app/controllers/admin/settings_controller.rb +++ b/app/controllers/admin/settings_controller.rb @@ -1,8 +1,8 @@ # frozen_string_literal: true class Admin::SettingsController < ApplicationController - before_action :set_setting, only: %i[edit update] - before_action :verify_editable_setting, only: %i[edit] + before_action :set_setting, only: %i[edit update destroy] + before_action :verify_editable_setting, only: %i[edit destroy] def index @title = t('.title') @@ -42,10 +42,18 @@ def update end end + def destroy + key = @setting.var + @setting.destroy + + redirect_to admin_settings_path, notice: t('activerecord.success.destroy', key: t("admin.settings.#{key}")) + end + private def set_setting @setting = Setting.find_or_default(var: params[:id]) + authorize @setting end def setting_param diff --git a/app/controllers/admin/users_controller.rb b/app/controllers/admin/users_controller.rb index 7ed507a6c..26a22f6c7 100644 --- a/app/controllers/admin/users_controller.rb +++ b/app/controllers/admin/users_controller.rb @@ -21,7 +21,7 @@ def create return render :new unless @user.save - redirect_to admin_users_url, notice: t('activerecord.success.create', key: t('users.title')) + redirect_to admin_users_path, notice: t('activerecord.success.create', key: t('users.title')) end def edit @@ -30,7 +30,7 @@ def edit def update if helpers.default_admin_in_demo_mode?(@user) - return redirect_to admin_users_url, alert: t('errors.messages.invaild_in_demo_mode') + return redirect_to admin_users_path, alert: t('errors.messages.invaild_in_demo_mode') end # 没有设置密码的情况下不更新该字段 @@ -38,16 +38,16 @@ def update params.delete(:password) if params[:password].blank? return render :edit unless @user.update(params) - redirect_to admin_users_url, notice: t('activerecord.success.update', key: t('users.title')) + redirect_to admin_users_path, notice: t('activerecord.success.update', key: t('users.title')) end def destroy if helpers.default_admin_in_demo_mode?(@user) - return redirect_to admin_users_url, alert: t('errors.messages.invaild_in_demo_mode') + return redirect_to admin_users_path, alert: t('errors.messages.invaild_in_demo_mode') end @user.destroy - redirect_to admin_users_url, notice: t('activerecord.success.destroy', key: t('users.title')) + redirect_to admin_users_path, notice: t('activerecord.success.destroy', key: t('users.title')) end private diff --git a/app/policies/setting_policy.rb b/app/policies/setting_policy.rb new file mode 100644 index 000000000..188494a4b --- /dev/null +++ b/app/policies/setting_policy.rb @@ -0,0 +1,38 @@ +# frozen_string_literal: true + +class SettingPolicy < ApplicationPolicy + def index? + admin? + end + + def show? + admin? + end + + def create? + admin? + end + + def new? + admin? + end + + def update? + admin? + end + + def edit? + admin? + end + + def destroy? + admin? + end + + + class Scope < Scope + def resolve + scope.all + end + end +end diff --git a/app/views/admin/settings/_form.html.slim b/app/views/admin/settings/_form.html.slim index dfbe2c91b..c8f4904c6 100644 --- a/app/views/admin/settings/_form.html.slim +++ b/app/views/admin/settings/_form.html.slim @@ -31,4 +31,9 @@ small.form-text.text-muted = t('admin.settings.validates', value: @setting.field_validates.join(' / ')) .card-footer - = f.button :submit \ No newline at end of file + - if @setting.persisted? + .float-right + = link_to t('admin.settings.reset'), admin_setting_path(@setting.var), method: :delete, data: { confirm: t('channels.messages.confirm.destroy')}, class: 'btn btn-danger' + + .float-left + = f.button :submit diff --git a/config/locales/zealot/en.yml b/config/locales/zealot/en.yml index a2c51ce4f..453764487 100644 --- a/config/locales/zealot/en.yml +++ b/config/locales/zealot/en.yml @@ -96,8 +96,8 @@ en: keep_uploads: Keep all empty_value: Empty - no_editable_key: Read only + reset: Reset to default value users: new_user: New user diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index 7557397b4..83ce71c26 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -96,8 +96,8 @@ zh-CN: keep_uploads: 永久保存上传应用版本 empty_value: 空值 - no_editable_key: 当前设置为可读,无法修改 + reset: 恢复默认值 users: new_user: 新建用户 From a1b28bd5d4076a58fc4346997f5d4d8c627d9b1f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Dec 2021 21:01:30 +0000 Subject: [PATCH 0813/2165] chore(deps): bump rails from 6.1.4.1 to 6.1.4.2 Bumps [rails](https://github.com/rails/rails) from 6.1.4.1 to 6.1.4.2. - [Release notes](https://github.com/rails/rails/releases) - [Commits](https://github.com/rails/rails/compare/v6.1.4.1...v6.1.4.2) --- updated-dependencies: - dependency-name: rails dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 118 +++++++++++++++++++++++++-------------------------- 1 file changed, 59 insertions(+), 59 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index e76a4cd23..2bfe667fe 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -3,40 +3,40 @@ GEM specs: CFPropertyList (3.0.4) rexml - actioncable (6.1.4.1) - actionpack (= 6.1.4.1) - activesupport (= 6.1.4.1) + actioncable (6.1.4.2) + actionpack (= 6.1.4.2) + activesupport (= 6.1.4.2) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (6.1.4.1) - actionpack (= 6.1.4.1) - activejob (= 6.1.4.1) - activerecord (= 6.1.4.1) - activestorage (= 6.1.4.1) - activesupport (= 6.1.4.1) + actionmailbox (6.1.4.2) + actionpack (= 6.1.4.2) + activejob (= 6.1.4.2) + activerecord (= 6.1.4.2) + activestorage (= 6.1.4.2) + activesupport (= 6.1.4.2) mail (>= 2.7.1) - actionmailer (6.1.4.1) - actionpack (= 6.1.4.1) - actionview (= 6.1.4.1) - activejob (= 6.1.4.1) - activesupport (= 6.1.4.1) + actionmailer (6.1.4.2) + actionpack (= 6.1.4.2) + actionview (= 6.1.4.2) + activejob (= 6.1.4.2) + activesupport (= 6.1.4.2) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (6.1.4.1) - actionview (= 6.1.4.1) - activesupport (= 6.1.4.1) + actionpack (6.1.4.2) + actionview (= 6.1.4.2) + activesupport (= 6.1.4.2) rack (~> 2.0, >= 2.0.9) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (6.1.4.1) - actionpack (= 6.1.4.1) - activerecord (= 6.1.4.1) - activestorage (= 6.1.4.1) - activesupport (= 6.1.4.1) + actiontext (6.1.4.2) + actionpack (= 6.1.4.2) + activerecord (= 6.1.4.2) + activestorage (= 6.1.4.2) + activesupport (= 6.1.4.2) nokogiri (>= 1.8.5) - actionview (6.1.4.1) - activesupport (= 6.1.4.1) + actionview (6.1.4.2) + activesupport (= 6.1.4.2) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) @@ -48,25 +48,25 @@ GEM activemodel (>= 4.1, < 6.2) case_transform (>= 0.2) jsonapi-renderer (>= 0.1.1.beta1, < 0.3) - activejob (6.1.4.1) - activesupport (= 6.1.4.1) + activejob (6.1.4.2) + activesupport (= 6.1.4.2) globalid (>= 0.3.6) activejob-status (0.2.2) activejob (>= 4.2) activesupport (>= 4.2) - activemodel (6.1.4.1) - activesupport (= 6.1.4.1) - activerecord (6.1.4.1) - activemodel (= 6.1.4.1) - activesupport (= 6.1.4.1) - activestorage (6.1.4.1) - actionpack (= 6.1.4.1) - activejob (= 6.1.4.1) - activerecord (= 6.1.4.1) - activesupport (= 6.1.4.1) + activemodel (6.1.4.2) + activesupport (= 6.1.4.2) + activerecord (6.1.4.2) + activemodel (= 6.1.4.2) + activesupport (= 6.1.4.2) + activestorage (6.1.4.2) + actionpack (= 6.1.4.2) + activejob (= 6.1.4.2) + activerecord (= 6.1.4.2) + activesupport (= 6.1.4.2) marcel (~> 1.0.0) mini_mime (>= 1.1.0) - activesupport (6.1.4.1) + activesupport (6.1.4.2) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) @@ -172,7 +172,7 @@ GEM omniauth (~> 1.3) pyu-ruby-sasl (>= 0.0.3.3, < 0.1) rubyntlm (~> 0.5) - globalid (0.5.2) + globalid (1.0.0) activesupport (>= 5.0) google-protobuf (3.18.1) graphiql-rails (1.8.0) @@ -269,7 +269,7 @@ GEM activesupport (>= 4) railties (>= 4) request_store (~> 1.0) - loofah (2.12.0) + loofah (2.13.0) crass (~> 1.0.2) nokogiri (>= 1.5.9) lumberjack (1.2.8) @@ -278,7 +278,7 @@ GEM marcel (1.0.2) method_source (1.0.0) mini_magick (4.11.0) - mini_mime (1.1.1) + mini_mime (1.1.2) mini_portile2 (2.6.1) minitest (5.14.4) mixlib-shellout (3.2.5) @@ -354,20 +354,20 @@ GEM rack rack-test (1.1.0) rack (>= 1.0, < 3) - rails (6.1.4.1) - actioncable (= 6.1.4.1) - actionmailbox (= 6.1.4.1) - actionmailer (= 6.1.4.1) - actionpack (= 6.1.4.1) - actiontext (= 6.1.4.1) - actionview (= 6.1.4.1) - activejob (= 6.1.4.1) - activemodel (= 6.1.4.1) - activerecord (= 6.1.4.1) - activestorage (= 6.1.4.1) - activesupport (= 6.1.4.1) + rails (6.1.4.2) + actioncable (= 6.1.4.2) + actionmailbox (= 6.1.4.2) + actionmailer (= 6.1.4.2) + actionpack (= 6.1.4.2) + actiontext (= 6.1.4.2) + actionview (= 6.1.4.2) + activejob (= 6.1.4.2) + activemodel (= 6.1.4.2) + activerecord (= 6.1.4.2) + activestorage (= 6.1.4.2) + activesupport (= 6.1.4.2) bundler (>= 1.15.0) - railties (= 6.1.4.1) + railties (= 6.1.4.2) sprockets-rails (>= 2.0.0) rails-dom-testing (2.0.3) activesupport (>= 4.2.0) @@ -379,9 +379,9 @@ GEM railties (>= 6.0.0, < 7) rails-settings-cached (2.8.1) rails (>= 5.0.0) - railties (6.1.4.1) - actionpack (= 6.1.4.1) - activesupport (= 6.1.4.1) + railties (6.1.4.2) + actionpack (= 6.1.4.2) + activesupport (= 6.1.4.2) method_source rake (>= 0.13) thor (~> 1.0) @@ -474,9 +474,9 @@ GEM sprockets (4.0.2) concurrent-ruby (~> 1.0) rack (> 1, < 3) - sprockets-rails (3.2.2) - actionpack (>= 4.0) - activesupport (>= 4.0) + sprockets-rails (3.4.2) + actionpack (>= 5.2) + activesupport (>= 5.2) sprockets (>= 3.0.0) ssrf_filter (1.0.7) sys-filesystem (1.4.3) From 11d7cb9a362be0e63dcecb12fa9c1adcca2d64a4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 15 Dec 2021 21:01:11 +0000 Subject: [PATCH 0814/2165] chore(deps): bump graphql from 1.13.1 to 1.13.2 Bumps [graphql](https://github.com/rmosolgo/graphql-ruby) from 1.13.1 to 1.13.2. - [Release notes](https://github.com/rmosolgo/graphql-ruby/releases) - [Changelog](https://github.com/rmosolgo/graphql-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/rmosolgo/graphql-ruby/compare/v1.13.1...v1.13.2) --- updated-dependencies: - dependency-name: graphql dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index c657cd2a2..13d7073c7 100644 --- a/Gemfile +++ b/Gemfile @@ -18,7 +18,7 @@ gem 'lograge', '~> 0.11.2' # API gem 'active_model_serializers', '~> 0.10.12' -gem 'graphql', '~> 1.13.1' +gem 'graphql', '~> 1.13.2' gem 'rack-cors', '~> 1.1.1' gem 'health_check', '~> 3.1.0' diff --git a/Gemfile.lock b/Gemfile.lock index 2bfe667fe..7b066ad63 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -178,7 +178,7 @@ GEM graphiql-rails (1.8.0) railties sprockets-rails - graphql (1.13.1) + graphql (1.13.2) guard (2.18.0) formatador (>= 0.2.4) listen (>= 2.7, < 4.0) @@ -542,7 +542,7 @@ DEPENDENCIES friendly_id (~> 5.4.2) gitlab_omniauth-ldap (~> 2.1.1) graphiql-rails - graphql (~> 1.13.1) + graphql (~> 1.13.2) guard (~> 2.18.0) guard-bundler guard-migrate From 94581e8fdcc0fb011d6cbe4e6e86723b9be45642 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 15 Dec 2021 21:01:48 +0000 Subject: [PATCH 0815/2165] chore(deps): bump rails from 6.1.4.2 to 6.1.4.3 Bumps [rails](https://github.com/rails/rails) from 6.1.4.2 to 6.1.4.3. - [Release notes](https://github.com/rails/rails/releases) - [Commits](https://github.com/rails/rails/compare/v6.1.4.2...v6.1.4.3) --- updated-dependencies: - dependency-name: rails dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 108 +++++++++++++++++++++++++-------------------------- 1 file changed, 54 insertions(+), 54 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 2bfe667fe..47ad887d8 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -3,40 +3,40 @@ GEM specs: CFPropertyList (3.0.4) rexml - actioncable (6.1.4.2) - actionpack (= 6.1.4.2) - activesupport (= 6.1.4.2) + actioncable (6.1.4.3) + actionpack (= 6.1.4.3) + activesupport (= 6.1.4.3) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (6.1.4.2) - actionpack (= 6.1.4.2) - activejob (= 6.1.4.2) - activerecord (= 6.1.4.2) - activestorage (= 6.1.4.2) - activesupport (= 6.1.4.2) + actionmailbox (6.1.4.3) + actionpack (= 6.1.4.3) + activejob (= 6.1.4.3) + activerecord (= 6.1.4.3) + activestorage (= 6.1.4.3) + activesupport (= 6.1.4.3) mail (>= 2.7.1) - actionmailer (6.1.4.2) - actionpack (= 6.1.4.2) - actionview (= 6.1.4.2) - activejob (= 6.1.4.2) - activesupport (= 6.1.4.2) + actionmailer (6.1.4.3) + actionpack (= 6.1.4.3) + actionview (= 6.1.4.3) + activejob (= 6.1.4.3) + activesupport (= 6.1.4.3) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (6.1.4.2) - actionview (= 6.1.4.2) - activesupport (= 6.1.4.2) + actionpack (6.1.4.3) + actionview (= 6.1.4.3) + activesupport (= 6.1.4.3) rack (~> 2.0, >= 2.0.9) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (6.1.4.2) - actionpack (= 6.1.4.2) - activerecord (= 6.1.4.2) - activestorage (= 6.1.4.2) - activesupport (= 6.1.4.2) + actiontext (6.1.4.3) + actionpack (= 6.1.4.3) + activerecord (= 6.1.4.3) + activestorage (= 6.1.4.3) + activesupport (= 6.1.4.3) nokogiri (>= 1.8.5) - actionview (6.1.4.2) - activesupport (= 6.1.4.2) + actionview (6.1.4.3) + activesupport (= 6.1.4.3) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) @@ -48,25 +48,25 @@ GEM activemodel (>= 4.1, < 6.2) case_transform (>= 0.2) jsonapi-renderer (>= 0.1.1.beta1, < 0.3) - activejob (6.1.4.2) - activesupport (= 6.1.4.2) + activejob (6.1.4.3) + activesupport (= 6.1.4.3) globalid (>= 0.3.6) activejob-status (0.2.2) activejob (>= 4.2) activesupport (>= 4.2) - activemodel (6.1.4.2) - activesupport (= 6.1.4.2) - activerecord (6.1.4.2) - activemodel (= 6.1.4.2) - activesupport (= 6.1.4.2) - activestorage (6.1.4.2) - actionpack (= 6.1.4.2) - activejob (= 6.1.4.2) - activerecord (= 6.1.4.2) - activesupport (= 6.1.4.2) + activemodel (6.1.4.3) + activesupport (= 6.1.4.3) + activerecord (6.1.4.3) + activemodel (= 6.1.4.3) + activesupport (= 6.1.4.3) + activestorage (6.1.4.3) + actionpack (= 6.1.4.3) + activejob (= 6.1.4.3) + activerecord (= 6.1.4.3) + activesupport (= 6.1.4.3) marcel (~> 1.0.0) mini_mime (>= 1.1.0) - activesupport (6.1.4.2) + activesupport (6.1.4.3) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) @@ -280,7 +280,7 @@ GEM mini_magick (4.11.0) mini_mime (1.1.2) mini_portile2 (2.6.1) - minitest (5.14.4) + minitest (5.15.0) mixlib-shellout (3.2.5) chef-utils msgpack (1.4.2) @@ -354,20 +354,20 @@ GEM rack rack-test (1.1.0) rack (>= 1.0, < 3) - rails (6.1.4.2) - actioncable (= 6.1.4.2) - actionmailbox (= 6.1.4.2) - actionmailer (= 6.1.4.2) - actionpack (= 6.1.4.2) - actiontext (= 6.1.4.2) - actionview (= 6.1.4.2) - activejob (= 6.1.4.2) - activemodel (= 6.1.4.2) - activerecord (= 6.1.4.2) - activestorage (= 6.1.4.2) - activesupport (= 6.1.4.2) + rails (6.1.4.3) + actioncable (= 6.1.4.3) + actionmailbox (= 6.1.4.3) + actionmailer (= 6.1.4.3) + actionpack (= 6.1.4.3) + actiontext (= 6.1.4.3) + actionview (= 6.1.4.3) + activejob (= 6.1.4.3) + activemodel (= 6.1.4.3) + activerecord (= 6.1.4.3) + activestorage (= 6.1.4.3) + activesupport (= 6.1.4.3) bundler (>= 1.15.0) - railties (= 6.1.4.2) + railties (= 6.1.4.3) sprockets-rails (>= 2.0.0) rails-dom-testing (2.0.3) activesupport (>= 4.2.0) @@ -379,9 +379,9 @@ GEM railties (>= 6.0.0, < 7) rails-settings-cached (2.8.1) rails (>= 5.0.0) - railties (6.1.4.2) - actionpack (= 6.1.4.2) - activesupport (= 6.1.4.2) + railties (6.1.4.3) + actionpack (= 6.1.4.3) + activesupport (= 6.1.4.3) method_source rake (>= 0.13) thor (~> 1.0) From ae6b364eb4af746cfb260d52f5d9ec4abcbadfbb Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 16 Dec 2021 15:50:51 +0800 Subject: [PATCH 0816/2165] =?UTF-8?q?feat:=20=E6=94=AF=E6=8C=81=20Android?= =?UTF-8?q?=20app=20links=20(=E5=8C=BA=E5=88=86=20deep=20links=20=E5=92=8C?= =?UTF-8?q?=20url=20schemes)=20=E7=9A=84=E8=A7=A3=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .devcontainer/Dockerfile | 53 +++++++++++++++++++ .devcontainer/Dockerfile.ruby | 48 +++++++++++++++++ .devcontainer/devcontainer.json | 37 +++++++++++++ .devcontainer/docker-compose.yml | 52 ++++++++++++++++++ Gemfile | 2 +- Gemfile.lock | 16 +++--- app/services/teardown_service.rb | 2 + app/views/teardowns/_android.html.slim | 2 + db/migrate/20201216070418_create_metadata.rb | 3 +- ...216073222_append_deep_links_to_metadata.rb | 5 ++ db/schema.rb | 39 +++++--------- 11 files changed, 222 insertions(+), 37 deletions(-) create mode 100755 .devcontainer/Dockerfile create mode 100755 .devcontainer/Dockerfile.ruby create mode 100755 .devcontainer/devcontainer.json create mode 100755 .devcontainer/docker-compose.yml create mode 100644 db/migrate/20211216073222_append_deep_links_to_metadata.rb diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile new file mode 100755 index 000000000..033eac1db --- /dev/null +++ b/.devcontainer/Dockerfile @@ -0,0 +1,53 @@ +# pre-build stage +ARG VARIANT=2.7 +FROM mcr.microsoft.com/vscode/devcontainers/ruby:${VARIANT} + +# Update args in docker-compose.yaml to set the UID/GID of the "vscode" user. +ARG USER_UID=1000 +ARG USER_GID=$USER_UID +RUN if [ "$USER_GID" != "1000" ] || [ "$USER_UID" != "1000" ]; then \ + groupmod --gid $USER_GID vscode \ + && usermod --uid $USER_UID --gid $USER_GID vscode \ + && chmod -R $USER_UID:$USER_GID /home/vscode; \ + fi + +# [Option] Install Node.js +ARG INSTALL_NODE="true" +ARG NODE_VERSION="lts/*" +RUN if [ "${INSTALL_NODE}" = "true" ]; then su vscode -c "source /usr/local/share/nvm/nvm.sh && nvm install ${NODE_VERSION} 2>&1"; fi + + +# tmux is for overmind +# TODO : install foreman in future +# packages: postgresql-server-dev-all +# may be postgres in same machine + +RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \ + && apt-get -y install --no-install-recommends \ + libssl-dev \ + libwebp-dev \ + webp \ + tar \ + tzdata \ + postgresql-client \ + yarn \ + git \ + imagemagick \ + tmux \ + zsh + + + +# Do the set up required for zealot app +# WORKDIR /workspace +# COPY ../ /workspace + +# [Optional] Uncomment this line to install global node packages. +# RUN su vscode -c "source /usr/local/share/nvm/nvm.sh && npm install -g " 2>&1 + +# COPY package.json yarn.lock ./ +# RUN yarn install + +# COPY Gemfile Gemfile.lock ./ +# RUN gem install bundler +# RUN bundle install \ No newline at end of file diff --git a/.devcontainer/Dockerfile.ruby b/.devcontainer/Dockerfile.ruby new file mode 100755 index 000000000..ca9f99878 --- /dev/null +++ b/.devcontainer/Dockerfile.ruby @@ -0,0 +1,48 @@ +FROM ruby:2.7-alpine + +ARG BUILD_PACKAGES="build-base libxml2 libxslt git" +ARG DEV_PACKAGES="libxml2-dev libxslt-dev yaml-dev postgresql-dev nodejs npm yarn libwebp-dev libpng-dev tiff-dev" +ARG RUBY_PACKAGES="tzdata" + +ARG REPLACE_CHINA_MIRROR="true" +ARG ORIGINAL_REPO_URL="dl-cdn.alpinelinux.org" +ARG MIRROR_REPO_URL="mirrors.ustc.edu.cn" +ARG RUBYGEMS_SOURCE="https://gems.ruby-china.com/" +ARG NPM_REGISTRY="https://registry.npm.taobao.org" +ARG RUBY_GEMS="bundler" +ARG APP_ROOT="/home/vscode" + +ENV BUNDLE_APP_CONFIG="$APP_ROOT/.bundle" \ + RAILS_ENV="development" + +# System dependencies +RUN set -ex && \ + if [[ "$REPLACE_CHINA_MIRROR" == "true" ]]; then \ + sed -i "s/$ORIGINAL_REPO_URL/$MIRROR_REPO_URL/g" /etc/apk/repositories && \ + gem sources --add $RUBYGEMS_SOURCE --remove https://rubygems.org/ && \ + bundle config mirror.https://rubygems.org $RUBYGEMS_SOURCE; \ + fi && \ + apk --update --no-cache add $BUILD_PACKAGES $DEV_PACKAGES $RUBY_PACKAGES && \ + if [[ "$REPLACE_CHINA_MIRROR" == "true" ]]; then \ + yarn config set registry $NPM_REGISTRY; \ + fi && \ + gem install $RUBY_GEMS + +# Update args in docker-compose.yaml to set the UID/GID of the "vscode" user. +ARG USER_UID=1000 +ARG USER_GID=$USER_UID +RUN addgroup -g $USER_GID vscode && \ + adduser -u $USER_UID -G vscode -D vscode + +WORKDIR $APP_ROOT + +# Node dependencies +COPY package.json yarn.lock ./ +RUN yarn install + +# # Ruby dependencies +# COPY Gemfile Gemfile.lock ./ +# RUN bundle config set --local path 'vendor/bundle' && \ +# bundle install --jobs `expr $(cat /proc/cpuinfo | grep -c "cpu cores") - 1` --retry 3 + +# COPY . $APP_ROOT \ No newline at end of file diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100755 index 000000000..f61f24ec4 --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,37 @@ +{ + // General + "name": "Zealot Development Codespace", + "dockerFile": "Dockerfile.ruby", + + // docker-compose + // "dockerComposeFile": "docker-compose.yml", + // "service": "zealot", + // "workspaceFolder": "/workspace", + // "workspaceMount": "source=${localWorkspaceFolder}/../..,target=/workspace,type=bind", + + // TODO: figure whether we can get all this ports work properly + + // 3000 rails + // 3035 webpacker + // 5432 postgres + // 6379 redis + // "forwardPorts": [5432, 6379], + //your application may need to listen on all interfaces (0.0.0.0) not just localhost for it to be available externally. Defaults to [] + "appPort": [3001], + + // Use 'postCreateCommand' to run commands after the container is created. + "postCreateCommand": "ruby --version", + + // "settings": { + // "terminal.integrated.shell.linux": "/bin/zsh" + // }, + + // Add the IDs of extensions you want installed when the container is created. + "extensions": [ + "rebornix.Ruby", + "misogi.ruby-rubocop", + "wingrunr21.vscode-ruby" + ], + + "remoteUser": "vscode" +} diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml new file mode 100755 index 000000000..5d48b2a0c --- /dev/null +++ b/.devcontainer/docker-compose.yml @@ -0,0 +1,52 @@ +# https://github.com/microsoft/vscode-dev-containers/blob/master/containers/python-3-postgres/.devcontainer/docker-compose.yml +# https://github.com/microsoft/vscode-dev-containers/blob/master/containers/ruby-rails/.devcontainer/devcontainer.json +# + +version: '3' + +services: + zealot: + build: + context: .. + dockerfile: .devcontainer/Dockerfile + args: + # Update 'VARIANT' to pick a Ruby version: 2, 2.7, 2.6, 2.5 + VARIANT: 2.7 + # [Choice] Install Node.js + INSTALL_NODE: "true" + NODE_VERSION: "lts/*" + # On Linux, you may need to update USER_UID and USER_GID below if not your local UID is not 1000. + USER_UID: 1000 + USER_GID: 1000 + + volumes: + - ..:/workspace:cached + + env_file: ../.env + + # Overrides default command so things don't shut down after the process ends. + command: sleep infinity + + # Runs app on the same network as the database container, allows "forwardPorts" in devcontainer.json function. + network_mode: service:db + + db: + image: postgres:latest + restart: unless-stopped + volumes: + - postgres-data:/var/lib/postgresql/data + environment: + POSTGRES_USER: postgres + POSTGRES_DB: postgres + POSTGRES_PASSWORD: postgres + + redis: + image: redis:latest + restart: unless-stopped + network_mode: service:db + volumes: + - redis-data:/data + +volumes: + postgres-data: + redis-data: diff --git a/Gemfile b/Gemfile index c657cd2a2..09c29ace2 100644 --- a/Gemfile +++ b/Gemfile @@ -85,7 +85,7 @@ gem 'turbolinks', '~> 5' gem 'webpacker', '~> 5.4' # 用于解析 iOS, Android 和 macOS 应用 -gem 'app-info', '~> 2.7.0' +gem 'app-info', '~> 2.8.0' # 带缓存的配置库 gem 'rails-settings-cached', '~> 2.8.1' diff --git a/Gemfile.lock b/Gemfile.lock index e76a4cd23..3d4adff76 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,7 @@ GEM remote: https://rubygems.org/ specs: - CFPropertyList (3.0.4) + CFPropertyList (3.0.5) rexml actioncable (6.1.4.1) actionpack (= 6.1.4.1) @@ -74,14 +74,14 @@ GEM zeitwerk (~> 2.3) addressable (2.8.0) public_suffix (>= 2.0.2, < 5.0) - android_parser (2.4.1) - rubyzip (>= 1.0.0) - app-info (2.7.0) + android_parser (2.5.0) + rubyzip (>= 1.0, < 3.0) + app-info (2.8.0) CFPropertyList (>= 2.3.4, < 3.1.0) - android_parser (~> 2.4.1) + android_parser (~> 2.5.0) google-protobuf (~> 3.18.0) icns (~> 0.2.0) - image_size (>= 1.5, < 2.2) + image_size (>= 1.5, < 3.1) ruby-macho (>= 1.4, < 3) rubyzip (>= 1.2, < 3.0) uuidtools (>= 2.1.5, < 2.3.0) @@ -223,7 +223,7 @@ GEM image_processing (1.12.1) mini_magick (>= 4.9.5, < 5) ruby-vips (>= 2.0.17, < 3) - image_size (2.1.2) + image_size (3.0.1) interception (0.5) ipaddr (1.2.2) jb (0.8.0) @@ -528,7 +528,7 @@ DEPENDENCIES active_analytics active_model_serializers (~> 0.10.12) activejob-status - app-info (~> 2.7.0) + app-info (~> 2.8.0) awesome_print better_errors binding_of_caller diff --git a/app/services/teardown_service.rb b/app/services/teardown_service.rb index ee4c78716..0bfa87692 100644 --- a/app/services/teardown_service.rb +++ b/app/services/teardown_service.rb @@ -61,6 +61,8 @@ def process_android(parser, metadata) metadata.permissions = parser.use_permissions.select(&:present?) if parser.use_permissions.present? metadata.features = parser.use_features.select(&:present?) if parser.use_features.present? metadata.services = parser.services.sort_by(&:name).select(&:present?).map(&:name) if parser.services.present? + metadata.url_schemes = parser.schemes.sort if parser.schemes.present? + metadata.deep_links = parser.deep_links.sort if parser.deep_links.present? end def process_ios(parser, metadata) diff --git a/app/views/teardowns/_android.html.slim b/app/views/teardowns/_android.html.slim index 7ce0a3c20..1a309d526 100644 --- a/app/views/teardowns/_android.html.slim +++ b/app/views/teardowns/_android.html.slim @@ -36,6 +36,8 @@ ruby: = render 'card', title: 'Activities', raw: @metadata.activities .col-md-6 + == render 'card', title: 'Deep Links', raw: @metadata.deep_links + == render 'card', title: 'URL Schemes', raw: @metadata.url_schemes = render 'card', title: 'Features', raw: @metadata.features = render 'card', title: 'Permissions', raw: @metadata.permissions = render 'card', title: 'Services', raw: @metadata.services \ No newline at end of file diff --git a/db/migrate/20201216070418_create_metadata.rb b/db/migrate/20201216070418_create_metadata.rb index 3b72046ed..0b80ad361 100644 --- a/db/migrate/20201216070418_create_metadata.rb +++ b/db/migrate/20201216070418_create_metadata.rb @@ -11,6 +11,7 @@ def up t.integer :size t.string :min_sdk_version t.string :target_sdk_version + t.jsonb :url_schemes, null: false, default: [] # Android t.jsonb :activities, null: false, default: [] @@ -25,7 +26,6 @@ def up t.jsonb :entitlements, null: false, default: {} t.jsonb :devices, null: false, default: [] t.jsonb :capabilities, null: false, default: [] - t.jsonb :url_schemes, null: false, default: [] t.string :checksum, null: false, index: true t.timestamps @@ -40,6 +40,7 @@ def up def down drop_table :metadata + execute <<-SQL DROP TYPE metadata_platform; SQL diff --git a/db/migrate/20211216073222_append_deep_links_to_metadata.rb b/db/migrate/20211216073222_append_deep_links_to_metadata.rb new file mode 100644 index 000000000..5794bb219 --- /dev/null +++ b/db/migrate/20211216073222_append_deep_links_to_metadata.rb @@ -0,0 +1,5 @@ +class AppendDeepLinksToMetadata < ActiveRecord::Migration[6.1] + def change + add_column :metadata, :deep_links, :jsonb, null: false, default: [] + end +end diff --git a/db/schema.rb b/db/schema.rb index c532cb474..01abb1233 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 2021_10_19_110202) do +ActiveRecord::Schema.define(version: 2021_12_16_073222) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -108,32 +108,8 @@ t.index ["release_id", "device_id"], name: "index_devices_releases_on_release_id_and_device_id" end - create_table "metadata", force: :cascade do |t| - t.bigint "release_id" - t.bigint "user_id" - t.string "device", null: false - t.string "name" - t.string "release_version" - t.string "build_version" - t.string "bundle_id" - t.integer "size" - t.string "min_sdk_version" - t.string "target_sdk_version" - t.jsonb "activities", default: [], null: false - t.jsonb "services", default: [], null: false - t.jsonb "permissions", default: [], null: false - t.jsonb "features", default: [], null: false - t.string "release_type" - t.jsonb "mobileprovision", default: {}, null: false - t.jsonb "developer_certs", default: [], null: false - t.jsonb "entitlements", default: {}, null: false - t.jsonb "devices", default: [], null: false - t.jsonb "capabilities", default: [], null: false - t.jsonb "url_schemes", default: [], null: false - t.string "checksum", null: false - t.datetime "created_at", precision: 6, null: false - t.datetime "updated_at", precision: 6, null: false - end +# Could not dump table "metadata" because of following StandardError +# Unknown type 'metadata_platform' for column 'platform' create_table "releases", force: :cascade do |t| t.bigint "channel_id" @@ -230,4 +206,13 @@ t.index ["url"], name: "index_web_hooks_on_url" end + add_foreign_key "channels", "schemes", on_delete: :cascade + add_foreign_key "debug_file_metadata", "debug_files" + add_foreign_key "debug_files", "apps", on_delete: :cascade + add_foreign_key "metadata", "releases", on_delete: :cascade + add_foreign_key "metadata", "users", on_delete: :cascade + add_foreign_key "releases", "channels", on_delete: :cascade + add_foreign_key "schemes", "apps", on_delete: :cascade + add_foreign_key "user_providers", "users", on_delete: :cascade + add_foreign_key "web_hooks", "channels", on_delete: :cascade end From 64c00dea12bf03f26c20b317243335519275df9c Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 16 Dec 2021 16:56:31 +0800 Subject: [PATCH 0817/2165] =?UTF-8?q?style:=20=E8=AE=BE=E7=BD=AE=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E5=8A=A0=E5=BC=BA=E5=BC=80=E5=90=AF=E5=85=B3=E9=97=AD?= =?UTF-8?q?=E7=9A=84=E8=A7=86=E8=A7=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .devcontainer/Dockerfile | 53 ------- .devcontainer/Dockerfile.ruby | 48 ------ .devcontainer/devcontainer.json | 37 ----- .devcontainer/docker-compose.yml | 52 ------- .rubocop.yml | 12 +- app/controllers/api/base_controller.rb | 3 +- app/controllers/application_controller.rb | 3 +- app/controllers/teardowns_controller.rb | 4 +- app/graphql/types/query_type.rb | 2 + app/graphql/zealot_schema.rb | 2 + app/helpers/application_helper.rb | 22 +-- app/helpers/apps_helper.rb | 10 +- app/helpers/users_helper.rb | 9 ++ app/jobs/clean_old_releases_job.rb | 3 +- app/models/concerns/setting_helper.rb | 88 +++++++++++ app/models/concerns/setting_suger.rb | 53 +++++++ app/models/concerns/setting_validate.rb | 46 ++++++ app/models/setting.rb | 171 +-------------------- app/services/teardown_service.rb | 12 +- app/views/admin/settings/_switch_icon.slim | 6 + app/views/admin/settings/index.html.slim | 8 +- app/views/layouts/_footer.html.slim | 10 +- config/routes.rb | 2 +- 23 files changed, 256 insertions(+), 400 deletions(-) delete mode 100755 .devcontainer/Dockerfile delete mode 100755 .devcontainer/Dockerfile.ruby delete mode 100755 .devcontainer/devcontainer.json delete mode 100755 .devcontainer/docker-compose.yml create mode 100644 app/models/concerns/setting_helper.rb create mode 100644 app/models/concerns/setting_suger.rb create mode 100644 app/models/concerns/setting_validate.rb create mode 100644 app/views/admin/settings/_switch_icon.slim diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile deleted file mode 100755 index 033eac1db..000000000 --- a/.devcontainer/Dockerfile +++ /dev/null @@ -1,53 +0,0 @@ -# pre-build stage -ARG VARIANT=2.7 -FROM mcr.microsoft.com/vscode/devcontainers/ruby:${VARIANT} - -# Update args in docker-compose.yaml to set the UID/GID of the "vscode" user. -ARG USER_UID=1000 -ARG USER_GID=$USER_UID -RUN if [ "$USER_GID" != "1000" ] || [ "$USER_UID" != "1000" ]; then \ - groupmod --gid $USER_GID vscode \ - && usermod --uid $USER_UID --gid $USER_GID vscode \ - && chmod -R $USER_UID:$USER_GID /home/vscode; \ - fi - -# [Option] Install Node.js -ARG INSTALL_NODE="true" -ARG NODE_VERSION="lts/*" -RUN if [ "${INSTALL_NODE}" = "true" ]; then su vscode -c "source /usr/local/share/nvm/nvm.sh && nvm install ${NODE_VERSION} 2>&1"; fi - - -# tmux is for overmind -# TODO : install foreman in future -# packages: postgresql-server-dev-all -# may be postgres in same machine - -RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \ - && apt-get -y install --no-install-recommends \ - libssl-dev \ - libwebp-dev \ - webp \ - tar \ - tzdata \ - postgresql-client \ - yarn \ - git \ - imagemagick \ - tmux \ - zsh - - - -# Do the set up required for zealot app -# WORKDIR /workspace -# COPY ../ /workspace - -# [Optional] Uncomment this line to install global node packages. -# RUN su vscode -c "source /usr/local/share/nvm/nvm.sh && npm install -g " 2>&1 - -# COPY package.json yarn.lock ./ -# RUN yarn install - -# COPY Gemfile Gemfile.lock ./ -# RUN gem install bundler -# RUN bundle install \ No newline at end of file diff --git a/.devcontainer/Dockerfile.ruby b/.devcontainer/Dockerfile.ruby deleted file mode 100755 index ca9f99878..000000000 --- a/.devcontainer/Dockerfile.ruby +++ /dev/null @@ -1,48 +0,0 @@ -FROM ruby:2.7-alpine - -ARG BUILD_PACKAGES="build-base libxml2 libxslt git" -ARG DEV_PACKAGES="libxml2-dev libxslt-dev yaml-dev postgresql-dev nodejs npm yarn libwebp-dev libpng-dev tiff-dev" -ARG RUBY_PACKAGES="tzdata" - -ARG REPLACE_CHINA_MIRROR="true" -ARG ORIGINAL_REPO_URL="dl-cdn.alpinelinux.org" -ARG MIRROR_REPO_URL="mirrors.ustc.edu.cn" -ARG RUBYGEMS_SOURCE="https://gems.ruby-china.com/" -ARG NPM_REGISTRY="https://registry.npm.taobao.org" -ARG RUBY_GEMS="bundler" -ARG APP_ROOT="/home/vscode" - -ENV BUNDLE_APP_CONFIG="$APP_ROOT/.bundle" \ - RAILS_ENV="development" - -# System dependencies -RUN set -ex && \ - if [[ "$REPLACE_CHINA_MIRROR" == "true" ]]; then \ - sed -i "s/$ORIGINAL_REPO_URL/$MIRROR_REPO_URL/g" /etc/apk/repositories && \ - gem sources --add $RUBYGEMS_SOURCE --remove https://rubygems.org/ && \ - bundle config mirror.https://rubygems.org $RUBYGEMS_SOURCE; \ - fi && \ - apk --update --no-cache add $BUILD_PACKAGES $DEV_PACKAGES $RUBY_PACKAGES && \ - if [[ "$REPLACE_CHINA_MIRROR" == "true" ]]; then \ - yarn config set registry $NPM_REGISTRY; \ - fi && \ - gem install $RUBY_GEMS - -# Update args in docker-compose.yaml to set the UID/GID of the "vscode" user. -ARG USER_UID=1000 -ARG USER_GID=$USER_UID -RUN addgroup -g $USER_GID vscode && \ - adduser -u $USER_UID -G vscode -D vscode - -WORKDIR $APP_ROOT - -# Node dependencies -COPY package.json yarn.lock ./ -RUN yarn install - -# # Ruby dependencies -# COPY Gemfile Gemfile.lock ./ -# RUN bundle config set --local path 'vendor/bundle' && \ -# bundle install --jobs `expr $(cat /proc/cpuinfo | grep -c "cpu cores") - 1` --retry 3 - -# COPY . $APP_ROOT \ No newline at end of file diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json deleted file mode 100755 index f61f24ec4..000000000 --- a/.devcontainer/devcontainer.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - // General - "name": "Zealot Development Codespace", - "dockerFile": "Dockerfile.ruby", - - // docker-compose - // "dockerComposeFile": "docker-compose.yml", - // "service": "zealot", - // "workspaceFolder": "/workspace", - // "workspaceMount": "source=${localWorkspaceFolder}/../..,target=/workspace,type=bind", - - // TODO: figure whether we can get all this ports work properly - - // 3000 rails - // 3035 webpacker - // 5432 postgres - // 6379 redis - // "forwardPorts": [5432, 6379], - //your application may need to listen on all interfaces (0.0.0.0) not just localhost for it to be available externally. Defaults to [] - "appPort": [3001], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "ruby --version", - - // "settings": { - // "terminal.integrated.shell.linux": "/bin/zsh" - // }, - - // Add the IDs of extensions you want installed when the container is created. - "extensions": [ - "rebornix.Ruby", - "misogi.ruby-rubocop", - "wingrunr21.vscode-ruby" - ], - - "remoteUser": "vscode" -} diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml deleted file mode 100755 index 5d48b2a0c..000000000 --- a/.devcontainer/docker-compose.yml +++ /dev/null @@ -1,52 +0,0 @@ -# https://github.com/microsoft/vscode-dev-containers/blob/master/containers/python-3-postgres/.devcontainer/docker-compose.yml -# https://github.com/microsoft/vscode-dev-containers/blob/master/containers/ruby-rails/.devcontainer/devcontainer.json -# - -version: '3' - -services: - zealot: - build: - context: .. - dockerfile: .devcontainer/Dockerfile - args: - # Update 'VARIANT' to pick a Ruby version: 2, 2.7, 2.6, 2.5 - VARIANT: 2.7 - # [Choice] Install Node.js - INSTALL_NODE: "true" - NODE_VERSION: "lts/*" - # On Linux, you may need to update USER_UID and USER_GID below if not your local UID is not 1000. - USER_UID: 1000 - USER_GID: 1000 - - volumes: - - ..:/workspace:cached - - env_file: ../.env - - # Overrides default command so things don't shut down after the process ends. - command: sleep infinity - - # Runs app on the same network as the database container, allows "forwardPorts" in devcontainer.json function. - network_mode: service:db - - db: - image: postgres:latest - restart: unless-stopped - volumes: - - postgres-data:/var/lib/postgresql/data - environment: - POSTGRES_USER: postgres - POSTGRES_DB: postgres - POSTGRES_PASSWORD: postgres - - redis: - image: redis:latest - restart: unless-stopped - network_mode: service:db - volumes: - - redis-data:/data - -volumes: - postgres-data: - redis-data: diff --git a/.rubocop.yml b/.rubocop.yml index b93c03e9d..2d3b318ae 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -5,6 +5,7 @@ AllCops: TargetRubyVersion: 2.7 TargetRailsVersion: 6.1 DisabledByDefault: true + SuggestExtensions: false Exclude: - 'vendor/**/*' - 'node_modules/**/*' @@ -26,11 +27,12 @@ Style/FrozenStringLiteralComment: # Some blocks are longer. Metrics/BlockLength: - ExcludedMethods: + IgnoredMethods: - 'namespace' - 'create_table' Exclude: - 'config/**/*.rb' + - 'app/models/setting.rb' - 'spec/**/*.rb' - 'lib/tasks/**/*' - 'lib/backup/**/*' @@ -47,14 +49,16 @@ Metrics/MethodLength: Max: 60 Metrics/ClassLength: - Max: 150 + Max: 180 + Exclude: + - 'app/models/setting.rb' Metrics/ModuleLength: - Max: 150 + Max: 180 # Raise complexity metrics Metrics/AbcSize: - Max: 20 + Max: 40 Exclude: - 'lib/backup/**/*' diff --git a/app/controllers/api/base_controller.rb b/app/controllers/api/base_controller.rb index 2f2cf936f..b55f7fb43 100644 --- a/app/controllers/api/base_controller.rb +++ b/app/controllers/api/base_controller.rb @@ -11,7 +11,8 @@ class Api::BaseController < ActionController::API rescue_from ActiveRecord::RecordInvalid, with: :record_invalid rescue_from ActionCable::Connection::Authorization::UnauthorizedError, with: :render_unauthorized_user_key rescue_from ArgumentError, NoMethodError, PG::Error, with: :render_internal_server_error - rescue_from ActionController::ParameterMissing, CarrierWave::InvalidParameter, AppInfo::UnkownFileTypeError, with: :render_missing_params_error + rescue_from ActionController::ParameterMissing, CarrierWave::InvalidParameter, + AppInfo::UnkownFileTypeError, with: :render_missing_params_error rescue_from ActionController::UnknownFormat, with: :not_acceptable rescue_from ActionController::InvalidAuthenticityToken, with: :unprocessable_entity diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 8a43751d1..3c50a6711 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -16,7 +16,8 @@ class ApplicationController < ActionController::Base rescue_from ActiveRecord::RecordNotFound, ActionController::RoutingError, with: :not_found rescue_from ActionController::InvalidAuthenticityToken, with: :unprocessable_entity rescue_from ActionController::UnknownFormat, AppInfo::Error, with: :not_acceptable - rescue_from ActionController::ParameterMissing, CarrierWave::InvalidParameter, JSON::ParserError, AppInfo::UnkownFileTypeError, with: :bad_request + rescue_from ActionController::ParameterMissing, CarrierWave::InvalidParameter, + JSON::ParserError, AppInfo::UnkownFileTypeError, with: :bad_request rescue_from HTTP::Error, OpenSSL::SSL::SSLError, with: :internal_server_error rescue_from Pundit::NotAuthorizedError, with: :forbidden diff --git a/app/controllers/teardowns_controller.rb b/app/controllers/teardowns_controller.rb index 9a40ee47d..83fcc7a5c 100644 --- a/app/controllers/teardowns_controller.rb +++ b/app/controllers/teardowns_controller.rb @@ -13,8 +13,8 @@ def index def show @title = t('.title', name: @metadata.name, - release_version: @metadata.release_version, - build_version: @metadata.build_version) + release_version: @metadata.release_version, + build_version: @metadata.build_version) end def new diff --git a/app/graphql/types/query_type.rb b/app/graphql/types/query_type.rb index 4c7e0c713..619e6f6e1 100644 --- a/app/graphql/types/query_type.rb +++ b/app/graphql/types/query_type.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + module Types class QueryType < Types::BaseObject # Add `node(id: ID!) and `nodes(ids: [ID!]!)` diff --git a/app/graphql/zealot_schema.rb b/app/graphql/zealot_schema.rb index 1fb5b62da..5b8e5be41 100644 --- a/app/graphql/zealot_schema.rb +++ b/app/graphql/zealot_schema.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + class ZealotSchema < GraphQL::Schema mutation(Types::MutationType) query(Types::QueryType) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 39bf847a6..0e7ffd93a 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -61,10 +61,6 @@ def active_class(link_paths, class_name = 'active') is_current ? class_name : '' end - def changelog_format(changelog, **options) - simple_format changelog, **options - end - def device_name(device_type) case device_type.downcase when 'ios' @@ -115,15 +111,18 @@ def app_limited? user_agent.include?('MicroMessenger') || user_agent.include?('DingTalk') end + # Intel: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_0) AppleWebKit/537.36 (KHTML, like Gecko) + # Chrome/75.0.3770.100 Safari/537.36 + # Arm M1: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) + # Chrome/91.0.4472.114 Safari/537.36 def macos?(source = nil) - # Intel: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36 - # Arm M1: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36 source ||= user_agent source.downcase.include?('macintosh') end + # iPadOS: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15) AppleWebKit/605.1.15 (KHTML, like Gecko) + # Version/13.0 Safari/605.1.15 def ios?(source = nil) - # iPadOS: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0 Safari/605.1.15 source ||= user_agent (source =~ /iPhone|iPad|Unversal|ios|iOS/i).present? end @@ -148,15 +147,6 @@ def detect_device(device, target) value == target.to_sym end - def omniauth_display_name(provider) - case provider - when :ldap - provider.to_s.upcase - else - OmniAuth::Utils.camelize(provider).sub('Oauth2', '') - end - end - def github_repo_commit(ref) "#{Setting.repo_url}/commit/#{ref}" end diff --git a/app/helpers/apps_helper.rb b/app/helpers/apps_helper.rb index 06ced7a64..1ce056d70 100644 --- a/app/helpers/apps_helper.rb +++ b/app/helpers/apps_helper.rb @@ -71,7 +71,11 @@ def display_app_device(value) channel = value.channel channal_device_type = device_name(channel.device_type) if value.device_type - return channal_device_type == value.device_type ? channal_device_type : "#{channal_device_type} (#{value.device_type})" + if channal_device_type == value.device_type + return channal_device_type + else + return "#{channal_device_type} (#{value.device_type})" + end end else channel = value @@ -82,4 +86,8 @@ def display_app_device(value) platform = device_name(channel.device_type) channel.name == platform ? channel.name : "#{channel.name} (#{device_name(channel.device_type)})" end + + def changelog_format(changelog, **options) + simple_format changelog, **options + end end diff --git a/app/helpers/users_helper.rb b/app/helpers/users_helper.rb index bb3e28f17..18dc90b46 100644 --- a/app/helpers/users_helper.rb +++ b/app/helpers/users_helper.rb @@ -4,4 +4,13 @@ module UsersHelper def roles_collection User.roles.to_a.collect { |c| [Setting.present_roles[c[0].to_sym], c[0]] } end + + def omniauth_display_name(provider) + case provider + when :ldap + provider.to_s.upcase + else + OmniAuth::Utils.camelize(provider).sub('Oauth2', '') + end + end end diff --git a/app/jobs/clean_old_releases_job.rb b/app/jobs/clean_old_releases_job.rb index eb5cd79b4..943b03568 100644 --- a/app/jobs/clean_old_releases_job.rb +++ b/app/jobs/clean_old_releases_job.rb @@ -28,7 +28,8 @@ def clean_previouse_build_version(channel, release_version) versions = releases.map(&:version) latest_version = versions.max { |a,b| compare_version(a, b) } - logger.info("Delete channel [#{channel.id} - #{channel.app_name}] has versions: #{versions} and latest verison is #{latest_version}") + logger.info("Delete channel [#{channel.id} - #{channel.app_name}] has versions: #{versions} + and latest verison is #{latest_version}") remove_releases(channel, releases, latest_version) end diff --git a/app/models/concerns/setting_helper.rb b/app/models/concerns/setting_helper.rb new file mode 100644 index 000000000..daed361dd --- /dev/null +++ b/app/models/concerns/setting_helper.rb @@ -0,0 +1,88 @@ +# frozen_string_literal: true + +module SettingHelper + extend ActiveSupport::Concern + + REPO_URL = 'https://github.com/tryzealot/zealot' + + class_methods do + include ActionView::Helpers::TranslationHelper + + def present_schemes + [ + t('settings.default_schemes.beta', default: nil), + t('settings.default_schemes.adhoc', default: nil), + t('settings.default_schemes.production', default: nil) + ].compact + end + + def present_roles + { + user: t('settings.default_role.user', default: nil), + developer: t('settings.default_role.developer', default: nil), + admin: t('settings.default_role.admin', default: nil) + } + end + + def site_https + Rails.env.production? || ENV['ZEALOT_USE_HTTPS'].present? + end + + def site_configs + group_configs.each_with_object({}) do |(scope, items), obj| + obj[scope] = items.each_with_object({}) do |item, inner| + key = item[:key] + value = send(key.to_sym) + inner[key] = { + value: value, + readonly: item[:readonly] + } + end + end + end + + def need_restart? + Rails.configuration.x.restart_required == true + end + + def restart_required! + Rails.configuration.x.restart_required = true + end + + def clear_restart_flag! + Rails.configuration.x.restart_required = false + end + + def find_or_default(var:) + find_by(var: var) || new(var: var) + end + + def group_configs + defined_fields.select { |v| v[:options][:display] == true }.group_by { |v| v[:scope] || :misc } + end + + def host + "#{protocol}#{site_domain}" + end + + def protocol + site_https ? 'https://' : 'http://' + end + + def url_options + { + host: site_domain, + protocol: protocol, + trailing_slash: false + } + end + + def repo_url + REPO_URL + end + + def default_domain + site_https ? 'localhost' : "localhost:#{ENV['ZEALOT_PORT'] || 3000}" + end + end +end \ No newline at end of file diff --git a/app/models/concerns/setting_suger.rb b/app/models/concerns/setting_suger.rb new file mode 100644 index 000000000..f69b37a90 --- /dev/null +++ b/app/models/concerns/setting_suger.rb @@ -0,0 +1,53 @@ +# frozen_string_literal: true + +module SettingSuger + extend ActiveSupport::Concern + + def readonly? + self.class.get_field(var.to_sym).try(:[], :readonly) === true + end + + def default_value + present[:default] + end + + def type + present[:type] + end + + def validates + @validates ||= self.class.validators_on(var) + end + + def present + @present ||= self.class.get_field(var) + end + + private + + def mark_restart_flag + self.class.restart_required! + end + + def need_restart? + value_of(var, source: :restart_required) == true + end + + def convert_third_party_enabled_value + new_value = value.dup + new_value['enabled'] = ActiveModel::Type::Boolean.new.cast(value['enabled']) + self.value = new_value + end + + def third_party_auth_scope? + value_of(var, source: :scope) == :third_party_auth + end + + def value_of(key, source:) + scope = Setting.defined_fields + .select { |s| s[:key] == key } + .map { |s| s[source] || s[:options][source] } + + scope.any? ? scope.first : false + end +end \ No newline at end of file diff --git a/app/models/concerns/setting_validate.rb b/app/models/concerns/setting_validate.rb new file mode 100644 index 000000000..15a4eb046 --- /dev/null +++ b/app/models/concerns/setting_validate.rb @@ -0,0 +1,46 @@ +# frozen_string_literal: true + +module SettingValidate + extend ActiveSupport::Concern + + include ActionView::Helpers::TranslationHelper + + def field_validates + validates.each_with_object([]) do |validate, obj| + next unless value = validate_value(validate) + + obj << value + end + end + + def inclusion? + inclusions = validates.select {|v| v.is_a?(ActiveModel::Validations::InclusionValidator) } + inclusions&.first + end + + def inclusion_values + return unless inclusion = inclusion? + + delimiters = inclusion.send(:delimiter) + delimiters = delimiters.call if delimiters.respond_to?(:call) + delimiters.each_with_object({}) do |value, obj| + key = t("settings.#{var}.#{value}", default: value) + obj[key] = value + end + end + + private + + def validate_value(validate) + case validate + when ActiveModel::Validations::PresenceValidator + t('errors.messages.blank') + when ActiveRecord::Validations::LengthValidator + minimum = validate.options[:minimum] + maximum = validate.options[:maximum] + t('errors.messages.length_range', minimum: minimum, maximum: maximum) + when ActiveModel::Validations::InclusionValidator + t('errors.messages.optional_value', value: inclusion_values.values.join(', ')) + end + end +end \ No newline at end of file diff --git a/app/models/setting.rb b/app/models/setting.rb index bbe0ece0e..665717006 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -2,95 +2,15 @@ # RailsSettings Model class Setting < RailsSettings::Base - extend ActionView::Helpers::TranslationHelper - include ActionView::Helpers::TranslationHelper + include SettingHelper + include SettingValidate + include SettingSuger before_save :convert_third_party_enabled_value, if: :third_party_auth_scope? before_save :mark_restart_flag, if: :need_restart? cache_prefix { 'v2' } - REPO_URL = 'https://github.com/tryzealot/zealot' - - class << self - def present_schemes - [ - t('settings.default_schemes.beta', default: nil), - t('settings.default_schemes.adhoc', default: nil), - t('settings.default_schemes.production', default: nil) - ].compact - end - - def present_roles - { - user: t('settings.default_role.user', default: nil), - developer: t('settings.default_role.developer', default: nil), - admin: t('settings.default_role.admin', default: nil) - } - end - - def site_https - Rails.env.production? || ENV['ZEALOT_USE_HTTPS'].present? - end - - def site_configs - group_configs.each_with_object({}) do |(scope, items), obj| - obj[scope] = items.each_with_object({}) do |item, inner| - key = item[:key] - value = send(key.to_sym) - inner[key] = { - value: value, - readonly: item[:readonly] - } - end - end - end - - def need_restart? - Rails.configuration.x.restart_required == true - end - - def restart_required! - Rails.configuration.x.restart_required = true - end - - def clear_restart_flag! - Rails.configuration.x.restart_required = false - end - - def find_or_default(var:) - find_by(var: var) || new(var: var) - end - - def group_configs - defined_fields.select { |v| v[:options][:display] == true }.group_by { |v| v[:scope] || :misc } - end - - def host - "#{protocol}#{site_domain}" - end - - def protocol - site_https ? 'https://' : 'http://' - end - - def url_options - { - host: site_domain, - protocol: protocol, - trailing_slash: false - } - end - - def repo_url - REPO_URL - end - - def default_domain - site_https ? 'localhost' : "localhost:#{ENV['ZEALOT_PORT'] || 3000}" - end - end - # 系统配置 scope :general do field :site_title, default: 'Zealot', type: :string, display: true, @@ -193,89 +113,4 @@ def default_domain scope :analytics do field :google_analytics_id, default: ENV['GOOGLE_ANALYTICS_ID'], type: :string, display: true end - - def readonly? - self.class.get_field(var.to_sym).try(:[], :readonly) === true - end - - def field_validates - validates.each_with_object([]) do |validate, obj| - next unless value = validate_value(validate) - - obj << value - end - end - - def inclusion? - inclusions = validates.select {|v| v.is_a?(ActiveModel::Validations::InclusionValidator) } - inclusions&.first - end - - def inclusion_values - return unless inclusion = inclusion? - - delimiters = inclusion.send(:delimiter) - delimiters = delimiters.call if delimiters.respond_to?(:call) - delimiters.each_with_object({}) do |value, obj| - key = t("settings.#{var}.#{value}", default: value) - obj[key] = value - end - end - - def default_value - present[:default] - end - - def type - present[:type] - end - - def validates - @validates ||= self.class.validators_on(var) - end - - def present - @present ||= self.class.get_field(var) - end - - private - - def mark_restart_flag - self.class.restart_required! - end - - def need_restart? - value_of(var, source: :restart_required) == true - end - - def convert_third_party_enabled_value - new_value = value.dup - new_value['enabled'] = ActiveModel::Type::Boolean.new.cast(value['enabled']) - self.value = new_value - end - - def validate_value(validate) - case validate - when ActiveModel::Validations::PresenceValidator - t('errors.messages.blank') - when ActiveRecord::Validations::LengthValidator - minimum = validate.options[:minimum] - maximum = validate.options[:maximum] - t('errors.messages.length_range', minimum: minimum, maximum: maximum) - when ActiveModel::Validations::InclusionValidator - t('errors.messages.optional_value', value: inclusion_values.values.join(', ')) - end - end - - def third_party_auth_scope? - value_of(var, source: :scope) == :third_party_auth - end - - def value_of(key, source:) - scope = Setting.defined_fields - .select { |s| s[:key] == key } - .map { |s| s[source] || s[:options][source] } - - scope.any? ? scope.first : false - end end diff --git a/app/services/teardown_service.rb b/app/services/teardown_service.rb index 0bfa87692..e1d6ed102 100644 --- a/app/services/teardown_service.rb +++ b/app/services/teardown_service.rb @@ -57,12 +57,12 @@ def process_android(parser, metadata) metadata.bundle_id = parser.package_name metadata.target_sdk_version = parser.target_sdk_version - metadata.activities = parser.activities.select(&:present?).map(&:name) if parser.activities.present? - metadata.permissions = parser.use_permissions.select(&:present?) if parser.use_permissions.present? - metadata.features = parser.use_features.select(&:present?) if parser.use_features.present? - metadata.services = parser.services.sort_by(&:name).select(&:present?).map(&:name) if parser.services.present? - metadata.url_schemes = parser.schemes.sort if parser.schemes.present? - metadata.deep_links = parser.deep_links.sort if parser.deep_links.present? + metadata.activities = parser&.activities&.select(&:present?).map(&:name) + metadata.permissions = parser&.use_permissions&.select(&:present?) + metadata.features = parser&.use_features&.select(&:present?) + metadata.services = parser&.services&.sort_by(&:name)&.select(&:present?)&.map(&:name) + metadata.url_schemes = parser&.schemes&.sort + metadata.deep_links = parser&.deep_links&.sort end def process_ios(parser, metadata) diff --git a/app/views/admin/settings/_switch_icon.slim b/app/views/admin/settings/_switch_icon.slim new file mode 100644 index 000000000..f24a11a4a --- /dev/null +++ b/app/views/admin/settings/_switch_icon.slim @@ -0,0 +1,6 @@ +- if value.is_a?(TrueClass) + span.text-success style="padding-right: 5px" + i.fa.fas.fa-check-circle +- elsif value.is_a?(FalseClass) + span.text-danger style="padding-right: 5px" + i.fa.fas.fa-circle \ No newline at end of file diff --git a/app/views/admin/settings/index.html.slim b/app/views/admin/settings/index.html.slim index 5db308c9b..7ecad5dcc 100644 --- a/app/views/admin/settings/index.html.slim +++ b/app/views/admin/settings/index.html.slim @@ -48,9 +48,13 @@ form.form-horizontal dt = t("admin.settings.#{key}") dd - if params[:readonly] || (value.is_a?(Hash) && secure_key?(value)) - pre.disabled = display_value + pre.disabled + == render 'switch_icon', value: value + = display_value - else - pre = link_to display_value, edit_admin_setting_path(key) + pre + == render 'switch_icon', value: value + = link_to display_value, edit_admin_setting_path(key) - if key == 'demo_mode' small = t('admin.settings.demo_mode_tips') \ No newline at end of file diff --git a/app/views/layouts/_footer.html.slim b/app/views/layouts/_footer.html.slim index d7a668ac6..6ff983652 100644 --- a/app/views/layouts/_footer.html.slim +++ b/app/views/layouts/_footer.html.slim @@ -1,13 +1,9 @@ -ruby: - current_year = Time.now.year - current_veresion = Setting.version - footer.main-footer .float-right.d-none.d-sm-block b Version - = " #{current_veresion}" + = " #{Setting.version}" strong - | Copyright © 2015-#{current_year}  - a href="https://github.com/tryzealot/zealot" Zealot + | Copyright © 2015-#{Time.now.year}  + = link_to Setting.site_title, Setting.repo_url | . | All rights reserved. diff --git a/config/routes.rb b/config/routes.rb index e0fc9b783..591355df2 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -174,6 +174,6 @@ mount GraphiQL::Rails::Engine, at: "/graphiql", graphql_path: "/graphql" end - match '/', via: [:post, :put, :patch, :delete], to: 'application#raise_not_found', format: false + match '/', via: %i[post put patch delete], to: 'application#raise_not_found', format: false match '*unmatched_route', via: :all, to: 'application#raise_not_found', format: false end From e0d55ff2b2adb993fc527dd88c0a664bd798f967 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 16 Dec 2021 21:01:29 +0000 Subject: [PATCH 0818/2165] chore(deps): bump devise from 4.8.0 to 4.8.1 Bumps [devise](https://github.com/heartcombo/devise) from 4.8.0 to 4.8.1. - [Release notes](https://github.com/heartcombo/devise/releases) - [Changelog](https://github.com/heartcombo/devise/blob/main/CHANGELOG.md) - [Commits](https://github.com/heartcombo/devise/compare/v4.8.0...v4.8.1) --- updated-dependencies: - dependency-name: devise dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index e87f39861..88ef6c1cd 100644 --- a/Gemfile +++ b/Gemfile @@ -44,7 +44,7 @@ gem 'webp-ffi', '~> 0.3.1' gem 'http', '~> 5.0.4' ## 用户认证 gem 'pundit', '~> 2.1.0' -gem 'devise', '~> 4.8.0' +gem 'devise', '~> 4.8.1' gem 'devise-i18n', '~> 1.10.1' gem 'omniauth', '~> 1.9' diff --git a/Gemfile.lock b/Gemfile.lock index 0fff6b5e1..fcee4cf38 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -120,7 +120,7 @@ GEM debase-ruby_core_source (>= 0.10.2) debase-ruby_core_source (0.10.12) debug_inspector (1.1.0) - devise (4.8.0) + devise (4.8.1) bcrypt (~> 3.0) orm_adapter (~> 0.1) railties (>= 4.1.0) @@ -536,7 +536,7 @@ DEPENDENCIES byebug carrierwave (~> 2.2.2) debase - devise (~> 4.8.0) + devise (~> 4.8.1) devise-i18n (~> 1.10.1) dotenv-rails friendly_id (~> 5.4.2) From 01b326db1bd99dc46f4fe8fc97f040a9db9ea464 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 16 Dec 2021 21:01:39 +0000 Subject: [PATCH 0819/2165] chore(deps): bump rails from 6.1.4.3 to 6.1.4.4 Bumps [rails](https://github.com/rails/rails) from 6.1.4.3 to 6.1.4.4. - [Release notes](https://github.com/rails/rails/releases) - [Commits](https://github.com/rails/rails/compare/v6.1.4.3...v6.1.4.4) --- updated-dependencies: - dependency-name: rails dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 106 +++++++++++++++++++++++++-------------------------- 1 file changed, 53 insertions(+), 53 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 0fff6b5e1..f21816c9a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -3,40 +3,40 @@ GEM specs: CFPropertyList (3.0.5) rexml - actioncable (6.1.4.3) - actionpack (= 6.1.4.3) - activesupport (= 6.1.4.3) + actioncable (6.1.4.4) + actionpack (= 6.1.4.4) + activesupport (= 6.1.4.4) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (6.1.4.3) - actionpack (= 6.1.4.3) - activejob (= 6.1.4.3) - activerecord (= 6.1.4.3) - activestorage (= 6.1.4.3) - activesupport (= 6.1.4.3) + actionmailbox (6.1.4.4) + actionpack (= 6.1.4.4) + activejob (= 6.1.4.4) + activerecord (= 6.1.4.4) + activestorage (= 6.1.4.4) + activesupport (= 6.1.4.4) mail (>= 2.7.1) - actionmailer (6.1.4.3) - actionpack (= 6.1.4.3) - actionview (= 6.1.4.3) - activejob (= 6.1.4.3) - activesupport (= 6.1.4.3) + actionmailer (6.1.4.4) + actionpack (= 6.1.4.4) + actionview (= 6.1.4.4) + activejob (= 6.1.4.4) + activesupport (= 6.1.4.4) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (6.1.4.3) - actionview (= 6.1.4.3) - activesupport (= 6.1.4.3) + actionpack (6.1.4.4) + actionview (= 6.1.4.4) + activesupport (= 6.1.4.4) rack (~> 2.0, >= 2.0.9) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (6.1.4.3) - actionpack (= 6.1.4.3) - activerecord (= 6.1.4.3) - activestorage (= 6.1.4.3) - activesupport (= 6.1.4.3) + actiontext (6.1.4.4) + actionpack (= 6.1.4.4) + activerecord (= 6.1.4.4) + activestorage (= 6.1.4.4) + activesupport (= 6.1.4.4) nokogiri (>= 1.8.5) - actionview (6.1.4.3) - activesupport (= 6.1.4.3) + actionview (6.1.4.4) + activesupport (= 6.1.4.4) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) @@ -48,25 +48,25 @@ GEM activemodel (>= 4.1, < 6.2) case_transform (>= 0.2) jsonapi-renderer (>= 0.1.1.beta1, < 0.3) - activejob (6.1.4.3) - activesupport (= 6.1.4.3) + activejob (6.1.4.4) + activesupport (= 6.1.4.4) globalid (>= 0.3.6) activejob-status (0.2.2) activejob (>= 4.2) activesupport (>= 4.2) - activemodel (6.1.4.3) - activesupport (= 6.1.4.3) - activerecord (6.1.4.3) - activemodel (= 6.1.4.3) - activesupport (= 6.1.4.3) - activestorage (6.1.4.3) - actionpack (= 6.1.4.3) - activejob (= 6.1.4.3) - activerecord (= 6.1.4.3) - activesupport (= 6.1.4.3) + activemodel (6.1.4.4) + activesupport (= 6.1.4.4) + activerecord (6.1.4.4) + activemodel (= 6.1.4.4) + activesupport (= 6.1.4.4) + activestorage (6.1.4.4) + actionpack (= 6.1.4.4) + activejob (= 6.1.4.4) + activerecord (= 6.1.4.4) + activesupport (= 6.1.4.4) marcel (~> 1.0.0) mini_mime (>= 1.1.0) - activesupport (6.1.4.3) + activesupport (6.1.4.4) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) @@ -354,20 +354,20 @@ GEM rack rack-test (1.1.0) rack (>= 1.0, < 3) - rails (6.1.4.3) - actioncable (= 6.1.4.3) - actionmailbox (= 6.1.4.3) - actionmailer (= 6.1.4.3) - actionpack (= 6.1.4.3) - actiontext (= 6.1.4.3) - actionview (= 6.1.4.3) - activejob (= 6.1.4.3) - activemodel (= 6.1.4.3) - activerecord (= 6.1.4.3) - activestorage (= 6.1.4.3) - activesupport (= 6.1.4.3) + rails (6.1.4.4) + actioncable (= 6.1.4.4) + actionmailbox (= 6.1.4.4) + actionmailer (= 6.1.4.4) + actionpack (= 6.1.4.4) + actiontext (= 6.1.4.4) + actionview (= 6.1.4.4) + activejob (= 6.1.4.4) + activemodel (= 6.1.4.4) + activerecord (= 6.1.4.4) + activestorage (= 6.1.4.4) + activesupport (= 6.1.4.4) bundler (>= 1.15.0) - railties (= 6.1.4.3) + railties (= 6.1.4.4) sprockets-rails (>= 2.0.0) rails-dom-testing (2.0.3) activesupport (>= 4.2.0) @@ -379,9 +379,9 @@ GEM railties (>= 6.0.0, < 7) rails-settings-cached (2.8.1) rails (>= 5.0.0) - railties (6.1.4.3) - actionpack (= 6.1.4.3) - activesupport (= 6.1.4.3) + railties (6.1.4.4) + actionpack (= 6.1.4.4) + activesupport (= 6.1.4.4) method_source rake (>= 0.13) thor (~> 1.0) From d1f821d4dcef9c0d9d725e394462228e87200e81 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 16 Dec 2021 21:01:57 +0000 Subject: [PATCH 0820/2165] chore(deps): bump pghero from 2.8.1 to 2.8.2 Bumps [pghero](https://github.com/ankane/pghero) from 2.8.1 to 2.8.2. - [Release notes](https://github.com/ankane/pghero/releases) - [Changelog](https://github.com/ankane/pghero/blob/master/CHANGELOG.md) - [Commits](https://github.com/ankane/pghero/compare/v2.8.1...v2.8.2) --- updated-dependencies: - dependency-name: pghero dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 0fff6b5e1..2bc994c07 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -325,7 +325,7 @@ GEM parser (3.0.1.1) ast (~> 2.4.1) pg (1.2.3) - pghero (2.8.1) + pghero (2.8.2) activerecord (>= 5) plist (3.6.0) pry (0.13.1) From ca30f317692d1fc7e9e1668f27f95ceff9adec27 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 16 Dec 2021 21:03:13 +0000 Subject: [PATCH 0821/2165] chore(deps): bump compare-versions from 4.1.1 to 4.1.2 Bumps [compare-versions](https://github.com/omichelsen/compare-versions) from 4.1.1 to 4.1.2. - [Release notes](https://github.com/omichelsen/compare-versions/releases) - [Changelog](https://github.com/omichelsen/compare-versions/blob/master/CHANGELOG.md) - [Commits](https://github.com/omichelsen/compare-versions/compare/v4.1.1...v4.1.2) --- updated-dependencies: - dependency-name: compare-versions dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index d34ae9252..00327cce7 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "@rails/webpacker": "^5.4.2", "admin-lte": "^3.1.0", "clipboard": "^2.0.8", - "compare-versions": "^4.1.1", + "compare-versions": "^4.1.2", "filepond": "^4.30.3", "rails-erb-loader": "^5.5.2", "turbolinks": "^5.2.0" diff --git a/yarn.lock b/yarn.lock index 1a39ecc69..7a26e1496 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2342,10 +2342,10 @@ commondir@^1.0.1: resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= -compare-versions@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-4.1.1.tgz#d881fc9f47d6eb2b8f63109dc5e82dae39c3680c" - integrity sha512-jHQA7zMUpbO+FhPz/kADChZVSk3edtD7c3WkEAjleBtwgAl0ji6wGrYxryaBhViGgq0A+Pb6JPhjhg9jpth4mQ== +compare-versions@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-4.1.2.tgz#a7b1678c897000d03a70a0e01efee43e7b04dda7" + integrity sha512-LAfbAbAgjnIwPsr2fvJLfrSyqAhK5nj/ffIg7a5aigry9RXJfNzVnOu0Egw8Z+G8LMDu1Qig2q48bpBzjyjZoQ== component-emitter@^1.2.1: version "1.3.0" From 4d7ea0bba145e37d5f4bea9f17ca5d29726f01d0 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 20 Dec 2021 17:47:01 +0800 Subject: [PATCH 0822/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E8=A7=A3?= =?UTF-8?q?=E6=9E=90=20aab=20=E6=B2=A1=E6=9C=89=20intent=20filters=20?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E8=A7=A3=E6=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index e87f39861..9bb1dbb7f 100644 --- a/Gemfile +++ b/Gemfile @@ -85,7 +85,7 @@ gem 'turbolinks', '~> 5' gem 'webpacker', '~> 5.4' # 用于解析 iOS, Android 和 macOS 应用 -gem 'app-info', '~> 2.8.0' +gem 'app-info', '~> 2.8.1' # 带缓存的配置库 gem 'rails-settings-cached', '~> 2.8.1' diff --git a/Gemfile.lock b/Gemfile.lock index 0fff6b5e1..365e0ae3f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -76,7 +76,7 @@ GEM public_suffix (>= 2.0.2, < 5.0) android_parser (2.5.0) rubyzip (>= 1.0, < 3.0) - app-info (2.8.0) + app-info (2.8.1) CFPropertyList (>= 2.3.4, < 3.1.0) android_parser (~> 2.5.0) google-protobuf (~> 3.18.0) @@ -528,7 +528,7 @@ DEPENDENCIES active_analytics active_model_serializers (~> 0.10.12) activejob-status - app-info (~> 2.8.0) + app-info (~> 2.8.1) awesome_print better_errors binding_of_caller From b3356b3f540f7d1d34814d9e12bfb22c61cd1e54 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 20 Dec 2021 17:48:14 +0800 Subject: [PATCH 0823/2165] =?UTF-8?q?fix:=20=E5=A2=9E=E5=8A=A0=E5=8F=96?= =?UTF-8?q?=E6=B6=88=E5=8B=BE=E9=80=89=E4=BB=BB=E4=BD=95=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E5=92=8C=E6=B8=A0=E9=81=93=E6=9B=B4=E6=96=B0=E5=BA=94=E7=94=A8?= =?UTF-8?q?=E7=9A=84=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/apps_controller.rb | 5 +++++ config/locales/zealot/en.yml | 3 ++- config/locales/zealot/zh-CN.yml | 1 + 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/app/controllers/apps_controller.rb b/app/controllers/apps_controller.rb index ea515d0a6..3d4ac4b50 100644 --- a/app/controllers/apps_controller.rb +++ b/app/controllers/apps_controller.rb @@ -40,6 +40,11 @@ def create end def update + if app_params.member?(:scheme_attributes) && app_params.member?(:channel_attributes) + flash[:alert] = t('apps.messages.failture.missing_schemes_and_channels') + return render :edit + end + @app.update(app_params) redirect_to apps_path end diff --git a/config/locales/zealot/en.yml b/config/locales/zealot/en.yml index 453764487..ad1fb11cd 100644 --- a/config/locales/zealot/en.yml +++ b/config/locales/zealot/en.yml @@ -189,8 +189,9 @@ en: title: Edit app messages: failture: - not_found_app_by_version: 'Not found app version: %{version}' + not_found_app_by_version: 'Not found app version: %{version}.' not_found_app: Not found app by id %{id}, redirect to list of app. + missing_schemes_and_channels: Missing both schemes and channels. confirm: delete_app: Confirm to destroy【%{name}】app and all related data of schemes, channels and uploaded releases? delete_app_scheme: Confirm to destroy【%{name}】scheme and all related data of channels and uploaded releases? diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index 83ce71c26..6e1cfc7e0 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -191,6 +191,7 @@ zh-CN: failture: not_found_app_by_version: '没有找到应用版本: %{version}' not_found_app: 没有找到应用 %{id},跳转至应用列表 + missing_schemes_and_channels: 没有勾选任何应用类型和渠道! confirm: delete_app: 确定删除【%{name}】应用和已关联的类型、渠道以及已上传的应用数据? delete_app_scheme: 确定删除【%{name}】类型和渠道以及已上传的应用数据? From 53807524ac12f19845253d5e760afe7ab9728869 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 22 Dec 2021 17:35:11 +0800 Subject: [PATCH 0824/2165] =?UTF-8?q?fix:=20=E5=8A=A0=E8=BD=BD=E7=AD=96?= =?UTF-8?q?=E7=95=A5=E9=80=A0=E6=88=90=E7=AC=AC=E4=B8=89=E6=96=B9=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E5=85=A8=E9=83=A8=E4=B8=8D=E5=8F=AF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../users/omniauth_callbacks_controller.rb | 1 + app/models/concerns/user_omniauth.rb | 4 +- app/views/devise/shared/_links.html.slim | 2 +- config/initializers/devise.rb | 606 +++++++++--------- .../devise_permitted_parameters.rb | 20 - 5 files changed, 306 insertions(+), 327 deletions(-) delete mode 100644 config/initializers/devise_permitted_parameters.rb diff --git a/app/controllers/users/omniauth_callbacks_controller.rb b/app/controllers/users/omniauth_callbacks_controller.rb index 77713bb3e..a712e4077 100644 --- a/app/controllers/users/omniauth_callbacks_controller.rb +++ b/app/controllers/users/omniauth_callbacks_controller.rb @@ -8,6 +8,7 @@ class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController end def passthru + # User had been logged in, redirect to root page redirect_to root_path(signin: 'true') end diff --git a/app/models/concerns/user_omniauth.rb b/app/models/concerns/user_omniauth.rb index ebcfaa7b2..91b6d44f8 100644 --- a/app/models/concerns/user_omniauth.rb +++ b/app/models/concerns/user_omniauth.rb @@ -26,13 +26,13 @@ def from_omniauth(auth) end def oauth_providers - omniauth_providers.each_with_object([]) do |name, obj| + @oauth_providers ||= Devise.omniauth_providers.each_with_object([]) do |name, obj| obj << name if enabled?(name) end end def enabled?(name) - send("enabled_#{name}?") + send("enabled_#{name}?".to_sym) end def enabled_google_oauth2? diff --git a/app/views/devise/shared/_links.html.slim b/app/views/devise/shared/_links.html.slim index 199eaf587..5e2b39c80 100644 --- a/app/views/devise/shared/_links.html.slim +++ b/app/views/devise/shared/_links.html.slim @@ -6,7 +6,7 @@ title = omniauth_display_name(provider) key = title.downcase - a.btn.btn-default.btn-block.text-left href="#{public_send("user_#{provider}_omniauth_authorize_path")}" class="btn-auth-#{key}" + a.btn.btn-default.btn-block.text-left href="#{public_send("user_#{provider}_omniauth_authorize_path")}" class="btn-auth-#{key}" data-method="post" = t('devise.shared.links.sign_in_with_provider', provider: t("devise.shared.links.provider.#{key}", default: title)) i.icon.fab.float-right class="fa-#{key}" diff --git a/config/initializers/devise.rb b/config/initializers/devise.rb index 5247ff406..5a511f647 100644 --- a/config/initializers/devise.rb +++ b/config/initializers/devise.rb @@ -2,314 +2,312 @@ # Use this hook to configure devise mailer, warden hooks and so forth. # Many of these configuration options can be set straight in your model. -Rails.application.reloader.to_prepare do - Devise.setup do |config| - # The secret key used by Devise. Devise uses this key to generate - # random tokens. Changing this key will render invalid all existing - # confirmation, reset password and unlock tokens in the database. - # Devise will use the `secret_key_base` as its `secret_key` - # by default. You can change it below and use your own secret key. - # config.secret_key = '' - - # ==> Mailer Configuration - # Configure the e-mail address which will be shown in Devise::Mailer, - # note that it will be overwritten if you use your own mailer class - # with default "from" parameter. - # config.mailer_sender = 'no-reply@' + Setting.url_options[:host] - - # Configure the class responsible to send e-mails. - config.mailer = 'DeviseMailer' - - # Configure the parent class responsible to send e-mails. - # config.parent_mailer = 'ActionMailer::Base' - - # ==> ORM configuration - # Load and configure the ORM. Supports :active_record (default) and - # :mongoid (bson_ext recommended) by default. Other ORMs may be - # available as additional gems. - require 'devise/orm/active_record' - - # ==> Configuration for any authentication mechanism - # Configure which keys are used when authenticating a user. The default is - # just :email. You can configure it to use [:username, :subdomain], so for - # authenticating a user, both parameters are required. Remember that those - # parameters are used only when authenticating and not when retrieving from - # session. If you need permissions, you should implement that in a before filter. - # You can also supply a hash where the value is a boolean determining whether - # or not authentication should be aborted when the value is not present. - # config.authentication_keys = [:email] - - # Configure parameters from the request object used for authentication. Each entry - # given should be a request method and it will automatically be passed to the - # find_for_authentication method and considered in your model lookup. For instance, - # if you set :request_keys to [:subdomain], :subdomain will be used on authentication. - # The same considerations mentioned for authentication_keys also apply to request_keys. - # config.request_keys = [] - - # Configure which authentication keys should be case-insensitive. - # These keys will be downcased upon creating or modifying a user and when used - # to authenticate or find a user. Default is :email. - config.case_insensitive_keys = [:email] - - # Configure which authentication keys should have whitespace stripped. - # These keys will have whitespace before and after removed upon creating or - # modifying a user and when used to authenticate or find a user. Default is :email. - config.strip_whitespace_keys = [:email] - - # Tell if authentication through request.params is enabled. True by default. - # It can be set to an array that will enable params authentication only for the - # given strategies, for example, `config.params_authenticatable = [:database]` will - # enable it only for database (email + password) authentication. - # config.params_authenticatable = true - - # Tell if authentication through HTTP Auth is enabled. False by default. - # It can be set to an array that will enable http authentication only for the - # given strategies, for example, `config.http_authenticatable = [:database]` will - # enable it only for database authentication. The supported strategies are: - # :database = Support basic authentication with authentication key + password - # config.http_authenticatable = false - - # If 401 status code should be returned for AJAX requests. True by default. - # config.http_authenticatable_on_xhr = true - - # The realm used in Http Basic Authentication. 'Application' by default. - # config.http_authentication_realm = 'Zealot' - - # It will change confirmation, password recovery and other workflows - # to behave the same regardless if the e-mail provided was right or wrong. - # Does not affect registerable. - # config.paranoid = true - - # By default Devise will store the user in session. You can skip storage for - # particular strategies by setting this option. - # Notice that if you are skipping storage for all authentication paths, you - # may want to disable generating routes to Devise's sessions controller by - # passing skip: :sessions to `devise_for` in your config/routes.rb - config.skip_session_storage = [:http_auth] - - # By default, Devise cleans up the CSRF token on authentication to - # avoid CSRF token fixation attacks. This means that, when using AJAX - # requests for sign in and sign up, you need to get a new CSRF token - # from the server. You can disable this option at your own risk. - # config.clean_up_csrf_token_on_authentication = true - - # When false, Devise will not attempt to reload routes on eager load. - # This can reduce the time taken to boot the app but if your application - # requires the Devise mappings to be loaded during boot time the application - # won't boot properly. - # config.reload_routes = true - - # ==> Configuration for :database_authenticatable - # For bcrypt, this is the cost for hashing the password and defaults to 11. If - # using other algorithms, it sets how many times you want the password to be hashed. - # - # Limiting the stretches to just one in testing will increase the performance of - # your test suite dramatically. However, it is STRONGLY RECOMMENDED to not use - # a value less than 10 in other environments. Note that, for bcrypt (the default - # algorithm), the cost increases exponentially with the number of stretches (e.g. - # a value of 20 is already extremely slow: approx. 60 seconds for 1 calculation). - config.stretches = Rails.env.test? ? 1 : 10 - - # Set up a pepper to generate the hashed password. - # config.pepper = 'afb9f9d6fef3af737f6c1ffbf76a92ecea727a79ecd5976107a250420cb439965d89f5721c7052439308133c1b51aec9a61a9fc4f32b658432a1ab859969cd12' - - # Send a notification email when the user's password is changed - config.send_password_change_notification = true - - # ==> Configuration for :confirmable - # A period that the user is allowed to access the website even without - # confirming their account. For instance, if set to 2.days, the user will be - # able to access the website for two days without confirming their account, - # access will be blocked just in the third day. Default is 0.days, meaning - # the user cannot access the website without confirming their account. - # config.allow_unconfirmed_access_for = 2.days - - # A period that the user is allowed to confirm their account before their - # token becomes invalid. For example, if set to 3.days, the user can confirm - # their account within 3 days after the mail was sent, but on the fourth day - # their account can't be confirmed with the token any more. - # Default is nil, meaning there is no restriction on how long a user can take - # before confirming their account. - config.confirm_within = 2.days - - # If true, requires any email changes to be confirmed (exactly the same way as - # initial account confirmation) to be applied. Requires additional unconfirmed_email - # db field (see migrations). Until confirmed, new email is stored in - # unconfirmed_email column, and copied to email column on successful confirmation. - config.reconfirmable = false - - # Defines which key will be used when confirming an account - # config.confirmation_keys = [:email] - - # ==> Configuration for :rememberable - # The time the user will be remembered without asking for credentials again. - config.remember_for = 1.year - - # Invalidates all the remember me tokens when the user signs out. - config.expire_all_remember_me_on_sign_out = true - - # If true, extends the user's remember period when remembered via cookie. - # config.extend_remember_period = false - - # Options to be passed to the created cookie. For instance, you can set - # secure: true in order to force SSL only cookies. - config.rememberable_options = { secure: true } - - # ==> Configuration for :validatable - # Range for password length. - config.password_length = 6..128 - - # Email regex used to validate email formats. It simply asserts that - # one (and only one) @ exists in the given string. This is mainly - # to give user feedback and not to assert the e-mail validity. - # config.email_regexp = /\A[^@\s]+@[^@\s]+\z/ - - # ==> Configuration for :timeoutable - # The time you want to timeout the user session without activity. After this - # time the user will be asked for credentials again. Default is 30 minutes. - # config.timeout_in = 30.minutes - - # ==> Configuration for :lockable - # Defines which strategy will be used to lock an account. - # :failed_attempts = Locks an account after a number of failed attempts to sign in. - # :none = No lock strategy. You should handle locking by yourself. - # config.lock_strategy = :failed_attempts - - # Defines which key will be used when locking and unlocking an account - # config.unlock_keys = [:email] - - # Defines which strategy will be used to unlock an account. - # :email = Sends an unlock link to the user email - # :time = Re-enables login after a certain amount of time (see :unlock_in below) - # :both = Enables both strategies - # :none = No unlock strategy. You should handle unlocking by yourself. - # config.unlock_strategy = :both - - # Number of authentication tries before locking an account if lock_strategy - # is failed attempts. - config.maximum_attempts = 5 - - # Time interval to unlock the account if :time is enabled as unlock_strategy. - config.unlock_in = 1.hour - - # Warn on the last attempt before the account is locked. - config.last_attempt_warning = true - - # ==> Configuration for :recoverable - # - # Defines which key will be used when recovering the password for an account - # config.reset_password_keys = [:email] - - # Time interval you can reset your password with a reset password key. - # Don't put a too small interval or your users won't have the time to - # change their passwords. - config.reset_password_within = 6.hours - - # When set to false, does not sign a user in automatically after their password is - # reset. Defaults to true, so a user is signed in automatically after a reset. - # config.sign_in_after_reset_password = true - - # ==> Configuration for :encryptable - # Allow you to use another hashing or encryption algorithm besides bcrypt (default). - # You can use :sha1, :sha512 or algorithms from others authentication tools as - # :clearance_sha1, :authlogic_sha512 (then you should set stretches above to 20 - # for default behavior) and :restful_authentication_sha1 (then you should set - # stretches to 10, and copy REST_AUTH_SITE_KEY to pepper). - # - # Require the `devise-encryptable` gem when using anything other than bcrypt - # config.encryptor = :sha512 - - # ==> Scopes configuration - # Turn scoped views on. Before rendering "sessions/new", it will first check for - # "users/sessions/new". It's turned off by default because it's slower if you - # are using only default views. - # config.scoped_views = false - - # Configure the default scope given to Warden. By default it's the first - # devise role declared in your routes (usually :user). - # config.default_scope = :user - - # Set this configuration to false if you want /users/sign_out to sign out - # only the current scope. By default, Devise signs out all scopes. - # config.sign_out_all_scopes = true - - # ==> Navigation configuration - # Lists the formats that should be treated as navigational. Formats like - # :html, should redirect to the sign in page when the user does not have - # access, but formats like :xml or :json, should return 401. - # - # If you have any extra navigational formats, like :iphone or :mobile, you - # should add them to the navigational formats lists. - # - # The "*/*" below is required to match Internet Explorer requests. - # config.navigational_formats = ['*/*', :html] - - # The default HTTP method used to sign out a resource. Default is :delete. - config.sign_out_via = :delete - - # ==> Warden configuration - # If you want to use other strategies, that are not supported by Devise, or - # change the failure app, you can configure them inside the config.warden block. - # - # config.warden do |manager| - # manager.intercept_401 = false - # manager.default_strategies(scope: :user).unshift :some_external_strategy - # end - - # ==> Mountable engine configurations - # When using Devise inside an engine, let's call it `MyEngine`, and this engine - # is mountable, there are some extra configurations to be taken into account. - # The following options are available, assuming the engine is mounted as: - # - # mount MyEngine, at: '/my_engine' - # - # The router that invoked `devise_for`, in the example above, would be: - # config.router_name = :my_engine - - # ==> OmniAuth - # Add a new OmniAuth provider. Check the wiki for more information on setting - # up on your models and hooks. - # config.omniauth :github, 'APP_ID', 'APP_SECRET', scope: 'user,public_repo' - - # 飞书 - feishu = Setting.feishu - if defined?(OmniAuth::Strategies::Feishu) && feishu[:enabled] - config.omniauth :feishu, feishu[:app_id], feishu[:app_secret] - end - - # Gitlab - gitlab = Setting.gitlab - if defined?(OmniAuth::Strategies::GitLab) && gitlab[:enabled] - options = { scope: 'read_user' } - if (scope = gitlab[:scope]) && scope.present? - options[:scope] = scope.split(',').map(&:chomp).join(' ') - end - - if (site = gitlab[:site]) && site.present? - options[:client_options] = { site: site } - end +Devise.setup do |config| + # The secret key used by Devise. Devise uses this key to generate + # random tokens. Changing this key will render invalid all existing + # confirmation, reset password and unlock tokens in the database. + # Devise will use the `secret_key_base` as its `secret_key` + # by default. You can change it below and use your own secret key. + # config.secret_key = '' + + # ==> Mailer Configuration + # Configure the e-mail address which will be shown in Devise::Mailer, + # note that it will be overwritten if you use your own mailer class + # with default "from" parameter. + # config.mailer_sender = 'no-reply@' + Setting.url_options[:host] + + # Configure the class responsible to send e-mails. + config.mailer = 'DeviseMailer' + + # Configure the parent class responsible to send e-mails. + # config.parent_mailer = 'ActionMailer::Base' + + # ==> ORM configuration + # Load and configure the ORM. Supports :active_record (default) and + # :mongoid (bson_ext recommended) by default. Other ORMs may be + # available as additional gems. + require 'devise/orm/active_record' + + # ==> Configuration for any authentication mechanism + # Configure which keys are used when authenticating a user. The default is + # just :email. You can configure it to use [:username, :subdomain], so for + # authenticating a user, both parameters are required. Remember that those + # parameters are used only when authenticating and not when retrieving from + # session. If you need permissions, you should implement that in a before filter. + # You can also supply a hash where the value is a boolean determining whether + # or not authentication should be aborted when the value is not present. + # config.authentication_keys = [:email] + + # Configure parameters from the request object used for authentication. Each entry + # given should be a request method and it will automatically be passed to the + # find_for_authentication method and considered in your model lookup. For instance, + # if you set :request_keys to [:subdomain], :subdomain will be used on authentication. + # The same considerations mentioned for authentication_keys also apply to request_keys. + # config.request_keys = [] + + # Configure which authentication keys should be case-insensitive. + # These keys will be downcased upon creating or modifying a user and when used + # to authenticate or find a user. Default is :email. + config.case_insensitive_keys = [:email] + + # Configure which authentication keys should have whitespace stripped. + # These keys will have whitespace before and after removed upon creating or + # modifying a user and when used to authenticate or find a user. Default is :email. + config.strip_whitespace_keys = [:email] + + # Tell if authentication through request.params is enabled. True by default. + # It can be set to an array that will enable params authentication only for the + # given strategies, for example, `config.params_authenticatable = [:database]` will + # enable it only for database (email + password) authentication. + # config.params_authenticatable = true + + # Tell if authentication through HTTP Auth is enabled. False by default. + # It can be set to an array that will enable http authentication only for the + # given strategies, for example, `config.http_authenticatable = [:database]` will + # enable it only for database authentication. The supported strategies are: + # :database = Support basic authentication with authentication key + password + # config.http_authenticatable = false + + # If 401 status code should be returned for AJAX requests. True by default. + # config.http_authenticatable_on_xhr = true + + # The realm used in Http Basic Authentication. 'Application' by default. + # config.http_authentication_realm = 'Zealot' + + # It will change confirmation, password recovery and other workflows + # to behave the same regardless if the e-mail provided was right or wrong. + # Does not affect registerable. + # config.paranoid = true + + # By default Devise will store the user in session. You can skip storage for + # particular strategies by setting this option. + # Notice that if you are skipping storage for all authentication paths, you + # may want to disable generating routes to Devise's sessions controller by + # passing skip: :sessions to `devise_for` in your config/routes.rb + config.skip_session_storage = [:http_auth] + + # By default, Devise cleans up the CSRF token on authentication to + # avoid CSRF token fixation attacks. This means that, when using AJAX + # requests for sign in and sign up, you need to get a new CSRF token + # from the server. You can disable this option at your own risk. + # config.clean_up_csrf_token_on_authentication = true + + # When false, Devise will not attempt to reload routes on eager load. + # This can reduce the time taken to boot the app but if your application + # requires the Devise mappings to be loaded during boot time the application + # won't boot properly. + # config.reload_routes = true + + # ==> Configuration for :database_authenticatable + # For bcrypt, this is the cost for hashing the password and defaults to 11. If + # using other algorithms, it sets how many times you want the password to be hashed. + # + # Limiting the stretches to just one in testing will increase the performance of + # your test suite dramatically. However, it is STRONGLY RECOMMENDED to not use + # a value less than 10 in other environments. Note that, for bcrypt (the default + # algorithm), the cost increases exponentially with the number of stretches (e.g. + # a value of 20 is already extremely slow: approx. 60 seconds for 1 calculation). + config.stretches = Rails.env.test? ? 1 : 10 + + # Set up a pepper to generate the hashed password. + # config.pepper = 'afb9f9d6fef3af737f6c1ffbf76a92ecea727a79ecd5976107a250420cb439965d89f5721c7052439308133c1b51aec9a61a9fc4f32b658432a1ab859969cd12' + + # Send a notification email when the user's password is changed + config.send_password_change_notification = true + + # ==> Configuration for :confirmable + # A period that the user is allowed to access the website even without + # confirming their account. For instance, if set to 2.days, the user will be + # able to access the website for two days without confirming their account, + # access will be blocked just in the third day. Default is 0.days, meaning + # the user cannot access the website without confirming their account. + # config.allow_unconfirmed_access_for = 2.days + + # A period that the user is allowed to confirm their account before their + # token becomes invalid. For example, if set to 3.days, the user can confirm + # their account within 3 days after the mail was sent, but on the fourth day + # their account can't be confirmed with the token any more. + # Default is nil, meaning there is no restriction on how long a user can take + # before confirming their account. + config.confirm_within = 2.days + + # If true, requires any email changes to be confirmed (exactly the same way as + # initial account confirmation) to be applied. Requires additional unconfirmed_email + # db field (see migrations). Until confirmed, new email is stored in + # unconfirmed_email column, and copied to email column on successful confirmation. + config.reconfirmable = false + + # Defines which key will be used when confirming an account + # config.confirmation_keys = [:email] + + # ==> Configuration for :rememberable + # The time the user will be remembered without asking for credentials again. + config.remember_for = 1.year + + # Invalidates all the remember me tokens when the user signs out. + config.expire_all_remember_me_on_sign_out = true + + # If true, extends the user's remember period when remembered via cookie. + # config.extend_remember_period = false + + # Options to be passed to the created cookie. For instance, you can set + # secure: true in order to force SSL only cookies. + config.rememberable_options = { secure: true } + + # ==> Configuration for :validatable + # Range for password length. + config.password_length = 6..128 + + # Email regex used to validate email formats. It simply asserts that + # one (and only one) @ exists in the given string. This is mainly + # to give user feedback and not to assert the e-mail validity. + # config.email_regexp = /\A[^@\s]+@[^@\s]+\z/ + + # ==> Configuration for :timeoutable + # The time you want to timeout the user session without activity. After this + # time the user will be asked for credentials again. Default is 30 minutes. + # config.timeout_in = 30.minutes + + # ==> Configuration for :lockable + # Defines which strategy will be used to lock an account. + # :failed_attempts = Locks an account after a number of failed attempts to sign in. + # :none = No lock strategy. You should handle locking by yourself. + # config.lock_strategy = :failed_attempts + + # Defines which key will be used when locking and unlocking an account + # config.unlock_keys = [:email] + + # Defines which strategy will be used to unlock an account. + # :email = Sends an unlock link to the user email + # :time = Re-enables login after a certain amount of time (see :unlock_in below) + # :both = Enables both strategies + # :none = No unlock strategy. You should handle unlocking by yourself. + # config.unlock_strategy = :both + + # Number of authentication tries before locking an account if lock_strategy + # is failed attempts. + config.maximum_attempts = 5 + + # Time interval to unlock the account if :time is enabled as unlock_strategy. + config.unlock_in = 1.hour + + # Warn on the last attempt before the account is locked. + config.last_attempt_warning = true + + # ==> Configuration for :recoverable + # + # Defines which key will be used when recovering the password for an account + # config.reset_password_keys = [:email] + + # Time interval you can reset your password with a reset password key. + # Don't put a too small interval or your users won't have the time to + # change their passwords. + config.reset_password_within = 6.hours + + # When set to false, does not sign a user in automatically after their password is + # reset. Defaults to true, so a user is signed in automatically after a reset. + # config.sign_in_after_reset_password = true + + # ==> Configuration for :encryptable + # Allow you to use another hashing or encryption algorithm besides bcrypt (default). + # You can use :sha1, :sha512 or algorithms from others authentication tools as + # :clearance_sha1, :authlogic_sha512 (then you should set stretches above to 20 + # for default behavior) and :restful_authentication_sha1 (then you should set + # stretches to 10, and copy REST_AUTH_SITE_KEY to pepper). + # + # Require the `devise-encryptable` gem when using anything other than bcrypt + # config.encryptor = :sha512 + + # ==> Scopes configuration + # Turn scoped views on. Before rendering "sessions/new", it will first check for + # "users/sessions/new". It's turned off by default because it's slower if you + # are using only default views. + # config.scoped_views = false + + # Configure the default scope given to Warden. By default it's the first + # devise role declared in your routes (usually :user). + # config.default_scope = :user + + # Set this configuration to false if you want /users/sign_out to sign out + # only the current scope. By default, Devise signs out all scopes. + # config.sign_out_all_scopes = true + + # ==> Navigation configuration + # Lists the formats that should be treated as navigational. Formats like + # :html, should redirect to the sign in page when the user does not have + # access, but formats like :xml or :json, should return 401. + # + # If you have any extra navigational formats, like :iphone or :mobile, you + # should add them to the navigational formats lists. + # + # The "*/*" below is required to match Internet Explorer requests. + # config.navigational_formats = ['*/*', :html] + + # The default HTTP method used to sign out a resource. Default is :delete. + config.sign_out_via = :delete + + # ==> Warden configuration + # If you want to use other strategies, that are not supported by Devise, or + # change the failure app, you can configure them inside the config.warden block. + # + # config.warden do |manager| + # manager.intercept_401 = false + # manager.default_strategies(scope: :user).unshift :some_external_strategy + # end + + # ==> Mountable engine configurations + # When using Devise inside an engine, let's call it `MyEngine`, and this engine + # is mountable, there are some extra configurations to be taken into account. + # The following options are available, assuming the engine is mounted as: + # + # mount MyEngine, at: '/my_engine' + # + # The router that invoked `devise_for`, in the example above, would be: + # config.router_name = :my_engine + + # ==> OmniAuth + # Add a new OmniAuth provider. Check the wiki for more information on setting + # up on your models and hooks. + # config.omniauth :github, 'APP_ID', 'APP_SECRET', scope: 'user,public_repo' + + # 飞书 + feishu = Setting.feishu + if defined?(OmniAuth::Strategies::Feishu) && feishu[:enabled] + config.omniauth :feishu, feishu[:app_id], feishu[:app_secret] + end - config.omniauth :gitlab, gitlab[:app_id], gitlab[:secret], options + # Gitlab + gitlab = Setting.gitlab + if defined?(OmniAuth::Strategies::GitLab) && gitlab[:enabled] + options = { scope: 'read_user' } + if (scope = gitlab[:scope]) && scope.present? + options[:scope] = scope.split(',').map(&:chomp).join(' ') end - # Google OAuth - google_oauth = Setting.google_oauth - if defined?(OmniAuth::Strategies::GoogleOauth2) && google_oauth[:enabled] - config.omniauth :google_oauth2, google_oauth[:client_id], google_oauth[:secret], - skip_jwt: true, prompt: 'select_account', access_type: 'offline', - scope: 'email,profile' + if (site = gitlab[:site]) && site.present? + options[:client_options] = { site: site } end - # LDAP - ldap = Setting.ldap - if defined?(OmniAuth::Strategies::LDAP) && ldap[:enabled] - config.omniauth :ldap, title: 'Zealot LDAP 认证登录', - host: ldap[:host], port: ldap[:port].to_i, - encryption: ldap[:encryption].to_sym, - bind_dn: ldap[:bind_dn], - password: ldap[:password], - base: ldap[:base], uid: ldap[:uid] - # try_sasl: true, sasl_mechanisms: ['DIGEST-MD5'] - end + config.omniauth :gitlab, gitlab[:app_id], gitlab[:secret], options + end + + # Google OAuth + google_oauth = Setting.google_oauth + if defined?(OmniAuth::Strategies::GoogleOauth2) && google_oauth[:enabled] + config.omniauth :google_oauth2, google_oauth[:client_id], google_oauth[:secret], + skip_jwt: true, prompt: 'select_account', access_type: 'offline', + scope: 'email,profile' + end + + # LDAP + ldap = Setting.ldap + if defined?(OmniAuth::Strategies::LDAP) && ldap[:enabled] + config.omniauth :ldap, title: 'Zealot LDAP 认证登录', + host: ldap[:host], port: ldap[:port].to_i, + encryption: ldap[:encryption].to_sym, + bind_dn: ldap[:bind_dn], + password: ldap[:password], + base: ldap[:base], uid: ldap[:uid] + # try_sasl: true, sasl_mechanisms: ['DIGEST-MD5'] end end diff --git a/config/initializers/devise_permitted_parameters.rb b/config/initializers/devise_permitted_parameters.rb deleted file mode 100644 index 890d770c9..000000000 --- a/config/initializers/devise_permitted_parameters.rb +++ /dev/null @@ -1,20 +0,0 @@ -# frozen_string_literal: true - -module DevisePermittedParameters - extend ActiveSupport::Concern - - included do - before_action :configure_permitted_parameters - end - - protected - - def configure_permitted_parameters - devise_parameter_sanitizer.permit(:sign_up, keys: [:username]) - devise_parameter_sanitizer.permit(:account_update, keys: [:username]) - end -end - -ActiveSupport.on_load(:devise_controller) do - include DevisePermittedParameters -end From 2f814e27f61d77c7cca97e660e9544d9c7db2246 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 22 Dec 2021 17:43:03 +0800 Subject: [PATCH 0825/2165] =?UTF-8?q?=E5=8F=91=E5=B8=83=204.3.1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 51c71b92f..9792a16c9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -61,7 +61,7 @@ ARG BUILD_DATE ARG VCS_REF ARG TAG -ARG ZEALOT_VERSION="4.3.0" +ARG ZEALOT_VERSION="4.3.1" ARG REPLACE_CHINA_MIRROR="true" ARG ORIGINAL_REPO_URL="dl-cdn.alpinelinux.org" ARG MIRROR_REPO_URL="mirrors.ustc.edu.cn" diff --git a/package.json b/package.json index 00327cce7..a16425bd1 100644 --- a/package.json +++ b/package.json @@ -15,5 +15,5 @@ "devDependencies": { "webpack-dev-server": "^3.11.3" }, - "version": "4.3.0" + "version": "4.3.1" } From 1a9f239a10064aa0687d3631cde002e3c665bfff Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 23 Dec 2021 13:57:55 +0800 Subject: [PATCH 0826/2165] =?UTF-8?q?refactor:=20=E4=BD=BF=E7=94=A8=20.pre?= =?UTF-8?q?sence=20=E4=BB=A3=E6=9B=BF=20.present=3F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/jobs/app_web_hook_job.rb | 2 +- config/initializers/devise.rb | 5 ++--- config/initializers/health_check.rb | 2 +- config/initializers/sentry.rb | 4 ++-- 4 files changed, 6 insertions(+), 7 deletions(-) diff --git a/app/jobs/app_web_hook_job.rb b/app/jobs/app_web_hook_job.rb index fe50ed955..6013e30d2 100644 --- a/app/jobs/app_web_hook_job.rb +++ b/app/jobs/app_web_hook_job.rb @@ -33,7 +33,7 @@ def send_request end def message_body - body = @web_hook.body.present? ? @web_hook.body : default_body + body = @web_hook.body.presence || default_body build(body) end diff --git a/config/initializers/devise.rb b/config/initializers/devise.rb index 5a511f647..526da1d08 100644 --- a/config/initializers/devise.rb +++ b/config/initializers/devise.rb @@ -268,7 +268,6 @@ # ==> OmniAuth # Add a new OmniAuth provider. Check the wiki for more information on setting # up on your models and hooks. - # config.omniauth :github, 'APP_ID', 'APP_SECRET', scope: 'user,public_repo' # 飞书 feishu = Setting.feishu @@ -280,11 +279,11 @@ gitlab = Setting.gitlab if defined?(OmniAuth::Strategies::GitLab) && gitlab[:enabled] options = { scope: 'read_user' } - if (scope = gitlab[:scope]) && scope.present? + if scope = gitlab[:scope].presence options[:scope] = scope.split(',').map(&:chomp).join(' ') end - if (site = gitlab[:site]) && site.present? + if site = gitlab[:site].presence options[:client_options] = { site: site } end diff --git a/config/initializers/health_check.rb b/config/initializers/health_check.rb index ec7948322..2616def38 100644 --- a/config/initializers/health_check.rb +++ b/config/initializers/health_check.rb @@ -8,5 +8,5 @@ ip_whitelist = ENV['ZEALOT_HEALTH_CHECK_IP_WHITELIST'] || '127.0.0.1' ip_whitelist = ip_whitelist.split(',').select(&:present?).map(&:strip) if ip_whitelist.present? - config.origin_ip_whitelist = ip_whitelist if ip_whitelist.present? && ip_whitelist.size > 0 + config.origin_ip_whitelist = ip_whitelist if ip_whitelist.present? end diff --git a/config/initializers/sentry.rb b/config/initializers/sentry.rb index 3470e7e01..15210690e 100644 --- a/config/initializers/sentry.rb +++ b/config/initializers/sentry.rb @@ -24,9 +24,9 @@ 'SystemExit', ] - if (vcs_ref = Setting.vcs_ref) && vcs_ref.present? + if vcs_ref = Setting.vcs_ref.presence release = [Setting.version, vcs_ref] - if (docker_tag = ENV['DOCKER_TAG']) && docker_tag.present? + if docker_tag = ENV['DOCKER_TAG'].presence release << ENV['DOCKER_TAG'] end From 38b708d9193a914d83289c4f33ee67015a68f85b Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 23 Dec 2021 18:26:57 +0800 Subject: [PATCH 0827/2165] =?UTF-8?q?refactor:=20=E6=B8=A0=E9=81=93?= =?UTF-8?q?=E5=92=8C=E7=89=88=E6=9C=AC=E8=AF=A6=E6=83=85=E9=87=87=E7=94=A8?= =?UTF-8?q?=E6=9B=B4=E7=AE=80=E7=BB=83=E7=9A=84=20URI=20=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/admin/settings_controller.rb | 8 ++- app/controllers/admin/users_controller.rb | 7 +- app/controllers/admin/web_hooks_controller.rb | 5 +- app/controllers/application_controller.rb | 62 +--------------- app/controllers/apps_controller.rb | 8 ++- .../channels/branches_controller.rb | 3 +- .../channels/release_types_controller.rb | 3 +- .../channels/versions_controller.rb | 9 ++- app/controllers/channels_controller.rb | 13 ++-- app/controllers/concerns/exception_handler.rb | 70 +++++++++++++++++++ app/controllers/debug_files_controller.rb | 2 +- app/controllers/releases_controller.rb | 12 ++-- app/controllers/schemes_controller.rb | 32 +-------- app/controllers/teardowns_controller.rb | 7 +- app/controllers/web_hooks_controller.rb | 7 +- app/helpers/apps_helper.rb | 12 +++- app/helpers/channels_helper.rb | 8 +++ app/models/release.rb | 4 +- app/policies/application_policy.rb | 2 +- app/policies/channel_policy.rb | 13 ++++ app/policies/metadatum_policy.rb | 5 ++ app/policies/release_policy.rb | 9 +++ app/views/apps/show.html.slim | 2 +- app/views/channels/_activity.html.slim | 2 +- app/views/channels/_channels.html.slim | 2 +- app/views/channels/_mobile_menu.html.slim | 2 +- app/views/channels/_schemes.html.slim | 5 +- app/views/channels/_versions.html.slim | 4 +- app/views/channels/filters/_list.slim | 7 +- app/views/channels/filters/index.slim | 2 +- .../dashboards/_recently_upload.html.slim | 2 +- app/views/releases/body/_activity.html.slim | 4 +- app/views/releases/body/_metadata.html.slim | 4 +- app/views/releases/new.html.slim | 2 +- app/views/releases/show.html.slim | 2 +- app/views/releases/sidebar/_version.html.slim | 2 +- app/views/teardowns/show.html.slim | 2 +- app/views/udid/show.html.slim | 2 +- app/views/web_hooks/_item.html.slim | 2 +- config/routes.rb | 16 ++++- 40 files changed, 222 insertions(+), 143 deletions(-) create mode 100644 app/controllers/concerns/exception_handler.rb create mode 100644 app/helpers/channels_helper.rb diff --git a/app/controllers/admin/settings_controller.rb b/app/controllers/admin/settings_controller.rb index 0ce7434c8..6dd5f8442 100644 --- a/app/controllers/admin/settings_controller.rb +++ b/app/controllers/admin/settings_controller.rb @@ -7,9 +7,12 @@ class Admin::SettingsController < ApplicationController def index @title = t('.title') @settings = Setting.site_configs + authorize @settings end def edit + authorize @setting + @title = t('.title') @value = @setting.value || @setting.default_value @@ -26,6 +29,8 @@ def edit end def update + authorize @setting + @title = t('.title') new_value = setting_param[:value] new_value = JSON.parse(new_value) if setting_param[:type] == 'hash' || setting_param[:type] == 'array' @@ -43,6 +48,8 @@ def update end def destroy + authorize @setting + key = @setting.var @setting.destroy @@ -53,7 +60,6 @@ def destroy def set_setting @setting = Setting.find_or_default(var: params[:id]) - authorize @setting end def setting_param diff --git a/app/controllers/admin/users_controller.rb b/app/controllers/admin/users_controller.rb index 26a22f6c7..fc7078b3a 100644 --- a/app/controllers/admin/users_controller.rb +++ b/app/controllers/admin/users_controller.rb @@ -25,10 +25,14 @@ def create end def edit + authorize @user + @title = @user.email end def update + authorize @user + if helpers.default_admin_in_demo_mode?(@user) return redirect_to admin_users_path, alert: t('errors.messages.invaild_in_demo_mode') end @@ -46,6 +50,8 @@ def destroy return redirect_to admin_users_path, alert: t('errors.messages.invaild_in_demo_mode') end + authorize @user + @user.destroy redirect_to admin_users_path, notice: t('activerecord.success.destroy', key: t('users.title')) end @@ -54,7 +60,6 @@ def destroy def set_user @user = User.find(params[:id]) - authorize @user end def user_params diff --git a/app/controllers/admin/web_hooks_controller.rb b/app/controllers/admin/web_hooks_controller.rb index fa1b4229a..2ef0a421a 100644 --- a/app/controllers/admin/web_hooks_controller.rb +++ b/app/controllers/admin/web_hooks_controller.rb @@ -10,6 +10,7 @@ def index end def show + authorize @web_hook @title = t('admin.web_hooks.show') end @@ -28,10 +29,12 @@ def create end def edit + authorize @web_hook @title = t('admin.web_hooks.edit') end def update + authorize @web_hook channel_ids = web_hook_params.delete(:channel_ids) return render :edit unless @web_hook.update(web_hook_params) @@ -39,6 +42,7 @@ def update end def destroy + authorize @web_hook @web_hook.destroy redirect_to admin_web_hooks_url, notice: t('activerecord.success.destroy', key: t('web_hooks.title')) end @@ -47,7 +51,6 @@ def destroy def set_web_hook @web_hook = WebHook.find(params[:id]) - authorize @web_hook end def web_hook_params diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 3c50a6711..f32804b7f 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -1,6 +1,7 @@ # frozen_string_literal: true class ApplicationController < ActionController::Base + include ExceptionHandler include Pundit # Prevent CSRF attacks by raising an exception. @@ -13,14 +14,6 @@ class ApplicationController < ActionController::Base before_action :set_sentry_context before_action :record_page_view - rescue_from ActiveRecord::RecordNotFound, ActionController::RoutingError, with: :not_found - rescue_from ActionController::InvalidAuthenticityToken, with: :unprocessable_entity - rescue_from ActionController::UnknownFormat, AppInfo::Error, with: :not_acceptable - rescue_from ActionController::ParameterMissing, CarrierWave::InvalidParameter, - JSON::ParserError, AppInfo::UnkownFileTypeError, with: :bad_request - rescue_from HTTP::Error, OpenSSL::SSL::SSLError, with: :internal_server_error - rescue_from Pundit::NotAuthorizedError, with: :forbidden - def raise_not_found raise ActionController::RoutingError, t('errors.messages.not_match_url', url: params[:unmatched_route]) end @@ -46,57 +39,4 @@ def set_sentry_context def record_page_view ActiveAnalytics.record_request(request) end - - def forbidden(e) - message = t('errors.messages.not_authorized_policy', query: e.query, model: e.record.class) - new_exception = StandardError.new(message) - new_exception.set_backtrace(e.backtrace) - - respond_with_error(403, new_exception) - end - - def not_found(e) - respond_with_error(404, e) - end - - def gone(e) - respond_with_error(410, e) - end - - def unprocessable_entity(e) - respond_with_error(422, e) - end - - def not_acceptable(e) - respond_with_error(406, e) - end - - def bad_request(e) - respond_with_error(400, e) - end - - def internal_server_error(e) - respond_with_error(500, e) - end - - def service_unavailable(e) - respond_with_error(503, e) - end - - def respond_with_error(code, exception) - if code >= 500 - logger.error exception.full_message - Sentry.capture_exception exception - end - - respond_to do |format| - @code = code - @exception = exception - @title = t("errors.code.#{@code}.title") - @message = exception.message if code < 500 - - format.any { render 'errors/index', status: code, formats: [:html] } - format.json { render json: { code: code, error: Rack::Utils::HTTP_STATUS_CODES[code] }, status: code } - end - end end diff --git a/app/controllers/apps_controller.rb b/app/controllers/apps_controller.rb index 3d4ac4b50..bee635b31 100644 --- a/app/controllers/apps_controller.rb +++ b/app/controllers/apps_controller.rb @@ -13,6 +13,7 @@ def index end def show + authorize @app @title = @app.name end @@ -25,6 +26,8 @@ def new end def edit + authorize @app + @title = t('.title') end @@ -40,6 +43,8 @@ def create end def update + authorize @app + if app_params.member?(:scheme_attributes) && app_params.member?(:channel_attributes) flash[:alert] = t('apps.messages.failture.missing_schemes_and_channels') return render :edit @@ -50,6 +55,8 @@ def update end def destroy + authorize @app + @app.destroy destory_app_data @@ -78,7 +85,6 @@ def app_create_schemes_and_channels def set_app @app = App.find(params[:id]) - authorize @app end def set_selected_schemes_and_channels diff --git a/app/controllers/channels/branches_controller.rb b/app/controllers/channels/branches_controller.rb index c312b0d54..2400726fa 100644 --- a/app/controllers/channels/branches_controller.rb +++ b/app/controllers/channels/branches_controller.rb @@ -22,6 +22,7 @@ def set_releases end def set_channel - @channel = Channel.friendly.find params[:channel_id] + @channel = Channel.friendly.find(params[:channel_id] || params[:channel]) + authorize @channel, :brances? end end diff --git a/app/controllers/channels/release_types_controller.rb b/app/controllers/channels/release_types_controller.rb index 0c53dfb46..411d3d66c 100644 --- a/app/controllers/channels/release_types_controller.rb +++ b/app/controllers/channels/release_types_controller.rb @@ -23,6 +23,7 @@ def set_releases end def set_channel - @channel = Channel.friendly.find params[:channel_id] + @channel = Channel.friendly.find(params[:channel_id] || params[:channel]) + authorize @channel, :release_types? end end diff --git a/app/controllers/channels/versions_controller.rb b/app/controllers/channels/versions_controller.rb index 55be02ebf..32a596838 100644 --- a/app/controllers/channels/versions_controller.rb +++ b/app/controllers/channels/versions_controller.rb @@ -2,6 +2,7 @@ class Channels::VersionsController < ApplicationController before_action :set_channel + before_action :set_version def index @title = @channel.app_name @@ -15,7 +16,6 @@ def index end def show - @version = params[:id] @title = @channel.app_name @subtitle = t('.subtitle', version: @version) @back_url = URI(request.referer || '').path @@ -29,6 +29,11 @@ def show private def set_channel - @channel = Channel.friendly.find params[:channel_id] + @channel = Channel.friendly.find(params[:channel_id] || params[:channel]) + authorize @channel, :versions? + end + + def set_version + @version = params[:id] || params[:name] end end diff --git a/app/controllers/channels_controller.rb b/app/controllers/channels_controller.rb index bcffef5ec..fafb1666d 100644 --- a/app/controllers/channels_controller.rb +++ b/app/controllers/channels_controller.rb @@ -1,11 +1,12 @@ # frozen_string_literal: true class ChannelsController < ApplicationController - before_action :authenticate_user!, except: :show + before_action :authenticate_user! unless Setting.guest_mode before_action :set_channel, only: %i[show edit update destroy] before_action :set_scheme, except: %i[show] def show + authorize @channel @web_hook = @channel.web_hooks.new @releases = @channel.releases .page(params.fetch(:page, 1)) @@ -31,12 +32,16 @@ def create end def edit + authorize @channel + @title = t('channels.edit.title', name: @scheme.app_name) end def update + authorize @channel + @channel.update(channel_params) - redirect_to channel_path(@channel) + redirect_to friendly_channel_path(@channel) end def destroy @@ -52,9 +57,7 @@ def set_scheme end def set_channel - @channel = Channel.friendly.find params[:id] - authorize @channel - + @channel = Channel.friendly.find(params[:id] || params[:channel]) @app = @channel.scheme.app @title = @channel.app_name @subtitle = t('channels.subtitle', total_scheme: @app.schemes.count, total_channel: @channel.scheme.channels.count) diff --git a/app/controllers/concerns/exception_handler.rb b/app/controllers/concerns/exception_handler.rb new file mode 100644 index 000000000..dc46338e2 --- /dev/null +++ b/app/controllers/concerns/exception_handler.rb @@ -0,0 +1,70 @@ +# frozen_string_literal: true + +module ExceptionHandler + extend ActiveSupport::Concern + + included do + rescue_from ActiveRecord::RecordNotFound, ActionController::RoutingError, with: :not_found + rescue_from ActionController::InvalidAuthenticityToken, with: :unprocessable_entity + rescue_from ActionController::UnknownFormat, AppInfo::Error, with: :not_acceptable + rescue_from ActionController::ParameterMissing, CarrierWave::InvalidParameter, + JSON::ParserError, AppInfo::UnkownFileTypeError, with: :bad_request + rescue_from HTTP::Error, OpenSSL::SSL::SSLError, with: :internal_server_error + rescue_from Pundit::NotAuthorizedError, with: :forbidden + end + + private + + def forbidden(e) + message = t('errors.messages.not_authorized_policy', query: e.query, model: e.record.class) + new_exception = StandardError.new(message) + new_exception.set_backtrace(e.backtrace) + + respond_with_error(403, new_exception) + end + + def not_found(e) + respond_with_error(404, e) + end + + def gone(e) + respond_with_error(410, e) + end + + def unprocessable_entity(e) + respond_with_error(422, e) + end + + def not_acceptable(e) + respond_with_error(406, e) + end + + def bad_request(e) + respond_with_error(400, e) + end + + def internal_server_error(e) + respond_with_error(500, e) + end + + def service_unavailable(e) + respond_with_error(503, e) + end + + def respond_with_error(code, exception) + if code >= 500 + logger.error exception.full_message + Sentry.capture_exception exception + end + + respond_to do |format| + @code = code + @exception = exception + @title = t("errors.code.#{@code}.title") + @message = exception.message if code < 500 + + format.any { render 'errors/index', status: code, formats: [:html] } + format.json { render json: { code: code, error: Rack::Utils::HTTP_STATUS_CODES[code] }, status: code } + end + end +end \ No newline at end of file diff --git a/app/controllers/debug_files_controller.rb b/app/controllers/debug_files_controller.rb index 3bda38569..c530a11de 100644 --- a/app/controllers/debug_files_controller.rb +++ b/app/controllers/debug_files_controller.rb @@ -29,6 +29,7 @@ def create end def destroy + authorize @debug_file @debug_file.destroy redirect_to debug_files_url, notice: t('activerecord.success.destroy', key: t('debug_files.title')) end @@ -37,7 +38,6 @@ def destroy def set_debug_file @debug_file = DebugFile.find(params[:id]) - authorize @debug_file end # Only allow a trusted parameter "white list" through. diff --git a/app/controllers/releases_controller.rb b/app/controllers/releases_controller.rb index c66f75448..f842ae730 100644 --- a/app/controllers/releases_controller.rb +++ b/app/controllers/releases_controller.rb @@ -8,15 +8,16 @@ class ReleasesController < ApplicationController def index if @channel.releases.empty? - return redirect_to channel_path(@channel), + return redirect_to friendly_channel_path(@channel), notice: t('releases.messages.errors.not_found_release_and_redirect_to_channel') end - redirect_to channel_release_path(@channel, @channel.releases.last), + redirect_to friendly_channel_release_path(@channel, @channel.releases.last), notice: t('releases.messages.errors.not_found_release_and_redirect_to_latest_release') end def show + authorize @release @title = @release.app_name end @@ -42,6 +43,7 @@ def create end def destroy + authorize @release @release.destroy redirect_to channel_versions_url(@channel), notice: t('activerecord.success.destroy', key: "#{t('apps.title')}") end @@ -49,7 +51,7 @@ def destroy def auth if @channel.password == params[:password] cookies["app_release_#{@release.id}_auth"] = @channel.encode_password - redirect_to channel_release_path(@channel, @release) + redirect_to friendly_channel_release_path(@channel, @release) else @error_message = t('releases.messages.errors.invalid_password') render :show @@ -75,7 +77,7 @@ def set_release end def set_channel - @channel = Channel.friendly.find params[:channel_id] + @channel = Channel.friendly.find params[:channel_id] || params[:channel] end def release_params @@ -97,7 +99,7 @@ def not_found(e) when 'Release' @title = t('releases.messages.errors.not_found_release') @link_title = t('releases.messages.errors.reidrect_channel_detal') - @link_href = channel_path(@channel) + @link_href = friendly_channel_path(@channel) end end diff --git a/app/controllers/schemes_controller.rb b/app/controllers/schemes_controller.rb index 26a31e827..1eb13c9c3 100644 --- a/app/controllers/schemes_controller.rb +++ b/app/controllers/schemes_controller.rb @@ -7,14 +7,6 @@ class SchemesController < ApplicationController before_action :set_channel, only: %i[show] before_action :set_app - def show - if @channel - redirect_to channel_path(@channel) - else - redirect_to new_app_scheme_channel_path(@scheme.app, @scheme), alert: t('schemes.show.empty_channel') - end - end - def new @title = t('schemes.new.title', app: @app.name) @scheme = Scheme.new @@ -34,15 +26,18 @@ def create end def edit + authorize @scheme @title = t('schemes.edit.title', app: @app.name) end def update + authorize @scheme @scheme.update(scheme_params) redirect_to app_path(@app) end def destroy + authorize @scheme @scheme.destroy redirect_to app_path(@app) @@ -64,7 +59,6 @@ def set_app def set_scheme @scheme = Scheme.find(params[:id]) - authorize @scheme end def scheme_params @@ -72,27 +66,7 @@ def scheme_params .permit(:name, channel_attributes: { name: [] }) end - def set_channel - from_channel, segment = from_channel? - unless from_channel - @channel = @scheme.latest_channel - return - end - - previouse_channel = Channel.friendly.find(segment[:id]) - @channel = @scheme.channels.find_by(device_type: previouse_channel.device_type) - end - def process_scheme_params @channels = scheme_params[:channel_attributes][:name].reject(&:empty?) end - - def from_channel? - return [false, nil] unless referer = request.referer - return [false, nil] unless segment = Rails.application.routes.recognize_path(referer) - - from_channel = segment[:controller] == 'channels' && segment[:action] == 'show' - - [from_channel, segment] - end end diff --git a/app/controllers/teardowns_controller.rb b/app/controllers/teardowns_controller.rb index 83fcc7a5c..89b8107b0 100644 --- a/app/controllers/teardowns_controller.rb +++ b/app/controllers/teardowns_controller.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true class TeardownsController < ApplicationController - before_action :authenticate_user! unless Setting.guest_mode + before_action :authenticate_user!, except: %[show] before_action :set_metadata, only: %i[show destroy] def index @@ -12,6 +12,7 @@ def index end def show + authorize @metadata @title = t('.title', name: @metadata.name, release_version: @metadata.release_version, build_version: @metadata.build_version) @@ -20,9 +21,11 @@ def show def new @title = t('.title') @metadata = Metadatum.new + authorize @metadata end def create + authorize @metadata @title = t('.title') parse_app rescue AppInfo::NotFoundError, ActiveRecord::RecordNotFound => e @@ -50,6 +53,7 @@ def create end def destroy + authorize @metadata @metadata.destroy redirect_to teardowns_path, notice: t('activerecord.success.destroy', key: "#{t('teardowns.title')}") @@ -59,7 +63,6 @@ def destroy def set_metadata @metadata = Metadatum.find(params[:id]) - authorize @metadata end def parse_app diff --git a/app/controllers/web_hooks_controller.rb b/app/controllers/web_hooks_controller.rb index 0c7aa8624..c6faea982 100644 --- a/app/controllers/web_hooks_controller.rb +++ b/app/controllers/web_hooks_controller.rb @@ -16,21 +16,25 @@ def create end def destroy + authorize @web_hook @web_hook.destroy redirect_to_channel_url notice: t('activerecord.success.destroy', key: t('web_hooks.title')) end def disable + authorize @web_hook @channel.web_hooks.delete @web_hook redirect_to_channel_url notice: t('admin.web_hooks.messages.success.disable') end def enable + authorize @web_hook @web_hook.channels << @channel redirect_to channel_url(@channel, anchor: 'enabled'), notice: t('admin.web_hooks.messages.success.enable') end def test + authorize @web_hook event = params[:event] || 'upload_events' AppWebHookJob.perform_later event, @web_hook, @channel redirect_to_channel_url notice: t('admin.web_hooks.messages.success.test') @@ -44,7 +48,6 @@ def set_channel def set_web_hook @web_hook = WebHook.find(params[:id]) - authorize @web_hook end def web_hook_params @@ -55,6 +58,6 @@ def web_hook_params end def redirect_to_channel_url(**options) - redirect_to channel_path(@channel), **options + redirect_to friendly_channel_path(@channel), **options end end diff --git a/app/helpers/apps_helper.rb b/app/helpers/apps_helper.rb index 1ce056d70..00cb629dc 100644 --- a/app/helpers/apps_helper.rb +++ b/app/helpers/apps_helper.rb @@ -56,14 +56,22 @@ def git_branch_url(release) return unless branch = release.branch return if branch.blank? - link_to(branch, channel_branches_path(release.channel, name: branch)) + if params[:name] == branch + branch + else + link_to(branch, friendly_channel_branches_path(release.channel, name: branch)) + end end def release_type_url(release) return unless release_type = release.release_type return if release_type.blank? - link_to(release_type, channel_release_types_path(release.channel, name: release_type)) + if params[:name] == release_type + release_type + else + link_to(release_type, friendly_channel_release_types_path(release.channel, name: release_type)) + end end def display_app_device(value) diff --git a/app/helpers/channels_helper.rb b/app/helpers/channels_helper.rb new file mode 100644 index 000000000..426a0dba5 --- /dev/null +++ b/app/helpers/channels_helper.rb @@ -0,0 +1,8 @@ +# frozen_string_literal: true + +module ChannelsHelper + def using_friendly_channel_path(scheme, channel) + channel = scheme.channels.find_by(device_type: channel.device_type) + friendly_channel_path(channel) + end +end diff --git a/app/models/release.rb b/app/models/release.rb index b95eef3ba..611d8fea1 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -141,7 +141,7 @@ def file? end def download_url - download_release_url(id) + channel_release_download_path(channel, id) end def install_url @@ -156,7 +156,7 @@ def release_url end def qrcode_url(size = :thumb) - channel_release_qrcode_url channel, self, size: size + channel_release_qrcode_url(channel, self, size: size) end def file_extname diff --git a/app/policies/application_policy.rb b/app/policies/application_policy.rb index 28b1a5674..772e702cd 100644 --- a/app/policies/application_policy.rb +++ b/app/policies/application_policy.rb @@ -13,7 +13,7 @@ def index? end def show? - scope.where(id: record.id).exists? || Setting.guest_mode || user? + scope.where(id: record.id).exists? || guest_mode_or_signed_in? end def create? diff --git a/app/policies/channel_policy.rb b/app/policies/channel_policy.rb index db2732885..7070e5964 100644 --- a/app/policies/channel_policy.rb +++ b/app/policies/channel_policy.rb @@ -1,6 +1,19 @@ # frozen_string_literal: true class ChannelPolicy < ApplicationPolicy + + def versions? + guest_mode_or_signed_in? + end + + def branches? + guest_mode_or_signed_in? + end + + def release_types? + guest_mode_or_signed_in? + end + class Scope < Scope def resolve scope.all diff --git a/app/policies/metadatum_policy.rb b/app/policies/metadatum_policy.rb index 0c628bc73..b8cc6698b 100644 --- a/app/policies/metadatum_policy.rb +++ b/app/policies/metadatum_policy.rb @@ -1,6 +1,11 @@ # frozen_string_literal: true class MetadatumPolicy < ApplicationPolicy + + def show? + guest_mode_or_signed_in? + end + class Scope < Scope def resolve scope.all diff --git a/app/policies/release_policy.rb b/app/policies/release_policy.rb index a6dcd036d..a75f058d4 100644 --- a/app/policies/release_policy.rb +++ b/app/policies/release_policy.rb @@ -1,6 +1,15 @@ # frozen_string_literal: true class ReleasePolicy < ApplicationPolicy + + def show? + true + end + + def auth? + true + end + class Scope < Scope def resolve scope.all diff --git a/app/views/apps/show.html.slim b/app/views/apps/show.html.slim index 147627765..9d92c3a64 100644 --- a/app/views/apps/show.html.slim +++ b/app/views/apps/show.html.slim @@ -31,7 +31,7 @@ - scheme.channels.each do |channel| tr td - = link_to channel.name, channel_path(channel) + = link_to channel.name, friendly_channel_path(channel) td style="width: 120px" = button_link_to '', edit_app_scheme_channel_path(@app, scheme, channel), 'edit', class: 'btn-box-tool' = button_link_to '', app_scheme_channel_path(@app, scheme, channel), 'trash-alt', class: 'btn-box-tool', data: { confirm: "#{t('apps.messages.confirm.delete_app_channel', name: channel.app_name)}", method: "delete" } diff --git a/app/views/channels/_activity.html.slim b/app/views/channels/_activity.html.slim index 53b8002d8..d0c77211f 100644 --- a/app/views/channels/_activity.html.slim +++ b/app/views/channels/_activity.html.slim @@ -16,7 +16,7 @@ = app_icon(release, class: 'img-circle') .product-info a.product-title href="javascript:void(0)" - = link_to release.name || release.app_name, channel_release_path(release.channel, release) + = link_to release.name || release.app_name, friendly_channel_release_path(release.channel, release) small span.badge.badge-light.float-right data-toggle="tooltip" title="#{release.created_at}" = time_ago_in_words(release.created_at) diff --git a/app/views/channels/_channels.html.slim b/app/views/channels/_channels.html.slim index 8553d4f36..59b5d700a 100755 --- a/app/views/channels/_channels.html.slim +++ b/app/views/channels/_channels.html.slim @@ -5,4 +5,4 @@ ul.nav.nav-pills.flex-column - @channel.scheme.channels.each do |channel| li.nav-item - = link_to display_app_device(channel), channel_path(channel), class: "nav-link #{params[:id] == channel.slug ? 'active' : ''}" \ No newline at end of file + = link_to display_app_device(channel), friendly_channel_path(channel), class: "nav-link #{(params[:id] || params[:channel]) == channel.slug ? 'active' : ''}" \ No newline at end of file diff --git a/app/views/channels/_mobile_menu.html.slim b/app/views/channels/_mobile_menu.html.slim index 460245078..d302f3b86 100755 --- a/app/views/channels/_mobile_menu.html.slim +++ b/app/views/channels/_mobile_menu.html.slim @@ -16,4 +16,4 @@ nav.filter-nav.navbar.navbar-expand.navbar-white.d-block.d-sm-none - @channel.scheme.channels.each do |channel| - if channel != @channel li - = link_to display_app_device(channel), channel_path(channel), class: "dropdown-item" + = link_to display_app_device(channel), friendly_channel_path(channel), class: "dropdown-item" diff --git a/app/views/channels/_schemes.html.slim b/app/views/channels/_schemes.html.slim index 8f08ae607..86894e871 100755 --- a/app/views/channels/_schemes.html.slim +++ b/app/views/channels/_schemes.html.slim @@ -1,6 +1,3 @@ -ruby: - @schemes = @app.schemes - .card.card-solid.d-none.d-sm-block .card-header h3.card-title = t('channels.show.scheme') @@ -8,5 +5,5 @@ ruby: ul.nav.nav-pills.flex-column - @app.schemes.each do |scheme| li.nav-item - a.nav-link href="#{app_scheme_path(@app, scheme)}" class="#{@channel.scheme.name == scheme.name ? 'active' : ''}" + a.nav-link href="#{using_friendly_channel_path(scheme, @channel)}" class="#{@channel.scheme.name == scheme.name ? 'active' : ''}" = scheme.name \ No newline at end of file diff --git a/app/views/channels/_versions.html.slim b/app/views/channels/_versions.html.slim index 29aef67b8..37b1a529d 100755 --- a/app/views/channels/_versions.html.slim +++ b/app/views/channels/_versions.html.slim @@ -12,12 +12,12 @@ - @versions.each do |version| tr td - = link_to version, channel_version_path(@channel, version) + = link_to version, friendly_channel_version_path(@channel, version) td = @channel.release_version_count(version) - else .p-3 = t('channels.show.empty_version_shortly') - if @versions.count > 0 .card-footbar - a.btn.btn-default.btn-block href="#{channel_versions_path(@channel)}" + a.btn.btn-default.btn-block href="#{friendly_channel_versions_path(@channel)}" = t('channels.show.more') diff --git a/app/views/channels/filters/_list.slim b/app/views/channels/filters/_list.slim index dfce19f2f..a1f87bea3 100644 --- a/app/views/channels/filters/_list.slim +++ b/app/views/channels/filters/_list.slim @@ -14,9 +14,12 @@ - @releases.each_with_index do |release, index| tr td - = link_to index + 1, channel_release_path(release.channel, release) + = link_to index + 1, friendly_channel_release_path(release.channel, release) td - = link_to release.release_version, channel_version_path(release.channel, release.release_version) + - if release.release_version == (params[:id] || params[:name]) + = release.release_version + - else + = link_to release.release_version, friendly_channel_version_path(release.channel, release.release_version) td = release.build_version td diff --git a/app/views/channels/filters/index.slim b/app/views/channels/filters/index.slim index 8d89b3cee..0616fc7c7 100644 --- a/app/views/channels/filters/index.slim +++ b/app/views/channels/filters/index.slim @@ -10,7 +10,7 @@ .card-header h3.card-title = @subtitle .card-tools - a href="#{channel_path(@channel)}" + a href="#{friendly_channel_path(@channel)}" i.icon.far.fa-list-alt = t('links.back_to_list') .table-responsive diff --git a/app/views/dashboards/_recently_upload.html.slim b/app/views/dashboards/_recently_upload.html.slim index 26563c97b..b3dacd4bf 100644 --- a/app/views/dashboards/_recently_upload.html.slim +++ b/app/views/dashboards/_recently_upload.html.slim @@ -27,7 +27,7 @@ section i.icon.fas.fa-clock = time_ago_in_words(release.created_at) h3.timeline-header - = link_to(release.app_name, channel_release_path(release.channel, release), class: 'pr-1') + = link_to(release.app_name, friendly_channel_release_path(release.channel, release), class: 'pr-1') = t('dashboard.timeline.upload_release', release_version: release.release_version, build_version: release.build_version) - if release.changelog.present? .timeline-body.pb-1 diff --git a/app/views/releases/body/_activity.html.slim b/app/views/releases/body/_activity.html.slim index 86ae31797..722fd0cfd 100644 --- a/app/views/releases/body/_activity.html.slim +++ b/app/views/releases/body/_activity.html.slim @@ -20,7 +20,7 @@ ruby: i.icon.fas.fa-clock = time_ago_in_words(release.created_at) h3.timeline-header - = link_to release.app_name, channel_release_path(@release.channel, release), class: 'pr-1' + = link_to release.app_name, friendly_channel_release_path(release.channel, release), class: 'pr-1' = t('releases.show.upload_release', release_version: release.release_version, build_version: release.build_version) - if release.changelog.present? .timeline-body.pb-0 @@ -45,4 +45,4 @@ ruby: div i.fas.fa-clock.bg-gray .card-footbar - a.btn.btn-default.btn-block href="#{channel_path(@release.channel)}" = t('releases.show.more') \ No newline at end of file + a.btn.btn-default.btn-block href="#{friendly_channel_path(@release.channel)}" = t('releases.show.more') \ No newline at end of file diff --git a/app/views/releases/body/_metadata.html.slim b/app/views/releases/body/_metadata.html.slim index c620ae72b..1c58b0651 100644 --- a/app/views/releases/body/_metadata.html.slim +++ b/app/views/releases/body/_metadata.html.slim @@ -9,7 +9,7 @@ release_version: latest_release.release_version, \ build_version: latest_release.build_version, \ time: time_ago_in_words(latest_release.created_at), \ - link: link_to(t('releases.show.view_latest_version'), channel_release_path(latest_release.channel, latest_release))) + link: link_to(t('releases.show.view_latest_version'), friendly_channel_release_path(latest_release.channel, latest_release))) .app-detail.card .card-header @@ -24,7 +24,7 @@ - if @release.name.present? li title="#{t('releases.show.name')}" i.fas.fa-list-ul - = link_to @release.app_name, channel_path(@release.channel) + = link_to @release.app_name, friendly_channel_path(@release.channel) li title="#{t('releases.show.version')}" i.fab.fa-gg = @release.version diff --git a/app/views/releases/new.html.slim b/app/views/releases/new.html.slim index 39c1c27eb..9c3785a77 100644 --- a/app/views/releases/new.html.slim +++ b/app/views/releases/new.html.slim @@ -11,7 +11,7 @@ h3.card-title = @title .card-tools - a href="#{channel_path(@channel)}" + a href="#{friendly_channel_path(@channel)}" i.icon.far.fa-list-alt = t('links.back_to_list') .card-body diff --git a/app/views/releases/show.html.slim b/app/views/releases/show.html.slim index 40ef6f58c..6bde28325 100644 --- a/app/views/releases/show.html.slim +++ b/app/views/releases/show.html.slim @@ -15,7 +15,7 @@ a.btn.btn-success.btn-block.mb-3 href="#{new_channel_release_path(@channel)}" = t('releases.new.title') == render 'releases/sidebar/qrcode' == render 'releases/sidebar/version' - a.btn.btn-default.btn-block href="#{channel_path(@channel)}" = t('releases.show.view_detail') + a.btn.btn-default.btn-block href="#{friendly_channel_path(@channel)}" = t('releases.show.view_detail') - else .col-md-12 .card diff --git a/app/views/releases/sidebar/_version.html.slim b/app/views/releases/sidebar/_version.html.slim index 47ce81c65..891a03c60 100644 --- a/app/views/releases/sidebar/_version.html.slim +++ b/app/views/releases/sidebar/_version.html.slim @@ -15,5 +15,5 @@ ruby: - channel.release_versions.each do |version| tr td - = link_to version, channel_version_path(channel.slug, version) + = link_to version, friendly_channel_version_path(channel.slug, version) diff --git a/app/views/teardowns/show.html.slim b/app/views/teardowns/show.html.slim index c0d99497c..36a9b7d86 100644 --- a/app/views/teardowns/show.html.slim +++ b/app/views/teardowns/show.html.slim @@ -8,6 +8,6 @@ h5 = t('.related_app') p = t('.related_body') - = link_to @metadata.release.app_name, channel_release_path(@metadata.release.channel, @metadata.release) + = link_to @metadata.release.app_name, friendly_channel_release_path(@metadata.release.channel, @metadata.release) == render @metadata.platform.to_s.downcase \ No newline at end of file diff --git a/app/views/udid/show.html.slim b/app/views/udid/show.html.slim index 5a68f2c0e..6a76c8998 100644 --- a/app/views/udid/show.html.slim +++ b/app/views/udid/show.html.slim @@ -71,7 +71,7 @@ i.icon.fas.fa-clock = time_ago_in_words(release.created_at) h3.timeline-header - = link_to(release.app_name, channel_release_path(channel, release), class: 'pr-1') + = link_to(release.app_name, friendly_channel_release_path(channel, release), class: 'pr-1') = t('udid.show.upload_release', release_version: release.release_version, build_version: release.build_version) - if release.changelog.present? .timeline-body.pb-0 diff --git a/app/views/web_hooks/_item.html.slim b/app/views/web_hooks/_item.html.slim index c5e71bd25..5bae09150 100644 --- a/app/views/web_hooks/_item.html.slim +++ b/app/views/web_hooks/_item.html.slim @@ -18,7 +18,7 @@ tr - if shared_channel == current_channel = t('web_hooks.current_channel') - else - = link_to shared_channel.app_name, channel_path(shared_channel) + = link_to shared_channel.app_name, friendly_channel_path(shared_channel) td style="width: 70px" - if type == :enabled .btn-group-vertical diff --git a/config/routes.rb b/config/routes.rb index 591355df2..001d8e566 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -15,7 +15,7 @@ # App ############################################# resources :apps do - resources :schemes do + resources :schemes, except: %i[show] do resources :channels, except: %i[index show] end end @@ -43,6 +43,7 @@ end end + # TODO: remove whole channels module scope module: :channels do resources :versions, only: %i[index show], id: /(.+)+/ resources :branches, only: %i[index] @@ -166,6 +167,19 @@ ############################################# post '/graphql', to: 'graphql#execute' + ############################################# + # URL Friendly + ############################################# + scope path: ':channel', as: :friendly do + get '', to: 'channels#show', as: 'channel' + get 'versions', to: 'channels/versions#index', as: 'channel_versions' + get 'versions/:name', to: 'channels/versions#show', name: /(.+)+/, as: 'channel_version' + get 'release_types/:name', to: 'channels/release_types#index', name: /(.+)+/, as: 'channel_release_types' + get 'branches/:name', to: 'channels/branches#index', name: /(.+)+/, as: 'channel_branches' + get ':id', to: 'releases#show', as: 'channel_release' + # get ':id/download', to: 'download/releases#show', as: 'channel_release_download' + end + ############################################# # Development Only ############################################# From f9cd975cb2d998b83b2113ff681c6b70196e55a1 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 27 Dec 2021 19:38:32 +0800 Subject: [PATCH 0828/2165] =?UTF-8?q?fix:=20=E5=BA=94=E7=94=A8=E4=B8=8B?= =?UTF-8?q?=E8=BD=BD=E5=9C=B0=E5=9D=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/release.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/release.rb b/app/models/release.rb index 611d8fea1..1618afaef 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -141,7 +141,7 @@ def file? end def download_url - channel_release_download_path(channel, id) + download_release_url(id) end def install_url From cc7b6322e22a1572ca9590e5add56d998f09776e Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 28 Dec 2021 16:01:51 +0800 Subject: [PATCH 0829/2165] =?UTF-8?q?feat:=20=E4=B8=8A=E4=BC=A0=E5=BA=94?= =?UTF-8?q?=E7=94=A8=E8=BF=94=E5=9B=9E=E5=9C=B0=E5=9D=80=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E6=96=B0=E7=9A=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/release.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/release.rb b/app/models/release.rb index 1618afaef..3bbc32e4f 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -152,7 +152,7 @@ def install_url end def release_url - channel_release_url(channel, self) + friendly_channel_release_url(channel, self) end def qrcode_url(size = :thumb) From 5bc091d8e0ae7346b734c95f07e03103bf18e80b Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 28 Dec 2021 16:15:11 +0800 Subject: [PATCH 0830/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E7=B3=BB?= =?UTF-8?q?=E7=BB=9F=E8=AE=BE=E7=BD=AE=E9=A1=B5=E9=9D=A2=E6=9D=83=E9=99=90?= =?UTF-8?q?=E6=A3=80=E6=9F=A5=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/admin/settings_controller.rb | 1 - app/policies/setting_policy.rb | 4 ---- 2 files changed, 5 deletions(-) diff --git a/app/controllers/admin/settings_controller.rb b/app/controllers/admin/settings_controller.rb index 6dd5f8442..329d2feb2 100644 --- a/app/controllers/admin/settings_controller.rb +++ b/app/controllers/admin/settings_controller.rb @@ -7,7 +7,6 @@ class Admin::SettingsController < ApplicationController def index @title = t('.title') @settings = Setting.site_configs - authorize @settings end def edit diff --git a/app/policies/setting_policy.rb b/app/policies/setting_policy.rb index 188494a4b..b47029549 100644 --- a/app/policies/setting_policy.rb +++ b/app/policies/setting_policy.rb @@ -1,10 +1,6 @@ # frozen_string_literal: true class SettingPolicy < ApplicationPolicy - def index? - admin? - end - def show? admin? end From 527d44e3a82b136992095f2b2b2962225bc80f26 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 28 Dec 2021 18:00:12 +0800 Subject: [PATCH 0831/2165] =?UTF-8?q?fix:=20=E5=BA=94=E7=94=A8=E5=88=86?= =?UTF-8?q?=E6=94=AF=E6=9D=83=E9=99=90=E8=AF=86=E5=88=AB=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/channels/branches_controller.rb | 2 +- app/controllers/teardowns_controller.rb | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/app/controllers/channels/branches_controller.rb b/app/controllers/channels/branches_controller.rb index 2400726fa..bef48acf5 100644 --- a/app/controllers/channels/branches_controller.rb +++ b/app/controllers/channels/branches_controller.rb @@ -23,6 +23,6 @@ def set_releases def set_channel @channel = Channel.friendly.find(params[:channel_id] || params[:channel]) - authorize @channel, :brances? + authorize @channel, :branches? end end diff --git a/app/controllers/teardowns_controller.rb b/app/controllers/teardowns_controller.rb index 89b8107b0..c28034ad0 100644 --- a/app/controllers/teardowns_controller.rb +++ b/app/controllers/teardowns_controller.rb @@ -25,7 +25,6 @@ def new end def create - authorize @metadata @title = t('.title') parse_app rescue AppInfo::NotFoundError, ActiveRecord::RecordNotFound => e From 85c72ff10a01cb0c0f760d0ddcbf9656c5125917 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 29 Dec 2021 10:51:20 +0800 Subject: [PATCH 0832/2165] =?UTF-8?q?style:=20=E8=B0=83=E6=95=B4=E5=B1=8F?= =?UTF-8?q?=E5=B9=95=E5=AE=BD=E5=BA=A6=E8=B6=85=E8=BF=87=201200px=20?= =?UTF-8?q?=E5=8F=8C=E5=88=97=E7=9A=84=E5=AE=BD=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/users_helper.rb | 4 ++++ app/views/channels/show.html.slim | 4 ++-- app/views/releases/body/_activity.html.slim | 5 +++-- app/views/releases/body/_metadata.html.slim | 7 +++++-- app/views/releases/show.html.slim | 7 ++++--- app/views/teardowns/_mobileprovision.html.slim | 4 ++-- 6 files changed, 20 insertions(+), 11 deletions(-) diff --git a/app/helpers/users_helper.rb b/app/helpers/users_helper.rb index 18dc90b46..48bdce795 100644 --- a/app/helpers/users_helper.rb +++ b/app/helpers/users_helper.rb @@ -1,6 +1,10 @@ # frozen_string_literal: true module UsersHelper + def guest_mode_or_signed_in? + Setting.guest_mode? || user_signed_in? + end + def roles_collection User.roles.to_a.collect { |c| [Setting.present_roles[c[0].to_sym], c[0]] } end diff --git a/app/views/channels/show.html.slim b/app/views/channels/show.html.slim index 15940a144..8e1b81d40 100755 --- a/app/views/channels/show.html.slim +++ b/app/views/channels/show.html.slim @@ -7,13 +7,13 @@ = @subtitle .row - .col-md-8 + .col-md-8.col-lg-9 == render 'mobile_menu' == render 'activity' - if current_user&.manage? == render 'web_hooks' - .col-md-4 + .col-md-4.col-lg-3 - if user_signed_in? a.btn.btn-success.btn-block.mb-3 href="#{new_channel_release_path(@channel)}" i.icon.far.fa-plus-square diff --git a/app/views/releases/body/_activity.html.slim b/app/views/releases/body/_activity.html.slim index 722fd0cfd..489f15f42 100644 --- a/app/views/releases/body/_activity.html.slim +++ b/app/views/releases/body/_activity.html.slim @@ -44,5 +44,6 @@ ruby: = release.short_git_commit div i.fas.fa-clock.bg-gray - .card-footbar - a.btn.btn-default.btn-block href="#{friendly_channel_path(@release.channel)}" = t('releases.show.more') \ No newline at end of file + - if guest_mode_or_signed_in? + .card-footbar + a.btn.btn-default.btn-block href="#{friendly_channel_path(@release.channel)}" = t('releases.show.more') \ No newline at end of file diff --git a/app/views/releases/body/_metadata.html.slim b/app/views/releases/body/_metadata.html.slim index 1c58b0651..1a8fb3daf 100644 --- a/app/views/releases/body/_metadata.html.slim +++ b/app/views/releases/body/_metadata.html.slim @@ -24,7 +24,10 @@ - if @release.name.present? li title="#{t('releases.show.name')}" i.fas.fa-list-ul - = link_to @release.app_name, friendly_channel_path(@release.channel) + - if guest_mode_or_signed_in? + = link_to @release.app_name, friendly_channel_path(@release.channel) + - else + = @release.app_name li title="#{t('releases.show.version')}" i.fab.fa-gg = @release.version @@ -63,7 +66,7 @@ = t("releases.sources.#{@release.source.downcase}", default: @release.source) - else = link_to @release.source, @release.ci_url - - if @release.metadata.present? + - if @release.metadata.present? && guest_mode_or_signed_in? li title="#{t('releases.show.metadata')}" i.fas.fa-layer-group = link_to t('releases.show.teardown_meatdata'), teardown_path(@release.metadata) diff --git a/app/views/releases/show.html.slim b/app/views/releases/show.html.slim index 6bde28325..fcbd25a93 100644 --- a/app/views/releases/show.html.slim +++ b/app/views/releases/show.html.slim @@ -3,19 +3,20 @@ .row - if logged_in_or_without_auth?(@release) - .col-md-8 + .col-md-8.col-lg-9 == render 'releases/body/app_limited' == render 'releases/body/metadata' == render 'releases/body/changelog' == render 'releases/body/devices' == render 'releases/body/activity' - .col-md-4 + .col-md-4.col-lg-3 - if user_signed_in? a.btn.btn-success.btn-block.mb-3 href="#{new_channel_release_path(@channel)}" = t('releases.new.title') == render 'releases/sidebar/qrcode' == render 'releases/sidebar/version' - a.btn.btn-default.btn-block href="#{friendly_channel_path(@channel)}" = t('releases.show.view_detail') + - if guest_mode_or_signed_in? + a.btn.btn-default.btn-block href="#{friendly_channel_path(@channel)}" = t('releases.show.view_detail') - else .col-md-12 .card diff --git a/app/views/teardowns/_mobileprovision.html.slim b/app/views/teardowns/_mobileprovision.html.slim index 2734fca82..6fb8d75e8 100644 --- a/app/views/teardowns/_mobileprovision.html.slim +++ b/app/views/teardowns/_mobileprovision.html.slim @@ -1,9 +1,9 @@ -.col-md-8 +.col-md-8.col-lg-9 == render 'mobileprovision_part' == render 'developer_certs_part' == render 'devices_part' == render 'card', title: 'Entitlements', raw: @metadata.entitlements -.col-md-4 +.col-md-4.col-lg-3 == render 'card', title: t('teardowns.show.capabilities'), raw: @metadata.capabilities == render 'card', title: 'URL Schemes', raw: @metadata.url_schemes \ No newline at end of file From 8df35bb353976ca6970b5c7e420aeb8f49d13535 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 29 Dec 2021 10:52:20 +0800 Subject: [PATCH 0833/2165] =?UTF-8?q?refactor:=20=E6=9C=AA=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E6=A8=A1=E5=BC=8F=E5=85=81=E8=AE=B8=E5=9C=A8=E5=BA=94?= =?UTF-8?q?=E7=94=A8=E8=AF=A6=E6=83=85=E6=9F=A5=E7=9C=8B=E5=BA=94=E7=94=A8?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E3=80=81=E5=88=86=E6=94=AF=E3=80=81=E6=89=93?= =?UTF-8?q?=E5=8C=85=E7=B1=BB=E5=9E=8B=E7=9A=84=E7=AD=9B=E9=80=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/policies/channel_policy.rb | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/policies/channel_policy.rb b/app/policies/channel_policy.rb index 7070e5964..fac8f1386 100644 --- a/app/policies/channel_policy.rb +++ b/app/policies/channel_policy.rb @@ -3,15 +3,15 @@ class ChannelPolicy < ApplicationPolicy def versions? - guest_mode_or_signed_in? + true end def branches? - guest_mode_or_signed_in? + true end def release_types? - guest_mode_or_signed_in? + true end class Scope < Scope From 62c6d2527d9e397eaaf742dd07f122e6149e4486 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 29 Dec 2021 10:52:53 +0800 Subject: [PATCH 0834/2165] =?UTF-8?q?fix:=20=E5=A4=84=E7=90=86=E8=B0=83?= =?UTF-8?q?=E8=AF=95=E6=96=87=E4=BB=B6=E5=9C=A8=E8=A7=A3=E6=9E=90=E6=97=B6?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E4=B8=8D=E5=AD=98=E5=9C=A8=E7=9A=84=E5=88=A4?= =?UTF-8?q?=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/jobs/debug_file_teardown_job.rb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/jobs/debug_file_teardown_job.rb b/app/jobs/debug_file_teardown_job.rb index c836a2216..e73fd28dd 100644 --- a/app/jobs/debug_file_teardown_job.rb +++ b/app/jobs/debug_file_teardown_job.rb @@ -19,6 +19,8 @@ def perform(debug_file, user_id = nil) parser.clear! notification_user(debug_file, user_id) + rescue AppInfo::NotFoundError + logger.info("Can not found debug file #{debug_file.id}, may be removed.") end private From df60a2e138eeacf2aa09d40f7ba66634cfca96e2 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 29 Dec 2021 12:04:10 +0800 Subject: [PATCH 0835/2165] =?UTF-8?q?refactor:=20=E5=BA=94=E7=94=A8?= =?UTF-8?q?=E6=B8=A0=E9=81=93=E8=AF=A6=E6=83=85=E8=B7=AF=E5=BE=84=E6=94=B9?= =?UTF-8?q?=E4=B8=BA=20:channel/overview?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/channels_controller.rb | 2 +- app/controllers/releases_controller.rb | 19 +++++++++++++------ app/controllers/web_hooks_controller.rb | 2 +- app/helpers/channels_helper.rb | 2 +- app/views/apps/show.html.slim | 2 +- app/views/channels/_channels.html.slim | 2 +- app/views/channels/_metadata.html.slim | 6 ++++-- app/views/channels/_mobile_menu.html.slim | 2 +- app/views/channels/filters/index.slim | 2 +- app/views/channels/show.html.slim | 4 ++-- app/views/releases/body/_activity.html.slim | 2 +- app/views/releases/body/_metadata.html.slim | 2 +- app/views/releases/new.html.slim | 2 +- app/views/releases/show.html.slim | 4 ++-- app/views/web_hooks/_item.html.slim | 2 +- config/locales/zealot/zh-CN.yml | 2 +- config/routes.rb | 15 ++++++++------- 17 files changed, 41 insertions(+), 31 deletions(-) diff --git a/app/controllers/channels_controller.rb b/app/controllers/channels_controller.rb index fafb1666d..eddea923a 100644 --- a/app/controllers/channels_controller.rb +++ b/app/controllers/channels_controller.rb @@ -41,7 +41,7 @@ def update authorize @channel @channel.update(channel_params) - redirect_to friendly_channel_path(@channel) + redirect_to friendly_channel_overview_path(@channel) end def destroy diff --git a/app/controllers/releases_controller.rb b/app/controllers/releases_controller.rb index f842ae730..cb9176ad5 100644 --- a/app/controllers/releases_controller.rb +++ b/app/controllers/releases_controller.rb @@ -1,19 +1,19 @@ # frozen_string_literal: true class ReleasesController < ApplicationController - before_action :authenticate_login!, except: %i[show auth] + before_action :authenticate_login!, except: %i[index show auth] before_action :set_channel before_action :set_release, only: %i[show auth destroy] before_action :authenticate_app!, only: :show def index if @channel.releases.empty? - return redirect_to friendly_channel_path(@channel), + return redirect_to friendly_channel_overview_path(@channel), notice: t('releases.messages.errors.not_found_release_and_redirect_to_channel') end - redirect_to friendly_channel_release_path(@channel, @channel.releases.last), - notice: t('releases.messages.errors.not_found_release_and_redirect_to_latest_release') + @release = @channel.releases.last + render :show end def show @@ -91,6 +91,7 @@ def not_found(e) @title = t('releases.messages.errors.not_found') @link_title = t('releases.messages.errors.redirect_to_app_list') @link_href = apps_path + case e when ActiveRecord::RecordNotFound case e.model @@ -98,8 +99,14 @@ def not_found(e) @title = t('releases.messages.errors.not_found_app') when 'Release' @title = t('releases.messages.errors.not_found_release') - @link_title = t('releases.messages.errors.reidrect_channel_detal') - @link_href = friendly_channel_path(@channel) + if (current_user || Setting.guest_mode) + @link_title = t('releases.messages.errors.reidrect_channel_detal') + @link_href = friendly_channel_overview_path(@channel) + else + @link_title = t('releases.messages.errors.not_found_release_and_redirect_to_latest_release') + @link_href = friendly_channel_releases_path(@channel) + end + end end diff --git a/app/controllers/web_hooks_controller.rb b/app/controllers/web_hooks_controller.rb index c6faea982..9741172b5 100644 --- a/app/controllers/web_hooks_controller.rb +++ b/app/controllers/web_hooks_controller.rb @@ -58,6 +58,6 @@ def web_hook_params end def redirect_to_channel_url(**options) - redirect_to friendly_channel_path(@channel), **options + redirect_to friendly_channel_overview_path(@channel), **options end end diff --git a/app/helpers/channels_helper.rb b/app/helpers/channels_helper.rb index 426a0dba5..24fbb3abb 100644 --- a/app/helpers/channels_helper.rb +++ b/app/helpers/channels_helper.rb @@ -3,6 +3,6 @@ module ChannelsHelper def using_friendly_channel_path(scheme, channel) channel = scheme.channels.find_by(device_type: channel.device_type) - friendly_channel_path(channel) + friendly_channel_overview_path(channel) end end diff --git a/app/views/apps/show.html.slim b/app/views/apps/show.html.slim index 9d92c3a64..28ba0116c 100644 --- a/app/views/apps/show.html.slim +++ b/app/views/apps/show.html.slim @@ -31,7 +31,7 @@ - scheme.channels.each do |channel| tr td - = link_to channel.name, friendly_channel_path(channel) + = link_to channel.name, friendly_channel_overview_path(channel) td style="width: 120px" = button_link_to '', edit_app_scheme_channel_path(@app, scheme, channel), 'edit', class: 'btn-box-tool' = button_link_to '', app_scheme_channel_path(@app, scheme, channel), 'trash-alt', class: 'btn-box-tool', data: { confirm: "#{t('apps.messages.confirm.delete_app_channel', name: channel.app_name)}", method: "delete" } diff --git a/app/views/channels/_channels.html.slim b/app/views/channels/_channels.html.slim index 59b5d700a..c6a03e893 100755 --- a/app/views/channels/_channels.html.slim +++ b/app/views/channels/_channels.html.slim @@ -5,4 +5,4 @@ ul.nav.nav-pills.flex-column - @channel.scheme.channels.each do |channel| li.nav-item - = link_to display_app_device(channel), friendly_channel_path(channel), class: "nav-link #{(params[:id] || params[:channel]) == channel.slug ? 'active' : ''}" \ No newline at end of file + = link_to display_app_device(channel), friendly_channel_overview_path(channel), class: "nav-link #{(params[:id] || params[:channel]) == channel.slug ? 'active' : ''}" \ No newline at end of file diff --git a/app/views/channels/_metadata.html.slim b/app/views/channels/_metadata.html.slim index b1a988365..23a23946f 100644 --- a/app/views/channels/_metadata.html.slim +++ b/app/views/channels/_metadata.html.slim @@ -26,5 +26,7 @@ p.d-flex.flex-column.border-bottom.pl-3.pb-3 span.font-weight-bold = @channel.key span.text-muted = t('channels.show.channel_key') - .card-footbar.pl-3.pr-3.pb-3 - a.btn.btn-default.btn-block href="#{edit_app_scheme_channel_path(@channel.scheme.app, @channel.scheme, @channel)}" = t('channels.show.edit_channel') \ No newline at end of file + + - if user_signed_in? + .card-footbar.pl-3.pr-3.pb-3 + a.btn.btn-default.btn-block href="#{edit_app_scheme_channel_path(@channel.scheme.app, @channel.scheme, @channel)}" = t('channels.show.edit_channel') \ No newline at end of file diff --git a/app/views/channels/_mobile_menu.html.slim b/app/views/channels/_mobile_menu.html.slim index d302f3b86..75c149376 100755 --- a/app/views/channels/_mobile_menu.html.slim +++ b/app/views/channels/_mobile_menu.html.slim @@ -16,4 +16,4 @@ nav.filter-nav.navbar.navbar-expand.navbar-white.d-block.d-sm-none - @channel.scheme.channels.each do |channel| - if channel != @channel li - = link_to display_app_device(channel), friendly_channel_path(channel), class: "dropdown-item" + = link_to display_app_device(channel), friendly_channel_overview_path(channel), class: "dropdown-item" diff --git a/app/views/channels/filters/index.slim b/app/views/channels/filters/index.slim index 0616fc7c7..dcc4a4e08 100644 --- a/app/views/channels/filters/index.slim +++ b/app/views/channels/filters/index.slim @@ -10,7 +10,7 @@ .card-header h3.card-title = @subtitle .card-tools - a href="#{friendly_channel_path(@channel)}" + a href="#{friendly_channel_overview_path(@channel)}" i.icon.far.fa-list-alt = t('links.back_to_list') .table-responsive diff --git a/app/views/channels/show.html.slim b/app/views/channels/show.html.slim index 8e1b81d40..15940a144 100755 --- a/app/views/channels/show.html.slim +++ b/app/views/channels/show.html.slim @@ -7,13 +7,13 @@ = @subtitle .row - .col-md-8.col-lg-9 + .col-md-8 == render 'mobile_menu' == render 'activity' - if current_user&.manage? == render 'web_hooks' - .col-md-4.col-lg-3 + .col-md-4 - if user_signed_in? a.btn.btn-success.btn-block.mb-3 href="#{new_channel_release_path(@channel)}" i.icon.far.fa-plus-square diff --git a/app/views/releases/body/_activity.html.slim b/app/views/releases/body/_activity.html.slim index 489f15f42..19d0fba6a 100644 --- a/app/views/releases/body/_activity.html.slim +++ b/app/views/releases/body/_activity.html.slim @@ -46,4 +46,4 @@ ruby: i.fas.fa-clock.bg-gray - if guest_mode_or_signed_in? .card-footbar - a.btn.btn-default.btn-block href="#{friendly_channel_path(@release.channel)}" = t('releases.show.more') \ No newline at end of file + a.btn.btn-default.btn-block href="#{friendly_channel_overview_path(@release.channel)}" = t('releases.show.more') \ No newline at end of file diff --git a/app/views/releases/body/_metadata.html.slim b/app/views/releases/body/_metadata.html.slim index 1a8fb3daf..361050a26 100644 --- a/app/views/releases/body/_metadata.html.slim +++ b/app/views/releases/body/_metadata.html.slim @@ -25,7 +25,7 @@ li title="#{t('releases.show.name')}" i.fas.fa-list-ul - if guest_mode_or_signed_in? - = link_to @release.app_name, friendly_channel_path(@release.channel) + = link_to @release.app_name, friendly_channel_overview_path(@release.channel) - else = @release.app_name li title="#{t('releases.show.version')}" diff --git a/app/views/releases/new.html.slim b/app/views/releases/new.html.slim index 9c3785a77..2eb21b447 100644 --- a/app/views/releases/new.html.slim +++ b/app/views/releases/new.html.slim @@ -11,7 +11,7 @@ h3.card-title = @title .card-tools - a href="#{friendly_channel_path(@channel)}" + a href="#{friendly_channel_overview_path(@channel)}" i.icon.far.fa-list-alt = t('links.back_to_list') .card-body diff --git a/app/views/releases/show.html.slim b/app/views/releases/show.html.slim index fcbd25a93..5bba6b074 100644 --- a/app/views/releases/show.html.slim +++ b/app/views/releases/show.html.slim @@ -13,10 +13,10 @@ .col-md-4.col-lg-3 - if user_signed_in? a.btn.btn-success.btn-block.mb-3 href="#{new_channel_release_path(@channel)}" = t('releases.new.title') - == render 'releases/sidebar/qrcode' == render 'releases/sidebar/version' + == render 'releases/sidebar/qrcode' - if guest_mode_or_signed_in? - a.btn.btn-default.btn-block href="#{friendly_channel_path(@channel)}" = t('releases.show.view_detail') + a.btn.btn-default.btn-block href="#{friendly_channel_overview_path(@channel)}" = t('releases.show.view_detail') - else .col-md-12 .card diff --git a/app/views/web_hooks/_item.html.slim b/app/views/web_hooks/_item.html.slim index 5bae09150..f569ac5f0 100644 --- a/app/views/web_hooks/_item.html.slim +++ b/app/views/web_hooks/_item.html.slim @@ -18,7 +18,7 @@ tr - if shared_channel == current_channel = t('web_hooks.current_channel') - else - = link_to shared_channel.app_name, friendly_channel_path(shared_channel) + = link_to shared_channel.app_name, friendly_channel_overview_path(shared_channel) td style="width: 70px" - if type == :enabled .btn-group-vertical diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index 6e1cfc7e0..61f0041d0 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -334,7 +334,7 @@ zh-CN: not_found_release_and_redirect_to_latest_release: 版本不存在或已经被移除,跳转至最新版本 not_found: 页面找不到 not_found_app: 应用不存在或已经被移除 - not_found_release: 应用渠道没有找到版本 + not_found_release: 应用版本不存在或被移除 redirect_to_app_list: 跳转到应用列表 reidrect_channel_detal: 跳转应用渠道详情 deleted_manually: 可能当前版本被人工删除 diff --git a/config/routes.rb b/config/routes.rb index 001d8e566..121e4e83c 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -170,13 +170,14 @@ ############################################# # URL Friendly ############################################# - scope path: ':channel', as: :friendly do - get '', to: 'channels#show', as: 'channel' - get 'versions', to: 'channels/versions#index', as: 'channel_versions' - get 'versions/:name', to: 'channels/versions#show', name: /(.+)+/, as: 'channel_version' - get 'release_types/:name', to: 'channels/release_types#index', name: /(.+)+/, as: 'channel_release_types' - get 'branches/:name', to: 'channels/branches#index', name: /(.+)+/, as: 'channel_branches' - get ':id', to: 'releases#show', as: 'channel_release' + scope path: ':channel', as: :friendly_channel do + get '/overview', to: 'channels#show' + get '', to: 'releases#index', as: 'releases' + get 'versions', to: 'channels/versions#index', as: 'versions' + get 'versions/:name', to: 'channels/versions#show', name: /(.+)+/, as: 'version' + get 'release_types/:name', to: 'channels/release_types#index', name: /(.+)+/, as: 'release_types' + get 'branches/:name', to: 'channels/branches#index', name: /(.+)+/, as: 'branches' + get ':id', to: 'releases#show', as: 'release' # get ':id/download', to: 'download/releases#show', as: 'channel_release_download' end From 618381eb815fa716d9f3099fd55a1ca4fe041bb1 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 29 Dec 2021 16:37:32 +0800 Subject: [PATCH 0836/2165] =?UTF-8?q?refactor:=20qrcode=20=E6=89=AB?= =?UTF-8?q?=E7=A0=81=E6=9B=B4=E6=96=B0=E4=B8=BA=E6=96=B0=E5=9C=B0=E5=9D=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/releases/qrcode_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/releases/qrcode_controller.rb b/app/controllers/releases/qrcode_controller.rb index 2f43bbfc8..a5e0dd4e7 100644 --- a/app/controllers/releases/qrcode_controller.rb +++ b/app/controllers/releases/qrcode_controller.rb @@ -7,7 +7,7 @@ class Releases::QrcodeController < ApplicationController # 显示应用的二维码 # GET /apps/:slug/(:version)/qrcode def show - render qrcode: channel_release_url(@release.channel, @release), + render qrcode: friendly_channel_release_url(@release.channel, @release), module_px_size: qrcode_size, fill: '#FFFFFF', color: '#465960' From a427a70e40031b4130aea2005792087b1e4036f0 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 29 Dec 2021 16:59:51 +0800 Subject: [PATCH 0837/2165] =?UTF-8?q?fix:=20=E5=BA=94=E7=94=A8=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E5=88=86=E4=BA=AB=E9=A1=B5=E7=BC=BA=E5=A4=B1=E6=A0=87?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/releases_controller.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/app/controllers/releases_controller.rb b/app/controllers/releases_controller.rb index cb9176ad5..06b93cda2 100644 --- a/app/controllers/releases_controller.rb +++ b/app/controllers/releases_controller.rb @@ -13,6 +13,7 @@ def index end @release = @channel.releases.last + @title = @release.app_name render :show end From 19dc8b2d5e1590765f1a40d997969d8c80dec3a6 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 30 Dec 2021 14:49:35 +0800 Subject: [PATCH 0838/2165] =?UTF-8?q?fix:=20=E6=97=A5=E5=BF=97=E6=B2=A1?= =?UTF-8?q?=E6=9C=89=E8=BE=93=E5=87=BA=E5=88=B0=20STDOUT?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/initializers/1_lograge.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/config/initializers/1_lograge.rb b/config/initializers/1_lograge.rb index 6b59abb95..0a7c5dc9d 100644 --- a/config/initializers/1_lograge.rb +++ b/config/initializers/1_lograge.rb @@ -36,6 +36,7 @@ def custom_payload(controller) Rails.application.configure do # Better log formatting config.lograge.enabled = true + config.lograge.logger = ActiveSupport::Logger.new(STDOUT) config.lograge.custom_payload do |controller| custom_payload(controller) From 691fa81b93c0db62e34655b1d01e0dbb3588aa63 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 30 Dec 2021 15:45:21 +0800 Subject: [PATCH 0839/2165] =?UTF-8?q?feat:=20=E6=97=A5=E5=BF=97=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E6=97=B6=E9=97=B4=E6=88=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/initializers/1_lograge.rb | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/config/initializers/1_lograge.rb b/config/initializers/1_lograge.rb index 0a7c5dc9d..f730cbccd 100644 --- a/config/initializers/1_lograge.rb +++ b/config/initializers/1_lograge.rb @@ -43,7 +43,8 @@ def custom_payload(controller) end config.lograge.custom_options = lambda do |event| - options = {} + options = { time: event.time } + if exception = event.payload[:exception] options[:exception] = exception end @@ -51,6 +52,7 @@ def custom_payload(controller) if exception_object = event.payload[:exception_object] options[:exception_object] = exception_object end + options end @@ -62,7 +64,8 @@ def custom_payload(controller) config.lograge.ignore_actions = [ 'HealthCheck::HealthCheckController#index', 'ApplicationCable::Connection#connect', - 'ApplicationCable::Connection#disconnect' + 'ApplicationCable::Connection#disconnect', + 'NotificationChannel' ] end end \ No newline at end of file From 4e316f4de72d73cc3d44705eaae6b3224e44e85a Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 30 Dec 2021 17:40:38 +0800 Subject: [PATCH 0840/2165] =?UTF-8?q?style:=20=E4=B8=8A=E4=BC=A0=E8=B0=83?= =?UTF-8?q?=E8=AF=95=E6=96=87=E4=BB=B6=E9=A1=B5=E9=9D=A2=E5=B8=AE=E5=8A=A9?= =?UTF-8?q?=E7=9A=84=E5=B8=83=E5=B1=80=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/debug_files/new.html.slim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/debug_files/new.html.slim b/app/views/debug_files/new.html.slim index 43d223cfb..912b6684c 100644 --- a/app/views/debug_files/new.html.slim +++ b/app/views/debug_files/new.html.slim @@ -14,4 +14,4 @@ .card-body == render 'form' - == render 'help' \ No newline at end of file + == render 'help' \ No newline at end of file From 56a0e36a81fc227b330601415bbe6b6dc156a8ff Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 30 Dec 2021 17:43:10 +0800 Subject: [PATCH 0841/2165] =?UTF-8?q?feat:=20=E5=8D=87=E7=BA=A7=20gems=20?= =?UTF-8?q?=E5=85=BC=E5=AE=B9=20Ruby=203?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 4 ++-- Gemfile.lock | 25 +++++++++++++------------ 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/Gemfile b/Gemfile index c31597450..436b17657 100644 --- a/Gemfile +++ b/Gemfile @@ -69,7 +69,7 @@ gem 'sentry-rails' gem 'sentry-sidekiq' ## Jenkins SDK -gem 'jenkins_api_client' +gem 'improved_jenkins_client', '~> 1.6.7' ## 生成条形码/二维码 gem 'rqrcode' @@ -111,7 +111,7 @@ group :development do gem 'terminal-notifier-guard' # IDE tools(VSCode) - gem 'debase' + gem 'debase', '~> 0.2.5.beta2' gem 'ruby-debug-ide' # 加速开发环境 diff --git a/Gemfile.lock b/Gemfile.lock index 1438cc819..b286e9e80 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -109,16 +109,16 @@ GEM ssrf_filter (~> 1.0) case_transform (0.2) activesupport - chef-utils (17.2.29) + chef-utils (17.9.18) concurrent-ruby chunky_png (1.4.0) coderay (1.1.3) concurrent-ruby (1.1.9) connection_pool (2.2.5) crass (1.0.6) - debase (0.2.4.1) - debase-ruby_core_source (>= 0.10.2) - debase-ruby_core_source (0.10.12) + debase (0.2.5.beta2) + debase-ruby_core_source (>= 0.10.12) + debase-ruby_core_source (0.10.14) debug_inspector (1.1.0) devise (4.8.1) bcrypt (~> 3.0) @@ -224,17 +224,18 @@ GEM mini_magick (>= 4.9.5, < 5) ruby-vips (>= 2.0.17, < 3) image_size (3.0.1) - interception (0.5) - ipaddr (1.2.2) - jb (0.8.0) - jenkins_api_client (1.5.3) + improved_jenkins_client (1.6.7) + addressable (~> 2.7) json (>= 1.0) mixlib-shellout (>= 1.1.0) nokogiri (~> 1.6) socksify (>= 1.7.0) terminal-table (>= 1.4.0) thor (>= 0.16.0) - json (2.5.1) + interception (0.5) + ipaddr (1.2.2) + jb (0.8.0) + json (2.6.1) jsonapi-renderer (0.2.2) jwt (2.2.3) kaminari (1.2.1) @@ -484,7 +485,7 @@ GEM temple (0.8.2) terminal-notifier (2.0.0) terminal-notifier-guard (1.7.0) - terminal-table (3.0.1) + terminal-table (3.0.2) unicode-display_width (>= 1.1.1, < 3) thor (1.1.0) thwait (0.2.0) @@ -535,7 +536,7 @@ DEPENDENCIES bootsnap (>= 1.4.7) byebug carrierwave (~> 2.2.2) - debase + debase (~> 0.2.5.beta2) devise (~> 4.8.1) devise-i18n (~> 1.10.1) dotenv-rails @@ -551,8 +552,8 @@ DEPENDENCIES guard-webpacker health_check (~> 3.1.0) http (~> 5.0.4) + improved_jenkins_client (~> 1.6.7) jb (~> 0.8.0) - jenkins_api_client kaminari letter_opener (~> 1.7) letter_opener_web (~> 2.0) From 419815ee93b2aa570d1b59fe648d40a7584751af Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 30 Dec 2021 17:43:33 +0800 Subject: [PATCH 0842/2165] =?UTF-8?q?fix:=20=E9=80=82=E9=85=8D=20Ruby=203.?= =?UTF-8?q?0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/apps_helper.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/helpers/apps_helper.rb b/app/helpers/apps_helper.rb index 00cb629dc..51f05699d 100644 --- a/app/helpers/apps_helper.rb +++ b/app/helpers/apps_helper.rb @@ -13,10 +13,10 @@ def default_channels def app_icon(release, options = {}) unless release&.icon && release.icon.file && release.icon.file.exists? - return image_pack_tag('media/images/touch-icon.png', options) + return image_pack_tag('media/images/touch-icon.png', **options) end - image_tag(release.icon_url, options) + image_tag(release.icon_url, **options) end def app_release_auth_key(release) From 54a5f23fc324a0f1213e3f2e18b1e31ad9375b34 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 30 Dec 2021 17:44:19 +0800 Subject: [PATCH 0843/2165] =?UTF-8?q?chore:=20docker=20=E9=95=9C=E5=83=8F?= =?UTF-8?q?=E5=8D=87=E7=BA=A7=20Ruby=203.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index 9792a16c9..dd999eed4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM ruby:2.7-alpine as builder +FROM ruby:3.0-alpine as builder ARG BUILD_PACKAGES="build-base libxml2 libxslt git" ARG DEV_PACKAGES="libxml2-dev libxslt-dev yaml-dev postgresql-dev nodejs npm yarn libwebp-dev libpng-dev tiff-dev" @@ -48,14 +48,14 @@ RUN SECRET_TOKEN=precompile_placeholder bin/rails assets:precompile # Remove folders not needed in resulting image RUN rm -rf docker node_modules tmp/cache spec .browserslistrc babel.config.js \ package.json postcss.config.js yarn.lock && \ - cd /app/vendor/bundle/ruby/2.7.0 && \ + cd /app/vendor/bundle/ruby/3.0.0 && \ rm -rf cache/*.gem && \ find gems/ -name "*.c" -delete && \ find gems/ -name "*.o" -delete ################################################################################## -FROM ruby:2.7-alpine +FROM ruby:3.0-alpine ARG BUILD_DATE ARG VCS_REF From a7e7f7075e9e68e4a0c640aab38beac31c1454f4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 11 Jan 2022 21:02:18 +0000 Subject: [PATCH 0844/2165] chore(deps): bump compare-versions from 4.1.2 to 4.1.3 Bumps [compare-versions](https://github.com/omichelsen/compare-versions) from 4.1.2 to 4.1.3. - [Release notes](https://github.com/omichelsen/compare-versions/releases) - [Changelog](https://github.com/omichelsen/compare-versions/blob/master/CHANGELOG.md) - [Commits](https://github.com/omichelsen/compare-versions/commits) --- updated-dependencies: - dependency-name: compare-versions dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index a16425bd1..55d0aec60 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "@rails/webpacker": "^5.4.2", "admin-lte": "^3.1.0", "clipboard": "^2.0.8", - "compare-versions": "^4.1.2", + "compare-versions": "^4.1.3", "filepond": "^4.30.3", "rails-erb-loader": "^5.5.2", "turbolinks": "^5.2.0" diff --git a/yarn.lock b/yarn.lock index 7a26e1496..282ade401 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2342,10 +2342,10 @@ commondir@^1.0.1: resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= -compare-versions@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-4.1.2.tgz#a7b1678c897000d03a70a0e01efee43e7b04dda7" - integrity sha512-LAfbAbAgjnIwPsr2fvJLfrSyqAhK5nj/ffIg7a5aigry9RXJfNzVnOu0Egw8Z+G8LMDu1Qig2q48bpBzjyjZoQ== +compare-versions@^4.1.3: + version "4.1.3" + resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-4.1.3.tgz#8f7b8966aef7dc4282b45dfa6be98434fc18a1a4" + integrity sha512-WQfnbDcrYnGr55UwbxKiQKASnTtNnaAWVi8jZyy8NTpVAXWACSne8lMD1iaIo9AiU6mnuLvSVshCzewVuWxHUg== component-emitter@^1.2.1: version "1.3.0" From d8018b42e978fc9afcc006381ac6a09aaf74ba3a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 14 Jan 2022 02:03:07 +0000 Subject: [PATCH 0845/2165] chore(deps): bump follow-redirects from 1.14.1 to 1.14.7 Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.14.1 to 1.14.7. - [Release notes](https://github.com/follow-redirects/follow-redirects/releases) - [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.14.1...v1.14.7) --- updated-dependencies: - dependency-name: follow-redirects dependency-type: indirect ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 282ade401..9293a4b98 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3816,9 +3816,9 @@ flush-write-stream@^1.0.0: readable-stream "^2.3.6" follow-redirects@^1.0.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.1.tgz#d9114ded0a1cfdd334e164e6662ad02bfd91ff43" - integrity sha512-HWqDgT7ZEkqRzBvc2s64vSZ/hfOceEol3ac/7tKwzuvEyWx3/4UegXh5oBOIotkGsObyk3xznnSRVADBgWSQVg== + version "1.14.7" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.7.tgz#2004c02eb9436eee9a21446a6477debf17e81685" + integrity sha512-+hbxoLbFMbRKDwohX8GkTataGqO6Jb7jGwpAlwgy2bIz25XtRm7KEzJM76R1WiNT5SwZkX4Y75SwBolkpmE7iQ== fontkit@^1.8.1: version "1.8.1" From d1f7224e28d1c518e127ccbcb7375cf953615554 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 14 Jan 2022 21:02:48 +0000 Subject: [PATCH 0846/2165] chore(deps): bump active_model_serializers from 0.10.12 to 0.10.13 Bumps [active_model_serializers](https://github.com/rails-api/active_model_serializers) from 0.10.12 to 0.10.13. - [Release notes](https://github.com/rails-api/active_model_serializers/releases) - [Changelog](https://github.com/rails-api/active_model_serializers/blob/v0.10.13/CHANGELOG.md) - [Commits](https://github.com/rails-api/active_model_serializers/compare/v0.10.12...v0.10.13) --- updated-dependencies: - dependency-name: active_model_serializers dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Gemfile b/Gemfile index 436b17657..541250c34 100644 --- a/Gemfile +++ b/Gemfile @@ -17,7 +17,7 @@ gem 'redis', '~> 4.5.1' gem 'lograge', '~> 0.11.2' # API -gem 'active_model_serializers', '~> 0.10.12' +gem 'active_model_serializers', '~> 0.10.13' gem 'graphql', '~> 1.13.2' gem 'rack-cors', '~> 1.1.1' gem 'health_check', '~> 3.1.0' diff --git a/Gemfile.lock b/Gemfile.lock index b286e9e80..23b484444 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -43,9 +43,9 @@ GEM rails-html-sanitizer (~> 1.1, >= 1.2.0) active_analytics (0.2.1) rails (>= 5.2.0) - active_model_serializers (0.10.12) - actionpack (>= 4.1, < 6.2) - activemodel (>= 4.1, < 6.2) + active_model_serializers (0.10.13) + actionpack (>= 4.1, < 7.1) + activemodel (>= 4.1, < 7.1) case_transform (>= 0.2) jsonapi-renderer (>= 0.1.1.beta1, < 0.3) activejob (6.1.4.4) @@ -280,7 +280,7 @@ GEM method_source (1.0.0) mini_magick (4.11.0) mini_mime (1.1.2) - mini_portile2 (2.6.1) + mini_portile2 (2.7.1) minitest (5.15.0) mixlib-shellout (3.2.5) chef-utils @@ -291,8 +291,8 @@ GEM nenv (0.3.0) net-ldap (0.17.0) nio4r (2.5.8) - nokogiri (1.12.5) - mini_portile2 (~> 2.6.1) + nokogiri (1.13.1) + mini_portile2 (~> 2.7.0) racc (~> 1.4) notiffany (0.1.3) nenv (~> 0.1) @@ -520,14 +520,14 @@ GEM websocket-driver (0.7.5) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) - zeitwerk (2.5.1) + zeitwerk (2.5.3) PLATFORMS ruby DEPENDENCIES active_analytics - active_model_serializers (~> 0.10.12) + active_model_serializers (~> 0.10.13) activejob-status app-info (~> 2.8.1) awesome_print From 977865f6638bb66e9c9439728efda2a1df58f2ca Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 17 Jan 2022 02:18:48 +0000 Subject: [PATCH 0847/2165] chore(deps-dev): bump listen from 3.7.0 to 3.7.1 Bumps [listen](https://github.com/guard/listen) from 3.7.0 to 3.7.1. - [Release notes](https://github.com/guard/listen/releases) - [Commits](https://github.com/guard/listen/compare/v3.7.0...v3.7.1) --- updated-dependencies: - dependency-name: listen dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index b286e9e80..a052f2839 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -43,9 +43,9 @@ GEM rails-html-sanitizer (~> 1.1, >= 1.2.0) active_analytics (0.2.1) rails (>= 5.2.0) - active_model_serializers (0.10.12) - actionpack (>= 4.1, < 6.2) - activemodel (>= 4.1, < 6.2) + active_model_serializers (0.10.13) + actionpack (>= 4.1, < 7.1) + activemodel (>= 4.1, < 7.1) case_transform (>= 0.2) jsonapi-renderer (>= 0.1.1.beta1, < 0.3) activejob (6.1.4.4) @@ -157,7 +157,7 @@ GEM faraday-net_http_persistent (1.2.0) faraday-patron (1.0.0) faraday-rack (1.0.0) - ffi (1.15.4) + ffi (1.15.5) ffi-compiler (1.0.1) ffi (>= 1.0.0) rake @@ -259,7 +259,7 @@ GEM letter_opener (~> 1.7) railties (>= 5.2) rexml - listen (3.7.0) + listen (3.7.1) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) llhttp-ffi (0.4.0) @@ -280,7 +280,7 @@ GEM method_source (1.0.0) mini_magick (4.11.0) mini_mime (1.1.2) - mini_portile2 (2.6.1) + mini_portile2 (2.7.1) minitest (5.15.0) mixlib-shellout (3.2.5) chef-utils @@ -291,8 +291,8 @@ GEM nenv (0.3.0) net-ldap (0.17.0) nio4r (2.5.8) - nokogiri (1.12.5) - mini_portile2 (~> 2.6.1) + nokogiri (1.13.1) + mini_portile2 (~> 2.7.0) racc (~> 1.4) notiffany (0.1.3) nenv (~> 0.1) @@ -520,14 +520,14 @@ GEM websocket-driver (0.7.5) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) - zeitwerk (2.5.1) + zeitwerk (2.5.3) PLATFORMS ruby DEPENDENCIES active_analytics - active_model_serializers (~> 0.10.12) + active_model_serializers (~> 0.10.13) activejob-status app-info (~> 2.8.1) awesome_print From 09b89f43b31fd7fa23d166de2903ee0e01b72b15 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 31 Jan 2022 21:03:16 +0000 Subject: [PATCH 0848/2165] chore(deps): bump graphql from 1.13.2 to 1.13.8 Bumps [graphql](https://github.com/rmosolgo/graphql-ruby) from 1.13.2 to 1.13.8. - [Release notes](https://github.com/rmosolgo/graphql-ruby/releases) - [Changelog](https://github.com/rmosolgo/graphql-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/rmosolgo/graphql-ruby/compare/v1.13.2...v1.13.8) --- updated-dependencies: - dependency-name: graphql dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 541250c34..5efa9fcbb 100644 --- a/Gemfile +++ b/Gemfile @@ -18,7 +18,7 @@ gem 'lograge', '~> 0.11.2' # API gem 'active_model_serializers', '~> 0.10.13' -gem 'graphql', '~> 1.13.2' +gem 'graphql', '~> 1.13.8' gem 'rack-cors', '~> 1.1.1' gem 'health_check', '~> 3.1.0' diff --git a/Gemfile.lock b/Gemfile.lock index 23b484444..63952e954 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -178,7 +178,7 @@ GEM graphiql-rails (1.8.0) railties sprockets-rails - graphql (1.13.2) + graphql (1.13.8) guard (2.18.0) formatador (>= 0.2.4) listen (>= 2.7, < 4.0) @@ -543,7 +543,7 @@ DEPENDENCIES friendly_id (~> 5.4.2) gitlab_omniauth-ldap (~> 2.1.1) graphiql-rails - graphql (~> 1.13.2) + graphql (~> 1.13.8) guard (~> 2.18.0) guard-bundler guard-migrate From f68b2f1f8ef908324034812aa5814d21c9f547b1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 2 Feb 2022 21:02:11 +0000 Subject: [PATCH 0849/2165] chore(deps): bump clipboard from 2.0.8 to 2.0.10 Bumps [clipboard](https://github.com/zenorocha/clipboard.js) from 2.0.8 to 2.0.10. - [Release notes](https://github.com/zenorocha/clipboard.js/releases) - [Commits](https://github.com/zenorocha/clipboard.js/compare/v2.0.8...v2.0.10) --- updated-dependencies: - dependency-name: clipboard dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 55d0aec60..6635dc689 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "@rails/ujs": "^6.1.4", "@rails/webpacker": "^5.4.2", "admin-lte": "^3.1.0", - "clipboard": "^2.0.8", + "clipboard": "^2.0.10", "compare-versions": "^4.1.3", "filepond": "^4.30.3", "rails-erb-loader": "^5.5.2", diff --git a/yarn.lock b/yarn.lock index 9293a4b98..389031154 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2244,10 +2244,10 @@ clean-stack@^2.0.0: resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== -clipboard@^2.0.8: - version "2.0.8" - resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.8.tgz#ffc6c103dd2967a83005f3f61976aa4655a4cdba" - integrity sha512-Y6WO0unAIQp5bLmk1zdThRhgJt/x3ks6f30s3oE3H1mgIEU33XyQjEf8gsf6DxC7NPX8Y1SsNWjUjL/ywLnnbQ== +clipboard@^2.0.10: + version "2.0.10" + resolved "https://registry.yarnpkg.com/clipboard/-/clipboard-2.0.10.tgz#e61f6f7139ac5044c58c0484dcac9fb2a918bfd6" + integrity sha512-cz3m2YVwFz95qSEbCDi2fzLN/epEN9zXBvfgAoGkvGOJZATMl9gtTDVOtBYkx2ODUJl2kvmud7n32sV2BpYR4g== dependencies: good-listener "^1.2.2" select "^1.1.2" From 690ef1f2b449f741aa29badcae7e1d87d6234f4b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 7 Feb 2022 21:01:13 +0000 Subject: [PATCH 0850/2165] chore(deps): bump sidekiq from 6.3.1 to 6.4.1 Bumps [sidekiq](https://github.com/mperham/sidekiq) from 6.3.1 to 6.4.1. - [Release notes](https://github.com/mperham/sidekiq/releases) - [Changelog](https://github.com/mperham/sidekiq/blob/main/Changes.md) - [Commits](https://github.com/mperham/sidekiq/compare/v6.3.1...v6.4.1) --- updated-dependencies: - dependency-name: sidekiq dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 541250c34..d65b69dc3 100644 --- a/Gemfile +++ b/Gemfile @@ -76,7 +76,7 @@ gem 'rqrcode' # 异步队列 gem 'activejob-status' -gem 'sidekiq', '~> 6.3.1' +gem 'sidekiq', '~> 6.4.1' gem 'sidekiq-scheduler', '~> 3.1.0' gem 'sidekiq-failures', '~> 1.0.1' diff --git a/Gemfile.lock b/Gemfile.lock index 23b484444..8059567cb 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -444,7 +444,7 @@ GEM sentry-ruby-core (~> 4.8.1) sidekiq (>= 3.0) shellany (0.0.1) - sidekiq (6.3.1) + sidekiq (6.4.1) connection_pool (>= 2.2.2) rack (~> 2.0) redis (>= 4.2.0) @@ -585,7 +585,7 @@ DEPENDENCIES sentry-rails sentry-ruby sentry-sidekiq - sidekiq (~> 6.3.1) + sidekiq (~> 6.4.1) sidekiq-failures (~> 1.0.1) sidekiq-scheduler (~> 3.1.0) simple_form (~> 5.1) From 89450061586275363b3fa6816f4cf9b676c03814 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 8 Feb 2022 03:36:48 +0000 Subject: [PATCH 0851/2165] chore(deps): bump sidekiq-scheduler from 3.1.0 to 3.1.1 Bumps [sidekiq-scheduler](https://github.com/moove-it/sidekiq-scheduler) from 3.1.0 to 3.1.1. - [Release notes](https://github.com/moove-it/sidekiq-scheduler/releases) - [Commits](https://github.com/moove-it/sidekiq-scheduler/compare/v3.1.0...v3.1.1) --- updated-dependencies: - dependency-name: sidekiq-scheduler dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Gemfile b/Gemfile index d65b69dc3..88be028f3 100644 --- a/Gemfile +++ b/Gemfile @@ -77,7 +77,7 @@ gem 'rqrcode' # 异步队列 gem 'activejob-status' gem 'sidekiq', '~> 6.4.1' -gem 'sidekiq-scheduler', '~> 3.1.0' +gem 'sidekiq-scheduler', '~> 3.1.1' gem 'sidekiq-failures', '~> 1.0.1' # Assets diff --git a/Gemfile.lock b/Gemfile.lock index 8059567cb..45ab0994d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -136,7 +136,7 @@ GEM railties (>= 3.2) e2mmap (0.1.0) erubi (1.10.0) - et-orbi (1.2.4) + et-orbi (1.2.6) tzinfo faraday (1.8.0) faraday-em_http (~> 1.0) @@ -164,7 +164,7 @@ GEM formatador (0.3.0) friendly_id (5.4.2) activerecord (>= 4.0.0) - fugit (1.5.0) + fugit (1.5.2) et-orbi (~> 1.1, >= 1.1.8) raabro (~> 1.4) gitlab_omniauth-ldap (2.1.1) @@ -427,7 +427,7 @@ GEM ruby2_keywords (0.0.5) rubyntlm (0.6.3) rubyzip (2.3.2) - rufus-scheduler (3.7.0) + rufus-scheduler (3.8.1) fugit (~> 1.1, >= 1.1.6) semantic_range (3.0.0) sentry-rails (4.8.1) @@ -450,7 +450,7 @@ GEM redis (>= 4.2.0) sidekiq-failures (1.0.1) sidekiq (>= 4.0.0) - sidekiq-scheduler (3.1.0) + sidekiq-scheduler (3.1.1) e2mmap redis (>= 3, < 5) rufus-scheduler (~> 3.2) @@ -587,7 +587,7 @@ DEPENDENCIES sentry-sidekiq sidekiq (~> 6.4.1) sidekiq-failures (~> 1.0.1) - sidekiq-scheduler (~> 3.1.0) + sidekiq-scheduler (~> 3.1.1) simple_form (~> 5.1) slim-rails (~> 3.3.0) spring From 4f13b224bb139a2e2eb20de7d46ec5240c657579 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 8 Feb 2022 03:41:59 +0000 Subject: [PATCH 0852/2165] chore(deps): bump puma from 5.5.2 to 5.6.1 Bumps [puma](https://github.com/puma/puma) from 5.5.2 to 5.6.1. - [Release notes](https://github.com/puma/puma/releases) - [Changelog](https://github.com/puma/puma/blob/master/History.md) - [Commits](https://github.com/puma/puma/compare/v5.5.2...v5.6.1) --- updated-dependencies: - dependency-name: puma dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 88be028f3..624e8a5f7 100644 --- a/Gemfile +++ b/Gemfile @@ -4,7 +4,7 @@ source 'https://rubygems.org' git_source(:github) { |repo_name| "https://github.com/#{repo_name}" } -gem 'puma', '~> 5.5.2' +gem 'puma', '~> 5.6.1' gem 'rails', '~> 6.1.4' gem 'rails-i18n', '~> 6.0.0' gem 'rake', '~> 13.0.4' diff --git a/Gemfile.lock b/Gemfile.lock index f40c59582..8ee8b365e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -341,7 +341,7 @@ GEM interception (>= 0.5) pry (>= 0.12.0) public_suffix (4.0.6) - puma (5.5.2) + puma (5.6.1) nio4r (~> 2.0) pundit (2.1.0) activesupport (>= 3.0.0) @@ -570,7 +570,7 @@ DEPENDENCIES pry-byebug pry-rails pry-rescue - puma (~> 5.5.2) + puma (~> 5.6.1) pundit (~> 2.1.0) rack-cors (~> 1.1.1) rails (~> 6.1.4) From f32417930cba31f678912ffdd00a607579e8f0de Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 8 Feb 2022 03:41:59 +0000 Subject: [PATCH 0853/2165] chore(deps): bump redis from 4.5.1 to 4.6.0 Bumps [redis](https://github.com/redis/redis-rb) from 4.5.1 to 4.6.0. - [Release notes](https://github.com/redis/redis-rb/releases) - [Changelog](https://github.com/redis/redis-rb/blob/master/CHANGELOG.md) - [Commits](https://github.com/redis/redis-rb/compare/v4.5.1...v4.6.0) --- updated-dependencies: - dependency-name: redis dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 88be028f3..10b9ae2cb 100644 --- a/Gemfile +++ b/Gemfile @@ -11,7 +11,7 @@ gem 'rake', '~> 13.0.4' # DB & Cache gem 'pg', '>= 0.18', '< 2.0' -gem 'redis', '~> 4.5.1' +gem 'redis', '~> 4.6.0' # Logger gem 'lograge', '~> 0.11.2' diff --git a/Gemfile.lock b/Gemfile.lock index f40c59582..af452dc06 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -391,7 +391,7 @@ GEM rb-fsevent (0.11.0) rb-inotify (0.10.1) ffi (~> 1.0) - redis (4.5.1) + redis (4.6.0) regexp_parser (2.1.1) request_store (1.5.0) rack (>= 1.4) @@ -577,7 +577,7 @@ DEPENDENCIES rails-i18n (~> 6.0.0) rails-settings-cached (~> 2.8.1) rake (~> 13.0.4) - redis (~> 4.5.1) + redis (~> 4.6.0) rqrcode rubocop (>= 0.70) rubocop-rails From 59b99ac707ec5a533861c55ede57542f1809008b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 8 Feb 2022 03:44:56 +0000 Subject: [PATCH 0854/2165] chore(deps): bump pg from 1.2.3 to 1.3.1 Bumps [pg](https://github.com/ged/ruby-pg) from 1.2.3 to 1.3.1. - [Release notes](https://github.com/ged/ruby-pg/releases) - [Changelog](https://github.com/ged/ruby-pg/blob/master/History.rdoc) - [Commits](https://github.com/ged/ruby-pg/compare/v1.2.3...v1.3.1) --- updated-dependencies: - dependency-name: pg dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 4b5c03826..f5fb753cc 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -325,7 +325,7 @@ GEM parallel (1.20.1) parser (3.0.1.1) ast (~> 2.4.1) - pg (1.2.3) + pg (1.3.1) pghero (2.8.2) activerecord (>= 5) plist (3.6.0) From a4e392e39c323dade99eb1be81c4fff03042dd2f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 8 Feb 2022 21:02:32 +0000 Subject: [PATCH 0855/2165] chore(deps): bump rails-settings-cached from 2.8.1 to 2.8.2 Bumps [rails-settings-cached](https://github.com/huacnlee/rails-settings-cached) from 2.8.1 to 2.8.2. - [Release notes](https://github.com/huacnlee/rails-settings-cached/releases) - [Changelog](https://github.com/huacnlee/rails-settings-cached/blob/main/CHANGELOG.md) - [Commits](https://github.com/huacnlee/rails-settings-cached/compare/v2.8.1...v2.8.2) --- updated-dependencies: - dependency-name: rails-settings-cached dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Gemfile b/Gemfile index ac27d1bb2..c766fc61c 100644 --- a/Gemfile +++ b/Gemfile @@ -88,7 +88,7 @@ gem 'webpacker', '~> 5.4' gem 'app-info', '~> 2.8.1' # 带缓存的配置库 -gem 'rails-settings-cached', '~> 2.8.1' +gem 'rails-settings-cached', '~> 2.8.2' # Reduces boot times through caching; required in config/boot.rb gem 'bootsnap', '>= 1.4.7', require: false diff --git a/Gemfile.lock b/Gemfile.lock index 8accd9c12..06ba5944f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -217,7 +217,7 @@ GEM http-cookie (1.0.4) domain_name (~> 0.5) http-form_data (2.3.0) - i18n (1.8.11) + i18n (1.9.1) concurrent-ruby (~> 1.0) icns (0.2.0) image_processing (1.12.1) @@ -378,7 +378,7 @@ GEM rails-i18n (6.0.0) i18n (>= 0.7, < 2) railties (>= 6.0.0, < 7) - rails-settings-cached (2.8.1) + rails-settings-cached (2.8.2) rails (>= 5.0.0) railties (6.1.4.4) actionpack (= 6.1.4.4) @@ -487,7 +487,7 @@ GEM terminal-notifier-guard (1.7.0) terminal-table (3.0.2) unicode-display_width (>= 1.1.1, < 3) - thor (1.1.0) + thor (1.2.1) thwait (0.2.0) e2mmap tilt (2.0.10) @@ -520,7 +520,7 @@ GEM websocket-driver (0.7.5) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) - zeitwerk (2.5.3) + zeitwerk (2.5.4) PLATFORMS ruby @@ -575,7 +575,7 @@ DEPENDENCIES rack-cors (~> 1.1.1) rails (~> 6.1.4) rails-i18n (~> 6.0.0) - rails-settings-cached (~> 2.8.1) + rails-settings-cached (~> 2.8.2) rake (~> 13.0.4) redis (~> 4.6.0) rqrcode From 7c835648895661765e060d3fda365764e021fc1a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 8 Feb 2022 21:03:46 +0000 Subject: [PATCH 0856/2165] chore(deps): bump bootsnap from 1.9.3 to 1.10.3 Bumps [bootsnap](https://github.com/Shopify/bootsnap) from 1.9.3 to 1.10.3. - [Release notes](https://github.com/Shopify/bootsnap/releases) - [Changelog](https://github.com/Shopify/bootsnap/blob/main/CHANGELOG.md) - [Commits](https://github.com/Shopify/bootsnap/compare/v1.9.3...v1.10.3) --- updated-dependencies: - dependency-name: bootsnap dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 8accd9c12..e66f0f9c3 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -95,8 +95,8 @@ GEM bindex (0.8.1) binding_of_caller (1.0.0) debug_inspector (>= 0.0.1) - bootsnap (1.9.3) - msgpack (~> 1.0) + bootsnap (1.10.3) + msgpack (~> 1.2) builder (3.2.4) byebug (11.1.3) carrierwave (2.2.2) @@ -284,7 +284,7 @@ GEM minitest (5.15.0) mixlib-shellout (3.2.5) chef-utils - msgpack (1.4.2) + msgpack (1.4.4) multi_json (1.15.0) multi_xml (0.6.0) multipart-post (2.1.1) From a9b7bff3ce66abd1d6681c4ee1ee334de5468c4c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 10 Feb 2022 21:04:03 +0000 Subject: [PATCH 0857/2165] chore(deps): bump graphql from 1.13.8 to 2.0.0 Bumps [graphql](https://github.com/rmosolgo/graphql-ruby) from 1.13.8 to 2.0.0. - [Release notes](https://github.com/rmosolgo/graphql-ruby/releases) - [Changelog](https://github.com/rmosolgo/graphql-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/rmosolgo/graphql-ruby/compare/v1.13.8...v2.0.0) --- updated-dependencies: - dependency-name: graphql dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index c766fc61c..a8fdcd82f 100644 --- a/Gemfile +++ b/Gemfile @@ -18,7 +18,7 @@ gem 'lograge', '~> 0.11.2' # API gem 'active_model_serializers', '~> 0.10.13' -gem 'graphql', '~> 1.13.8' +gem 'graphql', '~> 2.0.0' gem 'rack-cors', '~> 1.1.1' gem 'health_check', '~> 3.1.0' diff --git a/Gemfile.lock b/Gemfile.lock index 48d75df95..dce792fdf 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -178,7 +178,7 @@ GEM graphiql-rails (1.8.0) railties sprockets-rails - graphql (1.13.8) + graphql (2.0.0) guard (2.18.0) formatador (>= 0.2.4) listen (>= 2.7, < 4.0) @@ -543,7 +543,7 @@ DEPENDENCIES friendly_id (~> 5.4.2) gitlab_omniauth-ldap (~> 2.1.1) graphiql-rails - graphql (~> 1.13.8) + graphql (~> 2.0.0) guard (~> 2.18.0) guard-bundler guard-migrate From 40183b417cee520b49490dfe6bb1a3f9ccc8a9f7 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 11 Feb 2022 11:26:50 +0800 Subject: [PATCH 0858/2165] =?UTF-8?q?chore:=20=E6=94=B9=E7=94=A8=20debug?= =?UTF-8?q?=20gem?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 5 ++--- Gemfile.lock | 18 ++++++++++-------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/Gemfile b/Gemfile index a8fdcd82f..0ffdbbc7d 100644 --- a/Gemfile +++ b/Gemfile @@ -110,9 +110,8 @@ group :development do gem 'terminal-notifier' gem 'terminal-notifier-guard' - # IDE tools(VSCode) - gem 'debase', '~> 0.2.5.beta2' - gem 'ruby-debug-ide' + # VSCode rdbg Ruby Debugger + gem 'debug' # 加速开发环境 gem 'spring' diff --git a/Gemfile.lock b/Gemfile.lock index dce792fdf..f010a2470 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -116,9 +116,9 @@ GEM concurrent-ruby (1.1.9) connection_pool (2.2.5) crass (1.0.6) - debase (0.2.5.beta2) - debase-ruby_core_source (>= 0.10.12) - debase-ruby_core_source (0.10.14) + debug (1.4.0) + irb (>= 1.3.6) + reline (>= 0.2.7) debug_inspector (1.1.0) devise (4.8.1) bcrypt (~> 3.0) @@ -233,7 +233,10 @@ GEM terminal-table (>= 1.4.0) thor (>= 0.16.0) interception (0.5) + io-console (0.5.11) ipaddr (1.2.2) + irb (1.4.1) + reline (>= 0.3.0) jb (0.8.0) json (2.6.1) jsonapi-renderer (0.2.2) @@ -393,6 +396,8 @@ GEM ffi (~> 1.0) redis (4.6.0) regexp_parser (2.1.1) + reline (0.3.1) + io-console (~> 0.5) request_store (1.5.0) rack (>= 1.4) responders (3.0.1) @@ -418,8 +423,6 @@ GEM activesupport (>= 4.2.0) rack (>= 1.1) rubocop (>= 1.7.0, < 2.0) - ruby-debug-ide (0.7.3) - rake (>= 0.8.1) ruby-macho (2.5.1) ruby-progressbar (1.11.0) ruby-vips (2.1.2) @@ -536,7 +539,7 @@ DEPENDENCIES bootsnap (>= 1.4.7) byebug carrierwave (~> 2.2.2) - debase (~> 0.2.5.beta2) + debug devise (~> 4.8.1) devise-i18n (~> 1.10.1) dotenv-rails @@ -581,7 +584,6 @@ DEPENDENCIES rqrcode rubocop (>= 0.70) rubocop-rails - ruby-debug-ide sentry-rails sentry-ruby sentry-sidekiq @@ -602,4 +604,4 @@ DEPENDENCIES webpacker (~> 5.4) BUNDLED WITH - 2.2.25 + 2.2.32 From 77458c78a164189ac62b7989f26e2d3886ff6120 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 11 Feb 2022 11:29:47 +0800 Subject: [PATCH 0859/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=AE=89?= =?UTF-8?q?=E8=A3=85=E5=9C=B0=E5=9D=80=E5=88=A4=E6=96=AD=E5=A4=B1=E8=B4=A5?= =?UTF-8?q?=20(#701)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/release.rb | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/app/models/release.rb b/app/models/release.rb index 3bbc32e4f..7383f2e03 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -145,8 +145,10 @@ def download_url end def install_url - return download_url if device_type.casecmp?('android') || device_type.casecmp?('macos') - + app_type = device_type || channel.device_type + if app_type.blank? || app_type.casecmp?('android') || app_type.casecmp?('macos')) + return download_url + end download_url = channel_release_install_url(channel.slug, id) "itms-services://?action=download-manifest&url=#{download_url}" end From a0b2d022a7786f8fd8e19fc74c5f8a56bf129959 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 11 Feb 2022 21:03:03 +0000 Subject: [PATCH 0860/2165] chore(deps): bump rails from 6.1.4.4 to 6.1.4.6 Bumps [rails](https://github.com/rails/rails) from 6.1.4.4 to 6.1.4.6. - [Release notes](https://github.com/rails/rails/releases) - [Commits](https://github.com/rails/rails/compare/v6.1.4.4...v6.1.4.6) --- updated-dependencies: - dependency-name: rails dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 108 +++++++++++++++++++++++++-------------------------- 1 file changed, 54 insertions(+), 54 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index f010a2470..87e21334d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -3,40 +3,40 @@ GEM specs: CFPropertyList (3.0.5) rexml - actioncable (6.1.4.4) - actionpack (= 6.1.4.4) - activesupport (= 6.1.4.4) + actioncable (6.1.4.6) + actionpack (= 6.1.4.6) + activesupport (= 6.1.4.6) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (6.1.4.4) - actionpack (= 6.1.4.4) - activejob (= 6.1.4.4) - activerecord (= 6.1.4.4) - activestorage (= 6.1.4.4) - activesupport (= 6.1.4.4) + actionmailbox (6.1.4.6) + actionpack (= 6.1.4.6) + activejob (= 6.1.4.6) + activerecord (= 6.1.4.6) + activestorage (= 6.1.4.6) + activesupport (= 6.1.4.6) mail (>= 2.7.1) - actionmailer (6.1.4.4) - actionpack (= 6.1.4.4) - actionview (= 6.1.4.4) - activejob (= 6.1.4.4) - activesupport (= 6.1.4.4) + actionmailer (6.1.4.6) + actionpack (= 6.1.4.6) + actionview (= 6.1.4.6) + activejob (= 6.1.4.6) + activesupport (= 6.1.4.6) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (6.1.4.4) - actionview (= 6.1.4.4) - activesupport (= 6.1.4.4) + actionpack (6.1.4.6) + actionview (= 6.1.4.6) + activesupport (= 6.1.4.6) rack (~> 2.0, >= 2.0.9) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (6.1.4.4) - actionpack (= 6.1.4.4) - activerecord (= 6.1.4.4) - activestorage (= 6.1.4.4) - activesupport (= 6.1.4.4) + actiontext (6.1.4.6) + actionpack (= 6.1.4.6) + activerecord (= 6.1.4.6) + activestorage (= 6.1.4.6) + activesupport (= 6.1.4.6) nokogiri (>= 1.8.5) - actionview (6.1.4.4) - activesupport (= 6.1.4.4) + actionview (6.1.4.6) + activesupport (= 6.1.4.6) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) @@ -48,25 +48,25 @@ GEM activemodel (>= 4.1, < 7.1) case_transform (>= 0.2) jsonapi-renderer (>= 0.1.1.beta1, < 0.3) - activejob (6.1.4.4) - activesupport (= 6.1.4.4) + activejob (6.1.4.6) + activesupport (= 6.1.4.6) globalid (>= 0.3.6) activejob-status (0.2.2) activejob (>= 4.2) activesupport (>= 4.2) - activemodel (6.1.4.4) - activesupport (= 6.1.4.4) - activerecord (6.1.4.4) - activemodel (= 6.1.4.4) - activesupport (= 6.1.4.4) - activestorage (6.1.4.4) - actionpack (= 6.1.4.4) - activejob (= 6.1.4.4) - activerecord (= 6.1.4.4) - activesupport (= 6.1.4.4) + activemodel (6.1.4.6) + activesupport (= 6.1.4.6) + activerecord (6.1.4.6) + activemodel (= 6.1.4.6) + activesupport (= 6.1.4.6) + activestorage (6.1.4.6) + actionpack (= 6.1.4.6) + activejob (= 6.1.4.6) + activerecord (= 6.1.4.6) + activesupport (= 6.1.4.6) marcel (~> 1.0.0) mini_mime (>= 1.1.0) - activesupport (6.1.4.4) + activesupport (6.1.4.6) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) @@ -273,7 +273,7 @@ GEM activesupport (>= 4) railties (>= 4) request_store (~> 1.0) - loofah (2.13.0) + loofah (2.14.0) crass (~> 1.0.2) nokogiri (>= 1.5.9) lumberjack (1.2.8) @@ -358,20 +358,20 @@ GEM rack rack-test (1.1.0) rack (>= 1.0, < 3) - rails (6.1.4.4) - actioncable (= 6.1.4.4) - actionmailbox (= 6.1.4.4) - actionmailer (= 6.1.4.4) - actionpack (= 6.1.4.4) - actiontext (= 6.1.4.4) - actionview (= 6.1.4.4) - activejob (= 6.1.4.4) - activemodel (= 6.1.4.4) - activerecord (= 6.1.4.4) - activestorage (= 6.1.4.4) - activesupport (= 6.1.4.4) + rails (6.1.4.6) + actioncable (= 6.1.4.6) + actionmailbox (= 6.1.4.6) + actionmailer (= 6.1.4.6) + actionpack (= 6.1.4.6) + actiontext (= 6.1.4.6) + actionview (= 6.1.4.6) + activejob (= 6.1.4.6) + activemodel (= 6.1.4.6) + activerecord (= 6.1.4.6) + activestorage (= 6.1.4.6) + activesupport (= 6.1.4.6) bundler (>= 1.15.0) - railties (= 6.1.4.4) + railties (= 6.1.4.6) sprockets-rails (>= 2.0.0) rails-dom-testing (2.0.3) activesupport (>= 4.2.0) @@ -383,9 +383,9 @@ GEM railties (>= 6.0.0, < 7) rails-settings-cached (2.8.2) rails (>= 5.0.0) - railties (6.1.4.4) - actionpack (= 6.1.4.4) - activesupport (= 6.1.4.4) + railties (6.1.4.6) + actionpack (= 6.1.4.6) + activesupport (= 6.1.4.6) method_source rake (>= 0.13) thor (~> 1.0) From 1060b1c976d451513f0d9c1ffeae3c6f07085717 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 11 Feb 2022 21:06:40 +0000 Subject: [PATCH 0861/2165] chore(deps): bump rqrcode from 2.1.0 to 2.1.1 Bumps [rqrcode](https://github.com/whomwah/rqrcode) from 2.1.0 to 2.1.1. - [Release notes](https://github.com/whomwah/rqrcode/releases) - [Changelog](https://github.com/whomwah/rqrcode/blob/master/CHANGELOG.md) - [Commits](https://github.com/whomwah/rqrcode/compare/v2.1.0...v2.1.1) --- updated-dependencies: - dependency-name: rqrcode dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index f010a2470..26b6b4da1 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -404,7 +404,7 @@ GEM actionpack (>= 5.0) railties (>= 5.0) rexml (3.2.5) - rqrcode (2.1.0) + rqrcode (2.1.1) chunky_png (~> 1.0) rqrcode_core (~> 1.0) rqrcode_core (1.2.0) From 681e38205626afb03204d52bdda198a6f06eb7d7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 11 Feb 2022 22:05:55 +0000 Subject: [PATCH 0862/2165] chore(deps): bump puma from 5.6.1 to 5.6.2 Bumps [puma](https://github.com/puma/puma) from 5.6.1 to 5.6.2. - [Release notes](https://github.com/puma/puma/releases) - [Changelog](https://github.com/puma/puma/blob/master/History.md) - [Commits](https://github.com/puma/puma/compare/v5.6.1...v5.6.2) --- updated-dependencies: - dependency-name: puma dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 0ffdbbc7d..d7e1b7025 100644 --- a/Gemfile +++ b/Gemfile @@ -4,7 +4,7 @@ source 'https://rubygems.org' git_source(:github) { |repo_name| "https://github.com/#{repo_name}" } -gem 'puma', '~> 5.6.1' +gem 'puma', '~> 5.6.2' gem 'rails', '~> 6.1.4' gem 'rails-i18n', '~> 6.0.0' gem 'rake', '~> 13.0.4' diff --git a/Gemfile.lock b/Gemfile.lock index f010a2470..390177369 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -344,7 +344,7 @@ GEM interception (>= 0.5) pry (>= 0.12.0) public_suffix (4.0.6) - puma (5.6.1) + puma (5.6.2) nio4r (~> 2.0) pundit (2.1.0) activesupport (>= 3.0.0) @@ -573,7 +573,7 @@ DEPENDENCIES pry-byebug pry-rails pry-rescue - puma (~> 5.6.1) + puma (~> 5.6.2) pundit (~> 2.1.0) rack-cors (~> 1.1.1) rails (~> 6.1.4) From d6fb3d8c9bc819714b43786f150dc9cf86757be4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 13 Feb 2022 02:22:38 +0000 Subject: [PATCH 0863/2165] chore(deps): bump follow-redirects from 1.14.7 to 1.14.8 Bumps [follow-redirects](https://github.com/follow-redirects/follow-redirects) from 1.14.7 to 1.14.8. - [Release notes](https://github.com/follow-redirects/follow-redirects/releases) - [Commits](https://github.com/follow-redirects/follow-redirects/compare/v1.14.7...v1.14.8) --- updated-dependencies: - dependency-name: follow-redirects dependency-type: indirect ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 389031154..c68adbc2f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3816,9 +3816,9 @@ flush-write-stream@^1.0.0: readable-stream "^2.3.6" follow-redirects@^1.0.0: - version "1.14.7" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.7.tgz#2004c02eb9436eee9a21446a6477debf17e81685" - integrity sha512-+hbxoLbFMbRKDwohX8GkTataGqO6Jb7jGwpAlwgy2bIz25XtRm7KEzJM76R1WiNT5SwZkX4Y75SwBolkpmE7iQ== + version "1.14.8" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.8.tgz#016996fb9a11a100566398b1c6839337d7bfa8fc" + integrity sha512-1x0S9UVJHsQprFcEC/qnNzBLcIxsjAV905f/UkQxbclCsoTWlacCNOpQa/anodLl2uaEKFhfWOvM2Qg77+15zA== fontkit@^1.8.1: version "1.8.1" From 23c0508002d313ae734189bf2977718f3011a0a3 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Sun, 13 Feb 2022 02:46:51 +0000 Subject: [PATCH 0864/2165] fix: release model --- app/models/release.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/release.rb b/app/models/release.rb index 7383f2e03..ebb2aefaf 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -146,7 +146,7 @@ def download_url def install_url app_type = device_type || channel.device_type - if app_type.blank? || app_type.casecmp?('android') || app_type.casecmp?('macos')) + if app_type.blank? || app_type.casecmp?('android') || app_type.casecmp?('macos') return download_url end download_url = channel_release_install_url(channel.slug, id) From bcb485e941c802d03c146c226c419838419df8b8 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Sun, 13 Feb 2022 03:03:28 +0000 Subject: [PATCH 0865/2165] fix: debug_file notification method params --- app/jobs/application_job.rb | 16 ++++++++-------- app/jobs/debug_file_teardown_job.rb | 4 ++-- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/app/jobs/application_job.rb b/app/jobs/application_job.rb index 96fdc1bee..5fddd438d 100644 --- a/app/jobs/application_job.rb +++ b/app/jobs/application_job.rb @@ -11,13 +11,13 @@ def logger end def notification_user(type:, status:, user_id:, message:) - ActionCable.server.broadcast "notification:#{user_id}", { - type: type, - status: status, - html: "
      - - #{t('web_hooks.messages.done')} -
      " - } + ActionCable.server.broadcast("notification:#{user_id}", { + type: type, + status: status, + html: "
      + + #{t('web_hooks.messages.done')} +
      " + }) end end diff --git a/app/jobs/debug_file_teardown_job.rb b/app/jobs/debug_file_teardown_job.rb index e73fd28dd..4a3721500 100644 --- a/app/jobs/debug_file_teardown_job.rb +++ b/app/jobs/debug_file_teardown_job.rb @@ -28,11 +28,11 @@ def perform(debug_file, user_id = nil) def notification_user(debug_file, user_id) return if user_id.blank? - ActionCable.server.broadcast("notification:#{user_id}", + ActionCable.server.broadcast("notification:#{user_id}", { type: 'teardown', status: 'success', message: t('web_hooks.messages.parse_done', id: debug_file.id) - ) + }) end def parse_dsym(debug_file, parser) From 45b52229e6833f448e51978273afddf90954002b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 14 Feb 2022 21:01:10 +0000 Subject: [PATCH 0866/2165] chore(deps): bump pg from 1.3.1 to 1.3.2 Bumps [pg](https://github.com/ged/ruby-pg) from 1.3.1 to 1.3.2. - [Release notes](https://github.com/ged/ruby-pg/releases) - [Changelog](https://github.com/ged/ruby-pg/blob/master/History.rdoc) - [Commits](https://github.com/ged/ruby-pg/compare/v1.3.1...v1.3.2) --- updated-dependencies: - dependency-name: pg dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 9d7fb3afa..416233f33 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -328,7 +328,7 @@ GEM parallel (1.20.1) parser (3.0.1.1) ast (~> 2.4.1) - pg (1.3.1) + pg (1.3.2) pghero (2.8.2) activerecord (>= 5) plist (3.6.0) From 856333ea011b91be3d744e661eb02437687571d3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 14 Feb 2022 21:04:31 +0000 Subject: [PATCH 0867/2165] chore(deps): bump app-info from 2.8.1 to 2.8.2 Bumps [app-info](https://github.com/icyleaf/app-info) from 2.8.1 to 2.8.2. - [Release notes](https://github.com/icyleaf/app-info/releases) - [Changelog](https://github.com/icyleaf/app_info/blob/master/CHANGELOG.md) - [Commits](https://github.com/icyleaf/app-info/compare/v2.8.1...v2.8.2) --- updated-dependencies: - dependency-name: app-info dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Gemfile b/Gemfile index d7e1b7025..ee244d35f 100644 --- a/Gemfile +++ b/Gemfile @@ -85,7 +85,7 @@ gem 'turbolinks', '~> 5' gem 'webpacker', '~> 5.4' # 用于解析 iOS, Android 和 macOS 应用 -gem 'app-info', '~> 2.8.1' +gem 'app-info', '~> 2.8.2' # 带缓存的配置库 gem 'rails-settings-cached', '~> 2.8.2' diff --git a/Gemfile.lock b/Gemfile.lock index 9d7fb3afa..3c17d093c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -76,13 +76,13 @@ GEM public_suffix (>= 2.0.2, < 5.0) android_parser (2.5.0) rubyzip (>= 1.0, < 3.0) - app-info (2.8.1) + app-info (2.8.2) CFPropertyList (>= 2.3.4, < 3.1.0) android_parser (~> 2.5.0) - google-protobuf (~> 3.18.0) + google-protobuf (~> 3.19.4) icns (~> 0.2.0) image_size (>= 1.5, < 3.1) - ruby-macho (>= 1.4, < 3) + ruby-macho (>= 1.4, < 4) rubyzip (>= 1.2, < 3.0) uuidtools (>= 2.1.5, < 2.3.0) ast (2.4.2) @@ -174,7 +174,7 @@ GEM rubyntlm (~> 0.5) globalid (1.0.0) activesupport (>= 5.0) - google-protobuf (3.18.1) + google-protobuf (3.19.4) graphiql-rails (1.8.0) railties sprockets-rails @@ -423,7 +423,7 @@ GEM activesupport (>= 4.2.0) rack (>= 1.1) rubocop (>= 1.7.0, < 2.0) - ruby-macho (2.5.1) + ruby-macho (3.0.0) ruby-progressbar (1.11.0) ruby-vips (2.1.2) ffi (~> 1.12) @@ -532,7 +532,7 @@ DEPENDENCIES active_analytics active_model_serializers (~> 0.10.13) activejob-status - app-info (~> 2.8.1) + app-info (~> 2.8.2) awesome_print better_errors binding_of_caller From 1997c34af9bf3842ea889f6464946217298f3203 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 16 Feb 2022 17:29:51 +0800 Subject: [PATCH 0868/2165] =?UTF-8?q?chore:=20=E6=96=B0=E5=A2=9E=20github?= =?UTF-8?q?=20issues=20=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/ISSUE_TEMPLATE/bug_report.yaml | 61 +++++++++++++++++++++ .github/ISSUE_TEMPLATE/config.yml | 7 +++ .github/ISSUE_TEMPLATE/feature_request.yaml | 6 ++ 3 files changed, 74 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.yaml create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/ISSUE_TEMPLATE/feature_request.yaml diff --git a/.github/ISSUE_TEMPLATE/bug_report.yaml b/.github/ISSUE_TEMPLATE/bug_report.yaml new file mode 100644 index 000000000..2d337a42d --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yaml @@ -0,0 +1,61 @@ +name: 问题反馈 | Bug report +description: 提交使用过程发现的缺陷 | Report a potential bug +body: + - type: markdown + attributes: + value: | + 为了更好的发现问题,请认真填写下面的选项,感谢您付出的时间! + **请务必保证提出的问题已经仔细阅读了[部署](https://zealot.ews.im/#/deployment)和[参数配置](https://zealot.ews.im/#/configuration)文档,否则不予提供技术帮助** + + Thanks for taking the time to fill out this bug report! + - type: dropdown + id: deploy + attributes: + label: 部署方式 | How to Deploy + description: 使用的方式部署的 | What way of zealot are you deploying? + options: + - 使用一键部署脚本 | Using zealot-docker on-click install (Default) + - Docker (Default) + - 源码部署 | Source + validations: + required: true + - type: dropdown + id: version + attributes: + label: 部署版本 | Version + description: 使用的 Docker 的什么版本? | What version of docker image tag are you running? + options: + - nightly (Default) + - stable + - latest + - 其他 | other + validations: + required: true + - type: input + id: reverse_proxy + attributes: + label: 反代服务 | Reverse Proxy + description: 是否使用了反代服务 | Which reverse proxy service do you using? + placeholder: nginx/haproxy/caddy/traefik/none + validations: + required: true + - type: checkboxes + id: document + attributes: + label: 已阅读文档 | Read the document + description: 提交本问题标识你已经阅读部署和配置文档 | By submitting this issue, you read our [deployment and configuration](https://zealot.ews.im) + options: + - label: 已阅读 | Yes + required: true + - type: textarea + attributes: + label: 描述 | Description + description: 请描述你的问题 | Please describe your bug + - type: textarea + id: logs + attributes: + label: 问题日志 |Relevant log output + description: | + 请直接复制粘贴终端的运行日志,代码格式会自动格式化 + Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks. + render: shell \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 000000000..9e3fb4c2b --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,7 @@ +blank_issues_enabled: true +contact_links: + - name: 问题提问 | Ask a question (GitHub Discussions) + url: https://github.com/tryzealot/zealot/discussions + about: | + 所有问题会放在 GitHub Discussions,GitHub issues 仅提供缺陷追踪和新特性相关,但我保留不回答的权利。 + We use GitHub Discussions for questions, GitHub issues for tracking bug reports and feature requests \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/feature_request.yaml b/.github/ISSUE_TEMPLATE/feature_request.yaml new file mode 100644 index 000000000..f7ec442f3 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.yaml @@ -0,0 +1,6 @@ +name: 新特性 | Feature request +description: 期望开发新功能、新特性 | Request a feature +body: +- type: textarea + attributes: + label: 描述 | Description \ No newline at end of file From 1777438f0aaf27fc65a8fd75aab5958a72db7d15 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 21 Feb 2022 21:03:42 +0000 Subject: [PATCH 0869/2165] chore(deps): bump devise-i18n from 1.10.1 to 1.10.2 Bumps [devise-i18n](https://github.com/tigrish/devise-i18n) from 1.10.1 to 1.10.2. - [Release notes](https://github.com/tigrish/devise-i18n/releases) - [Changelog](https://github.com/tigrish/devise-i18n/blob/master/CHANGELOG.md) - [Commits](https://github.com/tigrish/devise-i18n/compare/v1.10.1...v1.10.2) --- updated-dependencies: - dependency-name: devise-i18n dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Gemfile b/Gemfile index ee244d35f..ca99a6793 100644 --- a/Gemfile +++ b/Gemfile @@ -45,7 +45,7 @@ gem 'http', '~> 5.0.4' ## 用户认证 gem 'pundit', '~> 2.1.0' gem 'devise', '~> 4.8.1' -gem 'devise-i18n', '~> 1.10.1' +gem 'devise-i18n', '~> 1.10.2' gem 'omniauth', '~> 1.9' gem 'omniauth-google-oauth2', '~> 0.8.2' diff --git a/Gemfile.lock b/Gemfile.lock index e7929ed75..a821aed30 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -126,7 +126,7 @@ GEM railties (>= 4.1.0) responders warden (~> 1.2.3) - devise-i18n (1.10.1) + devise-i18n (1.10.2) devise (>= 4.8.0) domain_name (0.5.20190701) unf (>= 0.0.5, < 1.0.0) @@ -217,7 +217,7 @@ GEM http-cookie (1.0.4) domain_name (~> 0.5) http-form_data (2.3.0) - i18n (1.9.1) + i18n (1.10.0) concurrent-ruby (~> 1.0) icns (0.2.0) image_processing (1.12.1) @@ -283,7 +283,7 @@ GEM method_source (1.0.0) mini_magick (4.11.0) mini_mime (1.1.2) - mini_portile2 (2.7.1) + mini_portile2 (2.8.0) minitest (5.15.0) mixlib-shellout (3.2.5) chef-utils @@ -294,8 +294,8 @@ GEM nenv (0.3.0) net-ldap (0.17.0) nio4r (2.5.8) - nokogiri (1.13.1) - mini_portile2 (~> 2.7.0) + nokogiri (1.13.2) + mini_portile2 (~> 2.8.0) racc (~> 1.4) notiffany (0.1.3) nenv (~> 0.1) @@ -541,7 +541,7 @@ DEPENDENCIES carrierwave (~> 2.2.2) debug devise (~> 4.8.1) - devise-i18n (~> 1.10.1) + devise-i18n (~> 1.10.2) dotenv-rails friendly_id (~> 5.4.2) gitlab_omniauth-ldap (~> 2.1.1) From 132ce981a9005d8e2fc9ee745b5c158026da258d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 22 Feb 2022 21:02:50 +0000 Subject: [PATCH 0870/2165] chore(deps): bump pg from 1.3.2 to 1.3.3 Bumps [pg](https://github.com/ged/ruby-pg) from 1.3.2 to 1.3.3. - [Release notes](https://github.com/ged/ruby-pg/releases) - [Changelog](https://github.com/ged/ruby-pg/blob/master/History.rdoc) - [Commits](https://github.com/ged/ruby-pg/compare/v1.3.2...v1.3.3) --- updated-dependencies: - dependency-name: pg dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index a821aed30..336eb82bc 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -328,7 +328,7 @@ GEM parallel (1.20.1) parser (3.0.1.1) ast (~> 2.4.1) - pg (1.3.2) + pg (1.3.3) pghero (2.8.2) activerecord (>= 5) plist (3.6.0) From f464a5c4ccccc353761a95e2b1a004a2ee41e00f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 26 Feb 2022 21:16:53 +0000 Subject: [PATCH 0871/2165] chore(deps): bump url-parse from 1.5.3 to 1.5.10 Bumps [url-parse](https://github.com/unshiftio/url-parse) from 1.5.3 to 1.5.10. - [Release notes](https://github.com/unshiftio/url-parse/releases) - [Commits](https://github.com/unshiftio/url-parse/compare/1.5.3...1.5.10) --- updated-dependencies: - dependency-name: url-parse dependency-type: indirect ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index c68adbc2f..12636b2d6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7933,9 +7933,9 @@ urix@^0.1.0: integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= url-parse@^1.4.3, url-parse@^1.5.1: - version "1.5.3" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.3.tgz#71c1303d38fb6639ade183c2992c8cc0686df862" - integrity sha512-IIORyIQD9rvj0A4CLWsHkBBJuNqWpFQe224b6j9t/ABmquIS0qDU2pY6kl6AuOrL5OkCXHMCFNe1jBcuAggjvQ== + version "1.5.10" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" + integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== dependencies: querystringify "^2.1.1" requires-port "^1.0.0" From a639db7b2ca9e5f2e44d2a129fd5002a080d665a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 1 Mar 2022 21:02:49 +0000 Subject: [PATCH 0872/2165] chore(deps): bump graphql from 2.0.0 to 2.0.2 Bumps [graphql](https://github.com/rmosolgo/graphql-ruby) from 2.0.0 to 2.0.2. - [Release notes](https://github.com/rmosolgo/graphql-ruby/releases) - [Changelog](https://github.com/rmosolgo/graphql-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/rmosolgo/graphql-ruby/compare/v2.0.0...v2.0.2) --- updated-dependencies: - dependency-name: graphql dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index ca99a6793..3110e3876 100644 --- a/Gemfile +++ b/Gemfile @@ -18,7 +18,7 @@ gem 'lograge', '~> 0.11.2' # API gem 'active_model_serializers', '~> 0.10.13' -gem 'graphql', '~> 2.0.0' +gem 'graphql', '~> 2.0.2' gem 'rack-cors', '~> 1.1.1' gem 'health_check', '~> 3.1.0' diff --git a/Gemfile.lock b/Gemfile.lock index 336eb82bc..00509313b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -178,7 +178,7 @@ GEM graphiql-rails (1.8.0) railties sprockets-rails - graphql (2.0.0) + graphql (2.0.2) guard (2.18.0) formatador (>= 0.2.4) listen (>= 2.7, < 4.0) @@ -546,7 +546,7 @@ DEPENDENCIES friendly_id (~> 5.4.2) gitlab_omniauth-ldap (~> 2.1.1) graphiql-rails - graphql (~> 2.0.0) + graphql (~> 2.0.2) guard (~> 2.18.0) guard-bundler guard-migrate From 07ac439f05b55867c04fe017fb3f16516475f898 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 1 Mar 2022 23:25:17 +0000 Subject: [PATCH 0873/2165] chore(deps): bump image_processing from 1.12.1 to 1.12.2 Bumps [image_processing](https://github.com/janko/image_processing) from 1.12.1 to 1.12.2. - [Release notes](https://github.com/janko/image_processing/releases) - [Changelog](https://github.com/janko/image_processing/blob/master/CHANGELOG.md) - [Commits](https://github.com/janko/image_processing/compare/v1.12.1...v1.12.2) --- updated-dependencies: - dependency-name: image_processing dependency-type: indirect ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 336eb82bc..cec815952 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -220,7 +220,7 @@ GEM i18n (1.10.0) concurrent-ruby (~> 1.0) icns (0.2.0) - image_processing (1.12.1) + image_processing (1.12.2) mini_magick (>= 4.9.5, < 5) ruby-vips (>= 2.0.17, < 3) image_size (3.0.1) @@ -425,7 +425,7 @@ GEM rubocop (>= 1.7.0, < 2.0) ruby-macho (3.0.0) ruby-progressbar (1.11.0) - ruby-vips (2.1.2) + ruby-vips (2.1.4) ffi (~> 1.12) ruby2_keywords (0.0.5) rubyntlm (0.6.3) From 45358ac2a4a3096357895284a8c5b01042c37d62 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 8 Mar 2022 21:02:12 +0000 Subject: [PATCH 0874/2165] chore(deps): bump rails from 6.1.4.6 to 6.1.4.7 Bumps [rails](https://github.com/rails/rails) from 6.1.4.6 to 6.1.4.7. - [Release notes](https://github.com/rails/rails/releases) - [Commits](https://github.com/rails/rails/compare/v6.1.4.6...v6.1.4.7) --- updated-dependencies: - dependency-name: rails dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 110 +++++++++++++++++++++++++-------------------------- 1 file changed, 55 insertions(+), 55 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index c0cc8f79c..e72cdf42f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -3,40 +3,40 @@ GEM specs: CFPropertyList (3.0.5) rexml - actioncable (6.1.4.6) - actionpack (= 6.1.4.6) - activesupport (= 6.1.4.6) + actioncable (6.1.4.7) + actionpack (= 6.1.4.7) + activesupport (= 6.1.4.7) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (6.1.4.6) - actionpack (= 6.1.4.6) - activejob (= 6.1.4.6) - activerecord (= 6.1.4.6) - activestorage (= 6.1.4.6) - activesupport (= 6.1.4.6) + actionmailbox (6.1.4.7) + actionpack (= 6.1.4.7) + activejob (= 6.1.4.7) + activerecord (= 6.1.4.7) + activestorage (= 6.1.4.7) + activesupport (= 6.1.4.7) mail (>= 2.7.1) - actionmailer (6.1.4.6) - actionpack (= 6.1.4.6) - actionview (= 6.1.4.6) - activejob (= 6.1.4.6) - activesupport (= 6.1.4.6) + actionmailer (6.1.4.7) + actionpack (= 6.1.4.7) + actionview (= 6.1.4.7) + activejob (= 6.1.4.7) + activesupport (= 6.1.4.7) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (6.1.4.6) - actionview (= 6.1.4.6) - activesupport (= 6.1.4.6) + actionpack (6.1.4.7) + actionview (= 6.1.4.7) + activesupport (= 6.1.4.7) rack (~> 2.0, >= 2.0.9) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (6.1.4.6) - actionpack (= 6.1.4.6) - activerecord (= 6.1.4.6) - activestorage (= 6.1.4.6) - activesupport (= 6.1.4.6) + actiontext (6.1.4.7) + actionpack (= 6.1.4.7) + activerecord (= 6.1.4.7) + activestorage (= 6.1.4.7) + activesupport (= 6.1.4.7) nokogiri (>= 1.8.5) - actionview (6.1.4.6) - activesupport (= 6.1.4.6) + actionview (6.1.4.7) + activesupport (= 6.1.4.7) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) @@ -48,25 +48,25 @@ GEM activemodel (>= 4.1, < 7.1) case_transform (>= 0.2) jsonapi-renderer (>= 0.1.1.beta1, < 0.3) - activejob (6.1.4.6) - activesupport (= 6.1.4.6) + activejob (6.1.4.7) + activesupport (= 6.1.4.7) globalid (>= 0.3.6) activejob-status (0.2.2) activejob (>= 4.2) activesupport (>= 4.2) - activemodel (6.1.4.6) - activesupport (= 6.1.4.6) - activerecord (6.1.4.6) - activemodel (= 6.1.4.6) - activesupport (= 6.1.4.6) - activestorage (6.1.4.6) - actionpack (= 6.1.4.6) - activejob (= 6.1.4.6) - activerecord (= 6.1.4.6) - activesupport (= 6.1.4.6) + activemodel (6.1.4.7) + activesupport (= 6.1.4.7) + activerecord (6.1.4.7) + activemodel (= 6.1.4.7) + activesupport (= 6.1.4.7) + activestorage (6.1.4.7) + actionpack (= 6.1.4.7) + activejob (= 6.1.4.7) + activerecord (= 6.1.4.7) + activesupport (= 6.1.4.7) marcel (~> 1.0.0) mini_mime (>= 1.1.0) - activesupport (6.1.4.6) + activesupport (6.1.4.7) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) @@ -294,7 +294,7 @@ GEM nenv (0.3.0) net-ldap (0.17.0) nio4r (2.5.8) - nokogiri (1.13.2) + nokogiri (1.13.3) mini_portile2 (~> 2.8.0) racc (~> 1.4) notiffany (0.1.3) @@ -358,20 +358,20 @@ GEM rack rack-test (1.1.0) rack (>= 1.0, < 3) - rails (6.1.4.6) - actioncable (= 6.1.4.6) - actionmailbox (= 6.1.4.6) - actionmailer (= 6.1.4.6) - actionpack (= 6.1.4.6) - actiontext (= 6.1.4.6) - actionview (= 6.1.4.6) - activejob (= 6.1.4.6) - activemodel (= 6.1.4.6) - activerecord (= 6.1.4.6) - activestorage (= 6.1.4.6) - activesupport (= 6.1.4.6) + rails (6.1.4.7) + actioncable (= 6.1.4.7) + actionmailbox (= 6.1.4.7) + actionmailer (= 6.1.4.7) + actionpack (= 6.1.4.7) + actiontext (= 6.1.4.7) + actionview (= 6.1.4.7) + activejob (= 6.1.4.7) + activemodel (= 6.1.4.7) + activerecord (= 6.1.4.7) + activestorage (= 6.1.4.7) + activesupport (= 6.1.4.7) bundler (>= 1.15.0) - railties (= 6.1.4.6) + railties (= 6.1.4.7) sprockets-rails (>= 2.0.0) rails-dom-testing (2.0.3) activesupport (>= 4.2.0) @@ -383,9 +383,9 @@ GEM railties (>= 6.0.0, < 7) rails-settings-cached (2.8.2) rails (>= 5.0.0) - railties (6.1.4.6) - actionpack (= 6.1.4.6) - activesupport (= 6.1.4.6) + railties (6.1.4.7) + actionpack (= 6.1.4.7) + activesupport (= 6.1.4.7) method_source rake (>= 0.13) thor (~> 1.0) @@ -475,7 +475,7 @@ GEM spring-watcher-listen (2.0.1) listen (>= 2.7, < 4.0) spring (>= 1.2, < 3.0) - sprockets (4.0.2) + sprockets (4.0.3) concurrent-ruby (~> 1.0) rack (> 1, < 3) sprockets-rails (3.4.2) From 12b81b4661a5c55538d3d70e39563485e16f84d0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 8 Mar 2022 21:03:51 +0000 Subject: [PATCH 0875/2165] chore(deps): bump bootsnap from 1.10.3 to 1.11.1 Bumps [bootsnap](https://github.com/Shopify/bootsnap) from 1.10.3 to 1.11.1. - [Release notes](https://github.com/Shopify/bootsnap/releases) - [Changelog](https://github.com/Shopify/bootsnap/blob/main/CHANGELOG.md) - [Commits](https://github.com/Shopify/bootsnap/compare/v1.10.3...v1.11.1) --- updated-dependencies: - dependency-name: bootsnap dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index c0cc8f79c..c38b175fa 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -95,7 +95,7 @@ GEM bindex (0.8.1) binding_of_caller (1.0.0) debug_inspector (>= 0.0.1) - bootsnap (1.10.3) + bootsnap (1.11.1) msgpack (~> 1.2) builder (3.2.4) byebug (11.1.3) @@ -287,7 +287,7 @@ GEM minitest (5.15.0) mixlib-shellout (3.2.5) chef-utils - msgpack (1.4.4) + msgpack (1.4.5) multi_json (1.15.0) multi_xml (0.6.0) multipart-post (2.1.1) From f7a4c4f266997acdf933b9e770a84754f1540572 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 9 Mar 2022 21:02:28 +0000 Subject: [PATCH 0876/2165] chore(deps-dev): bump letter_opener from 1.7.0 to 1.8.0 Bumps [letter_opener](https://github.com/ryanb/letter_opener) from 1.7.0 to 1.8.0. - [Release notes](https://github.com/ryanb/letter_opener/releases) - [Changelog](https://github.com/ryanb/letter_opener/blob/master/CHANGELOG.md) - [Commits](https://github.com/ryanb/letter_opener/compare/v1.7.0...v1.8.0) --- updated-dependencies: - dependency-name: letter_opener dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index 3110e3876..3ee4b66de 100644 --- a/Gemfile +++ b/Gemfile @@ -123,7 +123,7 @@ group :development do gem 'binding_of_caller' # 在线查看 Action Mailer 内容 - gem 'letter_opener', '~> 1.7' + gem 'letter_opener', '~> 1.8' gem 'letter_opener_web', '~> 2.0' end diff --git a/Gemfile.lock b/Gemfile.lock index 2fc601d7a..32fe82550 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -255,8 +255,8 @@ GEM kaminari-core (1.2.1) launchy (2.5.0) addressable (~> 2.7) - letter_opener (1.7.0) - launchy (~> 2.2) + letter_opener (1.8.0) + launchy (>= 2.2, < 3) letter_opener_web (2.0.0) actionmailer (>= 5.2) letter_opener (~> 1.7) @@ -558,7 +558,7 @@ DEPENDENCIES improved_jenkins_client (~> 1.6.7) jb (~> 0.8.0) kaminari - letter_opener (~> 1.7) + letter_opener (~> 1.8) letter_opener_web (~> 2.0) listen (>= 3.0.5, < 3.8) lograge (~> 0.11.2) From 52de54c82b47c47bdeb811abe16053cab0b6b824 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 10 Mar 2022 21:02:12 +0000 Subject: [PATCH 0877/2165] chore(deps): bump pg from 1.3.3 to 1.3.4 Bumps [pg](https://github.com/ged/ruby-pg) from 1.3.3 to 1.3.4. - [Release notes](https://github.com/ged/ruby-pg/releases) - [Changelog](https://github.com/ged/ruby-pg/blob/master/History.rdoc) - [Commits](https://github.com/ged/ruby-pg/compare/v1.3.3...v1.3.4) --- updated-dependencies: - dependency-name: pg dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 32fe82550..cd0db2c22 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -328,7 +328,7 @@ GEM parallel (1.20.1) parser (3.0.1.1) ast (~> 2.4.1) - pg (1.3.3) + pg (1.3.4) pghero (2.8.2) activerecord (>= 5) plist (3.6.0) From 9d9e83204463ff04366ac394aaa23de55ab9bb97 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 11 Mar 2022 11:03:04 +0800 Subject: [PATCH 0878/2165] chore: bump pundit from 2.1.0 to 2.2.0 --- Gemfile | 2 +- Gemfile.lock | 4 ++-- app/controllers/application_controller.rb | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index 3ee4b66de..07beabe0b 100644 --- a/Gemfile +++ b/Gemfile @@ -43,7 +43,7 @@ gem 'webp-ffi', '~> 0.3.1' ## HTTP 请求 gem 'http', '~> 5.0.4' ## 用户认证 -gem 'pundit', '~> 2.1.0' +gem 'pundit', '~> 2.2.0' gem 'devise', '~> 4.8.1' gem 'devise-i18n', '~> 1.10.2' diff --git a/Gemfile.lock b/Gemfile.lock index 32fe82550..82e909203 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -346,7 +346,7 @@ GEM public_suffix (4.0.6) puma (5.6.2) nio4r (~> 2.0) - pundit (2.1.0) + pundit (2.2.0) activesupport (>= 3.0.0) pyu-ruby-sasl (0.0.3.3) raabro (1.4.0) @@ -574,7 +574,7 @@ DEPENDENCIES pry-rails pry-rescue puma (~> 5.6.2) - pundit (~> 2.1.0) + pundit (~> 2.2.0) rack-cors (~> 1.1.1) rails (~> 6.1.4) rails-i18n (~> 6.0.0) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index f32804b7f..a9ce3e989 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -2,7 +2,7 @@ class ApplicationController < ActionController::Base include ExceptionHandler - include Pundit + include Pundit::Authorization # Prevent CSRF attacks by raising an exception. # For APIs, you may want to use :null_session instead. From 5e515a8bedc4cc082380da69d2c30681c1088b38 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 11 Mar 2022 21:03:40 +0000 Subject: [PATCH 0879/2165] chore(deps): bump @rails/actioncable from 6.1.4 to 6.1.5 Bumps [@rails/actioncable](https://github.com/rails/rails) from 6.1.4 to 6.1.5. - [Release notes](https://github.com/rails/rails/releases) - [Commits](https://github.com/rails/rails/compare/v6.1.4...v6.1.5) --- updated-dependencies: - dependency-name: "@rails/actioncable" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 6635dc689..1911d21bb 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "zealot", "private": true, "dependencies": { - "@rails/actioncable": "^6.1.4", + "@rails/actioncable": "^6.1.5", "@rails/ujs": "^6.1.4", "@rails/webpacker": "^5.4.2", "admin-lte": "^3.1.0", diff --git a/yarn.lock b/yarn.lock index 12636b2d6..4eef55510 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1055,10 +1055,10 @@ mkdirp "^1.0.4" rimraf "^3.0.2" -"@rails/actioncable@^6.1.4": - version "6.1.4" - resolved "https://registry.yarnpkg.com/@rails/actioncable/-/actioncable-6.1.4.tgz#c3c5a9f8302c429af9722b6c50ab48049016d2a3" - integrity sha512-0LmSKJTuo2dL6BQ+9xxLnS9lbkyfz2mBGeBnQ2J7o9Bn0l0q+ZC6VuoZMZZXPvABI4QT7Nfknv5WhfKYL+boew== +"@rails/actioncable@^6.1.5": + version "6.1.5" + resolved "https://registry.yarnpkg.com/@rails/actioncable/-/actioncable-6.1.5.tgz#c24ec8123a8e7e239ceabda29078df9c93752394" + integrity sha512-bV4/Q7NweGFm7t3GvUFm19UF2WKmcvlOXy7AxMWEZCwDxQLagAXhUpKb1AJ6Rg88cPHqXSQHaGKr84lIMd607A== "@rails/ujs@^6.1.4": version "6.1.4" From 31e22d2b7b7bc73618903050f2a71ced6dff6793 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 11 Mar 2022 21:03:53 +0000 Subject: [PATCH 0880/2165] chore(deps): bump @rails/ujs from 6.1.4 to 6.1.5 Bumps [@rails/ujs](https://github.com/rails/rails) from 6.1.4 to 6.1.5. - [Release notes](https://github.com/rails/rails/releases) - [Commits](https://github.com/rails/rails/compare/v6.1.4...v6.1.5) --- updated-dependencies: - dependency-name: "@rails/ujs" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 6635dc689..151221559 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "private": true, "dependencies": { "@rails/actioncable": "^6.1.4", - "@rails/ujs": "^6.1.4", + "@rails/ujs": "^6.1.5", "@rails/webpacker": "^5.4.2", "admin-lte": "^3.1.0", "clipboard": "^2.0.10", diff --git a/yarn.lock b/yarn.lock index 12636b2d6..630079c28 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1060,10 +1060,10 @@ resolved "https://registry.yarnpkg.com/@rails/actioncable/-/actioncable-6.1.4.tgz#c3c5a9f8302c429af9722b6c50ab48049016d2a3" integrity sha512-0LmSKJTuo2dL6BQ+9xxLnS9lbkyfz2mBGeBnQ2J7o9Bn0l0q+ZC6VuoZMZZXPvABI4QT7Nfknv5WhfKYL+boew== -"@rails/ujs@^6.1.4": - version "6.1.4" - resolved "https://registry.yarnpkg.com/@rails/ujs/-/ujs-6.1.4.tgz#093d5341595a02089ed309dec40f3c37da7b1b10" - integrity sha512-O3lEzL5DYbxppMdsFSw36e4BHIlfz/xusynwXGv3l2lhSlvah41qviRpsoAlKXxl37nZAqK+UUF5cnGGK45Mfw== +"@rails/ujs@^6.1.5": + version "6.1.5" + resolved "https://registry.yarnpkg.com/@rails/ujs/-/ujs-6.1.5.tgz#bb1afddd0d771f00924f44b21634969e329532e1" + integrity sha512-Ir4yd2fdDldWIghavPr874copVKf6OOoecKHZiFRlPtm38tFvhyxr+ywzNieXGwolF9JQe3D5GrM8ejkzUgh5Q== "@rails/webpacker@^5.4.2": version "5.4.2" From 41b195234735f7f359f273b88a44fe9a957ba97e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 21 Mar 2022 21:03:29 +0000 Subject: [PATCH 0881/2165] chore(deps-dev): bump letter_opener from 1.8.0 to 1.8.1 Bumps [letter_opener](https://github.com/ryanb/letter_opener) from 1.8.0 to 1.8.1. - [Release notes](https://github.com/ryanb/letter_opener/releases) - [Changelog](https://github.com/ryanb/letter_opener/blob/master/CHANGELOG.md) - [Commits](https://github.com/ryanb/letter_opener/compare/v1.8.0...v1.8.1) --- updated-dependencies: - dependency-name: letter_opener dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 02daa29ea..73fe4a326 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -255,7 +255,7 @@ GEM kaminari-core (1.2.1) launchy (2.5.0) addressable (~> 2.7) - letter_opener (1.8.0) + letter_opener (1.8.1) launchy (>= 2.2, < 3) letter_opener_web (2.0.0) actionmailer (>= 5.2) From 6f7fffe6d7bd08942ce66988573e045bbb1b8f7f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 21 Mar 2022 21:05:11 +0000 Subject: [PATCH 0882/2165] chore(deps): bump graphql from 2.0.2 to 2.0.4 Bumps [graphql](https://github.com/rmosolgo/graphql-ruby) from 2.0.2 to 2.0.4. - [Release notes](https://github.com/rmosolgo/graphql-ruby/releases) - [Changelog](https://github.com/rmosolgo/graphql-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/rmosolgo/graphql-ruby/compare/v2.0.2...v2.0.4) --- updated-dependencies: - dependency-name: graphql dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 07beabe0b..0a19caf32 100644 --- a/Gemfile +++ b/Gemfile @@ -18,7 +18,7 @@ gem 'lograge', '~> 0.11.2' # API gem 'active_model_serializers', '~> 0.10.13' -gem 'graphql', '~> 2.0.2' +gem 'graphql', '~> 2.0.4' gem 'rack-cors', '~> 1.1.1' gem 'health_check', '~> 3.1.0' diff --git a/Gemfile.lock b/Gemfile.lock index 02daa29ea..f44164568 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -178,7 +178,7 @@ GEM graphiql-rails (1.8.0) railties sprockets-rails - graphql (2.0.2) + graphql (2.0.4) guard (2.18.0) formatador (>= 0.2.4) listen (>= 2.7, < 4.0) @@ -546,7 +546,7 @@ DEPENDENCIES friendly_id (~> 5.4.2) gitlab_omniauth-ldap (~> 2.1.1) graphiql-rails - graphql (~> 2.0.2) + graphql (~> 2.0.4) guard (~> 2.18.0) guard-bundler guard-migrate From cd932b1e63d44f5a0b1dd328887a65811f70e803 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 22 Mar 2022 02:41:54 +0000 Subject: [PATCH 0883/2165] chore(deps): bump rails from 6.1.4.7 to 6.1.5 Bumps [rails](https://github.com/rails/rails) from 6.1.4.7 to 6.1.5. - [Release notes](https://github.com/rails/rails/releases) - [Commits](https://github.com/rails/rails/compare/v6.1.4.7...v6.1.5) --- updated-dependencies: - dependency-name: rails dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 116 +++++++++++++++++++++++++-------------------------- 2 files changed, 59 insertions(+), 59 deletions(-) diff --git a/Gemfile b/Gemfile index 0a19caf32..d9da4a3bb 100644 --- a/Gemfile +++ b/Gemfile @@ -5,7 +5,7 @@ source 'https://rubygems.org' git_source(:github) { |repo_name| "https://github.com/#{repo_name}" } gem 'puma', '~> 5.6.2' -gem 'rails', '~> 6.1.4' +gem 'rails', '~> 6.1.5' gem 'rails-i18n', '~> 6.0.0' gem 'rake', '~> 13.0.4' diff --git a/Gemfile.lock b/Gemfile.lock index 8b8012070..daaee6c18 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -3,40 +3,40 @@ GEM specs: CFPropertyList (3.0.5) rexml - actioncable (6.1.4.7) - actionpack (= 6.1.4.7) - activesupport (= 6.1.4.7) + actioncable (6.1.5) + actionpack (= 6.1.5) + activesupport (= 6.1.5) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (6.1.4.7) - actionpack (= 6.1.4.7) - activejob (= 6.1.4.7) - activerecord (= 6.1.4.7) - activestorage (= 6.1.4.7) - activesupport (= 6.1.4.7) + actionmailbox (6.1.5) + actionpack (= 6.1.5) + activejob (= 6.1.5) + activerecord (= 6.1.5) + activestorage (= 6.1.5) + activesupport (= 6.1.5) mail (>= 2.7.1) - actionmailer (6.1.4.7) - actionpack (= 6.1.4.7) - actionview (= 6.1.4.7) - activejob (= 6.1.4.7) - activesupport (= 6.1.4.7) + actionmailer (6.1.5) + actionpack (= 6.1.5) + actionview (= 6.1.5) + activejob (= 6.1.5) + activesupport (= 6.1.5) mail (~> 2.5, >= 2.5.4) rails-dom-testing (~> 2.0) - actionpack (6.1.4.7) - actionview (= 6.1.4.7) - activesupport (= 6.1.4.7) + actionpack (6.1.5) + actionview (= 6.1.5) + activesupport (= 6.1.5) rack (~> 2.0, >= 2.0.9) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (6.1.4.7) - actionpack (= 6.1.4.7) - activerecord (= 6.1.4.7) - activestorage (= 6.1.4.7) - activesupport (= 6.1.4.7) + actiontext (6.1.5) + actionpack (= 6.1.5) + activerecord (= 6.1.5) + activestorage (= 6.1.5) + activesupport (= 6.1.5) nokogiri (>= 1.8.5) - actionview (6.1.4.7) - activesupport (= 6.1.4.7) + actionview (6.1.5) + activesupport (= 6.1.5) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) @@ -48,25 +48,25 @@ GEM activemodel (>= 4.1, < 7.1) case_transform (>= 0.2) jsonapi-renderer (>= 0.1.1.beta1, < 0.3) - activejob (6.1.4.7) - activesupport (= 6.1.4.7) + activejob (6.1.5) + activesupport (= 6.1.5) globalid (>= 0.3.6) activejob-status (0.2.2) activejob (>= 4.2) activesupport (>= 4.2) - activemodel (6.1.4.7) - activesupport (= 6.1.4.7) - activerecord (6.1.4.7) - activemodel (= 6.1.4.7) - activesupport (= 6.1.4.7) - activestorage (6.1.4.7) - actionpack (= 6.1.4.7) - activejob (= 6.1.4.7) - activerecord (= 6.1.4.7) - activesupport (= 6.1.4.7) - marcel (~> 1.0.0) + activemodel (6.1.5) + activesupport (= 6.1.5) + activerecord (6.1.5) + activemodel (= 6.1.5) + activesupport (= 6.1.5) + activestorage (6.1.5) + actionpack (= 6.1.5) + activejob (= 6.1.5) + activerecord (= 6.1.5) + activesupport (= 6.1.5) + marcel (~> 1.0) mini_mime (>= 1.1.0) - activesupport (6.1.4.7) + activesupport (6.1.5) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) @@ -113,7 +113,7 @@ GEM concurrent-ruby chunky_png (1.4.0) coderay (1.1.3) - concurrent-ruby (1.1.9) + concurrent-ruby (1.1.10) connection_pool (2.2.5) crass (1.0.6) debug (1.4.0) @@ -273,7 +273,7 @@ GEM activesupport (>= 4) railties (>= 4) request_store (~> 1.0) - loofah (2.14.0) + loofah (2.15.0) crass (~> 1.0.2) nokogiri (>= 1.5.9) lumberjack (1.2.8) @@ -358,20 +358,20 @@ GEM rack rack-test (1.1.0) rack (>= 1.0, < 3) - rails (6.1.4.7) - actioncable (= 6.1.4.7) - actionmailbox (= 6.1.4.7) - actionmailer (= 6.1.4.7) - actionpack (= 6.1.4.7) - actiontext (= 6.1.4.7) - actionview (= 6.1.4.7) - activejob (= 6.1.4.7) - activemodel (= 6.1.4.7) - activerecord (= 6.1.4.7) - activestorage (= 6.1.4.7) - activesupport (= 6.1.4.7) + rails (6.1.5) + actioncable (= 6.1.5) + actionmailbox (= 6.1.5) + actionmailer (= 6.1.5) + actionpack (= 6.1.5) + actiontext (= 6.1.5) + actionview (= 6.1.5) + activejob (= 6.1.5) + activemodel (= 6.1.5) + activerecord (= 6.1.5) + activestorage (= 6.1.5) + activesupport (= 6.1.5) bundler (>= 1.15.0) - railties (= 6.1.4.7) + railties (= 6.1.5) sprockets-rails (>= 2.0.0) rails-dom-testing (2.0.3) activesupport (>= 4.2.0) @@ -383,11 +383,11 @@ GEM railties (>= 6.0.0, < 7) rails-settings-cached (2.8.2) rails (>= 5.0.0) - railties (6.1.4.7) - actionpack (= 6.1.4.7) - activesupport (= 6.1.4.7) + railties (6.1.5) + actionpack (= 6.1.5) + activesupport (= 6.1.5) method_source - rake (>= 0.13) + rake (>= 12.2) thor (~> 1.0) rainbow (3.0.0) rake (13.0.6) @@ -576,7 +576,7 @@ DEPENDENCIES puma (~> 5.6.2) pundit (~> 2.2.0) rack-cors (~> 1.1.1) - rails (~> 6.1.4) + rails (~> 6.1.5) rails-i18n (~> 6.0.0) rails-settings-cached (~> 2.8.2) rake (~> 13.0.4) From 64ce53dd9c11d3569bb3f40010eef36a4c751c4a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 28 Mar 2022 02:51:49 +0000 Subject: [PATCH 0884/2165] chore(deps): bump minimist from 1.2.5 to 1.2.6 Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6. - [Release notes](https://github.com/substack/minimist/releases) - [Commits](https://github.com/substack/minimist/compare/1.2.5...1.2.6) --- updated-dependencies: - dependency-name: minimist dependency-type: indirect ... Signed-off-by: dependabot[bot] --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index 630079c28..64a66a7c7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5175,9 +5175,9 @@ minimatch@^3.0.4: brace-expansion "^1.1.7" minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + version "1.2.6" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.6.tgz#8637a5b759ea0d6e98702cfb3a9283323c93af44" + integrity sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q== minipass-collect@^1.0.2: version "1.0.2" From ecd6e5b6b8b9e957a4623064cd78a10343d74385 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 28 Mar 2022 11:11:42 +0800 Subject: [PATCH 0885/2165] fix: fix yarn dependency --- yarn.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/yarn.lock b/yarn.lock index 568bbe7da..cdef3fb4c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1055,7 +1055,7 @@ mkdirp "^1.0.4" rimraf "^3.0.2" -"@rails/actioncable@^6.1.5": +"@rails/actioncable@^6.1.4": version "6.1.5" resolved "https://registry.yarnpkg.com/@rails/actioncable/-/actioncable-6.1.5.tgz#c24ec8123a8e7e239ceabda29078df9c93752394" integrity sha512-bV4/Q7NweGFm7t3GvUFm19UF2WKmcvlOXy7AxMWEZCwDxQLagAXhUpKb1AJ6Rg88cPHqXSQHaGKr84lIMd607A== From 40a45701f26854f06855142321b3fcb4871685a5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 29 Mar 2022 21:03:17 +0000 Subject: [PATCH 0886/2165] chore(deps): bump graphql from 2.0.4 to 2.0.5 Bumps [graphql](https://github.com/rmosolgo/graphql-ruby) from 2.0.4 to 2.0.5. - [Release notes](https://github.com/rmosolgo/graphql-ruby/releases) - [Changelog](https://github.com/rmosolgo/graphql-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/rmosolgo/graphql-ruby/compare/v2.0.4...v2.0.5) --- updated-dependencies: - dependency-name: graphql dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index d9da4a3bb..7c366f8ab 100644 --- a/Gemfile +++ b/Gemfile @@ -18,7 +18,7 @@ gem 'lograge', '~> 0.11.2' # API gem 'active_model_serializers', '~> 0.10.13' -gem 'graphql', '~> 2.0.4' +gem 'graphql', '~> 2.0.5' gem 'rack-cors', '~> 1.1.1' gem 'health_check', '~> 3.1.0' diff --git a/Gemfile.lock b/Gemfile.lock index daaee6c18..be9f9b243 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -178,7 +178,7 @@ GEM graphiql-rails (1.8.0) railties sprockets-rails - graphql (2.0.4) + graphql (2.0.5) guard (2.18.0) formatador (>= 0.2.4) listen (>= 2.7, < 4.0) @@ -546,7 +546,7 @@ DEPENDENCIES friendly_id (~> 5.4.2) gitlab_omniauth-ldap (~> 2.1.1) graphiql-rails - graphql (~> 2.0.4) + graphql (~> 2.0.5) guard (~> 2.18.0) guard-bundler guard-migrate From 840c85eb7d860a515ef0606d595473b936533708 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 30 Mar 2022 21:02:32 +0000 Subject: [PATCH 0887/2165] chore(deps): bump puma from 5.6.2 to 5.6.4 Bumps [puma](https://github.com/puma/puma) from 5.6.2 to 5.6.4. - [Release notes](https://github.com/puma/puma/releases) - [Changelog](https://github.com/puma/puma/blob/master/History.md) - [Commits](https://github.com/puma/puma/compare/v5.6.2...v5.6.4) --- updated-dependencies: - dependency-name: puma dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index d9da4a3bb..40111b91c 100644 --- a/Gemfile +++ b/Gemfile @@ -4,7 +4,7 @@ source 'https://rubygems.org' git_source(:github) { |repo_name| "https://github.com/#{repo_name}" } -gem 'puma', '~> 5.6.2' +gem 'puma', '~> 5.6.4' gem 'rails', '~> 6.1.5' gem 'rails-i18n', '~> 6.0.0' gem 'rake', '~> 13.0.4' diff --git a/Gemfile.lock b/Gemfile.lock index daaee6c18..662ef20c2 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -344,7 +344,7 @@ GEM interception (>= 0.5) pry (>= 0.12.0) public_suffix (4.0.6) - puma (5.6.2) + puma (5.6.4) nio4r (~> 2.0) pundit (2.2.0) activesupport (>= 3.0.0) @@ -573,7 +573,7 @@ DEPENDENCIES pry-byebug pry-rails pry-rescue - puma (~> 5.6.2) + puma (~> 5.6.4) pundit (~> 2.2.0) rack-cors (~> 1.1.1) rails (~> 6.1.5) From 1ac4f9c84d53fcc4253aa4687e04f11137cbd6b8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 31 Mar 2022 21:01:55 +0000 Subject: [PATCH 0888/2165] chore(deps): bump lograge from 0.11.2 to 0.12.0 Bumps [lograge](https://github.com/roidrage/lograge) from 0.11.2 to 0.12.0. - [Release notes](https://github.com/roidrage/lograge/releases) - [Changelog](https://github.com/roidrage/lograge/blob/master/CHANGELOG.md) - [Commits](https://github.com/roidrage/lograge/compare/v0.11.2...v0.12.0) --- updated-dependencies: - dependency-name: lograge dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index 40111b91c..4cf30277f 100644 --- a/Gemfile +++ b/Gemfile @@ -14,7 +14,7 @@ gem 'pg', '>= 0.18', '< 2.0' gem 'redis', '~> 4.6.0' # Logger -gem 'lograge', '~> 0.11.2' +gem 'lograge', '~> 0.12.0' # API gem 'active_model_serializers', '~> 0.10.13' diff --git a/Gemfile.lock b/Gemfile.lock index 662ef20c2..23db2770e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -268,7 +268,7 @@ GEM llhttp-ffi (0.4.0) ffi-compiler (~> 1.0) rake (~> 13.0) - lograge (0.11.2) + lograge (0.12.0) actionpack (>= 4) activesupport (>= 4) railties (>= 4) @@ -398,7 +398,7 @@ GEM regexp_parser (2.1.1) reline (0.3.1) io-console (~> 0.5) - request_store (1.5.0) + request_store (1.5.1) rack (>= 1.4) responders (3.0.1) actionpack (>= 5.0) @@ -561,7 +561,7 @@ DEPENDENCIES letter_opener (~> 1.8) letter_opener_web (~> 2.0) listen (>= 3.0.5, < 3.8) - lograge (~> 0.11.2) + lograge (~> 0.12.0) omniauth (~> 1.9) omniauth-feishu (~> 0.1.6) omniauth-gitlab (~> 2.0.0) From ad1839f1869ec93b5b755917b09d1d6ab1ad718c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 31 Mar 2022 21:02:27 +0000 Subject: [PATCH 0889/2165] chore(deps): bump pg from 1.3.4 to 1.3.5 Bumps [pg](https://github.com/ged/ruby-pg) from 1.3.4 to 1.3.5. - [Release notes](https://github.com/ged/ruby-pg/releases) - [Changelog](https://github.com/ged/ruby-pg/blob/master/History.rdoc) - [Commits](https://github.com/ged/ruby-pg/commits) --- updated-dependencies: - dependency-name: pg dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 662ef20c2..1ee4bdbdb 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -328,7 +328,7 @@ GEM parallel (1.20.1) parser (3.0.1.1) ast (~> 2.4.1) - pg (1.3.4) + pg (1.3.5) pghero (2.8.2) activerecord (>= 5) plist (3.6.0) From f343cc2059761d69becf6a9fdccfc12f5e6c7d07 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 Apr 2022 04:10:49 +0000 Subject: [PATCH 0890/2165] chore(deps): bump nokogiri from 1.13.3 to 1.13.4 Bumps [nokogiri](https://github.com/sparklemotion/nokogiri) from 1.13.3 to 1.13.4. - [Release notes](https://github.com/sparklemotion/nokogiri/releases) - [Changelog](https://github.com/sparklemotion/nokogiri/blob/v1.13.4/CHANGELOG.md) - [Commits](https://github.com/sparklemotion/nokogiri/compare/v1.13.3...v1.13.4) --- updated-dependencies: - dependency-name: nokogiri dependency-type: indirect ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 47d2d19bd..5cb9daaca 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -294,7 +294,7 @@ GEM nenv (0.3.0) net-ldap (0.17.0) nio4r (2.5.8) - nokogiri (1.13.3) + nokogiri (1.13.4) mini_portile2 (~> 2.8.0) racc (~> 1.4) notiffany (0.1.3) From e02a13797ad55dd95a4dab0061603f18b1ad4c85 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 12 Apr 2022 12:18:54 +0800 Subject: [PATCH 0891/2165] =?UTF-8?q?=E5=8D=87=E7=BA=A7=20omniauth=202=20(?= =?UTF-8?q?#742)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .rubocop.yml | 3 +- Gemfile | 18 +- Gemfile.lock | 161 ++++++------- app/helpers/devise_helper.rb | 12 + app/javascript/stylesheets/devise.scss | 4 + app/views/devise/shared/_links.html.slim | 8 +- config/initializers/devise.rb | 84 +++---- config/locales/devise/devise.views.zh-CN.yml | 2 +- lib/omniauth/strategies/feishu.rb | 103 ++++++++ lib/omniauth/strategies/ldap.rb | 121 ++++++++++ lib/omniauth/strategies/ldap/adaptor.rb | 238 +++++++++++++++++++ 11 files changed, 611 insertions(+), 143 deletions(-) create mode 100644 lib/omniauth/strategies/feishu.rb create mode 100644 lib/omniauth/strategies/ldap.rb create mode 100644 lib/omniauth/strategies/ldap/adaptor.rb diff --git a/.rubocop.yml b/.rubocop.yml index 2d3b318ae..6c753d7b2 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -11,7 +11,8 @@ AllCops: - 'node_modules/**/*' - 'tmp/**/*' - 'bin/**/*' - - "db/**/*" + - 'db/**/*' + - 'lib/omniauth/**/*' CacheRootDirectory: tmp Style/FrozenStringLiteralComment: diff --git a/Gemfile b/Gemfile index bc1efbaf7..efdad3969 100644 --- a/Gemfile +++ b/Gemfile @@ -47,11 +47,19 @@ gem 'pundit', '~> 2.2.0' gem 'devise', '~> 4.8.1' gem 'devise-i18n', '~> 1.10.2' -gem 'omniauth', '~> 1.9' -gem 'omniauth-google-oauth2', '~> 0.8.2' -gem 'gitlab_omniauth-ldap', '~> 2.1.1', require: 'omniauth-ldap' -gem 'omniauth-feishu', '~> 0.1.6' -gem 'omniauth-gitlab', '~> 2.0.0' +gem 'omniauth', '~> 2.0.4' +gem 'omniauth-rails_csrf_protection', '~> 1.0.1' +gem 'omniauth-google-oauth2', '~> 1.0.1' +gem 'omniauth-gitlab', '~> 3.0.0' + +# ldap dependencies +gem 'net-ldap', '~> 0.16' +gem 'pyu-ruby-sasl', '>= 0.0.3.3', '< 0.1' +gem 'rubyntlm', '~> 0.5' + +# FIXME: copy to ./lib/omniauth/strategies +# gem 'omniauth-feishu', '~> 0.1.6' +# gem 'gitlab_omniauth-ldap', '~> 2.1.1', require: 'omniauth-ldap' ## UDID gem 'openssl', '~> 2.2.1' diff --git a/Gemfile.lock b/Gemfile.lock index 407d32443..a65618ceb 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -87,7 +87,7 @@ GEM uuidtools (>= 2.1.5, < 2.3.0) ast (2.4.2) awesome_print (1.9.2) - bcrypt (3.1.16) + bcrypt (3.1.17) better_errors (2.9.1) coderay (>= 1.0.0) erubi (>= 1.0.0) @@ -109,14 +109,14 @@ GEM ssrf_filter (~> 1.0) case_transform (0.2) activesupport - chef-utils (17.9.18) + chef-utils (17.10.0) concurrent-ruby chunky_png (1.4.0) coderay (1.1.3) concurrent-ruby (1.1.10) connection_pool (2.2.5) crass (1.0.6) - debug (1.4.0) + debug (1.5.0) irb (>= 1.3.6) reline (>= 0.2.7) debug_inspector (1.1.0) @@ -136,42 +136,22 @@ GEM railties (>= 3.2) e2mmap (0.1.0) erubi (1.10.0) - et-orbi (1.2.6) + et-orbi (1.2.7) tzinfo - faraday (1.8.0) - faraday-em_http (~> 1.0) - faraday-em_synchrony (~> 1.0) - faraday-excon (~> 1.1) - faraday-httpclient (~> 1.0.1) - faraday-net_http (~> 1.0) - faraday-net_http_persistent (~> 1.1) - faraday-patron (~> 1.0) - faraday-rack (~> 1.0) - multipart-post (>= 1.2, < 3) + faraday (2.2.0) + faraday-net_http (~> 2.0) ruby2_keywords (>= 0.0.4) - faraday-em_http (1.0.0) - faraday-em_synchrony (1.0.0) - faraday-excon (1.1.0) - faraday-httpclient (1.0.1) - faraday-net_http (1.0.1) - faraday-net_http_persistent (1.2.0) - faraday-patron (1.0.0) - faraday-rack (1.0.0) + faraday-net_http (2.0.2) ffi (1.15.5) ffi-compiler (1.0.1) ffi (>= 1.0.0) rake - formatador (0.3.0) + formatador (1.1.0) friendly_id (5.4.2) activerecord (>= 4.0.0) - fugit (1.5.2) - et-orbi (~> 1.1, >= 1.1.8) + fugit (1.5.3) + et-orbi (~> 1, >= 1.2.7) raabro (~> 1.4) - gitlab_omniauth-ldap (2.1.1) - net-ldap (~> 0.16) - omniauth (~> 1.3) - pyu-ruby-sasl (>= 0.0.3.3, < 0.1) - rubyntlm (~> 0.5) globalid (1.0.0) activesupport (>= 5.0) google-protobuf (3.19.4) @@ -206,7 +186,7 @@ GEM guard-webpacker (0.2.1) guard (>= 2) guard-compat (~> 1.0) - hashie (4.1.0) + hashie (5.0.0) health_check (3.1.0) railties (>= 5.0) http (5.0.4) @@ -234,25 +214,25 @@ GEM thor (>= 0.16.0) interception (0.5) io-console (0.5.11) - ipaddr (1.2.2) + ipaddr (1.2.4) irb (1.4.1) reline (>= 0.3.0) jb (0.8.0) json (2.6.1) jsonapi-renderer (0.2.2) - jwt (2.2.3) - kaminari (1.2.1) + jwt (2.3.0) + kaminari (1.2.2) activesupport (>= 4.1.0) - kaminari-actionview (= 1.2.1) - kaminari-activerecord (= 1.2.1) - kaminari-core (= 1.2.1) - kaminari-actionview (1.2.1) + kaminari-actionview (= 1.2.2) + kaminari-activerecord (= 1.2.2) + kaminari-core (= 1.2.2) + kaminari-actionview (1.2.2) actionview - kaminari-core (= 1.2.1) - kaminari-activerecord (1.2.1) + kaminari-core (= 1.2.2) + kaminari-activerecord (1.2.2) activerecord - kaminari-core (= 1.2.1) - kaminari-core (1.2.1) + kaminari-core (= 1.2.2) + kaminari-core (1.2.2) launchy (2.5.0) addressable (~> 2.7) letter_opener (1.8.1) @@ -273,7 +253,7 @@ GEM activesupport (>= 4) railties (>= 4) request_store (~> 1.0) - loofah (2.15.0) + loofah (2.16.0) crass (~> 1.0.2) nokogiri (>= 1.5.9) lumberjack (1.2.8) @@ -285,12 +265,11 @@ GEM mini_mime (1.1.2) mini_portile2 (2.8.0) minitest (5.15.0) - mixlib-shellout (3.2.5) + mixlib-shellout (3.2.7) chef-utils - msgpack (1.4.5) + msgpack (1.5.1) multi_json (1.15.0) multi_xml (0.6.0) - multipart-post (2.1.1) nenv (0.3.0) net-ldap (0.17.0) nio4r (2.5.8) @@ -300,33 +279,35 @@ GEM notiffany (0.1.3) nenv (~> 0.1) shellany (~> 0.0) - oauth2 (1.4.7) - faraday (>= 0.8, < 2.0) + oauth2 (1.4.9) + faraday (>= 0.17.3, < 3.0) jwt (>= 1.0, < 3.0) multi_json (~> 1.3) multi_xml (~> 0.5) rack (>= 1.2, < 3) - omniauth (1.9.1) + omniauth (2.0.4) hashie (>= 3.4.6) rack (>= 1.6.2, < 3) - omniauth-feishu (0.1.6) - omniauth-oauth2 (~> 1.6.0) - omniauth-gitlab (2.0.0) - omniauth (~> 1.0) - omniauth-oauth2 (~> 1.0) - omniauth-google-oauth2 (0.8.2) + rack-protection + omniauth-gitlab (3.0.0) + omniauth (~> 2.0) + omniauth-oauth2 (~> 1.7.1) + omniauth-google-oauth2 (1.0.1) jwt (>= 2.0) oauth2 (~> 1.1) - omniauth (~> 1.1) - omniauth-oauth2 (>= 1.6) - omniauth-oauth2 (1.6.0) - oauth2 (~> 1.1) - omniauth (~> 1.9) + omniauth (~> 2.0) + omniauth-oauth2 (~> 1.7.1) + omniauth-oauth2 (1.7.2) + oauth2 (~> 1.4) + omniauth (>= 1.9, < 3) + omniauth-rails_csrf_protection (1.0.1) + actionpack (>= 4.2) + omniauth (~> 2.0) openssl (2.2.1) ipaddr orm_adapter (0.5.0) - parallel (1.20.1) - parser (3.0.1.1) + parallel (1.22.1) + parser (3.1.1.0) ast (~> 2.4.1) pg (1.3.5) pghero (2.8.2) @@ -354,7 +335,9 @@ GEM rack (2.2.3) rack-cors (1.1.1) rack (>= 2.0.0) - rack-proxy (0.7.0) + rack-protection (2.2.0) + rack + rack-proxy (0.7.2) rack rack-test (1.1.0) rack (>= 1.0, < 3) @@ -389,13 +372,13 @@ GEM method_source rake (>= 12.2) thor (~> 1.0) - rainbow (3.0.0) + rainbow (3.1.1) rake (13.0.6) - rb-fsevent (0.11.0) + rb-fsevent (0.11.1) rb-inotify (0.10.1) ffi (~> 1.0) redis (4.6.0) - regexp_parser (2.1.1) + regexp_parser (2.3.0) reline (0.3.1) io-console (~> 0.5) request_store (1.5.1) @@ -408,18 +391,18 @@ GEM chunky_png (~> 1.0) rqrcode_core (~> 1.0) rqrcode_core (1.2.0) - rubocop (1.18.3) + rubocop (1.27.0) parallel (~> 1.10) - parser (>= 3.0.0.0) + parser (>= 3.1.0.0) rainbow (>= 2.2.2, < 4.0) regexp_parser (>= 1.8, < 3.0) rexml - rubocop-ast (>= 1.7.0, < 2.0) + rubocop-ast (>= 1.16.0, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 1.4.0, < 3.0) - rubocop-ast (1.7.0) - parser (>= 3.0.1.1) - rubocop-rails (2.11.2) + rubocop-ast (1.17.0) + parser (>= 3.1.1.0) + rubocop-rails (2.14.2) activesupport (>= 4.2.0) rack (>= 1.1) rubocop (>= 1.7.0, < 2.0) @@ -433,18 +416,16 @@ GEM rufus-scheduler (3.8.1) fugit (~> 1.1, >= 1.1.6) semantic_range (3.0.0) - sentry-rails (4.8.1) + sentry-rails (5.2.1) railties (>= 5.0) - sentry-ruby-core (~> 4.8.1) - sentry-ruby (4.8.1) + sentry-ruby-core (~> 5.2.1) + sentry-ruby (5.2.1) concurrent-ruby (~> 1.0, >= 1.0.2) - faraday (>= 1.0) - sentry-ruby-core (= 4.8.1) - sentry-ruby-core (4.8.1) + sentry-ruby-core (= 5.2.1) + sentry-ruby-core (5.2.1) concurrent-ruby - faraday - sentry-sidekiq (4.8.1) - sentry-ruby-core (~> 4.8.1) + sentry-sidekiq (5.2.1) + sentry-ruby-core (~> 5.2.1) sidekiq (>= 3.0) shellany (0.0.1) sidekiq (6.4.1) @@ -501,8 +482,8 @@ GEM concurrent-ruby (~> 1.0) unf (0.1.4) unf_ext - unf_ext (0.0.8) - unicode-display_width (2.0.0) + unf_ext (0.0.8.1) + unicode-display_width (2.1.0) uuidtools (2.2.0) vmstat (2.3.1) warden (1.2.9) @@ -515,7 +496,7 @@ GEM webp-ffi (0.3.1) ffi (>= 1.9.0) ffi-compiler (>= 0.1.2) - webpacker (5.4.0) + webpacker (5.4.3) activesupport (>= 5.2) rack-proxy (>= 0.6.1) railties (>= 5.2) @@ -544,7 +525,6 @@ DEPENDENCIES devise-i18n (~> 1.10.2) dotenv-rails friendly_id (~> 5.4.2) - gitlab_omniauth-ldap (~> 2.1.1) graphiql-rails graphql (~> 2.0.5) guard (~> 2.18.0) @@ -562,10 +542,11 @@ DEPENDENCIES letter_opener_web (~> 2.0) listen (>= 3.0.5, < 3.8) lograge (~> 0.12.0) - omniauth (~> 1.9) - omniauth-feishu (~> 0.1.6) - omniauth-gitlab (~> 2.0.0) - omniauth-google-oauth2 (~> 0.8.2) + net-ldap (~> 0.16) + omniauth (~> 2.0.4) + omniauth-gitlab (~> 3.0.0) + omniauth-google-oauth2 (~> 1.0.1) + omniauth-rails_csrf_protection (~> 1.0.1) openssl (~> 2.2.1) pg (>= 0.18, < 2.0) pghero @@ -575,6 +556,7 @@ DEPENDENCIES pry-rescue puma (~> 5.6.4) pundit (~> 2.2.0) + pyu-ruby-sasl (>= 0.0.3.3, < 0.1) rack-cors (~> 1.1.1) rails (~> 6.1.5) rails-i18n (~> 6.0.0) @@ -584,6 +566,7 @@ DEPENDENCIES rqrcode rubocop (>= 0.70) rubocop-rails + rubyntlm (~> 0.5) sentry-rails sentry-ruby sentry-sidekiq diff --git a/app/helpers/devise_helper.rb b/app/helpers/devise_helper.rb index 278dc4bf8..482c01e0f 100644 --- a/app/helpers/devise_helper.rb +++ b/app/helpers/devise_helper.rb @@ -1,6 +1,18 @@ # frozen_string_literal: true module DeviseHelper + def devise_provider_login_path(name) + fallback_title = omniauth_display_name(name) + key = fallback_title.downcase + + provider = t("devise.shared.links.provider.#{key}", default: fallback_title) + title = t('devise.shared.links.sign_in_with_provider', provider: provider) + url = [:user, name.to_sym, :omniauth, :authorize] + button_to(url, class: "btn btn-block btn-default text-left") do + raw(%Q(#{title} )) + end + end + def ldap_auth_enable? devise_mapping.omniauthable? && resource_class.oauth_providers.include?(:ldap) end diff --git a/app/javascript/stylesheets/devise.scss b/app/javascript/stylesheets/devise.scss index 998c36ede..483baf5a7 100644 --- a/app/javascript/stylesheets/devise.scss +++ b/app/javascript/stylesheets/devise.scss @@ -4,6 +4,10 @@ margin-right: 0; margin-top: 0.3rem; } + + .button_to { + margin-bottom: 8px; + } } @media (min-width: 768px) { diff --git a/app/views/devise/shared/_links.html.slim b/app/views/devise/shared/_links.html.slim index 5e2b39c80..11dda3240 100644 --- a/app/views/devise/shared/_links.html.slim +++ b/app/views/devise/shared/_links.html.slim @@ -2,13 +2,7 @@ .social-auth-links.mb-3 - resource_class.oauth_providers.each do |provider| - unless provider == :ldap - ruby: - title = omniauth_display_name(provider) - key = title.downcase - - a.btn.btn-default.btn-block.text-left href="#{public_send("user_#{provider}_omniauth_authorize_path")}" class="btn-auth-#{key}" data-method="post" - = t('devise.shared.links.sign_in_with_provider', provider: t("devise.shared.links.provider.#{key}", default: title)) - i.icon.fab.float-right class="fa-#{key}" + = devise_provider_login_path(provider) - if controller_name != 'sessions' p.mb-1 diff --git a/config/initializers/devise.rb b/config/initializers/devise.rb index 526da1d08..f8d616e5f 100644 --- a/config/initializers/devise.rb +++ b/config/initializers/devise.rb @@ -1,5 +1,45 @@ # frozen_string_literal: true +Dir.glob(Rails.root.join('lib/omniauth/strategies/*.rb')).each do |filename| + require_dependency filename +end + +FEISHU_OMNIAUTH_SETUP = lambda do |env| + env['omniauth.strategy'].options[:client_id] = Setting.feishu[:app_id] + env['omniauth.strategy'].options[:client_secret] = Setting.feishu[:app_secret] +end + +GITLAB_OMNIAUTH_SETUP = lambda do |env| + scope = Setting.gitlab[:scope]&.split(',').map(&:chomp).join(' ') || 'read_user' + + env['omniauth.strategy'].options[:client_id] = Setting.gitlab[:app_id] + env['omniauth.strategy'].options[:client_secret] = Setting.gitlab[:secret] + env['omniauth.strategy'].options[:scope] = scope + + if site = Setting.gitlab[:site].presence + env['omniauth.strategy'].options[:client_options] = { + site: site, + authorize_url: URI.join(site, '/oauth/authorize').to_s, + token_url: URI.join(site, '/oauth/token').to_s + } + end +end + +GOOGLE_OMNIAUTH_SETUP = lambda do |env| + env['omniauth.strategy'].options[:client_id] = Setting.google_oauth[:client_id] + env['omniauth.strategy'].options[:client_secret] = Setting.google_oauth[:secret] +end + +LDAP_OMNIAUTH_SETUP = lambda do |env| + env['omniauth.strategy'].options[:host] = Setting.ldap[:host] + env['omniauth.strategy'].options[:port] = Setting.ldap[:port].to_i + env['omniauth.strategy'].options[:encryption] = Setting.ldap[:encryption].to_sym + env['omniauth.strategy'].options[:bind_dn] = Setting.ldap[:bind_dn] + env['omniauth.strategy'].options[:password] = Setting.ldap[:password] + env['omniauth.strategy'].options[:base] = Setting.ldap[:base] + env['omniauth.strategy'].options[:uid] = Setting.ldap[:uid] +end + # Use this hook to configure devise mailer, warden hooks and so forth. # Many of these configuration options can be set straight in your model. Devise.setup do |config| @@ -269,44 +309,8 @@ # Add a new OmniAuth provider. Check the wiki for more information on setting # up on your models and hooks. - # 飞书 - feishu = Setting.feishu - if defined?(OmniAuth::Strategies::Feishu) && feishu[:enabled] - config.omniauth :feishu, feishu[:app_id], feishu[:app_secret] - end - - # Gitlab - gitlab = Setting.gitlab - if defined?(OmniAuth::Strategies::GitLab) && gitlab[:enabled] - options = { scope: 'read_user' } - if scope = gitlab[:scope].presence - options[:scope] = scope.split(',').map(&:chomp).join(' ') - end - - if site = gitlab[:site].presence - options[:client_options] = { site: site } - end - - config.omniauth :gitlab, gitlab[:app_id], gitlab[:secret], options - end - - # Google OAuth - google_oauth = Setting.google_oauth - if defined?(OmniAuth::Strategies::GoogleOauth2) && google_oauth[:enabled] - config.omniauth :google_oauth2, google_oauth[:client_id], google_oauth[:secret], - skip_jwt: true, prompt: 'select_account', access_type: 'offline', - scope: 'email,profile' - end - - # LDAP - ldap = Setting.ldap - if defined?(OmniAuth::Strategies::LDAP) && ldap[:enabled] - config.omniauth :ldap, title: 'Zealot LDAP 认证登录', - host: ldap[:host], port: ldap[:port].to_i, - encryption: ldap[:encryption].to_sym, - bind_dn: ldap[:bind_dn], - password: ldap[:password], - base: ldap[:base], uid: ldap[:uid] - # try_sasl: true, sasl_mechanisms: ['DIGEST-MD5'] - end + config.omniauth :feishu, setup: FEISHU_OMNIAUTH_SETUP + config.omniauth :gitlab, setup: GITLAB_OMNIAUTH_SETUP + config.omniauth :google_oauth2, setup: GOOGLE_OMNIAUTH_SETUP + config.omniauth :ldap, setup: LDAP_OMNIAUTH_SETUP end diff --git a/config/locales/devise/devise.views.zh-CN.yml b/config/locales/devise/devise.views.zh-CN.yml index 912543472..3cf20104f 100644 --- a/config/locales/devise/devise.views.zh-CN.yml +++ b/config/locales/devise/devise.views.zh-CN.yml @@ -74,7 +74,7 @@ zh-CN: message: 由于多次登录失败,您的帐户已被锁定。 subject: 帐户解锁信息 omniauth_callbacks: - failure: 由于%{reason},无法从%{kind}获得授权。 + failure: 由于 %{reason},无法从%{kind}获得授权。 success: 成功地从%{kind}获得授权。 passwords: edit: diff --git a/lib/omniauth/strategies/feishu.rb b/lib/omniauth/strategies/feishu.rb new file mode 100644 index 000000000..804119477 --- /dev/null +++ b/lib/omniauth/strategies/feishu.rb @@ -0,0 +1,103 @@ +# frozen_string_literal: true +# +# Modify to work under in omniauth 2 +# Original repository: https://github.com/renny-ren/omniauth-feishu +# +# TODO: Remove file after bump new release 0.1.7 or 0.2.0? +require 'omniauth-oauth2' + +module OmniAuth + module Strategies + + # 飞书登录 + # + # 飞书要求请求采用 json 格式主体,很多都需要自定义 + # 官方文档: https://open.feishu.cn/document/ukTMukTMukTM/uETOwYjLxkDM24SM5AjN + class Feishu < OmniAuth::Strategies::OAuth2 + class NoAppAccessTokenError < StandardError; end + + option :name, 'feishu' + + option :client_options, { + site: 'https://open.feishu.cn/open-apis/authen/v1/', + authorize_url: 'user_auth_page_beta', + token_url: 'access_token', + app_access_token_url: 'https://open.feishu.cn/open-apis/auth/v3/app_access_token/internal', + user_info_url: 'user_info' + } + + uid { raw_info['user_id'] } + + info do + { + name: raw_info['name'], + email: raw_info['email'], + mobile: raw_info['mobile'], + avatar_url: raw_info['avatar_url'], + avatar_thumb: raw_info['avatar_thumb'], + avatar_middle: raw_info['avatar_middle'], + avatar_big: raw_info['avatar_big'], + user_id: raw_info['user_id'], + union_id: raw_info['union_id'], + open_id: raw_info['open_id'], + en_name: raw_info['en_name'] + } + end + + def raw_info + @raw_info ||= client.request(:get, options.client_options.user_info_url, + { headers: { + 'Content-Type' => 'application/json; charset=utf-8', + 'Authorization' => "Bearer #{access_token.token}" + } + }) + .parsed['data'] + end + + def authorize_params + super.tap do |params| + params[:app_id] = options.client_id + end + end + + # 飞书采用非标准 OAuth 2 请求体和返回结构体,需要自定义 + def build_access_token + code = request.params['code'] + data = client.request(:post, options.client_options.token_url, + { body: { + code: code, + grant_type: 'authorization_code' + }.to_json, + headers: { + 'Content-Type' => 'application/json; charset=utf-8', + 'Authorization' => "Bearer #{app_access_token}" + } + }) + .parsed['data'] + + ::OAuth2::AccessToken.from_hash(client, data) + end + + private + + def app_access_token + return @app_access_token if @app_access_token + + @app_access_token ||= client.request(:post, options.client_options.app_access_token_url, + { body: { + app_id: options.client_id, + app_secret: options.client_secret + }.to_json, + headers: { + 'Content-Type' => 'application/json; charset=utf-8' + } + }) + .parsed['app_access_token'] + + raise NoAppAccessTokenError, 'No app access token' unless @app_access_token + + @app_access_token + end + end + end +end diff --git a/lib/omniauth/strategies/ldap.rb b/lib/omniauth/strategies/ldap.rb new file mode 100644 index 000000000..d53e0d0e5 --- /dev/null +++ b/lib/omniauth/strategies/ldap.rb @@ -0,0 +1,121 @@ +# frozen_string_literal: true +# +# Modify to work under in omniauth 2 +# Original repository: https://gitlab.com/gitlab-org/omniauth-ldap +require 'omniauth' +require_dependency Rails.root.join('lib/omniauth/strategies/ldap/adaptor.rb') + +module OmniAuth + module Strategies + class LDAP + include OmniAuth::Strategy + + InvalidCredentialsError = Class.new(StandardError) + + @@config = { + 'name' => 'cn', + 'first_name' => 'givenName', + 'last_name' => 'sn', + 'email' => ['mail', "email", 'userPrincipalName'], + 'phone' => ['telephoneNumber', 'homePhone', 'facsimileTelephoneNumber'], + 'mobile' => ['mobile', 'mobileTelephoneNumber'], + 'nickname' => ['uid', 'userid', 'sAMAccountName'], + 'title' => 'title', + 'location' => {"%0, %1, %2, %3 %4" => [['address', 'postalAddress', 'homePostalAddress', 'street', 'streetAddress'], ['l'], ['st'],['co'],['postOfficeBox']]}, + 'uid' => 'dn', + 'url' => ['wwwhomepage'], + 'image' => 'jpegPhoto', + 'description' => 'description' + } + option :title, "LDAP Authentication" #default title for authentication form + option :port, 389 + option :method, :plain + option :disable_verify_certificates, false + option :ca_file, nil + option :ssl_version, nil # use OpenSSL default if nil + option :uid, 'sAMAccountName' + option :name_proc, lambda {|n| n} + + def request_phase + OmniAuth::LDAP::Adaptor.validate @options + f = OmniAuth::Form.new(:title => (options[:title] || "LDAP Authentication"), :url => callback_path) + f.text_field 'Login', 'username' + f.password_field 'Password', 'password' + f.button "Sign In" + f.to_response + end + + def callback_phase + @adaptor = OmniAuth::LDAP::Adaptor.new @options + + return fail!(:invalid_request_method) unless valid_request_method? + return fail!(:missing_credentials) if missing_credentials? + begin + @ldap_user_info = @adaptor.bind_as(:filter => filter(@adaptor), :size => 1, :password => request['password']) + + unless @ldap_user_info + return fail!(:invalid_credentials, InvalidCredentialsError.new("Invalid credentials for #{request['username']}")) + end + + @user_info = self.class.map_user(@@config, @ldap_user_info) + super + rescue Exception => e + return fail!(:ldap_error, e) + end + end + + def filter(adaptor) + if adaptor.filter and !adaptor.filter.empty? + username = Net::LDAP::Filter.escape(@options[:name_proc].call(request['username'])) + Net::LDAP::Filter.construct(adaptor.filter % { username: username }) + else + Net::LDAP::Filter.equals(adaptor.uid, @options[:name_proc].call(request['username'])) + end + end + + uid { + @user_info["uid"] + } + info { + @user_info + } + extra { + { :raw_info => @ldap_user_info } + } + + def self.map_user(mapper, object) + user = {} + mapper.each do |key, value| + case value + when String + user[key] = object[value.downcase.to_sym].first if object.respond_to? value.downcase.to_sym + when Array + value.each {|v| (user[key] = object[v.downcase.to_sym].first; break;) if object.respond_to? v.downcase.to_sym} + when Hash + value.map do |key1, value1| + pattern = key1.dup + value1.each_with_index do |v,i| + part = ''; v.collect(&:downcase).collect(&:to_sym).each {|v1| (part = object[v1].first; break;) if object.respond_to? v1} + pattern.gsub!("%#{i}",part||'') + end + user[key] = pattern + end + end + end + user + end + + protected + + def valid_request_method? + request.env['REQUEST_METHOD'] == 'POST' + end + + def missing_credentials? + request['username'].nil? or request['username'].empty? or request['password'].nil? or request['password'].empty? + end # missing_credentials? + end + end +end + +OmniAuth.config.add_camelization 'ldap', 'LDAP' diff --git a/lib/omniauth/strategies/ldap/adaptor.rb b/lib/omniauth/strategies/ldap/adaptor.rb new file mode 100644 index 000000000..251bef1b9 --- /dev/null +++ b/lib/omniauth/strategies/ldap/adaptor.rb @@ -0,0 +1,238 @@ +# frozen_string_literal: true +# +# Modify to work under in omniauth 2 +# Original repository: https://gitlab.com/gitlab-org/omniauth-ldap +require 'rack' +require 'net/ldap' +require 'net/ntlm' +require 'sasl' +require 'kconv' + +module OmniAuth + module LDAP + class Adaptor + class LdapError < StandardError; end + class ConfigurationError < StandardError; end + class AuthenticationError < StandardError; end + class ConnectionError < StandardError; end + + VALID_ADAPTER_CONFIGURATION_KEYS = [ + :hosts, :host, :port, :encryption, :disable_verify_certificates, :bind_dn, :password, :try_sasl, + :sasl_mechanisms, :uid, :base, :allow_anonymous, :filter, :tls_options, + + # Deprecated + :method, + :ca_file, + :ssl_version + ] + + # A list of needed keys. Possible alternatives are specified using sub-lists. + MUST_HAVE_KEYS = [ + :base, + [:encryption, :method], # :method is deprecated + [:hosts, :host], + [:hosts, :port], + [:uid, :filter] + ] + + ENCRYPTION_METHOD = { + :simple_tls => :simple_tls, + :start_tls => :start_tls, + :plain => nil, + + # Deprecated. This mapping aimed to be user-friendly, but only caused + # confusion. Better to pass-through the actual `Net::LDAP` encryption type. + :ssl => :simple_tls, + :tls => :start_tls, + } + + attr_accessor :bind_dn, :password + attr_reader :connection, :uid, :base, :auth, :filter + + def self.validate(configuration={}) + message = [] + MUST_HAVE_KEYS.each do |names| + names = [names].flatten + missing_keys = names.select{|name| configuration[name].nil?} + if missing_keys == names + message << names.join(' or ') + end + end + raise ArgumentError.new(message.join(",") +" MUST be provided") unless message.empty? + end + + def initialize(configuration={}) + Adaptor.validate(configuration) + @configuration = configuration.dup + @configuration[:allow_anonymous] ||= false + @logger = @configuration.delete(:logger) + VALID_ADAPTER_CONFIGURATION_KEYS.each do |name| + instance_variable_set("@#{name}", @configuration[name]) + end + config = { + base: @base, + hosts: @hosts, + host: @host, + port: @port, + encryption: encryption_options + } + @bind_method = @try_sasl ? :sasl : (@allow_anonymous||!@bind_dn||!@password ? :anonymous : :simple) + + + @auth = sasl_auths({:username => @bind_dn, :password => @password}).first if @bind_method == :sasl + @auth ||= { :method => @bind_method, + :username => @bind_dn, + :password => @password + } + config[:auth] = @auth + @connection = Net::LDAP.new(config) + end + + #:base => "dc=yourcompany, dc=com", + # :filter => "(mail=#{user})", + # :password => psw + def bind_as(args = {}) + result = false + @connection.open do |me| + rs = me.search args + if rs and rs.first and dn = rs.first.dn + password = args[:password] + method = args[:method] || @method + password = password.call if password.respond_to?(:call) + if method == 'sasl' + result = rs.first if me.bind(sasl_auths({:username => dn, :password => password}).first) + else + result = rs.first if me.bind(:method => :simple, :username => dn, + :password => password) + end + end + end + result + end + + private + + def encryption_options + translated_method = translate_method + return nil unless translated_method + + { + method: translated_method, + tls_options: tls_options(translated_method) + } + end + + def translate_method + method = @encryption || @method + method ||= "plain" + normalized_method = method.to_s.downcase.to_sym + + unless ENCRYPTION_METHOD.has_key?(normalized_method) + available_methods = ENCRYPTION_METHOD.keys.collect {|m| m.inspect}.join(", ") + format = "%s is not one of the available connect methods: %s" + raise ConfigurationError, format % [method.inspect, available_methods] + end + + ENCRYPTION_METHOD[normalized_method] + end + + def tls_options(translated_method) + return {} if translated_method == nil # (plain) + + options = default_options + + if @tls_options + # Prevent blank config values from overwriting SSL defaults + configured_options = sanitize_hash_values(@tls_options) + configured_options = symbolize_hash_keys(configured_options) + + options.merge!(configured_options) + end + + # Retain backward compatibility until deprecated configs are removed. + options[:ca_file] = @ca_file if @ca_file + options[:ssl_version] = @ssl_version if @ssl_version + + options + end + + def sasl_auths(options={}) + auths = [] + sasl_mechanisms = options[:sasl_mechanisms] || @sasl_mechanisms + sasl_mechanisms.each do |mechanism| + normalized_mechanism = mechanism.downcase.gsub(/-/, '_') + sasl_bind_setup = "sasl_bind_setup_#{normalized_mechanism}" + next unless respond_to?(sasl_bind_setup, true) + initial_credential, challenge_response = send(sasl_bind_setup, options) + auths << { + :method => :sasl, + :initial_credential => initial_credential, + :mechanism => mechanism, + :challenge_response => challenge_response + } + end + auths + end + + def sasl_bind_setup_digest_md5(options) + bind_dn = options[:username] + initial_credential = "" + challenge_response = Proc.new do |cred| + pref = SASL::Preferences.new :digest_uri => "ldap/#{@host}", :username => bind_dn, :has_password? => true, :password => options[:password] + sasl = SASL.new("DIGEST-MD5", pref) + response = sasl.receive("challenge", cred) + response[1] + end + [initial_credential, challenge_response] + end + + def sasl_bind_setup_gss_spnego(options) + bind_dn = options[:username] + psw = options[:password] + raise LdapError.new( "invalid binding information" ) unless (bind_dn && psw) + + nego = proc {|challenge| + t2_msg = Net::NTLM::Message.parse( challenge ) + bind_dn, domain = bind_dn.split('\\').reverse + t2_msg.target_name = Net::NTLM::encode_utf16le(domain) if domain + t3_msg = t2_msg.response( {:user => bind_dn, :password => psw}, {:ntlmv2 => true} ) + t3_msg.serialize + } + [Net::NTLM::Message::Type1.new.serialize, nego] + end + + private + + def default_options + if @disable_verify_certificates + # It is important to explicitly set verify_mode for two reasons: + # 1. The behavior of OpenSSL is undefined when verify_mode is not set. + # 2. The net-ldap gem implementation verifies the certificate hostname + # unless verify_mode is set to VERIFY_NONE. + { verify_mode: OpenSSL::SSL::VERIFY_NONE } + else + OpenSSL::SSL::SSLContext::DEFAULT_PARAMS.dup + end + end + + # Removes keys that have blank values + # + # This gem may not always be in the context of Rails so we + # do this rather than `.blank?`. + def sanitize_hash_values(hash) + hash.delete_if do |_, value| + value.nil? || + (value.is_a?(String) && value !~ /\S/) + end + end + + def symbolize_hash_keys(hash) + hash.keys.each do |key| + hash[key.to_sym] = hash[key] + end + + hash + end + end + end +end From 239700c5af16fe61e4fffc00455ebe7f5188f64d Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 31 Mar 2022 18:03:20 +0800 Subject: [PATCH 0892/2165] =?UTF-8?q?feat:=20=E5=8D=87=E7=BA=A7=20Rails=20?= =?UTF-8?q?7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 17 +- Gemfile.lock | 162 ++++++++++-------- app/helpers/devise_helper.rb | 2 +- bin/rails | 3 +- bin/rake | 1 - bin/setup | 21 +-- bin/spring | 14 -- config/application.rb | 6 +- config/environments/development.rb | 26 ++- config/environments/production.rb | 10 +- config/environments/test.rb | 25 ++- .../initializers/filter_parameter_logging.rb | 2 +- .../new_framework_defaults_7_0.rb | 117 +++++++++++++ config/initializers/permissions_policy.rb | 11 ++ config/initializers/sidekiq_scheduled.rb | 2 +- config/spring.rb | 8 - db/schema.rb | 2 +- package.json | 6 +- yarn.lock | 28 +-- 19 files changed, 307 insertions(+), 156 deletions(-) delete mode 100755 bin/spring create mode 100644 config/initializers/new_framework_defaults_7_0.rb create mode 100644 config/initializers/permissions_policy.rb delete mode 100644 config/spring.rb diff --git a/Gemfile b/Gemfile index efdad3969..ffeffdd21 100644 --- a/Gemfile +++ b/Gemfile @@ -5,9 +5,10 @@ source 'https://rubygems.org' git_source(:github) { |repo_name| "https://github.com/#{repo_name}" } gem 'puma', '~> 5.6.4' -gem 'rails', '~> 6.1.5' -gem 'rails-i18n', '~> 6.0.0' +gem 'rails', '~> 7.0.2.3' +gem 'rails-i18n', '~> 7.0.3' gem 'rake', '~> 13.0.4' +gem 'sprockets-rails', '~> 3.4.2' # TODO: pghero, active_analytics, graphiql-rails 依赖,后续不需要可移除 # DB & Cache gem 'pg', '>= 0.18', '< 2.0' @@ -25,7 +26,7 @@ gem 'health_check', '~> 3.1.0' # View ## 模板引擎 gem 'jb', '~> 0.8.0' -gem 'slim-rails', '~> 3.3.0' +gem 'slim-rails', '~> 3.4.0' ## 表单生成 gem 'simple_form', '~> 5.1' @@ -34,7 +35,7 @@ gem 'simple_form', '~> 5.1' ## 生成友好 id gem 'friendly_id', '~> 5.4.2' ## 数据分页 -gem 'kaminari' +gem 'kaminari', '~> 1.2.2' ## 文件上传 gem 'carrierwave', '~> 2.2.2' gem 'webp-ffi', '~> 0.3.1' @@ -68,8 +69,8 @@ gem 'plist', '~> 3.6.0' ## 系统信息 gem 'sys-filesystem', '~> 1.4.3' gem 'vmstat', '~> 2.3.0' -gem 'pghero' -gem 'active_analytics' +gem 'pghero', '~> 2.8.2' +gem 'active_analytics', '~> 0.2.1' ## 异常报错上报 gem 'sentry-ruby' @@ -121,10 +122,6 @@ group :development do # VSCode rdbg Ruby Debugger gem 'debug' - # 加速开发环境 - gem 'spring' - gem 'spring-watcher-listen', '~> 2.0.0' - # rails 更友好错误输出 gem 'awesome_print' gem 'better_errors' diff --git a/Gemfile.lock b/Gemfile.lock index a65618ceb..4c83d8070 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -3,40 +3,47 @@ GEM specs: CFPropertyList (3.0.5) rexml - actioncable (6.1.5) - actionpack (= 6.1.5) - activesupport (= 6.1.5) + actioncable (7.0.2.3) + actionpack (= 7.0.2.3) + activesupport (= 7.0.2.3) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (6.1.5) - actionpack (= 6.1.5) - activejob (= 6.1.5) - activerecord (= 6.1.5) - activestorage (= 6.1.5) - activesupport (= 6.1.5) + actionmailbox (7.0.2.3) + actionpack (= 7.0.2.3) + activejob (= 7.0.2.3) + activerecord (= 7.0.2.3) + activestorage (= 7.0.2.3) + activesupport (= 7.0.2.3) mail (>= 2.7.1) - actionmailer (6.1.5) - actionpack (= 6.1.5) - actionview (= 6.1.5) - activejob (= 6.1.5) - activesupport (= 6.1.5) + net-imap + net-pop + net-smtp + actionmailer (7.0.2.3) + actionpack (= 7.0.2.3) + actionview (= 7.0.2.3) + activejob (= 7.0.2.3) + activesupport (= 7.0.2.3) mail (~> 2.5, >= 2.5.4) + net-imap + net-pop + net-smtp rails-dom-testing (~> 2.0) - actionpack (6.1.5) - actionview (= 6.1.5) - activesupport (= 6.1.5) - rack (~> 2.0, >= 2.0.9) + actionpack (7.0.2.3) + actionview (= 7.0.2.3) + activesupport (= 7.0.2.3) + rack (~> 2.0, >= 2.2.0) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (6.1.5) - actionpack (= 6.1.5) - activerecord (= 6.1.5) - activestorage (= 6.1.5) - activesupport (= 6.1.5) + actiontext (7.0.2.3) + actionpack (= 7.0.2.3) + activerecord (= 7.0.2.3) + activestorage (= 7.0.2.3) + activesupport (= 7.0.2.3) + globalid (>= 0.6.0) nokogiri (>= 1.8.5) - actionview (6.1.5) - activesupport (= 6.1.5) + actionview (7.0.2.3) + activesupport (= 7.0.2.3) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) @@ -48,30 +55,29 @@ GEM activemodel (>= 4.1, < 7.1) case_transform (>= 0.2) jsonapi-renderer (>= 0.1.1.beta1, < 0.3) - activejob (6.1.5) - activesupport (= 6.1.5) + activejob (7.0.2.3) + activesupport (= 7.0.2.3) globalid (>= 0.3.6) activejob-status (0.2.2) activejob (>= 4.2) activesupport (>= 4.2) - activemodel (6.1.5) - activesupport (= 6.1.5) - activerecord (6.1.5) - activemodel (= 6.1.5) - activesupport (= 6.1.5) - activestorage (6.1.5) - actionpack (= 6.1.5) - activejob (= 6.1.5) - activerecord (= 6.1.5) - activesupport (= 6.1.5) + activemodel (7.0.2.3) + activesupport (= 7.0.2.3) + activerecord (7.0.2.3) + activemodel (= 7.0.2.3) + activesupport (= 7.0.2.3) + activestorage (7.0.2.3) + actionpack (= 7.0.2.3) + activejob (= 7.0.2.3) + activerecord (= 7.0.2.3) + activesupport (= 7.0.2.3) marcel (~> 1.0) mini_mime (>= 1.1.0) - activesupport (6.1.5) + activesupport (7.0.2.3) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) tzinfo (~> 2.0) - zeitwerk (~> 2.3) addressable (2.8.0) public_suffix (>= 2.0.2, < 5.0) android_parser (2.5.0) @@ -128,6 +134,7 @@ GEM warden (~> 1.2.3) devise-i18n (1.10.2) devise (>= 4.8.0) + digest (3.1.0) domain_name (0.5.20190701) unf (>= 0.0.5, < 1.0.0) dotenv (2.7.6) @@ -214,6 +221,7 @@ GEM thor (>= 0.16.0) interception (0.5) io-console (0.5.11) + io-wait (0.2.1) ipaddr (1.2.4) irb (1.4.1) reline (>= 0.3.0) @@ -271,7 +279,22 @@ GEM multi_json (1.15.0) multi_xml (0.6.0) nenv (0.3.0) + net-imap (0.2.3) + digest + net-protocol + strscan net-ldap (0.17.0) + net-pop (0.1.1) + digest + net-protocol + timeout + net-protocol (0.1.2) + io-wait + timeout + net-smtp (0.3.1) + digest + net-protocol + timeout nio4r (2.5.8) nokogiri (1.13.4) mini_portile2 (~> 2.8.0) @@ -341,37 +364,37 @@ GEM rack rack-test (1.1.0) rack (>= 1.0, < 3) - rails (6.1.5) - actioncable (= 6.1.5) - actionmailbox (= 6.1.5) - actionmailer (= 6.1.5) - actionpack (= 6.1.5) - actiontext (= 6.1.5) - actionview (= 6.1.5) - activejob (= 6.1.5) - activemodel (= 6.1.5) - activerecord (= 6.1.5) - activestorage (= 6.1.5) - activesupport (= 6.1.5) + rails (7.0.2.3) + actioncable (= 7.0.2.3) + actionmailbox (= 7.0.2.3) + actionmailer (= 7.0.2.3) + actionpack (= 7.0.2.3) + actiontext (= 7.0.2.3) + actionview (= 7.0.2.3) + activejob (= 7.0.2.3) + activemodel (= 7.0.2.3) + activerecord (= 7.0.2.3) + activestorage (= 7.0.2.3) + activesupport (= 7.0.2.3) bundler (>= 1.15.0) - railties (= 6.1.5) - sprockets-rails (>= 2.0.0) + railties (= 7.0.2.3) rails-dom-testing (2.0.3) activesupport (>= 4.2.0) nokogiri (>= 1.6) rails-html-sanitizer (1.4.2) loofah (~> 2.3) - rails-i18n (6.0.0) + rails-i18n (7.0.3) i18n (>= 0.7, < 2) - railties (>= 6.0.0, < 7) + railties (>= 6.0.0, < 8) rails-settings-cached (2.8.2) rails (>= 5.0.0) - railties (6.1.5) - actionpack (= 6.1.5) - activesupport (= 6.1.5) + railties (7.0.2.3) + actionpack (= 7.0.2.3) + activesupport (= 7.0.2.3) method_source rake (>= 12.2) thor (~> 1.0) + zeitwerk (~> 2.5) rainbow (3.1.1) rake (13.0.6) rb-fsevent (0.11.1) @@ -447,15 +470,11 @@ GEM slim (4.1.0) temple (>= 0.7.6, < 0.9) tilt (>= 2.0.6, < 2.1) - slim-rails (3.3.0) + slim-rails (3.4.0) actionpack (>= 3.1) railties (>= 3.1) slim (>= 3.0, < 5.0) socksify (1.7.1) - spring (2.1.1) - spring-watcher-listen (2.0.1) - listen (>= 2.7, < 4.0) - spring (>= 1.2, < 3.0) sprockets (4.0.3) concurrent-ruby (~> 1.0) rack (> 1, < 3) @@ -464,6 +483,7 @@ GEM activesupport (>= 5.2) sprockets (>= 3.0.0) ssrf_filter (1.0.7) + strscan (3.0.1) sys-filesystem (1.4.3) ffi (~> 1.1) temple (0.8.2) @@ -475,6 +495,7 @@ GEM thwait (0.2.0) e2mmap tilt (2.0.10) + timeout (0.2.0) turbolinks (5.2.1) turbolinks-source (~> 5.2) turbolinks-source (5.2.0) @@ -510,7 +531,7 @@ PLATFORMS ruby DEPENDENCIES - active_analytics + active_analytics (~> 0.2.1) active_model_serializers (~> 0.10.13) activejob-status app-info (~> 2.8.2) @@ -537,7 +558,7 @@ DEPENDENCIES http (~> 5.0.4) improved_jenkins_client (~> 1.6.7) jb (~> 0.8.0) - kaminari + kaminari (~> 1.2.2) letter_opener (~> 1.8) letter_opener_web (~> 2.0) listen (>= 3.0.5, < 3.8) @@ -549,7 +570,7 @@ DEPENDENCIES omniauth-rails_csrf_protection (~> 1.0.1) openssl (~> 2.2.1) pg (>= 0.18, < 2.0) - pghero + pghero (~> 2.8.2) plist (~> 3.6.0) pry-byebug pry-rails @@ -558,8 +579,8 @@ DEPENDENCIES pundit (~> 2.2.0) pyu-ruby-sasl (>= 0.0.3.3, < 0.1) rack-cors (~> 1.1.1) - rails (~> 6.1.5) - rails-i18n (~> 6.0.0) + rails (~> 7.0.2.3) + rails-i18n (~> 7.0.3) rails-settings-cached (~> 2.8.2) rake (~> 13.0.4) redis (~> 4.6.0) @@ -574,9 +595,8 @@ DEPENDENCIES sidekiq-failures (~> 1.0.1) sidekiq-scheduler (~> 3.1.1) simple_form (~> 5.1) - slim-rails (~> 3.3.0) - spring - spring-watcher-listen (~> 2.0.0) + slim-rails (~> 3.4.0) + sprockets-rails (~> 3.4.2) sys-filesystem (~> 1.4.3) terminal-notifier terminal-notifier-guard diff --git a/app/helpers/devise_helper.rb b/app/helpers/devise_helper.rb index 482c01e0f..197654aaa 100644 --- a/app/helpers/devise_helper.rb +++ b/app/helpers/devise_helper.rb @@ -8,7 +8,7 @@ def devise_provider_login_path(name) provider = t("devise.shared.links.provider.#{key}", default: fallback_title) title = t('devise.shared.links.sign_in_with_provider', provider: provider) url = [:user, name.to_sym, :omniauth, :authorize] - button_to(url, class: "btn btn-block btn-default text-left") do + button_to(url, class: 'btn btn-block btn-default text-left', method: :post) do raw(%Q(#{title} )) end end diff --git a/bin/rails b/bin/rails index 21d3e02d8..efc037749 100755 --- a/bin/rails +++ b/bin/rails @@ -1,5 +1,4 @@ #!/usr/bin/env ruby -load File.expand_path("spring", __dir__) -APP_PATH = File.expand_path('../config/application', __dir__) +APP_PATH = File.expand_path("../config/application", __dir__) require_relative "../config/boot" require "rails/commands" diff --git a/bin/rake b/bin/rake index 7327f471e..4fbf10b96 100755 --- a/bin/rake +++ b/bin/rake @@ -1,5 +1,4 @@ #!/usr/bin/env ruby -load File.expand_path("spring", __dir__) require_relative "../config/boot" require "rake" Rake.application.run diff --git a/bin/setup b/bin/setup index 90700ac4f..ec47b79b3 100755 --- a/bin/setup +++ b/bin/setup @@ -2,7 +2,7 @@ require "fileutils" # path to your application root. -APP_ROOT = File.expand_path('..', __dir__) +APP_ROOT = File.expand_path("..", __dir__) def system!(*args) system(*args) || abort("\n== Command #{args} failed ==") @@ -13,24 +13,21 @@ FileUtils.chdir APP_ROOT do # This script is idempotent, so that you can run it at any time and get an expectable outcome. # Add necessary setup steps to this file. - puts '== Installing dependencies ==' - system! 'gem install bundler --conservative' - system('bundle check') || system!('bundle install') - - # Install JavaScript dependencies - system! 'bin/yarn' + puts "== Installing dependencies ==" + system! "gem install bundler --conservative" + system("bundle check") || system!("bundle install") # puts "\n== Copying sample files ==" - # unless File.exist?('config/database.yml') - # FileUtils.cp 'config/database.yml.sample', 'config/database.yml' + # unless File.exist?("config/database.yml") + # FileUtils.cp "config/database.yml.sample", "config/database.yml" # end puts "\n== Preparing database ==" - system! 'bin/rails db:prepare' + system! "bin/rails db:prepare" puts "\n== Removing old logs and tempfiles ==" - system! 'bin/rails log:clear tmp:clear' + system! "bin/rails log:clear tmp:clear" puts "\n== Restarting application server ==" - system! 'bin/rails restart' + system! "bin/rails restart" end diff --git a/bin/spring b/bin/spring deleted file mode 100755 index b4147e843..000000000 --- a/bin/spring +++ /dev/null @@ -1,14 +0,0 @@ -#!/usr/bin/env ruby -if !defined?(Spring) && [nil, "development", "test"].include?(ENV["RAILS_ENV"]) - gem "bundler" - require "bundler" - - # Load Spring without loading other gems in the Gemfile, for speed. - Bundler.locked_gems&.specs&.find { |spec| spec.name == "spring" }&.tap do |spring| - Gem.use_paths Gem.dir, Bundler.bundle_path.to_s, *Gem.path - gem "spring", spring.version - require "spring/binstub" - rescue Gem::LoadError - # Ignore when Spring is not installed. - end -end diff --git a/config/application.rb b/config/application.rb index 6399da720..93529d0dc 100644 --- a/config/application.rb +++ b/config/application.rb @@ -24,7 +24,11 @@ module Zealot class Application < Rails::Application # Initialize configuration defaults for originally generated Rails version. - config.load_defaults 6.0 + config.load_defaults 7.0 + + # FIXME: set false will broken rails-settings-cached configuration in config folder + # master branch of rails removed this config, need to fix it: https://github.com/rails/rails/commit/ad52c0a19714a1b87a7d0c626a8b364cf95414cf + config.active_record.legacy_connection_handling = true # Set default timezone config.time_zone = ENV['TIME_ZONE'] || 'Beijing' diff --git a/config/environments/development.rb b/config/environments/development.rb index dc703bc99..258d3fc0a 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -1,10 +1,12 @@ # frozen_string_literal: true +require 'active_support/core_ext/integer/time' + Rails.application.configure do # Settings specified here will take precedence over those in config/application.rb. - # In the development environment your application's code is reloaded on - # every request. This slows down response time but is perfect for development + # In the development environment your application's code is reloaded any time + # it changes. This slows down response time but is perfect for development # since you don't have to restart the web server when you make code changes. config.cache_classes = false @@ -14,6 +16,9 @@ # Show full error reports. config.consider_all_requests_local = true + # Enable server timing + config.server_timing = true + # Use the lowest log level to ensure availability of diagnostic information # when problems arise. config.log_level = :debug @@ -34,9 +39,6 @@ config.cache_store = :null_store end - # Store uploaded files on the local file system (see config/storage.yml for options). - # config.active_storage.service = :local - # Don't care if the mailer can't send. config.action_mailer.raise_delivery_errors = false @@ -50,6 +52,12 @@ # Print deprecation notices to the Rails logger. config.active_support.deprecation = :log + # Raise exceptions for disallowed deprecations. + config.active_support.disallowed_deprecation = :raise + + # Tell Active Support which deprecation messages to disallow. + config.active_support.disallowed_deprecation_warnings = [] + # Raise an error on page load if there are pending migrations. config.active_record.migration_error = :page_load @@ -70,7 +78,13 @@ config.assets.raise_runtime_errors = true # Raises error for missing translations. - # config.action_view.raise_on_missing_translations = true + # config.i18n.raise_on_missing_translations = true + + # Annotate rendered view with file names. + # config.action_view.annotate_rendered_view_with_filenames = true + + # Uncomment if you wish to allow Action Cable access from any origin. + # config.action_cable.disable_request_forgery_protection = true # Use an evented file watcher to asynchronously detect changes in source code, # routes, locales, etc. This feature depends on the listen gem. diff --git a/config/environments/production.rb b/config/environments/production.rb index 9ed28d698..f17050423 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -1,5 +1,7 @@ # frozen_string_literal: true +require 'active_support/core_ext/integer/time' + Rails.application.configure do # Settings specified here will take precedence over those in config/application.rb. @@ -17,18 +19,22 @@ config.action_controller.perform_caching = true # Ensures that a master key has been made available in either ENV["RAILS_MASTER_KEY"] - # either ENV["RAILS_MASTER_KEY"] # or in config/master.key. This key is used to decrypt credentials (and other encrypted files). - # (and other encrypted files). # config.require_master_key = true # Disable serving static files from the `/public` folder by default since # Apache or NGINX already handles this. config.public_file_server.enabled = ENV['RAILS_SERVE_STATIC_FILES'].present? + # Compress CSS using a preprocessor. + # config.assets.css_compressor = :sass + # Do not fallback to assets pipeline if a precompiled asset is missed. config.assets.compile = false + # Enable serving of images, stylesheets, and JavaScripts from an asset server. + # config.asset_host = "http://assets.example.com" + # Specifies the header that your server uses for sending files. if ENV['RAILS_SERVE_STATIC_FILES'].blank? config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect' # for NGINX diff --git a/config/environments/test.rb b/config/environments/test.rb index 50ecdf227..4cfc8a780 100644 --- a/config/environments/test.rb +++ b/config/environments/test.rb @@ -1,5 +1,7 @@ # frozen_string_literal: true +require 'active_support/core_ext/integer/time' + # The test environment is used exclusively to run your application's # test suite. You never need to work with it otherwise. Remember that # your test database is "scratch space" for the test suite and is wiped @@ -8,12 +10,13 @@ Rails.application.configure do # Settings specified here will take precedence over those in config/application.rb. + # Turn false under Spring and add config.action_view.cache_template_loading = true. config.cache_classes = false - # Do not eager load code on boot. This avoids loading your whole application - # just for the purpose of running a single test. If you are using a tool that - # preloads Rails for running tests, you may have to set it to true. - config.eager_load = false + # Eager loading loads your whole application. When running a single test locally, + # this probably isn't necessary. It's a good idea to do in a continuous integration + # system, or in some way before deploying your code. + config.eager_load = ENV['CI'].present? # Configure public file server for tests with Cache-Control for performance. config.public_file_server.enabled = true @@ -32,9 +35,6 @@ # Disable request forgery protection in test environment. config.action_controller.allow_forgery_protection = false - # Store uploaded files on the local file system in a temporary directory. - # config.active_storage.service = :test - config.action_mailer.perform_caching = false # Tell Action Mailer not to deliver emails to the real world. @@ -45,6 +45,15 @@ # Print deprecation notices to the stderr. config.active_support.deprecation = :stderr + # Raise exceptions for disallowed deprecations. + config.active_support.disallowed_deprecation = :raise + + # Tell Active Support which deprecation messages to disallow. + config.active_support.disallowed_deprecation_warnings = [] + # Raises error for missing translations. - # config.action_view.raise_on_missing_translations = true + # config.i18n.raise_on_missing_translations = true + + # Annotate rendered view with file names. + # config.action_view.annotate_rendered_view_with_filenames = true end diff --git a/config/initializers/filter_parameter_logging.rb b/config/initializers/filter_parameter_logging.rb index b68b0d60d..18f1a8c9d 100644 --- a/config/initializers/filter_parameter_logging.rb +++ b/config/initializers/filter_parameter_logging.rb @@ -2,5 +2,5 @@ # Configure sensitive parameters which will be filtered from the log file. Rails.application.config.filter_parameters += %i[ - passw password password_confirmation secret token _key crypt salt certificate otp ssn + passw secret token _key crypt salt certificate otp ssn password password_confirmation ] diff --git a/config/initializers/new_framework_defaults_7_0.rb b/config/initializers/new_framework_defaults_7_0.rb new file mode 100644 index 000000000..c2b8e4425 --- /dev/null +++ b/config/initializers/new_framework_defaults_7_0.rb @@ -0,0 +1,117 @@ +# Be sure to restart your server when you modify this file. +# +# This file eases your Rails 7.0 framework defaults upgrade. +# +# Uncomment each configuration one by one to switch to the new default. +# Once your application is ready to run with all new defaults, you can remove +# this file and set the `config.load_defaults` to `7.0`. +# +# Read the Guide for Upgrading Ruby on Rails for more info on each option. +# https://guides.rubyonrails.org/upgrading_ruby_on_rails.html + +# `button_to` view helper will render `" + + "" + + "" + + "" + + "" + + " " + + return root + } + +} \ No newline at end of file diff --git a/app/javascript/controllers/display_controller.js b/app/javascript/controllers/display_controller.js new file mode 100644 index 000000000..77e666569 --- /dev/null +++ b/app/javascript/controllers/display_controller.js @@ -0,0 +1,9 @@ +import { Controller } from "@hotwired/stimulus" + +export default class extends Controller { + static targets = ["element"] + + toggle() { + this.elementTarget.classList.toggle("d-none") + } +} \ No newline at end of file diff --git a/app/javascript/controllers/index.js b/app/javascript/controllers/index.js index 47b22ae28..cde8ad6b1 100644 --- a/app/javascript/controllers/index.js +++ b/app/javascript/controllers/index.js @@ -7,12 +7,18 @@ import { application } from "./application" import GlobalController from "./global_controller" application.register("global", GlobalController) -import ClipboardCenterController from "./clipboard_center_controller"; +import ClipboardCenterController from "./clipboard_center_controller" application.register("clipboard-center", ClipboardCenterController) -import ReleaseDownloadController from "./release_download_controller"; +import ReleaseDownloadController from "./release_download_controller" application.register("release-download", ReleaseDownloadController) +import DisplayController from "./display_controller" +application.register("display", DisplayController) + +import DestroyController from "./destroy_controller" +application.register("destroy", DestroyController) + import "./admin" // legacy controllers diff --git a/app/views/debug_files/_debug_file.html.slim b/app/views/debug_files/_debug_file.html.slim index ea88b35bb..5fdebd0fb 100644 --- a/app/views/debug_files/_debug_file.html.slim +++ b/app/views/debug_files/_debug_file.html.slim @@ -5,11 +5,18 @@ ruby: - if debug_files.count > 0 table.table.table-hover - debug_files.each do |debug_file| - tr - td - .debug-file-section id="debug-file-info-#{debug_file.id}" data-app-name="#{app.name}" + tr[ + data-controller="destroy" + data-destroy-url-value="#{debug_file_path(debug_file)}" + data-destroy-method-value="delete" + data-destroy-title-value="#{t('debug_files.confirm.destroy.title')}" + data-destroy-content-value="#{t('debug_files.confirm.destroy.body')}" + data-destroy-cancel-value="#{t('debug_files.confirm.destroy.cancel')}" + ] + td data-controller="display" + .debug-file-section .debug-file-section-header - .debug-file-toggle data-id="#{debug_file.id}" + .debug-file-toggle data-action="click->display#toggle" h3.debug-file-section-title - unless debug_file.build_version.blank? span.debug-file-version @@ -32,9 +39,14 @@ ruby: i.icon.fas.fa-ghost = t('debug_files.index.missing_file') - if user_signed_in? - button.btn.btn-icon.btn-sm.btn-danger.btn-flat.destroy-debug-file data-id="#{debug_file.id}" data-url="#{debug_file_path(debug_file)}" data-toggle="modal" + button.btn.btn-icon.btn-sm.btn-danger.btn-flat[ + data-action="click->destroy#click" + ] i.icon.fas.fa-trash-alt = t('debug_files.index.destroy') + + = button_to t('debug_files.confirm.destroy.ok'), debug_file_path(debug_file), method: :delete, \ + class: 'btn btn-danger d-none', form: { data: { 'destroy-target' => 'destroyButton' } } .div.text-center small style="color: #999" = t('debug_files.index.uploaded_at', time: time_ago_in_words(debug_file.created_at)) diff --git a/app/views/debug_files/_metadata.html.slim b/app/views/debug_files/_metadata.html.slim index 29d4f1386..99e612e13 100644 --- a/app/views/debug_files/_metadata.html.slim +++ b/app/views/debug_files/_metadata.html.slim @@ -1,4 +1,6 @@ -.debug-file-section-body.d-none.p-1 id="debug-file-metadata-#{debug_file.id}" +.debug-file-section-body.p-1.d-none[ + data-display-target="element" +] table.table - debug_file.metadata.each do |metadata| - if metadata.type == 'proguard' diff --git a/app/views/debug_files/index.html.slim b/app/views/debug_files/index.html.slim index 3fb0b6876..91afeb2a9 100644 --- a/app/views/debug_files/index.html.slim +++ b/app/views/debug_files/index.html.slim @@ -35,17 +35,17 @@ == render 'help' -#destory_modal.modal.fade role="dialog" tabindex="-1" - .modal-dialog role="document" - .modal-content - .modal-header - h4.modal-title = t('debug_files.confirm.destroy.title') - button.close aria-label="Close" data-dismiss="modal" type="button" - span aria-hidden="true" × - .modal-body - p = t('debug_files.confirm.destroy.body') - p.empty-content - .modal-footer - input type="hidden" id="dsym-destory-id" value="" - button.btn.btn-default data-dismiss="modal" type="button" = t('debug_files.confirm.destroy.cancel') - = button_to t('debug_files.confirm.destroy.ok'), debug_files_path, method: :delete, class: 'btn btn-danger' \ No newline at end of file +/ #destory_modal.modal.fade role="dialog" tabindex="-1" +/ .modal-dialog role="document" +/ .modal-content +/ .modal-header +/ h4.modal-title = t('debug_files.confirm.destroy.title') +/ button.close aria-label="Close" data-dismiss="modal" type="button" +/ span aria-hidden="true" × +/ .modal-body +/ p = t('debug_files.confirm.destroy.body') +/ p.empty-content +/ .modal-footer +/ input type="hidden" id="dsym-destory-id" value="" +/ button.btn.btn-default data-dismiss="modal" type="button" = t('debug_files.confirm.destroy.cancel') +/ = button_to t('debug_files.confirm.destroy.ok'), debug_files_path, method: :delete, class: 'btn btn-danger' \ No newline at end of file From 3666d8e4e14152633b285bfa2559270f830c67d9 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 29 Jul 2022 11:41:09 +0800 Subject: [PATCH 1029/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=20tubros=20=E5=90=8E=E5=88=A0=E9=99=A4=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=E4=B8=8D=E5=8F=AF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/admin/settings_controller.rb | 3 ++- app/controllers/admin/users_controller.rb | 4 +++- app/controllers/apps_controller.rb | 2 +- app/controllers/channels_controller.rb | 2 +- app/controllers/releases_controller.rb | 4 +++- app/controllers/schemes_controller.rb | 2 +- .../controllers/destroy_controller.js | 1 - app/views/admin/apple_keys/index.html.slim | 2 +- app/views/admin/settings/_form.html.slim | 3 ++- app/views/admin/users/index.html.slim | 3 ++- app/views/apps/show.html.slim | 9 ++++++--- app/views/debug_files/_debug_file.html.slim | 2 -- app/views/debug_files/index.html.slim | 17 +---------------- app/views/layouts/_navigation.html.slim | 2 +- 14 files changed, 24 insertions(+), 32 deletions(-) diff --git a/app/controllers/admin/settings_controller.rb b/app/controllers/admin/settings_controller.rb index 758b04bd2..b7070dc06 100644 --- a/app/controllers/admin/settings_controller.rb +++ b/app/controllers/admin/settings_controller.rb @@ -52,7 +52,8 @@ def destroy key = @setting.var @setting.destroy - redirect_to admin_settings_path, notice: t('activerecord.success.destroy', key: t("admin.settings.#{key}")) + notice = t('activerecord.success.destroy', key: t("admin.settings.#{key}")) + redirect_to admin_settings_path, status: :see_other, notice: notice end private diff --git a/app/controllers/admin/users_controller.rb b/app/controllers/admin/users_controller.rb index d804dba5f..94e0fcc68 100644 --- a/app/controllers/admin/users_controller.rb +++ b/app/controllers/admin/users_controller.rb @@ -52,7 +52,9 @@ def destroy authorize @user @user.destroy - redirect_to admin_users_path, notice: t('activerecord.success.destroy', key: t('admin.users.title')) + + notice = t('activerecord.success.destroy', key: t('admin.users.title')) + redirect_to admin_users_path, status: :see_other, notice: notice end private diff --git a/app/controllers/apps_controller.rb b/app/controllers/apps_controller.rb index bee635b31..32b053798 100644 --- a/app/controllers/apps_controller.rb +++ b/app/controllers/apps_controller.rb @@ -60,7 +60,7 @@ def destroy @app.destroy destory_app_data - redirect_to apps_path + redirect_to apps_path, status: :see_other end private diff --git a/app/controllers/channels_controller.rb b/app/controllers/channels_controller.rb index eddea923a..ba70ef345 100644 --- a/app/controllers/channels_controller.rb +++ b/app/controllers/channels_controller.rb @@ -47,7 +47,7 @@ def update def destroy @channel.destroy - redirect_to app_path(@app) + redirect_to app_path(@app), status: :see_other end protected diff --git a/app/controllers/releases_controller.rb b/app/controllers/releases_controller.rb index 8541c181c..2f2e3e419 100644 --- a/app/controllers/releases_controller.rb +++ b/app/controllers/releases_controller.rb @@ -46,7 +46,9 @@ def create def destroy authorize @release @release.destroy - redirect_to channel_versions_url(@channel), notice: t('activerecord.success.destroy', key: "#{t('releases.title')}") + + notice = t('activerecord.success.destroy', key: "#{t('releases.title')}") + redirect_to channel_versions_url(@channel), status: :see_other, notice: notice end def auth diff --git a/app/controllers/schemes_controller.rb b/app/controllers/schemes_controller.rb index 1eb13c9c3..fe4697f03 100644 --- a/app/controllers/schemes_controller.rb +++ b/app/controllers/schemes_controller.rb @@ -40,7 +40,7 @@ def destroy authorize @scheme @scheme.destroy - redirect_to app_path(@app) + redirect_to app_path(@app), status: :see_other end protected diff --git a/app/javascript/controllers/destroy_controller.js b/app/javascript/controllers/destroy_controller.js index 279141ebb..fc0b495bb 100644 --- a/app/javascript/controllers/destroy_controller.js +++ b/app/javascript/controllers/destroy_controller.js @@ -6,7 +6,6 @@ const DIALOG_ID = "modal-dialog" export default class extends Controller { static targets = ["destroyButton"] static values = { - url: String, title: String, content: String, cancel: String diff --git a/app/views/admin/apple_keys/index.html.slim b/app/views/admin/apple_keys/index.html.slim index 04e5c3383..e58657e2b 100644 --- a/app/views/admin/apple_keys/index.html.slim +++ b/app/views/admin/apple_keys/index.html.slim @@ -34,7 +34,7 @@ td = time_ago_in_words(apple_key.created_at) td - = link_to t('.destroy'), admin_apple_key_path(apple_key), method: :delete, data: { confirm: t('.destroy_confirm', team: apple_key.team.display_name, team_id: apple_key.team.team_id)} + = button_to t('.destroy'), admin_apple_key_path(apple_key), method: :delete, data: { turbo_confirm: t('.destroy_confirm', team: apple_key.team.display_name, team_id: apple_key.team.team_id)} - else .card.card-outline.card-warning .card-header.card-border diff --git a/app/views/admin/settings/_form.html.slim b/app/views/admin/settings/_form.html.slim index c8f4904c6..e4024c643 100644 --- a/app/views/admin/settings/_form.html.slim +++ b/app/views/admin/settings/_form.html.slim @@ -33,7 +33,8 @@ .card-footer - if @setting.persisted? .float-right - = link_to t('admin.settings.reset'), admin_setting_path(@setting.var), method: :delete, data: { confirm: t('channels.messages.confirm.destroy')}, class: 'btn btn-danger' + = link_to t('admin.settings.reset'), admin_setting_path(@setting.var), class: 'btn btn-danger', \ + data: { turbo_method: :delete, turbo_confirm: t('channels.messages.confirm.destroy') } .float-left = f.button :submit diff --git a/app/views/admin/users/index.html.slim b/app/views/admin/users/index.html.slim index b05bdf077..677b6f9ee 100644 --- a/app/views/admin/users/index.html.slim +++ b/app/views/admin/users/index.html.slim @@ -45,4 +45,5 @@ - else = t('.never_logined') td - = link_to t('.destroy_user'), admin_user_path(user), method: :delete, data: { confirm: t('.destroy_user_confirm', user: user.username)} + = link_to t('.destroy_user'), admin_user_path(user), \ + data: { turbo_method: :delete, turbo_confirm: t('.destroy_user_confirm', user: user.username) } diff --git a/app/views/apps/show.html.slim b/app/views/apps/show.html.slim index e269c1a44..c87278921 100644 --- a/app/views/apps/show.html.slim +++ b/app/views/apps/show.html.slim @@ -15,7 +15,8 @@ ruby: .btn-group = button_link_to t('apps.show.new_scheme'), new_app_scheme_path(@app), 'plus-square', class: 'btn-icon btn-default btn-sm btn-flat' = button_link_to t('apps.show.edit_app'), edit_app_path(@app), 'edit', class: 'btn-icon btn-default btn-sm btn-flat' - = button_link_to t('apps.show.destroy_app'), app_path(@app), 'trash-alt', class: 'btn-icon btn-default btn-sm btn-flat', data: { confirm: "#{t('apps.messages.confirm.delete_app', name: @app.name)}", method: "delete" } + = button_link_to t('apps.show.destroy_app'), app_path(@app), 'trash-alt', class: 'btn-icon btn-default btn-sm btn-flat', \ + data: { turbo_method: :delete, turbo_confirm: "#{t('apps.messages.confirm.delete_app', name: @app.name)}" } .row - if schemes_total > 0 @@ -30,7 +31,8 @@ ruby: .sections-actions.btn-group = button_link_to t('apps.show.new_channel'), new_app_scheme_channel_path(@app, scheme), 'plus-square', class: 'btn-icon btn-default btn-sm btn-flat' = button_link_to t('apps.show.edit_scheme'), edit_app_scheme_path(@app, scheme), 'edit', class: 'btn-icon btn-default btn-sm btn-flat' - = button_link_to t('apps.show.destory_scheme'), app_scheme_path(@app, scheme), 'trash-alt', class: 'btn-icon btn-default btn-sm btn-flat', data: { confirm: "#{t('apps.messages.confirm.delete_app_scheme', name: scheme.app_name)}", method: "delete" } + = button_link_to t('apps.show.destory_scheme'), app_scheme_path(@app, scheme), 'trash-alt', class: 'btn-icon btn-default btn-sm btn-flat', \ + data: { turbo_method: :delete, turbo_confirm: "#{t('apps.messages.confirm.delete_app_scheme', name: scheme.app_name)}" } .card-body.p-0 section.app-section id="scheme-#{scheme.id}" @@ -42,7 +44,8 @@ ruby: = link_to channel.name, friendly_channel_overview_path(channel) td style="width: 120px" = button_link_to '', edit_app_scheme_channel_path(@app, scheme, channel), 'edit', class: 'btn-box-tool' - = button_link_to '', app_scheme_channel_path(@app, scheme, channel), 'trash-alt', class: 'btn-box-tool', data: { confirm: "#{t('apps.messages.confirm.delete_app_channel', name: channel.app_name)}", method: "delete" } + = button_link_to '', app_scheme_channel_path(@app, scheme, channel), 'trash-alt', class: 'btn-box-tool', \ + data: { turbo_method: :delete, turbo_confirm: "#{t('apps.messages.confirm.delete_app_channel', name: channel.app_name)}" } - else tr td colspan="2" diff --git a/app/views/debug_files/_debug_file.html.slim b/app/views/debug_files/_debug_file.html.slim index 5fdebd0fb..ff8e1edb5 100644 --- a/app/views/debug_files/_debug_file.html.slim +++ b/app/views/debug_files/_debug_file.html.slim @@ -7,8 +7,6 @@ ruby: - debug_files.each do |debug_file| tr[ data-controller="destroy" - data-destroy-url-value="#{debug_file_path(debug_file)}" - data-destroy-method-value="delete" data-destroy-title-value="#{t('debug_files.confirm.destroy.title')}" data-destroy-content-value="#{t('debug_files.confirm.destroy.body')}" data-destroy-cancel-value="#{t('debug_files.confirm.destroy.cancel')}" diff --git a/app/views/debug_files/index.html.slim b/app/views/debug_files/index.html.slim index 91afeb2a9..a833d7cb2 100644 --- a/app/views/debug_files/index.html.slim +++ b/app/views/debug_files/index.html.slim @@ -33,19 +33,4 @@ h3.card-title = t('debug_files.index.not_found.title') .card-body = t('debug_files.index.not_found.body_html') - == render 'help' - -/ #destory_modal.modal.fade role="dialog" tabindex="-1" -/ .modal-dialog role="document" -/ .modal-content -/ .modal-header -/ h4.modal-title = t('debug_files.confirm.destroy.title') -/ button.close aria-label="Close" data-dismiss="modal" type="button" -/ span aria-hidden="true" × -/ .modal-body -/ p = t('debug_files.confirm.destroy.body') -/ p.empty-content -/ .modal-footer -/ input type="hidden" id="dsym-destory-id" value="" -/ button.btn.btn-default data-dismiss="modal" type="button" = t('debug_files.confirm.destroy.cancel') -/ = button_to t('debug_files.confirm.destroy.ok'), debug_files_path, method: :delete, class: 'btn btn-danger' \ No newline at end of file + == render 'help' \ No newline at end of file diff --git a/app/views/layouts/_navigation.html.slim b/app/views/layouts/_navigation.html.slim index aa4fecd5c..33b344fda 100644 --- a/app/views/layouts/_navigation.html.slim +++ b/app/views/layouts/_navigation.html.slim @@ -14,7 +14,7 @@ nav.main-header.navbar.navbar-expand.navbar-white.navbar-light = current_user.username .dropdown-menu.dropdown-menu-right = link_to t('user_profile'), edit_user_registration_path, class: 'dropdown-item' - = link_to t('log_out'), destroy_user_session_path, method: :delete, class: 'dropdown-item' + = button_to t('log_out'), destroy_user_session_path, method: :delete, class: 'dropdown-item' - else li.nav-item = link_to t('log_in'), new_user_session_path, class: 'nav-link' From 346f24e2df6427fd6aa3ff751cf87cad23cad41a Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 29 Jul 2022 15:26:16 +0800 Subject: [PATCH 1030/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=20tubros=20=E5=90=8E=E5=88=9B=E5=BB=BA=E3=80=81?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=8A=A5=E9=94=99=E6=B2=A1=E6=9C=89=E6=8A=A5?= =?UTF-8?q?=E9=94=99=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 4 +- .../admin/apple_keys_controller.rb | 2 +- app/controllers/admin/settings_controller.rb | 2 +- app/controllers/admin/users_controller.rb | 6 +- app/controllers/admin/web_hooks_controller.rb | 4 +- app/controllers/apps_controller.rb | 4 +- app/controllers/channels_controller.rb | 2 +- app/controllers/debug_files_controller.rb | 2 +- app/controllers/schemes_controller.rb | 2 +- app/controllers/teardowns_controller.rb | 12 ++-- .../users/registrations_controller.rb | 6 -- app/controllers/web_hooks_controller.rb | 4 +- app/views/admin/users/_form.html.slim | 2 +- app/views/layouts/application.html.slim | 1 - app/views/layouts/error.html.slim | 1 - app/views/layouts/mailer.html.slim | 1 - config/aaaacredentials.yml.enc | 1 + config/application.rb | 20 ++---- config/environments/development.rb | 63 +++++++++--------- config/environments/production.rb | 1 - config/environments/test.rb | 2 +- config/initializers/assets.rb | 4 -- .../initializers/content_security_policy.rb | 46 +++++++------ config/initializers/sentry.rb | 66 +++++++++---------- config/master2222.key | 1 + 25 files changed, 120 insertions(+), 139 deletions(-) create mode 100644 config/aaaacredentials.yml.enc create mode 100644 config/master2222.key diff --git a/Gemfile b/Gemfile index 6344364b7..80ab82da2 100644 --- a/Gemfile +++ b/Gemfile @@ -116,10 +116,9 @@ group :development do # 调试器 gem 'byebug', platforms: %i[mri mingw x64_mingw] ## VSCode debug: https://marketplace.visualstudio.com/items?itemName=KoichiSasada.vscode-rdbg - gem 'debug', '~> 1.6.1' + gem 'debug', '~> 1.6.1', platforms: %i[ mri mingw x64_mingw ] # 开发辅助 - # gem 'foreman' gem 'guard', '~> 2.18.0' gem 'guard-bundler' gem 'guard-migrate' @@ -127,7 +126,6 @@ group :development do gem 'guard-sidekiq' gem 'terminal-notifier' gem 'terminal-notifier-guard' - # gem 'guard-yarn_build', path: '/Users/icyleaf/Development/ruby/guard-yarn_build' # rails 更友好错误输出 gem 'awesome_print' diff --git a/app/controllers/admin/apple_keys_controller.rb b/app/controllers/admin/apple_keys_controller.rb index c47b7843f..e6971acfb 100644 --- a/app/controllers/admin/apple_keys_controller.rb +++ b/app/controllers/admin/apple_keys_controller.rb @@ -39,7 +39,7 @@ def create def destroy @apple_key.destroy notice = t('activerecord.success.destroy', key: t('admin.apple_keys.title')) - redirect_to admin_apple_keys_url, notice: notice + redirect_to admin_apple_keys_url, status: :see_other, notice: notice end # PUT /apple_keys/1/sync_devices diff --git a/app/controllers/admin/settings_controller.rb b/app/controllers/admin/settings_controller.rb index b7070dc06..f49c65bd1 100644 --- a/app/controllers/admin/settings_controller.rb +++ b/app/controllers/admin/settings_controller.rb @@ -36,7 +36,7 @@ def update if @setting.value != new_value @setting.value = new_value - return render :edit unless @setting.save + return render :edit, status: :unprocessable_entity unless @setting.save message = t('activerecord.success.update', key: t("admin.settings.#{@setting.var}")) redirect_to admin_settings_path, notice: message diff --git a/app/controllers/admin/users_controller.rb b/app/controllers/admin/users_controller.rb index 94e0fcc68..4b657c5b9 100644 --- a/app/controllers/admin/users_controller.rb +++ b/app/controllers/admin/users_controller.rb @@ -15,10 +15,10 @@ def new end def create - @user = User.new(user_params) + @user = User.new_with_session(user_params, session) authorize @user - return render :new unless @user.save + return render :new, status: :unprocessable_entity unless @user.save redirect_to admin_users_path, notice: t('activerecord.success.create', key: t('admin.users.title')) end @@ -39,7 +39,7 @@ def update # 没有设置密码的情况下不更新该字段 params = user_params.dup params.delete(:password) if params[:password].blank? - return render :edit unless @user.update(params) + return render :edit, status: :unprocessable_entity unless @user.update(params) redirect_to admin_users_path, notice: t('activerecord.success.update', key: t('admin.users.title')) end diff --git a/app/controllers/admin/web_hooks_controller.rb b/app/controllers/admin/web_hooks_controller.rb index a01c26388..7a7418f54 100644 --- a/app/controllers/admin/web_hooks_controller.rb +++ b/app/controllers/admin/web_hooks_controller.rb @@ -20,7 +20,7 @@ def new def create @web_hook = WebHook.new(web_hook_params) authorize @web_hook - return render :new unless @web_hook.save + return render :new, status: :unprocessable_entity unless @web_hook.save redirect_to admin_users_url, notice: t('activerecord.success.create', key: t('admin.web_hooks.title')) end @@ -32,7 +32,7 @@ def edit def update authorize @web_hook channel_ids = web_hook_params.delete(:channel_ids) - return render :edit unless @web_hook.update(web_hook_params) + return render :edit, status: :unprocessable_entity unless @web_hook.update(web_hook_params) redirect_to admin_web_hooks_url, notice: t('activerecord.success.update', key: t('admin.web_hooks.title')) end diff --git a/app/controllers/apps_controller.rb b/app/controllers/apps_controller.rb index 32b053798..dfa014b25 100644 --- a/app/controllers/apps_controller.rb +++ b/app/controllers/apps_controller.rb @@ -35,7 +35,7 @@ def create @app = App.new(app_params) authorize @app - return render :new unless @app.save + return render :new, status: :unprocessable_entity unless @app.save @app.users << current_user app_create_schemes_and_channels @@ -47,7 +47,7 @@ def update if app_params.member?(:scheme_attributes) && app_params.member?(:channel_attributes) flash[:alert] = t('apps.messages.failture.missing_schemes_and_channels') - return render :edit + return render :edit, status: :unprocessable_entity end @app.update(app_params) diff --git a/app/controllers/channels_controller.rb b/app/controllers/channels_controller.rb index ba70ef345..920f7d33c 100644 --- a/app/controllers/channels_controller.rb +++ b/app/controllers/channels_controller.rb @@ -25,7 +25,7 @@ def create @channel = Channel.new(channel_params) authorize @channel - return render :new unless @channel.save + return render :new, status: :unprocessable_entity unless @channel.save message = t('activerecord.success.create', key: "#{@channel.scheme.name} #{@channel.name} #{t('channels.title')}") redirect_to app_path(@channel.scheme.app), notice: message diff --git a/app/controllers/debug_files_controller.rb b/app/controllers/debug_files_controller.rb index c530a11de..227819c73 100644 --- a/app/controllers/debug_files_controller.rb +++ b/app/controllers/debug_files_controller.rb @@ -22,7 +22,7 @@ def create @debug_file = DebugFile.new(debug_file_params) authorize @debug_file - return render :new unless @debug_file.save + return render :new, status: :unprocessable_entity unless @debug_file.save DebugFileTeardownJob.perform_later(@debug_file, current_user.id) redirect_to debug_files_url, notice: t('activerecord.success.create', key: t('debug_files.title')) diff --git a/app/controllers/schemes_controller.rb b/app/controllers/schemes_controller.rb index fe4697f03..2be71cf36 100644 --- a/app/controllers/schemes_controller.rb +++ b/app/controllers/schemes_controller.rb @@ -19,7 +19,7 @@ def create authorize @scheme @scheme.app = @app - return render :new unless @scheme.save + return render :new, status: :unprocessable_entity unless @scheme.save create_channels(channels) redirect_to app_path(@app), notice: t('activerecord.success.create', key: t('schemes.title')) diff --git a/app/controllers/teardowns_controller.rb b/app/controllers/teardowns_controller.rb index 64d8bc954..15cea172d 100644 --- a/app/controllers/teardowns_controller.rb +++ b/app/controllers/teardowns_controller.rb @@ -29,26 +29,26 @@ def create parse_app rescue AppInfo::NotFoundError, ActiveRecord::RecordNotFound => e flash[:error] = t('teardowns.messages.errors.not_found_file', message: e.message) - render :new + render :new, status: :unprocessable_entity rescue ActionController::RoutingError => e flash[:error] = e.message - render :new + render :new, status: :unprocessable_entity rescue AppInfo::UnkownFileTypeError flash[:error] = t('teardowns.messages.errors.failed_detect_file_type') - render :new + render :new, status: :unprocessable_entity rescue AppInfo::UnkownFileTypeError flash[:error] = t('teardowns.messages.errors.not_support_file_type') - render :new + render :new, status: :unprocessable_entity rescue NoMethodError => e logger.error "Teardown error: #{e}" Sentry.capture_exception e flash[:error] = t('teardowns.messages.errors.failed_get_metadata') - render :new + render :new, status: :unprocessable_entity rescue => e logger.error "Teardown error: #{e}" Sentry.capture_exception e flash[:error] = t('teardowns.messages.errors.unknown_parse', class: e.class, message: e.message) - render :new + render :new, status: :unprocessable_entity end def destroy diff --git a/app/controllers/users/registrations_controller.rb b/app/controllers/users/registrations_controller.rb index da51d3035..9b5a43569 100644 --- a/app/controllers/users/registrations_controller.rb +++ b/app/controllers/users/registrations_controller.rb @@ -8,10 +8,4 @@ def update super end - - # protected - - # def update_resource(resource, params) - # resource.update_without_password(params) - # end end diff --git a/app/controllers/web_hooks_controller.rb b/app/controllers/web_hooks_controller.rb index 9741172b5..74b99b8c3 100644 --- a/app/controllers/web_hooks_controller.rb +++ b/app/controllers/web_hooks_controller.rb @@ -10,7 +10,7 @@ def create @channel.web_hooks << @web_hook authorize @web_hook - return redirect_to_channel_url unless @web_hook.save + return redirect_to_channel_url, status: :unprocessable_entity unless @web_hook.save redirect_to_channel_url notice: t('activerecord.success.create', key: t('web_hooks.title')) end @@ -18,7 +18,7 @@ def create def destroy authorize @web_hook @web_hook.destroy - redirect_to_channel_url notice: t('activerecord.success.destroy', key: t('web_hooks.title')) + redirect_to_channel_url, status: :see_other, notice: t('activerecord.success.destroy', key: t('web_hooks.title')) end def disable diff --git a/app/views/admin/users/_form.html.slim b/app/views/admin/users/_form.html.slim index e822db25e..3f58e1153 100644 --- a/app/views/admin/users/_form.html.slim +++ b/app/views/admin/users/_form.html.slim @@ -1,6 +1,6 @@ ruby: demo_mode = default_admin_in_demo_mode?(@user) - update_url = demo_mode ? root_path : @user.new_record? ? admin_users_path : admin_user_path(@user) + update_url = demo_mode ? root_path : (@user.new_record? ? admin_users_path : admin_user_path(@user)) = simple_form_for(@user, url: update_url) do |f| .card-body diff --git a/app/views/layouts/application.html.slim b/app/views/layouts/application.html.slim index b379842a9..95f3c5542 100644 --- a/app/views/layouts/application.html.slim +++ b/app/views/layouts/application.html.slim @@ -21,7 +21,6 @@ html lang="#{I18n.locale}" == yield :header_tags == action_cable_meta_tag == csrf_meta_tags - == csp_meta_tag body[ class="hold-transition #{body_class}" diff --git a/app/views/layouts/error.html.slim b/app/views/layouts/error.html.slim index c8a0e6533..0cd40be60 100644 --- a/app/views/layouts/error.html.slim +++ b/app/views/layouts/error.html.slim @@ -12,7 +12,6 @@ html == render 'layouts/dark_mode', appearance: Setting.site_appearance == javascript_include_tag 'application', 'data-turbolinks-track': 'reload', defer: true == csrf_meta_tags - == csp_meta_tag body[ data-controller="global" diff --git a/app/views/layouts/mailer.html.slim b/app/views/layouts/mailer.html.slim index bf8c5c99a..e9b587297 100644 --- a/app/views/layouts/mailer.html.slim +++ b/app/views/layouts/mailer.html.slim @@ -10,7 +10,6 @@ html == stylesheet_link_tag 'application', 'data-turbolinks-track': 'reload' == javascript_include_tag 'application', 'data-turbolinks-track': 'reload', defer: true == csrf_meta_tags - == csp_meta_tag body.hold-transition.layout-top-nav[ data-controller="global" diff --git a/config/aaaacredentials.yml.enc b/config/aaaacredentials.yml.enc new file mode 100644 index 000000000..69937607a --- /dev/null +++ b/config/aaaacredentials.yml.enc @@ -0,0 +1 @@ +dLlXR8hwQ+IUYUEajev6hnMiLmMZO3hKjVSvzyrltOXyPQBOtIIOjf6zitJI0OJu/KlYL/41Ekz75Wuzr/RlEY57FlMUgSAGOSNhg31M+5xi3ZsCMUs3Mwj4vmDjpb8oHn/xwYtYVOCu3zUXcOpoMyUeazxTchfa0c8jfL24mLa2QfDnBXXMDQAnXjZE+c726tomXkIbNpDNQ0FRCAzx0CscWeRWkTFf7upEj8Zx5DSv/k9nVlOj62yTzne/Ykt09QEu6xTbrfB0ywyVcg9ShDCe1mI80qDJGCHS2Ep6YbdojmKpMAy4WajmIug4bdo+jSfCtbEkM3KxfB3GSKJaPxETYLs/5V4qCwZ50UONcw3vz/ky74csKIIjMp8N7L6/Q3T2GKjrQbD3ZzNPEZrfvH7pi82q2owBU9XfWpsLgRWK8WhPEW3SZ6OhyBQ8wmZh8/gtxCAAwxCNNw==--rZhCuo97nyD9i1G1--RbHIWxLWe+qbF8ZH3l6pUQ== \ No newline at end of file diff --git a/config/application.rb b/config/application.rb index 926fdaf3b..d1968b93a 100644 --- a/config/application.rb +++ b/config/application.rb @@ -63,23 +63,17 @@ class Application < Rails::Application # config.action_cable.allowed_request_origins = origins # end - # Settings in config/environments/* take precedence over those specified here. - # Application configuration can go into files in config/initializers - # -- all .rb files in that directory are automatically loaded after loading - # the framework and any gems in your application. - config.generators.javascripts = false - config.generators.stylesheets = false - - ################################################################ - # Auto load path config.autoload_paths += Dir["#{config.root}/lib"] config.eager_load_paths += Dir["#{config.root}/lib"] - # Don't generate system test files. - config.generators.system_tests = nil + ################################################################ + # Don't generate those files. + config.generators.javascripts = false + config.generators.stylesheets = false + config.generators.system_tests = false end end -# Slient redis -Redis.silence_deprecations = true \ No newline at end of file +# # Slient redis +# Redis.silence_deprecations = true \ No newline at end of file diff --git a/config/environments/development.rb b/config/environments/development.rb index 215c4616c..2c94bd249 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -19,10 +19,6 @@ # Enable server timing config.server_timing = true - # Use the lowest log level to ensure availability of diagnostic information - # when problems arise. - config.log_level = :debug - # Enable/disable caching. By default caching is disabled. # Run rails dev:cache to toggle caching. if Rails.root.join('tmp/caching-dev.txt').exist? @@ -39,16 +35,14 @@ config.cache_store = :null_store end + # Store uploaded files on the local file system (see config/storage.yml for options). + # config.active_storage.service = :local + # Don't care if the mailer can't send. config.action_mailer.raise_delivery_errors = false config.action_mailer.perform_caching = false - # If using a Heroku, Vagrant or generic remote development environment, - # use letter_opener_web, accessible at /letter_opener. - # Otherwise, use letter_opener, which launches a browser window to view sent mail. - config.action_mailer.delivery_method = %w[HEROKU VAGRANT REMOTE_DEV].select { |k| ENV[k].present? }.empty? ? :letter_opener_web : :letter_opener - # Print deprecation notices to the Rails logger. config.active_support.deprecation = :log @@ -64,19 +58,9 @@ # Highlight code that triggered database queries in logs. config.active_record.verbose_query_logs = true - # Debug mode disables concatenation and preprocessing of assets. - # This option may cause significant delays in view rendering with a large - # number of complex assets. - config.assets.debug = true - # Suppress logger output for asset requests. config.assets.quiet = true - # Adds additional error checking when serving assets at runtime. - # Checks for improperly declared sprockets dependencies. - # Raises helpful error messages. - config.assets.raise_runtime_errors = true - # Raises error for missing translations. # config.i18n.raise_on_missing_translations = true @@ -86,18 +70,37 @@ # Uncomment if you wish to allow Action Cable access from any origin. config.action_cable.disable_request_forgery_protection = true - # Use an evented file watcher to asynchronously detect changes in source code, - # routes, locales, etc. This feature depends on the listen gem. - config.file_watcher = ActiveSupport::EventedFileUpdateChecker + # If using a Heroku, Vagrant or generic remote development environment, + # use letter_opener_web, accessible at /letter_opener. + # Otherwise, use letter_opener, which launches a browser window to view sent mail. + config.action_mailer.delivery_method = %w[HEROKU VAGRANT REMOTE_DEV].select { |k| ENV[k].present? }.empty? ? :letter_opener_web : :letter_opener - if ENV['TRUST_IP'] - config.web_console.permissions = ENV['TRUST_IP'] + # # Use an evented file watcher to asynchronously detect changes in source code, + # # routes, locales, etc. This feature depends on the listen gem. + # config.file_watcher = ActiveSupport::EventedFileUpdateChecker - if defined?(BetterErrors) - require 'ipaddr' - BetterErrors::Middleware.allow_ip! IPAddr.new(ENV['TRUST_IP']) - end - end + # # Use the lowest log level to ensure availability of diagnostic information + # # when problems arise. + # config.log_level = :debug + + # # Debug mode disables concatenation and preprocessing of assets. + # # This option may cause significant delays in view rendering with a large + # # number of complex assets. + # config.assets.debug = true + + # # Adds additional error checking when serving assets at runtime. + # # Checks for improperly declared sprockets dependencies. + # # Raises helpful error messages. + # config.assets.raise_runtime_errors = true + + # if ENV['TRUST_IP'] + # config.web_console.permissions = ENV['TRUST_IP'] + + # if defined?(BetterErrors) + # require 'ipaddr' + # BetterErrors::Middleware.allow_ip! IPAddr.new(ENV['TRUST_IP']) + # end + # end - config.hosts << ENV['ZEALOT_DOMAIN'] if ENV['ZEALOT_DOMAIN'] + # config.hosts << ENV['ZEALOT_DOMAIN'] if ENV['ZEALOT_DOMAIN'] end \ No newline at end of file diff --git a/config/environments/production.rb b/config/environments/production.rb index eca0315f2..e120857a7 100644 --- a/config/environments/production.rb +++ b/config/environments/production.rb @@ -21,7 +21,6 @@ # Ensures that a master key has been made available in either ENV["RAILS_MASTER_KEY"] # or in config/master.key. This key is used to decrypt credentials (and other encrypted files). # config.require_master_key = true - # config.read_encrypted_secrets = true # Disable serving static files from the `/public` folder by default since # Apache or NGINX already handles this. diff --git a/config/environments/test.rb b/config/environments/test.rb index 4cfc8a780..5169eeb12 100644 --- a/config/environments/test.rb +++ b/config/environments/test.rb @@ -11,7 +11,7 @@ # Settings specified here will take precedence over those in config/application.rb. # Turn false under Spring and add config.action_view.cache_template_loading = true. - config.cache_classes = false + config.cache_classes = true # Eager loading loads your whole application. When running a single test locally, # this probably isn't necessary. It's a good idea to do in a continuous integration diff --git a/config/initializers/assets.rb b/config/initializers/assets.rb index 999df78ba..dd39f4f6c 100644 --- a/config/initializers/assets.rb +++ b/config/initializers/assets.rb @@ -13,10 +13,6 @@ ] # Precompile additional assets. -# Rails.application.config.assets.precompile << proc do |path| -# true if path =~ /\.(eot|svg|ttf|woff|png)\z/ -# end - # application.js, application.css, and all non-JS/CSS in the app/assets # folder are already added. # Rails.application.config.assets.precompile += %w[custom.js custom.css] diff --git a/config/initializers/content_security_policy.rb b/config/initializers/content_security_policy.rb index af9f02687..53538c149 100644 --- a/config/initializers/content_security_policy.rb +++ b/config/initializers/content_security_policy.rb @@ -2,28 +2,26 @@ # Be sure to restart your server when you modify this file. -# Define an application-wide content security policy -# For further information see the following documentation -# https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy +# Define an application-wide content security policy. +# See the Securing Rails Applications Guide for more information: +# https://guides.rubyonrails.org/security.html#content-security-policy-header -Rails.application.config.content_security_policy do |policy| - # policy.default_src :self, :https - # policy.font_src :self, :https, :data - # policy.img_src :self, :https, :data - # policy.object_src :none - # policy.script_src :self, :https - # policy.style_src :self, :https - # If you are using webpack-dev-server then specify webpack-dev-server host - policy.connect_src :self, :https, 'http://localhost:3035', 'ws://localhost:3035' if Rails.env.development? - - # Specify URI for violation reports - # policy.report_uri "/csp-violation-report-endpoint" -end - -# If you are using UJS then enable automatic nonce generation -# Rails.application.config.content_security_policy_nonce_generator = -> request { SecureRandom.base64(16) } - -# Report CSP violations to a specified URI -# For further information see the following documentation: -# https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy-Report-Only -# Rails.application.config.content_security_policy_report_only = true +# Rails.application.configure do +# config.content_security_policy do |policy| +# policy.default_src :self, :https +# policy.font_src :self, :https, :data +# policy.img_src :self, :https, :data +# policy.object_src :none +# policy.script_src :self, :https +# policy.style_src :self, :https +# # Specify URI for violation reports +# # policy.report_uri "/csp-violation-report-endpoint" +# end +# +# # Generate session nonces for permitted importmap and inline scripts +# config.content_security_policy_nonce_generator = ->(request) { request.session.id.to_s } +# config.content_security_policy_nonce_directives = %w(script-src) +# +# # Report violations without enforcing the policy. +# # config.content_security_policy_report_only = true +# end diff --git a/config/initializers/sentry.rb b/config/initializers/sentry.rb index 932d8d346..49b1fc11d 100644 --- a/config/initializers/sentry.rb +++ b/config/initializers/sentry.rb @@ -1,39 +1,39 @@ -# frozen_string_literal: true +# # frozen_string_literal: true -# 默认开启 Sentry,如果不想使用设置 ZEALOT_SENTRY_DISABLE=1 -if ENV['ZEALOT_SENTRY_DISABLE'].blank? || !Rails.env.development? - Rails.configuration.to_prepare do - Sentry.init do |config| - config.dsn = ENV['ZEALOT_SENTRY_DNS'] || 'https://133aefa9f52448a1a7900ba9d02f93e1@sentry.io/1878137' +# # 默认开启 Sentry,如果不想使用设置 ZEALOT_SENTRY_DISABLE=1 +# if ENV['ZEALOT_SENTRY_DISABLE'].blank? || !Rails.env.development? +# Rails.configuration.to_prepare do +# Sentry.init do |config| +# config.dsn = ENV['ZEALOT_SENTRY_DNS'] || 'https://133aefa9f52448a1a7900ba9d02f93e1@sentry.io/1878137' - config.capture_exception_frame_locals = true - config.rails.report_rescued_exceptions = true - config.breadcrumbs_logger = %i[active_support_logger sentry_logger http_logger] +# config.capture_exception_frame_locals = true +# config.rails.report_rescued_exceptions = true +# config.breadcrumbs_logger = %i[active_support_logger sentry_logger http_logger] - config.send_default_pii = true - config.environment = Rails.env - config.enabled_environments = %w[production] +# config.send_default_pii = true +# config.environment = Rails.env +# config.enabled_environments = %w[production] - config.excluded_exceptions += [ - 'ActionController::RoutingError', - 'ActiveRecord::RecordNotFound', - 'ActiveRecord::RecordInvalid', - 'ActiveRecord::NoDatabaseError', - 'ActiveRecord::PendingMigrationError', - 'PG::ConnectionBad', - 'Redis::CannotConnectError', - 'Interrupt', - 'SystemExit', - ] +# config.excluded_exceptions += [ +# 'ActionController::RoutingError', +# 'ActiveRecord::RecordNotFound', +# 'ActiveRecord::RecordInvalid', +# 'ActiveRecord::NoDatabaseError', +# 'ActiveRecord::PendingMigrationError', +# 'PG::ConnectionBad', +# 'Redis::CannotConnectError', +# 'Interrupt', +# 'SystemExit', +# ] - if vcs_ref = Setting.vcs_ref.presence - release = [Setting.version, vcs_ref] - if docker_tag = ENV['DOCKER_TAG'].presence - release << ENV['DOCKER_TAG'] - end +# if vcs_ref = Setting.vcs_ref.presence +# release = [Setting.version, vcs_ref] +# if docker_tag = ENV['DOCKER_TAG'].presence +# release << ENV['DOCKER_TAG'] +# end - config.release = release.join('-') - end - end - end -end +# config.release = release.join('-') +# end +# end +# end +# end diff --git a/config/master2222.key b/config/master2222.key new file mode 100644 index 000000000..449668c74 --- /dev/null +++ b/config/master2222.key @@ -0,0 +1 @@ +c54b820c7729e01c7328bd24566fbfd9 \ No newline at end of file From 42b4781c348508433880d845909938f39aa3c8ad Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 29 Jul 2022 16:19:10 +0800 Subject: [PATCH 1031/2165] chore: format javascript code with eslint --- .../admin/new_release_controller.js | 24 ++++++------- .../controllers/admin/service_controller.js | 12 +++---- .../clipboard_center_controller.js | 23 ++++++------- .../controllers/destroy_controller.js | 4 +-- .../controllers/global_controller.js | 10 +++--- .../release_download_controller.js | 34 +++++++++---------- 6 files changed, 53 insertions(+), 54 deletions(-) diff --git a/app/javascript/controllers/admin/new_release_controller.js b/app/javascript/controllers/admin/new_release_controller.js index 2c076d846..6be694aad 100644 --- a/app/javascript/controllers/admin/new_release_controller.js +++ b/app/javascript/controllers/admin/new_release_controller.js @@ -1,13 +1,13 @@ import { Controller } from "@hotwired/stimulus" -import compareVersion from 'compare-versions' +import compareVersion from "compare-versions" -const DEVELLOPMENT = 'development' -const PROJECT_URL = 'https://api.github.com/repos/tryzealot/zealot' -const VERSION_URL = PROJECT_URL + '/releases/latest' +const DEVELLOPMENT = "development" +const PROJECT_URL = "https://api.github.com/repos/tryzealot/zealot" +const VERSION_URL = PROJECT_URL + "/releases/latest" export default class extends Controller { static values = { version: String, title: String } - static targets = ['newVersion'] + static targets = ["newVersion"] connect() { if (this.versionValue === DEVELLOPMENT) { @@ -19,23 +19,23 @@ export default class extends Controller { check() { fetch(VERSION_URL, { - method: 'GET', + method: "GET", headers: { - 'X-Requested-With': 'XMLHttpRequest', - 'Accept': 'application/vnd.github.v3+json' + "X-Requested-With": "XMLHttpRequest", + "Accept": "application/vnd.github.v3+json" } }).then((response) => response.json()) - .then(json => { + .then((json) => { const releaseVersion = json.tag_name if (compareVersion(releaseVersion, this.versionValue) <= 0) { return } const releaseLink = json.html_url - const title = this.titleValue + ' ' + releaseVersion + const title = this.titleValue + " " + releaseVersion this.render(title, releaseLink) }); } render(title, link) { - this.newVersionTarget.innerHTML = '' + - '' + title + '' + this.newVersionTarget.innerHTML = "" + + "" + title + "" } } \ No newline at end of file diff --git a/app/javascript/controllers/admin/service_controller.js b/app/javascript/controllers/admin/service_controller.js index 0e994d6f5..6c874c90a 100644 --- a/app/javascript/controllers/admin/service_controller.js +++ b/app/javascript/controllers/admin/service_controller.js @@ -1,12 +1,12 @@ import { Controller } from "@hotwired/stimulus" -import { Zealot } from "../zealot" +import Zealot from "../zealot" import JQuery from "jquery" -const RESTART_URI = 'admin/service/restart' -const HEALTH_CHECK_URI = 'admin/service/status' +const RESTART_URI = "admin/service/restart" +const HEALTH_CHECK_URI = "admin/service/status" export default class extends Controller { - static targets = ['button'] + static targets = ["button"] static values = { restarting: String, restarted: String @@ -68,13 +68,13 @@ export default class extends Controller { } updateRestaringState() { - this.buttonTarget.classList.replace('bg-success', 'bg-warning') + this.buttonTarget.classList.replace("bg-success", "bg-warning") this.buttonTarget.innerHTML = "" + this.restartingValue } updateRestartedState() { - this.buttonTarget.classList.replace('bg-warning', 'bg-success') + this.buttonTarget.classList.replace("bg-warning", "bg-success") this.buttonTarget.innerHTML = "" + this.restartedValue diff --git a/app/javascript/controllers/clipboard_center_controller.js b/app/javascript/controllers/clipboard_center_controller.js index 7bb4fc173..bc9b2efd8 100644 --- a/app/javascript/controllers/clipboard_center_controller.js +++ b/app/javascript/controllers/clipboard_center_controller.js @@ -1,5 +1,4 @@ import { Controller } from "@hotwired/stimulus" -import JQuery from "jquery" import ClipboardJS from "clipboard" export default class extends Controller { @@ -8,7 +7,7 @@ export default class extends Controller { copy() { this.hideTooltip() if (!ClipboardJS.isSupported()) { - this.button.attr('disabled', true) + this.button.attr("disabled", true) return this.renderUnsupport() } @@ -18,21 +17,21 @@ export default class extends Controller { } renderUnsupport() { - this.button.addClass('btn-warning') - .removeClass('btn-primary') + this.button.addClass("btn-warning") + .removeClass("btn-primary") - this.button.find('i') - .addClass('fa-tired') - .removeClass('fa-clipboard') + this.button.find("i") + .addClass("fa-tired") + .removeClass("fa-clipboard") } renderSuccess() { - this.button.addClass('btn-success') - .removeClass('btn-primary') + this.button.addClass("btn-success") + .removeClass("btn-primary") - this.button.find('i') - .addClass('fa-thumbs-up') - .removeClass('fa-clipboard') + this.button.find("i") + .addClass("fa-thumbs-up") + .removeClass("fa-clipboard") } hideTooltip() { diff --git a/app/javascript/controllers/destroy_controller.js b/app/javascript/controllers/destroy_controller.js index fc0b495bb..40c831cf3 100644 --- a/app/javascript/controllers/destroy_controller.js +++ b/app/javascript/controllers/destroy_controller.js @@ -1,5 +1,5 @@ import { Controller } from "@hotwired/stimulus" -import JQuery from "jquery" +import jquery from "jquery" const DIALOG_ID = "modal-dialog" @@ -13,7 +13,7 @@ export default class extends Controller { click() { this.prepare() - JQuery("#" + DIALOG_ID).modal() + jquery("#" + DIALOG_ID).modal() } prepare() { diff --git a/app/javascript/controllers/global_controller.js b/app/javascript/controllers/global_controller.js index 20fe103c0..d04e3e0fa 100644 --- a/app/javascript/controllers/global_controller.js +++ b/app/javascript/controllers/global_controller.js @@ -1,6 +1,6 @@ import { Controller } from "@hotwired/stimulus" -import { Zealot } from "./zealot" -import JQuery from "jquery" +import Zealot from "./zealot" +import jquery from "jquery" export default class extends Controller { static values = { @@ -21,8 +21,8 @@ export default class extends Controller { if (apperance === "dark" || (apperance === "auto" && Zealot.isDarkMode())) { document.body.classList.add("dark-mode") - JQuery(".main-header").addClass("navbar-dark").removeClass("navbar-white"); - JQuery(".main-sidebar").addClass("sidebar-dark-primary").removeClass("sidebar-light-primary"); + jquery(".main-header").addClass("navbar-dark").removeClass("navbar-white") + jquery(".main-sidebar").addClass("sidebar-dark-primary").removeClass("sidebar-light-primary") // document.getElementsByClassName('main-header').classList.replace("navbar-white", "navbar-dark") // document.getElementsByClassName('main-sidebar').classList.replace("sidebar-light-primary", "sidebar-dark-primary") @@ -34,6 +34,6 @@ export default class extends Controller { } fixTooltipToggle() { - JQuery("[data-toggle='tooltip']").tooltip(); + jquery("[data-toggle='tooltip']").tooltip() } } \ No newline at end of file diff --git a/app/javascript/controllers/release_download_controller.js b/app/javascript/controllers/release_download_controller.js index 5e19c5429..1b63d5a6c 100644 --- a/app/javascript/controllers/release_download_controller.js +++ b/app/javascript/controllers/release_download_controller.js @@ -1,5 +1,5 @@ import { Controller } from "@hotwired/stimulus" -import JQuery from "jquery" +import jquery from "jquery" const LOADING_TIMEOUT = 8000 @@ -15,52 +15,52 @@ export default class extends Controller { this.renderLoading() const link = this.installUrlValue - console.log('install url: '+ link) + console.log("install url", link) window.location.href = link } showQA() { - JQuery('#install-issues').modal('toggle') + jquery("#install-issues").modal("toggle") } build() { // jquery version legacy - // var button = $('#build_it'); - // button.button('loading'); + // var button = $("#build_it"); + // button.button("loading"); - // var app_job = button.data('job'); + // var app_job = button.data("job"); // var url = HOST + "api/v2/jenkins/projects/" + app_job + "/build"; - // console.log('build url: ', url); + // console.log("build url: ", url); // $.ajax({ // url: url, - // type: 'get', - // dataType: 'json', + // type: "get", + // dataType: "json", // success: function (data) { // console.log(data) // if (data.code == 201 || data.code == 200) { - // var url = data.url + 'console'; - // message = '请求成功!访问这里查看详情:' + url + ''; + // var url = data.url + "console"; + // message = "请求成功!访问这里查看详情:" + url + ""; // } else { - // message = '错误:' + data.message; + // message = "错误:" + data.message; // } // if (data.code == 201) { // sleep(8000); // } - // $('#jekins_buld_alert').removeClass('hidden').html(message); + // $("#jekins_buld_alert").removeClass("hidden").html(message); // }, // error: function (xhr, ajaxOptions, thrownError) { - // button.button('reset'); - // // $('#cache-info').data('key', xhr.responseJSON.cache).removeClass('hide') + // button.button("reset"); + // // $("#cache-info").data("key", xhr.responseJSON.cache).removeClass("hide") // // $("#result") - // // .html('请求失败!接口返回:' + xhr.responseJSON.message) + // // .html("请求失败!接口返回:" + xhr.responseJSON.message) // // .addClass("alert alert-danger") // // .show() // }, // complete: function () { - // button.button('reset'); + // button.button("reset"); // } // }); } From a9bdd58bdf24e429868d5f22e2b45db492d3e39b Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 29 Jul 2022 16:19:27 +0800 Subject: [PATCH 1032/2165] =?UTF-8?q?chore:=20=E6=9B=B4=E6=96=B0=20codecli?= =?UTF-8?q?mate=20=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .codeclimate.yml | 6 ++- .../controllers/admin/service_controller.js | 40 +++++++++++-------- .../clipboard_center_controller.js | 3 +- .../controllers/global_controller.js | 2 +- app/javascript/controllers/index.js | 3 -- .../controllers/legacy/debug_files/index.js | 30 -------------- app/javascript/controllers/legacy/index.js | 1 - .../release_download_controller.js | 2 +- 8 files changed, 32 insertions(+), 55 deletions(-) delete mode 100644 app/javascript/controllers/legacy/debug_files/index.js delete mode 100644 app/javascript/controllers/legacy/index.js diff --git a/.codeclimate.yml b/.codeclimate.yml index 8dbf29f33..2eda42abe 100644 --- a/.codeclimate.yml +++ b/.codeclimate.yml @@ -1,5 +1,9 @@ version: "2" plugins: + eslint: + enabled: true + csslint: + enabled: true rubocop: enabled: true - channel: "rubocop-0-83" \ No newline at end of file + channel: "rubocop-1-31-0" \ No newline at end of file diff --git a/app/javascript/controllers/admin/service_controller.js b/app/javascript/controllers/admin/service_controller.js index 6c874c90a..e92124712 100644 --- a/app/javascript/controllers/admin/service_controller.js +++ b/app/javascript/controllers/admin/service_controller.js @@ -1,5 +1,5 @@ import { Controller } from "@hotwired/stimulus" -import Zealot from "../zealot" +import { Zealot } from "../zealot" import JQuery from "jquery" const RESTART_URI = "admin/service/restart" @@ -28,11 +28,11 @@ export default class extends Controller { } do { - var online = await this.serviceisOnline(); + var online = await this.serviceisOnline() if (online) { - serverRestarting = false; + serverRestarting = false } else { - await sleep(1000) + await this.sleep(1000) } } while (serverRestarting) @@ -42,29 +42,35 @@ export default class extends Controller { } serviceRestart() { - try { - fetch(Zealot.rootUrl + RESTART_URI, { + fetch(Zealot.rootUrl + RESTART_URI, { method: "POST" }) - return true - } catch (error) { - return false - } + .then(response => response.json()) + .then(() => { + return true + }) + .catch((error) => { + console.debug("service restart failed", error) + return false + }) } serviceisOnline() { - try { - fetch(Zealot.rootUrl + HEALTH_CHECK_URI, { + fetch(Zealot.rootUrl + HEALTH_CHECK_URI, { method: "GET" }) - return true - } catch (error) { - return false - } + .then(response => response.json()) + .then(() => { + return true + }) + .catch((error) => { + console.debug("service is down, stilling wait", error) + return false + }) } clearNotifcation() { - JQuery("#notifications").fadeOut(); + JQuery("#notifications").fadeOut() } updateRestaringState() { diff --git a/app/javascript/controllers/clipboard_center_controller.js b/app/javascript/controllers/clipboard_center_controller.js index bc9b2efd8..aaca3eb0e 100644 --- a/app/javascript/controllers/clipboard_center_controller.js +++ b/app/javascript/controllers/clipboard_center_controller.js @@ -1,4 +1,5 @@ import { Controller } from "@hotwired/stimulus" +import jquery from "jquery" import ClipboardJS from "clipboard" export default class extends Controller { @@ -40,6 +41,6 @@ export default class extends Controller { } get button() { - return JQuery(this.buttonTarget) + return jquery(this.buttonTarget) } } \ No newline at end of file diff --git a/app/javascript/controllers/global_controller.js b/app/javascript/controllers/global_controller.js index d04e3e0fa..d4dcd4856 100644 --- a/app/javascript/controllers/global_controller.js +++ b/app/javascript/controllers/global_controller.js @@ -1,5 +1,5 @@ import { Controller } from "@hotwired/stimulus" -import Zealot from "./zealot" +import { Zealot } from "./zealot" import jquery from "jquery" export default class extends Controller { diff --git a/app/javascript/controllers/index.js b/app/javascript/controllers/index.js index cde8ad6b1..85b7f7a67 100644 --- a/app/javascript/controllers/index.js +++ b/app/javascript/controllers/index.js @@ -20,6 +20,3 @@ import DestroyController from "./destroy_controller" application.register("destroy", DestroyController) import "./admin" - -// legacy controllers -import "./legacy" diff --git a/app/javascript/controllers/legacy/debug_files/index.js b/app/javascript/controllers/legacy/debug_files/index.js deleted file mode 100644 index 7bc975b04..000000000 --- a/app/javascript/controllers/legacy/debug_files/index.js +++ /dev/null @@ -1,30 +0,0 @@ -$(document).on("turbo:load", function () { - $('.debug-file-toggle').on('click', function () { - debug_file_id = $(this).data('id'); - $('#debug-file-metadata-' + debug_file_id).toggleClass('d-none'); - }); - - $('.destroy-debug-file').on('click', function () { - var debug_id = $(this).data('id'); - var that = $("#debug-file-info-" + debug_id); - var app_name = that.data('app-name'); - var device_type = that.find('.debug-file-device-type').html(); - var releas_version = that.find('.debug-file-version').text(); - var build_version = that.find('.debug-file-build-version').text(); - var elm = $('#destory_modal'); - - elm.find('.empty-content').html(function () { - var tips = ""; - var conform_text = "" + - app_name + " " + device_type + - " v" + releas_version + - " (" + build_version + ")" - ""; - - return tips + conform_text; - }); - - elm.find('form').attr('action', $(this).data('url')); - elm.modal('toggle'); - }); -}); \ No newline at end of file diff --git a/app/javascript/controllers/legacy/index.js b/app/javascript/controllers/legacy/index.js deleted file mode 100644 index 4817ed6c2..000000000 --- a/app/javascript/controllers/legacy/index.js +++ /dev/null @@ -1 +0,0 @@ -// import "./debug_files"; \ No newline at end of file diff --git a/app/javascript/controllers/release_download_controller.js b/app/javascript/controllers/release_download_controller.js index 1b63d5a6c..79b56144e 100644 --- a/app/javascript/controllers/release_download_controller.js +++ b/app/javascript/controllers/release_download_controller.js @@ -15,7 +15,7 @@ export default class extends Controller { this.renderLoading() const link = this.installUrlValue - console.log("install url", link) + console.debug("install url", link) window.location.href = link } From dd57d4a99c1f60cebeae8de36a7e0144f0086c9b Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 29 Jul 2022 17:35:10 +0800 Subject: [PATCH 1033/2165] =?UTF-8?q?feat:=20=E6=94=AF=E6=8C=81=E4=BE=9D?= =?UTF-8?q?=E8=B5=96=E6=9C=8D=E5=8A=A1=E7=9A=84=E7=9B=91=E6=8E=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #586 --- .../admin/system_info_controller.rb | 9 ++++++++ app/views/admin/system_info/index.html.slim | 23 ++++++++++++++++--- config/locales/zealot/en.yml | 1 + config/locales/zealot/zh-CN.yml | 1 + 4 files changed, 31 insertions(+), 3 deletions(-) diff --git a/app/controllers/admin/system_info_controller.rb b/app/controllers/admin/system_info_controller.rb index 18e4e7c3e..d498f313e 100644 --- a/app/controllers/admin/system_info_controller.rb +++ b/app/controllers/admin/system_info_controller.rb @@ -53,6 +53,7 @@ def index set_server_info set_disk_volumes set_file_permissions + set_services end private @@ -84,6 +85,14 @@ def set_gems @gems ||= Hash[Gem::Specification.map { |spec| [spec.name, spec.version.to_s] }].sort end + def set_services + @services ||= { + redis: HealthCheck::RedisHealthCheck.check, + database: HealthCheck::Utils.get_database_version.present?, + sidekiq: HealthCheck::SidekiqHealthCheck.check, + } + end + def set_disk_volumes @disks = ::Sys::Filesystem.mounts.each_with_object([]) do |mount, obj| mount_options = mount.options.split(',').map(&:strip) diff --git a/app/views/admin/system_info/index.html.slim b/app/views/admin/system_info/index.html.slim index a98cc7e04..e01c15c59 100644 --- a/app/views/admin/system_info/index.html.slim +++ b/app/views/admin/system_info/index.html.slim @@ -72,17 +72,34 @@ .card-tools button.btn.btn-tool data-card-widget="collapse" i.fas.fa-minus - .card-body - p = t('.messages.file_permissions_tip', icon: '') + .card-body.p-0 + p.pl-4.pt-3 = t('.messages.file_permissions_tip', icon: '') table.table - @file_permissions[:permissions].each do |permission| tr td = permission[:path] - td + td style="width: 20px" - if permission[:health] i.fas.fa-check.text-green - else i.fas.fa-exclamation-triangle.text-red + .card + .card-header + h3.card-title = t('.services') + .card-tools + button.btn.btn-tool data-card-widget="collapse" + i.fas.fa-minus + .card-body.p-0 + table.table + - @services.each do |name, health| + tr + td = name + td style="width: 20px" + - if health + i.fas.fa-check.text-green + - else + i.fas.fa-exclamation-triangle.text-red + .card .card-header h3.card-title = t('.volume_mounted') diff --git a/config/locales/zealot/en.yml b/config/locales/zealot/en.yml index 4436943b6..be281da1e 100644 --- a/config/locales/zealot/en.yml +++ b/config/locales/zealot/en.yml @@ -182,6 +182,7 @@ en: fail_detect_disk: Fail to detect disk information system_environment: System environment file_permissions: File permissions + services: Services health ruby_gems: Ruby Gems logs: Logs new_version: Found new version diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index c81bc9538..c9935c61a 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -180,6 +180,7 @@ zh-CN: fail_detect_disk: 硬盘信息无法获取 system_environment: 系统变量 file_permissions: 文件权限 + services: 服务状态 ruby_gems: Ruby Gems logs: 日志 new_version: '发现新版本 ' From ac95a2fb4873b3def7d225edc97f37a103bbf187 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 29 Jul 2022 17:43:34 +0800 Subject: [PATCH 1034/2165] =?UTF-8?q?doc:=20=E6=9B=B4=E6=96=B0=E7=89=B9?= =?UTF-8?q?=E6=80=A7=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index fdda7974b..b5d00aa45 100644 --- a/README.md +++ b/README.md @@ -14,18 +14,20 @@ ## 特性 - [x] 支持 iOS、Android (apk/aab) 和 macOS 应用的上传、在线安装和本地下载 -- [x] 支持创建类型(Debug、AdHoc、Release)及渠道(小米商店等) -- [x] 支持自定义网络钩子通知各种服务(钉钉、企业微信、Slack 等) -- [x] 支持 iOS dSYM 和 Android Progruard 文件的解析和上传 -- [x] 支持应用解包(甚至 mobileprovision 文件)存储和分享 -- [x] 支持一键登录(已接入飞书、Gitlab、Google 和 LDAP) -- [x] 提供检查新版本和安装服务的 iOS 和 Android 组件 -- [x] 提供获取 iOS 设备标识符并显示支持安装的应用列表 -- [x] 提供丰富的 fastlane 插件 [zealot](https://github.com/tryzealot/fastlane-plugin-zealot) -- [x] 可接入 Gitlab 服务直接挂钩源码管理 -- [ ] 可接入 Jenkins 服务实现远程构建 -- [x] 支持丰富的 REST APIs -- [ ] 支持 GraphQL 接口(进行中) +- [x] 自定义网络钩子通知各种服务(譬如钉钉、企业微信、Slack 等) +- [x] 多类型(Debug、AdHoc、Release)及渠道(应用商店等)管理 +- [x] iOS dSYM 和 Android Progruard 文件的解析和存储 +- [x] 应用解包(甚至 mobileprovision 文件)存储和分享 +- [x] 检查新版本和安装服务的 iOS 和 Android SDK 组件 +- [x] 获取 iOS 设备 UDID 显示支持安装的应用列表 +- [x] 飞书、Gitlab、Google 和 LDAP 一键登录 +- [x] 托管苹果开发者智能注册 iOS 测试设备 +- [x] 持续构建的 fastlane 插件 [zealot](https://github.com/tryzealot/fastlane-plugin-zealot) +- [x] Gitlab 服务直接挂钩源码管理 +- [ ] Jenkins 服务实现远程构建 +- [x] 丰富的 REST APIs +- [ ] GraphQL 接口 +- [x] 黑暗模式 ## 在线演示 From 415cb3af80e790709d1a08b9001de4a25b1c6ba1 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 29 Jul 2022 18:04:29 +0800 Subject: [PATCH 1035/2165] =?UTF-8?q?fix:=20webhook=20=E8=B7=B3=E8=BD=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/web_hooks_controller.rb | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/controllers/web_hooks_controller.rb b/app/controllers/web_hooks_controller.rb index 74b99b8c3..7992b63e4 100644 --- a/app/controllers/web_hooks_controller.rb +++ b/app/controllers/web_hooks_controller.rb @@ -12,19 +12,19 @@ def create authorize @web_hook return redirect_to_channel_url, status: :unprocessable_entity unless @web_hook.save - redirect_to_channel_url notice: t('activerecord.success.create', key: t('web_hooks.title')) + redirect_to channel_url notice: t('activerecord.success.create', key: t('web_hooks.title')) end def destroy authorize @web_hook @web_hook.destroy - redirect_to_channel_url, status: :see_other, notice: t('activerecord.success.destroy', key: t('web_hooks.title')) + redirect_to channel_url, status: :see_other, notice: t('activerecord.success.destroy', key: t('web_hooks.title')) end def disable authorize @web_hook @channel.web_hooks.delete @web_hook - redirect_to_channel_url notice: t('admin.web_hooks.messages.success.disable') + redirect_to channel_url notice: t('admin.web_hooks.messages.success.disable') end def enable @@ -37,7 +37,7 @@ def test authorize @web_hook event = params[:event] || 'upload_events' AppWebHookJob.perform_later event, @web_hook, @channel - redirect_to_channel_url notice: t('admin.web_hooks.messages.success.test') + redirect_to channel_url notice: t('admin.web_hooks.messages.success.test') end private From ad22766423e7fed32783f0b937aaec00b31d6d3d Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 29 Jul 2022 18:34:15 +0800 Subject: [PATCH 1036/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E7=BD=91?= =?UTF-8?q?=E7=BB=9C=E9=92=A9=E5=AD=90=E7=BC=96=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/web_hooks_controller.rb | 13 ++++++------- app/javascript/controllers/application.js | 2 +- app/views/admin/apple_keys/index.html.slim | 3 ++- app/views/web_hooks/_item.html.slim | 3 ++- 4 files changed, 11 insertions(+), 10 deletions(-) diff --git a/app/controllers/web_hooks_controller.rb b/app/controllers/web_hooks_controller.rb index 7992b63e4..0ed005255 100644 --- a/app/controllers/web_hooks_controller.rb +++ b/app/controllers/web_hooks_controller.rb @@ -7,24 +7,23 @@ class WebHooksController < ApplicationController def create @web_hook = WebHook.new(web_hook_params) - @channel.web_hooks << @web_hook - authorize @web_hook - return redirect_to_channel_url, status: :unprocessable_entity unless @web_hook.save + return redirect_to_channel_url status: :unprocessable_entity unless @web_hook.save - redirect_to channel_url notice: t('activerecord.success.create', key: t('web_hooks.title')) + @channel.web_hooks << @web_hook + redirect_to_channel_url notice: t('activerecord.success.create', key: t('web_hooks.title')) end def destroy authorize @web_hook @web_hook.destroy - redirect_to channel_url, status: :see_other, notice: t('activerecord.success.destroy', key: t('web_hooks.title')) + redirect_to_channel_url notice: t('activerecord.success.destroy', key: t('web_hooks.title')), status: :see_other end def disable authorize @web_hook @channel.web_hooks.delete @web_hook - redirect_to channel_url notice: t('admin.web_hooks.messages.success.disable') + redirect_to_channel_url notice: t('admin.web_hooks.messages.success.disable') end def enable @@ -37,7 +36,7 @@ def test authorize @web_hook event = params[:event] || 'upload_events' AppWebHookJob.perform_later event, @web_hook, @channel - redirect_to channel_url notice: t('admin.web_hooks.messages.success.test') + redirect_to_channel_url notice: t('admin.web_hooks.messages.success.test') end private diff --git a/app/javascript/controllers/application.js b/app/javascript/controllers/application.js index c84f770dc..1213e85c7 100644 --- a/app/javascript/controllers/application.js +++ b/app/javascript/controllers/application.js @@ -3,7 +3,7 @@ import { Application } from "@hotwired/stimulus" const application = Application.start() // Configure Stimulus development experience -application.debug = true +application.debug = false window.Stimulus = application export { application } diff --git a/app/views/admin/apple_keys/index.html.slim b/app/views/admin/apple_keys/index.html.slim index e58657e2b..e07fe018b 100644 --- a/app/views/admin/apple_keys/index.html.slim +++ b/app/views/admin/apple_keys/index.html.slim @@ -34,7 +34,8 @@ td = time_ago_in_words(apple_key.created_at) td - = button_to t('.destroy'), admin_apple_key_path(apple_key), method: :delete, data: { turbo_confirm: t('.destroy_confirm', team: apple_key.team.display_name, team_id: apple_key.team.team_id)} + = button_to t('.destroy'), admin_apple_key_path(apple_key), \ + data: { turbo_method: :delete, turbo_confirm: t('.destroy_confirm', team: apple_key.team.display_name, team_id: apple_key.team.team_id) } - else .card.card-outline.card-warning .card-header.card-border diff --git a/app/views/web_hooks/_item.html.slim b/app/views/web_hooks/_item.html.slim index f569ac5f0..a8c2f13c5 100644 --- a/app/views/web_hooks/_item.html.slim +++ b/app/views/web_hooks/_item.html.slim @@ -37,7 +37,8 @@ tr a.dropdown-item href="#{test_channel_web_hook_path(@channel, web_hook, 'changelog_events')}" = t('simple_form.labels.web_hook.changelog_events') - if web_hook.channels_count == 1 - a.btn.btn-sm.btn-danger data-toggle="tooltip" data-placement="bottom" title="#{t('web_hooks.destroy')}" data-confirm="#{t('web_hooks.messages.confirm.destroy')}" rel="nofollow" data-method="delete" href="#{channel_web_hook_path(@channel, web_hook)}" + = link_to channel_web_hook_path(@channel, web_hook), class: 'btn btn-sm btn-danger', \ + data: { turbo_method: :delete, turbo_confirm: t('web_hooks.messages.confirm.destroy'), toggle: 'tooltip', placement: 'bottom', title: t('web_hooks.destroy') } do i.fas.fa-trash-alt - else a.btn.btn-sm.btn-warning data-toggle="tooltip" data-placement="bottom" title="#{t('web_hooks.disable')}" href="#{disable_channel_web_hook_path(@channel, web_hook)}" From f47137d3ee4e2dd4131e3892973c7a60462f9b24 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 29 Jul 2022 18:35:38 +0800 Subject: [PATCH 1037/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E7=BD=91?= =?UTF-8?q?=E7=BB=9C=E9=92=A9=E5=AD=90=E7=BC=96=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/admin/web_hooks_controller.rb | 23 ++++--------------- app/views/admin/settings/index.html.slim | 3 --- .../{show.html.slim => edit.html.slim} | 0 app/views/admin/web_hooks/index.html.slim | 5 ++-- app/views/web_hooks/_item.html.slim | 2 +- config/routes.rb | 2 +- 6 files changed, 9 insertions(+), 26 deletions(-) rename app/views/admin/web_hooks/{show.html.slim => edit.html.slim} (100%) diff --git a/app/controllers/admin/web_hooks_controller.rb b/app/controllers/admin/web_hooks_controller.rb index 7a7418f54..115c40947 100644 --- a/app/controllers/admin/web_hooks_controller.rb +++ b/app/controllers/admin/web_hooks_controller.rb @@ -1,30 +1,13 @@ # frozen_string_literal: true class Admin::WebHooksController < ApplicationController - before_action :set_web_hook, only: %i[show edit update destroy] + before_action :set_web_hook, only: %i[edit update destroy] def index @web_hooks = WebHook.all authorize @web_hooks end - def show - authorize @web_hook - end - - def new - @web_hook = WebHook.new - authorize @web_hook - end - - def create - @web_hook = WebHook.new(web_hook_params) - authorize @web_hook - return render :new, status: :unprocessable_entity unless @web_hook.save - - redirect_to admin_users_url, notice: t('activerecord.success.create', key: t('admin.web_hooks.title')) - end - def edit authorize @web_hook end @@ -40,7 +23,9 @@ def update def destroy authorize @web_hook @web_hook.destroy - redirect_to admin_web_hooks_url, notice: t('activerecord.success.destroy', key: t('admin.web_hooks.title')) + + notice = t('activerecord.success.destroy', key: t('admin.web_hooks.title')) + redirect_to admin_web_hooks_url, status: :see_other, notice: notice end private diff --git a/app/views/admin/settings/index.html.slim b/app/views/admin/settings/index.html.slim index 7486b720e..31b82da9c 100644 --- a/app/views/admin/settings/index.html.slim +++ b/app/views/admin/settings/index.html.slim @@ -4,9 +4,6 @@ - content_for :section_title do = @title -/ - content_for :header_tags do -/ = render 'admin_service', 'data-turbolinks-track': 'reload' - - content_for :section_rightpanel do - if Setting.need_restart? button.btn.btn-icon.bg-warning[ diff --git a/app/views/admin/web_hooks/show.html.slim b/app/views/admin/web_hooks/edit.html.slim similarity index 100% rename from app/views/admin/web_hooks/show.html.slim rename to app/views/admin/web_hooks/edit.html.slim diff --git a/app/views/admin/web_hooks/index.html.slim b/app/views/admin/web_hooks/index.html.slim index f614d48a3..f506844af 100644 --- a/app/views/admin/web_hooks/index.html.slim +++ b/app/views/admin/web_hooks/index.html.slim @@ -22,11 +22,12 @@ td = i + 1 td - = link_to web_hook.url, admin_web_hook_path(web_hook) + = link_to web_hook.url, edit_admin_web_hook_path(web_hook) td = raw web_hook.channels.map {|c| c.app_name }.join("
      ") td - = link_to t('.destroy'), admin_web_hook_path(web_hook), method: :delete, data: { confirm: t('.destroy_confirm') } + = link_to t('.destroy'), admin_web_hook_path(web_hook), \ + data: { turbo_method: :delete, turbo_confirm: t('.destroy_confirm') } - else .card.card-outline.card-warning .card-header.card-border diff --git a/app/views/web_hooks/_item.html.slim b/app/views/web_hooks/_item.html.slim index a8c2f13c5..8309b187f 100644 --- a/app/views/web_hooks/_item.html.slim +++ b/app/views/web_hooks/_item.html.slim @@ -23,7 +23,7 @@ tr - if type == :enabled .btn-group-vertical .btn-group - button.btn.btn-sm.btn-default data-toggle="tooltip" data-placement="top" title="#{t('web_hooks.test')}" + button.btn.btn-sm.btn-default data-toggle="tooltip" data-placement="top" title="#{t('web_hooks.test')}" disabled="true" i.fas.fa-bullhorn button.btn.btn-sm.btn-default.dropdown-toggle.dropdown-icon.dropdown-hover data-toggle="dropdown" ul.dropdown-menu role="menu" x-placement="bottom-start" diff --git a/config/routes.rb b/config/routes.rb index 2bbb0ab4c..56613c2ab 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -111,7 +111,7 @@ root to: 'settings#index' resources :users, except: :show - resources :web_hooks + resources :web_hooks, except: %i[ show new create ] resources :apple_keys, except: %i[ edit update ] do member do put :sync_devices From 1f33e85dabf29c07d4262f4c8f643cad8d72803a Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 29 Jul 2022 18:37:39 +0800 Subject: [PATCH 1038/2165] =?UTF-8?q?style:=20=E6=B8=85=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/udid/index.html.slim | 2 -- 1 file changed, 2 deletions(-) diff --git a/app/views/udid/index.html.slim b/app/views/udid/index.html.slim index bd2574bc5..585fe70dd 100644 --- a/app/views/udid/index.html.slim +++ b/app/views/udid/index.html.slim @@ -6,8 +6,6 @@ .row .col-md-12 - == render 'releases/body/app_limited' - .card .card-body.text-center = raw @qrcode.as_svg(module_size: 8, fill: 'ffffff', offset: 8) From a5155ad6d2466e1549734eacaa05e0552566a779 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 29 Jul 2022 19:30:55 +0800 Subject: [PATCH 1039/2165] =?UTF-8?q?feat:=20=E6=B5=8B=E8=AF=95=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E8=AE=BE=E5=A4=87=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/javascript/controllers/index.js | 3 ++ .../controllers/platform_controller.js | 34 +++++++++++++++++++ app/javascript/controllers/zealot.js | 3 +- app/views/udid/index.html.slim | 3 +- package.json | 3 +- yarn.lock | 5 +++ 6 files changed, 48 insertions(+), 3 deletions(-) create mode 100644 app/javascript/controllers/platform_controller.js diff --git a/app/javascript/controllers/index.js b/app/javascript/controllers/index.js index 85b7f7a67..d10b8b947 100644 --- a/app/javascript/controllers/index.js +++ b/app/javascript/controllers/index.js @@ -19,4 +19,7 @@ application.register("display", DisplayController) import DestroyController from "./destroy_controller" application.register("destroy", DestroyController) +import PlatformController from "./platform_controller" +application.register("platform", PlatformController) + import "./admin" diff --git a/app/javascript/controllers/platform_controller.js b/app/javascript/controllers/platform_controller.js new file mode 100644 index 000000000..855fdd27b --- /dev/null +++ b/app/javascript/controllers/platform_controller.js @@ -0,0 +1,34 @@ +import { Controller } from "@hotwired/stimulus" +import { UAParser } from "ua-parser-js" + +const DEVELOPMENT_ENV = "development" + +export default class extends Controller { + static targets = ["display"] + static values = { + env: String + } + + connect() { + if (this.envValue === DEVELOPMENT_ENV) { + const parser = new UAParser() + console.log(parser.getResult()) + const iOS_1to12 = /iPad|iPhone|iPod/.test(navigator.platform) + const iOS13_iPad = (navigator.platform === "MacIntel" && navigator.maxTouchPoints > 1) + const iOS13_iPad2 = (navigator.userAgent.includes("Mac") && "ontouchend" in document) + + const iOS1to12quirk = function() { + var audio = new Audio() // temporary Audio object + audio.volume = 0.5 // has no effect on iOS <= 12 + return audio.volume === 1 + } + + console.debug("navigator platform", navigator.platform) + console.debug("iOS_1to12", iOS_1to12) + console.debug("iOS13_iPad", iOS13_iPad) + console.debug("iOS13_iPad2", iOS13_iPad2) + console.debug("iOS1to12quirk", iOS1to12quirk()) + console.debug("MSStream", !window.MSStream) + } + } +} \ No newline at end of file diff --git a/app/javascript/controllers/zealot.js b/app/javascript/controllers/zealot.js index 63f1add70..dfb965322 100644 --- a/app/javascript/controllers/zealot.js +++ b/app/javascript/controllers/zealot.js @@ -1,7 +1,8 @@ var Zealot = Zealot || {} Zealot.isDarkMode = function () { - return window.matchMedia("(prefers-color-scheme: dark)").matches + return window.matchMedia("(prefers-color-scheme: dark)") + .matches } window.Zealot = Zealot diff --git a/app/views/udid/index.html.slim b/app/views/udid/index.html.slim index 585fe70dd..9a81999a4 100644 --- a/app/views/udid/index.html.slim +++ b/app/views/udid/index.html.slim @@ -6,10 +6,11 @@ .row .col-md-12 - .card + .card data-controller="platform" data-platform-env-value="#{Rails.env}" .card-body.text-center = raw @qrcode.as_svg(module_size: 8, fill: 'ffffff', offset: 8) .pt-4.text-center = t('udid.index.tip') + input.form-control.mt-3.d-none data-platform-target="display" .card-footer = link_to t('udid.index.fetch_udid'), udid_install_path, class: 'btn btn-success btn-lg btn-block' diff --git a/package.json b/package.json index 7831538e1..8c797c7f4 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,8 @@ "clipboard": "^2.0.11", "compare-versions": "^4.1.3", "esbuild": "^0.14.51", - "sass": "^1.54.0" + "sass": "^1.54.0", + "ua-parser-js": "^1.0.2" }, "scripts": { "build": "esbuild app/javascript/*.* --bundle --sourcemap --outdir=app/assets/builds --public-path=assets", diff --git a/yarn.lock b/yarn.lock index 74b00c89a..166f3da6a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1551,6 +1551,11 @@ tslib@^2.4.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== +ua-parser-js@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-1.0.2.tgz#e2976c34dbfb30b15d2c300b2a53eac87c57a775" + integrity sha512-00y/AXhx0/SsnI51fTc0rLRmafiGOM4/O+ny10Ps7f+j/b8p/ZY11ytMgznXkOVo4GQ+KwQG5UQLkLGirsACRg== + unbox-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" From 76f394f973fc2caf6dd7dd315b1773dd508fe621 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 1 Aug 2022 10:17:57 +0800 Subject: [PATCH 1040/2165] =?UTF-8?q?feat:=20=E6=B5=8B=E8=AF=95=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E8=AE=BE=E5=A4=87=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controllers/platform_controller.js | 34 +++++++++---------- app/views/udid/index.html.slim | 3 +- 2 files changed, 18 insertions(+), 19 deletions(-) diff --git a/app/javascript/controllers/platform_controller.js b/app/javascript/controllers/platform_controller.js index 855fdd27b..804759cb1 100644 --- a/app/javascript/controllers/platform_controller.js +++ b/app/javascript/controllers/platform_controller.js @@ -10,25 +10,23 @@ export default class extends Controller { } connect() { - if (this.envValue === DEVELOPMENT_ENV) { - const parser = new UAParser() - console.log(parser.getResult()) - const iOS_1to12 = /iPad|iPhone|iPod/.test(navigator.platform) - const iOS13_iPad = (navigator.platform === "MacIntel" && navigator.maxTouchPoints > 1) - const iOS13_iPad2 = (navigator.userAgent.includes("Mac") && "ontouchend" in document) + const parser = new UAParser() + console.log(parser.getResult()) + const iOS_1to12 = /iPad|iPhone|iPod/.test(navigator.platform) + const iOS13_iPad = (navigator.platform === "MacIntel" && navigator.maxTouchPoints > 1) + const iOS13_iPad2 = (navigator.userAgent.includes("Mac") && "ontouchend" in document) - const iOS1to12quirk = function() { - var audio = new Audio() // temporary Audio object - audio.volume = 0.5 // has no effect on iOS <= 12 - return audio.volume === 1 - } - - console.debug("navigator platform", navigator.platform) - console.debug("iOS_1to12", iOS_1to12) - console.debug("iOS13_iPad", iOS13_iPad) - console.debug("iOS13_iPad2", iOS13_iPad2) - console.debug("iOS1to12quirk", iOS1to12quirk()) - console.debug("MSStream", !window.MSStream) + const iOS1to12quirk = function() { + var audio = new Audio() // temporary Audio object + audio.volume = 0.5 // has no effect on iOS <= 12 + return audio.volume === 1 } + + console.debug("navigator platform", navigator.platform) + console.debug("iOS_1to12", iOS_1to12) + console.debug("iOS13_iPad", iOS13_iPad) + console.debug("iOS13_iPad2", iOS13_iPad2) + console.debug("iOS1to12quirk", iOS1to12quirk()) + console.debug("MSStream", !window.MSStream) } } \ No newline at end of file diff --git a/app/views/udid/index.html.slim b/app/views/udid/index.html.slim index 9a81999a4..c22282e1d 100644 --- a/app/views/udid/index.html.slim +++ b/app/views/udid/index.html.slim @@ -10,7 +10,8 @@ .card-body.text-center = raw @qrcode.as_svg(module_size: 8, fill: 'ffffff', offset: 8) .pt-4.text-center = t('udid.index.tip') - input.form-control.mt-3.d-none data-platform-target="display" + - if params[:preview].present? + input.form-control.mt-3 data-platform-target="display" value="#{request.user_agent}" .card-footer = link_to t('udid.index.fetch_udid'), udid_install_path, class: 'btn btn-success btn-lg btn-block' From 3f43e59142e5616ba9e7944528223e6875f86c90 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 1 Aug 2022 10:54:12 +0800 Subject: [PATCH 1041/2165] =?UTF-8?q?style:=20=E8=B0=83=E6=95=B4=E6=9F=A5?= =?UTF-8?q?=E7=9C=8B=E6=97=A5=E5=BF=97=E7=9A=84=E9=BB=91=E6=9A=97=E6=A8=A1?= =?UTF-8?q?=E5=BC=8F=E7=9A=84=E9=A2=9C=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/assets/stylesheets/admin/logs.scss | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/assets/stylesheets/admin/logs.scss b/app/assets/stylesheets/admin/logs.scss index 3316c99bf..a825bbb3f 100644 --- a/app/assets/stylesheets/admin/logs.scss +++ b/app/assets/stylesheets/admin/logs.scss @@ -30,4 +30,10 @@ } } } +} + +.dark-mode { + .system-log { + background: #2f2936; + } } \ No newline at end of file From e963bca57ce213cd037c5044fcbcc1311c5f6030 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 1 Aug 2022 11:12:34 +0800 Subject: [PATCH 1042/2165] =?UTF-8?q?refactor:=20=E5=B1=95=E5=BC=80?= =?UTF-8?q?=E8=B0=83=E8=AF=95=E6=96=87=E4=BB=B6=E6=89=8B=E5=8A=BF=E6=A0=B7?= =?UTF-8?q?=E5=BC=8F=E8=AF=A5=E7=94=A8=20javascript=20=E6=8E=A7=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 防止 js 失效时给用户造成可点击的视觉错误 --- app/assets/stylesheets/admin/index.scss | 2 +- app/assets/stylesheets/debug_files.scss | 1 - app/javascript/controllers/debug_file_controller.js | 13 +++++++++++++ app/javascript/controllers/display_controller.js | 9 --------- app/javascript/controllers/index.js | 4 ++-- app/views/admin/database_analytics/index.html.slim | 2 +- app/views/debug_files/_debug_file.html.slim | 6 +++--- app/views/debug_files/_metadata.html.slim | 2 +- 8 files changed, 21 insertions(+), 18 deletions(-) create mode 100644 app/javascript/controllers/debug_file_controller.js delete mode 100644 app/javascript/controllers/display_controller.js diff --git a/app/assets/stylesheets/admin/index.scss b/app/assets/stylesheets/admin/index.scss index 303f76f2f..674a46ce1 100644 --- a/app/assets/stylesheets/admin/index.scss +++ b/app/assets/stylesheets/admin/index.scss @@ -1,4 +1,4 @@ @import 'system_info'; @import 'web_hooks'; @import 'settings'; -@import 'logs'; +@import 'logs'; \ No newline at end of file diff --git a/app/assets/stylesheets/debug_files.scss b/app/assets/stylesheets/debug_files.scss index 7f426d82f..a7d62ff6b 100644 --- a/app/assets/stylesheets/debug_files.scss +++ b/app/assets/stylesheets/debug_files.scss @@ -1,7 +1,6 @@ .debug-file-section { position: relative; width: 100%; - cursor: pointer; .debug-file-section-header { display: block; diff --git a/app/javascript/controllers/debug_file_controller.js b/app/javascript/controllers/debug_file_controller.js new file mode 100644 index 000000000..ba65e89e5 --- /dev/null +++ b/app/javascript/controllers/debug_file_controller.js @@ -0,0 +1,13 @@ +import { Controller } from "@hotwired/stimulus" + +export default class extends Controller { + static targets = ["source"] + + connect() { + this.element.style.cursor = "pointer" + } + + toggle() { + this.sourceTarget.classList.toggle("d-none") + } +} \ No newline at end of file diff --git a/app/javascript/controllers/display_controller.js b/app/javascript/controllers/display_controller.js deleted file mode 100644 index 77e666569..000000000 --- a/app/javascript/controllers/display_controller.js +++ /dev/null @@ -1,9 +0,0 @@ -import { Controller } from "@hotwired/stimulus" - -export default class extends Controller { - static targets = ["element"] - - toggle() { - this.elementTarget.classList.toggle("d-none") - } -} \ No newline at end of file diff --git a/app/javascript/controllers/index.js b/app/javascript/controllers/index.js index d10b8b947..ea6fdf768 100644 --- a/app/javascript/controllers/index.js +++ b/app/javascript/controllers/index.js @@ -13,8 +13,8 @@ application.register("clipboard-center", ClipboardCenterController) import ReleaseDownloadController from "./release_download_controller" application.register("release-download", ReleaseDownloadController) -import DisplayController from "./display_controller" -application.register("display", DisplayController) +import DebugFileController from "./debug_file_controller" +application.register("debug-file", DebugFileController) import DestroyController from "./destroy_controller" application.register("destroy", DestroyController) diff --git a/app/views/admin/database_analytics/index.html.slim b/app/views/admin/database_analytics/index.html.slim index f36a18d81..cc906bbc0 100644 --- a/app/views/admin/database_analytics/index.html.slim +++ b/app/views/admin/database_analytics/index.html.slim @@ -7,5 +7,5 @@ .row .col-md-12 .card - .card-body.p-0 + .card-body.p-0.database-analytics iframe src="#{admin_pghero_path}" style="border: 0" width="100%" height="970" \ No newline at end of file diff --git a/app/views/debug_files/_debug_file.html.slim b/app/views/debug_files/_debug_file.html.slim index ff8e1edb5..e039d761d 100644 --- a/app/views/debug_files/_debug_file.html.slim +++ b/app/views/debug_files/_debug_file.html.slim @@ -11,10 +11,10 @@ ruby: data-destroy-content-value="#{t('debug_files.confirm.destroy.body')}" data-destroy-cancel-value="#{t('debug_files.confirm.destroy.cancel')}" ] - td data-controller="display" - .debug-file-section + td + .debug-file-section data-controller="debug-file" .debug-file-section-header - .debug-file-toggle data-action="click->display#toggle" + .debug-file-toggle data-action="click->debug-file#toggle" h3.debug-file-section-title - unless debug_file.build_version.blank? span.debug-file-version diff --git a/app/views/debug_files/_metadata.html.slim b/app/views/debug_files/_metadata.html.slim index 99e612e13..21eace0b2 100644 --- a/app/views/debug_files/_metadata.html.slim +++ b/app/views/debug_files/_metadata.html.slim @@ -1,5 +1,5 @@ .debug-file-section-body.p-1.d-none[ - data-display-target="element" + data-debug-file-target="source" ] table.table - debug_file.metadata.each do |metadata| From fab9b426acf0d8f909886b29f539f9a5ed019109 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 2 Aug 2022 11:56:40 +0800 Subject: [PATCH 1043/2165] =?UTF-8?q?chore:=20=E6=B8=85=E7=90=86=E6=97=A0?= =?UTF-8?q?=E7=94=A8=E5=BA=94=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .dockerignore | 2 ++ .gitignore | 2 +- config/aaaacredentials.yml.enc | 1 - config/master2222.key | 1 - 4 files changed, 3 insertions(+), 3 deletions(-) delete mode 100644 config/aaaacredentials.yml.enc delete mode 100644 config/master2222.key diff --git a/.dockerignore b/.dockerignore index 069940151..ca9ccbc14 100644 --- a/.dockerignore +++ b/.dockerignore @@ -21,6 +21,8 @@ public/uploads/* public/system/* vendor/bundle/* node_modules/* +config/master*.key +config/credentials.yml* Guardfile # docker diff --git a/.gitignore b/.gitignore index 0cc46c3b4..8275b4b6c 100644 --- a/.gitignore +++ b/.gitignore @@ -8,7 +8,7 @@ bundler/ storage/ # minimal Rails specific artifacts -/config/master.key +/config/master*.key /config/credentials.yml* db/*.sqlite3 /db/*.sqlite3-journal diff --git a/config/aaaacredentials.yml.enc b/config/aaaacredentials.yml.enc deleted file mode 100644 index 69937607a..000000000 --- a/config/aaaacredentials.yml.enc +++ /dev/null @@ -1 +0,0 @@ -dLlXR8hwQ+IUYUEajev6hnMiLmMZO3hKjVSvzyrltOXyPQBOtIIOjf6zitJI0OJu/KlYL/41Ekz75Wuzr/RlEY57FlMUgSAGOSNhg31M+5xi3ZsCMUs3Mwj4vmDjpb8oHn/xwYtYVOCu3zUXcOpoMyUeazxTchfa0c8jfL24mLa2QfDnBXXMDQAnXjZE+c726tomXkIbNpDNQ0FRCAzx0CscWeRWkTFf7upEj8Zx5DSv/k9nVlOj62yTzne/Ykt09QEu6xTbrfB0ywyVcg9ShDCe1mI80qDJGCHS2Ep6YbdojmKpMAy4WajmIug4bdo+jSfCtbEkM3KxfB3GSKJaPxETYLs/5V4qCwZ50UONcw3vz/ky74csKIIjMp8N7L6/Q3T2GKjrQbD3ZzNPEZrfvH7pi82q2owBU9XfWpsLgRWK8WhPEW3SZ6OhyBQ8wmZh8/gtxCAAwxCNNw==--rZhCuo97nyD9i1G1--RbHIWxLWe+qbF8ZH3l6pUQ== \ No newline at end of file diff --git a/config/master2222.key b/config/master2222.key deleted file mode 100644 index 449668c74..000000000 --- a/config/master2222.key +++ /dev/null @@ -1 +0,0 @@ -c54b820c7729e01c7328bd24566fbfd9 \ No newline at end of file From 94b6d1a5b8c1f3118028501e39368d304972e880 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 2 Aug 2022 12:00:07 +0800 Subject: [PATCH 1044/2165] =?UTF-8?q?refactor:=20Rails=207=20=E4=B8=8D?= =?UTF-8?q?=E5=86=8D=E9=9C=80=E8=A6=81=E8=AE=BE=E5=AE=9A=20nested=20locale?= =?UTF-8?q?=20=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Source: https://blog.saeloun.com/2021/07/20/rails-7-allows-nested-locales --- config/application.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/application.rb b/config/application.rb index d1968b93a..ca8f329b8 100644 --- a/config/application.rb +++ b/config/application.rb @@ -30,7 +30,7 @@ class Application < Rails::Application # Set default locale locale = ENV['DEFAULT_LOCALE']&.to_sym - config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}')] + # config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}')] config.i18n.available_locales = %i[zh-CN en] config.i18n.default_locale = config.i18n.available_locales.include?(locale) ? locale : :'zh-CN' From 13145a10c7ddde41825d49cbb80ea1a3cd76b5c4 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 2 Aug 2022 13:29:47 +0800 Subject: [PATCH 1045/2165] =?UTF-8?q?refactor:=20=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E8=AE=BE=E5=A4=87=20UDID=20=E8=B7=AF=E7=94=B1=E8=A7=84?= =?UTF-8?q?=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 2 -- Gemfile.lock | 6 ----- app/controllers/udid_controller.rb | 2 +- app/views/admin/apple_keys/show.html.slim | 2 +- app/views/layouts/_main_sidebar.html.slim | 2 +- app/views/udid/_apple_keys.html.slim | 2 +- app/views/udid/index.html.slim | 2 +- app/views/udid/install.html.erb | 2 +- config/locales/zealot/en.yml | 2 +- config/locales/zealot/zh-CN.yml | 2 +- config/routes.rb | 32 +++++++++++------------ 11 files changed, 24 insertions(+), 32 deletions(-) diff --git a/Gemfile b/Gemfile index 80ab82da2..42fc12671 100644 --- a/Gemfile +++ b/Gemfile @@ -114,7 +114,6 @@ group :development do gem 'graphiql-rails' # 调试器 - gem 'byebug', platforms: %i[mri mingw x64_mingw] ## VSCode debug: https://marketplace.visualstudio.com/items?itemName=KoichiSasada.vscode-rdbg gem 'debug', '~> 1.6.1', platforms: %i[ mri mingw x64_mingw ] @@ -142,7 +141,6 @@ group :development, :test do gem 'rubocop', '>= 0.70', require: false gem 'rubocop-rails', require: false - gem 'pry-byebug' gem 'pry-rails' gem 'pry-rescue' end \ No newline at end of file diff --git a/Gemfile.lock b/Gemfile.lock index 7bd75edef..47d21006d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -110,7 +110,6 @@ GEM bootsnap (1.13.0) msgpack (~> 1.2) builder (3.2.4) - byebug (11.1.3) carrierwave (2.2.2) activemodel (>= 5.0.0) activesupport (>= 5.0.0) @@ -337,9 +336,6 @@ GEM pry (0.13.1) coderay (~> 1.1) method_source (~> 1.0) - pry-byebug (3.9.0) - byebug (~> 11.0) - pry (~> 0.13.0) pry-rails (0.3.9) pry (>= 0.10.4) pry-rescue (1.5.2) @@ -524,7 +520,6 @@ DEPENDENCIES better_errors binding_of_caller bootsnap (>= 1.4.7) - byebug carrierwave (~> 2.2.2) cssbundling-rails (~> 1.1) debug (~> 1.6.1) @@ -560,7 +555,6 @@ DEPENDENCIES pghero (~> 2.8.3) plist (~> 3.6.0) propshaft (= 0.6.4) - pry-byebug pry-rails pry-rescue puma (~> 5.6.4) diff --git a/app/controllers/udid_controller.rb b/app/controllers/udid_controller.rb index 00d978e35..f122b7fa0 100644 --- a/app/controllers/udid_controller.rb +++ b/app/controllers/udid_controller.rb @@ -7,7 +7,7 @@ class UdidController < ApplicationController # GET /udid def index @title = t('udid.title') - @qrcode = RQRCode::QRCode.new(udid_url) + @qrcode = RQRCode::QRCode.new(udid_index_url) end # POST /udid/retrive diff --git a/app/views/admin/apple_keys/show.html.slim b/app/views/admin/apple_keys/show.html.slim index 585c2cafb..3d105a52d 100644 --- a/app/views/admin/apple_keys/show.html.slim +++ b/app/views/admin/apple_keys/show.html.slim @@ -58,7 +58,7 @@ ruby: th = t('.udid_created_at') - @apple_key.devices.order(created_at: :desc).each do |device| tr - td = link_to device.udid, udid_result_path(udid: device.udid) + td = link_to device.udid, udid_path(udid: device.udid) td = device.name td = device.platform td = device.model diff --git a/app/views/layouts/_main_sidebar.html.slim b/app/views/layouts/_main_sidebar.html.slim index 26c0c59da..b39d6d655 100644 --- a/app/views/layouts/_main_sidebar.html.slim +++ b/app/views/layouts/_main_sidebar.html.slim @@ -21,7 +21,7 @@ i.nav-icon.fas.fa-layer-group p = t('teardowns.title') li class="nav-item" - a.nav-link href="#{udid_path}" class="#{active_class(udid_path)}" + a.nav-link href="#{udid_index_path}" class="#{active_class(udid_index_path)}" i.nav-icon.fas.fa-eye p = t('udid.title') diff --git a/app/views/udid/_apple_keys.html.slim b/app/views/udid/_apple_keys.html.slim index fec90fd76..4ad6ffa86 100644 --- a/app/views/udid/_apple_keys.html.slim +++ b/app/views/udid/_apple_keys.html.slim @@ -18,5 +18,5 @@ td = apple_key.team.team_id - if result == 'register_apple_key' ruby: - register_link = udid_register_path(udid: params[:udid], apple_key_id: apple_key.id, product: params[:product]) + register_link = register_udid_path(udid: params[:udid], apple_key_id: apple_key.id, product: params[:product]) td = button_to t('udid.show.register_device'), register_link, method: :post, class: 'btn btn-sm btn-success' \ No newline at end of file diff --git a/app/views/udid/index.html.slim b/app/views/udid/index.html.slim index c22282e1d..9ad943e7b 100644 --- a/app/views/udid/index.html.slim +++ b/app/views/udid/index.html.slim @@ -13,7 +13,7 @@ - if params[:preview].present? input.form-control.mt-3 data-platform-target="display" value="#{request.user_agent}" .card-footer - = link_to t('udid.index.fetch_udid'), udid_install_path, class: 'btn btn-success btn-lg btn-block' + = link_to t('udid.index.fetch_udid'), install_udid_index_path, class: 'btn btn-success btn-lg btn-block' .col-md-12 .card diff --git a/app/views/udid/install.html.erb b/app/views/udid/install.html.erb index a8257ecaf..4aea43c1a 100644 --- a/app/views/udid/install.html.erb +++ b/app/views/udid/install.html.erb @@ -5,7 +5,7 @@ PayloadContent URL - <%= udid_retrieve_url %> + <%= retrieve_udid_index_url %> DeviceAttributes UDID diff --git a/config/locales/zealot/en.yml b/config/locales/zealot/en.yml index be281da1e..5f7bbdb40 100644 --- a/config/locales/zealot/en.yml +++ b/config/locales/zealot/en.yml @@ -622,7 +622,7 @@ en: registered_but_no_related_app: Device was registerd to Apple Developr, but not found any related app. registered_with_related_apps: Device was registerd to Apple Developr, install app below. register: Device is unregister, choose Apple Developer to register. - unregistered: New device found, copy the UDID to iOS Developer! + unregistered: New device found, copy the UDID to Apple Developer! registered_apps: Registerd apps udid: UDID product: Product diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index c9935c61a..096cecbe0 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -614,7 +614,7 @@ zh-CN: registered_but_no_related_app: 本设备已注册,很遗憾还没有发现关联应用 registered_with_related_apps: 本设备已注册,下面选择需要安装的应用吧 register: 本设备还未注册,快去选择对应的苹果开发者主体注册吧! - unregistered: 发现一台未注册的设备,复制 UDID 给 iOS 工程师哦! + unregistered: 发现一台未注册的设备,复制 UDID 给苹果开发工程师哦! registered_apps: 可安装应用 udid: UDID serial: 序列化 diff --git a/config/routes.rb b/config/routes.rb index 56613c2ab..e3b5927b7 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -81,22 +81,22 @@ ############################################# # UDID (iOS/iPadOS) ############################################# - # resources :uudid, as: :uudid, param: :udid, only: %i[ index show ] do - # collection do - # get :install - # post :retrieve, action: :create - # end - - # member do - # post :register - # end - # end - - get 'udid', to: 'udid#index' - get 'udid/install', to: 'udid#install' - post 'udid/retrieve', to: 'udid#create' - get 'udid/:udid', to: 'udid#show', as: 'udid_result' - post 'udid/:udid/register', to: 'udid#register', as: 'udid_register' + resources :udid, as: :udid, param: :udid, only: %i[ index show ] do + collection do + get :install + post :retrieve, action: :create + end + + member do + post :register + end + end + + # get 'udid', to: 'udid#index' + # get 'udid/install', to: 'udid#install' + # post 'udid/retrieve', to: 'udid#create' + # get 'udid/:udid', to: 'udid#show', as: 'udid_result' + # post 'udid/:udid/register', to: 'udid#register', as: 'udid_register' ############################################# # Health check From f34fd7417570b9d43cae2db600509b3dec076d21 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 2 Aug 2022 13:32:17 +0800 Subject: [PATCH 1046/2165] =?UTF-8?q?style:=20=E5=BE=AE=E8=B0=83=20UDID=20?= =?UTF-8?q?=E5=B8=AE=E5=8A=A9=E6=96=87=E6=A1=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/locales/zealot/zh-CN.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index 096cecbe0..719489311 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -597,15 +597,15 @@ zh-CN: title: 为什么需要设备 UDID? body_html: |

      - UDID 全称 Unique Device Identifier 是 iOS 设备唯一且独一无二的识别码,iOS 7 之前可以从应用获取, + UDID 全称 Unique Device Identifier 是苹果设备唯一且独一无二的识别码,iOS 7 之前可以从应用获取, 之后版本不再允许从应用内随意获取,iOS 的应用打包如使用 AdHoc 的方式签名必须设置设备白名单来保证设备测试的安全性 (说人话就是不允许在非苹果应用市场分发),因此需要通过外部安装描述文件的方式单次授权获取。

      获取步骤
      1. 点击系统会弹窗的 “允许” 下载描述文件
      2. -
      3. 打开手机 ”设置” 找到顶部的 ”已下载描述文件“ 点击可以待安装的 ”获取设备UDID“ 的描述文件
      4. -
      5. 一路点击 ”安装“ 并输入锁屏密码允许安装描述文件
      6. +
      7. 打开手机 “设置” 找到顶部的 “已下载描述文件” 点击可以待安装的 “获取设备UDID” 的描述文件
      8. +
      9. 一路点击 “安装” 并输入锁屏密码允许安装描述文件
      10. 安装之后描述文件会自动删除并跳转一个结果页面
      show: From 3f305ce313cfd024c429572939d669a6dcbf1b0b Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 2 Aug 2022 17:22:29 +0800 Subject: [PATCH 1047/2165] =?UTF-8?q?chore:=20=E6=9B=B4=E6=96=B0=E6=9C=AC?= =?UTF-8?q?=E5=9C=B0=E5=BC=80=E5=8F=91=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Procfile.dev | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Procfile.dev b/Procfile.dev index 2eccd80ae..2968acc4f 100644 --- a/Procfile.dev +++ b/Procfile.dev @@ -1,4 +1,4 @@ -web: bin/rails server -p 3000 +web: bin/rails server -p 3000 -b 0.0.0.0 job: bin/sidekiq -C config/sidekiq.yml js: yarn build --watch css: yarn build:css --watch From 7282336996dcfedd46c1ce0cd3b350d8784b2015 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 2 Aug 2022 18:07:27 +0800 Subject: [PATCH 1048/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=BA=94?= =?UTF-8?q?=E7=94=A8=E6=B8=A0=E9=81=93=E7=89=88=E6=9C=AC=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E6=B2=A1=E5=88=86=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/channels/versions_controller.rb | 2 ++ app/views/channels/filters/index.slim | 7 ++++++- app/views/releases/sidebar/_version.html.slim | 3 --- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/app/controllers/channels/versions_controller.rb b/app/controllers/channels/versions_controller.rb index 32a596838..95ffdfc23 100644 --- a/app/controllers/channels/versions_controller.rb +++ b/app/controllers/channels/versions_controller.rb @@ -22,6 +22,8 @@ def show @releases = @channel.releases .where(release_version: @version) .order(id: :desc) + .page(params.fetch(:page, 1)) + .per(params.fetch(:per_page, 10)) render 'channels/filters/index' end diff --git a/app/views/channels/filters/index.slim b/app/views/channels/filters/index.slim index dcc4a4e08..4e85bdf1b 100644 --- a/app/views/channels/filters/index.slim +++ b/app/views/channels/filters/index.slim @@ -13,5 +13,10 @@ a href="#{friendly_channel_overview_path(@channel)}" i.icon.far.fa-list-alt = t('links.back_to_list') - .table-responsive + .card-body.p-0 == render 'channels/filters/list' + + - if @releases.total_pages > 1 + .card-footer + .float-right + = paginate @releases diff --git a/app/views/releases/sidebar/_version.html.slim b/app/views/releases/sidebar/_version.html.slim index 891a03c60..8313f226d 100644 --- a/app/views/releases/sidebar/_version.html.slim +++ b/app/views/releases/sidebar/_version.html.slim @@ -1,6 +1,3 @@ -ruby: - channel = @release.channel - - if channel.release_versions.count > 0 .card .card-header From d6e84db4567a4876c171ae762274a35e39738a08 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 2 Aug 2022 18:23:56 +0800 Subject: [PATCH 1049/2165] =?UTF-8?q?refactor:=20=E5=BE=AE=E6=8A=BD?= =?UTF-8?q?=E7=A6=BB=E7=89=88=E6=9C=AC=E8=AF=A6=E6=83=85=E9=A1=B5=E8=A7=86?= =?UTF-8?q?=E5=9B=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/releases/body/_activity.html.slim | 17 +++++++++-------- app/views/releases/show.html.slim | 4 ++-- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/app/views/releases/body/_activity.html.slim b/app/views/releases/body/_activity.html.slim index 32f27184b..42105d39c 100644 --- a/app/views/releases/body/_activity.html.slim +++ b/app/views/releases/body/_activity.html.slim @@ -1,7 +1,4 @@ -ruby: - releases = @release.channel.recently_releases - -- if releases.size > 0 +- if recently_releases.size > 0 .card .card-header h3.card-title @@ -12,9 +9,9 @@ ruby: i.fas.fa-minus .card-body.pb-0 .timeline - - releases.each do |release| + - recently_releases.each do |release| div - i.fa-circle class="#{@release == release ? 'fas' : 'far'}" + i.fa-circle class="#{current_release == release ? 'fas' : 'far'}" .timeline-item span.time i.icon.fas.fa-clock @@ -39,11 +36,15 @@ ruby: - if release.short_git_commit.present? small.badge - if release.channel.git_url.present? - = git_commit_url(@release.channel.git_url, @release.git_commit) + = git_commit_url(current_release.channel.git_url, current_release.git_commit) - else = release.short_git_commit div i.fas.fa-clock - if guest_mode_or_signed_in? + ruby: + channel_path = friendly_channel_overview_path(current_release.channel) + .card-footbar - a.btn.btn-default.btn-block.btn-flat href="#{friendly_channel_overview_path(@release.channel)}" = t('releases.show.more') \ No newline at end of file + a.btn.btn-default.btn-block.btn-flat href="#{channel_path}" + = t('releases.show.more') \ No newline at end of file diff --git a/app/views/releases/show.html.slim b/app/views/releases/show.html.slim index ae43deec2..9b877e3bf 100644 --- a/app/views/releases/show.html.slim +++ b/app/views/releases/show.html.slim @@ -7,12 +7,12 @@ == render 'releases/body/metadata' == render 'releases/body/changelog' == render 'releases/body/devices' - == render 'releases/body/activity' + == render 'releases/body/activity', current_release: @release, recently_releases: @release.channel.recently_releases .col-md-4.col-lg-3 - if user_signed_in? a.btn.btn-success.btn-block.mb-3 href="#{new_channel_release_path(@channel)}" = t('releases.new.title') - == render 'releases/sidebar/version' + == render 'releases/sidebar/version', channel: @release.channel == render 'releases/sidebar/qrcode' - if guest_mode_or_signed_in? a.btn.btn-default.btn-block href="#{friendly_channel_overview_path(@channel)}" = t('releases.show.view_detail') From f385b21c9a488fbd686cd662984f89cd73c7d821 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 2 Aug 2022 18:39:34 +0800 Subject: [PATCH 1050/2165] =?UTF-8?q?style:=20=E8=B0=83=E6=95=B4=E5=BA=94?= =?UTF-8?q?=E7=94=A8=E6=B8=A0=E9=81=93=E5=88=97=E8=A1=A8=E6=8C=89=E9=92=AE?= =?UTF-8?q?=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/assets/stylesheets/layout.scss | 11 +++++++---- app/helpers/apps_helper.rb | 8 ++++++++ app/views/apps/show.html.slim | 21 ++++++++++----------- 3 files changed, 25 insertions(+), 15 deletions(-) diff --git a/app/assets/stylesheets/layout.scss b/app/assets/stylesheets/layout.scss index 4913c104f..236a272bd 100644 --- a/app/assets/stylesheets/layout.scss +++ b/app/assets/stylesheets/layout.scss @@ -34,13 +34,16 @@ margin: auto; } +.btn-group { + .btn-icon { + margin-right: 0; + } +} + .btn-icon { margin-right: 10px; - .fa, - .fab, - .far, - .fas { + i { margin-right: 5px; } } diff --git a/app/helpers/apps_helper.rb b/app/helpers/apps_helper.rb index f4b543cb4..9f4463034 100644 --- a/app/helpers/apps_helper.rb +++ b/app/helpers/apps_helper.rb @@ -11,6 +11,14 @@ def preset_channels Channel.device_types.values end + def app_channel_columns(schemes_total) + case schemes_total + when 1 then 12 + when 2 then 6 + else 4 + end + end + def app_icon(release, options = {}) unless release&.icon && release.icon.file && release.icon.file.exists? return image_tag('touch-icon.png', **options) diff --git a/app/views/apps/show.html.slim b/app/views/apps/show.html.slim index c87278921..eac857d26 100644 --- a/app/views/apps/show.html.slim +++ b/app/views/apps/show.html.slim @@ -1,10 +1,6 @@ ruby: schemes_total = @app.schemes.count - column = case schemes_total - when 1 then 12 - when 2 then 6 - else 4 - end + - content_for :title do = @app.name @@ -13,23 +9,25 @@ ruby: - content_for :section_rightpanel do .btn-group - = button_link_to t('apps.show.new_scheme'), new_app_scheme_path(@app), 'plus-square', class: 'btn-icon btn-default btn-sm btn-flat' - = button_link_to t('apps.show.edit_app'), edit_app_path(@app), 'edit', class: 'btn-icon btn-default btn-sm btn-flat' - = button_link_to t('apps.show.destroy_app'), app_path(@app), 'trash-alt', class: 'btn-icon btn-default btn-sm btn-flat', \ + = button_link_to t('apps.show.new_scheme'), new_app_scheme_path(@app), \ + 'plus-square', class: 'btn btn-default btn-icon btn-sm btn-flat' + = button_link_to t('apps.show.edit_app'), edit_app_path(@app), \ + 'edit', class: 'btn btn-default btn-icon btn-sm btn-flat' + = button_link_to t('apps.show.destroy_app'), app_path(@app), \ + 'trash-alt', class: 'btn btn-default btn-icon btn-sm btn-flat', \ data: { turbo_method: :delete, turbo_confirm: "#{t('apps.messages.confirm.delete_app', name: @app.name)}" } .row - if schemes_total > 0 - - @app.schemes.each do |scheme| - div class="col-md-#{column}" + .app-channel class="col-md-#{app_channel_columns(schemes_total)}" .card .card-header h3.card-title = scheme.name .card-tools .sections-actions.btn-group - = button_link_to t('apps.show.new_channel'), new_app_scheme_channel_path(@app, scheme), 'plus-square', class: 'btn-icon btn-default btn-sm btn-flat' + = button_link_to t('apps.show.new_channel'), new_app_scheme_channel_path(@app, scheme), 'plus-square', class: 'btn btn-icon btn-default btn-sm btn-flat' = button_link_to t('apps.show.edit_scheme'), edit_app_scheme_path(@app, scheme), 'edit', class: 'btn-icon btn-default btn-sm btn-flat' = button_link_to t('apps.show.destory_scheme'), app_scheme_path(@app, scheme), 'trash-alt', class: 'btn-icon btn-default btn-sm btn-flat', \ data: { turbo_method: :delete, turbo_confirm: "#{t('apps.messages.confirm.delete_app_scheme', name: scheme.app_name)}" } @@ -50,6 +48,7 @@ ruby: tr td colspan="2" = t('apps.show.not_found_channel_body_html') + - else .col-md-12 .card.card-outline.card-warning From 475135bd94fad5e21de15095feda3448240b0841 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 3 Aug 2022 12:19:35 +0800 Subject: [PATCH 1051/2165] =?UTF-8?q?feat:=20=E5=AE=9E=E6=97=B6=E5=88=B7?= =?UTF-8?q?=E6=96=B0=E6=97=A5=E5=BF=97=E6=9F=A5=E7=9C=8B=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/assets/stylesheets/admin/logs.scss | 38 ++----------------- app/controllers/admin/logs_controller.rb | 23 +++++++---- app/javascript/controllers/admin/index.js | 9 ++--- .../controllers/admin/logs_controller.js | 38 +++++++++++++++++++ app/javascript/controllers/application.js | 1 - .../controllers/global_controller.js | 15 +++++++- app/javascript/controllers/index.js | 4 -- app/javascript/controllers/utils.js | 25 ++++++++++++ app/javascript/controllers/zealot.js | 7 ++++ app/views/admin/logs/index.html.slim | 16 ++++---- app/views/layouts/application.html.slim | 1 + config/initializers/1_lograge.rb | 1 + config/locales/zealot/en.yml | 3 +- config/locales/zealot/zh-CN.yml | 3 +- config/routes.rb | 6 ++- 15 files changed, 126 insertions(+), 64 deletions(-) create mode 100644 app/javascript/controllers/admin/logs_controller.js create mode 100644 app/javascript/controllers/utils.js diff --git a/app/assets/stylesheets/admin/logs.scss b/app/assets/stylesheets/admin/logs.scss index a825bbb3f..6bdde2af8 100644 --- a/app/assets/stylesheets/admin/logs.scss +++ b/app/assets/stylesheets/admin/logs.scss @@ -1,39 +1,7 @@ .system-log { - background: #404040; + background: #2f2936; - ol { - margin-left: 60px; - padding:10px 0; - margin-bottom: 0; - border-left: 1px solid #4c4c4c; - // counter-reset: number; - // list-style-type: none; - // background: #404040; - - li { - color: #dedede; - - // &::before { - // counter-increment: number; - // content: counter(number)"\a0"; - // } - - &:hover { - background-color: #2d3238; - } - - p { - margin: 0; - color: #dedede; - line-height:24px; - padding-left: 20px; - } - } - } -} - -.dark-mode { - .system-log { - background: #2f2936; + pre { + color: #dedede; } } \ No newline at end of file diff --git a/app/controllers/admin/logs_controller.rb b/app/controllers/admin/logs_controller.rb index f5df7f3bd..f33bf4928 100644 --- a/app/controllers/admin/logs_controller.rb +++ b/app/controllers/admin/logs_controller.rb @@ -4,24 +4,34 @@ require 'open3' class Admin::LogsController < ApplicationController + before_action :get_log, only: :retrive + FILENAME = Rails.env.development? ? 'development.log' : 'zealot.log' - MAX_LINE_NUMBER = 2000 + MAX_LINE_NUMBER = 500 def index @filename = FILENAME - @logs = logs - @number = MAX_LINE_NUMBER + @interval = params[:interval] || 1000 + end + + def retrive + render plain: @logs end private - def logs - return [] unless File.readable?(log_path) + def get_log + @max_line = params[:number] || MAX_LINE_NUMBER + @logs = logs(@max_line) + end + + def logs(line) + return '' unless File.readable?(log_path) cmd_stdout = '' cmd_stderr = '' cmd_status = nil - cmd = %W(tail -n #{MAX_LINE_NUMBER} #{log_path}) + cmd = %W(tail -n #{line} #{log_path}) Open3.popen3(*cmd) do |stdin, stdout, stderr, wait_thr| out_reader = Thread.new { stdout.read } err_reader = Thread.new { stderr.read } @@ -35,7 +45,6 @@ def logs content = cmd_stdout.strip content = content.gsub(/\[\d+m/, '') if Rails.env.development? - content.split("\n") end def log_path diff --git a/app/javascript/controllers/admin/index.js b/app/javascript/controllers/admin/index.js index e12fc9483..61936727b 100644 --- a/app/javascript/controllers/admin/index.js +++ b/app/javascript/controllers/admin/index.js @@ -1,11 +1,10 @@ -// This file is auto-generated by ./bin/rails stimulus:manifest:update -// Run that command whenever you add a new controller or create them with -// ./bin/rails generate stimulus controllerName - import { application } from "../application" import NewReleaseController from "./new_release_controller" application.register("admin-new-release", NewReleaseController) import ServiceController from "./service_controller" -application.register("admin-service", ServiceController) \ No newline at end of file +application.register("admin-service", ServiceController) + +import LogsController from "./logs_controller" +application.register("admin-logs", LogsController) \ No newline at end of file diff --git a/app/javascript/controllers/admin/logs_controller.js b/app/javascript/controllers/admin/logs_controller.js new file mode 100644 index 000000000..4ba8320c8 --- /dev/null +++ b/app/javascript/controllers/admin/logs_controller.js @@ -0,0 +1,38 @@ +import { Controller } from "@hotwired/stimulus" +import { Zealot } from "../zealot" +import { poll } from "../utils" + +export default class extends Controller { + static targets = [ "source", "refresh" ] + static values = { + uri: String, + interval: Number, + errorMessage: String + } + + connect() { + const fetchLogs = async () => { + const response = await fetch(Zealot.rootUrl + this.uriValue) + if (response.status === 200) { + let content = await response.text() + this.sourceTarget.innerHTML = content + this.sourceTarget.scrollTop = this.sourceTarget.scrollHeight + + const date = new Date() + this.refreshTarget.innerHTML = date.toLocaleString() + } + + return response + } + + poll({ + fn: fetchLogs, + validate: (response) => { response.status !== 200 }, + interval: this.intervalValue + }) + .then((response) => { + // fetch return error + this.sourceTarget.innerHTML = this.errorMessageValue + response.status + }) + } +} \ No newline at end of file diff --git a/app/javascript/controllers/application.js b/app/javascript/controllers/application.js index 1213e85c7..85866d7f6 100644 --- a/app/javascript/controllers/application.js +++ b/app/javascript/controllers/application.js @@ -3,7 +3,6 @@ import { Application } from "@hotwired/stimulus" const application = Application.start() // Configure Stimulus development experience -application.debug = false window.Stimulus = application export { application } diff --git a/app/javascript/controllers/global_controller.js b/app/javascript/controllers/global_controller.js index d4dcd4856..5e8c4b84c 100644 --- a/app/javascript/controllers/global_controller.js +++ b/app/javascript/controllers/global_controller.js @@ -1,19 +1,30 @@ import { Controller } from "@hotwired/stimulus" import { Zealot } from "./zealot" +import { application } from "./application" import jquery from "jquery" export default class extends Controller { static values = { + env: String, rootUrl: String, apperance: String } connect() { + this.initZealot() + this.fixAdminlteWithTubros() + this.switchDarkMode() + } + + initZealot() { Zealot.rootUrl = this.rootUrlValue Zealot.siteApperance = this.apperanceValue + Zealot.env = this.envValue + application.debug = Zealot.isDevelopment - this.fixAdminlteWithTubros() - this.switchDarkMode() + if (Zealot.isDevelopment) { + console.debug("Zealot starts in development mode") + } } switchDarkMode() { diff --git a/app/javascript/controllers/index.js b/app/javascript/controllers/index.js index ea6fdf768..2b6c8331f 100644 --- a/app/javascript/controllers/index.js +++ b/app/javascript/controllers/index.js @@ -1,7 +1,3 @@ -// This file is auto-generated by ./bin/rails stimulus:manifest:update -// Run that command whenever you add a new controller or create them with -// ./bin/rails generate stimulus controllerName - import { application } from "./application" import GlobalController from "./global_controller" diff --git a/app/javascript/controllers/utils.js b/app/javascript/controllers/utils.js new file mode 100644 index 000000000..841817859 --- /dev/null +++ b/app/javascript/controllers/utils.js @@ -0,0 +1,25 @@ +const POLL_INTERVAL = 1000 + +const poll = ({ fn, validate, interval, maxAttempts }) => { + let attempts = 0 + + const executePoll = async (resolve, reject) => { + const result = await fn() + attempts++ + + if (!interval) { + interval = POLL_INTERVAL + } + + if (validate && validate(result)) { + return resolve(result) + } else if (maxAttempts && attempts === maxAttempts) { + return reject(new Error("Exceeded max attempts")) + } else { + setTimeout(executePoll, interval, resolve, reject) + } + } + + return new Promise(executePoll) +} +export { poll } \ No newline at end of file diff --git a/app/javascript/controllers/zealot.js b/app/javascript/controllers/zealot.js index dfb965322..a6918b920 100644 --- a/app/javascript/controllers/zealot.js +++ b/app/javascript/controllers/zealot.js @@ -1,10 +1,17 @@ var Zealot = Zealot || {} +const DEVELOPMENT_ENV = "development" + Zealot.isDarkMode = function () { return window.matchMedia("(prefers-color-scheme: dark)") .matches } +Zealot.isDevelopment = function () { + // env was given value in global_controller + return Zealot.env === DEVELOPMENT_ENV +} + window.Zealot = Zealot export { Zealot } \ No newline at end of file diff --git a/app/views/admin/logs/index.html.slim b/app/views/admin/logs/index.html.slim index 5b8960418..cdb357336 100644 --- a/app/views/admin/logs/index.html.slim +++ b/app/views/admin/logs/index.html.slim @@ -6,17 +6,19 @@ .row .col-md-12 - .card + .card[ + data-controller="admin-logs" + data-admin-logs-uri-value="#{retrive_admin_logs_path}" + data-admin-logs-interval-value="#{@interval}" + data-admin-logs-error-message-value="#{t('.error_message')}" + ] .card-header h3.card-title i.fas.fa-file = " #{@filename}" .card-tools - span.small = t('.notice', number: @number) + span.small data-admin-logs-target="refresh" .card-body.p-0.system-log - ol - - @logs.each do |line| - li - p - = line \ No newline at end of file + pre data-admin-logs-target="source" + = t('.loading') \ No newline at end of file diff --git a/app/views/layouts/application.html.slim b/app/views/layouts/application.html.slim index 95f3c5542..11dda9b6e 100644 --- a/app/views/layouts/application.html.slim +++ b/app/views/layouts/application.html.slim @@ -25,6 +25,7 @@ html lang="#{I18n.locale}" body[ class="hold-transition #{body_class}" data-controller="global" + data-global-env-value="#{Rails.env}" data-global-root-url-value="#{root_url}" data-global-apperance-value="#{Setting.site_appearance}" ] diff --git a/config/initializers/1_lograge.rb b/config/initializers/1_lograge.rb index bd97307b4..b2c0204fd 100644 --- a/config/initializers/1_lograge.rb +++ b/config/initializers/1_lograge.rb @@ -65,6 +65,7 @@ def custom_payload(controller) 'HealthCheck::HealthCheckController#index', 'ApplicationCable::Connection#connect', 'ApplicationCable::Connection#disconnect', + 'Admin::LogsController#retrive', 'NotificationChannel' ] end diff --git a/config/locales/zealot/en.yml b/config/locales/zealot/en.yml index 5f7bbdb40..7112067b9 100644 --- a/config/locales/zealot/en.yml +++ b/config/locales/zealot/en.yml @@ -204,7 +204,8 @@ en: title: Service logs index: title: :'admin.logs.title' - notice: To prevent performance issues admin logs output the last %{number} lines + loading: Loading ... + error_message: 'Failed fetch logs, return status code: ' dashboard: title: Dashboard diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index 719489311..39477c78f 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -202,7 +202,8 @@ zh-CN: title: 服务日志 index: title: :'admin.logs.title' - notice: 仅显示最新 %{number} 行代码,暂时不支持自动刷新 + loading: 日志加载中 ... + error_message: 日志获取失败,返回状态码: dashboard: title: 控制台 diff --git a/config/routes.rb b/config/routes.rb index e3b5927b7..680569065 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -123,7 +123,11 @@ resources :background_jobs, only: :index resources :system_info, only: :index resources :database_analytics, only: :index - resources :logs, only: :index + resources :logs, only: %i[ index ] do + collection do + get :retrive + end + end namespace :service do post :restart From 12f29878997c992e3c219151d6dc8de9177416f6 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 3 Aug 2022 13:35:04 +0800 Subject: [PATCH 1052/2165] =?UTF-8?q?feat:=20=E5=BF=BD=E7=95=A5=20redis=20?= =?UTF-8?q?=E4=BE=9D=E8=B5=96=E5=91=8A=E8=AD=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/application.rb | 5 +---- config/initializers/silence_redis.rb | 1 + 2 files changed, 2 insertions(+), 4 deletions(-) create mode 100644 config/initializers/silence_redis.rb diff --git a/config/application.rb b/config/application.rb index ca8f329b8..5fbacb59a 100644 --- a/config/application.rb +++ b/config/application.rb @@ -73,7 +73,4 @@ class Application < Rails::Application config.generators.stylesheets = false config.generators.system_tests = false end -end - -# # Slient redis -# Redis.silence_deprecations = true \ No newline at end of file +end \ No newline at end of file diff --git a/config/initializers/silence_redis.rb b/config/initializers/silence_redis.rb new file mode 100644 index 000000000..e121b3252 --- /dev/null +++ b/config/initializers/silence_redis.rb @@ -0,0 +1 @@ +Redis.silence_deprecations = true \ No newline at end of file From 81b117a0e205a64676b9e6861dba4da6fa0fa1fd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 3 Aug 2022 21:01:48 +0000 Subject: [PATCH 1053/2165] chore(deps): bump sass from 1.54.0 to 1.54.1 Bumps [sass](https://github.com/sass/dart-sass) from 1.54.0 to 1.54.1. - [Release notes](https://github.com/sass/dart-sass/releases) - [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md) - [Commits](https://github.com/sass/dart-sass/compare/1.54.0...1.54.1) --- updated-dependencies: - dependency-name: sass dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 8c797c7f4..4ad1265f5 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "clipboard": "^2.0.11", "compare-versions": "^4.1.3", "esbuild": "^0.14.51", - "sass": "^1.54.0", + "sass": "^1.54.1", "ua-parser-js": "^1.0.2" }, "scripts": { diff --git a/yarn.lock b/yarn.lock index 166f3da6a..3f5e8bf4f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1421,10 +1421,10 @@ safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sass@^1.54.0: - version "1.54.0" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.54.0.tgz#24873673265e2a4fe3d3a997f714971db2fba1f4" - integrity sha512-C4zp79GCXZfK0yoHZg+GxF818/aclhp9F48XBu/+bm9vXEVAYov9iU3FBVRMq3Hx3OA4jfKL+p2K9180mEh0xQ== +sass@^1.54.1: + version "1.54.1" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.54.1.tgz#4f72ef57ce2a6c3251f4e2c75eee9a0c19e09eb5" + integrity sha512-GHJJr31Me32RjjUBagyzx8tzjKBUcDwo5239XANIRBq0adDu5iIG0aFO0i/TBb/4I9oyxkEv44nq/kL1DxdDhA== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" From f47b7e209372354055677ef820e6b07debdf7aba Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 4 Aug 2022 06:04:44 +0000 Subject: [PATCH 1054/2165] chore(deps): bump esbuild from 0.14.51 to 0.14.53 Bumps [esbuild](https://github.com/evanw/esbuild) from 0.14.51 to 0.14.53. - [Release notes](https://github.com/evanw/esbuild/releases) - [Changelog](https://github.com/evanw/esbuild/blob/master/CHANGELOG.md) - [Commits](https://github.com/evanw/esbuild/compare/v0.14.51...v0.14.53) --- updated-dependencies: - dependency-name: esbuild dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 254 ++++++++++++++++++++++++++------------------------- 2 files changed, 131 insertions(+), 125 deletions(-) diff --git a/package.json b/package.json index 4ad1265f5..16613c891 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "admin-lte": "3.1.0", "clipboard": "^2.0.11", "compare-versions": "^4.1.3", - "esbuild": "^0.14.51", + "esbuild": "^0.14.53", "sass": "^1.54.1", "ua-parser-js": "^1.0.2" }, diff --git a/yarn.lock b/yarn.lock index 3f5e8bf4f..6a89aeb2d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,11 @@ # yarn lockfile v1 +"@esbuild/linux-loong64@0.14.53": + version "0.14.53" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.14.53.tgz#251b4cd6760fadb4d68a05815e6dc5e432d69cd6" + integrity sha512-W2dAL6Bnyn4xa/QRSU3ilIK4EzD5wgYXKXJiS1HDF5vU3675qc2bvFyLwbUcdmssDveyndy7FbitrCoiV/eMLg== + "@fortawesome/fontawesome-free@^5.15.3": version "5.15.4" resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-5.15.4.tgz#ecda5712b61ac852c760d8b3c79c96adca5554e5" @@ -667,131 +672,132 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -esbuild-android-64@0.14.51: - version "0.14.51" - resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.14.51.tgz#414a087cb0de8db1e347ecca6c8320513de433db" - integrity sha512-6FOuKTHnC86dtrKDmdSj2CkcKF8PnqkaIXqvgydqfJmqBazCPdw+relrMlhGjkvVdiiGV70rpdnyFmA65ekBCQ== - -esbuild-android-arm64@0.14.51: - version "0.14.51" - resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.51.tgz#55de3bce2aab72bcd2b606da4318ad00fb9c8151" - integrity sha512-vBtp//5VVkZWmYYvHsqBRCMMi1MzKuMIn5XDScmnykMTu9+TD9v0NMEDqQxvtFToeYmojdo5UCV2vzMQWJcJ4A== - -esbuild-darwin-64@0.14.51: - version "0.14.51" - resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.51.tgz#4259f23ed6b4cea2ec8a28d87b7fb9801f093754" - integrity sha512-YFmXPIOvuagDcwCejMRtCDjgPfnDu+bNeh5FU2Ryi68ADDVlWEpbtpAbrtf/lvFTWPexbgyKgzppNgsmLPr8PA== - -esbuild-darwin-arm64@0.14.51: - version "0.14.51" - resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.51.tgz#d77b4366a71d84e530ba019d540b538b295d494a" - integrity sha512-juYD0QnSKwAMfzwKdIF6YbueXzS6N7y4GXPDeDkApz/1RzlT42mvX9jgNmyOlWKN7YzQAYbcUEJmZJYQGdf2ow== - -esbuild-freebsd-64@0.14.51: - version "0.14.51" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.51.tgz#27b6587b3639f10519c65e07219d249b01f2ad38" - integrity sha512-cLEI/aXjb6vo5O2Y8rvVSQ7smgLldwYY5xMxqh/dQGfWO+R1NJOFsiax3IS4Ng300SVp7Gz3czxT6d6qf2cw0g== - -esbuild-freebsd-arm64@0.14.51: - version "0.14.51" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.51.tgz#63c435917e566808c71fafddc600aca4d78be1ec" - integrity sha512-TcWVw/rCL2F+jUgRkgLa3qltd5gzKjIMGhkVybkjk6PJadYInPtgtUBp1/hG+mxyigaT7ib+od1Xb84b+L+1Mg== - -esbuild-linux-32@0.14.51: - version "0.14.51" - resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.51.tgz#c3da774143a37e7f11559b9369d98f11f997a5d9" - integrity sha512-RFqpyC5ChyWrjx8Xj2K0EC1aN0A37H6OJfmUXIASEqJoHcntuV3j2Efr9RNmUhMfNE6yEj2VpYuDteZLGDMr0w== - -esbuild-linux-64@0.14.51: - version "0.14.51" - resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.51.tgz#5d92b67f674e02ae0b4a9de9a757ba482115c4ae" - integrity sha512-dxjhrqo5i7Rq6DXwz5v+MEHVs9VNFItJmHBe1CxROWNf4miOGoQhqSG8StStbDkQ1Mtobg6ng+4fwByOhoQoeA== - -esbuild-linux-arm64@0.14.51: - version "0.14.51" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.51.tgz#dac84740516e859d8b14e1ecc478dd5241b10c93" - integrity sha512-D9rFxGutoqQX3xJPxqd6o+kvYKeIbM0ifW2y0bgKk5HPgQQOo2k9/2Vpto3ybGYaFPCE5qTGtqQta9PoP6ZEzw== - -esbuild-linux-arm@0.14.51: - version "0.14.51" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.51.tgz#b3ae7000696cd53ed95b2b458554ff543a60e106" - integrity sha512-LsJynDxYF6Neg7ZC7748yweCDD+N8ByCv22/7IAZglIEniEkqdF4HCaa49JNDLw1UQGlYuhOB8ZT/MmcSWzcWg== - -esbuild-linux-mips64le@0.14.51: - version "0.14.51" - resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.51.tgz#dad10770fac94efa092b5a0643821c955a9dd385" - integrity sha512-vS54wQjy4IinLSlb5EIlLoln8buh1yDgliP4CuEHumrPk4PvvP4kTRIG4SzMXm6t19N0rIfT4bNdAxzJLg2k6A== - -esbuild-linux-ppc64le@0.14.51: - version "0.14.51" - resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.51.tgz#b68c2f8294d012a16a88073d67e976edd4850ae0" - integrity sha512-xcdd62Y3VfGoyphNP/aIV9LP+RzFw5M5Z7ja+zdpQHHvokJM7d0rlDRMN+iSSwvUymQkqZO+G/xjb4/75du8BQ== - -esbuild-linux-riscv64@0.14.51: - version "0.14.51" - resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.51.tgz#608a318b8697123e44c1e185cdf6708e3df50b93" - integrity sha512-syXHGak9wkAnFz0gMmRBoy44JV0rp4kVCEA36P5MCeZcxFq8+fllBC2t6sKI23w3qd8Vwo9pTADCgjTSf3L3rA== - -esbuild-linux-s390x@0.14.51: - version "0.14.51" - resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.51.tgz#c9e7791170a3295dba79b93aa452beb9838a8625" - integrity sha512-kFAJY3dv+Wq8o28K/C7xkZk/X34rgTwhknSsElIqoEo8armCOjMJ6NsMxm48KaWY2h2RUYGtQmr+RGuUPKBhyw== - -esbuild-netbsd-64@0.14.51: - version "0.14.51" - resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.51.tgz#0abd40b8c2e37fda6f5cc41a04cb2b690823d891" - integrity sha512-ZZBI7qrR1FevdPBVHz/1GSk1x5GDL/iy42Zy8+neEm/HA7ma+hH/bwPEjeHXKWUDvM36CZpSL/fn1/y9/Hb+1A== - -esbuild-openbsd-64@0.14.51: - version "0.14.51" - resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.51.tgz#4adba0b7ea7eb1428bb00d8e94c199a949b130e8" - integrity sha512-7R1/p39M+LSVQVgDVlcY1KKm6kFKjERSX1lipMG51NPcspJD1tmiZSmmBXoY5jhHIu6JL1QkFDTx94gMYK6vfA== - -esbuild-sunos-64@0.14.51: - version "0.14.51" - resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.51.tgz#4b8a6d97dfedda30a6e39607393c5c90ebf63891" - integrity sha512-HoHaCswHxLEYN8eBTtyO0bFEWvA3Kdb++hSQ/lLG7TyKF69TeSG0RNoBRAs45x/oCeWaTDntEZlYwAfQlhEtJA== - -esbuild-windows-32@0.14.51: - version "0.14.51" - resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.51.tgz#d31d8ca0c1d314fb1edea163685a423b62e9ac17" - integrity sha512-4rtwSAM35A07CBt1/X8RWieDj3ZUHQqUOaEo5ZBs69rt5WAFjP4aqCIobdqOy4FdhYw1yF8Z0xFBTyc9lgPtEg== - -esbuild-windows-64@0.14.51: - version "0.14.51" - resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.51.tgz#7d3c09c8652d222925625637bdc7e6c223e0085d" - integrity sha512-HoN/5HGRXJpWODprGCgKbdMvrC3A2gqvzewu2eECRw2sYxOUoh2TV1tS+G7bHNapPGI79woQJGV6pFH7GH7qnA== - -esbuild-windows-arm64@0.14.51: - version "0.14.51" - resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.51.tgz#0220d2304bfdc11bc27e19b2aaf56edf183e4ae9" - integrity sha512-JQDqPjuOH7o+BsKMSddMfmVJXrnYZxXDHsoLHc0xgmAZkOOCflRmC43q31pk79F9xuyWY45jDBPolb5ZgGOf9g== - -esbuild@^0.14.51: - version "0.14.51" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.51.tgz#1c8ecbc8db3710da03776211dc3ee3448f7aa51e" - integrity sha512-+CvnDitD7Q5sT7F+FM65sWkF8wJRf+j9fPcprxYV4j+ohmzVj2W7caUqH2s5kCaCJAfcAICjSlKhDCcvDpU7nw== +esbuild-android-64@0.14.53: + version "0.14.53" + resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.14.53.tgz#259bc3ef1399a3cad8f4f67c40ee20779c4de675" + integrity sha512-fIL93sOTnEU+NrTAVMIKiAw0YH22HWCAgg4N4Z6zov2t0kY9RAJ50zY9ZMCQ+RT6bnOfDt8gCTnt/RaSNA2yRA== + +esbuild-android-arm64@0.14.53: + version "0.14.53" + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.53.tgz#2158253d4e8f9fdd2a081bbb4f73b8806178841e" + integrity sha512-PC7KaF1v0h/nWpvlU1UMN7dzB54cBH8qSsm7S9mkwFA1BXpaEOufCg8hdoEI1jep0KeO/rjZVWrsH8+q28T77A== + +esbuild-darwin-64@0.14.53: + version "0.14.53" + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.53.tgz#b4681831fd8f8d06feb5048acbe90d742074cc2a" + integrity sha512-gE7P5wlnkX4d4PKvLBUgmhZXvL7lzGRLri17/+CmmCzfncIgq8lOBvxGMiQ4xazplhxq+72TEohyFMZLFxuWvg== + +esbuild-darwin-arm64@0.14.53: + version "0.14.53" + resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.53.tgz#d267d957852d121b261b3f76ead86e5b5463acc9" + integrity sha512-otJwDU3hnI15Q98PX4MJbknSZ/WSR1I45il7gcxcECXzfN4Mrpft5hBDHXNRnCh+5858uPXBXA1Vaz2jVWLaIA== + +esbuild-freebsd-64@0.14.53: + version "0.14.53" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.53.tgz#aca2af6d72b537fe66a38eb8f374fb66d4c98ca0" + integrity sha512-WkdJa8iyrGHyKiPF4lk0MiOF87Q2SkE+i+8D4Cazq3/iqmGPJ6u49je300MFi5I2eUsQCkaOWhpCVQMTKGww2w== + +esbuild-freebsd-arm64@0.14.53: + version "0.14.53" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.53.tgz#76282e19312d914c34343c8a7da6cc5f051580b9" + integrity sha512-9T7WwCuV30NAx0SyQpw8edbKvbKELnnm1FHg7gbSYaatH+c8WJW10g/OdM7JYnv7qkimw2ZTtSA+NokOLd2ydQ== + +esbuild-linux-32@0.14.53: + version "0.14.53" + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.53.tgz#1045d34cf7c5faaf2af3b29cc1573b06580c37e5" + integrity sha512-VGanLBg5en2LfGDgLEUxQko2lqsOS7MTEWUi8x91YmsHNyzJVT/WApbFFx3MQGhkf+XdimVhpyo5/G0PBY91zg== + +esbuild-linux-64@0.14.53: + version "0.14.53" + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.53.tgz#ab3f2ee2ebb5a6930c72d9539cb34b428808cbe4" + integrity sha512-pP/FA55j/fzAV7N9DF31meAyjOH6Bjuo3aSKPh26+RW85ZEtbJv9nhoxmGTd9FOqjx59Tc1ZbrJabuiXlMwuZQ== + +esbuild-linux-arm64@0.14.53: + version "0.14.53" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.53.tgz#1f5530412f6690949e78297122350488d3266cfe" + integrity sha512-GDmWITT+PMsjCA6/lByYk7NyFssW4Q6in32iPkpjZ/ytSyH+xeEx8q7HG3AhWH6heemEYEWpTll/eui3jwlSnw== + +esbuild-linux-arm@0.14.53: + version "0.14.53" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.53.tgz#a44ec9b5b42007ab6c0d65a224ccc6bbd97c54cf" + integrity sha512-/u81NGAVZMopbmzd21Nu/wvnKQK3pT4CrvQ8BTje1STXcQAGnfyKgQlj3m0j2BzYbvQxSy+TMck4TNV2onvoPA== + +esbuild-linux-mips64le@0.14.53: + version "0.14.53" + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.53.tgz#a4d0b6b17cfdeea4e41b0b085a5f73d99311be9f" + integrity sha512-d6/XHIQW714gSSp6tOOX2UscedVobELvQlPMkInhx1NPz4ThZI9uNLQ4qQJHGBGKGfu+rtJsxM4NVHLhnNRdWQ== + +esbuild-linux-ppc64le@0.14.53: + version "0.14.53" + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.53.tgz#8c331822c85465434e086e3e6065863770c38139" + integrity sha512-ndnJmniKPCB52m+r6BtHHLAOXw+xBCWIxNnedbIpuREOcbSU/AlyM/2dA3BmUQhsHdb4w3amD5U2s91TJ3MzzA== + +esbuild-linux-riscv64@0.14.53: + version "0.14.53" + resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.53.tgz#36fd75543401304bea8a2d63bf8ea18aaa508e00" + integrity sha512-yG2sVH+QSix6ct4lIzJj329iJF3MhloLE6/vKMQAAd26UVPVkhMFqFopY+9kCgYsdeWvXdPgmyOuKa48Y7+/EQ== + +esbuild-linux-s390x@0.14.53: + version "0.14.53" + resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.53.tgz#1622677ab6824123f48f75d3afc031cd41936129" + integrity sha512-OCJlgdkB+XPYndHmw6uZT7jcYgzmx9K+28PVdOa/eLjdoYkeAFvH5hTwX4AXGLZLH09tpl4bVsEtvuyUldaNCg== + +esbuild-netbsd-64@0.14.53: + version "0.14.53" + resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.53.tgz#e86d0efd0116658be335492ed12e66b26b4baf52" + integrity sha512-gp2SB+Efc7MhMdWV2+pmIs/Ja/Mi5rjw+wlDmmbIn68VGXBleNgiEZG+eV2SRS0kJEUyHNedDtwRIMzaohWedQ== + +esbuild-openbsd-64@0.14.53: + version "0.14.53" + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.53.tgz#9bcbbe6f86304872c6e91f64c8eb73fc29c3588b" + integrity sha512-eKQ30ZWe+WTZmteDYg8S+YjHV5s4iTxeSGhJKJajFfQx9TLZJvsJX0/paqwP51GicOUruFpSUAs2NCc0a4ivQQ== + +esbuild-sunos-64@0.14.53: + version "0.14.53" + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.53.tgz#f7a872f7460bfb7b131f7188a95fbce3d1c577e8" + integrity sha512-OWLpS7a2FrIRukQqcgQqR1XKn0jSJoOdT+RlhAxUoEQM/IpytS3FXzCJM6xjUYtpO5GMY0EdZJp+ur2pYdm39g== + +esbuild-windows-32@0.14.53: + version "0.14.53" + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.53.tgz#c5e3ca50e2d1439cc2c9fe4defa63bcd474ce709" + integrity sha512-m14XyWQP5rwGW0tbEfp95U6A0wY0DYPInWBB7D69FAXUpBpBObRoGTKRv36lf2RWOdE4YO3TNvj37zhXjVL5xg== + +esbuild-windows-64@0.14.53: + version "0.14.53" + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.53.tgz#ec2ab4a60c5215f092ffe1eab6d01319e88238af" + integrity sha512-s9skQFF0I7zqnQ2K8S1xdLSfZFsPLuOGmSx57h2btSEswv0N0YodYvqLcJMrNMXh6EynOmWD7rz+0rWWbFpIHQ== + +esbuild-windows-arm64@0.14.53: + version "0.14.53" + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.53.tgz#f71d403806bdf9f4a1f9d097db9aec949bd675c8" + integrity sha512-E+5Gvb+ZWts+00T9II6wp2L3KG2r3iGxByqd/a1RmLmYWVsSVUjkvIxZuJ3hYTIbhLkH5PRwpldGTKYqVz0nzQ== + +esbuild@^0.14.53: + version "0.14.53" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.53.tgz#20b1007f686e8584f2a01a1bec5a37aac9498ce4" + integrity sha512-ohO33pUBQ64q6mmheX1mZ8mIXj8ivQY/L4oVuAshr+aJI+zLl+amrp3EodrUNDNYVrKJXGPfIHFGhO8slGRjuw== optionalDependencies: - esbuild-android-64 "0.14.51" - esbuild-android-arm64 "0.14.51" - esbuild-darwin-64 "0.14.51" - esbuild-darwin-arm64 "0.14.51" - esbuild-freebsd-64 "0.14.51" - esbuild-freebsd-arm64 "0.14.51" - esbuild-linux-32 "0.14.51" - esbuild-linux-64 "0.14.51" - esbuild-linux-arm "0.14.51" - esbuild-linux-arm64 "0.14.51" - esbuild-linux-mips64le "0.14.51" - esbuild-linux-ppc64le "0.14.51" - esbuild-linux-riscv64 "0.14.51" - esbuild-linux-s390x "0.14.51" - esbuild-netbsd-64 "0.14.51" - esbuild-openbsd-64 "0.14.51" - esbuild-sunos-64 "0.14.51" - esbuild-windows-32 "0.14.51" - esbuild-windows-64 "0.14.51" - esbuild-windows-arm64 "0.14.51" + "@esbuild/linux-loong64" "0.14.53" + esbuild-android-64 "0.14.53" + esbuild-android-arm64 "0.14.53" + esbuild-darwin-64 "0.14.53" + esbuild-darwin-arm64 "0.14.53" + esbuild-freebsd-64 "0.14.53" + esbuild-freebsd-arm64 "0.14.53" + esbuild-linux-32 "0.14.53" + esbuild-linux-64 "0.14.53" + esbuild-linux-arm "0.14.53" + esbuild-linux-arm64 "0.14.53" + esbuild-linux-mips64le "0.14.53" + esbuild-linux-ppc64le "0.14.53" + esbuild-linux-riscv64 "0.14.53" + esbuild-linux-s390x "0.14.53" + esbuild-netbsd-64 "0.14.53" + esbuild-openbsd-64 "0.14.53" + esbuild-sunos-64 "0.14.53" + esbuild-windows-32 "0.14.53" + esbuild-windows-64 "0.14.53" + esbuild-windows-arm64 "0.14.53" ev-emitter@^1.0.0: version "1.1.1" From cc1c286bbe331e38876f9170da9f114e0221ded8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 4 Aug 2022 21:01:37 +0000 Subject: [PATCH 1055/2165] chore(deps): bump sass from 1.54.1 to 1.54.3 Bumps [sass](https://github.com/sass/dart-sass) from 1.54.1 to 1.54.3. - [Release notes](https://github.com/sass/dart-sass/releases) - [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md) - [Commits](https://github.com/sass/dart-sass/compare/1.54.1...1.54.3) --- updated-dependencies: - dependency-name: sass dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 16613c891..da8244759 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "clipboard": "^2.0.11", "compare-versions": "^4.1.3", "esbuild": "^0.14.53", - "sass": "^1.54.1", + "sass": "^1.54.3", "ua-parser-js": "^1.0.2" }, "scripts": { diff --git a/yarn.lock b/yarn.lock index 6a89aeb2d..f11abc3bc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1427,10 +1427,10 @@ safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sass@^1.54.1: - version "1.54.1" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.54.1.tgz#4f72ef57ce2a6c3251f4e2c75eee9a0c19e09eb5" - integrity sha512-GHJJr31Me32RjjUBagyzx8tzjKBUcDwo5239XANIRBq0adDu5iIG0aFO0i/TBb/4I9oyxkEv44nq/kL1DxdDhA== +sass@^1.54.3: + version "1.54.3" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.54.3.tgz#37baa2652f7f1fdadb73240ee9a2b9b81fabb5c4" + integrity sha512-fLodey5Qd41Pxp/Tk7Al97sViYwF/TazRc5t6E65O7JOk4XF8pzwIW7CvCxYVOfJFFI/1x5+elDyBIixrp+zrw== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" From b4da3db5e41ae1b417f3c9b6c873ea2547abdbb8 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 5 Aug 2022 19:16:39 +0800 Subject: [PATCH 1056/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=BA=94?= =?UTF-8?q?=E7=94=A8=E8=A7=A3=E5=8C=85=E5=A4=B1=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/jobs/teardown_job.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/jobs/teardown_job.rb b/app/jobs/teardown_job.rb index c9714bbbe..509ab480e 100644 --- a/app/jobs/teardown_job.rb +++ b/app/jobs/teardown_job.rb @@ -6,7 +6,7 @@ class TeardownJob < ApplicationJob def perform(release_id, user_id) return unless file = determine_file!(release_id) - metadata = TeardownService.new.call(file.path) + metadata = TeardownService.new(file.path).call metadata.update_attribute(:user_id, user_id) if user_id.present? update_release_resouces(release_id, metadata) end From d58ebffb9451be1c9a20f5ae97f62361680a0b43 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Aug 2022 21:01:26 +0000 Subject: [PATCH 1057/2165] chore(deps): bump sidekiq from 6.5.1 to 6.5.4 Bumps [sidekiq](https://github.com/mperham/sidekiq) from 6.5.1 to 6.5.4. - [Release notes](https://github.com/mperham/sidekiq/releases) - [Changelog](https://github.com/mperham/sidekiq/blob/main/Changes.md) - [Commits](https://github.com/mperham/sidekiq/compare/v6.5.1...v6.5.4) --- updated-dependencies: - dependency-name: sidekiq dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index 42fc12671..ea27f1a37 100644 --- a/Gemfile +++ b/Gemfile @@ -85,7 +85,7 @@ gem 'rqrcode' # 异步队列 gem 'activejob-status' -gem 'sidekiq', '~> 6.5.1' +gem 'sidekiq', '~> 6.5.4' gem 'sidekiq-scheduler', '~> 4.0.2' gem 'sidekiq-failures', github: 'mhfs/sidekiq-failures', ref: '22d3d0786d3d4d5a3eb828a8f393e669bd45755a' # 等待新版本发布后移除 diff --git a/Gemfile.lock b/Gemfile.lock index 47d21006d..74149f25e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -440,10 +440,10 @@ GEM sentry-ruby (~> 5.4.1) sidekiq (>= 3.0) shellany (0.0.1) - sidekiq (6.5.1) + sidekiq (6.5.4) connection_pool (>= 2.2.2) rack (~> 2.0) - redis (>= 4.2.0) + redis (>= 4.5.0) sidekiq-scheduler (4.0.2) redis (>= 4.2.0) rufus-scheduler (~> 3.2) @@ -573,7 +573,7 @@ DEPENDENCIES sentry-rails sentry-ruby sentry-sidekiq - sidekiq (~> 6.5.1) + sidekiq (~> 6.5.4) sidekiq-failures! sidekiq-scheduler (~> 4.0.2) simple_form (~> 5.1) From 9954012c172a92f22ae387a4e7fe10081d2523ff Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Aug 2022 21:01:41 +0000 Subject: [PATCH 1058/2165] chore(deps): bump esbuild from 0.14.53 to 0.14.54 Bumps [esbuild](https://github.com/evanw/esbuild) from 0.14.53 to 0.14.54. - [Release notes](https://github.com/evanw/esbuild/releases) - [Changelog](https://github.com/evanw/esbuild/blob/master/CHANGELOG.md) - [Commits](https://github.com/evanw/esbuild/compare/v0.14.53...v0.14.54) --- updated-dependencies: - dependency-name: esbuild dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 258 +++++++++++++++++++++++++-------------------------- 2 files changed, 130 insertions(+), 130 deletions(-) diff --git a/package.json b/package.json index da8244759..f6b7237dd 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "admin-lte": "3.1.0", "clipboard": "^2.0.11", "compare-versions": "^4.1.3", - "esbuild": "^0.14.53", + "esbuild": "^0.14.54", "sass": "^1.54.3", "ua-parser-js": "^1.0.2" }, diff --git a/yarn.lock b/yarn.lock index f11abc3bc..cc959a1ce 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,10 +2,10 @@ # yarn lockfile v1 -"@esbuild/linux-loong64@0.14.53": - version "0.14.53" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.14.53.tgz#251b4cd6760fadb4d68a05815e6dc5e432d69cd6" - integrity sha512-W2dAL6Bnyn4xa/QRSU3ilIK4EzD5wgYXKXJiS1HDF5vU3675qc2bvFyLwbUcdmssDveyndy7FbitrCoiV/eMLg== +"@esbuild/linux-loong64@0.14.54": + version "0.14.54" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz#de2a4be678bd4d0d1ffbb86e6de779cde5999028" + integrity sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw== "@fortawesome/fontawesome-free@^5.15.3": version "5.15.4" @@ -672,132 +672,132 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -esbuild-android-64@0.14.53: - version "0.14.53" - resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.14.53.tgz#259bc3ef1399a3cad8f4f67c40ee20779c4de675" - integrity sha512-fIL93sOTnEU+NrTAVMIKiAw0YH22HWCAgg4N4Z6zov2t0kY9RAJ50zY9ZMCQ+RT6bnOfDt8gCTnt/RaSNA2yRA== - -esbuild-android-arm64@0.14.53: - version "0.14.53" - resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.53.tgz#2158253d4e8f9fdd2a081bbb4f73b8806178841e" - integrity sha512-PC7KaF1v0h/nWpvlU1UMN7dzB54cBH8qSsm7S9mkwFA1BXpaEOufCg8hdoEI1jep0KeO/rjZVWrsH8+q28T77A== - -esbuild-darwin-64@0.14.53: - version "0.14.53" - resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.53.tgz#b4681831fd8f8d06feb5048acbe90d742074cc2a" - integrity sha512-gE7P5wlnkX4d4PKvLBUgmhZXvL7lzGRLri17/+CmmCzfncIgq8lOBvxGMiQ4xazplhxq+72TEohyFMZLFxuWvg== - -esbuild-darwin-arm64@0.14.53: - version "0.14.53" - resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.53.tgz#d267d957852d121b261b3f76ead86e5b5463acc9" - integrity sha512-otJwDU3hnI15Q98PX4MJbknSZ/WSR1I45il7gcxcECXzfN4Mrpft5hBDHXNRnCh+5858uPXBXA1Vaz2jVWLaIA== - -esbuild-freebsd-64@0.14.53: - version "0.14.53" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.53.tgz#aca2af6d72b537fe66a38eb8f374fb66d4c98ca0" - integrity sha512-WkdJa8iyrGHyKiPF4lk0MiOF87Q2SkE+i+8D4Cazq3/iqmGPJ6u49je300MFi5I2eUsQCkaOWhpCVQMTKGww2w== - -esbuild-freebsd-arm64@0.14.53: - version "0.14.53" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.53.tgz#76282e19312d914c34343c8a7da6cc5f051580b9" - integrity sha512-9T7WwCuV30NAx0SyQpw8edbKvbKELnnm1FHg7gbSYaatH+c8WJW10g/OdM7JYnv7qkimw2ZTtSA+NokOLd2ydQ== - -esbuild-linux-32@0.14.53: - version "0.14.53" - resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.53.tgz#1045d34cf7c5faaf2af3b29cc1573b06580c37e5" - integrity sha512-VGanLBg5en2LfGDgLEUxQko2lqsOS7MTEWUi8x91YmsHNyzJVT/WApbFFx3MQGhkf+XdimVhpyo5/G0PBY91zg== - -esbuild-linux-64@0.14.53: - version "0.14.53" - resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.53.tgz#ab3f2ee2ebb5a6930c72d9539cb34b428808cbe4" - integrity sha512-pP/FA55j/fzAV7N9DF31meAyjOH6Bjuo3aSKPh26+RW85ZEtbJv9nhoxmGTd9FOqjx59Tc1ZbrJabuiXlMwuZQ== - -esbuild-linux-arm64@0.14.53: - version "0.14.53" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.53.tgz#1f5530412f6690949e78297122350488d3266cfe" - integrity sha512-GDmWITT+PMsjCA6/lByYk7NyFssW4Q6in32iPkpjZ/ytSyH+xeEx8q7HG3AhWH6heemEYEWpTll/eui3jwlSnw== - -esbuild-linux-arm@0.14.53: - version "0.14.53" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.53.tgz#a44ec9b5b42007ab6c0d65a224ccc6bbd97c54cf" - integrity sha512-/u81NGAVZMopbmzd21Nu/wvnKQK3pT4CrvQ8BTje1STXcQAGnfyKgQlj3m0j2BzYbvQxSy+TMck4TNV2onvoPA== - -esbuild-linux-mips64le@0.14.53: - version "0.14.53" - resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.53.tgz#a4d0b6b17cfdeea4e41b0b085a5f73d99311be9f" - integrity sha512-d6/XHIQW714gSSp6tOOX2UscedVobELvQlPMkInhx1NPz4ThZI9uNLQ4qQJHGBGKGfu+rtJsxM4NVHLhnNRdWQ== - -esbuild-linux-ppc64le@0.14.53: - version "0.14.53" - resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.53.tgz#8c331822c85465434e086e3e6065863770c38139" - integrity sha512-ndnJmniKPCB52m+r6BtHHLAOXw+xBCWIxNnedbIpuREOcbSU/AlyM/2dA3BmUQhsHdb4w3amD5U2s91TJ3MzzA== - -esbuild-linux-riscv64@0.14.53: - version "0.14.53" - resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.53.tgz#36fd75543401304bea8a2d63bf8ea18aaa508e00" - integrity sha512-yG2sVH+QSix6ct4lIzJj329iJF3MhloLE6/vKMQAAd26UVPVkhMFqFopY+9kCgYsdeWvXdPgmyOuKa48Y7+/EQ== - -esbuild-linux-s390x@0.14.53: - version "0.14.53" - resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.53.tgz#1622677ab6824123f48f75d3afc031cd41936129" - integrity sha512-OCJlgdkB+XPYndHmw6uZT7jcYgzmx9K+28PVdOa/eLjdoYkeAFvH5hTwX4AXGLZLH09tpl4bVsEtvuyUldaNCg== - -esbuild-netbsd-64@0.14.53: - version "0.14.53" - resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.53.tgz#e86d0efd0116658be335492ed12e66b26b4baf52" - integrity sha512-gp2SB+Efc7MhMdWV2+pmIs/Ja/Mi5rjw+wlDmmbIn68VGXBleNgiEZG+eV2SRS0kJEUyHNedDtwRIMzaohWedQ== - -esbuild-openbsd-64@0.14.53: - version "0.14.53" - resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.53.tgz#9bcbbe6f86304872c6e91f64c8eb73fc29c3588b" - integrity sha512-eKQ30ZWe+WTZmteDYg8S+YjHV5s4iTxeSGhJKJajFfQx9TLZJvsJX0/paqwP51GicOUruFpSUAs2NCc0a4ivQQ== - -esbuild-sunos-64@0.14.53: - version "0.14.53" - resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.53.tgz#f7a872f7460bfb7b131f7188a95fbce3d1c577e8" - integrity sha512-OWLpS7a2FrIRukQqcgQqR1XKn0jSJoOdT+RlhAxUoEQM/IpytS3FXzCJM6xjUYtpO5GMY0EdZJp+ur2pYdm39g== - -esbuild-windows-32@0.14.53: - version "0.14.53" - resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.53.tgz#c5e3ca50e2d1439cc2c9fe4defa63bcd474ce709" - integrity sha512-m14XyWQP5rwGW0tbEfp95U6A0wY0DYPInWBB7D69FAXUpBpBObRoGTKRv36lf2RWOdE4YO3TNvj37zhXjVL5xg== - -esbuild-windows-64@0.14.53: - version "0.14.53" - resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.53.tgz#ec2ab4a60c5215f092ffe1eab6d01319e88238af" - integrity sha512-s9skQFF0I7zqnQ2K8S1xdLSfZFsPLuOGmSx57h2btSEswv0N0YodYvqLcJMrNMXh6EynOmWD7rz+0rWWbFpIHQ== - -esbuild-windows-arm64@0.14.53: - version "0.14.53" - resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.53.tgz#f71d403806bdf9f4a1f9d097db9aec949bd675c8" - integrity sha512-E+5Gvb+ZWts+00T9II6wp2L3KG2r3iGxByqd/a1RmLmYWVsSVUjkvIxZuJ3hYTIbhLkH5PRwpldGTKYqVz0nzQ== - -esbuild@^0.14.53: - version "0.14.53" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.53.tgz#20b1007f686e8584f2a01a1bec5a37aac9498ce4" - integrity sha512-ohO33pUBQ64q6mmheX1mZ8mIXj8ivQY/L4oVuAshr+aJI+zLl+amrp3EodrUNDNYVrKJXGPfIHFGhO8slGRjuw== +esbuild-android-64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.14.54.tgz#505f41832884313bbaffb27704b8bcaa2d8616be" + integrity sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ== + +esbuild-android-arm64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.54.tgz#8ce69d7caba49646e009968fe5754a21a9871771" + integrity sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg== + +esbuild-darwin-64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.54.tgz#24ba67b9a8cb890a3c08d9018f887cc221cdda25" + integrity sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug== + +esbuild-darwin-arm64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.54.tgz#3f7cdb78888ee05e488d250a2bdaab1fa671bf73" + integrity sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw== + +esbuild-freebsd-64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.54.tgz#09250f997a56ed4650f3e1979c905ffc40bbe94d" + integrity sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg== + +esbuild-freebsd-arm64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.54.tgz#bafb46ed04fc5f97cbdb016d86947a79579f8e48" + integrity sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q== + +esbuild-linux-32@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.54.tgz#e2a8c4a8efdc355405325033fcebeb941f781fe5" + integrity sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw== + +esbuild-linux-64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz#de5fdba1c95666cf72369f52b40b03be71226652" + integrity sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg== + +esbuild-linux-arm64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.54.tgz#dae4cd42ae9787468b6a5c158da4c84e83b0ce8b" + integrity sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig== + +esbuild-linux-arm@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.54.tgz#a2c1dff6d0f21dbe8fc6998a122675533ddfcd59" + integrity sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw== + +esbuild-linux-mips64le@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.54.tgz#d9918e9e4cb972f8d6dae8e8655bf9ee131eda34" + integrity sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw== + +esbuild-linux-ppc64le@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.54.tgz#3f9a0f6d41073fb1a640680845c7de52995f137e" + integrity sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ== + +esbuild-linux-riscv64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.54.tgz#618853c028178a61837bc799d2013d4695e451c8" + integrity sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg== + +esbuild-linux-s390x@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.54.tgz#d1885c4c5a76bbb5a0fe182e2c8c60eb9e29f2a6" + integrity sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA== + +esbuild-netbsd-64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.54.tgz#69ae917a2ff241b7df1dbf22baf04bd330349e81" + integrity sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w== + +esbuild-openbsd-64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.54.tgz#db4c8495287a350a6790de22edea247a57c5d47b" + integrity sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw== + +esbuild-sunos-64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.54.tgz#54287ee3da73d3844b721c21bc80c1dc7e1bf7da" + integrity sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw== + +esbuild-windows-32@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.54.tgz#f8aaf9a5667630b40f0fb3aa37bf01bbd340ce31" + integrity sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w== + +esbuild-windows-64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.54.tgz#bf54b51bd3e9b0f1886ffdb224a4176031ea0af4" + integrity sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ== + +esbuild-windows-arm64@0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.54.tgz#937d15675a15e4b0e4fafdbaa3a01a776a2be982" + integrity sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg== + +esbuild@^0.14.54: + version "0.14.54" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.54.tgz#8b44dcf2b0f1a66fc22459943dccf477535e9aa2" + integrity sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA== optionalDependencies: - "@esbuild/linux-loong64" "0.14.53" - esbuild-android-64 "0.14.53" - esbuild-android-arm64 "0.14.53" - esbuild-darwin-64 "0.14.53" - esbuild-darwin-arm64 "0.14.53" - esbuild-freebsd-64 "0.14.53" - esbuild-freebsd-arm64 "0.14.53" - esbuild-linux-32 "0.14.53" - esbuild-linux-64 "0.14.53" - esbuild-linux-arm "0.14.53" - esbuild-linux-arm64 "0.14.53" - esbuild-linux-mips64le "0.14.53" - esbuild-linux-ppc64le "0.14.53" - esbuild-linux-riscv64 "0.14.53" - esbuild-linux-s390x "0.14.53" - esbuild-netbsd-64 "0.14.53" - esbuild-openbsd-64 "0.14.53" - esbuild-sunos-64 "0.14.53" - esbuild-windows-32 "0.14.53" - esbuild-windows-64 "0.14.53" - esbuild-windows-arm64 "0.14.53" + "@esbuild/linux-loong64" "0.14.54" + esbuild-android-64 "0.14.54" + esbuild-android-arm64 "0.14.54" + esbuild-darwin-64 "0.14.54" + esbuild-darwin-arm64 "0.14.54" + esbuild-freebsd-64 "0.14.54" + esbuild-freebsd-arm64 "0.14.54" + esbuild-linux-32 "0.14.54" + esbuild-linux-64 "0.14.54" + esbuild-linux-arm "0.14.54" + esbuild-linux-arm64 "0.14.54" + esbuild-linux-mips64le "0.14.54" + esbuild-linux-ppc64le "0.14.54" + esbuild-linux-riscv64 "0.14.54" + esbuild-linux-s390x "0.14.54" + esbuild-netbsd-64 "0.14.54" + esbuild-openbsd-64 "0.14.54" + esbuild-sunos-64 "0.14.54" + esbuild-windows-32 "0.14.54" + esbuild-windows-64 "0.14.54" + esbuild-windows-arm64 "0.14.54" ev-emitter@^1.0.0: version "1.1.1" From ee992754c2f5ddd53bdf8ce7b898178a84d27728 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 8 Aug 2022 21:01:49 +0000 Subject: [PATCH 1059/2165] chore(deps): bump faraday from 2.4.0 to 2.5.1 Bumps [faraday](https://github.com/lostisland/faraday) from 2.4.0 to 2.5.1. - [Release notes](https://github.com/lostisland/faraday/releases) - [Changelog](https://github.com/lostisland/faraday/blob/main/CHANGELOG.md) - [Commits](https://github.com/lostisland/faraday/compare/v2.4.0...v2.5.1) --- updated-dependencies: - dependency-name: faraday dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Gemfile b/Gemfile index 42fc12671..e450513db 100644 --- a/Gemfile +++ b/Gemfile @@ -42,7 +42,7 @@ gem 'webp-ffi', '~> 0.3.1' # Helper ## HTTP 请求 -gem 'faraday', '~> 2.4.0' +gem 'faraday', '~> 2.5.1' ## 用户认证 gem 'pundit', '~> 2.2.0' diff --git a/Gemfile.lock b/Gemfile.lock index 47d21006d..4b2aff6dc 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -149,10 +149,10 @@ GEM erubi (1.10.0) et-orbi (1.2.7) tzinfo - faraday (2.4.0) - faraday-net_http (~> 2.0) + faraday (2.5.1) + faraday-net_http (>= 2.0, < 3.1) ruby2_keywords (>= 0.0.4) - faraday-net_http (2.1.0) + faraday-net_http (3.0.0) ffi (1.15.5) ffi-compiler (1.0.1) ffi (>= 1.0.0) @@ -526,7 +526,7 @@ DEPENDENCIES devise (~> 4.8.1) devise-i18n (~> 1.10.2) dotenv-rails - faraday (~> 2.4.0) + faraday (~> 2.5.1) friendly_id (~> 5.4.2) graphiql-rails graphql (~> 2.0.12) From 522915edaaaf66c594a7b16b07e59444b98828ad Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 9 Aug 2022 13:11:01 +0800 Subject: [PATCH 1060/2165] =?UTF-8?q?feat:=20=E7=89=88=E6=9C=AC=E5=93=88?= =?UTF-8?q?=E5=B8=8C=E5=80=BC=E9=93=BE=E6=8E=A5=E6=9B=B4=E6=96=B0=E4=B8=BA?= =?UTF-8?q?=E5=8F=98=E6=9B=B4=E5=8E=86=E5=8F=B2=E8=B7=9F=E8=B8=AA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/admin/system_info/index.html.slim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/admin/system_info/index.html.slim b/app/views/admin/system_info/index.html.slim index e01c15c59..91d71ebb2 100644 --- a/app/views/admin/system_info/index.html.slim +++ b/app/views/admin/system_info/index.html.slim @@ -23,7 +23,7 @@ - if @server[:zealot_vcs_ref] dt = t('.vcs_ref') dd - pre = link_to @server[:zealot_vcs_ref], github_repo_commit(@server[:zealot_vcs_ref]), target: :blank + pre = vcs_ref_link(@server[:zealot_vcs_ref]) - if @server[:build_date] dt = t('.build_date') dd From 4c451bcdce0297cd685033f0ad103bd57a9e9130 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 9 Aug 2022 18:59:08 +0800 Subject: [PATCH 1061/2165] =?UTF-8?q?fix:=20javascript=20=E5=88=A4?= =?UTF-8?q?=E6=96=AD=20Rails=20=E7=8E=AF=E5=A2=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/javascript/controllers/global_controller.js | 4 ++-- app/javascript/controllers/zealot.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/javascript/controllers/global_controller.js b/app/javascript/controllers/global_controller.js index 5e8c4b84c..521ac8786 100644 --- a/app/javascript/controllers/global_controller.js +++ b/app/javascript/controllers/global_controller.js @@ -20,9 +20,9 @@ export default class extends Controller { Zealot.rootUrl = this.rootUrlValue Zealot.siteApperance = this.apperanceValue Zealot.env = this.envValue - application.debug = Zealot.isDevelopment + application.debug = Zealot.isDevelopment() - if (Zealot.isDevelopment) { + if (Zealot.isDevelopment()) { console.debug("Zealot starts in development mode") } } diff --git a/app/javascript/controllers/zealot.js b/app/javascript/controllers/zealot.js index a6918b920..a61b1881d 100644 --- a/app/javascript/controllers/zealot.js +++ b/app/javascript/controllers/zealot.js @@ -7,7 +7,7 @@ Zealot.isDarkMode = function () { .matches } -Zealot.isDevelopment = function () { +Zealot.isDevelopment() = function () { // env was given value in global_controller return Zealot.env === DEVELOPMENT_ENV } From 1fb55476d5afd95d01347f96a848dfd9d4f4972e Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 9 Aug 2022 19:11:45 +0800 Subject: [PATCH 1062/2165] =?UTF-8?q?fix:=20heroku=20=E7=8E=AF=E5=A2=83?= =?UTF-8?q?=E7=94=9F=E6=88=90=E5=8F=AF=E8=A7=A3=E8=AF=BB=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/javascript/controllers/zealot.js | 2 +- config/initializers/1_lograge.rb | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/app/javascript/controllers/zealot.js b/app/javascript/controllers/zealot.js index a61b1881d..a6918b920 100644 --- a/app/javascript/controllers/zealot.js +++ b/app/javascript/controllers/zealot.js @@ -7,7 +7,7 @@ Zealot.isDarkMode = function () { .matches } -Zealot.isDevelopment() = function () { +Zealot.isDevelopment = function () { // env was given value in global_controller return Zealot.env === DEVELOPMENT_ENV } diff --git a/config/initializers/1_lograge.rb b/config/initializers/1_lograge.rb index b2c0204fd..8d546a84f 100644 --- a/config/initializers/1_lograge.rb +++ b/config/initializers/1_lograge.rb @@ -36,7 +36,9 @@ def custom_payload(controller) Rails.application.configure do # Better log formatting config.lograge.enabled = true - config.lograge.logger = ActiveSupport::Logger.new(STDOUT) + + io = ENV['HEROKU'].present? ? 'log/zealot.log' : STDOUT + config.lograge.logger = ActiveSupport::Logger.new(io) config.lograge.custom_payload do |controller| custom_payload(controller) From b81ae21c81321e16205a1eb5e415932faa1deae2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 9 Aug 2022 21:01:26 +0000 Subject: [PATCH 1063/2165] chore(deps): bump pg from 1.4.2 to 1.4.3 Bumps [pg](https://github.com/ged/ruby-pg) from 1.4.2 to 1.4.3. - [Release notes](https://github.com/ged/ruby-pg/releases) - [Changelog](https://github.com/ged/ruby-pg/blob/master/History.rdoc) - [Commits](https://github.com/ged/ruby-pg/compare/v1.4.2...v1.4.3) --- updated-dependencies: - dependency-name: pg dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index f204d6ff5..425dbcb66 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -324,7 +324,7 @@ GEM parallel (1.22.1) parser (3.1.2.0) ast (~> 2.4.1) - pg (1.4.2) + pg (1.4.3) pghero (2.8.3) activerecord (>= 5) plist (3.6.0) From 227c9827a275b7b702e685ecdbd81e51ad76d021 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 10 Aug 2022 10:35:10 +0800 Subject: [PATCH 1064/2165] =?UTF-8?q?fix:=20sentry=20=E4=B8=8A=E6=8A=A5?= =?UTF-8?q?=E5=8F=98=E9=87=8F=E8=8E=B7=E5=8F=96=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/application_controller.rb | 2 +- config/initializers/1_lograge.rb | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index eb4c663af..cf974b338 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -26,7 +26,7 @@ def set_locale def set_sentry_context Sentry.configure_scope do |scope| context = params.to_unsafe_h || {} - context[:url] = request.url + context[:url] = request.url if request.url scope.set_context('params', context) end diff --git a/config/initializers/1_lograge.rb b/config/initializers/1_lograge.rb index 8d546a84f..f1f9b3839 100644 --- a/config/initializers/1_lograge.rb +++ b/config/initializers/1_lograge.rb @@ -60,15 +60,15 @@ def custom_payload(controller) config.lograge.base_controller_class = [ 'ActionController::API', - 'ActionController::Base' + 'ActionController::Base', + 'ApplicationCable::Channel' ] config.lograge.ignore_actions = [ 'HealthCheck::HealthCheckController#index', 'ApplicationCable::Connection#connect', 'ApplicationCable::Connection#disconnect', - 'Admin::LogsController#retrive', - 'NotificationChannel' + 'Admin::LogsController#retrive' ] end end \ No newline at end of file From 0fe74bd9ffeb3ea11609091137c46b6b7fc8ca8d Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 10 Aug 2022 10:39:32 +0800 Subject: [PATCH 1065/2165] =?UTF-8?q?fix:=20=E6=97=A5=E5=BF=97=E5=BF=BD?= =?UTF-8?q?=E7=95=A5=20cable=20=E7=9A=84=E8=AE=A2=E9=98=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/initializers/1_lograge.rb | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/config/initializers/1_lograge.rb b/config/initializers/1_lograge.rb index f1f9b3839..622db55b7 100644 --- a/config/initializers/1_lograge.rb +++ b/config/initializers/1_lograge.rb @@ -60,15 +60,16 @@ def custom_payload(controller) config.lograge.base_controller_class = [ 'ActionController::API', - 'ActionController::Base', - 'ApplicationCable::Channel' + 'ActionController::Base' ] config.lograge.ignore_actions = [ 'HealthCheck::HealthCheckController#index', 'ApplicationCable::Connection#connect', 'ApplicationCable::Connection#disconnect', - 'Admin::LogsController#retrive' + 'Admin::LogsController#retrive', + 'NotificationChannel#subscribed', + 'NotificationChannel#unsubscribed', ] end end \ No newline at end of file From bc8c361f3b4d481abd80fe1d05a45ad0b73a5d08 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 10 Aug 2022 11:54:14 +0800 Subject: [PATCH 1066/2165] =?UTF-8?q?fix:=20webhook=20=E6=BF=80=E6=B4=BB?= =?UTF-8?q?=E5=85=B3=E8=81=94=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/channel.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/channel.rb b/app/models/channel.rb index 8777886de..8a0b0aff8 100755 --- a/app/models/channel.rb +++ b/app/models/channel.rb @@ -80,7 +80,7 @@ def available_web_hooks .where.not(web_hook_id: web_hooks.select(:id)) .where.not(channel_id: id) .each_with_object([]) do |item, obj| - obj << item.web_hook + obj << item.web_hook if item.web_hook.present? end end From be8e185c7dc6d02a8ea17ec8ebbb11b420fc7db8 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 10 Aug 2022 11:55:09 +0800 Subject: [PATCH 1067/2165] =?UTF-8?q?Revert=20"fix:=20sentry=20=E4=B8=8A?= =?UTF-8?q?=E6=8A=A5=E5=8F=98=E9=87=8F=E8=8E=B7=E5=8F=96=E5=88=A4=E6=96=AD?= =?UTF-8?q?"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 227c9827a275b7b702e685ecdbd81e51ad76d021. --- app/controllers/application_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index cf974b338..eb4c663af 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -26,7 +26,7 @@ def set_locale def set_sentry_context Sentry.configure_scope do |scope| context = params.to_unsafe_h || {} - context[:url] = request.url if request.url + context[:url] = request.url scope.set_context('params', context) end From a8527fef2d9b5b6614a12fd686f6ed2541fdd6a6 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 10 Aug 2022 12:48:37 +0800 Subject: [PATCH 1068/2165] =?UTF-8?q?feat:=20=E8=A1=A5=E5=85=85=E9=87=8D?= =?UTF-8?q?=E7=BD=AE=E6=BC=94=E7=A4=BA=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/jobs/reset_for_demo_mode_job.rb | 7 +++++-- app/models/app.rb | 4 ++-- app/models/user.rb | 2 +- app/services/create_sample_apps_service.rb | 12 ++++++------ 4 files changed, 14 insertions(+), 11 deletions(-) diff --git a/app/jobs/reset_for_demo_mode_job.rb b/app/jobs/reset_for_demo_mode_job.rb index bee3b2280..7f5de0f21 100644 --- a/app/jobs/reset_for_demo_mode_job.rb +++ b/app/jobs/reset_for_demo_mode_job.rb @@ -19,12 +19,15 @@ def perform private def clean_app_data + # Application App.delete_all DebugFile.delete_all Metadatum.delete_all - WebHook.delete_all - Setting.delete_all + + # Admin User.delete_all + Setting.delete_all + AppleKey.delete_all end def reset_jobs diff --git a/app/models/app.rb b/app/models/app.rb index db8f8e02e..bf0ecb5c2 100644 --- a/app/models/app.rb +++ b/app/models/app.rb @@ -1,14 +1,14 @@ # frozen_string_literal: true class App < ApplicationRecord - scope :avaiable_debug_files, -> { joins(:debug_files).distinct } - has_and_belongs_to_many :users has_many :schemes, dependent: :destroy has_many :debug_files, dependent: :destroy accepts_nested_attributes_for :schemes + scope :avaiable_debug_files, -> { joins(:debug_files).distinct } + validates :name, presence: true def recently_release diff --git a/app/models/user.rb b/app/models/user.rb index 586d5b065..db0645d6f 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -9,7 +9,7 @@ class User < ApplicationRecord include UserRoles enum role: %i[user developer admin] - has_and_belongs_to_many :apps + has_and_belongs_to_many :apps, dependent: :destroy has_many :providers, dependent: :destroy, class_name: 'UserProvider' validates :username, presence: true diff --git a/app/services/create_sample_apps_service.rb b/app/services/create_sample_apps_service.rb index 7d64f6e23..e5ef142da 100644 --- a/app/services/create_sample_apps_service.rb +++ b/app/services/create_sample_apps_service.rb @@ -59,8 +59,8 @@ def stardford_app(user) 'release' end - RELEASE_COUNT.times do - generate_release(channel, bundle_id, release_type, changelog) + RELEASE_COUNT.times do |i| + generate_release(channel, bundle_id, release_type, changelog, build_version: (i + 1).to_s) end end end @@ -77,20 +77,20 @@ def android_channels_app(user) schemes.each do |scheme_name| scheme = app.schemes.find_or_create_by name: scheme_name - channels.each do |channel_name| + channels.each_with_index do |channel_name, i| channel = scheme.channels.find_or_create_by name: channel_name, device_type: :android - generate_release(channel, app_bundle_id, 'release', changelog) + generate_release(channel, app_bundle_id, 'release', changelog, build_version: (i + 1).to_s) end end end - def generate_release(channel, app_bundle_id, release_type, changelog) + def generate_release(channel, app_bundle_id, release_type, changelog, build_version: '1') Release.new( channel: channel, bundle_id: app_bundle_id, release_version: '1.0.0', - build_version: '1', + build_version: build_version, release_type: release_type, source: 'API', branch: 'develop', From bd0bc9efaf74a64567fc0257b4f8ee39bd678e50 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 10 Aug 2022 13:00:46 +0800 Subject: [PATCH 1069/2165] =?UTF-8?q?fix:=20=E4=B8=B4=E6=97=B6=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=20devise=20=E6=97=A0=E6=B3=95=E5=9C=A8=20rails=207=20?= =?UTF-8?q?+=20turbo=20=E5=BC=B9=E5=87=BA=E9=94=99=E8=AF=AF=E6=8F=90?= =?UTF-8?q?=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/initializers/devise.rb | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/config/initializers/devise.rb b/config/initializers/devise.rb index 562e5abc5..a409cb1c5 100644 --- a/config/initializers/devise.rb +++ b/config/initializers/devise.rb @@ -40,6 +40,20 @@ env['omniauth.strategy'].options[:uid] = Setting.ldap[:uid] end +class TurboFailureApp < Devise::FailureApp + def respond + if request_format == :turbo_stream + redirect + else + super + end + end + + def skip_format? + %w(html turbo_stream */*).include? request_format.to_s + end +end + # Use this hook to configure devise mailer, warden hooks and so forth. # Many of these configuration options can be set straight in your model. Devise.setup do |config| @@ -281,7 +295,7 @@ # should add them to the navigational formats lists. # # The "*/*" below is required to match Internet Explorer requests. - # config.navigational_formats = ['*/*', :html] + config.navigational_formats = ['*/*', :html, :turbo_stream] # The default HTTP method used to sign out a resource. Default is :delete. config.sign_out_via = :delete @@ -290,10 +304,11 @@ # If you want to use other strategies, that are not supported by Devise, or # change the failure app, you can configure them inside the config.warden block. # - # config.warden do |manager| - # manager.intercept_401 = false - # manager.default_strategies(scope: :user).unshift :some_external_strategy - # end + config.warden do |manager| + # manager.intercept_401 = false + # manager.default_strategies(scope: :user).unshift :some_external_strategy + manager.failure_app = TurboFailureApp + end # ==> Mountable engine configurations # When using Devise inside an engine, let's call it `MyEngine`, and this engine From 42e5b90217a1454bb8fc8ef08ad169170ccc8666 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 10 Aug 2022 13:20:49 +0800 Subject: [PATCH 1070/2165] =?UTF-8?q?revert:=20heroku=20=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/initializers/1_lograge.rb | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/config/initializers/1_lograge.rb b/config/initializers/1_lograge.rb index 622db55b7..d259e3a16 100644 --- a/config/initializers/1_lograge.rb +++ b/config/initializers/1_lograge.rb @@ -36,9 +36,7 @@ def custom_payload(controller) Rails.application.configure do # Better log formatting config.lograge.enabled = true - - io = ENV['HEROKU'].present? ? 'log/zealot.log' : STDOUT - config.lograge.logger = ActiveSupport::Logger.new(io) + config.lograge.logger = ActiveSupport::Logger.new(STDOUT) config.lograge.custom_payload do |controller| custom_payload(controller) From f9f58201eeff757fd3e1e26f27c8168113b25827 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 10 Aug 2022 13:28:47 +0800 Subject: [PATCH 1071/2165] =?UTF-8?q?fix:=20=E4=B8=80=E7=9B=B4=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E6=9C=8D=E5=8A=A1=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/javascript/controllers/admin/logs_controller.js | 12 ++++++++++-- app/javascript/controllers/global_controller.js | 4 ---- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/app/javascript/controllers/admin/logs_controller.js b/app/javascript/controllers/admin/logs_controller.js index 4ba8320c8..ae6fa8577 100644 --- a/app/javascript/controllers/admin/logs_controller.js +++ b/app/javascript/controllers/admin/logs_controller.js @@ -10,10 +10,14 @@ export default class extends Controller { errorMessage: String } + static loop = true + connect() { + this.loop = true const fetchLogs = async () => { + if (!this.loop) { return } const response = await fetch(Zealot.rootUrl + this.uriValue) - if (response.status === 200) { + if (response && response.status === 200) { let content = await response.text() this.sourceTarget.innerHTML = content this.sourceTarget.scrollTop = this.sourceTarget.scrollHeight @@ -27,7 +31,7 @@ export default class extends Controller { poll({ fn: fetchLogs, - validate: (response) => { response.status !== 200 }, + validate: (response) => { response && response.status !== 200 }, interval: this.intervalValue }) .then((response) => { @@ -35,4 +39,8 @@ export default class extends Controller { this.sourceTarget.innerHTML = this.errorMessageValue + response.status }) } + + disconnect() { + this.loop = false + } } \ No newline at end of file diff --git a/app/javascript/controllers/global_controller.js b/app/javascript/controllers/global_controller.js index 521ac8786..8c46db0dd 100644 --- a/app/javascript/controllers/global_controller.js +++ b/app/javascript/controllers/global_controller.js @@ -21,10 +21,6 @@ export default class extends Controller { Zealot.siteApperance = this.apperanceValue Zealot.env = this.envValue application.debug = Zealot.isDevelopment() - - if (Zealot.isDevelopment()) { - console.debug("Zealot starts in development mode") - } } switchDarkMode() { From 7f2f8b8c0cdb2c70bbac600c8f3f0999d64800ad Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 10 Aug 2022 13:34:25 +0800 Subject: [PATCH 1072/2165] =?UTF-8?q?feat:=20heroku=20=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E6=9E=84=E5=BB=BA=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/setting.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/models/setting.rb b/app/models/setting.rb index b7512ee60..894d6dcab 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -107,7 +107,7 @@ class Setting < RailsSettings::Base scope :information do field :version, default: (ENV['ZEALOT_VERSION'] || 'development'), type: :string, readonly: true field :vcs_ref, default: (ENV['ZEALOT_VCS_REF'] || ENV['HEROKU_SLUG_COMMIT']), type: :string, readonly: true - field :build_date, default: ENV['ZEALOT_BUILD_DATE'], type: :string, readonly: true + field :build_date, default: (ENV['ZEALOT_BUILD_DATE'] || ENV['HEROKU_RELEASE_CREATED_AT']), type: :string, readonly: true end # 统计 From ce619fa4865d70d994ca636e5cc3b11e243885ef Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 10 Aug 2022 13:51:25 +0800 Subject: [PATCH 1073/2165] =?UTF-8?q?feat:=20=E4=BA=A7=E5=93=81=E7=8E=AF?= =?UTF-8?q?=E5=A2=83=E4=B8=8D=E6=98=BE=E7=A4=BA=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/admin/logs_controller.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/app/controllers/admin/logs_controller.rb b/app/controllers/admin/logs_controller.rb index f33bf4928..844e2e419 100644 --- a/app/controllers/admin/logs_controller.rb +++ b/app/controllers/admin/logs_controller.rb @@ -45,6 +45,7 @@ def logs(line) content = cmd_stdout.strip content = content.gsub(/\[\d+m/, '') if Rails.env.development? + content end def log_path From 7d5811cc78801b70b6647745ff6ad3ba6714c995 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 10 Aug 2022 15:05:13 +0800 Subject: [PATCH 1074/2165] =?UTF-8?q?fix:=20=E5=BF=BD=E7=95=A5=20cable=20?= =?UTF-8?q?=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/initializers/1_lograge.rb | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/config/initializers/1_lograge.rb b/config/initializers/1_lograge.rb index d259e3a16..e986d0f1f 100644 --- a/config/initializers/1_lograge.rb +++ b/config/initializers/1_lograge.rb @@ -36,7 +36,8 @@ def custom_payload(controller) Rails.application.configure do # Better log formatting config.lograge.enabled = true - config.lograge.logger = ActiveSupport::Logger.new(STDOUT) + io = ENV['HEROKU'].present? ? 'log/zealot.log' : STDOUT + config.lograge.logger = ActiveSupport::Logger.new(io) config.lograge.custom_payload do |controller| custom_payload(controller) @@ -66,8 +67,8 @@ def custom_payload(controller) 'ApplicationCable::Connection#connect', 'ApplicationCable::Connection#disconnect', 'Admin::LogsController#retrive', - 'NotificationChannel#subscribed', - 'NotificationChannel#unsubscribed', + 'NotificationChannel#subscribe', + 'NotificationChannel#unsubscribe', ] end end \ No newline at end of file From c5d1050b3847b95b2fe3d0ee2ea6c880661465f0 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 10 Aug 2022 15:18:40 +0800 Subject: [PATCH 1075/2165] =?UTF-8?q?fix:=20=E6=9B=B4=E6=96=B0=20heroku=20?= =?UTF-8?q?=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/environments/development.rb | 2 +- config/initializers/1_lograge.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/config/environments/development.rb b/config/environments/development.rb index 2c94bd249..ad0662f92 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -73,7 +73,7 @@ # If using a Heroku, Vagrant or generic remote development environment, # use letter_opener_web, accessible at /letter_opener. # Otherwise, use letter_opener, which launches a browser window to view sent mail. - config.action_mailer.delivery_method = %w[HEROKU VAGRANT REMOTE_DEV].select { |k| ENV[k].present? }.empty? ? :letter_opener_web : :letter_opener + config.action_mailer.delivery_method = %w[HEROKU_APP_ID VAGRANT REMOTE_DEV].select { |k| ENV[k].present? }.empty? ? :letter_opener_web : :letter_opener # # Use an evented file watcher to asynchronously detect changes in source code, # # routes, locales, etc. This feature depends on the listen gem. diff --git a/config/initializers/1_lograge.rb b/config/initializers/1_lograge.rb index e986d0f1f..e0ba323be 100644 --- a/config/initializers/1_lograge.rb +++ b/config/initializers/1_lograge.rb @@ -36,7 +36,7 @@ def custom_payload(controller) Rails.application.configure do # Better log formatting config.lograge.enabled = true - io = ENV['HEROKU'].present? ? 'log/zealot.log' : STDOUT + io = ENV['HEROKU_APP_ID'].present? ? 'log/zealot.log' : STDOUT config.lograge.logger = ActiveSupport::Logger.new(io) config.lograge.custom_payload do |controller| From 54541d8abdcfe44014d85bcfb8a8ec001127fa2f Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 10 Aug 2022 15:36:03 +0800 Subject: [PATCH 1076/2165] =?UTF-8?q?chore:=20=E4=B8=BA=E6=A3=80=E6=B5=8B?= =?UTF-8?q?=20M1=20iPad=20=E5=81=9A=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controllers/platform_controller.js | 23 ++++++++++++++----- 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/app/javascript/controllers/platform_controller.js b/app/javascript/controllers/platform_controller.js index 804759cb1..b233f9b8a 100644 --- a/app/javascript/controllers/platform_controller.js +++ b/app/javascript/controllers/platform_controller.js @@ -22,11 +22,22 @@ export default class extends Controller { return audio.volume === 1 } - console.debug("navigator platform", navigator.platform) - console.debug("iOS_1to12", iOS_1to12) - console.debug("iOS13_iPad", iOS13_iPad) - console.debug("iOS13_iPad2", iOS13_iPad2) - console.debug("iOS1to12quirk", iOS1to12quirk()) - console.debug("MSStream", !window.MSStream) + if (window.location.href.includes("?preview=1")) { + console.debug("navigator platform", navigator.platform) + console.debug("iOS_1to12", iOS_1to12) + console.debug("iOS13_iPad", iOS13_iPad) + console.debug("iOS13_iPad2", iOS13_iPad2) + console.debug("iOS1to12quirk", iOS1to12quirk()) + console.debug("MSStream", !window.MSStream) + let message = "navigator platform: " + navigator.platform + + "\n iOS_1to12: " + iOS_1to12 + + "\n iOS13_iPad: " + iOS13_iPad + + "\n iOS13_iPad: " + iOS13_iPad + + "\n iS13_iPad2: " + iOS13_iPad2 + + "\n iOS1to12quirk: " + iOS1to12quirk() + + "\n MSStream: " + !window.MSStream + + alert(message) + } } } \ No newline at end of file From d891e979adeb766447abb7f6df0f81292308e59e Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 10 Aug 2022 16:34:32 +0800 Subject: [PATCH 1077/2165] =?UTF-8?q?feat:=20=E8=8E=B7=E5=8F=96=20iOS=20?= =?UTF-8?q?=E8=AE=BE=E5=A4=87=20udid=20=E6=9B=B4=E6=96=B0=20preview=20?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=E7=8E=AF=E5=A2=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/javascript/controllers/index.js | 4 +- .../controllers/platform_controller.js | 43 --------------- app/javascript/controllers/udid_controller.js | 53 +++++++++++++++++++ app/views/udid/index.html.slim | 26 ++++++--- config/locales/zealot/en.yml | 3 +- config/locales/zealot/zh-CN.yml | 3 +- 6 files changed, 77 insertions(+), 55 deletions(-) delete mode 100644 app/javascript/controllers/platform_controller.js create mode 100644 app/javascript/controllers/udid_controller.js diff --git a/app/javascript/controllers/index.js b/app/javascript/controllers/index.js index 2b6c8331f..89ca33acd 100644 --- a/app/javascript/controllers/index.js +++ b/app/javascript/controllers/index.js @@ -15,7 +15,7 @@ application.register("debug-file", DebugFileController) import DestroyController from "./destroy_controller" application.register("destroy", DestroyController) -import PlatformController from "./platform_controller" -application.register("platform", PlatformController) +import UDIDController from "./udid_controller" +application.register("udid", UDIDController) import "./admin" diff --git a/app/javascript/controllers/platform_controller.js b/app/javascript/controllers/platform_controller.js deleted file mode 100644 index b233f9b8a..000000000 --- a/app/javascript/controllers/platform_controller.js +++ /dev/null @@ -1,43 +0,0 @@ -import { Controller } from "@hotwired/stimulus" -import { UAParser } from "ua-parser-js" - -const DEVELOPMENT_ENV = "development" - -export default class extends Controller { - static targets = ["display"] - static values = { - env: String - } - - connect() { - const parser = new UAParser() - console.log(parser.getResult()) - const iOS_1to12 = /iPad|iPhone|iPod/.test(navigator.platform) - const iOS13_iPad = (navigator.platform === "MacIntel" && navigator.maxTouchPoints > 1) - const iOS13_iPad2 = (navigator.userAgent.includes("Mac") && "ontouchend" in document) - - const iOS1to12quirk = function() { - var audio = new Audio() // temporary Audio object - audio.volume = 0.5 // has no effect on iOS <= 12 - return audio.volume === 1 - } - - if (window.location.href.includes("?preview=1")) { - console.debug("navigator platform", navigator.platform) - console.debug("iOS_1to12", iOS_1to12) - console.debug("iOS13_iPad", iOS13_iPad) - console.debug("iOS13_iPad2", iOS13_iPad2) - console.debug("iOS1to12quirk", iOS1to12quirk()) - console.debug("MSStream", !window.MSStream) - let message = "navigator platform: " + navigator.platform + - "\n iOS_1to12: " + iOS_1to12 + - "\n iOS13_iPad: " + iOS13_iPad + - "\n iOS13_iPad: " + iOS13_iPad + - "\n iS13_iPad2: " + iOS13_iPad2 + - "\n iOS1to12quirk: " + iOS1to12quirk() + - "\n MSStream: " + !window.MSStream - - alert(message) - } - } -} \ No newline at end of file diff --git a/app/javascript/controllers/udid_controller.js b/app/javascript/controllers/udid_controller.js new file mode 100644 index 000000000..c7776431d --- /dev/null +++ b/app/javascript/controllers/udid_controller.js @@ -0,0 +1,53 @@ +import { Controller } from "@hotwired/stimulus" +import { UAParser } from "ua-parser-js" + +export default class extends Controller { + uaParser = new UAParser() + static targets = ["qrcode", "install", "tip", "debug"] + static values = { + appleTip: String, + nonappleTip: String + } + + connect() { + if (!this.isPreviewFeature()) { return } + + console.log(this.uaParser.getResult()) + const iOS_1to12 = /iPad|iPhone|iPod/.test(navigator.platform) + const iOS13_iPad = (navigator.platform === "MacIntel" && navigator.maxTouchPoints > 1) + const iOS13_iPad2 = (navigator.userAgent.includes("Mac") && "ontouchend" in document) + const iOS1to12quirk = function() { + var audio = new Audio() // temporary Audio object + audio.volume = 0.5 // has no effect on iOS <= 12 + return audio.volume === 1 + } + + let message = "usparse result: " + JSON.stringify(this.uaParser.getResult()) + + "\n iOS_1to12: " + iOS_1to12 + + "\n iOS13_iPad: " + iOS13_iPad + + "\n iOS13_iPad: " + iOS13_iPad + + "\n iOS13_iPad2: " + iOS13_iPad2 + + "\n iOS1to12quirk: " + iOS1to12quirk() + + "\n MSStream: " + !window.MSStream + + this.debugTarget.value = message + + if (!this.isAppleOS()) { + this.installTarget.classList.add("d-none") + this.tipTarget.innerHTML = this.nonappleTipValue + return + } + + + } + + // Detect macOS/iOS/iPad OS + isAppleOS() { + let os = this.uaParser.getOS() + return os.name === 'Mac OS' || os.name === 'iOS' + } + + isPreviewFeature() { + return window.location.href.includes("?preview=1") + } +} \ No newline at end of file diff --git a/app/views/udid/index.html.slim b/app/views/udid/index.html.slim index 9ad943e7b..808fc698a 100644 --- a/app/views/udid/index.html.slim +++ b/app/views/udid/index.html.slim @@ -6,17 +6,27 @@ .row .col-md-12 - .card data-controller="platform" data-platform-env-value="#{Rails.env}" + .card[ + data-controller="udid" + data-udid-apple-tip-value="#{t('.apple_tip')}" + data-udid-nonapple-tip-value="#{t('.nonapple_tip')}" + ] .card-body.text-center - = raw @qrcode.as_svg(module_size: 8, fill: 'ffffff', offset: 8) - .pt-4.text-center = t('udid.index.tip') - - if params[:preview].present? - input.form-control.mt-3 data-platform-target="display" value="#{request.user_agent}" + .qrcode data-udid-target="qrcode" + = raw @qrcode.as_svg(module_size: 8, fill: 'ffffff', offset: 8) + .pt-4.text-center data-udid-target="tip" = t('.apple_tip') + + - if params[:preview].present? + .card-header + h3.card-title Debug zone + .card-body + textarea.form-control.text data-udid-target="debug" rows="10" .card-footer - = link_to t('udid.index.fetch_udid'), install_udid_index_path, class: 'btn btn-success btn-lg btn-block' + .install-profile data-udid-target="install" + = link_to t('.fetch_udid'), install_udid_index_path, class: 'btn btn-success btn-lg btn-block' .col-md-12 .card .card-header.card-border - h3.card-title = t('udid.index.help.title') - .card-body = t('udid.index.help.body_html') \ No newline at end of file + h3.card-title = t('.help.title') + .card-body = t('.help.body_html') \ No newline at end of file diff --git a/config/locales/zealot/en.yml b/config/locales/zealot/en.yml index 7112067b9..09f3fc5ed 100644 --- a/config/locales/zealot/en.yml +++ b/config/locales/zealot/en.yml @@ -597,7 +597,8 @@ en: udid: title: Fetch UDID index: - tip: Use iPhone or iPad to scan the QR Code then click the button below + apple_tip: Use iPhone or iPad to scan the QR Code then click the button below. + nonapple_tip: Sorry, available only for iPhone and iPad device. fetch_udid: Click to fetch UDID help: title: Why we need device's UDID? diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index 39477c78f..b9c576a4f 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -592,7 +592,8 @@ zh-CN: udid: title: 设备 UDID index: - tip: 电脑打开本页面的请使用 iPhone 或 iPad 扫描上面的二维码后点击下面的按钮 + apple_tip: 电脑打开本页面的请使用 iPhone 或 iPad 扫描上面的二维码后点击下面的按钮 + nonapple_tip: 当前功能仅提供给 iPhone 或 iPad 使用 fetch_udid: 点击获取设备 UDID help: title: 为什么需要设备 UDID? From 2eab869bff4612788276fb03461a64314ab4532a Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 10 Aug 2022 17:21:11 +0800 Subject: [PATCH 1078/2165] =?UTF-8?q?feat:=20=E6=A0=B9=E6=8D=AE=E8=AE=BE?= =?UTF-8?q?=E5=A4=87=E5=B1=95=E7=A4=BA=E8=8E=B7=E5=8F=96=20iOS=20=E8=AE=BE?= =?UTF-8?q?=E5=A4=87=20udid=20=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/javascript/controllers/udid_controller.js | 55 +++++++++---------- app/javascript/controllers/utils.js | 26 ++++++++- app/views/udid/index.html.slim | 27 +++++---- config/locales/zealot/en.yml | 8 +-- config/locales/zealot/zh-CN.yml | 8 +-- config/routes.rb | 6 -- 6 files changed, 73 insertions(+), 57 deletions(-) diff --git a/app/javascript/controllers/udid_controller.js b/app/javascript/controllers/udid_controller.js index c7776431d..881238ae0 100644 --- a/app/javascript/controllers/udid_controller.js +++ b/app/javascript/controllers/udid_controller.js @@ -1,8 +1,7 @@ import { Controller } from "@hotwired/stimulus" -import { UAParser } from "ua-parser-js" +import { uaParser, isiOS, isNonAppleOS } from "./utils" export default class extends Controller { - uaParser = new UAParser() static targets = ["qrcode", "install", "tip", "debug"] static values = { appleTip: String, @@ -10,44 +9,44 @@ export default class extends Controller { } connect() { - if (!this.isPreviewFeature()) { return } + if (isNonAppleOS()) { + this.installTarget.classList.add("d-none") + this.tipTarget.innerHTML = this.nonappleTipValue + } else if (isiOS()) { + this.qrcodeTarget.classList.add("d-none") + } else { + this.installTarget.classList.add("d-none") + } + + this.renderDebugZone + + if (this.isPreviewFeature()) { + this.renderDebugZone() + } + } + + isPreviewFeature() { + return window.location.href.includes("?preview=1") + } - console.log(this.uaParser.getResult()) + renderDebugZone() { + console.log(uaParser.getResult()) const iOS_1to12 = /iPad|iPhone|iPod/.test(navigator.platform) - const iOS13_iPad = (navigator.platform === "MacIntel" && navigator.maxTouchPoints > 1) - const iOS13_iPad2 = (navigator.userAgent.includes("Mac") && "ontouchend" in document) + const iOS13_maxTouchPoints = (navigator.platform === "MacIntel" && navigator.maxTouchPoints > 1) + const iOS13_ontouchend = (navigator.userAgent.includes("Mac") && "ontouchend" in document) const iOS1to12quirk = function() { var audio = new Audio() // temporary Audio object audio.volume = 0.5 // has no effect on iOS <= 12 return audio.volume === 1 } - let message = "usparse result: " + JSON.stringify(this.uaParser.getResult()) + + let message = "usparse result: " + JSON.stringify(uaParser.getResult()) + "\n iOS_1to12: " + iOS_1to12 + - "\n iOS13_iPad: " + iOS13_iPad + - "\n iOS13_iPad: " + iOS13_iPad + - "\n iOS13_iPad2: " + iOS13_iPad2 + + "\n iOS13_maxTouchPoints: " + iOS13_maxTouchPoints + + "\n iOS13_ontouchend: " + iOS13_ontouchend + "\n iOS1to12quirk: " + iOS1to12quirk() + "\n MSStream: " + !window.MSStream this.debugTarget.value = message - - if (!this.isAppleOS()) { - this.installTarget.classList.add("d-none") - this.tipTarget.innerHTML = this.nonappleTipValue - return - } - - - } - - // Detect macOS/iOS/iPad OS - isAppleOS() { - let os = this.uaParser.getOS() - return os.name === 'Mac OS' || os.name === 'iOS' - } - - isPreviewFeature() { - return window.location.href.includes("?preview=1") } } \ No newline at end of file diff --git a/app/javascript/controllers/utils.js b/app/javascript/controllers/utils.js index 841817859..c900be9a6 100644 --- a/app/javascript/controllers/utils.js +++ b/app/javascript/controllers/utils.js @@ -1,3 +1,5 @@ +import { UAParser } from "ua-parser-js" + const POLL_INTERVAL = 1000 const poll = ({ fn, validate, interval, maxAttempts }) => { @@ -22,4 +24,26 @@ const poll = ({ fn, validate, interval, maxAttempts }) => { return new Promise(executePoll) } -export { poll } \ No newline at end of file + +const uaParser = new UAParser() + +// Detect iOS/iPad OS +const isiOS = () => { + let device = uaParser.getDevice() + let isiPhoneOriPod = device && (device.model === "iPhone" || device.model === "iPod") + + // Legacy iPad || iPad iOS 13 above || iPad M1 + let isiPad = device && (device.model === "iPad" || + (navigator.userAgent.includes("Mac") && "ontouchend" in document) || + (navigator.userAgent.includes("Mac Intel") && navigator.maxTouchPoints > 1)) + + return isiPhoneOriPod || isiPad +} + +// Detect NonApple OS (Windows/Linux/Android etc) +const isNonAppleOS = () => { + let os = uaParser.getOS() + return !(os.name === "Mac OS" || os.name === "iOS") +} + +export { poll, uaParser, isiOS, isNonAppleOS } \ No newline at end of file diff --git a/app/views/udid/index.html.slim b/app/views/udid/index.html.slim index 808fc698a..bff0fd73e 100644 --- a/app/views/udid/index.html.slim +++ b/app/views/udid/index.html.slim @@ -5,25 +5,24 @@ = @title .row - .col-md-12 - .card[ - data-controller="udid" - data-udid-apple-tip-value="#{t('.apple_tip')}" - data-udid-nonapple-tip-value="#{t('.nonapple_tip')}" - ] - .card-body.text-center - .qrcode data-udid-target="qrcode" - = raw @qrcode.as_svg(module_size: 8, fill: 'ffffff', offset: 8) - .pt-4.text-center data-udid-target="tip" = t('.apple_tip') + .col-md-12[ + data-controller="udid" + data-udid-apple-tip-value="#{t('.apple_tip')}" + data-udid-nonapple-tip-value="#{t('.nonapple_tip')}" + ] + .card + .card-body.text-center data-udid-target="qrcode" + = raw @qrcode.as_svg(module_size: 8, fill: 'ffffff', offset: 8) + .pt-4.text-center data-udid-target="tip" = t('.apple_tip') + .install-profile data-udid-target="install" + = link_to t('.fetch_udid'), install_udid_index_path, class: 'btn btn-success btn-lg btn-block' - - if params[:preview].present? + - if params[:preview].present? + .card .card-header h3.card-title Debug zone .card-body textarea.form-control.text data-udid-target="debug" rows="10" - .card-footer - .install-profile data-udid-target="install" - = link_to t('.fetch_udid'), install_udid_index_path, class: 'btn btn-success btn-lg btn-block' .col-md-12 .card diff --git a/config/locales/zealot/en.yml b/config/locales/zealot/en.yml index 09f3fc5ed..b2ca3277b 100644 --- a/config/locales/zealot/en.yml +++ b/config/locales/zealot/en.yml @@ -597,11 +597,11 @@ en: udid: title: Fetch UDID index: - apple_tip: Use iPhone or iPad to scan the QR Code then click the button below. - nonapple_tip: Sorry, available only for iPhone and iPad device. - fetch_udid: Click to fetch UDID + apple_tip: Use iPhone or iPad to scan the QR Code to install + nonapple_tip: :'udid.index.apple_tip' + fetch_udid: Get your UDID now help: - title: Why we need device's UDID? + title: Why need install profile to fetch your UDID? body_html: |

      UDID is an abbreviation for Unique Device Identifier (UDID). The UDID is a feature provided by Apple to identify iOS devices. diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index b9c576a4f..86cec328f 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -592,11 +592,11 @@ zh-CN: udid: title: 设备 UDID index: - apple_tip: 电脑打开本页面的请使用 iPhone 或 iPad 扫描上面的二维码后点击下面的按钮 - nonapple_tip: 当前功能仅提供给 iPhone 或 iPad 使用 - fetch_udid: 点击获取设备 UDID + apple_tip: 请使用 iPhone 或 iPad 扫描二维码获取 + nonapple_tip: :'udid.index.apple_tip' + fetch_udid: 获取设备 UDID help: - title: 为什么需要设备 UDID? + title: 为什么要下载安装描述文件获取设备 UDID? body_html: |

      UDID 全称 Unique Device Identifier 是苹果设备唯一且独一无二的识别码,iOS 7 之前可以从应用获取, diff --git a/config/routes.rb b/config/routes.rb index 680569065..34a08964a 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -92,12 +92,6 @@ end end - # get 'udid', to: 'udid#index' - # get 'udid/install', to: 'udid#install' - # post 'udid/retrieve', to: 'udid#create' - # get 'udid/:udid', to: 'udid#show', as: 'udid_result' - # post 'udid/:udid/register', to: 'udid#register', as: 'udid_register' - ############################################# # Health check ############################################# From f1ac78c82b0c6c88572e2d392ae15c40ff6911f5 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 11 Aug 2022 12:14:06 +0800 Subject: [PATCH 1079/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E5=BA=94?= =?UTF-8?q?=E7=94=A8=E7=89=88=E6=9C=AC=E5=AF=86=E7=A0=81=E9=AA=8C=E8=AF=81?= =?UTF-8?q?=E6=97=A0=E6=8A=A5=E9=94=99=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/releases_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/releases_controller.rb b/app/controllers/releases_controller.rb index 2f2e3e419..4477ebc68 100644 --- a/app/controllers/releases_controller.rb +++ b/app/controllers/releases_controller.rb @@ -57,7 +57,7 @@ def auth redirect_to friendly_channel_release_path(@channel, @release) else @error_message = t('releases.messages.errors.invalid_password') - render :show + render :show, status: :see_other end end From 7e90c8532d879787e9250d46ddf14368f406785a Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 11 Aug 2022 12:41:01 +0800 Subject: [PATCH 1080/2165] =?UTF-8?q?refactor:=20=E5=BA=94=E7=94=A8?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E5=AF=86=E7=A0=81=E8=AE=A4=E8=AF=81=E9=83=A8?= =?UTF-8?q?=E5=88=86=E9=87=8D=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/releases_controller.rb | 10 +++---- app/helpers/apps_helper.rb | 12 +------- app/models/concerns/release_auth.rb | 30 +++++++++++++++++++ app/models/concerns/release_url.rb | 27 +++++++++++++++++ app/models/release.rb | 24 ++------------- app/views/releases/body/_metadata.html.slim | 13 -------- .../body/_new_release_callout.html.slim | 11 +++++++ .../releases/body/_password_auth.html.slim | 19 ++++++++++++ app/views/releases/show.html.slim | 30 ++++--------------- 9 files changed, 99 insertions(+), 77 deletions(-) create mode 100644 app/models/concerns/release_auth.rb create mode 100644 app/models/concerns/release_url.rb create mode 100644 app/views/releases/body/_new_release_callout.html.slim create mode 100644 app/views/releases/body/_password_auth.html.slim diff --git a/app/controllers/releases_controller.rb b/app/controllers/releases_controller.rb index 4477ebc68..5fabaf915 100644 --- a/app/controllers/releases_controller.rb +++ b/app/controllers/releases_controller.rb @@ -19,7 +19,6 @@ def index def show authorize @release - @title = @release.app_name end def new @@ -52,13 +51,12 @@ def destroy end def auth - if @channel.password == params[:password] - cookies["app_release_#{@release.id}_auth"] = @channel.encode_password - redirect_to friendly_channel_release_path(@channel, @release) - else + unless @release.password_match?(cookies, params[:password]) @error_message = t('releases.messages.errors.invalid_password') - render :show, status: :see_other + return render :show, status: :unprocessable_entity end + + redirect_to friendly_channel_release_path(@channel, @release), status: :see_other end protected diff --git a/app/helpers/apps_helper.rb b/app/helpers/apps_helper.rb index 9f4463034..492148c92 100644 --- a/app/helpers/apps_helper.rb +++ b/app/helpers/apps_helper.rb @@ -27,22 +27,12 @@ def app_icon(release, options = {}) image_tag(release.icon_url, **options) end - def app_release_auth_key(release) - "app_release_#{release.id}_auth" - end - def logged_in_or_without_auth?(release) user_signed_in? || matched_password?(release) end def matched_password?(release) - channel = release.channel - password = channel.password - - # no password euqal matched password - return true if password.blank? - - cookies["app_release_#{release.id}_auth"] == channel.encode_password + release.cookie_password_matched?(cookies) end def git_commit_url(git_url, commit, commit_length = 8) diff --git a/app/models/concerns/release_auth.rb b/app/models/concerns/release_auth.rb new file mode 100644 index 000000000..5db7599b4 --- /dev/null +++ b/app/models/concerns/release_auth.rb @@ -0,0 +1,30 @@ +# frozen_string_literal: true + +module ReleaseAuth + extend ActiveSupport::Concern + + COOKIE_KEY_PREFIX = 'zealot_release_auth_' + + def cookie_password_matched?(cookies) + channel.password.blank? || cookies[cache_key] == channel.encode_password + end + + def password_match?(cookies, password) + if channel.password == password + store_cookie_auth(cookies) + return true + end + + false + end + + private + + def store_cookie_auth(cookies) + cookies[cache_key] = channel.encode_password + end + + def cache_key + @cache_key ||= "#{COOKIE_KEY_PREFIX}#{id}" + end +end \ No newline at end of file diff --git a/app/models/concerns/release_url.rb b/app/models/concerns/release_url.rb new file mode 100644 index 000000000..21ecf8467 --- /dev/null +++ b/app/models/concerns/release_url.rb @@ -0,0 +1,27 @@ +# frozen_string_literal: true + +module ReleaseUrl + extend ActiveSupport::Concern + include Rails.application.routes.url_helpers + + def download_url + download_release_url(id) + end + + def install_url + if platform.casecmp?('unknown') || platform.casecmp?('android') || platform.casecmp?('macos') + return download_url + end + + ios_url = channel_release_install_url(channel.slug, id) + "itms-services://?action=download-manifest&url=#{ios_url}" + end + + def release_url + friendly_channel_release_url(channel, self) + end + + def qrcode_url(size = :thumb) + channel_release_qrcode_url(channel, self, size: size) + end +end \ No newline at end of file diff --git a/app/models/release.rb b/app/models/release.rb index ec850ae27..b00245a7d 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -3,7 +3,8 @@ class Release < ApplicationRecord extend ActionView::Helpers::TranslationHelper include ActionView::Helpers::TranslationHelper - include Rails.application.routes.url_helpers + include ReleaseUrl + include ReleaseAuth mount_uploader :file, AppFileUploader mount_uploader :icon, AppIconUploader @@ -140,27 +141,6 @@ def file? File.exist?(file.path) end - def download_url - download_release_url(id) - end - - def install_url - if platform.casecmp?('unknown') || platform.casecmp?('android') || platform.casecmp?('macos') - return download_url - end - - ios_url = channel_release_install_url(channel.slug, id) - "itms-services://?action=download-manifest&url=#{ios_url}" - end - - def release_url - friendly_channel_release_url(channel, self) - end - - def qrcode_url(size = :thumb) - channel_release_qrcode_url(channel, self, size: size) - end - def file_extname return '.zip' if file.blank? || !File.file?(file&.path) diff --git a/app/views/releases/body/_metadata.html.slim b/app/views/releases/body/_metadata.html.slim index a29cb0597..71e3f86ee 100644 --- a/app/views/releases/body/_metadata.html.slim +++ b/app/views/releases/body/_metadata.html.slim @@ -1,16 +1,3 @@ - -- if latest_release = @release.outdated? - .callout.callout-warning - h5 - i.icon.fas.fa-info - = t('releases.show.not_latest_release') - p - = raw t('releases.show.released_new_version', \ - release_version: latest_release.release_version, \ - build_version: latest_release.build_version, \ - time: time_ago_in_words(latest_release.created_at), \ - link: link_to(t('releases.show.view_latest_version'), friendly_channel_release_path(latest_release.channel, latest_release))) - .app-detail.card .card-header h3.card-title diff --git a/app/views/releases/body/_new_release_callout.html.slim b/app/views/releases/body/_new_release_callout.html.slim new file mode 100644 index 000000000..5ab631c39 --- /dev/null +++ b/app/views/releases/body/_new_release_callout.html.slim @@ -0,0 +1,11 @@ +- if latest_release + .callout.callout-warning + h5 + i.icon.fas.fa-info + = t('releases.show.not_latest_release') + p + = raw t('releases.show.released_new_version', \ + release_version: latest_release.release_version, \ + build_version: latest_release.build_version, \ + time: time_ago_in_words(latest_release.created_at), \ + link: link_to(t('releases.show.view_latest_version'), friendly_channel_release_path(latest_release.channel, latest_release))) diff --git a/app/views/releases/body/_password_auth.html.slim b/app/views/releases/body/_password_auth.html.slim new file mode 100644 index 000000000..08e5e0080 --- /dev/null +++ b/app/views/releases/body/_password_auth.html.slim @@ -0,0 +1,19 @@ +.col-md-12 + .card + .card-header + h3.card-title = t('releases.show.enter_password') + .card-body + - if @error_message.present? + .alert.alert-danger.alert-dismissible + h4 + i.icon.fas.fa-exclamation-triangle + = @error_message + form.form action="#{auth_channel_release_path(@channel, @release)}" method="post" role="form" + .input-group + .input-group-prepend + span.input-group-text style="border-left: 1px solid #ced4da" + i.fas.fa-key + input.form-control name="password" placeholder='******' type="password" + span.input-group-append + button.btn.btn-default.btn-flat + i.fas.fa-arrow-right \ No newline at end of file diff --git a/app/views/releases/show.html.slim b/app/views/releases/show.html.slim index 9b877e3bf..fd3407a5a 100644 --- a/app/views/releases/show.html.slim +++ b/app/views/releases/show.html.slim @@ -1,39 +1,19 @@ - content_for :title do - = @title + = @release.app_name .row - if logged_in_or_without_auth?(@release) .col-md-8.col-lg-9 + == render 'releases/body/new_release_callout', latest_release: @release.outdated? == render 'releases/body/metadata' == render 'releases/body/changelog' == render 'releases/body/devices' == render 'releases/body/activity', current_release: @release, recently_releases: @release.channel.recently_releases .col-md-4.col-lg-3 - - if user_signed_in? - a.btn.btn-success.btn-block.mb-3 href="#{new_channel_release_path(@channel)}" = t('releases.new.title') + = link_to_if user_signed_in?, t('releases.new.title'), new_channel_release_path(@channel), class: 'btn btn-success btn-block mb-3' == render 'releases/sidebar/version', channel: @release.channel == render 'releases/sidebar/qrcode' - - if guest_mode_or_signed_in? - a.btn.btn-default.btn-block href="#{friendly_channel_overview_path(@channel)}" = t('releases.show.view_detail') + = link_to_if guest_mode_or_signed_in?, t('.view_detail'), friendly_channel_overview_path(@channel), class: 'btn btn-default btn-block' - else - .col-md-12 - .card - .card-header - h3.card-title = t('releases.show.enter_password') - .card-body - - if @error_message.present? - .alert.alert-danger.alert-dismissible - h4 - i.icon.fas.fa-exclamation-triangle - = @error_message - - form.form action="#{auth_channel_release_path(@channel, @release)}" method="post" role="form" - .input-group - .input-group-prepend - span.input-group-text style="border-left: 1px solid #ced4da" - i.fas.fa-key - input.form-control name="password" placeholder='******' type="password" - span.input-group-append - button.btn.btn-default.btn-flat - i.fas.fa-arrow-right \ No newline at end of file + == render 'releases/body/password_auth' \ No newline at end of file From a8e0ff6ed45d9dd87db2c0a315298bfc8d935f0d Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 11 Aug 2022 14:27:28 +0800 Subject: [PATCH 1081/2165] =?UTF-8?q?refactor:=20=E5=BA=94=E7=94=A8?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E4=B8=8B=E8=BD=BD=E5=92=8C=E5=AE=89=E8=A3=85?= =?UTF-8?q?=E6=8C=89=E9=92=AE=E6=A0=B9=E6=8D=AE=E5=B9=B3=E5=8F=B0=E5=8C=BA?= =?UTF-8?q?=E5=88=86=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/assets/stylesheets/app.scss | 10 +-- app/controllers/releases_controller.rb | 4 +- app/helpers/application_helper.rb | 43 ------------- .../controllers/admin/service_controller.js | 4 +- .../release_download_controller.js | 61 ++++++++++++++++--- app/models/concerns/setting_helper.rb | 4 ++ app/models/setting.rb | 3 +- app/views/releases/_tips.html.slim | 11 ---- .../releases/body/_app_limited.html.slim | 12 ++-- .../releases/body/_install_app.html.slim | 54 ++++++++++++++++ app/views/releases/body/_metadata.html.slim | 49 +-------------- config/locales/zealot/zh-CN.yml | 6 +- 12 files changed, 135 insertions(+), 126 deletions(-) delete mode 100644 app/views/releases/_tips.html.slim create mode 100644 app/views/releases/body/_install_app.html.slim diff --git a/app/assets/stylesheets/app.scss b/app/assets/stylesheets/app.scss index e64d3e74b..3aa5f568e 100644 --- a/app/assets/stylesheets/app.scss +++ b/app/assets/stylesheets/app.scss @@ -33,10 +33,6 @@ $ios-install-issue-color: rgb(245, 39, 90); } } -.dark-mode .app-icon { - background-color: #fff; -} - // show page .cover { position: fixed; @@ -151,3 +147,9 @@ $ios-install-issue-color: rgb(245, 39, 90); } } } + +.dark-mode { + .app-icon { + background-color: #fff; + } +} \ No newline at end of file diff --git a/app/controllers/releases_controller.rb b/app/controllers/releases_controller.rb index 5fabaf915..b0572a15f 100644 --- a/app/controllers/releases_controller.rb +++ b/app/controllers/releases_controller.rb @@ -39,7 +39,7 @@ def create @release.perform_teardown_job(current_user.id) message = t('activerecord.success.create', key: "#{t('releases.title')}") - redirect_to channel_release_url(@channel, @release), notice: message + redirect_to channel_release_path(@channel, @release), notice: message end def destroy @@ -47,7 +47,7 @@ def destroy @release.destroy notice = t('activerecord.success.destroy', key: "#{t('releases.title')}") - redirect_to channel_versions_url(@channel), status: :see_other, notice: notice + redirect_to friendly_channel_releases_path(@channel), status: :see_other, notice: notice end def auth diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 0e7ffd93a..5691c6429 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -104,49 +104,6 @@ def device_style(device_type) end end - # 获取浏览器 user agent - delegate :user_agent, to: :request - - def app_limited? - user_agent.include?('MicroMessenger') || user_agent.include?('DingTalk') - end - - # Intel: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_0) AppleWebKit/537.36 (KHTML, like Gecko) - # Chrome/75.0.3770.100 Safari/537.36 - # Arm M1: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) - # Chrome/91.0.4472.114 Safari/537.36 - def macos?(source = nil) - source ||= user_agent - source.downcase.include?('macintosh') - end - - # iPadOS: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15) AppleWebKit/605.1.15 (KHTML, like Gecko) - # Version/13.0 Safari/605.1.15 - def ios?(source = nil) - source ||= user_agent - (source =~ /iPhone|iPad|Unversal|ios|iOS/i).present? - end - - def android?(source = nil) - source ||= user_agent - source.downcase.include?('android') - end - - # 检查设备 - def detect_device(device, target) - value = if ios?(device) - :ios - elsif android?(device) - :android - elsif macos?(device) - :macos - else - :unkown - end - - value == target.to_sym - end - def github_repo_commit(ref) "#{Setting.repo_url}/commit/#{ref}" end diff --git a/app/javascript/controllers/admin/service_controller.js b/app/javascript/controllers/admin/service_controller.js index e92124712..7a6fafd66 100644 --- a/app/javascript/controllers/admin/service_controller.js +++ b/app/javascript/controllers/admin/service_controller.js @@ -1,6 +1,6 @@ import { Controller } from "@hotwired/stimulus" import { Zealot } from "../zealot" -import JQuery from "jquery" +import jquery from "jquery" const RESTART_URI = "admin/service/restart" const HEALTH_CHECK_URI = "admin/service/status" @@ -70,7 +70,7 @@ export default class extends Controller { } clearNotifcation() { - JQuery("#notifications").fadeOut() + jquery("#notifications").fadeOut() } updateRestaringState() { diff --git a/app/javascript/controllers/release_download_controller.js b/app/javascript/controllers/release_download_controller.js index 79b56144e..58684a6bc 100644 --- a/app/javascript/controllers/release_download_controller.js +++ b/app/javascript/controllers/release_download_controller.js @@ -1,18 +1,42 @@ import { Controller } from "@hotwired/stimulus" import jquery from "jquery" +import { isiOS } from "./utils" const LOADING_TIMEOUT = 8000 export default class extends Controller { - static targets = [ "downloadButton", "installIssue" ] + static targets = [ + "installLimited", + "buttons", + + "installButton", + "installIssue", + "downloadButton" + ] + static values = { + installLimited: Array, + openSafari: String, + openBrower: String, + + installUrl: String, installing: String, - installed: String, - installUrl: String + installed: String + } + + connect() { + if (this.isInstallLimited()) { + return this.renderInstallLimited() + } + + if (isiOS()) { + this.installButtonTarget && this.installButtonTarget.classList.remove("d-none") + this.downloadButtonTarget && this.downloadButtonTarget.classList.add("d-none") + } } - download() { - this.renderLoading() + install(event) { + this.renderLoading(event.target) const link = this.installUrlValue console.debug("install url", link) @@ -65,13 +89,34 @@ export default class extends Controller { // }); } - async renderLoading() { - this.downloadButtonTarget.innerHTML = this.installingValue + async renderLoading(target) { + target.innerHTML = this.installingValue await this.sleep(LOADING_TIMEOUT) - this.downloadButtonTarget.innerHTML = this.installedValue + target.innerHTML = this.installedValue this.installIssueTarget.classList.remove("d-none") } + renderInstallLimited() { + let textNode = this.installLimitedTarget.getElementsByClassName("text")[0] + let brNode = document.createElement("br") + textNode.appendChild(brNode) + if (isiOS) { + textNode.appendChild(document.createTextNode(this.openSafariValue)) + } else { + textNode.appendChild(document.createTextNode(this.openBrowerValue)) + } + + this.installLimitedTarget.classList.remove("d-none") + this.buttonsTarget.classList.add("d-none") + } + + isInstallLimited() { + let ua = navigator.userAgent + let matches = this.installLimitedValue.find(keyword => ua.includes(keyword)) + + return !!matches + } + sleep(ms) { return new Promise((resolve) => setTimeout(resolve, ms)) } diff --git a/app/models/concerns/setting_helper.rb b/app/models/concerns/setting_helper.rb index 856912800..25666c812 100644 --- a/app/models/concerns/setting_helper.rb +++ b/app/models/concerns/setting_helper.rb @@ -32,6 +32,10 @@ def builtin_appearances } end + def builtin_install_limited + [ 'MicroMessenger', 'DingTalk' ] + end + def site_https Rails.env.production? || ENV['ZEALOT_USE_HTTPS'].present? end diff --git a/app/models/setting.rb b/app/models/setting.rb index 894d6dcab..9d404b163 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -31,9 +31,10 @@ class Setting < RailsSettings::Base field :preset_schemes, default: builtin_schemes, type: :array, display: true field :preset_role, default: 'user', type: :string, display: true, validates: { presence: true, inclusion: { in: builtin_roles.keys.map(&:to_s) } } + field :preset_install_limited, default: builtin_install_limited, type: :array, display: true end - # # 模式开关 + # 模式开关 scope :switch_mode do field :registrations_mode, default: ActiveModel::Type::Boolean.new.cast(ENV['ZEALOT_REGISTER_ENABLED'] || 'true'), type: :boolean, display: true diff --git a/app/views/releases/_tips.html.slim b/app/views/releases/_tips.html.slim deleted file mode 100644 index a849e1649..000000000 --- a/app/views/releases/_tips.html.slim +++ /dev/null @@ -1,11 +0,0 @@ -- if app_limited? - .cover - .app-limited-tips - span.text-right - = t('releases.show.app_touch_menu') - br - - if ios? - = t('releases.show.app_open_in_safari') - - else - = t('releases.show.app_open_in_webbrower') - = image_tag('icons/short-arrow.png') \ No newline at end of file diff --git a/app/views/releases/body/_app_limited.html.slim b/app/views/releases/body/_app_limited.html.slim index e93918fcb..2130b4c35 100644 --- a/app/views/releases/body/_app_limited.html.slim +++ b/app/views/releases/body/_app_limited.html.slim @@ -1,5 +1,9 @@ -= render "releases/tips" +.install-limited.d-none data-release-download-target="installLimited" + .cover + .app-limited-tips + span.text.text-right + = t('releases.show.app_touch_menu') + = image_tag('icons/short-arrow.png') -.alert.alert-danger.alert-dismissible - button.close data-dismiss="alert" aria-hidden="true" × - h5 = t('releases.show.app_limited') \ No newline at end of file + .alert.alert-danger.alert-dismissible + h5 = t('releases.show.app_limited') \ No newline at end of file diff --git a/app/views/releases/body/_install_app.html.slim b/app/views/releases/body/_install_app.html.slim new file mode 100644 index 000000000..0092398d1 --- /dev/null +++ b/app/views/releases/body/_install_app.html.slim @@ -0,0 +1,54 @@ +.app-actions[ + data-controller="release-download" + data-release-download-install-url-value="#{@release.install_url}" + data-release-download-install-limited-value="#{Setting.preset_install_limited.to_json}" + data-release-download-installing-value="#{t('releases.show.installing')}" + data-release-download-installed-value="#{t('releases.show.installed')}" + data-release-download-open-safari-value="#{t('releases.show.app_open_in_safari')}" + data-release-download-open-brower-value="#{t('releases.show.app_open_in_webbrower')}" +] + == render 'releases/body/app_limited' + + .install-buttons data-release-download-target="buttons" + - if @release.file? + == render 'releases/body/install_cert' + + - if @release.platform == 'iOS' + button.btn.btn-icon.btn-lg.btn-success.d-none[ + data-action="release-download#install" + data-release-download-target="installButton" + data-install-url="#{@release.install_url}" + data-loading-text="#{t('releases.show.installing')}" + ] + i.fas.fa-mobile-alt + = t('releases.show.install') + + a.btn.btn-icon.btn-lg.btn-success[ + data-release-download-target="downloadButton" + href="#{@release.download_url}" + target="_blank" + ] + i.fas.fa-download + = t('releases.show.download') + - else + button.btn.btn-icon.btn-lg.btn-secondary.disabled + i.fas.fa-ghost + = t('releases.show.missing_file') + + - if current_user&.manage? + = link_to channel_release_path(@release.channel, @release), class: 'btn btn-icon btn-lg btn-danger', \ + data: { turbo_method: :delete, turbo_confirm: t('releases.messages.confirm.destroy') } do + i.fas.fa-trash-alt + = t('releases.show.destroy') + + / - if @release.ci_url.present? + / button#build_it.btn.btn-icon.btn-lg.btn-success data-app-id="#{@release.app.id}" data-job="#{@release.ci_url}" data-loading-text=(" 正在构建...") data-toggle="modal" onclick="build()" + / i.fas.fa-wrench + / | 构建 + + .ios-install-issues.d-none data-release-download-target="installIssue" + i.fas.fa-asterisk + a href="javascript:void(0);" data-action="release-download#showQA" + = t('releases.show.cannot_install_or_untrusted_enterprise_developer') + + / p#jekins_buld_alert.alert.alert-warning.d-none.mt-1 role="alert" \ No newline at end of file diff --git a/app/views/releases/body/_metadata.html.slim b/app/views/releases/body/_metadata.html.slim index 71e3f86ee..9369096f3 100644 --- a/app/views/releases/body/_metadata.html.slim +++ b/app/views/releases/body/_metadata.html.slim @@ -58,51 +58,4 @@ i.fas.fa-layer-group = link_to t('releases.show.teardown_meatdata'), teardown_path(@release.metadata) - .app-actions[ - data-controller="release-download" - data-release-download-install-url-value="#{@release.install_url}" - data-release-download-installing-value="#{t('releases.show.installing')}" - data-release-download-installed-value="#{t('releases.show.installed')}" - ] - - if app_limited? - == render 'releases/body/app_limited' - - else - - if @release.file? - == render 'releases/body/install_cert' - - - if detect_device(@release.platform, :ios) && (ios? || macos?) - / iOS 和 Mac 显示此按钮 - button.btn.btn-icon.btn-lg.btn-success[ - id="download_it" - data-action="release-download#download" - data-release-download-target="downloadButton" - data-install-url="#{@release.install_url}" - data-loading-text="#{t('releases.show.installing')}" - ] - i.fas.fa-mobile-alt - = t('releases.show.install') - - a.btn.btn-icon.btn-lg.btn-success href="#{@release.download_url}" target="_blank" - i.fas.fa-download - = t('releases.show.download') - - else - button.btn.btn-icon.btn-lg.btn-secondary.disabled - i.fas.fa-ghost - = t('releases.show.missing_file') - - - if current_user&.manage? - a.btn.btn-icon.btn-lg.btn-danger href="#{channel_release_path(@release.channel, @release)}" data-confirm="#{t('releases.messages.confirm.destroy')}" data-method="delete" - i.fas.fa-trash-alt - = t('releases.show.destroy') - - / - if @release.ci_url.present? - / button#build_it.btn.btn-icon.btn-lg.btn-success data-app-id="#{@release.app.id}" data-job="#{@release.ci_url}" data-loading-text=(" 正在构建...") data-toggle="modal" onclick="build()" - / i.fas.fa-wrench - / | 构建 - - .ios-install-issues.d-none data-release-download-target="installIssue" - i.fas.fa-asterisk - a href="javascript:void(0);" data-action="release-download#showQA" - = t('releases.show.cannot_install_or_untrusted_enterprise_developer') - - / p#jekins_buld_alert.alert.alert-warning.d-none.mt-1 role="alert" \ No newline at end of file + == render 'releases/body/install_app' \ No newline at end of file diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index 86cec328f..894422a7f 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -356,11 +356,11 @@ zh-CN: source: 上传来源 metadata: 更多信息 teardown_meatdata: 解包信息 - install: 设备安装 - download: 本地下载 + install: 安装 + download: 下载 installing: 安装到桌面 ... installed: 安装请求完毕,请查看桌面 - destroy: 删除版本 + destroy: 删除 missing_file: 遗失文件不可安装或下载 more: 更多上传 cannot_install_or_untrusted_enterprise_developer: 桌面没有发现下载的应用或遇到 "未受信任的企业级开发者" 错误? From 1fdc00992ecc4e099aee5e8c7c60d5ce77d626c6 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 11 Aug 2022 14:32:04 +0800 Subject: [PATCH 1082/2165] =?UTF-8?q?fix:=20=E7=89=B9=E5=AE=9A=E6=83=85?= =?UTF-8?q?=E5=86=B5=E4=B8=8B=E9=A1=B5=E9=9D=A2=E7=9A=84=E5=B7=A6=E4=BE=A7?= =?UTF-8?q?=E6=A0=8F=E4=BC=9A=E6=97=A0=E6=B3=95=E6=94=B6=E7=BC=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/javascript/controllers/global_controller.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/javascript/controllers/global_controller.js b/app/javascript/controllers/global_controller.js index 8c46db0dd..c1c5e21a5 100644 --- a/app/javascript/controllers/global_controller.js +++ b/app/javascript/controllers/global_controller.js @@ -38,9 +38,14 @@ export default class extends Controller { fixAdminlteWithTubros() { this.fixTooltipToggle() + this.fixSidebarResize() } fixTooltipToggle() { jquery("[data-toggle='tooltip']").tooltip() } + + fixSidebarResize() { + jquery(window).trigger("resize") + } } \ No newline at end of file From b44018a3cf79d919d9b34c58159f2cd80494bc73 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 11 Aug 2022 14:47:03 +0800 Subject: [PATCH 1083/2165] =?UTF-8?q?feat:=20=E5=8F=AF=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E5=BA=94=E7=94=A8=E5=86=85=E9=99=90=E5=88=B6=E5=AE=89=E8=A3=85?= =?UTF-8?q?=E7=9A=84=20UA=20=E5=85=B3=E9=94=AE=E8=AF=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/releases_controller.rb | 4 +++- app/views/admin/settings/index.html.slim | 8 ++++---- config/locales/zealot/en.yml | 6 +++++- config/locales/zealot/zh-CN.yml | 4 +++- 4 files changed, 15 insertions(+), 7 deletions(-) diff --git a/app/controllers/releases_controller.rb b/app/controllers/releases_controller.rb index b0572a15f..7fde7835b 100644 --- a/app/controllers/releases_controller.rb +++ b/app/controllers/releases_controller.rb @@ -70,7 +70,9 @@ def authenticate_app! end def app_limited? - request.user_agent.include?('MicroMessenger') || request.user_agent.include?('DingTalk') + Setting.preset_install_limited + .find {|q| request.user_agent.include?(q) } + .present? end def set_release diff --git a/app/views/admin/settings/index.html.slim b/app/views/admin/settings/index.html.slim index 31b82da9c..c059ca4e2 100644 --- a/app/views/admin/settings/index.html.slim +++ b/app/views/admin/settings/index.html.slim @@ -46,13 +46,13 @@ dt = t("admin.settings.#{key}") dd - if params[:readonly] || (value.is_a?(Hash) && secure_key?(value)) - pre.disabled + pre.disabled.mb-2 == render 'switch_icon', value: value = display_value - else - pre + pre.mb-2 == render 'switch_icon', value: value = link_to display_value, edit_admin_setting_path(key) - - if key == 'demo_mode' - small = t('admin.settings.demo_mode_tips') \ No newline at end of file + - if hint = t("admin.settings.#{key}_hint", default: nil) + small.form-text.text-muted = hint \ No newline at end of file diff --git a/config/locales/zealot/en.yml b/config/locales/zealot/en.yml index b2ca3277b..73e9377e4 100644 --- a/config/locales/zealot/en.yml +++ b/config/locales/zealot/en.yml @@ -127,12 +127,16 @@ en: presets: Presets preset_schemes: Default schemes preset_role: Default user role + preset_install_limited: In-App install limited + preset_install_limited_hint: | + Specific mobile applications can not be install (Eg. WeChat, Dingtalk etc.), + using keywords of User Agent to guide open the browser to install. switch_mode: Switch mode registrations_mode: Registrations mode guest_mode: Guest mode demo_mode: Demo mode - demo_mode_tips: 'Enable demo mode will: RESET data daily, CAN NOT destroy or edit default admin user profile, Filtered secure key and read only' + demo_mode_hint: Enable demo mode will RESET data daily, CAN NOT destroy or edit default admin user profile, Filtered secure key and read only third_party_auth: Third pary auth ldap: LDAP diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index 894422a7f..75fbde4ea 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -127,12 +127,14 @@ zh-CN: presets: 预设值 preset_schemes: 应用类型模板 preset_role: 新用户权限 + preset_install_limited: 应用内安装限制 + preset_install_limited_hint: 特定手机应用打开无法进行安装操作(比如:微信、钉钉等),通过设置 User Agent 关键词开启使用浏览器打开安装帮助 switch_mode: 模式开关 registrations_mode: 注册模式 guest_mode: 游客模式 demo_mode: 演示模式 - demo_mode_tips: 开启演示模式会触发:每天定时恢复默认数据;无法编辑或删除默认管理员;隐私数据会安全化显示且无法编辑 + demo_mode_hint: 开启演示模式会触发:每天定时恢复默认数据;无法编辑或删除默认管理员;隐私数据会安全化显示且无法编辑 third_party_auth: 第三方登录 ldap: LDAP From 3eee0f52a7b4448a312db92d34d6a47e121de9e4 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 11 Aug 2022 14:49:06 +0800 Subject: [PATCH 1084/2165] =?UTF-8?q?fix:=20=E8=8B=B1=E6=96=87=E8=AF=AD?= =?UTF-8?q?=E8=A8=80=E5=8E=BB=E5=A4=84=E6=AD=A7=E4=B9=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/locales/zealot/en.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/zealot/en.yml b/config/locales/zealot/en.yml index 73e9377e4..3c0069956 100644 --- a/config/locales/zealot/en.yml +++ b/config/locales/zealot/en.yml @@ -156,7 +156,7 @@ en: google_analytics_id: Google Analytics ID archives: Archive uploaded binaries - keep_uploads: Keep all + keep_uploads: Keep all builds empty_value: Empty no_editable_key: Read only From 44f15e0ea1d05c4b36b735abd0fb97132fdf5f3c Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 11 Aug 2022 15:18:34 +0800 Subject: [PATCH 1085/2165] =?UTF-8?q?fix:=20=E5=88=A0=E9=99=A4=E9=9C=80?= =?UTF-8?q?=E8=A6=81=E9=87=8D=E5=90=AF=E7=9A=84=E7=B3=BB=E7=BB=9F=E5=8F=82?= =?UTF-8?q?=E6=95=B0=E4=B9=9F=E9=9C=80=E8=A6=81=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controllers/admin/service_controller.js | 54 ++++++++----------- app/models/setting.rb | 5 +- 2 files changed, 24 insertions(+), 35 deletions(-) diff --git a/app/javascript/controllers/admin/service_controller.js b/app/javascript/controllers/admin/service_controller.js index 7a6fafd66..338fd1ddb 100644 --- a/app/javascript/controllers/admin/service_controller.js +++ b/app/javascript/controllers/admin/service_controller.js @@ -1,5 +1,6 @@ import { Controller } from "@hotwired/stimulus" import { Zealot } from "../zealot" +import { poll } from "../utils" import jquery from "jquery" const RESTART_URI = "admin/service/restart" @@ -15,39 +16,40 @@ export default class extends Controller { async restart() { const buttonHTML = this.buttonTarget.innerHTML + // Update status of button this.clearNotifcation() this.updateRestaringState() - var serverRestarting = true; - const restartSuccess = await this.serviceRestart() + // Do restart action + await this.serviceRestart() await this.sleep(2000) - if (!restartSuccess) { - this.buttonTarget.innerHTML = buttonHTML - return false + // Run loop to check service is back online + const healthCheck = async () => { + const response = await fetch(Zealot.rootUrl + HEALTH_CHECK_URI) + return response && response.status === 200 } - do { - var online = await this.serviceisOnline() - if (online) { - serverRestarting = false - } else { - await this.sleep(1000) - } - } while (serverRestarting) + const result = await poll({ + fn: healthCheck, + validate: (online) => !!online, + interval: 2000 + }) - this.updateRestartedState() - await this.sleep(2000) - window.location.reload() + if (result) { + this.updateRestartedState() + await this.sleep(2000) + window.location.reload() + } } serviceRestart() { fetch(Zealot.rootUrl + RESTART_URI, { method: "POST" }) - .then(response => response.json()) - .then(() => { - return true + .then((response) => response.status === 200) + .then((result) => { + return result }) .catch((error) => { console.debug("service restart failed", error) @@ -55,20 +57,6 @@ export default class extends Controller { }) } - serviceisOnline() { - fetch(Zealot.rootUrl + HEALTH_CHECK_URI, { - method: "GET" - }) - .then(response => response.json()) - .then(() => { - return true - }) - .catch((error) => { - console.debug("service is down, stilling wait", error) - return false - }) - } - clearNotifcation() { jquery("#notifications").fadeOut() } diff --git a/app/models/setting.rb b/app/models/setting.rb index 9d404b163..8628a9068 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -6,8 +6,9 @@ class Setting < RailsSettings::Base include SettingValidate include SettingSuger - before_save :convert_third_party_enabled_value, if: :third_party_auth_scope? - before_save :mark_restart_flag, if: :need_restart? + before_save :convert_third_party_enabled_value, if: :third_party_auth_scope? + before_save :mark_restart_flag, if: :need_restart? + before_destroy :mark_restart_flag, if: :need_restart? cache_prefix { 'v2' } From fc27a1d25b2351ffa4075d0d92af1a0e5e6ec859 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 3 Aug 2022 19:18:09 +0800 Subject: [PATCH 1086/2165] =?UTF-8?q?feat:=20=E9=A1=B5=E9=9D=A2=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E5=88=9B=E5=BB=BA=E6=95=B0=E6=8D=AE=E5=BA=93=E5=A4=87?= =?UTF-8?q?=E4=BB=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/admin/backups_controller.rb | 40 ++++++++ app/helpers/admin/backup_helper.rb | 31 ++++++ app/jobs/application_job.rb | 2 +- app/jobs/backup_job.rb | 68 +++++++++++++ app/models/backup.rb | 29 ++++++ app/models/backup_scope.rb | 25 +++++ app/views/admin/apple_keys/index.html.slim | 2 +- app/views/admin/backups/create.html.slim | 2 + app/views/admin/backups/destroy.html.slim | 2 + app/views/admin/backups/index.html.slim | 45 +++++++++ app/views/admin/backups/new.html.slim | 2 + app/views/admin/backups/show.html.slim | 28 ++++++ app/views/layouts/_main_sidebar.html.slim | 4 + config/locales/zealot/en.yml | 19 ++++ config/locales/zealot/zh-CN.yml | 23 +++++ config/routes.rb | 17 +++- db/migrate/20220803055400_create_backups.rb | 13 +++ .../20220803055410_create_backup_scopes.rb | 10 ++ db/schema.rb | 24 ++++- lib/tasks/zealot/backup.rake | 16 +-- lib/{ => zealot}/backup/database.rb | 61 ++++++------ lib/{ => zealot}/backup/helper.rb | 77 +++++---------- lib/{ => zealot}/backup/manager.rb | 97 +++++++++++-------- lib/{ => zealot}/backup/uploads.rb | 14 ++- 24 files changed, 505 insertions(+), 146 deletions(-) create mode 100644 app/controllers/admin/backups_controller.rb create mode 100644 app/helpers/admin/backup_helper.rb create mode 100644 app/jobs/backup_job.rb create mode 100644 app/models/backup.rb create mode 100644 app/models/backup_scope.rb create mode 100644 app/views/admin/backups/create.html.slim create mode 100644 app/views/admin/backups/destroy.html.slim create mode 100644 app/views/admin/backups/index.html.slim create mode 100644 app/views/admin/backups/new.html.slim create mode 100644 app/views/admin/backups/show.html.slim create mode 100644 db/migrate/20220803055400_create_backups.rb create mode 100644 db/migrate/20220803055410_create_backup_scopes.rb rename lib/{ => zealot}/backup/database.rb (71%) rename lib/{ => zealot}/backup/helper.rb (81%) rename lib/{ => zealot}/backup/manager.rb (67%) rename lib/{ => zealot}/backup/uploads.rb (89%) diff --git a/app/controllers/admin/backups_controller.rb b/app/controllers/admin/backups_controller.rb new file mode 100644 index 000000000..2033564bd --- /dev/null +++ b/app/controllers/admin/backups_controller.rb @@ -0,0 +1,40 @@ +# frozen_string_literal: true + +class Admin::BackupsController < ApplicationController + before_action :set_backup, only: %i[show perform edit update destroy] + + def index + @backups = Backup.all + end + + def show + end + + def perform + @backup.perform_job + + notice = 'Backup was successfully scheduled to run in the background.' + redirect_to admin_backups_path, notice + end + + def edit + end + + def update + end + + def destroy + end + + def new + end + + def create + end + + private + + def set_backup + @backup = Backup.find(params[:id]) + end +end diff --git a/app/helpers/admin/backup_helper.rb b/app/helpers/admin/backup_helper.rb new file mode 100644 index 000000000..67e4ee53d --- /dev/null +++ b/app/helpers/admin/backup_helper.rb @@ -0,0 +1,31 @@ +# frozen_string_literal: true + +module Admin + module BackupHelper + def schedule_to_human(schedule) + parse_schedule(schedule).to_cron_s + end + + def next_schedule_to_human(schedule) + parse_schedule(schedule).next_time + end + + def explan_scopes(scopes) + scopes.each_with_object([]) do |scope, obj| + case scope.key + when BackupScope::DATABASE + obj << t('admin.backups.index.database') + when BackupScope::CHANNEL + obj << t('admin.backups.index.channel', count: scope.channels.size) + end + end.join(' | ') + end + + private + + def parse_schedule(value) + # dependency from sidekiq-schedule + Fugit.parse(value) + end + end +end \ No newline at end of file diff --git a/app/jobs/application_job.rb b/app/jobs/application_job.rb index 5fddd438d..bae49f461 100644 --- a/app/jobs/application_job.rb +++ b/app/jobs/application_job.rb @@ -1,8 +1,8 @@ # frozen_string_literal: true class ApplicationJob < ActiveJob::Base - include ActiveJob::Status include ActionView::Helpers::TranslationHelper + include ActiveJob::Status protected diff --git a/app/jobs/backup_job.rb b/app/jobs/backup_job.rb new file mode 100644 index 000000000..e2398b207 --- /dev/null +++ b/app/jobs/backup_job.rb @@ -0,0 +1,68 @@ +# frozen_string_literal: true + +require 'fileutils' + +class BackupJob < ApplicationJob + queue_as :schedule + + LOCK_FILE = '.lock' + + def perform(backup_id) + @backup = Backup.find(backup_id) + + prepare + dump_database + # dump_channels + archive + cleanup + rescue => e + # Cause issues: + # 1. write directory permissions + # 2. not enough disk space + # 3. missing backup cli commands (pg_dump, gzip etc) + message = "Failed to create backup job, because #{e.message}" + logger.error message + logger.error e.backtrace.join("\n") + end + + private + + def archive + manager = Zealot::Backup::Manager.new(backup_path, logger) + manager.write_info + manager.pack + manager.cleanup + end + + def prepare + FileUtils.mkdir_p(backup_path) + FileUtils.touch(local_file) + end + + def cleanup + FileUtils.rm_f(local_file) + end + + def dump_database + return unless @backup.backup_database? + + Zealot::Backup::Database.dump(path: backup_path) + end + + def dump_channels + return unless @backup.backup_channel? + + Zealot::Backup::Upload.dump(path: backup_path) + end + + def backup_path + @backup_path ||= -> () { + today = Time.now.strftime('%s_%Y%m%d-%H%M') + File.join(@backup.path, today) + }.call + end + + def local_file + @local_file ||= File.join(backup_path, LOCK_FILE) + end +end diff --git a/app/models/backup.rb b/app/models/backup.rb new file mode 100644 index 000000000..ed4c4d443 --- /dev/null +++ b/app/models/backup.rb @@ -0,0 +1,29 @@ +# frozen_string_literal: true + +require 'pathname' + +class Backup < ApplicationRecord + has_many :backup_scopes + + def perform_job + BackupJob.perform_later id + end + + def backup_database? + backup_scopes.database? + end + + def backup_channel? + backup_scopes.channel? + end + + def files + Dir.glob(File.join(path, '*')).each_with_object([]) do |file, obj| + obj << Pathname.new(file) + end.sort_by(&:ctime).reverse! + end + + def path + Rails.root.join(Setting.backup[:path], key) + end +end diff --git a/app/models/backup_scope.rb b/app/models/backup_scope.rb new file mode 100644 index 000000000..07e2bb3ba --- /dev/null +++ b/app/models/backup_scope.rb @@ -0,0 +1,25 @@ +# frozen_string_literal: true + +class BackupScope < ApplicationRecord + DATABASE = 'database' + CHANNEL = 'channel' + + belongs_to :backup + + scope :database?, -> { exists?(key: DATABASE) } + scope :channel?, -> { exists?(key: CHANNEL) } + + enum key: { database: DATABASE, channel: CHANNEL } + + def channels + return if key == DATABASE + + value['data'].each_with_object([]) do |channel_id, obj| + begin + obj << Channel.find(channel_id) + rescue + next + end + end + end +end diff --git a/app/views/admin/apple_keys/index.html.slim b/app/views/admin/apple_keys/index.html.slim index e07fe018b..4555217de 100644 --- a/app/views/admin/apple_keys/index.html.slim +++ b/app/views/admin/apple_keys/index.html.slim @@ -34,7 +34,7 @@ td = time_ago_in_words(apple_key.created_at) td - = button_to t('.destroy'), admin_apple_key_path(apple_key), \ + = link_to t('.destroy'), admin_apple_key_path(apple_key), \ data: { turbo_method: :delete, turbo_confirm: t('.destroy_confirm', team: apple_key.team.display_name, team_id: apple_key.team.team_id) } - else .card.card-outline.card-warning diff --git a/app/views/admin/backups/create.html.slim b/app/views/admin/backups/create.html.slim new file mode 100644 index 000000000..9dbb6779f --- /dev/null +++ b/app/views/admin/backups/create.html.slim @@ -0,0 +1,2 @@ +h1 Admin::Backup#create +p Find me in app/views/admin/backup/create.html.slim diff --git a/app/views/admin/backups/destroy.html.slim b/app/views/admin/backups/destroy.html.slim new file mode 100644 index 000000000..9bc16a57d --- /dev/null +++ b/app/views/admin/backups/destroy.html.slim @@ -0,0 +1,2 @@ +h1 Admin::Backup#destroy +p Find me in app/views/admin/backup/destroy.html.slim diff --git a/app/views/admin/backups/index.html.slim b/app/views/admin/backups/index.html.slim new file mode 100644 index 000000000..157dde19b --- /dev/null +++ b/app/views/admin/backups/index.html.slim @@ -0,0 +1,45 @@ +- content_for :title do + = t('.title') + +- content_for :section_title do + = t('.title') + +- content_for :section_rightpanel do + a.btn.btn-icon.bg-green href="#{new_admin_backup_path}" + i.icon.far.fa-plus-square + = t('.new_backup') + +.row + .col-md-12 + .card + .card-body.p-0 + table.table + tr + th = t('.key') + th = t('.scopes') + th = t('.schedule') + th = t('.next_schedule_at') + th = t('.enabled') + th = t('.action') + - @backups.each do |backup| + tr + td = link_to backup.key, admin_backup_path(backup) + td = explan_scopes(backup.backup_scopes) + td = schedule_to_human(backup.schedule) + td = next_schedule_to_human(backup.schedule) + td + == render 'admin/settings/switch_icon', value: backup.enabled + td + .btn-group + = button_to perform_admin_backup_path(backup), class: 'btn btn-sm', title: t('.run_now') do + i.fas.fa-play-circle + = link_to edit_admin_backup_path(backup), class: 'btn btn-sm', title: t('.edit') do + i.fas.fa-edit + = link_to admin_backup_path(backup), class: 'btn btn-sm', title: t('.destroy'), \ + data: { turbo_method: :delete, turbo_confirm: t('.destroy_confirm', key: backup.key) } do + i.fas.fa-trash-alt.text-danger + + .card.card-outline.card-warning + .card-header.card-border + h3.card-title = t('.not_found.title') + .card-body = t('.not_found.body_html') \ No newline at end of file diff --git a/app/views/admin/backups/new.html.slim b/app/views/admin/backups/new.html.slim new file mode 100644 index 000000000..e45eae4a9 --- /dev/null +++ b/app/views/admin/backups/new.html.slim @@ -0,0 +1,2 @@ +h1 Admin::Backup#new +p Find me in app/views/admin/backup/new.html.slim diff --git a/app/views/admin/backups/show.html.slim b/app/views/admin/backups/show.html.slim new file mode 100644 index 000000000..626246664 --- /dev/null +++ b/app/views/admin/backups/show.html.slim @@ -0,0 +1,28 @@ +- content_for :title do + = t('.title', key: @backup.key) + +- content_for :section_title do + = t('.title', key: @backup.key) + +.row + .col-md-12 + .card + .card-body.p-0 + table.table + tr + th = t('.filename') + th = t('.created_at') + th = t('.size') + th = t('.download') + - @backup.files.each do |file| + tr + td = file.basename + td = file.ctime + td = number_to_human_size(file.size) + td + = link_to 'download', download_admin_backup_path(@backup) + + .card.card-outline.card-warning + .card-header.card-border + h3.card-title = t('.not_found.title') + .card-body = t('.not_found.body_html') \ No newline at end of file diff --git a/app/views/layouts/_main_sidebar.html.slim b/app/views/layouts/_main_sidebar.html.slim index b39d6d655..985a9eda1 100644 --- a/app/views/layouts/_main_sidebar.html.slim +++ b/app/views/layouts/_main_sidebar.html.slim @@ -39,6 +39,10 @@ a.nav-link href="#{admin_apple_keys_path}" class="#{active_class(admin_apple_keys_path)}" i.nav-icon.fas.fa-key p = t('admin.apple_keys.title') + li.nav-item + a.nav-link href="#{admin_backups_path}" class="#{active_class(admin_backups_path)}" + i.nav-icon.fas.fa-window-restore + p = t('admin.backups.title') li.nav-item a.nav-link href="#{admin_settings_path}" class="#{active_class(admin_settings_path)}" i.nav-icon.fas.fa-cog diff --git a/config/locales/zealot/en.yml b/config/locales/zealot/en.yml index 3c0069956..f3dcb9e71 100644 --- a/config/locales/zealot/en.yml +++ b/config/locales/zealot/en.yml @@ -194,6 +194,25 @@ en: messages: file_permissions_tip: If you see a warning icon in the list below it means that the paths are not writable, which may cause Zealot to be unavailable or abnormal. + backups: + title: Backups + index: + title: :'admin.backups.title' + new_backup: New backup + key: Key + scopes: Scopes + schedule: Schedule + next_schedule_at: Next schedule at + enabled: Enabled + run_now: Run now + action: Action + database: Database + channel: + zero: '%{count} Channel' + one: '%{count} Channel' + other: '%{count} Channels' + destroy_confirm: 'Confirm to destroy: %{key}?' + background_jobs: title: Background jobs index: diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index 75fbde4ea..c2eecac67 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -190,6 +190,29 @@ zh-CN: messages: file_permissions_tip: 如果你看到下面路径有显示红色异常图标那就是表面该路径无法写入可能会造成 Zealot 无法正常使用或发生异常情况 + backups: + title: 数据备份 + index: + title: :'admin.backups.title' + new_backup: 创建备份 + key: 备份名称 + scopes: 备份范围 + schedule: 备份频率 + next_schedule_at: 下次备份时间 + enabled: 启用 + run_now: 现在运行 + action: 操作 + database: 数据库 + channel: '%{count} 应用渠道' + destroy_confirm: 确认删除 %{key}? + show: + title: '%{key} 备份' + filename: 文件名 + created_at: 生成时间 + size: 大小 + download: 下载 + destroy: 删除 + background_jobs: title: 后台任务 index: diff --git a/config/routes.rb b/config/routes.rb index 34a08964a..f20dd5e8d 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -104,25 +104,32 @@ namespace :admin do root to: 'settings#index' + resources :settings resources :users, except: :show resources :web_hooks, except: %i[ show new create ] + resources :apple_teams, only: %i[ edit update ] + resources :background_jobs, only: :index + resources :system_info, only: :index + resources :database_analytics, only: :index resources :apple_keys, except: %i[ edit update ] do member do put :sync_devices end end - resources :apple_teams, only: %i[ edit update ] - resources :settings - resources :background_jobs, only: :index - resources :system_info, only: :index - resources :database_analytics, only: :index resources :logs, only: %i[ index ] do collection do get :retrive end end + resources :backups do + member do + post :perform + get :download + end + end + namespace :service do post :restart get :status diff --git a/db/migrate/20220803055400_create_backups.rb b/db/migrate/20220803055400_create_backups.rb new file mode 100644 index 000000000..36046c847 --- /dev/null +++ b/db/migrate/20220803055400_create_backups.rb @@ -0,0 +1,13 @@ +class CreateBackups < ActiveRecord::Migration[7.0] + def change + create_table :backups do |t| + t.string :key, unique: true, null: false, index: true + t.string :schedule + t.integer :max_keeps + t.string :notification + t.boolean :enable_archive + t.boolean :enabled + t.timestamps + end + end +end diff --git a/db/migrate/20220803055410_create_backup_scopes.rb b/db/migrate/20220803055410_create_backup_scopes.rb new file mode 100644 index 000000000..bc5048924 --- /dev/null +++ b/db/migrate/20220803055410_create_backup_scopes.rb @@ -0,0 +1,10 @@ +class CreateBackupScopes < ActiveRecord::Migration[7.0] + def change + create_table :backup_scopes do |t| + t.references :backup, index: true, foreign_key: { on_delete: :cascade } + t.string :key + t.jsonb :value, default: {}, null: false + t.timestamps + end + end +end diff --git a/db/schema.rb b/db/schema.rb index 80959eb31..452c3dfaf 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema[7.0].define(version: 2022_07_20_105433) do +ActiveRecord::Schema[7.0].define(version: 2022_08_03_055410) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -63,6 +63,27 @@ t.index ["user_id", "app_id"], name: "index_apps_users_on_user_id_and_app_id" end + create_table "backup_scopes", force: :cascade do |t| + t.bigint "backup_id" + t.string "key" + t.jsonb "value", default: {}, null: false + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + t.index ["backup_id"], name: "index_backup_scopes_on_backup_id" + end + + create_table "backups", force: :cascade do |t| + t.string "key", null: false + t.string "schedule" + t.integer "max_keeps" + t.string "notification" + t.boolean "enable_archive" + t.boolean "enabled" + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + t.index ["key"], name: "index_backups_on_key" + end + create_table "channels", force: :cascade do |t| t.bigint "scheme_id" t.string "name", null: false @@ -257,6 +278,7 @@ end add_foreign_key "apple_teams", "apple_keys", on_delete: :cascade + add_foreign_key "backup_scopes", "backups", on_delete: :cascade add_foreign_key "channels", "schemes", on_delete: :cascade add_foreign_key "debug_file_metadata", "debug_files" add_foreign_key "debug_files", "apps", on_delete: :cascade diff --git a/lib/tasks/zealot/backup.rake b/lib/tasks/zealot/backup.rake index ba06e6199..0e44ffca0 100644 --- a/lib/tasks/zealot/backup.rake +++ b/lib/tasks/zealot/backup.rake @@ -28,9 +28,9 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. -require_relative '../../backup/helper' +require_relative '../../zealot/backup/helper' -extend Backup::Helper +extend Zealot::Backup::Helper namespace :zealot do namespace :backup do @@ -39,7 +39,7 @@ namespace :zealot do Rake::Task['zealot:backup:db:create'].invoke Rake::Task['zealot:backup:uploads:create'].invoke - backup = Backup::Manager.new + backup = Zealot::Backup::Manager.new backup.write_info backup.pack backup.cleanup @@ -48,7 +48,7 @@ namespace :zealot do desc 'Zealot | Backup | Restore a previously created backup' task restore: :environment do - backup = Backup::Manager.new + backup = Zealot::Backup::Manager.new cleanup_required = backup.unpack backup.verify_backup_version @@ -62,21 +62,21 @@ namespace :zealot do namespace :uploads do task create: :environment do - Backup::Uploads.dump + Zealot::Backup::Uploads.dump end task restore: :environment do - Backup::Uploads.restore + Zealot::Backup::Uploads.restore end end namespace :db do task create: :environment do - Backup::Database.dump + Zealot::Backup::Database.dump end task restore: :environment do - Backup::Database.restore + Zealot::Backup::Database.restore end end end diff --git a/lib/backup/database.rb b/lib/zealot/backup/database.rb similarity index 71% rename from lib/backup/database.rb rename to lib/zealot/backup/database.rb index 1a501302f..ede3b104f 100644 --- a/lib/backup/database.rb +++ b/lib/zealot/backup/database.rb @@ -28,18 +28,25 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. -module Backup +module Zealot::Backup class Database - include Backup::Helper + include Zealot::Backup::Helper class Error < StandardError; end - def self.dump - new.dump + def self.dump(path: nil, logger: nil) + new(path, logger).dump end - def self.restore - new.restore + def self.restore(path: nil, logger: nil) + new(path, logger).restore + end + + attr_reader :path, :logger + + def initialize(path, logger = nil) + @path = path + @logger = logger || Logger.new(STDOUT) end def dump @@ -51,9 +58,9 @@ def dump compress_rd.close dump_pid = - case config["adapter"] - when "postgresql" then - puts_time("Dumping PostgreSQL database #{config['database']} ... ", false) + case config['adapter'] + when 'postgresql' + logger.debug "Dumping PostgreSQL database #{config['database']} ... " pg_env pgsql_args = ["--clean"] # Pass '--clean' to include 'DROP TABLE' statements in the DB dump. if Setting.backup[:pg_schema] @@ -70,8 +77,9 @@ def dump $?.success? end - report_result(success) - raise Backup::Database::Error, 'Backup failed' unless success + raise Zealot::Backup::Database::Error, 'Backup failed' unless success + + success end def restore @@ -80,9 +88,9 @@ def restore decompress_wr.close restore_pid = - case config["adapter"] - when "postgresql" then - puts_time("Restoring PostgreSQL database #{config['database']} ... ", false) + case config['adapter'] + when 'postgresql' + _logger.debug "Restoring PostgreSQL database #{config['database']} ... " pg_env spawn('psql', config['database'], in: decompress_rd) end @@ -93,25 +101,24 @@ def restore $?.success? end - report_result(success) - raise Backup::Database::Error, 'Restore failed' unless success + raise Zealot::Backup::Database::Error, 'Restore failed' unless success end private def pg_env args = { - 'username' => 'PGUSER', - 'host' => 'PGHOST', - 'port' => 'PGPORT', - 'password' => 'PGPASSWORD', + 'username' => 'ZEALOT_POSTGRES_USER', + 'host' => 'ZEALOT_POSTGRES_HOST', + 'port' => 'ZEALOT_POSTGRES_PORT', + 'password' => 'ZEALOT_POSTGRES_PASSWORD', # SSL - 'sslmode' => 'PGSSLMODE', - 'sslkey' => 'PGSSLKEY', - 'sslcert' => 'PGSSLCERT', - 'sslrootcert' => 'PGSSLROOTCERT', - 'sslcrl' => 'PGSSLCRL', - 'sslcompression' => 'PGSSLCOMPRESSION' + 'sslmode' => 'ZEALOT_POSTGRES_SSLMODE', + 'sslkey' => 'ZEALOT_POSTGRES_SSLKEY', + 'sslcert' => 'ZEALOT_POSTGRES_SSLCERT', + 'sslrootcert' => 'ZEALOT_POSTGRES_SSLROOTCERT', + 'sslcrl' => 'ZEALOT_POSTGRES_SSLCRL', + 'sslcompression' => 'ZEALOT_POSTGRES_SSLCOMPRESSION' } args.each { |opt, arg| ENV[arg] = config[opt].to_s if config[opt] } end @@ -124,7 +131,7 @@ def config end def db_file_name - @db_file_name ||= File.join(backup_path, 'db', 'database.sql.gz') + @db_file_name ||= File.join(path || backup_path, 'db', 'database.sql.gz') end end end \ No newline at end of file diff --git a/lib/backup/helper.rb b/lib/zealot/backup/helper.rb similarity index 81% rename from lib/backup/helper.rb rename to lib/zealot/backup/helper.rb index 433223745..c39d2b448 100644 --- a/lib/backup/helper.rb +++ b/lib/zealot/backup/helper.rb @@ -28,45 +28,11 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. -module Backup +module Zealot::Backup module Helper - def access_denied_error(path) - message = <<~EOS - - ### NOTICE ### - As part of restore, the task tried to move existing content from #{path}. - However, it seems that directory contains files/folders that are not owned. - To proceed, please move the files or folders inside #{path} to a secure - location so that #{path} is empty and run restore task again. - - EOS - raise message - end - - def resource_busy_error(path) - message = <<~EOS - - ### NOTICE ### - As part of restore, the task tried to rename `#{path}` before restoring. - This could not be completed, perhaps `#{path}` is a mountpoint? - - To complete the restore, please move the contents of `#{path}` to a - different location and run the restore task again. - - EOS - raise message - end - - def logger - if ENV['CRON'] - # We need an object we can say 'puts' and 'print' to; let's use a - # StringIO. - require 'stringio' - StringIO.new - else - $stdout - end + def backup_path + Rails.root.join(Setting.backup[:path]) end def gzip_cmd @@ -86,26 +52,31 @@ def tar end end - def backup_path - Rails.root.join(Setting.backup[:path]) - end + def access_denied_error(path) + message = <<~EOF + + ### NOTICE ### + As part of restore, the task tried to move existing content from #{path}. + However, it seems that directory contains files/folders that are not owned. + To proceed, please move the files or folders inside #{path} to a secure + location so that #{path} is empty and run restore task again. - def puts_time(msg, new_line = true) - if new_line - logger.puts "#{Time.now} -- #{msg}" - else - logger.print "#{Time.now} -- #{msg}" - end + EOF + raise message end - def report_result(success, message = nil) - message = " #{message}" unless message.to_s.empty? + def resource_busy_error(path) + message = <<~EOF - if success - logger.puts "[DONE]#{message}" - else - logger.puts "[FAILED]#{message}" - end + ### NOTICE ### + As part of restore, the task tried to rename `#{path}` before restoring. + This could not be completed, perhaps `#{path}` is a mountpoint? + + To complete the restore, please move the contents of `#{path}` to a + different location and run the restore task again. + + EOF + raise message end end end \ No newline at end of file diff --git a/lib/backup/manager.rb b/lib/zealot/backup/manager.rb similarity index 67% rename from lib/backup/manager.rb rename to lib/zealot/backup/manager.rb index 6db137b73..0f0f8937f 100644 --- a/lib/backup/manager.rb +++ b/lib/zealot/backup/manager.rb @@ -28,15 +28,23 @@ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. -module Backup +module Zealot::Backup class Manager - include Backup::Helper + include Zealot::Backup::Helper class Error < StandardError; end ARCHIVES_TO_BACKUP = %w[uploads.tar.gz] FOLDERS_TO_BACKUP = %w[db] FILE_NAME_SUFFIX = '_zealot_backup.tar' + FILE_REGEX = /^(\d{10})?(_*)(\d{4}_\d{2}_\d{2}|\d{8}-\d{4})(_\d+\.\d+\.\d+((-|\.)(beta\d|pre\d|rc\d)?)?)?([_-]development)?_zealot_backup\.tar$/ + + attr_reader :path, :logger + + def initialize(path = nil, logger = nil) + @path = path || backup_path + @logger = logger || Logger.new(STDOUT) + end def write_info # Make sure there is a connection @@ -48,49 +56,45 @@ def write_info end def pack - Dir.chdir(backup_path) do + Dir.chdir(path) do # create archive - puts_time("Creating backup archive: #{tar_file} ... ", false) + logger.debug "Creating backup archive: #{tar_file} ... " # Set file permissions on open to prevent chmod races. tar_system_options = { out: [tar_file, 'w', 0640] } - if Kernel.system('tar', '-cf', '-', *backup_contents, tar_system_options) - report_result(true) - else - report_result(false) - raise Backup::Manager::Error, "Backup failed: creating archive #{tar_file} failed" + unless system(tar, '-cf', '-', *backup_contents, tar_system_options) + raise Zealot::Backup::Manager::Error, "Backup failed: creating archive #{tar_file} failed" end end end def cleanup - puts_time('Deleting tmp directories ... ', false) + logger.debug 'Deleting tmp directories ... ' backup_contents.each do |dir| - next unless File.exist?(File.join(backup_path, dir)) + next unless File.exist?(File.join(path, dir)) - unless FileUtils.rm_rf(File.join(backup_path, dir)) - raise Backup::Manager::Error, "Backup failed: deleting tmp directory '#{dir}' failed" + unless FileUtils.rm_rf(File.join(path, dir)) + raise Zealot::Backup::Manager::Error, "Backup failed: deleting tmp directory '#{dir}' failed" end end - - report_result(true) end def remove_old - puts_time('Deleting old backups ... ', false) + logger.debug 'Deleting old backups ... ' keep_time = Setting.backup[:keep_time] if keep_time > 0 removed = 0 - Dir.chdir(backup_path) do + Dir.chdir(path) do backup_file_list.each do |file| # For compatibility, there are 4 names the backups can have: # - 1590060675_2020_05_21_zealot_backup.tar # - 1590060675_2020_05_21_development_zealot_backup.tar # - 1590060675_2020_05_21_4.0.0-beta4_zealot_backup.tar # - 1590060675_2020_05_21_4.0.0-beta4-development_zealot_backup.tar - next unless file =~ /^(\d{10})(_\d{4}_\d{2}_\d{2})(_\d+\.\d+\.\d+((-|\.)(beta\d|pre\d|rc\d)?)?)?((_|-)development)?_zealot_backup\.tar$/ + # - 20220803-2300_4.5.0_zealot_backup.tar + next unless file =~ FILE_REGEX timestamp = $1.to_i @@ -99,55 +103,54 @@ def remove_old FileUtils.rm(file) removed += 1 rescue => e - puts_time "Deleting #{file} failed: #{e.message}" + logger.debug "Deleting #{file} failed: #{e.message}" end end end end - report_result(true, "(#{removed} removed)") + logger.debug "#{removed} old backup removed" else - report_result(true, "(skipped, keep forever)") + logger.debug "keep backup forever" end end def unpack - FileUtils.mkdir_p(backup_path) + FileUtils.mkdir_p(path) - Dir.chdir(backup_path) do + Dir.chdir(path) do # check for existing backups in the backup dir if backup_file_list.empty? - puts_time "No backups found in #{backup_path}" - puts_time "Please make sure that file name ends with #{FILE_NAME_SUFFIX}" + logger.debug "No backups found in #{path}" + logger.debug "Please make sure that file name ends with #{FILE_NAME_SUFFIX}" exit 1 elsif backup_file_list.many? && ENV["BACKUP"].nil? - puts_time 'Found more than one backup:' + logger.debug 'Found more than one backup:' # print list of available backups - puts_time " " + available_timestamps.join("\n ") - puts_time 'Please specify which one you want to restore:' - puts_time 'rake gitlab:backup:restore BACKUP=timestamp_of_backup' + logger.debug " " + available_timestamps.join("\n ") + logger.debug 'Please specify which one you want to restore:' + logger.debug 'rake gitlab:backup:restore BACKUP=timestamp_of_backup' exit 1 end tar_file = backup_file_list.first unless File.exist?(tar_file) - puts_time "The backup file #{tar_file} does not exist!" + logger.debug "The backup file #{tar_file} does not exist!" exit 1 end - puts_time 'Unpacking backup ... ', false - if Kernel.system(*%W(tar -xf #{tar_file})) - report_result(true) + logger.debug 'Unpacking backup ... ', false + if system(*%W(tar -xf #{tar_file})) return true else - report_result(false, 'unpacking backup failed') + logger.error 'Unpacking backup failed' exit 1 end end end def verify_backup_version - Dir.chdir(backup_path) do + Dir.chdir(path) do # restoring mismatching backups can lead to unexpected problems current_version = Setting.version if settings[:zealot_version] != current_version @@ -170,9 +173,9 @@ def verify_backup_version def backup_information @backup_information ||= { - db_version: ActiveRecord::Migrator.current_version.to_s, - backup_created_at: Time.now, zealot_version: Setting.version, + backup_created_at: Time.now, + db_version: ActiveRecord::Migrator.current_version.to_s, tar_version: tar_version, vcs_ref: Setting.vcs_ref || false, docker_tag: ENV['DOCKER_TAG'] || false @@ -184,7 +187,13 @@ def backup_file_list end def backup_contents - ARCHIVES_TO_BACKUP + FOLDERS_TO_BACKUP + ['backup_information.yml'] + precheck_content(ARCHIVES_TO_BACKUP) + precheck_content(FOLDERS_TO_BACKUP) + ['backup_information.yml'] + end + + def precheck_content(source) + source.each_with_object([]) do |item, obj| + obj << item if File.exist?(File.join(path, item)) + end end def settings @@ -195,17 +204,21 @@ def tar_file @tar_file ||= if ENV['BACKUP'].present? File.basename(ENV['BACKUP']) + FILE_NAME_SUFFIX else - "#{backup_information[:backup_created_at].strftime('%s_%Y_%m_%d_')}#{backup_information[:zealot_version]}#{FILE_NAME_SUFFIX}" + timestamp = backup_information[:backup_created_at].strftime('%Y%m%d-%H%M') + zealot_version = backup_information[:zealot_version] + "#{timestamp}_#{zealot_version}#{FILE_NAME_SUFFIX}" end end def tar_version - tar_version = `tar --version` - tar_version.dup.force_encoding('locale').split("\n").first + @tar_version ||= `#{tar} --version`.dup + .force_encoding('locale') + .split("\n") + .first end def backup_information_file - @backup_information_file ||= File.join(backup_path, 'backup_information.yml') + @backup_information_file ||= File.join(path, 'backup_information.yml') end end end \ No newline at end of file diff --git a/lib/backup/uploads.rb b/lib/zealot/backup/uploads.rb similarity index 89% rename from lib/backup/uploads.rb rename to lib/zealot/backup/uploads.rb index 0dc792e79..bffb6409f 100644 --- a/lib/backup/uploads.rb +++ b/lib/zealot/backup/uploads.rb @@ -30,9 +30,9 @@ require 'open3' -module Backup +module Zealot::Backup class Uploads - include Backup::Helper + include Zealot::Backup::Helper class Error < StandardError; end @@ -48,19 +48,17 @@ def dump FileUtils.mkdir_p(backup_path) FileUtils.rm_f(backup_tarball) - puts_time("Dumping uploads data ... ", false) + _logger.debug "Dumping uploads data ... " - success = run_pipeline!([%W(#{tar} --exclude=lost+found -C #{uploads_path} -cf - .), gzip_cmd], out: [backup_tarball, 'w', 0600]) - report_result(success) + run_pipeline!([%W(#{tar} --exclude=lost+found -C #{uploads_path} -cf - .), gzip_cmd], out: [backup_tarball, 'w', 0600]) end def restore - puts_time("Restoring uploads data ... ", false) + _logger.debug "Restoring uploads data ... " backup_existing_uploads_dir FileUtils.mkdir_p(uploads_path) - success = run_pipeline!([%w(gzip -cd), %W(#{tar} #{gzip_args} -C #{uploads_path} -xf -)], in: backup_tarball) - report_result(success) + run_pipeline!([%w(gzip -cd), %W(#{tar} #{gzip_args} -C #{uploads_path} -xf -)], in: backup_tarball) end private From 228cc3c3a0f9f99ca93ddaa59bfd86657c3e1c3b Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 4 Aug 2022 14:19:31 +0800 Subject: [PATCH 1087/2165] =?UTF-8?q?feat:=20=E5=A4=87=E4=BB=BD=E4=B8=8B?= =?UTF-8?q?=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/admin/backups_controller.rb | 80 +++++++++++++++++-- app/helpers/admin/backup_helper.rb | 12 ++- app/jobs/backup_job.rb | 4 +- app/models/backup.rb | 36 +++++++-- app/models/backup_scope.rb | 21 ++--- app/models/channel.rb | 2 + app/policies/backup_policy.rb | 26 ++++++ app/views/admin/apple_keys/_form.html.slim | 5 +- app/views/admin/backups/_form.html.slim | 31 +++++++ app/views/admin/backups/edit.html.slim | 6 ++ app/views/admin/backups/index.html.slim | 65 +++++++-------- app/views/admin/backups/new.html.slim | 11 ++- app/views/admin/backups/show.html.slim | 45 ++++++----- .../locales/simple_form/simple_form.zh-CN.yml | 16 ++++ config/locales/zealot/zh-CN.yml | 20 ++++- config/routes.rb | 6 ++ db/migrate/20220803055400_create_backups.rb | 7 +- .../20220803055410_create_backup_scopes.rb | 10 --- db/schema.rb | 19 ++--- lib/zealot/backup/manager.rb | 23 +++--- 20 files changed, 312 insertions(+), 133 deletions(-) create mode 100644 app/policies/backup_policy.rb create mode 100644 app/views/admin/backups/_form.html.slim create mode 100644 app/views/admin/backups/edit.html.slim delete mode 100644 db/migrate/20220803055410_create_backup_scopes.rb diff --git a/app/controllers/admin/backups_controller.rb b/app/controllers/admin/backups_controller.rb index 2033564bd..0a3c91be1 100644 --- a/app/controllers/admin/backups_controller.rb +++ b/app/controllers/admin/backups_controller.rb @@ -1,40 +1,110 @@ # frozen_string_literal: true class Admin::BackupsController < ApplicationController - before_action :set_backup, only: %i[show perform edit update destroy] + before_action :set_backup, only: %i[show enable disable perform download edit update destroy] def index @backups = Backup.all + authorize @backups end def show end + def enable + @backup.update(enabled: true) + redirect_to admin_backups_path + end + + def disable + @backup.update(enabled: false) + redirect_to admin_backups_path + end + def perform @backup.perform_job notice = 'Backup was successfully scheduled to run in the background.' - redirect_to admin_backups_path, notice + redirect_to admin_backups_path, notice: notice + end + + def download + dirname = params[:key] + backup_file = @backup.find_file(dirname) + + headers['Content-Length'] = backup_file.size + send_file backup_file.to_path, type: 'application/x-tar', disposition: 'attachment' + end + + def new + @backup = Backup.new + authorize @backup end def edit end + def create + @backup = Backup.new(backup_params) + authorize @backup + + return render :new, status: :unprocessable_entity unless @backup.save + + redirect_to admin_backups_path #, notice: t('admin.apple_keys.create.successful') + end + def update + unless @backup.update(backup_params) + # flash[:alert] = t('apps.messages.failture.missing_schemes_and_channels') + return render :edit, status: :unprocessable_entity + end + + redirect_to admin_backups_path end def destroy + @backup.destroy + notice = t('activerecord.success.destroy', key: t('admin.backups.title')) + redirect_to admin_backups_url, status: :see_other, notice: notice end - def new - end + def parse_schedule + parser = Fugit.parse(params[:q]) - def create + if parser + body = if parser.is_a?(Fugit::Cron) + { + schedule: true, + cron: parser.to_cron_s, + next_time: parser.next_time.to_s + } + else + { + schedule: false, + run_once: parser.to_s + } + end + + return render json: body, status: 200 + end + + render json: { + error: 'Can not parse', + q: params[:q] + }, status: 401 end private def set_backup @backup = Backup.find(params[:id]) + authorize @backup + end + + def backup_params + @backup_params ||= params.require(:backup).permit( + :key, :schedule, :max_keeps, :enabled, :notification, + :enabled_database, enabled_channels: [] + ) end end diff --git a/app/helpers/admin/backup_helper.rb b/app/helpers/admin/backup_helper.rb index 67e4ee53d..dc8409a14 100644 --- a/app/helpers/admin/backup_helper.rb +++ b/app/helpers/admin/backup_helper.rb @@ -10,13 +10,11 @@ def next_schedule_to_human(schedule) parse_schedule(schedule).next_time end - def explan_scopes(scopes) - scopes.each_with_object([]) do |scope, obj| - case scope.key - when BackupScope::DATABASE - obj << t('admin.backups.index.database') - when BackupScope::CHANNEL - obj << t('admin.backups.index.channel', count: scope.channels.size) + def explan_scopes(backup) + [].tap do |obj| + obj << t('admin.backups.index.database') if backup.enabled_database? + if count = backup.enabled_channels.count + obj << t('admin.backups.index.channel', count: count) end end.join(' | ') end diff --git a/app/jobs/backup_job.rb b/app/jobs/backup_job.rb index e2398b207..1a149fe84 100644 --- a/app/jobs/backup_job.rb +++ b/app/jobs/backup_job.rb @@ -44,13 +44,13 @@ def cleanup end def dump_database - return unless @backup.backup_database? + return unless @backup.enabled_database Zealot::Backup::Database.dump(path: backup_path) end def dump_channels - return unless @backup.backup_channel? + return if @backup.enabled_channels.empty? Zealot::Backup::Upload.dump(path: backup_path) end diff --git a/app/models/backup.rb b/app/models/backup.rb index ed4c4d443..3c4e80aa6 100644 --- a/app/models/backup.rb +++ b/app/models/backup.rb @@ -3,18 +3,26 @@ require 'pathname' class Backup < ApplicationRecord - has_many :backup_scopes + validates :key, uniqueness: true, on: :create + validates :key, :schedule, presence: true + validate :correct_schedule + + before_save :strip_enabled_channels + + def channels + Channel.where(id: enabled_channels) + end def perform_job BackupJob.perform_later id end - def backup_database? - backup_scopes.database? - end + def find_file(dirname) + # has_lock_file = File.exist?(File.join(dirname, '.lock')) + file = Dir.glob(File.join(path, dirname, '*.tar')).first + raise ActiveRecord::RecordNotFound, "Not found backup in path: #{dirname}" unless file - def backup_channel? - backup_scopes.channel? + Pathname.new(file) end def files @@ -26,4 +34,20 @@ def files def path Rails.root.join(Setting.backup[:path], key) end + + private + + def correct_schedule + parser = Fugit.do_parse(self.schedule) + klass = parser.class + + raise ArgumentError, "Not cron: #{klass}" unless klass == Fugit::Cron + rescue => e + logger.error "schedule parse error: #{e}" + errors.add(:schedule, :invalid) + end + + def strip_enabled_channels + enabled_channels.compact! + end end diff --git a/app/models/backup_scope.rb b/app/models/backup_scope.rb index 07e2bb3ba..0adc17736 100644 --- a/app/models/backup_scope.rb +++ b/app/models/backup_scope.rb @@ -6,20 +6,13 @@ class BackupScope < ApplicationRecord belongs_to :backup - scope :database?, -> { exists?(key: DATABASE) } - scope :channel?, -> { exists?(key: CHANNEL) } - enum key: { database: DATABASE, channel: CHANNEL } - def channels - return if key == DATABASE - - value['data'].each_with_object([]) do |channel_id, obj| - begin - obj << Channel.find(channel_id) - rescue - next - end - end - end + scope :database?, -> { exists?(key: DATABASE) } + scope :channel?, -> { exists?(key: CHANNEL) } + scope :channel_ids, -> { + select("value->'data' AS channel_ids") + .find_by(key: CHANNEL) + &.channel_ids + } end diff --git a/app/models/channel.rb b/app/models/channel.rb index 8a0b0aff8..568878265 100755 --- a/app/models/channel.rb +++ b/app/models/channel.rb @@ -11,6 +11,8 @@ class Channel < ApplicationRecord enum device_type: { ios: 'iOS', android: 'Android', macos: 'macOS' } + scope :all_appnames, -> { all.map { |c| [c.app_name, c.id] } } + delegate :count, to: :enabled_web_hooks, prefix: true delegate :count, to: :available_web_hooks, prefix: true delegate :app, to: :scheme diff --git a/app/policies/backup_policy.rb b/app/policies/backup_policy.rb new file mode 100644 index 000000000..7444b8832 --- /dev/null +++ b/app/policies/backup_policy.rb @@ -0,0 +1,26 @@ +# frozen_string_literal: true + +class BackupPolicy < ApplicationPolicy + + def perform? + admin? + end + + def download? + admin? + end + + def enable? + admin? + end + + def disable? + admin? + end + + class Scope < Scope + def resolve + scope.all + end + end +end diff --git a/app/views/admin/apple_keys/_form.html.slim b/app/views/admin/apple_keys/_form.html.slim index da6a7e03e..f5cbe2a40 100644 --- a/app/views/admin/apple_keys/_form.html.slim +++ b/app/views/admin/apple_keys/_form.html.slim @@ -1,7 +1,4 @@ -ruby: - update_url = @apple_key.new_record? ? admin_apple_keys_path : admin_apple_key_path(@apple_key) - -= simple_form_for(@apple_key, url: update_url) do |f| += simple_form_for([:admin, @apple_key]) do |f| .card-body = f.error_notification diff --git a/app/views/admin/backups/_form.html.slim b/app/views/admin/backups/_form.html.slim new file mode 100644 index 000000000..e5aadafc9 --- /dev/null +++ b/app/views/admin/backups/_form.html.slim @@ -0,0 +1,31 @@ += simple_form_for([:admin, @backup]) do |f| + .card + .card-header + h3.card-title 备份配置 + .card-body + = f.error_notification + + = f.input :enabled + = f.input :key, required: true + = f.input :schedule, required: true + = f.input :max_keeps, required: true + = f.input :notification + + .card-header.pt-0 + h3.card-title 备份范围 + .card-body + = f.input :enabled_channels, as: :check_boxes, collection: Channel.all_appnames, checked: @backup.enabled_channels + = f.label :enabled_database + = f.input :enabled_database, label: t('simple_form.labels.backup.database_switch') + + .card-footer + - unless @backup.new_record? + .float-right + - if @backup.enabled + = link_to '禁用', disable_admin_backup_path(@backup), \ + data: { turbo_method: :post } + - else + = link_to '启用', enable_admin_backup_path(@backup), \ + data: { turbo_method: :post } + + = f.button :submit \ No newline at end of file diff --git a/app/views/admin/backups/edit.html.slim b/app/views/admin/backups/edit.html.slim new file mode 100644 index 000000000..1ee404427 --- /dev/null +++ b/app/views/admin/backups/edit.html.slim @@ -0,0 +1,6 @@ +- content_for :title do + = @title + +.row + .col-md-12 + == render 'form', title: t('.title') \ No newline at end of file diff --git a/app/views/admin/backups/index.html.slim b/app/views/admin/backups/index.html.slim index 157dde19b..d27dd1d57 100644 --- a/app/views/admin/backups/index.html.slim +++ b/app/views/admin/backups/index.html.slim @@ -11,35 +11,36 @@ .row .col-md-12 - .card - .card-body.p-0 - table.table - tr - th = t('.key') - th = t('.scopes') - th = t('.schedule') - th = t('.next_schedule_at') - th = t('.enabled') - th = t('.action') - - @backups.each do |backup| - tr - td = link_to backup.key, admin_backup_path(backup) - td = explan_scopes(backup.backup_scopes) - td = schedule_to_human(backup.schedule) - td = next_schedule_to_human(backup.schedule) - td - == render 'admin/settings/switch_icon', value: backup.enabled - td - .btn-group - = button_to perform_admin_backup_path(backup), class: 'btn btn-sm', title: t('.run_now') do - i.fas.fa-play-circle - = link_to edit_admin_backup_path(backup), class: 'btn btn-sm', title: t('.edit') do - i.fas.fa-edit - = link_to admin_backup_path(backup), class: 'btn btn-sm', title: t('.destroy'), \ - data: { turbo_method: :delete, turbo_confirm: t('.destroy_confirm', key: backup.key) } do - i.fas.fa-trash-alt.text-danger - - .card.card-outline.card-warning - .card-header.card-border - h3.card-title = t('.not_found.title') - .card-body = t('.not_found.body_html') \ No newline at end of file + - unless @backups.empty? + .card + .card-body.p-0 + table.table + tr + th = t('.key') + th = t('.scopes') + th = t('.schedule') + th = t('.next_schedule_at') + th = t('.enabled') + th = t('.action') + - @backups.each do |backup| + tr + td = link_to backup.key, admin_backup_path(backup) + td = explan_scopes(backup) + td = backup.schedule + td = next_schedule_to_human(backup.schedule) + td + == render 'admin/settings/switch_icon', value: backup.enabled + td + .btn-group + = button_to perform_admin_backup_path(backup), class: 'btn btn-sm', title: t('.run_now') do + i.fas.fa-play-circle + = link_to edit_admin_backup_path(backup), class: 'btn btn-sm', title: t('.edit') do + i.fas.fa-edit + = link_to admin_backup_path(backup), class: 'btn btn-sm', title: t('.destroy'), \ + data: { turbo_method: :delete, turbo_confirm: t('.destroy_confirm', key: backup.key) } do + i.fas.fa-trash-alt.text-danger + - else + .card.card-outline.card-warning + .card-header.card-border + h3.card-title = t('.not_found.title') + .card-body = t('.not_found.body_html') \ No newline at end of file diff --git a/app/views/admin/backups/new.html.slim b/app/views/admin/backups/new.html.slim index e45eae4a9..9a73593ee 100644 --- a/app/views/admin/backups/new.html.slim +++ b/app/views/admin/backups/new.html.slim @@ -1,2 +1,9 @@ -h1 Admin::Backup#new -p Find me in app/views/admin/backup/new.html.slim +- content_for :section_title do + = t('.title') + +- content_for :title do + = t('.title') + +.row + .col-md-12 + == render 'form', title: t('.title') \ No newline at end of file diff --git a/app/views/admin/backups/show.html.slim b/app/views/admin/backups/show.html.slim index 626246664..d1b6b4654 100644 --- a/app/views/admin/backups/show.html.slim +++ b/app/views/admin/backups/show.html.slim @@ -6,23 +6,28 @@ .row .col-md-12 - .card - .card-body.p-0 - table.table - tr - th = t('.filename') - th = t('.created_at') - th = t('.size') - th = t('.download') - - @backup.files.each do |file| - tr - td = file.basename - td = file.ctime - td = number_to_human_size(file.size) - td - = link_to 'download', download_admin_backup_path(@backup) - - .card.card-outline.card-warning - .card-header.card-border - h3.card-title = t('.not_found.title') - .card-body = t('.not_found.body_html') \ No newline at end of file + - unless @backup.files.empty? + .card + .card-body.p-0 + table.table + tr + th = t('.filename') + th = t('.created_at') + th = t('.size') + th = t('.download') + - @backup.files.each do |file| + tr + td = file.basename + td = file.ctime + td = number_to_human_size(file.size) + td + = link_to 'download', download_admin_backup_path(@backup, key: file.basename) + - else + .card.card-outline.card-warning + .card-header.card-border + h3.card-title = t('.not_found.title') + .card-body + = t('.not_found.body_html', \ + link: button_to(raw('英语语义或 + Cron。暂不支持单次定点执行 + max_keeps: 备份达到设置上限会删除最早的文件,不限制设置 -1 placeholders: release: @@ -122,6 +136,8 @@ zh-CN: release_version: '1.0.0' build_version: '1.0' checksum: '纯校验使用,随文件生成无需填写' + backup: + schedule: every day at noon / 12 0 * * * # include_blanks: # defaults: diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index c2eecac67..7ed9ec10a 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -142,7 +142,7 @@ zh-CN: gitlab: Gitlab google_oauth: Google OAuth - # backup: 备份 + backup: 备份 # misc: 杂项 stmp: 邮件配置 @@ -194,7 +194,7 @@ zh-CN: title: 数据备份 index: title: :'admin.backups.title' - new_backup: 创建备份 + new_backup: :'admin.backups.new.title' key: 备份名称 scopes: 备份范围 schedule: 备份频率 @@ -205,6 +205,9 @@ zh-CN: database: 数据库 channel: '%{count} 应用渠道' destroy_confirm: 确认删除 %{key}? + not_found: + title: 没有发现任何备份计划 + body_html: 点击右上角的 新增备份。 show: title: '%{key} 备份' filename: 文件名 @@ -212,6 +215,11 @@ zh-CN: size: 大小 download: 下载 destroy: 删除 + not_found: + title: 没有发现任何备份 + body_html: 你可以%{link}创建一份 + new: + title: 新增备份 background_jobs: title: 后台任务 @@ -816,6 +824,10 @@ zh-CN: blank: 必须选择一个 zip 文件 checksum: taken: 文件已经存在,不能重复上传 + backup: + attributes: + schedule: + invalid: 频率无法正常解析 user_mailer: omniauth_welcome_email: @@ -876,6 +888,10 @@ zh-CN: create: 新增苹果开发者 apple_team: update: 更新 + backup: + create: 创建备份 + update: 更新备份 + views: pagination: truncate: ... diff --git a/config/routes.rb b/config/routes.rb index f20dd5e8d..18e59224b 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -125,9 +125,15 @@ resources :backups do member do + post :enable + post :disable post :perform get :download end + + collection do + get :parse_schedule + end end namespace :service do diff --git a/db/migrate/20220803055400_create_backups.rb b/db/migrate/20220803055400_create_backups.rb index 36046c847..58a4bc7be 100644 --- a/db/migrate/20220803055400_create_backups.rb +++ b/db/migrate/20220803055400_create_backups.rb @@ -2,10 +2,11 @@ class CreateBackups < ActiveRecord::Migration[7.0] def change create_table :backups do |t| t.string :key, unique: true, null: false, index: true - t.string :schedule - t.integer :max_keeps + t.string :schedule, null: false + t.boolean :enabled_database, default: true + t.integer :enabled_channels, array: true, default: [] + t.integer :max_keeps, default: -1 t.string :notification - t.boolean :enable_archive t.boolean :enabled t.timestamps end diff --git a/db/migrate/20220803055410_create_backup_scopes.rb b/db/migrate/20220803055410_create_backup_scopes.rb deleted file mode 100644 index bc5048924..000000000 --- a/db/migrate/20220803055410_create_backup_scopes.rb +++ /dev/null @@ -1,10 +0,0 @@ -class CreateBackupScopes < ActiveRecord::Migration[7.0] - def change - create_table :backup_scopes do |t| - t.references :backup, index: true, foreign_key: { on_delete: :cascade } - t.string :key - t.jsonb :value, default: {}, null: false - t.timestamps - end - end -end diff --git a/db/schema.rb b/db/schema.rb index 452c3dfaf..cca723f8d 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema[7.0].define(version: 2022_08_03_055410) do +ActiveRecord::Schema[7.0].define(version: 2022_08_03_055400) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -63,21 +63,13 @@ t.index ["user_id", "app_id"], name: "index_apps_users_on_user_id_and_app_id" end - create_table "backup_scopes", force: :cascade do |t| - t.bigint "backup_id" - t.string "key" - t.jsonb "value", default: {}, null: false - t.datetime "created_at", null: false - t.datetime "updated_at", null: false - t.index ["backup_id"], name: "index_backup_scopes_on_backup_id" - end - create_table "backups", force: :cascade do |t| t.string "key", null: false - t.string "schedule" - t.integer "max_keeps" + t.string "schedule", null: false + t.boolean "enabled_database", default: true + t.integer "enabled_channels", default: [], array: true + t.integer "max_keeps", default: -1 t.string "notification" - t.boolean "enable_archive" t.boolean "enabled" t.datetime "created_at", null: false t.datetime "updated_at", null: false @@ -278,7 +270,6 @@ end add_foreign_key "apple_teams", "apple_keys", on_delete: :cascade - add_foreign_key "backup_scopes", "backups", on_delete: :cascade add_foreign_key "channels", "schemes", on_delete: :cascade add_foreign_key "debug_file_metadata", "debug_files" add_foreign_key "debug_files", "apps", on_delete: :cascade diff --git a/lib/zealot/backup/manager.rb b/lib/zealot/backup/manager.rb index 0f0f8937f..8b784b2cd 100644 --- a/lib/zealot/backup/manager.rb +++ b/lib/zealot/backup/manager.rb @@ -154,16 +154,16 @@ def verify_backup_version # restoring mismatching backups can lead to unexpected problems current_version = Setting.version if settings[:zealot_version] != current_version - logger.puts(<<~HEREDOC.color(:red)) + logger.debug(<<~HEREDOC.color(:red)) Zealot version mismatch: Your current Zealot version (#{current_version}) differs from the Zealot version in the backup! Please switch to the following version and try again: version: #{settings[:zealot_version]} HEREDOC - logger.puts - logger.puts "Hint:" - logger.puts " 1. git checkout v#{settings[:zealot_version]}" - logger.puts " 2. docker pull tryzealot/zealot:#{settings[:zealot_version]}" + logger.debug + logger.debug "Hint:" + logger.debug " 1. git checkout v#{settings[:zealot_version]}" + logger.debug " 2. docker pull tryzealot/zealot:#{settings[:zealot_version]}" exit 1 end end @@ -201,13 +201,11 @@ def settings end def tar_file - @tar_file ||= if ENV['BACKUP'].present? - File.basename(ENV['BACKUP']) + FILE_NAME_SUFFIX - else - timestamp = backup_information[:backup_created_at].strftime('%Y%m%d-%H%M') - zealot_version = backup_information[:zealot_version] - "#{timestamp}_#{zealot_version}#{FILE_NAME_SUFFIX}" - end + @tar_file ||= -> () { + timestamp = backup_information[:backup_created_at].strftime('%Y%m%d-%H%M') + zealot_version = backup_information[:zealot_version] + "#{timestamp}_#{zealot_version}#{FILE_NAME_SUFFIX}" + }.call end def tar_version @@ -215,6 +213,7 @@ def tar_version .force_encoding('locale') .split("\n") .first + .strip end def backup_information_file From 42d487a1a2bd67156a9ecc1854675de935fb1f12 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 5 Aug 2022 11:50:16 +0800 Subject: [PATCH 1088/2165] =?UTF-8?q?feat:=20=E5=88=A0=E9=99=A4=E5=8D=95?= =?UTF-8?q?=E4=B8=AA=E5=A4=87=E4=BB=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/admin/backups_controller.rb | 20 +++++++++++++++----- app/controllers/application_controller.rb | 3 ++- app/helpers/application_helper.rb | 16 +++++----------- app/models/backup.rb | 5 +++++ app/policies/backup_policy.rb | 10 +++++++--- app/views/admin/backups/show.html.slim | 9 ++++++++- app/views/devise/shared/_links.html.slim | 3 +-- config/routes.rb | 3 ++- 8 files changed, 45 insertions(+), 24 deletions(-) diff --git a/app/controllers/admin/backups_controller.rb b/app/controllers/admin/backups_controller.rb index 0a3c91be1..e1c15e2c0 100644 --- a/app/controllers/admin/backups_controller.rb +++ b/app/controllers/admin/backups_controller.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true class Admin::BackupsController < ApplicationController - before_action :set_backup, only: %i[show enable disable perform download edit update destroy] + before_action :set_backup, except: %i[ index new create ] def index @backups = Backup.all @@ -25,10 +25,10 @@ def perform @backup.perform_job notice = 'Backup was successfully scheduled to run in the background.' - redirect_to admin_backups_path, notice: notice + redirect_back_or_to admin_backups_path, notice: notice end - def download + def download_archive dirname = params[:key] backup_file = @backup.find_file(dirname) @@ -36,6 +36,16 @@ def download send_file backup_file.to_path, type: 'application/x-tar', disposition: 'attachment' end + def destroy_archive + dirname = params[:key] + backup_file = @backup.find_file(dirname) + + raise ActiveRecord::RecordNotFound, 'Not found file' unless File.exist?(backup_file) + + FileUtils.rm_rf(backup_file.dirname) + redirect_to admin_backup_path(@backup), status: :see_other, notice: t('.file_destroy_success') + end + def new @backup = Backup.new authorize @backup @@ -55,8 +65,8 @@ def create def update unless @backup.update(backup_params) - # flash[:alert] = t('apps.messages.failture.missing_schemes_and_channels') - return render :edit, status: :unprocessable_entity + alert = t('apps.messages.failture.missing_schemes_and_channels') + return render :edit, status: :unprocessable_entity, alert: alert end redirect_to admin_backups_path diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index eb4c663af..bd03ca13d 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -20,7 +20,8 @@ def raise_not_found private def set_locale - I18n.locale = Setting.site_locale + site_locale = Rails.cache.fetch('site_locale', expires_in: 1.day) { Setting.site_locale } + I18n.locale = site_locale end def set_sentry_context diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 5691c6429..819a0274c 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -10,15 +10,7 @@ def site_title end def new_or_create_route? - new_route? || create_route? - end - - def new_route? - params[:action] == 'new' - end - - def create_route? - params[:action] == 'create' + current_page?(action: 'new') || current_page?(action: 'create') end def user_signed_in_or_guest_mode? @@ -30,16 +22,18 @@ def demo_mode? end def devise_page? + # current_page? method CAN NOT fuzzy matching contoller_name = params[:controller] contoller_name.start_with?('devise/') || contoller_name == 'users/registrations' end def button_link_to(title, url, icon = nil, **options) - options[:class] += ' btn' + options[:class] = 'btn ' + options[:class] + base_fontawesome = options.delete(:base_fa) || 'fas' content = title if icon.present? - content = tag.i(class: "fas fa-#{icon}") + content = tag.i(class: "#{base_fontawesome} fa-#{icon}") content += title end diff --git a/app/models/backup.rb b/app/models/backup.rb index 3c4e80aa6..7f3bd2587 100644 --- a/app/models/backup.rb +++ b/app/models/backup.rb @@ -8,6 +8,7 @@ class Backup < ApplicationRecord validate :correct_schedule before_save :strip_enabled_channels + before_destroy :remove_storage def channels Channel.where(id: enabled_channels) @@ -50,4 +51,8 @@ def correct_schedule def strip_enabled_channels enabled_channels.compact! end + + def remove_storage + FileUtils.rm_rf(path) + end end diff --git a/app/policies/backup_policy.rb b/app/policies/backup_policy.rb index 7444b8832..e3a18bd36 100644 --- a/app/policies/backup_policy.rb +++ b/app/policies/backup_policy.rb @@ -6,15 +6,19 @@ def perform? admin? end - def download? + def enable? admin? end - def enable? + def disable? admin? end - def disable? + def download_archive? + admin? + end + + def destroy_archive? admin? end diff --git a/app/views/admin/backups/show.html.slim b/app/views/admin/backups/show.html.slim index d1b6b4654..43182c697 100644 --- a/app/views/admin/backups/show.html.slim +++ b/app/views/admin/backups/show.html.slim @@ -21,7 +21,14 @@ td = file.ctime td = number_to_human_size(file.size) td - = link_to 'download', download_admin_backup_path(@backup, key: file.basename) + .btn-group + = link_to archive_admin_backup_path(@backup, key: file.basename), class: 'btn btn-sm', title: t('.edit') do + i.fas.fa-download + = link_to archive_admin_backup_path(@backup, key: file.basename), class: 'btn btn-sm', title: t('.destroy'), \ + data: { turbo_method: :delete, turbo_confirm: t('.destroy_confirm', key: @backup.key) } do + i.fas.fa-trash-alt.text-danger + + / = link_to 'download', archive_admin_backup_path(@backup, key: file.basename) - else .card.card-outline.card-warning .card-header.card-border diff --git a/app/views/devise/shared/_links.html.slim b/app/views/devise/shared/_links.html.slim index 11dda3240..9c25b9e4a 100644 --- a/app/views/devise/shared/_links.html.slim +++ b/app/views/devise/shared/_links.html.slim @@ -22,5 +22,4 @@ - if devise_mapping.lockable? && resource_class.unlock_strategy_enabled?(:email) && controller_name != 'unlocks' p.mb-0 - = link_to t('devise.shared.links.didn_t_receive_unlock_instructions'), new_unlock_path(resource_name) - + = link_to t('devise.shared.links.didn_t_receive_unlock_instructions'), new_unlock_path(resource_name) \ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb index 18e59224b..1e8d01a68 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -128,7 +128,8 @@ post :enable post :disable post :perform - get :download + get :archive, action: :download_archive + delete :archive, action: :destroy_archive end collection do From 1cfee2d1c52a5062adacbe6b39a8a5784c29c861 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 5 Aug 2022 12:38:02 +0800 Subject: [PATCH 1089/2165] =?UTF-8?q?feat:=20=E6=9F=A5=E7=9C=8B=E5=A4=87?= =?UTF-8?q?=E4=BB=BD=E8=BF=9B=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/jobs/backup_job.rb | 16 ++++++++++++++++ app/models/backup.rb | 13 ++++++++++++- app/views/admin/backups/show.html.slim | 4 +++- config/environments/development.rb | 6 +++++- 4 files changed, 36 insertions(+), 3 deletions(-) diff --git a/app/jobs/backup_job.rb b/app/jobs/backup_job.rb index 1a149fe84..14ca50792 100644 --- a/app/jobs/backup_job.rb +++ b/app/jobs/backup_job.rb @@ -15,6 +15,11 @@ def perform(backup_id) # dump_channels archive cleanup + + 100.times do |i| + logger.warn "sleeping #{i}" + sleep 10000 + end rescue => e # Cause issues: # 1. write directory permissions @@ -28,6 +33,7 @@ def perform(backup_id) private def archive + update_status manager = Zealot::Backup::Manager.new(backup_path, logger) manager.write_info manager.pack @@ -35,21 +41,27 @@ def archive end def prepare + update_status + # Rails.cache.write("zealot:backup:#{@backup.id}:backup-path", ) + FileUtils.mkdir_p(backup_path) FileUtils.touch(local_file) end def cleanup + update_status FileUtils.rm_f(local_file) end def dump_database + update_status return unless @backup.enabled_database Zealot::Backup::Database.dump(path: backup_path) end def dump_channels + update_status return if @backup.enabled_channels.empty? Zealot::Backup::Upload.dump(path: backup_path) @@ -65,4 +77,8 @@ def backup_path def local_file @local_file ||= File.join(backup_path, LOCK_FILE) end + + def update_status(value = __callee__) + status[:step] = value.to_s + end end diff --git a/app/models/backup.rb b/app/models/backup.rb index 7f3bd2587..5826beb62 100644 --- a/app/models/backup.rb +++ b/app/models/backup.rb @@ -15,7 +15,18 @@ def channels end def perform_job - BackupJob.perform_later id + job = BackupJob.perform_later(id) + Rails.cache.write(job_id, job.job_id) + end + + def job_status + return unless job_id = Rails.cache.fetch(job_id) + + ActiveJob::Status.get(job_id) + end + + def job_id + @job_id ||= "zealot:backup:#{id}" end def find_file(dirname) diff --git a/app/views/admin/backups/show.html.slim b/app/views/admin/backups/show.html.slim index 43182c697..09b9d5283 100644 --- a/app/views/admin/backups/show.html.slim +++ b/app/views/admin/backups/show.html.slim @@ -6,6 +6,7 @@ .row .col-md-12 + = debug @backup.job_status - unless @backup.files.empty? .card .card-body.p-0 @@ -37,4 +38,5 @@ = t('.not_found.body_html', \ link: button_to(raw(' Date: Fri, 5 Aug 2022 18:21:40 +0800 Subject: [PATCH 1090/2165] =?UTF-8?q?feat:=20=E6=98=BE=E7=A4=BA=E5=A4=87?= =?UTF-8?q?=E4=BB=BD=E6=89=A7=E8=A1=8C=E4=B8=AD=E7=9A=84=E8=BF=9B=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 2 +- Gemfile.lock | 6 +- app/controllers/admin/backups_controller.rb | 27 +++--- app/helpers/admin/backup_helper.rb | 8 +- app/jobs/backup_job.rb | 84 ++++++++++------- app/models/app.rb | 2 + app/models/backup.rb | 91 +++++++++++++++---- app/models/channel.rb | 2 - app/views/admin/backups/_form.html.slim | 4 +- .../admin/backups/_job_complated.html.slim | 10 ++ app/views/admin/backups/_job_failed.html.slim | 12 +++ .../admin/backups/_job_unknown.html.slim | 9 ++ .../admin/backups/_job_working.html.slim | 10 ++ app/views/admin/backups/show.html.slim | 21 +---- .../locales/simple_form/simple_form.zh-CN.yml | 2 +- config/locales/zealot/en.yml | 8 +- config/locales/zealot/zh-CN.yml | 4 +- db/migrate/20220803055400_create_backups.rb | 2 +- db/schema.rb | 2 +- 19 files changed, 203 insertions(+), 103 deletions(-) create mode 100644 app/views/admin/backups/_job_complated.html.slim create mode 100644 app/views/admin/backups/_job_failed.html.slim create mode 100644 app/views/admin/backups/_job_unknown.html.slim create mode 100644 app/views/admin/backups/_job_working.html.slim diff --git a/Gemfile b/Gemfile index d24547c47..0017875ef 100644 --- a/Gemfile +++ b/Gemfile @@ -87,7 +87,7 @@ gem 'rqrcode' gem 'activejob-status' gem 'sidekiq', '~> 6.5.4' gem 'sidekiq-scheduler', '~> 4.0.2' -gem 'sidekiq-failures', github: 'mhfs/sidekiq-failures', ref: '22d3d0786d3d4d5a3eb828a8f393e669bd45755a' # 等待新版本发布后移除 +gem 'sidekiq-failures', github: 'icyleaf/sidekiq-failures', ref: '6eaba5e6ca9cd8bf0f2aedcd118954a3de4084d8' # 等待新版本发布后移除 # Assets ## jsbundling-rails, cssbundling-rails 仅生成配置文件到项目组,核心还是 package.json 中 build/build:css 部分。 diff --git a/Gemfile.lock b/Gemfile.lock index 425dbcb66..0f738ee3d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,7 @@ GIT - remote: https://github.com/mhfs/sidekiq-failures - revision: 22d3d0786d3d4d5a3eb828a8f393e669bd45755a - ref: 22d3d0786d3d4d5a3eb828a8f393e669bd45755a + remote: https://github.com/icyleaf/sidekiq-failures + revision: 6eaba5e6ca9cd8bf0f2aedcd118954a3de4084d8 + ref: 6eaba5e6ca9cd8bf0f2aedcd118954a3de4084d8 specs: sidekiq-failures (1.0.1) sidekiq (>= 4.0.0) diff --git a/app/controllers/admin/backups_controller.rb b/app/controllers/admin/backups_controller.rb index e1c15e2c0..30f78ca43 100644 --- a/app/controllers/admin/backups_controller.rb +++ b/app/controllers/admin/backups_controller.rb @@ -2,6 +2,7 @@ class Admin::BackupsController < ApplicationController before_action :set_backup, except: %i[ index new create ] + before_action :set_backup_file, only: %i[ download_archive destroy_archive ] def index @backups = Backup.all @@ -29,20 +30,14 @@ def perform end def download_archive - dirname = params[:key] - backup_file = @backup.find_file(dirname) + raise ActiveRecord::RecordNotFound, 'Not found file' unless File.exist?(@backup_file) - headers['Content-Length'] = backup_file.size - send_file backup_file.to_path, type: 'application/x-tar', disposition: 'attachment' + headers['Content-Length'] = @backup_file.size + send_file @backup_file.to_path, type: 'application/x-tar', disposition: 'attachment' end def destroy_archive - dirname = params[:key] - backup_file = @backup.find_file(dirname) - - raise ActiveRecord::RecordNotFound, 'Not found file' unless File.exist?(backup_file) - - FileUtils.rm_rf(backup_file.dirname) + @backup.destroy_directory(@backup_dir) redirect_to admin_backup_path(@backup), status: :see_other, notice: t('.file_destroy_success') end @@ -64,10 +59,7 @@ def create end def update - unless @backup.update(backup_params) - alert = t('apps.messages.failture.missing_schemes_and_channels') - return render :edit, status: :unprocessable_entity, alert: alert - end + return render :edit, status: :unprocessable_entity unless @backup.update(backup_params) redirect_to admin_backups_path end @@ -111,10 +103,15 @@ def set_backup authorize @backup end + def set_backup_file + @backup_dir = params[:key] + @backup_file = @backup.find_file(@backup_dir) + end + def backup_params @backup_params ||= params.require(:backup).permit( :key, :schedule, :max_keeps, :enabled, :notification, - :enabled_database, enabled_channels: [] + :enabled_database, enabled_apps: [] ) end end diff --git a/app/helpers/admin/backup_helper.rb b/app/helpers/admin/backup_helper.rb index dc8409a14..6f7abd724 100644 --- a/app/helpers/admin/backup_helper.rb +++ b/app/helpers/admin/backup_helper.rb @@ -2,6 +2,10 @@ module Admin module BackupHelper + def all_apps + App.all_names + end + def schedule_to_human(schedule) parse_schedule(schedule).to_cron_s end @@ -13,8 +17,8 @@ def next_schedule_to_human(schedule) def explan_scopes(backup) [].tap do |obj| obj << t('admin.backups.index.database') if backup.enabled_database? - if count = backup.enabled_channels.count - obj << t('admin.backups.index.channel', count: count) + if count = backup.enabled_apps.count + obj << t('admin.backups.index.app', count: count) end end.join(' | ') end diff --git a/app/jobs/backup_job.rb b/app/jobs/backup_job.rb index 14ca50792..50d6af45d 100644 --- a/app/jobs/backup_job.rb +++ b/app/jobs/backup_job.rb @@ -3,70 +3,86 @@ require 'fileutils' class BackupJob < ApplicationJob + sidekiq_options retry: false queue_as :schedule - LOCK_FILE = '.lock' - def perform(backup_id) + update_status("started") @backup = Backup.find(backup_id) + @manager = Zealot::Backup::Manager.new(backup_path, logger) + + status.update(file: File.basename(backup_path), job_id: job_id, jid: provider_job_id) prepare dump_database - # dump_channels + dump_apps archive cleanup - - 100.times do |i| - logger.warn "sleeping #{i}" - sleep 10000 - end - rescue => e - # Cause issues: - # 1. write directory permissions - # 2. not enough disk space - # 3. missing backup cli commands (pg_dump, gzip etc) - message = "Failed to create backup job, because #{e.message}" - logger.error message - logger.error e.backtrace.join("\n") + finish + + # rescue => e + # status.update(step: "throw_error") + # # Cause issues: + # # 1. write directory permissions + # # 2. not enough disk space + # # 3. missing backup cli commands (pg_dump, gzip etc) + # message = "Failed to create backup job, because #{e.message}" + # logger.error message + # logger.error e.backtrace.join("\n") end private def archive - update_status - manager = Zealot::Backup::Manager.new(backup_path, logger) - manager.write_info - manager.pack - manager.cleanup + update_status(__method__) + + @manager.write_info + @manager.pack end def prepare - update_status - # Rails.cache.write("zealot:backup:#{@backup.id}:backup-path", ) - + update_status(__method__) FileUtils.mkdir_p(backup_path) - FileUtils.touch(local_file) + + # Make sure storage it by direct execute this job + unless redis.sismember(@backup.cache_job_id_key, job_id) + redis.sadd(@backup.cache_job_id_key, job_id) + end end def cleanup - update_status - FileUtils.rm_f(local_file) + update_status(__method__) + @manager.cleanup + + clean_redis_cache + end + + def clean_redis_cache + if redis.sismember(@backup.cache_job_id_key, job_id) + redis.srem(@backup.cache_job_id_key, job_id) + end end def dump_database - update_status + update_status(__method__) return unless @backup.enabled_database Zealot::Backup::Database.dump(path: backup_path) end - def dump_channels - update_status - return if @backup.enabled_channels.empty? + def dump_apps + update_status(__method__) + return if @backup.enabled_apps.empty? Zealot::Backup::Upload.dump(path: backup_path) end + def finish + update_status(__method__) + + FileUtils.touch(File.join(backup_path, '.complate')) + end + def backup_path @backup_path ||= -> () { today = Time.now.strftime('%s_%Y%m%d-%H%M') @@ -78,7 +94,11 @@ def local_file @local_file ||= File.join(backup_path, LOCK_FILE) end - def update_status(value = __callee__) + def update_status(value) status[:step] = value.to_s end + + def redis + @redis ||= Rails.cache.redis + end end diff --git a/app/models/app.rb b/app/models/app.rb index bf0ecb5c2..d27f2b8bc 100644 --- a/app/models/app.rb +++ b/app/models/app.rb @@ -5,6 +5,8 @@ class App < ApplicationRecord has_many :schemes, dependent: :destroy has_many :debug_files, dependent: :destroy + scope :all_names, -> { all.map { |c| [c.name, c.id] } } + accepts_nested_attributes_for :schemes scope :avaiable_debug_files, -> { joins(:debug_files).distinct } diff --git a/app/models/backup.rb b/app/models/backup.rb index 5826beb62..bb06025d1 100644 --- a/app/models/backup.rb +++ b/app/models/backup.rb @@ -7,46 +7,99 @@ class Backup < ApplicationRecord validates :key, :schedule, presence: true validate :correct_schedule - before_save :strip_enabled_channels + before_save :strip_enabled_apps before_destroy :remove_storage - def channels - Channel.where(id: enabled_channels) + def apps + App.where(id: enabled_apps) end def perform_job job = BackupJob.perform_later(id) - Rails.cache.write(job_id, job.job_id) - end - - def job_status - return unless job_id = Rails.cache.fetch(job_id) - - ActiveJob::Status.get(job_id) - end - - def job_id - @job_id ||= "zealot:backup:#{id}" + Rails.cache.redis.sadd(cache_job_id_key, job.job_id) end def find_file(dirname) - # has_lock_file = File.exist?(File.join(dirname, '.lock')) file = Dir.glob(File.join(path, dirname, '*.tar')).first - raise ActiveRecord::RecordNotFound, "Not found backup in path: #{dirname}" unless file + return unless file Pathname.new(file) end def files + # TODO: 需要重写,逻辑有问题 Dir.glob(File.join(path, '*')).each_with_object([]) do |file, obj| - obj << Pathname.new(file) + backup_file = BackupFile.parse(file, job_status) + # next unless backup_file.complated? + + obj << backup_file end.sort_by(&:ctime).reverse! end + def destroy_directory(name) + FileUtils.rm_rf(File.join(path, name)) + + job_id, status = job_status.find {|_, status| status[:file] == name } + + Rails.cache.redis.srem(cache_job_id_key, job_id) if job_id + status.delete if status + end + + def job_status + job_ids = Rails.cache.redis.smembers(cache_job_id_key) + return {} if job_ids.empty? + + job_ids.each_with_object({}) do |job_id, obj| + obj[job_id] = ActiveJob::Status.get(job_id) + end + end + + def cache_job_id_key + @cache_job_id_key ||= "zealot:backup:#{id}" + end + def path Rails.root.join(Setting.backup[:path], key) end + class BackupFile + def self.parse(file, backup_job_status) + job_id, status = backup_job_status.find {|_, status| status[:file] == File.basename(file) } + new(file, status) + end + + attr_reader :status + + delegate :size, :ctime, :to_path, :basename, to: :@file + + def initialize(file, status) + @file = Pathname.new(file) + @status = status + end + + def created_at + @file.ctime + end + + def job_status + @status&.status || (complated? ? 'complated' : 'unknown') + end + + def complated? + file = File.join(@file.to_path, ".complate") + File.exist?(file) + end + + def failure + return unless @status + + failures = Sidekiq::Failures::FailureSet.new + failures.find do |failure| + failure.jid == @status[:jid] + end + end + end + private def correct_schedule @@ -59,8 +112,8 @@ def correct_schedule errors.add(:schedule, :invalid) end - def strip_enabled_channels - enabled_channels.compact! + def strip_enabled_apps + enabled_apps.compact! end def remove_storage diff --git a/app/models/channel.rb b/app/models/channel.rb index 568878265..8a0b0aff8 100755 --- a/app/models/channel.rb +++ b/app/models/channel.rb @@ -11,8 +11,6 @@ class Channel < ApplicationRecord enum device_type: { ios: 'iOS', android: 'Android', macos: 'macOS' } - scope :all_appnames, -> { all.map { |c| [c.app_name, c.id] } } - delegate :count, to: :enabled_web_hooks, prefix: true delegate :count, to: :available_web_hooks, prefix: true delegate :app, to: :scheme diff --git a/app/views/admin/backups/_form.html.slim b/app/views/admin/backups/_form.html.slim index e5aadafc9..d840426b6 100644 --- a/app/views/admin/backups/_form.html.slim +++ b/app/views/admin/backups/_form.html.slim @@ -9,12 +9,12 @@ = f.input :key, required: true = f.input :schedule, required: true = f.input :max_keeps, required: true - = f.input :notification + / = f.input :notification .card-header.pt-0 h3.card-title 备份范围 .card-body - = f.input :enabled_channels, as: :check_boxes, collection: Channel.all_appnames, checked: @backup.enabled_channels + = f.input :enabled_apps, as: :check_boxes, collection: all_apps, checked: @backup.enabled_apps = f.label :enabled_database = f.input :enabled_database, label: t('simple_form.labels.backup.database_switch') diff --git a/app/views/admin/backups/_job_complated.html.slim b/app/views/admin/backups/_job_complated.html.slim new file mode 100644 index 000000000..8d5655045 --- /dev/null +++ b/app/views/admin/backups/_job_complated.html.slim @@ -0,0 +1,10 @@ +tr + td = file.created_at + td = number_to_human_size(file.size) + td + .btn-group + = link_to archive_admin_backup_path(backup, key: file.basename), class: 'btn btn-sm', title: t('admin.backups.show.edit') do + i.fas.fa-download + = link_to archive_admin_backup_path(backup, key: file.basename), class: 'btn btn-sm', title: t('admin.backups.show.destroy'), \ + data: { turbo_method: :delete, turbo_confirm: t('.destroy_confirm', key: backup.key) } do + i.fas.fa-trash-alt.text-danger \ No newline at end of file diff --git a/app/views/admin/backups/_job_failed.html.slim b/app/views/admin/backups/_job_failed.html.slim new file mode 100644 index 000000000..b51cc2d6d --- /dev/null +++ b/app/views/admin/backups/_job_failed.html.slim @@ -0,0 +1,12 @@ +tr + td + = file.created_at + .text-danger + = "#{file.status.status}@#{file.status[:step]}" + = ": #{file.failure['error_class']}@#{file.failure.jid}" + td - + td + .btn-group + = link_to archive_admin_backup_path(backup, key: file.basename), class: 'btn btn-sm', title: t('admin.backups.show.destroy'), \ + data: { turbo_method: :delete, turbo_confirm: t('.destroy_confirm', key: backup.key) } do + i.fas.fa-trash-alt.text-danger diff --git a/app/views/admin/backups/_job_unknown.html.slim b/app/views/admin/backups/_job_unknown.html.slim new file mode 100644 index 000000000..13ef749a0 --- /dev/null +++ b/app/views/admin/backups/_job_unknown.html.slim @@ -0,0 +1,9 @@ +tr + td = file.created_at + td - + td + .btn-group + = link_to archive_admin_backup_path(backup, key: file.basename), class: 'btn btn-sm btn-danger', title: t('admin.backups.show.destroy'), \ + data: { turbo_method: :delete, turbo_confirm: t('.destroy_confirm', key: backup.key) } do + i.fas.fa-trash-alt + | Unknown happend! please report to zealot developer! \ No newline at end of file diff --git a/app/views/admin/backups/_job_working.html.slim b/app/views/admin/backups/_job_working.html.slim new file mode 100644 index 000000000..e68c6cc87 --- /dev/null +++ b/app/views/admin/backups/_job_working.html.slim @@ -0,0 +1,10 @@ +tr + td = file.created_at + td - + td + .btn-group + button.btn.btn-default.btn-sm + = file.status[:step] + = link_to archive_admin_backup_path(backup, key: file.basename), class: 'btn btn-sm btn-danger', title: t('admin.backups.show.destroy'), \ + data: { turbo_method: :delete, turbo_confirm: t('.destroy_confirm', key: backup.key) } do + i.fas.fa-trash-alt \ No newline at end of file diff --git a/app/views/admin/backups/show.html.slim b/app/views/admin/backups/show.html.slim index 09b9d5283..9276b8cf3 100644 --- a/app/views/admin/backups/show.html.slim +++ b/app/views/admin/backups/show.html.slim @@ -6,30 +6,16 @@ .row .col-md-12 - = debug @backup.job_status - unless @backup.files.empty? .card .card-body.p-0 table.table tr - th = t('.filename') th = t('.created_at') th = t('.size') th = t('.download') - - @backup.files.each do |file| - tr - td = file.basename - td = file.ctime - td = number_to_human_size(file.size) - td - .btn-group - = link_to archive_admin_backup_path(@backup, key: file.basename), class: 'btn btn-sm', title: t('.edit') do - i.fas.fa-download - = link_to archive_admin_backup_path(@backup, key: file.basename), class: 'btn btn-sm', title: t('.destroy'), \ - data: { turbo_method: :delete, turbo_confirm: t('.destroy_confirm', key: @backup.key) } do - i.fas.fa-trash-alt.text-danger - - / = link_to 'download', archive_admin_backup_path(@backup, key: file.basename) + - @backup.files.each do |file| + == render "job_#{file.job_status}", backup: @backup, file: file - else .card.card-outline.card-warning .card-header.card-border @@ -38,5 +24,4 @@ = t('.not_found.body_html', \ link: button_to(raw(' 新增备份。 show: - title: '%{key} 备份' + title: '%{key} 备份计划' filename: 文件名 created_at: 生成时间 size: 大小 diff --git a/db/migrate/20220803055400_create_backups.rb b/db/migrate/20220803055400_create_backups.rb index 58a4bc7be..324092d1d 100644 --- a/db/migrate/20220803055400_create_backups.rb +++ b/db/migrate/20220803055400_create_backups.rb @@ -4,7 +4,7 @@ def change t.string :key, unique: true, null: false, index: true t.string :schedule, null: false t.boolean :enabled_database, default: true - t.integer :enabled_channels, array: true, default: [] + t.integer :enabled_apps, array: true, default: [] t.integer :max_keeps, default: -1 t.string :notification t.boolean :enabled diff --git a/db/schema.rb b/db/schema.rb index cca723f8d..6475cbc21 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -67,7 +67,7 @@ t.string "key", null: false t.string "schedule", null: false t.boolean "enabled_database", default: true - t.integer "enabled_channels", default: [], array: true + t.integer "enabled_apps", default: [], array: true t.integer "max_keeps", default: -1 t.string "notification" t.boolean "enabled" From a9a3d2b720dbe65d30eb0e2a77a588fa2163ba20 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 8 Aug 2022 19:24:19 +0800 Subject: [PATCH 1091/2165] =?UTF-8?q?refactor:=20=E5=A4=87=E4=BB=BD?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E9=87=8D=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/admin/backups_controller.rb | 1 + app/jobs/backup_job.rb | 68 ++--- app/models/backup.rb | 52 ++-- .../admin/backups/_job_complated.html.slim | 1 + app/views/admin/backups/_job_failed.html.slim | 3 +- app/views/admin/backups/show.html.slim | 7 +- config/environments/development.rb | 13 +- lib/tasks/zealot/backup.rake | 166 +++++------ lib/zealot/backup/database.rb | 35 +-- lib/zealot/backup/helper.rb | 14 +- lib/zealot/backup/manager.rb | 270 +++++++++++------- lib/zealot/backup/uploads.rb | 61 ++-- 12 files changed, 388 insertions(+), 303 deletions(-) diff --git a/app/controllers/admin/backups_controller.rb b/app/controllers/admin/backups_controller.rb index 30f78ca43..30b6d11ea 100644 --- a/app/controllers/admin/backups_controller.rb +++ b/app/controllers/admin/backups_controller.rb @@ -10,6 +10,7 @@ def index end def show + @backup_files = @backup.backup_files end def enable diff --git a/app/jobs/backup_job.rb b/app/jobs/backup_job.rb index 50d6af45d..a3fcc5c1c 100644 --- a/app/jobs/backup_job.rb +++ b/app/jobs/backup_job.rb @@ -7,18 +7,21 @@ class BackupJob < ApplicationJob queue_as :schedule def perform(backup_id) - update_status("started") @backup = Backup.find(backup_id) @manager = Zealot::Backup::Manager.new(backup_path, logger) - status.update(file: File.basename(backup_path), job_id: job_id, jid: provider_job_id) + update_status('start', + source: @backup.key, + file: @manager.tar_filename, + job_id: job_id, + jid: provider_job_id + ) prepare dump_database dump_apps - archive + pack cleanup - finish # rescue => e # status.update(step: "throw_error") @@ -29,73 +32,64 @@ def perform(backup_id) # message = "Failed to create backup job, because #{e.message}" # logger.error message # logger.error e.backtrace.join("\n") + ensure + update_status('ensure') + @manager&.cleanup end private - def archive - update_status(__method__) - - @manager.write_info - @manager.pack - end - def prepare update_status(__method__) - FileUtils.mkdir_p(backup_path) + @manager.precheck(false) # Make sure storage it by direct execute this job unless redis.sismember(@backup.cache_job_id_key, job_id) redis.sadd(@backup.cache_job_id_key, job_id) end - end - - def cleanup - update_status(__method__) - @manager.cleanup - - clean_redis_cache - end - - def clean_redis_cache - if redis.sismember(@backup.cache_job_id_key, job_id) - redis.srem(@backup.cache_job_id_key, job_id) - end + FileUtils.mkdir_p(backup_path) end def dump_database update_status(__method__) return unless @backup.enabled_database - Zealot::Backup::Database.dump(path: backup_path) + @manager.dump_database end def dump_apps update_status(__method__) return if @backup.enabled_apps.empty? - Zealot::Backup::Upload.dump(path: backup_path) + @manager.dump_uploads(app_ids: @backup.enabled_apps) end - def finish + def pack update_status(__method__) - FileUtils.touch(File.join(backup_path, '.complate')) + @manager.write_info + @manager.pack end - def backup_path - @backup_path ||= -> () { - today = Time.now.strftime('%s_%Y%m%d-%H%M') - File.join(@backup.path, today) - }.call + def cleanup + update_status(__method__) + + clean_redis_cache + end + + def clean_redis_cache + if redis.sismember(@backup.cache_job_id_key, job_id) + redis.srem(@backup.cache_job_id_key, job_id) + end end - def local_file - @local_file ||= File.join(backup_path, LOCK_FILE) + def backup_path + @backup_path ||= @backup.path end - def update_status(value) + def update_status(value, **params) status[:step] = value.to_s + status.update(params) if params end def redis diff --git a/app/models/backup.rb b/app/models/backup.rb index bb06025d1..f9fa83afc 100644 --- a/app/models/backup.rb +++ b/app/models/backup.rb @@ -19,19 +19,16 @@ def perform_job Rails.cache.redis.sadd(cache_job_id_key, job.job_id) end - def find_file(dirname) - file = Dir.glob(File.join(path, dirname, '*.tar')).first + def find_file(filename) + file = Dir.glob(File.join(path, filename)).first return unless file Pathname.new(file) end - def files - # TODO: 需要重写,逻辑有问题 + def backup_files Dir.glob(File.join(path, '*')).each_with_object([]) do |file, obj| - backup_file = BackupFile.parse(file, job_status) - # next unless backup_file.complated? - + backup_file = BackupFile.parse(key, file, cache_job_id_key) obj << backup_file end.sort_by(&:ctime).reverse! end @@ -39,23 +36,14 @@ def files def destroy_directory(name) FileUtils.rm_rf(File.join(path, name)) - job_id, status = job_status.find {|_, status| status[:file] == name } + job_id, status = BackupFile.find_status(cache_key, key, name) Rails.cache.redis.srem(cache_job_id_key, job_id) if job_id status.delete if status end - def job_status - job_ids = Rails.cache.redis.smembers(cache_job_id_key) - return {} if job_ids.empty? - - job_ids.each_with_object({}) do |job_id, obj| - obj[job_id] = ActiveJob::Status.get(job_id) - end - end - def cache_job_id_key - @cache_job_id_key ||= "zealot:backup:#{id}" + @cache_job_id_key ||= "cache:backup:#{id}" end def path @@ -63,11 +51,26 @@ def path end class BackupFile - def self.parse(file, backup_job_status) - job_id, status = backup_job_status.find {|_, status| status[:file] == File.basename(file) } + def self.parse(key, file, cache_key) + status = find_status(cache_key, key, file) new(file, status) end + def self.find_status(cache_key, key, file) + job_cached_status(cache_key).find do |status| + status[:source] = key && status[:file] == File.basename(file) + end + end + + def self.job_cached_status(cache_key) + job_ids = Rails.cache.redis.smembers(cache_key) + return {} if job_ids.empty? + + job_ids.each_with_object([]) do |job_id, obj| + obj << ActiveJob::Status.get(job_id) + end + end + attr_reader :status delegate :size, :ctime, :to_path, :basename, to: :@file @@ -77,17 +80,20 @@ def initialize(file, status) @status = status end + def name + @file.basename + end + def created_at @file.ctime end - def job_status + def current_status @status&.status || (complated? ? 'complated' : 'unknown') end def complated? - file = File.join(@file.to_path, ".complate") - File.exist?(file) + File.exist?(@file) end def failure diff --git a/app/views/admin/backups/_job_complated.html.slim b/app/views/admin/backups/_job_complated.html.slim index 8d5655045..359c59c30 100644 --- a/app/views/admin/backups/_job_complated.html.slim +++ b/app/views/admin/backups/_job_complated.html.slim @@ -1,4 +1,5 @@ tr + td = file.name td = file.created_at td = number_to_human_size(file.size) td diff --git a/app/views/admin/backups/_job_failed.html.slim b/app/views/admin/backups/_job_failed.html.slim index b51cc2d6d..12e281157 100644 --- a/app/views/admin/backups/_job_failed.html.slim +++ b/app/views/admin/backups/_job_failed.html.slim @@ -3,7 +3,8 @@ tr = file.created_at .text-danger = "#{file.status.status}@#{file.status[:step]}" - = ": #{file.failure['error_class']}@#{file.failure.jid}" + - if file.failure&.jid + = ": #{file.failure['error_class']}@#{file.failure.jid}" td - td .btn-group diff --git a/app/views/admin/backups/show.html.slim b/app/views/admin/backups/show.html.slim index 9276b8cf3..bb7f1dbc6 100644 --- a/app/views/admin/backups/show.html.slim +++ b/app/views/admin/backups/show.html.slim @@ -6,16 +6,17 @@ .row .col-md-12 - - unless @backup.files.empty? + - unless @backup_files.empty? .card .card-body.p-0 table.table tr + th = t('.filename') th = t('.created_at') th = t('.size') th = t('.download') - - @backup.files.each do |file| - == render "job_#{file.job_status}", backup: @backup, file: file + - @backup_files.each do |file| + == render "job_#{file.current_status}", backup: @backup, file: file - else .card.card-outline.card-warning .card-header.card-border diff --git a/config/environments/development.rb b/config/environments/development.rb index 5070bf6e3..b93be51f2 100644 --- a/config/environments/development.rb +++ b/config/environments/development.rb @@ -19,24 +19,23 @@ # Enable server timing config.server_timing = true + # Using redis cache storage + config.cache_store = :redis_cache_store, { + url: (ENV['REDIS_URL'] || 'redis://localhost:6379/0'), + namespace: ENV['REDIS_NAMESPACE'] || 'cache' + } + # Enable/disable caching. By default caching is disabled. # Run rails dev:cache to toggle caching. if Rails.root.join('tmp/caching-dev.txt').exist? config.action_controller.perform_caching = true config.action_controller.enable_fragment_cache_logging = true - config.cache_store = :redis_cache_store, { - url: (ENV['REDIS_URL'] || 'redis://localhost:6379/0'), - namespace: ENV['REDIS_NAMESPACE'] || 'cache' - } - config.public_file_server.headers = { 'Cache-Control' => "public, max-age=#{2.days.to_i}" } else config.action_controller.perform_caching = false - - config.cache_store = :null_store end # Store uploaded files on the local file system (see config/storage.yml for options). diff --git a/lib/tasks/zealot/backup.rake b/lib/tasks/zealot/backup.rake index 0e44ffca0..9c24fcd69 100644 --- a/lib/tasks/zealot/backup.rake +++ b/lib/tasks/zealot/backup.rake @@ -1,83 +1,83 @@ -# frozen_string_literal: true - -# Copyright (c) 2011-present GitLab B.V. - -# Portions of this software are licensed as follows: - -# * All content residing under the "doc/" directory of this repository is licensed under "Creative Commons: CC BY-SA 4.0 license". -# * All content that resides under the "ee/" directory of this repository, if that directory exists, is licensed under the license defined in "ee/LICENSE". -# * All client-side JavaScript (when served directly or after being compiled, arranged, augmented, or combined), is licensed under the "MIT Expat" license. -# * All third party components incorporated into the GitLab Software are licensed under the original license provided by the owner of the applicable component. -# * Content outside of the above mentioned directories or restrictions above is available under the "MIT Expat" license as defined below. - -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: - -# The above copyright notice and this permission notice shall be included in all -# copies or substantial portions of the Software. - -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. - -require_relative '../../zealot/backup/helper' - -extend Zealot::Backup::Helper - -namespace :zealot do - namespace :backup do - desc 'Zealot | Backup | Create a backup of the Zealot system' - task create: :environment do - Rake::Task['zealot:backup:db:create'].invoke - Rake::Task['zealot:backup:uploads:create'].invoke - - backup = Zealot::Backup::Manager.new - backup.write_info - backup.pack - backup.cleanup - backup.remove_old - end - - desc 'Zealot | Backup | Restore a previously created backup' - task restore: :environment do - backup = Zealot::Backup::Manager.new - cleanup_required = backup.unpack - backup.verify_backup_version - - Rake::Task['zealot:backup:db:restore'].invoke - Rake::Task['zealot:backup:uploads:restore'].invoke - - backup.cleanup if cleanup_required - - puts "Restore task is done." - end - - namespace :uploads do - task create: :environment do - Zealot::Backup::Uploads.dump - end - - task restore: :environment do - Zealot::Backup::Uploads.restore - end - end - - namespace :db do - task create: :environment do - Zealot::Backup::Database.dump - end - - task restore: :environment do - Zealot::Backup::Database.restore - end - end - end -end \ No newline at end of file +# # frozen_string_literal: true + +# # Copyright (c) 2011-present GitLab B.V. + +# # Portions of this software are licensed as follows: + +# # * All content residing under the "doc/" directory of this repository is licensed under "Creative Commons: CC BY-SA 4.0 license". +# # * All content that resides under the "ee/" directory of this repository, if that directory exists, is licensed under the license defined in "ee/LICENSE". +# # * All client-side JavaScript (when served directly or after being compiled, arranged, augmented, or combined), is licensed under the "MIT Expat" license. +# # * All third party components incorporated into the GitLab Software are licensed under the original license provided by the owner of the applicable component. +# # * Content outside of the above mentioned directories or restrictions above is available under the "MIT Expat" license as defined below. + +# # Permission is hereby granted, free of charge, to any person obtaining a copy +# # of this software and associated documentation files (the "Software"), to deal +# # in the Software without restriction, including without limitation the rights +# # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# # copies of the Software, and to permit persons to whom the Software is +# # furnished to do so, subject to the following conditions: + +# # The above copyright notice and this permission notice shall be included in all +# # copies or substantial portions of the Software. + +# # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# # SOFTWARE. + +# require_relative '../../zealot/backup/helper' + +# extend Zealot::Backup::Helper + +# namespace :zealot do +# namespace :backup do +# desc 'Zealot | Backup | Create a backup of the Zealot system' +# task create: :environment do +# Rake::Task['zealot:backup:db:create'].invoke +# Rake::Task['zealot:backup:uploads:create'].invoke + +# backup = Zealot::Backup::Manager.new +# backup.write_info +# backup.pack +# backup.cleanup +# backup.remove_old +# end + +# desc 'Zealot | Backup | Restore a previously created backup' +# task restore: :environment do +# backup = Zealot::Backup::Manager.new +# cleanup_required = backup.unpack +# backup.verify_backup_version + +# Rake::Task['zealot:backup:db:restore'].invoke +# Rake::Task['zealot:backup:uploads:restore'].invoke + +# backup.cleanup if cleanup_required + +# puts "Restore task is done." +# end + +# namespace :uploads do +# task create: :environment do +# Zealot::Backup::Uploads.dump +# end + +# task restore: :environment do +# Zealot::Backup::Uploads.restore +# end +# end + +# namespace :db do +# task create: :environment do +# Zealot::Backup::Database.dump +# end + +# task restore: :environment do +# Zealot::Backup::Database.restore +# end +# end +# end +# end \ No newline at end of file diff --git a/lib/zealot/backup/database.rb b/lib/zealot/backup/database.rb index ede3b104f..f31bd0b64 100644 --- a/lib/zealot/backup/database.rb +++ b/lib/zealot/backup/database.rb @@ -2,14 +2,6 @@ # Copyright (c) 2011-present GitLab B.V. -# Portions of this software are licensed as follows: - -# * All content residing under the "doc/" directory of this repository is licensed under "Creative Commons: CC BY-SA 4.0 license". -# * All content that resides under the "ee/" directory of this repository, if that directory exists, is licensed under the license defined in "ee/LICENSE". -# * All client-side JavaScript (when served directly or after being compiled, arranged, augmented, or combined), is licensed under the "MIT Expat" license. -# * All third party components incorporated into the GitLab Software are licensed under the original license provided by the owner of the applicable component. -# * Content outside of the above mentioned directories or restrictions above is available under the "MIT Expat" license as defined below. - # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal # in the Software without restriction, including without limitation the rights @@ -32,25 +24,24 @@ module Zealot::Backup class Database include Zealot::Backup::Helper - class Error < StandardError; end - - def self.dump(path: nil, logger: nil) - new(path, logger).dump + def self.dump(manager) + new(manager.tmpdir, logger: manager.logger).dump end - def self.restore(path: nil, logger: nil) - new(path, logger).restore + def self.restore(backup_path: nil, logger: Rails.logger) + new(backup_path, logger).restore end - attr_reader :path, :logger + FILENAME = 'database.sql.gz' + + attr_reader :backup_path, :logger - def initialize(path, logger = nil) - @path = path - @logger = logger || Logger.new(STDOUT) + def initialize(backup_path, logger: Rails.logger) + @backup_path = backup_path + @logger = logger end def dump - FileUtils.mkdir_p(File.dirname(db_file_name)) FileUtils.rm_f(db_file_name) compress_rd, compress_wr = IO.pipe @@ -77,7 +68,7 @@ def dump $?.success? end - raise Zealot::Backup::Database::Error, 'Backup failed' unless success + raise Zealot::Backup::DatabaseError, 'Backup failed' unless success success end @@ -101,7 +92,7 @@ def restore $?.success? end - raise Zealot::Backup::Database::Error, 'Restore failed' unless success + raise Zealot::Backup::DatabaseError, 'Restore failed' unless success end private @@ -131,7 +122,7 @@ def config end def db_file_name - @db_file_name ||= File.join(path || backup_path, 'db', 'database.sql.gz') + @db_file_name ||= File.join(backup_path, FILENAME) end end end \ No newline at end of file diff --git a/lib/zealot/backup/helper.rb b/lib/zealot/backup/helper.rb index c39d2b448..4e56de560 100644 --- a/lib/zealot/backup/helper.rb +++ b/lib/zealot/backup/helper.rb @@ -2,14 +2,6 @@ # Copyright (c) 2011-present GitLab B.V. -# Portions of this software are licensed as follows: - -# * All content residing under the "doc/" directory of this repository is licensed under "Creative Commons: CC BY-SA 4.0 license". -# * All content that resides under the "ee/" directory of this repository, if that directory exists, is licensed under the license defined in "ee/LICENSE". -# * All client-side JavaScript (when served directly or after being compiled, arranged, augmented, or combined), is licensed under the "MIT Expat" license. -# * All third party components incorporated into the GitLab Software are licensed under the original license provided by the owner of the applicable component. -# * Content outside of the above mentioned directories or restrictions above is available under the "MIT Expat" license as defined below. - # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal # in the Software without restriction, including without limitation the rights @@ -31,12 +23,12 @@ module Zealot::Backup module Helper - def backup_path - Rails.root.join(Setting.backup[:path]) + def backup_root_path + Setting.backup[:path] end def gzip_cmd - @gzip_cmd ||= if ENV['GZIP_RSYNCABLE'] == 'yes' + @gzip_cmd ||= if ENV['ZEALOT_BACKUP_GZIP_RSYNCABLE'] == 'yes' "gzip --rsyncable -c -1" else "gzip -c -1" diff --git a/lib/zealot/backup/manager.rb b/lib/zealot/backup/manager.rb index 8b784b2cd..21b08d136 100644 --- a/lib/zealot/backup/manager.rb +++ b/lib/zealot/backup/manager.rb @@ -2,14 +2,6 @@ # Copyright (c) 2011-present GitLab B.V. -# Portions of this software are licensed as follows: - -# * All content residing under the "doc/" directory of this repository is licensed under "Creative Commons: CC BY-SA 4.0 license". -# * All content that resides under the "ee/" directory of this repository, if that directory exists, is licensed under the license defined in "ee/LICENSE". -# * All client-side JavaScript (when served directly or after being compiled, arranged, augmented, or combined), is licensed under the "MIT Expat" license. -# * All third party components incorporated into the GitLab Software are licensed under the original license provided by the owner of the applicable component. -# * Content outside of the above mentioned directories or restrictions above is available under the "MIT Expat" license as defined below. - # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal # in the Software without restriction, including without limitation the rights @@ -29,23 +21,59 @@ # SOFTWARE. module Zealot::Backup + class Error < StandardError; end + class DatabaseError < Error; end + class UploadsError < Error; end + class Manager include Zealot::Backup::Helper + # include Zealot::Backup::Helper - class Error < StandardError; end + TEMPDIR_PREFIX = 'zealot-backup' + DEFAULT_BACKUP_PATH = 'public/backup' - ARCHIVES_TO_BACKUP = %w[uploads.tar.gz] - FOLDERS_TO_BACKUP = %w[db] + ARCHIVES_TO_BACKUP = [ Zealot::Backup::Uploads::FILENAME ] + FOLDERS_TO_BACKUP = [ Zealot::Backup::Database::FILENAME ] FILE_NAME_SUFFIX = '_zealot_backup.tar' - FILE_REGEX = /^(\d{10})?(_*)(\d{4}_\d{2}_\d{2}|\d{8}-\d{4})(_\d+\.\d+\.\d+((-|\.)(beta\d|pre\d|rc\d)?)?)?([_-]development)?_zealot_backup\.tar$/ + FILE_REGEX = /^(\d{10})?(_*)\d{4}_\d{2}_\d{2}(_\d+\.\d+\.\d+((-|\.)(beta\d|pre\d|rc\d)?)?)?([_-]development)?_zealot_backup\.tar$/ + + attr_reader :backup_path, :logger + + def initialize(key, logger = Rails.logger) + @backup_path = Rails.root.join(backup_root_path, key) + @logger = logger + end + + def dump_all(app_ids: :all, force: false) + precheck(force) + dump_database + dump_uploads(app_ids: app_ids) + write_info + pack + ensure + cleanup + end - attr_reader :path, :logger + # Precheck backup file not exists + def precheck(force) + if !force && File.file?(tar_file) + key = File.basename(@backup_path) + file = File.basename(tar_file) + raise Zealot::Backup::Error, "`#{key}` backup file was existed: #{file}, set force: true to overwrite." + end + end - def initialize(path = nil, logger = nil) - @path = path || backup_path - @logger = logger || Logger.new(STDOUT) + # dump database into archive file + def dump_database + Zealot::Backup::Database.dump(self) end + # dump uploads of given app into archive file + def dump_uploads(app_ids: :all) + Zealot::Backup::Uploads.dump(self, app_ids: app_ids) + end + + # generate a backup information file def write_info # Make sure there is a connection ActiveRecord::Base.connection.reconnect! @@ -55,30 +83,95 @@ def write_info end end + # pack all files above into the final backup file def pack - Dir.chdir(path) do + FileUtils.mkdir_p(@backup_path) + Dir.chdir(tmpdir) do # create archive - logger.debug "Creating backup archive: #{tar_file} ... " + logger.debug "Creating backup archive: #{File.basename(tar_file)} ... " # Set file permissions on open to prevent chmod races. tar_system_options = { out: [tar_file, 'w', 0640] } unless system(tar, '-cf', '-', *backup_contents, tar_system_options) - raise Zealot::Backup::Manager::Error, "Backup failed: creating archive #{tar_file} failed" + raise Zealot::Backup::Error, "Backup failed: creating archive #{tar_file} failed" end end end + # Move back backup file from temp dir and delete tempdir etc def cleanup - logger.debug 'Deleting tmp directories ... ' + clear_tempdir + end + + def tar_filename + @tar_filename ||= -> () { + timestamp = backup_information[:backup_created_at].strftime('%s_%Y%m%d-%H%M') + zealot_version = backup_information[:zealot_version] + "#{timestamp}_#{zealot_version}#{FILE_NAME_SUFFIX}" + }.call + end - backup_contents.each do |dir| - next unless File.exist?(File.join(path, dir)) + def tmpdir + return @tmpdir if @tmpdir && Dir.exist?(@tmpdir) - unless FileUtils.rm_rf(File.join(path, dir)) - raise Zealot::Backup::Manager::Error, "Backup failed: deleting tmp directory '#{dir}' failed" - end - end + @tmpdir ||= Dir.mktmpdir(TEMPDIR_PREFIX) + end + + def clear_tempdir + return unless @tmpdir + + FileUtils.remove_entry(@tmpdir) if Dir.exist?(@tmpdir) + @tmpdir = nil + end + + private + + def tar_file + File.join(@backup_path, tar_filename) end + def backup_root_path + @backup_root_path ||= Setting.backup[:path] || DEFAULT_BACKUP_PATH + end + + def backup_information_file + File.join(tmpdir, 'backup_information.yml') + end + + ##################################################################### + + # def write_info + # # Make sure there is a connection + # ActiveRecord::Base.connection.reconnect! + + # File.open(backup_information_file, "w") do |file| + # file << backup_information.to_yaml.gsub(/^---\n/, '') + # end + # end + + # def pack + # Dir.chdir(path) do + # # create archive + # logger.debug "Creating backup archive: #{tar_file} ... " + # # Set file permissions on open to prevent chmod races. + # tar_system_options = { out: [tar_file, 'w', 0640] } + # unless system(tar, '-cf', '-', *backup_contents, tar_system_options) + # raise Zealot::Backup::Error, "Backup failed: creating archive #{tar_file} failed" + # end + # end + # end + + # def cleanup + # logger.debug 'Deleting tmp directories ... ' + + # backup_contents.each do |dir| + # next unless File.exist?(File.join(path, dir)) + + # unless FileUtils.rm_rf(File.join(path, dir)) + # raise Zealot::Backup::Error, "Backup failed: deleting tmp directory '#{dir}' failed" + # end + # end + # end + def remove_old logger.debug 'Deleting old backups ... ' keep_time = Setting.backup[:keep_time] @@ -86,14 +179,13 @@ def remove_old if keep_time > 0 removed = 0 - Dir.chdir(path) do + Dir.chdir(backup_path) do backup_file_list.each do |file| # For compatibility, there are 4 names the backups can have: # - 1590060675_2020_05_21_zealot_backup.tar # - 1590060675_2020_05_21_development_zealot_backup.tar # - 1590060675_2020_05_21_4.0.0-beta4_zealot_backup.tar # - 1590060675_2020_05_21_4.0.0-beta4-development_zealot_backup.tar - # - 20220803-2300_4.5.0_zealot_backup.tar next unless file =~ FILE_REGEX timestamp = $1.to_i @@ -115,61 +207,59 @@ def remove_old end end - def unpack - FileUtils.mkdir_p(path) - - Dir.chdir(path) do - # check for existing backups in the backup dir - if backup_file_list.empty? - logger.debug "No backups found in #{path}" - logger.debug "Please make sure that file name ends with #{FILE_NAME_SUFFIX}" - exit 1 - elsif backup_file_list.many? && ENV["BACKUP"].nil? - logger.debug 'Found more than one backup:' - # print list of available backups - logger.debug " " + available_timestamps.join("\n ") - logger.debug 'Please specify which one you want to restore:' - logger.debug 'rake gitlab:backup:restore BACKUP=timestamp_of_backup' - exit 1 - end - - tar_file = backup_file_list.first - unless File.exist?(tar_file) - logger.debug "The backup file #{tar_file} does not exist!" - exit 1 - end - - logger.debug 'Unpacking backup ... ', false - if system(*%W(tar -xf #{tar_file})) - return true - else - logger.error 'Unpacking backup failed' - exit 1 - end - end - end - - def verify_backup_version - Dir.chdir(path) do - # restoring mismatching backups can lead to unexpected problems - current_version = Setting.version - if settings[:zealot_version] != current_version - logger.debug(<<~HEREDOC.color(:red)) - Zealot version mismatch: - Your current Zealot version (#{current_version}) differs from the Zealot version in the backup! - Please switch to the following version and try again: - version: #{settings[:zealot_version]} - HEREDOC - logger.debug - logger.debug "Hint:" - logger.debug " 1. git checkout v#{settings[:zealot_version]}" - logger.debug " 2. docker pull tryzealot/zealot:#{settings[:zealot_version]}" - exit 1 - end - end - end - - private + # def unpack + # FileUtils.mkdir_p(path) + + # Dir.chdir(path) do + # # check for existing backups in the backup dir + # if backup_file_list.empty? + # logger.debug "No backups found in #{path}" + # logger.debug "Please make sure that file name ends with #{FILE_NAME_SUFFIX}" + # exit 1 + # elsif backup_file_list.many? && ENV["BACKUP"].nil? + # logger.debug 'Found more than one backup:' + # # print list of available backups + # logger.debug " " + available_timestamps.join("\n ") + # logger.debug 'Please specify which one you want to restore:' + # logger.debug 'rake gitlab:backup:restore BACKUP=timestamp_of_backup' + # exit 1 + # end + + # tar_file = backup_file_list.first + # unless File.exist?(tar_file) + # logger.debug "The backup file #{tar_file} does not exist!" + # exit 1 + # end + + # logger.debug 'Unpacking backup ... ', false + # if system(*%W(tar -xf #{tar_file})) + # return true + # else + # logger.error 'Unpacking backup failed' + # exit 1 + # end + # end + # end + + # def verify_backup_version + # Dir.chdir(path) do + # # restoring mismatching backups can lead to unexpected problems + # current_version = Setting.version + # if settings[:zealot_version] != current_version + # logger.debug(<<~HEREDOC.color(:red)) + # Zealot version mismatch: + # Your current Zealot version (#{current_version}) differs from the Zealot version in the backup! + # Please switch to the following version and try again: + # version: #{settings[:zealot_version]} + # HEREDOC + # logger.debug + # logger.debug "Hint:" + # logger.debug " 1. git checkout v#{settings[:zealot_version]}" + # logger.debug " 2. docker pull tryzealot/zealot:#{settings[:zealot_version]}" + # exit 1 + # end + # end + # end def backup_information @backup_information ||= { @@ -192,7 +282,7 @@ def backup_contents def precheck_content(source) source.each_with_object([]) do |item, obj| - obj << item if File.exist?(File.join(path, item)) + obj << item if File.exist?(File.join(tmpdir, item)) end end @@ -200,14 +290,6 @@ def settings @settings ||= YAML.load_file('backup_information.yml') end - def tar_file - @tar_file ||= -> () { - timestamp = backup_information[:backup_created_at].strftime('%Y%m%d-%H%M') - zealot_version = backup_information[:zealot_version] - "#{timestamp}_#{zealot_version}#{FILE_NAME_SUFFIX}" - }.call - end - def tar_version @tar_version ||= `#{tar} --version`.dup .force_encoding('locale') @@ -215,9 +297,5 @@ def tar_version .first .strip end - - def backup_information_file - @backup_information_file ||= File.join(path, 'backup_information.yml') - end end end \ No newline at end of file diff --git a/lib/zealot/backup/uploads.rb b/lib/zealot/backup/uploads.rb index bffb6409f..a35db41b8 100644 --- a/lib/zealot/backup/uploads.rb +++ b/lib/zealot/backup/uploads.rb @@ -2,14 +2,6 @@ # Copyright (c) 2011-present GitLab B.V. -# Portions of this software are licensed as follows: - -# * All content residing under the "doc/" directory of this repository is licensed under "Creative Commons: CC BY-SA 4.0 license". -# * All content that resides under the "ee/" directory of this repository, if that directory exists, is licensed under the license defined in "ee/LICENSE". -# * All client-side JavaScript (when served directly or after being compiled, arranged, augmented, or combined), is licensed under the "MIT Expat" license. -# * All third party components incorporated into the GitLab Software are licensed under the original license provided by the owner of the applicable component. -# * Content outside of the above mentioned directories or restrictions above is available under the "MIT Expat" license as defined below. - # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to deal # in the Software without restriction, including without limitation the rights @@ -36,25 +28,36 @@ class Uploads class Error < StandardError; end - def self.dump - new.dump + def self.dump(manager, app_ids:) + new(manager.tmpdir, logger: manager.logger).dump(app_ids: app_ids) end + # def self.dump(path: nil, logger: nil, app_ids: nil) + # new(path, logger, app_ids).dump + # end + def self.restore new.restore end - def dump - FileUtils.mkdir_p(backup_path) - FileUtils.rm_f(backup_tarball) + FILENAME = 'uploads.tar.gz' + + attr_reader :path, :logger - _logger.debug "Dumping uploads data ... " + def initialize(path = nil, logger: Rails.logger) + @path = path + @logger = logger + end + + def dump(app_ids: nil) + FileUtils.rm_f(backup_tarball) - run_pipeline!([%W(#{tar} --exclude=lost+found -C #{uploads_path} -cf - .), gzip_cmd], out: [backup_tarball, 'w', 0600]) + logger.debug "Dumping uploads data ... #{uploads_path}" + run_pipeline!([archive_tar_cmd(app_ids), gzip_cmd], out: [backup_tarball, 'w', 0600]) end def restore - _logger.debug "Restoring uploads data ... " + logger.debug "Restoring uploads data ... " backup_existing_uploads_dir FileUtils.mkdir_p(uploads_path) @@ -63,6 +66,19 @@ def restore private + def archive_tar_cmd(app_ids) + command = %W(#{tar} --exclude=lost+found --exclude=.DS_Store -C #{uploads_path} -cf -) + if app_ids.is_a?(Array) && !app_ids.empty? + app_ids.each do |app_id| + command << File.join('apps', "a#{app_id}") + end + else + command << '.' + end + + command + end + def backup_existing_uploads_dir timestamped_files_path = File.join(backup_path, "tmp", "uploads.old.#{Time.now.to_i}") if File.exist?(uploads_path) @@ -91,7 +107,8 @@ def run_pipeline!(cmd_list, options = {}) regex = /^g?tar: \.: Cannot mkdir: No such file or directory$/ error = err_r.read - raise Backup::Uploads::Error, "Backup failed: #{error}" unless error =~ regex + + raise Zealot::Backup::UploadsError, "Backup failed: #{error}" unless error =~ regex end def gzip_args @@ -108,12 +125,16 @@ def gzip_args args.join(' ') end + def uploads_path + @uploads_path ||= Rails.root.join('public', 'uploads') + end + def backup_tarball - @backup_tarball ||= File.join(backup_path, 'uploads.tar.gz') + @backup_tarball ||= File.join(backup_path, FILENAME) end - def uploads_path - @uploads_path ||= Rails.root.join('public', 'uploads') + def backup_path + @backup_path ||= path end end end \ No newline at end of file From 050604a09d7a84d0d67303d57c3213e4edfbc1b4 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 8 Aug 2022 19:51:43 +0800 Subject: [PATCH 1092/2165] =?UTF-8?q?feat:=20=E5=AE=9A=E6=97=B6=E5=A4=87?= =?UTF-8?q?=E4=BB=BD=E8=AE=A1=E5=88=92=E5=8A=A0=E5=85=A5=20sidekiq?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 2 +- Gemfile.lock | 4 +- app/controllers/admin/backups_controller.rb | 3 +- app/jobs/application_job.rb | 2 + app/models/backup.rb | 41 +++++++++++++++++-- .../admin/backups/_job_complated.html.slim | 4 +- .../admin/backups/_job_unknown.html.slim | 2 +- .../admin/backups/_job_working.html.slim | 2 +- app/views/admin/backups/create.html.slim | 2 - app/views/admin/backups/destroy.html.slim | 2 - app/views/admin/backups/edit.html.slim | 2 +- app/views/admin/backups/index.html.slim | 2 +- app/views/admin/backups/show.html.slim | 2 +- config/initializers/sidekiq.rb | 1 + config/initializers/sidekiq_scheduled.rb | 4 ++ config/locales/zealot/en.yml | 22 +++++++++- config/locales/zealot/zh-CN.yml | 10 ++++- config/sidekiq.yml | 2 +- 18 files changed, 87 insertions(+), 22 deletions(-) delete mode 100644 app/views/admin/backups/create.html.slim delete mode 100644 app/views/admin/backups/destroy.html.slim diff --git a/Gemfile b/Gemfile index 0017875ef..c8c9bf3b5 100644 --- a/Gemfile +++ b/Gemfile @@ -87,7 +87,7 @@ gem 'rqrcode' gem 'activejob-status' gem 'sidekiq', '~> 6.5.4' gem 'sidekiq-scheduler', '~> 4.0.2' -gem 'sidekiq-failures', github: 'icyleaf/sidekiq-failures', ref: '6eaba5e6ca9cd8bf0f2aedcd118954a3de4084d8' # 等待新版本发布后移除 +gem 'sidekiq-failures', github: 'icyleaf/sidekiq-failures', ref: '2c3adef86fc39f0bb14315db918e3bba2c796c68' # 等待新版本发布后移除 # Assets ## jsbundling-rails, cssbundling-rails 仅生成配置文件到项目组,核心还是 package.json 中 build/build:css 部分。 diff --git a/Gemfile.lock b/Gemfile.lock index 0f738ee3d..d85e1f534 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,7 @@ GIT remote: https://github.com/icyleaf/sidekiq-failures - revision: 6eaba5e6ca9cd8bf0f2aedcd118954a3de4084d8 - ref: 6eaba5e6ca9cd8bf0f2aedcd118954a3de4084d8 + revision: 2c3adef86fc39f0bb14315db918e3bba2c796c68 + ref: 2c3adef86fc39f0bb14315db918e3bba2c796c68 specs: sidekiq-failures (1.0.1) sidekiq (>= 4.0.0) diff --git a/app/controllers/admin/backups_controller.rb b/app/controllers/admin/backups_controller.rb index 30b6d11ea..cd2a313cc 100644 --- a/app/controllers/admin/backups_controller.rb +++ b/app/controllers/admin/backups_controller.rb @@ -26,8 +26,7 @@ def disable def perform @backup.perform_job - notice = 'Backup was successfully scheduled to run in the background.' - redirect_back_or_to admin_backups_path, notice: notice + redirect_back_or_to admin_backups_path, notice: t('.success') end def download_archive diff --git a/app/jobs/application_job.rb b/app/jobs/application_job.rb index bae49f461..68bfa9a06 100644 --- a/app/jobs/application_job.rb +++ b/app/jobs/application_job.rb @@ -4,6 +4,8 @@ class ApplicationJob < ActiveJob::Base include ActionView::Helpers::TranslationHelper include ActiveJob::Status + sidekiq_options backtrace: Rails.env.development? ? true : 20 + protected def logger diff --git a/app/models/backup.rb b/app/models/backup.rb index f9fa83afc..131265809 100644 --- a/app/models/backup.rb +++ b/app/models/backup.rb @@ -3,6 +3,8 @@ require 'pathname' class Backup < ApplicationRecord + scope :enabled_jobs, -> { where(enabled: true) } + validates :key, uniqueness: true, on: :create validates :key, :schedule, presence: true validate :correct_schedule @@ -10,6 +12,8 @@ class Backup < ApplicationRecord before_save :strip_enabled_apps before_destroy :remove_storage + after_save :update_sidekiq_scheduler + def apps App.where(id: enabled_apps) end @@ -106,15 +110,32 @@ def failure end end + def schedule_job + data = [] + data << 'database' if enabled_database + data << "#{enabled_apps.size} apps" if enabled_apps + + { + 'description' => "Backup zealot #{data.join(' | ')} data", + 'cron' => Fugit.parse(schedule).to_cron_s, + 'class' => 'BackupJob', + 'queue' => :backup, + 'args' => id + } + end + + def schedule_key + @scheduler_key ||= "zealot_backup_#{key}" + end + private def correct_schedule parser = Fugit.do_parse(self.schedule) klass = parser.class - raise ArgumentError, "Not cron: #{klass}" unless klass == Fugit::Cron - rescue => e - logger.error "schedule parse error: #{e}" + raise ArgumentError, "Not match cron expression: #{klass}" unless klass == Fugit::Cron + rescue ArgumentError => e errors.add(:schedule, :invalid) end @@ -125,4 +146,18 @@ def strip_enabled_apps def remove_storage FileUtils.rm_rf(path) end + + def update_sidekiq_scheduler + Sidekiq.remove_schedule(schedule_key) + + if enabled + data = [] + data << 'database' if enabled_database + data << "#{enabled_apps.size} apps" if enabled_apps + + Sidekiq.set_schedule(schedule_key, schedule_job) + end + + SidekiqScheduler::Scheduler.instance.reload_schedule! + end end diff --git a/app/views/admin/backups/_job_complated.html.slim b/app/views/admin/backups/_job_complated.html.slim index 359c59c30..22308832d 100644 --- a/app/views/admin/backups/_job_complated.html.slim +++ b/app/views/admin/backups/_job_complated.html.slim @@ -1,10 +1,10 @@ tr td = file.name - td = file.created_at td = number_to_human_size(file.size) + td = file.created_at td .btn-group - = link_to archive_admin_backup_path(backup, key: file.basename), class: 'btn btn-sm', title: t('admin.backups.show.edit') do + = link_to archive_admin_backup_path(backup, key: file.basename), class: 'btn btn-sm', title: t('admin.backups.show.download') do i.fas.fa-download = link_to archive_admin_backup_path(backup, key: file.basename), class: 'btn btn-sm', title: t('admin.backups.show.destroy'), \ data: { turbo_method: :delete, turbo_confirm: t('.destroy_confirm', key: backup.key) } do diff --git a/app/views/admin/backups/_job_unknown.html.slim b/app/views/admin/backups/_job_unknown.html.slim index 13ef749a0..f39c14468 100644 --- a/app/views/admin/backups/_job_unknown.html.slim +++ b/app/views/admin/backups/_job_unknown.html.slim @@ -6,4 +6,4 @@ tr = link_to archive_admin_backup_path(backup, key: file.basename), class: 'btn btn-sm btn-danger', title: t('admin.backups.show.destroy'), \ data: { turbo_method: :delete, turbo_confirm: t('.destroy_confirm', key: backup.key) } do i.fas.fa-trash-alt - | Unknown happend! please report to zealot developer! \ No newline at end of file + = t('admin.backups.show.unknown_job_status') \ No newline at end of file diff --git a/app/views/admin/backups/_job_working.html.slim b/app/views/admin/backups/_job_working.html.slim index e68c6cc87..0802e453d 100644 --- a/app/views/admin/backups/_job_working.html.slim +++ b/app/views/admin/backups/_job_working.html.slim @@ -4,7 +4,7 @@ tr td .btn-group button.btn.btn-default.btn-sm - = file.status[:step] + = t('admin.backups.show.current_step', step: file.status[:step]) = link_to archive_admin_backup_path(backup, key: file.basename), class: 'btn btn-sm btn-danger', title: t('admin.backups.show.destroy'), \ data: { turbo_method: :delete, turbo_confirm: t('.destroy_confirm', key: backup.key) } do i.fas.fa-trash-alt \ No newline at end of file diff --git a/app/views/admin/backups/create.html.slim b/app/views/admin/backups/create.html.slim deleted file mode 100644 index 9dbb6779f..000000000 --- a/app/views/admin/backups/create.html.slim +++ /dev/null @@ -1,2 +0,0 @@ -h1 Admin::Backup#create -p Find me in app/views/admin/backup/create.html.slim diff --git a/app/views/admin/backups/destroy.html.slim b/app/views/admin/backups/destroy.html.slim deleted file mode 100644 index 9bc16a57d..000000000 --- a/app/views/admin/backups/destroy.html.slim +++ /dev/null @@ -1,2 +0,0 @@ -h1 Admin::Backup#destroy -p Find me in app/views/admin/backup/destroy.html.slim diff --git a/app/views/admin/backups/edit.html.slim b/app/views/admin/backups/edit.html.slim index 1ee404427..311458d0e 100644 --- a/app/views/admin/backups/edit.html.slim +++ b/app/views/admin/backups/edit.html.slim @@ -1,5 +1,5 @@ - content_for :title do - = @title + = t('.title', key: @backup.key) .row .col-md-12 diff --git a/app/views/admin/backups/index.html.slim b/app/views/admin/backups/index.html.slim index d27dd1d57..ac8674e74 100644 --- a/app/views/admin/backups/index.html.slim +++ b/app/views/admin/backups/index.html.slim @@ -26,7 +26,7 @@ tr td = link_to backup.key, admin_backup_path(backup) td = explan_scopes(backup) - td = backup.schedule + td = schedule_to_human(backup.schedule) td = next_schedule_to_human(backup.schedule) td == render 'admin/settings/switch_icon', value: backup.enabled diff --git a/app/views/admin/backups/show.html.slim b/app/views/admin/backups/show.html.slim index bb7f1dbc6..748d03321 100644 --- a/app/views/admin/backups/show.html.slim +++ b/app/views/admin/backups/show.html.slim @@ -12,8 +12,8 @@ table.table tr th = t('.filename') - th = t('.created_at') th = t('.size') + th = t('.created_at') th = t('.download') - @backup_files.each do |file| == render "job_#{file.current_status}", backup: @backup, file: file diff --git a/config/initializers/sidekiq.rb b/config/initializers/sidekiq.rb index 7e8cefe02..c9a42b842 100644 --- a/config/initializers/sidekiq.rb +++ b/config/initializers/sidekiq.rb @@ -7,6 +7,7 @@ logger_level = ::Logger::DEBUG if Rails.env.development? config.logger.level = logger_level + ## sidekiq-failurers # Max limits failures config.failures_max_count = 5000 end diff --git a/config/initializers/sidekiq_scheduled.rb b/config/initializers/sidekiq_scheduled.rb index 82647c6fa..f48a7ed53 100644 --- a/config/initializers/sidekiq_scheduled.rb +++ b/config/initializers/sidekiq_scheduled.rb @@ -38,6 +38,10 @@ def add_or_delete_schedule(remove, cron_jobs, key) add_or_delete_schedule(Setting.keep_uploads, cron_jobs, :clean_old_releases) add_or_delete_schedule(!Setting.demo_mode, cron_jobs, :reset_for_demo_mode) + Backup.enabled_jobs.each do |backup| + cron_jobs[backup.schedule_key] = backup.schedule_job + end + Sidekiq.schedule = cron_jobs SidekiqScheduler::Scheduler.instance.reload_schedule! end diff --git a/config/locales/zealot/en.yml b/config/locales/zealot/en.yml index ad851205c..275acc112 100644 --- a/config/locales/zealot/en.yml +++ b/config/locales/zealot/en.yml @@ -204,14 +204,34 @@ en: schedule: Schedule next_schedule_at: Next schedule at enabled: Enabled - run_now: Run now action: Action + run_now: Run now + edit: Edit + destroy: Destroy database: Database app: zero: '%{count} App' one: '%{count} App' other: '%{count} Apps' destroy_confirm: 'Confirm to destroy: %{key}?' + show: + title: '%{key} backup' + filename: Filename + created_at: Created at + size: Size + download: Download + destroy: Destroy + unknown_job_status: Unknown happend! Try again or report to zealot developer please. + current_step: Processing, current %{step} + not_found: + title: Not found any backup + body_html: Click %{link} to request one. + new: + title: New backup + edit: + title: Edit %{key} backup + perform: + success: Backup was successfully scheduled to run in the background. background_jobs: title: Background jobs diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index f4483a58c..5ffebfec5 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -200,8 +200,10 @@ zh-CN: schedule: 备份频率 next_schedule_at: 下次备份时间 enabled: 启用 - run_now: 现在运行 action: 操作 + run_now: 现在运行 + edit: 编辑 + destroy: 删除 database: 数据库 app: '%{count} 应用' destroy_confirm: 确认删除 %{key}? @@ -215,11 +217,17 @@ zh-CN: size: 大小 download: 下载 destroy: 删除 + unknown_job_status: 未知备份状态,建议删除后重试再报错请联系开发者 + current_step: 任务进行中,当前状态 %{step} not_found: title: 没有发现任何备份 body_html: 你可以%{link}创建一份 new: title: 新增备份 + edit: + title: 编辑 %{key} 备份计划 + perform: + success: 备份任务正在后台工作中 background_jobs: title: 后台任务 diff --git a/config/sidekiq.yml b/config/sidekiq.yml index 2b4a66791..40e21663f 100644 --- a/config/sidekiq.yml +++ b/config/sidekiq.yml @@ -3,7 +3,7 @@ :queues: - [app_parse, 5] - [webhook, 5] - - [report, 4] + - [backup, 4] - [mailers, 3] - [schedule, 2] - [default, 1] From 8adcfbf5457458acef06304149c3f0b66b67996f Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 9 Aug 2022 12:18:22 +0800 Subject: [PATCH 1093/2165] =?UTF-8?q?style:=20=E8=B0=83=E6=95=B4=E5=A4=87?= =?UTF-8?q?=E4=BB=BD=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/assets/stylesheets/admin/backups.scss | 15 +++++++++++++++ app/assets/stylesheets/admin/index.scss | 3 ++- app/views/admin/backups/_job_complated.html.slim | 4 ++-- app/views/admin/backups/index.html.slim | 6 +++--- app/views/admin/backups/show.html.slim | 2 +- app/views/admin/settings/_switch_icon.slim | 6 ++---- 6 files changed, 25 insertions(+), 11 deletions(-) create mode 100644 app/assets/stylesheets/admin/backups.scss diff --git a/app/assets/stylesheets/admin/backups.scss b/app/assets/stylesheets/admin/backups.scss new file mode 100644 index 000000000..9d00987a7 --- /dev/null +++ b/app/assets/stylesheets/admin/backups.scss @@ -0,0 +1,15 @@ +.backups { + .switch-icon { + padding-top: 6px; + } +} + +.dark-mode { + .backups, .backup { + .run-backup, .edit-backup, .download-backup { + i { + color: #fff + } + } + } +} \ No newline at end of file diff --git a/app/assets/stylesheets/admin/index.scss b/app/assets/stylesheets/admin/index.scss index 674a46ce1..e2da9e160 100644 --- a/app/assets/stylesheets/admin/index.scss +++ b/app/assets/stylesheets/admin/index.scss @@ -1,4 +1,5 @@ @import 'system_info'; @import 'web_hooks'; @import 'settings'; -@import 'logs'; \ No newline at end of file +@import 'logs'; +@import 'backups'; \ No newline at end of file diff --git a/app/views/admin/backups/_job_complated.html.slim b/app/views/admin/backups/_job_complated.html.slim index 22308832d..093f498a2 100644 --- a/app/views/admin/backups/_job_complated.html.slim +++ b/app/views/admin/backups/_job_complated.html.slim @@ -4,8 +4,8 @@ tr td = file.created_at td .btn-group - = link_to archive_admin_backup_path(backup, key: file.basename), class: 'btn btn-sm', title: t('admin.backups.show.download') do + = link_to archive_admin_backup_path(backup, key: file.basename), class: 'btn btn-sm download-backup', title: t('admin.backups.show.download') do i.fas.fa-download - = link_to archive_admin_backup_path(backup, key: file.basename), class: 'btn btn-sm', title: t('admin.backups.show.destroy'), \ + = link_to archive_admin_backup_path(backup, key: file.basename), class: 'btn btn-sm destroy-backup', title: t('admin.backups.show.destroy'), \ data: { turbo_method: :delete, turbo_confirm: t('.destroy_confirm', key: backup.key) } do i.fas.fa-trash-alt.text-danger \ No newline at end of file diff --git a/app/views/admin/backups/index.html.slim b/app/views/admin/backups/index.html.slim index ac8674e74..321fb89d0 100644 --- a/app/views/admin/backups/index.html.slim +++ b/app/views/admin/backups/index.html.slim @@ -14,7 +14,7 @@ - unless @backups.empty? .card .card-body.p-0 - table.table + table.table.backups tr th = t('.key') th = t('.scopes') @@ -32,9 +32,9 @@ == render 'admin/settings/switch_icon', value: backup.enabled td .btn-group - = button_to perform_admin_backup_path(backup), class: 'btn btn-sm', title: t('.run_now') do + = button_to perform_admin_backup_path(backup), class: 'btn btn-sm run-backup', title: t('.run_now') do i.fas.fa-play-circle - = link_to edit_admin_backup_path(backup), class: 'btn btn-sm', title: t('.edit') do + = link_to edit_admin_backup_path(backup), class: 'btn btn-sm edit-backup', title: t('.edit') do i.fas.fa-edit = link_to admin_backup_path(backup), class: 'btn btn-sm', title: t('.destroy'), \ data: { turbo_method: :delete, turbo_confirm: t('.destroy_confirm', key: backup.key) } do diff --git a/app/views/admin/backups/show.html.slim b/app/views/admin/backups/show.html.slim index 748d03321..33247b3f0 100644 --- a/app/views/admin/backups/show.html.slim +++ b/app/views/admin/backups/show.html.slim @@ -7,7 +7,7 @@ .row .col-md-12 - unless @backup_files.empty? - .card + .card.backup .card-body.p-0 table.table tr diff --git a/app/views/admin/settings/_switch_icon.slim b/app/views/admin/settings/_switch_icon.slim index f24a11a4a..4501a8089 100644 --- a/app/views/admin/settings/_switch_icon.slim +++ b/app/views/admin/settings/_switch_icon.slim @@ -1,6 +1,4 @@ - if value.is_a?(TrueClass) - span.text-success style="padding-right: 5px" - i.fa.fas.fa-check-circle + i.switch-icon.fa.fas.fa-check-circle.text-success.pr-1 - elsif value.is_a?(FalseClass) - span.text-danger style="padding-right: 5px" - i.fa.fas.fa-circle \ No newline at end of file + i.switch-icon.fa.fas.fa-circle.text-danger.pr-1 \ No newline at end of file From 3c7ddcd1da5510cbea6473d477b768ea828042f5 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 9 Aug 2022 15:16:53 +0800 Subject: [PATCH 1094/2165] =?UTF-8?q?feat:=20=E6=9C=80=E5=A4=A7=E5=A4=87?= =?UTF-8?q?=E4=BB=BD=E9=99=90=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/admin/backups_controller.rb | 16 +++++- app/javascript/channels/consumer.js | 4 +- app/javascript/channels/index.js | 10 ++-- .../channels/notification_channel.js | 44 ++++++++++----- app/jobs/application_job.rb | 23 +++++--- app/jobs/backup_job.rb | 55 +++++++++++++------ app/jobs/debug_file_teardown_job.rb | 29 +++++----- app/models/backup.rb | 4 +- app/views/admin/backups/show.html.slim | 10 ++-- config/locales/zealot/en.yml | 18 +++++- config/locales/zealot/zh-CN.yml | 21 +++++-- config/routes.rb | 1 - 12 files changed, 156 insertions(+), 79 deletions(-) diff --git a/app/controllers/admin/backups_controller.rb b/app/controllers/admin/backups_controller.rb index cd2a313cc..acc72c103 100644 --- a/app/controllers/admin/backups_controller.rb +++ b/app/controllers/admin/backups_controller.rb @@ -24,9 +24,19 @@ def disable end def perform - @backup.perform_job + logger.debug @backup.max_keeps + logger.debug @backup.backup_files + if @backup.max_keeps.zero? || @backup.backup_files.size < @backup.max_keeps + alert = t('active_job.backup.failures.max_keeps_limited', + key: @backup.key, + count: @backup.max_keeps + ) + + return redirect_back_or_to admin_backups_path, alert: alert + end - redirect_back_or_to admin_backups_path, notice: t('.success') + # @backup.perform_job(current_user.id) + # redirect_back_or_to admin_backups_path, notice: t('.success') end def download_archive @@ -38,7 +48,7 @@ def download_archive def destroy_archive @backup.destroy_directory(@backup_dir) - redirect_to admin_backup_path(@backup), status: :see_other, notice: t('.file_destroy_success') + redirect_to admin_backup_path(@backup), status: :see_other, notice: t('.success') end def new diff --git a/app/javascript/channels/consumer.js b/app/javascript/channels/consumer.js index a81e10aa8..fe1a2eade 100644 --- a/app/javascript/channels/consumer.js +++ b/app/javascript/channels/consumer.js @@ -1,6 +1,6 @@ // Action Cable provides the framework to deal with WebSockets in Rails. // You can generate new channels where WebSocket features live using the `bin/rails generate channel` command. -import { createConsumer } from "@rails/actioncable"; +import { createConsumer } from "@rails/actioncable" -export default createConsumer(); \ No newline at end of file +export default createConsumer() \ No newline at end of file diff --git a/app/javascript/channels/index.js b/app/javascript/channels/index.js index db4cd912d..1a06aa8cb 100644 --- a/app/javascript/channels/index.js +++ b/app/javascript/channels/index.js @@ -1,8 +1,8 @@ -// Load all the channels within this directory and all subdirectories. -// Channel files must be named *_channel.js. +import * as ActionCable from "@rails/actioncable" +import { Zealot } from "../controllers/zealot" -// Enable action cable logger -// import * as ActionCable from '@rails/actioncable' -// ActionCable.logger.enabled = true +if (Zealot.isDevelopment) { + ActionCable.logger.enabled = true +} import "./notification_channel" \ No newline at end of file diff --git a/app/javascript/channels/notification_channel.js b/app/javascript/channels/notification_channel.js index 37dd555ab..e81385fdd 100644 --- a/app/javascript/channels/notification_channel.js +++ b/app/javascript/channels/notification_channel.js @@ -1,27 +1,41 @@ import consumer from "./consumer" +import { Zealot } from "../controllers/zealot" +import JQuery from 'jquery' const notificationChannel = consumer.subscriptions.create("NotificationChannel", { received(data) { - var color = 'success'; - var icon = 'fas fa-check'; - if (data.status != 'success') { - icon = 'fas fa-exclamation-triangle'; - color = 'danger'; + if (Zealot.isDevelopment) { + console.debug("Received data", data) } - $("#notifications").prepend( - '

      ' + - '' + - '

      ' + - '' + data.message + '

      ' - ); + if (Object.keys(data).length === 0) { return } + + var color = "success" + var icon = "fas fa-check" + if (data.status != "success") { + icon = "fas fa-exclamation-triangle" + color = "danger" + } + + JQuery("#notifications").prepend( + "
      " + + "" + + "

      " + + "" + data.message + "

      " + ) if (data.refresh_page) { setTimeout(() => { - location.reload(); - }, 3000); + location.reload() + }, 2000) + } else if (data.redirect_page) { + if (window.location.href !== data.redirect_page ) { + setTimeout(() => { + window.location.href = data.redirect_page + }, 2000) + } } } -}); +}) -export default notificationChannel; \ No newline at end of file +export default notificationChannel \ No newline at end of file diff --git a/app/jobs/application_job.rb b/app/jobs/application_job.rb index 68bfa9a06..9388fc1d3 100644 --- a/app/jobs/application_job.rb +++ b/app/jobs/application_job.rb @@ -1,6 +1,7 @@ # frozen_string_literal: true class ApplicationJob < ActiveJob::Base + include Rails.application.routes.url_helpers include ActionView::Helpers::TranslationHelper include ActiveJob::Status @@ -12,14 +13,22 @@ def logger @logger ||= Sidekiq.logger end - def notification_user(type:, status:, user_id:, message:) - ActionCable.server.broadcast("notification:#{user_id}", { + def notificate_success(**options) + notification_user(**options.merge(status: 'success')) + end + + def notificate_failure(**options) + notification_user(**options.merge(status: 'failure')) + end + + def notification_user(type:, status:, message:, user_id:, **options) + return if user_id.blank? + + bordcast_key = "notification:#{user_id}" + ActionCable.server.broadcast(bordcast_key, options.merge( type: type, status: status, - html: "
      - - #{t('web_hooks.messages.done')} -
      " - }) + message: message + )) end end diff --git a/app/jobs/backup_job.rb b/app/jobs/backup_job.rb index a3fcc5c1c..61a1f51f3 100644 --- a/app/jobs/backup_job.rb +++ b/app/jobs/backup_job.rb @@ -6,7 +6,19 @@ class BackupJob < ApplicationJob sidekiq_options retry: false queue_as :schedule - def perform(backup_id) + class Error < StandardError; end + class MaxKeepsLimitedError < Error; end + + rescue_from(BackupJob::MaxKeepsLimitedError) do + notificate_failure( + user_id: @user_id, + type: 'backup', + message: t('active_job.backup.failures.max_keeps_limited', key: @backup.key, count: @backup.max_keeps) + ) + end + + def perform(backup_id, user_id = nil) + @user_id = user_id @backup = Backup.find(backup_id) @manager = Zealot::Backup::Manager.new(backup_path, logger) @@ -22,16 +34,7 @@ def perform(backup_id) dump_apps pack cleanup - - # rescue => e - # status.update(step: "throw_error") - # # Cause issues: - # # 1. write directory permissions - # # 2. not enough disk space - # # 3. missing backup cli commands (pg_dump, gzip etc) - # message = "Failed to create backup job, because #{e.message}" - # logger.error message - # logger.error e.backtrace.join("\n") + notification ensure update_status('ensure') @manager&.cleanup @@ -41,12 +44,10 @@ def perform(backup_id) def prepare update_status(__method__) - @manager.precheck(false) + create_redis_cache + backup_max_keeps_check - # Make sure storage it by direct execute this job - unless redis.sismember(@backup.cache_job_id_key, job_id) - redis.sadd(@backup.cache_job_id_key, job_id) - end + @manager.precheck(false) FileUtils.mkdir_p(backup_path) end @@ -77,6 +78,28 @@ def cleanup clean_redis_cache end + def notification + notificate_success( + user_id: @user_id, + type: 'backup', + redirect_page: url_for(controller: 'admin/backups', action: 'show', id: @backup.id), + message: t('active_job.backup.success', key: @backup.key) + ) + end + + def backup_max_keeps_check + return if @backup.max_keeps < 0 + raise MaxKeepsLimitedError, 'Max keeps is zero, can not backup' if @backup.max_keeps.zero? + raise MaxKeepsLimitedError, "Max keeps limit to backup: #{@backup.max_keeps}" if @backup.backup_files.size < @backup.max_keeps + end + + def create_redis_cache + # Make sure storage it by direct execute this job + unless redis.sismember(@backup.cache_job_id_key, job_id) + redis.sadd(@backup.cache_job_id_key, job_id) + end + end + def clean_redis_cache if redis.sismember(@backup.cache_job_id_key, job_id) redis.srem(@backup.cache_job_id_key, job_id) diff --git a/app/jobs/debug_file_teardown_job.rb b/app/jobs/debug_file_teardown_job.rb index d429c1802..e9e9e9d76 100644 --- a/app/jobs/debug_file_teardown_job.rb +++ b/app/jobs/debug_file_teardown_job.rb @@ -15,27 +15,24 @@ def perform(debug_file, user_id = nil) parse_proguard(debug_file, parser) end - # 清理掉临时生成的文件 - parser.clear! - - notification_user(debug_file, user_id) + notificate_success( + user_id: user_id, + type: 'teardown', + refresh_page: true, + message: t('active_job.debug_file.success', id: debug_file.id) + ) rescue AppInfo::NotFoundError - logger.info("Can not found debug file #{debug_file.id}, may be removed.") + notificate_failure( + user_id: user_id, + type: 'teardown', + message: t('active_job.debug_file.failures.not_found_file', id: debug_file.id) + ) + ensure + parser&.clear! end private - def notification_user(debug_file, user_id) - return if user_id.blank? - - ActionCable.server.broadcast("notification:#{user_id}", { - type: 'teardown', - status: 'success', - refresh_page: true, - message: t('web_hooks.messages.parse_done_and_refreshing', id: debug_file.id) - }) - end - def parse_dsym(debug_file, parser) parser.machos.each do |macho| debug_file.metadata.find_or_create_by(uuid: macho.uuid) do |metadata| diff --git a/app/models/backup.rb b/app/models/backup.rb index 131265809..9de7fe50b 100644 --- a/app/models/backup.rb +++ b/app/models/backup.rb @@ -18,8 +18,8 @@ def apps App.where(id: enabled_apps) end - def perform_job - job = BackupJob.perform_later(id) + def perform_job(user_id) + job = BackupJob.perform_later(id, user_id) Rails.cache.redis.sadd(cache_job_id_key, job.job_id) end diff --git a/app/views/admin/backups/show.html.slim b/app/views/admin/backups/show.html.slim index 33247b3f0..a46a34885 100644 --- a/app/views/admin/backups/show.html.slim +++ b/app/views/admin/backups/show.html.slim @@ -4,6 +4,11 @@ - content_for :section_title do = t('.title', key: @backup.key) +- content_for :section_rightpanel do + = button_to perform_admin_backup_path(@backup), class: 'btn btn-icon bg-green', title: t('.run_now') do + i.fas.fa-play-circle + = t('admin.backups.index.run_now') + .row .col-md-12 - unless @backup_files.empty? @@ -22,7 +27,4 @@ .card-header.card-border h3.card-title = t('.not_found.title') .card-body - = t('.not_found.body_html', \ - link: button_to(raw(' new a backup. show: title: '%{key} backup' filename: Filename @@ -224,8 +227,8 @@ en: unknown_job_status: Unknown happend! Try again or report to zealot developer please. current_step: Processing, current %{step} not_found: - title: Not found any backup - body_html: Click %{link} to request one. + title: Not found any backup file + body_html: Click the button to new a backup file. new: title: New backup edit: @@ -628,7 +631,6 @@ en: download_events: '%{name} %{version} downloaded' changelog_events: '%{name} %{version} update the changelog' unknown_events: '%{name} triggered unkown event: %{event}' - parse_done: Debug file (%{id}) pare done, Refresh the web page please. errors: not_found_file: 'Not found debug file: %{message}' failed_detect_file_type: Failed to detect file type @@ -810,6 +812,16 @@ en: homepage_title: homepage unknown_file_type: Unkown file type to parse + active_job: + debug_file: + success: Debug file (%{id}) pare done, Refresh the web page please. + failures: + not_found_file: Debug file is missing with unknown issue. + backup: + success: '%{key} backup created successfully.' + failures: + max_keeps_limited: '%{key} backup exceed the set maximum limit value: %{count}.' + activerecord: success: create: Created %{key} successfully diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index 5ffebfec5..cffda9806 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -201,7 +201,7 @@ zh-CN: next_schedule_at: 下次备份时间 enabled: 启用 action: 操作 - run_now: 现在运行 + run_now: 生成备份 edit: 编辑 destroy: 删除 database: 数据库 @@ -209,7 +209,7 @@ zh-CN: destroy_confirm: 确认删除 %{key}? not_found: title: 没有发现任何备份计划 - body_html: 点击右上角的 新增备份。 + body_html: 点击右上角的 生成备份文件。 show: title: '%{key} 备份计划' filename: 文件名 @@ -220,14 +220,16 @@ zh-CN: unknown_job_status: 未知备份状态,建议删除后重试再报错请联系开发者 current_step: 任务进行中,当前状态 %{step} not_found: - title: 没有发现任何备份 - body_html: 你可以%{link}创建一份 + title: 没有发现任何备份文件 + body_html: 点击右上角的 执行备份。 new: title: 新增备份 edit: title: 编辑 %{key} 备份计划 perform: success: 备份任务正在后台工作中 + destroy_archive: + success: 备份文件成功删除 background_jobs: title: 后台任务 @@ -621,7 +623,6 @@ zh-CN: download_events: '%{name} %{version} 版本被下载' changelog_events: '%{name} %{version} 版本更新了变更日志' unknown_events: '%{name} 触发了未知事件: %{event}' - parse_done: 调试文件 %{id} 解析完成,需要手动刷新页面才能看到哟 errors: not_found_file: '无法找到解包文件: %{message}' failed_detect_file_type: 无法识别应用类型 @@ -814,6 +815,16 @@ zh-CN: homepage_title: 首页 unknown_file_type: 无法正常解析应用的类型,目前仅支持 iOS、Android 和使用 Zip 压缩的 macOS App + active_job: + debug_file: + success: 调试文件 %{id} 解析完成,需要手动刷新页面才能看到哟 + failures: + not_found_file: 遇到玄学问题造成无法找到调试文件,解析失败 + backup: + success: '%{key} 备份创建完成' + failures: + max_keeps_limited: '%{key} 备份超出设置的最大限制值:%{count}' + activerecord: success: create: "%{key}创建成功" diff --git a/config/routes.rb b/config/routes.rb index 1e8d01a68..17450c5f3 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -43,7 +43,6 @@ end end - # TODO: remove whole channels module scope module: :channels do resources :versions, only: %i[index show], id: /(.+)+/ resources :branches, only: %i[index] From 057033e1df7082c51675e1ed184879d5ddd2ae9b Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 9 Aug 2022 16:54:40 +0800 Subject: [PATCH 1095/2165] =?UTF-8?q?feat:=20=E5=A4=87=E4=BB=BD=E9=A2=91?= =?UTF-8?q?=E7=8E=87=E6=94=AF=E6=8C=81=E5=8A=A8=E6=80=81=E8=A7=A3=E6=9E=90?= =?UTF-8?q?=E8=BE=85=E5=8A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/assets/stylesheets/admin/backups.scss | 8 ++++- app/assets/stylesheets/layout.scss | 6 ++++ app/controllers/admin/backups_controller.rb | 29 +++++---------- .../controllers/admin/cron_controller.js | 36 +++++++++++++++++++ app/javascript/controllers/admin/index.js | 5 ++- app/views/admin/backups/_form.html.slim | 24 ++++++++++--- config/locales/simple_form/simple_form.en.yml | 6 ++++ .../locales/simple_form/simple_form.zh-CN.yml | 10 ++++-- config/locales/zealot/en.yml | 6 ++++ config/locales/zealot/zh-CN.yml | 4 ++- config/routes.rb | 8 ++--- 11 files changed, 108 insertions(+), 34 deletions(-) create mode 100644 app/javascript/controllers/admin/cron_controller.js diff --git a/app/assets/stylesheets/admin/backups.scss b/app/assets/stylesheets/admin/backups.scss index 9d00987a7..e2f2910e5 100644 --- a/app/assets/stylesheets/admin/backups.scss +++ b/app/assets/stylesheets/admin/backups.scss @@ -4,11 +4,17 @@ } } +.edit_backup, .new_backup { + .form-control:disabled, .form-control[readonly] { + color: #999; + } +} + .dark-mode { .backups, .backup { .run-backup, .edit-backup, .download-backup { i { - color: #fff + color: #fff; } } } diff --git a/app/assets/stylesheets/layout.scss b/app/assets/stylesheets/layout.scss index 236a272bd..72f4256ee 100644 --- a/app/assets/stylesheets/layout.scss +++ b/app/assets/stylesheets/layout.scss @@ -90,4 +90,10 @@ i.icon { .card-header { border-color: #6c6b6b; } + + .form-control:disabled, .form-control[readonly] { + border-color: #505356 !important; + background-color: #393a3c !important; + color: #999 !important; + } } \ No newline at end of file diff --git a/app/controllers/admin/backups_controller.rb b/app/controllers/admin/backups_controller.rb index acc72c103..a4decd523 100644 --- a/app/controllers/admin/backups_controller.rb +++ b/app/controllers/admin/backups_controller.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true class Admin::BackupsController < ApplicationController - before_action :set_backup, except: %i[ index new create ] + before_action :set_backup, except: %i[ index new create parse_schedule ] before_action :set_backup_file, only: %i[ download_archive destroy_archive ] def index @@ -82,28 +82,17 @@ def destroy def parse_schedule parser = Fugit.parse(params[:q]) - - if parser - body = if parser.is_a?(Fugit::Cron) - { - schedule: true, - cron: parser.to_cron_s, - next_time: parser.next_time.to_s - } - else - { - schedule: false, - run_once: parser.to_s - } - end - - return render json: body, status: 200 + if parser && parser.is_a?(Fugit::Cron) + return render json: { + schedule: true, + cron: parser.to_cron_s, + next_time: parser.next_time.to_s + }, status: 200 end render json: { - error: 'Can not parse', - q: params[:q] - }, status: 401 + error: t('.invaild_expression') + }, status: 409 end private diff --git a/app/javascript/controllers/admin/cron_controller.js b/app/javascript/controllers/admin/cron_controller.js new file mode 100644 index 000000000..b4aaa2df5 --- /dev/null +++ b/app/javascript/controllers/admin/cron_controller.js @@ -0,0 +1,36 @@ +import { Controller } from "@hotwired/stimulus" +import { Zealot } from "../zealot" + +PARSE_URI = 'admin/backups/parse_schedule' + +export default class extends Controller { + static targets = [ "source" ] + + parse(event) { + this.sourceTarget.value = 'N/A' + event.target.classList.remove('is-valid') + event.target.classList.remove('is-invalid') + + const requestUrl = Zealot.rootUrl + PARSE_URI + '?q=' + encodeURIComponent(event.target.value) + fetch(requestUrl) + .then(response => { + const body = response.json() + if (!response.ok) { + throw new Error(body.error) + } + return body + }) + .then((body) => { + event.target.classList.remove('is-invalid') + event.target.classList.add('is-valid') + const next_schedule_at = body.next_time + this.sourceTarget.value = next_schedule_at + }) + .catch((_) => { + event.target.classList.remove('is-valid') + event.target.classList.add('is-invalid') + this.sourceTarget.value = 'N/A' + return false + }) + } +} \ No newline at end of file diff --git a/app/javascript/controllers/admin/index.js b/app/javascript/controllers/admin/index.js index 61936727b..4f65c21bb 100644 --- a/app/javascript/controllers/admin/index.js +++ b/app/javascript/controllers/admin/index.js @@ -7,4 +7,7 @@ import ServiceController from "./service_controller" application.register("admin-service", ServiceController) import LogsController from "./logs_controller" -application.register("admin-logs", LogsController) \ No newline at end of file +application.register("admin-logs", LogsController) + +import CronController from "./cron_controller" +application.register("admin-cron", CronController) \ No newline at end of file diff --git a/app/views/admin/backups/_form.html.slim b/app/views/admin/backups/_form.html.slim index d840426b6..8825f91b7 100644 --- a/app/views/admin/backups/_form.html.slim +++ b/app/views/admin/backups/_form.html.slim @@ -1,18 +1,34 @@ = simple_form_for([:admin, @backup]) do |f| - .card + .card[ + data-controller="admin-cron" + ] .card-header - h3.card-title 备份配置 + h3.card-title = t('simple_form.labels.backup.general') .card-body = f.error_notification = f.input :enabled = f.input :key, required: true - = f.input :schedule, required: true = f.input :max_keeps, required: true / = f.input :notification .card-header.pt-0 - h3.card-title 备份范围 + h3.card-title 定时任务 + .card-body + = f.input :schedule, required: true, input_html: { data: { action: 'admin-cron#parse' } } + + .form-group.string.required.backup_schedule.form-group-valid + label.string.required for="backup_schedule" + = t('simple_form.labels.backup.next_schedule_at') + input.form-control[ + type="text" + data-admin-cron-target="source" + disabled="true" + value="#{@backup.schedule ? next_schedule_to_human(@backup.schedule) : ''}" + ] + + .card-header.pt-0 + h3.card-title = t('simple_form.labels.backup.schedule_settings') .card-body = f.input :enabled_apps, as: :check_boxes, collection: all_apps, checked: @backup.enabled_apps = f.label :enabled_database diff --git a/config/locales/simple_form/simple_form.en.yml b/config/locales/simple_form/simple_form.en.yml index 8474778e6..1f86d5707 100644 --- a/config/locales/simple_form/simple_form.en.yml +++ b/config/locales/simple_form/simple_form.en.yml @@ -95,6 +95,12 @@ en: file: Require a zipped file of debug file. for example, dSYM in iOS, proguard in Android. setting: value: Use JSON standard format to edit, otherwise it will fail to save. + backup: + key: Unique backup key + schedule: | + Expression supportEnglish Natural Language or + Cron. + max_keeps: Remove old backups if reach max keeps number, -1 means no limited, 0 never backup. placeholders: release: diff --git a/config/locales/simple_form/simple_form.zh-CN.yml b/config/locales/simple_form/simple_form.zh-CN.yml index 0acfb1ee6..6e2be9b47 100644 --- a/config/locales/simple_form/simple_form.zh-CN.yml +++ b/config/locales/simple_form/simple_form.zh-CN.yml @@ -66,13 +66,17 @@ zh-CN: name: 注册主体 team_id: 标识符 backup: + general: 备份配置 key: 备份名称 schedule: 备份频率 + next_schedule_at: 下次执行时间 enabled_database: 备份数据库 database_switch: 启用 enabled_apps: 备份应用 max_keeps: 最大保留数 enabled: 启用 + schedule_settings: 备份范围 + hints: defaults: @@ -106,9 +110,9 @@ zh-CN: backup: key: 名称必须是唯一,不可和其他备份重复 schedule: | - 定时执行备份计划,支持英语语义或 - Cron。暂不支持单次定点执行 - max_keeps: 备份达到设置上限会删除最早的文件,不限制设置 -1 + 表达式支持英语语义或 + Cron,暂不支持单次执行 + max_keeps: 备份达到设置上限会删除最早的文件,-1 不限制设置;0 不可备份 placeholders: release: diff --git a/config/locales/zealot/en.yml b/config/locales/zealot/en.yml index 8d99be35e..1915a3e83 100644 --- a/config/locales/zealot/en.yml +++ b/config/locales/zealot/en.yml @@ -235,6 +235,8 @@ en: title: Edit %{key} backup perform: success: Backup was successfully scheduled to run in the background. + parse_schedule: + invaild_expression: Invaild expression background_jobs: title: Background jobs @@ -838,6 +840,10 @@ en: blank: Choose a zipped file with supported type checksum: taken: File exists, cannot be uploaded + backup: + attributes: + schedule: + invalid: 表达式格式错误 user_mailer: omniauth_welcome_email: diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index cffda9806..e9de970e9 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -230,6 +230,8 @@ zh-CN: success: 备份任务正在后台工作中 destroy_archive: success: 备份文件成功删除 + parse_schedule: + invaild_expression: 表达式无法解析 background_jobs: title: 后台任务 @@ -846,7 +848,7 @@ zh-CN: backup: attributes: schedule: - invalid: 频率无法正常解析 + invalid: 表达式格式错误 user_mailer: omniauth_welcome_email: diff --git a/config/routes.rb b/config/routes.rb index 17450c5f3..bce59d7a9 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -123,6 +123,10 @@ end resources :backups do + collection do + get :parse_schedule + end + member do post :enable post :disable @@ -130,10 +134,6 @@ get :archive, action: :download_archive delete :archive, action: :destroy_archive end - - collection do - get :parse_schedule - end end namespace :service do From 8414aea393b312f8554a31f04b9685b2d84759ec Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 9 Aug 2022 17:39:54 +0800 Subject: [PATCH 1096/2165] =?UTF-8?q?feat:=20=E5=A4=87=E4=BB=BD=E4=BF=9D?= =?UTF-8?q?=E7=95=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/assets/stylesheets/admin/backups.scss | 15 ++- app/assets/stylesheets/admin/index.scss | 2 +- app/assets/stylesheets/admin/logs.scss | 2 +- app/assets/stylesheets/admin/settings.scss | 2 +- app/assets/stylesheets/admin/system_info.scss | 2 +- app/assets/stylesheets/admin/web_hooks.scss | 2 +- app/assets/stylesheets/layout.scss | 3 +- app/controllers/admin/backups_controller.rb | 8 +- .../channels/notification_channel.js | 14 ++- .../controllers/admin/cron_controller.js | 79 +++++++----- app/jobs/backup_job.rb | 8 +- app/models/setting.rb | 2 +- app/views/admin/backups/_form.html.slim | 1 + config/locales/simple_form/simple_form.en.yml | 12 ++ .../locales/simple_form/simple_form.zh-CN.yml | 2 +- config/locales/zealot/en.yml | 2 +- config/locales/zealot/zh-CN.yml | 2 +- lib/zealot/backup/manager.rb | 112 ++++++------------ 18 files changed, 139 insertions(+), 131 deletions(-) diff --git a/app/assets/stylesheets/admin/backups.scss b/app/assets/stylesheets/admin/backups.scss index e2f2910e5..d0bf6f11d 100644 --- a/app/assets/stylesheets/admin/backups.scss +++ b/app/assets/stylesheets/admin/backups.scss @@ -4,18 +4,23 @@ } } -.edit_backup, .new_backup { - .form-control:disabled, .form-control[readonly] { +.edit_backup, +.new_backup { + .form-control:disabled, + .form-control[readonly] { color: #999; } } .dark-mode { - .backups, .backup { - .run-backup, .edit-backup, .download-backup { + .backups, + .backup { + .run-backup, + .edit-backup, + .download-backup { i { color: #fff; } } } -} \ No newline at end of file +} diff --git a/app/assets/stylesheets/admin/index.scss b/app/assets/stylesheets/admin/index.scss index e2da9e160..32be14681 100644 --- a/app/assets/stylesheets/admin/index.scss +++ b/app/assets/stylesheets/admin/index.scss @@ -2,4 +2,4 @@ @import 'web_hooks'; @import 'settings'; @import 'logs'; -@import 'backups'; \ No newline at end of file +@import 'backups'; diff --git a/app/assets/stylesheets/admin/logs.scss b/app/assets/stylesheets/admin/logs.scss index 6bdde2af8..fff33de3f 100644 --- a/app/assets/stylesheets/admin/logs.scss +++ b/app/assets/stylesheets/admin/logs.scss @@ -4,4 +4,4 @@ pre { color: #dedede; } -} \ No newline at end of file +} diff --git a/app/assets/stylesheets/admin/settings.scss b/app/assets/stylesheets/admin/settings.scss index 6f96b3ccc..a9ffb0440 100644 --- a/app/assets/stylesheets/admin/settings.scss +++ b/app/assets/stylesheets/admin/settings.scss @@ -74,4 +74,4 @@ color: gray; } } -} \ No newline at end of file +} diff --git a/app/assets/stylesheets/admin/system_info.scss b/app/assets/stylesheets/admin/system_info.scss index 53a48b4da..b5e647435 100644 --- a/app/assets/stylesheets/admin/system_info.scss +++ b/app/assets/stylesheets/admin/system_info.scss @@ -57,4 +57,4 @@ dl.system-info { .dark-mode dl.system-info dd pre { background-color: #2f2936; color: #f7f8f9; -} \ No newline at end of file +} diff --git a/app/assets/stylesheets/admin/web_hooks.scss b/app/assets/stylesheets/admin/web_hooks.scss index 34ba34bb3..ea974aabd 100644 --- a/app/assets/stylesheets/admin/web_hooks.scss +++ b/app/assets/stylesheets/admin/web_hooks.scss @@ -7,4 +7,4 @@ color: #585858; text-shadow: none; } -} \ No newline at end of file +} diff --git a/app/assets/stylesheets/layout.scss b/app/assets/stylesheets/layout.scss index 72f4256ee..43483d15c 100644 --- a/app/assets/stylesheets/layout.scss +++ b/app/assets/stylesheets/layout.scss @@ -91,7 +91,8 @@ i.icon { border-color: #6c6b6b; } - .form-control:disabled, .form-control[readonly] { + .form-control:disabled, + .form-control[readonly] { border-color: #505356 !important; background-color: #393a3c !important; color: #999 !important; diff --git a/app/controllers/admin/backups_controller.rb b/app/controllers/admin/backups_controller.rb index a4decd523..e9fe4b08a 100644 --- a/app/controllers/admin/backups_controller.rb +++ b/app/controllers/admin/backups_controller.rb @@ -24,9 +24,7 @@ def disable end def perform - logger.debug @backup.max_keeps - logger.debug @backup.backup_files - if @backup.max_keeps.zero? || @backup.backup_files.size < @backup.max_keeps + if @backup.max_keeps.zero? alert = t('active_job.backup.failures.max_keeps_limited', key: @backup.key, count: @backup.max_keeps @@ -35,8 +33,8 @@ def perform return redirect_back_or_to admin_backups_path, alert: alert end - # @backup.perform_job(current_user.id) - # redirect_back_or_to admin_backups_path, notice: t('.success') + @backup.perform_job(current_user.id) + redirect_back_or_to admin_backups_path, notice: t('.success') end def download_archive diff --git a/app/javascript/channels/notification_channel.js b/app/javascript/channels/notification_channel.js index e81385fdd..17fee19db 100644 --- a/app/javascript/channels/notification_channel.js +++ b/app/javascript/channels/notification_channel.js @@ -1,6 +1,6 @@ import consumer from "./consumer" import { Zealot } from "../controllers/zealot" -import JQuery from 'jquery' +import JQuery from "jquery" const notificationChannel = consumer.subscriptions.create("NotificationChannel", { received(data) { @@ -12,7 +12,7 @@ const notificationChannel = consumer.subscriptions.create("NotificationChannel", var color = "success" var icon = "fas fa-check" - if (data.status != "success") { + if (data.status !== "success") { icon = "fas fa-exclamation-triangle" color = "danger" } @@ -29,11 +29,13 @@ const notificationChannel = consumer.subscriptions.create("NotificationChannel", location.reload() }, 2000) } else if (data.redirect_page) { - if (window.location.href !== data.redirect_page ) { - setTimeout(() => { + setTimeout(() => { + if (window.location.href !== data.redirect_page ) { window.location.href = data.redirect_page - }, 2000) - } + } else { + location.reload() + } + }, 2000) } } }) diff --git a/app/javascript/controllers/admin/cron_controller.js b/app/javascript/controllers/admin/cron_controller.js index b4aaa2df5..086f271b3 100644 --- a/app/javascript/controllers/admin/cron_controller.js +++ b/app/javascript/controllers/admin/cron_controller.js @@ -1,36 +1,57 @@ import { Controller } from "@hotwired/stimulus" import { Zealot } from "../zealot" -PARSE_URI = 'admin/backups/parse_schedule' +const PARSE_URI = "admin/backups/parse_schedule" export default class extends Controller { - static targets = [ "source" ] - - parse(event) { - this.sourceTarget.value = 'N/A' - event.target.classList.remove('is-valid') - event.target.classList.remove('is-invalid') - - const requestUrl = Zealot.rootUrl + PARSE_URI + '?q=' + encodeURIComponent(event.target.value) - fetch(requestUrl) - .then(response => { - const body = response.json() - if (!response.ok) { - throw new Error(body.error) - } - return body - }) - .then((body) => { - event.target.classList.remove('is-invalid') - event.target.classList.add('is-valid') - const next_schedule_at = body.next_time - this.sourceTarget.value = next_schedule_at - }) - .catch((_) => { - event.target.classList.remove('is-valid') - event.target.classList.add('is-invalid') - this.sourceTarget.value = 'N/A' - return false - }) + static targets = ["source"] + static values = { + parsing: String + } + + async parse(event) { + this.sourceTarget.value = this.parsingValue + + let inputTarget = event.target + this.resetInput(inputTarget) + + let requestUrl = Zealot.rootUrl + PARSE_URI + "?q=" + encodeURIComponent(event.target.value) + let response = await fetch(requestUrl) + let body = await response.json() + + if (response.ok) { + this.renderSuccess(event.target, body) + } else { + this.renderFailure(event.target, body) + } + } + + renderSuccess(inputTarget, body) { + let nextScheduleAt = body.next_time + + this.switchValid(inputTarget) + this.sourceTarget.value = nextScheduleAt + } + + renderFailure(inputTarget, body) { + let message = body.error + + this.switchInvalid(inputTarget) + this.sourceTarget.value = message + } + + switchInvalid(inputTarget) { + inputTarget.classList.remove("is-valid") + inputTarget.classList.add("is-invalid") + } + + switchValid(inputTarget) { + inputTarget.classList.remove("is-invalid") + inputTarget.classList.add("is-valid") + } + + resetInput(inputTarget) { + inputTarget.classList.remove("is-valid") + inputTarget.classList.remove("is-invalid") } } \ No newline at end of file diff --git a/app/jobs/backup_job.rb b/app/jobs/backup_job.rb index 61a1f51f3..345278a6e 100644 --- a/app/jobs/backup_job.rb +++ b/app/jobs/backup_job.rb @@ -13,7 +13,7 @@ class MaxKeepsLimitedError < Error; end notificate_failure( user_id: @user_id, type: 'backup', - message: t('active_job.backup.failures.max_keeps_limited', key: @backup.key, count: @backup.max_keeps) + message: t('active_job.backup.failures.max_keeps_limited', key: @backup.key) ) end @@ -33,6 +33,7 @@ def perform(backup_id, user_id = nil) dump_database dump_apps pack + remove_old cleanup notification ensure @@ -72,6 +73,10 @@ def pack @manager.pack end + def remove_old + @manager.remove_old(@backup.max_keeps) + end + def cleanup update_status(__method__) @@ -90,7 +95,6 @@ def notification def backup_max_keeps_check return if @backup.max_keeps < 0 raise MaxKeepsLimitedError, 'Max keeps is zero, can not backup' if @backup.max_keeps.zero? - raise MaxKeepsLimitedError, "Max keeps limit to backup: #{@backup.max_keeps}" if @backup.backup_files.size < @backup.max_keeps end def create_redis_cache diff --git a/app/models/setting.rb b/app/models/setting.rb index 8628a9068..a5eb2c85d 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -101,7 +101,7 @@ class Setting < RailsSettings::Base # 备份 field :backup, type: :hash, readonly: true, default: { path: 'public/backup', - keep_time: 604800, + max_keeps: 10, pg_schema: 'public', } diff --git a/app/views/admin/backups/_form.html.slim b/app/views/admin/backups/_form.html.slim index 8825f91b7..1232fa146 100644 --- a/app/views/admin/backups/_form.html.slim +++ b/app/views/admin/backups/_form.html.slim @@ -1,6 +1,7 @@ = simple_form_for([:admin, @backup]) do |f| .card[ data-controller="admin-cron" + data-admin-cron-parsing-value="#{t('simple_form.labels.backup.parsing')}" ] .card-header h3.card-title = t('simple_form.labels.backup.general') diff --git a/config/locales/simple_form/simple_form.en.yml b/config/locales/simple_form/simple_form.en.yml index 1f86d5707..ef2bab7b2 100644 --- a/config/locales/simple_form/simple_form.en.yml +++ b/config/locales/simple_form/simple_form.en.yml @@ -65,6 +65,18 @@ en: display_name: Display name name: Team name team_id: Team id + backup: + general: General settings + key: Key + schedule: Schedule + next_schedule_at: Next schedule at + enabled_database: Backup database + database_switch: Enable + enabled_apps: Backup Apps + max_keeps: Max keeps + enabled: Enabled + schedule_settings: Schedule settings + parsing: Parsing ... hints: defaults: diff --git a/config/locales/simple_form/simple_form.zh-CN.yml b/config/locales/simple_form/simple_form.zh-CN.yml index 6e2be9b47..2270e2ee4 100644 --- a/config/locales/simple_form/simple_form.zh-CN.yml +++ b/config/locales/simple_form/simple_form.zh-CN.yml @@ -76,7 +76,7 @@ zh-CN: max_keeps: 最大保留数 enabled: 启用 schedule_settings: 备份范围 - + parsing: 解析中 hints: defaults: diff --git a/config/locales/zealot/en.yml b/config/locales/zealot/en.yml index 1915a3e83..d74c0b311 100644 --- a/config/locales/zealot/en.yml +++ b/config/locales/zealot/en.yml @@ -822,7 +822,7 @@ en: backup: success: '%{key} backup created successfully.' failures: - max_keeps_limited: '%{key} backup exceed the set maximum limit value: %{count}.' + max_keeps_limited: '%{key} backup maximum limit value was zero' activerecord: success: diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index e9de970e9..57043f0e1 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -825,7 +825,7 @@ zh-CN: backup: success: '%{key} 备份创建完成' failures: - max_keeps_limited: '%{key} 备份超出设置的最大限制值:%{count}' + max_keeps_limited: '%{key} 备份设置最大限制值为零' activerecord: success: diff --git a/lib/zealot/backup/manager.rb b/lib/zealot/backup/manager.rb index 21b08d136..db46b7dff 100644 --- a/lib/zealot/backup/manager.rb +++ b/lib/zealot/backup/manager.rb @@ -27,15 +27,21 @@ class UploadsError < Error; end class Manager include Zealot::Backup::Helper - # include Zealot::Backup::Helper TEMPDIR_PREFIX = 'zealot-backup' DEFAULT_BACKUP_PATH = 'public/backup' ARCHIVES_TO_BACKUP = [ Zealot::Backup::Uploads::FILENAME ] FOLDERS_TO_BACKUP = [ Zealot::Backup::Database::FILENAME ] - FILE_NAME_SUFFIX = '_zealot_backup.tar' - FILE_REGEX = /^(\d{10})?(_*)\d{4}_\d{2}_\d{2}(_\d+\.\d+\.\d+((-|\.)(beta\d|pre\d|rc\d)?)?)?([_-]development)?_zealot_backup\.tar$/ + FILENAME_SUFFIX = '_zealot_backup.tar' + + # For compatibility, there are 5 names the backups can have: + # - 1590060675_2020_05_21_zealot_backup.tar + # - 1590060675_2020_05_21_development_zealot_backup.tar + # - 1590060675_2020_05_21_4.0.0-beta4_zealot_backup.tar + # - 1590060675_2020_05_21_4.0.0-beta4-development_zealot_backup.tar + # - 1590060675_20220809-1122_4.0.0-beta4-development_zealot_backup.tar + FILE_REGEX = /^(\d{10})?(_*)(\d{4}_\d{2}_\d{2}|\d{8}-\d{4})(_\d+\.\d+\.\d+((-|\.)(beta\d|pre\d|rc\d)?)?)?([_-]development)?_zealot_backup\.tar$/ attr_reader :backup_path, :logger @@ -97,16 +103,38 @@ def pack end end + def remove_old(max_keeps = nil) + logger.debug 'Deleting old backups ... ' + Dir.chdir(backup_path) do + max_keeps ||= Setting.backup[:max_keeps] + backup_file_count = backup_file_list.size + + return if max_keeps <= 0 + return if backup_file_count.zero? # never happend + return if backup_file_count <= max_keeps + + remove_end_index = backup_file_count - max_keeps - 1 + backup_file_list[0..remove_end_index].each do |file| + begin + FileUtils.rm(file) + rescue => e + logger.debug "Deleting #{file} failed: #{e.message}" + end + end + end + end + # Move back backup file from temp dir and delete tempdir etc def cleanup clear_tempdir + @backup_file_list = nil end def tar_filename @tar_filename ||= -> () { timestamp = backup_information[:backup_created_at].strftime('%s_%Y%m%d-%H%M') zealot_version = backup_information[:zealot_version] - "#{timestamp}_#{zealot_version}#{FILE_NAME_SUFFIX}" + "#{timestamp}_#{zealot_version}#{FILENAME_SUFFIX}" }.call end @@ -139,74 +167,6 @@ def backup_information_file ##################################################################### - # def write_info - # # Make sure there is a connection - # ActiveRecord::Base.connection.reconnect! - - # File.open(backup_information_file, "w") do |file| - # file << backup_information.to_yaml.gsub(/^---\n/, '') - # end - # end - - # def pack - # Dir.chdir(path) do - # # create archive - # logger.debug "Creating backup archive: #{tar_file} ... " - # # Set file permissions on open to prevent chmod races. - # tar_system_options = { out: [tar_file, 'w', 0640] } - # unless system(tar, '-cf', '-', *backup_contents, tar_system_options) - # raise Zealot::Backup::Error, "Backup failed: creating archive #{tar_file} failed" - # end - # end - # end - - # def cleanup - # logger.debug 'Deleting tmp directories ... ' - - # backup_contents.each do |dir| - # next unless File.exist?(File.join(path, dir)) - - # unless FileUtils.rm_rf(File.join(path, dir)) - # raise Zealot::Backup::Error, "Backup failed: deleting tmp directory '#{dir}' failed" - # end - # end - # end - - def remove_old - logger.debug 'Deleting old backups ... ' - keep_time = Setting.backup[:keep_time] - - if keep_time > 0 - removed = 0 - - Dir.chdir(backup_path) do - backup_file_list.each do |file| - # For compatibility, there are 4 names the backups can have: - # - 1590060675_2020_05_21_zealot_backup.tar - # - 1590060675_2020_05_21_development_zealot_backup.tar - # - 1590060675_2020_05_21_4.0.0-beta4_zealot_backup.tar - # - 1590060675_2020_05_21_4.0.0-beta4-development_zealot_backup.tar - next unless file =~ FILE_REGEX - - timestamp = $1.to_i - - if Time.at(timestamp) < (Time.now - keep_time) - begin - FileUtils.rm(file) - removed += 1 - rescue => e - logger.debug "Deleting #{file} failed: #{e.message}" - end - end - end - end - - logger.debug "#{removed} old backup removed" - else - logger.debug "keep backup forever" - end - end - # def unpack # FileUtils.mkdir_p(path) @@ -214,7 +174,7 @@ def remove_old # # check for existing backups in the backup dir # if backup_file_list.empty? # logger.debug "No backups found in #{path}" - # logger.debug "Please make sure that file name ends with #{FILE_NAME_SUFFIX}" + # logger.debug "Please make sure that file name ends with #{FILENAME_SUFFIX}" # exit 1 # elsif backup_file_list.many? && ENV["BACKUP"].nil? # logger.debug 'Found more than one backup:' @@ -273,7 +233,11 @@ def backup_information end def backup_file_list - @backup_file_list ||= Dir.glob("*#{FILE_NAME_SUFFIX}") + @backup_file_list ||= Dir.glob(File.join(backup_path, "*#{FILENAME_SUFFIX}")).select do |file| + FILE_REGEX.match(File.basename(file)) + end.sort_by do |file| + FILE_REGEX.match(File.basename(file))[1] + end end def backup_contents From 99c7a87359fffeba894417264702caf2fb92b621 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 11 Aug 2022 16:02:52 +0800 Subject: [PATCH 1097/2165] =?UTF-8?q?refactor:=20=E7=B2=BE=E7=AE=80?= =?UTF-8?q?=E5=BA=94=E7=94=A8=E7=89=88=E6=9C=AC=E8=AE=BE=E5=A4=87=E5=88=A4?= =?UTF-8?q?=E6=96=AD=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/apps_helper.rb | 16 +--------------- .../controllers/admin/new_release_controller.js | 4 ++-- app/views/channels/_channels.html.slim | 2 +- app/views/channels/_mobile_menu.html.slim | 4 ++-- app/views/channels/show.html.slim | 3 ++- app/views/releases/body/_devices.html.slim | 4 ++-- app/views/releases/body/_metadata.html.slim | 4 ++-- config/locales/zealot/en.yml | 2 +- config/locales/zealot/zh-CN.yml | 4 ++-- 9 files changed, 15 insertions(+), 28 deletions(-) diff --git a/app/helpers/apps_helper.rb b/app/helpers/apps_helper.rb index 492148c92..7635dd3c4 100644 --- a/app/helpers/apps_helper.rb +++ b/app/helpers/apps_helper.rb @@ -72,21 +72,7 @@ def release_type_url(release) end end - def display_app_device(value) - if value.is_a?(Release) - channel = value.channel - channal_device_type = device_name(channel.device_type) - if value.device_type - if channal_device_type == value.device_type - return channal_device_type - else - return "#{channal_device_type} (#{value.device_type})" - end - end - else - channel = value - end - + def channel_platform(channel) return channel.name if channel.name.downcase == channel.device_type.downcase platform = device_name(channel.device_type) diff --git a/app/javascript/controllers/admin/new_release_controller.js b/app/javascript/controllers/admin/new_release_controller.js index 6be694aad..80827228e 100644 --- a/app/javascript/controllers/admin/new_release_controller.js +++ b/app/javascript/controllers/admin/new_release_controller.js @@ -2,8 +2,8 @@ import { Controller } from "@hotwired/stimulus" import compareVersion from "compare-versions" const DEVELLOPMENT = "development" -const PROJECT_URL = "https://api.github.com/repos/tryzealot/zealot" -const VERSION_URL = PROJECT_URL + "/releases/latest" +const PROJECT_URL = "https://github.com/tryzealot/zealot" +const VERSION_URL = "https://api.github.com/repos/tryzealot/zealot/releases/latest" export default class extends Controller { static values = { version: String, title: String } diff --git a/app/views/channels/_channels.html.slim b/app/views/channels/_channels.html.slim index 08a5069ad..53999caac 100755 --- a/app/views/channels/_channels.html.slim +++ b/app/views/channels/_channels.html.slim @@ -5,4 +5,4 @@ ul.nav.nav-pills.flex-column - @channel.scheme.channels.each do |channel| li.nav-item - = link_to display_app_device(channel), friendly_channel_overview_path(channel), class: "nav-link nav-link-flat #{(params[:id] || params[:channel]) == channel.slug ? 'active' : ''}" \ No newline at end of file + = link_to channel_platform(channel), friendly_channel_overview_path(channel), class: "nav-link nav-link-flat #{(params[:id] || params[:channel]) == channel.slug ? 'active' : ''}" \ No newline at end of file diff --git a/app/views/channels/_mobile_menu.html.slim b/app/views/channels/_mobile_menu.html.slim index 25d6d61e2..86400814e 100755 --- a/app/views/channels/_mobile_menu.html.slim +++ b/app/views/channels/_mobile_menu.html.slim @@ -13,7 +13,7 @@ nav.filter-nav.navbar.navbar-expand.navbar-white.d-block.d-sm-none li.nav-item.dropdown a#dropdownSubMenu1.nav-link.dropdown-toggle aria-expanded="false" aria-haspopup="true" data-toggle="dropdown" href="#" - = display_app_device(@channel) + = channel_platform(@channel) ul.dropdown-menu.border-0.shadow aria-labelledby="dropdownSubMenu1" style=("left: 0px; right: inherit;") ruby: channels = @channel.scheme.channels.select {|c| c != @channel } @@ -21,7 +21,7 @@ nav.filter-nav.navbar.navbar-expand.navbar-white.d-block.d-sm-none - if channels.present? - channels.each do |channel| li - = link_to display_app_device(channel), friendly_channel_overview_path(channel), class: "dropdown-item" + = link_to channel_platform(channel), friendly_channel_overview_path(channel), class: "dropdown-item" - else li span.text-gray class="dropdown-item" = t('channels.show.none') diff --git a/app/views/channels/show.html.slim b/app/views/channels/show.html.slim index 15940a144..6980cf216 100755 --- a/app/views/channels/show.html.slim +++ b/app/views/channels/show.html.slim @@ -15,9 +15,10 @@ .col-md-4 - if user_signed_in? - a.btn.btn-success.btn-block.mb-3 href="#{new_channel_release_path(@channel)}" + = link_to new_channel_release_path(@channel), class: 'btn btn-success btn-block mb-3' do i.icon.far.fa-plus-square = t('channels.show.upload_release') + == render 'schemes' == render 'channels' == render 'versions' diff --git a/app/views/releases/body/_devices.html.slim b/app/views/releases/body/_devices.html.slim index 90f7dc0f8..8bae4dd72 100644 --- a/app/views/releases/body/_devices.html.slim +++ b/app/views/releases/body/_devices.html.slim @@ -6,11 +6,11 @@ i.icon.fas.fa-mobile-alt = t('releases.show.devices', count: @release.devices.count) .card-tools - button.btn.btn-tool data-toggle="dropdown" title="#{t('releases.show.use_fastlane_plugin_sync_devices', link: 'zealot_sync_device')}" + button.btn.btn-tool data-toggle="dropdown" title="#{t('releases.show.sync_devices_feature', link: t('admin.apple_keys.title'))}" i.fas.fa-info-circle .dropdown-menu.dropdown-menu-right small.dropdown-item - = raw t('releases.show.use_fastlane_plugin_sync_devices', link: link_to('zealot_sync_device', 'http://zealot.ews.im/#/modules?id=zealot_sync_devices', target: '_blank')) + = raw t('releases.show.sync_devices_feature', link: link_to(t('admin.apple_keys.title'), 'http://zealot.ews.im/#/apple_team', target: '_blank')) button.btn.btn-tool data-card-widget="collapse" i.fas.fa-plus diff --git a/app/views/releases/body/_metadata.html.slim b/app/views/releases/body/_metadata.html.slim index 9369096f3..4103e8713 100644 --- a/app/views/releases/body/_metadata.html.slim +++ b/app/views/releases/body/_metadata.html.slim @@ -19,8 +19,8 @@ i.fab.fa-gg = @release.version li title="#{t('releases.show.device_type')}" - = device_icon(@release.channel.device_type) - = display_app_device(@release) + = device_icon(@release.platform) + = @release.device_type li title="#{t('releases.show.release_version')}" i.fas.fa-server = "#{@release.release_version} (#{@release.build_version})" diff --git a/config/locales/zealot/en.yml b/config/locales/zealot/en.yml index d74c0b311..3d3740c1a 100644 --- a/config/locales/zealot/en.yml +++ b/config/locales/zealot/en.yml @@ -421,7 +421,7 @@ en: devices: one: "One device's UDID" other: "%{count} device's UDIDs" - use_fastlane_plugin_sync_devices: Sync device name by using %{link} fastlane plugin + sync_devices_feature: Sync device name by using %{link} fastlane plugin qrcode: QR Code scan_qrcode_with_any_suppprted_app: Use your phone's camera to install it diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index 57043f0e1..0599be509 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -414,12 +414,12 @@ zh-CN: upload_release: :'dashboard.timeline.upload_release' changelog: 更新日志 devices: '%{count} 台测试设备 (UDID)' - use_fastlane_plugin_sync_devices: 使用 %{link} fastlane 插件同步设备名称 + sync_devices_feature: 推荐使用%{link}同步设备名称 qrcode: 二维码 scan_qrcode_with_any_suppprted_app: 任何支持二维码识别的 App 均可 - majar_versions: :'channels.show.majar_versions' + majarzersions: :'channels.show.majar_versions' view_detail: 渠道详情 new: title: :'channels.show.upload_release' From 75d88a4515bc4c1e198eef48eaa25f483d06364b Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 11 Aug 2022 16:57:32 +0800 Subject: [PATCH 1098/2165] =?UTF-8?q?chore:=20=E7=A7=BB=E9=99=A4=E6=97=A9?= =?UTF-8?q?=E6=9C=9F=20docker=20volume=20=E8=BF=81=E7=A7=BB=E6=8F=90?= =?UTF-8?q?=E9=86=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/services/create_sample_apps_service.rb | 45 +++++++++++++++++-- .../rootfs/etc/cont-init.d/25-upgrade-zealot | 6 --- 2 files changed, 41 insertions(+), 10 deletions(-) diff --git a/app/services/create_sample_apps_service.rb b/app/services/create_sample_apps_service.rb index e5ef142da..d8d1aa5f2 100644 --- a/app/services/create_sample_apps_service.rb +++ b/app/services/create_sample_apps_service.rb @@ -1,13 +1,15 @@ # frozen_string_literal: true +require 'securerandom' + class CreateSampleAppsService include ActionView::Helpers::TranslationHelper RELEASE_COUNT = 3 def call(user) - stardford_app user android_channels_app user + stardford_app user end private @@ -100,13 +102,48 @@ def generate_release(channel, app_bundle_id, release_type, changelog, build_vers ).save(validate: false) end - def create_app(name, user) - App.find_or_create_by name: name do |a| - a.users << user + def generate_devices(release, count) + count.times do + release.devices << Device.create( + udid: SecureRandom.uuid, + model: DEVICE_MODEL[rand(DEVICE_MODEL.size - 1)], + platform: 'IOS', + status: 'ENABLED' + ) end end + DEVICE_MODEL = [ + 'iPhone 6', + 'iPhone 6s', + 'iPhone 6 Plus', + 'iPhone 7', + 'iPhone 7 Plus', + 'iPhone 8', + 'iPhone 8 Plus', + 'iPhone X', + 'iPhone XR', + 'iPhone XS', + 'iPhone XS Max', + 'iPhone 11', + 'iPhone 11 Pro', + 'iPhone 11 Pro Max', + 'iPhone 12', + 'iPhone 12 mini', + 'iPhone 12 Pro', + 'iPhone 12 Pro Max', + 'iPhone 13', + 'iPhone 13 Pro', + 'iPhone 13 Pro Max' + ] + def generate_bundle_id(app_bundle_id, channel) "#{app_bundle_id}.#{channel.name.downcase}" end + + def create_app(name, user) + App.find_or_create_by name: name do |a| + a.users << user + end + end end diff --git a/docker/rootfs/etc/cont-init.d/25-upgrade-zealot b/docker/rootfs/etc/cont-init.d/25-upgrade-zealot index 83b006565..edbfc23ef 100644 --- a/docker/rootfs/etc/cont-init.d/25-upgrade-zealot +++ b/docker/rootfs/etc/cont-init.d/25-upgrade-zealot @@ -1,10 +1,4 @@ #!/usr/bin/with-contenv sh -echo "**************************************************" -echo " WARNING: Using zealot-uploads and zealot-backups " -echo " instead of zealot-data volume, detail: " -echo " https://git.io/JR0Gw " -echo "**************************************************" - cd /app && ./bin/rails zealot:upgrade exit 0 From 1c215f0291aeddf1b876deeefe4262b49242d0d0 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 11 Aug 2022 18:05:43 +0800 Subject: [PATCH 1099/2165] =?UTF-8?q?fix:=20=E5=A4=87=E4=BB=BD=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=BA=93=E8=AE=A4=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Aptfile | 3 ++- lib/zealot/backup/database.rb | 21 +++++++++++---------- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/Aptfile b/Aptfile index 7f4f3ee13..f8157dd41 100644 --- a/Aptfile +++ b/Aptfile @@ -1,2 +1,3 @@ libwebp-dev -webp \ No newline at end of file +webp +postgresql-client \ No newline at end of file diff --git a/lib/zealot/backup/database.rb b/lib/zealot/backup/database.rb index f31bd0b64..30d6c0c4e 100644 --- a/lib/zealot/backup/database.rb +++ b/lib/zealot/backup/database.rb @@ -98,18 +98,19 @@ def restore private def pg_env + # Store database data into env args = { - 'username' => 'ZEALOT_POSTGRES_USER', - 'host' => 'ZEALOT_POSTGRES_HOST', - 'port' => 'ZEALOT_POSTGRES_PORT', - 'password' => 'ZEALOT_POSTGRES_PASSWORD', + 'username' => 'PGUSER', + 'host' => 'PGHOST', + 'port' => 'PGPORT', + 'password' => 'PGPASSWORD', # SSL - 'sslmode' => 'ZEALOT_POSTGRES_SSLMODE', - 'sslkey' => 'ZEALOT_POSTGRES_SSLKEY', - 'sslcert' => 'ZEALOT_POSTGRES_SSLCERT', - 'sslrootcert' => 'ZEALOT_POSTGRES_SSLROOTCERT', - 'sslcrl' => 'ZEALOT_POSTGRES_SSLCRL', - 'sslcompression' => 'ZEALOT_POSTGRES_SSLCOMPRESSION' + 'sslmode' => 'PGSSLMODE', + 'sslkey' => 'PGSSLKEY', + 'sslcert' => 'PGSSLCERT', + 'sslrootcert' => 'PGSSLROOTCERT', + 'sslcrl' => 'PGSSLCRL', + 'sslcompression' => 'PGSSLCOMPRESSION' } args.each { |opt, arg| ENV[arg] = config[opt].to_s if config[opt] } end From d69ad6b76f4c7af4c38f7217b598437686fb72e2 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 11 Aug 2022 18:18:16 +0800 Subject: [PATCH 1100/2165] =?UTF-8?q?chore:=20=E5=BF=BD=E7=95=A5=E8=A7=A6?= =?UTF-8?q?=E5=8F=91=20CI=20=E6=96=87=E4=BB=B6=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/publish_nighty.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/publish_nighty.yml b/.github/workflows/publish_nighty.yml index b3dc2cd1c..d17ea80bb 100644 --- a/.github/workflows/publish_nighty.yml +++ b/.github/workflows/publish_nighty.yml @@ -7,6 +7,9 @@ on: - '.*' - 'LICENSE' - 'Guardfile' + - Aptfile + - 'Procfile*' + - '*.yaml' branches: - develop jobs: From 54a67ce9f9fb0c2ccb06cf84d7e5db208602e7c5 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 11 Aug 2022 18:31:12 +0800 Subject: [PATCH 1101/2165] =?UTF-8?q?feat:=20=E5=A4=87=E4=BB=BD=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E5=A2=9E=E5=8A=A0=20pg=20version?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/zealot/backup/manager.rb | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lib/zealot/backup/manager.rb b/lib/zealot/backup/manager.rb index db46b7dff..91947ae26 100644 --- a/lib/zealot/backup/manager.rb +++ b/lib/zealot/backup/manager.rb @@ -227,6 +227,7 @@ def backup_information backup_created_at: Time.now, db_version: ActiveRecord::Migrator.current_version.to_s, tar_version: tar_version, + pg_version: pg_version, vcs_ref: Setting.vcs_ref || false, docker_tag: ENV['DOCKER_TAG'] || false } @@ -261,5 +262,11 @@ def tar_version .first .strip end + + def pg_version + @pg_version ||= `pg_dump -V`.dup + .force_encoding('locale') + .strip + end end end \ No newline at end of file From c508102d59b632914bfa7409a8699e028851c864 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 11 Aug 2022 18:52:23 +0800 Subject: [PATCH 1102/2165] =?UTF-8?q?fix:=20=E6=95=B0=E6=8D=AE=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=E8=AF=BB=E5=8F=96=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/zealot/backup/database.rb | 14 +++++++++----- lib/zealot/backup/manager.rb | 2 +- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/lib/zealot/backup/database.rb b/lib/zealot/backup/database.rb index 30d6c0c4e..16936dfff 100644 --- a/lib/zealot/backup/database.rb +++ b/lib/zealot/backup/database.rb @@ -81,7 +81,7 @@ def restore restore_pid = case config['adapter'] when 'postgresql' - _logger.debug "Restoring PostgreSQL database #{config['database']} ... " + logger.debug "Restoring PostgreSQL database #{config['database']} ... " pg_env spawn('psql', config['database'], in: decompress_rd) end @@ -116,10 +116,14 @@ def pg_env end def config - return @config if @config - - config = ERB.new(File.read(Rails.root.join('config', 'database.yml'))).result() - @config = YAML.load(config)[Rails.env] + @config ||= -> { + config = ERB.new(File.read(Rails.root.join('config', 'database.yml'))).result() + if YAML.respond_to?(:unsafe_load) + YAML.unsafe_load(config) + else + YAML.load(config) + end[Rails.env] + }.call end def db_file_name diff --git a/lib/zealot/backup/manager.rb b/lib/zealot/backup/manager.rb index 91947ae26..191bbf129 100644 --- a/lib/zealot/backup/manager.rb +++ b/lib/zealot/backup/manager.rb @@ -181,7 +181,7 @@ def backup_information_file # # print list of available backups # logger.debug " " + available_timestamps.join("\n ") # logger.debug 'Please specify which one you want to restore:' - # logger.debug 'rake gitlab:backup:restore BACKUP=timestamp_of_backup' + # logger.debug 'rake zealot:backup:restore BACKUP=timestamp_of_backup' # exit 1 # end From 130df4cb6d32687f72261a8e127485e8902650dd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 11 Aug 2022 21:01:25 +0000 Subject: [PATCH 1103/2165] chore(deps): bump faraday from 2.5.1 to 2.5.2 Bumps [faraday](https://github.com/lostisland/faraday) from 2.5.1 to 2.5.2. - [Release notes](https://github.com/lostisland/faraday/releases) - [Changelog](https://github.com/lostisland/faraday/blob/main/CHANGELOG.md) - [Commits](https://github.com/lostisland/faraday/compare/v2.5.1...v2.5.2) --- updated-dependencies: - dependency-name: faraday dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index c8c9bf3b5..853ff208d 100644 --- a/Gemfile +++ b/Gemfile @@ -42,7 +42,7 @@ gem 'webp-ffi', '~> 0.3.1' # Helper ## HTTP 请求 -gem 'faraday', '~> 2.5.1' +gem 'faraday', '~> 2.5.2' ## 用户认证 gem 'pundit', '~> 2.2.0' diff --git a/Gemfile.lock b/Gemfile.lock index d85e1f534..fc9f81439 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -149,7 +149,7 @@ GEM erubi (1.10.0) et-orbi (1.2.7) tzinfo - faraday (2.5.1) + faraday (2.5.2) faraday-net_http (>= 2.0, < 3.1) ruby2_keywords (>= 0.0.4) faraday-net_http (3.0.0) @@ -526,7 +526,7 @@ DEPENDENCIES devise (~> 4.8.1) devise-i18n (~> 1.10.2) dotenv-rails - faraday (~> 2.5.1) + faraday (~> 2.5.2) friendly_id (~> 5.4.2) graphiql-rails graphql (~> 2.0.12) From 102e1df1fc9fa10b67cae7834945cee8e780ba67 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 11 Aug 2022 21:01:34 +0000 Subject: [PATCH 1104/2165] chore(deps): bump sass from 1.54.3 to 1.54.4 Bumps [sass](https://github.com/sass/dart-sass) from 1.54.3 to 1.54.4. - [Release notes](https://github.com/sass/dart-sass/releases) - [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md) - [Commits](https://github.com/sass/dart-sass/compare/1.54.3...1.54.4) --- updated-dependencies: - dependency-name: sass dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index f6b7237dd..23cf0b79c 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "clipboard": "^2.0.11", "compare-versions": "^4.1.3", "esbuild": "^0.14.54", - "sass": "^1.54.3", + "sass": "^1.54.4", "ua-parser-js": "^1.0.2" }, "scripts": { diff --git a/yarn.lock b/yarn.lock index cc959a1ce..122d85341 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1427,10 +1427,10 @@ safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sass@^1.54.3: - version "1.54.3" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.54.3.tgz#37baa2652f7f1fdadb73240ee9a2b9b81fabb5c4" - integrity sha512-fLodey5Qd41Pxp/Tk7Al97sViYwF/TazRc5t6E65O7JOk4XF8pzwIW7CvCxYVOfJFFI/1x5+elDyBIixrp+zrw== +sass@^1.54.4: + version "1.54.4" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.54.4.tgz#803ff2fef5525f1dd01670c3915b4b68b6cba72d" + integrity sha512-3tmF16yvnBwtlPrNBHw/H907j8MlOX8aTBnlNX1yrKx24RKcJGPyLhFUwkoKBKesR3unP93/2z14Ll8NicwQUA== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" From 4a24c72ec0f8a9ee869aa2067f77471c9dcbd89f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 11 Aug 2022 21:01:44 +0000 Subject: [PATCH 1105/2165] chore(deps-dev): bump debug from 1.6.1 to 1.6.2 Bumps [debug](https://github.com/ruby/debug) from 1.6.1 to 1.6.2. - [Release notes](https://github.com/ruby/debug/releases) - [Commits](https://github.com/ruby/debug/compare/v1.6.1...v1.6.2) --- updated-dependencies: - dependency-name: debug dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index c8c9bf3b5..5c8fc7744 100644 --- a/Gemfile +++ b/Gemfile @@ -115,7 +115,7 @@ group :development do # 调试器 ## VSCode debug: https://marketplace.visualstudio.com/items?itemName=KoichiSasada.vscode-rdbg - gem 'debug', '~> 1.6.1', platforms: %i[ mri mingw x64_mingw ] + gem 'debug', '~> 1.6.2', platforms: %i[ mri mingw x64_mingw ] # 开发辅助 gem 'guard', '~> 2.18.0' diff --git a/Gemfile.lock b/Gemfile.lock index d85e1f534..342e437b2 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -129,7 +129,7 @@ GEM crass (1.0.6) cssbundling-rails (1.1.1) railties (>= 6.0.0) - debug (1.6.1) + debug (1.6.2) irb (>= 1.3.6) reline (>= 0.3.1) debug_inspector (1.1.0) @@ -522,7 +522,7 @@ DEPENDENCIES bootsnap (>= 1.4.7) carrierwave (~> 2.2.2) cssbundling-rails (~> 1.1) - debug (~> 1.6.1) + debug (~> 1.6.2) devise (~> 4.8.1) devise-i18n (~> 1.10.2) dotenv-rails From 7f8191abf0db634eeef1665358ab034bb69b5194 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 12 Aug 2022 11:06:16 +0800 Subject: [PATCH 1106/2165] =?UTF-8?q?fix:=20sidekiq-failures=20=E4=B8=8A?= =?UTF-8?q?=E6=B8=B8=E5=9C=B0=E5=9D=80=E5=8F=98=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 2 +- Gemfile.lock | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index c8c9bf3b5..8e39230bf 100644 --- a/Gemfile +++ b/Gemfile @@ -87,7 +87,7 @@ gem 'rqrcode' gem 'activejob-status' gem 'sidekiq', '~> 6.5.4' gem 'sidekiq-scheduler', '~> 4.0.2' -gem 'sidekiq-failures', github: 'icyleaf/sidekiq-failures', ref: '2c3adef86fc39f0bb14315db918e3bba2c796c68' # 等待新版本发布后移除 +gem 'sidekiq-failures', github: 'mhfs/sidekiq-failures', ref: '3329242204d814a350719c6a2c50a14666dafe53' # 等待新版本发布后移除 # Assets ## jsbundling-rails, cssbundling-rails 仅生成配置文件到项目组,核心还是 package.json 中 build/build:css 部分。 diff --git a/Gemfile.lock b/Gemfile.lock index d85e1f534..d67380f3d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,7 @@ GIT - remote: https://github.com/icyleaf/sidekiq-failures - revision: 2c3adef86fc39f0bb14315db918e3bba2c796c68 - ref: 2c3adef86fc39f0bb14315db918e3bba2c796c68 + remote: https://github.com/mhfs/sidekiq-failures + revision: 3329242204d814a350719c6a2c50a14666dafe53 + ref: 3329242204d814a350719c6a2c50a14666dafe53 specs: sidekiq-failures (1.0.1) sidekiq (>= 4.0.0) From 34f482e794e44bfb2f686700abafe887a3ff43a4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 12 Aug 2022 03:56:46 +0000 Subject: [PATCH 1107/2165] chore(deps): bump esbuild from 0.14.54 to 0.15.1 Bumps [esbuild](https://github.com/evanw/esbuild) from 0.14.54 to 0.15.1. - [Release notes](https://github.com/evanw/esbuild/releases) - [Changelog](https://github.com/evanw/esbuild/blob/master/CHANGELOG.md) - [Commits](https://github.com/evanw/esbuild/compare/v0.14.54...v0.15.1) --- updated-dependencies: - dependency-name: esbuild dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 258 +++++++++++++++++++++++++-------------------------- 2 files changed, 130 insertions(+), 130 deletions(-) diff --git a/package.json b/package.json index 23cf0b79c..03d677ec0 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "admin-lte": "3.1.0", "clipboard": "^2.0.11", "compare-versions": "^4.1.3", - "esbuild": "^0.14.54", + "esbuild": "^0.15.1", "sass": "^1.54.4", "ua-parser-js": "^1.0.2" }, diff --git a/yarn.lock b/yarn.lock index 122d85341..8e7e05019 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,10 +2,10 @@ # yarn lockfile v1 -"@esbuild/linux-loong64@0.14.54": - version "0.14.54" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz#de2a4be678bd4d0d1ffbb86e6de779cde5999028" - integrity sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw== +"@esbuild/linux-loong64@0.15.1": + version "0.15.1" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.1.tgz#f293d9442201fa7448248f05590139bb8e521856" + integrity sha512-1tORADNFK9QS4KYyUyh3Td9WGrdiI1rSoKvY6A43+9G0kPujBuT4lIGyoK0AweOSO1aRIR28xQUfiJCUa78bUw== "@fortawesome/fontawesome-free@^5.15.3": version "5.15.4" @@ -672,132 +672,132 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -esbuild-android-64@0.14.54: - version "0.14.54" - resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.14.54.tgz#505f41832884313bbaffb27704b8bcaa2d8616be" - integrity sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ== - -esbuild-android-arm64@0.14.54: - version "0.14.54" - resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.54.tgz#8ce69d7caba49646e009968fe5754a21a9871771" - integrity sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg== - -esbuild-darwin-64@0.14.54: - version "0.14.54" - resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.54.tgz#24ba67b9a8cb890a3c08d9018f887cc221cdda25" - integrity sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug== - -esbuild-darwin-arm64@0.14.54: - version "0.14.54" - resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.54.tgz#3f7cdb78888ee05e488d250a2bdaab1fa671bf73" - integrity sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw== - -esbuild-freebsd-64@0.14.54: - version "0.14.54" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.54.tgz#09250f997a56ed4650f3e1979c905ffc40bbe94d" - integrity sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg== - -esbuild-freebsd-arm64@0.14.54: - version "0.14.54" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.54.tgz#bafb46ed04fc5f97cbdb016d86947a79579f8e48" - integrity sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q== - -esbuild-linux-32@0.14.54: - version "0.14.54" - resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.54.tgz#e2a8c4a8efdc355405325033fcebeb941f781fe5" - integrity sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw== - -esbuild-linux-64@0.14.54: - version "0.14.54" - resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz#de5fdba1c95666cf72369f52b40b03be71226652" - integrity sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg== - -esbuild-linux-arm64@0.14.54: - version "0.14.54" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.54.tgz#dae4cd42ae9787468b6a5c158da4c84e83b0ce8b" - integrity sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig== - -esbuild-linux-arm@0.14.54: - version "0.14.54" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.54.tgz#a2c1dff6d0f21dbe8fc6998a122675533ddfcd59" - integrity sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw== - -esbuild-linux-mips64le@0.14.54: - version "0.14.54" - resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.54.tgz#d9918e9e4cb972f8d6dae8e8655bf9ee131eda34" - integrity sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw== - -esbuild-linux-ppc64le@0.14.54: - version "0.14.54" - resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.54.tgz#3f9a0f6d41073fb1a640680845c7de52995f137e" - integrity sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ== - -esbuild-linux-riscv64@0.14.54: - version "0.14.54" - resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.54.tgz#618853c028178a61837bc799d2013d4695e451c8" - integrity sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg== - -esbuild-linux-s390x@0.14.54: - version "0.14.54" - resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.54.tgz#d1885c4c5a76bbb5a0fe182e2c8c60eb9e29f2a6" - integrity sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA== - -esbuild-netbsd-64@0.14.54: - version "0.14.54" - resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.54.tgz#69ae917a2ff241b7df1dbf22baf04bd330349e81" - integrity sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w== - -esbuild-openbsd-64@0.14.54: - version "0.14.54" - resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.54.tgz#db4c8495287a350a6790de22edea247a57c5d47b" - integrity sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw== - -esbuild-sunos-64@0.14.54: - version "0.14.54" - resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.54.tgz#54287ee3da73d3844b721c21bc80c1dc7e1bf7da" - integrity sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw== - -esbuild-windows-32@0.14.54: - version "0.14.54" - resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.54.tgz#f8aaf9a5667630b40f0fb3aa37bf01bbd340ce31" - integrity sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w== - -esbuild-windows-64@0.14.54: - version "0.14.54" - resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.54.tgz#bf54b51bd3e9b0f1886ffdb224a4176031ea0af4" - integrity sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ== - -esbuild-windows-arm64@0.14.54: - version "0.14.54" - resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.54.tgz#937d15675a15e4b0e4fafdbaa3a01a776a2be982" - integrity sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg== - -esbuild@^0.14.54: - version "0.14.54" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.54.tgz#8b44dcf2b0f1a66fc22459943dccf477535e9aa2" - integrity sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA== +esbuild-android-64@0.15.1: + version "0.15.1" + resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.1.tgz#f609a37348a3784ae632e88517d2e5f579984806" + integrity sha512-q5kkJZsgLIkyh5e2ZJl4/kXKIueBKtjVMEihP9WCHadqhH6+F9qiycE7fBwUb/g2B15mYlmMBXjp8VmOT3J2gA== + +esbuild-android-arm64@0.15.1: + version "0.15.1" + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.1.tgz#94b064dfa87bacbfb623313ead8338d357175a10" + integrity sha512-IQuZOzqMaFceLlKJJA27CXAdh+Mzh2ZblHMmcNIu/wxb6iX1zgYXlPWle62iHnmNCtfAux1mzQvmNsP9aLhemA== + +esbuild-darwin-64@0.15.1: + version "0.15.1" + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.1.tgz#d15ed63dada464c18a8245199294df5b22c865ff" + integrity sha512-tyouWLyxwM/Y2fy/reuIvAvVB+KVQwuY9IVyV7LH5CGkJYxgtLb8xVEiwHFF8TG2uo9a2fqdgWffados4YA6Aw== + +esbuild-darwin-arm64@0.15.1: + version "0.15.1" + resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.1.tgz#c8c6a8949faa88cccbc508143662d53a111d7ee0" + integrity sha512-fb4V1eB1nir3zJwsS75itsbahkbM71XuqUDJVH8iyBLS8VIQD7MWWAAekea2l9keueGfsn0+wTyDluMT+kg8Cw== + +esbuild-freebsd-64@0.15.1: + version "0.15.1" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.1.tgz#4ebbbd954e2e72cf35e78185f4da810a8c3fce2f" + integrity sha512-1KxEv/FUPlQtUSOjFCwR8FVNEskB5LmkbfW9FNJ7lhpG+4RsLiHWw4Sl2Y1/S+aKX7inyWxLA05zYV6XAzO8DA== + +esbuild-freebsd-arm64@0.15.1: + version "0.15.1" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.1.tgz#a377942ed5b2578f9d8e8aea1396db59df5e1742" + integrity sha512-ueUMGSNrcuHwAadioxBdfOCO4+bTVeI68a147BQ/AFFIrf4XJNow4UXxguvQlZO+ZYaVz6EztaL6mHslKie2Rw== + +esbuild-linux-32@0.15.1: + version "0.15.1" + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.1.tgz#7226edd9517ee0bdc0ea7a8be1b5047d31de9426" + integrity sha512-K5WWcN2OZkZ6arFN3+hi1leKc0at9ukKGrXK9Ia94kQOesBphTSmsNK/Gy/AoVoIa0bWrHtxDijS9j9+dz86oA== + +esbuild-linux-64@0.15.1: + version "0.15.1" + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.1.tgz#fbf0f6320a99f940170b76cc650e623c728d9480" + integrity sha512-+haiVm83DfRi9x8M+GgR4f4LtSN8lnEIG8XMGK8/FYpkYNQiKb398GxeHp2yvoMpX8IPvmWCt215tAm5BBNfZQ== + +esbuild-linux-arm64@0.15.1: + version "0.15.1" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.1.tgz#4a33a9b9dc95d537264aaf05a3e3fdbf6fb8cce5" + integrity sha512-TP0BCVZEVu/aoVaZe2sn1vpvo63j0LPiH8rvd7AegqOfTwb+mcxLxpgyYwkibafUCMxnIrKdUTsSJeusoMhcLg== + +esbuild-linux-arm@0.15.1: + version "0.15.1" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.1.tgz#31773327a2c8edfd77c7cf12ded141b2db0b25c6" + integrity sha512-qjAkEDcFhVNYwG2xgaDg/hA8JABoMvjzAzE6g1K8kR516oNkKbVf6rN68UrsQaV1zq1qR3dbVeMv/Ul2bheppA== + +esbuild-linux-mips64le@0.15.1: + version "0.15.1" + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.1.tgz#714b8c49886349d2a599f05fae5cb7dc5e574658" + integrity sha512-8vzQzp+kwrn1Y+OjvfFaLS8uL8aR39WnAtxOHwjB72s9g18kHFlE8IQLS9dWDQgKpBSFq9kazsJE65dSVmz+VA== + +esbuild-linux-ppc64le@0.15.1: + version "0.15.1" + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.1.tgz#5df1ec88d850745de2ce23d1a4117d04d36b8a32" + integrity sha512-QlWSOgC2Ad53Xvf7ZivXU7wM2y29YhQUrd50PjK0QJ3psh/eYSQx77PTe1iWm7Ovjiqv1wPKEAyC7CbyJUgriw== + +esbuild-linux-riscv64@0.15.1: + version "0.15.1" + resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.1.tgz#3ccf408ec4682630862310e28038d30639e2623c" + integrity sha512-/PRNgNsiwb7G2n3rB5WcHinCwKj0OqUmtu8cdakV4CLNWnFnfChEGEJX1x5n8RcGD3xPUlI5CgqFe0/oBcUh+A== + +esbuild-linux-s390x@0.15.1: + version "0.15.1" + resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.1.tgz#1340260371f01703fe91376d9550f0bcf709d7a4" + integrity sha512-TScRbO4mi4AUUXzIQ8sb6ZXhGkCb/PlJ82qFfBE6xxsioae/d6XaSdaha/+OUTvmPeoro3lNf3vwdw27v3wEgw== + +esbuild-netbsd-64@0.15.1: + version "0.15.1" + resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.1.tgz#b3c31b64a88379d0a16f44ffc66a0c879a4105ae" + integrity sha512-ES2pbK8QfsMZbdPkgjkLwWfnEGtPa0vYzVFLQn7GFgP+RiemY+ulH7WWQ8ezMt9rZl4XAR3y14yKLGX0gsBLaw== + +esbuild-openbsd-64@0.15.1: + version "0.15.1" + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.1.tgz#2447e8734a8fccfa91f4cbfc2816b09ec38d468f" + integrity sha512-DxNWji11AxSEny4HzSKu21Skia8tEPQI1N+XO/RqVOJComOvsFLq+QeooKsK2caOsQIKl9mO14Hh+px+zFabMA== + +esbuild-sunos-64@0.15.1: + version "0.15.1" + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.1.tgz#bca632708b8fc124a15477433ad2ae22f3726e0d" + integrity sha512-lwZoWlv893qtQQx5H4QQCh2mcYzGbxEz09ESFdd4cHcUCfjb193bSAy6jPxW2efBx2fHEo2sw43TRtAkpCf+XQ== + +esbuild-windows-32@0.15.1: + version "0.15.1" + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.1.tgz#c5577ed48901075772db1332ed5098b0a3cf6e2f" + integrity sha512-jEFz8DxP+Hh67fk9XMoyLUqPjjoCT6m4bnl36aze0XpPZDuQm0SBDlG/ciOBCjzHDsu/MYUNwxVezvUT3sXh1A== + +esbuild-windows-64@0.15.1: + version "0.15.1" + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.1.tgz#4fd2d9c62b37e98adff350a2763622c5c0e27c21" + integrity sha512-bUetnfw4xXKBTOQx4sTzoENJVEdgAN29ZTLRtnMseRzsMO8pjObQMsRPpPL3Cstt6FJhj3k3uScHc5VnfC9QkA== + +esbuild-windows-arm64@0.15.1: + version "0.15.1" + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.1.tgz#6243dd249fccb7b6993096da51173d97a2714b37" + integrity sha512-oN0JMj7fQZOiqJ/f/wc8lkxjvWwj5Yz0ZhOeU90JFaPZAfafNnysi6GS95glY5uwLUUJz/RNc84cb0dK2qT89A== + +esbuild@^0.15.1: + version "0.15.1" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.1.tgz#8979137b6c125281d148553d0257ef47e2746793" + integrity sha512-zgxo2st9wSbdiR6rTo44l/L7ohttqdXFmhUi5tE6yWahgdBjCwZjBgIkm/gr/TcBTTIwyzd7em8WI37yZ+F2Mg== optionalDependencies: - "@esbuild/linux-loong64" "0.14.54" - esbuild-android-64 "0.14.54" - esbuild-android-arm64 "0.14.54" - esbuild-darwin-64 "0.14.54" - esbuild-darwin-arm64 "0.14.54" - esbuild-freebsd-64 "0.14.54" - esbuild-freebsd-arm64 "0.14.54" - esbuild-linux-32 "0.14.54" - esbuild-linux-64 "0.14.54" - esbuild-linux-arm "0.14.54" - esbuild-linux-arm64 "0.14.54" - esbuild-linux-mips64le "0.14.54" - esbuild-linux-ppc64le "0.14.54" - esbuild-linux-riscv64 "0.14.54" - esbuild-linux-s390x "0.14.54" - esbuild-netbsd-64 "0.14.54" - esbuild-openbsd-64 "0.14.54" - esbuild-sunos-64 "0.14.54" - esbuild-windows-32 "0.14.54" - esbuild-windows-64 "0.14.54" - esbuild-windows-arm64 "0.14.54" + "@esbuild/linux-loong64" "0.15.1" + esbuild-android-64 "0.15.1" + esbuild-android-arm64 "0.15.1" + esbuild-darwin-64 "0.15.1" + esbuild-darwin-arm64 "0.15.1" + esbuild-freebsd-64 "0.15.1" + esbuild-freebsd-arm64 "0.15.1" + esbuild-linux-32 "0.15.1" + esbuild-linux-64 "0.15.1" + esbuild-linux-arm "0.15.1" + esbuild-linux-arm64 "0.15.1" + esbuild-linux-mips64le "0.15.1" + esbuild-linux-ppc64le "0.15.1" + esbuild-linux-riscv64 "0.15.1" + esbuild-linux-s390x "0.15.1" + esbuild-netbsd-64 "0.15.1" + esbuild-openbsd-64 "0.15.1" + esbuild-sunos-64 "0.15.1" + esbuild-windows-32 "0.15.1" + esbuild-windows-64 "0.15.1" + esbuild-windows-arm64 "0.15.1" ev-emitter@^1.0.0: version "1.1.1" From ae32b08de905752643ad2455ee2878bb30694bd0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 12 Aug 2022 21:01:31 +0000 Subject: [PATCH 1108/2165] chore(deps): bump graphql from 2.0.12 to 2.0.13 Bumps [graphql](https://github.com/rmosolgo/graphql-ruby) from 2.0.12 to 2.0.13. - [Release notes](https://github.com/rmosolgo/graphql-ruby/releases) - [Changelog](https://github.com/rmosolgo/graphql-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/rmosolgo/graphql-ruby/compare/v2.0.12...v2.0.13) --- updated-dependencies: - dependency-name: graphql dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 458dfb022..eb16ea320 100644 --- a/Gemfile +++ b/Gemfile @@ -18,7 +18,7 @@ gem 'lograge', '~> 0.12.0' # API gem 'active_model_serializers', '~> 0.10.13' -gem 'graphql', '~> 2.0.12' +gem 'graphql', '~> 2.0.13' gem 'rack-cors', '~> 1.1.1' gem 'health_check', '~> 3.1.0' gem 'tiny_appstore_connect', '~> 0.1.7' #path: '/Users/icyleaf/Development/ruby/tiny_appstore_connect' diff --git a/Gemfile.lock b/Gemfile.lock index 0152f5561..2bfbaf57a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -169,7 +169,7 @@ GEM graphiql-rails (1.8.0) railties sprockets-rails - graphql (2.0.12) + graphql (2.0.13) guard (2.18.0) formatador (>= 0.2.4) listen (>= 2.7, < 4.0) @@ -529,7 +529,7 @@ DEPENDENCIES faraday (~> 2.5.2) friendly_id (~> 5.4.2) graphiql-rails - graphql (~> 2.0.12) + graphql (~> 2.0.13) guard (~> 2.18.0) guard-bundler guard-migrate From 9cea53922574bf49ff8583cdb1c5c138367d3f16 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 15 Aug 2022 14:31:31 +0800 Subject: [PATCH 1109/2165] =?UTF-8?q?fix:=20Arm=20=E8=8A=AF=E7=89=87=20mac?= =?UTF-8?q?OS=20=E5=AF=B9=20iOS=20=E5=BA=94=E7=94=A8=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E5=AE=89=E8=A3=85=E5=92=8C=E4=B8=8B=E8=BD=BD=E5=8F=8C=E6=8C=89?= =?UTF-8?q?=E9=92=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/releases_controller.rb | 2 +- app/helpers/apps_helper.rb | 5 +++++ .../release_download_controller.js | 21 ++++++++++++++++--- app/models/release.rb | 19 ++++++++++------- app/services/create_sample_apps_service.rb | 8 +++---- .../releases/body/_install_app.html.slim | 1 + 6 files changed, 41 insertions(+), 15 deletions(-) diff --git a/app/controllers/releases_controller.rb b/app/controllers/releases_controller.rb index 7fde7835b..d23a5c3f5 100644 --- a/app/controllers/releases_controller.rb +++ b/app/controllers/releases_controller.rb @@ -32,7 +32,7 @@ def create @release = @channel.releases.upload_file(release_params) authorize @release - return render :new unless @release.save + return render :new, status: :unprocessable_entity unless @release.save # 触发异步任务 @release.channel.perform_web_hook('upload_events') diff --git a/app/helpers/apps_helper.rb b/app/helpers/apps_helper.rb index 7635dd3c4..425e60084 100644 --- a/app/helpers/apps_helper.rb +++ b/app/helpers/apps_helper.rb @@ -82,4 +82,9 @@ def channel_platform(channel) def changelog_format(changelog, **options) simple_format changelog, **options end + + # Arm based chip, such like M1, M2 of macOS + def mac_arm64? + RUBY_PLATFORM.include?('darwin') && RUBY_PLATFORM.include?('arm64') + end end diff --git a/app/javascript/controllers/release_download_controller.js b/app/javascript/controllers/release_download_controller.js index 58684a6bc..6bca5a34d 100644 --- a/app/javascript/controllers/release_download_controller.js +++ b/app/javascript/controllers/release_download_controller.js @@ -21,7 +21,8 @@ export default class extends Controller { installUrl: String, installing: String, - installed: String + installed: String, + armBasedMac: Boolean } connect() { @@ -30,8 +31,10 @@ export default class extends Controller { } if (isiOS()) { - this.installButtonTarget && this.installButtonTarget.classList.remove("d-none") - this.downloadButtonTarget && this.downloadButtonTarget.classList.add("d-none") + this.showIntallButton() + this.hideDownloadButton + } else if (this.armBasedMacValue) { + this.showIntallButton() } } @@ -96,6 +99,18 @@ export default class extends Controller { this.installIssueTarget.classList.remove("d-none") } + showIntallButton() { + if (this.hasInstallButtonTarget) { + this.installButtonTarget.classList.remove("d-none") + } + } + + hideDownloadButton() { + if (this.hasDownloadButtonTarget) { + this.downloadButtonTarget.classList.add("d-none") + } + } + renderInstallLimited() { let textNode = this.installLimitedTarget.getElementsByClassName("text")[0] let brNode = document.createElement("br") diff --git a/app/models/release.rb b/app/models/release.rb index b00245a7d..0b42499bb 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -38,8 +38,13 @@ def self.version_by_channel(channel_slug, release_id) # 上传 app def self.upload_file(params, parser = nil, default_source = 'web') - file = params[:file].path - return if file.blank? + file = params[:file]&.path + if file.blank? + release = Release.new + release.errors.add(:file, :invalid) + + return release + end create(params) do |release| rescuing_app_parse_errors do @@ -193,14 +198,14 @@ def platform end def ios? - platform_type.casecmp?('iphone') || platform_type.casecmp?('ipad') || - platform_type.casecmp?('universal') + platform_type.casecmp?('ios') || platform_type.casecmp?('iphone') || + platform_type.casecmp?('ipad') || platform_type.casecmp?('universal') end def android? - platform_type.casecmp?('phone') || platform_type.casecmp?('tablet') || - platform_type.casecmp?('watch') || platform_type.casecmp?('television') || - platform_type.casecmp?('automotive') + platform_type.casecmp?('android') || platform_type.casecmp?('phone') || + platform_type.casecmp?('tablet') || platform_type.casecmp?('watch') || + platform_type.casecmp?('television') || platform_type.casecmp?('automotive') end def mac? diff --git a/app/services/create_sample_apps_service.rb b/app/services/create_sample_apps_service.rb index d8d1aa5f2..4e370b572 100644 --- a/app/services/create_sample_apps_service.rb +++ b/app/services/create_sample_apps_service.rb @@ -62,7 +62,7 @@ def stardford_app(user) end RELEASE_COUNT.times do |i| - generate_release(channel, bundle_id, release_type, changelog, build_version: (i + 1).to_s) + generate_release(channel, bundle_id, release_type, changelog, build_version: (i + 1).to_s, device_type: 'iPhone') end end end @@ -82,12 +82,12 @@ def android_channels_app(user) channels.each_with_index do |channel_name, i| channel = scheme.channels.find_or_create_by name: channel_name, device_type: :android - generate_release(channel, app_bundle_id, 'release', changelog, build_version: (i + 1).to_s) + generate_release(channel, app_bundle_id, 'release', changelog, build_version: (i + 1).to_s, device_type: 'Phone') end end end - def generate_release(channel, app_bundle_id, release_type, changelog, build_version: '1') + def generate_release(channel, app_bundle_id, release_type, changelog, build_version: '1', device_type: nil) Release.new( channel: channel, bundle_id: app_bundle_id, @@ -96,7 +96,7 @@ def generate_release(channel, app_bundle_id, release_type, changelog, build_vers release_type: release_type, source: 'API', branch: 'develop', - device_type: channel.device_type, + device_type: device_type || channel.device_type, git_commit: SecureRandom.hex, changelog: changelog ).save(validate: false) diff --git a/app/views/releases/body/_install_app.html.slim b/app/views/releases/body/_install_app.html.slim index 0092398d1..2af169cb4 100644 --- a/app/views/releases/body/_install_app.html.slim +++ b/app/views/releases/body/_install_app.html.slim @@ -6,6 +6,7 @@ data-release-download-installed-value="#{t('releases.show.installed')}" data-release-download-open-safari-value="#{t('releases.show.app_open_in_safari')}" data-release-download-open-brower-value="#{t('releases.show.app_open_in_webbrower')}" + data-release-download-arm-based-mac-value="#{mac_arm64?}" ] == render 'releases/body/app_limited' From 8493e1e4cdc80666937b08aae56d7b7f904f6c14 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 15 Aug 2022 14:33:26 +0800 Subject: [PATCH 1110/2165] =?UTF-8?q?chore:=20=E5=88=87=E6=8D=A2=E6=AD=A3?= =?UTF-8?q?=E5=BC=8F=E7=89=88=20sidekiq-failures?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 2 +- Gemfile.lock | 12 +++--------- app/helpers/apps_helper.rb | 5 ----- .../controllers/release_download_controller.js | 7 +++---- app/javascript/controllers/utils.js | 7 ++++++- app/views/releases/body/_install_app.html.slim | 3 --- 6 files changed, 13 insertions(+), 23 deletions(-) diff --git a/Gemfile b/Gemfile index eb16ea320..e0eb55d5a 100644 --- a/Gemfile +++ b/Gemfile @@ -87,7 +87,7 @@ gem 'rqrcode' gem 'activejob-status' gem 'sidekiq', '~> 6.5.4' gem 'sidekiq-scheduler', '~> 4.0.2' -gem 'sidekiq-failures', github: 'mhfs/sidekiq-failures', ref: '3329242204d814a350719c6a2c50a14666dafe53' # 等待新版本发布后移除 +gem 'sidekiq-failures', '~> 1.0.3' # Assets ## jsbundling-rails, cssbundling-rails 仅生成配置文件到项目组,核心还是 package.json 中 build/build:css 部分。 diff --git a/Gemfile.lock b/Gemfile.lock index 2bfbaf57a..aa51b1123 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,11 +1,3 @@ -GIT - remote: https://github.com/mhfs/sidekiq-failures - revision: 3329242204d814a350719c6a2c50a14666dafe53 - ref: 3329242204d814a350719c6a2c50a14666dafe53 - specs: - sidekiq-failures (1.0.1) - sidekiq (>= 4.0.0) - GEM remote: https://rubygems.org/ specs: @@ -444,6 +436,8 @@ GEM connection_pool (>= 2.2.2) rack (~> 2.0) redis (>= 4.5.0) + sidekiq-failures (1.0.3) + sidekiq (>= 4.0.0) sidekiq-scheduler (4.0.2) redis (>= 4.2.0) rufus-scheduler (~> 3.2) @@ -574,7 +568,7 @@ DEPENDENCIES sentry-ruby sentry-sidekiq sidekiq (~> 6.5.4) - sidekiq-failures! + sidekiq-failures (~> 1.0.3) sidekiq-scheduler (~> 4.0.2) simple_form (~> 5.1) slim-rails (~> 3.5.1) diff --git a/app/helpers/apps_helper.rb b/app/helpers/apps_helper.rb index 425e60084..7635dd3c4 100644 --- a/app/helpers/apps_helper.rb +++ b/app/helpers/apps_helper.rb @@ -82,9 +82,4 @@ def channel_platform(channel) def changelog_format(changelog, **options) simple_format changelog, **options end - - # Arm based chip, such like M1, M2 of macOS - def mac_arm64? - RUBY_PLATFORM.include?('darwin') && RUBY_PLATFORM.include?('arm64') - end end diff --git a/app/javascript/controllers/release_download_controller.js b/app/javascript/controllers/release_download_controller.js index 6bca5a34d..d8cbc7f91 100644 --- a/app/javascript/controllers/release_download_controller.js +++ b/app/javascript/controllers/release_download_controller.js @@ -1,6 +1,6 @@ import { Controller } from "@hotwired/stimulus" import jquery from "jquery" -import { isiOS } from "./utils" +import { isiOS, isMacOS } from "./utils" const LOADING_TIMEOUT = 8000 @@ -21,8 +21,7 @@ export default class extends Controller { installUrl: String, installing: String, - installed: String, - armBasedMac: Boolean + installed: String } connect() { @@ -33,7 +32,7 @@ export default class extends Controller { if (isiOS()) { this.showIntallButton() this.hideDownloadButton - } else if (this.armBasedMacValue) { + } else if (isMacOS()) { this.showIntallButton() } } diff --git a/app/javascript/controllers/utils.js b/app/javascript/controllers/utils.js index c900be9a6..ccaca6f9a 100644 --- a/app/javascript/controllers/utils.js +++ b/app/javascript/controllers/utils.js @@ -40,10 +40,15 @@ const isiOS = () => { return isiPhoneOriPod || isiPad } +const isMacOS = () => { + let os = uaParser.getOS() + return os.name === "Mac OS" +} + // Detect NonApple OS (Windows/Linux/Android etc) const isNonAppleOS = () => { let os = uaParser.getOS() return !(os.name === "Mac OS" || os.name === "iOS") } -export { poll, uaParser, isiOS, isNonAppleOS } \ No newline at end of file +export { poll, uaParser, isMacOS, isiOS, isNonAppleOS } \ No newline at end of file diff --git a/app/views/releases/body/_install_app.html.slim b/app/views/releases/body/_install_app.html.slim index 2af169cb4..2f79340a4 100644 --- a/app/views/releases/body/_install_app.html.slim +++ b/app/views/releases/body/_install_app.html.slim @@ -6,7 +6,6 @@ data-release-download-installed-value="#{t('releases.show.installed')}" data-release-download-open-safari-value="#{t('releases.show.app_open_in_safari')}" data-release-download-open-brower-value="#{t('releases.show.app_open_in_webbrower')}" - data-release-download-arm-based-mac-value="#{mac_arm64?}" ] == render 'releases/body/app_limited' @@ -18,8 +17,6 @@ button.btn.btn-icon.btn-lg.btn-success.d-none[ data-action="release-download#install" data-release-download-target="installButton" - data-install-url="#{@release.install_url}" - data-loading-text="#{t('releases.show.installing')}" ] i.fas.fa-mobile-alt = t('releases.show.install') From 7c91c3a61396e60d97c365595d6ad813d488fb1e Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 15 Aug 2022 19:08:11 +0800 Subject: [PATCH 1111/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E4=B8=8D?= =?UTF-8?q?=E7=AC=A6=E5=90=88=20semver=20=E7=89=88=E6=9C=AC=E6=AF=94?= =?UTF-8?q?=E8=BE=83=E5=8C=B9=E9=85=8D=E6=96=B0=E7=89=88=E6=9C=AC=E5=88=97?= =?UTF-8?q?=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/channel.rb | 46 +++++++++++++------- app/models/concerns/version_compare.rb | 60 ++++++++++++++++++++++++++ 2 files changed, 91 insertions(+), 15 deletions(-) create mode 100644 app/models/concerns/version_compare.rb diff --git a/app/models/channel.rb b/app/models/channel.rb index 8a0b0aff8..568b8d6df 100755 --- a/app/models/channel.rb +++ b/app/models/channel.rb @@ -2,6 +2,7 @@ class Channel < ApplicationRecord include FriendlyId + include VersionCompare friendly_id :slug @@ -28,11 +29,25 @@ def recently_releases(limit = 10) releases.limit(limit).order(id: :desc) end + # Find new releases by given arguments + # Steps: + # 1. Find given release, return nil if not found + # 2. Find all new release after given release + # 3. Select the real releases by version compare (pre-handle version to semver value) def find_since_version(bundle_id, release_version, build_version) - releases.where("release_version >= '#{release_version}'") - .where("build_version > '#{build_version}'") - .where(bundle_id: bundle_id) - .order(id: :desc) + current_release = releases.select(:id).find_by( + bundle_id: bundle_id, + release_version: release_version, + build_version: build_version + ) + return unless current_release + + releases.where('id > ?', current_release.id) + .order(id: :desc) + .select { |release| + ge_version(release.release_version, release_version) && + gt_version(release.build_version, build_version) + } end def app_name @@ -41,17 +56,18 @@ def app_name def release_versions(limit = 10) versions = releases.select(:release_version) - .group(:release_version) - .map(&:release_version) - .sort do |a,b| - begin - Gem::Version.new(b) <=> Gem::Version.new(a) - rescue ArgumentError => e - # Note: 处理版本号是 android-1.2.3 类似非标版本号的异常,如有发现就放最后面 - # 后续如果有人反馈问题多了再说,看到本注释的请告知遵守版本号标准 - e.message.include?(a) ? 1 : -1 - end - end + .group(:release_version) + .map(&:release_version) + .sort do |a,b| + begin + version_compare(b, a) + rescue ArgumentError => e + # Note: 处理版本号是 android-1.2.3 类似非标版本号的异常,如有发现就放最后面 + # 后续如果有人反馈问题多了再说,看到本注释的请告知遵守版本号标准 + e.message.include?(a) ? 1 : -1 + end + end + versions.size >= limit ? versions[0..limit - 1] : versions end diff --git a/app/models/concerns/version_compare.rb b/app/models/concerns/version_compare.rb new file mode 100644 index 000000000..2ac6b8f4e --- /dev/null +++ b/app/models/concerns/version_compare.rb @@ -0,0 +1,60 @@ +# frozen_string_literal: true + +module VersionCompare + extend ActiveSupport::Concern + + VERSION_REGEX = /((\d+\.?)+)(([-_\.]?\w+)*\d*)?/ + + # Returns the boolean truth of source = target + def same_version(source, target) + version_compare(source, target) == 0 + end + + # Returns the boolean truth of source > target + def gt_version(source, target) + version_compare(source, target) == 1 + end + + # Returns the boolean truth of source >= target + def ge_version(source, target) + gt_version(source, target) || same_version(source, target) + end + + # Returns the boolean truth of source < target + def lt_version(source, target) + version_compare(source, target) == -1 + end + + # Returns the boolean truth of source <= target + def le_version(source, target) + lt_version(source, target) || same_version(source, target) + end + + # Version compare + # + # source > target return 1 + # source = target return 0 + # source < target return -1 + def version_compare(source, target) + Gem::Version.new(semver(source)) <=> Gem::Version.new(semver(target)) + end + + # Convert general version to semver + # + # android-1.2.3 => 1.2.3 + # 608151815 => 608151815 + # 1 => 1 + # 1.2.3.4 => 1.2.3.4 + # 4.12.4 => 4.12.4 + # 0.1.0.pre1 => 0.1.0.pre1 + # 0.1.0.alpha.1 => 0.1.0.alpha.1 + # 0.1.0.rc2 => 0.1.0.rc2 + # v1.2.43.33333 => 1.2.43.33333 + # 1.1.beta9 => 1.1.beta9 + # 20200127.013811 => 20200127.013811 + def semver(version) + return version unless matches = VERSION_REGEX.match(version) + + matches[0] + end +end From 67b92f63bb7c128aea1b9275c6168eb3ae835dbb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 15 Aug 2022 21:01:33 +0000 Subject: [PATCH 1112/2165] chore(deps): bump esbuild from 0.15.1 to 0.15.3 Bumps [esbuild](https://github.com/evanw/esbuild) from 0.15.1 to 0.15.3. - [Release notes](https://github.com/evanw/esbuild/releases) - [Changelog](https://github.com/evanw/esbuild/blob/master/CHANGELOG.md) - [Commits](https://github.com/evanw/esbuild/compare/v0.15.1...v0.15.3) --- updated-dependencies: - dependency-name: esbuild dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 258 +++++++++++++++++++++++++-------------------------- 2 files changed, 130 insertions(+), 130 deletions(-) diff --git a/package.json b/package.json index 03d677ec0..65704bf6f 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "admin-lte": "3.1.0", "clipboard": "^2.0.11", "compare-versions": "^4.1.3", - "esbuild": "^0.15.1", + "esbuild": "^0.15.3", "sass": "^1.54.4", "ua-parser-js": "^1.0.2" }, diff --git a/yarn.lock b/yarn.lock index 8e7e05019..86b1e3ebc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,10 +2,10 @@ # yarn lockfile v1 -"@esbuild/linux-loong64@0.15.1": - version "0.15.1" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.1.tgz#f293d9442201fa7448248f05590139bb8e521856" - integrity sha512-1tORADNFK9QS4KYyUyh3Td9WGrdiI1rSoKvY6A43+9G0kPujBuT4lIGyoK0AweOSO1aRIR28xQUfiJCUa78bUw== +"@esbuild/linux-loong64@0.15.3": + version "0.15.3" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.3.tgz#0a39aa5c8a7639828914e6edc064ded72ff68d3a" + integrity sha512-pe7L+LnITFHUSUnuhSQRyYN2E5Anl0r7x/jW+ufc+4fBcaK3Q51b/3ufFWWhmIiuCkr7oKtmVSpaJ1DxbtSfuw== "@fortawesome/fontawesome-free@^5.15.3": version "5.15.4" @@ -672,132 +672,132 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -esbuild-android-64@0.15.1: - version "0.15.1" - resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.1.tgz#f609a37348a3784ae632e88517d2e5f579984806" - integrity sha512-q5kkJZsgLIkyh5e2ZJl4/kXKIueBKtjVMEihP9WCHadqhH6+F9qiycE7fBwUb/g2B15mYlmMBXjp8VmOT3J2gA== - -esbuild-android-arm64@0.15.1: - version "0.15.1" - resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.1.tgz#94b064dfa87bacbfb623313ead8338d357175a10" - integrity sha512-IQuZOzqMaFceLlKJJA27CXAdh+Mzh2ZblHMmcNIu/wxb6iX1zgYXlPWle62iHnmNCtfAux1mzQvmNsP9aLhemA== - -esbuild-darwin-64@0.15.1: - version "0.15.1" - resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.1.tgz#d15ed63dada464c18a8245199294df5b22c865ff" - integrity sha512-tyouWLyxwM/Y2fy/reuIvAvVB+KVQwuY9IVyV7LH5CGkJYxgtLb8xVEiwHFF8TG2uo9a2fqdgWffados4YA6Aw== - -esbuild-darwin-arm64@0.15.1: - version "0.15.1" - resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.1.tgz#c8c6a8949faa88cccbc508143662d53a111d7ee0" - integrity sha512-fb4V1eB1nir3zJwsS75itsbahkbM71XuqUDJVH8iyBLS8VIQD7MWWAAekea2l9keueGfsn0+wTyDluMT+kg8Cw== - -esbuild-freebsd-64@0.15.1: - version "0.15.1" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.1.tgz#4ebbbd954e2e72cf35e78185f4da810a8c3fce2f" - integrity sha512-1KxEv/FUPlQtUSOjFCwR8FVNEskB5LmkbfW9FNJ7lhpG+4RsLiHWw4Sl2Y1/S+aKX7inyWxLA05zYV6XAzO8DA== - -esbuild-freebsd-arm64@0.15.1: - version "0.15.1" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.1.tgz#a377942ed5b2578f9d8e8aea1396db59df5e1742" - integrity sha512-ueUMGSNrcuHwAadioxBdfOCO4+bTVeI68a147BQ/AFFIrf4XJNow4UXxguvQlZO+ZYaVz6EztaL6mHslKie2Rw== - -esbuild-linux-32@0.15.1: - version "0.15.1" - resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.1.tgz#7226edd9517ee0bdc0ea7a8be1b5047d31de9426" - integrity sha512-K5WWcN2OZkZ6arFN3+hi1leKc0at9ukKGrXK9Ia94kQOesBphTSmsNK/Gy/AoVoIa0bWrHtxDijS9j9+dz86oA== - -esbuild-linux-64@0.15.1: - version "0.15.1" - resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.1.tgz#fbf0f6320a99f940170b76cc650e623c728d9480" - integrity sha512-+haiVm83DfRi9x8M+GgR4f4LtSN8lnEIG8XMGK8/FYpkYNQiKb398GxeHp2yvoMpX8IPvmWCt215tAm5BBNfZQ== - -esbuild-linux-arm64@0.15.1: - version "0.15.1" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.1.tgz#4a33a9b9dc95d537264aaf05a3e3fdbf6fb8cce5" - integrity sha512-TP0BCVZEVu/aoVaZe2sn1vpvo63j0LPiH8rvd7AegqOfTwb+mcxLxpgyYwkibafUCMxnIrKdUTsSJeusoMhcLg== - -esbuild-linux-arm@0.15.1: - version "0.15.1" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.1.tgz#31773327a2c8edfd77c7cf12ded141b2db0b25c6" - integrity sha512-qjAkEDcFhVNYwG2xgaDg/hA8JABoMvjzAzE6g1K8kR516oNkKbVf6rN68UrsQaV1zq1qR3dbVeMv/Ul2bheppA== - -esbuild-linux-mips64le@0.15.1: - version "0.15.1" - resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.1.tgz#714b8c49886349d2a599f05fae5cb7dc5e574658" - integrity sha512-8vzQzp+kwrn1Y+OjvfFaLS8uL8aR39WnAtxOHwjB72s9g18kHFlE8IQLS9dWDQgKpBSFq9kazsJE65dSVmz+VA== - -esbuild-linux-ppc64le@0.15.1: - version "0.15.1" - resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.1.tgz#5df1ec88d850745de2ce23d1a4117d04d36b8a32" - integrity sha512-QlWSOgC2Ad53Xvf7ZivXU7wM2y29YhQUrd50PjK0QJ3psh/eYSQx77PTe1iWm7Ovjiqv1wPKEAyC7CbyJUgriw== - -esbuild-linux-riscv64@0.15.1: - version "0.15.1" - resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.1.tgz#3ccf408ec4682630862310e28038d30639e2623c" - integrity sha512-/PRNgNsiwb7G2n3rB5WcHinCwKj0OqUmtu8cdakV4CLNWnFnfChEGEJX1x5n8RcGD3xPUlI5CgqFe0/oBcUh+A== - -esbuild-linux-s390x@0.15.1: - version "0.15.1" - resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.1.tgz#1340260371f01703fe91376d9550f0bcf709d7a4" - integrity sha512-TScRbO4mi4AUUXzIQ8sb6ZXhGkCb/PlJ82qFfBE6xxsioae/d6XaSdaha/+OUTvmPeoro3lNf3vwdw27v3wEgw== - -esbuild-netbsd-64@0.15.1: - version "0.15.1" - resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.1.tgz#b3c31b64a88379d0a16f44ffc66a0c879a4105ae" - integrity sha512-ES2pbK8QfsMZbdPkgjkLwWfnEGtPa0vYzVFLQn7GFgP+RiemY+ulH7WWQ8ezMt9rZl4XAR3y14yKLGX0gsBLaw== - -esbuild-openbsd-64@0.15.1: - version "0.15.1" - resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.1.tgz#2447e8734a8fccfa91f4cbfc2816b09ec38d468f" - integrity sha512-DxNWji11AxSEny4HzSKu21Skia8tEPQI1N+XO/RqVOJComOvsFLq+QeooKsK2caOsQIKl9mO14Hh+px+zFabMA== - -esbuild-sunos-64@0.15.1: - version "0.15.1" - resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.1.tgz#bca632708b8fc124a15477433ad2ae22f3726e0d" - integrity sha512-lwZoWlv893qtQQx5H4QQCh2mcYzGbxEz09ESFdd4cHcUCfjb193bSAy6jPxW2efBx2fHEo2sw43TRtAkpCf+XQ== - -esbuild-windows-32@0.15.1: - version "0.15.1" - resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.1.tgz#c5577ed48901075772db1332ed5098b0a3cf6e2f" - integrity sha512-jEFz8DxP+Hh67fk9XMoyLUqPjjoCT6m4bnl36aze0XpPZDuQm0SBDlG/ciOBCjzHDsu/MYUNwxVezvUT3sXh1A== - -esbuild-windows-64@0.15.1: - version "0.15.1" - resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.1.tgz#4fd2d9c62b37e98adff350a2763622c5c0e27c21" - integrity sha512-bUetnfw4xXKBTOQx4sTzoENJVEdgAN29ZTLRtnMseRzsMO8pjObQMsRPpPL3Cstt6FJhj3k3uScHc5VnfC9QkA== - -esbuild-windows-arm64@0.15.1: - version "0.15.1" - resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.1.tgz#6243dd249fccb7b6993096da51173d97a2714b37" - integrity sha512-oN0JMj7fQZOiqJ/f/wc8lkxjvWwj5Yz0ZhOeU90JFaPZAfafNnysi6GS95glY5uwLUUJz/RNc84cb0dK2qT89A== - -esbuild@^0.15.1: - version "0.15.1" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.1.tgz#8979137b6c125281d148553d0257ef47e2746793" - integrity sha512-zgxo2st9wSbdiR6rTo44l/L7ohttqdXFmhUi5tE6yWahgdBjCwZjBgIkm/gr/TcBTTIwyzd7em8WI37yZ+F2Mg== +esbuild-android-64@0.15.3: + version "0.15.3" + resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.3.tgz#8096ff8bd80ac855a35e28ad04a67e76f18754ba" + integrity sha512-sHGQ50Bb80ow+DZ8s6mabWn/j+vgfsNDMhipv4v410O++C6gpEcR9A5jR9bTkMsVbr46Id0MMhUGpBasq8H92A== + +esbuild-android-arm64@0.15.3: + version "0.15.3" + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.3.tgz#70fea382b5eea6f033a42c2d19fa70f8fde2d31e" + integrity sha512-+Oiwzgp7HTyeNkgpQySGLCq3zFmvVVyBiNz8bO+7Tc6tlnxSYf8jjQBThRTUsy6vrrjG91h9vZNlYkiikzzWUg== + +esbuild-darwin-64@0.15.3: + version "0.15.3" + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.3.tgz#4902b82c23c91795b40af1341bf73d03f28c7706" + integrity sha512-n2BkxzCPHv6OOOs9gxp4AYsccawuw9bDeW9rpSASHao0zQ/u0kP6bjD4ATf2G4A3cml8HGwp18aROl4ws+4Ytg== + +esbuild-darwin-arm64@0.15.3: + version "0.15.3" + resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.3.tgz#7143f443c9a5da355cdb2fbfbf129708d75902ab" + integrity sha512-fSk5M1vQ+y48csVJ4QxweT//DdDytDAb0AvU1gYITqZGA1kL1/i4C5fjKDNZMjB7dkg2a+rfkMyrpZUli+To/w== + +esbuild-freebsd-64@0.15.3: + version "0.15.3" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.3.tgz#fb28355d9a59dff40427d74602b452597a031601" + integrity sha512-b21XfM0Wrxu0CzFQN7B4xuAMGUNLT3F3J2NMeLxbUq6lcl2N3Isho1q2AF5bOCpCXVM04k1+PgoQLwNzGYtnjw== + +esbuild-freebsd-arm64@0.15.3: + version "0.15.3" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.3.tgz#c5542f88b48bfef1dbb910d224a9c1dd7f6d86ff" + integrity sha512-E0LkWSz7Ch1B2WFXbGvfN3q9uUlQCahBi3S7wTSJO2T41x0BPnIFHw79/RuGKVyA17mX/I7RVOSRnrla2D4tag== + +esbuild-linux-32@0.15.3: + version "0.15.3" + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.3.tgz#0b127edc535540e96df1df5007764a03018d1157" + integrity sha512-af7BhXXKwzXL83bfJX8vkxsyDbOr9T5auxyBJnBfkd2w7VwXC1heDT2TQ1cWCWyjqVatyKudW5RCSAySDKDW2Q== + +esbuild-linux-64@0.15.3: + version "0.15.3" + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.3.tgz#53949de49ffd4b079c234aecc936a9a5ada977db" + integrity sha512-Wwq+5ZF2IPE/6W2kJLPnh7eXqtz5XtdPBRB77nhm02my6PsZR3aa/q/fRkJhwO6ExM+t9l3kFhWL4pMwk3wREA== + +esbuild-linux-arm64@0.15.3: + version "0.15.3" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.3.tgz#b6bf7ebbc453f71dc96f535a466cd144edf81748" + integrity sha512-qNvYyYjNm4JPXJcCJv7gXEnyqw2k9W+SeYMoG7RiwWHWv1cMX6xlxPLGz5yIxjH9+VBXkA1nrY/YohaiKq2O3g== + +esbuild-linux-arm@0.15.3: + version "0.15.3" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.3.tgz#01d75bd360f7b96243e1c13e389e2e1a514b8b00" + integrity sha512-88ycpH4GrbOzaZIIXIzljbeCUkzoaJ5luP6+LATa5hk/Wl+OHkAieDfjAHdH8KuHkGYTojKE1npQq9gll9efUA== + +esbuild-linux-mips64le@0.15.3: + version "0.15.3" + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.3.tgz#687e6acfa6b8818a67398ac18615a4fac18647d9" + integrity sha512-t5TXW6Cw8S9Lts7SDZ8rlx/dqPJx8hndYKL6xEgA2vdlrE60eIYTAYWJqsGN0dgePtFC1RPyH6To15l7s9WdYA== + +esbuild-linux-ppc64le@0.15.3: + version "0.15.3" + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.3.tgz#0c502cdf48a635460c80c95e620676a78a2f60e6" + integrity sha512-TXxPgEWOPCY4F6ZMf7+915+H0eOB6AlcZBwjeBs+78ULpzvcmMzZ2ujF2IejKZXYWuMTORPNoG+MuVGBuyUysA== + +esbuild-linux-riscv64@0.15.3: + version "0.15.3" + resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.3.tgz#ee99fe2c1636f0e7127e13fd21783ec7b350e2f6" + integrity sha512-04tvrbHA83N+tg+qQeJmUQ3jWStUP7+rw+v/l2h3PsNGbcH3WmsgR0Tf0e1ext09asV4x2PX2b2Nm/gBIOrpqg== + +esbuild-linux-s390x@0.15.3: + version "0.15.3" + resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.3.tgz#2e3491e04ad8108f928c94291b38e8529370f5e1" + integrity sha512-LHxnvvFMhA/uy9CSrnlCtPZnTfWahR9NPLKwXBgfg16YqpKbRHty+mek1o7l+2G5qLeFEEvhB0a7c+hYgbW/3w== + +esbuild-netbsd-64@0.15.3: + version "0.15.3" + resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.3.tgz#8f41cb1c0c26befbf0bcd50e89580f66ec45bb32" + integrity sha512-8W0UxNuNsgBBa1SLjwqbbDLJF9mf+lvytaYPt5kXbBrz0DI4mKYFlujLQrxLKh8tvs2zRdFNy9HVqmMdbZ1OIQ== + +esbuild-openbsd-64@0.15.3: + version "0.15.3" + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.3.tgz#fa2e84480fe043480401c73fdfb944ba2d21826d" + integrity sha512-QL7xYQ4noukuqh8UGnsrk1m+ShPMYIXjOnAQl3siA7VV6cjuUoCxx6cThgcUDzih8iL5u2xgsGRhsviQIMsUuA== + +esbuild-sunos-64@0.15.3: + version "0.15.3" + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.3.tgz#23b8904294344075ce5020155ddd4e28d079cc10" + integrity sha512-vID32ZCZahWDqlEoq9W7OAZDtofAY8aW0V58V5l+kXEvaKvR0m99FLNRuGGY3IDNwjUoOkvoFiMMiy+ONnN7GA== + +esbuild-windows-32@0.15.3: + version "0.15.3" + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.3.tgz#472a5d09bcf4c1ebf2761c73214f15f6c5a16583" + integrity sha512-dnrlwu6T85QU9fO0a35HAzgAXm3vVqg+3Kr9EXkmnf5PHv9t7hT/EYW6g/8YYu91DDyGTk9JSyN32YzQ3OS9Lw== + +esbuild-windows-64@0.15.3: + version "0.15.3" + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.3.tgz#77438af8bd79df722d5af6e4e527bd7d1c48dc57" + integrity sha512-HUSlVCpTtOnIKeIn05zz0McNCfZhnu5UgUypmpNrv4Ff1XTvl6vBpQwIZ49eIAkY9zI6oe1Mu6N5ZG7u6X4s7A== + +esbuild-windows-arm64@0.15.3: + version "0.15.3" + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.3.tgz#68810c8ba6ab93e42e3aa323f37f6538f0379df6" + integrity sha512-sk6fVXCzGB0uW089+8LdeanZkQUZ+3/xdbWshgLGRawV0NyjSFH4sZPIy+DJnhEnT0pPt1DabZtqrq2DT0FWNw== + +esbuild@^0.15.3: + version "0.15.3" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.3.tgz#d4180ef567a4563de425e2b2166f871467cc2b0b" + integrity sha512-D1qLizJTYlGIOK5m/1ckH8vR2U573eLMMA57qvWg/9jj8jPIhjpafv4kxb6ra2eeTlVq8tISxjsyRKbTaeF6PA== optionalDependencies: - "@esbuild/linux-loong64" "0.15.1" - esbuild-android-64 "0.15.1" - esbuild-android-arm64 "0.15.1" - esbuild-darwin-64 "0.15.1" - esbuild-darwin-arm64 "0.15.1" - esbuild-freebsd-64 "0.15.1" - esbuild-freebsd-arm64 "0.15.1" - esbuild-linux-32 "0.15.1" - esbuild-linux-64 "0.15.1" - esbuild-linux-arm "0.15.1" - esbuild-linux-arm64 "0.15.1" - esbuild-linux-mips64le "0.15.1" - esbuild-linux-ppc64le "0.15.1" - esbuild-linux-riscv64 "0.15.1" - esbuild-linux-s390x "0.15.1" - esbuild-netbsd-64 "0.15.1" - esbuild-openbsd-64 "0.15.1" - esbuild-sunos-64 "0.15.1" - esbuild-windows-32 "0.15.1" - esbuild-windows-64 "0.15.1" - esbuild-windows-arm64 "0.15.1" + "@esbuild/linux-loong64" "0.15.3" + esbuild-android-64 "0.15.3" + esbuild-android-arm64 "0.15.3" + esbuild-darwin-64 "0.15.3" + esbuild-darwin-arm64 "0.15.3" + esbuild-freebsd-64 "0.15.3" + esbuild-freebsd-arm64 "0.15.3" + esbuild-linux-32 "0.15.3" + esbuild-linux-64 "0.15.3" + esbuild-linux-arm "0.15.3" + esbuild-linux-arm64 "0.15.3" + esbuild-linux-mips64le "0.15.3" + esbuild-linux-ppc64le "0.15.3" + esbuild-linux-riscv64 "0.15.3" + esbuild-linux-s390x "0.15.3" + esbuild-netbsd-64 "0.15.3" + esbuild-openbsd-64 "0.15.3" + esbuild-sunos-64 "0.15.3" + esbuild-windows-32 "0.15.3" + esbuild-windows-64 "0.15.3" + esbuild-windows-arm64 "0.15.3" ev-emitter@^1.0.0: version "1.1.1" From 4d76df53c7d12fa2af49969c17b3a5c2aed0885b Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 16 Aug 2022 11:05:48 +0800 Subject: [PATCH 1113/2165] =?UTF-8?q?refactor:=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E6=9F=A5=E6=89=BE=E6=96=B0=E7=89=88=E6=9C=AC=E9=80=BB=E8=BE=91?= =?UTF-8?q?=EF=BC=8C=E9=98=B2=E6=AD=A2=E5=87=BA=E7=8E=B0=E6=89=BE=E4=B8=8D?= =?UTF-8?q?=E5=88=B0=E7=89=88=E6=9C=AC=E8=BF=94=E5=9B=9E=E7=A9=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/channel.rb | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/app/models/channel.rb b/app/models/channel.rb index 568b8d6df..70fdc1d4e 100755 --- a/app/models/channel.rb +++ b/app/models/channel.rb @@ -29,25 +29,33 @@ def recently_releases(limit = 10) releases.limit(limit).order(id: :desc) end - # Find new releases by given arguments - # Steps: - # 1. Find given release, return nil if not found - # 2. Find all new release after given release - # 3. Select the real releases by version compare (pre-handle version to semver value) + # Find new releases by given arguments, following rules: + # + # 1. Find given release then find all new release after given release + # 2. Or from newer versions to comapre and return + # *) Given version always convert tosemver value def find_since_version(bundle_id, release_version, build_version) current_release = releases.select(:id).find_by( bundle_id: bundle_id, release_version: release_version, build_version: build_version ) - return unless current_release - releases.where('id > ?', current_release.id) + if current_release + releases.where('id > ?', current_release.id) .order(id: :desc) .select { |release| ge_version(release.release_version, release_version) && gt_version(release.build_version, build_version) } + else + newer_versions = release_versions.select { |version| ge_version(version, release_version) } + releases.where( + bundle_id: bundle_id, + release_version: newer_versions, + ) + .order(id: :desc) + end end def app_name @@ -68,6 +76,8 @@ def release_versions(limit = 10) end end + return versions if limit.blank? || limit <= 0 + versions.size >= limit ? versions[0..limit - 1] : versions end From 3ddc931602328dbbaab40291033a11af8d643002 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 16 Aug 2022 17:26:50 +0800 Subject: [PATCH 1114/2165] =?UTF-8?q?doc:=20=E6=96=B0=E7=9A=84=20README=20?= =?UTF-8?q?=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 95 +++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 61 insertions(+), 34 deletions(-) diff --git a/README.md b/README.md index b5d00aa45..d311d5971 100644 --- a/README.md +++ b/README.md @@ -1,41 +1,48 @@ -# Zealot - -[![GitHub release](https://img.shields.io/github/v/release/tryzealot/zealot?include_prereleases)](https://github.com/tryzealot/zealot/blob/develop/CHANGELOG.md) -[![Docker Pulls](https://img.shields.io/docker/pulls/tryzealot/zealot.svg)](https://hub.docker.com/r/tryzealot/zealot/) -[![Maintainability](https://codeclimate.com/github/tryzealot/zealot/badges/gpa.svg)](https://codeclimate.com/github/tryzealot/zealot) -[![Codacy Badge](https://app.codacy.com/project/badge/Grade/5e5c7bbeb1214fa39b11a7414f0d7171)](https://www.codacy.com/gh/tryzealot/zealot) -[![License](https://img.shields.io/github/license/tryzealot/zealot)](LICENSE) - -[English Document](https://zealot.ews.im/#/en/) | [简体中文文档](https://zealot.ews.im) - -开源自部署 iOS、Android 及 macOS 应用分发平台,提供 iOS、Android SDK、fastlane 等丰富组件库,打包分发流程、上传应用竟然如此简单、独立部署解决企业使用的烦恼。 En Taro Adun! 🖖 +
      + + +

      Zealot

      + +

      + 开源自部署 iOS、Android 及 macOS 应用分发平台,提供 iOS、Android SDK、fastlane 等丰富组件库,打包分发流程、上传应用竟然如此简单、独立部署解决企业使用的烦恼。 En Taro Adun! 🖖 +

      + + + changelog + + + docker image + + + chat on telegram + + + codeclimate + + + codacy + + +
      + + Install • + Configuration • + REST API • + SDK • + Screenshots +
      ![Zealot Showcase](https://zealot.ews.im/_media/showcase.png) ## 特性 -- [x] 支持 iOS、Android (apk/aab) 和 macOS 应用的上传、在线安装和本地下载 -- [x] 自定义网络钩子通知各种服务(譬如钉钉、企业微信、Slack 等) -- [x] 多类型(Debug、AdHoc、Release)及渠道(应用商店等)管理 -- [x] iOS dSYM 和 Android Progruard 文件的解析和存储 -- [x] 应用解包(甚至 mobileprovision 文件)存储和分享 -- [x] 检查新版本和安装服务的 iOS 和 Android SDK 组件 -- [x] 获取 iOS 设备 UDID 显示支持安装的应用列表 -- [x] 飞书、Gitlab、Google 和 LDAP 一键登录 -- [x] 托管苹果开发者智能注册 iOS 测试设备 -- [x] 持续构建的 fastlane 插件 [zealot](https://github.com/tryzealot/fastlane-plugin-zealot) -- [x] Gitlab 服务直接挂钩源码管理 -- [ ] Jenkins 服务实现远程构建 -- [x] 丰富的 REST APIs -- [ ] GraphQL 接口 -- [x] 黑暗模式 - -## 在线演示 - -- 演示地址:https://tryzealot.herokuapp.com/ -- 电子邮箱: `admin@zealot.com` -- 登录密码:`ze@l0t` - -> **注意**: 数据每日都会重新初始化,不对用户上传的应用承担任何法律风险,后果自负! +- 🌏 **多平台应用支持**: macOS、iOS、甚至是 APK 和 AAB 格式的 Android 应用上传、下载和 +- 🗄 **多渠道分类管理**: Debug、AdHoc、Enterprise 还是 Android 应用渠道管理统统没问题 +- 📱 **测试设备一网打进**: 自动同步 iOS 测试设备信息,允许一键注册新设备到苹果开发者 +- 🧑‍💻 **丰富开发者套件**: 提供 REST API、[iOS][zealot-ios-sdk]、[Android][android-android-sdk] SDK 以及 [fastlane][fastlane-plugin-zealot] 自动化构建插件 +- 💥 **剖析应用内部的秘密**: 解读 iOS、Android 应用或 iOS 描述文件的元信息 +- 🚨 **内置多种事件通知**: 数据可自定义 Income WebHook 到任意通知服务 +- 🔑 **第三方登录**: 飞书、Gitlab、Google 和 LDAP 一键授权 +- 🌑 **黑暗模式**: 黑夜白昼自由切换 ## 快速部署 @@ -51,6 +58,15 @@ $ ./deploy 如果想知道使用 Zealot 如何全流程无缝 CI/CD 接入 iOS 和 Android 请看[实践教程](https://zealot.ews.im/#/best_practices) +## 在线演示 + +- 演示地址:https://tryzealot.herokuapp.com/ +- 电子邮箱: `admin@zealot.com` +- 登录密码:`ze@l0t` + +> **注意**: 数据每日都会重新初始化,不对用户上传的应用承担任何法律风险,后果自负! + + ## 帮助和文档 你可以查看更多的功能截图: @@ -74,3 +90,14 @@ https://zealot.ews.im/#/changelog https://zealot.ews.im 对 Zealot 有疑问或者建议,欢迎[提交问题](https://github.com/tryzealot/zealot/issues/new),我会非常欢迎的。 + + +## 发布协议 + +[MIT][mit-link] + + +[zealot-ios-sdk]: https://github.com/tryzealot/zealot-ios +[android-android-sdk]: https://github.com/tryzealot/zealot-android +[fastlane-plugin-zealot]: https://github.com/tryzealot/fastlane-plugin-zealot +[mit-link]: https://github.com/tryzealot/zealot/blob/develop/CHANGELOG.md \ No newline at end of file From fa6eb46d74a95549dd24943204d5f5b6ca8b0c85 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 16 Aug 2022 17:41:26 +0800 Subject: [PATCH 1115/2165] =?UTF-8?q?chore:=20=E6=96=B0=E5=A2=9E=E5=90=8C?= =?UTF-8?q?=E6=AD=A5=20README=20=E7=9A=84=20action?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/sync_readme.yml | 32 +++++++++++++++++++++++++++++++ README.md | 3 +-- 2 files changed, 33 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/sync_readme.yml diff --git a/.github/workflows/sync_readme.yml b/.github/workflows/sync_readme.yml new file mode 100644 index 000000000..65ddc58d0 --- /dev/null +++ b/.github/workflows/sync_readme.yml @@ -0,0 +1,32 @@ +name: Sync README to Organization +on: + push: + paths: + - 'README.md' + - '.github/workflows/sync_readme.yml' + branches: + - develop +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + with: + submodules: false + fetch-depth: 0 + + - name: Organize folder + run: | + mkdir -p output/profile + cp README.md output/profile + + - name: Pushes to Organization + uses: cpina/github-action-push-to-another-repository@main + env: + SSH_DEPLOY_KEY: ${{ secrets.SSH_DEPLOY_KEY }} + with: + source-directory: 'output' + destination-github-username: 'tryzealot' + destination-repository-name: '.github' + user-email: icyleaf.cn@gmail.com + target-branch: main \ No newline at end of file diff --git a/README.md b/README.md index d311d5971..6c68939a8 100644 --- a/README.md +++ b/README.md @@ -35,7 +35,7 @@ ![Zealot Showcase](https://zealot.ews.im/_media/showcase.png) ## 特性 -- 🌏 **多平台应用支持**: macOS、iOS、甚至是 APK 和 AAB 格式的 Android 应用上传、下载和 +- 🌏 **多平台应用支持**: macOS、iOS、甚至是 APK 和 AAB 格式的 Android 应用上传、安装(支持 ARM 的 macOS)和下载 - 🗄 **多渠道分类管理**: Debug、AdHoc、Enterprise 还是 Android 应用渠道管理统统没问题 - 📱 **测试设备一网打进**: 自动同步 iOS 测试设备信息,允许一键注册新设备到苹果开发者 - 🧑‍💻 **丰富开发者套件**: 提供 REST API、[iOS][zealot-ios-sdk]、[Android][android-android-sdk] SDK 以及 [fastlane][fastlane-plugin-zealot] 自动化构建插件 @@ -66,7 +66,6 @@ $ ./deploy > **注意**: 数据每日都会重新初始化,不对用户上传的应用承担任何法律风险,后果自负! - ## 帮助和文档 你可以查看更多的功能截图: From 69e7047a0237f1b4ba9cb16d3710352b6bf25215 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 16 Aug 2022 17:57:47 +0800 Subject: [PATCH 1116/2165] =?UTF-8?q?chore:=20=E6=96=B0=E5=A2=9E=E7=94=B5?= =?UTF-8?q?=E6=8A=A5=E6=8A=80=E6=9C=AF=E8=AE=A8=E8=AE=BA=E6=B8=A0=E9=81=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/ISSUE_TEMPLATE/config.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 2bff93626..e30c6135e 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -3,6 +3,6 @@ contact_links: - name: 问题提问 | Ask a question (GitHub Discussions) url: https://github.com/tryzealot/zealot/discussions about: 所有问题会放在 GitHub Discussions,GitHub issues 仅提供缺陷追踪和新特性相关,但我保留不回答的权利 | We use GitHub Discussions for questions, GitHub issues for tracking bug reports and feature requests - - name: 私下技术沟通 | Chat with developer - url: https://github.com/tryzealot/zealot - about: 别想了!就算你找到我了,我也不会给予任何回复!开发者会在在本页面上述反馈方式进行回复 | No way! \ No newline at end of file + - name: 电报技术讨论 | Chat on Telegram + url: https://t.me/tryzealot_lobby + about: 开放技术沟通不意味着解答任何问题,发言前请带着脑子思考 | Open technical communication does not mean answering any questions, please think with your head before you speak \ No newline at end of file From 1bd367c25e5d4add5b24f23a8cfdf9d884e7fc0a Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 16 Aug 2022 18:02:23 +0800 Subject: [PATCH 1117/2165] =?UTF-8?q?chore:=20=E6=9B=B4=E6=96=B0=20issue?= =?UTF-8?q?=20=E6=A8=A1=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/ISSUE_TEMPLATE/bug_report.yaml | 2 ++ .github/ISSUE_TEMPLATE/feature_request.yaml | 2 ++ 2 files changed, 4 insertions(+) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yaml b/.github/ISSUE_TEMPLATE/bug_report.yaml index 444640b1a..d42dc8aeb 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yaml +++ b/.github/ISSUE_TEMPLATE/bug_report.yaml @@ -1,5 +1,7 @@ name: 问题反馈 | Bug report description: 提交使用过程发现的缺陷 | Report a potential bug +title: "[Bug]: " +labels: ["bug"] body: - type: markdown attributes: diff --git a/.github/ISSUE_TEMPLATE/feature_request.yaml b/.github/ISSUE_TEMPLATE/feature_request.yaml index f7ec442f3..213723315 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yaml +++ b/.github/ISSUE_TEMPLATE/feature_request.yaml @@ -1,5 +1,7 @@ name: 新特性 | Feature request description: 期望开发新功能、新特性 | Request a feature +title: "[Feature Request]: " +labels: ["enhancement"] body: - type: textarea attributes: From b755ea52b58b9a5460722be0d0dd13a48d67b505 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 16 Aug 2022 18:43:36 +0800 Subject: [PATCH 1118/2165] =?UTF-8?q?refactor:=20=E7=BC=96=E8=BE=91?= =?UTF-8?q?=E5=BA=94=E7=94=A8=E5=8F=AA=E8=83=BD=E4=BF=AE=E6=94=B9=E5=BA=94?= =?UTF-8?q?=E7=94=A8=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/apps_controller.rb | 39 +++++++++++-------- app/models/app.rb | 3 -- app/views/apps/_form.html.slim | 9 +++-- config/locales/simple_form/simple_form.en.yml | 2 +- .../locales/simple_form/simple_form.zh-CN.yml | 2 +- 5 files changed, 30 insertions(+), 25 deletions(-) diff --git a/app/controllers/apps_controller.rb b/app/controllers/apps_controller.rb index dfa014b25..cdd145ad8 100644 --- a/app/controllers/apps_controller.rb +++ b/app/controllers/apps_controller.rb @@ -13,7 +13,6 @@ def index end def show - authorize @app @title = @app.name end @@ -26,8 +25,6 @@ def new end def edit - authorize @app - @title = t('.title') end @@ -38,25 +35,21 @@ def create return render :new, status: :unprocessable_entity unless @app.save @app.users << current_user - app_create_schemes_and_channels + create_schemes_and_channels redirect_to apps_path, notice: t('activerecord.success.create', key: "#{@app.name} #{t('apps.title')}") end def update - authorize @app - - if app_params.member?(:scheme_attributes) && app_params.member?(:channel_attributes) - flash[:alert] = t('apps.messages.failture.missing_schemes_and_channels') - return render :edit, status: :unprocessable_entity - end + # if @schemes.empty? && @channels.empty? + # flash[:alert] = t('apps.messages.failture.missing_schemes_and_channels') + # return render :edit, status: :unprocessable_entity + # end @app.update(app_params) redirect_to apps_path end def destroy - authorize @app - @app.destroy destory_app_data @@ -72,7 +65,7 @@ def destory_app_data FileUtils.rm_rf(app_binary_path) if Dir.exist?(app_binary_path) end - def app_create_schemes_and_channels + def create_schemes_and_channels @schemes.each do |scheme_name| scheme = @app.schemes.create(name: scheme_name) next if @channels.empty? @@ -83,9 +76,18 @@ def app_create_schemes_and_channels end end - def set_app - @app = App.find(params[:id]) - end + # def update_schemes_and_channels + # existed_schemes = @app.schemes.all + + # @schemes.each do |scheme_name| + # scheme = @app.schemes.find_by(name: scheme_name) + + + # @channels.each do |channel_name| + # scheme.channels.create name: channel_name, device_type: channel_name.downcase.to_sym + # end + # end + # end def set_selected_schemes_and_channels @schemes = [] @@ -105,6 +107,11 @@ def process_scheme_and_channel @channels = app_params.delete(:channel_attributes)[:name].reject(&:empty?) end + def set_app + @app = App.find(params[:id]) + authorize @app + end + def app_params @app_params ||= params.require(:app) .permit( diff --git a/app/models/app.rb b/app/models/app.rb index d27f2b8bc..c4ca4975b 100644 --- a/app/models/app.rb +++ b/app/models/app.rb @@ -6,9 +6,6 @@ class App < ApplicationRecord has_many :debug_files, dependent: :destroy scope :all_names, -> { all.map { |c| [c.name, c.id] } } - - accepts_nested_attributes_for :schemes - scope :avaiable_debug_files, -> { joins(:debug_files).distinct } validates :name, presence: true diff --git a/app/views/apps/_form.html.slim b/app/views/apps/_form.html.slim index 3b1679b35..52d79b710 100644 --- a/app/views/apps/_form.html.slim +++ b/app/views/apps/_form.html.slim @@ -17,8 +17,9 @@ ruby: = f.error_notification = f.input :name, required: true - = f.simple_fields_for :scheme_attributes do |n| - = n.input :name, as: :check_boxes, collection: preset_schemes, checked: @schemes, required: false - = f.simple_fields_for :channel_attributes do |n| - = n.input :name, as: :check_boxes, collection: preset_channels, checked: @channels, required: false + - if new_or_create_route? + = f.simple_fields_for :scheme_attributes do |n| + = n.input :name, as: :check_boxes, collection: preset_schemes, checked: @schemes, required: false + = f.simple_fields_for :channel_attributes do |n| + = n.input :name, as: :check_boxes, collection: preset_channels, checked: @channels, required: false = f.button :submit diff --git a/config/locales/simple_form/simple_form.en.yml b/config/locales/simple_form/simple_form.en.yml index ef2bab7b2..6e36adda5 100644 --- a/config/locales/simple_form/simple_form.en.yml +++ b/config/locales/simple_form/simple_form.en.yml @@ -83,7 +83,7 @@ en: channel: For example, the platform of app. app: schemes: - name: :'simple_form.hits.scheme.name' + name: :'simple_form.hints.scheme.name' scheme: name: App in the function, the type of audience-oriented division. for example, adhoc, test, production etc. channel: diff --git a/config/locales/simple_form/simple_form.zh-CN.yml b/config/locales/simple_form/simple_form.zh-CN.yml index 2270e2ee4..88c9717c1 100644 --- a/config/locales/simple_form/simple_form.zh-CN.yml +++ b/config/locales/simple_form/simple_form.zh-CN.yml @@ -83,7 +83,7 @@ zh-CN: channel: '应用会使用的平台' app: schemes: - name: :'simple_form.hits.scheme.name' + name: :'simple_form.hints.scheme.name' scheme: name: '应用在功能、面向受众划分的类型' channel: From 1c616c04e53ad795f8e7535e84a86e3e3ddec96c Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 16 Aug 2022 18:56:24 +0800 Subject: [PATCH 1119/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E8=AF=AD?= =?UTF-8?q?=E9=9F=B3=E5=88=87=E6=8D=A2=E5=A4=B1=E6=95=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/admin/settings_controller.rb | 34 ++++++++++++-------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/app/controllers/admin/settings_controller.rb b/app/controllers/admin/settings_controller.rb index f49c65bd1..bec851298 100644 --- a/app/controllers/admin/settings_controller.rb +++ b/app/controllers/admin/settings_controller.rb @@ -1,8 +1,10 @@ # frozen_string_literal: true class Admin::SettingsController < ApplicationController - before_action :set_setting, only: %i[edit update destroy] - before_action :verify_editable_setting, only: %i[edit destroy] + before_action :set_setting, only: %i[ edit update destroy ] + before_action :verify_editable_setting, only: %i[ edit destroy ] + after_action :patch_edited_value, only: %i[ edit ] + after_action :clear_cache_value, only: %i[ update destroy ] def index @title = t('.title') @@ -14,17 +16,6 @@ def edit @title = t('.title') @value = @setting.value || @setting.default_value - - # FIXME: RailsSettings::Base 初始化会缓存造成 i18n 第一时间拿不到 - # 以至于 index, edit 好些地方都需要兼容 - if @setting.var == 'preset_schemes' && @setting.value.blank? - @value = Setting.builtin_schemes - end - - # 值的多语言支持显示 - if @value.is_a?(String) && @value.present? - @value = t("settings.#{@value}", default: @value) - end end def update @@ -66,6 +57,23 @@ def setting_param params[:setting].permit! end + def patch_edited_value + # FIXME: RailsSettings::Base 初始化会缓存造成 i18n 第一时间拿不到 + # 以至于 index, edit 好些地方都需要兼容 + if @setting.var == 'preset_schemes' && @setting.value.blank? + @value = Setting.builtin_schemes + end + + # 值的多语言支持显示 + if @value.is_a?(String) && @value.present? + @value = t("settings.#{@value}", default: @value) + end + end + + def clear_cache_value + Rails.cache.delete(@setting.var) + end + def verify_editable_setting readonly = @setting.readonly? === true demo_guest_with_secure_key = @setting.value.is_a?(Hash) && helpers.secure_key?(@setting.value) From ed5ffc59258573e6366948b08710aeffaf1681c4 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 17 Aug 2022 15:11:36 +0800 Subject: [PATCH 1120/2165] =?UTF-8?q?style:=20=E7=8E=AF=E5=A2=83=E5=8F=98?= =?UTF-8?q?=E9=87=8F=E8=BF=9B=E5=BA=A6=E6=9D=A1=E9=A2=9C=E8=89=B2=E6=98=BE?= =?UTF-8?q?=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/admin/system_info_controller.rb | 7 ++++--- app/views/admin/system_info/index.html.slim | 12 +++++++++--- config/locales/zealot/zh-CN.yml | 2 +- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/app/controllers/admin/system_info_controller.rb b/app/controllers/admin/system_info_controller.rb index d498f313e..2f5b25fcd 100644 --- a/app/controllers/admin/system_info_controller.rb +++ b/app/controllers/admin/system_info_controller.rb @@ -96,7 +96,7 @@ def set_services def set_disk_volumes @disks = ::Sys::Filesystem.mounts.each_with_object([]) do |mount, obj| mount_options = mount.options.split(',').map(&:strip) - next if (EXCLUDED_MOUNT_OPTIONS & mount_options).any? + # next if (EXCLUDED_MOUNT_OPTIONS & mount_options).any? next if (EXCLUDED_MOUNT_TYPES & [mount.mount_type]).any? begin @@ -109,6 +109,7 @@ def set_disk_volumes bytes_total: disk.bytes_total, bytes_used: disk.bytes_used, mount_path: disk.path, + mount_options: mount.options, percent: percent, color: progress_color(percent) ) @@ -144,7 +145,7 @@ def memory return @memory if @memory memory = Vmstat.memory - percent = percent(memory.active_bytes, memory.total_bytes) + percent = percent(memory.active_bytes, memory.total_bytes).round(0) @memory = { used: memory.active_bytes, total: memory.total_bytes, @@ -159,7 +160,7 @@ def diskspace return @diskspace if @diskspace disk = Sys::Filesystem.stat(Rails.root) - percent = percent(disk.bytes_used, disk.bytes_total) + percent = percent(disk.bytes_used, disk.bytes_total).round(0) @diskspace ||= { used: disk.bytes_used, total: disk.bytes_total, diff --git a/app/views/admin/system_info/index.html.slim b/app/views/admin/system_info/index.html.slim index 91d71ebb2..317976f13 100644 --- a/app/views/admin/system_info/index.html.slim +++ b/app/views/admin/system_info/index.html.slim @@ -46,7 +46,9 @@ pre - if memory = @server[:memory] = "#{number_to_human_size(memory[:used])} / #{number_to_human_size(memory[:total])}" - .progress.progress-bar-striped class="#{memory[:color]}" role="progressbar" aria-valuenow="#{memory[:percent]}" aria-valuemin="0" aria-valuemax="100" style="width: #{memory[:percent]}%" + .progress. + .progress-bar-striped class="#{memory[:color]}" role="progressbar" aria-valuenow="#{memory[:percent]}" aria-valuemin="0" aria-valuemax="100" style="width: #{memory[:percent]}%" + span.sr-only = "#{memory[:percent]}%" - else = t('.fail_detect_memory') dt = t('.disk_info') @@ -54,7 +56,9 @@ pre - if diskspace = @server[:diskspace] = "#{number_to_human_size(diskspace[:used])} / #{number_to_human_size(diskspace[:total])}" - .progress.progress-bar-striped class="#{diskspace[:color]}" role="progressbar" aria-valuenow="#{diskspace[:percent]}" aria-valuemin="0" aria-valuemax="100" style="width: #{diskspace[:percent]}%" + .progress + .progress-bar-striped class="#{diskspace[:color]}" role="progressbar" aria-valuenow="#{diskspace[:percent]}" aria-valuemin="0" aria-valuemax="100" style="width: #{diskspace[:percent]}%" + span.sr-only = "#{diskspace[:percent]}%" - else = t('.fail_detect_disk') dt = t('.lauched_time') @@ -114,7 +118,9 @@ dd pre = "#{number_to_human_size(disk[:bytes_used])} / #{number_to_human_size(disk[:bytes_total])}" - .progress.progress-bar-striped class="#{disk[:color]}" role="progressbar" aria-valuenow="#{disk[:percent]}" aria-valuemin="0" aria-valuemax="100" style="width: #{disk[:percent]}%" + .progress data-mount-options="#{disk[:mount_options]}" + .progress-bar-striped class="#{disk[:color]}" role="progressbar" aria-valuenow="#{disk[:percent]}" aria-valuemin="0" aria-valuemax="100" style="width: #{disk[:percent]}%" + span.sr-only = "#{disk[:percent]}%" - else = t('.fail_detect_disk') diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index 0599be509..ffd5ec2f0 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -179,7 +179,7 @@ zh-CN: disk_info: 磁盘 lauched_time: 运行时间 volume_mounted: 挂载信息 - fail_detect_disk: 硬盘信息无法获取 + fail_detect_disk: 无法解读硬盘信息 system_environment: 系统变量 file_permissions: 文件权限 services: 服务状态 From 5de43b3c3c34055ee21c083049f56c7139212db8 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 18 Aug 2022 11:49:53 +0800 Subject: [PATCH 1121/2165] =?UTF-8?q?chore:=20=E5=A2=9E=E5=8A=A0=20i18n=20?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 67 ++++++++++++++++------------------------------------- crowdin.yml | 5 ++++ 2 files changed, 25 insertions(+), 47 deletions(-) create mode 100644 crowdin.yml diff --git a/README.md b/README.md index 6c68939a8..41bd9234f 100644 --- a/README.md +++ b/README.md @@ -23,13 +23,21 @@ codacy -
      - - Install • - Configuration • - REST API • - SDK • - Screenshots +
      + Install • + Configuration • + REST API • + SDK • + Screenshots +
      + +
      + 自部署 • + 配置 • + REST API • + SDK • + 功能截图 +
      ![Zealot Showcase](https://zealot.ews.im/_media/showcase.png) @@ -44,52 +52,17 @@ - 🔑 **第三方登录**: 飞书、Gitlab、Google 和 LDAP 一键授权 - 🌑 **黑暗模式**: 黑夜白昼自由切换 -## 快速部署 - -``` -$ git clone https://github.com/tryzealot/zealot-docker.git -$ cd zealot-docker -$ ./deploy -``` - -按照部署脚本可以快速部署系统服务,如需自定义其他配置请看[项目配置](https://zealot.ews.im/#/configuration) - -## 最佳实践 - -如果想知道使用 Zealot 如何全流程无缝 CI/CD 接入 iOS 和 Android 请看[实践教程](https://zealot.ews.im/#/best_practices) - ## 在线演示 -- 演示地址:https://tryzealot.herokuapp.com/ -- 电子邮箱: `admin@zealot.com` -- 登录密码:`ze@l0t` - > **注意**: 数据每日都会重新初始化,不对用户上传的应用承担任何法律风险,后果自负! -## 帮助和文档 - -你可以查看更多的功能截图: - -https://zealot.ews.im/#/screenshot - -你可以了解下支持什么插件: - -https://zealot.ews.im/#/modules - -你可以了解提供的 HTTP API 接口: - -https://zealot.ews.im/#/api - -你可以了解变更日志: - -https://zealot.ews.im/#/changelog - -对于项目细节感兴趣就来看看翻翻文档: - -https://zealot.ews.im +- 演示地址:https://tryzealot.herokuapp.com/ +- 登录账户: `admin@zealot.com` +- 登录密码:`ze@l0t` -对 Zealot 有疑问或者建议,欢迎[提交问题](https://github.com/tryzealot/zealot/issues/new),我会非常欢迎的。 +## 开发统计 +![Alt](https://repobeats.axiom.co/api/embed/caba5e356c0e8258d395aaa9f70fec475a2eb643.svg "Repobeats analytics image") ## 发布协议 diff --git a/crowdin.yml b/crowdin.yml new file mode 100644 index 000000000..1797d024a --- /dev/null +++ b/crowdin.yml @@ -0,0 +1,5 @@ +files: + - source: /config/locales/zealot/zh-CN.yml + translation: /config/locales/zealot/%two_letters_code%.yml + - source: /config/locales/simple_form/simple_form.zh-CN.yml + translation: /config/locales/simple_form/simple_form.%two_letters_code%.yml \ No newline at end of file From f43c2cedee54d8097e7781bac670a4ae77e8fbdf Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 18 Aug 2022 11:52:20 +0800 Subject: [PATCH 1122/2165] Update Crowdin configuration file --- crowdin.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crowdin.yml b/crowdin.yml index 1797d024a..8b1606a21 100644 --- a/crowdin.yml +++ b/crowdin.yml @@ -2,4 +2,4 @@ files: - source: /config/locales/zealot/zh-CN.yml translation: /config/locales/zealot/%two_letters_code%.yml - source: /config/locales/simple_form/simple_form.zh-CN.yml - translation: /config/locales/simple_form/simple_form.%two_letters_code%.yml \ No newline at end of file + translation: /config/locales/simple_form/simple_form.%two_letters_code%.yml From bdea97a1542a36343341b3cb5b1b12423db9eea1 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 18 Aug 2022 11:53:34 +0800 Subject: [PATCH 1123/2165] =?UTF-8?q?doc:=20README=20=E5=A2=9E=E5=8A=A0=20?= =?UTF-8?q?i10n=20badge?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 41bd9234f..54137ca8f 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,7 @@ chat on telegram + codeclimate From a45435d1e94ab1b3eff976afc7b4b5a27e3fe015 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 18 Aug 2022 21:01:38 +0000 Subject: [PATCH 1124/2165] chore(deps): bump sentry-ruby from 5.4.1 to 5.4.2 Bumps [sentry-ruby](https://github.com/getsentry/sentry-ruby) from 5.4.1 to 5.4.2. - [Release notes](https://github.com/getsentry/sentry-ruby/releases) - [Changelog](https://github.com/getsentry/sentry-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-ruby/compare/5.4.1...5.4.2) --- updated-dependencies: - dependency-name: sentry-ruby dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index aa51b1123..cbc668ae5 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -426,7 +426,7 @@ GEM sentry-rails (5.4.1) railties (>= 5.0) sentry-ruby (~> 5.4.1) - sentry-ruby (5.4.1) + sentry-ruby (5.4.2) concurrent-ruby (~> 1.0, >= 1.0.2) sentry-sidekiq (5.4.1) sentry-ruby (~> 5.4.1) From fa917fd3e74d0ea46eb0f5c88f39606d2f92f8b3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 18 Aug 2022 21:01:43 +0000 Subject: [PATCH 1125/2165] chore(deps): bump esbuild from 0.15.3 to 0.15.5 Bumps [esbuild](https://github.com/evanw/esbuild) from 0.15.3 to 0.15.5. - [Release notes](https://github.com/evanw/esbuild/releases) - [Changelog](https://github.com/evanw/esbuild/blob/master/CHANGELOG.md) - [Commits](https://github.com/evanw/esbuild/compare/v0.15.3...v0.15.5) --- updated-dependencies: - dependency-name: esbuild dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 258 +++++++++++++++++++++++++-------------------------- 2 files changed, 130 insertions(+), 130 deletions(-) diff --git a/package.json b/package.json index 65704bf6f..b311529b6 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "admin-lte": "3.1.0", "clipboard": "^2.0.11", "compare-versions": "^4.1.3", - "esbuild": "^0.15.3", + "esbuild": "^0.15.5", "sass": "^1.54.4", "ua-parser-js": "^1.0.2" }, diff --git a/yarn.lock b/yarn.lock index 86b1e3ebc..c0467e640 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,10 +2,10 @@ # yarn lockfile v1 -"@esbuild/linux-loong64@0.15.3": - version "0.15.3" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.3.tgz#0a39aa5c8a7639828914e6edc064ded72ff68d3a" - integrity sha512-pe7L+LnITFHUSUnuhSQRyYN2E5Anl0r7x/jW+ufc+4fBcaK3Q51b/3ufFWWhmIiuCkr7oKtmVSpaJ1DxbtSfuw== +"@esbuild/linux-loong64@0.15.5": + version "0.15.5" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.5.tgz#91aef76d332cdc7c8942b600fa2307f3387e6f82" + integrity sha512-UHkDFCfSGTuXq08oQltXxSZmH1TXyWsL+4QhZDWvvLl6mEJQqk3u7/wq1LjhrrAXYIllaTtRSzUXl4Olkf2J8A== "@fortawesome/fontawesome-free@^5.15.3": version "5.15.4" @@ -672,132 +672,132 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -esbuild-android-64@0.15.3: - version "0.15.3" - resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.3.tgz#8096ff8bd80ac855a35e28ad04a67e76f18754ba" - integrity sha512-sHGQ50Bb80ow+DZ8s6mabWn/j+vgfsNDMhipv4v410O++C6gpEcR9A5jR9bTkMsVbr46Id0MMhUGpBasq8H92A== - -esbuild-android-arm64@0.15.3: - version "0.15.3" - resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.3.tgz#70fea382b5eea6f033a42c2d19fa70f8fde2d31e" - integrity sha512-+Oiwzgp7HTyeNkgpQySGLCq3zFmvVVyBiNz8bO+7Tc6tlnxSYf8jjQBThRTUsy6vrrjG91h9vZNlYkiikzzWUg== - -esbuild-darwin-64@0.15.3: - version "0.15.3" - resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.3.tgz#4902b82c23c91795b40af1341bf73d03f28c7706" - integrity sha512-n2BkxzCPHv6OOOs9gxp4AYsccawuw9bDeW9rpSASHao0zQ/u0kP6bjD4ATf2G4A3cml8HGwp18aROl4ws+4Ytg== - -esbuild-darwin-arm64@0.15.3: - version "0.15.3" - resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.3.tgz#7143f443c9a5da355cdb2fbfbf129708d75902ab" - integrity sha512-fSk5M1vQ+y48csVJ4QxweT//DdDytDAb0AvU1gYITqZGA1kL1/i4C5fjKDNZMjB7dkg2a+rfkMyrpZUli+To/w== - -esbuild-freebsd-64@0.15.3: - version "0.15.3" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.3.tgz#fb28355d9a59dff40427d74602b452597a031601" - integrity sha512-b21XfM0Wrxu0CzFQN7B4xuAMGUNLT3F3J2NMeLxbUq6lcl2N3Isho1q2AF5bOCpCXVM04k1+PgoQLwNzGYtnjw== - -esbuild-freebsd-arm64@0.15.3: - version "0.15.3" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.3.tgz#c5542f88b48bfef1dbb910d224a9c1dd7f6d86ff" - integrity sha512-E0LkWSz7Ch1B2WFXbGvfN3q9uUlQCahBi3S7wTSJO2T41x0BPnIFHw79/RuGKVyA17mX/I7RVOSRnrla2D4tag== - -esbuild-linux-32@0.15.3: - version "0.15.3" - resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.3.tgz#0b127edc535540e96df1df5007764a03018d1157" - integrity sha512-af7BhXXKwzXL83bfJX8vkxsyDbOr9T5auxyBJnBfkd2w7VwXC1heDT2TQ1cWCWyjqVatyKudW5RCSAySDKDW2Q== - -esbuild-linux-64@0.15.3: - version "0.15.3" - resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.3.tgz#53949de49ffd4b079c234aecc936a9a5ada977db" - integrity sha512-Wwq+5ZF2IPE/6W2kJLPnh7eXqtz5XtdPBRB77nhm02my6PsZR3aa/q/fRkJhwO6ExM+t9l3kFhWL4pMwk3wREA== - -esbuild-linux-arm64@0.15.3: - version "0.15.3" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.3.tgz#b6bf7ebbc453f71dc96f535a466cd144edf81748" - integrity sha512-qNvYyYjNm4JPXJcCJv7gXEnyqw2k9W+SeYMoG7RiwWHWv1cMX6xlxPLGz5yIxjH9+VBXkA1nrY/YohaiKq2O3g== - -esbuild-linux-arm@0.15.3: - version "0.15.3" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.3.tgz#01d75bd360f7b96243e1c13e389e2e1a514b8b00" - integrity sha512-88ycpH4GrbOzaZIIXIzljbeCUkzoaJ5luP6+LATa5hk/Wl+OHkAieDfjAHdH8KuHkGYTojKE1npQq9gll9efUA== - -esbuild-linux-mips64le@0.15.3: - version "0.15.3" - resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.3.tgz#687e6acfa6b8818a67398ac18615a4fac18647d9" - integrity sha512-t5TXW6Cw8S9Lts7SDZ8rlx/dqPJx8hndYKL6xEgA2vdlrE60eIYTAYWJqsGN0dgePtFC1RPyH6To15l7s9WdYA== - -esbuild-linux-ppc64le@0.15.3: - version "0.15.3" - resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.3.tgz#0c502cdf48a635460c80c95e620676a78a2f60e6" - integrity sha512-TXxPgEWOPCY4F6ZMf7+915+H0eOB6AlcZBwjeBs+78ULpzvcmMzZ2ujF2IejKZXYWuMTORPNoG+MuVGBuyUysA== - -esbuild-linux-riscv64@0.15.3: - version "0.15.3" - resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.3.tgz#ee99fe2c1636f0e7127e13fd21783ec7b350e2f6" - integrity sha512-04tvrbHA83N+tg+qQeJmUQ3jWStUP7+rw+v/l2h3PsNGbcH3WmsgR0Tf0e1ext09asV4x2PX2b2Nm/gBIOrpqg== - -esbuild-linux-s390x@0.15.3: - version "0.15.3" - resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.3.tgz#2e3491e04ad8108f928c94291b38e8529370f5e1" - integrity sha512-LHxnvvFMhA/uy9CSrnlCtPZnTfWahR9NPLKwXBgfg16YqpKbRHty+mek1o7l+2G5qLeFEEvhB0a7c+hYgbW/3w== - -esbuild-netbsd-64@0.15.3: - version "0.15.3" - resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.3.tgz#8f41cb1c0c26befbf0bcd50e89580f66ec45bb32" - integrity sha512-8W0UxNuNsgBBa1SLjwqbbDLJF9mf+lvytaYPt5kXbBrz0DI4mKYFlujLQrxLKh8tvs2zRdFNy9HVqmMdbZ1OIQ== - -esbuild-openbsd-64@0.15.3: - version "0.15.3" - resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.3.tgz#fa2e84480fe043480401c73fdfb944ba2d21826d" - integrity sha512-QL7xYQ4noukuqh8UGnsrk1m+ShPMYIXjOnAQl3siA7VV6cjuUoCxx6cThgcUDzih8iL5u2xgsGRhsviQIMsUuA== - -esbuild-sunos-64@0.15.3: - version "0.15.3" - resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.3.tgz#23b8904294344075ce5020155ddd4e28d079cc10" - integrity sha512-vID32ZCZahWDqlEoq9W7OAZDtofAY8aW0V58V5l+kXEvaKvR0m99FLNRuGGY3IDNwjUoOkvoFiMMiy+ONnN7GA== - -esbuild-windows-32@0.15.3: - version "0.15.3" - resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.3.tgz#472a5d09bcf4c1ebf2761c73214f15f6c5a16583" - integrity sha512-dnrlwu6T85QU9fO0a35HAzgAXm3vVqg+3Kr9EXkmnf5PHv9t7hT/EYW6g/8YYu91DDyGTk9JSyN32YzQ3OS9Lw== - -esbuild-windows-64@0.15.3: - version "0.15.3" - resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.3.tgz#77438af8bd79df722d5af6e4e527bd7d1c48dc57" - integrity sha512-HUSlVCpTtOnIKeIn05zz0McNCfZhnu5UgUypmpNrv4Ff1XTvl6vBpQwIZ49eIAkY9zI6oe1Mu6N5ZG7u6X4s7A== - -esbuild-windows-arm64@0.15.3: - version "0.15.3" - resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.3.tgz#68810c8ba6ab93e42e3aa323f37f6538f0379df6" - integrity sha512-sk6fVXCzGB0uW089+8LdeanZkQUZ+3/xdbWshgLGRawV0NyjSFH4sZPIy+DJnhEnT0pPt1DabZtqrq2DT0FWNw== - -esbuild@^0.15.3: - version "0.15.3" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.3.tgz#d4180ef567a4563de425e2b2166f871467cc2b0b" - integrity sha512-D1qLizJTYlGIOK5m/1ckH8vR2U573eLMMA57qvWg/9jj8jPIhjpafv4kxb6ra2eeTlVq8tISxjsyRKbTaeF6PA== +esbuild-android-64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.5.tgz#3c7b2f2a59017dab3f2c0356188a8dd9cbdc91c8" + integrity sha512-dYPPkiGNskvZqmIK29OPxolyY3tp+c47+Fsc2WYSOVjEPWNCHNyqhtFqQadcXMJDQt8eN0NMDukbyQgFcHquXg== + +esbuild-android-arm64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.5.tgz#e301db818c5a67b786bf3bb7320e414ac0fcf193" + integrity sha512-YyEkaQl08ze3cBzI/4Cm1S+rVh8HMOpCdq8B78JLbNFHhzi4NixVN93xDrHZLztlocEYqi45rHHCgA8kZFidFg== + +esbuild-darwin-64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.5.tgz#11726de5d0bf5960b92421ef433e35871c091f8d" + integrity sha512-Cr0iIqnWKx3ZTvDUAzG0H/u9dWjLE4c2gTtRLz4pqOBGjfjqdcZSfAObFzKTInLLSmD0ZV1I/mshhPoYSBMMCQ== + +esbuild-darwin-arm64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.5.tgz#ad89dafebb3613fd374f5a245bb0ce4132413997" + integrity sha512-WIfQkocGtFrz7vCu44ypY5YmiFXpsxvz2xqwe688jFfSVCnUsCn2qkEVDo7gT8EpsLOz1J/OmqjExePL1dr1Kg== + +esbuild-freebsd-64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.5.tgz#6bfb52b4a0d29c965aa833e04126e95173289c8a" + integrity sha512-M5/EfzV2RsMd/wqwR18CELcenZ8+fFxQAAEO7TJKDmP3knhWSbD72ILzrXFMMwshlPAS1ShCZ90jsxkm+8FlaA== + +esbuild-freebsd-arm64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.5.tgz#38a3fed8c6398072f9914856c7c3e3444f9ef4dd" + integrity sha512-2JQQ5Qs9J0440F/n/aUBNvY6lTo4XP/4lt1TwDfHuo0DY3w5++anw+jTjfouLzbJmFFiwmX7SmUhMnysocx96w== + +esbuild-linux-32@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.5.tgz#942dc70127f0c0a7ea91111baf2806e61fc81b32" + integrity sha512-gO9vNnIN0FTUGjvTFucIXtBSr1Woymmx/aHQtuU+2OllGU6YFLs99960UD4Dib1kFovVgs59MTXwpFdVoSMZoQ== + +esbuild-linux-64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.5.tgz#6d748564492d5daaa7e62420862c31ac3a44aed9" + integrity sha512-ne0GFdNLsm4veXbTnYAWjbx3shpNKZJUd6XpNbKNUZaNllDZfYQt0/zRqOg0sc7O8GQ+PjSMv9IpIEULXVTVmg== + +esbuild-linux-arm64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.5.tgz#28cd899beb2d2b0a3870fd44f4526835089a318d" + integrity sha512-7EgFyP2zjO065XTfdCxiXVEk+f83RQ1JsryN1X/VSX2li9rnHAt2swRbpoz5Vlrl6qjHrCmq5b6yxD13z6RheA== + +esbuild-linux-arm@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.5.tgz#6441c256225564d8794fdef5b0a69bc1a43051b5" + integrity sha512-wvAoHEN+gJ/22gnvhZnS/+2H14HyAxM07m59RSLn3iXrQsdS518jnEWRBnJz3fR6BJa+VUTo0NxYjGaNt7RA7Q== + +esbuild-linux-mips64le@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.5.tgz#d4927f817290eaffc062446896b2a553f0e11981" + integrity sha512-KdnSkHxWrJ6Y40ABu+ipTZeRhFtc8dowGyFsZY5prsmMSr1ZTG9zQawguN4/tunJ0wy3+kD54GaGwdcpwWAvZQ== + +esbuild-linux-ppc64le@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.5.tgz#b6d660dc6d5295f89ac51c675f1a2f639e2fb474" + integrity sha512-QdRHGeZ2ykl5P0KRmfGBZIHmqcwIsUKWmmpZTOq573jRWwmpfRmS7xOhmDHBj9pxv+6qRMH8tLr2fe+ZKQvCYw== + +esbuild-linux-riscv64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.5.tgz#2801bf18414dc3d3ad58d1ea83084f00d9d84896" + integrity sha512-p+WE6RX+jNILsf+exR29DwgV6B73khEQV0qWUbzxaycxawZ8NE0wA6HnnTxbiw5f4Gx9sJDUBemh9v49lKOORA== + +esbuild-linux-s390x@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.5.tgz#12a634ae6d3384cacc2b8f4201047deafe596eae" + integrity sha512-J2ngOB4cNzmqLHh6TYMM/ips8aoZIuzxJnDdWutBw5482jGXiOzsPoEF4j2WJ2mGnm7FBCO4StGcwzOgic70JQ== + +esbuild-netbsd-64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.5.tgz#951bbf87600512dfcfbe3b8d9d117d684d26c1b8" + integrity sha512-MmKUYGDizYjFia0Rwt8oOgmiFH7zaYlsoQ3tIOfPxOqLssAsEgG0MUdRDm5lliqjiuoog8LyDu9srQk5YwWF3w== + +esbuild-openbsd-64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.5.tgz#26705b61961d525d79a772232e8b8f211fdbb035" + integrity sha512-2mMFfkLk3oPWfopA9Plj4hyhqHNuGyp5KQyTT9Rc8hFd8wAn5ZrbJg+gNcLMo2yzf8Uiu0RT6G9B15YN9WQyMA== + +esbuild-sunos-64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.5.tgz#d794da1ae60e6e2f6194c44d7b3c66bf66c7a141" + integrity sha512-2sIzhMUfLNoD+rdmV6AacilCHSxZIoGAU2oT7XmJ0lXcZWnCvCtObvO6D4puxX9YRE97GodciRGDLBaiC6x1SA== + +esbuild-windows-32@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.5.tgz#0670326903f421424be86bc03b7f7b3ff86a9db7" + integrity sha512-e+duNED9UBop7Vnlap6XKedA/53lIi12xv2ebeNS4gFmu7aKyTrok7DPIZyU5w/ftHD4MUDs5PJUkQPP9xJRzg== + +esbuild-windows-64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.5.tgz#64f32acb7341f3f0a4d10e8ff1998c2d1ebfc0a9" + integrity sha512-v+PjvNtSASHOjPDMIai9Yi+aP+Vwox+3WVdg2JB8N9aivJ7lyhp4NVU+J0MV2OkWFPnVO8AE/7xH+72ibUUEnw== + +esbuild-windows-arm64@0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.5.tgz#4fe7f333ce22a922906b10233c62171673a3854b" + integrity sha512-Yz8w/D8CUPYstvVQujByu6mlf48lKmXkq6bkeSZZxTA626efQOJb26aDGLzmFWx6eg/FwrXgt6SZs9V8Pwy/aA== + +esbuild@^0.15.5: + version "0.15.5" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.5.tgz#5effd05666f621d4ff2fe2c76a67c198292193ff" + integrity sha512-VSf6S1QVqvxfIsSKb3UKr3VhUCis7wgDbtF4Vd9z84UJr05/Sp2fRKmzC+CSPG/dNAPPJZ0BTBLTT1Fhd6N9Gg== optionalDependencies: - "@esbuild/linux-loong64" "0.15.3" - esbuild-android-64 "0.15.3" - esbuild-android-arm64 "0.15.3" - esbuild-darwin-64 "0.15.3" - esbuild-darwin-arm64 "0.15.3" - esbuild-freebsd-64 "0.15.3" - esbuild-freebsd-arm64 "0.15.3" - esbuild-linux-32 "0.15.3" - esbuild-linux-64 "0.15.3" - esbuild-linux-arm "0.15.3" - esbuild-linux-arm64 "0.15.3" - esbuild-linux-mips64le "0.15.3" - esbuild-linux-ppc64le "0.15.3" - esbuild-linux-riscv64 "0.15.3" - esbuild-linux-s390x "0.15.3" - esbuild-netbsd-64 "0.15.3" - esbuild-openbsd-64 "0.15.3" - esbuild-sunos-64 "0.15.3" - esbuild-windows-32 "0.15.3" - esbuild-windows-64 "0.15.3" - esbuild-windows-arm64 "0.15.3" + "@esbuild/linux-loong64" "0.15.5" + esbuild-android-64 "0.15.5" + esbuild-android-arm64 "0.15.5" + esbuild-darwin-64 "0.15.5" + esbuild-darwin-arm64 "0.15.5" + esbuild-freebsd-64 "0.15.5" + esbuild-freebsd-arm64 "0.15.5" + esbuild-linux-32 "0.15.5" + esbuild-linux-64 "0.15.5" + esbuild-linux-arm "0.15.5" + esbuild-linux-arm64 "0.15.5" + esbuild-linux-mips64le "0.15.5" + esbuild-linux-ppc64le "0.15.5" + esbuild-linux-riscv64 "0.15.5" + esbuild-linux-s390x "0.15.5" + esbuild-netbsd-64 "0.15.5" + esbuild-openbsd-64 "0.15.5" + esbuild-sunos-64 "0.15.5" + esbuild-windows-32 "0.15.5" + esbuild-windows-64 "0.15.5" + esbuild-windows-arm64 "0.15.5" ev-emitter@^1.0.0: version "1.1.1" From ffad14acd32033c7a5cd0bea01f3705bae96f4e4 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 19 Aug 2022 10:20:15 +0800 Subject: [PATCH 1126/2165] chore: crowdin disable escape quotes --- crowdin.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/crowdin.yml b/crowdin.yml index 8b1606a21..121576a29 100644 --- a/crowdin.yml +++ b/crowdin.yml @@ -1,5 +1,11 @@ files: - source: /config/locales/zealot/zh-CN.yml translation: /config/locales/zealot/%two_letters_code%.yml + escape_quotes: 1 + translate_content: 0 + escape_special_characters: 0 - source: /config/locales/simple_form/simple_form.zh-CN.yml translation: /config/locales/simple_form/simple_form.%two_letters_code%.yml + escape_quotes: 1 + translate_content: 0 + escape_special_characters: 0 From 53fd228b75899b9af9b6027b0d91ab135fdb2ec1 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 19 Aug 2022 11:16:19 +0800 Subject: [PATCH 1127/2165] chore: no escaped any quotes --- crowdin.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crowdin.yml b/crowdin.yml index 121576a29..45514c075 100644 --- a/crowdin.yml +++ b/crowdin.yml @@ -6,6 +6,6 @@ files: escape_special_characters: 0 - source: /config/locales/simple_form/simple_form.zh-CN.yml translation: /config/locales/simple_form/simple_form.%two_letters_code%.yml - escape_quotes: 1 + escape_quotes: 0 translate_content: 0 escape_special_characters: 0 From 7f9909d59fc97cdcbc8ced7c34de3113fb7f8fa3 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 19 Aug 2022 11:19:45 +0800 Subject: [PATCH 1128/2165] =?UTF-8?q?chore:=20pr=20=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E5=BF=BD=E7=95=A5=E6=96=87=E4=BB=B6=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/test_docker_build.yml | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test_docker_build.yml b/.github/workflows/test_docker_build.yml index 484c4f4d0..cf6324341 100644 --- a/.github/workflows/test_docker_build.yml +++ b/.github/workflows/test_docker_build.yml @@ -1,5 +1,17 @@ name: Test Docker Build -on: [pull_request] + +on: + pull_request: + paths-ignore: + - '**.md' + - '.*' + - 'LICENSE' + - 'Guardfile' + - Aptfile + - 'Procfile*' + - '**.yaml' + - '**.yml' + jobs: build: runs-on: ubuntu-latest From 4e69648b1a026358ebf639120982040a58b8320f Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 19 Aug 2022 11:22:34 +0800 Subject: [PATCH 1129/2165] New translations zh-CN.yml (English) --- config/locales/zealot/en.yml | 206 ++++++++++++++--------------------- 1 file changed, 82 insertions(+), 124 deletions(-) diff --git a/config/locales/zealot/en.yml b/config/locales/zealot/en.yml index 3d3740c1a..416eb6eda 100644 --- a/config/locales/zealot/en.yml +++ b/config/locales/zealot/en.yml @@ -1,4 +1,4 @@ -en: +en-US: function_section: Function toolbox_section: Toolbox admin_section: Admin @@ -6,22 +6,19 @@ en: user_profile: User profile log_out: Log out log_in: Log in - intro: title: Over The Air Server for deployment of mobile and macOS apps description: Zealot makes it easy to let users to test your apps which it provides rich component libraries to make integration with Jenkins and Gitlab easily. - links: back_to_list: Back to list - admin: users: title: Users new: title: New user index: - title: :'admin.users.title' - new_user: :'admin.users.new.title' + title: ':''admin.users.title''' + new_user: ':''admin.users.new.title''' number: '#' nickname: Nickname email: E-mail @@ -38,11 +35,10 @@ en: title: User information active_link: Active link active_link_tip: If the inviting user does not receive the activation email, send this link to active. - web_hooks: title: Webhooks index: - title: :'admin.web_hooks.title' + title: ':''admin.web_hooks.title''' number: '#' url: URL channels: Channels @@ -62,49 +58,46 @@ en: enable: Enabled the Webhook successfully disable: Disabled the Webhook successfully test: Test sent successfully - apple_keys: title: Apple Developer new: title: New Apple Developer index: - title: :'admin.apple_keys.title' + title: ':''admin.apple_keys.title''' number: '#' team_name: Team name team_id: Team id created_at: Created at action: Action - new_apple_key: :'admin.apple_keys.new.title' + new_apple_key: ':''admin.apple_keys.new.title''' destroy: Destroy destroy_confirm: 'Confirm to destroy: %{team} (%{team_id})' not_found: title: Not found Apple Developer. body_html: Click the button New Apple Developer on the top-right. show: - title: :'admin.apple_keys.title' + title: ':''admin.apple_keys.title''' team_metadata: Team metadata key_metadata: Key Metadata devices: Devices (%{size}) sync_now: Sync now last_synced_at: Last synced at %{time} never_sync: Never sync - udid: :'udid.show.udid' - udid_name: :'udid.show.name' - udid_platform: :'udid.show.platform' - udid_model: :'udid.show.model' + udid: ':''udid.show.udid''' + udid_name: ':''udid.show.name''' + udid_platform: ':''udid.show.platform''' + udid_model: ':''udid.show.model''' udid_related_apps: Related Apps udid_created_at: Created at create: successful: Created Apple Developer successfully - apple_teams: edit: title: Edit team metadata - settings: title: Settings index: - title: :'admin.settings.title' + title: ':''admin.settings.title''' apply_for_restart: Apply for restart service_restarting: Service restarting ... service_restarted: Refresh page ... @@ -112,60 +105,47 @@ en: title: Edit setting edit: title: Edit setting - enable: Enabled disable: Disabled validates: 'Rule:%{value}' - general: General site_https: Enable HTTPS site_title: Site title site_locale: Site Locale site_domain: Site domain site_appearance: Site Appearance - presets: Presets preset_schemes: Default schemes preset_role: Default user role preset_install_limited: In-App install limited - preset_install_limited_hint: | - Specific mobile applications can not be install (Eg. WeChat, Dingtalk etc.), - using keywords of User Agent to guide open the browser to install. - + preset_install_limited_hint: "Specific mobile applications can not be install (Eg. WeChat, Dingtalk etc.),\nusing keywords of User Agent to guide open the browser to install." switch_mode: Switch mode registrations_mode: Registrations mode guest_mode: Guest mode demo_mode: Demo mode demo_mode_hint: Enable demo mode will RESET data daily, CAN NOT destroy or edit default admin user profile, Filtered secure key and read only - third_party_auth: Third pary auth ldap: LDAP feishu: Feihsu gitlab: Gitlab google_oauth: Google OAuth - - # backup: Backup - # misc: Misc - + backup: 备份 + #misc: 杂项 stmp: Mail STMP mailer_default_from: Default email send from mailer_default_to: Default sender mailer_options: Options - analytics: Analytics google_analytics_id: Google Analytics ID - archives: Archive uploaded binaries keep_uploads: Keep all builds - empty_value: Empty no_editable_key: Read only reset: Reset to default value - system_info: title: System information index: - title: :'admin.system_info.title' + title: ':''admin.system_info.title''' zealot_version: Zealot version vcs_ref: VCS Ref build_date: Build date @@ -174,9 +154,7 @@ en: os_info: OS info ruby_version: Ruby version cpu_info: CPU - cpu_core: - one: 'One Core' - other: '%{count} Cores' + cpu_core: '%{count} 核' fail_detect_cpu: Fail to detect CPU information memory_info: Memory fail_detect_memory: Fail to detect memory information @@ -189,15 +167,14 @@ en: services: Services health ruby_gems: Ruby Gems logs: Logs - new_version: Found new version + new_version: 'Found new version' dev_new_version: Found new version (dev mode) messages: file_permissions_tip: If you see a warning icon in the list below it means that the paths are not writable, which may cause Zealot to be unavailable or abnormal. - backups: title: Backups index: - title: :'admin.backups.title' + title: ':''admin.backups.title''' new_backup: New backup key: Key scopes: Scopes @@ -209,10 +186,7 @@ en: edit: Edit destroy: Destroy database: Database - app: - zero: '%{count} App' - one: '%{count} App' - other: '%{count} Apps' + app: '%{count} 应用' destroy_confirm: 'Confirm to destroy: %{key}?' not_found: title: Not found any backup @@ -235,42 +209,39 @@ en: title: Edit %{key} backup perform: success: Backup was successfully scheduled to run in the background. + destroy_archive: + success: 备份文件成功删除 parse_schedule: invaild_expression: Invaild expression - background_jobs: title: Background jobs index: - title: :'admin.background_jobs.title' - + title: ':''admin.background_jobs.title''' database_analytics: title: Database analytics index: - title: :'admin.database_analytics.title' - + title: ':''admin.database_analytics.title''' logs: title: Service logs index: - title: :'admin.logs.title' + title: ':''admin.logs.title''' loading: Loading ... error_message: 'Failed fetch logs, return status code: ' - dashboard: title: Dashboard analytics: - apps: :'apps.title' - debug_files: :'debug_files.title' - teardowns: :'teardowns.title' + apps: ':''apps.title''' + debug_files: ':''debug_files.title''' + teardowns: ':''teardowns.title''' uploads: Uploads - web_hooks: :'admin.web_hooks.title' - users: :'users.title' - background_jobs: :'admin.background_jobs.title' + web_hooks: ':''admin.web_hooks.title''' + users: ':''users.title''' + background_jobs: ':''admin.background_jobs.title''' disk_usage: Disk usage timeline: title: Timeline upload_release: uploaded a verison %{release_version} (%{build_version}) not_found: Not found any upload. - apps: title: Apps index: @@ -315,22 +286,20 @@ en: delete_app: Confirm to destroy【%{name}】app and all related data of schemes, channels and uploaded releases? delete_app_scheme: Confirm to destroy【%{name}】scheme and all related data of channels and uploaded releases? delete_app_channel: Confirm to destroy【%{name}】channel and all related data of uploaded releases? - schemes: title: Schemes show: empty_channel: Not found any channel. new: - title: New scheme for %{app} + title: 'New scheme for %{app}' edit: - title: Edit scheme for %{app} - + title: 'Edit scheme for %{app}' channels: title: Channels subtitle: 'scheme %{total_scheme}, channel %{total_channel}' show: - scheme: :'schemes.title' - channel: :'channels.title' + scheme: ':''schemes.title''' + channel: ':''channels.title''' activity: Activity upload_release: Upload a release metadata: Metadata @@ -359,9 +328,9 @@ en: empty_version: Not found any release with this version! more: More new: - title: Create new channel for %{name} + title: 'Create new channel for %{name}' edit: - title: Edit channel for %{name} + title: 'Edit channel for %{name}' branches: index: subtitle: 'Releases of branch %{branch}' @@ -375,10 +344,9 @@ en: subtitle: 'Releases of version %{version}' messages: confirm: - destroy: :'web_hooks.messages.confirm.destroy' + destroy: ':''web_hooks.messages.confirm.destroy''' errors: not_found_channel: Not found any channel by id %{id}, redirect to app list - releases: title: Build sources: @@ -393,7 +361,6 @@ en: not_latest_release: New release found! released_new_version: 'New release %{release_version} (%{build_version}) uploaded at %{time} ago, %{link}.' view_latest_version: Check it out - name: App version: Auto Version device_type: Device @@ -414,22 +381,17 @@ en: missing_file: Missing file more: More releases cannot_install_or_untrusted_enterprise_developer: Occurred "Untrusted Enterprise Developer" or app failed to install? - last_ten_uploads: Activity - upload_release: :'dashboard.timeline.upload_release' + upload_release: ':''dashboard.timeline.upload_release''' changelog: Changelog - devices: - one: "One device's UDID" - other: "%{count} device's UDIDs" + devices: '%{count} 台测试设备 (UDID)' sync_devices_feature: Sync device name by using %{link} fastlane plugin - qrcode: QR Code scan_qrcode_with_any_suppprted_app: Use your phone's camera to install it - - majar_versions: :'channels.show.majar_versions' + majarzersions: ':''channels.show.majar_versions''' view_detail: Manage channel new: - title: :'channels.show.upload_release' + title: ':''channels.show.upload_release''' install: show: not_found: Can not download, missing binary file. @@ -451,7 +413,7 @@ en: ok: Okay confirm: - destroy: :'web_hooks.messages.confirm.destroy' + destroy: ':''web_hooks.messages.confirm.destroy''' errors: not_found_release_and_redirect_to_channel: Not found release or had been destroyed, redirect to channel page not_found_release_and_redirect_to_latest_release: Not found release or had been destroyed, redirect to the latest release page @@ -465,7 +427,6 @@ en: not_found_really: Not found release invalid_password: Invailed password bundle_id_not_matched: 'Bundle id (package name) not matched between release %{got} and rule %{expect}' - debug_files: title: Debug files index: @@ -511,7 +472,6 @@ en: body: Once the data is deleted it will be permanently unrecoverable or unrecoverable, please operate with caution! ok: Destroy cancel: Cancel - teardowns: title: Teardowns new: @@ -521,9 +481,9 @@ en: file_hint: Support .apk, .aab, .ipa, .mobileprovision and macOS.app.zip file submit: Start work create: - create: :'teardowns.new.title' + create: ':''teardowns.new.title''' index: - create: :'teardowns.new.title' + create: ':''teardowns.new.title''' upload_history: History uploaded_at: Uploaded time app_name: App name @@ -535,16 +495,14 @@ en: not_found: title: Not found any teardown! body_html: Click the button New teardown - show: title: 'Teardown: %{name} %{release_version} (%{build_version})' expired_in: Expire in %{time} already_expired: Expired at %{time} expired: Expired now! related_app: Release related - related_body: 'This teardown was relates with ' + related_body: This teardown was relates with unknow_app_name: Unkown - metadata: Metadata app_name: App name version: Version @@ -556,10 +514,8 @@ en: min_ios_version: Min iOS version min_macos_version: Min macOS version capabilities: Capabilities - devise_list: UDID (%{count}) - developer_certs_list: - one: 'Developer cert (%{count})' - other: 'Developer certs (%{count})' + devise_list: 'UDID (%{count})' + developer_certs_list: '开发者证书 (%{count})' cert: 'Cert %{index}' cert_expired_at: 'Expired at %{date}' mobileprovision: Mobileprovision @@ -568,7 +524,6 @@ en: team_id: Team ID created_at: Created time expired_at: Expired time - help: title: Helpe center body_html: | @@ -640,12 +595,11 @@ en: failed_get_metadata: Failed to parse, make sure supported file type and un-hardened unknown_parse: 'Unkown parse error [%{class}]: %{message}' choose_supported_file_type: 'Choose support file type: .apk, .abb, .ipa, .mobileprovision or macOS.app.zip file' - udid: title: Fetch UDID index: apple_tip: Use iPhone or iPad to scan the QR Code to install - nonapple_tip: :'udid.index.apple_tip' + nonapple_tip: ':''udid.index.apple_tip''' fetch_udid: Get your UDID now help: title: Why need install profile to fetch your UDID? @@ -664,7 +618,6 @@ en:
    • Open "Setting.app" -> "Downloeded profile" -> "Fetch device's UDID" -> Install
    • After install it will open Safari and redirect a result page then delete the profile automatically
    • - show: title: Device metadata: Metadata @@ -674,13 +627,14 @@ en: unregistered: New device found, copy the UDID to Apple Developer! registered_apps: Registerd apps udid: UDID - product: Product serial: Serial + product: Product version: Version name: Device Name platform: Platform model: Model created_at: Registerd at + upload_release: ':''dashboard.timeline.upload_release''' related_apple_keys: Related Apple Developers register_apple_key: Register to Apple Developer channels: Channels @@ -689,10 +643,7 @@ en: team_name: Team Name team_id: Tead ID register_device: Register - upload_release: :'dashboard.timeline.upload_release' - related_apps_not_found_with_registered_device: | - This device is registered by synchronization service, - but your device does not have an associated application to upload yet. + related_apps_not_found_with_registered_device: "This device is registered by synchronization service,\nbut your device does not have an associated application to upload yet." related_apps_not_found: This device may be not register or related app not uploaded yet. install: title: Zealot fetch device UDID @@ -700,13 +651,9 @@ en: Install this temporary profile to find and display the UDID on your device. It is automatically removed from device right after you get your UDID. Powered by %{url}. - - users: - title: Users - web_hooks: - title: :'admin.web_hooks.title' - create: :'admin.web_hooks.new.title' + title: ':''admin.web_hooks.title''' + create: ':''admin.web_hooks.new.title''' enable: Enabled shared: Shared not_found: Not found any webhook @@ -718,9 +665,8 @@ en: parse_done_and_refreshing: 'Teardown done, refresh page ...' confirm: destroy: Destroy confirm? - settings: - title: :'admin.settings.title' + title: ':''admin.settings.title''' preset_schemes: beta: Beta adhoc: Adhoc @@ -736,7 +682,6 @@ en: light: Light dark: Dark auto: Auto - download: releases: show: @@ -744,7 +689,6 @@ en: debug_files: show: not_found: Not found debug file - api: unauthorized_channel_key: Unauthorized channel key unauthorized_token: Unauthorized user token @@ -767,7 +711,6 @@ en: jenkins: build: failed_request: Build request failed, please try again - demo: app_name1: First App app_name2: Android Only App @@ -777,7 +720,21 @@ en: channel3: oppo channel4: vivo channel5: xiaomi - + datetime: + distance_in_words: + about_x_hours: 大约 %{count} 小时 + about_x_months: 大约 %{count} 个月 + about_x_years: 大约 %{count} 年 + almost_x_years: 接近 %{count} 年 + half_a_minute: 半分钟前 + less_than_x_seconds: 不到 %{count} 秒 + less_than_x_minutes: 不到 %{count} 分钟 + over_x_years: " %{count} 年多" + x_seconds: " %{count} 秒" + x_minutes: " %{count} 分钟" + x_days: " %{count} 天" + x_months: " %{count} 个月" + x_years: " %{count} 年" errors: code: '400': @@ -792,19 +749,21 @@ en: '410': title: The page you were looking for doesn't exist here anymore. '422': - title: Security verification failed content: Security verification failed. Are you blocking cookies? + title: Security verification failed '429': title: Too many requests '500': - title: This page is not correct content: We're sorry, but something went wrong on our end. + title: This page is not correct '503': title: The page could not be served due to a temporary server failure. messages: not_authorized_policy: "No authorized operate %{model} on %{query} action" not_match_url: "Not match url: %{url}" unexpected_parameter: "Unexpected parameter: %{value}" + blank: 不能为空值 + inclusion: 不包含在可选值列表中 length_range: 'Length range: %{minimum} ~ %{maximum}' optional_value: 'Optinal value: %{value}' invaild_in_demo_mode: Forbidden in demo mode @@ -813,7 +772,6 @@ en: goback_title: goback homepage_title: homepage unknown_file_type: Unkown file type to parse - active_job: debug_file: success: Debug file (%{id}) pare done, Refresh the web page please. @@ -823,15 +781,16 @@ en: success: '%{key} backup created successfully.' failures: max_keeps_limited: '%{key} backup maximum limit value was zero' - activerecord: success: - create: Created %{key} successfully - update: Updated %{key} successfully - destroy: Deleteed %{key} successfully + create: "Created %{key} successfully" + update: "Updated %{key} successfully" + destroy: "Deleteed %{key} successfully" errors: same_value: "%{key} not change, skip to update" models: + setting: + default_message: "请检查 '%{key}' 的如下问题:" debug_file: attributes: app_id: @@ -844,12 +803,10 @@ en: attributes: schedule: invalid: 表达式格式错误 - user_mailer: omniauth_welcome_email: subject: Welcome to %{title} default_password: 'You authorized the third-party service to register Zealot, Here is the password:' - devise: confirmations: new: @@ -875,7 +832,6 @@ en: feishu: ' Feishu' google: ' Google' gitlab: ' Gitlab' - helpers: submit: user: @@ -904,7 +860,9 @@ en: create: Create apple_team: update: Update - + backup: + create: 创建备份 + update: 更新备份 views: pagination: truncate: ... From d55393c3eca217a00c6d8447296a80159f1bc63e Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 19 Aug 2022 11:22:35 +0800 Subject: [PATCH 1130/2165] New translations simple_form.zh-CN.yml (English) --- config/locales/simple_form/simple_form.en.yml | 94 +++++++++---------- 1 file changed, 47 insertions(+), 47 deletions(-) diff --git a/config/locales/simple_form/simple_form.en.yml b/config/locales/simple_form/simple_form.en.yml index 6e36adda5..2b7fec767 100644 --- a/config/locales/simple_form/simple_form.en.yml +++ b/config/locales/simple_form/simple_form.en.yml @@ -1,38 +1,38 @@ -en: +en-US: simple_form: "yes": 'Yes' "no": 'No' required: text: 'required' mark: '*' - # You can uncomment the line below if you need to overwrite the whole required html. - # When using html, text and mark won't be used. - # html: '*' + #You can uncomment the line below if you need to overwrite the whole required html. + #When using html, text and mark won't be used. + #html: '*' error_notification: default_message: "Please review the problems below:" labels: defaults: - name: Name - password: Password - channel: Channel + name: 'Name' + password: 'Password' + channel: 'Channel' user: - username: Username - email: E-mail - password: Password - password_confirmation: Password confirmation + username: 'Username' + email: 'E-mail' + password: 'Password' + password_confirmation: 'Password confirmation' role: 'Role' - remember_me: Remember me + remember_me: 'Remember me' app: - name: App name + name: 'App name' scheme: - name: Scheme name + name: 'Scheme name' channel: - name: Channel name - device_type: Device type - bundle_id: Bundle id - git_url: Git URL - slug: Slug - password: Password + name: 'Channel name' + device_type: 'Device type' + bundle_id: 'Bundle id' + git_url: 'Git URL' + slug: 'Slug' + password: 'Password' release: file: File changelog: Changelog @@ -41,19 +41,19 @@ en: git_commit: Git commit SHA ci_url: CI URL web_hook: - url: URL - body: Body - upload_events: Upload events - download_events: Download events - changelog_events: Changelog events + url: 'URL' + body: 'Body' + upload_events: 'Upload events' + download_events: 'Download events' + changelog_events: 'Changelog events' channels: Enabled channels debug_file: - app_id: App - device_type: Device type - release_version: Release version - build_version: Build version - file: File - checksum: File checksum + app_id: 'App' + device_type: 'Device type' + release_version: 'Release version' + build_version: 'Build version' + file: 'File' + checksum: 'File checksum' setting: value: Value apple_key: @@ -77,22 +77,21 @@ en: enabled: Enabled schedule_settings: Schedule settings parsing: Parsing ... - hints: defaults: - channel: For example, the platform of app. + channel: 'For example, the platform of app.' app: schemes: - name: :'simple_form.hints.scheme.name' + name: ':''simple_form.hints.scheme.name''' scheme: - name: App in the function, the type of audience-oriented division. for example, adhoc, test, production etc. + name: 'App in the function, the type of audience-oriented division. for example, adhoc, test, production etc.' channel: - name: Recommended to distinguish different channels according to the application platform, single platform applications can also be the name of the distribution market. - device_type: Whic device type of app. for example, iOS, Android, macOS etc. - bundle_id: Validate the bundle id (package name) of app, leave empty or fill * to skip validate. - git_url: Git URL, for example, the repo URL of Github, Gitlab or self-host. - slug: A slug is the part of a URL that identifies a particular page on a website in an easy-to-read form. - password: Need password by fill it when user is not log in. + name: 'Recommended to distinguish different channels according to the application platform, single platform applications can also be the name of the distribution market.' + device_type: 'Whic device type of app. for example, iOS, Android, macOS etc.' + bundle_id: 'Validate the bundle id (package name) of app, leave empty or fill * to skip validate.' + git_url: 'Git URL, for example, the repo URL of Github, Gitlab or self-host.' + slug: 'A slug is the part of a URL that identifies a particular page on a website in an easy-to-read form.' + password: 'Need password by fill it when user is not log in.' release: file: Support iOS.ipa、Android.apk and macOS.app.zip file changelog: a log or record of all notable changes made to a upload. @@ -101,19 +100,18 @@ en: git_commit: 40 bit length SHA value of git commit ci_url: the detail URL of Jenkins、Gitlab CI web_hook: - body: Custom JSON struct body to apply the third party notification services, Use default struct by leave it empty. + body: 'Custom JSON struct body to apply the third party notification services, Use default struct by leave it empty.' debug_file: - device_type: Whic device type of app. for example, iOS, Android, macOS etc. - file: Require a zipped file of debug file. for example, dSYM in iOS, proguard in Android. + device_type: 'Whic device type of app. for example, iOS, Android, macOS etc.' + file: 'Require a zipped file of debug file. for example, dSYM in iOS, proguard in Android.' setting: - value: Use JSON standard format to edit, otherwise it will fail to save. + value: 'Use JSON standard format to edit, otherwise it will fail to save.' backup: key: Unique backup key schedule: | Expression supportEnglish Natural Language or Cron. max_keeps: Remove old backups if reach max keeps number, -1 means no limited, 0 never backup. - placeholders: release: changelog: The developer is lazy without leaving anyting. @@ -139,4 +137,6 @@ en: debug_file: release_version: '1.0.0' build_version: '1.0' - checksum: Ignore me, pure validate the file use \ No newline at end of file + checksum: 'Ignore me, pure validate the file use' + backup: + schedule: every day at noon / 12 0 * * * From 322228fc72fc14a63926c8bc6886a588c505e695 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 19 Aug 2022 11:40:44 +0800 Subject: [PATCH 1131/2165] New translations zh-CN.yml (English) --- config/locales/zealot/en.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/config/locales/zealot/en.yml b/config/locales/zealot/en.yml index 416eb6eda..5c607851c 100644 --- a/config/locales/zealot/en.yml +++ b/config/locales/zealot/en.yml @@ -38,7 +38,7 @@ en-US: web_hooks: title: Webhooks index: - title: ':''admin.web_hooks.title''' + title: ':admin.web_hooks.title' number: '#' url: URL channels: Channels @@ -69,7 +69,7 @@ en-US: team_id: Team id created_at: Created at action: Action - new_apple_key: ':''admin.apple_keys.new.title''' + new_apple_key: ':admin.apple_keys.new.title' destroy: Destroy destroy_confirm: 'Confirm to destroy: %{team} (%{team_id})' not_found: @@ -235,7 +235,7 @@ en-US: teardowns: ':''teardowns.title''' uploads: Uploads web_hooks: ':''admin.web_hooks.title''' - users: ':''users.title''' + users: ':admin.users.title' background_jobs: ':''admin.background_jobs.title''' disk_usage: Disk usage timeline: From 206c3961688aefd8ffff1a871e4b0922876fefc2 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 19 Aug 2022 11:44:01 +0800 Subject: [PATCH 1132/2165] =?UTF-8?q?chore:=20=E6=9B=B4=E6=96=B0=E8=AF=AD?= =?UTF-8?q?=E9=9F=B3=E5=8C=85=20PR=20=E5=B8=A6=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- crowdin.yml | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/crowdin.yml b/crowdin.yml index 45514c075..03fb0b83f 100644 --- a/crowdin.yml +++ b/crowdin.yml @@ -1,11 +1,6 @@ +commit_message: 'Fix: New translations %original_file_name% from Crowdin' files: - source: /config/locales/zealot/zh-CN.yml translation: /config/locales/zealot/%two_letters_code%.yml - escape_quotes: 1 - translate_content: 0 - escape_special_characters: 0 - source: /config/locales/simple_form/simple_form.zh-CN.yml - translation: /config/locales/simple_form/simple_form.%two_letters_code%.yml - escape_quotes: 0 - translate_content: 0 - escape_special_characters: 0 + translation: /config/locales/simple_form/simple_form.%two_letters_code%.yml \ No newline at end of file From d50ca4bbe4e5afdb6b92b0e51ef7fc1a689fb537 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 19 Aug 2022 11:45:51 +0800 Subject: [PATCH 1133/2165] =?UTF-8?q?fix:=20crowdin=20=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E7=BF=BB=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/locales/simple_form/simple_form.en.yml | 4 +- config/locales/zealot/en.yml | 70 +++++++++---------- 2 files changed, 37 insertions(+), 37 deletions(-) diff --git a/config/locales/simple_form/simple_form.en.yml b/config/locales/simple_form/simple_form.en.yml index 2b7fec767..2f91eb257 100644 --- a/config/locales/simple_form/simple_form.en.yml +++ b/config/locales/simple_form/simple_form.en.yml @@ -1,4 +1,4 @@ -en-US: +en: simple_form: "yes": 'Yes' "no": 'No' @@ -82,7 +82,7 @@ en-US: channel: 'For example, the platform of app.' app: schemes: - name: ':''simple_form.hints.scheme.name''' + name: :simple_form.hints.scheme.name scheme: name: 'App in the function, the type of audience-oriented division. for example, adhoc, test, production etc.' channel: diff --git a/config/locales/zealot/en.yml b/config/locales/zealot/en.yml index 5c607851c..8afa9dfbf 100644 --- a/config/locales/zealot/en.yml +++ b/config/locales/zealot/en.yml @@ -1,4 +1,4 @@ -en-US: +en: function_section: Function toolbox_section: Toolbox admin_section: Admin @@ -17,8 +17,8 @@ en-US: new: title: New user index: - title: ':''admin.users.title''' - new_user: ':''admin.users.new.title''' + title: :admin.users.title + new_user: :admin.users.new.title number: '#' nickname: Nickname email: E-mail @@ -63,7 +63,7 @@ en-US: new: title: New Apple Developer index: - title: ':''admin.apple_keys.title''' + title: :admin.apple_keys.title number: '#' team_name: Team name team_id: Team id @@ -76,17 +76,17 @@ en-US: title: Not found Apple Developer. body_html: Click the button New Apple Developer on the top-right. show: - title: ':''admin.apple_keys.title''' + title: :admin.apple_keys.title team_metadata: Team metadata key_metadata: Key Metadata devices: Devices (%{size}) sync_now: Sync now last_synced_at: Last synced at %{time} never_sync: Never sync - udid: ':''udid.show.udid''' - udid_name: ':''udid.show.name''' - udid_platform: ':''udid.show.platform''' - udid_model: ':''udid.show.model''' + udid: :udid.show.udid + udid_name: :udid.show.name + udid_platform: :udid.show.platform + udid_model: :udid.show.model udid_related_apps: Related Apps udid_created_at: Created at create: @@ -97,7 +97,7 @@ en-US: settings: title: Settings index: - title: ':''admin.settings.title''' + title: :admin.settings.title apply_for_restart: Apply for restart service_restarting: Service restarting ... service_restarted: Refresh page ... @@ -145,7 +145,7 @@ en-US: system_info: title: System information index: - title: ':''admin.system_info.title''' + title: :admin.system_info.title zealot_version: Zealot version vcs_ref: VCS Ref build_date: Build date @@ -174,7 +174,7 @@ en-US: backups: title: Backups index: - title: ':''admin.backups.title''' + title: :admin.backups.title new_backup: New backup key: Key scopes: Scopes @@ -216,27 +216,27 @@ en-US: background_jobs: title: Background jobs index: - title: ':''admin.background_jobs.title''' + title: :admin.background_jobs.title database_analytics: title: Database analytics index: - title: ':''admin.database_analytics.title''' + title: :admin.database_analytics.title logs: title: Service logs index: - title: ':''admin.logs.title''' + title: :admin.logs.title loading: Loading ... error_message: 'Failed fetch logs, return status code: ' dashboard: title: Dashboard analytics: - apps: ':''apps.title''' - debug_files: ':''debug_files.title''' - teardowns: ':''teardowns.title''' + apps: :apps.title + debug_files: :debug_files.title + teardowns: :teardowns.title uploads: Uploads - web_hooks: ':''admin.web_hooks.title''' + web_hooks: :admin.web_hooks.title users: ':admin.users.title' - background_jobs: ':''admin.background_jobs.title''' + background_jobs: :admin.background_jobs.title disk_usage: Disk usage timeline: title: Timeline @@ -298,8 +298,8 @@ en-US: title: Channels subtitle: 'scheme %{total_scheme}, channel %{total_channel}' show: - scheme: ':''schemes.title''' - channel: ':''channels.title''' + scheme: :schemes.title + channel: :channels.title activity: Activity upload_release: Upload a release metadata: Metadata @@ -344,7 +344,7 @@ en-US: subtitle: 'Releases of version %{version}' messages: confirm: - destroy: ':''web_hooks.messages.confirm.destroy''' + destroy: :web_hooks.messages.confirm.destroy errors: not_found_channel: Not found any channel by id %{id}, redirect to app list releases: @@ -382,16 +382,16 @@ en-US: more: More releases cannot_install_or_untrusted_enterprise_developer: Occurred "Untrusted Enterprise Developer" or app failed to install? last_ten_uploads: Activity - upload_release: ':''dashboard.timeline.upload_release''' + upload_release: :dashboard.timeline.upload_release changelog: Changelog devices: '%{count} 台测试设备 (UDID)' sync_devices_feature: Sync device name by using %{link} fastlane plugin qrcode: QR Code scan_qrcode_with_any_suppprted_app: Use your phone's camera to install it - majarzersions: ':''channels.show.majar_versions''' + majarzersions: :channels.show.majar_versions view_detail: Manage channel new: - title: ':''channels.show.upload_release''' + title: :channels.show.upload_release install: show: not_found: Can not download, missing binary file. @@ -413,7 +413,7 @@ en-US: ok: Okay confirm: - destroy: ':''web_hooks.messages.confirm.destroy''' + destroy: :web_hooks.messages.confirm.destroy errors: not_found_release_and_redirect_to_channel: Not found release or had been destroyed, redirect to channel page not_found_release_and_redirect_to_latest_release: Not found release or had been destroyed, redirect to the latest release page @@ -481,9 +481,9 @@ en-US: file_hint: Support .apk, .aab, .ipa, .mobileprovision and macOS.app.zip file submit: Start work create: - create: ':''teardowns.new.title''' + create: :teardowns.new.title index: - create: ':''teardowns.new.title''' + create: :teardowns.new.title upload_history: History uploaded_at: Uploaded time app_name: App name @@ -501,7 +501,7 @@ en-US: already_expired: Expired at %{time} expired: Expired now! related_app: Release related - related_body: This teardown was relates with + related_body: This teardown was relates with unknow_app_name: Unkown metadata: Metadata app_name: App name @@ -599,7 +599,7 @@ en-US: title: Fetch UDID index: apple_tip: Use iPhone or iPad to scan the QR Code to install - nonapple_tip: ':''udid.index.apple_tip''' + nonapple_tip: :udid.index.apple_tip fetch_udid: Get your UDID now help: title: Why need install profile to fetch your UDID? @@ -634,7 +634,7 @@ en-US: platform: Platform model: Model created_at: Registerd at - upload_release: ':''dashboard.timeline.upload_release''' + upload_release: :dashboard.timeline.upload_release related_apple_keys: Related Apple Developers register_apple_key: Register to Apple Developer channels: Channels @@ -652,8 +652,8 @@ en-US: Powered by %{url}. web_hooks: - title: ':''admin.web_hooks.title''' - create: ':''admin.web_hooks.new.title''' + title: :admin.web_hooks.title + create: :admin.web_hooks.new.title enable: Enabled shared: Shared not_found: Not found any webhook @@ -666,7 +666,7 @@ en-US: confirm: destroy: Destroy confirm? settings: - title: ':''admin.settings.title''' + title: :admin.settings.title preset_schemes: beta: Beta adhoc: Adhoc From 914dda6d5b7cffcca8e5ad3598d3774dd48ef09a Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 19 Aug 2022 12:12:30 +0800 Subject: [PATCH 1134/2165] fix: en locales --- config/locales/zealot/en.yml | 59 ++++++++++++++---------------------- 1 file changed, 22 insertions(+), 37 deletions(-) diff --git a/config/locales/zealot/en.yml b/config/locales/zealot/en.yml index 8afa9dfbf..cf0fdcd75 100644 --- a/config/locales/zealot/en.yml +++ b/config/locales/zealot/en.yml @@ -38,7 +38,7 @@ en: web_hooks: title: Webhooks index: - title: ':admin.web_hooks.title' + title: :admin.web_hooks.title number: '#' url: URL channels: Channels @@ -69,7 +69,7 @@ en: team_id: Team id created_at: Created at action: Action - new_apple_key: ':admin.apple_keys.new.title' + new_apple_key: :admin.apple_keys.new.title destroy: Destroy destroy_confirm: 'Confirm to destroy: %{team} (%{team_id})' not_found: @@ -107,7 +107,7 @@ en: title: Edit setting enable: Enabled disable: Disabled - validates: 'Rule:%{value}' + validates: 'Rule: %{value}' general: General site_https: Enable HTTPS site_title: Site title @@ -154,7 +154,9 @@ en: os_info: OS info ruby_version: Ruby version cpu_info: CPU - cpu_core: '%{count} 核' + cpu_core: + one: '%{count} Core' + other: '%{count} Cores' fail_detect_cpu: Fail to detect CPU information memory_info: Memory fail_detect_memory: Fail to detect memory information @@ -186,7 +188,9 @@ en: edit: Edit destroy: Destroy database: Database - app: '%{count} 应用' + app: + one: '%{count} App' + other: '%{count} Apps' destroy_confirm: 'Confirm to destroy: %{key}?' not_found: title: Not found any backup @@ -210,9 +214,9 @@ en: perform: success: Backup was successfully scheduled to run in the background. destroy_archive: - success: 备份文件成功删除 + success: Backup was deleted successfully. parse_schedule: - invaild_expression: Invaild expression + invalid_expression: Invalid expression background_jobs: title: Background jobs index: @@ -235,7 +239,7 @@ en: teardowns: :teardowns.title uploads: Uploads web_hooks: :admin.web_hooks.title - users: ':admin.users.title' + users: :admin.users.title background_jobs: :admin.background_jobs.title disk_usage: Disk usage timeline: @@ -265,11 +269,11 @@ en: title: Not found any scheme. body_html: |

      Click the button to new a scheme.

      -

      Usually use a matter of classifying the app, for example in terms of the development process it can be divided:

      +

      Usually use a matter of classifying the app, for example in terms of the development process it can be divided:

      • Debug、Adhoc、Public test、Production
      -

      Use the app store channal in Android app:

      +

      Use the app store channal in Android app:

      • Google Play、Huawei、Xiaomi、Vivo、Oppo etc
      @@ -325,7 +329,7 @@ en: release_version: Release version total_version: Versions empty_version_shortly: Nothing - empty_version: Not found any release with this version! + empty_version: Not found any release with this version! more: More new: title: 'Create new channel for %{name}' @@ -384,7 +388,7 @@ en: last_ten_uploads: Activity upload_release: :dashboard.timeline.upload_release changelog: Changelog - devices: '%{count} 台测试设备 (UDID)' + devices: '%{count} test devices (UDID)' sync_devices_feature: Sync device name by using %{link} fastlane plugin qrcode: QR Code scan_qrcode_with_any_suppprted_app: Use your phone's camera to install it @@ -493,7 +497,7 @@ en: actions: Action anonymous: Anonymous not_found: - title: Not found any teardown! + title: Not found any teardown! body_html: Click the button New teardown show: title: 'Teardown: %{name} %{release_version} (%{build_version})' @@ -515,7 +519,7 @@ en: min_macos_version: Min macOS version capabilities: Capabilities devise_list: 'UDID (%{count})' - developer_certs_list: '开发者证书 (%{count})' + developer_certs_list: 'Developer Certificates (%{count})' cert: 'Cert %{index}' cert_expired_at: 'Expired at %{date}' mobileprovision: Mobileprovision @@ -720,21 +724,6 @@ en: channel3: oppo channel4: vivo channel5: xiaomi - datetime: - distance_in_words: - about_x_hours: 大约 %{count} 小时 - about_x_months: 大约 %{count} 个月 - about_x_years: 大约 %{count} 年 - almost_x_years: 接近 %{count} 年 - half_a_minute: 半分钟前 - less_than_x_seconds: 不到 %{count} 秒 - less_than_x_minutes: 不到 %{count} 分钟 - over_x_years: " %{count} 年多" - x_seconds: " %{count} 秒" - x_minutes: " %{count} 分钟" - x_days: " %{count} 天" - x_months: " %{count} 个月" - x_years: " %{count} 年" errors: code: '400': @@ -762,11 +751,9 @@ en: not_authorized_policy: "No authorized operate %{model} on %{query} action" not_match_url: "Not match url: %{url}" unexpected_parameter: "Unexpected parameter: %{value}" - blank: 不能为空值 - inclusion: 不包含在可选值列表中 length_range: 'Length range: %{minimum} ~ %{maximum}' optional_value: 'Optinal value: %{value}' - invaild_in_demo_mode: Forbidden in demo mode + invalid_in_demo_mode: Forbidden in demo mode development_only: Development only goback_or_redirect_to_homepage: you may %{goback_link} or return to %{homepage_link} goback_title: goback @@ -789,8 +776,6 @@ en: errors: same_value: "%{key} not change, skip to update" models: - setting: - default_message: "请检查 '%{key}' 的如下问题:" debug_file: attributes: app_id: @@ -802,7 +787,7 @@ en: backup: attributes: schedule: - invalid: 表达式格式错误 + invalid: Invalid expression user_mailer: omniauth_welcome_email: subject: Welcome to %{title} @@ -861,8 +846,8 @@ en: apple_team: update: Update backup: - create: 创建备份 - update: 更新备份 + create: Create + update: Update views: pagination: truncate: ... From 8cca0d0625bdf348656517e52a109ed15b339b77 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 19 Aug 2022 12:51:41 +0800 Subject: [PATCH 1135/2165] chore: disable escape_special_characters --- crowdin.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/crowdin.yml b/crowdin.yml index 03fb0b83f..3f7a0a7ac 100644 --- a/crowdin.yml +++ b/crowdin.yml @@ -2,5 +2,7 @@ commit_message: 'Fix: New translations %original_file_name% from Crowdin' files: - source: /config/locales/zealot/zh-CN.yml translation: /config/locales/zealot/%two_letters_code%.yml + escape_special_characters: 0 - source: /config/locales/simple_form/simple_form.zh-CN.yml - translation: /config/locales/simple_form/simple_form.%two_letters_code%.yml \ No newline at end of file + translation: /config/locales/simple_form/simple_form.%two_letters_code%.yml + escape_special_characters: 0 \ No newline at end of file From b493135652f2b7cc1b668d68ae3481a0afadf77c Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 19 Aug 2022 13:22:59 +0800 Subject: [PATCH 1136/2165] =?UTF-8?q?chore:=20=E9=A2=84=E8=AE=BE=20corwdin?= =?UTF-8?q?=20=E7=8E=AF=E5=A2=83=E5=8F=98=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- crowdin.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/crowdin.yml b/crowdin.yml index 3f7a0a7ac..6a8fa78ae 100644 --- a/crowdin.yml +++ b/crowdin.yml @@ -1,8 +1,12 @@ +project_id_env: CROWDIN_PROJECT_ID +api_token_env: CROWDIN_PERSONAL_TOKEN commit_message: 'Fix: New translations %original_file_name% from Crowdin' files: - source: /config/locales/zealot/zh-CN.yml translation: /config/locales/zealot/%two_letters_code%.yml escape_special_characters: 0 + type: yaml - source: /config/locales/simple_form/simple_form.zh-CN.yml translation: /config/locales/simple_form/simple_form.%two_letters_code%.yml - escape_special_characters: 0 \ No newline at end of file + escape_special_characters: 0 + type: yaml \ No newline at end of file From de4d0e327e1996488c906fd7b43b0d7459238b39 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 19 Aug 2022 13:45:56 +0800 Subject: [PATCH 1137/2165] =?UTF-8?q?fix:=20=E8=8B=B1=E6=96=87=E8=AF=AD?= =?UTF-8?q?=E8=A8=80=E5=8C=85=E7=BA=A0=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/admin/users/index.html.slim | 6 +- app/views/channels/_versions.html.slim | 2 +- app/views/releases/sidebar/_version.html.slim | 2 +- config/locales/simple_form/simple_form.en.yml | 16 ++--- config/locales/zealot/en.yml | 58 +++++++++---------- config/locales/zealot/zh-CN.yml | 10 ++-- 6 files changed, 47 insertions(+), 47 deletions(-) diff --git a/app/views/admin/users/index.html.slim b/app/views/admin/users/index.html.slim index 677b6f9ee..00892b8d9 100644 --- a/app/views/admin/users/index.html.slim +++ b/app/views/admin/users/index.html.slim @@ -36,14 +36,14 @@ = user.role_name td - if user.confirmed_at - = t('.actived') + = t('.active') - else - = link_to t('.unactive'), edit_admin_user_path(user) + = link_to t('.inactive'), edit_admin_user_path(user) td - if user.last_sign_in_at = time_ago_in_words(user.last_sign_in_at) - else - = t('.never_logined') + = t('.never_logged_in') td = link_to t('.destroy_user'), admin_user_path(user), \ data: { turbo_method: :delete, turbo_confirm: t('.destroy_user_confirm', user: user.username) } diff --git a/app/views/channels/_versions.html.slim b/app/views/channels/_versions.html.slim index 182e83386..cd4753ca1 100755 --- a/app/views/channels/_versions.html.slim +++ b/app/views/channels/_versions.html.slim @@ -2,7 +2,7 @@ .card-header h3.card-title i.icon.fas.fa-archive - = t('channels.show.majar_versions') + = t('channels.show.major_versions') .card-body.table-responsive.p-0 - if @versions.count > 0 table.table diff --git a/app/views/releases/sidebar/_version.html.slim b/app/views/releases/sidebar/_version.html.slim index 8313f226d..a55a47811 100644 --- a/app/views/releases/sidebar/_version.html.slim +++ b/app/views/releases/sidebar/_version.html.slim @@ -3,7 +3,7 @@ .card-header h3.card-title i.icon.fas.fa-archive - = t('releases.show.majar_versions') + = t('releases.show.major_versions') .card-tools button.btn.btn-tool data-card-widget="collapse" i.fas.fa-minus diff --git a/config/locales/simple_form/simple_form.en.yml b/config/locales/simple_form/simple_form.en.yml index 2f91eb257..9c2235e68 100644 --- a/config/locales/simple_form/simple_form.en.yml +++ b/config/locales/simple_form/simple_form.en.yml @@ -64,7 +64,7 @@ en: apple_team: display_name: Display name name: Team name - team_id: Team id + team_id: Team ID backup: general: General settings key: Key @@ -86,23 +86,23 @@ en: scheme: name: 'App in the function, the type of audience-oriented division. for example, adhoc, test, production etc.' channel: - name: 'Recommended to distinguish different channels according to the application platform, single platform applications can also be the name of the distribution market.' - device_type: 'Whic device type of app. for example, iOS, Android, macOS etc.' + name: 'Recommended distinguishing different channels according to the application platform, single platform applications can also be the name of the distribution market.' + device_type: 'Which device type of app. for example, iOS, Android, macOS etc.' bundle_id: 'Validate the bundle id (package name) of app, leave empty or fill * to skip validate.' git_url: 'Git URL, for example, the repo URL of Github, Gitlab or self-host.' slug: 'A slug is the part of a URL that identifies a particular page on a website in an easy-to-read form.' password: 'Need password by fill it when user is not log in.' release: file: Support iOS.ipa、Android.apk and macOS.app.zip file - changelog: a log or record of all notable changes made to a upload. - release_type: 'iOS: debug、adhoc、release; Android: debug、release' + changelog: A log or record of all notable changes made to a upload. + release_type: 'iOS: debug、adhoc, release; Android: debug, release' branch: Git branch. In general either main or develop. git_commit: 40 bit length SHA value of git commit - ci_url: the detail URL of Jenkins、Gitlab CI + ci_url: the detail URL of Jenkins, Gitlab CI web_hook: body: 'Custom JSON struct body to apply the third party notification services, Use default struct by leave it empty.' debug_file: - device_type: 'Whic device type of app. for example, iOS, Android, macOS etc.' + device_type: 'Which device type of app. for example, iOS, Android, macOS etc.' file: 'Require a zipped file of debug file. for example, dSYM in iOS, proguard in Android.' setting: value: 'Use JSON standard format to edit, otherwise it will fail to save.' @@ -114,7 +114,7 @@ en: max_keeps: Remove old backups if reach max keeps number, -1 means no limited, 0 never backup. placeholders: release: - changelog: The developer is lazy without leaving anyting. + changelog: The developer is lazy without leaving anything. web_hook: url: 'http://example.com/web-hooks' body: | diff --git a/config/locales/zealot/en.yml b/config/locales/zealot/en.yml index cf0fdcd75..bc97338e8 100644 --- a/config/locales/zealot/en.yml +++ b/config/locales/zealot/en.yml @@ -26,9 +26,9 @@ en: status: Status last_login_time: Last login time action: Action - actived: Actived - unactive: Unactive - never_logined: Never logined + active: Active + inactive: Inactive + never_logged_in: Never logged in destroy_user: Destroy destroy_user_confirm: Are you sure you want to delete the [%{user}] user? edit: @@ -44,7 +44,7 @@ en: channels: Channels action: Action not_found: Not found any Webhook. - create_web_hook_from_channel_inside: Create the Webhook via inside the channel of app, You can edit, destory them here. + create_web_hook_from_channel_inside: Create the Webhook via inside the channel of app, You can edit, destroy them here. destroy: Destroy destroy_confirm: Destroy confirm? show: @@ -66,7 +66,7 @@ en: title: :admin.apple_keys.title number: '#' team_name: Team name - team_id: Team id + team_id: Team ID created_at: Created at action: Action new_apple_key: :admin.apple_keys.new.title @@ -118,13 +118,13 @@ en: preset_schemes: Default schemes preset_role: Default user role preset_install_limited: In-App install limited - preset_install_limited_hint: "Specific mobile applications can not be install (Eg. WeChat, Dingtalk etc.),\nusing keywords of User Agent to guide open the browser to install." + preset_install_limited_hint: "Specific mobile applications can not be installed (E.g. WeChat, Dingtalk etc.), using keywords of User Agent to guide open the browser to install." switch_mode: Switch mode registrations_mode: Registrations mode guest_mode: Guest mode demo_mode: Demo mode demo_mode_hint: Enable demo mode will RESET data daily, CAN NOT destroy or edit default admin user profile, Filtered secure key and read only - third_party_auth: Third pary auth + third_party_auth: Third-party Auth ldap: LDAP feishu: Feihsu gitlab: Gitlab @@ -202,7 +202,7 @@ en: size: Size download: Download destroy: Destroy - unknown_job_status: Unknown happend! Try again or report to zealot developer please. + unknown_job_status: Unknown happened! Try again or report to zealot developer please. current_step: Processing, current %{step} not_found: title: Not found any backup file @@ -244,7 +244,7 @@ en: disk_usage: Disk usage timeline: title: Timeline - upload_release: uploaded a verison %{release_version} (%{build_version}) + upload_release: uploaded a version %{release_version} (%{build_version}) not_found: Not found any upload. apps: title: Apps @@ -325,7 +325,7 @@ en: release_type: Release type uploaded_at: Uploaded time actions: Action - majar_versions: Majar versions + major_versions: Major versions release_version: Release version total_version: Versions empty_version_shortly: Nothing @@ -359,9 +359,9 @@ en: show: enter_password: Enter password app_limited: Install limited in current app - app_touch_menu: Click menu right-top concor + app_touch_menu: Click menu right-top corner app_open_in_safari: Choose "Open in Safari" and install - app_open_in_webbrower: Open with any brower and install + app_open_in_webbrower: Open with any browser and install not_latest_release: New release found! released_new_version: 'New release %{release_version} (%{build_version}) uploaded at %{time} ago, %{link}.' view_latest_version: Check it out @@ -370,7 +370,7 @@ en: device_type: Device release_version: Release version (build version) release_type: Release type - filesize: Filesize + filesize: File size uploaded_at: Uploaded time git_branch: Git branch git_commit: Git commit SHA @@ -392,7 +392,7 @@ en: sync_devices_feature: Sync device name by using %{link} fastlane plugin qrcode: QR Code scan_qrcode_with_any_suppprted_app: Use your phone's camera to install it - majarzersions: :channels.show.majar_versions + majarzersions: :channels.show.major_versions view_detail: Manage channel new: title: :channels.show.upload_release @@ -401,7 +401,7 @@ en: not_found: Can not download, missing binary file. messages: default_changelog: | - Not found any changelog, cause: + Not found changelog, cause: - The developer is lazy without leaving anyting 😂 - Error occurred 👽 @@ -429,13 +429,13 @@ en: deleted_manually: Maybe clean up manually deleted_programly: Maybe clean up by enabled auto clean in system not_found_really: Not found release - invalid_password: Invailed password + invalid_password: Invalid password bundle_id_not_matched: 'Bundle id (package name) not matched between release %{got} and rule %{expect}' debug_files: title: Debug files index: upload: Upload a debug file - processing: Processing in background, refreash the web page later. + processing: Processing in background, refresh the web page later. version: 'Version: %{version}' download: Download (%{size}) destroy: Destroy @@ -506,7 +506,7 @@ en: expired: Expired now! related_app: Release related related_body: This teardown was relates with - unknow_app_name: Unkown + unknow_app_name: Unknown metadata: Metadata app_name: App name version: Version @@ -529,7 +529,7 @@ en: created_at: Created time expired_at: Expired time help: - title: Helpe center + title: Help center body_html: |

      Click the button to upload app and use @@ -591,13 +591,13 @@ en: upload_events: '%{name} uploaded release %{version}' download_events: '%{name} %{version} downloaded' changelog_events: '%{name} %{version} update the changelog' - unknown_events: '%{name} triggered unkown event: %{event}' + unknown_events: '%{name} triggered unknown event: %{event}' errors: not_found_file: 'Not found debug file: %{message}' failed_detect_file_type: Failed to detect file type not_support_file_type: Not support file type - failed_get_metadata: Failed to parse, make sure supported file type and un-hardened - unknown_parse: 'Unkown parse error [%{class}]: %{message}' + failed_get_metadata: Failed to parse, make sure supported file type and unhardened + unknown_parse: 'Unknown parse error [%{class}]: %{message}' choose_supported_file_type: 'Choose support file type: .apk, .abb, .ipa, .mobileprovision or macOS.app.zip file' udid: title: Fetch UDID @@ -606,7 +606,7 @@ en: nonapple_tip: :udid.index.apple_tip fetch_udid: Get your UDID now help: - title: Why need install profile to fetch your UDID? + title: Why need to install profile to fetch your UDID? body_html: |

      UDID is an abbreviation for Unique Device Identifier (UDID). The UDID is a feature provided by Apple to identify iOS devices. @@ -625,11 +625,11 @@ en: show: title: Device metadata: Metadata - registered_but_no_related_app: Device was registerd to Apple Developr, but not found any related app. - registered_with_related_apps: Device was registerd to Apple Developr, install app below. + registered_but_no_related_app: Device was registered to Apple Developer, but not found any related app. + registered_with_related_apps: Device was registered to Apple Developer, install app below. register: Device is unregister, choose Apple Developer to register. unregistered: New device found, copy the UDID to Apple Developer! - registered_apps: Registerd apps + registered_apps: Registered apps udid: UDID serial: Serial product: Product @@ -752,13 +752,13 @@ en: not_match_url: "Not match url: %{url}" unexpected_parameter: "Unexpected parameter: %{value}" length_range: 'Length range: %{minimum} ~ %{maximum}' - optional_value: 'Optinal value: %{value}' + optional_value: 'Optional value: %{value}' invalid_in_demo_mode: Forbidden in demo mode development_only: Development only goback_or_redirect_to_homepage: you may %{goback_link} or return to %{homepage_link} goback_title: goback homepage_title: homepage - unknown_file_type: Unkown file type to parse + unknown_file_type: Unknown file type to parse active_job: debug_file: success: Debug file (%{id}) pare done, Refresh the web page please. @@ -772,7 +772,7 @@ en: success: create: "Created %{key} successfully" update: "Updated %{key} successfully" - destroy: "Deleteed %{key} successfully" + destroy: "Deleted %{key} successfully" errors: same_value: "%{key} not change, skip to update" models: diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index ffd5ec2f0..ccfe502fb 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -29,9 +29,9 @@ zh-CN: status: 状态 last_login_time: 最后登录时间 action: 操作 - actived: 已激活 - unactive: 未激活 - never_logined: 从未登录 + active: 已激活 + inactive: 未激活 + never_logged_in: 从未登录 destroy_user: 删除 destroy_user_confirm: 你确定要删除【%{user}】用户? edit: @@ -347,7 +347,7 @@ zh-CN: release_type: 打包类型 uploaded_at: 上传时间 actions: 操作 - majar_versions: 历史主版本 + major_versions: 历史主版本 release_version: 主版本号 total_version: 版本数量 empty_version_shortly: 暂无版本 @@ -419,7 +419,7 @@ zh-CN: qrcode: 二维码 scan_qrcode_with_any_suppprted_app: 任何支持二维码识别的 App 均可 - majarzersions: :'channels.show.majar_versions' + majarzersions: :'channels.show.major_versions' view_detail: 渠道详情 new: title: :'channels.show.upload_release' From 8b66aaf2edc1a0f1b01e9266d3614e6f82bd35bb Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 19 Aug 2022 14:06:33 +0800 Subject: [PATCH 1138/2165] =?UTF-8?q?release:=20=E5=8F=91=E5=B8=83=204.5.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 0db69c2c1..a5d02d454 100644 --- a/Dockerfile +++ b/Dockerfile @@ -61,7 +61,7 @@ ARG BUILD_DATE ARG VCS_REF ARG TAG -ARG ZEALOT_VERSION="4.4.1" +ARG ZEALOT_VERSION="4.5.0" ARG REPLACE_CHINA_MIRROR="true" ARG ORIGINAL_REPO_URL="dl-cdn.alpinelinux.org" ARG MIRROR_REPO_URL="mirrors.ustc.edu.cn" diff --git a/package.json b/package.json index b311529b6..6d6d2d3bd 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "zealot", - "version": "4.4.1", + "version": "4.5.0", "private": true, "license": "MIT", "dependencies": { From 2f582d37de43593cbc5e1dc9e46b65a0b8cc8532 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 19 Aug 2022 14:19:36 +0800 Subject: [PATCH 1139/2165] =?UTF-8?q?feat:=20=E6=9B=B4=E6=96=B0=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E6=8F=8F=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/locales/zealot/en.yml | 4 ++-- config/locales/zealot/zh-CN.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/config/locales/zealot/en.yml b/config/locales/zealot/en.yml index bc97338e8..56897193f 100644 --- a/config/locales/zealot/en.yml +++ b/config/locales/zealot/en.yml @@ -7,8 +7,8 @@ en: log_out: Log out log_in: Log in intro: - title: Over The Air Server for deployment of mobile and macOS apps - description: Zealot makes it easy to let users to test your apps which it provides rich component libraries to make integration with Jenkins and Gitlab easily. + title: Self-hosted Beta App Distribution for Android, iOS and macOS apps + description: Continuous everything. Automate the lifecycle of your apps. Connect your CI to build in the cloud, test on thousands of real devices, distribute to beta testers and app stores. All in one place. links: back_to_list: Back to list admin: diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index ccfe502fb..455360592 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -9,7 +9,7 @@ zh-CN: intro: title: 移动应用上传竟然如此简单、移动 App 应用分发系统 - description: 解放开发打包的烦恼,轻松放权给测试、产品、运营等使用 App 的人员,提供丰富组件库,打包流程一键上传,iOS 和 Android 轻松接入,深度与 Jenkins 和 Gitlab 集成。 + description: 持续集成一切跟应用有关事情,接入 CI 系统一切自动化处理,企业多年实战经验,独立部署提供企业打包分发流程、上传应用全套流程方案 links: back_to_list: 返回列表 From 2eac7fc426d1838a0dec25de5ed562e718a00282 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 19 Aug 2022 15:14:18 +0800 Subject: [PATCH 1140/2165] doc: readme --- README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 54137ca8f..7e0cdc836 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@

      Zealot

      - 开源自部署 iOS、Android 及 macOS 应用分发平台,提供 iOS、Android SDK、fastlane 等丰富组件库,打包分发流程、上传应用竟然如此简单、独立部署解决企业使用的烦恼。 En Taro Adun! 🖖 + 开源自部署持续集成一切跟应用有关事情,接入任意 CI 系统一切自动化处理,企业多年实战经验,独立部署提供企业打包分发流程、上传应用全套流程方案 En Taro Adun! 🖖

      @@ -33,11 +33,11 @@
      - 自部署 • - 配置 • - REST API • - SDK • - 功能截图 + 自部署 • + 配置 • + REST API • + SDK • + 功能截图
      From 8066acd458b09e98199903e59a8752f8b4cd0ab6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 19 Aug 2022 21:03:11 +0000 Subject: [PATCH 1141/2165] chore(deps): bump sentry-rails from 5.4.1 to 5.4.2 Bumps [sentry-rails](https://github.com/getsentry/sentry-ruby) from 5.4.1 to 5.4.2. - [Release notes](https://github.com/getsentry/sentry-ruby/releases) - [Changelog](https://github.com/getsentry/sentry-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-ruby/compare/5.4.1...5.4.2) --- updated-dependencies: - dependency-name: sentry-rails dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index cbc668ae5..9ef5ef32a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -138,7 +138,7 @@ GEM dotenv-rails (2.8.1) dotenv (= 2.8.1) railties (>= 3.2) - erubi (1.10.0) + erubi (1.11.0) et-orbi (1.2.7) tzinfo faraday (2.5.2) @@ -255,7 +255,7 @@ GEM mini_magick (4.11.0) mini_mime (1.1.2) mini_portile2 (2.8.0) - minitest (5.16.2) + minitest (5.16.3) mixlib-shellout (3.2.7) chef-utils msgpack (1.5.4) @@ -423,9 +423,9 @@ GEM rubyzip (2.3.2) rufus-scheduler (3.8.2) fugit (~> 1.1, >= 1.1.6) - sentry-rails (5.4.1) + sentry-rails (5.4.2) railties (>= 5.0) - sentry-ruby (~> 5.4.1) + sentry-ruby (~> 5.4.2) sentry-ruby (5.4.2) concurrent-ruby (~> 1.0, >= 1.0.2) sentry-sidekiq (5.4.1) From 5b9b9798929f2675f817779f24f33cb1bbff1f95 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 19 Aug 2022 21:03:28 +0000 Subject: [PATCH 1142/2165] chore(deps): bump sentry-sidekiq from 5.4.1 to 5.4.2 Bumps [sentry-sidekiq](https://github.com/getsentry/sentry-ruby) from 5.4.1 to 5.4.2. - [Release notes](https://github.com/getsentry/sentry-ruby/releases) - [Changelog](https://github.com/getsentry/sentry-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-ruby/compare/5.4.1...5.4.2) --- updated-dependencies: - dependency-name: sentry-sidekiq dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index cbc668ae5..97a7234e9 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -428,8 +428,8 @@ GEM sentry-ruby (~> 5.4.1) sentry-ruby (5.4.2) concurrent-ruby (~> 1.0, >= 1.0.2) - sentry-sidekiq (5.4.1) - sentry-ruby (~> 5.4.1) + sentry-sidekiq (5.4.2) + sentry-ruby (~> 5.4.2) sidekiq (>= 3.0) shellany (0.0.1) sidekiq (6.5.4) From 79dbfa501e20cb8ddfc54252b3ce5c9a751b95e4 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 22 Aug 2022 14:45:37 +0800 Subject: [PATCH 1143/2165] Update README.md --- README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 7e0cdc836..a37842f50 100644 --- a/README.md +++ b/README.md @@ -33,11 +33,11 @@
      - 自部署 • - 配置 • - REST API • - SDK • - 功能截图 + 自部署 • + 配置 • + REST API • + SDK • + 功能截图
      @@ -73,4 +73,4 @@ [zealot-ios-sdk]: https://github.com/tryzealot/zealot-ios [android-android-sdk]: https://github.com/tryzealot/zealot-android [fastlane-plugin-zealot]: https://github.com/tryzealot/fastlane-plugin-zealot -[mit-link]: https://github.com/tryzealot/zealot/blob/develop/CHANGELOG.md \ No newline at end of file +[mit-link]: https://github.com/tryzealot/zealot/blob/develop/CHANGELOG.md From d1bdd9c49fe9e8f0552db62edcbe440c221e5b98 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Aug 2022 21:01:55 +0000 Subject: [PATCH 1144/2165] chore(deps): bump sass from 1.54.4 to 1.54.5 Bumps [sass](https://github.com/sass/dart-sass) from 1.54.4 to 1.54.5. - [Release notes](https://github.com/sass/dart-sass/releases) - [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md) - [Commits](https://github.com/sass/dart-sass/compare/1.54.4...1.54.5) --- updated-dependencies: - dependency-name: sass dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 6d6d2d3bd..dc7bf8d06 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "clipboard": "^2.0.11", "compare-versions": "^4.1.3", "esbuild": "^0.15.5", - "sass": "^1.54.4", + "sass": "^1.54.5", "ua-parser-js": "^1.0.2" }, "scripts": { diff --git a/yarn.lock b/yarn.lock index c0467e640..ba2f517f3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1427,10 +1427,10 @@ safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sass@^1.54.4: - version "1.54.4" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.54.4.tgz#803ff2fef5525f1dd01670c3915b4b68b6cba72d" - integrity sha512-3tmF16yvnBwtlPrNBHw/H907j8MlOX8aTBnlNX1yrKx24RKcJGPyLhFUwkoKBKesR3unP93/2z14Ll8NicwQUA== +sass@^1.54.5: + version "1.54.5" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.54.5.tgz#93708f5560784f6ff2eab8542ade021a4a947b3a" + integrity sha512-p7DTOzxkUPa/63FU0R3KApkRHwcVZYC0PLnLm5iyZACyp15qSi32x7zVUhRdABAATmkALqgGrjCJAcWvobmhHw== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" From b915f8e469c1b1dd2d50017c1e63930a5cbb07b6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Aug 2022 21:03:11 +0000 Subject: [PATCH 1145/2165] chore(deps): bump sidekiq from 6.5.4 to 6.5.5 Bumps [sidekiq](https://github.com/mperham/sidekiq) from 6.5.4 to 6.5.5. - [Release notes](https://github.com/mperham/sidekiq/releases) - [Changelog](https://github.com/mperham/sidekiq/blob/main/Changes.md) - [Commits](https://github.com/mperham/sidekiq/compare/v6.5.4...v6.5.5) --- updated-dependencies: - dependency-name: sidekiq dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index e0eb55d5a..7759eb914 100644 --- a/Gemfile +++ b/Gemfile @@ -85,7 +85,7 @@ gem 'rqrcode' # 异步队列 gem 'activejob-status' -gem 'sidekiq', '~> 6.5.4' +gem 'sidekiq', '~> 6.5.5' gem 'sidekiq-scheduler', '~> 4.0.2' gem 'sidekiq-failures', '~> 1.0.3' diff --git a/Gemfile.lock b/Gemfile.lock index 4786f8e82..ace4a886c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -432,7 +432,7 @@ GEM sentry-ruby (~> 5.4.2) sidekiq (>= 3.0) shellany (0.0.1) - sidekiq (6.5.4) + sidekiq (6.5.5) connection_pool (>= 2.2.2) rack (~> 2.0) redis (>= 4.5.0) @@ -567,7 +567,7 @@ DEPENDENCIES sentry-rails sentry-ruby sentry-sidekiq - sidekiq (~> 6.5.4) + sidekiq (~> 6.5.5) sidekiq-failures (~> 1.0.3) sidekiq-scheduler (~> 4.0.2) simple_form (~> 5.1) From 7cb4ac9e2fa52d53f1599346c1ec09adedf1d39e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 23 Aug 2022 21:01:36 +0000 Subject: [PATCH 1146/2165] chore(deps): bump puma from 5.6.4 to 5.6.5 Bumps [puma](https://github.com/puma/puma) from 5.6.4 to 5.6.5. - [Release notes](https://github.com/puma/puma/releases) - [Changelog](https://github.com/puma/puma/blob/master/History.md) - [Commits](https://github.com/puma/puma/compare/v5.6.4...v5.6.5) --- updated-dependencies: - dependency-name: puma dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index e0eb55d5a..ed1754cac 100644 --- a/Gemfile +++ b/Gemfile @@ -4,7 +4,7 @@ source 'https://rubygems.org' git_source(:github) { |repo_name| "https://github.com/#{repo_name}" } -gem 'puma', '~> 5.6.4' +gem 'puma', '~> 5.6.5' gem 'rails', '~> 7.0.3' gem 'rails-i18n', '~> 7.0.5' gem 'rake', '~> 13.0.4' diff --git a/Gemfile.lock b/Gemfile.lock index 4786f8e82..27804fca9 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -334,7 +334,7 @@ GEM interception (>= 0.5) pry (>= 0.12.0) public_suffix (4.0.7) - puma (5.6.4) + puma (5.6.5) nio4r (~> 2.0) pundit (2.2.0) activesupport (>= 3.0.0) @@ -551,7 +551,7 @@ DEPENDENCIES propshaft (= 0.6.4) pry-rails pry-rescue - puma (~> 5.6.4) + puma (~> 5.6.5) pundit (~> 2.2.0) pyu-ruby-sasl (>= 0.0.3.3, < 0.1) rack-cors (~> 1.1.1) From 1c6eaa091669067c5769e58f661f3765e33b3e6b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 24 Aug 2022 21:01:34 +0000 Subject: [PATCH 1147/2165] chore(deps): bump compare-versions from 4.1.3 to 4.1.4 Bumps [compare-versions](https://github.com/omichelsen/compare-versions) from 4.1.3 to 4.1.4. - [Release notes](https://github.com/omichelsen/compare-versions/releases) - [Changelog](https://github.com/omichelsen/compare-versions/blob/master/CHANGELOG.md) - [Commits](https://github.com/omichelsen/compare-versions/commits/v4.1.4) --- updated-dependencies: - dependency-name: compare-versions dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index dc7bf8d06..27a969872 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "@rails/actioncable": "^7.0.3", "admin-lte": "3.1.0", "clipboard": "^2.0.11", - "compare-versions": "^4.1.3", + "compare-versions": "^4.1.4", "esbuild": "^0.15.5", "sass": "^1.54.5", "ua-parser-js": "^1.0.2" diff --git a/yarn.lock b/yarn.lock index ba2f517f3..4c7923e71 100644 --- a/yarn.lock +++ b/yarn.lock @@ -297,10 +297,10 @@ color-name@^1.0.0: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -compare-versions@^4.1.3: - version "4.1.3" - resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-4.1.3.tgz#8f7b8966aef7dc4282b45dfa6be98434fc18a1a4" - integrity sha512-WQfnbDcrYnGr55UwbxKiQKASnTtNnaAWVi8jZyy8NTpVAXWACSne8lMD1iaIo9AiU6mnuLvSVshCzewVuWxHUg== +compare-versions@^4.1.4: + version "4.1.4" + resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-4.1.4.tgz#3571f4d610924d4414846a4183d386c8f3d51112" + integrity sha512-FemMreK9xNyL8gQevsdRMrvO4lFCkQP7qbuktn1q8ndcNk1+0mz7lgE7b/sNvbhVgY4w6tMN1FDp6aADjqw2rw== core-util-is@~1.0.0: version "1.0.3" From c6981716d7528c42eb7aca217e79af09175d4489 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 25 Aug 2022 13:16:36 +0800 Subject: [PATCH 1148/2165] =?UTF-8?q?chore:=20=E6=8F=90=20issue=20?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=9C=80=E5=B0=8F=E5=8C=96=E5=A4=8D=E7=8E=B0?= =?UTF-8?q?=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/ISSUE_TEMPLATE/bug_report.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yaml b/.github/ISSUE_TEMPLATE/bug_report.yaml index d42dc8aeb..9f54fc05f 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yaml +++ b/.github/ISSUE_TEMPLATE/bug_report.yaml @@ -52,7 +52,7 @@ body: - type: textarea attributes: label: 描述 | Description - description: 请描述你的问题 | Please describe your bug + description: 请描述你的问题,尽可能提供[最小化重现](https://antfu.me/posts/why-reproductions-are-required-zh) | Please describe your bug and provide [minimal reproductions](https://antfu.me/posts/why-reproductions-are-required). - type: textarea id: logs attributes: From 0d4f1d2d7b32729d3360ab6202b67d4213320732 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 26 Aug 2022 12:26:36 +0800 Subject: [PATCH 1149/2165] =?UTF-8?q?doc:=20=E6=9B=B4=E6=96=B0=E6=BC=94?= =?UTF-8?q?=E7=A4=BA=E7=BD=91=E7=AB=99=20URL?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a37842f50..748d8a69d 100644 --- a/README.md +++ b/README.md @@ -57,7 +57,7 @@ > **注意**: 数据每日都会重新初始化,不对用户上传的应用承担任何法律风险,后果自负! -- 演示地址:https://tryzealot.herokuapp.com/ +- 演示地址:https://tryzealot.ews.im/ - 登录账户: `admin@zealot.com` - 登录密码:`ze@l0t` From 6d85d9f0ab67721596bc2adcf0e48af21eaca959 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 26 Aug 2022 14:34:35 +0800 Subject: [PATCH 1150/2165] fix: showcase img --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 748d8a69d..0fc1c9d7f 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,7 @@ -![Zealot Showcase](https://zealot.ews.im/_media/showcase.png) +![Zealot Showcase](https://zealot.ews.im/img/showcase.png) ## 特性 - 🌏 **多平台应用支持**: macOS、iOS、甚至是 APK 和 AAB 格式的 Android 应用上传、安装(支持 ARM 的 macOS)和下载 From 3d590c7388c16d13609d51c7c139082ae4cc71e8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 30 Aug 2022 21:01:46 +0000 Subject: [PATCH 1151/2165] chore(deps): bump esbuild from 0.15.5 to 0.15.6 Bumps [esbuild](https://github.com/evanw/esbuild) from 0.15.5 to 0.15.6. - [Release notes](https://github.com/evanw/esbuild/releases) - [Changelog](https://github.com/evanw/esbuild/blob/master/CHANGELOG.md) - [Commits](https://github.com/evanw/esbuild/compare/v0.15.5...v0.15.6) --- updated-dependencies: - dependency-name: esbuild dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 258 +++++++++++++++++++++++++-------------------------- 2 files changed, 130 insertions(+), 130 deletions(-) diff --git a/package.json b/package.json index 27a969872..464119ef0 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "admin-lte": "3.1.0", "clipboard": "^2.0.11", "compare-versions": "^4.1.4", - "esbuild": "^0.15.5", + "esbuild": "^0.15.6", "sass": "^1.54.5", "ua-parser-js": "^1.0.2" }, diff --git a/yarn.lock b/yarn.lock index 4c7923e71..160d22991 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,10 +2,10 @@ # yarn lockfile v1 -"@esbuild/linux-loong64@0.15.5": - version "0.15.5" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.5.tgz#91aef76d332cdc7c8942b600fa2307f3387e6f82" - integrity sha512-UHkDFCfSGTuXq08oQltXxSZmH1TXyWsL+4QhZDWvvLl6mEJQqk3u7/wq1LjhrrAXYIllaTtRSzUXl4Olkf2J8A== +"@esbuild/linux-loong64@0.15.6": + version "0.15.6" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.6.tgz#45be4184f00e505411bc265a05e709764114acd8" + integrity sha512-hqmVU2mUjH6J2ZivHphJ/Pdse2ZD+uGCHK0uvsiLDk/JnSedEVj77CiVUnbMKuU4tih1TZZL8tG9DExQg/GZsw== "@fortawesome/fontawesome-free@^5.15.3": version "5.15.4" @@ -672,132 +672,132 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -esbuild-android-64@0.15.5: - version "0.15.5" - resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.5.tgz#3c7b2f2a59017dab3f2c0356188a8dd9cbdc91c8" - integrity sha512-dYPPkiGNskvZqmIK29OPxolyY3tp+c47+Fsc2WYSOVjEPWNCHNyqhtFqQadcXMJDQt8eN0NMDukbyQgFcHquXg== - -esbuild-android-arm64@0.15.5: - version "0.15.5" - resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.5.tgz#e301db818c5a67b786bf3bb7320e414ac0fcf193" - integrity sha512-YyEkaQl08ze3cBzI/4Cm1S+rVh8HMOpCdq8B78JLbNFHhzi4NixVN93xDrHZLztlocEYqi45rHHCgA8kZFidFg== - -esbuild-darwin-64@0.15.5: - version "0.15.5" - resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.5.tgz#11726de5d0bf5960b92421ef433e35871c091f8d" - integrity sha512-Cr0iIqnWKx3ZTvDUAzG0H/u9dWjLE4c2gTtRLz4pqOBGjfjqdcZSfAObFzKTInLLSmD0ZV1I/mshhPoYSBMMCQ== - -esbuild-darwin-arm64@0.15.5: - version "0.15.5" - resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.5.tgz#ad89dafebb3613fd374f5a245bb0ce4132413997" - integrity sha512-WIfQkocGtFrz7vCu44ypY5YmiFXpsxvz2xqwe688jFfSVCnUsCn2qkEVDo7gT8EpsLOz1J/OmqjExePL1dr1Kg== - -esbuild-freebsd-64@0.15.5: - version "0.15.5" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.5.tgz#6bfb52b4a0d29c965aa833e04126e95173289c8a" - integrity sha512-M5/EfzV2RsMd/wqwR18CELcenZ8+fFxQAAEO7TJKDmP3knhWSbD72ILzrXFMMwshlPAS1ShCZ90jsxkm+8FlaA== - -esbuild-freebsd-arm64@0.15.5: - version "0.15.5" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.5.tgz#38a3fed8c6398072f9914856c7c3e3444f9ef4dd" - integrity sha512-2JQQ5Qs9J0440F/n/aUBNvY6lTo4XP/4lt1TwDfHuo0DY3w5++anw+jTjfouLzbJmFFiwmX7SmUhMnysocx96w== - -esbuild-linux-32@0.15.5: - version "0.15.5" - resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.5.tgz#942dc70127f0c0a7ea91111baf2806e61fc81b32" - integrity sha512-gO9vNnIN0FTUGjvTFucIXtBSr1Woymmx/aHQtuU+2OllGU6YFLs99960UD4Dib1kFovVgs59MTXwpFdVoSMZoQ== - -esbuild-linux-64@0.15.5: - version "0.15.5" - resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.5.tgz#6d748564492d5daaa7e62420862c31ac3a44aed9" - integrity sha512-ne0GFdNLsm4veXbTnYAWjbx3shpNKZJUd6XpNbKNUZaNllDZfYQt0/zRqOg0sc7O8GQ+PjSMv9IpIEULXVTVmg== - -esbuild-linux-arm64@0.15.5: - version "0.15.5" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.5.tgz#28cd899beb2d2b0a3870fd44f4526835089a318d" - integrity sha512-7EgFyP2zjO065XTfdCxiXVEk+f83RQ1JsryN1X/VSX2li9rnHAt2swRbpoz5Vlrl6qjHrCmq5b6yxD13z6RheA== - -esbuild-linux-arm@0.15.5: - version "0.15.5" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.5.tgz#6441c256225564d8794fdef5b0a69bc1a43051b5" - integrity sha512-wvAoHEN+gJ/22gnvhZnS/+2H14HyAxM07m59RSLn3iXrQsdS518jnEWRBnJz3fR6BJa+VUTo0NxYjGaNt7RA7Q== - -esbuild-linux-mips64le@0.15.5: - version "0.15.5" - resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.5.tgz#d4927f817290eaffc062446896b2a553f0e11981" - integrity sha512-KdnSkHxWrJ6Y40ABu+ipTZeRhFtc8dowGyFsZY5prsmMSr1ZTG9zQawguN4/tunJ0wy3+kD54GaGwdcpwWAvZQ== - -esbuild-linux-ppc64le@0.15.5: - version "0.15.5" - resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.5.tgz#b6d660dc6d5295f89ac51c675f1a2f639e2fb474" - integrity sha512-QdRHGeZ2ykl5P0KRmfGBZIHmqcwIsUKWmmpZTOq573jRWwmpfRmS7xOhmDHBj9pxv+6qRMH8tLr2fe+ZKQvCYw== - -esbuild-linux-riscv64@0.15.5: - version "0.15.5" - resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.5.tgz#2801bf18414dc3d3ad58d1ea83084f00d9d84896" - integrity sha512-p+WE6RX+jNILsf+exR29DwgV6B73khEQV0qWUbzxaycxawZ8NE0wA6HnnTxbiw5f4Gx9sJDUBemh9v49lKOORA== - -esbuild-linux-s390x@0.15.5: - version "0.15.5" - resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.5.tgz#12a634ae6d3384cacc2b8f4201047deafe596eae" - integrity sha512-J2ngOB4cNzmqLHh6TYMM/ips8aoZIuzxJnDdWutBw5482jGXiOzsPoEF4j2WJ2mGnm7FBCO4StGcwzOgic70JQ== - -esbuild-netbsd-64@0.15.5: - version "0.15.5" - resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.5.tgz#951bbf87600512dfcfbe3b8d9d117d684d26c1b8" - integrity sha512-MmKUYGDizYjFia0Rwt8oOgmiFH7zaYlsoQ3tIOfPxOqLssAsEgG0MUdRDm5lliqjiuoog8LyDu9srQk5YwWF3w== - -esbuild-openbsd-64@0.15.5: - version "0.15.5" - resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.5.tgz#26705b61961d525d79a772232e8b8f211fdbb035" - integrity sha512-2mMFfkLk3oPWfopA9Plj4hyhqHNuGyp5KQyTT9Rc8hFd8wAn5ZrbJg+gNcLMo2yzf8Uiu0RT6G9B15YN9WQyMA== - -esbuild-sunos-64@0.15.5: - version "0.15.5" - resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.5.tgz#d794da1ae60e6e2f6194c44d7b3c66bf66c7a141" - integrity sha512-2sIzhMUfLNoD+rdmV6AacilCHSxZIoGAU2oT7XmJ0lXcZWnCvCtObvO6D4puxX9YRE97GodciRGDLBaiC6x1SA== - -esbuild-windows-32@0.15.5: - version "0.15.5" - resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.5.tgz#0670326903f421424be86bc03b7f7b3ff86a9db7" - integrity sha512-e+duNED9UBop7Vnlap6XKedA/53lIi12xv2ebeNS4gFmu7aKyTrok7DPIZyU5w/ftHD4MUDs5PJUkQPP9xJRzg== - -esbuild-windows-64@0.15.5: - version "0.15.5" - resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.5.tgz#64f32acb7341f3f0a4d10e8ff1998c2d1ebfc0a9" - integrity sha512-v+PjvNtSASHOjPDMIai9Yi+aP+Vwox+3WVdg2JB8N9aivJ7lyhp4NVU+J0MV2OkWFPnVO8AE/7xH+72ibUUEnw== - -esbuild-windows-arm64@0.15.5: - version "0.15.5" - resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.5.tgz#4fe7f333ce22a922906b10233c62171673a3854b" - integrity sha512-Yz8w/D8CUPYstvVQujByu6mlf48lKmXkq6bkeSZZxTA626efQOJb26aDGLzmFWx6eg/FwrXgt6SZs9V8Pwy/aA== - -esbuild@^0.15.5: - version "0.15.5" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.5.tgz#5effd05666f621d4ff2fe2c76a67c198292193ff" - integrity sha512-VSf6S1QVqvxfIsSKb3UKr3VhUCis7wgDbtF4Vd9z84UJr05/Sp2fRKmzC+CSPG/dNAPPJZ0BTBLTT1Fhd6N9Gg== +esbuild-android-64@0.15.6: + version "0.15.6" + resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.6.tgz#baaed943ca510c2ad546e116728132e76d1d2044" + integrity sha512-Z1CHSgB1crVQi2LKSBwSkpaGtaloVz0ZIYcRMsvHc3uSXcR/x5/bv9wcZspvH/25lIGTaViosciS/NS09ERmVA== + +esbuild-android-arm64@0.15.6: + version "0.15.6" + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.6.tgz#1c33c73d4c074969e014e31958116460c8e75a7a" + integrity sha512-mvM+gqNxqKm2pCa3dnjdRzl7gIowuc4ga7P7c3yHzs58Im8v/Lfk1ixSgQ2USgIywT48QWaACRa3F4MG7djpSw== + +esbuild-darwin-64@0.15.6: + version "0.15.6" + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.6.tgz#388592ba61bf31993d79f6311f7452aa1ef255b9" + integrity sha512-BsfVt3usScAfGlXJiGtGamwVEOTM8AiYiw1zqDWhGv6BncLXCnTg1As+90mxWewdTZKq3iIy8s9g8CKkrrAXVw== + +esbuild-darwin-arm64@0.15.6: + version "0.15.6" + resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.6.tgz#194e987849dc4688654008a1792f26e948f52e74" + integrity sha512-CnrAeJaEpPakUobhqO4wVSA4Zm6TPaI5UY4EsI62j9mTrjIyQPXA1n4Ju6Iu5TVZRnEqV6q8blodgYJ6CJuwCA== + +esbuild-freebsd-64@0.15.6: + version "0.15.6" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.6.tgz#daa72faee585ec2ec27cc65e86a6ce0786373e66" + integrity sha512-+qFdmqi+jkAsxsNJkaWVrnxEUUI50nu6c3MBVarv3RCDCbz7ZS1a4ZrdkwEYFnKcVWu6UUE0Kkb1SQ1yGEG6sg== + +esbuild-freebsd-arm64@0.15.6: + version "0.15.6" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.6.tgz#70c8a2a30bf6bb9d547a0d8dc93aa015ec4f77f9" + integrity sha512-KtQkQOhnNciXm2yrTYZMD3MOm2zBiiwFSU+dkwNbcfDumzzUprr1x70ClTdGuZwieBS1BM/k0KajRQX7r504Xw== + +esbuild-linux-32@0.15.6: + version "0.15.6" + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.6.tgz#d69ed2335b2d68c00b3248254b432172077b7ced" + integrity sha512-IAkDNz3TpxwISTGVdQijwyHBZrbFgLlRi5YXcvaEHtgbmayLSDcJmH5nV1MFgo/x2QdKcHBkOYHdjhKxUAcPwg== + +esbuild-linux-64@0.15.6: + version "0.15.6" + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.6.tgz#dca821e8f129cccde23ac947fd0d4bea3b333808" + integrity sha512-gQPksyrEYfA4LJwyfTQWAZaVZCx4wpaLrSzo2+Xc9QLC+i/sMWmX31jBjrn4nLJCd79KvwCinto36QC7BEIU/A== + +esbuild-linux-arm64@0.15.6: + version "0.15.6" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.6.tgz#c9e8bc86f3c58a7c8ff1ded5880c6a39ade7621b" + integrity sha512-aovDkclFa6C9EdZVBuOXxqZx83fuoq8097xZKhEPSygwuy4Lxs8J4anHG7kojAsR+31lfUuxzOo2tHxv7EiNHA== + +esbuild-linux-arm@0.15.6: + version "0.15.6" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.6.tgz#354ecad0223f5b176995cf4462560eec2633de24" + integrity sha512-xZ0Bq2aivsthDjA/ytQZzxrxIZbG0ATJYMJxNeOIBc1zUjpbVpzBKgllOZMsTSXMHFHGrow6TnCcgwqY0+oEoQ== + +esbuild-linux-mips64le@0.15.6: + version "0.15.6" + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.6.tgz#f4fb941a4ff0af437deed69a2e0712983c8fff3e" + integrity sha512-wVpW8wkWOGizsCqCwOR/G3SHwhaecpGy3fic9BF1r7vq4djLjUcA8KunDaBCjJ6TgLQFhJ98RjDuyEf8AGjAvw== + +esbuild-linux-ppc64le@0.15.6: + version "0.15.6" + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.6.tgz#19774a8b52c77173f2d4f171b8a8cf839b12e686" + integrity sha512-z6w6gsPH/Y77uchocluDC8tkCg9rfkcPTePzZKNr879bF4tu7j9t255wuNOCE396IYEGxY7y8u2HJ9i7kjCLVw== + +esbuild-linux-riscv64@0.15.6: + version "0.15.6" + resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.6.tgz#66bd83b065c4a1e623df02c122bc7e4e15fd8486" + integrity sha512-pfK/3MJcmbfU399TnXW5RTPS1S+ID6ra+CVj9TFZ2s0q9Ja1F5A1VirUUvViPkjiw+Kq3zveyn6U09Wg1zJXrw== + +esbuild-linux-s390x@0.15.6: + version "0.15.6" + resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.6.tgz#1e024bddc75afe8dc70ed48fc9627af770d7f34b" + integrity sha512-OZeeDu32liefcwAE63FhVqM4heWTC8E3MglOC7SK0KYocDdY/6jyApw0UDkDHlcEK9mW6alX/SH9r3PDjcCo/Q== + +esbuild-netbsd-64@0.15.6: + version "0.15.6" + resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.6.tgz#c11477d197f059c8794ee1691e3399201f7c4b9a" + integrity sha512-kaxw61wcHMyiEsSsi5ut1YYs/hvTC2QkxJwyRvC2Cnsz3lfMLEu8zAjpBKWh9aU/N0O/gsRap4wTur5GRuSvBA== + +esbuild-openbsd-64@0.15.6: + version "0.15.6" + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.6.tgz#b29e7faed5b8d2aeaf3884c47c1a96b1cba8e263" + integrity sha512-CuoY60alzYfIZapUHqFXqXbj88bbRJu8Fp9okCSHRX2zWIcGz4BXAHXiG7dlCye5nFVrY72psesLuWdusyf2qw== + +esbuild-sunos-64@0.15.6: + version "0.15.6" + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.6.tgz#9668f39e47179f50c0435040904b9c6e10e84a70" + integrity sha512-1ceefLdPWcd1nW/ZLruPEYxeUEAVX0YHbG7w+BB4aYgfknaLGotI/ZvPWUZpzhC8l1EybrVlz++lm3E6ODIJOg== + +esbuild-windows-32@0.15.6: + version "0.15.6" + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.6.tgz#9ddcd56e3c4fb9729a218c713c4e76bdbc1678b4" + integrity sha512-pBqdOsKqCD5LRYiwF29PJRDJZi7/Wgkz46u3d17MRFmrLFcAZDke3nbdDa1c8YgY78RiemudfCeAemN8EBlIpA== + +esbuild-windows-64@0.15.6: + version "0.15.6" + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.6.tgz#1eaadeadfd995e9d065d35cb3e9f02607202f339" + integrity sha512-KpPOh4aTOo//g9Pk2oVAzXMpc9Sz9n5A9sZTmWqDSXCiiachfFhbuFlsKBGATYCVitXfmBIJ4nNYYWSOdz4hQg== + +esbuild-windows-arm64@0.15.6: + version "0.15.6" + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.6.tgz#e18a778d354fc2ca2306688f3fedad8a3e57819e" + integrity sha512-DB3G2x9OvFEa00jV+OkDBYpufq5x/K7a6VW6E2iM896DG4ZnAvJKQksOsCPiM1DUaa+DrijXAQ/ZOcKAqf/3Hg== + +esbuild@^0.15.6: + version "0.15.6" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.6.tgz#626e5941b98de506b862047be3c4b33f89278923" + integrity sha512-sgLOv3l4xklvXzzczhRwKRotyrfyZ2i1fCS6PTOLPd9wevDPArGU8HFtHrHCOcsMwTjLjzGm15gvC8uxVzQf+w== optionalDependencies: - "@esbuild/linux-loong64" "0.15.5" - esbuild-android-64 "0.15.5" - esbuild-android-arm64 "0.15.5" - esbuild-darwin-64 "0.15.5" - esbuild-darwin-arm64 "0.15.5" - esbuild-freebsd-64 "0.15.5" - esbuild-freebsd-arm64 "0.15.5" - esbuild-linux-32 "0.15.5" - esbuild-linux-64 "0.15.5" - esbuild-linux-arm "0.15.5" - esbuild-linux-arm64 "0.15.5" - esbuild-linux-mips64le "0.15.5" - esbuild-linux-ppc64le "0.15.5" - esbuild-linux-riscv64 "0.15.5" - esbuild-linux-s390x "0.15.5" - esbuild-netbsd-64 "0.15.5" - esbuild-openbsd-64 "0.15.5" - esbuild-sunos-64 "0.15.5" - esbuild-windows-32 "0.15.5" - esbuild-windows-64 "0.15.5" - esbuild-windows-arm64 "0.15.5" + "@esbuild/linux-loong64" "0.15.6" + esbuild-android-64 "0.15.6" + esbuild-android-arm64 "0.15.6" + esbuild-darwin-64 "0.15.6" + esbuild-darwin-arm64 "0.15.6" + esbuild-freebsd-64 "0.15.6" + esbuild-freebsd-arm64 "0.15.6" + esbuild-linux-32 "0.15.6" + esbuild-linux-64 "0.15.6" + esbuild-linux-arm "0.15.6" + esbuild-linux-arm64 "0.15.6" + esbuild-linux-mips64le "0.15.6" + esbuild-linux-ppc64le "0.15.6" + esbuild-linux-riscv64 "0.15.6" + esbuild-linux-s390x "0.15.6" + esbuild-netbsd-64 "0.15.6" + esbuild-openbsd-64 "0.15.6" + esbuild-sunos-64 "0.15.6" + esbuild-windows-32 "0.15.6" + esbuild-windows-64 "0.15.6" + esbuild-windows-arm64 "0.15.6" ev-emitter@^1.0.0: version "1.1.1" From ddf5b368c36075af8249b7a3e4eafed3713590da Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 31 Aug 2022 02:33:29 +0000 Subject: [PATCH 1152/2165] chore(deps): bump moment-timezone from 0.5.34 to 0.5.37 Bumps [moment-timezone](https://github.com/moment/moment-timezone) from 0.5.34 to 0.5.37. - [Release notes](https://github.com/moment/moment-timezone/releases) - [Changelog](https://github.com/moment/moment-timezone/blob/develop/changelog.md) - [Commits](https://github.com/moment/moment-timezone/compare/0.5.34...0.5.37) --- updated-dependencies: - dependency-name: moment-timezone dependency-type: indirect ... Signed-off-by: dependabot[bot] --- yarn.lock | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/yarn.lock b/yarn.lock index 160d22991..2742858cf 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1261,18 +1261,13 @@ linebreak@^1.0.2: unicode-trie "^2.0.0" moment-timezone@^0.5.34: - version "0.5.34" - resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.34.tgz#a75938f7476b88f155d3504a9343f7519d9a405c" - integrity sha512-3zAEHh2hKUs3EXLESx/wsgw6IQdusOT8Bxm3D9UrHPQR7zlMmzwybC8zHEM1tQ4LJwP7fcxrWr8tuBg05fFCbg== + version "0.5.37" + resolved "https://registry.yarnpkg.com/moment-timezone/-/moment-timezone-0.5.37.tgz#adf97f719c4e458fdb12e2b4e87b8bec9f4eef1e" + integrity sha512-uEDzDNFhfaywRl+vwXxffjjq1q0Vzr+fcQpQ1bU0kbzorfS7zVtZnCnGc8mhWmF39d4g4YriF6kwA75mJKE/Zg== dependencies: moment ">= 2.9.0" -"moment@>= 2.9.0", moment@^2.10.2, moment@^2.9.0: - version "2.29.2" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.2.tgz#00910c60b20843bcba52d37d58c628b47b1f20e4" - integrity sha512-UgzG4rvxYpN15jgCmVJwac49h9ly9NurikMWGPdVxm8GZD6XjkKPxDTjQQ43gtGgnV3X0cAyWDdP2Wexoquifg== - -moment@^2.29.1, moment@^2.29.2: +"moment@>= 2.9.0", moment@^2.10.2, moment@^2.29.1, moment@^2.29.2, moment@^2.9.0: version "2.29.4" resolved "https://registry.yarnpkg.com/moment/-/moment-2.29.4.tgz#3dbe052889fe7c1b2ed966fcb3a77328964ef108" integrity sha512-5LC9SOxjSc2HF6vO2CyuTDNivEdoz2IvyJJGj6X8DJ0eFyfszE0QiEd+iXmBvUP3WHxSjFH/vIsA0EN00cgr8w== From eb7ecd831315fd8cb7ea09d60e4e24f0fa1ac6c1 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 31 Aug 2022 11:04:27 +0800 Subject: [PATCH 1153/2165] feat: upgrade compare-versions to 5.0.1 --- .../controllers/admin/new_release_controller.js | 6 ++---- package.json | 2 +- yarn.lock | 8 ++++---- 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/app/javascript/controllers/admin/new_release_controller.js b/app/javascript/controllers/admin/new_release_controller.js index 80827228e..d56df9c37 100644 --- a/app/javascript/controllers/admin/new_release_controller.js +++ b/app/javascript/controllers/admin/new_release_controller.js @@ -1,5 +1,5 @@ import { Controller } from "@hotwired/stimulus" -import compareVersion from "compare-versions" +import { compare } from "compare-versions" const DEVELLOPMENT = "development" const PROJECT_URL = "https://github.com/tryzealot/zealot" @@ -19,15 +19,13 @@ export default class extends Controller { check() { fetch(VERSION_URL, { - method: "GET", headers: { - "X-Requested-With": "XMLHttpRequest", "Accept": "application/vnd.github.v3+json" } }).then((response) => response.json()) .then((json) => { const releaseVersion = json.tag_name - if (compareVersion(releaseVersion, this.versionValue) <= 0) { return } + if (compare(releaseVersion, this.versionValue, '<=')) { return } const releaseLink = json.html_url const title = this.titleValue + " " + releaseVersion this.render(title, releaseLink) diff --git a/package.json b/package.json index 27a969872..20a52a885 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "@rails/actioncable": "^7.0.3", "admin-lte": "3.1.0", "clipboard": "^2.0.11", - "compare-versions": "^4.1.4", + "compare-versions": "^5.0.1", "esbuild": "^0.15.5", "sass": "^1.54.5", "ua-parser-js": "^1.0.2" diff --git a/yarn.lock b/yarn.lock index 4c7923e71..767cd81af 100644 --- a/yarn.lock +++ b/yarn.lock @@ -297,10 +297,10 @@ color-name@^1.0.0: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -compare-versions@^4.1.4: - version "4.1.4" - resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-4.1.4.tgz#3571f4d610924d4414846a4183d386c8f3d51112" - integrity sha512-FemMreK9xNyL8gQevsdRMrvO4lFCkQP7qbuktn1q8ndcNk1+0mz7lgE7b/sNvbhVgY4w6tMN1FDp6aADjqw2rw== +compare-versions@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-5.0.1.tgz#14c6008436d994c3787aba38d4087fabe858555e" + integrity sha512-v8Au3l0b+Nwkp4G142JcgJFh1/TUhdxut7wzD1Nq1dyp5oa3tXaqb03EXOAB6jS4gMlalkjAUPZBMiAfKUixHQ== core-util-is@~1.0.0: version "1.0.3" From 7569129159b30c2d2eeb8ed82d92cf2a057cb9f5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 31 Aug 2022 03:26:15 +0000 Subject: [PATCH 1154/2165] chore(deps): bump sass from 1.54.5 to 1.54.7 Bumps [sass](https://github.com/sass/dart-sass) from 1.54.5 to 1.54.7. - [Release notes](https://github.com/sass/dart-sass/releases) - [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md) - [Commits](https://github.com/sass/dart-sass/compare/1.54.5...1.54.7) --- updated-dependencies: - dependency-name: sass dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index aa38a6667..57ad1723c 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "clipboard": "^2.0.11", "compare-versions": "^5.0.1", "esbuild": "^0.15.6", - "sass": "^1.54.5", + "sass": "^1.54.7", "ua-parser-js": "^1.0.2" }, "scripts": { diff --git a/yarn.lock b/yarn.lock index b7df3e1da..b1f10f2dd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1422,10 +1422,10 @@ safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sass@^1.54.5: - version "1.54.5" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.54.5.tgz#93708f5560784f6ff2eab8542ade021a4a947b3a" - integrity sha512-p7DTOzxkUPa/63FU0R3KApkRHwcVZYC0PLnLm5iyZACyp15qSi32x7zVUhRdABAATmkALqgGrjCJAcWvobmhHw== +sass@^1.54.7: + version "1.54.7" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.54.7.tgz#a93fb1690472b161fab8f4ab34a66a0f3000c478" + integrity sha512-3q7MQz7sCpVG6TLhUfZwGOcd2/sm2ghYN2JEdRjNiW04ILdvahdo9GuAs+bxsxZ3hDCKv+wUT5w0iFWGU0CxlA== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" From c51cba7d83458a83869f4c75b9b3b6f1f26d45f8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 1 Sep 2022 21:01:36 +0000 Subject: [PATCH 1155/2165] chore(deps): bump sass from 1.54.7 to 1.54.8 Bumps [sass](https://github.com/sass/dart-sass) from 1.54.7 to 1.54.8. - [Release notes](https://github.com/sass/dart-sass/releases) - [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md) - [Commits](https://github.com/sass/dart-sass/compare/1.54.7...1.54.8) --- updated-dependencies: - dependency-name: sass dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 57ad1723c..df55556fa 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "clipboard": "^2.0.11", "compare-versions": "^5.0.1", "esbuild": "^0.15.6", - "sass": "^1.54.7", + "sass": "^1.54.8", "ua-parser-js": "^1.0.2" }, "scripts": { diff --git a/yarn.lock b/yarn.lock index b1f10f2dd..65aca5072 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1422,10 +1422,10 @@ safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sass@^1.54.7: - version "1.54.7" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.54.7.tgz#a93fb1690472b161fab8f4ab34a66a0f3000c478" - integrity sha512-3q7MQz7sCpVG6TLhUfZwGOcd2/sm2ghYN2JEdRjNiW04ILdvahdo9GuAs+bxsxZ3hDCKv+wUT5w0iFWGU0CxlA== +sass@^1.54.8: + version "1.54.8" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.54.8.tgz#4adef0dd86ea2b1e4074f551eeda4fc5f812a996" + integrity sha512-ib4JhLRRgbg6QVy6bsv5uJxnJMTS2soVcCp9Y88Extyy13A8vV0G1fAwujOzmNkFQbR3LvedudAMbtuNRPbQww== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" From cbdd657be79888b93650df4f5a14d9eac55505b7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 5 Sep 2022 21:01:07 +0000 Subject: [PATCH 1156/2165] chore(deps): bump sidekiq-failures from 1.0.3 to 1.0.4 Bumps [sidekiq-failures](https://github.com/mhfs/sidekiq-failures) from 1.0.3 to 1.0.4. - [Release notes](https://github.com/mhfs/sidekiq-failures/releases) - [Changelog](https://github.com/mhfs/sidekiq-failures/blob/master/CHANGELOG.md) - [Commits](https://github.com/mhfs/sidekiq-failures/compare/1.0.3...1.0.4) --- updated-dependencies: - dependency-name: sidekiq-failures dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 7671c9980..4bf2d2751 100644 --- a/Gemfile +++ b/Gemfile @@ -87,7 +87,7 @@ gem 'rqrcode' gem 'activejob-status' gem 'sidekiq', '~> 6.5.5' gem 'sidekiq-scheduler', '~> 4.0.2' -gem 'sidekiq-failures', '~> 1.0.3' +gem 'sidekiq-failures', '~> 1.0.4' # Assets ## jsbundling-rails, cssbundling-rails 仅生成配置文件到项目组,核心还是 package.json 中 build/build:css 部分。 diff --git a/Gemfile.lock b/Gemfile.lock index 3f54e14e2..ce2dfad90 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -436,7 +436,7 @@ GEM connection_pool (>= 2.2.2) rack (~> 2.0) redis (>= 4.5.0) - sidekiq-failures (1.0.3) + sidekiq-failures (1.0.4) sidekiq (>= 4.0.0) sidekiq-scheduler (4.0.2) redis (>= 4.2.0) @@ -568,7 +568,7 @@ DEPENDENCIES sentry-ruby sentry-sidekiq sidekiq (~> 6.5.5) - sidekiq-failures (~> 1.0.3) + sidekiq-failures (~> 1.0.4) sidekiq-scheduler (~> 4.0.2) simple_form (~> 5.1) slim-rails (~> 3.5.1) From 0781f7ac22afe479a9a5a59aa79ee290539bd9ae Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 5 Sep 2022 21:01:31 +0000 Subject: [PATCH 1157/2165] chore(deps): bump esbuild from 0.15.6 to 0.15.7 Bumps [esbuild](https://github.com/evanw/esbuild) from 0.15.6 to 0.15.7. - [Release notes](https://github.com/evanw/esbuild/releases) - [Changelog](https://github.com/evanw/esbuild/blob/master/CHANGELOG.md) - [Commits](https://github.com/evanw/esbuild/compare/v0.15.6...v0.15.7) --- updated-dependencies: - dependency-name: esbuild dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 258 +++++++++++++++++++++++++-------------------------- 2 files changed, 130 insertions(+), 130 deletions(-) diff --git a/package.json b/package.json index df55556fa..3e223e086 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "admin-lte": "3.1.0", "clipboard": "^2.0.11", "compare-versions": "^5.0.1", - "esbuild": "^0.15.6", + "esbuild": "^0.15.7", "sass": "^1.54.8", "ua-parser-js": "^1.0.2" }, diff --git a/yarn.lock b/yarn.lock index 65aca5072..180f6c85e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,10 +2,10 @@ # yarn lockfile v1 -"@esbuild/linux-loong64@0.15.6": - version "0.15.6" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.6.tgz#45be4184f00e505411bc265a05e709764114acd8" - integrity sha512-hqmVU2mUjH6J2ZivHphJ/Pdse2ZD+uGCHK0uvsiLDk/JnSedEVj77CiVUnbMKuU4tih1TZZL8tG9DExQg/GZsw== +"@esbuild/linux-loong64@0.15.7": + version "0.15.7" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.7.tgz#1ec4af4a16c554cbd402cc557ccdd874e3f7be53" + integrity sha512-IKznSJOsVUuyt7cDzzSZyqBEcZe+7WlBqTVXiF1OXP/4Nm387ToaXZ0fyLwI1iBlI/bzpxVq411QE2/Bt2XWWw== "@fortawesome/fontawesome-free@^5.15.3": version "5.15.4" @@ -672,132 +672,132 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -esbuild-android-64@0.15.6: - version "0.15.6" - resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.6.tgz#baaed943ca510c2ad546e116728132e76d1d2044" - integrity sha512-Z1CHSgB1crVQi2LKSBwSkpaGtaloVz0ZIYcRMsvHc3uSXcR/x5/bv9wcZspvH/25lIGTaViosciS/NS09ERmVA== - -esbuild-android-arm64@0.15.6: - version "0.15.6" - resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.6.tgz#1c33c73d4c074969e014e31958116460c8e75a7a" - integrity sha512-mvM+gqNxqKm2pCa3dnjdRzl7gIowuc4ga7P7c3yHzs58Im8v/Lfk1ixSgQ2USgIywT48QWaACRa3F4MG7djpSw== - -esbuild-darwin-64@0.15.6: - version "0.15.6" - resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.6.tgz#388592ba61bf31993d79f6311f7452aa1ef255b9" - integrity sha512-BsfVt3usScAfGlXJiGtGamwVEOTM8AiYiw1zqDWhGv6BncLXCnTg1As+90mxWewdTZKq3iIy8s9g8CKkrrAXVw== - -esbuild-darwin-arm64@0.15.6: - version "0.15.6" - resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.6.tgz#194e987849dc4688654008a1792f26e948f52e74" - integrity sha512-CnrAeJaEpPakUobhqO4wVSA4Zm6TPaI5UY4EsI62j9mTrjIyQPXA1n4Ju6Iu5TVZRnEqV6q8blodgYJ6CJuwCA== - -esbuild-freebsd-64@0.15.6: - version "0.15.6" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.6.tgz#daa72faee585ec2ec27cc65e86a6ce0786373e66" - integrity sha512-+qFdmqi+jkAsxsNJkaWVrnxEUUI50nu6c3MBVarv3RCDCbz7ZS1a4ZrdkwEYFnKcVWu6UUE0Kkb1SQ1yGEG6sg== - -esbuild-freebsd-arm64@0.15.6: - version "0.15.6" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.6.tgz#70c8a2a30bf6bb9d547a0d8dc93aa015ec4f77f9" - integrity sha512-KtQkQOhnNciXm2yrTYZMD3MOm2zBiiwFSU+dkwNbcfDumzzUprr1x70ClTdGuZwieBS1BM/k0KajRQX7r504Xw== - -esbuild-linux-32@0.15.6: - version "0.15.6" - resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.6.tgz#d69ed2335b2d68c00b3248254b432172077b7ced" - integrity sha512-IAkDNz3TpxwISTGVdQijwyHBZrbFgLlRi5YXcvaEHtgbmayLSDcJmH5nV1MFgo/x2QdKcHBkOYHdjhKxUAcPwg== - -esbuild-linux-64@0.15.6: - version "0.15.6" - resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.6.tgz#dca821e8f129cccde23ac947fd0d4bea3b333808" - integrity sha512-gQPksyrEYfA4LJwyfTQWAZaVZCx4wpaLrSzo2+Xc9QLC+i/sMWmX31jBjrn4nLJCd79KvwCinto36QC7BEIU/A== - -esbuild-linux-arm64@0.15.6: - version "0.15.6" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.6.tgz#c9e8bc86f3c58a7c8ff1ded5880c6a39ade7621b" - integrity sha512-aovDkclFa6C9EdZVBuOXxqZx83fuoq8097xZKhEPSygwuy4Lxs8J4anHG7kojAsR+31lfUuxzOo2tHxv7EiNHA== - -esbuild-linux-arm@0.15.6: - version "0.15.6" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.6.tgz#354ecad0223f5b176995cf4462560eec2633de24" - integrity sha512-xZ0Bq2aivsthDjA/ytQZzxrxIZbG0ATJYMJxNeOIBc1zUjpbVpzBKgllOZMsTSXMHFHGrow6TnCcgwqY0+oEoQ== - -esbuild-linux-mips64le@0.15.6: - version "0.15.6" - resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.6.tgz#f4fb941a4ff0af437deed69a2e0712983c8fff3e" - integrity sha512-wVpW8wkWOGizsCqCwOR/G3SHwhaecpGy3fic9BF1r7vq4djLjUcA8KunDaBCjJ6TgLQFhJ98RjDuyEf8AGjAvw== - -esbuild-linux-ppc64le@0.15.6: - version "0.15.6" - resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.6.tgz#19774a8b52c77173f2d4f171b8a8cf839b12e686" - integrity sha512-z6w6gsPH/Y77uchocluDC8tkCg9rfkcPTePzZKNr879bF4tu7j9t255wuNOCE396IYEGxY7y8u2HJ9i7kjCLVw== - -esbuild-linux-riscv64@0.15.6: - version "0.15.6" - resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.6.tgz#66bd83b065c4a1e623df02c122bc7e4e15fd8486" - integrity sha512-pfK/3MJcmbfU399TnXW5RTPS1S+ID6ra+CVj9TFZ2s0q9Ja1F5A1VirUUvViPkjiw+Kq3zveyn6U09Wg1zJXrw== - -esbuild-linux-s390x@0.15.6: - version "0.15.6" - resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.6.tgz#1e024bddc75afe8dc70ed48fc9627af770d7f34b" - integrity sha512-OZeeDu32liefcwAE63FhVqM4heWTC8E3MglOC7SK0KYocDdY/6jyApw0UDkDHlcEK9mW6alX/SH9r3PDjcCo/Q== - -esbuild-netbsd-64@0.15.6: - version "0.15.6" - resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.6.tgz#c11477d197f059c8794ee1691e3399201f7c4b9a" - integrity sha512-kaxw61wcHMyiEsSsi5ut1YYs/hvTC2QkxJwyRvC2Cnsz3lfMLEu8zAjpBKWh9aU/N0O/gsRap4wTur5GRuSvBA== - -esbuild-openbsd-64@0.15.6: - version "0.15.6" - resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.6.tgz#b29e7faed5b8d2aeaf3884c47c1a96b1cba8e263" - integrity sha512-CuoY60alzYfIZapUHqFXqXbj88bbRJu8Fp9okCSHRX2zWIcGz4BXAHXiG7dlCye5nFVrY72psesLuWdusyf2qw== - -esbuild-sunos-64@0.15.6: - version "0.15.6" - resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.6.tgz#9668f39e47179f50c0435040904b9c6e10e84a70" - integrity sha512-1ceefLdPWcd1nW/ZLruPEYxeUEAVX0YHbG7w+BB4aYgfknaLGotI/ZvPWUZpzhC8l1EybrVlz++lm3E6ODIJOg== - -esbuild-windows-32@0.15.6: - version "0.15.6" - resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.6.tgz#9ddcd56e3c4fb9729a218c713c4e76bdbc1678b4" - integrity sha512-pBqdOsKqCD5LRYiwF29PJRDJZi7/Wgkz46u3d17MRFmrLFcAZDke3nbdDa1c8YgY78RiemudfCeAemN8EBlIpA== - -esbuild-windows-64@0.15.6: - version "0.15.6" - resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.6.tgz#1eaadeadfd995e9d065d35cb3e9f02607202f339" - integrity sha512-KpPOh4aTOo//g9Pk2oVAzXMpc9Sz9n5A9sZTmWqDSXCiiachfFhbuFlsKBGATYCVitXfmBIJ4nNYYWSOdz4hQg== - -esbuild-windows-arm64@0.15.6: - version "0.15.6" - resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.6.tgz#e18a778d354fc2ca2306688f3fedad8a3e57819e" - integrity sha512-DB3G2x9OvFEa00jV+OkDBYpufq5x/K7a6VW6E2iM896DG4ZnAvJKQksOsCPiM1DUaa+DrijXAQ/ZOcKAqf/3Hg== - -esbuild@^0.15.6: - version "0.15.6" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.6.tgz#626e5941b98de506b862047be3c4b33f89278923" - integrity sha512-sgLOv3l4xklvXzzczhRwKRotyrfyZ2i1fCS6PTOLPd9wevDPArGU8HFtHrHCOcsMwTjLjzGm15gvC8uxVzQf+w== +esbuild-android-64@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.7.tgz#a521604d8c4c6befc7affedc897df8ccde189bea" + integrity sha512-p7rCvdsldhxQr3YHxptf1Jcd86dlhvc3EQmQJaZzzuAxefO9PvcI0GLOa5nCWem1AJ8iMRu9w0r5TG8pHmbi9w== + +esbuild-android-arm64@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.7.tgz#307b81f1088bf1e81dfe5f3d1d63a2d2a2e3e68e" + integrity sha512-L775l9ynJT7rVqRM5vo+9w5g2ysbOCfsdLV4CWanTZ1k/9Jb3IYlQ06VCI1edhcosTYJRECQFJa3eAvkx72eyQ== + +esbuild-darwin-64@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.7.tgz#270117b0c4ec6bcbc5cf3a297a7d11954f007e11" + integrity sha512-KGPt3r1c9ww009t2xLB6Vk0YyNOXh7hbjZ3EecHoVDxgtbUlYstMPDaReimKe6eOEfyY4hBEEeTvKwPsiH5WZg== + +esbuild-darwin-arm64@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.7.tgz#97851eacd11dacb7719713602e3319e16202fc77" + integrity sha512-kBIHvtVqbSGajN88lYMnR3aIleH3ABZLLFLxwL2stiuIGAjGlQW741NxVTpUHQXUmPzxi6POqc9npkXa8AcSZQ== + +esbuild-freebsd-64@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.7.tgz#1de15ffaf5ae916aa925800aa6d02579960dd8c4" + integrity sha512-hESZB91qDLV5MEwNxzMxPfbjAhOmtfsr9Wnuci7pY6TtEh4UDuevmGmkUIjX/b+e/k4tcNBMf7SRQ2mdNuK/HQ== + +esbuild-freebsd-arm64@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.7.tgz#0f160dbf5c9a31a1d8dd87acbbcb1a04b7031594" + integrity sha512-dLFR0ChH5t+b3J8w0fVKGvtwSLWCv7GYT2Y2jFGulF1L5HftQLzVGN+6pi1SivuiVSmTh28FwUhi9PwQicXI6Q== + +esbuild-linux-32@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.7.tgz#422eb853370a5e40bdce8b39525380de11ccadec" + integrity sha512-v3gT/LsONGUZcjbt2swrMjwxo32NJzk+7sAgtxhGx1+ZmOFaTRXBAi1PPfgpeo/J//Un2jIKm/I+qqeo4caJvg== + +esbuild-linux-64@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.7.tgz#f89c468453bb3194b14f19dc32e0b99612e81d2b" + integrity sha512-LxXEfLAKwOVmm1yecpMmWERBshl+Kv5YJ/1KnyAr6HRHFW8cxOEsEfisD3sVl/RvHyW//lhYUVSuy9jGEfIRAQ== + +esbuild-linux-arm64@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.7.tgz#68a79d6eb5e032efb9168a0f340ccfd33d6350a1" + integrity sha512-P3cfhudpzWDkglutWgXcT2S7Ft7o2e3YDMrP1n0z2dlbUZghUkKCyaWw0zhp4KxEEzt/E7lmrtRu/pGWnwb9vw== + +esbuild-linux-arm@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.7.tgz#2b7c784d0b3339878013dfa82bf5eaf82c7ce7d3" + integrity sha512-JKgAHtMR5f75wJTeuNQbyznZZa+pjiUHV7sRZp42UNdyXC6TiUYMW/8z8yIBAr2Fpad8hM1royZKQisqPABPvQ== + +esbuild-linux-mips64le@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.7.tgz#bb8330a50b14aa84673816cb63cc6c8b9beb62cc" + integrity sha512-T7XKuxl0VpeFLCJXub6U+iybiqh0kM/bWOTb4qcPyDDwNVhLUiPcGdG2/0S7F93czUZOKP57YiLV8YQewgLHKw== + +esbuild-linux-ppc64le@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.7.tgz#52544e7fa992811eb996674090d0bc41f067a14b" + integrity sha512-6mGuC19WpFN7NYbecMIJjeQgvDb5aMuvyk0PDYBJrqAEMkTwg3Z98kEKuCm6THHRnrgsdr7bp4SruSAxEM4eJw== + +esbuild-linux-riscv64@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.7.tgz#a43ae60697992b957e454cbb622f7ee5297e8159" + integrity sha512-uUJsezbswAYo/X7OU/P+PuL/EI9WzxsEQXDekfwpQ23uGiooxqoLFAPmXPcRAt941vjlY9jtITEEikWMBr+F/g== + +esbuild-linux-s390x@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.7.tgz#8c76a125dd10a84c166294d77416caaf5e1c7b64" + integrity sha512-+tO+xOyTNMc34rXlSxK7aCwJgvQyffqEM5MMdNDEeMU3ss0S6wKvbBOQfgd5jRPblfwJ6b+bKiz0g5nABpY0QQ== + +esbuild-netbsd-64@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.7.tgz#19b2e75449d7d9c32b5d8a222bac2f1e0c3b08fd" + integrity sha512-yVc4Wz+Pu3cP5hzm5kIygNPrjar/v5WCSoRmIjCPWfBVJkZNb5brEGKUlf+0Y759D48BCWa0WHrWXaNy0DULTQ== + +esbuild-openbsd-64@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.7.tgz#1357b2bf72fd037d9150e751420a1fe4c8618ad7" + integrity sha512-GsimbwC4FSR4lN3wf8XmTQ+r8/0YSQo21rWDL0XFFhLHKlzEA4SsT1Tl8bPYu00IU6UWSJ+b3fG/8SB69rcuEQ== + +esbuild-sunos-64@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.7.tgz#87ab2c604592a9c3c763e72969da0d72bcde91d2" + integrity sha512-8CDI1aL/ts0mDGbWzjEOGKXnU7p3rDzggHSBtVryQzkSOsjCHRVe0iFYUuhczlxU1R3LN/E7HgUO4NXzGGP/Ag== + +esbuild-windows-32@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.7.tgz#c81e688c0457665a8d463a669e5bf60870323e99" + integrity sha512-cOnKXUEPS8EGCzRSFa1x6NQjGhGsFlVgjhqGEbLTPsA7x4RRYiy2RKoArNUU4iR2vHmzqS5Gr84MEumO/wxYKA== + +esbuild-windows-64@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.7.tgz#2421d1ae34b0561a9d6767346b381961266c4eff" + integrity sha512-7MI08Ec2sTIDv+zH6StNBKO+2hGUYIT42GmFyW6MBBWWtJhTcQLinKS6ldIN1d52MXIbiJ6nXyCJ+LpL4jBm3Q== + +esbuild-windows-arm64@0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.7.tgz#7d5e9e060a7b454cb2f57f84a3f3c23c8f30b7d2" + integrity sha512-R06nmqBlWjKHddhRJYlqDd3Fabx9LFdKcjoOy08YLimwmsswlFBJV4rXzZCxz/b7ZJXvrZgj8DDv1ewE9+StMw== + +esbuild@^0.15.7: + version "0.15.7" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.7.tgz#8a1f1aff58671a3199dd24df95314122fc1ddee8" + integrity sha512-7V8tzllIbAQV1M4QoE52ImKu8hT/NLGlGXkiDsbEU5PS6K8Mn09ZnYoS+dcmHxOS9CRsV4IRAMdT3I67IyUNXw== optionalDependencies: - "@esbuild/linux-loong64" "0.15.6" - esbuild-android-64 "0.15.6" - esbuild-android-arm64 "0.15.6" - esbuild-darwin-64 "0.15.6" - esbuild-darwin-arm64 "0.15.6" - esbuild-freebsd-64 "0.15.6" - esbuild-freebsd-arm64 "0.15.6" - esbuild-linux-32 "0.15.6" - esbuild-linux-64 "0.15.6" - esbuild-linux-arm "0.15.6" - esbuild-linux-arm64 "0.15.6" - esbuild-linux-mips64le "0.15.6" - esbuild-linux-ppc64le "0.15.6" - esbuild-linux-riscv64 "0.15.6" - esbuild-linux-s390x "0.15.6" - esbuild-netbsd-64 "0.15.6" - esbuild-openbsd-64 "0.15.6" - esbuild-sunos-64 "0.15.6" - esbuild-windows-32 "0.15.6" - esbuild-windows-64 "0.15.6" - esbuild-windows-arm64 "0.15.6" + "@esbuild/linux-loong64" "0.15.7" + esbuild-android-64 "0.15.7" + esbuild-android-arm64 "0.15.7" + esbuild-darwin-64 "0.15.7" + esbuild-darwin-arm64 "0.15.7" + esbuild-freebsd-64 "0.15.7" + esbuild-freebsd-arm64 "0.15.7" + esbuild-linux-32 "0.15.7" + esbuild-linux-64 "0.15.7" + esbuild-linux-arm "0.15.7" + esbuild-linux-arm64 "0.15.7" + esbuild-linux-mips64le "0.15.7" + esbuild-linux-ppc64le "0.15.7" + esbuild-linux-riscv64 "0.15.7" + esbuild-linux-s390x "0.15.7" + esbuild-netbsd-64 "0.15.7" + esbuild-openbsd-64 "0.15.7" + esbuild-sunos-64 "0.15.7" + esbuild-windows-32 "0.15.7" + esbuild-windows-64 "0.15.7" + esbuild-windows-arm64 "0.15.7" ev-emitter@^1.0.0: version "1.1.1" From 31e9b7856823b83f9902f162f89d591d654f8b35 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 6 Sep 2022 02:35:27 +0000 Subject: [PATCH 1158/2165] chore(deps): bump sidekiq from 6.5.5 to 6.5.6 Bumps [sidekiq](https://github.com/mperham/sidekiq) from 6.5.5 to 6.5.6. - [Release notes](https://github.com/mperham/sidekiq/releases) - [Changelog](https://github.com/mperham/sidekiq/blob/main/Changes.md) - [Commits](https://github.com/mperham/sidekiq/compare/v6.5.5...v6.5.6) --- updated-dependencies: - dependency-name: sidekiq dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Gemfile b/Gemfile index 4bf2d2751..5e987d070 100644 --- a/Gemfile +++ b/Gemfile @@ -85,7 +85,7 @@ gem 'rqrcode' # 异步队列 gem 'activejob-status' -gem 'sidekiq', '~> 6.5.5' +gem 'sidekiq', '~> 6.5.6' gem 'sidekiq-scheduler', '~> 4.0.2' gem 'sidekiq-failures', '~> 1.0.4' diff --git a/Gemfile.lock b/Gemfile.lock index ce2dfad90..57e125a7e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -432,10 +432,10 @@ GEM sentry-ruby (~> 5.4.2) sidekiq (>= 3.0) shellany (0.0.1) - sidekiq (6.5.5) - connection_pool (>= 2.2.2) + sidekiq (6.5.6) + connection_pool (>= 2.2.5) rack (~> 2.0) - redis (>= 4.5.0) + redis (>= 4.5.0, < 5) sidekiq-failures (1.0.4) sidekiq (>= 4.0.0) sidekiq-scheduler (4.0.2) @@ -567,7 +567,7 @@ DEPENDENCIES sentry-rails sentry-ruby sentry-sidekiq - sidekiq (~> 6.5.5) + sidekiq (~> 6.5.6) sidekiq-failures (~> 1.0.4) sidekiq-scheduler (~> 4.0.2) simple_form (~> 5.1) From 98a2b3798362bca708909a786847930c5eff5bc5 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 6 Sep 2022 13:21:44 +0800 Subject: [PATCH 1159/2165] chore: Remove disk volume --- render.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/render.yaml b/render.yaml index e4cf3b846..029ab8e92 100644 --- a/render.yaml +++ b/render.yaml @@ -17,10 +17,10 @@ services: dockerfilePath: Dockerfile dockerContext: . autoDeploy: true - disk: - name: zealot-data - mountPath: /app/public/uploads - sizeGB: 10 + # disk: + # name: zealot-data + # mountPath: /app/public/uploads + # sizeGB: 10 envVars: - key: ZEALOT_ADMIN_EMAIL sync: false @@ -131,4 +131,4 @@ services: - key: WEB_CONCURRENCY value: 1 - key: SECRET_TOKEN - generateValue: true \ No newline at end of file + generateValue: true From 4582e05aadc71376d21c7ec56211e0deff059d71 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 8 Sep 2022 21:01:22 +0000 Subject: [PATCH 1160/2165] chore(deps): bump sass from 1.54.8 to 1.54.9 Bumps [sass](https://github.com/sass/dart-sass) from 1.54.8 to 1.54.9. - [Release notes](https://github.com/sass/dart-sass/releases) - [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md) - [Commits](https://github.com/sass/dart-sass/compare/1.54.8...1.54.9) --- updated-dependencies: - dependency-name: sass dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 3e223e086..38bae78a6 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "clipboard": "^2.0.11", "compare-versions": "^5.0.1", "esbuild": "^0.15.7", - "sass": "^1.54.8", + "sass": "^1.54.9", "ua-parser-js": "^1.0.2" }, "scripts": { diff --git a/yarn.lock b/yarn.lock index 180f6c85e..0b59e0d4f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1422,10 +1422,10 @@ safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sass@^1.54.8: - version "1.54.8" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.54.8.tgz#4adef0dd86ea2b1e4074f551eeda4fc5f812a996" - integrity sha512-ib4JhLRRgbg6QVy6bsv5uJxnJMTS2soVcCp9Y88Extyy13A8vV0G1fAwujOzmNkFQbR3LvedudAMbtuNRPbQww== +sass@^1.54.9: + version "1.54.9" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.54.9.tgz#b05f14ed572869218d1a76961de60cd647221762" + integrity sha512-xb1hjASzEH+0L0WI9oFjqhRi51t/gagWnxLiwUNMltA0Ab6jIDkAacgKiGYKM9Jhy109osM7woEEai6SXeJo5Q== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" From 6c0e816548a8679b31676b03fc3d3a97936d2095 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 8 Sep 2022 21:01:40 +0000 Subject: [PATCH 1161/2165] chore(deps): bump graphql from 2.0.13 to 2.0.14 Bumps [graphql](https://github.com/rmosolgo/graphql-ruby) from 2.0.13 to 2.0.14. - [Release notes](https://github.com/rmosolgo/graphql-ruby/releases) - [Changelog](https://github.com/rmosolgo/graphql-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/rmosolgo/graphql-ruby/compare/v2.0.13...v2.0.14) --- updated-dependencies: - dependency-name: graphql dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 5e987d070..f71fd1e1e 100644 --- a/Gemfile +++ b/Gemfile @@ -18,7 +18,7 @@ gem 'lograge', '~> 0.12.0' # API gem 'active_model_serializers', '~> 0.10.13' -gem 'graphql', '~> 2.0.13' +gem 'graphql', '~> 2.0.14' gem 'rack-cors', '~> 1.1.1' gem 'health_check', '~> 3.1.0' gem 'tiny_appstore_connect', '~> 0.1.7' #path: '/Users/icyleaf/Development/ruby/tiny_appstore_connect' diff --git a/Gemfile.lock b/Gemfile.lock index 57e125a7e..88a93e5bb 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -161,7 +161,7 @@ GEM graphiql-rails (1.8.0) railties sprockets-rails - graphql (2.0.13) + graphql (2.0.14) guard (2.18.0) formatador (>= 0.2.4) listen (>= 2.7, < 4.0) @@ -523,7 +523,7 @@ DEPENDENCIES faraday (~> 2.5.2) friendly_id (~> 5.4.2) graphiql-rails - graphql (~> 2.0.13) + graphql (~> 2.0.14) guard (~> 2.18.0) guard-bundler guard-migrate From 010c4f04f7f506ca08fad5ffdab8bf8edb8daf41 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 9 Sep 2022 10:43:04 +0800 Subject: [PATCH 1162/2165] fix: zh-cn typo --- app/controllers/admin/backups_controller.rb | 2 +- config/locales/zealot/zh-CN.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/controllers/admin/backups_controller.rb b/app/controllers/admin/backups_controller.rb index e9fe4b08a..f124a88f3 100644 --- a/app/controllers/admin/backups_controller.rb +++ b/app/controllers/admin/backups_controller.rb @@ -89,7 +89,7 @@ def parse_schedule end render json: { - error: t('.invaild_expression') + error: t('.invalid_expression') }, status: 409 end diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index 455360592..1a44101a1 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -231,7 +231,7 @@ zh-CN: destroy_archive: success: 备份文件成功删除 parse_schedule: - invaild_expression: 表达式无法解析 + invalid_expression: 表达式无法解析 background_jobs: title: 后台任务 From e41268abb7380ce30dc73ac2bfe5fb637cad89be Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 9 Sep 2022 21:01:42 +0000 Subject: [PATCH 1163/2165] chore(deps): bump @rails/actioncable from 7.0.3 to 7.0.4 Bumps [@rails/actioncable](https://github.com/rails/rails) from 7.0.3 to 7.0.4. - [Release notes](https://github.com/rails/rails/releases) - [Commits](https://github.com/rails/rails/compare/v7.0.3...v7.0.4) --- updated-dependencies: - dependency-name: "@rails/actioncable" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 38bae78a6..5694a7035 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "dependencies": { "@hotwired/stimulus": "^3.1.0", "@hotwired/turbo-rails": "^7.1.3", - "@rails/actioncable": "^7.0.3", + "@rails/actioncable": "^7.0.4", "admin-lte": "3.1.0", "clipboard": "^2.0.11", "compare-versions": "^5.0.1", diff --git a/yarn.lock b/yarn.lock index 0b59e0d4f..7098070e6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -35,10 +35,10 @@ resolved "https://registry.yarnpkg.com/@lgaitan/pace-progress/-/pace-progress-1.0.7.tgz#c96fbbd9fd4cf528feed34ea0c8f9d8b3e98f0dd" integrity sha512-GMoTcF6WBpno7a7Iyx7M79os26d5bCDbh7YTZmXZM8YuLR3DDtwo0/CBYddStGD6QIBTieFDz4IAQiO0dAdRGw== -"@rails/actioncable@^7.0", "@rails/actioncable@^7.0.3": - version "7.0.3" - resolved "https://registry.yarnpkg.com/@rails/actioncable/-/actioncable-7.0.3.tgz#71f08e958883af64f6a20489318b5e95d2c6dc5b" - integrity sha512-Iefl21FZD+ck1di6xSHMYzSzRiNJTHV4NrAzCfDfqc/wPz4xncrP8f2/fJ+2jzwKIaDn76UVMsALh7R5OzsF8Q== +"@rails/actioncable@^7.0", "@rails/actioncable@^7.0.4": + version "7.0.4" + resolved "https://registry.yarnpkg.com/@rails/actioncable/-/actioncable-7.0.4.tgz#70a3ca56809f7aaabb80af2f9c01ae51e1a8ed41" + integrity sha512-tz4oM+Zn9CYsvtyicsa/AwzKZKL+ITHWkhiu7x+xF77clh2b4Rm+s6xnOgY/sGDWoFWZmtKsE95hxBPkgQQNnQ== "@swc/helpers@^0.3.13": version "0.3.17" From fbb6c5ba80f32e0fb276ca5f294509fb3799040d Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 14 Sep 2022 10:41:58 +0800 Subject: [PATCH 1164/2165] =?UTF-8?q?fix(web):=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E8=A7=A3=E5=8C=85=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/teardowns_controller.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/controllers/teardowns_controller.rb b/app/controllers/teardowns_controller.rb index 15cea172d..55650fa9e 100644 --- a/app/controllers/teardowns_controller.rb +++ b/app/controllers/teardowns_controller.rb @@ -46,6 +46,7 @@ def create render :new, status: :unprocessable_entity rescue => e logger.error "Teardown error: #{e}" + logger.error "Throws backtraces are: #{e.backtrace.join("\n")}" Sentry.capture_exception e flash[:error] = t('teardowns.messages.errors.unknown_parse', class: e.class, message: e.message) render :new, status: :unprocessable_entity @@ -69,7 +70,7 @@ def parse_app raise ActionController::RoutingError, t('teardowns.messages.errors.choose_supported_file_type') end - metadata = TeardownService.new.call(file) + metadata = TeardownService.new(file).call metadata.update_attribute(:user_id, current_user.id) if current_user.present? redirect_to teardown_path(metadata) From 6b3e5846c640504694d4dd5b420d19a7ae3b3eb4 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 14 Sep 2022 10:41:58 +0800 Subject: [PATCH 1165/2165] =?UTF-8?q?fix(web):=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E8=A7=A3=E5=8C=85=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 2 +- app/controllers/teardowns_controller.rb | 3 ++- package.json | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index a5d02d454..d85019446 100644 --- a/Dockerfile +++ b/Dockerfile @@ -61,7 +61,7 @@ ARG BUILD_DATE ARG VCS_REF ARG TAG -ARG ZEALOT_VERSION="4.5.0" +ARG ZEALOT_VERSION="4.5.1" ARG REPLACE_CHINA_MIRROR="true" ARG ORIGINAL_REPO_URL="dl-cdn.alpinelinux.org" ARG MIRROR_REPO_URL="mirrors.ustc.edu.cn" diff --git a/app/controllers/teardowns_controller.rb b/app/controllers/teardowns_controller.rb index 15cea172d..55650fa9e 100644 --- a/app/controllers/teardowns_controller.rb +++ b/app/controllers/teardowns_controller.rb @@ -46,6 +46,7 @@ def create render :new, status: :unprocessable_entity rescue => e logger.error "Teardown error: #{e}" + logger.error "Throws backtraces are: #{e.backtrace.join("\n")}" Sentry.capture_exception e flash[:error] = t('teardowns.messages.errors.unknown_parse', class: e.class, message: e.message) render :new, status: :unprocessable_entity @@ -69,7 +70,7 @@ def parse_app raise ActionController::RoutingError, t('teardowns.messages.errors.choose_supported_file_type') end - metadata = TeardownService.new.call(file) + metadata = TeardownService.new(file).call metadata.update_attribute(:user_id, current_user.id) if current_user.present? redirect_to teardown_path(metadata) diff --git a/package.json b/package.json index 38bae78a6..94e38acff 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "zealot", - "version": "4.5.0", + "version": "4.5.1", "private": true, "license": "MIT", "dependencies": { From 384461a145ca87a0fc989a99a18a35370fbf4a74 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 19 Sep 2022 21:01:51 +0000 Subject: [PATCH 1166/2165] chore(deps): bump esbuild from 0.15.7 to 0.15.8 Bumps [esbuild](https://github.com/evanw/esbuild) from 0.15.7 to 0.15.8. - [Release notes](https://github.com/evanw/esbuild/releases) - [Changelog](https://github.com/evanw/esbuild/blob/master/CHANGELOG.md) - [Commits](https://github.com/evanw/esbuild/compare/v0.15.7...v0.15.8) --- updated-dependencies: - dependency-name: esbuild dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 273 +++++++++++++++++++++++++++------------------------ 2 files changed, 145 insertions(+), 130 deletions(-) diff --git a/package.json b/package.json index 94e38acff..9d01bb3d0 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "admin-lte": "3.1.0", "clipboard": "^2.0.11", "compare-versions": "^5.0.1", - "esbuild": "^0.15.7", + "esbuild": "^0.15.8", "sass": "^1.54.9", "ua-parser-js": "^1.0.2" }, diff --git a/yarn.lock b/yarn.lock index 0b59e0d4f..adb771f2d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,10 +2,17 @@ # yarn lockfile v1 -"@esbuild/linux-loong64@0.15.7": - version "0.15.7" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.7.tgz#1ec4af4a16c554cbd402cc557ccdd874e3f7be53" - integrity sha512-IKznSJOsVUuyt7cDzzSZyqBEcZe+7WlBqTVXiF1OXP/4Nm387ToaXZ0fyLwI1iBlI/bzpxVq411QE2/Bt2XWWw== +"@esbuild/android-arm@0.15.8": + version "0.15.8" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.15.8.tgz#52b094c98e415ec72fab39827c12f2051ac9c550" + integrity sha512-CyEWALmn+no/lbgbAJsbuuhT8s2J19EJGHkeyAwjbFJMrj80KJ9zuYsoAvidPTU7BgBf87r/sgae8Tw0dbOc4Q== + dependencies: + esbuild-wasm "0.15.8" + +"@esbuild/linux-loong64@0.15.8": + version "0.15.8" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.8.tgz#d64575fc46bf4eb689352aa9f8a139271b6e1647" + integrity sha512-pE5RQsOTSERCtfZdfCT25wzo7dfhOSlhAXcsZmuvRYhendOv7djcdvtINdnDp2DAjP17WXlBB4nBO6sHLczmsg== "@fortawesome/fontawesome-free@^5.15.3": version "5.15.4" @@ -672,132 +679,140 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -esbuild-android-64@0.15.7: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.7.tgz#a521604d8c4c6befc7affedc897df8ccde189bea" - integrity sha512-p7rCvdsldhxQr3YHxptf1Jcd86dlhvc3EQmQJaZzzuAxefO9PvcI0GLOa5nCWem1AJ8iMRu9w0r5TG8pHmbi9w== - -esbuild-android-arm64@0.15.7: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.7.tgz#307b81f1088bf1e81dfe5f3d1d63a2d2a2e3e68e" - integrity sha512-L775l9ynJT7rVqRM5vo+9w5g2ysbOCfsdLV4CWanTZ1k/9Jb3IYlQ06VCI1edhcosTYJRECQFJa3eAvkx72eyQ== - -esbuild-darwin-64@0.15.7: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.7.tgz#270117b0c4ec6bcbc5cf3a297a7d11954f007e11" - integrity sha512-KGPt3r1c9ww009t2xLB6Vk0YyNOXh7hbjZ3EecHoVDxgtbUlYstMPDaReimKe6eOEfyY4hBEEeTvKwPsiH5WZg== - -esbuild-darwin-arm64@0.15.7: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.7.tgz#97851eacd11dacb7719713602e3319e16202fc77" - integrity sha512-kBIHvtVqbSGajN88lYMnR3aIleH3ABZLLFLxwL2stiuIGAjGlQW741NxVTpUHQXUmPzxi6POqc9npkXa8AcSZQ== - -esbuild-freebsd-64@0.15.7: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.7.tgz#1de15ffaf5ae916aa925800aa6d02579960dd8c4" - integrity sha512-hESZB91qDLV5MEwNxzMxPfbjAhOmtfsr9Wnuci7pY6TtEh4UDuevmGmkUIjX/b+e/k4tcNBMf7SRQ2mdNuK/HQ== - -esbuild-freebsd-arm64@0.15.7: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.7.tgz#0f160dbf5c9a31a1d8dd87acbbcb1a04b7031594" - integrity sha512-dLFR0ChH5t+b3J8w0fVKGvtwSLWCv7GYT2Y2jFGulF1L5HftQLzVGN+6pi1SivuiVSmTh28FwUhi9PwQicXI6Q== - -esbuild-linux-32@0.15.7: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.7.tgz#422eb853370a5e40bdce8b39525380de11ccadec" - integrity sha512-v3gT/LsONGUZcjbt2swrMjwxo32NJzk+7sAgtxhGx1+ZmOFaTRXBAi1PPfgpeo/J//Un2jIKm/I+qqeo4caJvg== - -esbuild-linux-64@0.15.7: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.7.tgz#f89c468453bb3194b14f19dc32e0b99612e81d2b" - integrity sha512-LxXEfLAKwOVmm1yecpMmWERBshl+Kv5YJ/1KnyAr6HRHFW8cxOEsEfisD3sVl/RvHyW//lhYUVSuy9jGEfIRAQ== - -esbuild-linux-arm64@0.15.7: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.7.tgz#68a79d6eb5e032efb9168a0f340ccfd33d6350a1" - integrity sha512-P3cfhudpzWDkglutWgXcT2S7Ft7o2e3YDMrP1n0z2dlbUZghUkKCyaWw0zhp4KxEEzt/E7lmrtRu/pGWnwb9vw== - -esbuild-linux-arm@0.15.7: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.7.tgz#2b7c784d0b3339878013dfa82bf5eaf82c7ce7d3" - integrity sha512-JKgAHtMR5f75wJTeuNQbyznZZa+pjiUHV7sRZp42UNdyXC6TiUYMW/8z8yIBAr2Fpad8hM1royZKQisqPABPvQ== - -esbuild-linux-mips64le@0.15.7: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.7.tgz#bb8330a50b14aa84673816cb63cc6c8b9beb62cc" - integrity sha512-T7XKuxl0VpeFLCJXub6U+iybiqh0kM/bWOTb4qcPyDDwNVhLUiPcGdG2/0S7F93czUZOKP57YiLV8YQewgLHKw== - -esbuild-linux-ppc64le@0.15.7: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.7.tgz#52544e7fa992811eb996674090d0bc41f067a14b" - integrity sha512-6mGuC19WpFN7NYbecMIJjeQgvDb5aMuvyk0PDYBJrqAEMkTwg3Z98kEKuCm6THHRnrgsdr7bp4SruSAxEM4eJw== - -esbuild-linux-riscv64@0.15.7: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.7.tgz#a43ae60697992b957e454cbb622f7ee5297e8159" - integrity sha512-uUJsezbswAYo/X7OU/P+PuL/EI9WzxsEQXDekfwpQ23uGiooxqoLFAPmXPcRAt941vjlY9jtITEEikWMBr+F/g== - -esbuild-linux-s390x@0.15.7: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.7.tgz#8c76a125dd10a84c166294d77416caaf5e1c7b64" - integrity sha512-+tO+xOyTNMc34rXlSxK7aCwJgvQyffqEM5MMdNDEeMU3ss0S6wKvbBOQfgd5jRPblfwJ6b+bKiz0g5nABpY0QQ== - -esbuild-netbsd-64@0.15.7: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.7.tgz#19b2e75449d7d9c32b5d8a222bac2f1e0c3b08fd" - integrity sha512-yVc4Wz+Pu3cP5hzm5kIygNPrjar/v5WCSoRmIjCPWfBVJkZNb5brEGKUlf+0Y759D48BCWa0WHrWXaNy0DULTQ== - -esbuild-openbsd-64@0.15.7: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.7.tgz#1357b2bf72fd037d9150e751420a1fe4c8618ad7" - integrity sha512-GsimbwC4FSR4lN3wf8XmTQ+r8/0YSQo21rWDL0XFFhLHKlzEA4SsT1Tl8bPYu00IU6UWSJ+b3fG/8SB69rcuEQ== - -esbuild-sunos-64@0.15.7: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.7.tgz#87ab2c604592a9c3c763e72969da0d72bcde91d2" - integrity sha512-8CDI1aL/ts0mDGbWzjEOGKXnU7p3rDzggHSBtVryQzkSOsjCHRVe0iFYUuhczlxU1R3LN/E7HgUO4NXzGGP/Ag== - -esbuild-windows-32@0.15.7: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.7.tgz#c81e688c0457665a8d463a669e5bf60870323e99" - integrity sha512-cOnKXUEPS8EGCzRSFa1x6NQjGhGsFlVgjhqGEbLTPsA7x4RRYiy2RKoArNUU4iR2vHmzqS5Gr84MEumO/wxYKA== - -esbuild-windows-64@0.15.7: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.7.tgz#2421d1ae34b0561a9d6767346b381961266c4eff" - integrity sha512-7MI08Ec2sTIDv+zH6StNBKO+2hGUYIT42GmFyW6MBBWWtJhTcQLinKS6ldIN1d52MXIbiJ6nXyCJ+LpL4jBm3Q== - -esbuild-windows-arm64@0.15.7: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.7.tgz#7d5e9e060a7b454cb2f57f84a3f3c23c8f30b7d2" - integrity sha512-R06nmqBlWjKHddhRJYlqDd3Fabx9LFdKcjoOy08YLimwmsswlFBJV4rXzZCxz/b7ZJXvrZgj8DDv1ewE9+StMw== - -esbuild@^0.15.7: - version "0.15.7" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.7.tgz#8a1f1aff58671a3199dd24df95314122fc1ddee8" - integrity sha512-7V8tzllIbAQV1M4QoE52ImKu8hT/NLGlGXkiDsbEU5PS6K8Mn09ZnYoS+dcmHxOS9CRsV4IRAMdT3I67IyUNXw== +esbuild-android-64@0.15.8: + version "0.15.8" + resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.8.tgz#625863e705d4ed32a3b4c0b997dbf9454d50a455" + integrity sha512-bVh8FIKOolF7/d4AMzt7xHlL0Ljr+mYKSHI39TJWDkybVWHdn6+4ODL3xZGHOxPpdRpitemXA1WwMKYBsw8dGw== + dependencies: + esbuild-wasm "0.15.8" + +esbuild-android-arm64@0.15.8: + version "0.15.8" + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.8.tgz#cd62afe08652ac146014386d3adbe7a9d33db1b0" + integrity sha512-ReAMDAHuo0H1h9LxRabI6gwYPn8k6WiUeyxuMvx17yTrJO+SCnIfNc/TSPFvDwtK9MiyiKG/2dBYHouT/M0BXQ== + +esbuild-darwin-64@0.15.8: + version "0.15.8" + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.8.tgz#eb668dc973165f85aefecdca8aa60231acb2f705" + integrity sha512-KaKcGfJ+yto7Fo5gAj3xwxHMd1fBIKatpCHK8znTJLVv+9+NN2/tIPBqA4w5rBwjX0UqXDeIE2v1xJP+nGEXgA== + +esbuild-darwin-arm64@0.15.8: + version "0.15.8" + resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.8.tgz#91c110daa46074fdfc18f411247ca0d1228aacc3" + integrity sha512-8tjEaBgAKnXCkP7bhEJmEqdG9HEV6oLkF36BrMzpfW2rgaw0c48Zrxe+9RlfeGvs6gDF4w+agXyTjikzsS3izw== + +esbuild-freebsd-64@0.15.8: + version "0.15.8" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.8.tgz#22270945a9bf9107c340eb73922e122bbe84f8ad" + integrity sha512-jaxcsGHYzn2L0/lffON2WfH4Nc+d/EwozVTP5K2v016zxMb5UQMhLoJzvLgBqHT1SG0B/mO+a+THnJCMVg15zw== + +esbuild-freebsd-arm64@0.15.8: + version "0.15.8" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.8.tgz#0efe2741fbcaa2cfd31b9f94bd3ca7385b68c469" + integrity sha512-2xp2UlljMvX8HExtcg7VHaeQk8OBU0CSl1j18B5CcZmSDkLF9p3utuMXIopG3a08fr9Hv+Dz6+seSXUow/G51w== + +esbuild-linux-32@0.15.8: + version "0.15.8" + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.8.tgz#6fc98659105da5c0d1fedfce3b7b9fa24ebee0d4" + integrity sha512-9u1E54BRz1FQMl86iaHK146+4ID2KYNxL3trLZT4QLLx3M7Q9n4lGG3lrzqUatGR2cKy8c33b0iaCzsItZWkFg== + +esbuild-linux-64@0.15.8: + version "0.15.8" + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.8.tgz#8e738c926d145cdd4e9bcb2febc96d89dc27dc09" + integrity sha512-4HxrsN9eUzJXdVGMTYA5Xler82FuZUu21bXKN42zcLHHNKCAMPUzD62I+GwDhsdgUBAUj0tRXDdsQHgaP6v0HA== + +esbuild-linux-arm64@0.15.8: + version "0.15.8" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.8.tgz#a12675e5a56e8ef08dea49da8eed51a87b0e60d6" + integrity sha512-1OCm7Aq0tEJT70PbxmHSGYDLYP8DKH8r4Nk7/XbVzWaduo9beCjGBB+tGZIHK6DdTQ3h00/4Tb/70YMH/bOtKg== + +esbuild-linux-arm@0.15.8: + version "0.15.8" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.8.tgz#6424da1e8a3ece78681ebee4a70477b40c36ab35" + integrity sha512-7DVBU9SFjX4+vBwt8tHsUCbE6Vvl6y6FQWHAgyw1lybC5gULqn/WnjHYHN2/LJaZRsDBvxWT4msEgwLGq1Wd3Q== + +esbuild-linux-mips64le@0.15.8: + version "0.15.8" + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.8.tgz#5b39a16272cb4eaaad1f24938c057b19fb5a0ee5" + integrity sha512-yeFoNPVFPEzZvFYBfUQNG2TjGRaCyV1E27OcOg4LOtnGrxb2wA+mkW3luckyv1CEyd00mpAg7UdHx8nlx3ghgA== + +esbuild-linux-ppc64le@0.15.8: + version "0.15.8" + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.8.tgz#98ea8cfae8227180b45b2d952b2cbb072900944f" + integrity sha512-CEyMMUUNabXibw8OSNmBXhOIGhnjNVl5Lpseiuf00iKN0V47oqDrbo4dsHz1wH62m49AR8iG8wpDlTqfYgKbtg== + +esbuild-linux-riscv64@0.15.8: + version "0.15.8" + resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.8.tgz#6334607025eb449d8dd402d7810721dc15a6210f" + integrity sha512-OCGSOaspMUjexSCU8ZiA0UnV/NiRU+s2vIfEcAQWQ6u32R+2luyfh/4ZaY6jFbylJE07Esc/yRvb9Q5fXuClXA== + +esbuild-linux-s390x@0.15.8: + version "0.15.8" + resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.8.tgz#874f1a3507c32cce1d2ce0d2f28ac1496c094eab" + integrity sha512-RHdpdfxRTSrZXZJlFSLazFU4YwXLB5Rgf6Zr5rffqSsO4y9JybgtKO38bFwxZNlDXliYISXN/YROKrG9s7mZQA== + +esbuild-netbsd-64@0.15.8: + version "0.15.8" + resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.8.tgz#2e03d87ed811400d5d1fa8c7629b9fd97a574231" + integrity sha512-VolFFRatBH09T5QMWhiohAWCOien1R1Uz9K0BRVVTBgBaVBt7eArsXTKxVhUgRf2vwu2c2SXkuP0r7HLG0eozw== + +esbuild-openbsd-64@0.15.8: + version "0.15.8" + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.8.tgz#8fdbc6399563ac61ff546449e2226a2b1477216c" + integrity sha512-HTAPlg+n4kUeE/isQxlCfsOz0xJGNoT5LJ9oYZWFKABfVf4Ycu7Zlf5ITgOnrdheTkz8JeL/gISIOCFAoOXrSA== + +esbuild-sunos-64@0.15.8: + version "0.15.8" + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.8.tgz#db657b5c09c0c0161d67ddafca1b710a2e7ce96b" + integrity sha512-qMP/jR/FzcIOwKj+W+Lb+8Cfr8GZHbHUJxAPi7DUhNZMQ/6y7sOgRzlOSpRrbbUntrRZh0MqOyDhJ3Gpo6L1QA== + +esbuild-wasm@0.15.8: + version "0.15.8" + resolved "https://registry.yarnpkg.com/esbuild-wasm/-/esbuild-wasm-0.15.8.tgz#60fb8c5dc1a5538421857a2fa5fbb9eab908dcbb" + integrity sha512-Y7uCl5RNO4URjlemjdx++ukVHEMt5s5AfMWYUnMiK4Sry+pPCvQIctzXq6r6FKCyGKjX6/NGMCqR2OX6aLxj0w== + +esbuild-windows-32@0.15.8: + version "0.15.8" + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.8.tgz#bbb9fe20a8b6bba4428642cacf45a0fb7b2f3783" + integrity sha512-RKR1QHh4iWzjUhkP8Yqi75PPz/KS+b8zw3wUrzw6oAkj+iU5Qtyj61ZDaSG3Qf2vc6hTIUiPqVTqBH0NpXFNwg== + +esbuild-windows-64@0.15.8: + version "0.15.8" + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.8.tgz#cedee65505209c8d371d7228b60785c08f43e04d" + integrity sha512-ag9ptYrsizgsR+PQE8QKeMqnosLvAMonQREpLw4evA4FFgOBMLEat/dY/9txbpozTw9eEOYyD3a4cE9yTu20FA== + +esbuild-windows-arm64@0.15.8: + version "0.15.8" + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.8.tgz#1d75235290bf23a111e6c0b03febd324af115cb1" + integrity sha512-dbpAb0VyPaUs9mgw65KRfQ9rqiWCHpNzrJusoPu+LpEoswosjt/tFxN7cd2l68AT4qWdBkzAjDLRon7uqMeWcg== + +esbuild@^0.15.8: + version "0.15.8" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.8.tgz#75daa25d03f6dd9cc9355030eba2b93555b42cd4" + integrity sha512-Remsk2dmr1Ia65sU+QasE6svJbsHe62lzR+CnjpUvbZ+uSYo1SitiOWPRfZQkCu82YWZBBKXiD/j0i//XWMZ+Q== optionalDependencies: - "@esbuild/linux-loong64" "0.15.7" - esbuild-android-64 "0.15.7" - esbuild-android-arm64 "0.15.7" - esbuild-darwin-64 "0.15.7" - esbuild-darwin-arm64 "0.15.7" - esbuild-freebsd-64 "0.15.7" - esbuild-freebsd-arm64 "0.15.7" - esbuild-linux-32 "0.15.7" - esbuild-linux-64 "0.15.7" - esbuild-linux-arm "0.15.7" - esbuild-linux-arm64 "0.15.7" - esbuild-linux-mips64le "0.15.7" - esbuild-linux-ppc64le "0.15.7" - esbuild-linux-riscv64 "0.15.7" - esbuild-linux-s390x "0.15.7" - esbuild-netbsd-64 "0.15.7" - esbuild-openbsd-64 "0.15.7" - esbuild-sunos-64 "0.15.7" - esbuild-windows-32 "0.15.7" - esbuild-windows-64 "0.15.7" - esbuild-windows-arm64 "0.15.7" + "@esbuild/android-arm" "0.15.8" + "@esbuild/linux-loong64" "0.15.8" + esbuild-android-64 "0.15.8" + esbuild-android-arm64 "0.15.8" + esbuild-darwin-64 "0.15.8" + esbuild-darwin-arm64 "0.15.8" + esbuild-freebsd-64 "0.15.8" + esbuild-freebsd-arm64 "0.15.8" + esbuild-linux-32 "0.15.8" + esbuild-linux-64 "0.15.8" + esbuild-linux-arm "0.15.8" + esbuild-linux-arm64 "0.15.8" + esbuild-linux-mips64le "0.15.8" + esbuild-linux-ppc64le "0.15.8" + esbuild-linux-riscv64 "0.15.8" + esbuild-linux-s390x "0.15.8" + esbuild-netbsd-64 "0.15.8" + esbuild-openbsd-64 "0.15.8" + esbuild-sunos-64 "0.15.8" + esbuild-windows-32 "0.15.8" + esbuild-windows-64 "0.15.8" + esbuild-windows-arm64 "0.15.8" ev-emitter@^1.0.0: version "1.1.1" From d6aeed4be12bc93f0b0d27b8c63085f0ae58eed5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 20 Sep 2022 21:01:34 +0000 Subject: [PATCH 1167/2165] chore(deps): bump sidekiq from 6.5.6 to 6.5.7 Bumps [sidekiq](https://github.com/mperham/sidekiq) from 6.5.6 to 6.5.7. - [Release notes](https://github.com/mperham/sidekiq/releases) - [Changelog](https://github.com/mperham/sidekiq/blob/main/Changes.md) - [Commits](https://github.com/mperham/sidekiq/compare/v6.5.6...v6.5.7) --- updated-dependencies: - dependency-name: sidekiq dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index f71fd1e1e..5c1dbff34 100644 --- a/Gemfile +++ b/Gemfile @@ -85,7 +85,7 @@ gem 'rqrcode' # 异步队列 gem 'activejob-status' -gem 'sidekiq', '~> 6.5.6' +gem 'sidekiq', '~> 6.5.7' gem 'sidekiq-scheduler', '~> 4.0.2' gem 'sidekiq-failures', '~> 1.0.4' diff --git a/Gemfile.lock b/Gemfile.lock index 88a93e5bb..07b1d21a5 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -117,7 +117,7 @@ GEM chunky_png (1.4.0) coderay (1.1.3) concurrent-ruby (1.1.10) - connection_pool (2.2.5) + connection_pool (2.3.0) crass (1.0.6) cssbundling-rails (1.1.1) railties (>= 6.0.0) @@ -432,7 +432,7 @@ GEM sentry-ruby (~> 5.4.2) sidekiq (>= 3.0) shellany (0.0.1) - sidekiq (6.5.6) + sidekiq (6.5.7) connection_pool (>= 2.2.5) rack (~> 2.0) redis (>= 4.5.0, < 5) @@ -567,7 +567,7 @@ DEPENDENCIES sentry-rails sentry-ruby sentry-sidekiq - sidekiq (~> 6.5.6) + sidekiq (~> 6.5.7) sidekiq-failures (~> 1.0.4) sidekiq-scheduler (~> 4.0.2) simple_form (~> 5.1) From 558b1ec5444b982e95cac28677133c7b10e8ed01 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 21 Sep 2022 02:52:33 +0000 Subject: [PATCH 1168/2165] chore(deps): bump rails from 7.0.3.1 to 7.0.4 Bumps [rails](https://github.com/rails/rails) from 7.0.3.1 to 7.0.4. - [Release notes](https://github.com/rails/rails/releases) - [Commits](https://github.com/rails/rails/compare/v7.0.3.1...v7.0.4) --- updated-dependencies: - dependency-name: rails dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 110 +++++++++++++++++++++++++-------------------------- 2 files changed, 56 insertions(+), 56 deletions(-) diff --git a/Gemfile b/Gemfile index 5c1dbff34..b14796384 100644 --- a/Gemfile +++ b/Gemfile @@ -5,7 +5,7 @@ source 'https://rubygems.org' git_source(:github) { |repo_name| "https://github.com/#{repo_name}" } gem 'puma', '~> 5.6.5' -gem 'rails', '~> 7.0.3' +gem 'rails', '~> 7.0.4' gem 'rails-i18n', '~> 7.0.5' gem 'rake', '~> 13.0.4' diff --git a/Gemfile.lock b/Gemfile.lock index 07b1d21a5..841c77c83 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -3,47 +3,47 @@ GEM specs: CFPropertyList (3.0.5) rexml - actioncable (7.0.3.1) - actionpack (= 7.0.3.1) - activesupport (= 7.0.3.1) + actioncable (7.0.4) + actionpack (= 7.0.4) + activesupport (= 7.0.4) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (7.0.3.1) - actionpack (= 7.0.3.1) - activejob (= 7.0.3.1) - activerecord (= 7.0.3.1) - activestorage (= 7.0.3.1) - activesupport (= 7.0.3.1) + actionmailbox (7.0.4) + actionpack (= 7.0.4) + activejob (= 7.0.4) + activerecord (= 7.0.4) + activestorage (= 7.0.4) + activesupport (= 7.0.4) mail (>= 2.7.1) net-imap net-pop net-smtp - actionmailer (7.0.3.1) - actionpack (= 7.0.3.1) - actionview (= 7.0.3.1) - activejob (= 7.0.3.1) - activesupport (= 7.0.3.1) + actionmailer (7.0.4) + actionpack (= 7.0.4) + actionview (= 7.0.4) + activejob (= 7.0.4) + activesupport (= 7.0.4) mail (~> 2.5, >= 2.5.4) net-imap net-pop net-smtp rails-dom-testing (~> 2.0) - actionpack (7.0.3.1) - actionview (= 7.0.3.1) - activesupport (= 7.0.3.1) + actionpack (7.0.4) + actionview (= 7.0.4) + activesupport (= 7.0.4) rack (~> 2.0, >= 2.2.0) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (7.0.3.1) - actionpack (= 7.0.3.1) - activerecord (= 7.0.3.1) - activestorage (= 7.0.3.1) - activesupport (= 7.0.3.1) + actiontext (7.0.4) + actionpack (= 7.0.4) + activerecord (= 7.0.4) + activestorage (= 7.0.4) + activesupport (= 7.0.4) globalid (>= 0.6.0) nokogiri (>= 1.8.5) - actionview (7.0.3.1) - activesupport (= 7.0.3.1) + actionview (7.0.4) + activesupport (= 7.0.4) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) @@ -53,25 +53,25 @@ GEM activemodel (>= 4.1, < 7.1) case_transform (>= 0.2) jsonapi-renderer (>= 0.1.1.beta1, < 0.3) - activejob (7.0.3.1) - activesupport (= 7.0.3.1) + activejob (7.0.4) + activesupport (= 7.0.4) globalid (>= 0.3.6) activejob-status (0.2.2) activejob (>= 4.2) activesupport (>= 4.2) - activemodel (7.0.3.1) - activesupport (= 7.0.3.1) - activerecord (7.0.3.1) - activemodel (= 7.0.3.1) - activesupport (= 7.0.3.1) - activestorage (7.0.3.1) - actionpack (= 7.0.3.1) - activejob (= 7.0.3.1) - activerecord (= 7.0.3.1) - activesupport (= 7.0.3.1) + activemodel (7.0.4) + activesupport (= 7.0.4) + activerecord (7.0.4) + activemodel (= 7.0.4) + activesupport (= 7.0.4) + activestorage (7.0.4) + actionpack (= 7.0.4) + activejob (= 7.0.4) + activerecord (= 7.0.4) + activesupport (= 7.0.4) marcel (~> 1.0) mini_mime (>= 1.1.0) - activesupport (7.0.3.1) + activesupport (7.0.4) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) @@ -244,7 +244,7 @@ GEM activesupport (>= 4) railties (>= 4) request_store (~> 1.0) - loofah (2.18.0) + loofah (2.19.0) crass (~> 1.0.2) nokogiri (>= 1.5.9) lumberjack (1.2.8) @@ -348,20 +348,20 @@ GEM rack rack-test (2.0.2) rack (>= 1.3) - rails (7.0.3.1) - actioncable (= 7.0.3.1) - actionmailbox (= 7.0.3.1) - actionmailer (= 7.0.3.1) - actionpack (= 7.0.3.1) - actiontext (= 7.0.3.1) - actionview (= 7.0.3.1) - activejob (= 7.0.3.1) - activemodel (= 7.0.3.1) - activerecord (= 7.0.3.1) - activestorage (= 7.0.3.1) - activesupport (= 7.0.3.1) + rails (7.0.4) + actioncable (= 7.0.4) + actionmailbox (= 7.0.4) + actionmailer (= 7.0.4) + actionpack (= 7.0.4) + actiontext (= 7.0.4) + actionview (= 7.0.4) + activejob (= 7.0.4) + activemodel (= 7.0.4) + activerecord (= 7.0.4) + activestorage (= 7.0.4) + activesupport (= 7.0.4) bundler (>= 1.15.0) - railties (= 7.0.3.1) + railties (= 7.0.4) rails-dom-testing (2.0.3) activesupport (>= 4.2.0) nokogiri (>= 1.6) @@ -372,9 +372,9 @@ GEM railties (>= 6.0.0, < 8) rails-settings-cached (2.8.2) rails (>= 5.0.0) - railties (7.0.3.1) - actionpack (= 7.0.3.1) - activesupport (= 7.0.3.1) + railties (7.0.4) + actionpack (= 7.0.4) + activesupport (= 7.0.4) method_source rake (>= 12.2) thor (~> 1.0) @@ -555,7 +555,7 @@ DEPENDENCIES pundit (~> 2.2.0) pyu-ruby-sasl (>= 0.0.3.3, < 0.1) rack-cors (~> 1.1.1) - rails (~> 7.0.3) + rails (~> 7.0.4) rails-i18n (~> 7.0.5) rails-settings-cached (~> 2.8.2) rake (~> 13.0.4) From a736272304c98ab6df1591e72b787520163a7df5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 22 Sep 2022 21:01:46 +0000 Subject: [PATCH 1169/2165] chore(deps): bump sass from 1.54.9 to 1.55.0 Bumps [sass](https://github.com/sass/dart-sass) from 1.54.9 to 1.55.0. - [Release notes](https://github.com/sass/dart-sass/releases) - [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md) - [Commits](https://github.com/sass/dart-sass/compare/1.54.9...1.55.0) --- updated-dependencies: - dependency-name: sass dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 9d01bb3d0..70a01dd9e 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "clipboard": "^2.0.11", "compare-versions": "^5.0.1", "esbuild": "^0.15.8", - "sass": "^1.54.9", + "sass": "^1.55.0", "ua-parser-js": "^1.0.2" }, "scripts": { diff --git a/yarn.lock b/yarn.lock index adb771f2d..5711315b7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1437,10 +1437,10 @@ safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sass@^1.54.9: - version "1.54.9" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.54.9.tgz#b05f14ed572869218d1a76961de60cd647221762" - integrity sha512-xb1hjASzEH+0L0WI9oFjqhRi51t/gagWnxLiwUNMltA0Ab6jIDkAacgKiGYKM9Jhy109osM7woEEai6SXeJo5Q== +sass@^1.55.0: + version "1.55.0" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.55.0.tgz#0c4d3c293cfe8f8a2e8d3b666e1cf1bff8065d1c" + integrity sha512-Pk+PMy7OGLs9WaxZGJMn7S96dvlyVBwwtToX895WmCpAOr5YiJYEUJfiJidMuKb613z2xNWcXCHEuOvjZbqC6A== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" From 9985f5755e25d85691e18ff29d8661417d8d6cda Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 22 Sep 2022 21:02:18 +0000 Subject: [PATCH 1170/2165] chore(deps): bump turbo-rails from 1.1.1 to 1.3.0 Bumps [turbo-rails](https://github.com/hotwired/turbo-rails) from 1.1.1 to 1.3.0. - [Release notes](https://github.com/hotwired/turbo-rails/releases) - [Commits](https://github.com/hotwired/turbo-rails/compare/v1.1.1...v1.3.0) --- updated-dependencies: - dependency-name: turbo-rails dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index 5c1dbff34..d114c18a6 100644 --- a/Gemfile +++ b/Gemfile @@ -96,7 +96,7 @@ gem 'jsbundling-rails', '~> 1.0' gem 'cssbundling-rails', '~> 1.1' ## Javascript gem 'stimulus-rails', '~> 1.1.0' -gem 'turbo-rails', '~> 1.1' +gem 'turbo-rails', '~> 1.3' # 用于解析 iOS, Android 和 macOS 应用 gem 'app-info', '~> 2.8.3' diff --git a/Gemfile.lock b/Gemfile.lock index 07b1d21a5..048d41b9e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -244,7 +244,7 @@ GEM activesupport (>= 4) railties (>= 4) request_store (~> 1.0) - loofah (2.18.0) + loofah (2.19.0) crass (~> 1.0.2) nokogiri (>= 1.5.9) lumberjack (1.2.8) @@ -479,7 +479,7 @@ GEM faraday (>= 1.10.0, < 3.0) jwt (>= 1.4, < 3) openssl (>= 2.2.1, < 4) - turbo-rails (1.1.1) + turbo-rails (1.3.0) actionpack (>= 6.0.0) activejob (>= 6.0.0) railties (>= 6.0.0) @@ -577,7 +577,7 @@ DEPENDENCIES terminal-notifier terminal-notifier-guard tiny_appstore_connect (~> 0.1.7) - turbo-rails (~> 1.1) + turbo-rails (~> 1.3) vmstat (~> 2.3.0) web-console (>= 3.3.0) webp-ffi (~> 0.3.1) From 7d985dd8547b2e015d208638f0c52a65a4eb2eb7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 23 Sep 2022 02:26:52 +0000 Subject: [PATCH 1171/2165] chore(deps): bump esbuild from 0.15.8 to 0.15.9 Bumps [esbuild](https://github.com/evanw/esbuild) from 0.15.8 to 0.15.9. - [Release notes](https://github.com/evanw/esbuild/releases) - [Changelog](https://github.com/evanw/esbuild/blob/master/CHANGELOG.md) - [Commits](https://github.com/evanw/esbuild/compare/v0.15.8...v0.15.9) --- updated-dependencies: - dependency-name: esbuild dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 277 +++++++++++++++++++++++++-------------------------- 2 files changed, 135 insertions(+), 144 deletions(-) diff --git a/package.json b/package.json index 70a01dd9e..215396218 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "admin-lte": "3.1.0", "clipboard": "^2.0.11", "compare-versions": "^5.0.1", - "esbuild": "^0.15.8", + "esbuild": "^0.15.9", "sass": "^1.55.0", "ua-parser-js": "^1.0.2" }, diff --git a/yarn.lock b/yarn.lock index 5711315b7..a4fea0eaa 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,17 +2,15 @@ # yarn lockfile v1 -"@esbuild/android-arm@0.15.8": - version "0.15.8" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.15.8.tgz#52b094c98e415ec72fab39827c12f2051ac9c550" - integrity sha512-CyEWALmn+no/lbgbAJsbuuhT8s2J19EJGHkeyAwjbFJMrj80KJ9zuYsoAvidPTU7BgBf87r/sgae8Tw0dbOc4Q== - dependencies: - esbuild-wasm "0.15.8" +"@esbuild/android-arm@0.15.9": + version "0.15.9" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.15.9.tgz#7e1221604ab88ed5021ead74fa8cca4405e1e431" + integrity sha512-VZPy/ETF3fBG5PiinIkA0W/tlsvlEgJccyN2DzWZEl0DlVKRbu91PvY2D6Lxgluj4w9QtYHjOWjAT44C+oQ+EQ== -"@esbuild/linux-loong64@0.15.8": - version "0.15.8" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.8.tgz#d64575fc46bf4eb689352aa9f8a139271b6e1647" - integrity sha512-pE5RQsOTSERCtfZdfCT25wzo7dfhOSlhAXcsZmuvRYhendOv7djcdvtINdnDp2DAjP17WXlBB4nBO6sHLczmsg== +"@esbuild/linux-loong64@0.15.9": + version "0.15.9" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.9.tgz#b658a97babf1f40783354af7039b84c3fdfc3fc3" + integrity sha512-O+NfmkfRrb3uSsTa4jE3WApidSe3N5++fyOVGP1SmMZi4A3BZELkhUUvj5hwmMuNdlpzAZ8iAPz2vmcR7DCFQA== "@fortawesome/fontawesome-free@^5.15.3": version "5.15.4" @@ -679,140 +677,133 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -esbuild-android-64@0.15.8: - version "0.15.8" - resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.8.tgz#625863e705d4ed32a3b4c0b997dbf9454d50a455" - integrity sha512-bVh8FIKOolF7/d4AMzt7xHlL0Ljr+mYKSHI39TJWDkybVWHdn6+4ODL3xZGHOxPpdRpitemXA1WwMKYBsw8dGw== - dependencies: - esbuild-wasm "0.15.8" - -esbuild-android-arm64@0.15.8: - version "0.15.8" - resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.8.tgz#cd62afe08652ac146014386d3adbe7a9d33db1b0" - integrity sha512-ReAMDAHuo0H1h9LxRabI6gwYPn8k6WiUeyxuMvx17yTrJO+SCnIfNc/TSPFvDwtK9MiyiKG/2dBYHouT/M0BXQ== - -esbuild-darwin-64@0.15.8: - version "0.15.8" - resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.8.tgz#eb668dc973165f85aefecdca8aa60231acb2f705" - integrity sha512-KaKcGfJ+yto7Fo5gAj3xwxHMd1fBIKatpCHK8znTJLVv+9+NN2/tIPBqA4w5rBwjX0UqXDeIE2v1xJP+nGEXgA== - -esbuild-darwin-arm64@0.15.8: - version "0.15.8" - resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.8.tgz#91c110daa46074fdfc18f411247ca0d1228aacc3" - integrity sha512-8tjEaBgAKnXCkP7bhEJmEqdG9HEV6oLkF36BrMzpfW2rgaw0c48Zrxe+9RlfeGvs6gDF4w+agXyTjikzsS3izw== - -esbuild-freebsd-64@0.15.8: - version "0.15.8" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.8.tgz#22270945a9bf9107c340eb73922e122bbe84f8ad" - integrity sha512-jaxcsGHYzn2L0/lffON2WfH4Nc+d/EwozVTP5K2v016zxMb5UQMhLoJzvLgBqHT1SG0B/mO+a+THnJCMVg15zw== - -esbuild-freebsd-arm64@0.15.8: - version "0.15.8" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.8.tgz#0efe2741fbcaa2cfd31b9f94bd3ca7385b68c469" - integrity sha512-2xp2UlljMvX8HExtcg7VHaeQk8OBU0CSl1j18B5CcZmSDkLF9p3utuMXIopG3a08fr9Hv+Dz6+seSXUow/G51w== - -esbuild-linux-32@0.15.8: - version "0.15.8" - resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.8.tgz#6fc98659105da5c0d1fedfce3b7b9fa24ebee0d4" - integrity sha512-9u1E54BRz1FQMl86iaHK146+4ID2KYNxL3trLZT4QLLx3M7Q9n4lGG3lrzqUatGR2cKy8c33b0iaCzsItZWkFg== - -esbuild-linux-64@0.15.8: - version "0.15.8" - resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.8.tgz#8e738c926d145cdd4e9bcb2febc96d89dc27dc09" - integrity sha512-4HxrsN9eUzJXdVGMTYA5Xler82FuZUu21bXKN42zcLHHNKCAMPUzD62I+GwDhsdgUBAUj0tRXDdsQHgaP6v0HA== - -esbuild-linux-arm64@0.15.8: - version "0.15.8" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.8.tgz#a12675e5a56e8ef08dea49da8eed51a87b0e60d6" - integrity sha512-1OCm7Aq0tEJT70PbxmHSGYDLYP8DKH8r4Nk7/XbVzWaduo9beCjGBB+tGZIHK6DdTQ3h00/4Tb/70YMH/bOtKg== - -esbuild-linux-arm@0.15.8: - version "0.15.8" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.8.tgz#6424da1e8a3ece78681ebee4a70477b40c36ab35" - integrity sha512-7DVBU9SFjX4+vBwt8tHsUCbE6Vvl6y6FQWHAgyw1lybC5gULqn/WnjHYHN2/LJaZRsDBvxWT4msEgwLGq1Wd3Q== - -esbuild-linux-mips64le@0.15.8: - version "0.15.8" - resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.8.tgz#5b39a16272cb4eaaad1f24938c057b19fb5a0ee5" - integrity sha512-yeFoNPVFPEzZvFYBfUQNG2TjGRaCyV1E27OcOg4LOtnGrxb2wA+mkW3luckyv1CEyd00mpAg7UdHx8nlx3ghgA== - -esbuild-linux-ppc64le@0.15.8: - version "0.15.8" - resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.8.tgz#98ea8cfae8227180b45b2d952b2cbb072900944f" - integrity sha512-CEyMMUUNabXibw8OSNmBXhOIGhnjNVl5Lpseiuf00iKN0V47oqDrbo4dsHz1wH62m49AR8iG8wpDlTqfYgKbtg== - -esbuild-linux-riscv64@0.15.8: - version "0.15.8" - resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.8.tgz#6334607025eb449d8dd402d7810721dc15a6210f" - integrity sha512-OCGSOaspMUjexSCU8ZiA0UnV/NiRU+s2vIfEcAQWQ6u32R+2luyfh/4ZaY6jFbylJE07Esc/yRvb9Q5fXuClXA== - -esbuild-linux-s390x@0.15.8: - version "0.15.8" - resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.8.tgz#874f1a3507c32cce1d2ce0d2f28ac1496c094eab" - integrity sha512-RHdpdfxRTSrZXZJlFSLazFU4YwXLB5Rgf6Zr5rffqSsO4y9JybgtKO38bFwxZNlDXliYISXN/YROKrG9s7mZQA== - -esbuild-netbsd-64@0.15.8: - version "0.15.8" - resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.8.tgz#2e03d87ed811400d5d1fa8c7629b9fd97a574231" - integrity sha512-VolFFRatBH09T5QMWhiohAWCOien1R1Uz9K0BRVVTBgBaVBt7eArsXTKxVhUgRf2vwu2c2SXkuP0r7HLG0eozw== - -esbuild-openbsd-64@0.15.8: - version "0.15.8" - resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.8.tgz#8fdbc6399563ac61ff546449e2226a2b1477216c" - integrity sha512-HTAPlg+n4kUeE/isQxlCfsOz0xJGNoT5LJ9oYZWFKABfVf4Ycu7Zlf5ITgOnrdheTkz8JeL/gISIOCFAoOXrSA== - -esbuild-sunos-64@0.15.8: - version "0.15.8" - resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.8.tgz#db657b5c09c0c0161d67ddafca1b710a2e7ce96b" - integrity sha512-qMP/jR/FzcIOwKj+W+Lb+8Cfr8GZHbHUJxAPi7DUhNZMQ/6y7sOgRzlOSpRrbbUntrRZh0MqOyDhJ3Gpo6L1QA== - -esbuild-wasm@0.15.8: - version "0.15.8" - resolved "https://registry.yarnpkg.com/esbuild-wasm/-/esbuild-wasm-0.15.8.tgz#60fb8c5dc1a5538421857a2fa5fbb9eab908dcbb" - integrity sha512-Y7uCl5RNO4URjlemjdx++ukVHEMt5s5AfMWYUnMiK4Sry+pPCvQIctzXq6r6FKCyGKjX6/NGMCqR2OX6aLxj0w== - -esbuild-windows-32@0.15.8: - version "0.15.8" - resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.8.tgz#bbb9fe20a8b6bba4428642cacf45a0fb7b2f3783" - integrity sha512-RKR1QHh4iWzjUhkP8Yqi75PPz/KS+b8zw3wUrzw6oAkj+iU5Qtyj61ZDaSG3Qf2vc6hTIUiPqVTqBH0NpXFNwg== - -esbuild-windows-64@0.15.8: - version "0.15.8" - resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.8.tgz#cedee65505209c8d371d7228b60785c08f43e04d" - integrity sha512-ag9ptYrsizgsR+PQE8QKeMqnosLvAMonQREpLw4evA4FFgOBMLEat/dY/9txbpozTw9eEOYyD3a4cE9yTu20FA== - -esbuild-windows-arm64@0.15.8: - version "0.15.8" - resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.8.tgz#1d75235290bf23a111e6c0b03febd324af115cb1" - integrity sha512-dbpAb0VyPaUs9mgw65KRfQ9rqiWCHpNzrJusoPu+LpEoswosjt/tFxN7cd2l68AT4qWdBkzAjDLRon7uqMeWcg== - -esbuild@^0.15.8: - version "0.15.8" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.8.tgz#75daa25d03f6dd9cc9355030eba2b93555b42cd4" - integrity sha512-Remsk2dmr1Ia65sU+QasE6svJbsHe62lzR+CnjpUvbZ+uSYo1SitiOWPRfZQkCu82YWZBBKXiD/j0i//XWMZ+Q== +esbuild-android-64@0.15.9: + version "0.15.9" + resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.9.tgz#4a7eb320ca8d3a305f14792061fd9614ccebb7c0" + integrity sha512-HQCX7FJn9T4kxZQkhPjNZC7tBWZqJvhlLHPU2SFzrQB/7nDXjmTIFpFTjt7Bd1uFpeXmuwf5h5fZm+x/hLnhbw== + +esbuild-android-arm64@0.15.9: + version "0.15.9" + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.9.tgz#c948e5686df20857ad361ec67e070d40d7cab985" + integrity sha512-E6zbLfqbFVCNEKircSHnPiSTsm3fCRxeIMPfrkS33tFjIAoXtwegQfVZqMGR0FlsvVxp2NEDOUz+WW48COCjSg== + +esbuild-darwin-64@0.15.9: + version "0.15.9" + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.9.tgz#25f564fa4b39c1cec84dc46bce5634fdbce1d5e4" + integrity sha512-gI7dClcDN/HHVacZhTmGjl0/TWZcGuKJ0I7/xDGJwRQQn7aafZGtvagOFNmuOq+OBFPhlPv1T6JElOXb0unkSQ== + +esbuild-darwin-arm64@0.15.9: + version "0.15.9" + resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.9.tgz#60faea3ed95d15239536aa88d06bb82b29278a86" + integrity sha512-VZIMlcRN29yg/sv7DsDwN+OeufCcoTNaTl3Vnav7dL/nvsApD7uvhVRbgyMzv0zU/PP0xRhhIpTyc7lxEzHGSw== + +esbuild-freebsd-64@0.15.9: + version "0.15.9" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.9.tgz#0339ef1c90a919175e7816788224517896657a0e" + integrity sha512-uM4z5bTvuAXqPxrI204txhlsPIolQPWRMLenvGuCPZTnnGlCMF2QLs0Plcm26gcskhxewYo9LkkmYSS5Czrb5A== + +esbuild-freebsd-arm64@0.15.9: + version "0.15.9" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.9.tgz#32abfc0be3ae3dd38e5a86a9beadbbcf592f1b57" + integrity sha512-HHDjT3O5gWzicGdgJ5yokZVN9K9KG05SnERwl9nBYZaCjcCgj/sX8Ps1jvoFSfNCO04JSsHSOWo4qvxFuj8FoA== + +esbuild-linux-32@0.15.9: + version "0.15.9" + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.9.tgz#93581348a4da7ed2b29bc5539f2605ad7fcee77b" + integrity sha512-AQIdE8FugGt1DkcekKi5ycI46QZpGJ/wqcMr7w6YUmOmp2ohQ8eO4sKUsOxNOvYL7hGEVwkndSyszR6HpVHLFg== + +esbuild-linux-64@0.15.9: + version "0.15.9" + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.9.tgz#0d171e7946c95d0d3ed4826026af2c5632d7dcc4" + integrity sha512-4RXjae7g6Qs7StZyiYyXTZXBlfODhb1aBVAjd+ANuPmMhWthQilWo7rFHwJwL7DQu1Fjej2sODAVwLbcIVsAYQ== + +esbuild-linux-arm64@0.15.9: + version "0.15.9" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.9.tgz#9838795a3720cbe736d3bc20621bd366eac22f24" + integrity sha512-a+bTtxJmYmk9d+s2W4/R1SYKDDAldOKmWjWP0BnrWtDbvUBNOm++du0ysPju4mZVoEFgS1yLNW+VXnG/4FNwdQ== + +esbuild-linux-arm@0.15.9: + version "0.15.9" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.9.tgz#dce96cd817bc7376f6af3967649c4ab1f2f79506" + integrity sha512-3Zf2GVGUOI7XwChH3qrnTOSqfV1V4CAc/7zLVm4lO6JT6wbJrTgEYCCiNSzziSju+J9Jhf9YGWk/26quWPC6yQ== + +esbuild-linux-mips64le@0.15.9: + version "0.15.9" + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.9.tgz#0335a0739e61aa97cb9b4a018e3facfcca9cdcfd" + integrity sha512-Zn9HSylDp89y+TRREMDoGrc3Z4Hs5u56ozZLQCiZAUx2+HdbbXbWdjmw3FdTJ/i7t5Cew6/Q+6kfO3KCcFGlyw== + +esbuild-linux-ppc64le@0.15.9: + version "0.15.9" + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.9.tgz#18482afb95b8a705e2da0a59d7131bff221281f9" + integrity sha512-OEiOxNAMH9ENFYqRsWUj3CWyN3V8P3ZXyfNAtX5rlCEC/ERXrCEFCJji/1F6POzsXAzxvUJrTSTCy7G6BhA6Fw== + +esbuild-linux-riscv64@0.15.9: + version "0.15.9" + resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.9.tgz#03b6f9708272c117006b9ce1c9ae8aab91b5a5b6" + integrity sha512-ukm4KsC3QRausEFjzTsOZ/qqazw0YvJsKmfoZZm9QW27OHjk2XKSQGGvx8gIEswft/Sadp03/VZvAaqv5AIwNA== + +esbuild-linux-s390x@0.15.9: + version "0.15.9" + resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.9.tgz#65fb645623d575780f155f0ee52935e62f9cca4f" + integrity sha512-uDOQEH55wQ6ahcIKzQr3VyjGc6Po/xblLGLoUk3fVL1qjlZAibtQr6XRfy5wPJLu/M2o0vQKLq4lyJ2r1tWKcw== + +esbuild-netbsd-64@0.15.9: + version "0.15.9" + resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.9.tgz#7894297bb9e11f3d2f6f31efecd1be4e181f0d54" + integrity sha512-yWgxaYTQz+TqX80wXRq6xAtb7GSBAp6gqLKfOdANg9qEmAI1Bxn04IrQr0Mzm4AhxvGKoHzjHjMgXbCCSSDxcw== + +esbuild-openbsd-64@0.15.9: + version "0.15.9" + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.9.tgz#0f9d4c6b6772ae50d491d68ad4cc028300dda7c0" + integrity sha512-JmS18acQl4iSAjrEha1MfEmUMN4FcnnrtTaJ7Qg0tDCOcgpPPQRLGsZqhes0vmx8VA6IqRyScqXvaL7+Q0Uf3A== + +esbuild-sunos-64@0.15.9: + version "0.15.9" + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.9.tgz#c32b7ce574b08f814de810ce7c1e34b843768126" + integrity sha512-UKynGSWpzkPmXW3D2UMOD9BZPIuRaSqphxSCwScfEE05Be3KAmvjsBhht1fLzKpiFVJb0BYMd4jEbWMyJ/z1hQ== + +esbuild-windows-32@0.15.9: + version "0.15.9" + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.9.tgz#37a8f7cfccdb2177cd46613a1a1e1fcb419d36df" + integrity sha512-aqXvu4/W9XyTVqO/hw3rNxKE1TcZiEYHPsXM9LwYmKSX9/hjvfIJzXwQBlPcJ/QOxedfoMVH0YnhhQ9Ffb0RGA== + +esbuild-windows-64@0.15.9: + version "0.15.9" + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.9.tgz#5fe1e76fc13dd7f520febecaea110b6f1649c7b2" + integrity sha512-zm7h91WUmlS4idMtjvCrEeNhlH7+TNOmqw5dJPJZrgFaxoFyqYG6CKDpdFCQXdyKpD5yvzaQBOMVTCBVKGZDEg== + +esbuild-windows-arm64@0.15.9: + version "0.15.9" + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.9.tgz#98504428f7ba7d2cfc11940be68ee1139173fdce" + integrity sha512-yQEVIv27oauAtvtuhJVfSNMztJJX47ismRS6Sv2QMVV9RM+6xjbMWuuwM2nxr5A2/gj/mu2z9YlQxiwoFRCfZA== + +esbuild@^0.15.9: + version "0.15.9" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.9.tgz#33fb18b67b85004b6f7616bec955ca4b3e58935d" + integrity sha512-OnYr1rkMVxtmMHIAKZLMcEUlJmqcbxBz9QoBU8G9v455na0fuzlT/GLu6l+SRghrk0Mm2fSSciMmzV43Q8e0Gg== optionalDependencies: - "@esbuild/android-arm" "0.15.8" - "@esbuild/linux-loong64" "0.15.8" - esbuild-android-64 "0.15.8" - esbuild-android-arm64 "0.15.8" - esbuild-darwin-64 "0.15.8" - esbuild-darwin-arm64 "0.15.8" - esbuild-freebsd-64 "0.15.8" - esbuild-freebsd-arm64 "0.15.8" - esbuild-linux-32 "0.15.8" - esbuild-linux-64 "0.15.8" - esbuild-linux-arm "0.15.8" - esbuild-linux-arm64 "0.15.8" - esbuild-linux-mips64le "0.15.8" - esbuild-linux-ppc64le "0.15.8" - esbuild-linux-riscv64 "0.15.8" - esbuild-linux-s390x "0.15.8" - esbuild-netbsd-64 "0.15.8" - esbuild-openbsd-64 "0.15.8" - esbuild-sunos-64 "0.15.8" - esbuild-windows-32 "0.15.8" - esbuild-windows-64 "0.15.8" - esbuild-windows-arm64 "0.15.8" + "@esbuild/android-arm" "0.15.9" + "@esbuild/linux-loong64" "0.15.9" + esbuild-android-64 "0.15.9" + esbuild-android-arm64 "0.15.9" + esbuild-darwin-64 "0.15.9" + esbuild-darwin-arm64 "0.15.9" + esbuild-freebsd-64 "0.15.9" + esbuild-freebsd-arm64 "0.15.9" + esbuild-linux-32 "0.15.9" + esbuild-linux-64 "0.15.9" + esbuild-linux-arm "0.15.9" + esbuild-linux-arm64 "0.15.9" + esbuild-linux-mips64le "0.15.9" + esbuild-linux-ppc64le "0.15.9" + esbuild-linux-riscv64 "0.15.9" + esbuild-linux-s390x "0.15.9" + esbuild-netbsd-64 "0.15.9" + esbuild-openbsd-64 "0.15.9" + esbuild-sunos-64 "0.15.9" + esbuild-windows-32 "0.15.9" + esbuild-windows-64 "0.15.9" + esbuild-windows-arm64 "0.15.9" ev-emitter@^1.0.0: version "1.1.1" From 732e435db16fc88c6f08e101cb4fd54ed56715d9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 28 Sep 2022 03:08:32 +0000 Subject: [PATCH 1172/2165] chore(deps): bump @hotwired/turbo-rails from 7.1.3 to 7.2.0 Bumps [@hotwired/turbo-rails](https://github.com/hotwired/turbo-rails) from 7.1.3 to 7.2.0. - [Release notes](https://github.com/hotwired/turbo-rails/releases) - [Commits](https://github.com/hotwired/turbo-rails/commits) --- updated-dependencies: - dependency-name: "@hotwired/turbo-rails" dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index 3b0453f0f..596fe7916 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "license": "MIT", "dependencies": { "@hotwired/stimulus": "^3.1.0", - "@hotwired/turbo-rails": "^7.1.3", + "@hotwired/turbo-rails": "^7.2.0", "@rails/actioncable": "^7.0.4", "admin-lte": "3.1.0", "clipboard": "^2.0.11", diff --git a/yarn.lock b/yarn.lock index 99fa04494..0a7335e19 100644 --- a/yarn.lock +++ b/yarn.lock @@ -22,18 +22,18 @@ resolved "https://registry.yarnpkg.com/@hotwired/stimulus/-/stimulus-3.1.0.tgz#20215251e5afe6e0a3787285181ba1bfc9097df0" integrity sha512-iDMHUhiEJ1xFeicyHcZQQgBzhtk5mPR0QZO3L6wtqzMsJEk2TKECuCQTGKjm+KJTHVY0dKq1dOOAWvODjpd2Mg== -"@hotwired/turbo-rails@^7.1.3": - version "7.1.3" - resolved "https://registry.yarnpkg.com/@hotwired/turbo-rails/-/turbo-rails-7.1.3.tgz#a4e04ecb800a06e7f9aa6e298170fa4580b74216" - integrity sha512-6qKgn75bMWKx0bJgmSfrdC73EJkGLoSWZPAssvcd3nE7ZpDZff6f67j5OQNjjpRgNB7OFruom6VWguGQGu1fQg== +"@hotwired/turbo-rails@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@hotwired/turbo-rails/-/turbo-rails-7.2.0.tgz#2081ed4e626fac9fd61ba5a4d1eeb53e6ea93b03" + integrity sha512-RxJJGINeLa2lyI078LLSbqZDI7RarxTDMVlgKnsLvtFEn8Pa7ySEcDUxHp5YiLXGbLacAIH/dcfD0JfCWe5Dqw== dependencies: - "@hotwired/turbo" "^7.1.0" + "@hotwired/turbo" "^7.2.0" "@rails/actioncable" "^7.0" -"@hotwired/turbo@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@hotwired/turbo/-/turbo-7.1.0.tgz#27e44e0e3dc5bd1d4bda0766d579cf5a14091cd7" - integrity sha512-Q8kGjqwPqER+CtpQudbH+3Zgs2X4zb6pBAlr6NsKTXadg45pAOvxI9i4QpuHbwSzR2+x87HUm+rot9F/Pe8rxA== +"@hotwired/turbo@^7.2.0": + version "7.2.0" + resolved "https://registry.yarnpkg.com/@hotwired/turbo/-/turbo-7.2.0.tgz#4ff90d80fda17e69b04a12bbf0a42f09953504f6" + integrity sha512-CYr6N9NfqsjhmZx1xVQ8zYcDo4hTm7sTUpJydbNgMRyG+YfF/9ADIQQ2TtcBdkl2zi/12a3OTWX0UMzNZnAK9w== "@lgaitan/pace-progress@^1.0.7": version "1.0.7" From 8824d32e4df999686735192e1dc7c98f306841f5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 29 Sep 2022 21:04:44 +0000 Subject: [PATCH 1173/2165] chore(deps): bump esbuild from 0.15.9 to 0.15.10 Bumps [esbuild](https://github.com/evanw/esbuild) from 0.15.9 to 0.15.10. - [Release notes](https://github.com/evanw/esbuild/releases) - [Changelog](https://github.com/evanw/esbuild/blob/master/CHANGELOG.md) - [Commits](https://github.com/evanw/esbuild/compare/v0.15.9...v0.15.10) --- updated-dependencies: - dependency-name: esbuild dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 268 +++++++++++++++++++++++++-------------------------- 2 files changed, 135 insertions(+), 135 deletions(-) diff --git a/package.json b/package.json index 596fe7916..ba6d005c8 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "admin-lte": "3.1.0", "clipboard": "^2.0.11", "compare-versions": "^5.0.1", - "esbuild": "^0.15.9", + "esbuild": "^0.15.10", "sass": "^1.55.0", "ua-parser-js": "^1.0.2" }, diff --git a/yarn.lock b/yarn.lock index 0a7335e19..b99d9a560 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,15 +2,15 @@ # yarn lockfile v1 -"@esbuild/android-arm@0.15.9": - version "0.15.9" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.15.9.tgz#7e1221604ab88ed5021ead74fa8cca4405e1e431" - integrity sha512-VZPy/ETF3fBG5PiinIkA0W/tlsvlEgJccyN2DzWZEl0DlVKRbu91PvY2D6Lxgluj4w9QtYHjOWjAT44C+oQ+EQ== +"@esbuild/android-arm@0.15.10": + version "0.15.10" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.15.10.tgz#a5f9432eb221afc243c321058ef25fe899886892" + integrity sha512-FNONeQPy/ox+5NBkcSbYJxoXj9GWu8gVGJTVmUyoOCKQFDTrHVKgNSzChdNt0I8Aj/iKcsDf2r9BFwv+FSNUXg== -"@esbuild/linux-loong64@0.15.9": - version "0.15.9" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.9.tgz#b658a97babf1f40783354af7039b84c3fdfc3fc3" - integrity sha512-O+NfmkfRrb3uSsTa4jE3WApidSe3N5++fyOVGP1SmMZi4A3BZELkhUUvj5hwmMuNdlpzAZ8iAPz2vmcR7DCFQA== +"@esbuild/linux-loong64@0.15.10": + version "0.15.10" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.10.tgz#78a42897c2cf8db9fd5f1811f7590393b77774c7" + integrity sha512-w0Ou3Z83LOYEkwaui2M8VwIp+nLi/NA60lBLMvaJ+vXVMcsARYdEzLNE7RSm4+lSg4zq4d7fAVuzk7PNQ5JFgg== "@fortawesome/fontawesome-free@^5.15.3": version "5.15.4" @@ -677,133 +677,133 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -esbuild-android-64@0.15.9: - version "0.15.9" - resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.9.tgz#4a7eb320ca8d3a305f14792061fd9614ccebb7c0" - integrity sha512-HQCX7FJn9T4kxZQkhPjNZC7tBWZqJvhlLHPU2SFzrQB/7nDXjmTIFpFTjt7Bd1uFpeXmuwf5h5fZm+x/hLnhbw== - -esbuild-android-arm64@0.15.9: - version "0.15.9" - resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.9.tgz#c948e5686df20857ad361ec67e070d40d7cab985" - integrity sha512-E6zbLfqbFVCNEKircSHnPiSTsm3fCRxeIMPfrkS33tFjIAoXtwegQfVZqMGR0FlsvVxp2NEDOUz+WW48COCjSg== - -esbuild-darwin-64@0.15.9: - version "0.15.9" - resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.9.tgz#25f564fa4b39c1cec84dc46bce5634fdbce1d5e4" - integrity sha512-gI7dClcDN/HHVacZhTmGjl0/TWZcGuKJ0I7/xDGJwRQQn7aafZGtvagOFNmuOq+OBFPhlPv1T6JElOXb0unkSQ== - -esbuild-darwin-arm64@0.15.9: - version "0.15.9" - resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.9.tgz#60faea3ed95d15239536aa88d06bb82b29278a86" - integrity sha512-VZIMlcRN29yg/sv7DsDwN+OeufCcoTNaTl3Vnav7dL/nvsApD7uvhVRbgyMzv0zU/PP0xRhhIpTyc7lxEzHGSw== - -esbuild-freebsd-64@0.15.9: - version "0.15.9" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.9.tgz#0339ef1c90a919175e7816788224517896657a0e" - integrity sha512-uM4z5bTvuAXqPxrI204txhlsPIolQPWRMLenvGuCPZTnnGlCMF2QLs0Plcm26gcskhxewYo9LkkmYSS5Czrb5A== - -esbuild-freebsd-arm64@0.15.9: - version "0.15.9" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.9.tgz#32abfc0be3ae3dd38e5a86a9beadbbcf592f1b57" - integrity sha512-HHDjT3O5gWzicGdgJ5yokZVN9K9KG05SnERwl9nBYZaCjcCgj/sX8Ps1jvoFSfNCO04JSsHSOWo4qvxFuj8FoA== - -esbuild-linux-32@0.15.9: - version "0.15.9" - resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.9.tgz#93581348a4da7ed2b29bc5539f2605ad7fcee77b" - integrity sha512-AQIdE8FugGt1DkcekKi5ycI46QZpGJ/wqcMr7w6YUmOmp2ohQ8eO4sKUsOxNOvYL7hGEVwkndSyszR6HpVHLFg== - -esbuild-linux-64@0.15.9: - version "0.15.9" - resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.9.tgz#0d171e7946c95d0d3ed4826026af2c5632d7dcc4" - integrity sha512-4RXjae7g6Qs7StZyiYyXTZXBlfODhb1aBVAjd+ANuPmMhWthQilWo7rFHwJwL7DQu1Fjej2sODAVwLbcIVsAYQ== - -esbuild-linux-arm64@0.15.9: - version "0.15.9" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.9.tgz#9838795a3720cbe736d3bc20621bd366eac22f24" - integrity sha512-a+bTtxJmYmk9d+s2W4/R1SYKDDAldOKmWjWP0BnrWtDbvUBNOm++du0ysPju4mZVoEFgS1yLNW+VXnG/4FNwdQ== - -esbuild-linux-arm@0.15.9: - version "0.15.9" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.9.tgz#dce96cd817bc7376f6af3967649c4ab1f2f79506" - integrity sha512-3Zf2GVGUOI7XwChH3qrnTOSqfV1V4CAc/7zLVm4lO6JT6wbJrTgEYCCiNSzziSju+J9Jhf9YGWk/26quWPC6yQ== - -esbuild-linux-mips64le@0.15.9: - version "0.15.9" - resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.9.tgz#0335a0739e61aa97cb9b4a018e3facfcca9cdcfd" - integrity sha512-Zn9HSylDp89y+TRREMDoGrc3Z4Hs5u56ozZLQCiZAUx2+HdbbXbWdjmw3FdTJ/i7t5Cew6/Q+6kfO3KCcFGlyw== - -esbuild-linux-ppc64le@0.15.9: - version "0.15.9" - resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.9.tgz#18482afb95b8a705e2da0a59d7131bff221281f9" - integrity sha512-OEiOxNAMH9ENFYqRsWUj3CWyN3V8P3ZXyfNAtX5rlCEC/ERXrCEFCJji/1F6POzsXAzxvUJrTSTCy7G6BhA6Fw== - -esbuild-linux-riscv64@0.15.9: - version "0.15.9" - resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.9.tgz#03b6f9708272c117006b9ce1c9ae8aab91b5a5b6" - integrity sha512-ukm4KsC3QRausEFjzTsOZ/qqazw0YvJsKmfoZZm9QW27OHjk2XKSQGGvx8gIEswft/Sadp03/VZvAaqv5AIwNA== - -esbuild-linux-s390x@0.15.9: - version "0.15.9" - resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.9.tgz#65fb645623d575780f155f0ee52935e62f9cca4f" - integrity sha512-uDOQEH55wQ6ahcIKzQr3VyjGc6Po/xblLGLoUk3fVL1qjlZAibtQr6XRfy5wPJLu/M2o0vQKLq4lyJ2r1tWKcw== - -esbuild-netbsd-64@0.15.9: - version "0.15.9" - resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.9.tgz#7894297bb9e11f3d2f6f31efecd1be4e181f0d54" - integrity sha512-yWgxaYTQz+TqX80wXRq6xAtb7GSBAp6gqLKfOdANg9qEmAI1Bxn04IrQr0Mzm4AhxvGKoHzjHjMgXbCCSSDxcw== - -esbuild-openbsd-64@0.15.9: - version "0.15.9" - resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.9.tgz#0f9d4c6b6772ae50d491d68ad4cc028300dda7c0" - integrity sha512-JmS18acQl4iSAjrEha1MfEmUMN4FcnnrtTaJ7Qg0tDCOcgpPPQRLGsZqhes0vmx8VA6IqRyScqXvaL7+Q0Uf3A== - -esbuild-sunos-64@0.15.9: - version "0.15.9" - resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.9.tgz#c32b7ce574b08f814de810ce7c1e34b843768126" - integrity sha512-UKynGSWpzkPmXW3D2UMOD9BZPIuRaSqphxSCwScfEE05Be3KAmvjsBhht1fLzKpiFVJb0BYMd4jEbWMyJ/z1hQ== - -esbuild-windows-32@0.15.9: - version "0.15.9" - resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.9.tgz#37a8f7cfccdb2177cd46613a1a1e1fcb419d36df" - integrity sha512-aqXvu4/W9XyTVqO/hw3rNxKE1TcZiEYHPsXM9LwYmKSX9/hjvfIJzXwQBlPcJ/QOxedfoMVH0YnhhQ9Ffb0RGA== - -esbuild-windows-64@0.15.9: - version "0.15.9" - resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.9.tgz#5fe1e76fc13dd7f520febecaea110b6f1649c7b2" - integrity sha512-zm7h91WUmlS4idMtjvCrEeNhlH7+TNOmqw5dJPJZrgFaxoFyqYG6CKDpdFCQXdyKpD5yvzaQBOMVTCBVKGZDEg== - -esbuild-windows-arm64@0.15.9: - version "0.15.9" - resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.9.tgz#98504428f7ba7d2cfc11940be68ee1139173fdce" - integrity sha512-yQEVIv27oauAtvtuhJVfSNMztJJX47ismRS6Sv2QMVV9RM+6xjbMWuuwM2nxr5A2/gj/mu2z9YlQxiwoFRCfZA== - -esbuild@^0.15.9: - version "0.15.9" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.9.tgz#33fb18b67b85004b6f7616bec955ca4b3e58935d" - integrity sha512-OnYr1rkMVxtmMHIAKZLMcEUlJmqcbxBz9QoBU8G9v455na0fuzlT/GLu6l+SRghrk0Mm2fSSciMmzV43Q8e0Gg== +esbuild-android-64@0.15.10: + version "0.15.10" + resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.10.tgz#8a59a84acbf2eca96996cadc35642cf055c494f0" + integrity sha512-UI7krF8OYO1N7JYTgLT9ML5j4+45ra3amLZKx7LO3lmLt1Ibn8t3aZbX5Pu4BjWiqDuJ3m/hsvhPhK/5Y/YpnA== + +esbuild-android-arm64@0.15.10: + version "0.15.10" + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.10.tgz#f453851dc1d8c5409a38cf7613a33852faf4915d" + integrity sha512-EOt55D6xBk5O05AK8brXUbZmoFj4chM8u3riGflLa6ziEoVvNjRdD7Cnp82NHQGfSHgYR06XsPI8/sMuA/cUwg== + +esbuild-darwin-64@0.15.10: + version "0.15.10" + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.10.tgz#778bd29c8186ff47b176c8af58c08cf0fb8e6b86" + integrity sha512-hbDJugTicqIm+WKZgp208d7FcXcaK8j2c0l+fqSJ3d2AzQAfjEYDRM3Z2oMeqSJ9uFxyj/muSACLdix7oTstRA== + +esbuild-darwin-arm64@0.15.10: + version "0.15.10" + resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.10.tgz#b30bbefb46dc3c5d4708b0435e52f6456578d6df" + integrity sha512-M1t5+Kj4IgSbYmunf2BB6EKLkWUq+XlqaFRiGOk8bmBapu9bCDrxjf4kUnWn59Dka3I27EiuHBKd1rSO4osLFQ== + +esbuild-freebsd-64@0.15.10: + version "0.15.10" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.10.tgz#ab301c5f6ded5110dbdd611140bef1a7c2e99236" + integrity sha512-KMBFMa7C8oc97nqDdoZwtDBX7gfpolkk6Bcmj6YFMrtCMVgoU/x2DI1p74DmYl7CSS6Ppa3xgemrLrr5IjIn0w== + +esbuild-freebsd-arm64@0.15.10: + version "0.15.10" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.10.tgz#a5b09b867a6ff49110f52343b6f12265db63d43f" + integrity sha512-m2KNbuCX13yQqLlbSojFMHpewbn8wW5uDS6DxRpmaZKzyq8Dbsku6hHvh2U+BcLwWY4mpgXzFUoENEf7IcioGg== + +esbuild-linux-32@0.15.10: + version "0.15.10" + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.10.tgz#5282fe9915641caf9c8070e4ba2c3e16d358f837" + integrity sha512-guXrwSYFAvNkuQ39FNeV4sNkNms1bLlA5vF1H0cazZBOLdLFIny6BhT+TUbK/hdByMQhtWQ5jI9VAmPKbVPu1w== + +esbuild-linux-64@0.15.10: + version "0.15.10" + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.10.tgz#f3726e85a00149580cb19f8abfabcbb96f5d52bb" + integrity sha512-jd8XfaSJeucMpD63YNMO1JCrdJhckHWcMv6O233bL4l6ogQKQOxBYSRP/XLWP+6kVTu0obXovuckJDcA0DKtQA== + +esbuild-linux-arm64@0.15.10: + version "0.15.10" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.10.tgz#2f0056e9d5286edb0185b56655caa8c574d8dbe7" + integrity sha512-GByBi4fgkvZFTHFDYNftu1DQ1GzR23jws0oWyCfhnI7eMOe+wgwWrc78dbNk709Ivdr/evefm2PJiUBMiusS1A== + +esbuild-linux-arm@0.15.10: + version "0.15.10" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.10.tgz#40a9270da3c8ffa32cf72e24a79883e323dff08d" + integrity sha512-6N8vThLL/Lysy9y4Ex8XoLQAlbZKUyExCWyayGi2KgTBelKpPgj6RZnUaKri0dHNPGgReJriKVU6+KDGQwn10A== + +esbuild-linux-mips64le@0.15.10: + version "0.15.10" + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.10.tgz#90ce1c4ee0202edb4ac69807dea77f7e5804abc4" + integrity sha512-BxP+LbaGVGIdQNJUNF7qpYjEGWb0YyHVSKqYKrn+pTwH/SiHUxFyJYSP3pqkku61olQiSBnSmWZ+YUpj78Tw7Q== + +esbuild-linux-ppc64le@0.15.10: + version "0.15.10" + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.10.tgz#782837ae7bd5b279178106c9dd801755a21fabdf" + integrity sha512-LoSQCd6498PmninNgqd/BR7z3Bsk/mabImBWuQ4wQgmQEeanzWd5BQU2aNi9mBURCLgyheuZS6Xhrw5luw3OkQ== + +esbuild-linux-riscv64@0.15.10: + version "0.15.10" + resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.10.tgz#d7420d806ece5174f24f4634303146f915ab4207" + integrity sha512-Lrl9Cr2YROvPV4wmZ1/g48httE8z/5SCiXIyebiB5N8VT7pX3t6meI7TQVHw/wQpqP/AF4SksDuFImPTM7Z32Q== + +esbuild-linux-s390x@0.15.10: + version "0.15.10" + resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.10.tgz#21fdf0cb3494a7fb520a71934e4dffce67fe47be" + integrity sha512-ReP+6q3eLVVP2lpRrvl5EodKX7EZ1bS1/z5j6hsluAlZP5aHhk6ghT6Cq3IANvvDdscMMCB4QEbI+AjtvoOFpA== + +esbuild-netbsd-64@0.15.10: + version "0.15.10" + resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.10.tgz#6c06b3107e3df53de381e6299184d4597db0440f" + integrity sha512-iGDYtJCMCqldMskQ4eIV+QSS/CuT7xyy9i2/FjpKvxAuCzrESZXiA1L64YNj6/afuzfBe9i8m/uDkFHy257hTw== + +esbuild-openbsd-64@0.15.10: + version "0.15.10" + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.10.tgz#4daef5f5d8e74bbda53b65160029445d582570cf" + integrity sha512-ftMMIwHWrnrYnvuJQRJs/Smlcb28F9ICGde/P3FUTCgDDM0N7WA0o9uOR38f5Xe2/OhNCgkjNeb7QeaE3cyWkQ== + +esbuild-sunos-64@0.15.10: + version "0.15.10" + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.10.tgz#5fe7bef267a02f322fd249a8214d0274937388a7" + integrity sha512-mf7hBL9Uo2gcy2r3rUFMjVpTaGpFJJE5QTDDqUFf1632FxteYANffDZmKbqX0PfeQ2XjUDE604IcE7OJeoHiyg== + +esbuild-windows-32@0.15.10: + version "0.15.10" + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.10.tgz#48e3dde25ab0135579a288b30ab6ddef6d1f0b28" + integrity sha512-ttFVo+Cg8b5+qHmZHbEc8Vl17kCleHhLzgT8X04y8zudEApo0PxPg9Mz8Z2cKH1bCYlve1XL8LkyXGFjtUYeGg== + +esbuild-windows-64@0.15.10: + version "0.15.10" + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.10.tgz#387a9515bef3fee502d277a5d0a2db49a4ecda05" + integrity sha512-2H0gdsyHi5x+8lbng3hLbxDWR7mKHWh5BXZGKVG830KUmXOOWFE2YKJ4tHRkejRduOGDrBvHBriYsGtmTv3ntA== + +esbuild-windows-arm64@0.15.10: + version "0.15.10" + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.10.tgz#5a6fcf2fa49e895949bf5495cf088ab1b43ae879" + integrity sha512-S+th4F+F8VLsHLR0zrUcG+Et4hx0RKgK1eyHc08kztmLOES8BWwMiaGdoW9hiXuzznXQ0I/Fg904MNbr11Nktw== + +esbuild@^0.15.10: + version "0.15.10" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.10.tgz#85c2f8446e9b1fe04fae68daceacba033eedbd42" + integrity sha512-N7wBhfJ/E5fzn/SpNgX+oW2RLRjwaL8Y0ezqNqhjD6w0H2p0rDuEz2FKZqpqLnO8DCaWumKe8dsC/ljvVSSxng== optionalDependencies: - "@esbuild/android-arm" "0.15.9" - "@esbuild/linux-loong64" "0.15.9" - esbuild-android-64 "0.15.9" - esbuild-android-arm64 "0.15.9" - esbuild-darwin-64 "0.15.9" - esbuild-darwin-arm64 "0.15.9" - esbuild-freebsd-64 "0.15.9" - esbuild-freebsd-arm64 "0.15.9" - esbuild-linux-32 "0.15.9" - esbuild-linux-64 "0.15.9" - esbuild-linux-arm "0.15.9" - esbuild-linux-arm64 "0.15.9" - esbuild-linux-mips64le "0.15.9" - esbuild-linux-ppc64le "0.15.9" - esbuild-linux-riscv64 "0.15.9" - esbuild-linux-s390x "0.15.9" - esbuild-netbsd-64 "0.15.9" - esbuild-openbsd-64 "0.15.9" - esbuild-sunos-64 "0.15.9" - esbuild-windows-32 "0.15.9" - esbuild-windows-64 "0.15.9" - esbuild-windows-arm64 "0.15.9" + "@esbuild/android-arm" "0.15.10" + "@esbuild/linux-loong64" "0.15.10" + esbuild-android-64 "0.15.10" + esbuild-android-arm64 "0.15.10" + esbuild-darwin-64 "0.15.10" + esbuild-darwin-arm64 "0.15.10" + esbuild-freebsd-64 "0.15.10" + esbuild-freebsd-arm64 "0.15.10" + esbuild-linux-32 "0.15.10" + esbuild-linux-64 "0.15.10" + esbuild-linux-arm "0.15.10" + esbuild-linux-arm64 "0.15.10" + esbuild-linux-mips64le "0.15.10" + esbuild-linux-ppc64le "0.15.10" + esbuild-linux-riscv64 "0.15.10" + esbuild-linux-s390x "0.15.10" + esbuild-netbsd-64 "0.15.10" + esbuild-openbsd-64 "0.15.10" + esbuild-sunos-64 "0.15.10" + esbuild-windows-32 "0.15.10" + esbuild-windows-64 "0.15.10" + esbuild-windows-arm64 "0.15.10" ev-emitter@^1.0.0: version "1.1.1" From eb2b59b8613f48793101db42c2f317abc2df2129 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Oct 2022 21:01:39 +0000 Subject: [PATCH 1174/2165] chore(deps): bump faraday from 2.5.2 to 2.6.0 Bumps [faraday](https://github.com/lostisland/faraday) from 2.5.2 to 2.6.0. - [Release notes](https://github.com/lostisland/faraday/releases) - [Changelog](https://github.com/lostisland/faraday/blob/main/CHANGELOG.md) - [Commits](https://github.com/lostisland/faraday/compare/v2.5.2...v2.6.0) --- updated-dependencies: - dependency-name: faraday dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 7fcf4f2dc..5efc84847 100644 --- a/Gemfile +++ b/Gemfile @@ -42,7 +42,7 @@ gem 'webp-ffi', '~> 0.3.1' # Helper ## HTTP 请求 -gem 'faraday', '~> 2.5.2' +gem 'faraday', '~> 2.6.0' ## 用户认证 gem 'pundit', '~> 2.2.0' diff --git a/Gemfile.lock b/Gemfile.lock index c161a1dab..e37568f54 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -141,7 +141,7 @@ GEM erubi (1.11.0) et-orbi (1.2.7) tzinfo - faraday (2.5.2) + faraday (2.6.0) faraday-net_http (>= 2.0, < 3.1) ruby2_keywords (>= 0.0.4) faraday-net_http (3.0.0) @@ -520,7 +520,7 @@ DEPENDENCIES devise (~> 4.8.1) devise-i18n (~> 1.10.2) dotenv-rails - faraday (~> 2.5.2) + faraday (~> 2.6.0) friendly_id (~> 5.4.2) graphiql-rails graphql (~> 2.0.14) From a5c446f84a1485c722b6be7ecef8caf21f8c3060 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 4 Oct 2022 23:33:55 +0000 Subject: [PATCH 1175/2165] chore(deps): bump google-protobuf from 3.21.3 to 3.21.7 Bumps [google-protobuf](https://github.com/protocolbuffers/protobuf) from 3.21.3 to 3.21.7. - [Release notes](https://github.com/protocolbuffers/protobuf/releases) - [Changelog](https://github.com/protocolbuffers/protobuf/blob/main/generate_changelog.py) - [Commits](https://github.com/protocolbuffers/protobuf/compare/v3.21.3...v3.21.7) --- updated-dependencies: - dependency-name: google-protobuf dependency-type: indirect ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index e37568f54..9dfdecefa 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -157,7 +157,7 @@ GEM raabro (~> 1.4) globalid (1.0.0) activesupport (>= 5.0) - google-protobuf (3.21.3) + google-protobuf (3.21.7) graphiql-rails (1.8.0) railties sprockets-rails From 636d2a05d8a36f4da4dce0d64bc8e93a37e95a5f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 5 Oct 2022 21:01:56 +0000 Subject: [PATCH 1176/2165] chore(deps): bump sidekiq-scheduler from 4.0.2 to 4.0.3 Bumps [sidekiq-scheduler](https://github.com/moove-it/sidekiq-scheduler) from 4.0.2 to 4.0.3. - [Release notes](https://github.com/moove-it/sidekiq-scheduler/releases) - [Changelog](https://github.com/sidekiq-scheduler/sidekiq-scheduler/blob/master/CHANGELOG.md) - [Commits](https://github.com/moove-it/sidekiq-scheduler/compare/v4.0.2...v4.0.3) --- updated-dependencies: - dependency-name: sidekiq-scheduler dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Gemfile b/Gemfile index 5efc84847..be99d6fd3 100644 --- a/Gemfile +++ b/Gemfile @@ -86,7 +86,7 @@ gem 'rqrcode' # 异步队列 gem 'activejob-status' gem 'sidekiq', '~> 6.5.7' -gem 'sidekiq-scheduler', '~> 4.0.2' +gem 'sidekiq-scheduler', '~> 4.0.3' gem 'sidekiq-failures', '~> 1.0.4' # Assets diff --git a/Gemfile.lock b/Gemfile.lock index e37568f54..7785723a6 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -152,7 +152,7 @@ GEM formatador (1.1.0) friendly_id (5.4.2) activerecord (>= 4.0.0) - fugit (1.5.3) + fugit (1.7.1) et-orbi (~> 1, >= 1.2.7) raabro (~> 1.4) globalid (1.0.0) @@ -438,10 +438,10 @@ GEM redis (>= 4.5.0, < 5) sidekiq-failures (1.0.4) sidekiq (>= 4.0.0) - sidekiq-scheduler (4.0.2) + sidekiq-scheduler (4.0.3) redis (>= 4.2.0) rufus-scheduler (~> 3.2) - sidekiq (>= 4) + sidekiq (>= 4, < 7) tilt (>= 1.4.0) simple_form (5.1.0) actionpack (>= 5.2) @@ -569,7 +569,7 @@ DEPENDENCIES sentry-sidekiq sidekiq (~> 6.5.7) sidekiq-failures (~> 1.0.4) - sidekiq-scheduler (~> 4.0.2) + sidekiq-scheduler (~> 4.0.3) simple_form (~> 5.1) slim-rails (~> 3.5.1) stimulus-rails (~> 1.1.0) From 3b28d49b9671e41ffaa5b583a0b2ccb2f5b937c2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 7 Oct 2022 05:49:49 +0000 Subject: [PATCH 1177/2165] chore(deps): bump sentry-sidekiq from 5.4.2 to 5.5.0 Bumps [sentry-sidekiq](https://github.com/getsentry/sentry-ruby) from 5.4.2 to 5.5.0. - [Release notes](https://github.com/getsentry/sentry-ruby/releases) - [Changelog](https://github.com/getsentry/sentry-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-ruby/compare/5.4.2...5.5.0) --- updated-dependencies: - dependency-name: sentry-sidekiq dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index e37568f54..f37161194 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -152,7 +152,7 @@ GEM formatador (1.1.0) friendly_id (5.4.2) activerecord (>= 4.0.0) - fugit (1.5.3) + fugit (1.7.1) et-orbi (~> 1, >= 1.2.7) raabro (~> 1.4) globalid (1.0.0) @@ -423,13 +423,13 @@ GEM rubyzip (2.3.2) rufus-scheduler (3.8.2) fugit (~> 1.1, >= 1.1.6) - sentry-rails (5.4.2) + sentry-rails (5.5.0) railties (>= 5.0) - sentry-ruby (~> 5.4.2) - sentry-ruby (5.4.2) + sentry-ruby (~> 5.5.0) + sentry-ruby (5.5.0) concurrent-ruby (~> 1.0, >= 1.0.2) - sentry-sidekiq (5.4.2) - sentry-ruby (~> 5.4.2) + sentry-sidekiq (5.5.0) + sentry-ruby (~> 5.5.0) sidekiq (>= 3.0) shellany (0.0.1) sidekiq (6.5.7) @@ -438,10 +438,10 @@ GEM redis (>= 4.5.0, < 5) sidekiq-failures (1.0.4) sidekiq (>= 4.0.0) - sidekiq-scheduler (4.0.2) + sidekiq-scheduler (4.0.3) redis (>= 4.2.0) rufus-scheduler (~> 3.2) - sidekiq (>= 4) + sidekiq (>= 4, < 7) tilt (>= 1.4.0) simple_form (5.1.0) actionpack (>= 5.2) @@ -569,7 +569,7 @@ DEPENDENCIES sentry-sidekiq sidekiq (~> 6.5.7) sidekiq-failures (~> 1.0.4) - sidekiq-scheduler (~> 4.0.2) + sidekiq-scheduler (~> 4.0.3) simple_form (~> 5.1) slim-rails (~> 3.5.1) stimulus-rails (~> 1.1.0) From 1da68c3db48459e98bc27ccc7de41477827ea0b7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Oct 2022 21:01:31 +0000 Subject: [PATCH 1178/2165] chore(deps): bump pghero from 2.8.3 to 3.0.1 Bumps [pghero](https://github.com/ankane/pghero) from 2.8.3 to 3.0.1. - [Release notes](https://github.com/ankane/pghero/releases) - [Changelog](https://github.com/ankane/pghero/blob/master/CHANGELOG.md) - [Commits](https://github.com/ankane/pghero/compare/v2.8.3...v3.0.1) --- updated-dependencies: - dependency-name: pghero dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index be99d6fd3..7e771e001 100644 --- a/Gemfile +++ b/Gemfile @@ -70,7 +70,7 @@ gem 'plist', '~> 3.6.0' ## 系统信息 gem 'sys-filesystem', '~> 1.4.3' gem 'vmstat', '~> 2.3.0' -gem 'pghero', '~> 2.8.3' +gem 'pghero', '~> 3.0.1' ## 异常报错上报 gem 'sentry-ruby' diff --git a/Gemfile.lock b/Gemfile.lock index 7785723a6..7319c8cd7 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -317,8 +317,8 @@ GEM parser (3.1.2.0) ast (~> 2.4.1) pg (1.4.3) - pghero (2.8.3) - activerecord (>= 5) + pghero (3.0.1) + activerecord (>= 6) plist (3.6.0) propshaft (0.6.4) actionpack (>= 7.0.0) @@ -546,7 +546,7 @@ DEPENDENCIES omniauth-rails_csrf_protection (~> 1.0.1) openssl (~> 2.2.1) pg (>= 0.18, < 2.0) - pghero (~> 2.8.3) + pghero (~> 3.0.1) plist (~> 3.6.0) propshaft (= 0.6.4) pry-rails From 11d19bdeb6f94e0cee8b0df8a98f9a9ed3dacfd1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 11 Oct 2022 21:03:00 +0000 Subject: [PATCH 1179/2165] chore(deps): bump pg from 1.4.3 to 1.4.4 Bumps [pg](https://github.com/ged/ruby-pg) from 1.4.3 to 1.4.4. - [Release notes](https://github.com/ged/ruby-pg/releases) - [Changelog](https://github.com/ged/ruby-pg/blob/master/History.rdoc) - [Commits](https://github.com/ged/ruby-pg/compare/v1.4.3...v1.4.4) --- updated-dependencies: - dependency-name: pg dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 7ea101c8b..b6de7a111 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -316,7 +316,7 @@ GEM parallel (1.22.1) parser (3.1.2.0) ast (~> 2.4.1) - pg (1.4.3) + pg (1.4.4) pghero (3.0.1) activerecord (>= 6) plist (3.6.0) From 498f0cef60031594f734b8c8052af5c01da811dd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 12 Oct 2022 21:01:23 +0000 Subject: [PATCH 1180/2165] chore(deps): bump @hotwired/turbo-rails from 7.2.0 to 7.2.2 Bumps [@hotwired/turbo-rails](https://github.com/hotwired/turbo-rails) from 7.2.0 to 7.2.2. - [Release notes](https://github.com/hotwired/turbo-rails/releases) - [Commits](https://github.com/hotwired/turbo-rails/commits) --- updated-dependencies: - dependency-name: "@hotwired/turbo-rails" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index ba6d005c8..a133c1571 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "license": "MIT", "dependencies": { "@hotwired/stimulus": "^3.1.0", - "@hotwired/turbo-rails": "^7.2.0", + "@hotwired/turbo-rails": "^7.2.2", "@rails/actioncable": "^7.0.4", "admin-lte": "3.1.0", "clipboard": "^2.0.11", diff --git a/yarn.lock b/yarn.lock index b99d9a560..0c56ec20f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -22,18 +22,18 @@ resolved "https://registry.yarnpkg.com/@hotwired/stimulus/-/stimulus-3.1.0.tgz#20215251e5afe6e0a3787285181ba1bfc9097df0" integrity sha512-iDMHUhiEJ1xFeicyHcZQQgBzhtk5mPR0QZO3L6wtqzMsJEk2TKECuCQTGKjm+KJTHVY0dKq1dOOAWvODjpd2Mg== -"@hotwired/turbo-rails@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@hotwired/turbo-rails/-/turbo-rails-7.2.0.tgz#2081ed4e626fac9fd61ba5a4d1eeb53e6ea93b03" - integrity sha512-RxJJGINeLa2lyI078LLSbqZDI7RarxTDMVlgKnsLvtFEn8Pa7ySEcDUxHp5YiLXGbLacAIH/dcfD0JfCWe5Dqw== +"@hotwired/turbo-rails@^7.2.2": + version "7.2.2" + resolved "https://registry.yarnpkg.com/@hotwired/turbo-rails/-/turbo-rails-7.2.2.tgz#577d0d2d8253f395e6c922e3afaf6a9483a75487" + integrity sha512-UlHB++XYlNprpfro4YbywUXFC8QuqH59I+xuU26WMu1mE+RbV2EVS7ARlcUlwzl3PFgsKgJ+xxrJ4HW5gZkJdQ== dependencies: - "@hotwired/turbo" "^7.2.0" + "@hotwired/turbo" "^7.2.2" "@rails/actioncable" "^7.0" -"@hotwired/turbo@^7.2.0": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@hotwired/turbo/-/turbo-7.2.0.tgz#4ff90d80fda17e69b04a12bbf0a42f09953504f6" - integrity sha512-CYr6N9NfqsjhmZx1xVQ8zYcDo4hTm7sTUpJydbNgMRyG+YfF/9ADIQQ2TtcBdkl2zi/12a3OTWX0UMzNZnAK9w== +"@hotwired/turbo@^7.2.2": + version "7.2.2" + resolved "https://registry.yarnpkg.com/@hotwired/turbo/-/turbo-7.2.2.tgz#69e1f4be7f468690fa31791099e2a837e88c9518" + integrity sha512-YfTHwnur3tDFS/D5JYstU+09Z3bvCF6euqqXajHAks2lTSIDbLc8gMp8yLomD+cAC337h1wnv0oWduK6+6pUDw== "@lgaitan/pace-progress@^1.0.7": version "1.0.7" From ab654ec5b372c3265786f8970164bd097424bb23 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 12 Oct 2022 21:02:01 +0000 Subject: [PATCH 1181/2165] chore(deps): bump turbo-rails from 1.3.0 to 1.3.1 Bumps [turbo-rails](https://github.com/hotwired/turbo-rails) from 1.3.0 to 1.3.1. - [Release notes](https://github.com/hotwired/turbo-rails/releases) - [Commits](https://github.com/hotwired/turbo-rails/compare/v1.3.0...v1.3.1) --- updated-dependencies: - dependency-name: turbo-rails dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index b6de7a111..e48e54f95 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -479,7 +479,7 @@ GEM faraday (>= 1.10.0, < 3.0) jwt (>= 1.4, < 3) openssl (>= 2.2.1, < 4) - turbo-rails (1.3.0) + turbo-rails (1.3.1) actionpack (>= 6.0.0) activejob (>= 6.0.0) railties (>= 6.0.0) @@ -501,7 +501,7 @@ GEM websocket-driver (0.7.5) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) - zeitwerk (2.6.0) + zeitwerk (2.6.1) PLATFORMS ruby From b4b386f6e3187cc6b6f6c5afed294d058a821f22 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 14 Oct 2022 21:01:27 +0000 Subject: [PATCH 1182/2165] chore(deps): bump puma from 5.6.5 to 6.0.0 Bumps [puma](https://github.com/puma/puma) from 5.6.5 to 6.0.0. - [Release notes](https://github.com/puma/puma/releases) - [Changelog](https://github.com/puma/puma/blob/master/History.md) - [Commits](https://github.com/puma/puma/compare/v5.6.5...v6.0.0) --- updated-dependencies: - dependency-name: puma dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 7e771e001..6146fc0f9 100644 --- a/Gemfile +++ b/Gemfile @@ -4,7 +4,7 @@ source 'https://rubygems.org' git_source(:github) { |repo_name| "https://github.com/#{repo_name}" } -gem 'puma', '~> 5.6.5' +gem 'puma', '~> 6.0.0' gem 'rails', '~> 7.0.4' gem 'rails-i18n', '~> 7.0.5' gem 'rake', '~> 13.0.4' diff --git a/Gemfile.lock b/Gemfile.lock index e48e54f95..2fa83e414 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -334,7 +334,7 @@ GEM interception (>= 0.5) pry (>= 0.12.0) public_suffix (4.0.7) - puma (5.6.5) + puma (6.0.0) nio4r (~> 2.0) pundit (2.2.0) activesupport (>= 3.0.0) @@ -551,7 +551,7 @@ DEPENDENCIES propshaft (= 0.6.4) pry-rails pry-rescue - puma (~> 5.6.5) + puma (~> 6.0.0) pundit (~> 2.2.0) pyu-ruby-sasl (>= 0.0.3.3, < 0.1) rack-cors (~> 1.1.1) From 3bd9cf3794a4e3da3c9d76789a8d18acfe86f5dd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 14 Oct 2022 21:01:50 +0000 Subject: [PATCH 1183/2165] chore(deps): bump esbuild from 0.15.10 to 0.15.11 Bumps [esbuild](https://github.com/evanw/esbuild) from 0.15.10 to 0.15.11. - [Release notes](https://github.com/evanw/esbuild/releases) - [Changelog](https://github.com/evanw/esbuild/blob/master/CHANGELOG.md) - [Commits](https://github.com/evanw/esbuild/compare/v0.15.10...v0.15.11) --- updated-dependencies: - dependency-name: esbuild dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 268 +++++++++++++++++++++++++-------------------------- 2 files changed, 135 insertions(+), 135 deletions(-) diff --git a/package.json b/package.json index a133c1571..9a721d778 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "admin-lte": "3.1.0", "clipboard": "^2.0.11", "compare-versions": "^5.0.1", - "esbuild": "^0.15.10", + "esbuild": "^0.15.11", "sass": "^1.55.0", "ua-parser-js": "^1.0.2" }, diff --git a/yarn.lock b/yarn.lock index 0c56ec20f..12e985358 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,15 +2,15 @@ # yarn lockfile v1 -"@esbuild/android-arm@0.15.10": - version "0.15.10" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.15.10.tgz#a5f9432eb221afc243c321058ef25fe899886892" - integrity sha512-FNONeQPy/ox+5NBkcSbYJxoXj9GWu8gVGJTVmUyoOCKQFDTrHVKgNSzChdNt0I8Aj/iKcsDf2r9BFwv+FSNUXg== +"@esbuild/android-arm@0.15.11": + version "0.15.11" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.15.11.tgz#bdd9c3e098183bdca97075aa4c3e0152ed3e10ee" + integrity sha512-PzMcQLazLBkwDEkrNPi9AbjFt6+3I7HKbiYF2XtWQ7wItrHvEOeO3T8Am434zAozWtVP7lrTue1bEfc2nYWeCA== -"@esbuild/linux-loong64@0.15.10": - version "0.15.10" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.10.tgz#78a42897c2cf8db9fd5f1811f7590393b77774c7" - integrity sha512-w0Ou3Z83LOYEkwaui2M8VwIp+nLi/NA60lBLMvaJ+vXVMcsARYdEzLNE7RSm4+lSg4zq4d7fAVuzk7PNQ5JFgg== +"@esbuild/linux-loong64@0.15.11": + version "0.15.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.11.tgz#2f4f9a1083dcb4fc65233b6f59003c406abf32e5" + integrity sha512-geWp637tUhNmhL3Xgy4Bj703yXB9dqiLJe05lCUfjSFDrQf9C/8pArusyPUbUbPwlC/EAUjBw32sxuIl/11dZw== "@fortawesome/fontawesome-free@^5.15.3": version "5.15.4" @@ -677,133 +677,133 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -esbuild-android-64@0.15.10: - version "0.15.10" - resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.10.tgz#8a59a84acbf2eca96996cadc35642cf055c494f0" - integrity sha512-UI7krF8OYO1N7JYTgLT9ML5j4+45ra3amLZKx7LO3lmLt1Ibn8t3aZbX5Pu4BjWiqDuJ3m/hsvhPhK/5Y/YpnA== - -esbuild-android-arm64@0.15.10: - version "0.15.10" - resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.10.tgz#f453851dc1d8c5409a38cf7613a33852faf4915d" - integrity sha512-EOt55D6xBk5O05AK8brXUbZmoFj4chM8u3riGflLa6ziEoVvNjRdD7Cnp82NHQGfSHgYR06XsPI8/sMuA/cUwg== - -esbuild-darwin-64@0.15.10: - version "0.15.10" - resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.10.tgz#778bd29c8186ff47b176c8af58c08cf0fb8e6b86" - integrity sha512-hbDJugTicqIm+WKZgp208d7FcXcaK8j2c0l+fqSJ3d2AzQAfjEYDRM3Z2oMeqSJ9uFxyj/muSACLdix7oTstRA== - -esbuild-darwin-arm64@0.15.10: - version "0.15.10" - resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.10.tgz#b30bbefb46dc3c5d4708b0435e52f6456578d6df" - integrity sha512-M1t5+Kj4IgSbYmunf2BB6EKLkWUq+XlqaFRiGOk8bmBapu9bCDrxjf4kUnWn59Dka3I27EiuHBKd1rSO4osLFQ== - -esbuild-freebsd-64@0.15.10: - version "0.15.10" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.10.tgz#ab301c5f6ded5110dbdd611140bef1a7c2e99236" - integrity sha512-KMBFMa7C8oc97nqDdoZwtDBX7gfpolkk6Bcmj6YFMrtCMVgoU/x2DI1p74DmYl7CSS6Ppa3xgemrLrr5IjIn0w== - -esbuild-freebsd-arm64@0.15.10: - version "0.15.10" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.10.tgz#a5b09b867a6ff49110f52343b6f12265db63d43f" - integrity sha512-m2KNbuCX13yQqLlbSojFMHpewbn8wW5uDS6DxRpmaZKzyq8Dbsku6hHvh2U+BcLwWY4mpgXzFUoENEf7IcioGg== - -esbuild-linux-32@0.15.10: - version "0.15.10" - resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.10.tgz#5282fe9915641caf9c8070e4ba2c3e16d358f837" - integrity sha512-guXrwSYFAvNkuQ39FNeV4sNkNms1bLlA5vF1H0cazZBOLdLFIny6BhT+TUbK/hdByMQhtWQ5jI9VAmPKbVPu1w== - -esbuild-linux-64@0.15.10: - version "0.15.10" - resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.10.tgz#f3726e85a00149580cb19f8abfabcbb96f5d52bb" - integrity sha512-jd8XfaSJeucMpD63YNMO1JCrdJhckHWcMv6O233bL4l6ogQKQOxBYSRP/XLWP+6kVTu0obXovuckJDcA0DKtQA== - -esbuild-linux-arm64@0.15.10: - version "0.15.10" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.10.tgz#2f0056e9d5286edb0185b56655caa8c574d8dbe7" - integrity sha512-GByBi4fgkvZFTHFDYNftu1DQ1GzR23jws0oWyCfhnI7eMOe+wgwWrc78dbNk709Ivdr/evefm2PJiUBMiusS1A== - -esbuild-linux-arm@0.15.10: - version "0.15.10" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.10.tgz#40a9270da3c8ffa32cf72e24a79883e323dff08d" - integrity sha512-6N8vThLL/Lysy9y4Ex8XoLQAlbZKUyExCWyayGi2KgTBelKpPgj6RZnUaKri0dHNPGgReJriKVU6+KDGQwn10A== - -esbuild-linux-mips64le@0.15.10: - version "0.15.10" - resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.10.tgz#90ce1c4ee0202edb4ac69807dea77f7e5804abc4" - integrity sha512-BxP+LbaGVGIdQNJUNF7qpYjEGWb0YyHVSKqYKrn+pTwH/SiHUxFyJYSP3pqkku61olQiSBnSmWZ+YUpj78Tw7Q== - -esbuild-linux-ppc64le@0.15.10: - version "0.15.10" - resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.10.tgz#782837ae7bd5b279178106c9dd801755a21fabdf" - integrity sha512-LoSQCd6498PmninNgqd/BR7z3Bsk/mabImBWuQ4wQgmQEeanzWd5BQU2aNi9mBURCLgyheuZS6Xhrw5luw3OkQ== - -esbuild-linux-riscv64@0.15.10: - version "0.15.10" - resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.10.tgz#d7420d806ece5174f24f4634303146f915ab4207" - integrity sha512-Lrl9Cr2YROvPV4wmZ1/g48httE8z/5SCiXIyebiB5N8VT7pX3t6meI7TQVHw/wQpqP/AF4SksDuFImPTM7Z32Q== - -esbuild-linux-s390x@0.15.10: - version "0.15.10" - resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.10.tgz#21fdf0cb3494a7fb520a71934e4dffce67fe47be" - integrity sha512-ReP+6q3eLVVP2lpRrvl5EodKX7EZ1bS1/z5j6hsluAlZP5aHhk6ghT6Cq3IANvvDdscMMCB4QEbI+AjtvoOFpA== - -esbuild-netbsd-64@0.15.10: - version "0.15.10" - resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.10.tgz#6c06b3107e3df53de381e6299184d4597db0440f" - integrity sha512-iGDYtJCMCqldMskQ4eIV+QSS/CuT7xyy9i2/FjpKvxAuCzrESZXiA1L64YNj6/afuzfBe9i8m/uDkFHy257hTw== - -esbuild-openbsd-64@0.15.10: - version "0.15.10" - resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.10.tgz#4daef5f5d8e74bbda53b65160029445d582570cf" - integrity sha512-ftMMIwHWrnrYnvuJQRJs/Smlcb28F9ICGde/P3FUTCgDDM0N7WA0o9uOR38f5Xe2/OhNCgkjNeb7QeaE3cyWkQ== - -esbuild-sunos-64@0.15.10: - version "0.15.10" - resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.10.tgz#5fe7bef267a02f322fd249a8214d0274937388a7" - integrity sha512-mf7hBL9Uo2gcy2r3rUFMjVpTaGpFJJE5QTDDqUFf1632FxteYANffDZmKbqX0PfeQ2XjUDE604IcE7OJeoHiyg== - -esbuild-windows-32@0.15.10: - version "0.15.10" - resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.10.tgz#48e3dde25ab0135579a288b30ab6ddef6d1f0b28" - integrity sha512-ttFVo+Cg8b5+qHmZHbEc8Vl17kCleHhLzgT8X04y8zudEApo0PxPg9Mz8Z2cKH1bCYlve1XL8LkyXGFjtUYeGg== - -esbuild-windows-64@0.15.10: - version "0.15.10" - resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.10.tgz#387a9515bef3fee502d277a5d0a2db49a4ecda05" - integrity sha512-2H0gdsyHi5x+8lbng3hLbxDWR7mKHWh5BXZGKVG830KUmXOOWFE2YKJ4tHRkejRduOGDrBvHBriYsGtmTv3ntA== - -esbuild-windows-arm64@0.15.10: - version "0.15.10" - resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.10.tgz#5a6fcf2fa49e895949bf5495cf088ab1b43ae879" - integrity sha512-S+th4F+F8VLsHLR0zrUcG+Et4hx0RKgK1eyHc08kztmLOES8BWwMiaGdoW9hiXuzznXQ0I/Fg904MNbr11Nktw== - -esbuild@^0.15.10: - version "0.15.10" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.10.tgz#85c2f8446e9b1fe04fae68daceacba033eedbd42" - integrity sha512-N7wBhfJ/E5fzn/SpNgX+oW2RLRjwaL8Y0ezqNqhjD6w0H2p0rDuEz2FKZqpqLnO8DCaWumKe8dsC/ljvVSSxng== +esbuild-android-64@0.15.11: + version "0.15.11" + resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.11.tgz#50402129c3e85bb06434e212374c5f693e4c5f01" + integrity sha512-rrwoXEiuI1kaw4k475NJpexs8GfJqQUKcD08VR8sKHmuW9RUuTR2VxcupVvHdiGh9ihxL9m3lpqB1kju92Ialw== + +esbuild-android-arm64@0.15.11: + version "0.15.11" + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.11.tgz#49bee35218ea2ccf1a0c5f187af77c1c0a5dee71" + integrity sha512-/hDubOg7BHOhUUsT8KUIU7GfZm5bihqssvqK5PfO4apag7YuObZRZSzViyEKcFn2tPeHx7RKbSBXvAopSHDZJQ== + +esbuild-darwin-64@0.15.11: + version "0.15.11" + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.11.tgz#89a90c8cf6f0029ac4169bfedd012a0412c1575f" + integrity sha512-1DqHD0ms3AhiwkKnjRUzmiW7JnaJJr5FKrPiR7xuyMwnjDqvNWDdMq4rKSD9OC0piFNK6n0LghsglNMe2MwJtA== + +esbuild-darwin-arm64@0.15.11: + version "0.15.11" + resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.11.tgz#556f4385c6de806cc81132dd7b8af00fe9d292df" + integrity sha512-OMzhxSbS0lwwrW40HHjRCeVIJTURdXFA8c3GU30MlHKuPCcvWNUIKVucVBtNpJySXmbkQMDJdJNrXzNDyvoqvQ== + +esbuild-freebsd-64@0.15.11: + version "0.15.11" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.11.tgz#fd86fd1b3b65366048f35b996d9cdf3547384eee" + integrity sha512-8dKP26r0/Qyez8nTCwpq60QbuYKOeBygdgOAWGCRalunyeqWRoSZj9TQjPDnTTI9joxd3QYw3UhVZTKxO9QdRg== + +esbuild-freebsd-arm64@0.15.11: + version "0.15.11" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.11.tgz#d346bcacfe9779ebc1a11edac1bdedeff6dda3b1" + integrity sha512-aSGiODiukLGGnSg/O9+cGO2QxEacrdCtCawehkWYTt5VX1ni2b9KoxpHCT9h9Y6wGqNHmXFnB47RRJ8BIqZgmQ== + +esbuild-linux-32@0.15.11: + version "0.15.11" + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.11.tgz#64b50e774bf75af7dcc6a73ad509f2eb0ac4487b" + integrity sha512-lsrAfdyJBGx+6aHIQmgqUonEzKYeBnyfJPkT6N2dOf1RoXYYV1BkWB6G02tjsrz1d5wZzaTc3cF+TKmuTo/ZwA== + +esbuild-linux-64@0.15.11: + version "0.15.11" + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.11.tgz#fba3a78b95769772863f8f6dc316abca55cf8416" + integrity sha512-Y2Rh+PcyVhQqXKBTacPCltINN3uIw2xC+dsvLANJ1SpK5NJUtxv8+rqWpjmBgaNWKQT1/uGpMmA9olALy9PLVA== + +esbuild-linux-arm64@0.15.11: + version "0.15.11" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.11.tgz#c0cb31980eee066bfd39a4593660a0ecebe926cb" + integrity sha512-uhcXiTwTmD4OpxJu3xC5TzAAw6Wzf9O1XGWL448EE9bqGjgV1j+oK3lIHAfsHnuIn8K4nDW8yjX0Sv5S++oRuw== + +esbuild-linux-arm@0.15.11: + version "0.15.11" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.11.tgz#7824d20099977aa671016c7de7a5038c9870010f" + integrity sha512-TJllTVk5aSyqPFvvcHTvf6Wu1ZKhWpJ/qNmZO8LL/XeB+LXCclm7HQHNEIz6MT7IX8PmlC1BZYrOiw2sXSB95A== + +esbuild-linux-mips64le@0.15.11: + version "0.15.11" + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.11.tgz#10627331c90164e553429ed25e025184bba485b6" + integrity sha512-WD61y/R1M4BLe4gxXRypoQ0Ci+Vjf714QYzcPNkiYv5I8K8WDz2ZR8Bm6cqKxd6rD+e/rZgPDbhQ9PCf7TMHmA== + +esbuild-linux-ppc64le@0.15.11: + version "0.15.11" + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.11.tgz#be42679a36a5246b893fc8b898135ebacb5a0a14" + integrity sha512-JVleZS9oPVLTlBhPTWgOwxFWU/wMUdlBwTbGA4GF8c38sLbS13cupj+C8bLq929jU7EMWry4SaL+tKGIaTlqKg== + +esbuild-linux-riscv64@0.15.11: + version "0.15.11" + resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.11.tgz#3ac2f328e3db73cbff833ada94314d8e79503e54" + integrity sha512-9aLIalZ2HFHIOZpmVU11sEAS9F8TnHw49daEjcgMpBXHFF57VuT9f9/9LKJhw781Gda0P9jDkuCWJ0tFbErvJw== + +esbuild-linux-s390x@0.15.11: + version "0.15.11" + resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.11.tgz#e774e0df061b6847d86783bf3c8c4300a72e03ad" + integrity sha512-sZHtiXXOKsLI3XGBGoYO4qKBzJlb8xNsWmvFiwFMHFzA4AXgDP1KDp7Dawe9C2pavTRBDvl+Ok4n/DHQ59oaTg== + +esbuild-netbsd-64@0.15.11: + version "0.15.11" + resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.11.tgz#55e265fa4489e3f396b16c81f6f5a11d6ca2a9a4" + integrity sha512-hUC9yN06K9sg7ju4Vgu9ChAPdsEgtcrcLfyNT5IKwKyfpLvKUwCMZSdF+gRD3WpyZelgTQfJ+pDx5XFbXTlB0A== + +esbuild-openbsd-64@0.15.11: + version "0.15.11" + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.11.tgz#bc04103ccfd8c2f2241e1add0b51a095955b73c4" + integrity sha512-0bBo9SQR4t66Wd91LGMAqmWorzO0TTzVjYiifwoFtel8luFeXuPThQnEm5ztN4g0fnvcp7AnUPPzS/Depf17wQ== + +esbuild-sunos-64@0.15.11: + version "0.15.11" + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.11.tgz#ccd580305d31fde07b5c386da79c942aaf069013" + integrity sha512-EuBdTGlsMTjEl1sQnBX2jfygy7iR6CKfvOzi+gEOfhDqbHXsmY1dcpbVtcwHAg9/2yUZSfMJHMAgf1z8M4yyyw== + +esbuild-windows-32@0.15.11: + version "0.15.11" + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.11.tgz#40fe1d48f9b20a76f6db5109aaaf1511aed58c71" + integrity sha512-O0/Wo1Wk6dc0rZSxkvGpmTNIycEznHmkObTFz2VHBhjPsO4ZpCgfGxNkCpz4AdAIeMczpTXt/8d5vdJNKEGC+Q== + +esbuild-windows-64@0.15.11: + version "0.15.11" + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.11.tgz#80c58b1ef2ff030c78e3a06e7a922776cc4cb687" + integrity sha512-x977Q4HhNjnHx00b4XLAnTtj5vfbdEvkxaQwC1Zh5AN8g5EX+izgZ6e5QgqJgpzyRNJqh4hkgIJF1pyy1be0mQ== + +esbuild-windows-arm64@0.15.11: + version "0.15.11" + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.11.tgz#018624023b5c3f0cca334cc99f5ef7134d396333" + integrity sha512-VwUHFACuBahrvntdcMKZteUZ9HaYrBRODoKe4tIWxguQRvvYoYb7iu5LrcRS/FQx8KPZNaa72zuqwVtHeXsITw== + +esbuild@^0.15.11: + version "0.15.11" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.11.tgz#524d48612a9aa7edc1753c83459cb6fcae0cb66e" + integrity sha512-OgHGuhlfZ//mToxjte1D5iiiQgWfJ2GByVMwEC/IuoXsBGkuyK1+KrjYu0laSpnN/L1UmLUCv0s25vObdc1bVg== optionalDependencies: - "@esbuild/android-arm" "0.15.10" - "@esbuild/linux-loong64" "0.15.10" - esbuild-android-64 "0.15.10" - esbuild-android-arm64 "0.15.10" - esbuild-darwin-64 "0.15.10" - esbuild-darwin-arm64 "0.15.10" - esbuild-freebsd-64 "0.15.10" - esbuild-freebsd-arm64 "0.15.10" - esbuild-linux-32 "0.15.10" - esbuild-linux-64 "0.15.10" - esbuild-linux-arm "0.15.10" - esbuild-linux-arm64 "0.15.10" - esbuild-linux-mips64le "0.15.10" - esbuild-linux-ppc64le "0.15.10" - esbuild-linux-riscv64 "0.15.10" - esbuild-linux-s390x "0.15.10" - esbuild-netbsd-64 "0.15.10" - esbuild-openbsd-64 "0.15.10" - esbuild-sunos-64 "0.15.10" - esbuild-windows-32 "0.15.10" - esbuild-windows-64 "0.15.10" - esbuild-windows-arm64 "0.15.10" + "@esbuild/android-arm" "0.15.11" + "@esbuild/linux-loong64" "0.15.11" + esbuild-android-64 "0.15.11" + esbuild-android-arm64 "0.15.11" + esbuild-darwin-64 "0.15.11" + esbuild-darwin-arm64 "0.15.11" + esbuild-freebsd-64 "0.15.11" + esbuild-freebsd-arm64 "0.15.11" + esbuild-linux-32 "0.15.11" + esbuild-linux-64 "0.15.11" + esbuild-linux-arm "0.15.11" + esbuild-linux-arm64 "0.15.11" + esbuild-linux-mips64le "0.15.11" + esbuild-linux-ppc64le "0.15.11" + esbuild-linux-riscv64 "0.15.11" + esbuild-linux-s390x "0.15.11" + esbuild-netbsd-64 "0.15.11" + esbuild-openbsd-64 "0.15.11" + esbuild-sunos-64 "0.15.11" + esbuild-windows-32 "0.15.11" + esbuild-windows-64 "0.15.11" + esbuild-windows-arm64 "0.15.11" ev-emitter@^1.0.0: version "1.1.1" From 6f4e27cf105700f2096d50d350f8f77b65bb4422 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 17 Oct 2022 21:01:24 +0000 Subject: [PATCH 1184/2165] chore(deps): bump ua-parser-js from 1.0.2 to 1.0.32 Bumps [ua-parser-js](https://github.com/faisalman/ua-parser-js) from 1.0.2 to 1.0.32. - [Release notes](https://github.com/faisalman/ua-parser-js/releases) - [Commits](https://github.com/faisalman/ua-parser-js/compare/1.0.2...1.0.32) --- updated-dependencies: - dependency-name: ua-parser-js dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 9a721d778..4ded50ba4 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "compare-versions": "^5.0.1", "esbuild": "^0.15.11", "sass": "^1.55.0", - "ua-parser-js": "^1.0.2" + "ua-parser-js": "^1.0.32" }, "scripts": { "build": "esbuild app/javascript/*.* --bundle --sourcemap --outdir=app/assets/builds --public-path=assets", diff --git a/yarn.lock b/yarn.lock index 12e985358..83382e5ee 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1558,10 +1558,10 @@ tslib@^2.4.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== -ua-parser-js@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-1.0.2.tgz#e2976c34dbfb30b15d2c300b2a53eac87c57a775" - integrity sha512-00y/AXhx0/SsnI51fTc0rLRmafiGOM4/O+ny10Ps7f+j/b8p/ZY11ytMgznXkOVo4GQ+KwQG5UQLkLGirsACRg== +ua-parser-js@^1.0.32: + version "1.0.32" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-1.0.32.tgz#786bf17df97de159d5b1c9d5e8e9e89806f8a030" + integrity sha512-dXVsz3M4j+5tTiovFVyVqssXBu5HM47//YSOeZ9fQkdDKkfzv2v3PP1jmH6FUyPW+yCSn7aBVK1fGGKNhowdDA== unbox-primitive@^1.0.2: version "1.0.2" From 3b90b7f5778447f71a5cc43cdadeaaa7f6be3e93 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 19 Oct 2022 21:01:55 +0000 Subject: [PATCH 1185/2165] chore(deps): bump esbuild from 0.15.11 to 0.15.12 Bumps [esbuild](https://github.com/evanw/esbuild) from 0.15.11 to 0.15.12. - [Release notes](https://github.com/evanw/esbuild/releases) - [Changelog](https://github.com/evanw/esbuild/blob/master/CHANGELOG.md) - [Commits](https://github.com/evanw/esbuild/compare/v0.15.11...v0.15.12) --- updated-dependencies: - dependency-name: esbuild dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 268 +++++++++++++++++++++++++-------------------------- 2 files changed, 135 insertions(+), 135 deletions(-) diff --git a/package.json b/package.json index 4ded50ba4..2fb5205b3 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "admin-lte": "3.1.0", "clipboard": "^2.0.11", "compare-versions": "^5.0.1", - "esbuild": "^0.15.11", + "esbuild": "^0.15.12", "sass": "^1.55.0", "ua-parser-js": "^1.0.32" }, diff --git a/yarn.lock b/yarn.lock index 83382e5ee..283c79a30 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,15 +2,15 @@ # yarn lockfile v1 -"@esbuild/android-arm@0.15.11": - version "0.15.11" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.15.11.tgz#bdd9c3e098183bdca97075aa4c3e0152ed3e10ee" - integrity sha512-PzMcQLazLBkwDEkrNPi9AbjFt6+3I7HKbiYF2XtWQ7wItrHvEOeO3T8Am434zAozWtVP7lrTue1bEfc2nYWeCA== +"@esbuild/android-arm@0.15.12": + version "0.15.12" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.15.12.tgz#e548b10a5e55b9e10537a049ebf0bc72c453b769" + integrity sha512-IC7TqIqiyE0MmvAhWkl/8AEzpOtbhRNDo7aph47We1NbE5w2bt/Q+giAhe0YYeVpYnIhGMcuZY92qDK6dQauvA== -"@esbuild/linux-loong64@0.15.11": - version "0.15.11" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.11.tgz#2f4f9a1083dcb4fc65233b6f59003c406abf32e5" - integrity sha512-geWp637tUhNmhL3Xgy4Bj703yXB9dqiLJe05lCUfjSFDrQf9C/8pArusyPUbUbPwlC/EAUjBw32sxuIl/11dZw== +"@esbuild/linux-loong64@0.15.12": + version "0.15.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.12.tgz#475b33a2631a3d8ca8aa95ee127f9a61d95bf9c1" + integrity sha512-tZEowDjvU7O7I04GYvWQOS4yyP9E/7YlsB0jjw1Ycukgr2ycEzKyIk5tms5WnLBymaewc6VmRKnn5IJWgK4eFw== "@fortawesome/fontawesome-free@^5.15.3": version "5.15.4" @@ -677,133 +677,133 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -esbuild-android-64@0.15.11: - version "0.15.11" - resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.11.tgz#50402129c3e85bb06434e212374c5f693e4c5f01" - integrity sha512-rrwoXEiuI1kaw4k475NJpexs8GfJqQUKcD08VR8sKHmuW9RUuTR2VxcupVvHdiGh9ihxL9m3lpqB1kju92Ialw== - -esbuild-android-arm64@0.15.11: - version "0.15.11" - resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.11.tgz#49bee35218ea2ccf1a0c5f187af77c1c0a5dee71" - integrity sha512-/hDubOg7BHOhUUsT8KUIU7GfZm5bihqssvqK5PfO4apag7YuObZRZSzViyEKcFn2tPeHx7RKbSBXvAopSHDZJQ== - -esbuild-darwin-64@0.15.11: - version "0.15.11" - resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.11.tgz#89a90c8cf6f0029ac4169bfedd012a0412c1575f" - integrity sha512-1DqHD0ms3AhiwkKnjRUzmiW7JnaJJr5FKrPiR7xuyMwnjDqvNWDdMq4rKSD9OC0piFNK6n0LghsglNMe2MwJtA== - -esbuild-darwin-arm64@0.15.11: - version "0.15.11" - resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.11.tgz#556f4385c6de806cc81132dd7b8af00fe9d292df" - integrity sha512-OMzhxSbS0lwwrW40HHjRCeVIJTURdXFA8c3GU30MlHKuPCcvWNUIKVucVBtNpJySXmbkQMDJdJNrXzNDyvoqvQ== - -esbuild-freebsd-64@0.15.11: - version "0.15.11" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.11.tgz#fd86fd1b3b65366048f35b996d9cdf3547384eee" - integrity sha512-8dKP26r0/Qyez8nTCwpq60QbuYKOeBygdgOAWGCRalunyeqWRoSZj9TQjPDnTTI9joxd3QYw3UhVZTKxO9QdRg== - -esbuild-freebsd-arm64@0.15.11: - version "0.15.11" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.11.tgz#d346bcacfe9779ebc1a11edac1bdedeff6dda3b1" - integrity sha512-aSGiODiukLGGnSg/O9+cGO2QxEacrdCtCawehkWYTt5VX1ni2b9KoxpHCT9h9Y6wGqNHmXFnB47RRJ8BIqZgmQ== - -esbuild-linux-32@0.15.11: - version "0.15.11" - resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.11.tgz#64b50e774bf75af7dcc6a73ad509f2eb0ac4487b" - integrity sha512-lsrAfdyJBGx+6aHIQmgqUonEzKYeBnyfJPkT6N2dOf1RoXYYV1BkWB6G02tjsrz1d5wZzaTc3cF+TKmuTo/ZwA== - -esbuild-linux-64@0.15.11: - version "0.15.11" - resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.11.tgz#fba3a78b95769772863f8f6dc316abca55cf8416" - integrity sha512-Y2Rh+PcyVhQqXKBTacPCltINN3uIw2xC+dsvLANJ1SpK5NJUtxv8+rqWpjmBgaNWKQT1/uGpMmA9olALy9PLVA== - -esbuild-linux-arm64@0.15.11: - version "0.15.11" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.11.tgz#c0cb31980eee066bfd39a4593660a0ecebe926cb" - integrity sha512-uhcXiTwTmD4OpxJu3xC5TzAAw6Wzf9O1XGWL448EE9bqGjgV1j+oK3lIHAfsHnuIn8K4nDW8yjX0Sv5S++oRuw== - -esbuild-linux-arm@0.15.11: - version "0.15.11" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.11.tgz#7824d20099977aa671016c7de7a5038c9870010f" - integrity sha512-TJllTVk5aSyqPFvvcHTvf6Wu1ZKhWpJ/qNmZO8LL/XeB+LXCclm7HQHNEIz6MT7IX8PmlC1BZYrOiw2sXSB95A== - -esbuild-linux-mips64le@0.15.11: - version "0.15.11" - resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.11.tgz#10627331c90164e553429ed25e025184bba485b6" - integrity sha512-WD61y/R1M4BLe4gxXRypoQ0Ci+Vjf714QYzcPNkiYv5I8K8WDz2ZR8Bm6cqKxd6rD+e/rZgPDbhQ9PCf7TMHmA== - -esbuild-linux-ppc64le@0.15.11: - version "0.15.11" - resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.11.tgz#be42679a36a5246b893fc8b898135ebacb5a0a14" - integrity sha512-JVleZS9oPVLTlBhPTWgOwxFWU/wMUdlBwTbGA4GF8c38sLbS13cupj+C8bLq929jU7EMWry4SaL+tKGIaTlqKg== - -esbuild-linux-riscv64@0.15.11: - version "0.15.11" - resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.11.tgz#3ac2f328e3db73cbff833ada94314d8e79503e54" - integrity sha512-9aLIalZ2HFHIOZpmVU11sEAS9F8TnHw49daEjcgMpBXHFF57VuT9f9/9LKJhw781Gda0P9jDkuCWJ0tFbErvJw== - -esbuild-linux-s390x@0.15.11: - version "0.15.11" - resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.11.tgz#e774e0df061b6847d86783bf3c8c4300a72e03ad" - integrity sha512-sZHtiXXOKsLI3XGBGoYO4qKBzJlb8xNsWmvFiwFMHFzA4AXgDP1KDp7Dawe9C2pavTRBDvl+Ok4n/DHQ59oaTg== - -esbuild-netbsd-64@0.15.11: - version "0.15.11" - resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.11.tgz#55e265fa4489e3f396b16c81f6f5a11d6ca2a9a4" - integrity sha512-hUC9yN06K9sg7ju4Vgu9ChAPdsEgtcrcLfyNT5IKwKyfpLvKUwCMZSdF+gRD3WpyZelgTQfJ+pDx5XFbXTlB0A== - -esbuild-openbsd-64@0.15.11: - version "0.15.11" - resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.11.tgz#bc04103ccfd8c2f2241e1add0b51a095955b73c4" - integrity sha512-0bBo9SQR4t66Wd91LGMAqmWorzO0TTzVjYiifwoFtel8luFeXuPThQnEm5ztN4g0fnvcp7AnUPPzS/Depf17wQ== - -esbuild-sunos-64@0.15.11: - version "0.15.11" - resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.11.tgz#ccd580305d31fde07b5c386da79c942aaf069013" - integrity sha512-EuBdTGlsMTjEl1sQnBX2jfygy7iR6CKfvOzi+gEOfhDqbHXsmY1dcpbVtcwHAg9/2yUZSfMJHMAgf1z8M4yyyw== - -esbuild-windows-32@0.15.11: - version "0.15.11" - resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.11.tgz#40fe1d48f9b20a76f6db5109aaaf1511aed58c71" - integrity sha512-O0/Wo1Wk6dc0rZSxkvGpmTNIycEznHmkObTFz2VHBhjPsO4ZpCgfGxNkCpz4AdAIeMczpTXt/8d5vdJNKEGC+Q== - -esbuild-windows-64@0.15.11: - version "0.15.11" - resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.11.tgz#80c58b1ef2ff030c78e3a06e7a922776cc4cb687" - integrity sha512-x977Q4HhNjnHx00b4XLAnTtj5vfbdEvkxaQwC1Zh5AN8g5EX+izgZ6e5QgqJgpzyRNJqh4hkgIJF1pyy1be0mQ== - -esbuild-windows-arm64@0.15.11: - version "0.15.11" - resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.11.tgz#018624023b5c3f0cca334cc99f5ef7134d396333" - integrity sha512-VwUHFACuBahrvntdcMKZteUZ9HaYrBRODoKe4tIWxguQRvvYoYb7iu5LrcRS/FQx8KPZNaa72zuqwVtHeXsITw== - -esbuild@^0.15.11: - version "0.15.11" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.11.tgz#524d48612a9aa7edc1753c83459cb6fcae0cb66e" - integrity sha512-OgHGuhlfZ//mToxjte1D5iiiQgWfJ2GByVMwEC/IuoXsBGkuyK1+KrjYu0laSpnN/L1UmLUCv0s25vObdc1bVg== +esbuild-android-64@0.15.12: + version "0.15.12" + resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.12.tgz#5e8151d5f0a748c71a7fbea8cee844ccf008e6fc" + integrity sha512-MJKXwvPY9g0rGps0+U65HlTsM1wUs9lbjt5CU19RESqycGFDRijMDQsh68MtbzkqWSRdEtiKS1mtPzKneaAI0Q== + +esbuild-android-arm64@0.15.12: + version "0.15.12" + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.12.tgz#5ee72a6baa444bc96ffcb472a3ba4aba2cc80666" + integrity sha512-Hc9SEcZbIMhhLcvhr1DH+lrrec9SFTiRzfJ7EGSBZiiw994gfkVV6vG0sLWqQQ6DD7V4+OggB+Hn0IRUdDUqvA== + +esbuild-darwin-64@0.15.12: + version "0.15.12" + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.12.tgz#70047007e093fa1b3ba7ef86f9b3fa63db51fe25" + integrity sha512-qkmqrTVYPFiePt5qFjP8w/S+GIUMbt6k8qmiPraECUWfPptaPJUGkCKrWEfYFRWB7bY23FV95rhvPyh/KARP8Q== + +esbuild-darwin-arm64@0.15.12: + version "0.15.12" + resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.12.tgz#41c951f23d9a70539bcca552bae6e5196696ae04" + integrity sha512-z4zPX02tQ41kcXMyN3c/GfZpIjKoI/BzHrdKUwhC/Ki5BAhWv59A9M8H+iqaRbwpzYrYidTybBwiZAIWCLJAkw== + +esbuild-freebsd-64@0.15.12: + version "0.15.12" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.12.tgz#a761b5afd12bbedb7d56c612e9cfa4d2711f33f0" + integrity sha512-XFL7gKMCKXLDiAiBjhLG0XECliXaRLTZh6hsyzqUqPUf/PY4C6EJDTKIeqqPKXaVJ8+fzNek88285krSz1QECw== + +esbuild-freebsd-arm64@0.15.12: + version "0.15.12" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.12.tgz#6b0839d4d58deabc6cbd96276eb8cbf94f7f335e" + integrity sha512-jwEIu5UCUk6TjiG1X+KQnCGISI+ILnXzIzt9yDVrhjug2fkYzlLbl0K43q96Q3KB66v6N1UFF0r5Ks4Xo7i72g== + +esbuild-linux-32@0.15.12: + version "0.15.12" + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.12.tgz#bd50bfe22514d434d97d5150977496e2631345b4" + integrity sha512-uSQuSEyF1kVzGzuIr4XM+v7TPKxHjBnLcwv2yPyCz8riV8VUCnO/C4BF3w5dHiVpCd5Z1cebBtZJNlC4anWpwA== + +esbuild-linux-64@0.15.12: + version "0.15.12" + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.12.tgz#074bb2b194bf658245f8490f29c01ffcdfa8c931" + integrity sha512-QcgCKb7zfJxqT9o5z9ZUeGH1k8N6iX1Y7VNsEi5F9+HzN1OIx7ESxtQXDN9jbeUSPiRH1n9cw6gFT3H4qbdvcA== + +esbuild-linux-arm64@0.15.12: + version "0.15.12" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.12.tgz#3bf789c4396dc032875a122988efd6f3733f28f5" + integrity sha512-HtNq5xm8fUpZKwWKS2/YGwSfTF+339L4aIA8yphNKYJckd5hVdhfdl6GM2P3HwLSCORS++++7++//ApEwXEuAQ== + +esbuild-linux-arm@0.15.12: + version "0.15.12" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.12.tgz#b91b5a8d470053f6c2c9c8a5e67ec10a71fe4a67" + integrity sha512-Wf7T0aNylGcLu7hBnzMvsTfEXdEdJY/hY3u36Vla21aY66xR0MS5I1Hw8nVquXjTN0A6fk/vnr32tkC/C2lb0A== + +esbuild-linux-mips64le@0.15.12: + version "0.15.12" + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.12.tgz#2fb54099ada3c950a7536dfcba46172c61e580e2" + integrity sha512-Qol3+AvivngUZkTVFgLpb0H6DT+N5/zM3V1YgTkryPYFeUvuT5JFNDR3ZiS6LxhyF8EE+fiNtzwlPqMDqVcc6A== + +esbuild-linux-ppc64le@0.15.12: + version "0.15.12" + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.12.tgz#9e3b8c09825fb27886249dfb3142a750df29a1b7" + integrity sha512-4D8qUCo+CFKaR0cGXtGyVsOI7w7k93Qxb3KFXWr75An0DHamYzq8lt7TNZKoOq/Gh8c40/aKaxvcZnTgQ0TJNg== + +esbuild-linux-riscv64@0.15.12: + version "0.15.12" + resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.12.tgz#923d0f5b6e12ee0d1fe116b08e4ae4478fe40693" + integrity sha512-G9w6NcuuCI6TUUxe6ka0enjZHDnSVK8bO+1qDhMOCtl7Tr78CcZilJj8SGLN00zO5iIlwNRZKHjdMpfFgNn1VA== + +esbuild-linux-s390x@0.15.12: + version "0.15.12" + resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.12.tgz#3b1620220482b96266a0c6d9d471d451a1eab86f" + integrity sha512-Lt6BDnuXbXeqSlVuuUM5z18GkJAZf3ERskGZbAWjrQoi9xbEIsj/hEzVnSAFLtkfLuy2DE4RwTcX02tZFunXww== + +esbuild-netbsd-64@0.15.12: + version "0.15.12" + resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.12.tgz#276730f80da646859b1af5a740e7802d8cd73e42" + integrity sha512-jlUxCiHO1dsqoURZDQts+HK100o0hXfi4t54MNRMCAqKGAV33JCVvMplLAa2FwviSojT/5ZG5HUfG3gstwAG8w== + +esbuild-openbsd-64@0.15.12: + version "0.15.12" + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.12.tgz#bd0eea1dd2ca0722ed489d88c26714034429f8ae" + integrity sha512-1o1uAfRTMIWNOmpf8v7iudND0L6zRBYSH45sofCZywrcf7NcZA+c7aFsS1YryU+yN7aRppTqdUK1PgbZVaB1Dw== + +esbuild-sunos-64@0.15.12: + version "0.15.12" + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.12.tgz#5e56bf9eef3b2d92360d6d29dcde7722acbecc9e" + integrity sha512-nkl251DpoWoBO9Eq9aFdoIt2yYmp4I3kvQjba3jFKlMXuqQ9A4q+JaqdkCouG3DHgAGnzshzaGu6xofGcXyPXg== + +esbuild-windows-32@0.15.12: + version "0.15.12" + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.12.tgz#a4f1a301c1a2fa7701fcd4b91ef9d2620cf293d0" + integrity sha512-WlGeBZHgPC00O08luIp5B2SP4cNCp/PcS+3Pcg31kdcJPopHxLkdCXtadLU9J82LCfw4TVls21A6lilQ9mzHrw== + +esbuild-windows-64@0.15.12: + version "0.15.12" + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.12.tgz#bc2b467541744d653be4fe64eaa9b0dbbf8e07f6" + integrity sha512-VActO3WnWZSN//xjSfbiGOSyC+wkZtI8I4KlgrTo5oHJM6z3MZZBCuFaZHd8hzf/W9KPhF0lY8OqlmWC9HO5AA== + +esbuild-windows-arm64@0.15.12: + version "0.15.12" + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.12.tgz#9a7266404334a86be800957eaee9aef94c3df328" + integrity sha512-Of3MIacva1OK/m4zCNIvBfz8VVROBmQT+gRX6pFTLPngFYcj6TFH/12VveAqq1k9VB2l28EoVMNMUCcmsfwyuA== + +esbuild@^0.15.12: + version "0.15.12" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.12.tgz#6c8e22d6d3b7430d165c33848298d3fc9a1f251c" + integrity sha512-PcT+/wyDqJQsRVhaE9uX/Oq4XLrFh0ce/bs2TJh4CSaw9xuvI+xFrH2nAYOADbhQjUgAhNWC5LKoUsakm4dxng== optionalDependencies: - "@esbuild/android-arm" "0.15.11" - "@esbuild/linux-loong64" "0.15.11" - esbuild-android-64 "0.15.11" - esbuild-android-arm64 "0.15.11" - esbuild-darwin-64 "0.15.11" - esbuild-darwin-arm64 "0.15.11" - esbuild-freebsd-64 "0.15.11" - esbuild-freebsd-arm64 "0.15.11" - esbuild-linux-32 "0.15.11" - esbuild-linux-64 "0.15.11" - esbuild-linux-arm "0.15.11" - esbuild-linux-arm64 "0.15.11" - esbuild-linux-mips64le "0.15.11" - esbuild-linux-ppc64le "0.15.11" - esbuild-linux-riscv64 "0.15.11" - esbuild-linux-s390x "0.15.11" - esbuild-netbsd-64 "0.15.11" - esbuild-openbsd-64 "0.15.11" - esbuild-sunos-64 "0.15.11" - esbuild-windows-32 "0.15.11" - esbuild-windows-64 "0.15.11" - esbuild-windows-arm64 "0.15.11" + "@esbuild/android-arm" "0.15.12" + "@esbuild/linux-loong64" "0.15.12" + esbuild-android-64 "0.15.12" + esbuild-android-arm64 "0.15.12" + esbuild-darwin-64 "0.15.12" + esbuild-darwin-arm64 "0.15.12" + esbuild-freebsd-64 "0.15.12" + esbuild-freebsd-arm64 "0.15.12" + esbuild-linux-32 "0.15.12" + esbuild-linux-64 "0.15.12" + esbuild-linux-arm "0.15.12" + esbuild-linux-arm64 "0.15.12" + esbuild-linux-mips64le "0.15.12" + esbuild-linux-ppc64le "0.15.12" + esbuild-linux-riscv64 "0.15.12" + esbuild-linux-s390x "0.15.12" + esbuild-netbsd-64 "0.15.12" + esbuild-openbsd-64 "0.15.12" + esbuild-sunos-64 "0.15.12" + esbuild-windows-32 "0.15.12" + esbuild-windows-64 "0.15.12" + esbuild-windows-arm64 "0.15.12" ev-emitter@^1.0.0: version "1.1.1" From 6faf69f82427f5336e7608824fa2acbfc682f473 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 20 Oct 2022 02:15:23 +0000 Subject: [PATCH 1186/2165] chore(deps): bump nokogiri from 1.13.8 to 1.13.9 Bumps [nokogiri](https://github.com/sparklemotion/nokogiri) from 1.13.8 to 1.13.9. - [Release notes](https://github.com/sparklemotion/nokogiri/releases) - [Changelog](https://github.com/sparklemotion/nokogiri/blob/main/CHANGELOG.md) - [Commits](https://github.com/sparklemotion/nokogiri/compare/v1.13.8...v1.13.9) --- updated-dependencies: - dependency-name: nokogiri dependency-type: indirect ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index e48e54f95..7670fc29e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -278,7 +278,7 @@ GEM net-protocol timeout nio4r (2.5.8) - nokogiri (1.13.8) + nokogiri (1.13.9) mini_portile2 (~> 2.8.0) racc (~> 1.4) notiffany (0.1.3) From 908198e47583b602559755885a88c0467a00451f Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 20 Oct 2022 11:08:50 +0800 Subject: [PATCH 1187/2165] feat: set sidekiq concurrency from ENV --- config/initializers/sidekiq.rb | 1 + config/sidekiq.yml | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/config/initializers/sidekiq.rb b/config/initializers/sidekiq.rb index c9a42b842..383e85b4f 100644 --- a/config/initializers/sidekiq.rb +++ b/config/initializers/sidekiq.rb @@ -2,6 +2,7 @@ sidekiq_config = { url: ENV['REDIS_URL'] || 'redis://localhost:6379/0' } Sidekiq.configure_server do |config| + config.concurrency = (ENV['SIDEKIQ_CONCURRENCY'] || '5').to_i config.redis = sidekiq_config logger_level = ::Logger.const_get(ENV.fetch('RAILS_LOG_LEVEL', 'info').upcase.to_s) logger_level = ::Logger::DEBUG if Rails.env.development? diff --git a/config/sidekiq.yml b/config/sidekiq.yml index 40e21663f..bf1379d3b 100644 --- a/config/sidekiq.yml +++ b/config/sidekiq.yml @@ -1,5 +1,4 @@ --- -:concurrency: 5 :queues: - [app_parse, 5] - [webhook, 5] From 38e27b12992f7fea2dffc12e37d651e30055d97a Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 20 Oct 2022 12:04:51 +0800 Subject: [PATCH 1188/2165] chore: ignore volume in dockerfile --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index d85019446..47b902c7d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -108,6 +108,6 @@ RUN ln -s /app/bin/rails /usr/local/bin/ EXPOSE 80 -VOLUME [ "/app/public/uploads", "/app/public/backup" ] +# VOLUME [ "/app/public/uploads", "/app/public/backup" ] ENTRYPOINT ["/init"] From 154c99d5d339cdecb481b33644051e9bf75450bd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 21 Oct 2022 21:01:23 +0000 Subject: [PATCH 1189/2165] chore(deps): bump turbo-rails from 1.3.1 to 1.3.2 Bumps [turbo-rails](https://github.com/hotwired/turbo-rails) from 1.3.1 to 1.3.2. - [Release notes](https://github.com/hotwired/turbo-rails/releases) - [Commits](https://github.com/hotwired/turbo-rails/compare/v1.3.1...v1.3.2) --- updated-dependencies: - dependency-name: turbo-rails dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 7670fc29e..8f0f4343e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -479,7 +479,7 @@ GEM faraday (>= 1.10.0, < 3.0) jwt (>= 1.4, < 3) openssl (>= 2.2.1, < 4) - turbo-rails (1.3.1) + turbo-rails (1.3.2) actionpack (>= 6.0.0) activejob (>= 6.0.0) railties (>= 6.0.0) From 1dbae609bf457d8f6e1ded01b3d28b041a36e168 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 21 Oct 2022 21:01:38 +0000 Subject: [PATCH 1190/2165] chore(deps): bump @hotwired/turbo-rails from 7.2.2 to 7.2.4 Bumps [@hotwired/turbo-rails](https://github.com/hotwired/turbo-rails) from 7.2.2 to 7.2.4. - [Release notes](https://github.com/hotwired/turbo-rails/releases) - [Commits](https://github.com/hotwired/turbo-rails/commits) --- updated-dependencies: - dependency-name: "@hotwired/turbo-rails" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index 2fb5205b3..0222f9856 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "license": "MIT", "dependencies": { "@hotwired/stimulus": "^3.1.0", - "@hotwired/turbo-rails": "^7.2.2", + "@hotwired/turbo-rails": "^7.2.4", "@rails/actioncable": "^7.0.4", "admin-lte": "3.1.0", "clipboard": "^2.0.11", diff --git a/yarn.lock b/yarn.lock index 283c79a30..aa7cec99f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -22,18 +22,18 @@ resolved "https://registry.yarnpkg.com/@hotwired/stimulus/-/stimulus-3.1.0.tgz#20215251e5afe6e0a3787285181ba1bfc9097df0" integrity sha512-iDMHUhiEJ1xFeicyHcZQQgBzhtk5mPR0QZO3L6wtqzMsJEk2TKECuCQTGKjm+KJTHVY0dKq1dOOAWvODjpd2Mg== -"@hotwired/turbo-rails@^7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@hotwired/turbo-rails/-/turbo-rails-7.2.2.tgz#577d0d2d8253f395e6c922e3afaf6a9483a75487" - integrity sha512-UlHB++XYlNprpfro4YbywUXFC8QuqH59I+xuU26WMu1mE+RbV2EVS7ARlcUlwzl3PFgsKgJ+xxrJ4HW5gZkJdQ== +"@hotwired/turbo-rails@^7.2.4": + version "7.2.4" + resolved "https://registry.yarnpkg.com/@hotwired/turbo-rails/-/turbo-rails-7.2.4.tgz#d155533e79c4ebdac23e8fe12697d821d5c06307" + integrity sha512-givDUQqaccd19BvErz1Cf2j6MXF74m0G6I75oqFJGeXAa7vwkz9nDplefVNrALCR9Xi9j9gy32xmSI6wD0tZyA== dependencies: - "@hotwired/turbo" "^7.2.2" + "@hotwired/turbo" "^7.2.4" "@rails/actioncable" "^7.0" -"@hotwired/turbo@^7.2.2": - version "7.2.2" - resolved "https://registry.yarnpkg.com/@hotwired/turbo/-/turbo-7.2.2.tgz#69e1f4be7f468690fa31791099e2a837e88c9518" - integrity sha512-YfTHwnur3tDFS/D5JYstU+09Z3bvCF6euqqXajHAks2lTSIDbLc8gMp8yLomD+cAC337h1wnv0oWduK6+6pUDw== +"@hotwired/turbo@^7.2.4": + version "7.2.4" + resolved "https://registry.yarnpkg.com/@hotwired/turbo/-/turbo-7.2.4.tgz#0d35541be32cfae3b4f78c6ab9138f5b21f28a21" + integrity sha512-c3xlOroHp/cCZHDOuLp6uzQYEbvXBUVaal0puXoGJ9M8L/KHwZ3hQozD4dVeSN9msHWLxxtmPT1TlCN7gFhj4w== "@lgaitan/pace-progress@^1.0.7": version "1.0.7" From df4197825c8a042b172f5d2cb81b22614b0871a6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 21 Oct 2022 21:02:36 +0000 Subject: [PATCH 1191/2165] chore(deps): bump graphql from 2.0.14 to 2.0.15 Bumps [graphql](https://github.com/rmosolgo/graphql-ruby) from 2.0.14 to 2.0.15. - [Release notes](https://github.com/rmosolgo/graphql-ruby/releases) - [Changelog](https://github.com/rmosolgo/graphql-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/rmosolgo/graphql-ruby/compare/v2.0.14...v2.0.15) --- updated-dependencies: - dependency-name: graphql dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 7e771e001..98319b77a 100644 --- a/Gemfile +++ b/Gemfile @@ -18,7 +18,7 @@ gem 'lograge', '~> 0.12.0' # API gem 'active_model_serializers', '~> 0.10.13' -gem 'graphql', '~> 2.0.14' +gem 'graphql', '~> 2.0.15' gem 'rack-cors', '~> 1.1.1' gem 'health_check', '~> 3.1.0' gem 'tiny_appstore_connect', '~> 0.1.7' #path: '/Users/icyleaf/Development/ruby/tiny_appstore_connect' diff --git a/Gemfile.lock b/Gemfile.lock index 7670fc29e..e3d1f1091 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -161,7 +161,7 @@ GEM graphiql-rails (1.8.0) railties sprockets-rails - graphql (2.0.14) + graphql (2.0.15) guard (2.18.0) formatador (>= 0.2.4) listen (>= 2.7, < 4.0) @@ -523,7 +523,7 @@ DEPENDENCIES faraday (~> 2.6.0) friendly_id (~> 5.4.2) graphiql-rails - graphql (~> 2.0.14) + graphql (~> 2.0.15) guard (~> 2.18.0) guard-bundler guard-migrate From e56583fe1dfe4cab414cc3e4134ea014f50df8bc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Oct 2022 21:01:29 +0000 Subject: [PATCH 1192/2165] chore(deps-dev): bump debug from 1.6.2 to 1.6.3 Bumps [debug](https://github.com/ruby/debug) from 1.6.2 to 1.6.3. - [Release notes](https://github.com/ruby/debug/releases) - [Commits](https://github.com/ruby/debug/compare/v1.6.2...v1.6.3) --- updated-dependencies: - dependency-name: debug dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index 98319b77a..d7a3b08c0 100644 --- a/Gemfile +++ b/Gemfile @@ -115,7 +115,7 @@ group :development do # 调试器 ## VSCode debug: https://marketplace.visualstudio.com/items?itemName=KoichiSasada.vscode-rdbg - gem 'debug', '~> 1.6.2', platforms: %i[ mri mingw x64_mingw ] + gem 'debug', '~> 1.6.3', platforms: %i[ mri mingw x64_mingw ] # 开发辅助 gem 'guard', '~> 2.18.0' diff --git a/Gemfile.lock b/Gemfile.lock index 9c7a4279c..80143639e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -121,7 +121,7 @@ GEM crass (1.0.6) cssbundling-rails (1.1.1) railties (>= 6.0.0) - debug (1.6.2) + debug (1.6.3) irb (>= 1.3.6) reline (>= 0.3.1) debug_inspector (1.1.0) @@ -207,7 +207,7 @@ GEM interception (0.5) io-console (0.5.11) ipaddr (1.2.4) - irb (1.4.1) + irb (1.4.2) reline (>= 0.3.0) jb (0.8.0) jsbundling-rails (1.0.3) @@ -516,7 +516,7 @@ DEPENDENCIES bootsnap (>= 1.4.7) carrierwave (~> 2.2.2) cssbundling-rails (~> 1.1) - debug (~> 1.6.2) + debug (~> 1.6.3) devise (~> 4.8.1) devise-i18n (~> 1.10.2) dotenv-rails From defab85fab925dbe6bcfed343d5d0d4f1e61c181 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 26 Oct 2022 18:12:28 +0800 Subject: [PATCH 1193/2165] =?UTF-8?q?chore:=20=E6=8F=90=E4=BA=A4=20bug=20?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=20https=20=E7=B1=BB=E5=9E=8B=E9=80=89?= =?UTF-8?q?=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/ISSUE_TEMPLATE/bug_report.yaml | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yaml b/.github/ISSUE_TEMPLATE/bug_report.yaml index 9f54fc05f..f98015fd2 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yaml +++ b/.github/ISSUE_TEMPLATE/bug_report.yaml @@ -41,6 +41,17 @@ body: placeholder: nginx/haproxy/caddy/traefik/none validations: required: true + - type: dropdown + id: https + attributes: + label: HTTPS 证书类型 | HTTPS(SSL) + description: 使用的证书类型 | Which SSL cert do you using? + options: + - 可受信任的证书 Verified SSL + - 自签名证书 Self-signed SSL + - 无 none + validations: + required: true - type: checkboxes id: document attributes: @@ -60,4 +71,4 @@ body: description: | 请直接复制粘贴终端的运行日志,代码格式会自动格式化 Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks. - render: shell \ No newline at end of file + render: shell From d8fc280aade74e6d490bdb3d7ef75626e8d825f1 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 28 Oct 2022 14:07:26 +0800 Subject: [PATCH 1194/2165] =?UTF-8?q?fix:=20=E6=B3=A8=E5=86=8C=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E8=AE=BE=E5=A4=87=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/udid_controller.rb | 57 ++++++++++++++++------------ app/models/apple_key.rb | 14 +++++-- app/views/udid/_apple_keys.html.slim | 2 +- config/locales/zealot/en.yml | 6 +++ config/locales/zealot/zh-CN.yml | 8 +++- 5 files changed, 57 insertions(+), 30 deletions(-) diff --git a/app/controllers/udid_controller.rb b/app/controllers/udid_controller.rb index f122b7fa0..acd195f94 100644 --- a/app/controllers/udid_controller.rb +++ b/app/controllers/udid_controller.rb @@ -2,6 +2,7 @@ class UdidController < ApplicationController before_action :get_device_xml, only: :create + before_action :get_device_metadata, only: %i[show register] before_action :render_profile, only: :install # GET /udid @@ -17,28 +18,11 @@ def create product: @device_attrs['PRODUCT'], serial: @device_attrs['SERIAL'], version: @device_attrs['VERSION'] - ), status: 301 + ), status: :found end # GET /udid/:udid def show - @title = t('udid.show.title') - @device = Device.find_by(udid: params[:udid]) - @channels = @device&.channels - @apple_keys = @device&.apple_keys - @all_apple_keys = AppleKey.all - - @channel_total = @channels&.count || 0 - @release_total = @device&.releases&.count || 0 - @apple_key_total = @all_apple_keys.size - - @result = if @apple_keys - 'related_apple_keys' - elsif @all_apple_keys.size > 0 - 'register_apple_key' - else - 'unregister_device' - end end # POST /udid/:udid/register @@ -46,13 +30,15 @@ def register apple_key = AppleKey.find(params[:apple_key_id]) udid = params[:udid] name = [ 'Zealot', params[:product], SecureRandom.hex(4) ].compact.join('-') # Max 50 chars - device = apple_key.register_device(udid, name) - if device.errors - redirect_to udid_result_path(params[:udid]), alert: device.errors.messages[:udid][0] - else - notice = t('activerecord.success.update', key: t('simple_form.labels.apple_key.devices')) - redirect_to udid_result_path(params[:udid]), notice: notice + + new_device = apple_key.register_device(udid, name) + if new_device.errors + flash[:alter] = new_device.errors.messages[:devices][0] + return render :show, status: :unprocessable_entity end + + notice = t('activerecord.success.update', key: t('simple_form.labels.apple_key.devices')) + redirect_to udid_path(params[:udid]), notice: notice, status: :see_other end # GET /udid/install @@ -118,4 +104,27 @@ def render_profile # def key # @key ||= OpenSSL::PKey::RSA.new(2048) # end + + def get_device_metadata + @title = t('udid.show.title') + @device = Device.find_by(udid: params[:udid]) + @channels = @device&.channels + @apple_keys = @device&.apple_keys + @all_apple_keys = AppleKey.all + + @channel_total = @channels&.count || 0 + @release_total = @device&.releases&.count || 0 + @apple_key_total = @all_apple_keys.size + @result = device_status + end + + def device_status + if @apple_keys + 'related_apple_keys' + elsif @all_apple_keys.size > 0 + 'register_apple_key' + else + 'unregister_device' + end + end end diff --git a/app/models/apple_key.rb b/app/models/apple_key.rb index 39d145b80..3ee3e49e4 100644 --- a/app/models/apple_key.rb +++ b/app/models/apple_key.rb @@ -52,7 +52,7 @@ def sync_devices end def register_device(udid, name = nil) - return device if (device = device.find_by(udid: udid)) + return device if (device = Device.find_by(udid: udid)) response_device = client.create_device(udid, name).to_model Device.create_from_api(response_device) do |device| @@ -71,14 +71,20 @@ def register_device(udid, name = nil) return self end - errors.add(:udid, message) + # invaild udid + if message.include?('invalid value') + # This is never happen, never ever! + errors.add(:devices, :invalid_value, value: udid) + else + errors.add(:devices, :api, message: message) + end self rescue => e logger.error "Register device raise an exception: #{e}" - message = e.errors[0]['detail'] - errors.add(:udid, message) + message = e.respond_to?(:errors) ? errors[0]['detail'] : e.message + errors.add(:devices, :unknown, message: message) self end diff --git a/app/views/udid/_apple_keys.html.slim b/app/views/udid/_apple_keys.html.slim index 4ad6ffa86..c14671b1c 100644 --- a/app/views/udid/_apple_keys.html.slim +++ b/app/views/udid/_apple_keys.html.slim @@ -19,4 +19,4 @@ - if result == 'register_apple_key' ruby: register_link = register_udid_path(udid: params[:udid], apple_key_id: apple_key.id, product: params[:product]) - td = button_to t('udid.show.register_device'), register_link, method: :post, class: 'btn btn-sm btn-success' \ No newline at end of file + td = button_to t('udid.show.register_device'), register_link, class: 'btn btn-sm btn-success' \ No newline at end of file diff --git a/config/locales/zealot/en.yml b/config/locales/zealot/en.yml index 56897193f..fa0c372b9 100644 --- a/config/locales/zealot/en.yml +++ b/config/locales/zealot/en.yml @@ -776,6 +776,12 @@ en: errors: same_value: "%{key} not change, skip to update" models: + apple_key: + attributes: + devices: + invalid_value: Register device %{value} was invalid. + api: 'Apple return error: %{message}' + unknown: 'Unknown error: %{message}' debug_file: attributes: app_id: diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index 1a44101a1..5c6b63a16 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -837,6 +837,12 @@ zh-CN: models: setting: default_message: "请检查 '%{key}' 的如下问题:" + apple_key: + attributes: + devices: + invalid_value: 注册设备 %{value} 是无效的请检测后重新尝试 + api: '苹果返回错误:%{message}' + unknown: '未知错误: %{message}' debug_file: attributes: app_id: @@ -877,7 +883,7 @@ zh-CN: hint: '- 或者 -' links: provider: - feishu: 飞书 + ladp: ' LADP ' google: ' Google ' gitlab: ' Gitlab ' From f22bcf30c8c6045d4d4e4c65dfdf7e86be79ca9e Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 28 Oct 2022 14:32:53 +0800 Subject: [PATCH 1195/2165] =?UTF-8?q?i18n:=20=E5=AE=89=E8=A3=85=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=20UDID=20=E6=8F=8F=E8=BF=B0=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=B8=A9=E9=A6=A8=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/locales/zealot/en.yml | 3 ++- config/locales/zealot/zh-CN.yml | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/config/locales/zealot/en.yml b/config/locales/zealot/en.yml index fa0c372b9..c3fc481f4 100644 --- a/config/locales/zealot/en.yml +++ b/config/locales/zealot/en.yml @@ -652,8 +652,9 @@ en: install: title: Zealot fetch device UDID description: | - Install this temporary profile to find and display the UDID on your device. It is automatically removed from device right after you get your UDID. + ↑↑↑↑ It is safe to display "Unsigned". + Install this temporary profile to find and display the UDID on your device. It is automatically removed from device right after you get your UDID. Powered by %{url}. web_hooks: title: :admin.web_hooks.title diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index 5c6b63a16..057e2d476 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -685,9 +685,10 @@ zh-CN: install: title: Zealot 获取设备 UDID description: | - 本描述文件仅用来获取本机设备 UDID,获取信息后会自动删除掉本描述文件。 + ↑↑↑↑ 这里显示"未签名"是正常情况,请放心安装。 - 本服务由 %{url} 提供。 + 安装描述文件后仅用来获取本机设备 UDID,获取信息后会自动删除掉本描述文件。 + 服务由 %{url} 提供。 web_hooks: title: :'admin.web_hooks.title' From 89d3eac676237b5cd0f46d0b0aa5fd733de849f7 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 28 Oct 2022 14:35:54 +0800 Subject: [PATCH 1196/2165] =?UTF-8?q?style:=20=E4=BF=AE=E6=94=B9=20footbar?= =?UTF-8?q?=20=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/layouts/_footer.html.slim | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/app/views/layouts/_footer.html.slim b/app/views/layouts/_footer.html.slim index 6ff983652..a453b47ec 100644 --- a/app/views/layouts/_footer.html.slim +++ b/app/views/layouts/_footer.html.slim @@ -1,9 +1,6 @@ footer.main-footer .float-right.d-none.d-sm-block b Version - = " #{Setting.version}" - strong - | Copyright © 2015-#{Time.now.year}  - = link_to Setting.site_title, Setting.repo_url - | . - | All rights reserved. + = link_to " #{Setting.version}", Setting.repo_url + p + | Created with ❤️ with Rails, AdminLTE & font awesome. From e59c2e098ad3f22d5d97cafc14c03a3bbeb84dd6 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 28 Oct 2022 15:10:12 +0800 Subject: [PATCH 1197/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=20UDID=20=E8=B0=83=E6=95=B4=E5=BF=85=E9=A1=BB?= =?UTF-8?q?=E6=98=AF=20301?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/udid_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/udid_controller.rb b/app/controllers/udid_controller.rb index acd195f94..b2f52f25d 100644 --- a/app/controllers/udid_controller.rb +++ b/app/controllers/udid_controller.rb @@ -18,7 +18,7 @@ def create product: @device_attrs['PRODUCT'], serial: @device_attrs['SERIAL'], version: @device_attrs['VERSION'] - ), status: :found + ), status: :moved_permanently end # GET /udid/:udid From d61fade4eb531444b1e96807b34c237344b52caa Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 28 Oct 2022 15:23:45 +0800 Subject: [PATCH 1198/2165] =?UTF-8?q?feat:=20=E7=BD=91=E7=BB=9C=E9=92=A9?= =?UTF-8?q?=E5=AD=90=E7=BB=93=E6=9E=84=E4=BD=93=E6=96=B0=E5=A2=9E=E8=A7=A6?= =?UTF-8?q?=E5=8F=91=E8=80=85=20username=20=E5=92=8C=20email?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/api/apps/upload_controller.rb | 2 +- app/controllers/download/releases_controller.rb | 2 +- app/controllers/releases_controller.rb | 2 +- app/controllers/web_hooks_controller.rb | 2 +- app/jobs/app_web_hook_job.rb | 10 +++++++--- app/models/channel.rb | 4 ++-- app/policies/web_hook_policy.rb | 4 ++++ config/locales/simple_form/simple_form.en.yml | 4 +++- config/locales/simple_form/simple_form.zh-CN.yml | 4 +++- 9 files changed, 23 insertions(+), 11 deletions(-) diff --git a/app/controllers/api/apps/upload_controller.rb b/app/controllers/api/apps/upload_controller.rb index d2b84e25e..e149f628f 100644 --- a/app/controllers/api/apps/upload_controller.rb +++ b/app/controllers/api/apps/upload_controller.rb @@ -58,7 +58,7 @@ def new_record? end def perform_app_web_hook_job - @channel.perform_web_hook('upload_events') + @channel.perform_web_hook('upload_events', @user.id) end def perform_teardown_job diff --git a/app/controllers/download/releases_controller.rb b/app/controllers/download/releases_controller.rb index 06d4a75eb..b2c2dce8a 100644 --- a/app/controllers/download/releases_controller.rb +++ b/app/controllers/download/releases_controller.rb @@ -14,7 +14,7 @@ def show def download # 触发 web_hook - @release.channel.perform_web_hook('download_events') + @release.channel.perform_web_hook('download_events', current_user.id) headers['Content-Length'] = @release.file.size send_file @release.file.path, diff --git a/app/controllers/releases_controller.rb b/app/controllers/releases_controller.rb index d23a5c3f5..b90aab20c 100644 --- a/app/controllers/releases_controller.rb +++ b/app/controllers/releases_controller.rb @@ -35,7 +35,7 @@ def create return render :new, status: :unprocessable_entity unless @release.save # 触发异步任务 - @release.channel.perform_web_hook('upload_events') + @release.channel.perform_web_hook('upload_events', current_user.id) @release.perform_teardown_job(current_user.id) message = t('activerecord.success.create', key: "#{t('releases.title')}") diff --git a/app/controllers/web_hooks_controller.rb b/app/controllers/web_hooks_controller.rb index 0ed005255..4b47fb333 100644 --- a/app/controllers/web_hooks_controller.rb +++ b/app/controllers/web_hooks_controller.rb @@ -35,7 +35,7 @@ def enable def test authorize @web_hook event = params[:event] || 'upload_events' - AppWebHookJob.perform_later event, @web_hook, @channel + AppWebHookJob.perform_later event, @web_hook, @channel, current_user.id redirect_to_channel_url notice: t('admin.web_hooks.messages.success.test') end diff --git a/app/jobs/app_web_hook_job.rb b/app/jobs/app_web_hook_job.rb index 749dfcea2..1ae385e3a 100644 --- a/app/jobs/app_web_hook_job.rb +++ b/app/jobs/app_web_hook_job.rb @@ -8,11 +8,12 @@ class AppWebHookJob < ApplicationJob queue_as :webhook - def perform(event, web_hook, channel) + def perform(event, web_hook, channel, user_id) @event = event @web_hook = web_hook @channel = channel @release = @channel.releases.last + @user = User.find(user_id) logger.info(log_message("trigger event: #{@event}")) logger.info(log_message("trigger url: #{@web_hook.url}")) @@ -34,8 +35,7 @@ def send_request end def message_body - body = @web_hook.body.presence || default_body - build(body) + build(@web_hook.body.presence || default_body) end def build(body) @@ -43,6 +43,8 @@ def build(body) type: :jb, assigns: { event: @event, + username: @user.username, + email: @user.email, title: title, name: @release.name, app_name: @release.app_name, @@ -63,6 +65,8 @@ def build(body) def default_body '{ event: @event, + username: @username, + email: @email, title: @title, name: @app_name, app_name: @app_name, diff --git a/app/models/channel.rb b/app/models/channel.rb index 70fdc1d4e..e95a1940d 100755 --- a/app/models/channel.rb +++ b/app/models/channel.rb @@ -91,9 +91,9 @@ def bundle_id_matched?(value) value.match?(bundle_id) end - def perform_web_hook(event_name) + def perform_web_hook(event_name, user_id) web_hooks.where(event_name => 1).find_each do |web_hook| - AppWebHookJob.perform_later event_name, web_hook, self + AppWebHookJob.perform_later event_name, web_hook, self, user_id end end diff --git a/app/policies/web_hook_policy.rb b/app/policies/web_hook_policy.rb index bf9603af6..15e492a6e 100644 --- a/app/policies/web_hook_policy.rb +++ b/app/policies/web_hook_policy.rb @@ -5,6 +5,10 @@ def test? manage? end + def console? + manage? + end + def enable? manage? end diff --git a/config/locales/simple_form/simple_form.en.yml b/config/locales/simple_form/simple_form.en.yml index 9c2235e68..913a3ec71 100644 --- a/config/locales/simple_form/simple_form.en.yml +++ b/config/locales/simple_form/simple_form.en.yml @@ -100,7 +100,7 @@ en: git_commit: 40 bit length SHA value of git commit ci_url: the detail URL of Jenkins, Gitlab CI web_hook: - body: 'Custom JSON struct body to apply the third party notification services, Use default struct by leave it empty.' + body: 'Custom JSON struct body to apply the third party notification services. Use default structure by leave it empty.' debug_file: device_type: 'Which device type of app. for example, iOS, Android, macOS etc.' file: 'Require a zipped file of debug file. for example, dSYM in iOS, proguard in Android.' @@ -120,6 +120,8 @@ en: body: | { event: @event, + username: @username, + email: @email, title: @title, name: @app_name, app_name: @app_name, diff --git a/config/locales/simple_form/simple_form.zh-CN.yml b/config/locales/simple_form/simple_form.zh-CN.yml index 88c9717c1..db294f6f1 100644 --- a/config/locales/simple_form/simple_form.zh-CN.yml +++ b/config/locales/simple_form/simple_form.zh-CN.yml @@ -101,7 +101,7 @@ zh-CN: git_commit: 通常是 40 位长度的哈希值 ci_url: Jenkins、Gitlab CI 具体构建的地址 web_hook: - body: '自定义的 JSON 消息体以满足不同第三方服务消息体的要求,不填写会使用默认结构' + body: 自定义的 JSON 消息体以满足不同第三方服务消息体的要求,不填写会使用默认结构 debug_file: device_type: '应用设备类型' file: '必须使用 zip 文件压缩后的调试文件' @@ -122,6 +122,8 @@ zh-CN: body: | { event: @event, + username: @username, + email: @email, title: @title, name: @app_name, app_name: @app_name, From 609b5125caf212065d34fed6a0539512a4c6b279 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 28 Oct 2022 15:28:06 +0800 Subject: [PATCH 1199/2165] =?UTF-8?q?i18n:=20=E5=9B=9E=E6=BB=9A=E9=94=99?= =?UTF-8?q?=E8=AF=AF=E7=9A=84=20key?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/locales/zealot/zh-CN.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index 057e2d476..d0a20c8b1 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -884,7 +884,7 @@ zh-CN: hint: '- 或者 -' links: provider: - ladp: ' LADP ' + feishu: 飞书 google: ' Google ' gitlab: ' Gitlab ' From a39f90d1d831cfe9ca9d37aa7ee6c1e6191e29e8 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 28 Oct 2022 16:57:10 +0800 Subject: [PATCH 1200/2165] i18n: typo --- config/locales/zealot/en.yml | 2 +- config/locales/zealot/zh-CN.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/config/locales/zealot/en.yml b/config/locales/zealot/en.yml index c3fc481f4..a3e0133fa 100644 --- a/config/locales/zealot/en.yml +++ b/config/locales/zealot/en.yml @@ -392,7 +392,7 @@ en: sync_devices_feature: Sync device name by using %{link} fastlane plugin qrcode: QR Code scan_qrcode_with_any_suppprted_app: Use your phone's camera to install it - majarzersions: :channels.show.major_versions + major_versions: :channels.show.major_versions view_detail: Manage channel new: title: :channels.show.upload_release diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index d0a20c8b1..c19fc9a1a 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -419,7 +419,7 @@ zh-CN: qrcode: 二维码 scan_qrcode_with_any_suppprted_app: 任何支持二维码识别的 App 均可 - majarzersions: :'channels.show.major_versions' + major_versions: :'channels.show.major_versions' view_detail: 渠道详情 new: title: :'channels.show.upload_release' From 99643fb6b1ff93615008cf146c0102801ef9301c Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 28 Oct 2022 18:35:57 +0800 Subject: [PATCH 1201/2165] =?UTF-8?q?doc:=20=E7=95=8C=E9=9D=A2=E9=A2=84?= =?UTF-8?q?=E8=A7=88=E6=94=AF=E6=8C=81=E6=98=8E=E6=9A=97=E6=A8=A1=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 0fc1c9d7f..7c249cb47 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,9 @@ -![Zealot Showcase](https://zealot.ews.im/img/showcase.png) +![Zealot Showcase](https://github.com/tryzealot/docs/blob/main/static/img/showcase-light.png#gh-light-mode-only) +![Zealot Showcase](https://github.com/tryzealot/docs/blob/main/static/img/showcase-dark.png#gh-dark-mode-only) + ## 特性 - 🌏 **多平台应用支持**: macOS、iOS、甚至是 APK 和 AAB 格式的 Android 应用上传、安装(支持 ARM 的 macOS)和下载 From 116f6c368ccc6965efe7b086efaf4a19ccf4586b Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 31 Oct 2022 15:40:53 +0800 Subject: [PATCH 1202/2165] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E4=B8=8B?= =?UTF-8?q?=E8=BD=BD=E5=BA=94=E7=94=A8=E8=A7=A6=E5=8F=91=20webhook=20?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E8=8E=B7=E5=8F=96=E5=88=B0=E5=BD=93=E5=89=8D?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/download/releases_controller.rb | 2 +- app/controllers/teardowns_controller.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/controllers/download/releases_controller.rb b/app/controllers/download/releases_controller.rb index b2c2dce8a..4a74f5566 100644 --- a/app/controllers/download/releases_controller.rb +++ b/app/controllers/download/releases_controller.rb @@ -14,7 +14,7 @@ def show def download # 触发 web_hook - @release.channel.perform_web_hook('download_events', current_user.id) + @release.channel.perform_web_hook('download_events', current_user&.id) headers['Content-Length'] = @release.file.size send_file @release.file.path, diff --git a/app/controllers/teardowns_controller.rb b/app/controllers/teardowns_controller.rb index 55650fa9e..202ab7865 100644 --- a/app/controllers/teardowns_controller.rb +++ b/app/controllers/teardowns_controller.rb @@ -71,7 +71,7 @@ def parse_app end metadata = TeardownService.new(file).call - metadata.update_attribute(:user_id, current_user.id) if current_user.present? + metadata.update_attribute(:user_id, current_user&.id) if current_user.present? redirect_to teardown_path(metadata) end From e3bc0a8bc69970b5c6cbbc81cf54747a8c17a23c Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 31 Oct 2022 15:55:22 +0800 Subject: [PATCH 1203/2165] refactor: change rails and puma control server to listen 127.0.0.1 --- config/puma.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/puma.rb b/config/puma.rb index 38acd0a4d..e7a44a393 100644 --- a/config/puma.rb +++ b/config/puma.rb @@ -2,7 +2,7 @@ # Bind on a specific TCP address. We won't bother using unix sockets because # nginx will be running in a different Docker container. -bind "tcp://#{ENV.fetch('BIND_ON') { '0.0.0.0:3000' }}" +bind "tcp://#{ENV.fetch('BIND_ON') { '127.0.0.1:3000' }}" # Specifies the `pidfile` that Puma will use. pidfile ENV.fetch('PIDFILE') { 'tmp/pids/puma.pid' } @@ -70,4 +70,4 @@ # provide an authentication token, so all requests to the control server # will need to include that token as a query parameter. This allows for # simple authentication. -activate_control_app "tcp://#{ENV.fetch('PUMA_CONTROL_URL') { '0.0.0.0:9293' }}", { auth_token: ENV.fetch('PUMA_CONTROL_URL_TOKEN') { 'zealot' } } \ No newline at end of file +activate_control_app "tcp://#{ENV.fetch('PUMA_CONTROL_URL') { '127.0.0.1:9293' }}", { auth_token: ENV.fetch('PUMA_CONTROL_URL_TOKEN') { 'zealot' } } \ No newline at end of file From ae7147d31a1da9afe38d71be1e4c364470f94cfa Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 31 Oct 2022 15:59:56 +0800 Subject: [PATCH 1204/2165] =?UTF-8?q?style:=20=E8=B0=83=E6=95=B4=E7=BD=91?= =?UTF-8?q?=E7=BB=9C=E9=92=A9=E5=AD=90=E7=AE=A1=E7=90=86=E5=9C=A8=E8=8B=B1?= =?UTF-8?q?=E6=96=87=E8=AF=AD=E8=A8=80=E7=9A=84=E5=AE=BD=E5=BA=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/admin/web_hooks/index.html.slim | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/admin/web_hooks/index.html.slim b/app/views/admin/web_hooks/index.html.slim index f506844af..a457e132a 100644 --- a/app/views/admin/web_hooks/index.html.slim +++ b/app/views/admin/web_hooks/index.html.slim @@ -15,7 +15,7 @@ th = t('.number') th = t('.url') th style="width: 240px" = t('.channels') - th style="width: 70px" = t('.action') + th style="width: 100px" = t('.action') tbody - @web_hooks.each_with_index do |web_hook, i| tr From b48573ce439c07be2eed305a4aac91f4475c2b27 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 31 Oct 2022 19:18:07 +0800 Subject: [PATCH 1205/2165] =?UTF-8?q?style:=20=E5=BA=94=E7=94=A8=E5=AE=89?= =?UTF-8?q?=E8=A3=85=E4=BA=8C=E7=BB=B4=E7=A0=81=E6=94=AF=E6=8C=81=E9=BB=91?= =?UTF-8?q?=E6=9A=97=E6=A8=A1=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/releases/qrcode_controller.rb | 35 ++++++++++++++----- app/helpers/apps_helper.rb | 14 ++++++++ app/views/releases/sidebar/_qrcode.html.slim | 5 ++- 3 files changed, 44 insertions(+), 10 deletions(-) diff --git a/app/controllers/releases/qrcode_controller.rb b/app/controllers/releases/qrcode_controller.rb index f2dd7758f..7b72b5819 100644 --- a/app/controllers/releases/qrcode_controller.rb +++ b/app/controllers/releases/qrcode_controller.rb @@ -3,25 +3,42 @@ class Releases::QrcodeController < ApplicationController before_action :set_release - LIGHT_BACKGROUND_COLOR = 'FFFFFF' - LIGHT_COLOR = '465960' + THEMES = { + light: { + fill: '#FFFFFF', + color: '#465960' + }, + dark: { + fill: '#343a40', + color: '#F0F4Fb' + }, + } ## # 显示应用的二维码 # GET /apps/:slug/(:version)/qrcode def show - options = { - module_px_size: qrcode_size, - fill: "##{params.fetch(:fill, LIGHT_BACKGROUND_COLOR)}", - color: "##{params.fetch(:color, LIGHT_COLOR)}" - } - render qrcode: friendly_channel_release_url(@release.channel, @release), **options end private - def qrcode_size + def options + { + module_px_size: px_size, + fill: theme[:fill], + color: theme[:color] + } + end + + def theme + @theme ||= -> do + name = params.fetch(:theme, 'light') == 'light' ? :light : :dark + THEMES[name] + end.call + end + + def px_size case params[:size] when 'thumb' 3 diff --git a/app/helpers/apps_helper.rb b/app/helpers/apps_helper.rb index 7635dd3c4..4d73a021e 100644 --- a/app/helpers/apps_helper.rb +++ b/app/helpers/apps_helper.rb @@ -82,4 +82,18 @@ def channel_platform(channel) def changelog_format(changelog, **options) simple_format changelog, **options end + + def qrcode_image_tag(release) + logger.debug Setting.site_appearance + logger.debug "Sdfsafasdfasdfsadfd" + if Setting.site_appearance != 'auto' + return image_tag channel_release_qrcode_path(@release.channel, @release, size: :large, theme: Setting.site_appearance) + end + + content_tag(:picture) do + content_tag(:source, media: "(prefers-color-scheme: dark)", srcset: channel_release_qrcode_path(release.channel, release, size: :large, theme: :dark)) do + image_tag channel_release_qrcode_path(release.channel, release, size: :large) + end + end + end end diff --git a/app/views/releases/sidebar/_qrcode.html.slim b/app/views/releases/sidebar/_qrcode.html.slim index 58e53d96a..776de90da 100644 --- a/app/views/releases/sidebar/_qrcode.html.slim +++ b/app/views/releases/sidebar/_qrcode.html.slim @@ -8,5 +8,8 @@ i.fas.fa-minus .card-body.text-center.p-0 .qr_code - = image_tag channel_release_qrcode_path(@release.channel, @release, size: :large) + = qrcode_image_tag(@release) + / picture + / source srcset="#{channel_release_qrcode_path(@release.channel, @release, size: :large, theme: :dark)}" media="(prefers-color-scheme: dark)" + / = image_tag channel_release_qrcode_path(@release.channel, @release, size: :large) .card-footer.text-center = t('releases.show.scan_qrcode_with_any_suppprted_app') From 83cb9fbe9decf8086c9d05c397a246fa5a1ac870 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 31 Oct 2022 19:42:29 +0800 Subject: [PATCH 1206/2165] =?UTF-8?q?style:=20=E8=8E=B7=E5=8F=96=20iOS=20?= =?UTF-8?q?=E8=AE=BE=E5=A4=87=20UDID=20=E4=BA=8C=E7=BB=B4=E7=A0=81?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E9=BB=91=E6=9A=97=E6=A8=A1=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/concerns/qrcode.rb | 49 +++++++++++++++++++ app/controllers/releases/qrcode_controller.rb | 43 ++-------------- app/controllers/udid_controller.rb | 7 ++- app/helpers/apps_helper.rb | 4 +- app/helpers/udids_helper.rb | 15 ++++++ app/views/releases/sidebar/_qrcode.html.slim | 5 +- app/views/udid/index.html.slim | 2 +- config/routes.rb | 1 + 8 files changed, 77 insertions(+), 49 deletions(-) create mode 100644 app/controllers/concerns/qrcode.rb create mode 100644 app/helpers/udids_helper.rb diff --git a/app/controllers/concerns/qrcode.rb b/app/controllers/concerns/qrcode.rb new file mode 100644 index 000000000..87c79b522 --- /dev/null +++ b/app/controllers/concerns/qrcode.rb @@ -0,0 +1,49 @@ +# frozen_string_literal: true + +module Qrcode + extend ActiveSupport::Concern + + THEMES = { + light: { + fill: '#FFFFFF', + color: '#465960' + }, + dark: { + fill: '#343a40', + color: '#F0F4Fb' + }, + } + + def qrcode_options + { + module_px_size: px_size, + fill: theme[:fill], + color: theme[:color], + offset: 10 + } + end + + private + + def theme + @theme ||= -> do + name = params.fetch(:theme, 'light') == 'light' ? :light : :dark + THEMES[name] + end.call + end + + def px_size + case params[:size] + when 'thumb' + 3 + when 'medium' + 5 + when 'large' + 6 + when 'extra' + 8 + else + 2 + end + end +end \ No newline at end of file diff --git a/app/controllers/releases/qrcode_controller.rb b/app/controllers/releases/qrcode_controller.rb index 7b72b5819..721b12846 100644 --- a/app/controllers/releases/qrcode_controller.rb +++ b/app/controllers/releases/qrcode_controller.rb @@ -1,56 +1,19 @@ # frozen_string_literal: true class Releases::QrcodeController < ApplicationController - before_action :set_release + include Qrcode - THEMES = { - light: { - fill: '#FFFFFF', - color: '#465960' - }, - dark: { - fill: '#343a40', - color: '#F0F4Fb' - }, - } + before_action :set_release ## # 显示应用的二维码 # GET /apps/:slug/(:version)/qrcode def show - render qrcode: friendly_channel_release_url(@release.channel, @release), **options + render qrcode: friendly_channel_release_url(@release.channel, @release), **qrcode_options end private - def options - { - module_px_size: px_size, - fill: theme[:fill], - color: theme[:color] - } - end - - def theme - @theme ||= -> do - name = params.fetch(:theme, 'light') == 'light' ? :light : :dark - THEMES[name] - end.call - end - - def px_size - case params[:size] - when 'thumb' - 3 - when 'medium' - 5 - when 'large' - 6 - else - 2 - end - end - def set_release @release = Release.find params[:release_id] end diff --git a/app/controllers/udid_controller.rb b/app/controllers/udid_controller.rb index b2f52f25d..e0a04abf9 100644 --- a/app/controllers/udid_controller.rb +++ b/app/controllers/udid_controller.rb @@ -1,6 +1,8 @@ # frozen_string_literal: true class UdidController < ApplicationController + include Qrcode + before_action :get_device_xml, only: :create before_action :get_device_metadata, only: %i[show register] before_action :render_profile, only: :install @@ -8,7 +10,6 @@ class UdidController < ApplicationController # GET /udid def index @title = t('udid.title') - @qrcode = RQRCode::QRCode.new(udid_index_url) end # POST /udid/retrive @@ -45,6 +46,10 @@ def register def install end + def qrcode + render qrcode: udid_index_url, **qrcode_options + end + private def get_device_xml diff --git a/app/helpers/apps_helper.rb b/app/helpers/apps_helper.rb index 4d73a021e..050dd2e2b 100644 --- a/app/helpers/apps_helper.rb +++ b/app/helpers/apps_helper.rb @@ -83,9 +83,7 @@ def changelog_format(changelog, **options) simple_format changelog, **options end - def qrcode_image_tag(release) - logger.debug Setting.site_appearance - logger.debug "Sdfsafasdfasdfsadfd" + def app_qrcode_tag(release) if Setting.site_appearance != 'auto' return image_tag channel_release_qrcode_path(@release.channel, @release, size: :large, theme: Setting.site_appearance) end diff --git a/app/helpers/udids_helper.rb b/app/helpers/udids_helper.rb new file mode 100644 index 000000000..38a0bf7fa --- /dev/null +++ b/app/helpers/udids_helper.rb @@ -0,0 +1,15 @@ +# frozen_string_literal: true + +module UdidsHelper + def install_qrcode_image_tag + if Setting.site_appearance != 'auto' + return image_tag qrcode_udid_index_path(size: :extra, theme: Setting.site_appearance) + end + + content_tag(:picture) do + content_tag(:source, media: "(prefers-color-scheme: dark)", srcset: qrcode_udid_index_path(size: :extra, theme: :dark)) do + image_tag qrcode_udid_index_path(size: :extra) + end + end + end +end diff --git a/app/views/releases/sidebar/_qrcode.html.slim b/app/views/releases/sidebar/_qrcode.html.slim index 776de90da..9254ff016 100644 --- a/app/views/releases/sidebar/_qrcode.html.slim +++ b/app/views/releases/sidebar/_qrcode.html.slim @@ -8,8 +8,5 @@ i.fas.fa-minus .card-body.text-center.p-0 .qr_code - = qrcode_image_tag(@release) - / picture - / source srcset="#{channel_release_qrcode_path(@release.channel, @release, size: :large, theme: :dark)}" media="(prefers-color-scheme: dark)" - / = image_tag channel_release_qrcode_path(@release.channel, @release, size: :large) + = app_qrcode_tag(@release) .card-footer.text-center = t('releases.show.scan_qrcode_with_any_suppprted_app') diff --git a/app/views/udid/index.html.slim b/app/views/udid/index.html.slim index bff0fd73e..e7016e987 100644 --- a/app/views/udid/index.html.slim +++ b/app/views/udid/index.html.slim @@ -12,7 +12,7 @@ ] .card .card-body.text-center data-udid-target="qrcode" - = raw @qrcode.as_svg(module_size: 8, fill: 'ffffff', offset: 8) + = install_qrcode_image_tag .pt-4.text-center data-udid-target="tip" = t('.apple_tip') .install-profile data-udid-target="install" = link_to t('.fetch_udid'), install_udid_index_path, class: 'btn btn-success btn-lg btn-block' diff --git a/config/routes.rb b/config/routes.rb index bce59d7a9..7cebc1df6 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -82,6 +82,7 @@ ############################################# resources :udid, as: :udid, param: :udid, only: %i[ index show ] do collection do + get :qrcode get :install post :retrieve, action: :create end From b0632a66b4d37d61bc560e36c67b68c58cf143e4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 31 Oct 2022 21:01:51 +0000 Subject: [PATCH 1207/2165] chore(deps): bump @hotwired/stimulus from 3.1.0 to 3.1.1 Bumps [@hotwired/stimulus](https://github.com/hotwired/stimulus) from 3.1.0 to 3.1.1. - [Release notes](https://github.com/hotwired/stimulus/releases) - [Changelog](https://github.com/hotwired/stimulus/blob/main/CHANGELOG.md) - [Commits](https://github.com/hotwired/stimulus/compare/v3.1.0...v3.1.1) --- updated-dependencies: - dependency-name: "@hotwired/stimulus" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 0222f9856..95d891993 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "private": true, "license": "MIT", "dependencies": { - "@hotwired/stimulus": "^3.1.0", + "@hotwired/stimulus": "^3.1.1", "@hotwired/turbo-rails": "^7.2.4", "@rails/actioncable": "^7.0.4", "admin-lte": "3.1.0", diff --git a/yarn.lock b/yarn.lock index aa7cec99f..4bf58aaf8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -17,10 +17,10 @@ resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-5.15.4.tgz#ecda5712b61ac852c760d8b3c79c96adca5554e5" integrity sha512-eYm8vijH/hpzr/6/1CJ/V/Eb1xQFW2nnUKArb3z+yUWv7HTwj6M7SP957oMjfZjAHU6qpoNc2wQvIxBLWYa/Jg== -"@hotwired/stimulus@^3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@hotwired/stimulus/-/stimulus-3.1.0.tgz#20215251e5afe6e0a3787285181ba1bfc9097df0" - integrity sha512-iDMHUhiEJ1xFeicyHcZQQgBzhtk5mPR0QZO3L6wtqzMsJEk2TKECuCQTGKjm+KJTHVY0dKq1dOOAWvODjpd2Mg== +"@hotwired/stimulus@^3.1.1": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@hotwired/stimulus/-/stimulus-3.1.1.tgz#652f08a8e1d5edcb407340e58818fcff463b5848" + integrity sha512-e0JpzIaYLsRRXevRDVs0yevabiCvieIWWCwh7VqVXjXM5AOHdjb7AjaKIj34zYFmY1N6HIRRfk915WVMYlHnDA== "@hotwired/turbo-rails@^7.2.4": version "7.2.4" From 4840a0f0838ee851fe3fbdec57e5d02055db3c66 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 31 Oct 2022 21:02:09 +0000 Subject: [PATCH 1208/2165] chore(deps): bump stimulus-rails from 1.1.0 to 1.1.1 Bumps [stimulus-rails](https://github.com/hotwired/stimulus-rails) from 1.1.0 to 1.1.1. - [Release notes](https://github.com/hotwired/stimulus-rails/releases) - [Commits](https://github.com/hotwired/stimulus-rails/compare/v1.1.0...v1.1.1) --- updated-dependencies: - dependency-name: stimulus-rails dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index 4c0520d65..4e5952991 100644 --- a/Gemfile +++ b/Gemfile @@ -95,7 +95,7 @@ gem 'propshaft', '0.6.4' gem 'jsbundling-rails', '~> 1.0' gem 'cssbundling-rails', '~> 1.1' ## Javascript -gem 'stimulus-rails', '~> 1.1.0' +gem 'stimulus-rails', '~> 1.1.1' gem 'turbo-rails', '~> 1.3' # 用于解析 iOS, Android 和 macOS 应用 diff --git a/Gemfile.lock b/Gemfile.lock index f13e82a23..20892d32e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -462,7 +462,7 @@ GEM activesupport (>= 5.2) sprockets (>= 3.0.0) ssrf_filter (1.0.7) - stimulus-rails (1.1.0) + stimulus-rails (1.1.1) railties (>= 6.0.0) strscan (3.0.4) sys-filesystem (1.4.3) @@ -501,7 +501,7 @@ GEM websocket-driver (0.7.5) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) - zeitwerk (2.6.1) + zeitwerk (2.6.3) PLATFORMS ruby @@ -572,7 +572,7 @@ DEPENDENCIES sidekiq-scheduler (~> 4.0.3) simple_form (~> 5.1) slim-rails (~> 3.5.1) - stimulus-rails (~> 1.1.0) + stimulus-rails (~> 1.1.1) sys-filesystem (~> 1.4.3) terminal-notifier terminal-notifier-guard From a149440d78db8df34b604206b8d0c03a1ec43dc5 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 1 Nov 2022 11:40:48 +0800 Subject: [PATCH 1209/2165] =?UTF-8?q?doc:=20=E6=9B=B4=E6=96=B0=E5=8F=98?= =?UTF-8?q?=E6=9B=B4=E6=97=A5=E5=BF=97=E7=9A=84=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 10b71e395..7a5796516 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,3 @@ # 变更日志 Changelog -请移步(Detail): https://zealot.ews.im/#/changelog \ No newline at end of file +请移步(Detail): https://zealot.ews.im/zh-Hans/docs/user-guide/changelog \ No newline at end of file From 74003551375a45f025d11efe1dd45fc0661c1af4 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 1 Nov 2022 14:07:44 +0800 Subject: [PATCH 1210/2165] bump: 4.5.2 --- Dockerfile | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 47b902c7d..d057db3a3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -61,7 +61,7 @@ ARG BUILD_DATE ARG VCS_REF ARG TAG -ARG ZEALOT_VERSION="4.5.1" +ARG ZEALOT_VERSION="4.5.2" ARG REPLACE_CHINA_MIRROR="true" ARG ORIGINAL_REPO_URL="dl-cdn.alpinelinux.org" ARG MIRROR_REPO_URL="mirrors.ustc.edu.cn" diff --git a/package.json b/package.json index 0222f9856..58a448f1d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "zealot", - "version": "4.5.1", + "version": "4.5.2", "private": true, "license": "MIT", "dependencies": { From 852d1df01a1fe382cb794b1645ebf0b591adb012 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 3 Nov 2022 21:00:47 +0000 Subject: [PATCH 1211/2165] chore(deps): bump esbuild from 0.15.12 to 0.15.13 Bumps [esbuild](https://github.com/evanw/esbuild) from 0.15.12 to 0.15.13. - [Release notes](https://github.com/evanw/esbuild/releases) - [Changelog](https://github.com/evanw/esbuild/blob/master/CHANGELOG.md) - [Commits](https://github.com/evanw/esbuild/compare/v0.15.12...v0.15.13) --- updated-dependencies: - dependency-name: esbuild dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 268 +++++++++++++++++++++++++-------------------------- 2 files changed, 135 insertions(+), 135 deletions(-) diff --git a/package.json b/package.json index fb0d61b22..ce4b3e4bc 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "admin-lte": "3.1.0", "clipboard": "^2.0.11", "compare-versions": "^5.0.1", - "esbuild": "^0.15.12", + "esbuild": "^0.15.13", "sass": "^1.55.0", "ua-parser-js": "^1.0.32" }, diff --git a/yarn.lock b/yarn.lock index 4bf58aaf8..aeabceac1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,15 +2,15 @@ # yarn lockfile v1 -"@esbuild/android-arm@0.15.12": - version "0.15.12" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.15.12.tgz#e548b10a5e55b9e10537a049ebf0bc72c453b769" - integrity sha512-IC7TqIqiyE0MmvAhWkl/8AEzpOtbhRNDo7aph47We1NbE5w2bt/Q+giAhe0YYeVpYnIhGMcuZY92qDK6dQauvA== +"@esbuild/android-arm@0.15.13": + version "0.15.13" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.15.13.tgz#ce11237a13ee76d5eae3908e47ba4ddd380af86a" + integrity sha512-RY2fVI8O0iFUNvZirXaQ1vMvK0xhCcl0gqRj74Z6yEiO1zAUa7hbsdwZM1kzqbxHK7LFyMizipfXT3JME+12Hw== -"@esbuild/linux-loong64@0.15.12": - version "0.15.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.12.tgz#475b33a2631a3d8ca8aa95ee127f9a61d95bf9c1" - integrity sha512-tZEowDjvU7O7I04GYvWQOS4yyP9E/7YlsB0jjw1Ycukgr2ycEzKyIk5tms5WnLBymaewc6VmRKnn5IJWgK4eFw== +"@esbuild/linux-loong64@0.15.13": + version "0.15.13" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.13.tgz#64e8825bf0ce769dac94ee39d92ebe6272020dfc" + integrity sha512-+BoyIm4I8uJmH/QDIH0fu7MG0AEx9OXEDXnqptXCwKOlOqZiS4iraH1Nr7/ObLMokW3sOCeBNyD68ATcV9b9Ag== "@fortawesome/fontawesome-free@^5.15.3": version "5.15.4" @@ -677,133 +677,133 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -esbuild-android-64@0.15.12: - version "0.15.12" - resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.12.tgz#5e8151d5f0a748c71a7fbea8cee844ccf008e6fc" - integrity sha512-MJKXwvPY9g0rGps0+U65HlTsM1wUs9lbjt5CU19RESqycGFDRijMDQsh68MtbzkqWSRdEtiKS1mtPzKneaAI0Q== - -esbuild-android-arm64@0.15.12: - version "0.15.12" - resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.12.tgz#5ee72a6baa444bc96ffcb472a3ba4aba2cc80666" - integrity sha512-Hc9SEcZbIMhhLcvhr1DH+lrrec9SFTiRzfJ7EGSBZiiw994gfkVV6vG0sLWqQQ6DD7V4+OggB+Hn0IRUdDUqvA== - -esbuild-darwin-64@0.15.12: - version "0.15.12" - resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.12.tgz#70047007e093fa1b3ba7ef86f9b3fa63db51fe25" - integrity sha512-qkmqrTVYPFiePt5qFjP8w/S+GIUMbt6k8qmiPraECUWfPptaPJUGkCKrWEfYFRWB7bY23FV95rhvPyh/KARP8Q== - -esbuild-darwin-arm64@0.15.12: - version "0.15.12" - resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.12.tgz#41c951f23d9a70539bcca552bae6e5196696ae04" - integrity sha512-z4zPX02tQ41kcXMyN3c/GfZpIjKoI/BzHrdKUwhC/Ki5BAhWv59A9M8H+iqaRbwpzYrYidTybBwiZAIWCLJAkw== - -esbuild-freebsd-64@0.15.12: - version "0.15.12" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.12.tgz#a761b5afd12bbedb7d56c612e9cfa4d2711f33f0" - integrity sha512-XFL7gKMCKXLDiAiBjhLG0XECliXaRLTZh6hsyzqUqPUf/PY4C6EJDTKIeqqPKXaVJ8+fzNek88285krSz1QECw== - -esbuild-freebsd-arm64@0.15.12: - version "0.15.12" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.12.tgz#6b0839d4d58deabc6cbd96276eb8cbf94f7f335e" - integrity sha512-jwEIu5UCUk6TjiG1X+KQnCGISI+ILnXzIzt9yDVrhjug2fkYzlLbl0K43q96Q3KB66v6N1UFF0r5Ks4Xo7i72g== - -esbuild-linux-32@0.15.12: - version "0.15.12" - resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.12.tgz#bd50bfe22514d434d97d5150977496e2631345b4" - integrity sha512-uSQuSEyF1kVzGzuIr4XM+v7TPKxHjBnLcwv2yPyCz8riV8VUCnO/C4BF3w5dHiVpCd5Z1cebBtZJNlC4anWpwA== - -esbuild-linux-64@0.15.12: - version "0.15.12" - resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.12.tgz#074bb2b194bf658245f8490f29c01ffcdfa8c931" - integrity sha512-QcgCKb7zfJxqT9o5z9ZUeGH1k8N6iX1Y7VNsEi5F9+HzN1OIx7ESxtQXDN9jbeUSPiRH1n9cw6gFT3H4qbdvcA== - -esbuild-linux-arm64@0.15.12: - version "0.15.12" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.12.tgz#3bf789c4396dc032875a122988efd6f3733f28f5" - integrity sha512-HtNq5xm8fUpZKwWKS2/YGwSfTF+339L4aIA8yphNKYJckd5hVdhfdl6GM2P3HwLSCORS++++7++//ApEwXEuAQ== - -esbuild-linux-arm@0.15.12: - version "0.15.12" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.12.tgz#b91b5a8d470053f6c2c9c8a5e67ec10a71fe4a67" - integrity sha512-Wf7T0aNylGcLu7hBnzMvsTfEXdEdJY/hY3u36Vla21aY66xR0MS5I1Hw8nVquXjTN0A6fk/vnr32tkC/C2lb0A== - -esbuild-linux-mips64le@0.15.12: - version "0.15.12" - resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.12.tgz#2fb54099ada3c950a7536dfcba46172c61e580e2" - integrity sha512-Qol3+AvivngUZkTVFgLpb0H6DT+N5/zM3V1YgTkryPYFeUvuT5JFNDR3ZiS6LxhyF8EE+fiNtzwlPqMDqVcc6A== - -esbuild-linux-ppc64le@0.15.12: - version "0.15.12" - resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.12.tgz#9e3b8c09825fb27886249dfb3142a750df29a1b7" - integrity sha512-4D8qUCo+CFKaR0cGXtGyVsOI7w7k93Qxb3KFXWr75An0DHamYzq8lt7TNZKoOq/Gh8c40/aKaxvcZnTgQ0TJNg== - -esbuild-linux-riscv64@0.15.12: - version "0.15.12" - resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.12.tgz#923d0f5b6e12ee0d1fe116b08e4ae4478fe40693" - integrity sha512-G9w6NcuuCI6TUUxe6ka0enjZHDnSVK8bO+1qDhMOCtl7Tr78CcZilJj8SGLN00zO5iIlwNRZKHjdMpfFgNn1VA== - -esbuild-linux-s390x@0.15.12: - version "0.15.12" - resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.12.tgz#3b1620220482b96266a0c6d9d471d451a1eab86f" - integrity sha512-Lt6BDnuXbXeqSlVuuUM5z18GkJAZf3ERskGZbAWjrQoi9xbEIsj/hEzVnSAFLtkfLuy2DE4RwTcX02tZFunXww== - -esbuild-netbsd-64@0.15.12: - version "0.15.12" - resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.12.tgz#276730f80da646859b1af5a740e7802d8cd73e42" - integrity sha512-jlUxCiHO1dsqoURZDQts+HK100o0hXfi4t54MNRMCAqKGAV33JCVvMplLAa2FwviSojT/5ZG5HUfG3gstwAG8w== - -esbuild-openbsd-64@0.15.12: - version "0.15.12" - resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.12.tgz#bd0eea1dd2ca0722ed489d88c26714034429f8ae" - integrity sha512-1o1uAfRTMIWNOmpf8v7iudND0L6zRBYSH45sofCZywrcf7NcZA+c7aFsS1YryU+yN7aRppTqdUK1PgbZVaB1Dw== - -esbuild-sunos-64@0.15.12: - version "0.15.12" - resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.12.tgz#5e56bf9eef3b2d92360d6d29dcde7722acbecc9e" - integrity sha512-nkl251DpoWoBO9Eq9aFdoIt2yYmp4I3kvQjba3jFKlMXuqQ9A4q+JaqdkCouG3DHgAGnzshzaGu6xofGcXyPXg== - -esbuild-windows-32@0.15.12: - version "0.15.12" - resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.12.tgz#a4f1a301c1a2fa7701fcd4b91ef9d2620cf293d0" - integrity sha512-WlGeBZHgPC00O08luIp5B2SP4cNCp/PcS+3Pcg31kdcJPopHxLkdCXtadLU9J82LCfw4TVls21A6lilQ9mzHrw== - -esbuild-windows-64@0.15.12: - version "0.15.12" - resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.12.tgz#bc2b467541744d653be4fe64eaa9b0dbbf8e07f6" - integrity sha512-VActO3WnWZSN//xjSfbiGOSyC+wkZtI8I4KlgrTo5oHJM6z3MZZBCuFaZHd8hzf/W9KPhF0lY8OqlmWC9HO5AA== - -esbuild-windows-arm64@0.15.12: - version "0.15.12" - resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.12.tgz#9a7266404334a86be800957eaee9aef94c3df328" - integrity sha512-Of3MIacva1OK/m4zCNIvBfz8VVROBmQT+gRX6pFTLPngFYcj6TFH/12VveAqq1k9VB2l28EoVMNMUCcmsfwyuA== - -esbuild@^0.15.12: - version "0.15.12" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.12.tgz#6c8e22d6d3b7430d165c33848298d3fc9a1f251c" - integrity sha512-PcT+/wyDqJQsRVhaE9uX/Oq4XLrFh0ce/bs2TJh4CSaw9xuvI+xFrH2nAYOADbhQjUgAhNWC5LKoUsakm4dxng== +esbuild-android-64@0.15.13: + version "0.15.13" + resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.13.tgz#5f25864055dbd62e250f360b38b4c382224063af" + integrity sha512-yRorukXBlokwTip+Sy4MYskLhJsO0Kn0/Fj43s1krVblfwP+hMD37a4Wmg139GEsMLl+vh8WXp2mq/cTA9J97g== + +esbuild-android-arm64@0.15.13: + version "0.15.13" + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.13.tgz#d8820f999314efbe8e0f050653a99ff2da632b0f" + integrity sha512-TKzyymLD6PiVeyYa4c5wdPw87BeAiTXNtK6amWUcXZxkV51gOk5u5qzmDaYSwiWeecSNHamFsaFjLoi32QR5/w== + +esbuild-darwin-64@0.15.13: + version "0.15.13" + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.13.tgz#99ae7fdaa43947b06cd9d1a1c3c2c9f245d81fd0" + integrity sha512-WAx7c2DaOS6CrRcoYCgXgkXDliLnFv3pQLV6GeW1YcGEZq2Gnl8s9Pg7ahValZkpOa0iE/ojRVQ87sbUhF1Cbg== + +esbuild-darwin-arm64@0.15.13: + version "0.15.13" + resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.13.tgz#bafa1814354ad1a47adcad73de416130ef7f55e3" + integrity sha512-U6jFsPfSSxC3V1CLiQqwvDuj3GGrtQNB3P3nNC3+q99EKf94UGpsG9l4CQ83zBs1NHrk1rtCSYT0+KfK5LsD8A== + +esbuild-freebsd-64@0.15.13: + version "0.15.13" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.13.tgz#84ef85535c5cc38b627d1c5115623b088d1de161" + integrity sha512-whItJgDiOXaDG/idy75qqevIpZjnReZkMGCgQaBWZuKHoElDJC1rh7MpoUgupMcdfOd+PgdEwNQW9DAE6i8wyA== + +esbuild-freebsd-arm64@0.15.13: + version "0.15.13" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.13.tgz#033f21de434ec8e0c478054b119af8056763c2d8" + integrity sha512-6pCSWt8mLUbPtygv7cufV0sZLeylaMwS5Fznj6Rsx9G2AJJsAjQ9ifA+0rQEIg7DwJmi9it+WjzNTEAzzdoM3Q== + +esbuild-linux-32@0.15.13: + version "0.15.13" + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.13.tgz#54290ea8035cba0faf1791ce9ae6693005512535" + integrity sha512-VbZdWOEdrJiYApm2kkxoTOgsoCO1krBZ3quHdYk3g3ivWaMwNIVPIfEE0f0XQQ0u5pJtBsnk2/7OPiCFIPOe/w== + +esbuild-linux-64@0.15.13: + version "0.15.13" + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.13.tgz#4264249281ea388ead948614b57fb1ddf7779a2c" + integrity sha512-rXmnArVNio6yANSqDQlIO4WiP+Cv7+9EuAHNnag7rByAqFVuRusLbGi2697A5dFPNXoO//IiogVwi3AdcfPC6A== + +esbuild-linux-arm64@0.15.13: + version "0.15.13" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.13.tgz#9323c333924f97a02bdd2ae8912b36298acb312d" + integrity sha512-alEMGU4Z+d17U7KQQw2IV8tQycO6T+rOrgW8OS22Ua25x6kHxoG6Ngry6Aq6uranC+pNWNMB6aHFPh7aTQdORQ== + +esbuild-linux-arm@0.15.13: + version "0.15.13" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.13.tgz#b407f47b3ae721fe4e00e19e9f19289bef87a111" + integrity sha512-Ac6LpfmJO8WhCMQmO253xX2IU2B3wPDbl4IvR0hnqcPrdfCaUa2j/lLMGTjmQ4W5JsJIdHEdW12dG8lFS0MbxQ== + +esbuild-linux-mips64le@0.15.13: + version "0.15.13" + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.13.tgz#bdf905aae5c0bcaa8f83567fe4c4c1bdc1f14447" + integrity sha512-47PgmyYEu+yN5rD/MbwS6DxP2FSGPo4Uxg5LwIdxTiyGC2XKwHhHyW7YYEDlSuXLQXEdTO7mYe8zQ74czP7W8A== + +esbuild-linux-ppc64le@0.15.13: + version "0.15.13" + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.13.tgz#2911eae1c90ff58a3bd3259cb557235df25aa3b4" + integrity sha512-z6n28h2+PC1Ayle9DjKoBRcx/4cxHoOa2e689e2aDJSaKug3jXcQw7mM+GLg+9ydYoNzj8QxNL8ihOv/OnezhA== + +esbuild-linux-riscv64@0.15.13: + version "0.15.13" + resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.13.tgz#1837c660be12b1d20d2a29c7189ea703f93e9265" + integrity sha512-+Lu4zuuXuQhgLUGyZloWCqTslcCAjMZH1k3Xc9MSEJEpEFdpsSU0sRDXAnk18FKOfEjhu4YMGaykx9xjtpA6ow== + +esbuild-linux-s390x@0.15.13: + version "0.15.13" + resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.13.tgz#d52880ece229d1bd10b2d936b792914ffb07c7fc" + integrity sha512-BMeXRljruf7J0TMxD5CIXS65y7puiZkAh+s4XFV9qy16SxOuMhxhVIXYLnbdfLrsYGFzx7U9mcdpFWkkvy/Uag== + +esbuild-netbsd-64@0.15.13: + version "0.15.13" + resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.13.tgz#de14da46f1d20352b43e15d97a80a8788275e6ed" + integrity sha512-EHj9QZOTel581JPj7UO3xYbltFTYnHy+SIqJVq6yd3KkCrsHRbapiPb0Lx3EOOtybBEE9EyqbmfW1NlSDsSzvQ== + +esbuild-openbsd-64@0.15.13: + version "0.15.13" + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.13.tgz#45e8a5fd74d92ad8f732c43582369c7990f5a0ac" + integrity sha512-nkuDlIjF/sfUhfx8SKq0+U+Fgx5K9JcPq1mUodnxI0x4kBdCv46rOGWbuJ6eof2n3wdoCLccOoJAbg9ba/bT2w== + +esbuild-sunos-64@0.15.13: + version "0.15.13" + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.13.tgz#f646ac3da7aac521ee0fdbc192750c87da697806" + integrity sha512-jVeu2GfxZQ++6lRdY43CS0Tm/r4WuQQ0Pdsrxbw+aOrHQPHV0+LNOLnvbN28M7BSUGnJnHkHm2HozGgNGyeIRw== + +esbuild-windows-32@0.15.13: + version "0.15.13" + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.13.tgz#fb4fe77c7591418880b3c9b5900adc4c094f2401" + integrity sha512-XoF2iBf0wnqo16SDq+aDGi/+QbaLFpkiRarPVssMh9KYbFNCqPLlGAWwDvxEVz+ywX6Si37J2AKm+AXq1kC0JA== + +esbuild-windows-64@0.15.13: + version "0.15.13" + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.13.tgz#1fca8c654392c0c31bdaaed168becfea80e20660" + integrity sha512-Et6htEfGycjDrtqb2ng6nT+baesZPYQIW+HUEHK4D1ncggNrDNk3yoboYQ5KtiVrw/JaDMNttz8rrPubV/fvPQ== + +esbuild-windows-arm64@0.15.13: + version "0.15.13" + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.13.tgz#4ffd01b6b2888603f1584a2fe96b1f6a6f2b3dd8" + integrity sha512-3bv7tqntThQC9SWLRouMDmZnlOukBhOCTlkzNqzGCmrkCJI7io5LLjwJBOVY6kOUlIvdxbooNZwjtBvj+7uuVg== + +esbuild@^0.15.13: + version "0.15.13" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.13.tgz#7293480038feb2bafa91d3f6a20edab3ba6c108a" + integrity sha512-Cu3SC84oyzzhrK/YyN4iEVy2jZu5t2fz66HEOShHURcjSkOSAVL8C/gfUT+lDJxkVHpg8GZ10DD0rMHRPqMFaQ== optionalDependencies: - "@esbuild/android-arm" "0.15.12" - "@esbuild/linux-loong64" "0.15.12" - esbuild-android-64 "0.15.12" - esbuild-android-arm64 "0.15.12" - esbuild-darwin-64 "0.15.12" - esbuild-darwin-arm64 "0.15.12" - esbuild-freebsd-64 "0.15.12" - esbuild-freebsd-arm64 "0.15.12" - esbuild-linux-32 "0.15.12" - esbuild-linux-64 "0.15.12" - esbuild-linux-arm "0.15.12" - esbuild-linux-arm64 "0.15.12" - esbuild-linux-mips64le "0.15.12" - esbuild-linux-ppc64le "0.15.12" - esbuild-linux-riscv64 "0.15.12" - esbuild-linux-s390x "0.15.12" - esbuild-netbsd-64 "0.15.12" - esbuild-openbsd-64 "0.15.12" - esbuild-sunos-64 "0.15.12" - esbuild-windows-32 "0.15.12" - esbuild-windows-64 "0.15.12" - esbuild-windows-arm64 "0.15.12" + "@esbuild/android-arm" "0.15.13" + "@esbuild/linux-loong64" "0.15.13" + esbuild-android-64 "0.15.13" + esbuild-android-arm64 "0.15.13" + esbuild-darwin-64 "0.15.13" + esbuild-darwin-arm64 "0.15.13" + esbuild-freebsd-64 "0.15.13" + esbuild-freebsd-arm64 "0.15.13" + esbuild-linux-32 "0.15.13" + esbuild-linux-64 "0.15.13" + esbuild-linux-arm "0.15.13" + esbuild-linux-arm64 "0.15.13" + esbuild-linux-mips64le "0.15.13" + esbuild-linux-ppc64le "0.15.13" + esbuild-linux-riscv64 "0.15.13" + esbuild-linux-s390x "0.15.13" + esbuild-netbsd-64 "0.15.13" + esbuild-openbsd-64 "0.15.13" + esbuild-sunos-64 "0.15.13" + esbuild-windows-32 "0.15.13" + esbuild-windows-64 "0.15.13" + esbuild-windows-arm64 "0.15.13" ev-emitter@^1.0.0: version "1.1.1" From b4a9824fcd1309fdffd37197b6a06d57ea6dcfe4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 8 Nov 2022 21:00:50 +0000 Subject: [PATCH 1212/2165] chore(deps): bump sentry-ruby from 5.5.0 to 5.6.0 Bumps [sentry-ruby](https://github.com/getsentry/sentry-ruby) from 5.5.0 to 5.6.0. - [Release notes](https://github.com/getsentry/sentry-ruby/releases) - [Changelog](https://github.com/getsentry/sentry-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-ruby/compare/5.5.0...5.6.0) --- updated-dependencies: - dependency-name: sentry-ruby dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 20892d32e..a92c442e0 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -423,13 +423,13 @@ GEM rubyzip (2.3.2) rufus-scheduler (3.8.2) fugit (~> 1.1, >= 1.1.6) - sentry-rails (5.5.0) + sentry-rails (5.6.0) railties (>= 5.0) - sentry-ruby (~> 5.5.0) - sentry-ruby (5.5.0) + sentry-ruby (~> 5.6.0) + sentry-ruby (5.6.0) concurrent-ruby (~> 1.0, >= 1.0.2) - sentry-sidekiq (5.5.0) - sentry-ruby (~> 5.5.0) + sentry-sidekiq (5.6.0) + sentry-ruby (~> 5.6.0) sidekiq (>= 3.0) shellany (0.0.1) sidekiq (6.5.7) From b172909e6cec977d12127dd4a17b5fca1bca153c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 9 Nov 2022 02:20:28 +0000 Subject: [PATCH 1213/2165] chore(deps): bump sidekiq from 6.5.7 to 6.5.8 Bumps [sidekiq](https://github.com/mperham/sidekiq) from 6.5.7 to 6.5.8. - [Release notes](https://github.com/mperham/sidekiq/releases) - [Changelog](https://github.com/mperham/sidekiq/blob/main/Changes.md) - [Commits](https://github.com/mperham/sidekiq/compare/v6.5.7...v6.5.8) --- updated-dependencies: - dependency-name: sidekiq dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index 4e5952991..d42af220b 100644 --- a/Gemfile +++ b/Gemfile @@ -85,7 +85,7 @@ gem 'rqrcode' # 异步队列 gem 'activejob-status' -gem 'sidekiq', '~> 6.5.7' +gem 'sidekiq', '~> 6.5.8' gem 'sidekiq-scheduler', '~> 4.0.3' gem 'sidekiq-failures', '~> 1.0.4' diff --git a/Gemfile.lock b/Gemfile.lock index a92c442e0..03f205ebf 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -432,8 +432,8 @@ GEM sentry-ruby (~> 5.6.0) sidekiq (>= 3.0) shellany (0.0.1) - sidekiq (6.5.7) - connection_pool (>= 2.2.5) + sidekiq (6.5.8) + connection_pool (>= 2.2.5, < 3) rack (~> 2.0) redis (>= 4.5.0, < 5) sidekiq-failures (1.0.4) @@ -567,7 +567,7 @@ DEPENDENCIES sentry-rails sentry-ruby sentry-sidekiq - sidekiq (~> 6.5.7) + sidekiq (~> 6.5.8) sidekiq-failures (~> 1.0.4) sidekiq-scheduler (~> 4.0.3) simple_form (~> 5.1) From 4c9838af03f4e64d2b0c44d7dc7c490bfb7833a8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 9 Nov 2022 02:23:18 +0000 Subject: [PATCH 1214/2165] chore(deps): bump activejob-status from 0.2.2 to 0.3.0 Bumps [activejob-status](https://github.com/inkstak/activejob-status) from 0.2.2 to 0.3.0. - [Release notes](https://github.com/inkstak/activejob-status/releases) - [Commits](https://github.com/inkstak/activejob-status/compare/v0.2.2...v0.3.0) --- updated-dependencies: - dependency-name: activejob-status dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 03f205ebf..beac08610 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -56,7 +56,7 @@ GEM activejob (7.0.4) activesupport (= 7.0.4) globalid (>= 0.3.6) - activejob-status (0.2.2) + activejob-status (0.3.0) activejob (>= 4.2) activesupport (>= 4.2) activemodel (7.0.4) From 83fee7f274dba88506fa41d6e766c4a174ebf11a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 9 Nov 2022 21:01:28 +0000 Subject: [PATCH 1215/2165] chore(deps): bump sass from 1.55.0 to 1.56.1 Bumps [sass](https://github.com/sass/dart-sass) from 1.55.0 to 1.56.1. - [Release notes](https://github.com/sass/dart-sass/releases) - [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md) - [Commits](https://github.com/sass/dart-sass/compare/1.55.0...1.56.1) --- updated-dependencies: - dependency-name: sass dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index ce4b3e4bc..bd25c3e21 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "clipboard": "^2.0.11", "compare-versions": "^5.0.1", "esbuild": "^0.15.13", - "sass": "^1.55.0", + "sass": "^1.56.1", "ua-parser-js": "^1.0.32" }, "scripts": { diff --git a/yarn.lock b/yarn.lock index aeabceac1..9134ffa0e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1428,10 +1428,10 @@ safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sass@^1.55.0: - version "1.55.0" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.55.0.tgz#0c4d3c293cfe8f8a2e8d3b666e1cf1bff8065d1c" - integrity sha512-Pk+PMy7OGLs9WaxZGJMn7S96dvlyVBwwtToX895WmCpAOr5YiJYEUJfiJidMuKb613z2xNWcXCHEuOvjZbqC6A== +sass@^1.56.1: + version "1.56.1" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.56.1.tgz#94d3910cd468fd075fa87f5bb17437a0b617d8a7" + integrity sha512-VpEyKpyBPCxE7qGDtOcdJ6fFbcpOM+Emu7uZLxVrkX8KVU/Dp5UF7WLvzqRuUhB6mqqQt1xffLoG+AndxTZrCQ== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" From a04453a7984b239acc64e8ed64d95c9980ad45df Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 11 Nov 2022 12:56:27 +0800 Subject: [PATCH 1216/2165] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E7=8E=AF?= =?UTF-8?q?=E5=A2=83=E5=8F=98=E9=87=8F=E6=9D=A5=E5=85=B3=E9=97=AD=20Cable?= =?UTF-8?q?=20=E7=9A=84=E8=AF=B7=E6=B1=82=E4=BF=9D=E6=8A=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/initializers/0_hosts.rb | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/config/initializers/0_hosts.rb b/config/initializers/0_hosts.rb index cfeb64742..f8c91af8f 100644 --- a/config/initializers/0_hosts.rb +++ b/config/initializers/0_hosts.rb @@ -2,14 +2,18 @@ Rails.configuration.to_prepare do url_options = Setting.url_options + Rails.application.routes.default_url_options = url_options + # Configure ActionCable request protection Rails.application.configure do - config.action_mailer.default_url_options = url_options + if ENV.fetch('ZEALOT_DISABLE_CABLE_REQUEST_PROTECTION') { 'false' } == 'true' + config.action_cable.disable_request_forgery_protection = true + else + config.action_mailer.default_url_options = url_options - config.action_cable.allowed_request_origins = [ - /http(s)?:\/\/#{Setting.site_domain}/ - ] + config.action_cable.allowed_request_origins = [ + /http(s)?:\/\/#{Setting.site_domain}/ + ] + end end - - Rails.application.routes.default_url_options = url_options end \ No newline at end of file From 57133334bd623cc0916d55e6236fe12625fc7551 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 14 Nov 2022 15:41:14 +0800 Subject: [PATCH 1217/2165] =?UTF-8?q?feat:=20=E5=BC=80=E6=94=BE=20CORS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/application.rb | 7 ------- config/initializers/0_hosts.rb | 4 ++-- config/initializers/cors.rb | 18 +++++++++--------- 3 files changed, 11 insertions(+), 18 deletions(-) diff --git a/config/application.rb b/config/application.rb index 5fbacb59a..eae0d4689 100644 --- a/config/application.rb +++ b/config/application.rb @@ -56,13 +56,6 @@ class Application < Rails::Application # config.action_cable.url = ENV['ACTION_CABLE_FRONTEND_URL'] || 'ws://localhost:28080' config.action_cable.mount_path = '/cable' - # Action Cable setting to allow connections from these domains. - # if origins = ENV['ACTION_CABLE_ALLOWED_REQUEST_ORIGINS'] - # origins = origins.split(',') - # origins.map! { |url| /#{url}/ } - # config.action_cable.allowed_request_origins = origins - # end - # Auto load path config.autoload_paths += Dir["#{config.root}/lib"] config.eager_load_paths += Dir["#{config.root}/lib"] diff --git a/config/initializers/0_hosts.rb b/config/initializers/0_hosts.rb index f8c91af8f..8e72544aa 100644 --- a/config/initializers/0_hosts.rb +++ b/config/initializers/0_hosts.rb @@ -6,11 +6,11 @@ # Configure ActionCable request protection Rails.application.configure do + config.action_mailer.default_url_options = url_options + if ENV.fetch('ZEALOT_DISABLE_CABLE_REQUEST_PROTECTION') { 'false' } == 'true' config.action_cable.disable_request_forgery_protection = true else - config.action_mailer.default_url_options = url_options - config.action_cable.allowed_request_origins = [ /http(s)?:\/\/#{Setting.site_domain}/ ] diff --git a/config/initializers/cors.rb b/config/initializers/cors.rb index 3b1c1b5ed..ebdf0ee19 100644 --- a/config/initializers/cors.rb +++ b/config/initializers/cors.rb @@ -5,12 +5,12 @@ # Read more: https://github.com/cyu/rack-cors -# Rails.application.config.middleware.insert_before 0, Rack::Cors do -# allow do -# origins 'example.com' -# -# resource '*', -# headers: :any, -# methods: [:get, :post, :put, :patch, :delete, :options, :head] -# end -# end +Rails.application.config.middleware.insert_before 0, Rack::Cors do + allow do + origins '*' + + resource '*', + headers: :any, + methods: [:get, :post, :put, :patch, :delete, :options, :head] + end +end From fd69351d39708ed4c2e3cb14370640e858483b70 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 14 Nov 2022 16:09:00 +0800 Subject: [PATCH 1218/2165] =?UTF-8?q?Revert=20"feat:=20=E5=BC=80=E6=94=BE?= =?UTF-8?q?=20CORS"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 57133334bd623cc0916d55e6236fe12625fc7551. --- config/application.rb | 7 +++++++ config/initializers/0_hosts.rb | 4 ++-- config/initializers/cors.rb | 18 +++++++++--------- 3 files changed, 18 insertions(+), 11 deletions(-) diff --git a/config/application.rb b/config/application.rb index eae0d4689..5fbacb59a 100644 --- a/config/application.rb +++ b/config/application.rb @@ -56,6 +56,13 @@ class Application < Rails::Application # config.action_cable.url = ENV['ACTION_CABLE_FRONTEND_URL'] || 'ws://localhost:28080' config.action_cable.mount_path = '/cable' + # Action Cable setting to allow connections from these domains. + # if origins = ENV['ACTION_CABLE_ALLOWED_REQUEST_ORIGINS'] + # origins = origins.split(',') + # origins.map! { |url| /#{url}/ } + # config.action_cable.allowed_request_origins = origins + # end + # Auto load path config.autoload_paths += Dir["#{config.root}/lib"] config.eager_load_paths += Dir["#{config.root}/lib"] diff --git a/config/initializers/0_hosts.rb b/config/initializers/0_hosts.rb index 8e72544aa..f8c91af8f 100644 --- a/config/initializers/0_hosts.rb +++ b/config/initializers/0_hosts.rb @@ -6,11 +6,11 @@ # Configure ActionCable request protection Rails.application.configure do - config.action_mailer.default_url_options = url_options - if ENV.fetch('ZEALOT_DISABLE_CABLE_REQUEST_PROTECTION') { 'false' } == 'true' config.action_cable.disable_request_forgery_protection = true else + config.action_mailer.default_url_options = url_options + config.action_cable.allowed_request_origins = [ /http(s)?:\/\/#{Setting.site_domain}/ ] diff --git a/config/initializers/cors.rb b/config/initializers/cors.rb index ebdf0ee19..3b1c1b5ed 100644 --- a/config/initializers/cors.rb +++ b/config/initializers/cors.rb @@ -5,12 +5,12 @@ # Read more: https://github.com/cyu/rack-cors -Rails.application.config.middleware.insert_before 0, Rack::Cors do - allow do - origins '*' - - resource '*', - headers: :any, - methods: [:get, :post, :put, :patch, :delete, :options, :head] - end -end +# Rails.application.config.middleware.insert_before 0, Rack::Cors do +# allow do +# origins 'example.com' +# +# resource '*', +# headers: :any, +# methods: [:get, :post, :put, :patch, :delete, :options, :head] +# end +# end From eb53fdc9f8fe56a56b871e0d6732fd29a7d14acc Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 14 Nov 2022 16:10:27 +0800 Subject: [PATCH 1219/2165] =?UTF-8?q?fix:=20=E7=AC=AC=E4=B8=89=E6=96=B9?= =?UTF-8?q?=E7=99=BB=E5=BD=95=E6=97=A0=E6=B3=95=E8=B7=B3=E8=BD=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/devise_helper.rb | 2 +- config/initializers/cors.rb | 18 ++++++++++-------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/app/helpers/devise_helper.rb b/app/helpers/devise_helper.rb index 197654aaa..797f2c7cc 100644 --- a/app/helpers/devise_helper.rb +++ b/app/helpers/devise_helper.rb @@ -8,7 +8,7 @@ def devise_provider_login_path(name) provider = t("devise.shared.links.provider.#{key}", default: fallback_title) title = t('devise.shared.links.sign_in_with_provider', provider: provider) url = [:user, name.to_sym, :omniauth, :authorize] - button_to(url, class: 'btn btn-block btn-default text-left', method: :post) do + button_to(url, class: 'btn btn-block btn-default text-left', method: :post, data: { turbo: false }) do raw(%Q(#{title} )) end end diff --git a/config/initializers/cors.rb b/config/initializers/cors.rb index 3b1c1b5ed..c8e760fb4 100644 --- a/config/initializers/cors.rb +++ b/config/initializers/cors.rb @@ -5,12 +5,14 @@ # Read more: https://github.com/cyu/rack-cors -# Rails.application.config.middleware.insert_before 0, Rack::Cors do -# allow do -# origins 'example.com' -# -# resource '*', -# headers: :any, -# methods: [:get, :post, :put, :patch, :delete, :options, :head] +# Rails.configuration.to_prepare do +# Rails.application.config.middleware.insert_before 0, Rack::Cors do +# allow do +# origins Setting.site_domain + +# resource '*', +# headers: :any, +# methods: [:get, :post, :put, :patch, :delete, :options, :head] +# end # end -# end +# end \ No newline at end of file From 69b6313fa62601c91a0414c3cfe3100c55f6677e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 15 Nov 2022 21:00:46 +0000 Subject: [PATCH 1220/2165] chore(deps): bump faraday from 2.6.0 to 2.7.0 Bumps [faraday](https://github.com/lostisland/faraday) from 2.6.0 to 2.7.0. - [Release notes](https://github.com/lostisland/faraday/releases) - [Changelog](https://github.com/lostisland/faraday/blob/main/CHANGELOG.md) - [Commits](https://github.com/lostisland/faraday/compare/v2.6.0...v2.7.0) --- updated-dependencies: - dependency-name: faraday dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index d42af220b..ba4b7d0a3 100644 --- a/Gemfile +++ b/Gemfile @@ -42,7 +42,7 @@ gem 'webp-ffi', '~> 0.3.1' # Helper ## HTTP 请求 -gem 'faraday', '~> 2.6.0' +gem 'faraday', '~> 2.7.0' ## 用户认证 gem 'pundit', '~> 2.2.0' diff --git a/Gemfile.lock b/Gemfile.lock index beac08610..bd7d866c1 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -141,10 +141,10 @@ GEM erubi (1.11.0) et-orbi (1.2.7) tzinfo - faraday (2.6.0) + faraday (2.7.0) faraday-net_http (>= 2.0, < 3.1) ruby2_keywords (>= 0.0.4) - faraday-net_http (3.0.0) + faraday-net_http (3.0.2) ffi (1.15.5) ffi-compiler (1.0.1) ffi (>= 1.0.0) @@ -520,7 +520,7 @@ DEPENDENCIES devise (~> 4.8.1) devise-i18n (~> 1.10.2) dotenv-rails - faraday (~> 2.6.0) + faraday (~> 2.7.0) friendly_id (~> 5.4.2) graphiql-rails graphql (~> 2.0.15) From 0eea4c08516822fb4e9c52b1a53e2504ebe5d496 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 15 Nov 2022 21:00:50 +0000 Subject: [PATCH 1221/2165] chore(deps): bump esbuild from 0.15.13 to 0.15.14 Bumps [esbuild](https://github.com/evanw/esbuild) from 0.15.13 to 0.15.14. - [Release notes](https://github.com/evanw/esbuild/releases) - [Changelog](https://github.com/evanw/esbuild/blob/master/CHANGELOG.md) - [Commits](https://github.com/evanw/esbuild/compare/v0.15.13...v0.15.14) --- updated-dependencies: - dependency-name: esbuild dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 268 +++++++++++++++++++++++++-------------------------- 2 files changed, 135 insertions(+), 135 deletions(-) diff --git a/package.json b/package.json index bd25c3e21..92d1680cf 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "admin-lte": "3.1.0", "clipboard": "^2.0.11", "compare-versions": "^5.0.1", - "esbuild": "^0.15.13", + "esbuild": "^0.15.14", "sass": "^1.56.1", "ua-parser-js": "^1.0.32" }, diff --git a/yarn.lock b/yarn.lock index 9134ffa0e..cfd42e7dc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,15 +2,15 @@ # yarn lockfile v1 -"@esbuild/android-arm@0.15.13": - version "0.15.13" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.15.13.tgz#ce11237a13ee76d5eae3908e47ba4ddd380af86a" - integrity sha512-RY2fVI8O0iFUNvZirXaQ1vMvK0xhCcl0gqRj74Z6yEiO1zAUa7hbsdwZM1kzqbxHK7LFyMizipfXT3JME+12Hw== +"@esbuild/android-arm@0.15.14": + version "0.15.14" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.15.14.tgz#5d0027f920eeeac313c01fd6ecb8af50c306a466" + integrity sha512-+Rb20XXxRGisNu2WmNKk+scpanb7nL5yhuI1KR9wQFiC43ddPj/V1fmNyzlFC9bKiG4mYzxW7egtoHVcynr+OA== -"@esbuild/linux-loong64@0.15.13": - version "0.15.13" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.13.tgz#64e8825bf0ce769dac94ee39d92ebe6272020dfc" - integrity sha512-+BoyIm4I8uJmH/QDIH0fu7MG0AEx9OXEDXnqptXCwKOlOqZiS4iraH1Nr7/ObLMokW3sOCeBNyD68ATcV9b9Ag== +"@esbuild/linux-loong64@0.15.14": + version "0.15.14" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.14.tgz#1221684955c44385f8af34f7240088b7dc08d19d" + integrity sha512-eQi9rosGNVQFJyJWV0HCA5WZae/qWIQME7s8/j8DMvnylfBv62Pbu+zJ2eUDqNf2O4u3WB+OEXyfkpBoe194sg== "@fortawesome/fontawesome-free@^5.15.3": version "5.15.4" @@ -677,133 +677,133 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -esbuild-android-64@0.15.13: - version "0.15.13" - resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.13.tgz#5f25864055dbd62e250f360b38b4c382224063af" - integrity sha512-yRorukXBlokwTip+Sy4MYskLhJsO0Kn0/Fj43s1krVblfwP+hMD37a4Wmg139GEsMLl+vh8WXp2mq/cTA9J97g== - -esbuild-android-arm64@0.15.13: - version "0.15.13" - resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.13.tgz#d8820f999314efbe8e0f050653a99ff2da632b0f" - integrity sha512-TKzyymLD6PiVeyYa4c5wdPw87BeAiTXNtK6amWUcXZxkV51gOk5u5qzmDaYSwiWeecSNHamFsaFjLoi32QR5/w== - -esbuild-darwin-64@0.15.13: - version "0.15.13" - resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.13.tgz#99ae7fdaa43947b06cd9d1a1c3c2c9f245d81fd0" - integrity sha512-WAx7c2DaOS6CrRcoYCgXgkXDliLnFv3pQLV6GeW1YcGEZq2Gnl8s9Pg7ahValZkpOa0iE/ojRVQ87sbUhF1Cbg== - -esbuild-darwin-arm64@0.15.13: - version "0.15.13" - resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.13.tgz#bafa1814354ad1a47adcad73de416130ef7f55e3" - integrity sha512-U6jFsPfSSxC3V1CLiQqwvDuj3GGrtQNB3P3nNC3+q99EKf94UGpsG9l4CQ83zBs1NHrk1rtCSYT0+KfK5LsD8A== - -esbuild-freebsd-64@0.15.13: - version "0.15.13" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.13.tgz#84ef85535c5cc38b627d1c5115623b088d1de161" - integrity sha512-whItJgDiOXaDG/idy75qqevIpZjnReZkMGCgQaBWZuKHoElDJC1rh7MpoUgupMcdfOd+PgdEwNQW9DAE6i8wyA== - -esbuild-freebsd-arm64@0.15.13: - version "0.15.13" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.13.tgz#033f21de434ec8e0c478054b119af8056763c2d8" - integrity sha512-6pCSWt8mLUbPtygv7cufV0sZLeylaMwS5Fznj6Rsx9G2AJJsAjQ9ifA+0rQEIg7DwJmi9it+WjzNTEAzzdoM3Q== - -esbuild-linux-32@0.15.13: - version "0.15.13" - resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.13.tgz#54290ea8035cba0faf1791ce9ae6693005512535" - integrity sha512-VbZdWOEdrJiYApm2kkxoTOgsoCO1krBZ3quHdYk3g3ivWaMwNIVPIfEE0f0XQQ0u5pJtBsnk2/7OPiCFIPOe/w== - -esbuild-linux-64@0.15.13: - version "0.15.13" - resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.13.tgz#4264249281ea388ead948614b57fb1ddf7779a2c" - integrity sha512-rXmnArVNio6yANSqDQlIO4WiP+Cv7+9EuAHNnag7rByAqFVuRusLbGi2697A5dFPNXoO//IiogVwi3AdcfPC6A== - -esbuild-linux-arm64@0.15.13: - version "0.15.13" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.13.tgz#9323c333924f97a02bdd2ae8912b36298acb312d" - integrity sha512-alEMGU4Z+d17U7KQQw2IV8tQycO6T+rOrgW8OS22Ua25x6kHxoG6Ngry6Aq6uranC+pNWNMB6aHFPh7aTQdORQ== - -esbuild-linux-arm@0.15.13: - version "0.15.13" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.13.tgz#b407f47b3ae721fe4e00e19e9f19289bef87a111" - integrity sha512-Ac6LpfmJO8WhCMQmO253xX2IU2B3wPDbl4IvR0hnqcPrdfCaUa2j/lLMGTjmQ4W5JsJIdHEdW12dG8lFS0MbxQ== - -esbuild-linux-mips64le@0.15.13: - version "0.15.13" - resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.13.tgz#bdf905aae5c0bcaa8f83567fe4c4c1bdc1f14447" - integrity sha512-47PgmyYEu+yN5rD/MbwS6DxP2FSGPo4Uxg5LwIdxTiyGC2XKwHhHyW7YYEDlSuXLQXEdTO7mYe8zQ74czP7W8A== - -esbuild-linux-ppc64le@0.15.13: - version "0.15.13" - resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.13.tgz#2911eae1c90ff58a3bd3259cb557235df25aa3b4" - integrity sha512-z6n28h2+PC1Ayle9DjKoBRcx/4cxHoOa2e689e2aDJSaKug3jXcQw7mM+GLg+9ydYoNzj8QxNL8ihOv/OnezhA== - -esbuild-linux-riscv64@0.15.13: - version "0.15.13" - resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.13.tgz#1837c660be12b1d20d2a29c7189ea703f93e9265" - integrity sha512-+Lu4zuuXuQhgLUGyZloWCqTslcCAjMZH1k3Xc9MSEJEpEFdpsSU0sRDXAnk18FKOfEjhu4YMGaykx9xjtpA6ow== - -esbuild-linux-s390x@0.15.13: - version "0.15.13" - resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.13.tgz#d52880ece229d1bd10b2d936b792914ffb07c7fc" - integrity sha512-BMeXRljruf7J0TMxD5CIXS65y7puiZkAh+s4XFV9qy16SxOuMhxhVIXYLnbdfLrsYGFzx7U9mcdpFWkkvy/Uag== - -esbuild-netbsd-64@0.15.13: - version "0.15.13" - resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.13.tgz#de14da46f1d20352b43e15d97a80a8788275e6ed" - integrity sha512-EHj9QZOTel581JPj7UO3xYbltFTYnHy+SIqJVq6yd3KkCrsHRbapiPb0Lx3EOOtybBEE9EyqbmfW1NlSDsSzvQ== - -esbuild-openbsd-64@0.15.13: - version "0.15.13" - resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.13.tgz#45e8a5fd74d92ad8f732c43582369c7990f5a0ac" - integrity sha512-nkuDlIjF/sfUhfx8SKq0+U+Fgx5K9JcPq1mUodnxI0x4kBdCv46rOGWbuJ6eof2n3wdoCLccOoJAbg9ba/bT2w== - -esbuild-sunos-64@0.15.13: - version "0.15.13" - resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.13.tgz#f646ac3da7aac521ee0fdbc192750c87da697806" - integrity sha512-jVeu2GfxZQ++6lRdY43CS0Tm/r4WuQQ0Pdsrxbw+aOrHQPHV0+LNOLnvbN28M7BSUGnJnHkHm2HozGgNGyeIRw== - -esbuild-windows-32@0.15.13: - version "0.15.13" - resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.13.tgz#fb4fe77c7591418880b3c9b5900adc4c094f2401" - integrity sha512-XoF2iBf0wnqo16SDq+aDGi/+QbaLFpkiRarPVssMh9KYbFNCqPLlGAWwDvxEVz+ywX6Si37J2AKm+AXq1kC0JA== - -esbuild-windows-64@0.15.13: - version "0.15.13" - resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.13.tgz#1fca8c654392c0c31bdaaed168becfea80e20660" - integrity sha512-Et6htEfGycjDrtqb2ng6nT+baesZPYQIW+HUEHK4D1ncggNrDNk3yoboYQ5KtiVrw/JaDMNttz8rrPubV/fvPQ== - -esbuild-windows-arm64@0.15.13: - version "0.15.13" - resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.13.tgz#4ffd01b6b2888603f1584a2fe96b1f6a6f2b3dd8" - integrity sha512-3bv7tqntThQC9SWLRouMDmZnlOukBhOCTlkzNqzGCmrkCJI7io5LLjwJBOVY6kOUlIvdxbooNZwjtBvj+7uuVg== - -esbuild@^0.15.13: - version "0.15.13" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.13.tgz#7293480038feb2bafa91d3f6a20edab3ba6c108a" - integrity sha512-Cu3SC84oyzzhrK/YyN4iEVy2jZu5t2fz66HEOShHURcjSkOSAVL8C/gfUT+lDJxkVHpg8GZ10DD0rMHRPqMFaQ== +esbuild-android-64@0.15.14: + version "0.15.14" + resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.14.tgz#114e55b0d58fb7b45d7fa3d93516bd13fc8869cc" + integrity sha512-HuilVIb4rk9abT4U6bcFdU35UHOzcWVGLSjEmC58OVr96q5UiRqzDtWjPlCMugjhgUGKEs8Zf4ueIvYbOStbIg== + +esbuild-android-arm64@0.15.14: + version "0.15.14" + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.14.tgz#8541f38a9aacf88e574fb13f5ad4ca51a04c12bb" + integrity sha512-/QnxRVxsR2Vtf3XottAHj7hENAMW2wCs6S+OZcAbc/8nlhbAL/bCQRCVD78VtI5mdwqWkVi3wMqM94kScQCgqg== + +esbuild-darwin-64@0.15.14: + version "0.15.14" + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.14.tgz#b40b334db81ff1e3677a6712b23761748a157c57" + integrity sha512-ToNuf1uifu8hhwWvoZJGCdLIX/1zpo8cOGnT0XAhDQXiKOKYaotVNx7pOVB1f+wHoWwTLInrOmh3EmA7Fd+8Vg== + +esbuild-darwin-arm64@0.15.14: + version "0.15.14" + resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.14.tgz#44b5c1477bb7bdb852dd905e906f68765e2828bc" + integrity sha512-KgGP+y77GszfYJgceO0Wi/PiRtYo5y2Xo9rhBUpxTPaBgWDJ14gqYN0+NMbu+qC2fykxXaipHxN4Scaj9tUS1A== + +esbuild-freebsd-64@0.15.14: + version "0.15.14" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.14.tgz#8c57315d238690f34b6ed0c94e5cfc04c858247a" + integrity sha512-xr0E2n5lyWw3uFSwwUXHc0EcaBDtsal/iIfLioflHdhAe10KSctV978Te7YsfnsMKzcoGeS366+tqbCXdqDHQA== + +esbuild-freebsd-arm64@0.15.14: + version "0.15.14" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.14.tgz#2e92acca09258daa849e635565f52469266f0b7b" + integrity sha512-8XH96sOQ4b1LhMlO10eEWOjEngmZ2oyw3pW4o8kvBcpF6pULr56eeYVP5radtgw54g3T8nKHDHYEI5AItvskZg== + +esbuild-linux-32@0.15.14: + version "0.15.14" + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.14.tgz#ca5ed3e9dff82df486ddde362d7e00775a597dfd" + integrity sha512-6ssnvwaTAi8AzKN8By2V0nS+WF5jTP7SfuK6sStGnDP7MCJo/4zHgM9oE1eQTS2jPmo3D673rckuCzRlig+HMA== + +esbuild-linux-64@0.15.14: + version "0.15.14" + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.14.tgz#42952e1d08a299d5f573c567639fb37b033befbf" + integrity sha512-ONySx3U0wAJOJuxGUlXBWxVKFVpWv88JEv0NZ6NlHknmDd1yCbf4AEdClSgLrqKQDXYywmw4gYDvdLsS6z0hcw== + +esbuild-linux-arm64@0.15.14: + version "0.15.14" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.14.tgz#0c0d788099703327ec0ae70758cb2639ef6c5d88" + integrity sha512-kle2Ov6a1e5AjlHlMQl1e+c4myGTeggrRzArQFmWp6O6JoqqB9hT+B28EW4tjFWgV/NxUq46pWYpgaWXsXRPAg== + +esbuild-linux-arm@0.15.14: + version "0.15.14" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.14.tgz#751a5ca5042cd60f669b07c3bcec3dd6c4f8151c" + integrity sha512-D2LImAIV3QzL7lHURyCHBkycVFbKwkDb1XEUWan+2fb4qfW7qAeUtul7ZIcIwFKZgPcl+6gKZmvLgPSj26RQ2Q== + +esbuild-linux-mips64le@0.15.14: + version "0.15.14" + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.14.tgz#da8ac35f2704de0b52bf53a99c12f604fbe9b916" + integrity sha512-FVdMYIzOLXUq+OE7XYKesuEAqZhmAIV6qOoYahvUp93oXy0MOVTP370ECbPfGXXUdlvc0TNgkJa3YhEwyZ6MRA== + +esbuild-linux-ppc64le@0.15.14: + version "0.15.14" + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.14.tgz#a315b5016917429080c3d32e03319f1ff876ac55" + integrity sha512-2NzH+iuzMDA+jjtPjuIz/OhRDf8tzbQ1tRZJI//aT25o1HKc0reMMXxKIYq/8nSHXiJSnYV4ODzTiv45s+h73w== + +esbuild-linux-riscv64@0.15.14: + version "0.15.14" + resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.14.tgz#9f2e0a935e5086d398fc19c7ff5d217bfefe3e12" + integrity sha512-VqxvutZNlQxmUNS7Ac+aczttLEoHBJ9e3OYGqnULrfipRvG97qLrAv9EUY9iSrRKBqeEbSvS9bSfstZqwz0T4Q== + +esbuild-linux-s390x@0.15.14: + version "0.15.14" + resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.14.tgz#53108112faff5a4e1bad17f7b0b0ffa1df4b7efb" + integrity sha512-+KVHEUshX5n6VP6Vp/AKv9fZIl5kr2ph8EUFmQUJnDpHwcfTSn2AQgYYm0HTBR2Mr4d0Wlr0FxF/Cs5pbFgiOw== + +esbuild-netbsd-64@0.15.14: + version "0.15.14" + resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.14.tgz#5330efc41fe4f1c2bab5462bcfe7a4ffce7ba00a" + integrity sha512-6D/dr17piEgevIm1xJfZP2SjB9Z+g8ERhNnBdlZPBWZl+KSPUKLGF13AbvC+nzGh8IxOH2TyTIdRMvKMP0nEzQ== + +esbuild-openbsd-64@0.15.14: + version "0.15.14" + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.14.tgz#ee64944d863e937611fc31adf349e9bb4f5f7eac" + integrity sha512-rREQBIlMibBetgr2E9Lywt2Qxv2ZdpmYahR4IUlAQ1Efv/A5gYdO0/VIN3iowDbCNTLxp0bb57Vf0LFcffD6kA== + +esbuild-sunos-64@0.15.14: + version "0.15.14" + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.14.tgz#29b0b20de6fe6ef50f9fbe533ec20dc4b595f9aa" + integrity sha512-DNVjSp/BY4IfwtdUAvWGIDaIjJXY5KI4uD82+15v6k/w7px9dnaDaJJ2R6Mu+KCgr5oklmFc0KjBjh311Gxl9Q== + +esbuild-windows-32@0.15.14: + version "0.15.14" + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.14.tgz#05e9b159d664809f7a4a8a68ed048d193457b27d" + integrity sha512-pHBWrcA+/oLgvViuG9FO3kNPO635gkoVrRQwe6ZY1S0jdET07xe2toUvQoJQ8KT3/OkxqUasIty5hpuKFLD+eg== + +esbuild-windows-64@0.15.14: + version "0.15.14" + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.14.tgz#d5ae086728ab30b72969e40ed0a7a0d9082f2cdd" + integrity sha512-CszIGQVk/P8FOS5UgAH4hKc9zOaFo69fe+k1rqgBHx3CSK3Opyk5lwYriIamaWOVjBt7IwEP6NALz+tkVWdFog== + +esbuild-windows-arm64@0.15.14: + version "0.15.14" + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.14.tgz#8eb50ab9a0ecaf058593fbad17502749306f801d" + integrity sha512-KW9W4psdZceaS9A7Jsgl4WialOznSURvqX/oHZk3gOP7KbjtHLSsnmSvNdzagGJfxbAe30UVGXRe8q8nDsOSQw== + +esbuild@^0.15.14: + version "0.15.14" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.14.tgz#09202b811f1710363d5088a3401a351351c79875" + integrity sha512-pJN8j42fvWLFWwSMG4luuupl2Me7mxciUOsMegKvwCmhEbJ2covUdFnihxm0FMIBV+cbwbtMoHgMCCI+pj1btQ== optionalDependencies: - "@esbuild/android-arm" "0.15.13" - "@esbuild/linux-loong64" "0.15.13" - esbuild-android-64 "0.15.13" - esbuild-android-arm64 "0.15.13" - esbuild-darwin-64 "0.15.13" - esbuild-darwin-arm64 "0.15.13" - esbuild-freebsd-64 "0.15.13" - esbuild-freebsd-arm64 "0.15.13" - esbuild-linux-32 "0.15.13" - esbuild-linux-64 "0.15.13" - esbuild-linux-arm "0.15.13" - esbuild-linux-arm64 "0.15.13" - esbuild-linux-mips64le "0.15.13" - esbuild-linux-ppc64le "0.15.13" - esbuild-linux-riscv64 "0.15.13" - esbuild-linux-s390x "0.15.13" - esbuild-netbsd-64 "0.15.13" - esbuild-openbsd-64 "0.15.13" - esbuild-sunos-64 "0.15.13" - esbuild-windows-32 "0.15.13" - esbuild-windows-64 "0.15.13" - esbuild-windows-arm64 "0.15.13" + "@esbuild/android-arm" "0.15.14" + "@esbuild/linux-loong64" "0.15.14" + esbuild-android-64 "0.15.14" + esbuild-android-arm64 "0.15.14" + esbuild-darwin-64 "0.15.14" + esbuild-darwin-arm64 "0.15.14" + esbuild-freebsd-64 "0.15.14" + esbuild-freebsd-arm64 "0.15.14" + esbuild-linux-32 "0.15.14" + esbuild-linux-64 "0.15.14" + esbuild-linux-arm "0.15.14" + esbuild-linux-arm64 "0.15.14" + esbuild-linux-mips64le "0.15.14" + esbuild-linux-ppc64le "0.15.14" + esbuild-linux-riscv64 "0.15.14" + esbuild-linux-s390x "0.15.14" + esbuild-netbsd-64 "0.15.14" + esbuild-openbsd-64 "0.15.14" + esbuild-sunos-64 "0.15.14" + esbuild-windows-32 "0.15.14" + esbuild-windows-64 "0.15.14" + esbuild-windows-arm64 "0.15.14" ev-emitter@^1.0.0: version "1.1.1" From 949f8872072854de7c17d9b7acf273ffa9144eca Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 16 Nov 2022 12:08:42 +0800 Subject: [PATCH 1222/2165] =?UTF-8?q?chore:=20=E7=BC=A9=E7=9F=AD=20issue?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/stale.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/stale.yml b/.github/stale.yml index 698c41237..6aabf6bc0 100644 --- a/.github/stale.yml +++ b/.github/stale.yml @@ -1,13 +1,13 @@ # Number of days of inactivity before an issue becomes stale -daysUntilStale: 15 +daysUntilStale: 30 # Number of days of inactivity before a stale issue is closed -daysUntilClose: 5 +daysUntilClose: 3 # Issues with these labels will never be considered stale exemptLabels: - pinned - security - wip - - rpc + - rfc # Label to use when marking an issue as stale staleLabel: wontfix # Comment to post when marking an issue as stale. Set to `false` to disable From 0ca0a56307c8dda951b5954e3e61ee7115c49166 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 16 Nov 2022 21:02:00 +0000 Subject: [PATCH 1223/2165] chore(deps): bump friendly_id from 5.4.2 to 5.5.0 Bumps [friendly_id](https://github.com/norman/friendly_id) from 5.4.2 to 5.5.0. - [Release notes](https://github.com/norman/friendly_id/releases) - [Changelog](https://github.com/norman/friendly_id/blob/master/Changelog.md) - [Commits](https://github.com/norman/friendly_id/compare/5.4.2...5.5.0) --- updated-dependencies: - dependency-name: friendly_id dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index ba4b7d0a3..a606f7f98 100644 --- a/Gemfile +++ b/Gemfile @@ -33,7 +33,7 @@ gem 'simple_form', '~> 5.1' # Model ## 生成友好 id -gem 'friendly_id', '~> 5.4.2' +gem 'friendly_id', '~> 5.5.0' ## 数据分页 gem 'kaminari', '~> 1.2.2' ## 文件上传 diff --git a/Gemfile.lock b/Gemfile.lock index bd7d866c1..c1a1ecbe7 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -150,7 +150,7 @@ GEM ffi (>= 1.0.0) rake formatador (1.1.0) - friendly_id (5.4.2) + friendly_id (5.5.0) activerecord (>= 4.0.0) fugit (1.7.1) et-orbi (~> 1, >= 1.2.7) @@ -521,7 +521,7 @@ DEPENDENCIES devise-i18n (~> 1.10.2) dotenv-rails faraday (~> 2.7.0) - friendly_id (~> 5.4.2) + friendly_id (~> 5.5.0) graphiql-rails graphql (~> 2.0.15) guard (~> 2.18.0) From 94c2c2addaabb3e82b0bee845d9a84c13b170e3b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 17 Nov 2022 21:02:06 +0000 Subject: [PATCH 1224/2165] chore(deps): bump pg from 1.4.4 to 1.4.5 Bumps [pg](https://github.com/ged/ruby-pg) from 1.4.4 to 1.4.5. - [Release notes](https://github.com/ged/ruby-pg/releases) - [Changelog](https://github.com/ged/ruby-pg/blob/master/History.rdoc) - [Commits](https://github.com/ged/ruby-pg/compare/v1.4.4...v1.4.5) --- updated-dependencies: - dependency-name: pg dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index c1a1ecbe7..95d58467b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -316,7 +316,7 @@ GEM parallel (1.22.1) parser (3.1.2.0) ast (~> 2.4.1) - pg (1.4.4) + pg (1.4.5) pghero (3.0.1) activerecord (>= 6) plist (3.6.0) From 2ddca921ffe2395bb46524cbcc573dab40078187 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 18 Nov 2022 21:03:30 +0000 Subject: [PATCH 1225/2165] chore(deps): bump bootsnap from 1.13.0 to 1.14.0 Bumps [bootsnap](https://github.com/Shopify/bootsnap) from 1.13.0 to 1.14.0. - [Release notes](https://github.com/Shopify/bootsnap/releases) - [Changelog](https://github.com/Shopify/bootsnap/blob/main/CHANGELOG.md) - [Commits](https://github.com/Shopify/bootsnap/compare/v1.13.0...v1.14.0) --- updated-dependencies: - dependency-name: bootsnap dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 95d58467b..ddb11258e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -99,7 +99,7 @@ GEM bindex (0.8.1) binding_of_caller (1.0.0) debug_inspector (>= 0.0.1) - bootsnap (1.13.0) + bootsnap (1.14.0) msgpack (~> 1.2) builder (3.2.4) carrierwave (2.2.2) @@ -258,7 +258,7 @@ GEM minitest (5.16.3) mixlib-shellout (3.2.7) chef-utils - msgpack (1.5.4) + msgpack (1.6.0) multi_json (1.15.0) multi_xml (0.6.0) nenv (0.3.0) From 9f5398203c6298bd4a46b66c0e75ee44474de63d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 18 Nov 2022 21:03:55 +0000 Subject: [PATCH 1226/2165] chore(deps): bump faraday from 2.7.0 to 2.7.1 Bumps [faraday](https://github.com/lostisland/faraday) from 2.7.0 to 2.7.1. - [Release notes](https://github.com/lostisland/faraday/releases) - [Changelog](https://github.com/lostisland/faraday/blob/main/CHANGELOG.md) - [Commits](https://github.com/lostisland/faraday/compare/v2.7.0...v2.7.1) --- updated-dependencies: - dependency-name: faraday dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index a606f7f98..0e316e254 100644 --- a/Gemfile +++ b/Gemfile @@ -42,7 +42,7 @@ gem 'webp-ffi', '~> 0.3.1' # Helper ## HTTP 请求 -gem 'faraday', '~> 2.7.0' +gem 'faraday', '~> 2.7.1' ## 用户认证 gem 'pundit', '~> 2.2.0' diff --git a/Gemfile.lock b/Gemfile.lock index 95d58467b..865ed3610 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -141,7 +141,7 @@ GEM erubi (1.11.0) et-orbi (1.2.7) tzinfo - faraday (2.7.0) + faraday (2.7.1) faraday-net_http (>= 2.0, < 3.1) ruby2_keywords (>= 0.0.4) faraday-net_http (3.0.2) @@ -520,7 +520,7 @@ DEPENDENCIES devise (~> 4.8.1) devise-i18n (~> 1.10.2) dotenv-rails - faraday (~> 2.7.0) + faraday (~> 2.7.1) friendly_id (~> 5.5.0) graphiql-rails graphql (~> 2.0.15) From 000b820a3df9c227839c939e16239f39ec73aa27 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 21 Nov 2022 21:02:16 +0000 Subject: [PATCH 1227/2165] chore(deps): bump esbuild from 0.15.14 to 0.15.15 Bumps [esbuild](https://github.com/evanw/esbuild) from 0.15.14 to 0.15.15. - [Release notes](https://github.com/evanw/esbuild/releases) - [Changelog](https://github.com/evanw/esbuild/blob/master/CHANGELOG.md) - [Commits](https://github.com/evanw/esbuild/compare/v0.15.14...v0.15.15) --- updated-dependencies: - dependency-name: esbuild dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 268 +++++++++++++++++++++++++-------------------------- 2 files changed, 135 insertions(+), 135 deletions(-) diff --git a/package.json b/package.json index 92d1680cf..49703efa3 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "admin-lte": "3.1.0", "clipboard": "^2.0.11", "compare-versions": "^5.0.1", - "esbuild": "^0.15.14", + "esbuild": "^0.15.15", "sass": "^1.56.1", "ua-parser-js": "^1.0.32" }, diff --git a/yarn.lock b/yarn.lock index cfd42e7dc..a477df6db 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,15 +2,15 @@ # yarn lockfile v1 -"@esbuild/android-arm@0.15.14": - version "0.15.14" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.15.14.tgz#5d0027f920eeeac313c01fd6ecb8af50c306a466" - integrity sha512-+Rb20XXxRGisNu2WmNKk+scpanb7nL5yhuI1KR9wQFiC43ddPj/V1fmNyzlFC9bKiG4mYzxW7egtoHVcynr+OA== +"@esbuild/android-arm@0.15.15": + version "0.15.15" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.15.15.tgz#35b3cc0f9e69cb53932d44f60b99dd440335d2f0" + integrity sha512-JJjZjJi2eBL01QJuWjfCdZxcIgot+VoK6Fq7eKF9w4YHm9hwl7nhBR1o2Wnt/WcANk5l9SkpvrldW1PLuXxcbw== -"@esbuild/linux-loong64@0.15.14": - version "0.15.14" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.14.tgz#1221684955c44385f8af34f7240088b7dc08d19d" - integrity sha512-eQi9rosGNVQFJyJWV0HCA5WZae/qWIQME7s8/j8DMvnylfBv62Pbu+zJ2eUDqNf2O4u3WB+OEXyfkpBoe194sg== +"@esbuild/linux-loong64@0.15.15": + version "0.15.15" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.15.tgz#32c65517a09320b62530867345222fde7794fbe1" + integrity sha512-lhz6UNPMDXUhtXSulw8XlFAtSYO26WmHQnCi2Lg2p+/TMiJKNLtZCYUxV4wG6rZMzXmr8InGpNwk+DLT2Hm0PA== "@fortawesome/fontawesome-free@^5.15.3": version "5.15.4" @@ -677,133 +677,133 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -esbuild-android-64@0.15.14: - version "0.15.14" - resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.14.tgz#114e55b0d58fb7b45d7fa3d93516bd13fc8869cc" - integrity sha512-HuilVIb4rk9abT4U6bcFdU35UHOzcWVGLSjEmC58OVr96q5UiRqzDtWjPlCMugjhgUGKEs8Zf4ueIvYbOStbIg== - -esbuild-android-arm64@0.15.14: - version "0.15.14" - resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.14.tgz#8541f38a9aacf88e574fb13f5ad4ca51a04c12bb" - integrity sha512-/QnxRVxsR2Vtf3XottAHj7hENAMW2wCs6S+OZcAbc/8nlhbAL/bCQRCVD78VtI5mdwqWkVi3wMqM94kScQCgqg== - -esbuild-darwin-64@0.15.14: - version "0.15.14" - resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.14.tgz#b40b334db81ff1e3677a6712b23761748a157c57" - integrity sha512-ToNuf1uifu8hhwWvoZJGCdLIX/1zpo8cOGnT0XAhDQXiKOKYaotVNx7pOVB1f+wHoWwTLInrOmh3EmA7Fd+8Vg== - -esbuild-darwin-arm64@0.15.14: - version "0.15.14" - resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.14.tgz#44b5c1477bb7bdb852dd905e906f68765e2828bc" - integrity sha512-KgGP+y77GszfYJgceO0Wi/PiRtYo5y2Xo9rhBUpxTPaBgWDJ14gqYN0+NMbu+qC2fykxXaipHxN4Scaj9tUS1A== - -esbuild-freebsd-64@0.15.14: - version "0.15.14" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.14.tgz#8c57315d238690f34b6ed0c94e5cfc04c858247a" - integrity sha512-xr0E2n5lyWw3uFSwwUXHc0EcaBDtsal/iIfLioflHdhAe10KSctV978Te7YsfnsMKzcoGeS366+tqbCXdqDHQA== - -esbuild-freebsd-arm64@0.15.14: - version "0.15.14" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.14.tgz#2e92acca09258daa849e635565f52469266f0b7b" - integrity sha512-8XH96sOQ4b1LhMlO10eEWOjEngmZ2oyw3pW4o8kvBcpF6pULr56eeYVP5radtgw54g3T8nKHDHYEI5AItvskZg== - -esbuild-linux-32@0.15.14: - version "0.15.14" - resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.14.tgz#ca5ed3e9dff82df486ddde362d7e00775a597dfd" - integrity sha512-6ssnvwaTAi8AzKN8By2V0nS+WF5jTP7SfuK6sStGnDP7MCJo/4zHgM9oE1eQTS2jPmo3D673rckuCzRlig+HMA== - -esbuild-linux-64@0.15.14: - version "0.15.14" - resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.14.tgz#42952e1d08a299d5f573c567639fb37b033befbf" - integrity sha512-ONySx3U0wAJOJuxGUlXBWxVKFVpWv88JEv0NZ6NlHknmDd1yCbf4AEdClSgLrqKQDXYywmw4gYDvdLsS6z0hcw== - -esbuild-linux-arm64@0.15.14: - version "0.15.14" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.14.tgz#0c0d788099703327ec0ae70758cb2639ef6c5d88" - integrity sha512-kle2Ov6a1e5AjlHlMQl1e+c4myGTeggrRzArQFmWp6O6JoqqB9hT+B28EW4tjFWgV/NxUq46pWYpgaWXsXRPAg== - -esbuild-linux-arm@0.15.14: - version "0.15.14" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.14.tgz#751a5ca5042cd60f669b07c3bcec3dd6c4f8151c" - integrity sha512-D2LImAIV3QzL7lHURyCHBkycVFbKwkDb1XEUWan+2fb4qfW7qAeUtul7ZIcIwFKZgPcl+6gKZmvLgPSj26RQ2Q== - -esbuild-linux-mips64le@0.15.14: - version "0.15.14" - resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.14.tgz#da8ac35f2704de0b52bf53a99c12f604fbe9b916" - integrity sha512-FVdMYIzOLXUq+OE7XYKesuEAqZhmAIV6qOoYahvUp93oXy0MOVTP370ECbPfGXXUdlvc0TNgkJa3YhEwyZ6MRA== - -esbuild-linux-ppc64le@0.15.14: - version "0.15.14" - resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.14.tgz#a315b5016917429080c3d32e03319f1ff876ac55" - integrity sha512-2NzH+iuzMDA+jjtPjuIz/OhRDf8tzbQ1tRZJI//aT25o1HKc0reMMXxKIYq/8nSHXiJSnYV4ODzTiv45s+h73w== - -esbuild-linux-riscv64@0.15.14: - version "0.15.14" - resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.14.tgz#9f2e0a935e5086d398fc19c7ff5d217bfefe3e12" - integrity sha512-VqxvutZNlQxmUNS7Ac+aczttLEoHBJ9e3OYGqnULrfipRvG97qLrAv9EUY9iSrRKBqeEbSvS9bSfstZqwz0T4Q== - -esbuild-linux-s390x@0.15.14: - version "0.15.14" - resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.14.tgz#53108112faff5a4e1bad17f7b0b0ffa1df4b7efb" - integrity sha512-+KVHEUshX5n6VP6Vp/AKv9fZIl5kr2ph8EUFmQUJnDpHwcfTSn2AQgYYm0HTBR2Mr4d0Wlr0FxF/Cs5pbFgiOw== - -esbuild-netbsd-64@0.15.14: - version "0.15.14" - resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.14.tgz#5330efc41fe4f1c2bab5462bcfe7a4ffce7ba00a" - integrity sha512-6D/dr17piEgevIm1xJfZP2SjB9Z+g8ERhNnBdlZPBWZl+KSPUKLGF13AbvC+nzGh8IxOH2TyTIdRMvKMP0nEzQ== - -esbuild-openbsd-64@0.15.14: - version "0.15.14" - resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.14.tgz#ee64944d863e937611fc31adf349e9bb4f5f7eac" - integrity sha512-rREQBIlMibBetgr2E9Lywt2Qxv2ZdpmYahR4IUlAQ1Efv/A5gYdO0/VIN3iowDbCNTLxp0bb57Vf0LFcffD6kA== - -esbuild-sunos-64@0.15.14: - version "0.15.14" - resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.14.tgz#29b0b20de6fe6ef50f9fbe533ec20dc4b595f9aa" - integrity sha512-DNVjSp/BY4IfwtdUAvWGIDaIjJXY5KI4uD82+15v6k/w7px9dnaDaJJ2R6Mu+KCgr5oklmFc0KjBjh311Gxl9Q== - -esbuild-windows-32@0.15.14: - version "0.15.14" - resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.14.tgz#05e9b159d664809f7a4a8a68ed048d193457b27d" - integrity sha512-pHBWrcA+/oLgvViuG9FO3kNPO635gkoVrRQwe6ZY1S0jdET07xe2toUvQoJQ8KT3/OkxqUasIty5hpuKFLD+eg== - -esbuild-windows-64@0.15.14: - version "0.15.14" - resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.14.tgz#d5ae086728ab30b72969e40ed0a7a0d9082f2cdd" - integrity sha512-CszIGQVk/P8FOS5UgAH4hKc9zOaFo69fe+k1rqgBHx3CSK3Opyk5lwYriIamaWOVjBt7IwEP6NALz+tkVWdFog== - -esbuild-windows-arm64@0.15.14: - version "0.15.14" - resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.14.tgz#8eb50ab9a0ecaf058593fbad17502749306f801d" - integrity sha512-KW9W4psdZceaS9A7Jsgl4WialOznSURvqX/oHZk3gOP7KbjtHLSsnmSvNdzagGJfxbAe30UVGXRe8q8nDsOSQw== - -esbuild@^0.15.14: - version "0.15.14" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.14.tgz#09202b811f1710363d5088a3401a351351c79875" - integrity sha512-pJN8j42fvWLFWwSMG4luuupl2Me7mxciUOsMegKvwCmhEbJ2covUdFnihxm0FMIBV+cbwbtMoHgMCCI+pj1btQ== +esbuild-android-64@0.15.15: + version "0.15.15" + resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.15.tgz#fd959b034dd761d14e13dda6214b6948841ff4ff" + integrity sha512-F+WjjQxO+JQOva3tJWNdVjouFMLK6R6i5gjDvgUthLYJnIZJsp1HlF523k73hELY20WPyEO8xcz7aaYBVkeg5Q== + +esbuild-android-arm64@0.15.15: + version "0.15.15" + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.15.tgz#9733b71cf0229b4356f106a455b2cfdf7884aa59" + integrity sha512-attlyhD6Y22jNyQ0fIIQ7mnPvDWKw7k6FKnsXlBvQE6s3z6s6cuEHcSgoirquQc7TmZgVCK5fD/2uxmRN+ZpcQ== + +esbuild-darwin-64@0.15.15: + version "0.15.15" + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.15.tgz#fc3482fdf5e798dbc0b8b2fe13287d257a45efc6" + integrity sha512-ohZtF8W1SHJ4JWldsPVdk8st0r9ExbAOSrBOh5L+Mq47i696GVwv1ab/KlmbUoikSTNoXEhDzVpxUR/WIO19FQ== + +esbuild-darwin-arm64@0.15.15: + version "0.15.15" + resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.15.tgz#e922ec387c00fa84d664e14b5722fe13613f4adc" + integrity sha512-P8jOZ5zshCNIuGn+9KehKs/cq5uIniC+BeCykvdVhx/rBXSxmtj3CUIKZz4sDCuESMbitK54drf/2QX9QHG5Ag== + +esbuild-freebsd-64@0.15.15: + version "0.15.15" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.15.tgz#69a42d79137d7d3ea718414c432bc10e8bb97c68" + integrity sha512-KkTg+AmDXz1IvA9S1gt8dE24C8Thx0X5oM0KGF322DuP+P3evwTL9YyusHAWNsh4qLsR80nvBr/EIYs29VSwuA== + +esbuild-freebsd-arm64@0.15.15: + version "0.15.15" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.15.tgz#63b6d0dd492f7394f8d07a0e2b931151eb9d60c4" + integrity sha512-FUcML0DRsuyqCMfAC+HoeAqvWxMeq0qXvclZZ/lt2kLU6XBnDA5uKTLUd379WYEyVD4KKFctqWd9tTuk8C/96g== + +esbuild-linux-32@0.15.15: + version "0.15.15" + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.15.tgz#7f295795fd7e61ea57d1135f717424a6771a7472" + integrity sha512-q28Qn5pZgHNqug02aTkzw5sW9OklSo96b5nm17Mq0pDXrdTBcQ+M6Q9A1B+dalFeynunwh/pvfrNucjzwDXj+Q== + +esbuild-linux-64@0.15.15: + version "0.15.15" + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.15.tgz#11a430a86403b0411ca0a355b891f1cb8c4c4ec6" + integrity sha512-217KPmWMirkf8liO+fj2qrPwbIbhNTGNVtvqI1TnOWJgcMjUWvd677Gq3fTzXEjilkx2yWypVnTswM2KbXgoAg== + +esbuild-linux-arm64@0.15.15: + version "0.15.15" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.15.tgz#b65f9a2c60e8e5b62f6cfd392cd0410f22e8c390" + integrity sha512-/ltmNFs0FivZkYsTzAsXIfLQX38lFnwJTWCJts0IbCqWZQe+jjj0vYBNbI0kmXLb3y5NljiM5USVAO1NVkdh2g== + +esbuild-linux-arm@0.15.15: + version "0.15.15" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.15.tgz#c8e13e45a0a6f0cb145ce13ae26ce1d2551d9bcc" + integrity sha512-RYVW9o2yN8yM7SB1yaWr378CwrjvGCyGybX3SdzPHpikUHkME2AP55Ma20uNwkNyY2eSYFX9D55kDrfQmQBR4w== + +esbuild-linux-mips64le@0.15.15: + version "0.15.15" + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.15.tgz#d4c24d47e43966fcac748c90621be7edd53456c0" + integrity sha512-PksEPb321/28GFFxtvL33yVPfnMZihxkEv5zME2zapXGp7fA1X2jYeiTUK+9tJ/EGgcNWuwvtawPxJG7Mmn86A== + +esbuild-linux-ppc64le@0.15.15: + version "0.15.15" + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.15.tgz#2eba53fe2282438ceca5471bdb57ba2e00216ed6" + integrity sha512-ek8gJBEIhcpGI327eAZigBOHl58QqrJrYYIZBWQCnH3UnXoeWMrMZLeeZL8BI2XMBhP+sQ6ERctD5X+ajL/AIA== + +esbuild-linux-riscv64@0.15.15: + version "0.15.15" + resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.15.tgz#1afa8dfe55a6c312f1904ee608b81417205f5027" + integrity sha512-H5ilTZb33/GnUBrZMNJtBk7/OXzDHDXjIzoLXHSutwwsLxSNaLxzAaMoDGDd/keZoS+GDBqNVxdCkpuiRW4OSw== + +esbuild-linux-s390x@0.15.15: + version "0.15.15" + resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.15.tgz#1f7b3c4429c8ca99920ba6bf356ccc5b38fabd34" + integrity sha512-jKaLUg78mua3rrtrkpv4Or2dNTJU7bgHN4bEjT4OX4GR7nLBSA9dfJezQouTxMmIW7opwEC5/iR9mpC18utnxQ== + +esbuild-netbsd-64@0.15.15: + version "0.15.15" + resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.15.tgz#d72c7155686c938c1aff126209b689c22823347c" + integrity sha512-aOvmF/UkjFuW6F36HbIlImJTTx45KUCHJndtKo+KdP8Dhq3mgLRKW9+6Ircpm8bX/RcS3zZMMmaBLkvGY06Gvw== + +esbuild-openbsd-64@0.15.15: + version "0.15.15" + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.15.tgz#761bd87ecab97386948eaf667a065cb0ecaa0f76" + integrity sha512-HFFX+WYedx1w2yJ1VyR1Dfo8zyYGQZf1cA69bLdrHzu9svj6KH6ZLK0k3A1/LFPhcEY9idSOhsB2UyU0tHPxgQ== + +esbuild-sunos-64@0.15.15: + version "0.15.15" + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.15.tgz#07e04cbf9747f281a967d09230a158a1be5b530c" + integrity sha512-jOPBudffG4HN8yJXcK9rib/ZTFoTA5pvIKbRrt3IKAGMq1EpBi4xoVoSRrq/0d4OgZLaQbmkHp8RO9eZIn5atA== + +esbuild-windows-32@0.15.15: + version "0.15.15" + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.15.tgz#130d1982cc41fb67461e9f8a65c6ebd13a1f35bb" + integrity sha512-MDkJ3QkjnCetKF0fKxCyYNBnOq6dmidcwstBVeMtXSgGYTy8XSwBeIE4+HuKiSsG6I/mXEb++px3IGSmTN0XiA== + +esbuild-windows-64@0.15.15: + version "0.15.15" + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.15.tgz#638bdf495c109c1882e8b0529cb8e2fea11383fb" + integrity sha512-xaAUIB2qllE888SsMU3j9nrqyLbkqqkpQyWVkfwSil6BBPgcPk3zOFitTTncEKCLTQy3XV9RuH7PDj3aJDljWA== + +esbuild-windows-arm64@0.15.15: + version "0.15.15" + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.15.tgz#5a277ce10de999d2a6465fc92a8c2a2d207ebd31" + integrity sha512-ttuoCYCIJAFx4UUKKWYnFdrVpoXa3+3WWkXVI6s09U+YjhnyM5h96ewTq/WgQj9LFSIlABQvadHSOQyAVjW5xQ== + +esbuild@^0.15.15: + version "0.15.15" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.15.tgz#503b70bdc18d72d8fc2962ed3ab9219249e58bbe" + integrity sha512-TEw/lwK4Zzld9x3FedV6jy8onOUHqcEX3ADFk4k+gzPUwrxn8nWV62tH0udo8jOtjFodlEfc4ypsqX3e+WWO6w== optionalDependencies: - "@esbuild/android-arm" "0.15.14" - "@esbuild/linux-loong64" "0.15.14" - esbuild-android-64 "0.15.14" - esbuild-android-arm64 "0.15.14" - esbuild-darwin-64 "0.15.14" - esbuild-darwin-arm64 "0.15.14" - esbuild-freebsd-64 "0.15.14" - esbuild-freebsd-arm64 "0.15.14" - esbuild-linux-32 "0.15.14" - esbuild-linux-64 "0.15.14" - esbuild-linux-arm "0.15.14" - esbuild-linux-arm64 "0.15.14" - esbuild-linux-mips64le "0.15.14" - esbuild-linux-ppc64le "0.15.14" - esbuild-linux-riscv64 "0.15.14" - esbuild-linux-s390x "0.15.14" - esbuild-netbsd-64 "0.15.14" - esbuild-openbsd-64 "0.15.14" - esbuild-sunos-64 "0.15.14" - esbuild-windows-32 "0.15.14" - esbuild-windows-64 "0.15.14" - esbuild-windows-arm64 "0.15.14" + "@esbuild/android-arm" "0.15.15" + "@esbuild/linux-loong64" "0.15.15" + esbuild-android-64 "0.15.15" + esbuild-android-arm64 "0.15.15" + esbuild-darwin-64 "0.15.15" + esbuild-darwin-arm64 "0.15.15" + esbuild-freebsd-64 "0.15.15" + esbuild-freebsd-arm64 "0.15.15" + esbuild-linux-32 "0.15.15" + esbuild-linux-64 "0.15.15" + esbuild-linux-arm "0.15.15" + esbuild-linux-arm64 "0.15.15" + esbuild-linux-mips64le "0.15.15" + esbuild-linux-ppc64le "0.15.15" + esbuild-linux-riscv64 "0.15.15" + esbuild-linux-s390x "0.15.15" + esbuild-netbsd-64 "0.15.15" + esbuild-openbsd-64 "0.15.15" + esbuild-sunos-64 "0.15.15" + esbuild-windows-32 "0.15.15" + esbuild-windows-64 "0.15.15" + esbuild-windows-arm64 "0.15.15" ev-emitter@^1.0.0: version "1.1.1" From 6362d0ed1db3ae590edddc6ba15e2f4745f0c4e0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 21 Nov 2022 21:03:42 +0000 Subject: [PATCH 1228/2165] chore(deps): bump carrierwave from 2.2.2 to 2.2.3 Bumps [carrierwave](https://github.com/carrierwaveuploader/carrierwave) from 2.2.2 to 2.2.3. - [Release notes](https://github.com/carrierwaveuploader/carrierwave/releases) - [Changelog](https://github.com/carrierwaveuploader/carrierwave/blob/v2.2.3/CHANGELOG.md) - [Commits](https://github.com/carrierwaveuploader/carrierwave/compare/v2.2.2...v2.2.3) --- updated-dependencies: - dependency-name: carrierwave dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Gemfile b/Gemfile index 0e316e254..bb437b53d 100644 --- a/Gemfile +++ b/Gemfile @@ -37,7 +37,7 @@ gem 'friendly_id', '~> 5.5.0' ## 数据分页 gem 'kaminari', '~> 1.2.2' ## 文件上传 -gem 'carrierwave', '~> 2.2.2' +gem 'carrierwave', '~> 2.2.3' gem 'webp-ffi', '~> 0.3.1' # Helper diff --git a/Gemfile.lock b/Gemfile.lock index 82795d4e5..052d6c3d4 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -76,8 +76,8 @@ GEM i18n (>= 1.6, < 2) minitest (>= 5.1) tzinfo (~> 2.0) - addressable (2.8.0) - public_suffix (>= 2.0.2, < 5.0) + addressable (2.8.1) + public_suffix (>= 2.0.2, < 6.0) android_parser (2.5.0) rubyzip (>= 1.0, < 3.0) app-info (2.8.3) @@ -102,7 +102,7 @@ GEM bootsnap (1.14.0) msgpack (~> 1.2) builder (3.2.4) - carrierwave (2.2.2) + carrierwave (2.2.3) activemodel (>= 5.0.0) activesupport (>= 5.0.0) addressable (~> 2.6) @@ -333,7 +333,7 @@ GEM pry-rescue (1.5.2) interception (>= 0.5) pry (>= 0.12.0) - public_suffix (4.0.7) + public_suffix (5.0.0) puma (6.0.0) nio4r (~> 2.0) pundit (2.2.0) @@ -461,7 +461,7 @@ GEM actionpack (>= 5.2) activesupport (>= 5.2) sprockets (>= 3.0.0) - ssrf_filter (1.0.7) + ssrf_filter (1.1.1) stimulus-rails (1.1.1) railties (>= 6.0.0) strscan (3.0.4) @@ -514,7 +514,7 @@ DEPENDENCIES better_errors binding_of_caller bootsnap (>= 1.4.7) - carrierwave (~> 2.2.2) + carrierwave (~> 2.2.3) cssbundling-rails (~> 1.1) debug (~> 1.6.3) devise (~> 4.8.1) From 13499d846ef4da0824337f5de7b9eb1f8a18f01e Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 22 Nov 2022 12:07:23 +0800 Subject: [PATCH 1229/2165] =?UTF-8?q?bump:=20=E5=8F=91=E5=B8=83=204.5.3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index d057db3a3..8b4686190 100644 --- a/Dockerfile +++ b/Dockerfile @@ -61,7 +61,7 @@ ARG BUILD_DATE ARG VCS_REF ARG TAG -ARG ZEALOT_VERSION="4.5.2" +ARG ZEALOT_VERSION="4.5.3" ARG REPLACE_CHINA_MIRROR="true" ARG ORIGINAL_REPO_URL="dl-cdn.alpinelinux.org" ARG MIRROR_REPO_URL="mirrors.ustc.edu.cn" diff --git a/package.json b/package.json index 49703efa3..b88b69df5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "zealot", - "version": "4.5.2", + "version": "4.5.3", "private": true, "license": "MIT", "dependencies": { From 39c426bbc5d19d28c2bd9b1738b2f301016a9177 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 25 Nov 2022 17:20:37 +0800 Subject: [PATCH 1230/2165] =?UTF-8?q?feat:=20=E6=9B=B4=E6=96=B0=E8=B0=83?= =?UTF-8?q?=E8=AF=95=E6=96=87=E4=BB=B6=E8=BF=94=E5=9B=9E=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E7=BB=93=E6=9E=84=E5=B9=B6=E4=BF=AE=E6=94=B9=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E7=A0=81=E4=BB=8E=20204=20=E6=94=B9=E4=B8=BA=20200?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/api/debug_files_controller.rb | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/app/controllers/api/debug_files_controller.rb b/app/controllers/api/debug_files_controller.rb index 79dbcf07b..23b26e7ab 100644 --- a/app/controllers/api/debug_files_controller.rb +++ b/app/controllers/api/debug_files_controller.rb @@ -3,7 +3,7 @@ class Api::DebugFilesController < Api::BaseController before_action :validate_user_token, only: :create before_action :validate_channel_key, only: %i[index create] - before_action :set_debug_file, only: %i[show destroy] + before_action :set_debug_file, only: %i[show update destroy] # GET /api/debug_files def index @@ -37,7 +37,10 @@ def create # PUT /api/debug_files/:id def update - @debug_file.update(debug_file_params) + @debug_file.update!(debug_file_params) + render json: @debug_file, serializer: Api::DebugFileSerializer, status: :ok + rescue + render json: @debug_file.errors end # DELETE /api/debug_files/:id From 470f157d34e334d26db9d872edafadfd5306109a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 25 Nov 2022 21:01:18 +0000 Subject: [PATCH 1231/2165] chore(deps): bump bootsnap from 1.14.0 to 1.15.0 Bumps [bootsnap](https://github.com/Shopify/bootsnap) from 1.14.0 to 1.15.0. - [Release notes](https://github.com/Shopify/bootsnap/releases) - [Changelog](https://github.com/Shopify/bootsnap/blob/main/CHANGELOG.md) - [Commits](https://github.com/Shopify/bootsnap/compare/v1.14.0...v1.15.0) --- updated-dependencies: - dependency-name: bootsnap dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 052d6c3d4..02e119812 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -99,7 +99,7 @@ GEM bindex (0.8.1) binding_of_caller (1.0.0) debug_inspector (>= 0.0.1) - bootsnap (1.14.0) + bootsnap (1.15.0) msgpack (~> 1.2) builder (3.2.4) carrierwave (2.2.3) From 65c25315002461784e90fb8aee6c6511b1b08013 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 28 Nov 2022 21:00:56 +0000 Subject: [PATCH 1232/2165] chore(deps): bump @hotwired/stimulus from 3.1.1 to 3.2.0 Bumps [@hotwired/stimulus](https://github.com/hotwired/stimulus) from 3.1.1 to 3.2.0. - [Release notes](https://github.com/hotwired/stimulus/releases) - [Changelog](https://github.com/hotwired/stimulus/blob/main/CHANGELOG.md) - [Commits](https://github.com/hotwired/stimulus/compare/v3.1.1...v3.2.0) --- updated-dependencies: - dependency-name: "@hotwired/stimulus" dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index b88b69df5..33cdd49f7 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "private": true, "license": "MIT", "dependencies": { - "@hotwired/stimulus": "^3.1.1", + "@hotwired/stimulus": "^3.2.0", "@hotwired/turbo-rails": "^7.2.4", "@rails/actioncable": "^7.0.4", "admin-lte": "3.1.0", diff --git a/yarn.lock b/yarn.lock index a477df6db..eae5bb5de 100644 --- a/yarn.lock +++ b/yarn.lock @@ -17,10 +17,10 @@ resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-5.15.4.tgz#ecda5712b61ac852c760d8b3c79c96adca5554e5" integrity sha512-eYm8vijH/hpzr/6/1CJ/V/Eb1xQFW2nnUKArb3z+yUWv7HTwj6M7SP957oMjfZjAHU6qpoNc2wQvIxBLWYa/Jg== -"@hotwired/stimulus@^3.1.1": - version "3.1.1" - resolved "https://registry.yarnpkg.com/@hotwired/stimulus/-/stimulus-3.1.1.tgz#652f08a8e1d5edcb407340e58818fcff463b5848" - integrity sha512-e0JpzIaYLsRRXevRDVs0yevabiCvieIWWCwh7VqVXjXM5AOHdjb7AjaKIj34zYFmY1N6HIRRfk915WVMYlHnDA== +"@hotwired/stimulus@^3.2.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@hotwired/stimulus/-/stimulus-3.2.0.tgz#257272f1348b1f7beb1a8510be88b80aec6c4c5b" + integrity sha512-uAIIdg049qId0lBhyjuMBfcC5uV8JwbhNLoxEyi9vxM3MW6h+mM97G9rNT4ZZMiqnKK9XUHp9SQUrd9rSLEmpQ== "@hotwired/turbo-rails@^7.2.4": version "7.2.4" From f414e709fd9381125299a9c0ab1f7728ddf18219 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 28 Nov 2022 21:01:08 +0000 Subject: [PATCH 1233/2165] chore(deps): bump esbuild from 0.15.15 to 0.15.16 Bumps [esbuild](https://github.com/evanw/esbuild) from 0.15.15 to 0.15.16. - [Release notes](https://github.com/evanw/esbuild/releases) - [Changelog](https://github.com/evanw/esbuild/blob/master/CHANGELOG.md) - [Commits](https://github.com/evanw/esbuild/compare/v0.15.15...v0.15.16) --- updated-dependencies: - dependency-name: esbuild dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 268 +++++++++++++++++++++++++-------------------------- 2 files changed, 135 insertions(+), 135 deletions(-) diff --git a/package.json b/package.json index b88b69df5..d88f0431b 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "admin-lte": "3.1.0", "clipboard": "^2.0.11", "compare-versions": "^5.0.1", - "esbuild": "^0.15.15", + "esbuild": "^0.15.16", "sass": "^1.56.1", "ua-parser-js": "^1.0.32" }, diff --git a/yarn.lock b/yarn.lock index a477df6db..c83e715ad 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,15 +2,15 @@ # yarn lockfile v1 -"@esbuild/android-arm@0.15.15": - version "0.15.15" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.15.15.tgz#35b3cc0f9e69cb53932d44f60b99dd440335d2f0" - integrity sha512-JJjZjJi2eBL01QJuWjfCdZxcIgot+VoK6Fq7eKF9w4YHm9hwl7nhBR1o2Wnt/WcANk5l9SkpvrldW1PLuXxcbw== +"@esbuild/android-arm@0.15.16": + version "0.15.16" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.15.16.tgz#0642926178b15e3d1545efae6eee05c4f3451d15" + integrity sha512-nyB6CH++2mSgx3GbnrJsZSxzne5K0HMyNIWafDHqYy7IwxFc4fd/CgHVZXr8Eh+Q3KbIAcAe3vGyqIPhGblvMQ== -"@esbuild/linux-loong64@0.15.15": - version "0.15.15" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.15.tgz#32c65517a09320b62530867345222fde7794fbe1" - integrity sha512-lhz6UNPMDXUhtXSulw8XlFAtSYO26WmHQnCi2Lg2p+/TMiJKNLtZCYUxV4wG6rZMzXmr8InGpNwk+DLT2Hm0PA== +"@esbuild/linux-loong64@0.15.16": + version "0.15.16" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.16.tgz#284522de76abe951e4ed2bd24a467e8d49c67933" + integrity sha512-SDLfP1uoB0HZ14CdVYgagllgrG7Mdxhkt4jDJOKl/MldKrkQ6vDJMZKl2+5XsEY/Lzz37fjgLQoJBGuAw/x8kQ== "@fortawesome/fontawesome-free@^5.15.3": version "5.15.4" @@ -677,133 +677,133 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -esbuild-android-64@0.15.15: - version "0.15.15" - resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.15.tgz#fd959b034dd761d14e13dda6214b6948841ff4ff" - integrity sha512-F+WjjQxO+JQOva3tJWNdVjouFMLK6R6i5gjDvgUthLYJnIZJsp1HlF523k73hELY20WPyEO8xcz7aaYBVkeg5Q== - -esbuild-android-arm64@0.15.15: - version "0.15.15" - resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.15.tgz#9733b71cf0229b4356f106a455b2cfdf7884aa59" - integrity sha512-attlyhD6Y22jNyQ0fIIQ7mnPvDWKw7k6FKnsXlBvQE6s3z6s6cuEHcSgoirquQc7TmZgVCK5fD/2uxmRN+ZpcQ== - -esbuild-darwin-64@0.15.15: - version "0.15.15" - resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.15.tgz#fc3482fdf5e798dbc0b8b2fe13287d257a45efc6" - integrity sha512-ohZtF8W1SHJ4JWldsPVdk8st0r9ExbAOSrBOh5L+Mq47i696GVwv1ab/KlmbUoikSTNoXEhDzVpxUR/WIO19FQ== - -esbuild-darwin-arm64@0.15.15: - version "0.15.15" - resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.15.tgz#e922ec387c00fa84d664e14b5722fe13613f4adc" - integrity sha512-P8jOZ5zshCNIuGn+9KehKs/cq5uIniC+BeCykvdVhx/rBXSxmtj3CUIKZz4sDCuESMbitK54drf/2QX9QHG5Ag== - -esbuild-freebsd-64@0.15.15: - version "0.15.15" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.15.tgz#69a42d79137d7d3ea718414c432bc10e8bb97c68" - integrity sha512-KkTg+AmDXz1IvA9S1gt8dE24C8Thx0X5oM0KGF322DuP+P3evwTL9YyusHAWNsh4qLsR80nvBr/EIYs29VSwuA== - -esbuild-freebsd-arm64@0.15.15: - version "0.15.15" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.15.tgz#63b6d0dd492f7394f8d07a0e2b931151eb9d60c4" - integrity sha512-FUcML0DRsuyqCMfAC+HoeAqvWxMeq0qXvclZZ/lt2kLU6XBnDA5uKTLUd379WYEyVD4KKFctqWd9tTuk8C/96g== - -esbuild-linux-32@0.15.15: - version "0.15.15" - resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.15.tgz#7f295795fd7e61ea57d1135f717424a6771a7472" - integrity sha512-q28Qn5pZgHNqug02aTkzw5sW9OklSo96b5nm17Mq0pDXrdTBcQ+M6Q9A1B+dalFeynunwh/pvfrNucjzwDXj+Q== - -esbuild-linux-64@0.15.15: - version "0.15.15" - resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.15.tgz#11a430a86403b0411ca0a355b891f1cb8c4c4ec6" - integrity sha512-217KPmWMirkf8liO+fj2qrPwbIbhNTGNVtvqI1TnOWJgcMjUWvd677Gq3fTzXEjilkx2yWypVnTswM2KbXgoAg== - -esbuild-linux-arm64@0.15.15: - version "0.15.15" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.15.tgz#b65f9a2c60e8e5b62f6cfd392cd0410f22e8c390" - integrity sha512-/ltmNFs0FivZkYsTzAsXIfLQX38lFnwJTWCJts0IbCqWZQe+jjj0vYBNbI0kmXLb3y5NljiM5USVAO1NVkdh2g== - -esbuild-linux-arm@0.15.15: - version "0.15.15" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.15.tgz#c8e13e45a0a6f0cb145ce13ae26ce1d2551d9bcc" - integrity sha512-RYVW9o2yN8yM7SB1yaWr378CwrjvGCyGybX3SdzPHpikUHkME2AP55Ma20uNwkNyY2eSYFX9D55kDrfQmQBR4w== - -esbuild-linux-mips64le@0.15.15: - version "0.15.15" - resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.15.tgz#d4c24d47e43966fcac748c90621be7edd53456c0" - integrity sha512-PksEPb321/28GFFxtvL33yVPfnMZihxkEv5zME2zapXGp7fA1X2jYeiTUK+9tJ/EGgcNWuwvtawPxJG7Mmn86A== - -esbuild-linux-ppc64le@0.15.15: - version "0.15.15" - resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.15.tgz#2eba53fe2282438ceca5471bdb57ba2e00216ed6" - integrity sha512-ek8gJBEIhcpGI327eAZigBOHl58QqrJrYYIZBWQCnH3UnXoeWMrMZLeeZL8BI2XMBhP+sQ6ERctD5X+ajL/AIA== - -esbuild-linux-riscv64@0.15.15: - version "0.15.15" - resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.15.tgz#1afa8dfe55a6c312f1904ee608b81417205f5027" - integrity sha512-H5ilTZb33/GnUBrZMNJtBk7/OXzDHDXjIzoLXHSutwwsLxSNaLxzAaMoDGDd/keZoS+GDBqNVxdCkpuiRW4OSw== - -esbuild-linux-s390x@0.15.15: - version "0.15.15" - resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.15.tgz#1f7b3c4429c8ca99920ba6bf356ccc5b38fabd34" - integrity sha512-jKaLUg78mua3rrtrkpv4Or2dNTJU7bgHN4bEjT4OX4GR7nLBSA9dfJezQouTxMmIW7opwEC5/iR9mpC18utnxQ== - -esbuild-netbsd-64@0.15.15: - version "0.15.15" - resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.15.tgz#d72c7155686c938c1aff126209b689c22823347c" - integrity sha512-aOvmF/UkjFuW6F36HbIlImJTTx45KUCHJndtKo+KdP8Dhq3mgLRKW9+6Ircpm8bX/RcS3zZMMmaBLkvGY06Gvw== - -esbuild-openbsd-64@0.15.15: - version "0.15.15" - resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.15.tgz#761bd87ecab97386948eaf667a065cb0ecaa0f76" - integrity sha512-HFFX+WYedx1w2yJ1VyR1Dfo8zyYGQZf1cA69bLdrHzu9svj6KH6ZLK0k3A1/LFPhcEY9idSOhsB2UyU0tHPxgQ== - -esbuild-sunos-64@0.15.15: - version "0.15.15" - resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.15.tgz#07e04cbf9747f281a967d09230a158a1be5b530c" - integrity sha512-jOPBudffG4HN8yJXcK9rib/ZTFoTA5pvIKbRrt3IKAGMq1EpBi4xoVoSRrq/0d4OgZLaQbmkHp8RO9eZIn5atA== - -esbuild-windows-32@0.15.15: - version "0.15.15" - resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.15.tgz#130d1982cc41fb67461e9f8a65c6ebd13a1f35bb" - integrity sha512-MDkJ3QkjnCetKF0fKxCyYNBnOq6dmidcwstBVeMtXSgGYTy8XSwBeIE4+HuKiSsG6I/mXEb++px3IGSmTN0XiA== - -esbuild-windows-64@0.15.15: - version "0.15.15" - resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.15.tgz#638bdf495c109c1882e8b0529cb8e2fea11383fb" - integrity sha512-xaAUIB2qllE888SsMU3j9nrqyLbkqqkpQyWVkfwSil6BBPgcPk3zOFitTTncEKCLTQy3XV9RuH7PDj3aJDljWA== - -esbuild-windows-arm64@0.15.15: - version "0.15.15" - resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.15.tgz#5a277ce10de999d2a6465fc92a8c2a2d207ebd31" - integrity sha512-ttuoCYCIJAFx4UUKKWYnFdrVpoXa3+3WWkXVI6s09U+YjhnyM5h96ewTq/WgQj9LFSIlABQvadHSOQyAVjW5xQ== - -esbuild@^0.15.15: - version "0.15.15" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.15.tgz#503b70bdc18d72d8fc2962ed3ab9219249e58bbe" - integrity sha512-TEw/lwK4Zzld9x3FedV6jy8onOUHqcEX3ADFk4k+gzPUwrxn8nWV62tH0udo8jOtjFodlEfc4ypsqX3e+WWO6w== +esbuild-android-64@0.15.16: + version "0.15.16" + resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.16.tgz#0d6a16fa1bea441d5183976f1633183c25a764d5" + integrity sha512-Vwkv/sT0zMSgPSVO3Jlt1pUbnZuOgtOQJkJkyyJFAlLe7BiT8e9ESzo0zQSx4c3wW4T6kGChmKDPMbWTgtliQA== + +esbuild-android-arm64@0.15.16: + version "0.15.16" + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.16.tgz#78643bbbf396d26d20ba1f2fcdff3618c7c033e9" + integrity sha512-lqfKuofMExL5niNV3gnhMUYacSXfsvzTa/58sDlBET/hCOG99Zmeh+lz6kvdgvGOsImeo6J9SW21rFCogNPLxg== + +esbuild-darwin-64@0.15.16: + version "0.15.16" + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.16.tgz#de3e91809dcd1ffb64409e2f990bb86e33e4ffd8" + integrity sha512-wo2VWk/n/9V2TmqUZ/KpzRjCEcr00n7yahEdmtzlrfQ3lfMCf3Wa+0sqHAbjk3C6CKkR3WKK/whkMq5Gj4Da9g== + +esbuild-darwin-arm64@0.15.16: + version "0.15.16" + resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.16.tgz#bc9cc8d51109d8e9db4ffe2c064dd53d1eb5a2a6" + integrity sha512-fMXaUr5ou0M4WnewBKsspMtX++C1yIa3nJ5R2LSbLCfJT3uFdcRoU/NZjoM4kOMKyOD9Sa/2vlgN8G07K3SJnw== + +esbuild-freebsd-64@0.15.16: + version "0.15.16" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.16.tgz#f8c54c679c16e9b20a1bf860ca91ba700d6c9c5d" + integrity sha512-UzIc0xlRx5x9kRuMr+E3+hlSOxa/aRqfuMfiYBXu2jJ8Mzej4lGL7+o6F5hzhLqWfWm1GWHNakIdlqg1ayaTNQ== + +esbuild-freebsd-arm64@0.15.16: + version "0.15.16" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.16.tgz#dd28a55df0f062e2c1628266008434c32ddc7adf" + integrity sha512-8xyiYuGc0DLZphFQIiYaLHlfoP+hAN9RHbE+Ibh8EUcDNHAqbQgUrQg7pE7Bo00rXmQ5Ap6KFgcR0b4ALZls1g== + +esbuild-linux-32@0.15.16: + version "0.15.16" + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.16.tgz#41eb0b9b49b3430b9cc4577f1ad3d414ef70f806" + integrity sha512-iGijUTV+0kIMyUVoynK0v+32Oi8yyp0xwMzX69GX+5+AniNy/C/AL1MjFTsozRp/3xQPl7jVux/PLe2ds10/2w== + +esbuild-linux-64@0.15.16: + version "0.15.16" + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.16.tgz#b2fb0c7d49b7a579b2de26fbf4c7afb1835f2073" + integrity sha512-tuSOjXdLw7VzaUj89fIdAaQT7zFGbKBcz4YxbWrOiXkwscYgE7HtTxUavreBbnRkGxKwr9iT/gmeJWNm4djy/g== + +esbuild-linux-arm64@0.15.16: + version "0.15.16" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.16.tgz#78fed3745b20251fc3bdc8db35ea0781e9b0e7c6" + integrity sha512-mPYksnfHnemNrvjrDhZyixL/AfbJN0Xn9S34ZOHYdh6/jJcNd8iTsv3JwJoEvTJqjMggjMhGUPJAdjnFBHoH8A== + +esbuild-linux-arm@0.15.16: + version "0.15.16" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.16.tgz#6963f061a2b778aad7df2bfb6fa32d1904313f7f" + integrity sha512-XKcrxCEXDTOuoRj5l12tJnkvuxXBMKwEC5j0JISw3ziLf0j4zIwXbKbTmUrKFWbo6ZgvNpa7Y5dnbsjVvH39bQ== + +esbuild-linux-mips64le@0.15.16: + version "0.15.16" + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.16.tgz#e2aed3527e551f8182c6b0fc8a045726fd98ad87" + integrity sha512-kSJO2PXaxfm0pWY39+YX+QtpFqyyrcp0ZeI8QPTrcFVQoWEPiPVtOfTZeS3ZKedfH+Ga38c4DSzmKMQJocQv6A== + +esbuild-linux-ppc64le@0.15.16: + version "0.15.16" + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.16.tgz#fa3095b24950f63408f46f34b6d9a073ed88d53f" + integrity sha512-NimPikwkBY0yGABw6SlhKrtT35sU4O23xkhlrTT/O6lSxv3Pm5iSc6OYaqVAHWkLdVf31bF4UDVFO+D990WpAA== + +esbuild-linux-riscv64@0.15.16: + version "0.15.16" + resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.16.tgz#19c012dcc55c9d6d2a3855aa77c2c5217182cd1e" + integrity sha512-ty2YUHZlwFOwp7pR+J87M4CVrXJIf5ZZtU/umpxgVJBXvWjhziSLEQxvl30SYfUPq0nzeWKBGw5i/DieiHeKfw== + +esbuild-linux-s390x@0.15.16: + version "0.15.16" + resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.16.tgz#aa61f64740e5b983cc3ebb4183a03df4b435a873" + integrity sha512-VkZaGssvPDQtx4fvVdZ9czezmyWyzpQhEbSNsHZZN0BHvxRLOYAQ7sjay8nMQwYswP6O2KlZluRMNPYefFRs+w== + +esbuild-netbsd-64@0.15.16: + version "0.15.16" + resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.16.tgz#dffdc104c1f2bafc42be3faa21376c0a092f5702" + integrity sha512-ElQ9rhdY51et6MJTWrCPbqOd/YuPowD7Cxx3ee8wlmXQQVW7UvQI6nSprJ9uVFQISqSF5e5EWpwWqXZsECLvXg== + +esbuild-openbsd-64@0.15.16: + version "0.15.16" + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.16.tgz#e5987f8eda55ea5f6ef6258afb1a838158f890bb" + integrity sha512-KgxMHyxMCT+NdLQE1zVJEsLSt2QQBAvJfmUGDmgEq8Fvjrf6vSKB00dVHUEDKcJwMID6CdgCpvYNt999tIYhqA== + +esbuild-sunos-64@0.15.16: + version "0.15.16" + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.16.tgz#60a085aa4b74d900e4de8c00a9fce207937320a2" + integrity sha512-exSAx8Phj7QylXHlMfIyEfNrmqnLxFqLxdQF6MBHPdHAjT7fsKaX6XIJn+aQEFiOcE4X8e7VvdMCJ+WDZxjSRQ== + +esbuild-windows-32@0.15.16: + version "0.15.16" + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.16.tgz#24f94e5fb243d211c7db9a12985fd2880ba98ca3" + integrity sha512-zQgWpY5pUCSTOwqKQ6/vOCJfRssTvxFuEkpB4f2VUGPBpdddZfdj8hbZuFRdZRPIVHvN7juGcpgCA/XCF37mAQ== + +esbuild-windows-64@0.15.16: + version "0.15.16" + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.16.tgz#71d24d68d8b652bf5a93a6c7453c334584fa2211" + integrity sha512-HjW1hHRLSncnM3MBCP7iquatHVJq9l0S2xxsHHj4yzf4nm9TU4Z7k4NkeMlD/dHQ4jPlQQhwcMvwbJiOefSuZw== + +esbuild-windows-arm64@0.15.16: + version "0.15.16" + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.16.tgz#77e804d60dec0390fe8f21401e39b435d5d1b863" + integrity sha512-oCcUKrJaMn04Vxy9Ekd8x23O8LoU01+4NOkQ2iBToKgnGj5eo1vU9i27NQZ9qC8NFZgnQQZg5oZWAejmbsppNA== + +esbuild@^0.15.16: + version "0.15.16" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.16.tgz#59324e5667985bf6aee8a91ea576baef6872cf21" + integrity sha512-o6iS9zxdHrrojjlj6pNGC2NAg86ECZqIETswTM5KmJitq+R1YmahhWtMumeQp9lHqJaROGnsBi2RLawGnfo5ZQ== optionalDependencies: - "@esbuild/android-arm" "0.15.15" - "@esbuild/linux-loong64" "0.15.15" - esbuild-android-64 "0.15.15" - esbuild-android-arm64 "0.15.15" - esbuild-darwin-64 "0.15.15" - esbuild-darwin-arm64 "0.15.15" - esbuild-freebsd-64 "0.15.15" - esbuild-freebsd-arm64 "0.15.15" - esbuild-linux-32 "0.15.15" - esbuild-linux-64 "0.15.15" - esbuild-linux-arm "0.15.15" - esbuild-linux-arm64 "0.15.15" - esbuild-linux-mips64le "0.15.15" - esbuild-linux-ppc64le "0.15.15" - esbuild-linux-riscv64 "0.15.15" - esbuild-linux-s390x "0.15.15" - esbuild-netbsd-64 "0.15.15" - esbuild-openbsd-64 "0.15.15" - esbuild-sunos-64 "0.15.15" - esbuild-windows-32 "0.15.15" - esbuild-windows-64 "0.15.15" - esbuild-windows-arm64 "0.15.15" + "@esbuild/android-arm" "0.15.16" + "@esbuild/linux-loong64" "0.15.16" + esbuild-android-64 "0.15.16" + esbuild-android-arm64 "0.15.16" + esbuild-darwin-64 "0.15.16" + esbuild-darwin-arm64 "0.15.16" + esbuild-freebsd-64 "0.15.16" + esbuild-freebsd-arm64 "0.15.16" + esbuild-linux-32 "0.15.16" + esbuild-linux-64 "0.15.16" + esbuild-linux-arm "0.15.16" + esbuild-linux-arm64 "0.15.16" + esbuild-linux-mips64le "0.15.16" + esbuild-linux-ppc64le "0.15.16" + esbuild-linux-riscv64 "0.15.16" + esbuild-linux-s390x "0.15.16" + esbuild-netbsd-64 "0.15.16" + esbuild-openbsd-64 "0.15.16" + esbuild-sunos-64 "0.15.16" + esbuild-windows-32 "0.15.16" + esbuild-windows-64 "0.15.16" + esbuild-windows-arm64 "0.15.16" ev-emitter@^1.0.0: version "1.1.1" From 11fc81a82d9fa43bc92e51327bbf7838087ae887 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 28 Nov 2022 21:01:12 +0000 Subject: [PATCH 1234/2165] chore(deps): bump stimulus-rails from 1.1.1 to 1.2.0 Bumps [stimulus-rails](https://github.com/hotwired/stimulus-rails) from 1.1.1 to 1.2.0. - [Release notes](https://github.com/hotwired/stimulus-rails/releases) - [Commits](https://github.com/hotwired/stimulus-rails/compare/v1.1.1...v1.2.0) --- updated-dependencies: - dependency-name: stimulus-rails dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index bb437b53d..4481312bb 100644 --- a/Gemfile +++ b/Gemfile @@ -95,7 +95,7 @@ gem 'propshaft', '0.6.4' gem 'jsbundling-rails', '~> 1.0' gem 'cssbundling-rails', '~> 1.1' ## Javascript -gem 'stimulus-rails', '~> 1.1.1' +gem 'stimulus-rails', '~> 1.2.0' gem 'turbo-rails', '~> 1.3' # 用于解析 iOS, Android 和 macOS 应用 diff --git a/Gemfile.lock b/Gemfile.lock index 052d6c3d4..2364a228d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -462,7 +462,7 @@ GEM activesupport (>= 5.2) sprockets (>= 3.0.0) ssrf_filter (1.1.1) - stimulus-rails (1.1.1) + stimulus-rails (1.2.0) railties (>= 6.0.0) strscan (3.0.4) sys-filesystem (1.4.3) @@ -501,7 +501,7 @@ GEM websocket-driver (0.7.5) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) - zeitwerk (2.6.3) + zeitwerk (2.6.6) PLATFORMS ruby @@ -572,7 +572,7 @@ DEPENDENCIES sidekiq-scheduler (~> 4.0.3) simple_form (~> 5.1) slim-rails (~> 3.5.1) - stimulus-rails (~> 1.1.1) + stimulus-rails (~> 1.2.0) sys-filesystem (~> 1.4.3) terminal-notifier terminal-notifier-guard From 2a284fc56814ff3adab5e2598d957595687e9bf6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 30 Nov 2022 21:00:47 +0000 Subject: [PATCH 1235/2165] chore(deps): bump @hotwired/stimulus from 3.2.0 to 3.2.1 Bumps [@hotwired/stimulus](https://github.com/hotwired/stimulus) from 3.2.0 to 3.2.1. - [Release notes](https://github.com/hotwired/stimulus/releases) - [Changelog](https://github.com/hotwired/stimulus/blob/main/CHANGELOG.md) - [Commits](https://github.com/hotwired/stimulus/compare/v3.2.0...v3.2.1) --- updated-dependencies: - dependency-name: "@hotwired/stimulus" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 9ba1081eb..a6c53e751 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "private": true, "license": "MIT", "dependencies": { - "@hotwired/stimulus": "^3.2.0", + "@hotwired/stimulus": "^3.2.1", "@hotwired/turbo-rails": "^7.2.4", "@rails/actioncable": "^7.0.4", "admin-lte": "3.1.0", diff --git a/yarn.lock b/yarn.lock index b9ca246e1..2d420c93b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -17,10 +17,10 @@ resolved "https://registry.yarnpkg.com/@fortawesome/fontawesome-free/-/fontawesome-free-5.15.4.tgz#ecda5712b61ac852c760d8b3c79c96adca5554e5" integrity sha512-eYm8vijH/hpzr/6/1CJ/V/Eb1xQFW2nnUKArb3z+yUWv7HTwj6M7SP957oMjfZjAHU6qpoNc2wQvIxBLWYa/Jg== -"@hotwired/stimulus@^3.2.0": - version "3.2.0" - resolved "https://registry.yarnpkg.com/@hotwired/stimulus/-/stimulus-3.2.0.tgz#257272f1348b1f7beb1a8510be88b80aec6c4c5b" - integrity sha512-uAIIdg049qId0lBhyjuMBfcC5uV8JwbhNLoxEyi9vxM3MW6h+mM97G9rNT4ZZMiqnKK9XUHp9SQUrd9rSLEmpQ== +"@hotwired/stimulus@^3.2.1": + version "3.2.1" + resolved "https://registry.yarnpkg.com/@hotwired/stimulus/-/stimulus-3.2.1.tgz#e3de23623b0c52c247aba4cd5d530d257008676b" + integrity sha512-HGlzDcf9vv/EQrMJ5ZG6VWNs8Z/xMN+1o2OhV1gKiSG6CqZt5MCBB1gRg5ILiN3U0jEAxuDTNPRfBcnZBDmupQ== "@hotwired/turbo-rails@^7.2.4": version "7.2.4" From 192d5cfda74b00c4ceab6fc682359811c926aff7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 30 Nov 2022 21:01:01 +0000 Subject: [PATCH 1236/2165] chore(deps): bump stimulus-rails from 1.2.0 to 1.2.1 Bumps [stimulus-rails](https://github.com/hotwired/stimulus-rails) from 1.2.0 to 1.2.1. - [Release notes](https://github.com/hotwired/stimulus-rails/releases) - [Commits](https://github.com/hotwired/stimulus-rails/compare/v1.2.0...v1.2.1) --- updated-dependencies: - dependency-name: stimulus-rails dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 4481312bb..811d3336b 100644 --- a/Gemfile +++ b/Gemfile @@ -95,7 +95,7 @@ gem 'propshaft', '0.6.4' gem 'jsbundling-rails', '~> 1.0' gem 'cssbundling-rails', '~> 1.1' ## Javascript -gem 'stimulus-rails', '~> 1.2.0' +gem 'stimulus-rails', '~> 1.2.1' gem 'turbo-rails', '~> 1.3' # 用于解析 iOS, Android 和 macOS 应用 diff --git a/Gemfile.lock b/Gemfile.lock index 2364a228d..84bbf219e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -462,7 +462,7 @@ GEM activesupport (>= 5.2) sprockets (>= 3.0.0) ssrf_filter (1.1.1) - stimulus-rails (1.2.0) + stimulus-rails (1.2.1) railties (>= 6.0.0) strscan (3.0.4) sys-filesystem (1.4.3) @@ -572,7 +572,7 @@ DEPENDENCIES sidekiq-scheduler (~> 4.0.3) simple_form (~> 5.1) slim-rails (~> 3.5.1) - stimulus-rails (~> 1.2.0) + stimulus-rails (~> 1.2.1) sys-filesystem (~> 1.4.3) terminal-notifier terminal-notifier-guard From 933cac96ddb288a059a4e993ae95ccf8405d9b6e Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 1 Dec 2022 16:34:37 +0800 Subject: [PATCH 1237/2165] =?UTF-8?q?fix:=20=E6=8D=95=E8=8E=B7=E5=88=9B?= =?UTF-8?q?=E5=BB=BA=E5=BA=94=E7=94=A8=E6=B8=A0=E9=81=93=E5=90=8D=E7=A7=B0?= =?UTF-8?q?=E4=B8=BA=E7=A9=BA=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Relates #968 --- app/controllers/channels_controller.rb | 5 +++-- config/locales/zealot/en.yml | 3 +++ config/locales/zealot/zh-CN.yml | 5 ++++- 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/app/controllers/channels_controller.rb b/app/controllers/channels_controller.rb index 920f7d33c..d1ffc2c49 100644 --- a/app/controllers/channels_controller.rb +++ b/app/controllers/channels_controller.rb @@ -25,10 +25,11 @@ def create @channel = Channel.new(channel_params) authorize @channel - return render :new, status: :unprocessable_entity unless @channel.save + app_url = app_path(@channel.scheme.app) + return redirect_to app_url, alert: @channel.errors.full_messages.to_sentence unless @channel.save message = t('activerecord.success.create', key: "#{@channel.scheme.name} #{@channel.name} #{t('channels.title')}") - redirect_to app_path(@channel.scheme.app), notice: message + redirect_to app_url, notice: message end def edit diff --git a/config/locales/zealot/en.yml b/config/locales/zealot/en.yml index a3e0133fa..83fe71020 100644 --- a/config/locales/zealot/en.yml +++ b/config/locales/zealot/en.yml @@ -770,6 +770,9 @@ en: failures: max_keeps_limited: '%{key} backup maximum limit value was zero' activerecord: + attributes: + channel: + name: Channel name success: create: "Created %{key} successfully" update: "Updated %{key} successfully" diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index c19fc9a1a..7364699c1 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -829,6 +829,9 @@ zh-CN: max_keeps_limited: '%{key} 备份设置最大限制值为零' activerecord: + attributes: + channel: + name: 渠道名称 success: create: "%{key}创建成功" update: "%{key}更新成功" @@ -849,7 +852,7 @@ zh-CN: app_id: blank: 请选择需要关联的应用 file: - blank: 必须选择一个 zip 文件 + blank: 必须选择一个 zpi 文件 checksum: taken: 文件已经存在,不能重复上传 backup: From 8557611e31a3701413cc7be2c30527b7f37065da Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 1 Dec 2022 16:45:55 +0800 Subject: [PATCH 1238/2165] =?UTF-8?q?chore:=20=E7=BC=96=E8=AF=91=20docker?= =?UTF-8?q?=20=E6=B5=8B=E8=AF=95=E4=BB=BB=E5=8A=A1=E5=A2=9E=E5=8A=A0=20arm?= =?UTF-8?q?64?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/test_docker_build.yml | 54 +++++++++++++++++-------- 1 file changed, 38 insertions(+), 16 deletions(-) diff --git a/.github/workflows/test_docker_build.yml b/.github/workflows/test_docker_build.yml index cf6324341..ffa7e4277 100644 --- a/.github/workflows/test_docker_build.yml +++ b/.github/workflows/test_docker_build.yml @@ -4,27 +4,49 @@ on: pull_request: paths-ignore: - '**.md' - - '.*' + - '.devcontainer' + - '.vscode' - 'LICENSE' - - 'Guardfile' - - Aptfile + - '*file' - 'Procfile*' - - '**.yaml' - - '**.yml' + - '*.yaml' + - '*.yml' jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@master - - name: Build the Docker image - uses: elgohr/Publish-Docker-Github-Action@master - env: - REPLACE_CHINA_MIRROR: false - VCS_REF: ${{ github.sha }} - BUILD_DATE: ${{ steps.date.outputs.date }} - TAG: pr-test + - name: Checkout + uses: actions/checkout@v2 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + + - name: Set Docker Build Date + id: build_date + run: echo "::set-output name=value::$(date +'%Y-%m-%d')" + + - name: Docker metadata + id: metadata + uses: docker/metadata-action@v4 + with: + images: ghcr.io/${{ github.repository }} + + - name: Test build + uses: docker/build-push-action@v3 with: - name: tryzealot/zealot:${{ env.TAG }} - no_push: true - buildargs: BUILD_DATE,VCS_REF,TAG,REPLACE_CHINA_MIRROR \ No newline at end of file + context: . + push: false + labels: ${{ steps.metadata.outputs.labels }} + tags: | + ${{ steps.metadata.outputs.tags }} + platforms: linux/amd64,linux/arm64 + cache-from: type=gha,scope=docker-build-release + cache-to: type=gha,mode=max,scope=docker-build-release + build-args: | + REPLACE_CHINA_MIRROR=false + VCS_REF: ${{ github.sha }} + BUILD_DATE: ${{ steps.build_date.outputs.date }} \ No newline at end of file From 488d2fe744cb55eb60ae11dc277b5efb915175ae Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 1 Dec 2022 21:00:46 +0000 Subject: [PATCH 1239/2165] chore(deps): bump sentry-ruby from 5.6.0 to 5.7.0 Bumps [sentry-ruby](https://github.com/getsentry/sentry-ruby) from 5.6.0 to 5.7.0. - [Release notes](https://github.com/getsentry/sentry-ruby/releases) - [Changelog](https://github.com/getsentry/sentry-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-ruby/compare/5.6.0...5.7.0) --- updated-dependencies: - dependency-name: sentry-ruby dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 84bbf219e..c9647c315 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -423,13 +423,13 @@ GEM rubyzip (2.3.2) rufus-scheduler (3.8.2) fugit (~> 1.1, >= 1.1.6) - sentry-rails (5.6.0) + sentry-rails (5.7.0) railties (>= 5.0) - sentry-ruby (~> 5.6.0) - sentry-ruby (5.6.0) + sentry-ruby (~> 5.7.0) + sentry-ruby (5.7.0) concurrent-ruby (~> 1.0, >= 1.0.2) - sentry-sidekiq (5.6.0) - sentry-ruby (~> 5.6.0) + sentry-sidekiq (5.7.0) + sentry-ruby (~> 5.7.0) sidekiq (>= 3.0) shellany (0.0.1) sidekiq (6.5.8) From 0348cd2b761484d284be6d6751aad20ec88841fc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 1 Dec 2022 21:01:49 +0000 Subject: [PATCH 1240/2165] chore(deps): bump sentry-rails from 5.6.0 to 5.7.0 Bumps [sentry-rails](https://github.com/getsentry/sentry-ruby) from 5.6.0 to 5.7.0. - [Release notes](https://github.com/getsentry/sentry-ruby/releases) - [Changelog](https://github.com/getsentry/sentry-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-ruby/compare/5.6.0...5.7.0) --- updated-dependencies: - dependency-name: sentry-rails dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 84bbf219e..c9647c315 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -423,13 +423,13 @@ GEM rubyzip (2.3.2) rufus-scheduler (3.8.2) fugit (~> 1.1, >= 1.1.6) - sentry-rails (5.6.0) + sentry-rails (5.7.0) railties (>= 5.0) - sentry-ruby (~> 5.6.0) - sentry-ruby (5.6.0) + sentry-ruby (~> 5.7.0) + sentry-ruby (5.7.0) concurrent-ruby (~> 1.0, >= 1.0.2) - sentry-sidekiq (5.6.0) - sentry-ruby (~> 5.6.0) + sentry-sidekiq (5.7.0) + sentry-ruby (~> 5.7.0) sidekiq (>= 3.0) shellany (0.0.1) sidekiq (6.5.8) From f2c8e52c6c9b011e91938f5ce84fb712b0dd9bd1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 1 Dec 2022 21:02:30 +0000 Subject: [PATCH 1241/2165] chore(deps): bump sentry-sidekiq from 5.6.0 to 5.7.0 Bumps [sentry-sidekiq](https://github.com/getsentry/sentry-ruby) from 5.6.0 to 5.7.0. - [Release notes](https://github.com/getsentry/sentry-ruby/releases) - [Changelog](https://github.com/getsentry/sentry-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-ruby/compare/5.6.0...5.7.0) --- updated-dependencies: - dependency-name: sentry-sidekiq dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 84bbf219e..c9647c315 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -423,13 +423,13 @@ GEM rubyzip (2.3.2) rufus-scheduler (3.8.2) fugit (~> 1.1, >= 1.1.6) - sentry-rails (5.6.0) + sentry-rails (5.7.0) railties (>= 5.0) - sentry-ruby (~> 5.6.0) - sentry-ruby (5.6.0) + sentry-ruby (~> 5.7.0) + sentry-ruby (5.7.0) concurrent-ruby (~> 1.0, >= 1.0.2) - sentry-sidekiq (5.6.0) - sentry-ruby (~> 5.6.0) + sentry-sidekiq (5.7.0) + sentry-ruby (~> 5.7.0) sidekiq (>= 3.0) shellany (0.0.1) sidekiq (6.5.8) From 4255e81f7df03c16393f3a65ed7d6b96ae020827 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 2 Dec 2022 11:51:57 +0800 Subject: [PATCH 1242/2165] =?UTF-8?q?fix(docker):=20arm64=20=E6=97=A0?= =?UTF-8?q?=E6=B3=95=E5=AE=89=E8=A3=85nokogiri?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/test_docker_build.yml | 4 +--- Dockerfile | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/test_docker_build.yml b/.github/workflows/test_docker_build.yml index ffa7e4277..69498c37c 100644 --- a/.github/workflows/test_docker_build.yml +++ b/.github/workflows/test_docker_build.yml @@ -13,7 +13,7 @@ on: - '*.yml' jobs: - build: + test: runs-on: ubuntu-latest steps: - name: Checkout @@ -44,8 +44,6 @@ jobs: tags: | ${{ steps.metadata.outputs.tags }} platforms: linux/amd64,linux/arm64 - cache-from: type=gha,scope=docker-build-release - cache-to: type=gha,mode=max,scope=docker-build-release build-args: | REPLACE_CHINA_MIRROR=false VCS_REF: ${{ github.sha }} diff --git a/Dockerfile b/Dockerfile index 8b4686190..ef0b1fa45 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ FROM ruby:3.0-alpine as builder ARG BUILD_PACKAGES="build-base libxml2 libxslt git" -ARG DEV_PACKAGES="libxml2-dev libxslt-dev yaml-dev postgresql-dev nodejs npm yarn libwebp-dev libpng-dev tiff-dev" +ARG DEV_PACKAGES="libxml2-dev libxslt-dev yaml-dev postgresql-dev nodejs npm yarn libwebp-dev libpng-dev tiff-dev gcompat" ARG RUBY_PACKAGES="tzdata" ARG REPLACE_CHINA_MIRROR="true" From 00ca04bb8218e680020a21269cc70be19e1d3665 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 2 Dec 2022 13:41:00 +0800 Subject: [PATCH 1243/2165] =?UTF-8?q?chore:=20=E5=A2=9E=E5=8A=A0=20armv7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/test_docker_build.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test_docker_build.yml b/.github/workflows/test_docker_build.yml index 69498c37c..d25bf9063 100644 --- a/.github/workflows/test_docker_build.yml +++ b/.github/workflows/test_docker_build.yml @@ -43,8 +43,8 @@ jobs: labels: ${{ steps.metadata.outputs.labels }} tags: | ${{ steps.metadata.outputs.tags }} - platforms: linux/amd64,linux/arm64 + platforms: linux/amd64,linux/arm64,linux/arm/v7 build-args: | REPLACE_CHINA_MIRROR=false - VCS_REF: ${{ github.sha }} - BUILD_DATE: ${{ steps.build_date.outputs.date }} \ No newline at end of file + VCS_REF=${{ github.sha }} + BUILD_DATE=${{ steps.build_date.outputs.date }} \ No newline at end of file From 1c984862d6f63bd909f445b444bcef53a39bf498 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 2 Dec 2022 14:31:51 +0800 Subject: [PATCH 1244/2165] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=20arm64/v8?= =?UTF-8?q?,=20arm/v7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/publish_nighty.yml | 64 +++++++++++++++------------- 1 file changed, 35 insertions(+), 29 deletions(-) diff --git a/.github/workflows/publish_nighty.yml b/.github/workflows/publish_nighty.yml index d17ea80bb..c8dba79dc 100644 --- a/.github/workflows/publish_nighty.yml +++ b/.github/workflows/publish_nighty.yml @@ -20,38 +20,44 @@ jobs: packages: write contents: read steps: - - uses: actions/checkout@master + - name: Checkout + uses: actions/checkout@v2 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + - name: Get build date - id: date + id: build_date run: echo "::set-output name=date::$(date +'%Y-%m-%d %H:%M:%S %z')" - - name: Publish to Github Hub Registry - uses: elgohr/Publish-Docker-Github-Action@master - env: - REPLACE_CHINA_MIRROR: false - VCS_REF: ${{ github.sha }} - BUILD_DATE: ${{ steps.date.outputs.date }} - TAG: nightly + + - name: Login to Docker Hub + uses: docker/login-action@v2 with: - name: ghcr.io/tryzealot/zealot:${{ env.TAG }} - username: ${{ github.actor }} - password: ${{ secrets.CR_PAT }} - buildargs: BUILD_DATE,VCS_REF,TAG,REPLACE_CHINA_MIRROR - registry: ghcr.io - - name: Publish to Docker Hub Registry - uses: elgohr/Publish-Docker-Github-Action@master - env: - REPLACE_CHINA_MIRROR: false - VCS_REF: ${{ github.sha }} - BUILD_DATE: ${{ steps.date.outputs.date }} - TAG: nightly - with: - name: tryzealot/zealot:${{ env.TAG }} username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - buildargs: BUILD_DATE,VCS_REF,TAG,REPLACE_CHINA_MIRROR - - name: Update Docker Hub Description - uses: peter-evans/dockerhub-description@v3 + + - name: Login to GitHub Container Registry + uses: docker/login-action@v2 with: - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - repository: tryzealot/zealot \ No newline at end of file + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build and Push + uses: docker/build-push-action@v3 + with: + context: . + push: true + labels: ${{ steps.metadata.outputs.labels }} + tags: | + ${{ steps.metadata.outputs.tags }} + ${{ github.repository }}:nightly + ghcr.io/${{ github.repository }}:nightly + platforms: linux/amd64,linux/arm64,linux/arm/v7 + build-args: | + REPLACE_CHINA_MIRROR=false + VCS_REF=${{ github.sha }} + BUILD_DATE=${{ steps.build_date.outputs.date }} \ No newline at end of file From 864eb98124f7e6dfd65eb4760dc3f714ccd182ea Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 2 Dec 2022 21:04:58 +0800 Subject: [PATCH 1245/2165] =?UTF-8?q?fix:=20s6=20overlay=20=E9=80=82?= =?UTF-8?q?=E9=85=8D=20arm?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/Dockerfile b/Dockerfile index ef0b1fa45..0bac93faa 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM ruby:3.0-alpine as builder +FROM --platform=$BUILDPLATFORM ruby:3.0-alpine as builder ARG BUILD_PACKAGES="build-base libxml2 libxslt git" ARG DEV_PACKAGES="libxml2-dev libxslt-dev yaml-dev postgresql-dev nodejs npm yarn libwebp-dev libpng-dev tiff-dev gcompat" @@ -55,7 +55,7 @@ RUN rm -rf docker node_modules tmp/cache spec .browserslistrc babel.config.js \ ################################################################################## -FROM ruby:3.0-alpine +FROM --platform=$BUILDPLATFORM ruby:3.0-alpine ARG BUILD_DATE ARG VCS_REF @@ -96,9 +96,27 @@ RUN set -ex && \ gem sources --add $RUBYGEMS_SOURCE --remove https://rubygems.org/; \ fi && \ apk --update --no-cache add $PACKAGES && \ - curl -L -s https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-amd64.tar.gz | tar xvzf - -C / && \ gem install $RUBY_GEMS +ARG TARGETARCH +RUN echo "Setting variables for ${TARGETPLATFORM:=amd64}" && \ + case "$TARGETPLATFORM" in \ + "amd64") \ + S6_OVERLAY_ARCH="amd64" \ + ;; \ + "arm64") \ + S6_OVERLAY_ARCH="aarch64" \ + ;; \ + linux/arm/v7) \ + S6_OVERLAY_ARCH="arm" \ + ;; \ + *) \ + echo "Doesn't support $TARGETARCH architecture" \ + exit 1 \ + ;; \ + esac && \ + curl -L -s https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-${S6_OVERLAY_ARCH}.tar.gz | tar xvzf - -C / + WORKDIR $APP_ROOT COPY docker/rootfs / From a65a54837a2ef65b2376c4a15d11526f9051f257 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 2 Dec 2022 22:18:08 +0800 Subject: [PATCH 1246/2165] =?UTF-8?q?fix:=20s6=20overlay=20=E9=80=82?= =?UTF-8?q?=E9=85=8D=20arm?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/Dockerfile b/Dockerfile index 0bac93faa..85690b3bd 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM --platform=$BUILDPLATFORM ruby:3.0-alpine as builder +FROM ruby:3.0-alpine as builder ARG BUILD_PACKAGES="build-base libxml2 libxslt git" ARG DEV_PACKAGES="libxml2-dev libxslt-dev yaml-dev postgresql-dev nodejs npm yarn libwebp-dev libpng-dev tiff-dev gcompat" @@ -55,7 +55,7 @@ RUN rm -rf docker node_modules tmp/cache spec .browserslistrc babel.config.js \ ################################################################################## -FROM --platform=$BUILDPLATFORM ruby:3.0-alpine +FROM ruby:3.0-alpine ARG BUILD_DATE ARG VCS_REF @@ -70,6 +70,7 @@ ARG PACKAGES="tzdata curl logrotate postgresql-dev libwebp-dev libpng-dev tiff-d ARG RUBY_GEMS="bundler" ARG APP_ROOT=/app ARG S6_OVERLAY_VERSION="2.2.0.3" +ARG TARGETARCH LABEL org.opencontainers.image.title="Zealot" \ org.opencontainers.image.description="Over The Air Server for deployment of Android and iOS apps" \ @@ -96,19 +97,17 @@ RUN set -ex && \ gem sources --add $RUBYGEMS_SOURCE --remove https://rubygems.org/; \ fi && \ apk --update --no-cache add $PACKAGES && \ - gem install $RUBY_GEMS - -ARG TARGETARCH -RUN echo "Setting variables for ${TARGETPLATFORM:=amd64}" && \ - case "$TARGETPLATFORM" in \ + gem install $RUBY_GEMS && \ + echo "Setting variables for ${TARGETARCH}" && \ + case "$TARGETARCH" in \ "amd64") \ - S6_OVERLAY_ARCH="amd64" \ + S6_OVERLAY_ARCH="amd64" \ ;; \ "arm64") \ - S6_OVERLAY_ARCH="aarch64" \ + S6_OVERLAY_ARCH="aarch64" \ ;; \ - linux/arm/v7) \ - S6_OVERLAY_ARCH="arm" \ + "linux/arm/v7" | "arm") \ + S6_OVERLAY_ARCH="arm" \ ;; \ *) \ echo "Doesn't support $TARGETARCH architecture" \ From 056ae8e7b90a269e6d3dcb0d30bdaf086c684444 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 2 Dec 2022 21:00:37 +0000 Subject: [PATCH 1247/2165] chore(deps-dev): bump debug from 1.6.3 to 1.7.0 Bumps [debug](https://github.com/ruby/debug) from 1.6.3 to 1.7.0. - [Release notes](https://github.com/ruby/debug/releases) - [Commits](https://github.com/ruby/debug/compare/v1.6.3...v1.7.0) --- updated-dependencies: - dependency-name: debug dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Gemfile b/Gemfile index 811d3336b..91a168be9 100644 --- a/Gemfile +++ b/Gemfile @@ -115,7 +115,7 @@ group :development do # 调试器 ## VSCode debug: https://marketplace.visualstudio.com/items?itemName=KoichiSasada.vscode-rdbg - gem 'debug', '~> 1.6.3', platforms: %i[ mri mingw x64_mingw ] + gem 'debug', '~> 1.7.0', platforms: %i[ mri mingw x64_mingw ] # 开发辅助 gem 'guard', '~> 2.18.0' diff --git a/Gemfile.lock b/Gemfile.lock index c9647c315..05d5aaf1a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -121,8 +121,8 @@ GEM crass (1.0.6) cssbundling-rails (1.1.1) railties (>= 6.0.0) - debug (1.6.3) - irb (>= 1.3.6) + debug (1.7.0) + irb (>= 1.5.0) reline (>= 0.3.1) debug_inspector (1.1.0) devise (4.8.1) @@ -207,7 +207,7 @@ GEM interception (0.5) io-console (0.5.11) ipaddr (1.2.4) - irb (1.4.2) + irb (1.5.1) reline (>= 0.3.0) jb (0.8.0) jsbundling-rails (1.0.3) @@ -516,7 +516,7 @@ DEPENDENCIES bootsnap (>= 1.4.7) carrierwave (~> 2.2.3) cssbundling-rails (~> 1.1) - debug (~> 1.6.3) + debug (~> 1.7.0) devise (~> 4.8.1) devise-i18n (~> 1.10.2) dotenv-rails From 1e08dad4468a4898ce11d1398c20e5b050f7c4ac Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 2 Dec 2022 22:18:08 +0800 Subject: [PATCH 1248/2165] =?UTF-8?q?fix:=20s6=20overlay=20=E9=80=82?= =?UTF-8?q?=E9=85=8D=20arm?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/Dockerfile b/Dockerfile index 0bac93faa..14a5f7490 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM --platform=$BUILDPLATFORM ruby:3.0-alpine as builder +FROM ruby:3.0-alpine as builder ARG BUILD_PACKAGES="build-base libxml2 libxslt git" ARG DEV_PACKAGES="libxml2-dev libxslt-dev yaml-dev postgresql-dev nodejs npm yarn libwebp-dev libpng-dev tiff-dev gcompat" @@ -55,7 +55,7 @@ RUN rm -rf docker node_modules tmp/cache spec .browserslistrc babel.config.js \ ################################################################################## -FROM --platform=$BUILDPLATFORM ruby:3.0-alpine +FROM ruby:3.0-alpine ARG BUILD_DATE ARG VCS_REF @@ -66,10 +66,11 @@ ARG REPLACE_CHINA_MIRROR="true" ARG ORIGINAL_REPO_URL="dl-cdn.alpinelinux.org" ARG MIRROR_REPO_URL="mirrors.ustc.edu.cn" ARG RUBYGEMS_SOURCE="https://gems.ruby-china.com/" -ARG PACKAGES="tzdata curl logrotate postgresql-dev libwebp-dev libpng-dev tiff-dev postgresql-client openssl openssl-dev caddy" +ARG PACKAGES="tzdata curl logrotate postgresql-dev libwebp-dev libpng-dev tiff-dev postgresql-client openssl openssl-dev caddy gcompat" ARG RUBY_GEMS="bundler" ARG APP_ROOT=/app ARG S6_OVERLAY_VERSION="2.2.0.3" +ARG TARGETARCH LABEL org.opencontainers.image.title="Zealot" \ org.opencontainers.image.description="Over The Air Server for deployment of Android and iOS apps" \ @@ -96,19 +97,17 @@ RUN set -ex && \ gem sources --add $RUBYGEMS_SOURCE --remove https://rubygems.org/; \ fi && \ apk --update --no-cache add $PACKAGES && \ - gem install $RUBY_GEMS - -ARG TARGETARCH -RUN echo "Setting variables for ${TARGETPLATFORM:=amd64}" && \ - case "$TARGETPLATFORM" in \ + gem install $RUBY_GEMS && \ + echo "Setting variables for ${TARGETARCH}" && \ + case "$TARGETARCH" in \ "amd64") \ - S6_OVERLAY_ARCH="amd64" \ + S6_OVERLAY_ARCH="amd64" \ ;; \ "arm64") \ - S6_OVERLAY_ARCH="aarch64" \ + S6_OVERLAY_ARCH="aarch64" \ ;; \ - linux/arm/v7) \ - S6_OVERLAY_ARCH="arm" \ + "linux/arm/v7" | "arm") \ + S6_OVERLAY_ARCH="arm" \ ;; \ *) \ echo "Doesn't support $TARGETARCH architecture" \ From b2af83dd4181e32adf5d8e4060c52c0e25596736 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Sat, 3 Dec 2022 23:18:47 +0800 Subject: [PATCH 1249/2165] =?UTF-8?q?chore:=20=E6=B6=88=E9=99=A4=20github?= =?UTF-8?q?=20action=20=E8=BF=81=E7=A7=BB=E8=AD=A6=E5=91=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/publish_nighty.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/publish_nighty.yml b/.github/workflows/publish_nighty.yml index c8dba79dc..d9ca850b8 100644 --- a/.github/workflows/publish_nighty.yml +++ b/.github/workflows/publish_nighty.yml @@ -21,7 +21,7 @@ jobs: contents: read steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Set up QEMU uses: docker/setup-qemu-action@v2 @@ -31,7 +31,7 @@ jobs: - name: Get build date id: build_date - run: echo "::set-output name=date::$(date +'%Y-%m-%d %H:%M:%S %z')" + run: echo "BUILD_DATE=$(date +'%Y-%m-%d %H:%M:%S %z')" >> $GITHUB_OUTPUT - name: Login to Docker Hub uses: docker/login-action@v2 @@ -60,4 +60,4 @@ jobs: build-args: | REPLACE_CHINA_MIRROR=false VCS_REF=${{ github.sha }} - BUILD_DATE=${{ steps.build_date.outputs.date }} \ No newline at end of file + BUILD_DATE=${{ steps.build_date.outputs.BUILD_DATE }} \ No newline at end of file From 1f49b7ea41c962ea7b07f83b8a45e876129fe1f1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 5 Dec 2022 21:00:55 +0000 Subject: [PATCH 1250/2165] chore(deps): bump esbuild from 0.15.16 to 0.15.18 Bumps [esbuild](https://github.com/evanw/esbuild) from 0.15.16 to 0.15.18. - [Release notes](https://github.com/evanw/esbuild/releases) - [Changelog](https://github.com/evanw/esbuild/blob/master/CHANGELOG.md) - [Commits](https://github.com/evanw/esbuild/compare/v0.15.16...v0.15.18) --- updated-dependencies: - dependency-name: esbuild dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 268 +++++++++++++++++++++++++-------------------------- 2 files changed, 135 insertions(+), 135 deletions(-) diff --git a/package.json b/package.json index a6c53e751..e907763c7 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "admin-lte": "3.1.0", "clipboard": "^2.0.11", "compare-versions": "^5.0.1", - "esbuild": "^0.15.16", + "esbuild": "^0.15.18", "sass": "^1.56.1", "ua-parser-js": "^1.0.32" }, diff --git a/yarn.lock b/yarn.lock index 2d420c93b..164a3ffb7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,15 +2,15 @@ # yarn lockfile v1 -"@esbuild/android-arm@0.15.16": - version "0.15.16" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.15.16.tgz#0642926178b15e3d1545efae6eee05c4f3451d15" - integrity sha512-nyB6CH++2mSgx3GbnrJsZSxzne5K0HMyNIWafDHqYy7IwxFc4fd/CgHVZXr8Eh+Q3KbIAcAe3vGyqIPhGblvMQ== +"@esbuild/android-arm@0.15.18": + version "0.15.18" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.15.18.tgz#266d40b8fdcf87962df8af05b76219bc786b4f80" + integrity sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw== -"@esbuild/linux-loong64@0.15.16": - version "0.15.16" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.16.tgz#284522de76abe951e4ed2bd24a467e8d49c67933" - integrity sha512-SDLfP1uoB0HZ14CdVYgagllgrG7Mdxhkt4jDJOKl/MldKrkQ6vDJMZKl2+5XsEY/Lzz37fjgLQoJBGuAw/x8kQ== +"@esbuild/linux-loong64@0.15.18": + version "0.15.18" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.18.tgz#128b76ecb9be48b60cf5cfc1c63a4f00691a3239" + integrity sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ== "@fortawesome/fontawesome-free@^5.15.3": version "5.15.4" @@ -677,133 +677,133 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -esbuild-android-64@0.15.16: - version "0.15.16" - resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.16.tgz#0d6a16fa1bea441d5183976f1633183c25a764d5" - integrity sha512-Vwkv/sT0zMSgPSVO3Jlt1pUbnZuOgtOQJkJkyyJFAlLe7BiT8e9ESzo0zQSx4c3wW4T6kGChmKDPMbWTgtliQA== - -esbuild-android-arm64@0.15.16: - version "0.15.16" - resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.16.tgz#78643bbbf396d26d20ba1f2fcdff3618c7c033e9" - integrity sha512-lqfKuofMExL5niNV3gnhMUYacSXfsvzTa/58sDlBET/hCOG99Zmeh+lz6kvdgvGOsImeo6J9SW21rFCogNPLxg== - -esbuild-darwin-64@0.15.16: - version "0.15.16" - resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.16.tgz#de3e91809dcd1ffb64409e2f990bb86e33e4ffd8" - integrity sha512-wo2VWk/n/9V2TmqUZ/KpzRjCEcr00n7yahEdmtzlrfQ3lfMCf3Wa+0sqHAbjk3C6CKkR3WKK/whkMq5Gj4Da9g== - -esbuild-darwin-arm64@0.15.16: - version "0.15.16" - resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.16.tgz#bc9cc8d51109d8e9db4ffe2c064dd53d1eb5a2a6" - integrity sha512-fMXaUr5ou0M4WnewBKsspMtX++C1yIa3nJ5R2LSbLCfJT3uFdcRoU/NZjoM4kOMKyOD9Sa/2vlgN8G07K3SJnw== - -esbuild-freebsd-64@0.15.16: - version "0.15.16" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.16.tgz#f8c54c679c16e9b20a1bf860ca91ba700d6c9c5d" - integrity sha512-UzIc0xlRx5x9kRuMr+E3+hlSOxa/aRqfuMfiYBXu2jJ8Mzej4lGL7+o6F5hzhLqWfWm1GWHNakIdlqg1ayaTNQ== - -esbuild-freebsd-arm64@0.15.16: - version "0.15.16" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.16.tgz#dd28a55df0f062e2c1628266008434c32ddc7adf" - integrity sha512-8xyiYuGc0DLZphFQIiYaLHlfoP+hAN9RHbE+Ibh8EUcDNHAqbQgUrQg7pE7Bo00rXmQ5Ap6KFgcR0b4ALZls1g== - -esbuild-linux-32@0.15.16: - version "0.15.16" - resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.16.tgz#41eb0b9b49b3430b9cc4577f1ad3d414ef70f806" - integrity sha512-iGijUTV+0kIMyUVoynK0v+32Oi8yyp0xwMzX69GX+5+AniNy/C/AL1MjFTsozRp/3xQPl7jVux/PLe2ds10/2w== - -esbuild-linux-64@0.15.16: - version "0.15.16" - resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.16.tgz#b2fb0c7d49b7a579b2de26fbf4c7afb1835f2073" - integrity sha512-tuSOjXdLw7VzaUj89fIdAaQT7zFGbKBcz4YxbWrOiXkwscYgE7HtTxUavreBbnRkGxKwr9iT/gmeJWNm4djy/g== - -esbuild-linux-arm64@0.15.16: - version "0.15.16" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.16.tgz#78fed3745b20251fc3bdc8db35ea0781e9b0e7c6" - integrity sha512-mPYksnfHnemNrvjrDhZyixL/AfbJN0Xn9S34ZOHYdh6/jJcNd8iTsv3JwJoEvTJqjMggjMhGUPJAdjnFBHoH8A== - -esbuild-linux-arm@0.15.16: - version "0.15.16" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.16.tgz#6963f061a2b778aad7df2bfb6fa32d1904313f7f" - integrity sha512-XKcrxCEXDTOuoRj5l12tJnkvuxXBMKwEC5j0JISw3ziLf0j4zIwXbKbTmUrKFWbo6ZgvNpa7Y5dnbsjVvH39bQ== - -esbuild-linux-mips64le@0.15.16: - version "0.15.16" - resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.16.tgz#e2aed3527e551f8182c6b0fc8a045726fd98ad87" - integrity sha512-kSJO2PXaxfm0pWY39+YX+QtpFqyyrcp0ZeI8QPTrcFVQoWEPiPVtOfTZeS3ZKedfH+Ga38c4DSzmKMQJocQv6A== - -esbuild-linux-ppc64le@0.15.16: - version "0.15.16" - resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.16.tgz#fa3095b24950f63408f46f34b6d9a073ed88d53f" - integrity sha512-NimPikwkBY0yGABw6SlhKrtT35sU4O23xkhlrTT/O6lSxv3Pm5iSc6OYaqVAHWkLdVf31bF4UDVFO+D990WpAA== - -esbuild-linux-riscv64@0.15.16: - version "0.15.16" - resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.16.tgz#19c012dcc55c9d6d2a3855aa77c2c5217182cd1e" - integrity sha512-ty2YUHZlwFOwp7pR+J87M4CVrXJIf5ZZtU/umpxgVJBXvWjhziSLEQxvl30SYfUPq0nzeWKBGw5i/DieiHeKfw== - -esbuild-linux-s390x@0.15.16: - version "0.15.16" - resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.16.tgz#aa61f64740e5b983cc3ebb4183a03df4b435a873" - integrity sha512-VkZaGssvPDQtx4fvVdZ9czezmyWyzpQhEbSNsHZZN0BHvxRLOYAQ7sjay8nMQwYswP6O2KlZluRMNPYefFRs+w== - -esbuild-netbsd-64@0.15.16: - version "0.15.16" - resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.16.tgz#dffdc104c1f2bafc42be3faa21376c0a092f5702" - integrity sha512-ElQ9rhdY51et6MJTWrCPbqOd/YuPowD7Cxx3ee8wlmXQQVW7UvQI6nSprJ9uVFQISqSF5e5EWpwWqXZsECLvXg== - -esbuild-openbsd-64@0.15.16: - version "0.15.16" - resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.16.tgz#e5987f8eda55ea5f6ef6258afb1a838158f890bb" - integrity sha512-KgxMHyxMCT+NdLQE1zVJEsLSt2QQBAvJfmUGDmgEq8Fvjrf6vSKB00dVHUEDKcJwMID6CdgCpvYNt999tIYhqA== - -esbuild-sunos-64@0.15.16: - version "0.15.16" - resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.16.tgz#60a085aa4b74d900e4de8c00a9fce207937320a2" - integrity sha512-exSAx8Phj7QylXHlMfIyEfNrmqnLxFqLxdQF6MBHPdHAjT7fsKaX6XIJn+aQEFiOcE4X8e7VvdMCJ+WDZxjSRQ== - -esbuild-windows-32@0.15.16: - version "0.15.16" - resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.16.tgz#24f94e5fb243d211c7db9a12985fd2880ba98ca3" - integrity sha512-zQgWpY5pUCSTOwqKQ6/vOCJfRssTvxFuEkpB4f2VUGPBpdddZfdj8hbZuFRdZRPIVHvN7juGcpgCA/XCF37mAQ== - -esbuild-windows-64@0.15.16: - version "0.15.16" - resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.16.tgz#71d24d68d8b652bf5a93a6c7453c334584fa2211" - integrity sha512-HjW1hHRLSncnM3MBCP7iquatHVJq9l0S2xxsHHj4yzf4nm9TU4Z7k4NkeMlD/dHQ4jPlQQhwcMvwbJiOefSuZw== - -esbuild-windows-arm64@0.15.16: - version "0.15.16" - resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.16.tgz#77e804d60dec0390fe8f21401e39b435d5d1b863" - integrity sha512-oCcUKrJaMn04Vxy9Ekd8x23O8LoU01+4NOkQ2iBToKgnGj5eo1vU9i27NQZ9qC8NFZgnQQZg5oZWAejmbsppNA== - -esbuild@^0.15.16: - version "0.15.16" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.16.tgz#59324e5667985bf6aee8a91ea576baef6872cf21" - integrity sha512-o6iS9zxdHrrojjlj6pNGC2NAg86ECZqIETswTM5KmJitq+R1YmahhWtMumeQp9lHqJaROGnsBi2RLawGnfo5ZQ== +esbuild-android-64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.18.tgz#20a7ae1416c8eaade917fb2453c1259302c637a5" + integrity sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA== + +esbuild-android-arm64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.18.tgz#9cc0ec60581d6ad267568f29cf4895ffdd9f2f04" + integrity sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ== + +esbuild-darwin-64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.18.tgz#428e1730ea819d500808f220fbc5207aea6d4410" + integrity sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg== + +esbuild-darwin-arm64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.18.tgz#b6dfc7799115a2917f35970bfbc93ae50256b337" + integrity sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA== + +esbuild-freebsd-64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.18.tgz#4e190d9c2d1e67164619ae30a438be87d5eedaf2" + integrity sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA== + +esbuild-freebsd-arm64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.18.tgz#18a4c0344ee23bd5a6d06d18c76e2fd6d3f91635" + integrity sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA== + +esbuild-linux-32@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.18.tgz#9a329731ee079b12262b793fb84eea762e82e0ce" + integrity sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg== + +esbuild-linux-64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.18.tgz#532738075397b994467b514e524aeb520c191b6c" + integrity sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw== + +esbuild-linux-arm64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.18.tgz#5372e7993ac2da8f06b2ba313710d722b7a86e5d" + integrity sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug== + +esbuild-linux-arm@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.18.tgz#e734aaf259a2e3d109d4886c9e81ec0f2fd9a9cc" + integrity sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA== + +esbuild-linux-mips64le@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.18.tgz#c0487c14a9371a84eb08fab0e1d7b045a77105eb" + integrity sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ== + +esbuild-linux-ppc64le@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.18.tgz#af048ad94eed0ce32f6d5a873f7abe9115012507" + integrity sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w== + +esbuild-linux-riscv64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.18.tgz#423ed4e5927bd77f842bd566972178f424d455e6" + integrity sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg== + +esbuild-linux-s390x@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.18.tgz#21d21eaa962a183bfb76312e5a01cc5ae48ce8eb" + integrity sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ== + +esbuild-netbsd-64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.18.tgz#ae75682f60d08560b1fe9482bfe0173e5110b998" + integrity sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg== + +esbuild-openbsd-64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.18.tgz#79591a90aa3b03e4863f93beec0d2bab2853d0a8" + integrity sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ== + +esbuild-sunos-64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.18.tgz#fd528aa5da5374b7e1e93d36ef9b07c3dfed2971" + integrity sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw== + +esbuild-windows-32@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.18.tgz#0e92b66ecdf5435a76813c4bc5ccda0696f4efc3" + integrity sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ== + +esbuild-windows-64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.18.tgz#0fc761d785414284fc408e7914226d33f82420d0" + integrity sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw== + +esbuild-windows-arm64@0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.18.tgz#5b5bdc56d341d0922ee94965c89ee120a6a86eb7" + integrity sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ== + +esbuild@^0.15.18: + version "0.15.18" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.18.tgz#ea894adaf3fbc036d32320a00d4d6e4978a2f36d" + integrity sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q== optionalDependencies: - "@esbuild/android-arm" "0.15.16" - "@esbuild/linux-loong64" "0.15.16" - esbuild-android-64 "0.15.16" - esbuild-android-arm64 "0.15.16" - esbuild-darwin-64 "0.15.16" - esbuild-darwin-arm64 "0.15.16" - esbuild-freebsd-64 "0.15.16" - esbuild-freebsd-arm64 "0.15.16" - esbuild-linux-32 "0.15.16" - esbuild-linux-64 "0.15.16" - esbuild-linux-arm "0.15.16" - esbuild-linux-arm64 "0.15.16" - esbuild-linux-mips64le "0.15.16" - esbuild-linux-ppc64le "0.15.16" - esbuild-linux-riscv64 "0.15.16" - esbuild-linux-s390x "0.15.16" - esbuild-netbsd-64 "0.15.16" - esbuild-openbsd-64 "0.15.16" - esbuild-sunos-64 "0.15.16" - esbuild-windows-32 "0.15.16" - esbuild-windows-64 "0.15.16" - esbuild-windows-arm64 "0.15.16" + "@esbuild/android-arm" "0.15.18" + "@esbuild/linux-loong64" "0.15.18" + esbuild-android-64 "0.15.18" + esbuild-android-arm64 "0.15.18" + esbuild-darwin-64 "0.15.18" + esbuild-darwin-arm64 "0.15.18" + esbuild-freebsd-64 "0.15.18" + esbuild-freebsd-arm64 "0.15.18" + esbuild-linux-32 "0.15.18" + esbuild-linux-64 "0.15.18" + esbuild-linux-arm "0.15.18" + esbuild-linux-arm64 "0.15.18" + esbuild-linux-mips64le "0.15.18" + esbuild-linux-ppc64le "0.15.18" + esbuild-linux-riscv64 "0.15.18" + esbuild-linux-s390x "0.15.18" + esbuild-netbsd-64 "0.15.18" + esbuild-openbsd-64 "0.15.18" + esbuild-sunos-64 "0.15.18" + esbuild-windows-32 "0.15.18" + esbuild-windows-64 "0.15.18" + esbuild-windows-arm64 "0.15.18" ev-emitter@^1.0.0: version "1.1.1" From 5df258a7604afd00302e9d580e3328785b8c1126 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 7 Dec 2022 16:45:27 +0800 Subject: [PATCH 1251/2165] Update stale.yml --- .github/stale.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/stale.yml b/.github/stale.yml index 6aabf6bc0..3d5ea5881 100644 --- a/.github/stale.yml +++ b/.github/stale.yml @@ -1,5 +1,5 @@ # Number of days of inactivity before an issue becomes stale -daysUntilStale: 30 +daysUntilStale: 7 # Number of days of inactivity before a stale issue is closed daysUntilClose: 3 # Issues with these labels will never be considered stale From e58e83011d2f72e593c1ea4d2efeedfc3cad85d6 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 9 Dec 2022 12:08:25 +0800 Subject: [PATCH 1252/2165] =?UTF-8?q?refactor:=20=E5=8F=91=E5=B8=83=20vsco?= =?UTF-8?q?de=20devcontainer=20=E9=95=9C=E5=83=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .devcontainer/Dockerfile | 48 ++---------------- .devcontainer/Dockerfile.base | 63 +++++++++++++++++++++++ .devcontainer/create-db-user.sql | 1 + .devcontainer/devcontainer.json | 66 +++++++++++++++---------- .devcontainer/docker-compose.yml | 50 +++++++++++-------- .github/workflows/publish_codespace.yml | 55 +++++++++++++++++++++ Gemfile | 4 +- Gemfile.lock | 12 ++++- 8 files changed, 205 insertions(+), 94 deletions(-) create mode 100755 .devcontainer/Dockerfile.base create mode 100755 .devcontainer/create-db-user.sql create mode 100644 .github/workflows/publish_codespace.yml diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 6b3d8f424..c33b7908a 100755 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,45 +1,5 @@ -# [Choice] Ruby version (use -bullseye variants on local arm64/Apple Silicon): 3, 3.1, 3.0, 2, 2.7, 2.6, 3-bullseye, 3.1-bullseye, 3.0-bullseye, 2-bullseye, 2.7-bullseye, 2.6-bullseye, 3-buster, 3.1-buster, 3.0-buster, 2-buster, 2.7-buster, 2.6-buster -ARG VARIANT=3.0-bullseye -FROM mcr.microsoft.com/vscode/devcontainers/ruby:${VARIANT} +# See .devcontainer/Dockerfile.base and .github/workflows/publish_codespace.yml files. +FROM ghcr.io/tryzealot/codespace -# Update args in docker-compose.yaml to set the UID/GID of the "vscode" user. -ARG USER_UID=1000 -ARG USER_GID=$USER_UID -RUN if [ "$USER_GID" != "1000" ] || [ "$USER_UID" != "1000" ]; then \ - groupmod --gid $USER_GID vscode \ - && usermod --uid $USER_UID --gid $USER_GID vscode \ - && chmod -R $USER_UID:$USER_GID /home/vscode; \ - fi - -# [Option] Install Node.js -ARG INSTALL_NODE="true" -ARG NODE_VERSION="lts/*" -RUN if [ "${INSTALL_NODE}" = "true" ]; then su vscode -c "source /usr/local/share/nvm/nvm.sh && nvm install ${NODE_VERSION} 2>&1"; fi - -# tmux is for overmind -# TODO : install foreman in future -# packages: postgresql-server-dev-all -# may be postgres in same machine - -RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \ - && apt-get -y install --no-install-recommends \ - libssl-dev \ - tar \ - tzdata \ - postgresql-client \ - yarn \ - git \ - imagemagick \ - libjpeg-dev libpng-dev libtiff-dev libwebp-dev \ - tmux \ - zsh - -WORKDIR /workspace -COPY . /workspace - -COPY Gemfile Gemfile.lock ./ -RUN gem install bundler -RUN bundle install - -COPY package.json yarn.lock ./ -RUN yarn install +RUN bundle install && \ + yarn install diff --git a/.devcontainer/Dockerfile.base b/.devcontainer/Dockerfile.base new file mode 100755 index 000000000..d005e5789 --- /dev/null +++ b/.devcontainer/Dockerfile.base @@ -0,0 +1,63 @@ +ARG DEBIAN_FRONTEND=noninteractive +ARG BUILDARCH=amd64 + +ARG VARIANT=bullseye +FROM mcr.microsoft.com/vscode/devcontainers/base:${VARIANT} + +# Update args in docker-compose.yaml to set the UID/GID of the "vscode" user. +ARG USER_UID=1000 +ARG USER_GID=$USER_UID +RUN if [ "$USER_GID" != "$USER_UID" ] || [ "$USER_UID" != "1000" ]; then \ + groupmod --gid $USER_GID vscode \ + && usermod --uid $USER_UID --gid $USER_GID vscode \ + && chmod -R $USER_UID:$USER_GID /home/vscode; \ + fi + +RUN apt-get update \ + && apt-get -y install --no-install-recommends \ + build-essential \ + libssl-dev \ + zlib1g-dev \ + gnupg2 \ + tar \ + tzdata \ + postgresql-client \ + libpq-dev \ + git \ + imagemagick libjpeg-dev libpng-dev libtiff-dev libwebp-dev \ + tmux \ + zsh \ + git-flow + +USER vscode + +# Install asdf, ruby and nodejs +ARG ASDF_DIR="/home/vscode/.asdf" +ARG RUBY_VERSION="3.0.4" +ARG NODEJS_VERSION="18.12.1" +RUN git clone https://github.com/asdf-vm/asdf.git ${ASDF_DIR} && \ + echo '. ${ASDF_DIR}/asdf.sh' >> ~/.bashrc +ENV PATH "${ASDF_DIR}/bin:${ASDF_DIR}/shims:$PATH" +RUN asdf plugin add ruby && \ + asdf install ruby $RUBY_VERSION && \ + asdf global ruby ${RUBY_VERSION} + +RUN asdf plugin add nodejs && \ + asdf install nodejs $NODEJS_VERSION && \ + asdf global nodejs ${NODEJS_VERSION} + +# Install overmind +# ARG OVERMIND_VERSION="2.3.0" +# RUN curl -L https://github.com/DarthSim/overmind/releases/download/v${OVERMIND_VERSION}/overmind-v${OVERMIND_VERSION}-linux-amd64.gz > overmind.gz \ +# && gunzip overmind.gz \ +# && sudo mv overmind /usr/local/bin \ +# && chmod +x /usr/local/bin/overmind + +WORKDIR /workspace + +COPY Gemfile Gemfile.lock ./ +RUN gem install bundler foreman && \ + bundle install + +RUN npm install --global yarn && \ + yarn install diff --git a/.devcontainer/create-db-user.sql b/.devcontainer/create-db-user.sql new file mode 100755 index 000000000..6c0e41c1c --- /dev/null +++ b/.devcontainer/create-db-user.sql @@ -0,0 +1 @@ +CREATE USER zealot SUPERUSER; diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 9fc4680c5..acbb844ae 100755 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,38 +1,52 @@ { "name": "Zealot Development Codespace", - // "build": { - // "dockerfile": "Dockerfile", - // }, - - // docker-compose "dockerComposeFile": "docker-compose.yml", "service": "app", "workspaceFolder": "/workspace", - // "settings": { - // "terminal.integrated.shell.linux": "/bin/zsh" - // }, + "settings": { + "terminal.integrated.defaultProfile.linux": "zsh", + "terminal.integrated.profiles.linux":{ + "zsh": { + "path": "/usr/bin/zsh", + "icon": "star" + } + } + }, - // Add the IDs of extensions you want installed when the container is created. "extensions": [ - "rebornix.Ruby" - // "misogi.ruby-rubocop", - // "wingrunr21.vscode-ruby" + "Shopify.ruby-extensions-pack", + "misogi.ruby-rubocop", + "eamodio.gitlens", + "bung87.rails", + "bung87.vscode-gemfile", + "EditorConfig.EditorConfig" ], + // 3000 rails server + // 3035 webpacker dev server + // 5432 postgres server + // 6379 redis server + // 8081 pgweb server + "forwardPorts": [3000, 3035, 5432, 6379, 8081], + "portsAttributes": { + "3000": { + "label": "Rails Server" + }, + "3035": { + "label": "Webpack Dev Server" + }, + "5432": { + "label": "Postgresql Server" + }, + "6379": { + "label": "Redis Server" + }, + "8081": { + "label": "PGWeb" + } + }, - // TODO: figure whether we can get all this ports work properly - - // 3000 rails - // 3035 webpacker - // 5432 postgres - // 6379 redis - // 1025,8025 mailhog - // "forwardPorts": [5432, 6379, 1025, 8025], - //your application may need to listen on all interfaces (0.0.0.0) not just localhost for it to be available externally. Defaults to [] - // "appPort": [3001], - - // Use 'postCreateCommand' to run commands after the container is created. - // #TODO: can we move logic of copy env file into dockerfile ? - "postCreateCommand": "yarn install" + // Re-initialze ruby gems, javascript packages and database migration. + "postCreateCommand": "bundle install && yarn install && rails zealot:upgrade" } diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml index 5ae2921c8..5aa76badc 100755 --- a/.devcontainer/docker-compose.yml +++ b/.devcontainer/docker-compose.yml @@ -1,38 +1,46 @@ -# https://github.com/microsoft/vscode-dev-containers/blob/master/containers/python-3-postgres/.devcontainer/docker-compose.yml -# https://github.com/microsoft/vscode-dev-containers/blob/master/containers/ruby-rails/.devcontainer/devcontainer.json - version: '3' +# x-defaults: &defaults +# image: tryzealot/zealot:dev +# depends_on: +# - redis +# - postgres +# env_file: .env +# volumes: +# - zealot-uploads:/app/public/uploads +# - zealot-backup:/app/public/backup +# - ./log:/app/log +# healthcheck: +# test: ["CMD-SHELL", "wget -q --spider --proxy=off localhost/health || exit 1"] +# logging: +# driver: "json-file" +# options: +# max-size: "1g" +# max-file: "10" +# max-buffer-size: "4m" +# mode: "non-blocking" + services: app: build: - context: .. + context: ../ dockerfile: .devcontainer/Dockerfile - args: - # [Choice] Install Node.js - INSTALL_NODE: "true" - NODE_VERSION: "lts/*" - # On Linux, you may need to update USER_UID and USER_GID below if not your local UID is not 1000. - USER_UID: 1000 - USER_GID: 1000 - volumes: - ..:/workspace:cached - - # # Overrides default command so things don't shut down after the process ends. - # command: sleep infinity - - # ports: - # - 3001:3000 - - # Runs app on the same network as the database container, allows "forwardPorts" in devcontainer.json function. + command: /bin/sh -c "while sleep 1000; do :; done" network_mode: service:db - + pgweb: + image: sosedoff/pgweb + restart: unless-stopped + network_mode: service:db + environment: + DATABASE_URL: "postgres://postgres:postgres@localhost:5432/zealot_development" db: image: postgres:11-alpine restart: unless-stopped volumes: - postgres-data:/var/lib/postgresql/data + - ./create-db-user.sql:/docker-entrypoint-initdb.d/create-db-user.sql environment: POSTGRES_USER: postgres POSTGRES_DB: postgres diff --git a/.github/workflows/publish_codespace.yml b/.github/workflows/publish_codespace.yml new file mode 100644 index 000000000..b73a65c55 --- /dev/null +++ b/.github/workflows/publish_codespace.yml @@ -0,0 +1,55 @@ +name: Publish Codespace Docker Image + +on: + push: + paths: + - '.github/workflows/publish_codespace.yml' + - '.devcontainer/Dockerfile.base' + branches: + - develop + workflow_dispatch: + +jobs: + publish_codespace_image: + name: Push Codespace Docker image to multiple registries + runs-on: ubuntu-latest + permissions: + packages: write + contents: read + + steps: + - name: Checkout + uses: actions/checkout@v3 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + + - name: Login to Docker Hub + uses: docker/login-action@v2 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Login to GitHub Container Registry + uses: docker/login-action@v2 + with: + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Build and Push + uses: docker/build-push-action@v3 + with: + context: . + file: .devcontainer/Dockerfile.base + push: true + labels: | + org.opencontainers.image.title=Zealot Codespace + org.opencontainers.image.description=Zealot development workspace + tags: | + tryzealot/codespace:latest + ghcr.io/tryzealot/codespace:latest + platforms: linux/amd64,linux/arm64,linux/arm/v7 diff --git a/Gemfile b/Gemfile index 91a168be9..508b870f0 100644 --- a/Gemfile +++ b/Gemfile @@ -116,7 +116,7 @@ group :development do # 调试器 ## VSCode debug: https://marketplace.visualstudio.com/items?itemName=KoichiSasada.vscode-rdbg gem 'debug', '~> 1.7.0', platforms: %i[ mri mingw x64_mingw ] - + gem "ruby-lsp", "~> 0.3.6" # 开发辅助 gem 'guard', '~> 2.18.0' gem 'guard-bundler' @@ -143,4 +143,4 @@ group :development, :test do gem 'pry-rails' gem 'pry-rescue' -end \ No newline at end of file +end diff --git a/Gemfile.lock b/Gemfile.lock index 3dadfe1e2..91141a8d4 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -227,6 +227,7 @@ GEM activerecord kaminari-core (= 1.2.2) kaminari-core (1.2.2) + language_server-protocol (3.17.0.2) launchy (2.5.0) addressable (~> 2.7) letter_opener (1.8.1) @@ -320,6 +321,7 @@ GEM pghero (3.0.1) activerecord (>= 6) plist (3.6.0) + prettier_print (1.1.0) propshaft (0.6.4) actionpack (>= 7.0.0) activesupport (>= 7.0.0) @@ -414,6 +416,10 @@ GEM activesupport (>= 4.2.0) rack (>= 1.1) rubocop (>= 1.7.0, < 2.0) + ruby-lsp (0.3.6) + language_server-protocol (~> 3.17.0) + sorbet-runtime + syntax_tree (>= 4.0.2, < 5.0.0) ruby-macho (3.0.0) ruby-progressbar (1.11.0) ruby-vips (2.1.4) @@ -454,6 +460,7 @@ GEM railties (>= 3.1) slim (>= 3.0, < 5.0) socksify (1.7.1) + sorbet-runtime (0.5.10577) sprockets (4.1.1) concurrent-ruby (~> 1.0) rack (> 1, < 3) @@ -465,6 +472,8 @@ GEM stimulus-rails (1.2.1) railties (>= 6.0.0) strscan (3.0.4) + syntax_tree (4.3.0) + prettier_print (>= 1.0.2) sys-filesystem (1.4.3) ffi (~> 1.1) temple (0.8.2) @@ -563,6 +572,7 @@ DEPENDENCIES rqrcode rubocop (>= 0.70) rubocop-rails + ruby-lsp (~> 0.3.6) rubyntlm (~> 0.5) sentry-rails sentry-ruby @@ -583,4 +593,4 @@ DEPENDENCIES webp-ffi (~> 0.3.1) BUNDLED WITH - 2.3.4 + 2.3.26 From 498abc932f8380fe37eafd4b75b10d49e9692689 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 9 Dec 2022 12:12:35 +0800 Subject: [PATCH 1253/2165] =?UTF-8?q?fix:=20devcontainer=20=E7=A7=BB?= =?UTF-8?q?=E9=99=A4=20armv7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/publish_codespace.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish_codespace.yml b/.github/workflows/publish_codespace.yml index b73a65c55..3c50004f9 100644 --- a/.github/workflows/publish_codespace.yml +++ b/.github/workflows/publish_codespace.yml @@ -52,4 +52,4 @@ jobs: tags: | tryzealot/codespace:latest ghcr.io/tryzealot/codespace:latest - platforms: linux/amd64,linux/arm64,linux/arm/v7 + platforms: linux/amd64,linux/arm64 From 6eeca30553d4c033b330e4511de929a32708ee92 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 9 Dec 2022 12:16:30 +0800 Subject: [PATCH 1254/2165] =?UTF-8?q?chore:=20github=20action=20=E5=8F=91?= =?UTF-8?q?=E5=B8=83=E9=95=9C=E5=83=8F=E9=87=8D=E5=86=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/publish_codespace.yml | 2 +- .github/workflows/publish_nighty.yml | 9 ++- .github/workflows/publish_release.yml | 80 ++++++++++++++----------- 3 files changed, 55 insertions(+), 36 deletions(-) diff --git a/.github/workflows/publish_codespace.yml b/.github/workflows/publish_codespace.yml index 3c50004f9..bdf82d3d3 100644 --- a/.github/workflows/publish_codespace.yml +++ b/.github/workflows/publish_codespace.yml @@ -52,4 +52,4 @@ jobs: tags: | tryzealot/codespace:latest ghcr.io/tryzealot/codespace:latest - platforms: linux/amd64,linux/arm64 + platforms: linux/amd64 diff --git a/.github/workflows/publish_nighty.yml b/.github/workflows/publish_nighty.yml index d9ca850b8..56bcaface 100644 --- a/.github/workflows/publish_nighty.yml +++ b/.github/workflows/publish_nighty.yml @@ -3,6 +3,7 @@ on: push: paths-ignore: - '.github/*.yml' + - '.github/workflows/publish_codespace.yml' - '*.md' - '.*' - 'LICENSE' @@ -46,6 +47,12 @@ jobs: username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} + - name: Docker metadata + id: metadata + uses: docker/metadata-action@v4 + with: + images: ghcr.io/${{ github.repository }} + - name: Build and Push uses: docker/build-push-action@v3 with: @@ -60,4 +67,4 @@ jobs: build-args: | REPLACE_CHINA_MIRROR=false VCS_REF=${{ github.sha }} - BUILD_DATE=${{ steps.build_date.outputs.BUILD_DATE }} \ No newline at end of file + BUILD_DATE=${{ steps.build_date.outputs.BUILD_DATE }} diff --git a/.github/workflows/publish_release.yml b/.github/workflows/publish_release.yml index 383f6141e..d22b4a00d 100644 --- a/.github/workflows/publish_release.yml +++ b/.github/workflows/publish_release.yml @@ -12,48 +12,60 @@ jobs: packages: write contents: read steps: - - uses: actions/checkout@master + - name: Checkout + uses: actions/checkout@v3 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v2 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + - name: Get build date - id: date - run: echo "::set-output name=date::$(date +'%Y-%m-%d %H:%M:%S %z')" + id: build_date + run: echo "BUILD_DATE=$(date +'%Y-%m-%d %H:%M:%S %z')" >> $GITHUB_OUTPUT + - name: Get the version id: version - run: echo ::set-output name=tag::$(echo ${GITHUB_REF:10}) - - name: Publish to Github Hub Registry - uses: elgohr/Publish-Docker-Github-Action@master - env: - REPLACE_CHINA_MIRROR: false - VCS_REF: ${{ github.sha }} - BUILD_DATE: ${{ steps.date.outputs.date }} - TAG: ${{ steps.version.outputs.tag }} - with: - name: ghcr.io/tryzealot/zealot - username: ${{ github.actor }} - password: ${{ secrets.CR_PAT }} - tags: "latest,${{ env.TAG }}" - buildargs: BUILD_DATE,VCS_REF,TAG,REPLACE_CHINA_MIRROR - registry: ghcr.io - - name: Publish to Docker Registry - uses: elgohr/Publish-Docker-Github-Action@master - env: - REPLACE_CHINA_MIRROR: false - VCS_REF: ${{ github.sha }} - BUILD_DATE: ${{ steps.date.outputs.date }} - TAG: ${{ steps.version.outputs.tag }} + run: echo "GIT_TAG=$(echo ${GITHUB_REF:10}" >> $GITHUB_OUTPUT + + - name: Login to Docker Hub + uses: docker/login-action@v2 with: - name: tryzealot/zealot username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - tags: "latest,${{ env.TAG }}" - buildargs: BUILD_DATE,VCS_REF,TAG,REPLACE_CHINA_MIRROR - - name: Update Docker Hub Description - uses: peter-evans/dockerhub-description@v3 + + - name: Login to GitHub Container Registry + uses: docker/login-action@v2 with: - username: ${{ secrets.DOCKER_USERNAME }} - password: ${{ secrets.DOCKER_PASSWORD }} - repository: tryzealot/zealot + registry: ghcr.io + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Docker metadata + id: metadata + uses: docker/metadata-action@v4 + with: + images: ghcr.io/${{ github.repository }} + + - name: Build and Push + uses: docker/build-push-action@v3 + with: + context: . + push: true + labels: ${{ steps.metadata.outputs.labels }} + tags: | + ${{ steps.metadata.outputs.tags }} + ${{ github.repository }}:${{ steps.version.outputs.tag }} + platforms: linux/amd64,linux/arm64,linux/arm/v7 + build-args: | + REPLACE_CHINA_MIRROR=false + VCS_REF=${{ github.sha }} + BUILD_DATE=${{ steps.build_date.outputs.BUILD_DATE }} + TAG=${{ steps.version.outputs.tag }} + - name: Create Release uses: softprops/action-gh-release@v1 if: startsWith(github.ref, 'refs/tags/') env: - GITHUB_TOKEN: ${{ secrets.CR_PAT }} \ No newline at end of file + GITHUB_TOKEN: ${{ secrets.CR_PAT }} From cf1ae86625cca5f3df31d27bf096b7d1091c873c Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 9 Dec 2022 17:27:58 +0800 Subject: [PATCH 1255/2165] =?UTF-8?q?feat:=20=E4=BC=98=E5=8C=96=20devconta?= =?UTF-8?q?iner=20=E9=95=9C=E5=83=8F=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .devcontainer/Dockerfile.base | 46 +++++++++++++------------------- .devcontainer/devcontainer.json | 32 +++++++++++----------- .devcontainer/docker-compose.yml | 20 -------------- 3 files changed, 34 insertions(+), 64 deletions(-) diff --git a/.devcontainer/Dockerfile.base b/.devcontainer/Dockerfile.base index d005e5789..c3d959513 100755 --- a/.devcontainer/Dockerfile.base +++ b/.devcontainer/Dockerfile.base @@ -1,6 +1,3 @@ -ARG DEBIAN_FRONTEND=noninteractive -ARG BUILDARCH=amd64 - ARG VARIANT=bullseye FROM mcr.microsoft.com/vscode/devcontainers/base:${VARIANT} @@ -8,27 +5,29 @@ FROM mcr.microsoft.com/vscode/devcontainers/base:${VARIANT} ARG USER_UID=1000 ARG USER_GID=$USER_UID RUN if [ "$USER_GID" != "$USER_UID" ] || [ "$USER_UID" != "1000" ]; then \ - groupmod --gid $USER_GID vscode \ - && usermod --uid $USER_UID --gid $USER_GID vscode \ - && chmod -R $USER_UID:$USER_GID /home/vscode; \ + groupmod --gid $USER_GID vscode \ + && usermod --uid $USER_UID --gid $USER_GID vscode \ + && chmod -R $USER_UID:$USER_GID /home/vscode; \ fi -RUN apt-get update \ - && apt-get -y install --no-install-recommends \ - build-essential \ - libssl-dev \ - zlib1g-dev \ - gnupg2 \ - tar \ - tzdata \ - postgresql-client \ - libpq-dev \ - git \ +ARG DEBIAN_FRONTEND=noninteractive +RUN apt-get update && \ + apt-get -y install --no-install-recommends \ + build-essential gnupg2 tar git zsh libssl-dev zlib1g-dev \ + postgresql-client libpq-dev \ imagemagick libjpeg-dev libpng-dev libtiff-dev libwebp-dev \ + tzdata \ tmux \ - zsh \ + vim \ git-flow +# Install overmind +ARG OVERMIND_VERSION="2.3.0" +RUN curl -L https://github.com/DarthSim/overmind/releases/download/v${OVERMIND_VERSION}/overmind-v${OVERMIND_VERSION}-linux-amd64.gz > overmind.gz \ + && gunzip overmind.gz \ + && sudo mv overmind /usr/local/bin \ + && chmod +x /usr/local/bin/overmind + USER vscode # Install asdf, ruby and nodejs @@ -36,23 +35,16 @@ ARG ASDF_DIR="/home/vscode/.asdf" ARG RUBY_VERSION="3.0.4" ARG NODEJS_VERSION="18.12.1" RUN git clone https://github.com/asdf-vm/asdf.git ${ASDF_DIR} && \ - echo '. ${ASDF_DIR}/asdf.sh' >> ~/.bashrc + echo ". ${ASDF_DIR}/asdf.sh" >> ~/.bashrc && \ + sed -i -E "s/^plugins=\(.+\)$/plugins=(debian asdf git git-flow tmux yarn ruby gem bundler rails dotenv)/g" ~/.zshrc ENV PATH "${ASDF_DIR}/bin:${ASDF_DIR}/shims:$PATH" RUN asdf plugin add ruby && \ asdf install ruby $RUBY_VERSION && \ asdf global ruby ${RUBY_VERSION} - RUN asdf plugin add nodejs && \ asdf install nodejs $NODEJS_VERSION && \ asdf global nodejs ${NODEJS_VERSION} -# Install overmind -# ARG OVERMIND_VERSION="2.3.0" -# RUN curl -L https://github.com/DarthSim/overmind/releases/download/v${OVERMIND_VERSION}/overmind-v${OVERMIND_VERSION}-linux-amd64.gz > overmind.gz \ -# && gunzip overmind.gz \ -# && sudo mv overmind /usr/local/bin \ -# && chmod +x /usr/local/bin/overmind - WORKDIR /workspace COPY Gemfile Gemfile.lock ./ diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index acbb844ae..067cb6cee 100755 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -8,7 +8,7 @@ "terminal.integrated.defaultProfile.linux": "zsh", "terminal.integrated.profiles.linux":{ "zsh": { - "path": "/usr/bin/zsh", + "path": "/bin/zsh", "icon": "star" } } @@ -23,30 +23,28 @@ "EditorConfig.EditorConfig" ], - // 3000 rails server - // 3035 webpacker dev server - // 5432 postgres server - // 6379 redis server - // 8081 pgweb server - "forwardPorts": [3000, 3035, 5432, 6379, 8081], + "forwardPorts": [3000, 5432, 6379, 8081], "portsAttributes": { "3000": { - "label": "Rails Server" - }, - "3035": { - "label": "Webpack Dev Server" + "label": "Rails server (puma)" }, + // "3035": { + // "label": "Webpack dev server" + // }, "5432": { - "label": "Postgresql Server" + "label": "Postgres server" }, "6379": { - "label": "Redis Server" + "label": "Redis server" }, "8081": { - "label": "PGWeb" + "label": "pgweb server" + }, + "9293": { + "label": "Puma control-server" } - }, + } - // Re-initialze ruby gems, javascript packages and database migration. - "postCreateCommand": "bundle install && yarn install && rails zealot:upgrade" + // (Optinal) Database migration. + // "postCreateCommand": "rails zealot:upgrade" } diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml index 5aa76badc..a3bf98e5f 100755 --- a/.devcontainer/docker-compose.yml +++ b/.devcontainer/docker-compose.yml @@ -1,25 +1,5 @@ version: '3' -# x-defaults: &defaults -# image: tryzealot/zealot:dev -# depends_on: -# - redis -# - postgres -# env_file: .env -# volumes: -# - zealot-uploads:/app/public/uploads -# - zealot-backup:/app/public/backup -# - ./log:/app/log -# healthcheck: -# test: ["CMD-SHELL", "wget -q --spider --proxy=off localhost/health || exit 1"] -# logging: -# driver: "json-file" -# options: -# max-size: "1g" -# max-file: "10" -# max-buffer-size: "4m" -# mode: "non-blocking" - services: app: build: From 69bea175416a43cc50d6da856ca4195f66c56d03 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 9 Dec 2022 21:10:14 +0800 Subject: [PATCH 1256/2165] =?UTF-8?q?doc:=20=E6=B7=BB=E5=8A=A0=20devcontai?= =?UTF-8?q?ner=20codespace=20=E7=AE=80=E5=8D=95=20README?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .devcontainer/README.md | 11 +++++++++++ .devcontainer/devcontainer.json | 4 ++-- 2 files changed, 13 insertions(+), 2 deletions(-) create mode 100644 .devcontainer/README.md diff --git a/.devcontainer/README.md b/.devcontainer/README.md new file mode 100644 index 000000000..71cdab6f0 --- /dev/null +++ b/.devcontainer/README.md @@ -0,0 +1,11 @@ +# Zealot Codespace + +## 镜像 + +- [docker.io/tryzealot/codespace](https://hub.docker.com/r/tryzealot/codespace) +- [ghcr.io/tryzealot/codespace](https://github.com/tryzealot/zealot/pkgs/container/codespace) + +## 文档 + +- [English](https://zealot.ews.im/docs/contributing-guide/local-development/devcontainer) +- [简体中文](https://zealot.ews.im/zh-Hans/docs/contributing-guide/local-development/devcontainer) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 067cb6cee..caa42e760 100755 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -43,8 +43,8 @@ "9293": { "label": "Puma control-server" } - } + }, // (Optinal) Database migration. - // "postCreateCommand": "rails zealot:upgrade" + "postCreateCommand": "rails zealot:upgrade" } From 7354f106b933ddc31c7b1b0551b34cda9c0bb0b4 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 9 Dec 2022 22:28:49 +0800 Subject: [PATCH 1257/2165] =?UTF-8?q?feat:=20=E8=B0=83=E6=95=B4=20devconta?= =?UTF-8?q?iner=20vscode=20extensions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .devcontainer/devcontainer.json | 5 +++++ Gemfile | 1 + 2 files changed, 6 insertions(+) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index caa42e760..744a03580 100755 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -16,6 +16,11 @@ "extensions": [ "Shopify.ruby-extensions-pack", + "Shopify.ruby-lsp", + "sorbet.sorbet-vscode-extension", + "KoichiSasada.vscode-rdbg", + "itarato.byesig", + "sianglim.slim", "misogi.ruby-rubocop", "eamodio.gitlens", "bung87.rails", diff --git a/Gemfile b/Gemfile index 508b870f0..897f6cb6d 100644 --- a/Gemfile +++ b/Gemfile @@ -117,6 +117,7 @@ group :development do ## VSCode debug: https://marketplace.visualstudio.com/items?itemName=KoichiSasada.vscode-rdbg gem 'debug', '~> 1.7.0', platforms: %i[ mri mingw x64_mingw ] gem "ruby-lsp", "~> 0.3.6" + # 开发辅助 gem 'guard', '~> 2.18.0' gem 'guard-bundler' From 8cf0a5365c157a0c4628943f61bdc918784102a4 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Sat, 10 Dec 2022 09:36:12 +0800 Subject: [PATCH 1258/2165] =?UTF-8?q?doc:=20=E8=A1=A5=E5=85=85=20devcontai?= =?UTF-8?q?ner=20=E6=96=87=E4=BB=B6=E6=B8=85=E5=8D=95=E6=8F=8F=E8=BF=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .devcontainer/README.md | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/.devcontainer/README.md b/.devcontainer/README.md index 71cdab6f0..eba46c57a 100644 --- a/.devcontainer/README.md +++ b/.devcontainer/README.md @@ -1,11 +1,21 @@ # Zealot Codespace -## 镜像 - -- [docker.io/tryzealot/codespace](https://hub.docker.com/r/tryzealot/codespace) -- [ghcr.io/tryzealot/codespace](https://github.com/tryzealot/zealot/pkgs/container/codespace) - ## 文档 - [English](https://zealot.ews.im/docs/contributing-guide/local-development/devcontainer) - [简体中文](https://zealot.ews.im/zh-Hans/docs/contributing-guide/local-development/devcontainer) + +## 文件清单 + +文件名 | 说明 +---|--- +`devcontainer.json` | VSCode devcontainer 配置文件 +`Dockerfile.base` | 镜像核心,变更会自动推送到不同 registry 仓库 +`Dockerfile` | 间接镜像,主要是节省编译时间 +`docker-compose.yml` | 项目服务依赖 +`create-db-user.sql` | 用于初始化 Postgres 默认用户及权限 + +## 镜像 + +- [docker.io/tryzealot/codespace](https://hub.docker.com/r/tryzealot/codespace) +- [ghcr.io/tryzealot/codespace](https://github.com/tryzealot/zealot/pkgs/container/codespace) From 6e35511534c4bb4bb8c8616f8a193657e1366271 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Dec 2022 21:01:18 +0000 Subject: [PATCH 1259/2165] chore(deps-dev): bump ruby-lsp from 0.3.6 to 0.3.7 Bumps [ruby-lsp](https://github.com/Shopify/ruby-lsp) from 0.3.6 to 0.3.7. - [Release notes](https://github.com/Shopify/ruby-lsp/releases) - [Commits](https://github.com/Shopify/ruby-lsp/compare/v0.3.6...v0.3.7) --- updated-dependencies: - dependency-name: ruby-lsp dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index 897f6cb6d..9c7d44593 100644 --- a/Gemfile +++ b/Gemfile @@ -116,7 +116,7 @@ group :development do # 调试器 ## VSCode debug: https://marketplace.visualstudio.com/items?itemName=KoichiSasada.vscode-rdbg gem 'debug', '~> 1.7.0', platforms: %i[ mri mingw x64_mingw ] - gem "ruby-lsp", "~> 0.3.6" + gem "ruby-lsp", "~> 0.3.7" # 开发辅助 gem 'guard', '~> 2.18.0' diff --git a/Gemfile.lock b/Gemfile.lock index 91141a8d4..8749b3a32 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -416,7 +416,7 @@ GEM activesupport (>= 4.2.0) rack (>= 1.1) rubocop (>= 1.7.0, < 2.0) - ruby-lsp (0.3.6) + ruby-lsp (0.3.7) language_server-protocol (~> 3.17.0) sorbet-runtime syntax_tree (>= 4.0.2, < 5.0.0) @@ -460,7 +460,7 @@ GEM railties (>= 3.1) slim (>= 3.0, < 5.0) socksify (1.7.1) - sorbet-runtime (0.5.10577) + sorbet-runtime (0.5.10588) sprockets (4.1.1) concurrent-ruby (~> 1.0) rack (> 1, < 3) @@ -572,7 +572,7 @@ DEPENDENCIES rqrcode rubocop (>= 0.70) rubocop-rails - ruby-lsp (~> 0.3.6) + ruby-lsp (~> 0.3.7) rubyntlm (~> 0.5) sentry-rails sentry-ruby From 59414c1de874e3e84e58d74b41ffb0066ea0b2e0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 13 Dec 2022 20:31:07 +0000 Subject: [PATCH 1260/2165] chore(deps): bump loofah from 2.19.0 to 2.19.1 Bumps [loofah](https://github.com/flavorjones/loofah) from 2.19.0 to 2.19.1. - [Release notes](https://github.com/flavorjones/loofah/releases) - [Changelog](https://github.com/flavorjones/loofah/blob/main/CHANGELOG.md) - [Commits](https://github.com/flavorjones/loofah/compare/v2.19.0...v2.19.1) --- updated-dependencies: - dependency-name: loofah dependency-type: indirect ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 8749b3a32..25bd6ba4a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -245,7 +245,7 @@ GEM activesupport (>= 4) railties (>= 4) request_store (~> 1.0) - loofah (2.19.0) + loofah (2.19.1) crass (~> 1.0.2) nokogiri (>= 1.5.9) lumberjack (1.2.8) @@ -279,7 +279,7 @@ GEM net-protocol timeout nio4r (2.5.8) - nokogiri (1.13.9) + nokogiri (1.13.10) mini_portile2 (~> 2.8.0) racc (~> 1.4) notiffany (0.1.3) @@ -342,7 +342,7 @@ GEM activesupport (>= 3.0.0) pyu-ruby-sasl (0.0.3.3) raabro (1.4.0) - racc (1.6.0) + racc (1.6.1) rack (2.2.4) rack-cors (1.1.1) rack (>= 2.0.0) From 816ac2ca2cba217e73185ddc9630829c4166f183 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 13 Dec 2022 21:00:55 +0000 Subject: [PATCH 1261/2165] chore(deps): bump compare-versions from 5.0.1 to 5.0.3 Bumps [compare-versions](https://github.com/omichelsen/compare-versions) from 5.0.1 to 5.0.3. - [Release notes](https://github.com/omichelsen/compare-versions/releases) - [Changelog](https://github.com/omichelsen/compare-versions/blob/main/CHANGELOG.md) - [Commits](https://github.com/omichelsen/compare-versions/compare/v5.0.1...v5.0.3) --- updated-dependencies: - dependency-name: compare-versions dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index e907763c7..75b37d80c 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "@rails/actioncable": "^7.0.4", "admin-lte": "3.1.0", "clipboard": "^2.0.11", - "compare-versions": "^5.0.1", + "compare-versions": "^5.0.3", "esbuild": "^0.15.18", "sass": "^1.56.1", "ua-parser-js": "^1.0.32" diff --git a/yarn.lock b/yarn.lock index 164a3ffb7..0a99d997f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -302,10 +302,10 @@ color-name@^1.0.0: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -compare-versions@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-5.0.1.tgz#14c6008436d994c3787aba38d4087fabe858555e" - integrity sha512-v8Au3l0b+Nwkp4G142JcgJFh1/TUhdxut7wzD1Nq1dyp5oa3tXaqb03EXOAB6jS4gMlalkjAUPZBMiAfKUixHQ== +compare-versions@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/compare-versions/-/compare-versions-5.0.3.tgz#a9b34fea217472650ef4a2651d905f42c28ebfd7" + integrity sha512-4UZlZP8Z99MGEY+Ovg/uJxJuvoXuN4M6B3hKaiackiHrgzQFEe3diJi1mf1PNHbFujM7FvLrK2bpgIaImbtZ1A== core-util-is@~1.0.0: version "1.0.3" From 7f47df22b08d012df20adb2665f6d50eb60f0f2b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 14 Dec 2022 07:37:31 +0000 Subject: [PATCH 1262/2165] chore(deps): bump rails-html-sanitizer from 1.4.3 to 1.4.4 Bumps [rails-html-sanitizer](https://github.com/rails/rails-html-sanitizer) from 1.4.3 to 1.4.4. - [Release notes](https://github.com/rails/rails-html-sanitizer/releases) - [Changelog](https://github.com/rails/rails-html-sanitizer/blob/master/CHANGELOG.md) - [Commits](https://github.com/rails/rails-html-sanitizer/compare/v1.4.3...v1.4.4) --- updated-dependencies: - dependency-name: rails-html-sanitizer dependency-type: indirect ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 8749b3a32..e24a37e55 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -245,7 +245,7 @@ GEM activesupport (>= 4) railties (>= 4) request_store (~> 1.0) - loofah (2.19.0) + loofah (2.19.1) crass (~> 1.0.2) nokogiri (>= 1.5.9) lumberjack (1.2.8) @@ -279,7 +279,7 @@ GEM net-protocol timeout nio4r (2.5.8) - nokogiri (1.13.9) + nokogiri (1.13.10) mini_portile2 (~> 2.8.0) racc (~> 1.4) notiffany (0.1.3) @@ -342,7 +342,7 @@ GEM activesupport (>= 3.0.0) pyu-ruby-sasl (0.0.3.3) raabro (1.4.0) - racc (1.6.0) + racc (1.6.1) rack (2.2.4) rack-cors (1.1.1) rack (>= 2.0.0) @@ -367,8 +367,8 @@ GEM rails-dom-testing (2.0.3) activesupport (>= 4.2.0) nokogiri (>= 1.6) - rails-html-sanitizer (1.4.3) - loofah (~> 2.3) + rails-html-sanitizer (1.4.4) + loofah (~> 2.19, >= 2.19.1) rails-i18n (7.0.5) i18n (>= 0.7, < 2) railties (>= 6.0.0, < 8) From 2844806b96c07137d974a13d3ac16d7f4a3cb97d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 14 Dec 2022 21:00:38 +0000 Subject: [PATCH 1263/2165] chore(deps): bump cssbundling-rails from 1.1.1 to 1.1.2 Bumps [cssbundling-rails](https://github.com/rails/cssbundling-rails) from 1.1.1 to 1.1.2. - [Release notes](https://github.com/rails/cssbundling-rails/releases) - [Commits](https://github.com/rails/cssbundling-rails/compare/v1.1.1...v1.1.2) --- updated-dependencies: - dependency-name: cssbundling-rails dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index e24a37e55..f91a28267 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -119,7 +119,7 @@ GEM concurrent-ruby (1.1.10) connection_pool (2.3.0) crass (1.0.6) - cssbundling-rails (1.1.1) + cssbundling-rails (1.1.2) railties (>= 6.0.0) debug (1.7.0) irb (>= 1.5.0) From a0faa6315fe8a4dbdb1c1d9b17e353386a72fa58 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 14 Dec 2022 21:01:00 +0000 Subject: [PATCH 1264/2165] chore(deps): bump jsbundling-rails from 1.0.3 to 1.1.1 Bumps [jsbundling-rails](https://github.com/rails/jsbundling-rails) from 1.0.3 to 1.1.1. - [Release notes](https://github.com/rails/jsbundling-rails/releases) - [Commits](https://github.com/rails/jsbundling-rails/compare/v1.0.3...v1.1.1) --- updated-dependencies: - dependency-name: jsbundling-rails dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 9c7d44593..fe174a2e8 100644 --- a/Gemfile +++ b/Gemfile @@ -92,7 +92,7 @@ gem 'sidekiq-failures', '~> 1.0.4' # Assets ## jsbundling-rails, cssbundling-rails 仅生成配置文件到项目组,核心还是 package.json 中 build/build:css 部分。 gem 'propshaft', '0.6.4' -gem 'jsbundling-rails', '~> 1.0' +gem 'jsbundling-rails', '~> 1.1' gem 'cssbundling-rails', '~> 1.1' ## Javascript gem 'stimulus-rails', '~> 1.2.1' diff --git a/Gemfile.lock b/Gemfile.lock index e24a37e55..c126a3328 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -210,7 +210,7 @@ GEM irb (1.5.1) reline (>= 0.3.0) jb (0.8.0) - jsbundling-rails (1.0.3) + jsbundling-rails (1.1.1) railties (>= 6.0.0) json (2.6.2) jsonapi-renderer (0.2.2) @@ -541,7 +541,7 @@ DEPENDENCIES health_check (~> 3.1.0) improved_jenkins_client (~> 1.6.7) jb (~> 0.8.0) - jsbundling-rails (~> 1.0) + jsbundling-rails (~> 1.1) kaminari (~> 1.2.2) letter_opener (~> 1.8) letter_opener_web (~> 2.0) From e1893e7f84c7c1ab8eb94f28609643045fa8f40a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 14 Dec 2022 21:02:28 +0000 Subject: [PATCH 1265/2165] chore(deps): bump faraday from 2.7.1 to 2.7.2 Bumps [faraday](https://github.com/lostisland/faraday) from 2.7.1 to 2.7.2. - [Release notes](https://github.com/lostisland/faraday/releases) - [Changelog](https://github.com/lostisland/faraday/blob/main/CHANGELOG.md) - [Commits](https://github.com/lostisland/faraday/compare/v2.7.1...v2.7.2) --- updated-dependencies: - dependency-name: faraday dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 9c7d44593..0fcd2c68a 100644 --- a/Gemfile +++ b/Gemfile @@ -42,7 +42,7 @@ gem 'webp-ffi', '~> 0.3.1' # Helper ## HTTP 请求 -gem 'faraday', '~> 2.7.1' +gem 'faraday', '~> 2.7.2' ## 用户认证 gem 'pundit', '~> 2.2.0' diff --git a/Gemfile.lock b/Gemfile.lock index e24a37e55..1d95addd7 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -141,7 +141,7 @@ GEM erubi (1.11.0) et-orbi (1.2.7) tzinfo - faraday (2.7.1) + faraday (2.7.2) faraday-net_http (>= 2.0, < 3.1) ruby2_keywords (>= 0.0.4) faraday-net_http (3.0.2) @@ -529,7 +529,7 @@ DEPENDENCIES devise (~> 4.8.1) devise-i18n (~> 1.10.2) dotenv-rails - faraday (~> 2.7.1) + faraday (~> 2.7.2) friendly_id (~> 5.5.0) graphiql-rails graphql (~> 2.0.15) From 0de9810abb7147d7750d8a45beaa4c5c80f711e9 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 15 Dec 2022 10:47:10 +0800 Subject: [PATCH 1266/2165] =?UTF-8?q?chrome:=20bug=20=E6=A8=A1=E6=9D=BF?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20kubernates=20=E9=83=A8=E7=BD=B2=E9=80=89?= =?UTF-8?q?=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/ISSUE_TEMPLATE/bug_report.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yaml b/.github/ISSUE_TEMPLATE/bug_report.yaml index f98015fd2..c15047b1d 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yaml +++ b/.github/ISSUE_TEMPLATE/bug_report.yaml @@ -18,6 +18,7 @@ body: options: - 使用一键部署脚本 | Using zealot-docker on-click install (Default) - Docker (Default) + - Kubernates - 源码部署 | Source validations: required: true From d289998d48b88ddf9e1b88eff533ae3bf5e34148 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 16 Dec 2022 16:10:24 +0800 Subject: [PATCH 1267/2165] =?UTF-8?q?fix:=20=E5=A4=87=E4=BB=BD=E8=AE=A1?= =?UTF-8?q?=E5=88=92=E7=BF=BB=E8=AF=91=E9=81=97=E6=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/admin/backups/_form.html.slim | 8 ++++---- app/views/admin/backups/_job_complated.html.slim | 4 ++-- app/views/admin/backups/_job_failed.html.slim | 2 +- app/views/admin/backups/_job_unknown.html.slim | 4 ++-- app/views/admin/backups/_job_working.html.slim | 4 ++-- app/views/admin/backups/index.html.slim | 2 +- config/locales/zealot/en.yml | 3 +++ config/locales/zealot/zh-CN.yml | 3 +++ 8 files changed, 18 insertions(+), 12 deletions(-) diff --git a/app/views/admin/backups/_form.html.slim b/app/views/admin/backups/_form.html.slim index 1232fa146..94a17851d 100644 --- a/app/views/admin/backups/_form.html.slim +++ b/app/views/admin/backups/_form.html.slim @@ -14,7 +14,7 @@ / = f.input :notification .card-header.pt-0 - h3.card-title 定时任务 + h3.card-title = t('admin.backups.new.schedule') .card-body = f.input :schedule, required: true, input_html: { data: { action: 'admin-cron#parse' } } @@ -39,10 +39,10 @@ - unless @backup.new_record? .float-right - if @backup.enabled - = link_to '禁用', disable_admin_backup_path(@backup), \ + = link_to t('admin.backups.new.disable'), disable_admin_backup_path(@backup), \ data: { turbo_method: :post } - else - = link_to '启用', enable_admin_backup_path(@backup), \ + = link_to t('admin.backups.new.enable'), enable_admin_backup_path(@backup), \ data: { turbo_method: :post } - = f.button :submit \ No newline at end of file + = f.button :submit diff --git a/app/views/admin/backups/_job_complated.html.slim b/app/views/admin/backups/_job_complated.html.slim index 093f498a2..1f2beb554 100644 --- a/app/views/admin/backups/_job_complated.html.slim +++ b/app/views/admin/backups/_job_complated.html.slim @@ -7,5 +7,5 @@ tr = link_to archive_admin_backup_path(backup, key: file.basename), class: 'btn btn-sm download-backup', title: t('admin.backups.show.download') do i.fas.fa-download = link_to archive_admin_backup_path(backup, key: file.basename), class: 'btn btn-sm destroy-backup', title: t('admin.backups.show.destroy'), \ - data: { turbo_method: :delete, turbo_confirm: t('.destroy_confirm', key: backup.key) } do - i.fas.fa-trash-alt.text-danger \ No newline at end of file + data: { turbo_method: :delete, turbo_confirm: t('admin.backups.index.destroy_confirm', key: backup.key) } do + i.fas.fa-trash-alt.text-danger diff --git a/app/views/admin/backups/_job_failed.html.slim b/app/views/admin/backups/_job_failed.html.slim index 12e281157..0a4a7af91 100644 --- a/app/views/admin/backups/_job_failed.html.slim +++ b/app/views/admin/backups/_job_failed.html.slim @@ -9,5 +9,5 @@ tr td .btn-group = link_to archive_admin_backup_path(backup, key: file.basename), class: 'btn btn-sm', title: t('admin.backups.show.destroy'), \ - data: { turbo_method: :delete, turbo_confirm: t('.destroy_confirm', key: backup.key) } do + data: { turbo_method: :delete, turbo_confirm: t('admin.backups.index.destroy_confirm', key: backup.key) } do i.fas.fa-trash-alt.text-danger diff --git a/app/views/admin/backups/_job_unknown.html.slim b/app/views/admin/backups/_job_unknown.html.slim index f39c14468..5c4fca8fb 100644 --- a/app/views/admin/backups/_job_unknown.html.slim +++ b/app/views/admin/backups/_job_unknown.html.slim @@ -4,6 +4,6 @@ tr td .btn-group = link_to archive_admin_backup_path(backup, key: file.basename), class: 'btn btn-sm btn-danger', title: t('admin.backups.show.destroy'), \ - data: { turbo_method: :delete, turbo_confirm: t('.destroy_confirm', key: backup.key) } do + data: { turbo_method: :delete, turbo_confirm: t('admin.backups.index.destroy_confirm', key: backup.key) } do i.fas.fa-trash-alt - = t('admin.backups.show.unknown_job_status') \ No newline at end of file + = t('admin.backups.show.unknown_job_status') diff --git a/app/views/admin/backups/_job_working.html.slim b/app/views/admin/backups/_job_working.html.slim index 0802e453d..7db6b8705 100644 --- a/app/views/admin/backups/_job_working.html.slim +++ b/app/views/admin/backups/_job_working.html.slim @@ -6,5 +6,5 @@ tr button.btn.btn-default.btn-sm = t('admin.backups.show.current_step', step: file.status[:step]) = link_to archive_admin_backup_path(backup, key: file.basename), class: 'btn btn-sm btn-danger', title: t('admin.backups.show.destroy'), \ - data: { turbo_method: :delete, turbo_confirm: t('.destroy_confirm', key: backup.key) } do - i.fas.fa-trash-alt \ No newline at end of file + data: { turbo_method: :delete, turbo_confirm: t('admin.backups.index.destroy_confirm', key: backup.key) } do + i.fas.fa-trash-alt diff --git a/app/views/admin/backups/index.html.slim b/app/views/admin/backups/index.html.slim index 321fb89d0..5c1fffb63 100644 --- a/app/views/admin/backups/index.html.slim +++ b/app/views/admin/backups/index.html.slim @@ -43,4 +43,4 @@ .card.card-outline.card-warning .card-header.card-border h3.card-title = t('.not_found.title') - .card-body = t('.not_found.body_html') \ No newline at end of file + .card-body = t('.not_found.body_html') diff --git a/config/locales/zealot/en.yml b/config/locales/zealot/en.yml index 83fe71020..c480ec68d 100644 --- a/config/locales/zealot/en.yml +++ b/config/locales/zealot/en.yml @@ -209,6 +209,9 @@ en: body_html: Click the button to new a backup file. new: title: New backup + schedule: Scheduel + disable: Disable + enable: Enable edit: title: Edit %{key} backup perform: diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index 7364699c1..c25e771ff 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -224,6 +224,9 @@ zh-CN: body_html: 点击右上角的 执行备份。 new: title: 新增备份 + schedule: 定时任务 + disable: 禁用 + enable: 启用 edit: title: 编辑 %{key} 备份计划 perform: From 0f604baf1c5f87b91eeb1cf8d711e239df25867f Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 16 Dec 2022 16:13:08 +0800 Subject: [PATCH 1268/2165] =?UTF-8?q?fix:=20=E5=A4=87=E4=BB=BD=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E5=9C=A8=E7=A3=81=E7=9B=98=E4=B8=8D=E5=AD=98=E5=9C=A8?= =?UTF-8?q?=E7=9A=84=E9=80=BB=E8=BE=91=E5=AE=8C=E5=96=84=20(#995)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/zealot/backup/uploads.rb | 36 +++++++++++++++++++++++++----------- 1 file changed, 25 insertions(+), 11 deletions(-) diff --git a/lib/zealot/backup/uploads.rb b/lib/zealot/backup/uploads.rb index a35db41b8..0ac0b2dd2 100644 --- a/lib/zealot/backup/uploads.rb +++ b/lib/zealot/backup/uploads.rb @@ -53,7 +53,16 @@ def dump(app_ids: nil) FileUtils.rm_f(backup_tarball) logger.debug "Dumping uploads data ... #{uploads_path}" - run_pipeline!([archive_tar_cmd(app_ids), gzip_cmd], out: [backup_tarball, 'w', 0600]) + apps_path = apps_path(app_ids) + if !app_ids.nil? && !apps_path + logger.error "App(s) path was not exist, backup abort." + return + end + + apps_path = ['.'] if app_ids.nil? + logger.debug [archive_tar_cmd(apps_path), gzip_cmd].join(" ") + logger.debug apps_path + run_pipeline!([archive_tar_cmd(apps_path), gzip_cmd], out: [backup_tarball, 'w', 0600]) end def restore @@ -66,16 +75,20 @@ def restore private - def archive_tar_cmd(app_ids) - command = %W(#{tar} --exclude=lost+found --exclude=.DS_Store -C #{uploads_path} -cf -) - if app_ids.is_a?(Array) && !app_ids.empty? - app_ids.each do |app_id| - command << File.join('apps', "a#{app_id}") - end - else - command << '.' + def apps_path(app_ids) + return unless app_ids.is_a?(Array) || app_ids.empty? + + ids = app_ids.select { |app_id| Dir.exist?(File.join(uploads_path, 'apps', "a#{app_id}")) } + return if ids.empty? + + ids.map do |id| + File.join('apps', "a#{id}") end + end + def archive_tar_cmd(apps_path) + command = %W(#{tar} --exclude=lost+found --exclude=.DS_Store -C #{uploads_path} -cf -) + command.concat(apps_path) command end @@ -85,7 +98,8 @@ def backup_existing_uploads_dir # Move all files in the existing repos directory except . and .. to # uploads.old. directory FileUtils.mkdir_p(timestamped_files_path, mode: 0700) - files = Dir.glob(File.join(uploads_path, "*"), File::FNM_DOTMATCH) - [File.join(uploads_path, "."), File.join(uploads_path, "..")] + files = Dir.glob(File.join(uploads_path, "*"), + File::FNM_DOTMATCH) - [File.join(uploads_path, "."), File.join(uploads_path, "..")] begin FileUtils.mv(files, timestamped_files_path) @@ -137,4 +151,4 @@ def backup_path @backup_path ||= path end end -end \ No newline at end of file +end From 07ce85662c1c3a5e118e8d56bb422d6dda814a36 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 16 Dec 2022 21:01:08 +0000 Subject: [PATCH 1269/2165] chore(deps): bump activejob-status from 0.3.0 to 0.4.0 Bumps [activejob-status](https://github.com/inkstak/activejob-status) from 0.3.0 to 0.4.0. - [Release notes](https://github.com/inkstak/activejob-status/releases) - [Commits](https://github.com/inkstak/activejob-status/compare/v0.3.0...v0.4.0) --- updated-dependencies: - dependency-name: activejob-status dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 7d3c5fba9..0064dc94c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -56,7 +56,7 @@ GEM activejob (7.0.4) activesupport (= 7.0.4) globalid (>= 0.3.6) - activejob-status (0.3.0) + activejob-status (0.4.0) activejob (>= 4.2) activesupport (>= 4.2) activemodel (7.0.4) From 52bebd82579384c4050e2834f17fc217805424ca Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 19 Dec 2022 21:00:56 +0000 Subject: [PATCH 1270/2165] chore(deps): bump graphql from 2.0.15 to 2.0.16 Bumps [graphql](https://github.com/rmosolgo/graphql-ruby) from 2.0.15 to 2.0.16. - [Release notes](https://github.com/rmosolgo/graphql-ruby/releases) - [Changelog](https://github.com/rmosolgo/graphql-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/rmosolgo/graphql-ruby/compare/v2.0.15...v2.0.16) --- updated-dependencies: - dependency-name: graphql dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 31cae33cb..b652597ac 100644 --- a/Gemfile +++ b/Gemfile @@ -18,7 +18,7 @@ gem 'lograge', '~> 0.12.0' # API gem 'active_model_serializers', '~> 0.10.13' -gem 'graphql', '~> 2.0.15' +gem 'graphql', '~> 2.0.16' gem 'rack-cors', '~> 1.1.1' gem 'health_check', '~> 3.1.0' gem 'tiny_appstore_connect', '~> 0.1.7' #path: '/Users/icyleaf/Development/ruby/tiny_appstore_connect' diff --git a/Gemfile.lock b/Gemfile.lock index 0064dc94c..c2a440e9c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -161,7 +161,7 @@ GEM graphiql-rails (1.8.0) railties sprockets-rails - graphql (2.0.15) + graphql (2.0.16) guard (2.18.0) formatador (>= 0.2.4) listen (>= 2.7, < 4.0) @@ -532,7 +532,7 @@ DEPENDENCIES faraday (~> 2.7.2) friendly_id (~> 5.5.0) graphiql-rails - graphql (~> 2.0.15) + graphql (~> 2.0.16) guard (~> 2.18.0) guard-bundler guard-migrate From 1eca725638397c9fe662d407f8cb346dc8049364 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 19 Dec 2022 21:01:02 +0000 Subject: [PATCH 1271/2165] chore(deps): bump sass from 1.56.1 to 1.57.0 Bumps [sass](https://github.com/sass/dart-sass) from 1.56.1 to 1.57.0. - [Release notes](https://github.com/sass/dart-sass/releases) - [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md) - [Commits](https://github.com/sass/dart-sass/compare/1.56.1...1.57.0) --- updated-dependencies: - dependency-name: sass dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 75b37d80c..358ba7582 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "clipboard": "^2.0.11", "compare-versions": "^5.0.3", "esbuild": "^0.15.18", - "sass": "^1.56.1", + "sass": "^1.57.0", "ua-parser-js": "^1.0.32" }, "scripts": { diff --git a/yarn.lock b/yarn.lock index 0a99d997f..08c1fea4d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1428,10 +1428,10 @@ safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sass@^1.56.1: - version "1.56.1" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.56.1.tgz#94d3910cd468fd075fa87f5bb17437a0b617d8a7" - integrity sha512-VpEyKpyBPCxE7qGDtOcdJ6fFbcpOM+Emu7uZLxVrkX8KVU/Dp5UF7WLvzqRuUhB6mqqQt1xffLoG+AndxTZrCQ== +sass@^1.57.0: + version "1.57.0" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.57.0.tgz#64c4144ed4e1c0ccb96dc18aef2c424cdbc0c12b" + integrity sha512-IZNEJDTK1cF5B1cGA593TPAV/1S0ysUDxq9XHjX/+SMy0QfUny+nfUsq5ZP7wWSl4eEf7wDJcEZ8ABYFmh3m/w== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" From e0a736dfd4c02de83ea6d193e883e188eb063192 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 19 Dec 2022 21:01:09 +0000 Subject: [PATCH 1272/2165] chore(deps): bump rails-settings-cached from 2.8.2 to 2.8.3 Bumps [rails-settings-cached](https://github.com/huacnlee/rails-settings-cached) from 2.8.2 to 2.8.3. - [Release notes](https://github.com/huacnlee/rails-settings-cached/releases) - [Changelog](https://github.com/huacnlee/rails-settings-cached/blob/main/CHANGELOG.md) - [Commits](https://github.com/huacnlee/rails-settings-cached/compare/v2.8.2...v2.8.3) --- updated-dependencies: - dependency-name: rails-settings-cached dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 32 +++++++++++++++----------------- 2 files changed, 16 insertions(+), 18 deletions(-) diff --git a/Gemfile b/Gemfile index 31cae33cb..87bc5d2b2 100644 --- a/Gemfile +++ b/Gemfile @@ -102,7 +102,7 @@ gem 'turbo-rails', '~> 1.3' gem 'app-info', '~> 2.8.3' # 带缓存的配置库 -gem 'rails-settings-cached', '~> 2.8.2' +gem 'rails-settings-cached', '~> 2.8.3' # Reduces boot times through caching; required in config/boot.rb gem 'bootsnap', '>= 1.4.7', require: false diff --git a/Gemfile.lock b/Gemfile.lock index 0064dc94c..20999ede9 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -121,6 +121,7 @@ GEM crass (1.0.6) cssbundling-rails (1.1.2) railties (>= 6.0.0) + date (3.3.3) debug (1.7.0) irb (>= 1.5.0) reline (>= 0.3.1) @@ -133,7 +134,6 @@ GEM warden (~> 1.2.3) devise-i18n (1.10.2) devise (>= 4.8.0) - digest (3.1.0) dotenv (2.8.1) dotenv-rails (2.8.1) dotenv (= 2.8.1) @@ -249,8 +249,11 @@ GEM crass (~> 1.0.2) nokogiri (>= 1.5.9) lumberjack (1.2.8) - mail (2.7.1) + mail (2.8.0) mini_mime (>= 0.1.1) + net-imap + net-pop + net-smtp marcel (1.0.2) method_source (1.0.0) mini_magick (4.11.0) @@ -263,21 +266,16 @@ GEM multi_json (1.15.0) multi_xml (0.6.0) nenv (0.3.0) - net-imap (0.2.3) - digest + net-imap (0.3.2) + date net-protocol - strscan net-ldap (0.17.1) - net-pop (0.1.1) - digest + net-pop (0.1.2) net-protocol + net-protocol (0.2.1) timeout - net-protocol (0.1.3) - timeout - net-smtp (0.3.1) - digest + net-smtp (0.3.3) net-protocol - timeout nio4r (2.5.8) nokogiri (1.13.10) mini_portile2 (~> 2.8.0) @@ -372,8 +370,9 @@ GEM rails-i18n (7.0.5) i18n (>= 0.7, < 2) railties (>= 6.0.0, < 8) - rails-settings-cached (2.8.2) - rails (>= 5.0.0) + rails-settings-cached (2.8.3) + activerecord (>= 5.0.0) + railties (>= 5.0.0) railties (7.0.4) actionpack (= 7.0.4) activesupport (= 7.0.4) @@ -471,7 +470,6 @@ GEM ssrf_filter (1.1.1) stimulus-rails (1.2.1) railties (>= 6.0.0) - strscan (3.0.4) syntax_tree (4.3.0) prettier_print (>= 1.0.2) sys-filesystem (1.4.3) @@ -483,7 +481,7 @@ GEM unicode-display_width (>= 1.1.1, < 3) thor (1.2.1) tilt (2.0.11) - timeout (0.3.0) + timeout (0.3.1) tiny_appstore_connect (0.1.7) faraday (>= 1.10.0, < 3.0) jwt (>= 1.4, < 3) @@ -566,7 +564,7 @@ DEPENDENCIES rack-cors (~> 1.1.1) rails (~> 7.0.4) rails-i18n (~> 7.0.5) - rails-settings-cached (~> 2.8.2) + rails-settings-cached (~> 2.8.3) rake (~> 13.0.4) redis (~> 4.7.1) rqrcode From 1f84057f82560a22425d34da92e226b267d32db9 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 19 Dec 2022 21:02:23 +0000 Subject: [PATCH 1273/2165] chore(deps): bump pundit from 2.2.0 to 2.3.0 Bumps [pundit](https://github.com/varvet/pundit) from 2.2.0 to 2.3.0. - [Release notes](https://github.com/varvet/pundit/releases) - [Changelog](https://github.com/varvet/pundit/blob/main/CHANGELOG.md) - [Commits](https://github.com/varvet/pundit/commits) --- updated-dependencies: - dependency-name: pundit dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 31cae33cb..be5c7a3e9 100644 --- a/Gemfile +++ b/Gemfile @@ -45,7 +45,7 @@ gem 'webp-ffi', '~> 0.3.1' gem 'faraday', '~> 2.7.2' ## 用户认证 -gem 'pundit', '~> 2.2.0' +gem 'pundit', '~> 2.3.0' gem 'devise', '~> 4.8.1' gem 'devise-i18n', '~> 1.10.2' diff --git a/Gemfile.lock b/Gemfile.lock index 0064dc94c..c99c5f064 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -338,7 +338,7 @@ GEM public_suffix (5.0.0) puma (6.0.0) nio4r (~> 2.0) - pundit (2.2.0) + pundit (2.3.0) activesupport (>= 3.0.0) pyu-ruby-sasl (0.0.3.3) raabro (1.4.0) @@ -561,7 +561,7 @@ DEPENDENCIES pry-rails pry-rescue puma (~> 6.0.0) - pundit (~> 2.2.0) + pundit (~> 2.3.0) pyu-ruby-sasl (>= 0.0.3.3, < 0.1) rack-cors (~> 1.1.1) rails (~> 7.0.4) From 6aed58b6abdc636e28d936a60778e06e77ec8698 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 20 Dec 2022 21:00:58 +0000 Subject: [PATCH 1274/2165] chore(deps): bump puma from 6.0.0 to 6.0.1 Bumps [puma](https://github.com/puma/puma) from 6.0.0 to 6.0.1. - [Release notes](https://github.com/puma/puma/releases) - [Changelog](https://github.com/puma/puma/blob/master/History.md) - [Commits](https://github.com/puma/puma/compare/v6.0.0...v6.0.1) --- updated-dependencies: - dependency-name: puma dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 0fb66c338..24d98c783 100644 --- a/Gemfile +++ b/Gemfile @@ -4,7 +4,7 @@ source 'https://rubygems.org' git_source(:github) { |repo_name| "https://github.com/#{repo_name}" } -gem 'puma', '~> 6.0.0' +gem 'puma', '~> 6.0.1' gem 'rails', '~> 7.0.4' gem 'rails-i18n', '~> 7.0.5' gem 'rake', '~> 13.0.4' diff --git a/Gemfile.lock b/Gemfile.lock index d2a17256f..a52ae546d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -334,7 +334,7 @@ GEM interception (>= 0.5) pry (>= 0.12.0) public_suffix (5.0.0) - puma (6.0.0) + puma (6.0.1) nio4r (~> 2.0) pundit (2.3.0) activesupport (>= 3.0.0) @@ -558,7 +558,7 @@ DEPENDENCIES propshaft (= 0.6.4) pry-rails pry-rescue - puma (~> 6.0.0) + puma (~> 6.0.1) pundit (~> 2.3.0) pyu-ruby-sasl (>= 0.0.3.3, < 0.1) rack-cors (~> 1.1.1) From 60b1825b1e29b77d46a789ecd698fb71cafbe260 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 20 Dec 2022 21:00:59 +0000 Subject: [PATCH 1275/2165] chore(deps): bump sass from 1.57.0 to 1.57.1 Bumps [sass](https://github.com/sass/dart-sass) from 1.57.0 to 1.57.1. - [Release notes](https://github.com/sass/dart-sass/releases) - [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md) - [Commits](https://github.com/sass/dart-sass/compare/1.57.0...1.57.1) --- updated-dependencies: - dependency-name: sass dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 358ba7582..b68448f54 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "clipboard": "^2.0.11", "compare-versions": "^5.0.3", "esbuild": "^0.15.18", - "sass": "^1.57.0", + "sass": "^1.57.1", "ua-parser-js": "^1.0.32" }, "scripts": { diff --git a/yarn.lock b/yarn.lock index 08c1fea4d..6fab2133e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1428,10 +1428,10 @@ safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sass@^1.57.0: - version "1.57.0" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.57.0.tgz#64c4144ed4e1c0ccb96dc18aef2c424cdbc0c12b" - integrity sha512-IZNEJDTK1cF5B1cGA593TPAV/1S0ysUDxq9XHjX/+SMy0QfUny+nfUsq5ZP7wWSl4eEf7wDJcEZ8ABYFmh3m/w== +sass@^1.57.1: + version "1.57.1" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.57.1.tgz#dfafd46eb3ab94817145e8825208ecf7281119b5" + integrity sha512-O2+LwLS79op7GI0xZ8fqzF7X2m/m8WFfI02dHOdsK5R2ECeS5F62zrwg/relM1rjSLy7Vd/DiMNIvPrQGsA0jw== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" From 6a371fddd8fc257b166139722b661210a5213a33 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 22 Dec 2022 21:01:18 +0000 Subject: [PATCH 1276/2165] chore(deps-dev): bump debug from 1.7.0 to 1.7.1 Bumps [debug](https://github.com/ruby/debug) from 1.7.0 to 1.7.1. - [Release notes](https://github.com/ruby/debug/releases) - [Commits](https://github.com/ruby/debug/compare/v1.7.0...v1.7.1) --- updated-dependencies: - dependency-name: debug dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Gemfile b/Gemfile index 24d98c783..2524187f8 100644 --- a/Gemfile +++ b/Gemfile @@ -115,7 +115,7 @@ group :development do # 调试器 ## VSCode debug: https://marketplace.visualstudio.com/items?itemName=KoichiSasada.vscode-rdbg - gem 'debug', '~> 1.7.0', platforms: %i[ mri mingw x64_mingw ] + gem 'debug', '~> 1.7.1', platforms: %i[ mri mingw x64_mingw ] gem "ruby-lsp", "~> 0.3.7" # 开发辅助 diff --git a/Gemfile.lock b/Gemfile.lock index a52ae546d..1f8846ac1 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -122,7 +122,7 @@ GEM cssbundling-rails (1.1.2) railties (>= 6.0.0) date (3.3.3) - debug (1.7.0) + debug (1.7.1) irb (>= 1.5.0) reline (>= 0.3.1) debug_inspector (1.1.0) @@ -205,9 +205,9 @@ GEM terminal-table (>= 1.4.0) thor (>= 0.16.0) interception (0.5) - io-console (0.5.11) + io-console (0.6.0) ipaddr (1.2.4) - irb (1.5.1) + irb (1.6.2) reline (>= 0.3.0) jb (0.8.0) jsbundling-rails (1.1.1) @@ -387,7 +387,7 @@ GEM ffi (~> 1.0) redis (4.7.1) regexp_parser (2.5.0) - reline (0.3.1) + reline (0.3.2) io-console (~> 0.5) request_store (1.5.1) rack (>= 1.4) @@ -523,7 +523,7 @@ DEPENDENCIES bootsnap (>= 1.4.7) carrierwave (~> 2.2.3) cssbundling-rails (~> 1.1) - debug (~> 1.7.0) + debug (~> 1.7.1) devise (~> 4.8.1) devise-i18n (~> 1.10.2) dotenv-rails From f04059bdf15f4915ccdad85187fa0a62e4ae549c Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 28 Dec 2022 14:43:47 +0800 Subject: [PATCH 1277/2165] chore: devcontainer use ruby 3.2.0 --- .devcontainer/Dockerfile.base | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/Dockerfile.base b/.devcontainer/Dockerfile.base index c3d959513..b8b8c53ac 100755 --- a/.devcontainer/Dockerfile.base +++ b/.devcontainer/Dockerfile.base @@ -32,7 +32,7 @@ USER vscode # Install asdf, ruby and nodejs ARG ASDF_DIR="/home/vscode/.asdf" -ARG RUBY_VERSION="3.0.4" +ARG RUBY_VERSION="3.2.0" ARG NODEJS_VERSION="18.12.1" RUN git clone https://github.com/asdf-vm/asdf.git ${ASDF_DIR} && \ echo ". ${ASDF_DIR}/asdf.sh" >> ~/.bashrc && \ From c8a91269fc6ede5b588c6504176d80bb146617ee Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 28 Dec 2022 14:45:01 +0800 Subject: [PATCH 1278/2165] chore: ignore .devcontainer in build nightly github action --- .github/workflows/publish_nighty.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/publish_nighty.yml b/.github/workflows/publish_nighty.yml index 56bcaface..817bf5d3a 100644 --- a/.github/workflows/publish_nighty.yml +++ b/.github/workflows/publish_nighty.yml @@ -2,6 +2,7 @@ name: Publish Nightly Docker Image on: push: paths-ignore: + - '.devcontainer/*' - '.github/*.yml' - '.github/workflows/publish_codespace.yml' - '*.md' From 3e01d949c8ffd2aeed178a4ff62493dd1094e867 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 29 Dec 2022 14:21:31 +0800 Subject: [PATCH 1279/2165] =?UTF-8?q?chore:=20=E4=BF=AE=E5=A4=8D=20devcont?= =?UTF-8?q?ainer=20=E5=AE=89=E8=A3=85=20Ruby=203.2=20=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .devcontainer/Dockerfile.base | 4 +++- .devcontainer/devcontainer.json | 5 +++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/.devcontainer/Dockerfile.base b/.devcontainer/Dockerfile.base index b8b8c53ac..2f3c12d11 100755 --- a/.devcontainer/Dockerfile.base +++ b/.devcontainer/Dockerfile.base @@ -13,7 +13,7 @@ RUN if [ "$USER_GID" != "$USER_UID" ] || [ "$USER_UID" != "1000" ]; then \ ARG DEBIAN_FRONTEND=noninteractive RUN apt-get update && \ apt-get -y install --no-install-recommends \ - build-essential gnupg2 tar git zsh libssl-dev zlib1g-dev \ + build-essential gnupg2 tar git zsh libssl-dev zlib1g-dev libyaml-dev \ postgresql-client libpq-dev \ imagemagick libjpeg-dev libpng-dev libtiff-dev libwebp-dev \ tzdata \ @@ -49,6 +49,8 @@ WORKDIR /workspace COPY Gemfile Gemfile.lock ./ RUN gem install bundler foreman && \ + bundle lock --add-platform ruby && \ + bundle config set force_ruby_platform true && \ bundle install RUN npm install --global yarn && \ diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 744a03580..7c0622cb5 100755 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -19,13 +19,14 @@ "Shopify.ruby-lsp", "sorbet.sorbet-vscode-extension", "KoichiSasada.vscode-rdbg", - "itarato.byesig", + // "itarato.byesig", "sianglim.slim", "misogi.ruby-rubocop", "eamodio.gitlens", "bung87.rails", "bung87.vscode-gemfile", - "EditorConfig.EditorConfig" + "EditorConfig.EditorConfig", + "formulahendry.auto-complete-tag" ], "forwardPorts": [3000, 5432, 6379, 8081], From 1fbe0541f6a0b72442614af11b4ba0d5b469127b Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 29 Dec 2022 14:49:40 +0800 Subject: [PATCH 1280/2165] =?UTF-8?q?chore:=20=E9=85=8D=E7=BD=AE=E5=AE=B9?= =?UTF-8?q?=E5=99=A8=E7=8E=AF=E5=A2=83=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .devcontainer/Dockerfile.base | 4 ++++ .devcontainer/devcontainer.json | 3 --- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.devcontainer/Dockerfile.base b/.devcontainer/Dockerfile.base index 2f3c12d11..1e4e2887a 100755 --- a/.devcontainer/Dockerfile.base +++ b/.devcontainer/Dockerfile.base @@ -45,6 +45,10 @@ RUN asdf plugin add nodejs && \ asdf install nodejs $NODEJS_VERSION && \ asdf global nodejs ${NODEJS_VERSION} +LABEL zealot.containers.asdf="$(${ASDF_DIR}/bin/asdf version)" +LABEL zealot.containers.ruby="$RUBY_VERSION" +LABEL zealot.containers.nodejs="$NODEJS_VERSION" + WORKDIR /workspace COPY Gemfile Gemfile.lock ./ diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 7c0622cb5..99bb9ec23 100755 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -15,11 +15,8 @@ }, "extensions": [ - "Shopify.ruby-extensions-pack", "Shopify.ruby-lsp", - "sorbet.sorbet-vscode-extension", "KoichiSasada.vscode-rdbg", - // "itarato.byesig", "sianglim.slim", "misogi.ruby-rubocop", "eamodio.gitlens", From 009300dad443a29f30cb5967c5265ef187f53089 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 29 Dec 2022 15:04:35 +0800 Subject: [PATCH 1281/2165] =?UTF-8?q?chore:=20devcontainer=20=E4=B8=8D?= =?UTF-8?q?=E5=86=8D=E5=B1=95=E7=A4=BA=20asdf=20version?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .devcontainer/Dockerfile.base | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/Dockerfile.base b/.devcontainer/Dockerfile.base index 1e4e2887a..2e2bf4ed2 100755 --- a/.devcontainer/Dockerfile.base +++ b/.devcontainer/Dockerfile.base @@ -45,7 +45,6 @@ RUN asdf plugin add nodejs && \ asdf install nodejs $NODEJS_VERSION && \ asdf global nodejs ${NODEJS_VERSION} -LABEL zealot.containers.asdf="$(${ASDF_DIR}/bin/asdf version)" LABEL zealot.containers.ruby="$RUBY_VERSION" LABEL zealot.containers.nodejs="$NODEJS_VERSION" @@ -57,5 +56,6 @@ RUN gem install bundler foreman && \ bundle config set force_ruby_platform true && \ bundle install +COPY package.json yarn.lock ./ RUN npm install --global yarn && \ yarn install From 18c66fa348fdb674a6bcd6ada8f978cb19874aa8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 22 Dec 2022 21:01:18 +0000 Subject: [PATCH 1282/2165] chore(deps-dev): bump debug from 1.7.0 to 1.7.1 Bumps [debug](https://github.com/ruby/debug) from 1.7.0 to 1.7.1. - [Release notes](https://github.com/ruby/debug/releases) - [Commits](https://github.com/ruby/debug/compare/v1.7.0...v1.7.1) --- updated-dependencies: - dependency-name: debug dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Gemfile b/Gemfile index 24d98c783..2524187f8 100644 --- a/Gemfile +++ b/Gemfile @@ -115,7 +115,7 @@ group :development do # 调试器 ## VSCode debug: https://marketplace.visualstudio.com/items?itemName=KoichiSasada.vscode-rdbg - gem 'debug', '~> 1.7.0', platforms: %i[ mri mingw x64_mingw ] + gem 'debug', '~> 1.7.1', platforms: %i[ mri mingw x64_mingw ] gem "ruby-lsp", "~> 0.3.7" # 开发辅助 diff --git a/Gemfile.lock b/Gemfile.lock index a52ae546d..1f8846ac1 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -122,7 +122,7 @@ GEM cssbundling-rails (1.1.2) railties (>= 6.0.0) date (3.3.3) - debug (1.7.0) + debug (1.7.1) irb (>= 1.5.0) reline (>= 0.3.1) debug_inspector (1.1.0) @@ -205,9 +205,9 @@ GEM terminal-table (>= 1.4.0) thor (>= 0.16.0) interception (0.5) - io-console (0.5.11) + io-console (0.6.0) ipaddr (1.2.4) - irb (1.5.1) + irb (1.6.2) reline (>= 0.3.0) jb (0.8.0) jsbundling-rails (1.1.1) @@ -387,7 +387,7 @@ GEM ffi (~> 1.0) redis (4.7.1) regexp_parser (2.5.0) - reline (0.3.1) + reline (0.3.2) io-console (~> 0.5) request_store (1.5.1) rack (>= 1.4) @@ -523,7 +523,7 @@ DEPENDENCIES bootsnap (>= 1.4.7) carrierwave (~> 2.2.3) cssbundling-rails (~> 1.1) - debug (~> 1.7.0) + debug (~> 1.7.1) devise (~> 4.8.1) devise-i18n (~> 1.10.2) dotenv-rails From fd975184a94dfe6e7f9f38b7b23181540b143477 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 28 Dec 2022 14:43:47 +0800 Subject: [PATCH 1283/2165] chore: devcontainer use ruby 3.2.0 --- .devcontainer/Dockerfile.base | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/Dockerfile.base b/.devcontainer/Dockerfile.base index c3d959513..b8b8c53ac 100755 --- a/.devcontainer/Dockerfile.base +++ b/.devcontainer/Dockerfile.base @@ -32,7 +32,7 @@ USER vscode # Install asdf, ruby and nodejs ARG ASDF_DIR="/home/vscode/.asdf" -ARG RUBY_VERSION="3.0.4" +ARG RUBY_VERSION="3.2.0" ARG NODEJS_VERSION="18.12.1" RUN git clone https://github.com/asdf-vm/asdf.git ${ASDF_DIR} && \ echo ". ${ASDF_DIR}/asdf.sh" >> ~/.bashrc && \ From ff98d5b27433adae9bcffc635e45e075c99a36e7 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 28 Dec 2022 14:45:01 +0800 Subject: [PATCH 1284/2165] chore: ignore .devcontainer in build nightly github action --- .github/workflows/publish_nighty.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/publish_nighty.yml b/.github/workflows/publish_nighty.yml index 56bcaface..817bf5d3a 100644 --- a/.github/workflows/publish_nighty.yml +++ b/.github/workflows/publish_nighty.yml @@ -2,6 +2,7 @@ name: Publish Nightly Docker Image on: push: paths-ignore: + - '.devcontainer/*' - '.github/*.yml' - '.github/workflows/publish_codespace.yml' - '*.md' From 6eee966a23ed468be7b0132ab525f4e756d379d0 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 29 Dec 2022 14:21:31 +0800 Subject: [PATCH 1285/2165] =?UTF-8?q?chore:=20=E4=BF=AE=E5=A4=8D=20devcont?= =?UTF-8?q?ainer=20=E5=AE=89=E8=A3=85=20Ruby=203.2=20=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .devcontainer/Dockerfile.base | 4 +++- .devcontainer/devcontainer.json | 5 +++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/.devcontainer/Dockerfile.base b/.devcontainer/Dockerfile.base index b8b8c53ac..2f3c12d11 100755 --- a/.devcontainer/Dockerfile.base +++ b/.devcontainer/Dockerfile.base @@ -13,7 +13,7 @@ RUN if [ "$USER_GID" != "$USER_UID" ] || [ "$USER_UID" != "1000" ]; then \ ARG DEBIAN_FRONTEND=noninteractive RUN apt-get update && \ apt-get -y install --no-install-recommends \ - build-essential gnupg2 tar git zsh libssl-dev zlib1g-dev \ + build-essential gnupg2 tar git zsh libssl-dev zlib1g-dev libyaml-dev \ postgresql-client libpq-dev \ imagemagick libjpeg-dev libpng-dev libtiff-dev libwebp-dev \ tzdata \ @@ -49,6 +49,8 @@ WORKDIR /workspace COPY Gemfile Gemfile.lock ./ RUN gem install bundler foreman && \ + bundle lock --add-platform ruby && \ + bundle config set force_ruby_platform true && \ bundle install RUN npm install --global yarn && \ diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 744a03580..7c0622cb5 100755 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -19,13 +19,14 @@ "Shopify.ruby-lsp", "sorbet.sorbet-vscode-extension", "KoichiSasada.vscode-rdbg", - "itarato.byesig", + // "itarato.byesig", "sianglim.slim", "misogi.ruby-rubocop", "eamodio.gitlens", "bung87.rails", "bung87.vscode-gemfile", - "EditorConfig.EditorConfig" + "EditorConfig.EditorConfig", + "formulahendry.auto-complete-tag" ], "forwardPorts": [3000, 5432, 6379, 8081], From c7bd5b189ac859f79c9ffcd36fb19ce4f4e40e8f Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 29 Dec 2022 14:49:40 +0800 Subject: [PATCH 1286/2165] =?UTF-8?q?chore:=20=E9=85=8D=E7=BD=AE=E5=AE=B9?= =?UTF-8?q?=E5=99=A8=E7=8E=AF=E5=A2=83=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .devcontainer/Dockerfile.base | 4 ++++ .devcontainer/devcontainer.json | 3 --- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.devcontainer/Dockerfile.base b/.devcontainer/Dockerfile.base index 2f3c12d11..1e4e2887a 100755 --- a/.devcontainer/Dockerfile.base +++ b/.devcontainer/Dockerfile.base @@ -45,6 +45,10 @@ RUN asdf plugin add nodejs && \ asdf install nodejs $NODEJS_VERSION && \ asdf global nodejs ${NODEJS_VERSION} +LABEL zealot.containers.asdf="$(${ASDF_DIR}/bin/asdf version)" +LABEL zealot.containers.ruby="$RUBY_VERSION" +LABEL zealot.containers.nodejs="$NODEJS_VERSION" + WORKDIR /workspace COPY Gemfile Gemfile.lock ./ diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 7c0622cb5..99bb9ec23 100755 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -15,11 +15,8 @@ }, "extensions": [ - "Shopify.ruby-extensions-pack", "Shopify.ruby-lsp", - "sorbet.sorbet-vscode-extension", "KoichiSasada.vscode-rdbg", - // "itarato.byesig", "sianglim.slim", "misogi.ruby-rubocop", "eamodio.gitlens", From 4a24ad8b985caee0ac03459b237a43368d1af595 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 29 Dec 2022 15:04:35 +0800 Subject: [PATCH 1287/2165] =?UTF-8?q?chore:=20devcontainer=20=E4=B8=8D?= =?UTF-8?q?=E5=86=8D=E5=B1=95=E7=A4=BA=20asdf=20version?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .devcontainer/Dockerfile.base | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/Dockerfile.base b/.devcontainer/Dockerfile.base index 1e4e2887a..2e2bf4ed2 100755 --- a/.devcontainer/Dockerfile.base +++ b/.devcontainer/Dockerfile.base @@ -45,7 +45,6 @@ RUN asdf plugin add nodejs && \ asdf install nodejs $NODEJS_VERSION && \ asdf global nodejs ${NODEJS_VERSION} -LABEL zealot.containers.asdf="$(${ASDF_DIR}/bin/asdf version)" LABEL zealot.containers.ruby="$RUBY_VERSION" LABEL zealot.containers.nodejs="$NODEJS_VERSION" @@ -57,5 +56,6 @@ RUN gem install bundler foreman && \ bundle config set force_ruby_platform true && \ bundle install +COPY package.json yarn.lock ./ RUN npm install --global yarn && \ yarn install From 9371b19f69ec8a996fd4081c773d62b32e726ba3 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 29 Dec 2022 15:06:25 +0800 Subject: [PATCH 1288/2165] =?UTF-8?q?feat:=20openssl=20=E5=8D=87=E7=BA=A7?= =?UTF-8?q?=E5=88=B0=203.1.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 4 +-- Gemfile.lock | 74 +++++++++++++++++++++++++--------------------------- 2 files changed, 38 insertions(+), 40 deletions(-) diff --git a/Gemfile b/Gemfile index 2524187f8..91a6bce7c 100644 --- a/Gemfile +++ b/Gemfile @@ -64,7 +64,7 @@ gem 'pyu-ruby-sasl', '>= 0.0.3.3', '< 0.1' gem 'rubyntlm', '~> 0.5' ## UDID -gem 'openssl', '~> 2.2.1' +gem 'openssl', '~> 3.1.0' gem 'plist', '~> 3.6.0' ## 系统信息 @@ -115,7 +115,7 @@ group :development do # 调试器 ## VSCode debug: https://marketplace.visualstudio.com/items?itemName=KoichiSasada.vscode-rdbg - gem 'debug', '~> 1.7.1', platforms: %i[ mri mingw x64_mingw ] + gem 'debug', '~> 1.7.1' gem "ruby-lsp", "~> 0.3.7" # 开发辅助 diff --git a/Gemfile.lock b/Gemfile.lock index 1f8846ac1..dd83e8532 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -112,7 +112,7 @@ GEM ssrf_filter (~> 1.0) case_transform (0.2) activesupport - chef-utils (17.10.0) + chef-utils (18.0.185) concurrent-ruby chunky_png (1.4.0) coderay (1.1.3) @@ -138,7 +138,7 @@ GEM dotenv-rails (2.8.1) dotenv (= 2.8.1) railties (>= 3.2) - erubi (1.11.0) + erubi (1.12.0) et-orbi (1.2.7) tzinfo faraday (2.7.2) @@ -152,12 +152,12 @@ GEM formatador (1.1.0) friendly_id (5.5.0) activerecord (>= 4.0.0) - fugit (1.7.1) + fugit (1.8.0) et-orbi (~> 1, >= 1.2.7) raabro (~> 1.4) globalid (1.0.0) activesupport (>= 5.0) - google-protobuf (3.21.7) + google-protobuf (3.21.12) graphiql-rails (1.8.0) railties sprockets-rails @@ -206,15 +206,14 @@ GEM thor (>= 0.16.0) interception (0.5) io-console (0.6.0) - ipaddr (1.2.4) irb (1.6.2) reline (>= 0.3.0) jb (0.8.0) jsbundling-rails (1.1.1) railties (>= 6.0.0) - json (2.6.2) + json (2.6.3) jsonapi-renderer (0.2.2) - jwt (2.4.1) + jwt (2.6.0) kaminari (1.2.2) activesupport (>= 4.1.0) kaminari-actionview (= 1.2.2) @@ -228,8 +227,8 @@ GEM kaminari-core (= 1.2.2) kaminari-core (1.2.2) language_server-protocol (3.17.0.2) - launchy (2.5.0) - addressable (~> 2.7) + launchy (2.5.2) + addressable (~> 2.8) letter_opener (1.8.1) launchy (>= 2.2, < 3) letter_opener_web (2.0.0) @@ -256,9 +255,9 @@ GEM net-smtp marcel (1.0.2) method_source (1.0.0) - mini_magick (4.11.0) + mini_magick (4.12.0) mini_mime (1.1.2) - mini_portile2 (2.8.0) + mini_portile2 (2.8.1) minitest (5.16.3) mixlib-shellout (3.2.7) chef-utils @@ -266,7 +265,7 @@ GEM multi_json (1.15.0) multi_xml (0.6.0) nenv (0.3.0) - net-imap (0.3.2) + net-imap (0.3.4) date net-protocol net-ldap (0.17.1) @@ -283,12 +282,12 @@ GEM notiffany (0.1.3) nenv (~> 0.1) shellany (~> 0.0) - oauth2 (1.4.10) + oauth2 (1.4.11) faraday (>= 0.17.3, < 3.0) jwt (>= 1.0, < 3.0) multi_json (~> 1.3) multi_xml (~> 0.5) - rack (>= 1.2, < 3) + rack (>= 1.2, < 4) omniauth (2.1.0) hashie (>= 3.4.6) rack (>= 2.2.3) @@ -309,23 +308,22 @@ GEM omniauth-rails_csrf_protection (1.0.1) actionpack (>= 4.2) omniauth (~> 2.0) - openssl (2.2.1) - ipaddr + openssl (3.1.0) orm_adapter (0.5.0) parallel (1.22.1) - parser (3.1.2.0) + parser (3.1.3.0) ast (~> 2.4.1) pg (1.4.5) pghero (3.0.1) activerecord (>= 6) plist (3.6.0) - prettier_print (1.1.0) + prettier_print (1.2.0) propshaft (0.6.4) actionpack (>= 7.0.0) activesupport (>= 7.0.0) rack railties (>= 7.0.0) - pry (0.13.1) + pry (0.14.1) coderay (~> 1.1) method_source (~> 1.0) pry-rails (0.3.9) @@ -333,18 +331,18 @@ GEM pry-rescue (1.5.2) interception (>= 0.5) pry (>= 0.12.0) - public_suffix (5.0.0) + public_suffix (5.0.1) puma (6.0.1) nio4r (~> 2.0) pundit (2.3.0) activesupport (>= 3.0.0) pyu-ruby-sasl (0.0.3.3) raabro (1.4.0) - racc (1.6.1) - rack (2.2.4) + racc (1.6.2) + rack (2.2.5) rack-cors (1.1.1) rack (>= 2.0.0) - rack-protection (2.2.2) + rack-protection (3.0.5) rack rack-test (2.0.2) rack (>= 1.3) @@ -367,7 +365,7 @@ GEM nokogiri (>= 1.6) rails-html-sanitizer (1.4.4) loofah (~> 2.19, >= 2.19.1) - rails-i18n (7.0.5) + rails-i18n (7.0.6) i18n (>= 0.7, < 2) railties (>= 6.0.0, < 8) rails-settings-cached (2.8.3) @@ -382,11 +380,11 @@ GEM zeitwerk (~> 2.5) rainbow (3.1.1) rake (13.0.6) - rb-fsevent (0.11.1) + rb-fsevent (0.11.2) rb-inotify (0.10.1) ffi (~> 1.0) redis (4.7.1) - regexp_parser (2.5.0) + regexp_parser (2.6.1) reline (0.3.2) io-console (~> 0.5) request_store (1.5.1) @@ -399,22 +397,22 @@ GEM chunky_png (~> 1.0) rqrcode_core (~> 1.0) rqrcode_core (1.2.0) - rubocop (1.32.0) + rubocop (1.41.1) json (~> 2.3) parallel (~> 1.10) - parser (>= 3.1.0.0) + parser (>= 3.1.2.1) rainbow (>= 2.2.2, < 4.0) regexp_parser (>= 1.8, < 3.0) rexml (>= 3.2.5, < 4.0) - rubocop-ast (>= 1.19.1, < 2.0) + rubocop-ast (>= 1.23.0, < 2.0) ruby-progressbar (~> 1.7) unicode-display_width (>= 1.4.0, < 3.0) - rubocop-ast (1.19.1) + rubocop-ast (1.24.0) parser (>= 3.1.1.0) - rubocop-rails (2.15.2) + rubocop-rails (2.17.4) activesupport (>= 4.2.0) rack (>= 1.1) - rubocop (>= 1.7.0, < 2.0) + rubocop (>= 1.33.0, < 2.0) ruby-lsp (0.3.7) language_server-protocol (~> 3.17.0) sorbet-runtime @@ -459,10 +457,10 @@ GEM railties (>= 3.1) slim (>= 3.0, < 5.0) socksify (1.7.1) - sorbet-runtime (0.5.10588) - sprockets (4.1.1) + sorbet-runtime (0.5.10598) + sprockets (4.2.0) concurrent-ruby (~> 1.0) - rack (> 1, < 3) + rack (>= 2.2.4, < 4) sprockets-rails (3.4.2) actionpack (>= 5.2) activesupport (>= 5.2) @@ -492,7 +490,7 @@ GEM railties (>= 6.0.0) tzinfo (2.0.5) concurrent-ruby (~> 1.0) - unicode-display_width (2.2.0) + unicode-display_width (2.3.0) uuidtools (2.2.0) vmstat (2.3.1) warden (1.2.9) @@ -551,7 +549,7 @@ DEPENDENCIES omniauth-gitlab (~> 3.0.0) omniauth-google-oauth2 (~> 1.0.1) omniauth-rails_csrf_protection (~> 1.0.1) - openssl (~> 2.2.1) + openssl (~> 3.1.0) pg (>= 0.18, < 2.0) pghero (~> 3.0.1) plist (~> 3.6.0) @@ -591,4 +589,4 @@ DEPENDENCIES webp-ffi (~> 0.3.1) BUNDLED WITH - 2.3.26 + 2.4.1 From 1f890e50a9dda5c16db2c22026064443601279d3 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 29 Dec 2022 15:59:12 +0800 Subject: [PATCH 1289/2165] =?UTF-8?q?fix:=20=E8=A7=A3=E5=86=B3=20rubocop?= =?UTF-8?q?=20=E6=9A=B4=E9=9C=B2=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .devcontainer/Dockerfile.base | 13 ++-- .rubocop.yml | 19 ++---- Dockerfile | 10 +-- app/controllers/admin/logs_controller.rb | 4 +- app/controllers/api/apps/upload_controller.rb | 4 +- app/controllers/teardowns_controller.rb | 36 +++++----- app/controllers/udid_controller.rb | 8 +-- app/helpers/apps_helper.rb | 6 +- app/helpers/udids_helper.rb | 3 +- app/models/release.rb | 40 +++++++----- app/models/setting.rb | 6 +- app/services/create_sample_apps_service.rb | 18 ++++- app/views/admin/web_hooks/console.html.slim | 10 +++ lib/tasks/zealot/backup.rake | 65 ++++++++++--------- 14 files changed, 136 insertions(+), 106 deletions(-) create mode 100644 app/views/admin/web_hooks/console.html.slim diff --git a/.devcontainer/Dockerfile.base b/.devcontainer/Dockerfile.base index 2e2bf4ed2..3acac718e 100755 --- a/.devcontainer/Dockerfile.base +++ b/.devcontainer/Dockerfile.base @@ -30,14 +30,18 @@ RUN curl -L https://github.com/DarthSim/overmind/releases/download/v${OVERMIND_V USER vscode -# Install asdf, ruby and nodejs -ARG ASDF_DIR="/home/vscode/.asdf" +# Install asdf, ruby (with YJIT enabled) and nodejs ARG RUBY_VERSION="3.2.0" ARG NODEJS_VERSION="18.12.1" +LABEL zealot.containers.ruby="$RUBY_VERSION" +LABEL zealot.containers.nodejs="$NODEJS_VERSION" + +ARG ASDF_DIR="/home/vscode/.asdf" +ENV RUBY_YJIT_ENABLE=true +ENV PATH "${ASDF_DIR}/bin:${ASDF_DIR}/shims:$PATH" RUN git clone https://github.com/asdf-vm/asdf.git ${ASDF_DIR} && \ echo ". ${ASDF_DIR}/asdf.sh" >> ~/.bashrc && \ sed -i -E "s/^plugins=\(.+\)$/plugins=(debian asdf git git-flow tmux yarn ruby gem bundler rails dotenv)/g" ~/.zshrc -ENV PATH "${ASDF_DIR}/bin:${ASDF_DIR}/shims:$PATH" RUN asdf plugin add ruby && \ asdf install ruby $RUBY_VERSION && \ asdf global ruby ${RUBY_VERSION} @@ -45,9 +49,6 @@ RUN asdf plugin add nodejs && \ asdf install nodejs $NODEJS_VERSION && \ asdf global nodejs ${NODEJS_VERSION} -LABEL zealot.containers.ruby="$RUBY_VERSION" -LABEL zealot.containers.nodejs="$NODEJS_VERSION" - WORKDIR /workspace COPY Gemfile Gemfile.lock ./ diff --git a/.rubocop.yml b/.rubocop.yml index 24d86aa62..8baf5e097 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -2,8 +2,8 @@ require: - rubocop-rails AllCops: - TargetRubyVersion: 2.7 - TargetRailsVersion: 6.1 + TargetRubyVersion: 3.2 + TargetRailsVersion: 7.0 DisabledByDefault: true SuggestExtensions: false Exclude: @@ -21,30 +21,23 @@ Style/FrozenStringLiteralComment: - 'config.ru' - 'Gemfile' - 'Rakefile' - - 'Guardfile' - 'config/**/*' - - 'db/**/*' - - 'lib/tasks/**/*' # Some blocks are longer. Metrics/BlockLength: Max: 250 - IgnoredMethods: + AllowedMethods: - 'namespace' - 'create_table' Exclude: - 'config/**/*.rb' - 'spec/**/*.rb' - - 'lib/tasks/**/*' - - 'lib/backup/**/*' Layout/LineLength: Max: 120 Exclude: - - 'Rakefile' - 'config/**/*.rb' - - 'lib/tasks/**/*' - - 'lib/backup/**/*' + - lib/zealot/backup/manager.rb Metrics/MethodLength: Max: 60 @@ -92,8 +85,6 @@ Style/WordArray: Naming/AccessorMethodName: Enabled: true - Exclude: - - 'app/controllers/**/*' Style/RescueStandardError: Enabled: false @@ -110,4 +101,4 @@ Naming/PredicateName: - 'app/serializers/channel_serializer.rb' Layout/HashAlignment: - Enabled: false \ No newline at end of file + Enabled: false diff --git a/Dockerfile b/Dockerfile index 14a5f7490..484921cef 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM ruby:3.0-alpine as builder +FROM ruby:3.2-alpine as builder ARG BUILD_PACKAGES="build-base libxml2 libxslt git" ARG DEV_PACKAGES="libxml2-dev libxslt-dev yaml-dev postgresql-dev nodejs npm yarn libwebp-dev libpng-dev tiff-dev gcompat" @@ -13,7 +13,8 @@ ARG RUBY_GEMS="bundler" ARG APP_ROOT="/app" ENV BUNDLE_APP_CONFIG="$APP_ROOT/.bundle" \ - RAILS_ENV="production" + RAILS_ENV="production" \ + RUBY_YJIT_ENABLE="true" # System dependencies RUN set -ex && \ @@ -55,7 +56,7 @@ RUN rm -rf docker node_modules tmp/cache spec .browserslistrc babel.config.js \ ################################################################################## -FROM ruby:3.0-alpine +FROM ruby:3.2-alpine ARG BUILD_DATE ARG VCS_REF @@ -88,7 +89,8 @@ ENV TZ="Asia/Shanghai" \ ZEALOT_VCS_REF="$VCS_REF" \ ZEALOT_VERSION="$ZEALOT_VERSION" \ ZEALOT_BUILD_DATE="$BUILD_DATE" \ - RAILS_ENV="production" + RAILS_ENV="production" \ + RUBY_YJIT_ENABLE="true" # System dependencies RUN set -ex && \ diff --git a/app/controllers/admin/logs_controller.rb b/app/controllers/admin/logs_controller.rb index 844e2e419..8a31ef7c1 100644 --- a/app/controllers/admin/logs_controller.rb +++ b/app/controllers/admin/logs_controller.rb @@ -4,7 +4,7 @@ require 'open3' class Admin::LogsController < ApplicationController - before_action :get_log, only: :retrive + before_action :set_log, only: :retrive FILENAME = Rails.env.development? ? 'development.log' : 'zealot.log' MAX_LINE_NUMBER = 500 @@ -20,7 +20,7 @@ def retrive private - def get_log + def set_log @max_line = params[:number] || MAX_LINE_NUMBER @logs = logs(@max_line) end diff --git a/app/controllers/api/apps/upload_controller.rb b/app/controllers/api/apps/upload_controller.rb index e149f628f..c210fafc8 100644 --- a/app/controllers/api/apps/upload_controller.rb +++ b/app/controllers/api/apps/upload_controller.rb @@ -2,7 +2,7 @@ class Api::Apps::UploadController < Api::BaseController before_action :validate_user_token - before_action :get_channel + before_action :set_channel # Upload an App # @@ -121,7 +121,7 @@ def app_parser @app_parser ||= AppInfo.parse(params[:file].path) end - def get_channel + def set_channel @channel = Channel.find_by(key: params[:channel_key]) end end diff --git a/app/controllers/teardowns_controller.rb b/app/controllers/teardowns_controller.rb index 202ab7865..ba13b4dfd 100644 --- a/app/controllers/teardowns_controller.rb +++ b/app/controllers/teardowns_controller.rb @@ -27,28 +27,24 @@ def new def create @title = t('.title') parse_app - rescue AppInfo::NotFoundError, ActiveRecord::RecordNotFound => e - flash[:error] = t('teardowns.messages.errors.not_found_file', message: e.message) - render :new, status: :unprocessable_entity - rescue ActionController::RoutingError => e - flash[:error] = e.message - render :new, status: :unprocessable_entity - rescue AppInfo::UnkownFileTypeError - flash[:error] = t('teardowns.messages.errors.failed_detect_file_type') - render :new, status: :unprocessable_entity - rescue AppInfo::UnkownFileTypeError - flash[:error] = t('teardowns.messages.errors.not_support_file_type') - render :new, status: :unprocessable_entity - rescue NoMethodError => e - logger.error "Teardown error: #{e}" - Sentry.capture_exception e - flash[:error] = t('teardowns.messages.errors.failed_get_metadata') - render :new, status: :unprocessable_entity rescue => e logger.error "Teardown error: #{e}" - logger.error "Throws backtraces are: #{e.backtrace.join("\n")}" - Sentry.capture_exception e - flash[:error] = t('teardowns.messages.errors.unknown_parse', class: e.class, message: e.message) + flash[:error] = case e + when AppInfo::NotFoundError, ActiveRecord::RecordNotFound + t('teardowns.messages.errors.not_found_file', message: e.message) + when ActionController::RoutingError + e.message + when AppInfo::UnkownFileTypeError + t('teardowns.messages.errors.failed_detect_file_type') + when AppInfo::UnkownFileTypeError + t('teardowns.messages.errors.not_support_file_type') + when NoMethodError + t('teardowns.messages.errors.failed_get_metadata') + else + Sentry.capture_exception e + t('teardowns.messages.errors.unknown_parse', class: e.class, message: e.message) + end + render :new, status: :unprocessable_entity end diff --git a/app/controllers/udid_controller.rb b/app/controllers/udid_controller.rb index e0a04abf9..a9ead4de8 100644 --- a/app/controllers/udid_controller.rb +++ b/app/controllers/udid_controller.rb @@ -3,8 +3,8 @@ class UdidController < ApplicationController include Qrcode - before_action :get_device_xml, only: :create - before_action :get_device_metadata, only: %i[show register] + before_action :set_device_xml, only: :create + before_action :set_device_metadata, only: %i[show register] before_action :render_profile, only: :install # GET /udid @@ -52,7 +52,7 @@ def qrcode private - def get_device_xml + def set_device_xml body = request.body.read p7sign = OpenSSL::PKCS7.new(body) @@ -110,7 +110,7 @@ def render_profile # @key ||= OpenSSL::PKey::RSA.new(2048) # end - def get_device_metadata + def set_device_metadata @title = t('udid.show.title') @device = Device.find_by(udid: params[:udid]) @channels = @device&.channels diff --git a/app/helpers/apps_helper.rb b/app/helpers/apps_helper.rb index 050dd2e2b..26d5f456a 100644 --- a/app/helpers/apps_helper.rb +++ b/app/helpers/apps_helper.rb @@ -85,11 +85,13 @@ def changelog_format(changelog, **options) def app_qrcode_tag(release) if Setting.site_appearance != 'auto' - return image_tag channel_release_qrcode_path(@release.channel, @release, size: :large, theme: Setting.site_appearance) + return image_tag channel_release_qrcode_path(@release.channel, @release, + size: :large, theme: Setting.site_appearance) end content_tag(:picture) do - content_tag(:source, media: "(prefers-color-scheme: dark)", srcset: channel_release_qrcode_path(release.channel, release, size: :large, theme: :dark)) do + qrcode_uri = channel_release_qrcode_path(release.channel, release, size: :large, theme: :dark) + content_tag(:source, media: "(prefers-color-scheme: dark)", srcset: qrcode_uri) do image_tag channel_release_qrcode_path(release.channel, release, size: :large) end end diff --git a/app/helpers/udids_helper.rb b/app/helpers/udids_helper.rb index 38a0bf7fa..e87e2b885 100644 --- a/app/helpers/udids_helper.rb +++ b/app/helpers/udids_helper.rb @@ -7,7 +7,8 @@ def install_qrcode_image_tag end content_tag(:picture) do - content_tag(:source, media: "(prefers-color-scheme: dark)", srcset: qrcode_udid_index_path(size: :extra, theme: :dark)) do + qrcode_uri = qrcode_udid_index_path(size: :extra, theme: :dark) + content_tag(:source, media: "(prefers-color-scheme: dark)", srcset: qrcode_uri) do image_tag qrcode_udid_index_path(size: :extra) end end diff --git a/app/models/release.rb b/app/models/release.rb index 0b42499bb..4fb5a2163 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -39,27 +39,12 @@ def self.version_by_channel(channel_slug, release_id) # 上传 app def self.upload_file(params, parser = nil, default_source = 'web') file = params[:file]&.path - if file.blank? - release = Release.new - release.errors.add(:file, :invalid) - - return release - end + return add_not_found_file_error if file.blank? create(params) do |release| rescuing_app_parse_errors do parser ||= AppInfo.parse(file) - - release.source ||= default_source - release.name = parser.name - release.bundle_id = parser.bundle_id - release.release_version = parser.release_version - release.build_version = parser.build_version - release.device_type = parser.device_type - release.release_type ||= parser.release_type if parser.respond_to?(:release_type) - - icon_file = fetch_icon(parser) - release.icon = icon_file if icon_file + build_metadata(release, parser, default_source) # iOS 且是 AdHoc 尝试解析 UDID 列表 if parser.os == AppInfo::Platform::IOS && @@ -76,6 +61,27 @@ def self.upload_file(params, parser = nil, default_source = 'web') end end + def self.add_not_found_file_error + release = Release.new + release.errors.add(:file, :invalid) + release + end + private_methods :add_not_found_file_error + + def self.build_metadata(release, parser, default_source) + release.source ||= default_source + release.name = parser.name + release.bundle_id = parser.bundle_id + release.release_version = parser.release_version + release.build_version = parser.build_version + release.device_type = parser.device_type + release.release_type ||= parser.release_type if parser.respond_to?(:release_type) + + icon_file = fetch_icon(parser) + release.icon = icon_file if icon_file + end + private_methods :build_metadata + def self.fetch_icon(parser) file = case parser.os when AppInfo::Platform::IOS diff --git a/app/models/setting.rb b/app/models/setting.rb index a5eb2c85d..e9fd4e37c 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -21,7 +21,8 @@ class Setting < RailsSettings::Base field :site_locale, default: Rails.configuration.i18n.default_locale.to_s, type: :string, display: true, validates: { presence: true, inclusion: { in: Rails.configuration.i18n.available_locales.map(&:to_s) } } field :site_https, default: site_https, type: :boolean, readonly: true, display: true - field :site_appearance, default: (ENV['ZEALOT_APPEARANCE'] || builtin_appearances.keys[0].to_s), type: :string, display: true, + field :site_appearance, default: (ENV['ZEALOT_APPEARANCE'] || builtin_appearances.keys[0].to_s), + type: :string, display: true, validates: { presence: true, inclusion: { in: builtin_appearances.keys.map(&:to_s) } } field :admin_email, default: (ENV['ZEALOT_ADMIN_EMAIL'] || 'admin@zealot.com'), type: :string, readonly: true field :admin_password, default: (ENV['ZEALOT_ADMIN_PASSWORD'] || 'ze@l0t'), type: :string, readonly: true @@ -109,7 +110,8 @@ class Setting < RailsSettings::Base scope :information do field :version, default: (ENV['ZEALOT_VERSION'] || 'development'), type: :string, readonly: true field :vcs_ref, default: (ENV['ZEALOT_VCS_REF'] || ENV['HEROKU_SLUG_COMMIT']), type: :string, readonly: true - field :build_date, default: (ENV['ZEALOT_BUILD_DATE'] || ENV['HEROKU_RELEASE_CREATED_AT']), type: :string, readonly: true + field :build_date, default: (ENV['ZEALOT_BUILD_DATE'] || ENV['HEROKU_RELEASE_CREATED_AT']), + type: :string, readonly: true end # 统计 diff --git a/app/services/create_sample_apps_service.rb b/app/services/create_sample_apps_service.rb index 4e370b572..44ffca527 100644 --- a/app/services/create_sample_apps_service.rb +++ b/app/services/create_sample_apps_service.rb @@ -62,7 +62,14 @@ def stardford_app(user) end RELEASE_COUNT.times do |i| - generate_release(channel, bundle_id, release_type, changelog, build_version: (i + 1).to_s, device_type: 'iPhone') + generate_release( + channel, + bundle_id, + release_type, + changelog, + build_version: (i + 1).to_s, + device_type: 'iPhone' + ) end end end @@ -82,7 +89,14 @@ def android_channels_app(user) channels.each_with_index do |channel_name, i| channel = scheme.channels.find_or_create_by name: channel_name, device_type: :android - generate_release(channel, app_bundle_id, 'release', changelog, build_version: (i + 1).to_s, device_type: 'Phone') + generate_release( + channel, + app_bundle_id, + 'release', + changelog, + build_version: (i + 1).to_s, + device_type: 'Phone' + ) end end end diff --git a/app/views/admin/web_hooks/console.html.slim b/app/views/admin/web_hooks/console.html.slim new file mode 100644 index 000000000..78da37962 --- /dev/null +++ b/app/views/admin/web_hooks/console.html.slim @@ -0,0 +1,10 @@ +- content_for :title do + = t('.title') + +.row + .col-md-12 + .card + .card-body + = simple_form_for(@web_hook, url: test_admin_web_hooks_path) do |f| + = f.input :body + = f.button :submit \ No newline at end of file diff --git a/lib/tasks/zealot/backup.rake b/lib/tasks/zealot/backup.rake index 9c24fcd69..110e2c122 100644 --- a/lib/tasks/zealot/backup.rake +++ b/lib/tasks/zealot/backup.rake @@ -1,32 +1,37 @@ -# # frozen_string_literal: true - -# # Copyright (c) 2011-present GitLab B.V. - -# # Portions of this software are licensed as follows: - -# # * All content residing under the "doc/" directory of this repository is licensed under "Creative Commons: CC BY-SA 4.0 license". -# # * All content that resides under the "ee/" directory of this repository, if that directory exists, is licensed under the license defined in "ee/LICENSE". -# # * All client-side JavaScript (when served directly or after being compiled, arranged, augmented, or combined), is licensed under the "MIT Expat" license. -# # * All third party components incorporated into the GitLab Software are licensed under the original license provided by the owner of the applicable component. -# # * Content outside of the above mentioned directories or restrictions above is available under the "MIT Expat" license as defined below. - -# # Permission is hereby granted, free of charge, to any person obtaining a copy -# # of this software and associated documentation files (the "Software"), to deal -# # in the Software without restriction, including without limitation the rights -# # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# # copies of the Software, and to permit persons to whom the Software is -# # furnished to do so, subject to the following conditions: - -# # The above copyright notice and this permission notice shall be included in all -# # copies or substantial portions of the Software. - -# # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# # SOFTWARE. +# frozen_string_literal: true + +# Copyright (c) 2011-present GitLab B.V. + +# Portions of this software are licensed as follows: + +# * All content residing under the "doc/" directory of this repository is licensed under +# "Creative Commons: CC BY-SA 4.0 license". +# * All content that resides under the "ee/" directory of this repository, if that directory exists, +# is licensed under the license defined in "ee/LICENSE". +# * All client-side JavaScript (when served directly or after being compiled, arranged, augmented, or combined), +# is licensed under the "MIT Expat" license. +# * All third party components incorporated into the GitLab Software are licensed +# under the original license provided by the owner of the applicable component. +# * Content outside of the above mentioned directories or restrictions above is available +# under the "MIT Expat" license as defined below. + +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: + +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. + +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. # require_relative '../../zealot/backup/helper' @@ -80,4 +85,4 @@ # end # end # end -# end \ No newline at end of file +# end From d4dd9ac918e5f86c157b198c83e9cee1bd922490 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 29 Dec 2022 16:32:53 +0800 Subject: [PATCH 1290/2165] =?UTF-8?q?fix:=20nokogiri=20=E8=BF=98=E6=B2=A1?= =?UTF-8?q?=E6=9C=89=E5=8E=9F=E7=94=9F=E9=A2=84=E7=BC=96=E8=AF=91=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 484921cef..1cf186106 100644 --- a/Dockerfile +++ b/Dockerfile @@ -40,7 +40,9 @@ COPY Gemfile Gemfile.lock ./ RUN bundle config --global frozen 1 && \ bundle config set deployment 'true' && \ bundle config set without 'development test' && \ - bundle config set --local path 'vendor/bundle' && \ + bundle config set path 'vendor/bundle' && \ + bundle lock --add-platform ruby && \ + bundle config set force_ruby_platform true && \ bundle install --jobs `expr $(cat /proc/cpuinfo | grep -c "cpu cores") - 1` --retry 3 COPY . $APP_ROOT @@ -49,7 +51,7 @@ RUN SECRET_TOKEN=precompile_placeholder bin/rails assets:precompile # Remove folders not needed in resulting image RUN rm -rf docker node_modules tmp/cache spec .browserslistrc babel.config.js \ package.json postcss.config.js yarn.lock && \ - cd /app/vendor/bundle/ruby/3.0.0 && \ + cd /app/vendor/bundle/ruby/3.2.0 && \ rm -rf cache/*.gem && \ find gems/ -name "*.c" -delete && \ find gems/ -name "*.o" -delete From db859bbf42860f76b14e3d44c76472dd5d5754f7 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 29 Dec 2022 17:57:21 +0800 Subject: [PATCH 1291/2165] =?UTF-8?q?chore:=20nightly=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E6=AF=8F=E6=97=A5=E6=9E=84=E5=BB=BA=20tag?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .devcontainer/Dockerfile.base | 7 ++++++- .github/workflows/publish_nighty.yml | 6 +++++- README.md | 1 + 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/.devcontainer/Dockerfile.base b/.devcontainer/Dockerfile.base index 3acac718e..e92b9a0f9 100755 --- a/.devcontainer/Dockerfile.base +++ b/.devcontainer/Dockerfile.base @@ -42,7 +42,12 @@ ENV PATH "${ASDF_DIR}/bin:${ASDF_DIR}/shims:$PATH" RUN git clone https://github.com/asdf-vm/asdf.git ${ASDF_DIR} && \ echo ". ${ASDF_DIR}/asdf.sh" >> ~/.bashrc && \ sed -i -E "s/^plugins=\(.+\)$/plugins=(debian asdf git git-flow tmux yarn ruby gem bundler rails dotenv)/g" ~/.zshrc -RUN asdf plugin add ruby && \ +# Enable YJIT *NEED* Rsust 1.58.0+ +RUN asdf plugin add rust && \ + asdf install rust latest && \ + asdf global rust latest +RUN export RUBY_CONFIGURE_OPTS=--enable-yjit && \ + asdf plugin add ruby && \ asdf install ruby $RUBY_VERSION && \ asdf global ruby ${RUBY_VERSION} RUN asdf plugin add nodejs && \ diff --git a/.github/workflows/publish_nighty.yml b/.github/workflows/publish_nighty.yml index 817bf5d3a..f0808885f 100644 --- a/.github/workflows/publish_nighty.yml +++ b/.github/workflows/publish_nighty.yml @@ -33,7 +33,9 @@ jobs: - name: Get build date id: build_date - run: echo "BUILD_DATE=$(date +'%Y-%m-%d %H:%M:%S %z')" >> $GITHUB_OUTPUT + run: | + echo "BUILD_DATE=$(date +'%Y-%m-%d %H:%M:%S %z')" >> $GITHUB_OUTPUT + echo "BUILD_DATE_TAG=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT - name: Login to Docker Hub uses: docker/login-action@v2 @@ -63,7 +65,9 @@ jobs: tags: | ${{ steps.metadata.outputs.tags }} ${{ github.repository }}:nightly + ${{ github.repository }}:nightly-${{ steps.build_date.outputs.BUILD_DATE_TAG }} ghcr.io/${{ github.repository }}:nightly + ghcr.io/${{ github.repository }}:nightly-${{ steps.build_date.outputs.BUILD_DATE_TAG }} platforms: linux/amd64,linux/arm64,linux/arm/v7 build-args: | REPLACE_CHINA_MIRROR=false diff --git a/README.md b/README.md index 7c249cb47..5f1db4647 100644 --- a/README.md +++ b/README.md @@ -51,6 +51,7 @@ - 📱 **测试设备一网打进**: 自动同步 iOS 测试设备信息,允许一键注册新设备到苹果开发者 - 🧑‍💻 **丰富开发者套件**: 提供 REST API、[iOS][zealot-ios-sdk]、[Android][android-android-sdk] SDK 以及 [fastlane][fastlane-plugin-zealot] 自动化构建插件 - 💥 **剖析应用内部的秘密**: 解读 iOS、Android 应用或 iOS 描述文件的元信息 +- 🎳 **多架构部署**: amd86、arm64 和 armv7 任君选择(支持 ARM 的 macOS) - 🚨 **内置多种事件通知**: 数据可自定义 Income WebHook 到任意通知服务 - 🔑 **第三方登录**: 飞书、Gitlab、Google 和 LDAP 一键授权 - 🌑 **黑暗模式**: 黑夜白昼自由切换 From 4d1d4f50097d83ef7977c1e66d173d27467264cd Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 29 Dec 2022 18:18:36 +0800 Subject: [PATCH 1292/2165] =?UTF-8?q?chore:=20=E8=A7=84=E8=8C=83=E5=8C=96?= =?UTF-8?q?=E4=BB=A3=E7=A0=81=E8=A7=84=E8=8C=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .devcontainer/Dockerfile | 2 +- app/assets/stylesheets/app.scss | 6 +++--- app/assets/stylesheets/dashboard.scss | 4 ++-- app/assets/stylesheets/debug_files.scss | 5 +++-- app/assets/stylesheets/layout.scss | 2 +- 5 files changed, 10 insertions(+), 9 deletions(-) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index c33b7908a..52ea0d14d 100755 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -1,5 +1,5 @@ # See .devcontainer/Dockerfile.base and .github/workflows/publish_codespace.yml files. -FROM ghcr.io/tryzealot/codespace +FROM ghcr.io/tryzealot/codespace:latest RUN bundle install && \ yarn install diff --git a/app/assets/stylesheets/app.scss b/app/assets/stylesheets/app.scss index 3aa5f568e..1b08f6583 100644 --- a/app/assets/stylesheets/app.scss +++ b/app/assets/stylesheets/app.scss @@ -109,12 +109,12 @@ $ios-install-issue-color: rgb(245, 39, 90); } .app-identifier { - padding-top:4px; + padding-top: 4px; color: #9f9f9f; font-size: 0.9em; } - .box-tools>.label { + .box-tools > .label { margin-right: 3px; } @@ -152,4 +152,4 @@ $ios-install-issue-color: rgb(245, 39, 90); .app-icon { background-color: #fff; } -} \ No newline at end of file +} diff --git a/app/assets/stylesheets/dashboard.scss b/app/assets/stylesheets/dashboard.scss index cc0e91980..8292136a3 100644 --- a/app/assets/stylesheets/dashboard.scss +++ b/app/assets/stylesheets/dashboard.scss @@ -68,7 +68,7 @@ border-color: #3a3a3a; .timeline-header { - border-color: #444444; + border-color: #444; } .timeline-footer .badge { @@ -78,4 +78,4 @@ } } } -} \ No newline at end of file +} diff --git a/app/assets/stylesheets/debug_files.scss b/app/assets/stylesheets/debug_files.scss index a7d62ff6b..f4a7a63b4 100644 --- a/app/assets/stylesheets/debug_files.scss +++ b/app/assets/stylesheets/debug_files.scss @@ -17,7 +17,8 @@ margin: 0; line-height: 1; - .debug-file-version, .debug-file-device-type { + .debug-file-version, + .debug-file-device-type { padding-right: 5px; } @@ -53,4 +54,4 @@ .debug-file-section-body table { margin-bottom: 0; } -} \ No newline at end of file +} diff --git a/app/assets/stylesheets/layout.scss b/app/assets/stylesheets/layout.scss index 43483d15c..3bf1b905d 100644 --- a/app/assets/stylesheets/layout.scss +++ b/app/assets/stylesheets/layout.scss @@ -97,4 +97,4 @@ i.icon { background-color: #393a3c !important; color: #999 !important; } -} \ No newline at end of file +} From 95752c8a92eab1a32a8883cc7a8cfdb858b563aa Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 29 Dec 2022 18:33:16 +0800 Subject: [PATCH 1293/2165] =?UTF-8?q?chore:=20=E4=BE=9D=E8=B5=96=E6=A3=80?= =?UTF-8?q?=E6=B5=8B=E6=9C=8D=E5=8A=A1=E5=A2=9E=E5=8A=A0=20github=20action?= =?UTF-8?q?s=20=E5=92=8C=20docker?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/dependabot.yml | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index d79c2bb4f..951be17ab 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -5,11 +5,22 @@ version: 2 updates: - - package-ecosystem: "bundler" # See documentation for possible values - directory: "/" # Location of package manifests + - package-ecosystem: "bundler" + directory: "/" schedule: interval: "daily" - - package-ecosystem: "npm" # See documentation for possible values - directory: "/" # Location of package manifests + + - package-ecosystem: "npm" + directory: "/" + schedule: + interval: "daily" + + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "daily" + + - package-ecosystem: "docker" + directory: "/" schedule: interval: "daily" From 6b7731e0ac2ff2150a20db2f6bacb8880de3e72f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Jan 2023 21:01:40 +0000 Subject: [PATCH 1294/2165] chore(deps): bump puma from 6.0.1 to 6.0.2 Bumps [puma](https://github.com/puma/puma) from 6.0.1 to 6.0.2. - [Release notes](https://github.com/puma/puma/releases) - [Changelog](https://github.com/puma/puma/blob/master/History.md) - [Commits](https://github.com/puma/puma/compare/v6.0.1...v6.0.2) --- updated-dependencies: - dependency-name: puma dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 91a6bce7c..b7d41f1e1 100644 --- a/Gemfile +++ b/Gemfile @@ -4,7 +4,7 @@ source 'https://rubygems.org' git_source(:github) { |repo_name| "https://github.com/#{repo_name}" } -gem 'puma', '~> 6.0.1' +gem 'puma', '~> 6.0.2' gem 'rails', '~> 7.0.4' gem 'rails-i18n', '~> 7.0.5' gem 'rake', '~> 13.0.4' diff --git a/Gemfile.lock b/Gemfile.lock index dd83e8532..d3b19ef21 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -332,7 +332,7 @@ GEM interception (>= 0.5) pry (>= 0.12.0) public_suffix (5.0.1) - puma (6.0.1) + puma (6.0.2) nio4r (~> 2.0) pundit (2.3.0) activesupport (>= 3.0.0) @@ -556,7 +556,7 @@ DEPENDENCIES propshaft (= 0.6.4) pry-rails pry-rescue - puma (~> 6.0.1) + puma (~> 6.0.2) pundit (~> 2.3.0) pyu-ruby-sasl (>= 0.0.3.3, < 0.1) rack-cors (~> 1.1.1) From a3f67a5cafd239df9a3c3ade8a67c3e6025a7cae Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 4 Jan 2023 11:24:19 +0800 Subject: [PATCH 1295/2165] fix: enable anonymous sentry --- config/initializers/sentry.rb | 67 +++++++++++++++++------------------ 1 file changed, 33 insertions(+), 34 deletions(-) diff --git a/config/initializers/sentry.rb b/config/initializers/sentry.rb index 49b1fc11d..3d69a1a6d 100644 --- a/config/initializers/sentry.rb +++ b/config/initializers/sentry.rb @@ -1,39 +1,38 @@ -# # frozen_string_literal: true +# frozen_string_literal: true -# # 默认开启 Sentry,如果不想使用设置 ZEALOT_SENTRY_DISABLE=1 -# if ENV['ZEALOT_SENTRY_DISABLE'].blank? || !Rails.env.development? -# Rails.configuration.to_prepare do -# Sentry.init do |config| -# config.dsn = ENV['ZEALOT_SENTRY_DNS'] || 'https://133aefa9f52448a1a7900ba9d02f93e1@sentry.io/1878137' +# 默认开启 Sentry,如果不想使用设置 ZEALOT_SENTRY_DISABLE=1 +if ENV['ZEALOT_SENTRY_DISABLE'].blank? || !Rails.env.development? + Rails.configuration.to_prepare do + Sentry.init do |config| + config.dsn = ENV['ZEALOT_SENTRY_DNS'] || 'https://133aefa9f52448a1a7900ba9d02f93e1@o333914.ingest.sentry.io/1878137' -# config.capture_exception_frame_locals = true -# config.rails.report_rescued_exceptions = true -# config.breadcrumbs_logger = %i[active_support_logger sentry_logger http_logger] + config.capture_exception_frame_locals = true + config.rails.report_rescued_exceptions = true + config.breadcrumbs_logger = %i[active_support_logger sentry_logger http_logger] -# config.send_default_pii = true -# config.environment = Rails.env -# config.enabled_environments = %w[production] + config.send_default_pii = true + config.environment = Rails.env + config.enabled_environments = %w[production development] -# config.excluded_exceptions += [ -# 'ActionController::RoutingError', -# 'ActiveRecord::RecordNotFound', -# 'ActiveRecord::RecordInvalid', -# 'ActiveRecord::NoDatabaseError', -# 'ActiveRecord::PendingMigrationError', -# 'PG::ConnectionBad', -# 'Redis::CannotConnectError', -# 'Interrupt', -# 'SystemExit', -# ] + config.excluded_exceptions += [ + 'ActionController::RoutingError', + 'ActiveRecord::RecordNotFound', + 'ActiveRecord::RecordInvalid', + 'ActiveRecord::NoDatabaseError', + 'ActiveRecord::PendingMigrationError', + 'PG::ConnectionBad', + 'Redis::CannotConnectError', + 'Interrupt', + 'SystemExit', + ] -# if vcs_ref = Setting.vcs_ref.presence -# release = [Setting.version, vcs_ref] -# if docker_tag = ENV['DOCKER_TAG'].presence -# release << ENV['DOCKER_TAG'] -# end - -# config.release = release.join('-') -# end -# end -# end -# end + if vcs_ref = Setting.vcs_ref.presence + release = [Setting.version, vcs_ref] + if docker_tag = ENV['DOCKER_TAG'].presence + release << ENV['DOCKER_TAG'] + end + config.release = release.join('-') + end + end + end +end From 099ed21aa28357cc59dfc79397e8b367289edeb7 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 4 Jan 2023 11:28:33 +0800 Subject: [PATCH 1296/2165] =?UTF-8?q?refactor:=20=E7=A7=BB=E9=99=A4=20guar?= =?UTF-8?q?d=20=E5=BC=80=E5=8F=91=E8=BE=85=E5=8A=A9=E5=B7=A5=E5=85=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 + Gemfile | 9 ------ Gemfile.lock | 40 ------------------------- Guardfile | 85 ---------------------------------------------------- 4 files changed, 1 insertion(+), 134 deletions(-) delete mode 100644 Guardfile diff --git a/.gitignore b/.gitignore index 8275b4b6c..4698c3f22 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,7 @@ build_info/ extensions/ bundler/ storage/ +bin/importmap # minimal Rails specific artifacts /config/master*.key diff --git a/Gemfile b/Gemfile index b7d41f1e1..a4c6e621f 100644 --- a/Gemfile +++ b/Gemfile @@ -118,15 +118,6 @@ group :development do gem 'debug', '~> 1.7.1' gem "ruby-lsp", "~> 0.3.7" - # 开发辅助 - gem 'guard', '~> 2.18.0' - gem 'guard-bundler' - gem 'guard-migrate' - gem 'guard-rails' - gem 'guard-sidekiq' - gem 'terminal-notifier' - gem 'terminal-notifier-guard' - # rails 更友好错误输出 gem 'awesome_print' gem 'better_errors' diff --git a/Gemfile.lock b/Gemfile.lock index d3b19ef21..74d91e436 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -149,7 +149,6 @@ GEM ffi-compiler (1.0.1) ffi (>= 1.0.0) rake - formatador (1.1.0) friendly_id (5.5.0) activerecord (>= 4.0.0) fugit (1.8.0) @@ -162,30 +161,6 @@ GEM railties sprockets-rails graphql (2.0.16) - guard (2.18.0) - formatador (>= 0.2.4) - listen (>= 2.7, < 4.0) - lumberjack (>= 1.0.12, < 2.0) - nenv (~> 0.1) - notiffany (~> 0.0) - pry (>= 0.13.0) - shellany (~> 0.0) - thor (>= 0.18.1) - guard-bundler (3.0.0) - bundler (>= 2.1, < 3) - guard (~> 2.2) - guard-compat (~> 1.1) - guard-compat (1.2.1) - guard-migrate (2.0.0) - activerecord (>= 4.1.0) - guard (~> 2.3) - guard-compat (~> 1.1) - guard-rails (0.8.1) - guard (~> 2.11) - guard-compat (~> 1.0) - guard-sidekiq (0.1.0) - guard (>= 2) - sidekiq hashie (5.0.0) health_check (3.1.0) railties (>= 5.0) @@ -247,7 +222,6 @@ GEM loofah (2.19.1) crass (~> 1.0.2) nokogiri (>= 1.5.9) - lumberjack (1.2.8) mail (2.8.0) mini_mime (>= 0.1.1) net-imap @@ -264,7 +238,6 @@ GEM msgpack (1.6.0) multi_json (1.15.0) multi_xml (0.6.0) - nenv (0.3.0) net-imap (0.3.4) date net-protocol @@ -279,9 +252,6 @@ GEM nokogiri (1.13.10) mini_portile2 (~> 2.8.0) racc (~> 1.4) - notiffany (0.1.3) - nenv (~> 0.1) - shellany (~> 0.0) oauth2 (1.4.11) faraday (>= 0.17.3, < 3.0) jwt (>= 1.0, < 3.0) @@ -434,7 +404,6 @@ GEM sentry-sidekiq (5.7.0) sentry-ruby (~> 5.7.0) sidekiq (>= 3.0) - shellany (0.0.1) sidekiq (6.5.8) connection_pool (>= 2.2.5, < 3) rack (~> 2.0) @@ -473,8 +442,6 @@ GEM sys-filesystem (1.4.3) ffi (~> 1.1) temple (0.8.2) - terminal-notifier (2.0.0) - terminal-notifier-guard (1.7.0) terminal-table (3.0.2) unicode-display_width (>= 1.1.1, < 3) thor (1.2.1) @@ -529,11 +496,6 @@ DEPENDENCIES friendly_id (~> 5.5.0) graphiql-rails graphql (~> 2.0.16) - guard (~> 2.18.0) - guard-bundler - guard-migrate - guard-rails - guard-sidekiq health_check (~> 3.1.0) improved_jenkins_client (~> 1.6.7) jb (~> 0.8.0) @@ -580,8 +542,6 @@ DEPENDENCIES slim-rails (~> 3.5.1) stimulus-rails (~> 1.2.1) sys-filesystem (~> 1.4.3) - terminal-notifier - terminal-notifier-guard tiny_appstore_connect (~> 0.1.7) turbo-rails (~> 1.3) vmstat (~> 2.3.0) diff --git a/Guardfile b/Guardfile deleted file mode 100644 index 38acc33ee..000000000 --- a/Guardfile +++ /dev/null @@ -1,85 +0,0 @@ -# frozen_string_literal: true - -if `uname`.match?(/Darwin/) - notification :terminal_notifier -elsif ENV['TERM'] == 'screen' && !ENV['TMUX'].empty? - notification :tmux, - display_message: true, - timeout: 5, # in seconds - default_message_format: '%s >> %s', - line_separator: ' > ', # since we are single line we need a separator - color_location: 'status-right-bg', # to customize which tmux element will change color - - # Other options: - default_message_color: 'black', - success: 'colour150', - failed: 'colour174', - pending: 'colour179', - - # Notify on all tmux clients - display_on_all_clients: false -end - -ignore_rails = ENV['IGNORE_RAILS'] || 'false' - -environment = ENV.fetch('RAILS_ENV', 'development') - -### Guard::Sidekiq -# available options: -# - :verbose -# - :queue (defaults to "default") can be an array -# - :concurrency (defaults to 1) -# - :timeout -# - :environment (corresponds to RAILS_ENV for the Sidekiq worker) -guard :sidekiq, environment: environment, concurrency: 5 do - watch(%r{^config/sidekiq.yml$}) - watch(%r{^app/jobs/(.+)\.rb$}) -end - -# Guard-Rails supports a lot options with default values: -# daemon: false # runs the server as a daemon. -# debugger: false # enable ruby-debug gem. -# environment: 'development' # changes server environment. -# force_run: false # kills any process that's holding the listen -# port before attempting to (re)start Rails. -# pid_file: 'tmp/pids/[RAILS_ENV].pid' # specify your pid_file. -# host: 'localhost' # server hostname. -# port: 3000 # server port number. -# root: '/spec/dummy' # Rails' root path. -# server: thin # webserver engine. -# start_on_start: true # will start the server when starting Guard. -# timeout: 30 # waits untill restarting the Rails server, in seconds. -# zeus_plan: server # custom plan in zeus, only works with `zeus: true`. -# zeus: false # enables zeus gem. -# CLI: 'rails server' # customizes runner command. Omits all options except `pid_file`! -guard :rails, host: '0.0.0.0', environment: environment do - ignore(%r{^config/(locales|webpack)/.*}) - ignore(%r{^lib/tasks/.*}) - - watch('.env') - watch('Gemfile.lock') - watch(%r{^(config|lib)/.*}) -end if ignore_rails == 'false' - -# guard 'yarn_build', command: [ -# 'yarn build --watch', -# 'yarn build:css --watch', -# ] do -# watch('package.json') -# end - -guard :bundler do - require 'guard/bundler' - require 'guard/bundler/verify' - helper = Guard::Bundler::Verify.new - - files = ['Gemfile'] - files += Dir['*.gemspec'] if files.any? { |f| helper.uses_gemspec?(f) } - - # Assume files are symlinked from somewhere - files.each { |file| watch(helper.real_path(file)) } -end - -guard :migrate do - watch(%r{^db/migrate/(\d+).+\.rb}) -end From d2cfaa0c2fe94940e8681155c5f648003a621f18 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 4 Jan 2023 18:26:34 +0800 Subject: [PATCH 1297/2165] =?UTF-8?q?fix(docker):=20caddy=20=E8=BF=90?= =?UTF-8?q?=E8=A1=8C=E4=BD=BF=E7=94=A8=20--config?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker/rootfs/etc/services.d/caddy/run | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/rootfs/etc/services.d/caddy/run b/docker/rootfs/etc/services.d/caddy/run index e49a3eb36..72a1c1075 100644 --- a/docker/rootfs/etc/services.d/caddy/run +++ b/docker/rootfs/etc/services.d/caddy/run @@ -1,4 +1,4 @@ #!/usr/bin/with-contenv sh echo "Starting Caddy" -/usr/sbin/caddy run -config /etc/Caddyfile \ No newline at end of file +/usr/sbin/caddy run --config /etc/Caddyfile | tee /app/log/caddy.log From d15e60b62e652c3959d74e7c05cd0199a5a68837 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 5 Jan 2023 21:01:10 +0000 Subject: [PATCH 1298/2165] chore(deps): bump pghero from 3.0.1 to 3.1.0 Bumps [pghero](https://github.com/ankane/pghero) from 3.0.1 to 3.1.0. - [Release notes](https://github.com/ankane/pghero/releases) - [Changelog](https://github.com/ankane/pghero/blob/master/CHANGELOG.md) - [Commits](https://github.com/ankane/pghero/compare/v3.0.1...v3.1.0) --- updated-dependencies: - dependency-name: pghero dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index a4c6e621f..cb3cafe0f 100644 --- a/Gemfile +++ b/Gemfile @@ -70,7 +70,7 @@ gem 'plist', '~> 3.6.0' ## 系统信息 gem 'sys-filesystem', '~> 1.4.3' gem 'vmstat', '~> 2.3.0' -gem 'pghero', '~> 3.0.1' +gem 'pghero', '~> 3.1.0' ## 异常报错上报 gem 'sentry-ruby' diff --git a/Gemfile.lock b/Gemfile.lock index 74d91e436..16015f874 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -232,7 +232,7 @@ GEM mini_magick (4.12.0) mini_mime (1.1.2) mini_portile2 (2.8.1) - minitest (5.16.3) + minitest (5.17.0) mixlib-shellout (3.2.7) chef-utils msgpack (1.6.0) @@ -284,7 +284,7 @@ GEM parser (3.1.3.0) ast (~> 2.4.1) pg (1.4.5) - pghero (3.0.1) + pghero (3.1.0) activerecord (>= 6) plist (3.6.0) prettier_print (1.2.0) @@ -513,7 +513,7 @@ DEPENDENCIES omniauth-rails_csrf_protection (~> 1.0.1) openssl (~> 3.1.0) pg (>= 0.18, < 2.0) - pghero (~> 3.0.1) + pghero (~> 3.1.0) plist (~> 3.6.0) propshaft (= 0.6.4) pry-rails From 1bdf8d0e4b9ee25c4c57edf42dd83ec646151bf0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Jan 2023 21:00:55 +0000 Subject: [PATCH 1299/2165] chore(deps-dev): bump listen from 3.7.1 to 3.8.0 Bumps [listen](https://github.com/guard/listen) from 3.7.1 to 3.8.0. - [Release notes](https://github.com/guard/listen/releases) - [Commits](https://github.com/guard/listen/compare/v3.7.1...v3.8.0) --- updated-dependencies: - dependency-name: listen dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index cb3cafe0f..6a72ace73 100644 --- a/Gemfile +++ b/Gemfile @@ -109,7 +109,7 @@ gem 'bootsnap', '>= 1.4.7', require: false group :development do # 调试控制台 - gem 'listen', '>= 3.0.5', '< 3.8' + gem 'listen', '>= 3.0.5', '< 3.9' gem 'web-console', '>= 3.3.0' gem 'graphiql-rails' diff --git a/Gemfile.lock b/Gemfile.lock index 16015f874..84cdbecd4 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -211,7 +211,7 @@ GEM letter_opener (~> 1.7) railties (>= 5.2) rexml - listen (3.7.1) + listen (3.8.0) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) lograge (0.12.0) @@ -503,7 +503,7 @@ DEPENDENCIES kaminari (~> 1.2.2) letter_opener (~> 1.8) letter_opener_web (~> 2.0) - listen (>= 3.0.5, < 3.8) + listen (>= 3.0.5, < 3.9) lograge (~> 0.12.0) net-ldap (~> 0.17) omniauth (~> 2.1.0) From f1157f1407c4754f16d1cf5b95e7a2bc6bbdc7d0 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 10 Jan 2023 11:59:00 +0800 Subject: [PATCH 1300/2165] =?UTF-8?q?feat:=20=E6=9A=B4=E9=9C=B2=E5=8F=AF?= =?UTF-8?q?=E6=8D=95=E6=8D=89=E6=9C=8D=E5=8A=A1=E5=86=85=2050x=20=E9=94=99?= =?UTF-8?q?=E8=AF=AF=EF=BC=8C=E5=8F=8D=E4=BB=A3=E6=9C=8D=E5=8A=A1=2050x=20?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E5=B1=95=E7=A4=BA=E9=80=9A=E7=94=A8=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/concerns/exception_handler.rb | 4 +- docker/rootfs/etc/Caddyfile | 48 +++++++++---------- 2 files changed, 25 insertions(+), 27 deletions(-) diff --git a/app/controllers/concerns/exception_handler.rb b/app/controllers/concerns/exception_handler.rb index 17e247fca..1cb479f46 100644 --- a/app/controllers/concerns/exception_handler.rb +++ b/app/controllers/concerns/exception_handler.rb @@ -9,7 +9,7 @@ module ExceptionHandler rescue_from ActionController::UnknownFormat, AppInfo::Error, with: :not_acceptable rescue_from ActionController::ParameterMissing, CarrierWave::InvalidParameter, JSON::ParserError, AppInfo::UnkownFileTypeError, with: :bad_request - rescue_from Faraday::Error, OpenSSL::SSL::SSLError, + rescue_from Faraday::Error, OpenSSL::SSL::SSLError, StandardError, TinyAppstoreConnect::ConnectAPIError, with: :internal_server_error rescue_from Pundit::NotAuthorizedError, with: :forbidden end @@ -68,4 +68,4 @@ def respond_with_error(code, exception) format.json { render json: { code: code, error: Rack::Utils::HTTP_STATUS_CODES[code] }, status: code } end end -end \ No newline at end of file +end diff --git a/docker/rootfs/etc/Caddyfile b/docker/rootfs/etc/Caddyfile index 2f9531d8b..6bf6aa476 100644 --- a/docker/rootfs/etc/Caddyfile +++ b/docker/rootfs/etc/Caddyfile @@ -1,40 +1,38 @@ :80 -root * /app/public +root * /{$ZEALOT_PATH:app}/public encode zstd gzip file_server log { - output file /app/log/caddy.log { - roll_size 50mb - roll_keep 5 - roll_keep_for 720h - } + output file /{$ZEALOT_PATH:app}/log/caddy.log { + roll_size 50mb + roll_keep 5 + roll_keep_for 720h + } +} + +# handle reverse proxy crash errors +handle_errors { + rewrite * /500.html + file_server } @zealot { - path * + path * - # static files - not file + # static files + not file } # Docoument: https://caddyserver.com/docs/caddyfile/directives/reverse_proxy reverse_proxy @zealot { - to localhost:3000 + to localhost:3000 - header_up X-Forwarded-Proto https + header_up X-Forwarded-Proto https - @accel header X-Accel-Redirect * - handle_response @accel { - root * /app/public - rewrite {http.reverse_proxy.header.X-Accel-Redirect} - file_server - } - - @error status 500 502 503 - handle_response @error { - root * /app/public - rewrite * /500.html - file_server - } -} \ No newline at end of file + @accel header X-Accel-Redirect * + handle_response @accel { + rewrite * {http.reverse_proxy.header.X-Accel-Redirect} + file_server + } +} From 707a4e8f995bd4f9eabb17fc10bb3e58fb73b452 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 10 Jan 2023 13:58:08 +0800 Subject: [PATCH 1301/2165] =?UTF-8?q?refactor:=20=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E5=90=AF=E5=8A=A8=E6=A0=BC=E5=BC=8F=E5=8C=96=20caddy=20?= =?UTF-8?q?=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .editorconfig | 6 +++++- docker/rootfs/etc/Caddyfile | 9 ++++++++- docker/rootfs/etc/cont-init.d/21-fix-caddy-format | 4 ++++ docker/rootfs/etc/logrotate.d/caddy | 5 +++++ docker/rootfs/etc/services.d/caddy/run | 2 +- 5 files changed, 23 insertions(+), 3 deletions(-) create mode 100644 docker/rootfs/etc/cont-init.d/21-fix-caddy-format create mode 100644 docker/rootfs/etc/logrotate.d/caddy diff --git a/.editorconfig b/.editorconfig index e3207ea27..9dc9daa66 100644 --- a/.editorconfig +++ b/.editorconfig @@ -2,4 +2,8 @@ root = true [*] indent_style = space -indent_size = 2 \ No newline at end of file +indent_size = 2 + +[Caddyfile] +indent_style = tab +indent_size = 2 diff --git a/docker/rootfs/etc/Caddyfile b/docker/rootfs/etc/Caddyfile index 6bf6aa476..96cda0f62 100644 --- a/docker/rootfs/etc/Caddyfile +++ b/docker/rootfs/etc/Caddyfile @@ -1,4 +1,7 @@ -:80 +{ + admin off + auto_https off +} root * /{$ZEALOT_PATH:app}/public encode zstd gzip @@ -28,6 +31,10 @@ handle_errors { reverse_proxy @zealot { to localhost:3000 + health_uri /health + health_interval 1s + health_timeout 30s + header_up X-Forwarded-Proto https @accel header X-Accel-Redirect * diff --git a/docker/rootfs/etc/cont-init.d/21-fix-caddy-format b/docker/rootfs/etc/cont-init.d/21-fix-caddy-format new file mode 100644 index 000000000..629b055fd --- /dev/null +++ b/docker/rootfs/etc/cont-init.d/21-fix-caddy-format @@ -0,0 +1,4 @@ +#!/usr/bin/with-contenv sh + +cd /etc/ && caddy fmt --overwrite +exit 0 diff --git a/docker/rootfs/etc/logrotate.d/caddy b/docker/rootfs/etc/logrotate.d/caddy new file mode 100644 index 000000000..6247ae2be --- /dev/null +++ b/docker/rootfs/etc/logrotate.d/caddy @@ -0,0 +1,5 @@ +/app/log/caddy.log { + missingok + notifempty + monthly +} diff --git a/docker/rootfs/etc/services.d/caddy/run b/docker/rootfs/etc/services.d/caddy/run index 72a1c1075..e071ddc07 100644 --- a/docker/rootfs/etc/services.d/caddy/run +++ b/docker/rootfs/etc/services.d/caddy/run @@ -1,4 +1,4 @@ #!/usr/bin/with-contenv sh echo "Starting Caddy" -/usr/sbin/caddy run --config /etc/Caddyfile | tee /app/log/caddy.log +/usr/sbin/caddy run --config /etc/Caddyfile From 4bccf67a76d4aeebe7b9f7d4b6c189abb7be3798 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 10 Jan 2023 14:11:27 +0800 Subject: [PATCH 1302/2165] =?UTF-8?q?chore:=20=E5=BC=80=E5=8F=91=E5=AE=B9?= =?UTF-8?q?=E5=99=A8=E9=BB=98=E8=AE=A4=E5=AE=89=E8=A3=85=20caddy=20server?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .devcontainer/Dockerfile.base | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.devcontainer/Dockerfile.base b/.devcontainer/Dockerfile.base index fd6e7d265..ff92bbcff 100644 --- a/.devcontainer/Dockerfile.base +++ b/.devcontainer/Dockerfile.base @@ -21,6 +21,15 @@ RUN apt-get update && \ vim \ git-flow +# Install caddy +ENV ZEALOT_PATH=/workspace +RUN apt-get install -y --no-install-recommends \ + debian-keyring debian-archive-keyring apt-transport-https && \ + curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg && \ + curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | tee /etc/apt/sources.list.d/caddy-stable.list && \ + apt-get update && \ + apt-get install caddy + # Install overmind ARG OVERMIND_VERSION="2.3.0" RUN curl -L https://github.com/DarthSim/overmind/releases/download/v${OVERMIND_VERSION}/overmind-v${OVERMIND_VERSION}-linux-amd64.gz > overmind.gz \ From 13de306502bafdf2c17094925ceef526ed5b7a22 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 10 Jan 2023 14:48:12 +0800 Subject: [PATCH 1303/2165] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=2050x=20?= =?UTF-8?q?=E9=94=99=E8=AF=AF=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker/rootfs/etc/Caddyfile | 5 +- public/errors/500.html | 252 ++++++++++++++++++++++++++++++++++++ public/errors/502.html | 252 ++++++++++++++++++++++++++++++++++++ public/errors/503.html | 252 ++++++++++++++++++++++++++++++++++++ public/errors/504.html | 252 ++++++++++++++++++++++++++++++++++++ public/errors/505.html | 252 ++++++++++++++++++++++++++++++++++++ 6 files changed, 1262 insertions(+), 3 deletions(-) create mode 100644 public/errors/500.html create mode 100644 public/errors/502.html create mode 100644 public/errors/503.html create mode 100644 public/errors/504.html create mode 100644 public/errors/505.html diff --git a/docker/rootfs/etc/Caddyfile b/docker/rootfs/etc/Caddyfile index 96cda0f62..b580154c1 100644 --- a/docker/rootfs/etc/Caddyfile +++ b/docker/rootfs/etc/Caddyfile @@ -1,8 +1,8 @@ { admin off - auto_https off } +:80 root * /{$ZEALOT_PATH:app}/public encode zstd gzip file_server @@ -16,7 +16,7 @@ log { # handle reverse proxy crash errors handle_errors { - rewrite * /500.html + rewrite * /errors/{err.status_code}.html file_server } @@ -27,7 +27,6 @@ handle_errors { not file } -# Docoument: https://caddyserver.com/docs/caddyfile/directives/reverse_proxy reverse_proxy @zealot { to localhost:3000 diff --git a/public/errors/500.html b/public/errors/500.html new file mode 100644 index 000000000..6e38597e8 --- /dev/null +++ b/public/errors/500.html @@ -0,0 +1,252 @@ + + + + + + + + + 500 | Internal Server Error + + + + + + +
      +

      500

      +

      Internal Server Error

      +
      +
      +
      + + + + + + +
      Your Client
      +

      Unknown

      +
      + +
      + + + + + + + + + + +
      + +
      + + + + + + +
      Network
      +

      Working

      +
      + +
      + + + +
      + +
      + + + + + + +
      Web Server
      +

      Unknown

      +
      +
      +
      +
      +

      What happened?

      +

      The server met an unexpected condition

      +
      +
      +

      What can I do?

      +

      Please try again in a few minutes

      +
      +
      + +
      + +
      + + + diff --git a/public/errors/502.html b/public/errors/502.html new file mode 100644 index 000000000..182863359 --- /dev/null +++ b/public/errors/502.html @@ -0,0 +1,252 @@ + + + + + + + + + 502 | Bad Gateway + + + + + + +
      +

      502

      +

      Bad Gateway

      +
      +
      +
      + + + + + + +
      Your Client
      +

      Unknown

      +
      + +
      + + + + + + + + + + +
      + +
      + + + + + + +
      Network
      +

      Working

      +
      + +
      + + + +
      + +
      + + + + + + +
      Web Server
      +

      Unknown

      +
      +
      +
      +
      +

      What happened?

      +

      The server received an invalid response from the upstream server

      +
      +
      +

      What can I do?

      +

      Please try again in a few minutes

      +
      +
      + +
      + +
      + + + diff --git a/public/errors/503.html b/public/errors/503.html new file mode 100644 index 000000000..0a165de5d --- /dev/null +++ b/public/errors/503.html @@ -0,0 +1,252 @@ + + + + + + + + + 503 | Service Unavailable + + + + + + +
      +

      503

      +

      Service Unavailable

      +
      +
      +
      + + + + + + +
      Your Client
      +

      Unknown

      +
      + +
      + + + + + + + + + + +
      + +
      + + + + + + +
      Network
      +

      Working

      +
      + +
      + + + +
      + +
      + + + + + + +
      Web Server
      +

      Unknown

      +
      +
      +
      +
      +

      What happened?

      +

      The server is temporarily overloading or down

      +
      +
      +

      What can I do?

      +

      Please try again in a few minutes

      +
      +
      + +
      + +
      + + + diff --git a/public/errors/504.html b/public/errors/504.html new file mode 100644 index 000000000..3852197a1 --- /dev/null +++ b/public/errors/504.html @@ -0,0 +1,252 @@ + + + + + + + + + 504 | Gateway Timeout + + + + + + +
      +

      504

      +

      Gateway Timeout

      +
      +
      +
      + + + + + + +
      Your Client
      +

      Unknown

      +
      + +
      + + + + + + + + + + +
      + +
      + + + + + + +
      Network
      +

      Working

      +
      + +
      + + + +
      + +
      + + + + + + +
      Web Server
      +

      Unknown

      +
      +
      +
      +
      +

      What happened?

      +

      The gateway has timed out

      +
      +
      +

      What can I do?

      +

      Please try again in a few minutes

      +
      +
      + +
      + +
      + + + diff --git a/public/errors/505.html b/public/errors/505.html new file mode 100644 index 000000000..daf2aac7f --- /dev/null +++ b/public/errors/505.html @@ -0,0 +1,252 @@ + + + + + + + + + 505 | HTTP Version Not Supported + + + + + + +
      +

      505

      +

      HTTP Version Not Supported

      +
      +
      +
      + + + + + + +
      Your Client
      +

      Unknown

      +
      + +
      + + + + + + + + + + +
      + +
      + + + + + + +
      Network
      +

      Working

      +
      + +
      + + + +
      + +
      + + + + + + +
      Web Server
      +

      Unknown

      +
      +
      +
      +
      +

      What happened?

      +

      The server does not support the "http protocol" version

      +
      +
      +

      What can I do?

      +

      Please try again in a few minutes

      +
      +
      + +
      + +
      + + + From aaa32364afade368be7650a613672bfd66334642 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 10 Jan 2023 15:53:04 +0800 Subject: [PATCH 1304/2165] =?UTF-8?q?refactor(devcontainer):=20=E7=A6=81?= =?UTF-8?q?=E7=94=A8=20zsh=20=E7=9A=84=20dotenv=20=E6=8F=92=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .devcontainer/Dockerfile.base | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/Dockerfile.base b/.devcontainer/Dockerfile.base index ff92bbcff..578583256 100644 --- a/.devcontainer/Dockerfile.base +++ b/.devcontainer/Dockerfile.base @@ -50,7 +50,7 @@ ENV RUBY_YJIT_ENABLE=true ENV PATH "${ASDF_DIR}/bin:${ASDF_DIR}/shims:$PATH" RUN git clone https://github.com/asdf-vm/asdf.git ${ASDF_DIR} && \ echo ". ${ASDF_DIR}/asdf.sh" >> ~/.bashrc && \ - sed -i -E "s/^plugins=\(.+\)$/plugins=(debian asdf git git-flow tmux yarn ruby gem bundler rails dotenv)/g" ~/.zshrc + sed -i -E "s/^plugins=\(.+\)$/plugins=(debian asdf git git-flow tmux yarn ruby gem bundler rails)/g" ~/.zshrc # Enable YJIT *NEED* Rsust 1.58.0+ RUN asdf plugin add rust && \ asdf install rust latest && \ From 86d7c90986056383a782eb62fc4685f0efca19c1 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 10 Jan 2023 16:12:31 +0800 Subject: [PATCH 1305/2165] =?UTF-8?q?fix(docker):=20caddy=20=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E4=B8=8D=E8=BE=93=E5=87=BA=E5=88=B0=20stdout/stderror?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker/rootfs/etc/services.d/caddy/run | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/rootfs/etc/services.d/caddy/run b/docker/rootfs/etc/services.d/caddy/run index e071ddc07..6aad9dccb 100644 --- a/docker/rootfs/etc/services.d/caddy/run +++ b/docker/rootfs/etc/services.d/caddy/run @@ -1,4 +1,4 @@ #!/usr/bin/with-contenv sh echo "Starting Caddy" -/usr/sbin/caddy run --config /etc/Caddyfile +/usr/sbin/caddy run --config /etc/Caddyfile > /dev/null 2>&1 From 29b7b166ce409d22d44a0e0a6a5c49bab7c0411b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 16 Jan 2023 21:01:32 +0000 Subject: [PATCH 1306/2165] chore(deps-dev): bump ruby-lsp from 0.3.7 to 0.3.8 Bumps [ruby-lsp](https://github.com/Shopify/ruby-lsp) from 0.3.7 to 0.3.8. - [Release notes](https://github.com/Shopify/ruby-lsp/releases) - [Commits](https://github.com/Shopify/ruby-lsp/compare/v0.3.7...v0.3.8) --- updated-dependencies: - dependency-name: ruby-lsp dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Gemfile b/Gemfile index 6a72ace73..88437d9c6 100644 --- a/Gemfile +++ b/Gemfile @@ -116,7 +116,7 @@ group :development do # 调试器 ## VSCode debug: https://marketplace.visualstudio.com/items?itemName=KoichiSasada.vscode-rdbg gem 'debug', '~> 1.7.1' - gem "ruby-lsp", "~> 0.3.7" + gem "ruby-lsp", "~> 0.3.8" # rails 更友好错误输出 gem 'awesome_print' diff --git a/Gemfile.lock b/Gemfile.lock index 84cdbecd4..35d538002 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -383,10 +383,10 @@ GEM activesupport (>= 4.2.0) rack (>= 1.1) rubocop (>= 1.33.0, < 2.0) - ruby-lsp (0.3.7) + ruby-lsp (0.3.8) language_server-protocol (~> 3.17.0) sorbet-runtime - syntax_tree (>= 4.0.2, < 5.0.0) + syntax_tree (>= 5.0.0, < 6) ruby-macho (3.0.0) ruby-progressbar (1.11.0) ruby-vips (2.1.4) @@ -426,7 +426,7 @@ GEM railties (>= 3.1) slim (>= 3.0, < 5.0) socksify (1.7.1) - sorbet-runtime (0.5.10598) + sorbet-runtime (0.5.10626) sprockets (4.2.0) concurrent-ruby (~> 1.0) rack (>= 2.2.4, < 4) @@ -437,8 +437,8 @@ GEM ssrf_filter (1.1.1) stimulus-rails (1.2.1) railties (>= 6.0.0) - syntax_tree (4.3.0) - prettier_print (>= 1.0.2) + syntax_tree (5.2.0) + prettier_print (>= 1.2.0) sys-filesystem (1.4.3) ffi (~> 1.1) temple (0.8.2) @@ -530,7 +530,7 @@ DEPENDENCIES rqrcode rubocop (>= 0.70) rubocop-rails - ruby-lsp (~> 0.3.7) + ruby-lsp (~> 0.3.8) rubyntlm (~> 0.5) sentry-rails sentry-ruby From 113fc47268996128a4cf622123b08979d1f23544 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 17 Jan 2023 11:48:46 +0800 Subject: [PATCH 1307/2165] =?UTF-8?q?release:=20=E5=8F=91=E5=B8=83=204.6.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 1cf186106..84b5c0e2e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -64,7 +64,7 @@ ARG BUILD_DATE ARG VCS_REF ARG TAG -ARG ZEALOT_VERSION="4.5.3" +ARG ZEALOT_VERSION="4.6.0" ARG REPLACE_CHINA_MIRROR="true" ARG ORIGINAL_REPO_URL="dl-cdn.alpinelinux.org" ARG MIRROR_REPO_URL="mirrors.ustc.edu.cn" diff --git a/package.json b/package.json index b68448f54..c42f9cf87 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "zealot", - "version": "4.5.3", + "version": "4.6.0", "private": true, "license": "MIT", "dependencies": { From df2014ae788724391729cd3b0635d1ad94bd04c7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 19 Jan 2023 01:50:49 +0000 Subject: [PATCH 1308/2165] chore(deps): bump rack from 2.2.5 to 2.2.6.2 Bumps [rack](https://github.com/rack/rack) from 2.2.5 to 2.2.6.2. - [Release notes](https://github.com/rack/rack/releases) - [Changelog](https://github.com/rack/rack/blob/main/CHANGELOG.md) - [Commits](https://github.com/rack/rack/compare/v2.2.5...v2.2.6.2) --- updated-dependencies: - dependency-name: rack dependency-type: indirect ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 84cdbecd4..aefc6a30f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -309,7 +309,7 @@ GEM pyu-ruby-sasl (0.0.3.3) raabro (1.4.0) racc (1.6.2) - rack (2.2.5) + rack (2.2.6.2) rack-cors (1.1.1) rack (>= 2.0.0) rack-protection (3.0.5) From f2dff1ff5a0a5c3b55686a4e6ad368102fb58dc5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 20 Jan 2023 21:01:14 +0000 Subject: [PATCH 1309/2165] chore(deps): bump faraday from 2.7.2 to 2.7.4 Bumps [faraday](https://github.com/lostisland/faraday) from 2.7.2 to 2.7.4. - [Release notes](https://github.com/lostisland/faraday/releases) - [Changelog](https://github.com/lostisland/faraday/blob/main/CHANGELOG.md) - [Commits](https://github.com/lostisland/faraday/compare/v2.7.2...v2.7.4) --- updated-dependencies: - dependency-name: faraday dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 6a72ace73..3f68f57d8 100644 --- a/Gemfile +++ b/Gemfile @@ -42,7 +42,7 @@ gem 'webp-ffi', '~> 0.3.1' # Helper ## HTTP 请求 -gem 'faraday', '~> 2.7.2' +gem 'faraday', '~> 2.7.4' ## 用户认证 gem 'pundit', '~> 2.3.0' diff --git a/Gemfile.lock b/Gemfile.lock index 84cdbecd4..c5d991093 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -141,7 +141,7 @@ GEM erubi (1.12.0) et-orbi (1.2.7) tzinfo - faraday (2.7.2) + faraday (2.7.4) faraday-net_http (>= 2.0, < 3.1) ruby2_keywords (>= 0.0.4) faraday-net_http (3.0.2) @@ -492,7 +492,7 @@ DEPENDENCIES devise (~> 4.8.1) devise-i18n (~> 1.10.2) dotenv-rails - faraday (~> 2.7.2) + faraday (~> 2.7.4) friendly_id (~> 5.5.0) graphiql-rails graphql (~> 2.0.16) From 5a166b5edbc0b672b895eca91c227b8469884721 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 23 Jan 2023 21:01:29 +0000 Subject: [PATCH 1310/2165] chore(deps): bump ua-parser-js from 1.0.32 to 1.0.33 Bumps [ua-parser-js](https://github.com/faisalman/ua-parser-js) from 1.0.32 to 1.0.33. - [Release notes](https://github.com/faisalman/ua-parser-js/releases) - [Changelog](https://github.com/faisalman/ua-parser-js/blob/master/changelog.md) - [Commits](https://github.com/faisalman/ua-parser-js/compare/1.0.32...1.0.33) --- updated-dependencies: - dependency-name: ua-parser-js dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index c42f9cf87..0e306e687 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "compare-versions": "^5.0.3", "esbuild": "^0.15.18", "sass": "^1.57.1", - "ua-parser-js": "^1.0.32" + "ua-parser-js": "^1.0.33" }, "scripts": { "build": "esbuild app/javascript/*.* --bundle --sourcemap --outdir=app/assets/builds --public-path=assets", diff --git a/yarn.lock b/yarn.lock index 6fab2133e..1c984f9f4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1558,10 +1558,10 @@ tslib@^2.4.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== -ua-parser-js@^1.0.32: - version "1.0.32" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-1.0.32.tgz#786bf17df97de159d5b1c9d5e8e9e89806f8a030" - integrity sha512-dXVsz3M4j+5tTiovFVyVqssXBu5HM47//YSOeZ9fQkdDKkfzv2v3PP1jmH6FUyPW+yCSn7aBVK1fGGKNhowdDA== +ua-parser-js@^1.0.33: + version "1.0.33" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-1.0.33.tgz#f21f01233e90e7ed0f059ceab46eb190ff17f8f4" + integrity sha512-RqshF7TPTE0XLYAqmjlu5cLLuGdKrNu9O1KLA/qp39QtbZwuzwv1dT46DZSopoUMsYgXpB3Cv8a03FI8b74oFQ== unbox-primitive@^1.0.2: version "1.0.2" From 11bb9df0798bafdaa949980442df4a5e575678b2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 30 Jan 2023 21:37:16 +0000 Subject: [PATCH 1311/2165] chore(deps): bump docker/build-push-action from 3 to 4 Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 3 to 4. - [Release notes](https://github.com/docker/build-push-action/releases) - [Commits](https://github.com/docker/build-push-action/compare/v3...v4) --- updated-dependencies: - dependency-name: docker/build-push-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/publish_codespace.yml | 2 +- .github/workflows/publish_nighty.yml | 2 +- .github/workflows/publish_release.yml | 2 +- .github/workflows/test_docker_build.yml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/publish_codespace.yml b/.github/workflows/publish_codespace.yml index bdf82d3d3..8728e81cd 100644 --- a/.github/workflows/publish_codespace.yml +++ b/.github/workflows/publish_codespace.yml @@ -41,7 +41,7 @@ jobs: password: ${{ secrets.GITHUB_TOKEN }} - name: Build and Push - uses: docker/build-push-action@v3 + uses: docker/build-push-action@v4 with: context: . file: .devcontainer/Dockerfile.base diff --git a/.github/workflows/publish_nighty.yml b/.github/workflows/publish_nighty.yml index f0808885f..6db31fa27 100644 --- a/.github/workflows/publish_nighty.yml +++ b/.github/workflows/publish_nighty.yml @@ -57,7 +57,7 @@ jobs: images: ghcr.io/${{ github.repository }} - name: Build and Push - uses: docker/build-push-action@v3 + uses: docker/build-push-action@v4 with: context: . push: true diff --git a/.github/workflows/publish_release.yml b/.github/workflows/publish_release.yml index d22b4a00d..de924c338 100644 --- a/.github/workflows/publish_release.yml +++ b/.github/workflows/publish_release.yml @@ -49,7 +49,7 @@ jobs: images: ghcr.io/${{ github.repository }} - name: Build and Push - uses: docker/build-push-action@v3 + uses: docker/build-push-action@v4 with: context: . push: true diff --git a/.github/workflows/test_docker_build.yml b/.github/workflows/test_docker_build.yml index d25bf9063..e778b9d30 100644 --- a/.github/workflows/test_docker_build.yml +++ b/.github/workflows/test_docker_build.yml @@ -36,7 +36,7 @@ jobs: images: ghcr.io/${{ github.repository }} - name: Test build - uses: docker/build-push-action@v3 + uses: docker/build-push-action@v4 with: context: . push: false From 1a31c1e4b3d9f2f76f4afda84f490e3b0af630bc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 31 Jan 2023 21:00:47 +0000 Subject: [PATCH 1312/2165] chore(deps): bump @hotwired/turbo-rails from 7.2.4 to 7.2.5 Bumps [@hotwired/turbo-rails](https://github.com/hotwired/turbo-rails) from 7.2.4 to 7.2.5. - [Release notes](https://github.com/hotwired/turbo-rails/releases) - [Commits](https://github.com/hotwired/turbo-rails/commits) --- updated-dependencies: - dependency-name: "@hotwired/turbo-rails" dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index c42f9cf87..678414506 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "license": "MIT", "dependencies": { "@hotwired/stimulus": "^3.2.1", - "@hotwired/turbo-rails": "^7.2.4", + "@hotwired/turbo-rails": "^7.2.5", "@rails/actioncable": "^7.0.4", "admin-lte": "3.1.0", "clipboard": "^2.0.11", diff --git a/yarn.lock b/yarn.lock index 6fab2133e..2d82001f2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -22,18 +22,18 @@ resolved "https://registry.yarnpkg.com/@hotwired/stimulus/-/stimulus-3.2.1.tgz#e3de23623b0c52c247aba4cd5d530d257008676b" integrity sha512-HGlzDcf9vv/EQrMJ5ZG6VWNs8Z/xMN+1o2OhV1gKiSG6CqZt5MCBB1gRg5ILiN3U0jEAxuDTNPRfBcnZBDmupQ== -"@hotwired/turbo-rails@^7.2.4": - version "7.2.4" - resolved "https://registry.yarnpkg.com/@hotwired/turbo-rails/-/turbo-rails-7.2.4.tgz#d155533e79c4ebdac23e8fe12697d821d5c06307" - integrity sha512-givDUQqaccd19BvErz1Cf2j6MXF74m0G6I75oqFJGeXAa7vwkz9nDplefVNrALCR9Xi9j9gy32xmSI6wD0tZyA== +"@hotwired/turbo-rails@^7.2.5": + version "7.2.5" + resolved "https://registry.yarnpkg.com/@hotwired/turbo-rails/-/turbo-rails-7.2.5.tgz#74fc3395a29a76df2bb8835aa88c86885cffde4c" + integrity sha512-F8ztmARxd/XBdevRa//HoJGZ7u+Unb0J7cQUeUP+pBvt9Ta2TJJ7a2TORAOhjC8Zgxx+LKwm/1UUHqN3ojjiGw== dependencies: - "@hotwired/turbo" "^7.2.4" + "@hotwired/turbo" "^7.2.5" "@rails/actioncable" "^7.0" -"@hotwired/turbo@^7.2.4": - version "7.2.4" - resolved "https://registry.yarnpkg.com/@hotwired/turbo/-/turbo-7.2.4.tgz#0d35541be32cfae3b4f78c6ab9138f5b21f28a21" - integrity sha512-c3xlOroHp/cCZHDOuLp6uzQYEbvXBUVaal0puXoGJ9M8L/KHwZ3hQozD4dVeSN9msHWLxxtmPT1TlCN7gFhj4w== +"@hotwired/turbo@^7.2.5": + version "7.2.5" + resolved "https://registry.yarnpkg.com/@hotwired/turbo/-/turbo-7.2.5.tgz#2d9d6bde8a9549c3aea8970445ade16ffd56719a" + integrity sha512-o5PByC/mWkmTe4pWnKrixhPECJUxIT/NHtxKqjq7n9Fj6JlNza1pgxdTCJVIq+PI0j95U+7mA3N4n4A/QYZtZQ== "@lgaitan/pace-progress@^1.0.7": version "1.0.7" From d4f558ef08628438c836dcfeec1156b86700c01a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Feb 2023 02:16:00 +0000 Subject: [PATCH 1313/2165] chore(deps): bump rails from 7.0.4 to 7.0.4.2 Bumps [rails](https://github.com/rails/rails) from 7.0.4 to 7.0.4.2. - [Release notes](https://github.com/rails/rails/releases) - [Commits](https://github.com/rails/rails/compare/v7.0.4...v7.0.4.2) --- updated-dependencies: - dependency-name: rails dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 118 +++++++++++++++++++++++++-------------------------- 1 file changed, 59 insertions(+), 59 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 4b985cd99..a1e09e4de 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -3,47 +3,47 @@ GEM specs: CFPropertyList (3.0.5) rexml - actioncable (7.0.4) - actionpack (= 7.0.4) - activesupport (= 7.0.4) + actioncable (7.0.4.2) + actionpack (= 7.0.4.2) + activesupport (= 7.0.4.2) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (7.0.4) - actionpack (= 7.0.4) - activejob (= 7.0.4) - activerecord (= 7.0.4) - activestorage (= 7.0.4) - activesupport (= 7.0.4) + actionmailbox (7.0.4.2) + actionpack (= 7.0.4.2) + activejob (= 7.0.4.2) + activerecord (= 7.0.4.2) + activestorage (= 7.0.4.2) + activesupport (= 7.0.4.2) mail (>= 2.7.1) net-imap net-pop net-smtp - actionmailer (7.0.4) - actionpack (= 7.0.4) - actionview (= 7.0.4) - activejob (= 7.0.4) - activesupport (= 7.0.4) + actionmailer (7.0.4.2) + actionpack (= 7.0.4.2) + actionview (= 7.0.4.2) + activejob (= 7.0.4.2) + activesupport (= 7.0.4.2) mail (~> 2.5, >= 2.5.4) net-imap net-pop net-smtp rails-dom-testing (~> 2.0) - actionpack (7.0.4) - actionview (= 7.0.4) - activesupport (= 7.0.4) + actionpack (7.0.4.2) + actionview (= 7.0.4.2) + activesupport (= 7.0.4.2) rack (~> 2.0, >= 2.2.0) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (7.0.4) - actionpack (= 7.0.4) - activerecord (= 7.0.4) - activestorage (= 7.0.4) - activesupport (= 7.0.4) + actiontext (7.0.4.2) + actionpack (= 7.0.4.2) + activerecord (= 7.0.4.2) + activestorage (= 7.0.4.2) + activesupport (= 7.0.4.2) globalid (>= 0.6.0) nokogiri (>= 1.8.5) - actionview (7.0.4) - activesupport (= 7.0.4) + actionview (7.0.4.2) + activesupport (= 7.0.4.2) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) @@ -53,25 +53,25 @@ GEM activemodel (>= 4.1, < 7.1) case_transform (>= 0.2) jsonapi-renderer (>= 0.1.1.beta1, < 0.3) - activejob (7.0.4) - activesupport (= 7.0.4) + activejob (7.0.4.2) + activesupport (= 7.0.4.2) globalid (>= 0.3.6) activejob-status (0.4.0) activejob (>= 4.2) activesupport (>= 4.2) - activemodel (7.0.4) - activesupport (= 7.0.4) - activerecord (7.0.4) - activemodel (= 7.0.4) - activesupport (= 7.0.4) - activestorage (7.0.4) - actionpack (= 7.0.4) - activejob (= 7.0.4) - activerecord (= 7.0.4) - activesupport (= 7.0.4) + activemodel (7.0.4.2) + activesupport (= 7.0.4.2) + activerecord (7.0.4.2) + activemodel (= 7.0.4.2) + activesupport (= 7.0.4.2) + activestorage (7.0.4.2) + actionpack (= 7.0.4.2) + activejob (= 7.0.4.2) + activerecord (= 7.0.4.2) + activesupport (= 7.0.4.2) marcel (~> 1.0) mini_mime (>= 1.1.0) - activesupport (7.0.4) + activesupport (7.0.4.2) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) @@ -116,7 +116,7 @@ GEM concurrent-ruby chunky_png (1.4.0) coderay (1.1.3) - concurrent-ruby (1.1.10) + concurrent-ruby (1.2.0) connection_pool (2.3.0) crass (1.0.6) cssbundling-rails (1.1.2) @@ -154,7 +154,7 @@ GEM fugit (1.8.0) et-orbi (~> 1, >= 1.2.7) raabro (~> 1.4) - globalid (1.0.0) + globalid (1.1.0) activesupport (>= 5.0) google-protobuf (3.21.12) graphiql-rails (1.8.0) @@ -222,7 +222,7 @@ GEM loofah (2.19.1) crass (~> 1.0.2) nokogiri (>= 1.5.9) - mail (2.8.0) + mail (2.8.0.1) mini_mime (>= 0.1.1) net-imap net-pop @@ -249,7 +249,7 @@ GEM net-smtp (0.3.3) net-protocol nio4r (2.5.8) - nokogiri (1.13.10) + nokogiri (1.14.1) mini_portile2 (~> 2.8.0) racc (~> 1.4) oauth2 (1.4.11) @@ -316,24 +316,24 @@ GEM rack rack-test (2.0.2) rack (>= 1.3) - rails (7.0.4) - actioncable (= 7.0.4) - actionmailbox (= 7.0.4) - actionmailer (= 7.0.4) - actionpack (= 7.0.4) - actiontext (= 7.0.4) - actionview (= 7.0.4) - activejob (= 7.0.4) - activemodel (= 7.0.4) - activerecord (= 7.0.4) - activestorage (= 7.0.4) - activesupport (= 7.0.4) + rails (7.0.4.2) + actioncable (= 7.0.4.2) + actionmailbox (= 7.0.4.2) + actionmailer (= 7.0.4.2) + actionpack (= 7.0.4.2) + actiontext (= 7.0.4.2) + actionview (= 7.0.4.2) + activejob (= 7.0.4.2) + activemodel (= 7.0.4.2) + activerecord (= 7.0.4.2) + activestorage (= 7.0.4.2) + activesupport (= 7.0.4.2) bundler (>= 1.15.0) - railties (= 7.0.4) + railties (= 7.0.4.2) rails-dom-testing (2.0.3) activesupport (>= 4.2.0) nokogiri (>= 1.6) - rails-html-sanitizer (1.4.4) + rails-html-sanitizer (1.5.0) loofah (~> 2.19, >= 2.19.1) rails-i18n (7.0.6) i18n (>= 0.7, < 2) @@ -341,9 +341,9 @@ GEM rails-settings-cached (2.8.3) activerecord (>= 5.0.0) railties (>= 5.0.0) - railties (7.0.4) - actionpack (= 7.0.4) - activesupport (= 7.0.4) + railties (7.0.4.2) + actionpack (= 7.0.4.2) + activesupport (= 7.0.4.2) method_source rake (>= 12.2) thor (~> 1.0) @@ -455,7 +455,7 @@ GEM actionpack (>= 6.0.0) activejob (>= 6.0.0) railties (>= 6.0.0) - tzinfo (2.0.5) + tzinfo (2.0.6) concurrent-ruby (~> 1.0) unicode-display_width (2.3.0) uuidtools (2.2.0) From eb55c941dcd47b9beb8fdb39983714c8ba85062f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Feb 2023 21:01:01 +0000 Subject: [PATCH 1314/2165] chore(deps): bump activejob-status from 0.4.0 to 0.4.1 Bumps [activejob-status](https://github.com/inkstak/activejob-status) from 0.4.0 to 0.4.1. - [Release notes](https://github.com/inkstak/activejob-status/releases) - [Commits](https://github.com/inkstak/activejob-status/compare/v0.4.0...v0.4.1) --- updated-dependencies: - dependency-name: activejob-status dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index a1e09e4de..a7760a800 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -56,7 +56,7 @@ GEM activejob (7.0.4.2) activesupport (= 7.0.4.2) globalid (>= 0.3.6) - activejob-status (0.4.0) + activejob-status (0.4.1) activejob (>= 4.2) activesupport (>= 4.2) activemodel (7.0.4.2) From 9cca42b76978d5aa81d6e61e00148a04f020a8df Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Feb 2023 21:01:25 +0000 Subject: [PATCH 1315/2165] chore(deps): bump turbo-rails from 1.3.2 to 1.3.3 Bumps [turbo-rails](https://github.com/hotwired/turbo-rails) from 1.3.2 to 1.3.3. - [Release notes](https://github.com/hotwired/turbo-rails/releases) - [Commits](https://github.com/hotwired/turbo-rails/compare/v1.3.2...v1.3.3) --- updated-dependencies: - dependency-name: turbo-rails dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index a1e09e4de..8577e67c9 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -451,7 +451,7 @@ GEM faraday (>= 1.10.0, < 3.0) jwt (>= 1.4, < 3) openssl (>= 2.2.1, < 4) - turbo-rails (1.3.2) + turbo-rails (1.3.3) actionpack (>= 6.0.0) activejob (>= 6.0.0) railties (>= 6.0.0) From d537e02c46ba2a122202634cb23f1fe0baf1815e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Feb 2023 21:01:51 +0000 Subject: [PATCH 1316/2165] chore(deps): bump simple_form from 5.1.0 to 5.2.0 Bumps [simple_form](https://github.com/heartcombo/simple_form) from 5.1.0 to 5.2.0. - [Release notes](https://github.com/heartcombo/simple_form/releases) - [Changelog](https://github.com/heartcombo/simple_form/blob/main/CHANGELOG.md) - [Commits](https://github.com/heartcombo/simple_form/compare/v5.1.0...v5.2.0) --- updated-dependencies: - dependency-name: simple_form dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 4e34c42aa..4b6c30da2 100644 --- a/Gemfile +++ b/Gemfile @@ -29,7 +29,7 @@ gem 'jb', '~> 0.8.0' gem 'slim-rails', '~> 3.5.1' ## 表单生成 -gem 'simple_form', '~> 5.1' +gem 'simple_form', '~> 5.2' # Model ## 生成友好 id diff --git a/Gemfile.lock b/Gemfile.lock index a1e09e4de..e04e4dc59 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -415,7 +415,7 @@ GEM rufus-scheduler (~> 3.2) sidekiq (>= 4, < 7) tilt (>= 1.4.0) - simple_form (5.1.0) + simple_form (5.2.0) actionpack (>= 5.2) activemodel (>= 5.2) slim (4.1.0) @@ -538,7 +538,7 @@ DEPENDENCIES sidekiq (~> 6.5.8) sidekiq-failures (~> 1.0.4) sidekiq-scheduler (~> 4.0.3) - simple_form (~> 5.1) + simple_form (~> 5.2) slim-rails (~> 3.5.1) stimulus-rails (~> 1.2.1) sys-filesystem (~> 1.4.3) From 2d49c1f206fe1098dfb31cfe4b19aa8ba87e525d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Feb 2023 21:04:23 +0000 Subject: [PATCH 1317/2165] chore(deps): bump omniauth from 2.1.0 to 2.1.1 Bumps [omniauth](https://github.com/omniauth/omniauth) from 2.1.0 to 2.1.1. - [Release notes](https://github.com/omniauth/omniauth/releases) - [Commits](https://github.com/omniauth/omniauth/compare/v2.1.0...v2.1.1) --- updated-dependencies: - dependency-name: omniauth dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 4e34c42aa..e3b8e22ac 100644 --- a/Gemfile +++ b/Gemfile @@ -49,7 +49,7 @@ gem 'pundit', '~> 2.3.0' gem 'devise', '~> 4.8.1' gem 'devise-i18n', '~> 1.10.2' -gem 'omniauth', '~> 2.1.0' +gem 'omniauth', '~> 2.1.1' gem 'omniauth-rails_csrf_protection', '~> 1.0.1' gem 'omniauth-google-oauth2', '~> 1.0.1' gem 'omniauth-gitlab', '~> 3.0.0' diff --git a/Gemfile.lock b/Gemfile.lock index a1e09e4de..ea2db1341 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -258,7 +258,7 @@ GEM multi_json (~> 1.3) multi_xml (~> 0.5) rack (>= 1.2, < 4) - omniauth (2.1.0) + omniauth (2.1.1) hashie (>= 3.4.6) rack (>= 2.2.3) rack-protection @@ -506,7 +506,7 @@ DEPENDENCIES listen (>= 3.0.5, < 3.9) lograge (~> 0.12.0) net-ldap (~> 0.17) - omniauth (~> 2.1.0) + omniauth (~> 2.1.1) omniauth-feishu (~> 0.1.8) omniauth-gitlab (~> 3.0.0) omniauth-google-oauth2 (~> 1.0.1) From fd719cfeed79590cd9962717bf49cf6445b0bfe2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 2 Feb 2023 02:33:41 +0000 Subject: [PATCH 1318/2165] chore(deps): bump sidekiq-scheduler from 4.0.3 to 5.0.1 Bumps [sidekiq-scheduler](https://github.com/moove-it/sidekiq-scheduler) from 4.0.3 to 5.0.1. - [Release notes](https://github.com/moove-it/sidekiq-scheduler/releases) - [Changelog](https://github.com/sidekiq-scheduler/sidekiq-scheduler/blob/master/CHANGELOG.md) - [Commits](https://github.com/moove-it/sidekiq-scheduler/compare/v4.0.3...v5.0.1) --- updated-dependencies: - dependency-name: sidekiq-scheduler dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 9 ++++----- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/Gemfile b/Gemfile index 601e4c1ae..2f4c18ec6 100644 --- a/Gemfile +++ b/Gemfile @@ -86,7 +86,7 @@ gem 'rqrcode' # 异步队列 gem 'activejob-status' gem 'sidekiq', '~> 6.5.8' -gem 'sidekiq-scheduler', '~> 4.0.3' +gem 'sidekiq-scheduler', '~> 5.0.1' gem 'sidekiq-failures', '~> 1.0.4' # Assets diff --git a/Gemfile.lock b/Gemfile.lock index d0c40c7eb..208ca881f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -151,7 +151,7 @@ GEM rake friendly_id (5.5.0) activerecord (>= 4.0.0) - fugit (1.8.0) + fugit (1.8.1) et-orbi (~> 1, >= 1.2.7) raabro (~> 1.4) globalid (1.1.0) @@ -410,10 +410,9 @@ GEM redis (>= 4.5.0, < 5) sidekiq-failures (1.0.4) sidekiq (>= 4.0.0) - sidekiq-scheduler (4.0.3) - redis (>= 4.2.0) + sidekiq-scheduler (5.0.1) rufus-scheduler (~> 3.2) - sidekiq (>= 4, < 7) + sidekiq (>= 4, < 8) tilt (>= 1.4.0) simple_form (5.2.0) actionpack (>= 5.2) @@ -537,7 +536,7 @@ DEPENDENCIES sentry-sidekiq sidekiq (~> 6.5.8) sidekiq-failures (~> 1.0.4) - sidekiq-scheduler (~> 4.0.3) + sidekiq-scheduler (~> 5.0.1) simple_form (~> 5.2) slim-rails (~> 3.5.1) stimulus-rails (~> 1.2.1) From da9e4c2e17e81d89812f5e8b7a9b20427771d4b1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 2 Feb 2023 21:02:25 +0000 Subject: [PATCH 1319/2165] chore(deps): bump bootsnap from 1.15.0 to 1.16.0 Bumps [bootsnap](https://github.com/Shopify/bootsnap) from 1.15.0 to 1.16.0. - [Release notes](https://github.com/Shopify/bootsnap/releases) - [Changelog](https://github.com/Shopify/bootsnap/blob/main/CHANGELOG.md) - [Commits](https://github.com/Shopify/bootsnap/compare/v1.15.0...v1.16.0) --- updated-dependencies: - dependency-name: bootsnap dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index d0c40c7eb..9807f3796 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -99,7 +99,7 @@ GEM bindex (0.8.1) binding_of_caller (1.0.0) debug_inspector (>= 0.0.1) - bootsnap (1.15.0) + bootsnap (1.16.0) msgpack (~> 1.2) builder (3.2.4) carrierwave (2.2.3) From f0185c220a035f8f52ff02c8a46c89e9d3b38101 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 Feb 2023 21:01:04 +0000 Subject: [PATCH 1320/2165] chore(deps): bump sentry-ruby from 5.7.0 to 5.8.0 Bumps [sentry-ruby](https://github.com/getsentry/sentry-ruby) from 5.7.0 to 5.8.0. - [Release notes](https://github.com/getsentry/sentry-ruby/releases) - [Changelog](https://github.com/getsentry/sentry-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-ruby/compare/5.7.0...5.8.0) --- updated-dependencies: - dependency-name: sentry-ruby dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 9807f3796..e63cce2ba 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -396,13 +396,13 @@ GEM rubyzip (2.3.2) rufus-scheduler (3.8.2) fugit (~> 1.1, >= 1.1.6) - sentry-rails (5.7.0) + sentry-rails (5.8.0) railties (>= 5.0) - sentry-ruby (~> 5.7.0) - sentry-ruby (5.7.0) + sentry-ruby (~> 5.8.0) + sentry-ruby (5.8.0) concurrent-ruby (~> 1.0, >= 1.0.2) - sentry-sidekiq (5.7.0) - sentry-ruby (~> 5.7.0) + sentry-sidekiq (5.8.0) + sentry-ruby (~> 5.8.0) sidekiq (>= 3.0) sidekiq (6.5.8) connection_pool (>= 2.2.5, < 3) From 58f032190524a56bacf71d36b328e27dc54115ac Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 Feb 2023 21:01:47 +0000 Subject: [PATCH 1321/2165] chore(deps): bump sentry-rails from 5.7.0 to 5.8.0 Bumps [sentry-rails](https://github.com/getsentry/sentry-ruby) from 5.7.0 to 5.8.0. - [Release notes](https://github.com/getsentry/sentry-ruby/releases) - [Changelog](https://github.com/getsentry/sentry-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-ruby/compare/5.7.0...5.8.0) --- updated-dependencies: - dependency-name: sentry-rails dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 9807f3796..e63cce2ba 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -396,13 +396,13 @@ GEM rubyzip (2.3.2) rufus-scheduler (3.8.2) fugit (~> 1.1, >= 1.1.6) - sentry-rails (5.7.0) + sentry-rails (5.8.0) railties (>= 5.0) - sentry-ruby (~> 5.7.0) - sentry-ruby (5.7.0) + sentry-ruby (~> 5.8.0) + sentry-ruby (5.8.0) concurrent-ruby (~> 1.0, >= 1.0.2) - sentry-sidekiq (5.7.0) - sentry-ruby (~> 5.7.0) + sentry-sidekiq (5.8.0) + sentry-ruby (~> 5.8.0) sidekiq (>= 3.0) sidekiq (6.5.8) connection_pool (>= 2.2.5, < 3) From b6df62bc5d151e64bec70f74f018335207ac5bf3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 Feb 2023 21:03:47 +0000 Subject: [PATCH 1322/2165] chore(deps): bump sentry-sidekiq from 5.7.0 to 5.8.0 Bumps [sentry-sidekiq](https://github.com/getsentry/sentry-ruby) from 5.7.0 to 5.8.0. - [Release notes](https://github.com/getsentry/sentry-ruby/releases) - [Changelog](https://github.com/getsentry/sentry-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/getsentry/sentry-ruby/compare/5.7.0...5.8.0) --- updated-dependencies: - dependency-name: sentry-sidekiq dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 9807f3796..e63cce2ba 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -396,13 +396,13 @@ GEM rubyzip (2.3.2) rufus-scheduler (3.8.2) fugit (~> 1.1, >= 1.1.6) - sentry-rails (5.7.0) + sentry-rails (5.8.0) railties (>= 5.0) - sentry-ruby (~> 5.7.0) - sentry-ruby (5.7.0) + sentry-ruby (~> 5.8.0) + sentry-ruby (5.8.0) concurrent-ruby (~> 1.0, >= 1.0.2) - sentry-sidekiq (5.7.0) - sentry-ruby (~> 5.7.0) + sentry-sidekiq (5.8.0) + sentry-ruby (~> 5.8.0) sidekiq (>= 3.0) sidekiq (6.5.8) connection_pool (>= 2.2.5, < 3) From f26c1b656fb4a6a4026daef4a56db4a7394f1e23 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 13 Feb 2023 21:58:17 +0000 Subject: [PATCH 1323/2165] chore(deps): bump puma from 6.0.2 to 6.1.0 Bumps [puma](https://github.com/puma/puma) from 6.0.2 to 6.1.0. - [Release notes](https://github.com/puma/puma/releases) - [Changelog](https://github.com/puma/puma/blob/master/History.md) - [Commits](https://github.com/puma/puma/compare/v6.0.2...v6.1.0) --- updated-dependencies: - dependency-name: puma dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 601e4c1ae..1d071e8c7 100644 --- a/Gemfile +++ b/Gemfile @@ -4,7 +4,7 @@ source 'https://rubygems.org' git_source(:github) { |repo_name| "https://github.com/#{repo_name}" } -gem 'puma', '~> 6.0.2' +gem 'puma', '~> 6.1.0' gem 'rails', '~> 7.0.4' gem 'rails-i18n', '~> 7.0.5' gem 'rake', '~> 13.0.4' diff --git a/Gemfile.lock b/Gemfile.lock index e63cce2ba..d9aa0cd36 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -302,7 +302,7 @@ GEM interception (>= 0.5) pry (>= 0.12.0) public_suffix (5.0.1) - puma (6.0.2) + puma (6.1.0) nio4r (~> 2.0) pundit (2.3.0) activesupport (>= 3.0.0) @@ -518,7 +518,7 @@ DEPENDENCIES propshaft (= 0.6.4) pry-rails pry-rescue - puma (~> 6.0.2) + puma (~> 6.1.0) pundit (~> 2.3.0) pyu-ruby-sasl (>= 0.0.3.3, < 0.1) rack-cors (~> 1.1.1) From 0fc40056f363b75c0bd6064d351e0f3964b09702 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 Feb 2023 21:56:52 +0000 Subject: [PATCH 1324/2165] chore(deps): bump sass from 1.57.1 to 1.58.3 Bumps [sass](https://github.com/sass/dart-sass) from 1.57.1 to 1.58.3. - [Release notes](https://github.com/sass/dart-sass/releases) - [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md) - [Commits](https://github.com/sass/dart-sass/compare/1.57.1...1.58.3) --- updated-dependencies: - dependency-name: sass dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 354e4ac07..d474c3d88 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "clipboard": "^2.0.11", "compare-versions": "^5.0.3", "esbuild": "^0.15.18", - "sass": "^1.57.1", + "sass": "^1.58.3", "ua-parser-js": "^1.0.33" }, "scripts": { diff --git a/yarn.lock b/yarn.lock index abbfca794..02027b00b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1428,10 +1428,10 @@ safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sass@^1.57.1: - version "1.57.1" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.57.1.tgz#dfafd46eb3ab94817145e8825208ecf7281119b5" - integrity sha512-O2+LwLS79op7GI0xZ8fqzF7X2m/m8WFfI02dHOdsK5R2ECeS5F62zrwg/relM1rjSLy7Vd/DiMNIvPrQGsA0jw== +sass@^1.58.3: + version "1.58.3" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.58.3.tgz#2348cc052061ba4f00243a208b09c40e031f270d" + integrity sha512-Q7RaEtYf6BflYrQ+buPudKR26/lH+10EmO9bBqbmPh/KeLqv8bjpTNqxe71ocONqXq+jYiCbpPUmQMS+JJPk4A== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" From ec9380226b09cb67e86911e39e27fe5bd7fadde8 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 21 Feb 2023 17:04:26 +0800 Subject: [PATCH 1325/2165] =?UTF-8?q?fix:=20=E5=BA=94=E7=94=A8/=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B/=E6=B8=A0=E9=81=93=E9=BB=98=E8=AE=A4=E6=8C=89?= =?UTF-8?q?=E7=85=A7=E5=88=9B=E5=BB=BA=E6=97=B6=E9=97=B4=E6=AD=A3=E5=BA=8F?= =?UTF-8?q?=E6=8E=92=E5=88=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/app.rb | 2 ++ app/models/channel.rb | 2 ++ app/models/scheme.rb | 2 ++ 3 files changed, 6 insertions(+) diff --git a/app/models/app.rb b/app/models/app.rb index c4ca4975b..207c16915 100644 --- a/app/models/app.rb +++ b/app/models/app.rb @@ -1,6 +1,8 @@ # frozen_string_literal: true class App < ApplicationRecord + default_scope { order(id: :asc) } + has_and_belongs_to_many :users has_many :schemes, dependent: :destroy has_many :debug_files, dependent: :destroy diff --git a/app/models/channel.rb b/app/models/channel.rb index e95a1940d..7117424ca 100755 --- a/app/models/channel.rb +++ b/app/models/channel.rb @@ -1,6 +1,8 @@ # frozen_string_literal: true class Channel < ApplicationRecord + default_scope { order(id: :asc) } + include FriendlyId include VersionCompare diff --git a/app/models/scheme.rb b/app/models/scheme.rb index 9c0167d3c..cb2b8eeeb 100644 --- a/app/models/scheme.rb +++ b/app/models/scheme.rb @@ -1,6 +1,8 @@ # frozen_string_literal: true class Scheme < ApplicationRecord + default_scope { order(id: :asc) } + belongs_to :app has_many :channels, dependent: :destroy accepts_nested_attributes_for :channels From 621217e6be016aabae0a9f57c3f6010ec75c9742 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 21 Feb 2023 17:05:42 +0800 Subject: [PATCH 1326/2165] =?UTF-8?q?feat:=20=E5=BA=94=E7=94=A8=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E6=96=B0=E5=A2=9E=E6=98=AF=E5=90=A6=E5=BC=80=E5=90=AF?= =?UTF-8?q?=E6=96=B0=E4=B8=8A=E4=BC=A0=E7=89=88=E6=9C=AC=E6=8F=90=E7=A4=BA?= =?UTF-8?q?=E7=AA=97=E9=80=89=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/schemes_controller.rb | 2 +- app/views/channels/_form.html.slim | 2 +- app/views/releases/body/_new_release_callout.html.slim | 2 +- app/views/releases/show.html.slim | 4 ++-- app/views/schemes/_form.html.slim | 3 ++- config/locales/simple_form/simple_form.en.yml | 2 ++ config/locales/simple_form/simple_form.zh-CN.yml | 2 ++ db/migrate/20230221084553_add_new_build_callout_to_scheme.rb | 5 +++++ db/schema.rb | 5 +++-- 9 files changed, 19 insertions(+), 8 deletions(-) create mode 100644 db/migrate/20230221084553_add_new_build_callout_to_scheme.rb diff --git a/app/controllers/schemes_controller.rb b/app/controllers/schemes_controller.rb index 2be71cf36..87d4d2673 100644 --- a/app/controllers/schemes_controller.rb +++ b/app/controllers/schemes_controller.rb @@ -63,7 +63,7 @@ def set_scheme def scheme_params @scheme_params ||= params.require(:scheme) - .permit(:name, channel_attributes: { name: [] }) + .permit(:name, :new_build_callout, channel_attributes: { name: [] }) end def process_scheme_params diff --git a/app/views/channels/_form.html.slim b/app/views/channels/_form.html.slim index 40ec4ec3e..fad4942b0 100644 --- a/app/views/channels/_form.html.slim +++ b/app/views/channels/_form.html.slim @@ -23,4 +23,4 @@ ruby: = f.input :password, input_html: { type: 'input', value: @channel.password } - if params[:action] != 'new' = f.input :key, input_html: { disabled: true } - = f.button :submit \ No newline at end of file + = f.button :submit diff --git a/app/views/releases/body/_new_release_callout.html.slim b/app/views/releases/body/_new_release_callout.html.slim index 5ab631c39..03f0bfdd3 100644 --- a/app/views/releases/body/_new_release_callout.html.slim +++ b/app/views/releases/body/_new_release_callout.html.slim @@ -1,4 +1,4 @@ -- if latest_release +- if enable_callout && latest_release .callout.callout-warning h5 i.icon.fas.fa-info diff --git a/app/views/releases/show.html.slim b/app/views/releases/show.html.slim index fd3407a5a..f45d2e36f 100644 --- a/app/views/releases/show.html.slim +++ b/app/views/releases/show.html.slim @@ -4,7 +4,7 @@ .row - if logged_in_or_without_auth?(@release) .col-md-8.col-lg-9 - == render 'releases/body/new_release_callout', latest_release: @release.outdated? + == render 'releases/body/new_release_callout', enable_callout: @release.scheme.new_build_callout, latest_release: @release.outdated? == render 'releases/body/metadata' == render 'releases/body/changelog' == render 'releases/body/devices' @@ -16,4 +16,4 @@ == render 'releases/sidebar/qrcode' = link_to_if guest_mode_or_signed_in?, t('.view_detail'), friendly_channel_overview_path(@channel), class: 'btn btn-default btn-block' - else - == render 'releases/body/password_auth' \ No newline at end of file + == render 'releases/body/password_auth' diff --git a/app/views/schemes/_form.html.slim b/app/views/schemes/_form.html.slim index 0c92264bc..894972b9e 100644 --- a/app/views/schemes/_form.html.slim +++ b/app/views/schemes/_form.html.slim @@ -14,8 +14,9 @@ ruby: .card-body = simple_form_for(@scheme, url: form_url) do |f| = f.error_notification - = f.input :name, required: true + = f.input :new_build_callout, value: true + - if new_or_create_route? = f.simple_fields_for :channel_attributes do |n| = n.input :name, as: :check_boxes, collection: preset_channels, checked: checked_channel diff --git a/config/locales/simple_form/simple_form.en.yml b/config/locales/simple_form/simple_form.en.yml index 913a3ec71..985f01041 100644 --- a/config/locales/simple_form/simple_form.en.yml +++ b/config/locales/simple_form/simple_form.en.yml @@ -26,6 +26,7 @@ en: name: 'App name' scheme: name: 'Scheme name' + new_build_callout: New build callout channel: name: 'Channel name' device_type: 'Device type' @@ -83,6 +84,7 @@ en: app: schemes: name: :simple_form.hints.scheme.name + new_build_callout: 'Display a new callout at the top of the page when visiting a previous build of app' scheme: name: 'App in the function, the type of audience-oriented division. for example, adhoc, test, production etc.' channel: diff --git a/config/locales/simple_form/simple_form.zh-CN.yml b/config/locales/simple_form/simple_form.zh-CN.yml index db294f6f1..04d128932 100644 --- a/config/locales/simple_form/simple_form.zh-CN.yml +++ b/config/locales/simple_form/simple_form.zh-CN.yml @@ -26,6 +26,7 @@ zh-CN: name: '应用名称' scheme: name: '类型名称' + new_build_callout: 新上传版本提示窗 channel: name: '渠道名称' device_type: '应用平台' @@ -86,6 +87,7 @@ zh-CN: name: :'simple_form.hints.scheme.name' scheme: name: '应用在功能、面向受众划分的类型' + new_build_callout: '用于浏览不是最新上传版本详情时在页面顶部显示一个新上传版本提示窗' channel: name: '推荐按照应用平台区分不同渠道,单平台应用也可以是分发市场的名称' device_type: '应用设备类型' diff --git a/db/migrate/20230221084553_add_new_build_callout_to_scheme.rb b/db/migrate/20230221084553_add_new_build_callout_to_scheme.rb new file mode 100644 index 000000000..c6d4074c4 --- /dev/null +++ b/db/migrate/20230221084553_add_new_build_callout_to_scheme.rb @@ -0,0 +1,5 @@ +class AddNewBuildCalloutToScheme < ActiveRecord::Migration[7.0] + def change + add_column :schemes, :new_build_callout, :boolean, default: true + end +end diff --git a/db/schema.rb b/db/schema.rb index 6475cbc21..cf86061a0 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema[7.0].define(version: 2022_08_03_055400) do +ActiveRecord::Schema[7.0].define(version: 2023_02_21_084553) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -153,7 +153,6 @@ t.integer "size" t.string "min_sdk_version" t.string "target_sdk_version" - t.jsonb "url_schemes", default: [], null: false t.jsonb "activities", default: [], null: false t.jsonb "services", default: [], null: false t.jsonb "permissions", default: [], null: false @@ -164,6 +163,7 @@ t.jsonb "entitlements", default: {}, null: false t.jsonb "devices", default: [], null: false t.jsonb "capabilities", default: [], null: false + t.jsonb "url_schemes", default: [], null: false t.string "checksum", null: false t.datetime "created_at", null: false t.datetime "updated_at", null: false @@ -205,6 +205,7 @@ create_table "schemes", force: :cascade do |t| t.bigint "app_id" t.string "name", null: false + t.boolean "new_build_callout", default: true t.index ["app_id"], name: "index_schemes_on_app_id" t.index ["name"], name: "index_schemes_on_name" end From 06648fa5190794ce8348d8375a77d841ff97deff Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 21 Feb 2023 17:33:24 +0800 Subject: [PATCH 1327/2165] =?UTF-8?q?feat:=20=E5=BA=94=E7=94=A8=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E5=88=97=E8=A1=A8=E9=92=88=E5=AF=B9=E6=96=B0=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0=E7=89=88=E6=9C=AC=E6=8F=90=E7=A4=BA=E7=AA=97=E5=BC=80?= =?UTF-8?q?=E5=85=B3=E5=81=9A=E5=B1=95=E7=A4=BA=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/assets/stylesheets/app.scss | 4 ++++ app/views/apps/show.html.slim | 15 +++++++++------ 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/app/assets/stylesheets/app.scss b/app/assets/stylesheets/app.scss index 1b08f6583..d122b6359 100644 --- a/app/assets/stylesheets/app.scss +++ b/app/assets/stylesheets/app.scss @@ -152,4 +152,8 @@ $ios-install-issue-color: rgb(245, 39, 90); .app-icon { background-color: #fff; } + + .text-primary { + color: #64adfb !important; + } } diff --git a/app/views/apps/show.html.slim b/app/views/apps/show.html.slim index eac857d26..f7263cafe 100644 --- a/app/views/apps/show.html.slim +++ b/app/views/apps/show.html.slim @@ -26,12 +26,9 @@ ruby: h3.card-title = scheme.name .card-tools - .sections-actions.btn-group - = button_link_to t('apps.show.new_channel'), new_app_scheme_channel_path(@app, scheme), 'plus-square', class: 'btn btn-icon btn-default btn-sm btn-flat' - = button_link_to t('apps.show.edit_scheme'), edit_app_scheme_path(@app, scheme), 'edit', class: 'btn-icon btn-default btn-sm btn-flat' - = button_link_to t('apps.show.destory_scheme'), app_scheme_path(@app, scheme), 'trash-alt', class: 'btn-icon btn-default btn-sm btn-flat', \ - data: { turbo_method: :delete, turbo_confirm: "#{t('apps.messages.confirm.delete_app_scheme', name: scheme.app_name)}" } - + - if !scheme.new_build_callout + span.badge.rounded-pill.text-bg-secondary + i.fa.fa-bell-slash.text-success title="新上传版本提示窗" alt="sdfsfdsfsfd" .card-body.p-0 section.app-section id="scheme-#{scheme.id}" table.table @@ -48,6 +45,12 @@ ruby: tr td colspan="2" = t('apps.show.not_found_channel_body_html') + .card-footer.p-1 + = button_link_to t('apps.show.new_channel'), new_app_scheme_channel_path(@app, scheme), 'plus-square', class: 'btn btn-icon text-primary' + .btn-group.float-right + = button_link_to t('apps.show.edit_scheme'), edit_app_scheme_path(@app, scheme), 'edit', class: 'btn btn-icon text-primary' + = button_link_to t('apps.show.destory_scheme'), app_scheme_path(@app, scheme), 'trash-alt', class: 'btn btn-icon text-danger', \ + data: { turbo_method: :delete, turbo_confirm: "#{t('apps.messages.confirm.delete_app_scheme', name: scheme.app_name)}" } - else .col-md-12 From 624b157a1a201ce04f92a35848fa8c5f8c818489 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 Feb 2023 09:48:50 +0000 Subject: [PATCH 1328/2165] chore(deps): bump rack-cors from 1.1.1 to 2.0.0 Bumps [rack-cors](https://github.com/cyu/rack-cors) from 1.1.1 to 2.0.0. - [Release notes](https://github.com/cyu/rack-cors/releases) - [Changelog](https://github.com/cyu/rack-cors/blob/master/CHANGELOG.md) - [Commits](https://github.com/cyu/rack-cors/compare/v1.1.1...2.0.0) --- updated-dependencies: - dependency-name: rack-cors dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 1d071e8c7..557372d09 100644 --- a/Gemfile +++ b/Gemfile @@ -19,7 +19,7 @@ gem 'lograge', '~> 0.12.0' # API gem 'active_model_serializers', '~> 0.10.13' gem 'graphql', '~> 2.0.16' -gem 'rack-cors', '~> 1.1.1' +gem 'rack-cors', '~> 2.0.0' gem 'health_check', '~> 3.1.0' gem 'tiny_appstore_connect', '~> 0.1.7' #path: '/Users/icyleaf/Development/ruby/tiny_appstore_connect' diff --git a/Gemfile.lock b/Gemfile.lock index 9405c8332..6a4952bea 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -310,7 +310,7 @@ GEM raabro (1.4.0) racc (1.6.2) rack (2.2.6.2) - rack-cors (1.1.1) + rack-cors (2.0.0) rack (>= 2.0.0) rack-protection (3.0.5) rack @@ -521,7 +521,7 @@ DEPENDENCIES puma (~> 6.1.0) pundit (~> 2.3.0) pyu-ruby-sasl (>= 0.0.3.3, < 0.1) - rack-cors (~> 1.1.1) + rack-cors (~> 2.0.0) rails (~> 7.0.4) rails-i18n (~> 7.0.5) rails-settings-cached (~> 2.8.3) From e52c66839e03757cadf0feea3843a699f12dacd7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 Feb 2023 09:52:21 +0000 Subject: [PATCH 1329/2165] chore(deps): bump redis from 4.7.1 to 4.8.1 Bumps [redis](https://github.com/redis/redis-rb) from 4.7.1 to 4.8.1. - [Release notes](https://github.com/redis/redis-rb/releases) - [Changelog](https://github.com/redis/redis-rb/blob/master/CHANGELOG.md) - [Commits](https://github.com/redis/redis-rb/compare/v4.7.1...v4.8.1) --- updated-dependencies: - dependency-name: redis dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index ace2117ef..510ee83b1 100644 --- a/Gemfile +++ b/Gemfile @@ -11,7 +11,7 @@ gem 'rake', '~> 13.0.4' # DB & Cache gem 'pg', '>= 0.18', '< 2.0' -gem 'redis', '~> 4.7.1' +gem 'redis', '~> 4.8.1' # Logger gem 'lograge', '~> 0.12.0' diff --git a/Gemfile.lock b/Gemfile.lock index 0572b13ee..0720ffeeb 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -353,7 +353,7 @@ GEM rb-fsevent (0.11.2) rb-inotify (0.10.1) ffi (~> 1.0) - redis (4.7.1) + redis (4.8.1) regexp_parser (2.6.1) reline (0.3.2) io-console (~> 0.5) @@ -525,7 +525,7 @@ DEPENDENCIES rails-i18n (~> 7.0.5) rails-settings-cached (~> 2.8.3) rake (~> 13.0.4) - redis (~> 4.7.1) + redis (~> 4.8.1) rqrcode rubocop (>= 0.70) rubocop-rails From 2d361a6ff742d8a3e5c5b4d32aa4cec93052e8c2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 Feb 2023 09:52:23 +0000 Subject: [PATCH 1330/2165] chore(deps): bump esbuild from 0.15.18 to 0.17.10 Bumps [esbuild](https://github.com/evanw/esbuild) from 0.15.18 to 0.17.10. - [Release notes](https://github.com/evanw/esbuild/releases) - [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG-2022.md) - [Commits](https://github.com/evanw/esbuild/compare/v0.15.18...v0.17.10) --- updated-dependencies: - dependency-name: esbuild dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 270 +++++++++++++++++++++++++-------------------------- 2 files changed, 136 insertions(+), 136 deletions(-) diff --git a/package.json b/package.json index d474c3d88..b9332455a 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "admin-lte": "3.1.0", "clipboard": "^2.0.11", "compare-versions": "^5.0.3", - "esbuild": "^0.15.18", + "esbuild": "^0.17.10", "sass": "^1.58.3", "ua-parser-js": "^1.0.33" }, diff --git a/yarn.lock b/yarn.lock index 02027b00b..4e09480d6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,15 +2,115 @@ # yarn lockfile v1 -"@esbuild/android-arm@0.15.18": - version "0.15.18" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.15.18.tgz#266d40b8fdcf87962df8af05b76219bc786b4f80" - integrity sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw== - -"@esbuild/linux-loong64@0.15.18": - version "0.15.18" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.18.tgz#128b76ecb9be48b60cf5cfc1c63a4f00691a3239" - integrity sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ== +"@esbuild/android-arm64@0.17.10": + version "0.17.10" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.10.tgz#ad2ee47dd021035abdfb0c38848ff77a1e1918c4" + integrity sha512-ht1P9CmvrPF5yKDtyC+z43RczVs4rrHpRqrmIuoSvSdn44Fs1n6DGlpZKdK6rM83pFLbVaSUwle8IN+TPmkv7g== + +"@esbuild/android-arm@0.17.10": + version "0.17.10" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.10.tgz#bb5a68af8adeb94b30eadee7307404dc5237d076" + integrity sha512-7YEBfZ5lSem9Tqpsz+tjbdsEshlO9j/REJrfv4DXgKTt1+/MHqGwbtlyxQuaSlMeUZLxUKBaX8wdzlTfHkmnLw== + +"@esbuild/android-x64@0.17.10": + version "0.17.10" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.10.tgz#751d5d8ae9ece1efa9627b689c888eb85b102360" + integrity sha512-CYzrm+hTiY5QICji64aJ/xKdN70IK8XZ6iiyq0tZkd3tfnwwSWTYH1t3m6zyaaBxkuj40kxgMyj1km/NqdjQZA== + +"@esbuild/darwin-arm64@0.17.10": + version "0.17.10" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.10.tgz#85601ee7efb2129cd3218d5bcbe8da1173bc1e8b" + integrity sha512-3HaGIowI+nMZlopqyW6+jxYr01KvNaLB5znXfbyyjuo4lE0VZfvFGcguIJapQeQMS4cX/NEispwOekJt3gr5Dg== + +"@esbuild/darwin-x64@0.17.10": + version "0.17.10" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.10.tgz#362c7e988c61fe72d5edef4f717e4b4fc728da98" + integrity sha512-J4MJzGchuCRG5n+B4EHpAMoJmBeAE1L3wGYDIN5oWNqX0tEr7VKOzw0ymSwpoeSpdCa030lagGUfnfhS7OvzrQ== + +"@esbuild/freebsd-arm64@0.17.10": + version "0.17.10" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.10.tgz#e8a85a46ede7c3a048a12f16b9d551d25adc8bb1" + integrity sha512-ZkX40Z7qCbugeK4U5/gbzna/UQkM9d9LNV+Fro8r7HA7sRof5Rwxc46SsqeMvB5ZaR0b1/ITQ/8Y1NmV2F0fXQ== + +"@esbuild/freebsd-x64@0.17.10": + version "0.17.10" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.10.tgz#cd0a1b68bffbcb5b65e65b3fd542e8c7c3edd86b" + integrity sha512-0m0YX1IWSLG9hWh7tZa3kdAugFbZFFx9XrvfpaCMMvrswSTvUZypp0NFKriUurHpBA3xsHVE9Qb/0u2Bbi/otg== + +"@esbuild/linux-arm64@0.17.10": + version "0.17.10" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.10.tgz#13b183f432512ed9d9281cc89476caeebe9e9123" + integrity sha512-g1EZJR1/c+MmCgVwpdZdKi4QAJ8DCLP5uTgLWSAVd9wlqk9GMscaNMEViG3aE1wS+cNMzXXgdWiW/VX4J+5nTA== + +"@esbuild/linux-arm@0.17.10": + version "0.17.10" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.10.tgz#dd11e0a5faa3ea94dc80278a601c3be7b4fdf1da" + integrity sha512-whRdrrl0X+9D6o5f0sTZtDM9s86Xt4wk1bf7ltx6iQqrIIOH+sre1yjpcCdrVXntQPCNw/G+XqsD4HuxeS+2QA== + +"@esbuild/linux-ia32@0.17.10": + version "0.17.10" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.10.tgz#4d836f87b92807d9292379963c4888270d282405" + integrity sha512-1vKYCjfv/bEwxngHERp7huYfJ4jJzldfxyfaF7hc3216xiDA62xbXJfRlradiMhGZbdNLj2WA1YwYFzs9IWNPw== + +"@esbuild/linux-loong64@0.17.10": + version "0.17.10" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.10.tgz#92eb2ee200c17ef12c7fb3b648231948699e7a4c" + integrity sha512-mvwAr75q3Fgc/qz3K6sya3gBmJIYZCgcJ0s7XshpoqIAIBszzfXsqhpRrRdVFAyV1G9VUjj7VopL2HnAS8aHFA== + +"@esbuild/linux-mips64el@0.17.10": + version "0.17.10" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.10.tgz#14f7d50c40fe7f7ee545a9bd07c6f6e4cba5570e" + integrity sha512-XilKPgM2u1zR1YuvCsFQWl9Fc35BqSqktooumOY2zj7CSn5czJn279j9TE1JEqSqz88izJo7yE4x3LSf7oxHzg== + +"@esbuild/linux-ppc64@0.17.10": + version "0.17.10" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.10.tgz#1ab5802e93ae511ce9783e1cb95f37df0f84c4af" + integrity sha512-kM4Rmh9l670SwjlGkIe7pYWezk8uxKHX4Lnn5jBZYBNlWpKMBCVfpAgAJqp5doLobhzF3l64VZVrmGeZ8+uKmQ== + +"@esbuild/linux-riscv64@0.17.10": + version "0.17.10" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.10.tgz#4fae25201ef7ad868731d16c8b50b0e386c4774a" + integrity sha512-r1m9ZMNJBtOvYYGQVXKy+WvWd0BPvSxMsVq8Hp4GzdMBQvfZRvRr5TtX/1RdN6Va8JMVQGpxqde3O+e8+khNJQ== + +"@esbuild/linux-s390x@0.17.10": + version "0.17.10" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.10.tgz#126254d8335bb3586918b1ca60beb4abb46e6d54" + integrity sha512-LsY7QvOLPw9WRJ+fU5pNB3qrSfA00u32ND5JVDrn/xG5hIQo3kvTxSlWFRP0NJ0+n6HmhPGG0Q4jtQsb6PFoyg== + +"@esbuild/linux-x64@0.17.10": + version "0.17.10" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.10.tgz#7fa4667b2df81ea0538e1b75e607cf04e526ce91" + integrity sha512-zJUfJLebCYzBdIz/Z9vqwFjIA7iSlLCFvVi7glMgnu2MK7XYigwsonXshy9wP9S7szF+nmwrelNaP3WGanstEg== + +"@esbuild/netbsd-x64@0.17.10": + version "0.17.10" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.10.tgz#2d24727ddc2305619685bf237a46d6087a02ee9a" + integrity sha512-lOMkailn4Ok9Vbp/q7uJfgicpDTbZFlXlnKT2DqC8uBijmm5oGtXAJy2ZZVo5hX7IOVXikV9LpCMj2U8cTguWA== + +"@esbuild/openbsd-x64@0.17.10": + version "0.17.10" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.10.tgz#bf3fc38ee6ecf028c1f0cfe11f61d53cc75fef12" + integrity sha512-/VE0Kx6y7eekqZ+ZLU4AjMlB80ov9tEz4H067Y0STwnGOYL8CsNg4J+cCmBznk1tMpxMoUOf0AbWlb1d2Pkbig== + +"@esbuild/sunos-x64@0.17.10": + version "0.17.10" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.10.tgz#8deabd6dfec6256f80bb101bc59d29dbae99c69b" + integrity sha512-ERNO0838OUm8HfUjjsEs71cLjLMu/xt6bhOlxcJ0/1MG3hNqCmbWaS+w/8nFLa0DDjbwZQuGKVtCUJliLmbVgg== + +"@esbuild/win32-arm64@0.17.10": + version "0.17.10" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.10.tgz#1ec1ee04c788c4c57a83370b6abf79587b3e4965" + integrity sha512-fXv+L+Bw2AeK+XJHwDAQ9m3NRlNemG6Z6ijLwJAAVdu4cyoFbBWbEtyZzDeL+rpG2lWI51cXeMt70HA8g2MqIg== + +"@esbuild/win32-ia32@0.17.10": + version "0.17.10" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.10.tgz#a362528d7f3ad5d44fa8710a96764677ef92ebe9" + integrity sha512-3s+HADrOdCdGOi5lnh5DMQEzgbsFsd4w57L/eLKKjMnN0CN4AIEP0DCP3F3N14xnxh3ruNc32A0Na9zYe1Z/AQ== + +"@esbuild/win32-x64@0.17.10": + version "0.17.10" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.10.tgz#ac779220f2da96afd480fb3f3148a292f66e7fc3" + integrity sha512-oP+zFUjYNaMNmjTwlFtWep85hvwUu19cZklB3QsBOcZSs6y7hmH4LNCJ7075bsqzYaNvZFXJlAVaQ2ApITDXtw== "@fortawesome/fontawesome-free@^5.15.3": version "5.15.4" @@ -677,133 +777,33 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -esbuild-android-64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.18.tgz#20a7ae1416c8eaade917fb2453c1259302c637a5" - integrity sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA== - -esbuild-android-arm64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.18.tgz#9cc0ec60581d6ad267568f29cf4895ffdd9f2f04" - integrity sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ== - -esbuild-darwin-64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.18.tgz#428e1730ea819d500808f220fbc5207aea6d4410" - integrity sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg== - -esbuild-darwin-arm64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.18.tgz#b6dfc7799115a2917f35970bfbc93ae50256b337" - integrity sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA== - -esbuild-freebsd-64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.18.tgz#4e190d9c2d1e67164619ae30a438be87d5eedaf2" - integrity sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA== - -esbuild-freebsd-arm64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.18.tgz#18a4c0344ee23bd5a6d06d18c76e2fd6d3f91635" - integrity sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA== - -esbuild-linux-32@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.18.tgz#9a329731ee079b12262b793fb84eea762e82e0ce" - integrity sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg== - -esbuild-linux-64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.18.tgz#532738075397b994467b514e524aeb520c191b6c" - integrity sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw== - -esbuild-linux-arm64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.18.tgz#5372e7993ac2da8f06b2ba313710d722b7a86e5d" - integrity sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug== - -esbuild-linux-arm@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.18.tgz#e734aaf259a2e3d109d4886c9e81ec0f2fd9a9cc" - integrity sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA== - -esbuild-linux-mips64le@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.18.tgz#c0487c14a9371a84eb08fab0e1d7b045a77105eb" - integrity sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ== - -esbuild-linux-ppc64le@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.18.tgz#af048ad94eed0ce32f6d5a873f7abe9115012507" - integrity sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w== - -esbuild-linux-riscv64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.18.tgz#423ed4e5927bd77f842bd566972178f424d455e6" - integrity sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg== - -esbuild-linux-s390x@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.18.tgz#21d21eaa962a183bfb76312e5a01cc5ae48ce8eb" - integrity sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ== - -esbuild-netbsd-64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.18.tgz#ae75682f60d08560b1fe9482bfe0173e5110b998" - integrity sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg== - -esbuild-openbsd-64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.18.tgz#79591a90aa3b03e4863f93beec0d2bab2853d0a8" - integrity sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ== - -esbuild-sunos-64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.18.tgz#fd528aa5da5374b7e1e93d36ef9b07c3dfed2971" - integrity sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw== - -esbuild-windows-32@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.18.tgz#0e92b66ecdf5435a76813c4bc5ccda0696f4efc3" - integrity sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ== - -esbuild-windows-64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.18.tgz#0fc761d785414284fc408e7914226d33f82420d0" - integrity sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw== - -esbuild-windows-arm64@0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.18.tgz#5b5bdc56d341d0922ee94965c89ee120a6a86eb7" - integrity sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ== - -esbuild@^0.15.18: - version "0.15.18" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.18.tgz#ea894adaf3fbc036d32320a00d4d6e4978a2f36d" - integrity sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q== +esbuild@^0.17.10: + version "0.17.10" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.10.tgz#3be050561b34c5dc05b46978f4e1f326d5cc9437" + integrity sha512-n7V3v29IuZy5qgxx25TKJrEm0FHghAlS6QweUcyIgh/U0zYmQcvogWROitrTyZId1mHSkuhhuyEXtI9OXioq7A== optionalDependencies: - "@esbuild/android-arm" "0.15.18" - "@esbuild/linux-loong64" "0.15.18" - esbuild-android-64 "0.15.18" - esbuild-android-arm64 "0.15.18" - esbuild-darwin-64 "0.15.18" - esbuild-darwin-arm64 "0.15.18" - esbuild-freebsd-64 "0.15.18" - esbuild-freebsd-arm64 "0.15.18" - esbuild-linux-32 "0.15.18" - esbuild-linux-64 "0.15.18" - esbuild-linux-arm "0.15.18" - esbuild-linux-arm64 "0.15.18" - esbuild-linux-mips64le "0.15.18" - esbuild-linux-ppc64le "0.15.18" - esbuild-linux-riscv64 "0.15.18" - esbuild-linux-s390x "0.15.18" - esbuild-netbsd-64 "0.15.18" - esbuild-openbsd-64 "0.15.18" - esbuild-sunos-64 "0.15.18" - esbuild-windows-32 "0.15.18" - esbuild-windows-64 "0.15.18" - esbuild-windows-arm64 "0.15.18" + "@esbuild/android-arm" "0.17.10" + "@esbuild/android-arm64" "0.17.10" + "@esbuild/android-x64" "0.17.10" + "@esbuild/darwin-arm64" "0.17.10" + "@esbuild/darwin-x64" "0.17.10" + "@esbuild/freebsd-arm64" "0.17.10" + "@esbuild/freebsd-x64" "0.17.10" + "@esbuild/linux-arm" "0.17.10" + "@esbuild/linux-arm64" "0.17.10" + "@esbuild/linux-ia32" "0.17.10" + "@esbuild/linux-loong64" "0.17.10" + "@esbuild/linux-mips64el" "0.17.10" + "@esbuild/linux-ppc64" "0.17.10" + "@esbuild/linux-riscv64" "0.17.10" + "@esbuild/linux-s390x" "0.17.10" + "@esbuild/linux-x64" "0.17.10" + "@esbuild/netbsd-x64" "0.17.10" + "@esbuild/openbsd-x64" "0.17.10" + "@esbuild/sunos-x64" "0.17.10" + "@esbuild/win32-arm64" "0.17.10" + "@esbuild/win32-ia32" "0.17.10" + "@esbuild/win32-x64" "0.17.10" ev-emitter@^1.0.0: version "1.1.1" From 9129b1c3bcdb0dff5a47b2db08bdfc58ac1ad323 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 Feb 2023 21:57:33 +0000 Subject: [PATCH 1331/2165] chore(deps-dev): bump ruby-lsp from 0.3.8 to 0.4.0 Bumps [ruby-lsp](https://github.com/Shopify/ruby-lsp) from 0.3.8 to 0.4.0. - [Release notes](https://github.com/Shopify/ruby-lsp/releases) - [Commits](https://github.com/Shopify/ruby-lsp/compare/v0.3.8...v0.4.0) --- updated-dependencies: - dependency-name: ruby-lsp dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Gemfile b/Gemfile index 73a297cd5..db34a67ae 100644 --- a/Gemfile +++ b/Gemfile @@ -116,7 +116,7 @@ group :development do # 调试器 ## VSCode debug: https://marketplace.visualstudio.com/items?itemName=KoichiSasada.vscode-rdbg gem 'debug', '~> 1.7.1' - gem "ruby-lsp", "~> 0.3.8" + gem "ruby-lsp", "~> 0.4.0" # rails 更友好错误输出 gem 'awesome_print' diff --git a/Gemfile.lock b/Gemfile.lock index c72a06456..45a5ca750 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -201,7 +201,7 @@ GEM activerecord kaminari-core (= 1.2.2) kaminari-core (1.2.2) - language_server-protocol (3.17.0.2) + language_server-protocol (3.17.0.3) launchy (2.5.2) addressable (~> 2.8) letter_opener (1.8.1) @@ -383,10 +383,10 @@ GEM activesupport (>= 4.2.0) rack (>= 1.1) rubocop (>= 1.33.0, < 2.0) - ruby-lsp (0.3.8) + ruby-lsp (0.4.0) language_server-protocol (~> 3.17.0) sorbet-runtime - syntax_tree (>= 5.0.0, < 6) + syntax_tree (>= 6, < 7) ruby-macho (3.0.0) ruby-progressbar (1.11.0) ruby-vips (2.1.4) @@ -425,7 +425,7 @@ GEM railties (>= 3.1) slim (>= 3.0, < 5.0) socksify (1.7.1) - sorbet-runtime (0.5.10626) + sorbet-runtime (0.5.10676) sprockets (4.2.0) concurrent-ruby (~> 1.0) rack (>= 2.2.4, < 4) @@ -436,7 +436,7 @@ GEM ssrf_filter (1.1.1) stimulus-rails (1.2.1) railties (>= 6.0.0) - syntax_tree (5.2.0) + syntax_tree (6.0.0) prettier_print (>= 1.2.0) sys-filesystem (1.4.3) ffi (~> 1.1) @@ -529,7 +529,7 @@ DEPENDENCIES rqrcode rubocop (>= 0.70) rubocop-rails - ruby-lsp (~> 0.3.8) + ruby-lsp (~> 0.4.0) rubyntlm (~> 0.5) sentry-rails sentry-ruby From 65b7c1a53fd32003b40c8b4e4d7afab7c1104198 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 Feb 2023 21:57:51 +0000 Subject: [PATCH 1332/2165] chore(deps): bump devise-i18n from 1.10.2 to 1.10.3 Bumps [devise-i18n](https://github.com/tigrish/devise-i18n) from 1.10.2 to 1.10.3. - [Release notes](https://github.com/tigrish/devise-i18n/releases) - [Changelog](https://github.com/tigrish/devise-i18n/blob/master/CHANGELOG.md) - [Commits](https://github.com/tigrish/devise-i18n/compare/v1.10.2...v1.10.3) --- updated-dependencies: - dependency-name: devise-i18n dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/Gemfile b/Gemfile index 73a297cd5..89c72aca8 100644 --- a/Gemfile +++ b/Gemfile @@ -47,7 +47,7 @@ gem 'faraday', '~> 2.7.4' ## 用户认证 gem 'pundit', '~> 2.3.0' gem 'devise', '~> 4.8.1' -gem 'devise-i18n', '~> 1.10.2' +gem 'devise-i18n', '~> 1.10.3' gem 'omniauth', '~> 2.1.1' gem 'omniauth-rails_csrf_protection', '~> 1.0.1' diff --git a/Gemfile.lock b/Gemfile.lock index c72a06456..f0316ee24 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -132,7 +132,7 @@ GEM railties (>= 4.1.0) responders warden (~> 1.2.3) - devise-i18n (1.10.2) + devise-i18n (1.10.3) devise (>= 4.8.0) dotenv (2.8.1) dotenv-rails (2.8.1) @@ -249,7 +249,7 @@ GEM net-smtp (0.3.3) net-protocol nio4r (2.5.8) - nokogiri (1.14.1) + nokogiri (1.14.2) mini_portile2 (~> 2.8.0) racc (~> 1.4) oauth2 (1.4.11) @@ -359,9 +359,9 @@ GEM io-console (~> 0.5) request_store (1.5.1) rack (>= 1.4) - responders (3.0.1) - actionpack (>= 5.0) - railties (>= 5.0) + responders (3.1.0) + actionpack (>= 5.2) + railties (>= 5.2) rexml (3.2.5) rqrcode (2.1.2) chunky_png (~> 1.0) @@ -472,7 +472,7 @@ GEM websocket-driver (0.7.5) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) - zeitwerk (2.6.6) + zeitwerk (2.6.7) PLATFORMS ruby @@ -489,7 +489,7 @@ DEPENDENCIES cssbundling-rails (~> 1.1) debug (~> 1.7.1) devise (~> 4.8.1) - devise-i18n (~> 1.10.2) + devise-i18n (~> 1.10.3) dotenv-rails faraday (~> 2.7.4) friendly_id (~> 5.5.0) From c879b833fae90af0534c68b1a0f782924324d325 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 Feb 2023 21:58:08 +0000 Subject: [PATCH 1333/2165] chore(deps): bump graphql from 2.0.16 to 2.0.17 Bumps [graphql](https://github.com/rmosolgo/graphql-ruby) from 2.0.16 to 2.0.17. - [Release notes](https://github.com/rmosolgo/graphql-ruby/releases) - [Changelog](https://github.com/rmosolgo/graphql-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/rmosolgo/graphql-ruby/compare/v2.0.16...v2.0.17) --- updated-dependencies: - dependency-name: graphql dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 73a297cd5..434a9edfc 100644 --- a/Gemfile +++ b/Gemfile @@ -18,7 +18,7 @@ gem 'lograge', '~> 0.12.0' # API gem 'active_model_serializers', '~> 0.10.13' -gem 'graphql', '~> 2.0.16' +gem 'graphql', '~> 2.0.17' gem 'rack-cors', '~> 2.0.0' gem 'health_check', '~> 3.1.0' gem 'tiny_appstore_connect', '~> 0.1.7' #path: '/Users/icyleaf/Development/ruby/tiny_appstore_connect' diff --git a/Gemfile.lock b/Gemfile.lock index c72a06456..dadc5d808 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -160,7 +160,7 @@ GEM graphiql-rails (1.8.0) railties sprockets-rails - graphql (2.0.16) + graphql (2.0.17) hashie (5.0.0) health_check (3.1.0) railties (>= 5.0) @@ -494,7 +494,7 @@ DEPENDENCIES faraday (~> 2.7.4) friendly_id (~> 5.5.0) graphiql-rails - graphql (~> 2.0.16) + graphql (~> 2.0.17) health_check (~> 3.1.0) improved_jenkins_client (~> 1.6.7) jb (~> 0.8.0) From 8a9af6546dbf7609b6ecf9626ca18b050662859f Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 22 Feb 2023 10:22:09 +0800 Subject: [PATCH 1334/2165] =?UTF-8?q?feat:=20=E5=BA=94=E7=94=A8=E5=9B=BE?= =?UTF-8?q?=E6=A0=87=E5=8F=AF=E7=82=B9=E5=87=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/apps/_list.html.slim | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/apps/_list.html.slim b/app/views/apps/_list.html.slim index c4afd2de7..382761a62 100644 --- a/app/views/apps/_list.html.slim +++ b/app/views/apps/_list.html.slim @@ -3,7 +3,7 @@ .card.widget-app .card-body .text-center - = app_icon(app.recently_release, class: 'app-icon elevation-1 img-circle') + = link_to app_icon(app.recently_release, class: 'app-icon elevation-1 img-circle'), app_path(app) h3.profile-username.text-center = link_to app.name, app_path(app) p.created-time.text-muted.text-center @@ -17,4 +17,4 @@ span.float-right = app.total_channels li.list-group-item b = t('apps.index.uploads') - span.float-right = app.total_releases \ No newline at end of file + span.float-right = app.total_releases From 219a1d442045db9def6175a0a4a5903a66178d87 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 22 Feb 2023 10:47:43 +0800 Subject: [PATCH 1335/2165] chore(deps): bump sidekiq from 6 to 7 --- Gemfile | 2 +- Gemfile.lock | 13 ++++++++----- config/initializers/sidekiq.rb | 3 ++- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/Gemfile b/Gemfile index 73a297cd5..d18c3d952 100644 --- a/Gemfile +++ b/Gemfile @@ -85,7 +85,7 @@ gem 'rqrcode' # 异步队列 gem 'activejob-status' -gem 'sidekiq', '~> 6.5.8' +gem 'sidekiq', '~> 7.0.5' gem 'sidekiq-scheduler', '~> 5.0.1' gem 'sidekiq-failures', '~> 1.0.4' diff --git a/Gemfile.lock b/Gemfile.lock index c72a06456..b0f3b390b 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -354,6 +354,8 @@ GEM rb-inotify (0.10.1) ffi (~> 1.0) redis (4.8.1) + redis-client (0.12.2) + connection_pool regexp_parser (2.6.1) reline (0.3.2) io-console (~> 0.5) @@ -404,10 +406,11 @@ GEM sentry-sidekiq (5.8.0) sentry-ruby (~> 5.8.0) sidekiq (>= 3.0) - sidekiq (6.5.8) - connection_pool (>= 2.2.5, < 3) - rack (~> 2.0) - redis (>= 4.5.0, < 5) + sidekiq (7.0.6) + concurrent-ruby (< 2) + connection_pool (>= 2.3.0) + rack (>= 2.2.4) + redis-client (>= 0.11.0) sidekiq-failures (1.0.4) sidekiq (>= 4.0.0) sidekiq-scheduler (5.0.1) @@ -534,7 +537,7 @@ DEPENDENCIES sentry-rails sentry-ruby sentry-sidekiq - sidekiq (~> 6.5.8) + sidekiq (~> 7.0.5) sidekiq-failures (~> 1.0.4) sidekiq-scheduler (~> 5.0.1) simple_form (~> 5.2) diff --git a/config/initializers/sidekiq.rb b/config/initializers/sidekiq.rb index 383e85b4f..8ba2fcc89 100644 --- a/config/initializers/sidekiq.rb +++ b/config/initializers/sidekiq.rb @@ -10,7 +10,8 @@ ## sidekiq-failurers # Max limits failures - config.failures_max_count = 5000 + # FIXME: comment below because sidekiq 7.0 breaking changes https://github.com/mhfs/sidekiq-failures/issues/146 + # config.failures_max_count = 5000 end Sidekiq.configure_client do |config| From 38a11dcc21720056341af3c23bf4b3d47731d6bd Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 22 Feb 2023 11:28:52 +0800 Subject: [PATCH 1336/2165] =?UTF-8?q?feat:=20devise=20=E5=8D=87=E7=BA=A7?= =?UTF-8?q?=E5=88=B0=E6=94=AF=E6=8C=81=20hotwire(turbo)=20=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E4=B8=94=20ldap=20=E4=B9=9F=E5=8D=87=E7=BA=A7?= =?UTF-8?q?=E5=AE=98=E6=96=B9=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 10 +- Gemfile.lock | 13 +- app/models/concerns/user_omniauth.rb | 2 +- config/initializers/devise.rb | 37 ++-- lib/omni_auth/strategies/ldap.rb | 120 ------------ lib/omni_auth/strategies/ldap/adaptor.rb | 236 ----------------------- 6 files changed, 29 insertions(+), 389 deletions(-) delete mode 100644 lib/omni_auth/strategies/ldap.rb delete mode 100644 lib/omni_auth/strategies/ldap/adaptor.rb diff --git a/Gemfile b/Gemfile index c137136e1..afbf2a0c2 100644 --- a/Gemfile +++ b/Gemfile @@ -46,7 +46,7 @@ gem 'faraday', '~> 2.7.4' ## 用户认证 gem 'pundit', '~> 2.3.0' -gem 'devise', '~> 4.8.1' +gem 'devise', '~> 4.9.0' gem 'devise-i18n', '~> 1.10.3' gem 'omniauth', '~> 2.1.1' @@ -56,12 +56,12 @@ gem 'omniauth-gitlab', '~> 3.0.0' gem 'omniauth-feishu', '~> 0.1.8' # FIXME: copy to ./lib/omniauth/strategies -# gem 'gitlab_omniauth-ldap', '~> 2.1.1', require: 'omniauth-ldap' +gem 'gitlab_omniauth-ldap', '~> 2.2.0', require: 'omniauth-ldap' # ldap dependencies -gem 'net-ldap', '~> 0.17' -gem 'pyu-ruby-sasl', '>= 0.0.3.3', '< 0.1' -gem 'rubyntlm', '~> 0.5' +# gem 'net-ldap', '~> 0.17' +# gem 'pyu-ruby-sasl', '>= 0.0.3.3', '< 0.1' +# gem 'rubyntlm', '~> 0.5' ## UDID gem 'openssl', '~> 3.1.0' diff --git a/Gemfile.lock b/Gemfile.lock index 40e1d7185..3493e56aa 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -126,7 +126,7 @@ GEM irb (>= 1.5.0) reline (>= 0.3.1) debug_inspector (1.1.0) - devise (4.8.1) + devise (4.9.0) bcrypt (~> 3.0) orm_adapter (~> 0.1) railties (>= 4.1.0) @@ -154,6 +154,11 @@ GEM fugit (1.8.1) et-orbi (~> 1, >= 1.2.7) raabro (~> 1.4) + gitlab_omniauth-ldap (2.2.0) + net-ldap (~> 0.16) + omniauth (>= 1.3, < 3) + pyu-ruby-sasl (>= 0.0.3.3, < 0.1) + rubyntlm (~> 0.5) globalid (1.1.0) activesupport (>= 5.0) google-protobuf (3.21.12) @@ -491,11 +496,12 @@ DEPENDENCIES carrierwave (~> 2.2.3) cssbundling-rails (~> 1.1) debug (~> 1.7.1) - devise (~> 4.8.1) + devise (~> 4.9.0) devise-i18n (~> 1.10.3) dotenv-rails faraday (~> 2.7.4) friendly_id (~> 5.5.0) + gitlab_omniauth-ldap (~> 2.2.0) graphiql-rails graphql (~> 2.0.17) health_check (~> 3.1.0) @@ -507,7 +513,6 @@ DEPENDENCIES letter_opener_web (~> 2.0) listen (>= 3.0.5, < 3.9) lograge (~> 0.12.0) - net-ldap (~> 0.17) omniauth (~> 2.1.1) omniauth-feishu (~> 0.1.8) omniauth-gitlab (~> 3.0.0) @@ -522,7 +527,6 @@ DEPENDENCIES pry-rescue puma (~> 6.1.0) pundit (~> 2.3.0) - pyu-ruby-sasl (>= 0.0.3.3, < 0.1) rack-cors (~> 2.0.0) rails (~> 7.0.4) rails-i18n (~> 7.0.5) @@ -533,7 +537,6 @@ DEPENDENCIES rubocop (>= 0.70) rubocop-rails ruby-lsp (~> 0.4.0) - rubyntlm (~> 0.5) sentry-rails sentry-ruby sentry-sidekiq diff --git a/app/models/concerns/user_omniauth.rb b/app/models/concerns/user_omniauth.rb index b201e34b8..91b6d44f8 100644 --- a/app/models/concerns/user_omniauth.rb +++ b/app/models/concerns/user_omniauth.rb @@ -40,7 +40,7 @@ def enabled_google_oauth2? end def enabled_ldap? - defined?(OmniAuth::Strategies::Ldap) && Setting.ldap[:enabled] + defined?(OmniAuth::Strategies::LDAP) && Setting.ldap[:enabled] end def enabled_feishu? diff --git a/config/initializers/devise.rb b/config/initializers/devise.rb index a409cb1c5..0d5b9cddc 100644 --- a/config/initializers/devise.rb +++ b/config/initializers/devise.rb @@ -40,20 +40,6 @@ env['omniauth.strategy'].options[:uid] = Setting.ldap[:uid] end -class TurboFailureApp < Devise::FailureApp - def respond - if request_format == :turbo_stream - redirect - else - super - end - end - - def skip_format? - %w(html turbo_stream */*).include? request_format.to_s - end -end - # Use this hook to configure devise mailer, warden hooks and so forth. # Many of these configuration options can be set straight in your model. Devise.setup do |config| @@ -153,7 +139,7 @@ def skip_format? # config.reload_routes = true # ==> Configuration for :database_authenticatable - # For bcrypt, this is the cost for hashing the password and defaults to 11. If + # For bcrypt, this is the cost for hashing the password and defaults to 12. If # using other algorithms, it sets how many times you want the password to be hashed. # # Limiting the stretches to just one in testing will increase the performance of @@ -304,11 +290,10 @@ def skip_format? # If you want to use other strategies, that are not supported by Devise, or # change the failure app, you can configure them inside the config.warden block. # - config.warden do |manager| - # manager.intercept_401 = false - # manager.default_strategies(scope: :user).unshift :some_external_strategy - manager.failure_app = TurboFailureApp - end + # config.warden do |manager| + # manager.intercept_401 = false + # manager.default_strategies(scope: :user).unshift :some_external_strategy + # end # ==> Mountable engine configurations # When using Devise inside an engine, let's call it `MyEngine`, and this engine @@ -320,12 +305,20 @@ def skip_format? # The router that invoked `devise_for`, in the example above, would be: # config.router_name = :my_engine + # ==> Hotwire/Turbo configuration + # When using Devise with Hotwire/Turbo, the http status for error responses + # and some redirects must match the following. The default in Devise for existing + # apps is `200 OK` and `302 Found respectively`, but new apps are generated with + # these new defaults that match Hotwire/Turbo behavior. + # Note: These might become the new default in future versions of Devise. + config.responder.error_status = :unprocessable_entity + config.responder.redirect_status = :see_other + # ==> OmniAuth # Add a new OmniAuth provider. Check the wiki for more information on setting # up on your models and hooks. - config.omniauth :feishu, setup: FEISHU_OMNIAUTH_SETUP, strategy_class: OmniAuth::Strategies::Feishu config.omniauth :gitlab, setup: GITLAB_OMNIAUTH_SETUP config.omniauth :google_oauth2, setup: GOOGLE_OMNIAUTH_SETUP - config.omniauth :ldap, setup: LDAP_OMNIAUTH_SETUP, strategy_class: OmniAuth::Strategies::Ldap + config.omniauth :ldap, setup: LDAP_OMNIAUTH_SETUP, strategy_class: OmniAuth::Strategies::LDAP end diff --git a/lib/omni_auth/strategies/ldap.rb b/lib/omni_auth/strategies/ldap.rb deleted file mode 100644 index f98613e0b..000000000 --- a/lib/omni_auth/strategies/ldap.rb +++ /dev/null @@ -1,120 +0,0 @@ -# frozen_string_literal: true -# -# Modify to work under in omniauth 2 -# Original repository: https://gitlab.com/gitlab-org/omniauth-ldap -require 'omniauth' - -module OmniAuth - module Strategies - class Ldap - include OmniAuth::Strategy - - InvalidCredentialsError = Class.new(StandardError) - - @@config = { - 'name' => 'cn', - 'first_name' => 'givenName', - 'last_name' => 'sn', - 'email' => ['mail', "email", 'userPrincipalName'], - 'phone' => ['telephoneNumber', 'homePhone', 'facsimileTelephoneNumber'], - 'mobile' => ['mobile', 'mobileTelephoneNumber'], - 'nickname' => ['uid', 'userid', 'sAMAccountName'], - 'title' => 'title', - 'location' => {"%0, %1, %2, %3 %4" => [['address', 'postalAddress', 'homePostalAddress', 'street', 'streetAddress'], ['l'], ['st'],['co'],['postOfficeBox']]}, - 'uid' => 'dn', - 'url' => ['wwwhomepage'], - 'image' => 'jpegPhoto', - 'description' => 'description' - } - - option :name, 'ldap' - option :title, "LDAP Authentication" #default title for authentication form - option :port, 389 - option :method, :plain - option :disable_verify_certificates, false - option :ca_file, nil - option :ssl_version, nil # use OpenSSL default if nil - option :uid, 'sAMAccountName' - option :name_proc, lambda {|n| n} - - def request_phase - OmniAuth::Strategies::Ldap::Adaptor.validate @options - f = OmniAuth::Form.new(:title => (options[:title] || "LDAP Authentication"), :url => callback_path) - f.text_field 'Login', 'username' - f.password_field 'Password', 'password' - f.button "Sign In" - f.to_response - end - - def callback_phase - @adaptor = OmniAuth::Strategies::Ldap::Adaptor.new @options - - return fail!(:invalid_request_method) unless valid_request_method? - return fail!(:missing_credentials) if missing_credentials? - begin - @ldap_user_info = @adaptor.bind_as(:filter => filter(@adaptor), :size => 1, :password => request['password']) - - unless @ldap_user_info - return fail!(:invalid_credentials, InvalidCredentialsError.new("Invalid credentials for #{request['username']}")) - end - - @user_info = self.class.map_user(@@config, @ldap_user_info) - super - rescue Exception => e - return fail!(:ldap_error, e) - end - end - - def filter(adaptor) - if adaptor.filter and !adaptor.filter.empty? - username = Net::LDAP::Filter.escape(@options[:name_proc].call(request['username'])) - Net::LDAP::Filter.construct(adaptor.filter % { username: username }) - else - Net::LDAP::Filter.equals(adaptor.uid, @options[:name_proc].call(request['username'])) - end - end - - uid { - @user_info["uid"] - } - info { - @user_info - } - extra { - { :raw_info => @ldap_user_info } - } - - def self.map_user(mapper, object) - user = {} - mapper.each do |key, value| - case value - when String - user[key] = object[value.downcase.to_sym].first if object.respond_to? value.downcase.to_sym - when Array - value.each {|v| (user[key] = object[v.downcase.to_sym].first; break;) if object.respond_to? v.downcase.to_sym} - when Hash - value.map do |key1, value1| - pattern = key1.dup - value1.each_with_index do |v,i| - part = ''; v.collect(&:downcase).collect(&:to_sym).each {|v1| (part = object[v1].first; break;) if object.respond_to? v1} - pattern.gsub!("%#{i}",part||'') - end - user[key] = pattern - end - end - end - user - end - - protected - - def valid_request_method? - request.env['REQUEST_METHOD'] == 'POST' - end - - def missing_credentials? - request['username'].nil? or request['username'].empty? or request['password'].nil? or request['password'].empty? - end # missing_credentials? - end - end -end diff --git a/lib/omni_auth/strategies/ldap/adaptor.rb b/lib/omni_auth/strategies/ldap/adaptor.rb deleted file mode 100644 index 921ee575c..000000000 --- a/lib/omni_auth/strategies/ldap/adaptor.rb +++ /dev/null @@ -1,236 +0,0 @@ -# frozen_string_literal: true -# -# Modify to work under in omniauth 2 -# Original repository: https://gitlab.com/gitlab-org/omniauth-ldap -require 'net/ldap' -require 'net/ntlm' -require 'sasl' - -module OmniAuth::Strategies - class Ldap - class Adaptor - class LdapError < StandardError; end - class ConfigurationError < StandardError; end - class AuthenticationError < StandardError; end - class ConnectionError < StandardError; end - - VALID_ADAPTER_CONFIGURATION_KEYS = [ - :hosts, :host, :port, :encryption, :disable_verify_certificates, :bind_dn, :password, :try_sasl, - :sasl_mechanisms, :uid, :base, :allow_anonymous, :filter, :tls_options, - - # Deprecated - :method, - :ca_file, - :ssl_version - ] - - # A list of needed keys. Possible alternatives are specified using sub-lists. - MUST_HAVE_KEYS = [ - :base, - [:encryption, :method], # :method is deprecated - [:hosts, :host], - [:hosts, :port], - [:uid, :filter] - ] - - ENCRYPTION_METHOD = { - :simple_tls => :simple_tls, - :start_tls => :start_tls, - :plain => nil, - - # Deprecated. This mapping aimed to be user-friendly, but only caused - # confusion. Better to pass-through the actual `Net::LDAP` encryption type. - :ssl => :simple_tls, - :tls => :start_tls, - } - - attr_accessor :bind_dn, :password - attr_reader :connection, :uid, :base, :auth, :filter - - def self.validate(configuration={}) - message = [] - MUST_HAVE_KEYS.each do |names| - names = [names].flatten - missing_keys = names.select{|name| configuration[name].nil?} - if missing_keys == names - message << names.join(' or ') - end - end - raise ArgumentError.new(message.join(",") +" MUST be provided") unless message.empty? - end - - def initialize(configuration={}) - Adaptor.validate(configuration) - @configuration = configuration.dup - @configuration[:allow_anonymous] ||= false - @logger = @configuration.delete(:logger) - VALID_ADAPTER_CONFIGURATION_KEYS.each do |name| - instance_variable_set("@#{name}", @configuration[name]) - end - config = { - base: @base, - hosts: @hosts, - host: @host, - port: @port, - encryption: encryption_options - } - @bind_method = @try_sasl ? :sasl : (@allow_anonymous||!@bind_dn||!@password ? :anonymous : :simple) - - - @auth = sasl_auths({:username => @bind_dn, :password => @password}).first if @bind_method == :sasl - @auth ||= { :method => @bind_method, - :username => @bind_dn, - :password => @password - } - config[:auth] = @auth - @connection = Net::LDAP.new(config) - end - - #:base => "dc=yourcompany, dc=com", - # :filter => "(mail=#{user})", - # :password => psw - def bind_as(args = {}) - result = false - @connection.open do |me| - rs = me.search args - if rs and rs.first and dn = rs.first.dn - password = args[:password] - method = args[:method] || @method - password = password.call if password.respond_to?(:call) - if method == 'sasl' - result = rs.first if me.bind(sasl_auths({:username => dn, :password => password}).first) - else - result = rs.first if me.bind(:method => :simple, :username => dn, - :password => password) - end - end - end - result - end - - private - - def encryption_options - translated_method = translate_method - return nil unless translated_method - - { - method: translated_method, - tls_options: tls_options(translated_method) - } - end - - def translate_method - method = @encryption || @method - method ||= "plain" - normalized_method = method.to_s.downcase.to_sym - - unless ENCRYPTION_METHOD.has_key?(normalized_method) - available_methods = ENCRYPTION_METHOD.keys.collect {|m| m.inspect}.join(", ") - format = "%s is not one of the available connect methods: %s" - raise ConfigurationError, format % [method.inspect, available_methods] - end - - ENCRYPTION_METHOD[normalized_method] - end - - def tls_options(translated_method) - return {} if translated_method == nil # (plain) - - options = default_options - - if @tls_options - # Prevent blank config values from overwriting SSL defaults - configured_options = sanitize_hash_values(@tls_options) - configured_options = symbolize_hash_keys(configured_options) - - options.merge!(configured_options) - end - - # Retain backward compatibility until deprecated configs are removed. - options[:ca_file] = @ca_file if @ca_file - options[:ssl_version] = @ssl_version if @ssl_version - - options - end - - def sasl_auths(options={}) - auths = [] - sasl_mechanisms = options[:sasl_mechanisms] || @sasl_mechanisms - sasl_mechanisms.each do |mechanism| - normalized_mechanism = mechanism.downcase.gsub(/-/, '_') - sasl_bind_setup = "sasl_bind_setup_#{normalized_mechanism}" - next unless respond_to?(sasl_bind_setup, true) - initial_credential, challenge_response = send(sasl_bind_setup, options) - auths << { - :method => :sasl, - :initial_credential => initial_credential, - :mechanism => mechanism, - :challenge_response => challenge_response - } - end - auths - end - - def sasl_bind_setup_digest_md5(options) - bind_dn = options[:username] - initial_credential = "" - challenge_response = Proc.new do |cred| - pref = SASL::Preferences.new :digest_uri => "ldap/#{@host}", :username => bind_dn, :has_password? => true, :password => options[:password] - sasl = SASL.new("DIGEST-MD5", pref) - response = sasl.receive("challenge", cred) - response[1] - end - [initial_credential, challenge_response] - end - - def sasl_bind_setup_gss_spnego(options) - bind_dn = options[:username] - psw = options[:password] - raise LdapError.new( "invalid binding information" ) unless (bind_dn && psw) - - nego = proc {|challenge| - t2_msg = Net::NTLM::Message.parse( challenge ) - bind_dn, domain = bind_dn.split('\\').reverse - t2_msg.target_name = Net::NTLM::encode_utf16le(domain) if domain - t3_msg = t2_msg.response( {:user => bind_dn, :password => psw}, {:ntlmv2 => true} ) - t3_msg.serialize - } - [Net::NTLM::Message::Type1.new.serialize, nego] - end - - private - - def default_options - if @disable_verify_certificates - # It is important to explicitly set verify_mode for two reasons: - # 1. The behavior of OpenSSL is undefined when verify_mode is not set. - # 2. The net-ldap gem implementation verifies the certificate hostname - # unless verify_mode is set to VERIFY_NONE. - { verify_mode: OpenSSL::SSL::VERIFY_NONE } - else - OpenSSL::SSL::SSLContext::DEFAULT_PARAMS.dup - end - end - - # Removes keys that have blank values - # - # This gem may not always be in the context of Rails so we - # do this rather than `.blank?`. - def sanitize_hash_values(hash) - hash.delete_if do |_, value| - value.nil? || - (value.is_a?(String) && value !~ /\S/) - end - end - - def symbolize_hash_keys(hash) - hash.keys.each do |key| - hash[key.to_sym] = hash[key] - end - - hash - end - end - end -end From 6c5e77f31f542344d9215a3aafa1a7d4217b1672 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 22 Feb 2023 13:50:04 +0800 Subject: [PATCH 1337/2165] =?UTF-8?q?fix:=20=E5=8D=87=E7=BA=A7=20sidekiq?= =?UTF-8?q?=207=20=E5=90=8E=20redis=20=E6=9C=80=E4=BD=8E=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E4=BE=9D=E8=B5=96=206.2+?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .devcontainer/docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.devcontainer/docker-compose.yml b/.devcontainer/docker-compose.yml index a3bf98e5f..b164a4da6 100755 --- a/.devcontainer/docker-compose.yml +++ b/.devcontainer/docker-compose.yml @@ -27,7 +27,7 @@ services: POSTGRES_PASSWORD: postgres redis: - image: redis:5-alpine + image: redis:7-alpine restart: unless-stopped network_mode: service:db volumes: From c44b9e97daa842b6ae568540ee09a9a6b384d9c6 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 22 Feb 2023 16:11:15 +0800 Subject: [PATCH 1338/2165] =?UTF-8?q?fix:=20=E8=A7=A3=E5=86=B3=20sentry=20?= =?UTF-8?q?=E5=BA=9F=E5=BC=83=E5=8F=98=E9=87=8F=E7=9A=84=E5=8D=87=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/initializers/sentry.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/initializers/sentry.rb b/config/initializers/sentry.rb index 3d69a1a6d..6df4f6fc6 100644 --- a/config/initializers/sentry.rb +++ b/config/initializers/sentry.rb @@ -6,7 +6,7 @@ Sentry.init do |config| config.dsn = ENV['ZEALOT_SENTRY_DNS'] || 'https://133aefa9f52448a1a7900ba9d02f93e1@o333914.ingest.sentry.io/1878137' - config.capture_exception_frame_locals = true + config.include_local_variables = true config.rails.report_rescued_exceptions = true config.breadcrumbs_logger = %i[active_support_logger sentry_logger http_logger] From d2c7e196818fa8998473c8235522ee523338566c Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 22 Feb 2023 17:05:27 +0800 Subject: [PATCH 1339/2165] =?UTF-8?q?chore:=20=E4=BF=AE=E5=A4=8D=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E7=89=88=E6=9C=AC=E5=8F=B7=E7=9A=84=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/publish_release.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/publish_release.yml b/.github/workflows/publish_release.yml index d22b4a00d..4b942b5b5 100644 --- a/.github/workflows/publish_release.yml +++ b/.github/workflows/publish_release.yml @@ -27,7 +27,7 @@ jobs: - name: Get the version id: version - run: echo "GIT_TAG=$(echo ${GITHUB_REF:10}" >> $GITHUB_OUTPUT + run: echo "GIT_TAG=$(echo ${GITHUB_REF:10})" >> $GITHUB_OUTPUT - name: Login to Docker Hub uses: docker/login-action@v2 @@ -62,7 +62,7 @@ jobs: REPLACE_CHINA_MIRROR=false VCS_REF=${{ github.sha }} BUILD_DATE=${{ steps.build_date.outputs.BUILD_DATE }} - TAG=${{ steps.version.outputs.tag }} + TAG=${{ steps.version.outputs.GIT_TAG }} - name: Create Release uses: softprops/action-gh-release@v1 From baae72c69ccaa81ad1fa03c48952d0b82e5b285f Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 22 Feb 2023 17:05:27 +0800 Subject: [PATCH 1340/2165] =?UTF-8?q?chore:=20=E4=BF=AE=E5=A4=8D=E8=8E=B7?= =?UTF-8?q?=E5=8F=96=E7=89=88=E6=9C=AC=E5=8F=B7=E7=9A=84=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/publish_nighty.yml | 5 +++++ .github/workflows/publish_release.yml | 7 ++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/.github/workflows/publish_nighty.yml b/.github/workflows/publish_nighty.yml index f0808885f..24f6a498f 100644 --- a/.github/workflows/publish_nighty.yml +++ b/.github/workflows/publish_nighty.yml @@ -37,6 +37,10 @@ jobs: echo "BUILD_DATE=$(date +'%Y-%m-%d %H:%M:%S %z')" >> $GITHUB_OUTPUT echo "BUILD_DATE_TAG=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT + - name: Get the version + id: version + run: echo "GIT_TAG=$(echo ${GITHUB_REF:10})" >> $GITHUB_OUTPUT + - name: Login to Docker Hub uses: docker/login-action@v2 with: @@ -73,3 +77,4 @@ jobs: REPLACE_CHINA_MIRROR=false VCS_REF=${{ github.sha }} BUILD_DATE=${{ steps.build_date.outputs.BUILD_DATE }} + TAG=${{ steps.version.outputs.GIT_TAG }} diff --git a/.github/workflows/publish_release.yml b/.github/workflows/publish_release.yml index d22b4a00d..3562b17a1 100644 --- a/.github/workflows/publish_release.yml +++ b/.github/workflows/publish_release.yml @@ -27,7 +27,7 @@ jobs: - name: Get the version id: version - run: echo "GIT_TAG=$(echo ${GITHUB_REF:10}" >> $GITHUB_OUTPUT + run: echo "GIT_TAG=$(echo ${GITHUB_REF:10})" >> $GITHUB_OUTPUT - name: Login to Docker Hub uses: docker/login-action@v2 @@ -56,13 +56,14 @@ jobs: labels: ${{ steps.metadata.outputs.labels }} tags: | ${{ steps.metadata.outputs.tags }} - ${{ github.repository }}:${{ steps.version.outputs.tag }} + ${{ github.repository }}:latest + ghcr.io/${{ github.repository }}:latest platforms: linux/amd64,linux/arm64,linux/arm/v7 build-args: | REPLACE_CHINA_MIRROR=false VCS_REF=${{ github.sha }} BUILD_DATE=${{ steps.build_date.outputs.BUILD_DATE }} - TAG=${{ steps.version.outputs.tag }} + TAG=${{ steps.version.outputs.GIT_TAG }} - name: Create Release uses: softprops/action-gh-release@v1 From 923ea1289b5485162a433b89b9cb6c9f12907179 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 22 Feb 2023 18:50:39 +0800 Subject: [PATCH 1341/2165] =?UTF-8?q?fix:=20=E9=99=8D=E7=BA=A7=20ruby=203.?= =?UTF-8?q?0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 11 +++++------ package.json | 2 +- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/Dockerfile b/Dockerfile index 84b5c0e2e..46c7d6b0a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM ruby:3.2-alpine as builder +FROM ruby:3.0-alpine as builder ARG BUILD_PACKAGES="build-base libxml2 libxslt git" ARG DEV_PACKAGES="libxml2-dev libxslt-dev yaml-dev postgresql-dev nodejs npm yarn libwebp-dev libpng-dev tiff-dev gcompat" @@ -51,20 +51,20 @@ RUN SECRET_TOKEN=precompile_placeholder bin/rails assets:precompile # Remove folders not needed in resulting image RUN rm -rf docker node_modules tmp/cache spec .browserslistrc babel.config.js \ package.json postcss.config.js yarn.lock && \ - cd /app/vendor/bundle/ruby/3.2.0 && \ + cd /app/vendor/bundle/ruby/3.0.0 && \ rm -rf cache/*.gem && \ find gems/ -name "*.c" -delete && \ find gems/ -name "*.o" -delete ################################################################################## -FROM ruby:3.2-alpine +FROM ruby:3.1-alpine ARG BUILD_DATE ARG VCS_REF ARG TAG -ARG ZEALOT_VERSION="4.6.0" +ARG ZEALOT_VERSION="4.6.1" ARG REPLACE_CHINA_MIRROR="true" ARG ORIGINAL_REPO_URL="dl-cdn.alpinelinux.org" ARG MIRROR_REPO_URL="mirrors.ustc.edu.cn" @@ -91,8 +91,7 @@ ENV TZ="Asia/Shanghai" \ ZEALOT_VCS_REF="$VCS_REF" \ ZEALOT_VERSION="$ZEALOT_VERSION" \ ZEALOT_BUILD_DATE="$BUILD_DATE" \ - RAILS_ENV="production" \ - RUBY_YJIT_ENABLE="true" + RAILS_ENV="production" # System dependencies RUN set -ex && \ diff --git a/package.json b/package.json index b9332455a..6522fc203 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "zealot", - "version": "4.6.0", + "version": "4.6.1", "private": true, "license": "MIT", "dependencies": { From 8d58b1d0a8136117df18da097540fc18d5bc6585 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 22 Feb 2023 19:21:21 +0800 Subject: [PATCH 1342/2165] =?UTF-8?q?style:=20=E4=BF=AE=E6=95=B4=E9=83=A8?= =?UTF-8?q?=E5=88=86=E9=A1=B5=E9=9D=A2=20footer=20=E7=9A=84=E6=A0=B7?= =?UTF-8?q?=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/channels/_metadata.html.slim | 4 ++-- app/views/channels/_versions.html.slim | 4 ++-- app/views/releases/body/_activity.html.slim | 6 +++--- app/views/releases/not_found.html.slim | 4 ++-- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/app/views/channels/_metadata.html.slim b/app/views/channels/_metadata.html.slim index 23a23946f..88b496898 100644 --- a/app/views/channels/_metadata.html.slim +++ b/app/views/channels/_metadata.html.slim @@ -28,5 +28,5 @@ span.text-muted = t('channels.show.channel_key') - if user_signed_in? - .card-footbar.pl-3.pr-3.pb-3 - a.btn.btn-default.btn-block href="#{edit_app_scheme_channel_path(@channel.scheme.app, @channel.scheme, @channel)}" = t('channels.show.edit_channel') \ No newline at end of file + .card-footer.p-1 + a.btn.btn-block.text-primary href="#{edit_app_scheme_channel_path(@channel.scheme.app, @channel.scheme, @channel)}" = t('channels.show.edit_channel') diff --git a/app/views/channels/_versions.html.slim b/app/views/channels/_versions.html.slim index cd4753ca1..66b1af5e5 100755 --- a/app/views/channels/_versions.html.slim +++ b/app/views/channels/_versions.html.slim @@ -18,6 +18,6 @@ - else .p-3 = t('channels.show.empty_version_shortly') - if @versions.count > 0 - .card-footbar - a.btn.btn-default.btn-block.btn-flat href="#{friendly_channel_versions_path(@channel)}" + .card-footer.p-1 + a.btn.btn-block.text-primary href="#{friendly_channel_versions_path(@channel)}" = t('channels.show.more') diff --git a/app/views/releases/body/_activity.html.slim b/app/views/releases/body/_activity.html.slim index 42105d39c..5ee375af2 100644 --- a/app/views/releases/body/_activity.html.slim +++ b/app/views/releases/body/_activity.html.slim @@ -45,6 +45,6 @@ ruby: channel_path = friendly_channel_overview_path(current_release.channel) - .card-footbar - a.btn.btn-default.btn-block.btn-flat href="#{channel_path}" - = t('releases.show.more') \ No newline at end of file + .card-footer.p-1 + a.btn.btn-block.btn-flat.text-primary href="#{channel_path}" + = t('releases.show.more') diff --git a/app/views/releases/not_found.html.slim b/app/views/releases/not_found.html.slim index f662b5524..b7d229ea7 100644 --- a/app/views/releases/not_found.html.slim +++ b/app/views/releases/not_found.html.slim @@ -13,6 +13,6 @@ li = t('releases.messages.errors.deleted_manually') li = t('releases.messages.errors.deleted_programly') li = t('releases.messages.errors.not_found_really') - .card-footbar + .card-footer.p-0 a.btn.btn-outline-danger.btn-block href="#{@link_href}" - = @link_title \ No newline at end of file + = @link_title From 8cd8ccfedf5a7513ad8b6403a33a99b964b7fa61 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 22 Feb 2023 21:11:52 +0000 Subject: [PATCH 1343/2165] chore(deps-dev): bump ruby-lsp from 0.4.0 to 0.4.1 Bumps [ruby-lsp](https://github.com/Shopify/ruby-lsp) from 0.4.0 to 0.4.1. - [Release notes](https://github.com/Shopify/ruby-lsp/releases) - [Commits](https://github.com/Shopify/ruby-lsp/compare/v0.4.0...v0.4.1) --- updated-dependencies: - dependency-name: ruby-lsp dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index afbf2a0c2..f0aa1de6d 100644 --- a/Gemfile +++ b/Gemfile @@ -116,7 +116,7 @@ group :development do # 调试器 ## VSCode debug: https://marketplace.visualstudio.com/items?itemName=KoichiSasada.vscode-rdbg gem 'debug', '~> 1.7.1' - gem "ruby-lsp", "~> 0.4.0" + gem "ruby-lsp", "~> 0.4.1" # rails 更友好错误输出 gem 'awesome_print' diff --git a/Gemfile.lock b/Gemfile.lock index 3493e56aa..7d8da231f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -390,7 +390,7 @@ GEM activesupport (>= 4.2.0) rack (>= 1.1) rubocop (>= 1.33.0, < 2.0) - ruby-lsp (0.4.0) + ruby-lsp (0.4.1) language_server-protocol (~> 3.17.0) sorbet-runtime syntax_tree (>= 6, < 7) @@ -433,7 +433,7 @@ GEM railties (>= 3.1) slim (>= 3.0, < 5.0) socksify (1.7.1) - sorbet-runtime (0.5.10676) + sorbet-runtime (0.5.10679) sprockets (4.2.0) concurrent-ruby (~> 1.0) rack (>= 2.2.4, < 4) @@ -536,7 +536,7 @@ DEPENDENCIES rqrcode rubocop (>= 0.70) rubocop-rails - ruby-lsp (~> 0.4.0) + ruby-lsp (~> 0.4.1) sentry-rails sentry-ruby sentry-sidekiq From 702ff673515c128984a5e01d98e6fa0fd99d6432 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 22 Feb 2023 21:12:01 +0000 Subject: [PATCH 1344/2165] chore(deps): bump slim-rails from 3.5.1 to 3.6.1 Bumps [slim-rails](https://github.com/slim-template/slim-rails) from 3.5.1 to 3.6.1. - [Release notes](https://github.com/slim-template/slim-rails/releases) - [Changelog](https://github.com/slim-template/slim-rails/blob/master/CHANGELOG.md) - [Commits](https://github.com/slim-template/slim-rails/compare/v3.5.1...v3.6.1) --- updated-dependencies: - dependency-name: slim-rails dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index afbf2a0c2..fa2579675 100644 --- a/Gemfile +++ b/Gemfile @@ -26,7 +26,7 @@ gem 'tiny_appstore_connect', '~> 0.1.7' #path: '/Users/icyleaf/Development/ruby/ # View ## 模板引擎 gem 'jb', '~> 0.8.0' -gem 'slim-rails', '~> 3.5.1' +gem 'slim-rails', '~> 3.6.1' ## 表单生成 gem 'simple_form', '~> 5.2' diff --git a/Gemfile.lock b/Gemfile.lock index 3493e56aa..f7e3bdab3 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -428,10 +428,10 @@ GEM slim (4.1.0) temple (>= 0.7.6, < 0.9) tilt (>= 2.0.6, < 2.1) - slim-rails (3.5.1) + slim-rails (3.6.1) actionpack (>= 3.1) railties (>= 3.1) - slim (>= 3.0, < 5.0) + slim (>= 3.0, < 6.0, != 5.0.0) socksify (1.7.1) sorbet-runtime (0.5.10676) sprockets (4.2.0) @@ -544,7 +544,7 @@ DEPENDENCIES sidekiq-failures (~> 1.0.4) sidekiq-scheduler (~> 5.0.1) simple_form (~> 5.2) - slim-rails (~> 3.5.1) + slim-rails (~> 3.6.1) stimulus-rails (~> 1.2.1) sys-filesystem (~> 1.4.3) tiny_appstore_connect (~> 0.1.7) From 8d957185d02feba7b1d235f060ac6808748176f1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 22 Feb 2023 21:12:11 +0000 Subject: [PATCH 1345/2165] chore(deps): bump pghero from 3.1.0 to 3.2.0 Bumps [pghero](https://github.com/ankane/pghero) from 3.1.0 to 3.2.0. - [Release notes](https://github.com/ankane/pghero/releases) - [Changelog](https://github.com/ankane/pghero/blob/master/CHANGELOG.md) - [Commits](https://github.com/ankane/pghero/compare/v3.1.0...v3.2.0) --- updated-dependencies: - dependency-name: pghero dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index afbf2a0c2..1bcf12545 100644 --- a/Gemfile +++ b/Gemfile @@ -70,7 +70,7 @@ gem 'plist', '~> 3.6.0' ## 系统信息 gem 'sys-filesystem', '~> 1.4.3' gem 'vmstat', '~> 2.3.0' -gem 'pghero', '~> 3.1.0' +gem 'pghero', '~> 3.2.0' ## 异常报错上报 gem 'sentry-ruby' diff --git a/Gemfile.lock b/Gemfile.lock index 3493e56aa..42e232c5e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -289,7 +289,7 @@ GEM parser (3.1.3.0) ast (~> 2.4.1) pg (1.4.5) - pghero (3.1.0) + pghero (3.2.0) activerecord (>= 6) plist (3.6.0) prettier_print (1.2.0) @@ -520,7 +520,7 @@ DEPENDENCIES omniauth-rails_csrf_protection (~> 1.0.1) openssl (~> 3.1.0) pg (>= 0.18, < 2.0) - pghero (~> 3.1.0) + pghero (~> 3.2.0) plist (~> 3.6.0) propshaft (= 0.6.4) pry-rails From 966ddc799160f98a10b6724a745c41b2c907bf6f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 22 Feb 2023 21:13:15 +0000 Subject: [PATCH 1346/2165] chore(deps): bump devise-i18n from 1.10.3 to 1.11.0 Bumps [devise-i18n](https://github.com/tigrish/devise-i18n) from 1.10.3 to 1.11.0. - [Release notes](https://github.com/tigrish/devise-i18n/releases) - [Changelog](https://github.com/tigrish/devise-i18n/blob/master/CHANGELOG.md) - [Commits](https://github.com/tigrish/devise-i18n/compare/v1.10.3...v1.11.0) --- updated-dependencies: - dependency-name: devise-i18n dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index afbf2a0c2..c7ae5c6b2 100644 --- a/Gemfile +++ b/Gemfile @@ -47,7 +47,7 @@ gem 'faraday', '~> 2.7.4' ## 用户认证 gem 'pundit', '~> 2.3.0' gem 'devise', '~> 4.9.0' -gem 'devise-i18n', '~> 1.10.3' +gem 'devise-i18n', '~> 1.11.0' gem 'omniauth', '~> 2.1.1' gem 'omniauth-rails_csrf_protection', '~> 1.0.1' diff --git a/Gemfile.lock b/Gemfile.lock index 3493e56aa..1f8106b5c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -132,8 +132,8 @@ GEM railties (>= 4.1.0) responders warden (~> 1.2.3) - devise-i18n (1.10.3) - devise (>= 4.8.0) + devise-i18n (1.11.0) + devise (>= 4.9.0) dotenv (2.8.1) dotenv-rails (2.8.1) dotenv (= 2.8.1) @@ -497,7 +497,7 @@ DEPENDENCIES cssbundling-rails (~> 1.1) debug (~> 1.7.1) devise (~> 4.9.0) - devise-i18n (~> 1.10.3) + devise-i18n (~> 1.11.0) dotenv-rails faraday (~> 2.7.4) friendly_id (~> 5.5.0) From 11aebd72483a8baf2615a26d73a2daf436ed334d Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 23 Feb 2023 10:20:29 +0800 Subject: [PATCH 1347/2165] =?UTF-8?q?fix:=20=E7=94=A8=E6=88=B7=E6=B3=A8?= =?UTF-8?q?=E9=94=80=E4=BA=8C=E6=AC=A1=E7=A1=AE=E8=AE=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/devise/registrations/edit.html.slim | 2 +- app/views/devise/shared/_error_messages.html.slim | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/views/devise/registrations/edit.html.slim b/app/views/devise/registrations/edit.html.slim index 780b2285d..83bbb4cfb 100644 --- a/app/views/devise/registrations/edit.html.slim +++ b/app/views/devise/registrations/edit.html.slim @@ -47,4 +47,4 @@ ruby: - if demo_mode = button_to t('errors.messages.invaild_in_demo_mode'), root_path, class: 'btn btn-lg btn-primary', disabled: true - else - = button_to t('.cancel_my_account'), user_registration_path, data: { confirm: t('.are_you_sure') }, method: :delete, class: 'btn btn-lg btn-danger' \ No newline at end of file + = button_to t('.cancel_my_account'), user_registration_path, data: { confirm: t('.are_you_sure'), turbo_confirm: t('.are_you_sure') }, method: :delete, class: 'btn btn-lg btn-danger' diff --git a/app/views/devise/shared/_error_messages.html.slim b/app/views/devise/shared/_error_messages.html.slim index 8868e8eb8..57413793e 100644 --- a/app/views/devise/shared/_error_messages.html.slim +++ b/app/views/devise/shared/_error_messages.html.slim @@ -1,5 +1,5 @@ - if resource.errors.any? - .alert.alert-danger.alert-dismissible + .alert.alert-danger.alert-dismissible data-turbo-cache="false" button.close data-dismiss="alert" aria-hidden="true" × h5 i.icon.fas.fa-ban From 4d1eee8633bceddae997a0a48163fd34f7763137 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 23 Feb 2023 10:35:20 +0800 Subject: [PATCH 1348/2165] =?UTF-8?q?style:=20=E8=B0=83=E6=95=B4=E5=BA=94?= =?UTF-8?q?=E7=94=A8=E6=B8=A0=E9=81=93=E8=AF=A6=E6=83=85=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E5=90=84=E5=8C=BA=E5=9F=9F=E7=9A=84=E5=BA=95=E9=83=A8=E6=A0=B7?= =?UTF-8?q?=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/apps/_list.html.slim | 2 +- app/views/channels/_activity.html.slim | 2 +- app/views/channels/_metadata.html.slim | 2 +- app/views/channels/_versions.html.slim | 1 + app/views/layouts/_footer.html.slim | 4 ++-- 5 files changed, 6 insertions(+), 5 deletions(-) diff --git a/app/views/apps/_list.html.slim b/app/views/apps/_list.html.slim index 382761a62..f30df8a02 100644 --- a/app/views/apps/_list.html.slim +++ b/app/views/apps/_list.html.slim @@ -1,7 +1,7 @@ - @apps.each_with_index do |app, i| .col-md-3 .card.widget-app - .card-body + .card-body.pb-1 .text-center = link_to app_icon(app.recently_release, class: 'app-icon elevation-1 img-circle'), app_path(app) h3.profile-username.text-center diff --git a/app/views/channels/_activity.html.slim b/app/views/channels/_activity.html.slim index d0c77211f..e5f17ede9 100644 --- a/app/views/channels/_activity.html.slim +++ b/app/views/channels/_activity.html.slim @@ -26,6 +26,6 @@ li.item.p-3 = raw t('channels.show.not_found') - if @releases.total_pages > 1 - .card-footer.clearfix + .card-footer.pt-3.pb-0 .float-right = paginate @releases diff --git a/app/views/channels/_metadata.html.slim b/app/views/channels/_metadata.html.slim index 88b496898..057324d25 100644 --- a/app/views/channels/_metadata.html.slim +++ b/app/views/channels/_metadata.html.slim @@ -23,7 +23,7 @@ p.d-flex.flex-column.border-bottom.pl-3.pb-3 span.font-weight-bold = @channel.releases.count span.text-muted = t('channels.show.total_releases') - p.d-flex.flex-column.border-bottom.pl-3.pb-3 + p.d-flex.flex-column.pl-3.pb-3.mb-0 span.font-weight-bold = @channel.key span.text-muted = t('channels.show.channel_key') diff --git a/app/views/channels/_versions.html.slim b/app/views/channels/_versions.html.slim index 66b1af5e5..96f65a958 100755 --- a/app/views/channels/_versions.html.slim +++ b/app/views/channels/_versions.html.slim @@ -17,6 +17,7 @@ = @channel.release_version_count(version) - else .p-3 = t('channels.show.empty_version_shortly') + - if @versions.count > 0 .card-footer.p-1 a.btn.btn-block.text-primary href="#{friendly_channel_versions_path(@channel)}" diff --git a/app/views/layouts/_footer.html.slim b/app/views/layouts/_footer.html.slim index a453b47ec..c93f45df1 100644 --- a/app/views/layouts/_footer.html.slim +++ b/app/views/layouts/_footer.html.slim @@ -1,6 +1,6 @@ -footer.main-footer +footer.main-footer.pt-2.pb-2 .float-right.d-none.d-sm-block b Version = link_to " #{Setting.version}", Setting.repo_url - p + p.m-0 | Created with ❤️ with Rails, AdminLTE & font awesome. From a7eceecbb16ecb9b87924e82a73624960cd94ec5 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 23 Feb 2023 10:37:14 +0800 Subject: [PATCH 1349/2165] =?UTF-8?q?fix:=20=E7=BA=A0=E6=AD=A3=E6=AD=A3?= =?UTF-8?q?=E5=BC=8F=E7=8E=AF=E5=A2=83=E5=AE=B9=E5=99=A8=20Ruby=203.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 46c7d6b0a..9dd6dfe76 100644 --- a/Dockerfile +++ b/Dockerfile @@ -58,7 +58,7 @@ RUN rm -rf docker node_modules tmp/cache spec .browserslistrc babel.config.js \ ################################################################################## -FROM ruby:3.1-alpine +FROM ruby:3.0-alpine ARG BUILD_DATE ARG VCS_REF From 21069afdb3a90e1aeebdc17636c54a2dd4e631bc Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 23 Feb 2023 10:49:32 +0800 Subject: [PATCH 1350/2165] =?UTF-8?q?fix:=20=E5=BA=94=E7=94=A8=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E5=9C=A8=E4=B8=BB=E5=8E=86=E5=8F=B2=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E6=97=A0=E6=B3=95=E5=88=A0=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/channels/filters/_list.slim | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/views/channels/filters/_list.slim b/app/views/channels/filters/_list.slim index a1f87bea3..4b99aa386 100644 --- a/app/views/channels/filters/_list.slim +++ b/app/views/channels/filters/_list.slim @@ -33,7 +33,8 @@ = time_ago_in_words(release.created_at) - if user_signed_in? td - a.btn.btn-tool href="#{channel_release_path(@channel, release)}" data-confirm="#{t('channels.messages.confirm.destroy')}" data-method="delete" + = button_to channel_release_path(@channel, release), method: :delete, class: 'btn btn-tool', \ + data: { confirm: t('channels.messages.confirm.destroy'), turbo_confirm: t('channels.messages.confirm.destroy') } do i.fas.fa-trash-alt - else p.p-3 = t('channels.show.empty_version') From 00476ecb9d5eea6b3b5abe15898dbe9520e3c4b3 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 23 Feb 2023 10:49:55 +0800 Subject: [PATCH 1351/2165] =?UTF-8?q?style:=20=E8=B0=83=E6=95=B4=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E9=A1=B5=E9=9D=A2=E5=A4=B4=E9=83=A8=E5=8C=BA=E5=9F=9F?= =?UTF-8?q?=E7=9A=84=E9=97=B4=E8=B7=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/admin/backups/index.html.slim | 16 +++++++++------- app/views/admin/users/index.html.slim | 4 ++-- app/views/admin/web_hooks/index.html.slim | 4 ++-- app/views/debug_files/index.html.slim | 7 +++---- 4 files changed, 16 insertions(+), 15 deletions(-) diff --git a/app/views/admin/backups/index.html.slim b/app/views/admin/backups/index.html.slim index 5c1fffb63..44a7b8cdc 100644 --- a/app/views/admin/backups/index.html.slim +++ b/app/views/admin/backups/index.html.slim @@ -15,13 +15,15 @@ .card .card-body.p-0 table.table.backups - tr - th = t('.key') - th = t('.scopes') - th = t('.schedule') - th = t('.next_schedule_at') - th = t('.enabled') - th = t('.action') + thead + tr + th = t('.key') + th = t('.scopes') + th = t('.schedule') + th = t('.next_schedule_at') + th = t('.enabled') + th = t('.action') + tbody - @backups.each do |backup| tr td = link_to backup.key, admin_backup_path(backup) diff --git a/app/views/admin/users/index.html.slim b/app/views/admin/users/index.html.slim index 00892b8d9..2d3a0375c 100644 --- a/app/views/admin/users/index.html.slim +++ b/app/views/admin/users/index.html.slim @@ -12,8 +12,8 @@ .row .col-md-12 .card - .card-body - table.table.p-0 + .card-body.p-0 + table.table thead tr th = t('.number') diff --git a/app/views/admin/web_hooks/index.html.slim b/app/views/admin/web_hooks/index.html.slim index a457e132a..bab6ca41b 100644 --- a/app/views/admin/web_hooks/index.html.slim +++ b/app/views/admin/web_hooks/index.html.slim @@ -8,8 +8,8 @@ .col-md-12 - if @web_hooks.size > 0 .card - .card-body - table.table.p-0 + .card-body.p-0 + table.table thead tr th = t('.number') diff --git a/app/views/debug_files/index.html.slim b/app/views/debug_files/index.html.slim index a833d7cb2..f72524a11 100644 --- a/app/views/debug_files/index.html.slim +++ b/app/views/debug_files/index.html.slim @@ -16,10 +16,9 @@ - @apps.each do |app| .card .card-header - h3.card-title - = app.name + h3.card-title = app.name .card-tools - ul.nav.nav-pills.ml-auto + ul.nav.nav-pills - DebugFile.device_types.each_with_index do |(value, name), i| li.nav-item a.nav-link class="#{i == 0 ? 'active' : ''}" data-toggle="tab" href="#tab-#{app.id}-#{value.downcase}" = name @@ -33,4 +32,4 @@ h3.card-title = t('debug_files.index.not_found.title') .card-body = t('debug_files.index.not_found.body_html') - == render 'help' \ No newline at end of file + == render 'help' From 7e5617c812d44f9ab0500c804f8f1957ee7dc15e Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 23 Feb 2023 11:32:13 +0800 Subject: [PATCH 1352/2165] =?UTF-8?q?style:=20=E6=9C=8D=E5=8A=A1=E5=9B=BE?= =?UTF-8?q?=E6=A0=87=E6=94=AF=E6=8C=81=E9=BB=91=E6=9A=97=E6=A8=A1=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/assets/images/zealot-icon-dark.png | Bin 0 -> 2872 bytes app/assets/images/zealot-icon-dark@2x.png | Bin 0 -> 3943 bytes app/assets/images/zealot-icon-dark@3x.png | Bin 0 -> 3943 bytes .../images/{touch-icon.png => zealot-icon.png} | Bin .../{touch-icon@2x.png => zealot-icon@2x.png} | Bin .../{touch-icon@3x.png => zealot-icon@3x.png} | Bin app/helpers/apps_helper.rb | 2 +- app/views/layouts/_brand_logo.html.slim | 6 ++++-- app/views/layouts/application.html.slim | 13 +++++++------ app/views/layouts/error.html.slim | 12 ++++++------ app/views/layouts/mailer.html.slim | 12 ++++++------ 11 files changed, 24 insertions(+), 21 deletions(-) create mode 100644 app/assets/images/zealot-icon-dark.png create mode 100644 app/assets/images/zealot-icon-dark@2x.png create mode 100644 app/assets/images/zealot-icon-dark@3x.png rename app/assets/images/{touch-icon.png => zealot-icon.png} (100%) rename app/assets/images/{touch-icon@2x.png => zealot-icon@2x.png} (100%) rename app/assets/images/{touch-icon@3x.png => zealot-icon@3x.png} (100%) diff --git a/app/assets/images/zealot-icon-dark.png b/app/assets/images/zealot-icon-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..3b6ff47671824b6ccace0df591a7f0ef46150d19 GIT binary patch literal 2872 zcmah~XHb*d7X1jlqku?JyaYs=BGMsr#ORf#5UGh$0}7#O=*EB|O_Zh>2!eq0AYDL0 zF%VEfiBb)bh@gaakq+VE`|;kt_kOIi)~r2y_MA1d&v|TXZ6(Mj#RmX@AoP-j{UM|O zfQRew)brFH1^^Brq`A4Rzqyrp;O)TRYp9zZURGWKUcpEYdn+>l&`n8kaPyUM5Hot& zT&p5KfTb1}KNDhUWz^laABvlpXL;4$nNm%^U1yp`W`4~@p1#1?dyP~w5;GO)ctcO8 zAGmZV{^eJ`n50%vXIsF5J+n2qWA$oSf_I_$LTyWWlYd+P)b!=Nj?C2d{OIo15ABE^6pS8JQ%TKK&OFT~&FE~OSX@3uqK$4eZXWn7RM}dw zC47w^tI+L}oAClz;ve3+-RCgf?d2W4wZ+?Qa2t1O=4e+v06U&1yz-Xv;;BXg+*0*S zSu(48GJ$&zyy48j9kMc+YN++5Qc14glB`{xV+|f@!|uj5Sbp{Ip2XTbsa1~_n`Up? z$W{){`u0c!@9=#pG@<$|vi5_>fmbtS259J9lBZ zFL-92=}GWQB`chBtY0p5GsV>rq84eVgppA$h{6&+sd?X5^F_X|wm#FD)16AÐkaAFFp^en{P{_yD{z zSk}4h>i}*Qhza*C4;$q5MuDm4q358_uv;>6>EG2Q|0+E7Op$!eGud-U|FV!)PnKMW z=UVd+HJlA>kJm|RO`5-FN@DqVKBw1FK3vA@h>TIjDE@t!qXF*v(E+femWz(~mM{M15wC#bo>l!H$A+$aG)r{gTZ;*MdDU6^!i)LPK|=*SoSF3_dhY7JuTX;h@< zaQkL$VS$sD;|@r+ABb*7xA6FIx$J%4BpW~TCvQHJJsr!SeK-0x5P}cJ2TkAab)%mR zh6lrgWJB;)e$?<~P5-6p!WzCG$ZWeQyqWWun&BDGct~egr{@)$dGUvFyf@E9+|?-; zO_6YG;p!m-dX`65+?OZ~VFpyxe)(p6{bClEVpK6>`2xFj03!|zHI|f%zta*Cx42$> zH|7dtq8dXAS-ow@c`FJYrD-H)+=;?UPA9#$W3Ezzf4=P(nn_0H*45|yO6($kXWZhe z)=)ksFiXrov+!=dMP{g2s6N|w79d1w=ynD|S^E-`;YD5{crM*NMT1S}20dYV1^eKx zZ@>0^A4c0UP+?Sz-mph2cHf!?>3+s`b--+-DCM#X>n`X31sX6G)#iS%yB`s~#!j6E zn(`0W4;0Y+A3VPFA3hMeUN@lLSFZxfhnfdqdxQiy4i(!Wqz(Z9pnTAO9CSYWfAycD zit;@w0C2s6T9{r(vn}RApSW6z#6g$|ZqGlT!j9kLAgR&JkHCihiSKhg0>XVF-YXk?v-1Husnv+-LA`Dt)LX($Z@TK zf}6%z2@`(9lFJ7x+r}oLn9n3KuK7-1PuOOdn0G$sS=B0ge~b%#MnKG_Iugb2io?wO z3=O_deoIF`i_rWEQ{>yy{I` zDB!QyM=Wv*e--}nDTvnkT3~B$>?O)1bD_mTkY8G6yg8BN#`W-bXS!<%*qHL59iu{p zIub`@#kOza!HxWF$S>17_9fEJM{9i@MA*Bpoiy+G!gYeHaX(m(srD%z?PX^|* zvM5LOV&+?rc^^AMdMi-C^gnJ?qfb=8%|O_(8;TlU_yODP9=Vg*klauxre==+ z(#m;ygHN;hjmWHC1iC-U*xKeo8{!CF zMNxgD0w+(X-Mp+4O%b|7@$=NfkdX#W{JMCbVdl2~iayT?an2YqQZ?}FW>p%bJsuLv zC_@zXRi0Tf>J3V5n{l6QuaFoj%pfMWyZp6hO0V+?DxMwjI2Dy~^mv0TXcRQZab;sq zXk$;oxXVflv)R=Y$!=+Y;_gyunILL_JSaP~1)8e}e22C>p&a`yHsi?g;$^N$%w*nl zN$NS1#5eLQ?#D-^>b#q(biF9a?F0JSb&Codq&%&qC9b9MH5+OW+FV>+!qE(&JHZyf zZH);NjRqV|a^A?Th^ogZp`1&aoJo1PDxT6YjMoy!Bfm7gSshiX`Zb7oXMW1z&}pbA z1R0|Omi&Vl;1#7y;^G`J9He@SpLN!YC)*xC40_Q0Dc4L9ch2grr9lpqF=~9z`NNKS z1n6UzJPXWM4KO2lT9GWY_+GDgDd$7Klr|k;?pG#ilS66~X(M@*+D zl_xon;3DE!?L_73s9y8%y=n3M^|`vI_K2}BAGc2)CSK`&;xG^LWoai)T5@4cgs)*e zWTEP#GQqK0^Wr>DT@3>eI5$pI zHD!_8WT*GcO3V$Ia7es2rN?xvWMd9$m`NO4iD5~9-T>nQo0&{%aaXcjFaCq}g-0M#xsanQK5P0WH z{i!7!#NVe32T7u?fJR8W#1!KCK1^m0NWCBY)Rf*vhe3M7pA3aPRdw+a2&D|4IAEEW|x6>{1PUC|)?`RZh_wBYQLNd-EUeX>Bk-?&^ zbrHQNV$sT);UjBS9%fy*KGao?o;o$=<*ZbayRd6HtngBQXb=^e#dMMePJktO6jy%z z%530vOOggF^@oM)VqV!mM#F{oass$%I|MuRLb--ul4RD zCQ782HH&kk|0&Ym>$)p8_xQ1?AK|5Z=WidruLnuv`5U?4E^gQx(s`;N!3u8oZIq&^-|GDR$v$Hd2c4u~HcJ_DXk&U$(A4mcO008*R zubS8~dEGH_aWH57?;M%{0Fd9;*x1I;*vvT4KQP2T=+%Cp{gG zK%RsP8{{@&mE`*#48D7p$HA`b!L%FNUn5^dws``z(v(TwCkd`lfW}wy;nk28?-?$-DdJ?-~Z=Vg0g-4`ofTgwd)9{dyc2}bqn7=Lj6 zDONp3c#5s@PmW^9iLfizR}OyqbKux8(o`d~;F=XxpIUHax2NBn@3w z4xxNjDjj^~1D<*i5&A{1r*p%EUa#Sn2MUd~%i~=XI1QMdRaE(KZ&&X02P9wi0^ZN`ygToz0 z*D8&oZuIU*Zi`&rwuywxHS@+sA}d14+}=TQgBs>)=9v%nPReG@tBcDNOJ^!{+j~Ct zr08Db*Z%rK_O9nn6J;=xMb54elGdC?3x{?xd^}%H*O7?V3L)ST(g?|~Cwmy>svCoH zO2eBv7UF;0T}I3MNZe6Dca06^hmeli+?IwvxGh1Pc^RCsY;mjOjt$zY7rr@yVsL>j z9cDZF)}96>DscZ>*y1;TYdapWO7#L_nj-LAJ{&Ie`Q2{AOuz2kOsTVRbCdH1Gktdp zLkfeZ;=2&jsv&M6ZoyJ_3(f8fMs8m4+o&o22wL>bv7IP1avo99JLj3C-`3vdX>pw< z@-UJ6mfF2ANQF?k7y{4n^+TX%MNDP9SlQh*R3-MujG=?+3l4?ocXOLsY}Tl`L^*Rq zaoMB*{Jq5W-|xa=E%e7~?swkZ_Sa+gh<1y5{;7B^&u4WbegzpE<%Npwi%7#2>o|g$|D?R-K^-?O&X(OOPt0R)4!hpw3JJ zMxqI>NB-o!>!Z6_^BD;wVn0N&S3pOUQ!)#}4 z=|12Y^xGs2);C^dZk>=NFA-gH6%{`WJu&X(L zs>ypYDlu#-?Rvf5om=WQylh;!mp1)^TJabP)RtG8_NL9;2Yf-|Tq+9?;h?k3n_$WY z(}>5UffVwgWF+Ps2N-QT^Hz&Xf=`$TNKjSGLvuij@4q>5g$zr|>XSxZun}gud>_;= z4ov4r^#DM{M67imU?^Aqt#ca}1pm}$Q@7veqp2;`i04}eE0$IXVMW<)N!mtI*;&f- z*==`Z-ZYI^ZrAhr{q>6kqNN$R5hY^Uo8_CO^MqtyO=VkiE680MN>&@f1)f+ySmX9f@bGxzs$w zD3tE<=N~*fzJ+ltJO`!ooNG+k())7gm{r0q)J&6vik69%=q~f!PrxYn+9d@yk0zOrg*vSFcfRYc2g`WiwoB=+3o$ORJmzMeVq$bIIDj!)ykk3ayXcxR zIV*{}{BT#?Olyh6nT?8gUfmByw|`KgZrRTngIJ8NV;3ov3{<4f?q>CZI$a z_#rw}#+k7;njV<6n^evRh48dmh*XNbNhe!FChc(B7TAsF!xB)1PKV`(Q$NBLE*6Gi zckX?O8HlB%)FfjDifhfS_d_X z);aM`oGJy#MM;0v*Y?<-oKOYz8v3aAs_e1xOlo0fBNjI zL21&Xl1+z#W?h;>b8!{_y@Md@&m6q!Mo%*m`uT<@M$VW>=AXh#B{cy3KLZj@t0hGZ z%^S#!tzdFy2%00~4S&(bM#U3OOKEOW8(mXgphgN~dJ2p8wF@YxU8HGVU2xp3Smqr* zxD7chxSchzU?gF3Y-(wry$^qXU_N&cJhlexk;DA(YI3)`YOXK8luAkeB;H+(Q;aid zT^s+#3st*LaN;CH2zH;umY4s8$Vfq-x?AjH)4KFzA{1QYcYa2};rqGIo?^_f3;Cf9 zJe0*kLVBp{vgw6ZQ>{zHBWW7NGir0EhjLWV9d}YKaMn;g%ZW4%6a4i|`aHGKI{6TN zt!GBlm2X+MFe{j&m7n+UOb3AA#^!#ohqu z(RI#i5c($+)GT+d-mQ?^jcbI91N_U*W23+5eF><%vZwWeN%2!@TFHc7l`#aAVTvr3 zY~`up9?@iCUvHN!?$%61DA`c%)j+x$d+EvlQ4{C)$~L|xBC(RLu~Rj~=UQphg_B6s?rgSK?}AkhUf0 zcKixm-Ty6R6pCihA9_Q|t9t@v?f9T->h*BL4KZ2nF|4Fd(j^uPPXJU6TyJ5B0?StM z>r(fugVy)$x_%bS5*L_a8}^A+0>FvJ`wY=}lD6IGTL1`JsInDylPGHUW% zpX>t38qy;6zGv#nH&iM{tOY`3P4%pH3BQV!bXW*HkzLMSMIRkEL3B+7Zf1O2Cf$@z z4%sfb168^zXd$vkZ4-e_^}$Rs=#>a^0X67w>FVMrpVLD4x=*DH+Yrck`JvKJGiCU6 z(^k{N;J5qn_wTS*F$|^sMP#jpFHyI;qOX2F>yGh;Ms0RF%k+E8mrA;d>&dtasoRub zmNYXf)Hg34bQsG8HAj?Nmb@vpoFRniRy323bOp{tZq|`A?VVgwfij-2BbTu zkjQ+_@}J>o0f#fl;7?W~vP|QARHNdN6YG!6`(wa$qHrA5qz>H<-!Bfh6>z?4G|x4i z8Iw-n6UVNJCN22><-u6(1W}(|uE}S@=i|a~+f7&Cu^Hr~A$eq=2tvW+b@ficU(6$l z=D%o{gX{YFTI-{5s+kB&h->=1!$!-VN)5-3QBRnR9d3rQ-?){7YW#k1iSKfmK;hE6 zZ6oZxbY~#J7>L)6lZQsFkd0ztv~fCWdU#wZ0#4A5{VGcc0 zTdApNxljC;cdF6Qn&ro3nyL=;bOa8QCg3i<`*%3u9D+>MAZFLP1E4;FXY(w*0MJrR z7+#s#e*B%ttza*Hg;JL&{r=UE z#?wiGV`G66X?ky0WXHowcn%)R&ecTez8O`YGO?_5np+4V$?v ueyB6%+j1UrqiI0nL_EuXW88N=u_vGqo7RVjd?9??)O{$ID6aEFld`>6; literal 0 HcmV?d00001 diff --git a/app/assets/images/zealot-icon-dark@3x.png b/app/assets/images/zealot-icon-dark@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..d5119cb54122f0aea79babd29eea5c0f5b07e1e3 GIT binary patch literal 3943 zcmb_ecT^M1vJVhiXyKy?s8mJiMGPXv00EIAE#L8oZIq&^-|GDR$v$Hd2c4u~HcJ_DXk&U$(A4mcO008*R zubS8~dEGH_aWH57?;M%{0Fd9;*x1I;*vvT4KQP2T=+%Cp{gG zK%RsP8{{@&mE`*#48D7p$HA`b!L%FNUn5^dws``z(v(TwCkd`lfW}wy;nk28?-?$-DdJ?-~Z=Vg0g-4`ofTgwd)9{dyc2}bqn7=Lj6 zDONp3c#5s@PmW^9iLfizR}OyqbKux8(o`d~;F=XxpIUHax2NBn@3w z4xxNjDjj^~1D<*i5&A{1r*p%EUa#Sn2MUd~%i~=XI1QMdRaE(KZ&&X02P9wi0^ZN`ygToz0 z*D8&oZuIU*Zi`&rwuywxHS@+sA}d14+}=TQgBs>)=9v%nPReG@tBcDNOJ^!{+j~Ct zr08Db*Z%rK_O9nn6J;=xMb54elGdC?3x{?xd^}%H*O7?V3L)ST(g?|~Cwmy>svCoH zO2eBv7UF;0T}I3MNZe6Dca06^hmeli+?IwvxGh1Pc^RCsY;mjOjt$zY7rr@yVsL>j z9cDZF)}96>DscZ>*y1;TYdapWO7#L_nj-LAJ{&Ie`Q2{AOuz2kOsTVRbCdH1Gktdp zLkfeZ;=2&jsv&M6ZoyJ_3(f8fMs8m4+o&o22wL>bv7IP1avo99JLj3C-`3vdX>pw< z@-UJ6mfF2ANQF?k7y{4n^+TX%MNDP9SlQh*R3-MujG=?+3l4?ocXOLsY}Tl`L^*Rq zaoMB*{Jq5W-|xa=E%e7~?swkZ_Sa+gh<1y5{;7B^&u4WbegzpE<%Npwi%7#2>o|g$|D?R-K^-?O&X(OOPt0R)4!hpw3JJ zMxqI>NB-o!>!Z6_^BD;wVn0N&S3pOUQ!)#}4 z=|12Y^xGs2);C^dZk>=NFA-gH6%{`WJu&X(L zs>ypYDlu#-?Rvf5om=WQylh;!mp1)^TJabP)RtG8_NL9;2Yf-|Tq+9?;h?k3n_$WY z(}>5UffVwgWF+Ps2N-QT^Hz&Xf=`$TNKjSGLvuij@4q>5g$zr|>XSxZun}gud>_;= z4ov4r^#DM{M67imU?^Aqt#ca}1pm}$Q@7veqp2;`i04}eE0$IXVMW<)N!mtI*;&f- z*==`Z-ZYI^ZrAhr{q>6kqNN$R5hY^Uo8_CO^MqtyO=VkiE680MN>&@f1)f+ySmX9f@bGxzs$w zD3tE<=N~*fzJ+ltJO`!ooNG+k())7gm{r0q)J&6vik69%=q~f!PrxYn+9d@yk0zOrg*vSFcfRYc2g`WiwoB=+3o$ORJmzMeVq$bIIDj!)ykk3ayXcxR zIV*{}{BT#?Olyh6nT?8gUfmByw|`KgZrRTngIJ8NV;3ov3{<4f?q>CZI$a z_#rw}#+k7;njV<6n^evRh48dmh*XNbNhe!FChc(B7TAsF!xB)1PKV`(Q$NBLE*6Gi zckX?O8HlB%)FfjDifhfS_d_X z);aM`oGJy#MM;0v*Y?<-oKOYz8v3aAs_e1xOlo0fBNjI zL21&Xl1+z#W?h;>b8!{_y@Md@&m6q!Mo%*m`uT<@M$VW>=AXh#B{cy3KLZj@t0hGZ z%^S#!tzdFy2%00~4S&(bM#U3OOKEOW8(mXgphgN~dJ2p8wF@YxU8HGVU2xp3Smqr* zxD7chxSchzU?gF3Y-(wry$^qXU_N&cJhlexk;DA(YI3)`YOXK8luAkeB;H+(Q;aid zT^s+#3st*LaN;CH2zH;umY4s8$Vfq-x?AjH)4KFzA{1QYcYa2};rqGIo?^_f3;Cf9 zJe0*kLVBp{vgw6ZQ>{zHBWW7NGir0EhjLWV9d}YKaMn;g%ZW4%6a4i|`aHGKI{6TN zt!GBlm2X+MFe{j&m7n+UOb3AA#^!#ohqu z(RI#i5c($+)GT+d-mQ?^jcbI91N_U*W23+5eF><%vZwWeN%2!@TFHc7l`#aAVTvr3 zY~`up9?@iCUvHN!?$%61DA`c%)j+x$d+EvlQ4{C)$~L|xBC(RLu~Rj~=UQphg_B6s?rgSK?}AkhUf0 zcKixm-Ty6R6pCihA9_Q|t9t@v?f9T->h*BL4KZ2nF|4Fd(j^uPPXJU6TyJ5B0?StM z>r(fugVy)$x_%bS5*L_a8}^A+0>FvJ`wY=}lD6IGTL1`JsInDylPGHUW% zpX>t38qy;6zGv#nH&iM{tOY`3P4%pH3BQV!bXW*HkzLMSMIRkEL3B+7Zf1O2Cf$@z z4%sfb168^zXd$vkZ4-e_^}$Rs=#>a^0X67w>FVMrpVLD4x=*DH+Yrck`JvKJGiCU6 z(^k{N;J5qn_wTS*F$|^sMP#jpFHyI;qOX2F>yGh;Ms0RF%k+E8mrA;d>&dtasoRub zmNYXf)Hg34bQsG8HAj?Nmb@vpoFRniRy323bOp{tZq|`A?VVgwfij-2BbTu zkjQ+_@}J>o0f#fl;7?W~vP|QARHNdN6YG!6`(wa$qHrA5qz>H<-!Bfh6>z?4G|x4i z8Iw-n6UVNJCN22><-u6(1W}(|uE}S@=i|a~+f7&Cu^Hr~A$eq=2tvW+b@ficU(6$l z=D%o{gX{YFTI-{5s+kB&h->=1!$!-VN)5-3QBRnR9d3rQ-?){7YW#k1iSKfmK;hE6 zZ6oZxbY~#J7>L)6lZQsFkd0ztv~fCWdU#wZ0#4A5{VGcc0 zTdApNxljC;cdF6Qn&ro3nyL=;bOa8QCg3i<`*%3u9D+>MAZFLP1E4;FXY(w*0MJrR z7+#s#e*B%ttza*Hg;JL&{r=UE z#?wiGV`G66X?ky0WXHowcn%)R&ecTez8O`YGO?_5np+4V$?v ueyB6%+j1UrqiI0nL_EuXW88N=u_vGqo7RVjd?9??)O{$ID6aEFld`>6; literal 0 HcmV?d00001 diff --git a/app/assets/images/touch-icon.png b/app/assets/images/zealot-icon.png similarity index 100% rename from app/assets/images/touch-icon.png rename to app/assets/images/zealot-icon.png diff --git a/app/assets/images/touch-icon@2x.png b/app/assets/images/zealot-icon@2x.png similarity index 100% rename from app/assets/images/touch-icon@2x.png rename to app/assets/images/zealot-icon@2x.png diff --git a/app/assets/images/touch-icon@3x.png b/app/assets/images/zealot-icon@3x.png similarity index 100% rename from app/assets/images/touch-icon@3x.png rename to app/assets/images/zealot-icon@3x.png diff --git a/app/helpers/apps_helper.rb b/app/helpers/apps_helper.rb index 26d5f456a..15bb89093 100644 --- a/app/helpers/apps_helper.rb +++ b/app/helpers/apps_helper.rb @@ -21,7 +21,7 @@ def app_channel_columns(schemes_total) def app_icon(release, options = {}) unless release&.icon && release.icon.file && release.icon.file.exists? - return image_tag('touch-icon.png', **options) + return image_tag('zealot-icon.png', **options) end image_tag(release.icon_url, **options) diff --git a/app/views/layouts/_brand_logo.html.slim b/app/views/layouts/_brand_logo.html.slim index e66c36913..2ebd2ec1d 100644 --- a/app/views/layouts/_brand_logo.html.slim +++ b/app/views/layouts/_brand_logo.html.slim @@ -1,4 +1,6 @@ // Brand Logo a.brand-link href="#{ root_path }" - = image_tag 'touch-icon.png', class: 'brand-image' - span.brand-text.font-weight-light = Setting.site_title \ No newline at end of file + picture + source srcset="#{image_url("zealot-icon-dark.png")}" media="(prefers-color-scheme: dark)" class="brand-image" + = image_tag 'zealot-icon.png', class: 'brand-image' + span.brand-text.font-weight-light = Setting.site_title diff --git a/app/views/layouts/application.html.slim b/app/views/layouts/application.html.slim index 11dda9b6e..1d31edfa3 100644 --- a/app/views/layouts/application.html.slim +++ b/app/views/layouts/application.html.slim @@ -11,11 +11,12 @@ html lang="#{I18n.locale}" title = page_title(yield :title) meta[charset="utf-8"] meta[name="viewport" content="width=device-width, initial-scale=1.0"] - link[rel="apple-touch-icon" sizes="60x60" href="#{asset_path('touch-icon.png')}"] - link[rel="apple-touch-icon" sizes="120x120" href="#{asset_path('touch-icon@2x.png')}"] - link[rel="apple-touch-icon" sizes="180x180" href="#{asset_path('touch-icon@3x.png')}"] - link[rel="icon" type="image/x-icon" href="#{asset_path('touch-icon@3x.png')}"] - == favicon_link_tag 'touch-icon.png' + link[rel="apple-touch-icon" sizes="60x60" href="#{asset_path('zealot-icon.png')}"] + link[rel="apple-touch-icon" sizes="120x120" href="#{asset_path('zealot-icon@2x.png')}"] + link[rel="apple-touch-icon" sizes="180x180" href="#{asset_path('zealot-icon@3x.png')}"] + link[rel="icon" type="image/x-icon" href="#{asset_path('zealot-icon@3x.png')}"] + == favicon_link_tag 'zealot-icon.png' + == favicon_link_tag 'zealot-icon-dark.png', media: "(prefers-color-scheme: dark)" == stylesheet_link_tag 'application', 'data-turbolinks-track': 'reload' == javascript_include_tag 'application', 'data-turbolinks-track': 'reload', defer: true == yield :header_tags @@ -38,4 +39,4 @@ html lang="#{I18n.locale}" == render 'layouts/footer' - if Setting.google_analytics_id.present? - == render 'layouts/google_analytics' \ No newline at end of file + == render 'layouts/google_analytics' diff --git a/app/views/layouts/error.html.slim b/app/views/layouts/error.html.slim index 0cd40be60..d4d4a5529 100644 --- a/app/views/layouts/error.html.slim +++ b/app/views/layouts/error.html.slim @@ -3,11 +3,11 @@ html head title = yield :title meta[name="viewport" content="width=device-width, initial-scale=1.0"] - link[rel="apple-touch-icon" sizes="60x60" href="#{asset_path('touch-icon.png')}"] - link[rel="apple-touch-icon" sizes="120x120" href="#{asset_path('touch-icon@2x.png')}"] - link[rel="apple-touch-icon" sizes="180x180" href="#{asset_path('touch-icon@3x.png')}"] - link[rel="icon" type="image/x-icon" href="#{asset_path('touch-icon@3x.png')}"] - == favicon_link_tag 'touch-icon.png' + link[rel="apple-zealot-icon" sizes="60x60" href="#{asset_path('zealot-icon.png')}"] + link[rel="apple-zealot-icon" sizes="120x120" href="#{asset_path('zealot-icon@2x.png')}"] + link[rel="apple-zealot-icon" sizes="180x180" href="#{asset_path('zealot-icon@3x.png')}"] + link[rel="icon" type="image/x-icon" href="#{asset_path('zealot-icon@3x.png')}"] + == favicon_link_tag 'zealot-icon.png' == stylesheet_link_tag 'application', 'data-turbolinks-track': 'reload' == render 'layouts/dark_mode', appearance: Setting.site_appearance == javascript_include_tag 'application', 'data-turbolinks-track': 'reload', defer: true @@ -39,4 +39,4 @@ html input.form-control name="search" placeholder="Search" type="text" / .input-group-append button.btn.btn-warning name="submit" type="submit" - i.fas.fa-search \ No newline at end of file + i.fas.fa-search diff --git a/app/views/layouts/mailer.html.slim b/app/views/layouts/mailer.html.slim index e9b587297..4fe68058a 100644 --- a/app/views/layouts/mailer.html.slim +++ b/app/views/layouts/mailer.html.slim @@ -2,11 +2,11 @@ doctype html html head title = yield :title - link[rel="apple-touch-icon" sizes="60x60" href="#{asset_path('touch-icon.png')}"] - link[rel="apple-touch-icon" sizes="120x120" href="#{asset_path('touch-icon@2x.png')}"] - link[rel="apple-touch-icon" sizes="180x180" href="#{asset_path('touch-icon@3x.png')}"] - link[rel="icon" type="image/x-icon" href="#{asset_path('touch-icon@3x.png')}"] - == favicon_link_tag 'touch-icon.png' + link[rel="apple-zealot-icon" sizes="60x60" href="#{asset_path('zealot-icon.png')}"] + link[rel="apple-zealot-icon" sizes="120x120" href="#{asset_path('zealot-icon@2x.png')}"] + link[rel="apple-zealot-icon" sizes="180x180" href="#{asset_path('zealot-icon@3x.png')}"] + link[rel="icon" type="image/x-icon" href="#{asset_path('zealot-icon@3x.png')}"] + == favicon_link_tag 'zealot-icon.png' == stylesheet_link_tag 'application', 'data-turbolinks-track': 'reload' == javascript_include_tag 'application', 'data-turbolinks-track': 'reload', defer: true == csrf_meta_tags @@ -22,4 +22,4 @@ html .card-header.text-center = link_to Setting.site_title, Setting.site_domain, class: 'h1' .card-body - = yield \ No newline at end of file + = yield From 156f62bd2c4f6b3bc0ec1b3aa181bd0142301798 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 23 Feb 2023 12:27:44 +0800 Subject: [PATCH 1353/2165] =?UTF-8?q?chore(ci):=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E6=9E=84=E5=BB=BA=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/publish_nighty.yml | 19 +++++++++---------- .github/workflows/publish_release.yml | 5 ----- 2 files changed, 9 insertions(+), 15 deletions(-) diff --git a/.github/workflows/publish_nighty.yml b/.github/workflows/publish_nighty.yml index 6ee4b8b69..9805d7a72 100644 --- a/.github/workflows/publish_nighty.yml +++ b/.github/workflows/publish_nighty.yml @@ -14,6 +14,10 @@ on: - '*.yaml' branches: - develop + +env: + DOCKER_TAG: nightly + jobs: push_to_registry: name: Push Docker image to multiple registries @@ -37,10 +41,6 @@ jobs: echo "BUILD_DATE=$(date +'%Y-%m-%d %H:%M:%S %z')" >> $GITHUB_OUTPUT echo "BUILD_DATE_TAG=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT - - name: Get the version - id: version - run: echo "GIT_TAG=$(echo ${GITHUB_REF:10})" >> $GITHUB_OUTPUT - - name: Login to Docker Hub uses: docker/login-action@v2 with: @@ -67,14 +67,13 @@ jobs: push: true labels: ${{ steps.metadata.outputs.labels }} tags: | - ${{ steps.metadata.outputs.tags }} - ${{ github.repository }}:nightly - ${{ github.repository }}:nightly-${{ steps.build_date.outputs.BUILD_DATE_TAG }} - ghcr.io/${{ github.repository }}:nightly - ghcr.io/${{ github.repository }}:nightly-${{ steps.build_date.outputs.BUILD_DATE_TAG }} + ${{ github.repository }}:${{ env.DOCKER_TAG }} + ${{ github.repository }}:${{ env.DOCKER_TAG }}-${{ steps.build_date.outputs.BUILD_DATE_TAG }} + ghcr.io/${{ github.repository }}:${{ env.DOCKER_TAG }} + ghcr.io/${{ github.repository }}:${{ env.DOCKER_TAG }}-${{ steps.build_date.outputs.BUILD_DATE_TAG }} platforms: linux/amd64,linux/arm64,linux/arm/v7 build-args: | REPLACE_CHINA_MIRROR=false VCS_REF=${{ github.sha }} BUILD_DATE=${{ steps.build_date.outputs.BUILD_DATE }} - TAG=${{ steps.version.outputs.GIT_TAG }} + TAG=${{ env.DOCKER_TAG }} diff --git a/.github/workflows/publish_release.yml b/.github/workflows/publish_release.yml index e951c43eb..5064b360c 100644 --- a/.github/workflows/publish_release.yml +++ b/.github/workflows/publish_release.yml @@ -25,10 +25,6 @@ jobs: id: build_date run: echo "BUILD_DATE=$(date +'%Y-%m-%d %H:%M:%S %z')" >> $GITHUB_OUTPUT - - name: Get the version - id: version - run: echo "GIT_TAG=$(echo ${GITHUB_REF:10})" >> $GITHUB_OUTPUT - - name: Login to Docker Hub uses: docker/login-action@v2 with: @@ -63,7 +59,6 @@ jobs: REPLACE_CHINA_MIRROR=false VCS_REF=${{ github.sha }} BUILD_DATE=${{ steps.build_date.outputs.BUILD_DATE }} - TAG=${{ steps.version.outputs.GIT_TAG }} - name: Create Release uses: softprops/action-gh-release@v1 From da4afe889a14d30219b5c2b831eed063fbc375e7 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 23 Feb 2023 14:37:06 +0800 Subject: [PATCH 1354/2165] =?UTF-8?q?feat:=20=E7=B3=BB=E7=BB=9F=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E5=B1=95=E7=A4=BA=20docker=20tag=20=E6=A0=87=E7=AD=BE?= =?UTF-8?q?=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/admin/system_info_controller.rb | 1 - app/helpers/admin/setting_helper.rb | 13 ++++++++++--- .../controllers/admin/new_release_controller.js | 5 ++--- app/views/admin/system_info/index.html.slim | 6 +++--- 4 files changed, 15 insertions(+), 10 deletions(-) diff --git a/app/controllers/admin/system_info_controller.rb b/app/controllers/admin/system_info_controller.rb index 2f5b25fcd..d338833f8 100644 --- a/app/controllers/admin/system_info_controller.rb +++ b/app/controllers/admin/system_info_controller.rb @@ -125,7 +125,6 @@ def set_server_info @server = { os_info: Etc.uname.values.join(' '), ruby_version: RUBY_DESCRIPTION, - zealot_version: Setting.version, zealot_vcs_ref: Setting.vcs_ref, build_date: Setting.build_date, cpu: cpu&.length, diff --git a/app/helpers/admin/setting_helper.rb b/app/helpers/admin/setting_helper.rb index f59ef5e13..fbea24166 100644 --- a/app/helpers/admin/setting_helper.rb +++ b/app/helpers/admin/setting_helper.rb @@ -7,14 +7,21 @@ def vcs_ref_link(ref) link_to ref, github_repo_compare_commit(ref, base), target: :blank end + def zealot_version(suffix: false) + version = Setting.version + return version if !docker_tag? || !suffix + + "#{version}-#{ENV['DOCKER_TAG']}" + end + private def github_repo_compare_commit(target, base) "#{Setting.repo_url}/compare/#{base}...#{target}" end - def docker_nightly_tag? - ENV['DOCKER_TAG'] == 'nightly' + def docker_tag? + ENV['DOCKER_TAG'].present? end end -end \ No newline at end of file +end diff --git a/app/javascript/controllers/admin/new_release_controller.js b/app/javascript/controllers/admin/new_release_controller.js index d56df9c37..d332515fa 100644 --- a/app/javascript/controllers/admin/new_release_controller.js +++ b/app/javascript/controllers/admin/new_release_controller.js @@ -1,7 +1,6 @@ import { Controller } from "@hotwired/stimulus" import { compare } from "compare-versions" -const DEVELLOPMENT = "development" const PROJECT_URL = "https://github.com/tryzealot/zealot" const VERSION_URL = "https://api.github.com/repos/tryzealot/zealot/releases/latest" @@ -10,7 +9,7 @@ export default class extends Controller { static targets = ["newVersion"] connect() { - if (this.versionValue === DEVELLOPMENT) { + if (Zealot.isDevelopment) { this.render(this.titleValue, PROJECT_URL) } else { this.check() @@ -36,4 +35,4 @@ export default class extends Controller { this.newVersionTarget.innerHTML = "" + "" + title + "" } -} \ No newline at end of file +} diff --git a/app/views/admin/system_info/index.html.slim b/app/views/admin/system_info/index.html.slim index 317976f13..a457dc9f0 100644 --- a/app/views/admin/system_info/index.html.slim +++ b/app/views/admin/system_info/index.html.slim @@ -14,11 +14,11 @@ dt = t('.zealot_version') dd[ data-controller="admin-new-release" - data-admin-new-release-version-value="#{@server[:zealot_version]}" + data-admin-new-release-version-value="#{Setting.version}" data-admin-new-release-title-value="#{Rails.env.development? ? t('.dev_new_version') : t('.new_version')}" ] pre - #current-version = @server[:zealot_version] + #current-version = zealot_version(suffix: true) #new-version data-admin-new-release-target="newVersion" - if @server[:zealot_vcs_ref] dt = t('.vcs_ref') @@ -149,4 +149,4 @@ - @gems.each do |name, version| tr td = name - td = version \ No newline at end of file + td = version From e6398fa6568940d821c85e050def64d9379988ce Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 23 Feb 2023 14:43:23 +0800 Subject: [PATCH 1355/2165] =?UTF-8?q?chore:=20=E9=AB=98=E7=BA=A7=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=20docker/metadata-action?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/publish_nighty.yml | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/.github/workflows/publish_nighty.yml b/.github/workflows/publish_nighty.yml index 9805d7a72..8efc7333d 100644 --- a/.github/workflows/publish_nighty.yml +++ b/.github/workflows/publish_nighty.yml @@ -58,7 +58,12 @@ jobs: id: metadata uses: docker/metadata-action@v4 with: - images: ghcr.io/${{ github.repository }} + images: | + ${{ github.repository }} + ghcr.io/${{ github.repository }} + tags: | + type=raw,value=${{ env.DOCKER_TAG }} + type=raw,value=${{ env.DOCKER_TAG }}-${{ steps.build_date.outputs.BUILD_DATE_TAG }} - name: Build and Push uses: docker/build-push-action@v4 @@ -66,11 +71,7 @@ jobs: context: . push: true labels: ${{ steps.metadata.outputs.labels }} - tags: | - ${{ github.repository }}:${{ env.DOCKER_TAG }} - ${{ github.repository }}:${{ env.DOCKER_TAG }}-${{ steps.build_date.outputs.BUILD_DATE_TAG }} - ghcr.io/${{ github.repository }}:${{ env.DOCKER_TAG }} - ghcr.io/${{ github.repository }}:${{ env.DOCKER_TAG }}-${{ steps.build_date.outputs.BUILD_DATE_TAG }} + tags: ${{ steps.metadata.outputs.tags }} platforms: linux/amd64,linux/arm64,linux/arm/v7 build-args: | REPLACE_CHINA_MIRROR=false From 30e6dbc9d8a3cdc83e5a6fec8fdbd4db03906e22 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 23 Feb 2023 14:43:23 +0800 Subject: [PATCH 1356/2165] =?UTF-8?q?chore:=20=E9=AB=98=E7=BA=A7=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=20docker/metadata-action?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/publish_nighty.yml | 17 +++++++++-------- .github/workflows/publish_release.yml | 16 ++++++++-------- 2 files changed, 17 insertions(+), 16 deletions(-) diff --git a/.github/workflows/publish_nighty.yml b/.github/workflows/publish_nighty.yml index 9805d7a72..dfeef930c 100644 --- a/.github/workflows/publish_nighty.yml +++ b/.github/workflows/publish_nighty.yml @@ -5,6 +5,7 @@ on: - '.devcontainer/*' - '.github/*.yml' - '.github/workflows/publish_codespace.yml' + - '.github/workflows/publish_release.yml' - '*.md' - '.*' - 'LICENSE' @@ -38,7 +39,6 @@ jobs: - name: Get build date id: build_date run: | - echo "BUILD_DATE=$(date +'%Y-%m-%d %H:%M:%S %z')" >> $GITHUB_OUTPUT echo "BUILD_DATE_TAG=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT - name: Login to Docker Hub @@ -58,7 +58,12 @@ jobs: id: metadata uses: docker/metadata-action@v4 with: - images: ghcr.io/${{ github.repository }} + images: | + ${{ github.repository }} + ghcr.io/${{ github.repository }} + tags: | + type=raw,value=${{ env.DOCKER_TAG }} + type=raw,value=${{ env.DOCKER_TAG }}-${{ steps.build_date.outputs.BUILD_DATE_TAG }} - name: Build and Push uses: docker/build-push-action@v4 @@ -66,14 +71,10 @@ jobs: context: . push: true labels: ${{ steps.metadata.outputs.labels }} - tags: | - ${{ github.repository }}:${{ env.DOCKER_TAG }} - ${{ github.repository }}:${{ env.DOCKER_TAG }}-${{ steps.build_date.outputs.BUILD_DATE_TAG }} - ghcr.io/${{ github.repository }}:${{ env.DOCKER_TAG }} - ghcr.io/${{ github.repository }}:${{ env.DOCKER_TAG }}-${{ steps.build_date.outputs.BUILD_DATE_TAG }} + tags: ${{ steps.metadata.outputs.tags }} platforms: linux/amd64,linux/arm64,linux/arm/v7 build-args: | REPLACE_CHINA_MIRROR=false VCS_REF=${{ github.sha }} - BUILD_DATE=${{ steps.build_date.outputs.BUILD_DATE }} TAG=${{ env.DOCKER_TAG }} + BUILD_DATE=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.created'] }} diff --git a/.github/workflows/publish_release.yml b/.github/workflows/publish_release.yml index 5064b360c..2f0c60ebc 100644 --- a/.github/workflows/publish_release.yml +++ b/.github/workflows/publish_release.yml @@ -21,10 +21,6 @@ jobs: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - - name: Get build date - id: build_date - run: echo "BUILD_DATE=$(date +'%Y-%m-%d %H:%M:%S %z')" >> $GITHUB_OUTPUT - - name: Login to Docker Hub uses: docker/login-action@v2 with: @@ -42,7 +38,13 @@ jobs: id: metadata uses: docker/metadata-action@v4 with: - images: ghcr.io/${{ github.repository }} + images: | + ${{ github.repository }} + ghcr.io/${{ github.repository }} + flavor: | + latest=auto + tags: | + type=ref,event=tag - name: Build and Push uses: docker/build-push-action@v4 @@ -52,13 +54,11 @@ jobs: labels: ${{ steps.metadata.outputs.labels }} tags: | ${{ steps.metadata.outputs.tags }} - ${{ github.repository }}:latest - ghcr.io/${{ github.repository }}:latest platforms: linux/amd64,linux/arm64,linux/arm/v7 build-args: | REPLACE_CHINA_MIRROR=false VCS_REF=${{ github.sha }} - BUILD_DATE=${{ steps.build_date.outputs.BUILD_DATE }} + BUILD_DATE=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.created'] }} - name: Create Release uses: softprops/action-gh-release@v1 From 4b540c79188624dff9b5ae6b62cf4773b0220cef Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 23 Feb 2023 16:02:20 +0800 Subject: [PATCH 1357/2165] =?UTF-8?q?style:=20=E9=A1=B5=E9=9D=A2=E5=BA=95?= =?UTF-8?q?=E9=83=A8=E7=89=88=E6=9C=AC=E5=8F=B7=E5=B1=95=E7=A4=BA=20docker?= =?UTF-8?q?=20tag?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/admin/setting_helper.rb | 2 +- app/views/admin/system_info/index.html.slim | 2 +- app/views/layouts/_footer.html.slim | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/helpers/admin/setting_helper.rb b/app/helpers/admin/setting_helper.rb index fbea24166..78656a680 100644 --- a/app/helpers/admin/setting_helper.rb +++ b/app/helpers/admin/setting_helper.rb @@ -3,7 +3,7 @@ module Admin module SettingHelper def vcs_ref_link(ref) - base = Setting.version == 'development' ? 'main' : Setting.version + base = Rails.env.development? ? 'main' : Setting.version link_to ref, github_repo_compare_commit(ref, base), target: :blank end diff --git a/app/views/admin/system_info/index.html.slim b/app/views/admin/system_info/index.html.slim index a457dc9f0..ab60a1479 100644 --- a/app/views/admin/system_info/index.html.slim +++ b/app/views/admin/system_info/index.html.slim @@ -14,7 +14,7 @@ dt = t('.zealot_version') dd[ data-controller="admin-new-release" - data-admin-new-release-version-value="#{Setting.version}" + data-admin-new-release-version-value="#{zealot_version}" data-admin-new-release-title-value="#{Rails.env.development? ? t('.dev_new_version') : t('.new_version')}" ] pre diff --git a/app/views/layouts/_footer.html.slim b/app/views/layouts/_footer.html.slim index c93f45df1..ee07f644b 100644 --- a/app/views/layouts/_footer.html.slim +++ b/app/views/layouts/_footer.html.slim @@ -1,6 +1,6 @@ footer.main-footer.pt-2.pb-2 .float-right.d-none.d-sm-block b Version - = link_to " #{Setting.version}", Setting.repo_url + = link_to " #{zealot_version(suffix: true)}", Setting.repo_url p.m-0 | Created with ❤️ with Rails, AdminLTE & font awesome. From 7c9186ca40fdb6611d064a8363812503c566c3d5 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 23 Feb 2023 16:07:17 +0800 Subject: [PATCH 1358/2165] =?UTF-8?q?chore:=20=E5=8D=87=E7=BA=A7=20redis?= =?UTF-8?q?=20=E8=87=B3=205.0.6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 11 ++--------- Gemfile.lock | 5 +++-- 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/Gemfile b/Gemfile index eadae909f..69b51f34c 100644 --- a/Gemfile +++ b/Gemfile @@ -11,7 +11,7 @@ gem 'rake', '~> 13.0.4' # DB & Cache gem 'pg', '>= 0.18', '< 2.0' -gem 'redis', '~> 4.8.1' +gem 'redis', '~> 5.0.6' # Logger gem 'lograge', '~> 0.12.0' @@ -21,7 +21,7 @@ gem 'active_model_serializers', '~> 0.10.13' gem 'graphql', '~> 2.0.17' gem 'rack-cors', '~> 2.0.0' gem 'health_check', '~> 3.1.0' -gem 'tiny_appstore_connect', '~> 0.1.7' #path: '/Users/icyleaf/Development/ruby/tiny_appstore_connect' +gem 'tiny_appstore_connect', '~> 0.1.7' # View ## 模板引擎 @@ -54,15 +54,8 @@ gem 'omniauth-rails_csrf_protection', '~> 1.0.1' gem 'omniauth-google-oauth2', '~> 1.0.1' gem 'omniauth-gitlab', '~> 3.0.0' gem 'omniauth-feishu', '~> 0.1.8' - -# FIXME: copy to ./lib/omniauth/strategies gem 'gitlab_omniauth-ldap', '~> 2.2.0', require: 'omniauth-ldap' -# ldap dependencies -# gem 'net-ldap', '~> 0.17' -# gem 'pyu-ruby-sasl', '>= 0.0.3.3', '< 0.1' -# gem 'rubyntlm', '~> 0.5' - ## UDID gem 'openssl', '~> 3.1.0' gem 'plist', '~> 3.6.0' diff --git a/Gemfile.lock b/Gemfile.lock index eaa9cd99c..17514a125 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -358,7 +358,8 @@ GEM rb-fsevent (0.11.2) rb-inotify (0.10.1) ffi (~> 1.0) - redis (4.8.1) + redis (5.0.6) + redis-client (>= 0.9.0) redis-client (0.12.2) connection_pool regexp_parser (2.6.1) @@ -532,7 +533,7 @@ DEPENDENCIES rails-i18n (~> 7.0.5) rails-settings-cached (~> 2.8.3) rake (~> 13.0.4) - redis (~> 4.8.1) + redis (~> 5.0.6) rqrcode rubocop (>= 0.70) rubocop-rails From 77a345530ecc7349acf2194ac3f6b8c5c1f31b8c Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 23 Feb 2023 16:15:15 +0800 Subject: [PATCH 1359/2165] =?UTF-8?q?chore:=20=E6=9E=84=E5=BB=BA=E6=97=A5?= =?UTF-8?q?=E6=9C=9F=E4=BD=BF=E7=94=A8=E6=AD=A3=E7=A1=AE=E5=8F=98=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/publish_nighty.yml | 2 +- .github/workflows/publish_release.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/publish_nighty.yml b/.github/workflows/publish_nighty.yml index dfeef930c..a64c493b1 100644 --- a/.github/workflows/publish_nighty.yml +++ b/.github/workflows/publish_nighty.yml @@ -77,4 +77,4 @@ jobs: REPLACE_CHINA_MIRROR=false VCS_REF=${{ github.sha }} TAG=${{ env.DOCKER_TAG }} - BUILD_DATE=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.created'] }} + BUILD_DATE=${{ fromJSON(steps.metadata.outputs.json).labels['org.opencontainers.image.created'] }} diff --git a/.github/workflows/publish_release.yml b/.github/workflows/publish_release.yml index 2f0c60ebc..4d492b8c7 100644 --- a/.github/workflows/publish_release.yml +++ b/.github/workflows/publish_release.yml @@ -58,7 +58,7 @@ jobs: build-args: | REPLACE_CHINA_MIRROR=false VCS_REF=${{ github.sha }} - BUILD_DATE=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.created'] }} + BUILD_DATE=${{ fromJSON(steps.metadata.outputs.json).labels['org.opencontainers.image.created'] }} - name: Create Release uses: softprops/action-gh-release@v1 From 529173ad99833702276aa7d09ed95cdbf8a01efe Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 23 Feb 2023 17:19:42 +0800 Subject: [PATCH 1360/2165] =?UTF-8?q?feat:=20=E7=8E=AF=E5=A2=83=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E5=B1=95=E7=A4=BA=E4=BE=9D=E8=B5=96=E6=9C=8D=E5=8A=A1?= =?UTF-8?q?=E7=9A=84=E7=89=88=E6=9C=AC=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/system_info_controller.rb | 26 ++++++++++++++++--- app/views/admin/system_info/index.html.slim | 2 +- config/locales/zealot/en.yml | 4 +-- config/locales/zealot/zh-CN.yml | 4 +-- 4 files changed, 28 insertions(+), 8 deletions(-) diff --git a/app/controllers/admin/system_info_controller.rb b/app/controllers/admin/system_info_controller.rb index d338833f8..0c34e5405 100644 --- a/app/controllers/admin/system_info_controller.rb +++ b/app/controllers/admin/system_info_controller.rb @@ -87,9 +87,9 @@ def set_gems def set_services @services ||= { - redis: HealthCheck::RedisHealthCheck.check, - database: HealthCheck::Utils.get_database_version.present?, - sidekiq: HealthCheck::SidekiqHealthCheck.check, + redis: redis_version, + database: db_version, + sidekiq: sidekiq_version, } end @@ -170,6 +170,26 @@ def diskspace @diskspace = nil end + def db_version + return false unless HealthCheck::Utils.get_database_version.present? + + version = ActiveRecord::Base.connection.select_value("SELECT version()") + version.match(/^PostgreSQL\s((\d+[.]?)+)\s/)[1] + end + + def redis_version + @redis_client ||= Redis.new(url: Rails.application.config.cache_store.last[:url]) + return false if @redis_client.ping != 'PONG' + + @redis_client.info['redis_version'] + end + + def sidekiq_version + return false unless HealthCheck::SidekiqHealthCheck.check + + Gem::Specification.find_by_name('sidekiq').version + end + def percent(value, n) value.to_f / n.to_f * 100.0 end diff --git a/app/views/admin/system_info/index.html.slim b/app/views/admin/system_info/index.html.slim index ab60a1479..ce0c0a0e6 100644 --- a/app/views/admin/system_info/index.html.slim +++ b/app/views/admin/system_info/index.html.slim @@ -97,7 +97,7 @@ table.table - @services.each do |name, health| tr - td = name + td = "#{name} #{health}" td style="width: 20px" - if health i.fas.fa-check.text-green diff --git a/config/locales/zealot/en.yml b/config/locales/zealot/en.yml index c480ec68d..be4e61c5b 100644 --- a/config/locales/zealot/en.yml +++ b/config/locales/zealot/en.yml @@ -146,8 +146,8 @@ en: title: System information index: title: :admin.system_info.title - zealot_version: Zealot version - vcs_ref: VCS Ref + zealot_version: Version + vcs_ref: Git Ref build_date: Build date server_info: Server info found_new_version: 'Found new version: %{version}' diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index c25e771ff..66b861e08 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -164,8 +164,8 @@ zh-CN: title: 环境信息 index: title: :'admin.system_info.title' - zealot_version: Zealot 版本 - vcs_ref: 哈希值 + zealot_version: 版本号 + vcs_ref: Git 哈希值 build_date: 构建日期 server_info: 服务器信息 found_new_version: '发现新版本: %{version}' From 22f27837d17fc3da464c2fbf1fbd68b85c582335 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 23 Feb 2023 17:27:43 +0800 Subject: [PATCH 1361/2165] =?UTF-8?q?style:=20=E8=A7=A3=E5=86=B3=E9=A1=B5?= =?UTF-8?q?=E7=A0=81=E5=99=A8=E5=BA=95=E9=83=A8=E8=BF=87=E9=AB=98=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/assets/stylesheets/application.sass.scss | 2 +- app/assets/stylesheets/layout.scss | 4 ++++ app/views/channels/_activity.html.slim | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/app/assets/stylesheets/application.sass.scss b/app/assets/stylesheets/application.sass.scss index e7603fcdb..4a7bd034e 100644 --- a/app/assets/stylesheets/application.sass.scss +++ b/app/assets/stylesheets/application.sass.scss @@ -9,4 +9,4 @@ @import 'channel'; @import 'debug_files'; @import 'devise'; -@import 'admin'; \ No newline at end of file +@import 'admin'; diff --git a/app/assets/stylesheets/layout.scss b/app/assets/stylesheets/layout.scss index 3bf1b905d..5901fb01e 100644 --- a/app/assets/stylesheets/layout.scss +++ b/app/assets/stylesheets/layout.scss @@ -20,6 +20,10 @@ margin-top: -0.1rem; } +ul.pagination { + margin: 0; +} + .card-body { .table { margin-bottom: 0; diff --git a/app/views/channels/_activity.html.slim b/app/views/channels/_activity.html.slim index e5f17ede9..5eb941802 100644 --- a/app/views/channels/_activity.html.slim +++ b/app/views/channels/_activity.html.slim @@ -26,6 +26,6 @@ li.item.p-3 = raw t('channels.show.not_found') - if @releases.total_pages > 1 - .card-footer.pt-3.pb-0 + .card-footer .float-right = paginate @releases From b900df3819acb52256bd4b386752bc29aa2a7b9b Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 23 Feb 2023 17:31:40 +0800 Subject: [PATCH 1362/2165] =?UTF-8?q?style:=20=E5=BA=94=E7=94=A8=E5=9B=BE?= =?UTF-8?q?=E6=A0=87=E5=90=84=E9=A1=B5=E9=9D=A2=E6=A0=B7=E5=BC=8F=E7=BB=9F?= =?UTF-8?q?=E4=B8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/channels/_activity.html.slim | 5 ++--- app/views/layouts/_main_sidebar.html.slim | 4 ++-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/app/views/channels/_activity.html.slim b/app/views/channels/_activity.html.slim index 5eb941802..5849f3723 100644 --- a/app/views/channels/_activity.html.slim +++ b/app/views/channels/_activity.html.slim @@ -13,10 +13,9 @@ - @releases.each do |release| li.item .product-img - = app_icon(release, class: 'img-circle') + = app_icon(release, class: 'app-icon img-circle img-bordered-sm') .product-info - a.product-title href="javascript:void(0)" - = link_to release.name || release.app_name, friendly_channel_release_path(release.channel, release) + = link_to release.name || release.app_name, friendly_channel_release_path(release.channel, release) small span.badge.badge-light.float-right data-toggle="tooltip" title="#{release.created_at}" = time_ago_in_words(release.created_at) diff --git a/app/views/layouts/_main_sidebar.html.slim b/app/views/layouts/_main_sidebar.html.slim index 985a9eda1..9bfd58b90 100644 --- a/app/views/layouts/_main_sidebar.html.slim +++ b/app/views/layouts/_main_sidebar.html.slim @@ -1,6 +1,6 @@ .sidebar nav.mt-2 - ul.nav.nav-pills.nav-sidebar.nav-child-indent.flex-column data-widget="treeview" role="menu" + ul.nav.nav-pills.nav-sidebar.flex-column data-widget="treeview" role="menu" li.nav-header = t('function_section') li class="nav-item" a.nav-link href="#{root_path}" class="#{active_class(root_path)}" @@ -47,7 +47,7 @@ a.nav-link href="#{admin_settings_path}" class="#{active_class(admin_settings_path)}" i.nav-icon.fas.fa-cog p = t('admin.settings.title') - li.nav-item.has-treeview class="#{active_class([admin_system_info_index_path, admin_logs_path, admin_background_jobs_path, admin_database_analytics_path], 'menu-open')}" + li.nav-item class="#{active_class([admin_system_info_index_path, admin_logs_path, admin_background_jobs_path, admin_database_analytics_path], 'menu-open')}" a.nav-link href="#" class="#{active_class([admin_system_info_index_path, admin_logs_path, admin_background_jobs_path, admin_database_analytics_path])}" i.nav-icon.fas.fa-laptop-code p From db134fed59dfa99ac8c76627aa7e61d0525e9c7b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 23 Feb 2023 21:57:49 +0000 Subject: [PATCH 1363/2165] chore(deps): bump plist from 3.6.0 to 3.7.0 Bumps [plist](https://github.com/patsplat/plist) from 3.6.0 to 3.7.0. - [Release notes](https://github.com/patsplat/plist/releases) - [Changelog](https://github.com/patsplat/plist/blob/master/CHANGELOG.rdoc) - [Commits](https://github.com/patsplat/plist/compare/v3.6.0...v3.7.0) --- updated-dependencies: - dependency-name: plist dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 69b51f34c..085d234ea 100644 --- a/Gemfile +++ b/Gemfile @@ -58,7 +58,7 @@ gem 'gitlab_omniauth-ldap', '~> 2.2.0', require: 'omniauth-ldap' ## UDID gem 'openssl', '~> 3.1.0' -gem 'plist', '~> 3.6.0' +gem 'plist', '~> 3.7.0' ## 系统信息 gem 'sys-filesystem', '~> 1.4.3' diff --git a/Gemfile.lock b/Gemfile.lock index 17514a125..0a86de489 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -291,7 +291,7 @@ GEM pg (1.4.5) pghero (3.2.0) activerecord (>= 6) - plist (3.6.0) + plist (3.7.0) prettier_print (1.2.0) propshaft (0.6.4) actionpack (>= 7.0.0) @@ -522,7 +522,7 @@ DEPENDENCIES openssl (~> 3.1.0) pg (>= 0.18, < 2.0) pghero (~> 3.2.0) - plist (~> 3.6.0) + plist (~> 3.7.0) propshaft (= 0.6.4) pry-rails pry-rescue From 746fe8e59f930e016ee46d2107be049af85ac033 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 24 Feb 2023 22:04:03 +0000 Subject: [PATCH 1364/2165] chore(deps): bump actions/checkout from 2 to 3 Bumps [actions/checkout](https://github.com/actions/checkout) from 2 to 3. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v2...v3) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/sync_readme.yml | 2 +- .github/workflows/test_docker_build.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/sync_readme.yml b/.github/workflows/sync_readme.yml index 65ddc58d0..cbc9adb65 100644 --- a/.github/workflows/sync_readme.yml +++ b/.github/workflows/sync_readme.yml @@ -10,7 +10,7 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 with: submodules: false fetch-depth: 0 diff --git a/.github/workflows/test_docker_build.yml b/.github/workflows/test_docker_build.yml index e778b9d30..46e5bd5aa 100644 --- a/.github/workflows/test_docker_build.yml +++ b/.github/workflows/test_docker_build.yml @@ -17,7 +17,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: Set up QEMU uses: docker/setup-qemu-action@v2 From a06476e1cd4fc71ee2c92de80b9db7e11ccd3adc Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 27 Feb 2023 15:28:51 +0800 Subject: [PATCH 1365/2165] =?UTF-8?q?feat:=20=E9=94=99=E8=AF=AF=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E5=86=99=E5=85=A5=E6=97=A5=E5=BF=97=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker/rootfs/etc/services.d/sidekiq/run | 2 +- docker/rootfs/etc/services.d/zealot/run | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docker/rootfs/etc/services.d/sidekiq/run b/docker/rootfs/etc/services.d/sidekiq/run index fc39082dd..d95d0bd3a 100644 --- a/docker/rootfs/etc/services.d/sidekiq/run +++ b/docker/rootfs/etc/services.d/sidekiq/run @@ -2,4 +2,4 @@ echo "Starting Zealot Worker" cd /app -./bin/sidekiq -C config/sidekiq.yml | tee /app/log/sidekiq.log +./bin/sidekiq -C config/sidekiq.yml 2>&1 | tee -a /app/log/sidekiq.log diff --git a/docker/rootfs/etc/services.d/zealot/run b/docker/rootfs/etc/services.d/zealot/run index e1aa3bdd8..ee2763d17 100644 --- a/docker/rootfs/etc/services.d/zealot/run +++ b/docker/rootfs/etc/services.d/zealot/run @@ -2,4 +2,4 @@ echo "Starting Zealot" cd /app -./bin/puma -C /app/config/puma.rb | tee /app/log/zealot.log \ No newline at end of file +./bin/puma -C /app/config/puma.rb 2>&1 | tee -a /app/log/zealot.log From 875b0be41e2bc7dc13aa3fd53b0a0a358f7c5637 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 27 Feb 2023 15:34:34 +0800 Subject: [PATCH 1366/2165] =?UTF-8?q?fix:=20=E5=8C=B9=E9=85=8D=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=BA=93=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/admin/system_info_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/controllers/admin/system_info_controller.rb b/app/controllers/admin/system_info_controller.rb index 0c34e5405..84b7354d2 100644 --- a/app/controllers/admin/system_info_controller.rb +++ b/app/controllers/admin/system_info_controller.rb @@ -174,7 +174,7 @@ def db_version return false unless HealthCheck::Utils.get_database_version.present? version = ActiveRecord::Base.connection.select_value("SELECT version()") - version.match(/^PostgreSQL\s((\d+[.]?)+)\s/)[1] + version.match(/^PostgreSQL\s((\d+[.]?)+)\s*/).try(:[], 1) end def redis_version From 47ee25992ca3e12e808eb8cf20846b5544a350b7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 Feb 2023 21:09:27 +0000 Subject: [PATCH 1367/2165] chore(deps): bump pg from 1.4.5 to 1.4.6 Bumps [pg](https://github.com/ged/ruby-pg) from 1.4.5 to 1.4.6. - [Release notes](https://github.com/ged/ruby-pg/releases) - [Changelog](https://github.com/ged/ruby-pg/blob/master/History.md) - [Commits](https://github.com/ged/ruby-pg/compare/v1.4.5...v1.4.6) --- updated-dependencies: - dependency-name: pg dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 0a86de489..8f730701a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -288,7 +288,7 @@ GEM parallel (1.22.1) parser (3.1.3.0) ast (~> 2.4.1) - pg (1.4.5) + pg (1.4.6) pghero (3.2.0) activerecord (>= 6) plist (3.7.0) From 73d34f94dee56a988782597406c87f0a6bed5014 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 Feb 2023 21:09:53 +0000 Subject: [PATCH 1368/2165] chore(deps): bump sidekiq-scheduler from 5.0.1 to 5.0.2 Bumps [sidekiq-scheduler](https://github.com/moove-it/sidekiq-scheduler) from 5.0.1 to 5.0.2. - [Release notes](https://github.com/moove-it/sidekiq-scheduler/releases) - [Changelog](https://github.com/sidekiq-scheduler/sidekiq-scheduler/blob/master/CHANGELOG.md) - [Commits](https://github.com/moove-it/sidekiq-scheduler/compare/v5.0.1...v5.0.2) --- updated-dependencies: - dependency-name: sidekiq-scheduler dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Gemfile b/Gemfile index 085d234ea..ad62a6c4c 100644 --- a/Gemfile +++ b/Gemfile @@ -79,7 +79,7 @@ gem 'rqrcode' # 异步队列 gem 'activejob-status' gem 'sidekiq', '~> 7.0.5' -gem 'sidekiq-scheduler', '~> 5.0.1' +gem 'sidekiq-scheduler', '~> 5.0.2' gem 'sidekiq-failures', '~> 1.0.4' # Assets diff --git a/Gemfile.lock b/Gemfile.lock index 0a86de489..b844553e5 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -116,7 +116,7 @@ GEM concurrent-ruby chunky_png (1.4.0) coderay (1.1.3) - concurrent-ruby (1.2.0) + concurrent-ruby (1.2.2) connection_pool (2.3.0) crass (1.0.6) cssbundling-rails (1.1.2) @@ -419,9 +419,9 @@ GEM redis-client (>= 0.11.0) sidekiq-failures (1.0.4) sidekiq (>= 4.0.0) - sidekiq-scheduler (5.0.1) + sidekiq-scheduler (5.0.2) rufus-scheduler (~> 3.2) - sidekiq (>= 4, < 8) + sidekiq (>= 6, < 8) tilt (>= 1.4.0) simple_form (5.2.0) actionpack (>= 5.2) @@ -543,7 +543,7 @@ DEPENDENCIES sentry-sidekiq sidekiq (~> 7.0.5) sidekiq-failures (~> 1.0.4) - sidekiq-scheduler (~> 5.0.1) + sidekiq-scheduler (~> 5.0.2) simple_form (~> 5.2) slim-rails (~> 3.6.1) stimulus-rails (~> 1.2.1) From 36d10ea866ab4c4fe5db92339522b0344ed72dce Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 28 Feb 2023 11:04:26 +0800 Subject: [PATCH 1369/2165] =?UTF-8?q?feat:=20ActionCable=20=E6=A0=B9?= =?UTF-8?q?=E6=8D=AE=E7=8E=AF=E5=A2=83=E6=8E=A7=E5=88=B6=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E5=BC=80=E5=85=B3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controllers/admin/new_release_controller.js | 2 +- app/javascript/controllers/global_controller.js | 10 ++++++++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/app/javascript/controllers/admin/new_release_controller.js b/app/javascript/controllers/admin/new_release_controller.js index d332515fa..c68140c0c 100644 --- a/app/javascript/controllers/admin/new_release_controller.js +++ b/app/javascript/controllers/admin/new_release_controller.js @@ -9,7 +9,7 @@ export default class extends Controller { static targets = ["newVersion"] connect() { - if (Zealot.isDevelopment) { + if (Zealot.isDevelopment()) { this.render(this.titleValue, PROJECT_URL) } else { this.check() diff --git a/app/javascript/controllers/global_controller.js b/app/javascript/controllers/global_controller.js index c1c5e21a5..e525be6fe 100644 --- a/app/javascript/controllers/global_controller.js +++ b/app/javascript/controllers/global_controller.js @@ -1,4 +1,5 @@ import { Controller } from "@hotwired/stimulus" +import * as ActionCable from '@rails/actioncable' import { Zealot } from "./zealot" import { application } from "./application" import jquery from "jquery" @@ -12,6 +13,7 @@ export default class extends Controller { connect() { this.initZealot() + this.setupRailsDebugMode() this.fixAdminlteWithTubros() this.switchDarkMode() } @@ -20,7 +22,6 @@ export default class extends Controller { Zealot.rootUrl = this.rootUrlValue Zealot.siteApperance = this.apperanceValue Zealot.env = this.envValue - application.debug = Zealot.isDevelopment() } switchDarkMode() { @@ -48,4 +49,9 @@ export default class extends Controller { fixSidebarResize() { jquery(window).trigger("resize") } -} \ No newline at end of file + + setupRailsDebugMode() { + application.debug = Zealot.isDevelopment() + ActionCable.logger.enabled = Zealot.isDevelopment() + } +} From 5d718d5362a09c15295b1986aa7532516be0a9c0 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 28 Feb 2023 11:30:45 +0800 Subject: [PATCH 1370/2165] =?UTF-8?q?feat:=20=E4=BF=AE=E6=94=B9=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E5=8F=B7=E8=A7=84=E8=8C=83=E5=92=8C=20Git=20=E5=93=88?= =?UTF-8?q?=E5=B8=8C=E5=80=BC=E9=93=BE=E6=8E=A5=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/admin/system_info_controller.rb | 2 -- app/helpers/admin/setting_helper.rb | 14 ++++++++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/app/controllers/admin/system_info_controller.rb b/app/controllers/admin/system_info_controller.rb index 84b7354d2..83ff46adc 100644 --- a/app/controllers/admin/system_info_controller.rb +++ b/app/controllers/admin/system_info_controller.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true class Admin::SystemInfoController < ApplicationController - VERSION_CHECK_URL = 'https://api.github.com/repos/tryzealot/zealot/releases/latest' - FILE_PERMISSIONS = { app: [ 'log', diff --git a/app/helpers/admin/setting_helper.rb b/app/helpers/admin/setting_helper.rb index 78656a680..2fb65869c 100644 --- a/app/helpers/admin/setting_helper.rb +++ b/app/helpers/admin/setting_helper.rb @@ -3,12 +3,18 @@ module Admin module SettingHelper def vcs_ref_link(ref) - base = Rails.env.development? ? 'main' : Setting.version - link_to ref, github_repo_compare_commit(ref, base), target: :blank + link = if Rails.env.development? + github_repo_compare_commit(ref, 'main') + else + docker_tag? ? github_repo_compare_commit(ref, Setting.version) : github_version_link + end + + link_to ref, link, target: :blank end def zealot_version(suffix: false) version = Setting.version + return "#{version}-dev" if Rails.env.development? return version if !docker_tag? || !suffix "#{version}-#{ENV['DOCKER_TAG']}" @@ -20,6 +26,10 @@ def github_repo_compare_commit(target, base) "#{Setting.repo_url}/compare/#{base}...#{target}" end + def github_version_link + "#{Setting.repo_url}/releases/tag/#{Setting.version}" + end + def docker_tag? ENV['DOCKER_TAG'].present? end From 012ee33b8da93d96c46b93e7c81b6d13dc579b7b Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 28 Feb 2023 14:34:27 +0800 Subject: [PATCH 1371/2165] =?UTF-8?q?style:=20=E6=95=B0=E6=8D=AE=E5=BA=93?= =?UTF-8?q?=E7=89=88=E6=9C=AC=E4=BF=AE=E6=94=B9=E4=B8=BA=20postgres=20?= =?UTF-8?q?=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/admin/system_info_controller.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/controllers/admin/system_info_controller.rb b/app/controllers/admin/system_info_controller.rb index 83ff46adc..07576370c 100644 --- a/app/controllers/admin/system_info_controller.rb +++ b/app/controllers/admin/system_info_controller.rb @@ -86,7 +86,7 @@ def set_gems def set_services @services ||= { redis: redis_version, - database: db_version, + postgres: pg_version, sidekiq: sidekiq_version, } end @@ -168,7 +168,7 @@ def diskspace @diskspace = nil end - def db_version + def pg_version return false unless HealthCheck::Utils.get_database_version.present? version = ActiveRecord::Base.connection.select_value("SELECT version()") From 917ab1acd7a9462f2d34bb724121ad54efa25824 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 28 Feb 2023 14:39:18 +0800 Subject: [PATCH 1372/2165] release: 4.7.0 --- Dockerfile | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 9dd6dfe76..26b56e2e3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -64,7 +64,7 @@ ARG BUILD_DATE ARG VCS_REF ARG TAG -ARG ZEALOT_VERSION="4.6.1" +ARG ZEALOT_VERSION="4.7.0" ARG REPLACE_CHINA_MIRROR="true" ARG ORIGINAL_REPO_URL="dl-cdn.alpinelinux.org" ARG MIRROR_REPO_URL="mirrors.ustc.edu.cn" diff --git a/package.json b/package.json index 6522fc203..48f0b2083 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "zealot", - "version": "4.6.1", + "version": "4.7.0", "private": true, "license": "MIT", "dependencies": { From 6f9b2480f8b26251ef0e1793f2da34854a29eea6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 28 Feb 2023 21:57:51 +0000 Subject: [PATCH 1373/2165] chore(deps): bump puma from 6.1.0 to 6.1.1 Bumps [puma](https://github.com/puma/puma) from 6.1.0 to 6.1.1. - [Release notes](https://github.com/puma/puma/releases) - [Changelog](https://github.com/puma/puma/blob/master/History.md) - [Commits](https://github.com/puma/puma/compare/v6.1.0...v6.1.1) --- updated-dependencies: - dependency-name: puma dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index ad62a6c4c..5e8bb467d 100644 --- a/Gemfile +++ b/Gemfile @@ -4,7 +4,7 @@ source 'https://rubygems.org' git_source(:github) { |repo_name| "https://github.com/#{repo_name}" } -gem 'puma', '~> 6.1.0' +gem 'puma', '~> 6.1.1' gem 'rails', '~> 7.0.4' gem 'rails-i18n', '~> 7.0.5' gem 'rake', '~> 13.0.4' diff --git a/Gemfile.lock b/Gemfile.lock index d3d73e0d0..7173b20c0 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -307,7 +307,7 @@ GEM interception (>= 0.5) pry (>= 0.12.0) public_suffix (5.0.1) - puma (6.1.0) + puma (6.1.1) nio4r (~> 2.0) pundit (2.3.0) activesupport (>= 3.0.0) @@ -526,7 +526,7 @@ DEPENDENCIES propshaft (= 0.6.4) pry-rails pry-rescue - puma (~> 6.1.0) + puma (~> 6.1.1) pundit (~> 2.3.0) rack-cors (~> 2.0.0) rails (~> 7.0.4) From 04d4b39225df472d9d15c2bf869c5a150a9c309e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Mar 2023 21:14:50 +0000 Subject: [PATCH 1374/2165] chore(deps): bump @hotwired/turbo-rails from 7.2.5 to 7.3.0 Bumps [@hotwired/turbo-rails](https://github.com/hotwired/turbo-rails) from 7.2.5 to 7.3.0. - [Release notes](https://github.com/hotwired/turbo-rails/releases) - [Commits](https://github.com/hotwired/turbo-rails/commits) --- updated-dependencies: - dependency-name: "@hotwired/turbo-rails" dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/package.json b/package.json index 6522fc203..f5db50a29 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "license": "MIT", "dependencies": { "@hotwired/stimulus": "^3.2.1", - "@hotwired/turbo-rails": "^7.2.5", + "@hotwired/turbo-rails": "^7.3.0", "@rails/actioncable": "^7.0.4", "admin-lte": "3.1.0", "clipboard": "^2.0.11", diff --git a/yarn.lock b/yarn.lock index 4e09480d6..63357e3a1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -122,18 +122,18 @@ resolved "https://registry.yarnpkg.com/@hotwired/stimulus/-/stimulus-3.2.1.tgz#e3de23623b0c52c247aba4cd5d530d257008676b" integrity sha512-HGlzDcf9vv/EQrMJ5ZG6VWNs8Z/xMN+1o2OhV1gKiSG6CqZt5MCBB1gRg5ILiN3U0jEAxuDTNPRfBcnZBDmupQ== -"@hotwired/turbo-rails@^7.2.5": - version "7.2.5" - resolved "https://registry.yarnpkg.com/@hotwired/turbo-rails/-/turbo-rails-7.2.5.tgz#74fc3395a29a76df2bb8835aa88c86885cffde4c" - integrity sha512-F8ztmARxd/XBdevRa//HoJGZ7u+Unb0J7cQUeUP+pBvt9Ta2TJJ7a2TORAOhjC8Zgxx+LKwm/1UUHqN3ojjiGw== +"@hotwired/turbo-rails@^7.3.0": + version "7.3.0" + resolved "https://registry.yarnpkg.com/@hotwired/turbo-rails/-/turbo-rails-7.3.0.tgz#422c21752509f3edcd6c7b2725bbe9e157815f51" + integrity sha512-fvhO64vp/a2UVQ3jue9WTc2JisMv9XilIC7ViZmXAREVwiQ2S4UC7Go8f9A1j4Xu7DBI6SbFdqILk5ImqVoqyA== dependencies: - "@hotwired/turbo" "^7.2.5" + "@hotwired/turbo" "^7.3.0" "@rails/actioncable" "^7.0" -"@hotwired/turbo@^7.2.5": - version "7.2.5" - resolved "https://registry.yarnpkg.com/@hotwired/turbo/-/turbo-7.2.5.tgz#2d9d6bde8a9549c3aea8970445ade16ffd56719a" - integrity sha512-o5PByC/mWkmTe4pWnKrixhPECJUxIT/NHtxKqjq7n9Fj6JlNza1pgxdTCJVIq+PI0j95U+7mA3N4n4A/QYZtZQ== +"@hotwired/turbo@^7.3.0": + version "7.3.0" + resolved "https://registry.yarnpkg.com/@hotwired/turbo/-/turbo-7.3.0.tgz#2226000fff1aabda9fd9587474565c9929dbf15d" + integrity sha512-Dcu+NaSvHLT7EjrDrkEmH4qET2ZJZ5IcCWmNXxNQTBwlnE5tBZfN6WxZ842n5cHV52DH/AKNirbPBtcEXDLW4g== "@lgaitan/pace-progress@^1.0.7": version "1.0.7" From ea5e045318b596346096ddfcc5bf0b93f2c96a13 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Mar 2023 21:15:06 +0000 Subject: [PATCH 1375/2165] chore(deps): bump turbo-rails from 1.3.3 to 1.4.0 Bumps [turbo-rails](https://github.com/hotwired/turbo-rails) from 1.3.3 to 1.4.0. - [Release notes](https://github.com/hotwired/turbo-rails/releases) - [Commits](https://github.com/hotwired/turbo-rails/compare/v1.3.3...v1.4.0) --- updated-dependencies: - dependency-name: turbo-rails dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 5e8bb467d..3eea60f40 100644 --- a/Gemfile +++ b/Gemfile @@ -89,7 +89,7 @@ gem 'jsbundling-rails', '~> 1.1' gem 'cssbundling-rails', '~> 1.1' ## Javascript gem 'stimulus-rails', '~> 1.2.1' -gem 'turbo-rails', '~> 1.3' +gem 'turbo-rails', '~> 1.4' # 用于解析 iOS, Android 和 macOS 应用 gem 'app-info', '~> 2.8.3' diff --git a/Gemfile.lock b/Gemfile.lock index 7173b20c0..8455f36e7 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -459,7 +459,7 @@ GEM faraday (>= 1.10.0, < 3.0) jwt (>= 1.4, < 3) openssl (>= 2.2.1, < 4) - turbo-rails (1.3.3) + turbo-rails (1.4.0) actionpack (>= 6.0.0) activejob (>= 6.0.0) railties (>= 6.0.0) @@ -549,7 +549,7 @@ DEPENDENCIES stimulus-rails (~> 1.2.1) sys-filesystem (~> 1.4.3) tiny_appstore_connect (~> 0.1.7) - turbo-rails (~> 1.3) + turbo-rails (~> 1.4) vmstat (~> 2.3.0) web-console (>= 3.3.0) webp-ffi (~> 0.3.1) From aa4b0bae548ea8ea45665b2fbc612caf3a6866a2 Mon Sep 17 00:00:00 2001 From: answer-huang Date: Thu, 2 Mar 2023 11:54:29 +0800 Subject: [PATCH 1376/2165] Update README.md update REST API url --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 5f1db4647..95c6e28e9 100644 --- a/README.md +++ b/README.md @@ -27,7 +27,7 @@ @@ -35,7 +35,7 @@
      自部署配置 • - REST API • + REST APISDK功能截图
      From 7a418ad20c8d39f9a867e7579b78bc0bdbff49fb Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 2 Mar 2023 13:20:42 +0800 Subject: [PATCH 1377/2165] =?UTF-8?q?doc:=20=E6=9B=B4=E6=96=B0=E6=96=B0?= =?UTF-8?q?=E6=96=87=E6=A1=A3=E5=AF=B9=E5=BA=94=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 95c6e28e9..a5eaa17e7 100644 --- a/README.md +++ b/README.md @@ -25,19 +25,17 @@ From afef52cd1fd7f595952bf1e1243d34ea896ce2c9 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 2 Mar 2023 13:23:19 +0800 Subject: [PATCH 1378/2165] =?UTF-8?q?doc:=20=E8=A1=A5=E5=85=85=E6=BC=94?= =?UTF-8?q?=E7=A4=BA=E6=9C=8D=E5=8A=A1=E7=9A=84=E8=AF=B4=E6=98=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index a5eaa17e7..331be7921 100644 --- a/README.md +++ b/README.md @@ -56,7 +56,7 @@ ## 在线演示 -> **注意**: 数据每日都会重新初始化,不对用户上传的应用承担任何法律风险,后果自负! +> **注意**: 演示服务使用免费资源部署,资源额度耗尽会不可访问次月初重置;数据每日都会重新初始化,不对用户上传的应用承担任何法律风险,后果自负! - 演示地址:https://tryzealot.ews.im/ - 登录账户: `admin@zealot.com` From 4cc471012c2bf13a6a64a60ba06af42c8b334973 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 6 Mar 2023 13:18:52 +0800 Subject: [PATCH 1379/2165] =?UTF-8?q?refactor:=20=E5=BA=94=E7=94=A8?= =?UTF-8?q?=E8=A7=A3=E5=8C=85=E5=90=88=E5=B9=B6=E9=87=8D=E5=A4=8D=E7=9A=84?= =?UTF-8?q?=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/teardowns_controller.rb | 2 -- config/locales/zealot/en.yml | 1 - config/locales/zealot/zh-CN.yml | 1 - 3 files changed, 4 deletions(-) diff --git a/app/controllers/teardowns_controller.rb b/app/controllers/teardowns_controller.rb index ba13b4dfd..c09916e53 100644 --- a/app/controllers/teardowns_controller.rb +++ b/app/controllers/teardowns_controller.rb @@ -34,8 +34,6 @@ def create t('teardowns.messages.errors.not_found_file', message: e.message) when ActionController::RoutingError e.message - when AppInfo::UnkownFileTypeError - t('teardowns.messages.errors.failed_detect_file_type') when AppInfo::UnkownFileTypeError t('teardowns.messages.errors.not_support_file_type') when NoMethodError diff --git a/config/locales/zealot/en.yml b/config/locales/zealot/en.yml index be4e61c5b..123fef392 100644 --- a/config/locales/zealot/en.yml +++ b/config/locales/zealot/en.yml @@ -597,7 +597,6 @@ en: unknown_events: '%{name} triggered unknown event: %{event}' errors: not_found_file: 'Not found debug file: %{message}' - failed_detect_file_type: Failed to detect file type not_support_file_type: Not support file type failed_get_metadata: Failed to parse, make sure supported file type and unhardened unknown_parse: 'Unknown parse error [%{class}]: %{message}' diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index 66b861e08..6cf7af0ca 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -630,7 +630,6 @@ zh-CN: unknown_events: '%{name} 触发了未知事件: %{event}' errors: not_found_file: '无法找到解包文件: %{message}' - failed_detect_file_type: 无法识别应用类型 not_support_file_type: 应用的文件类型不支持 failed_get_metadata: 应用解析异常,请确保是支持的文件类型且没有安全加固处理 unknown_parse: '上传应用解析发现未知异常,原始错误 [%{class}]: %{message}' From 8033537cac04ebd041012cd9d604a1119da4b570 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 6 Mar 2023 14:38:06 +0800 Subject: [PATCH 1380/2165] =?UTF-8?q?feat:=20=E6=94=AF=E6=8C=81=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0=E4=BB=BB=E6=84=8F=E6=96=87=E4=BB=B6=E6=A0=BC=E5=BC=8F?= =?UTF-8?q?=E5=BA=94=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/channel.rb | 2 ++ app/models/release.rb | 23 ++++++++++--------- app/uploaders/app_file_uploader.rb | 18 +++++++-------- .../dashboards/_recently_upload.html.slim | 5 +++- app/views/releases/_form.html.slim | 2 +- app/views/releases/body/_activity.html.slim | 5 +++- app/views/releases/body/_metadata.html.slim | 9 ++++---- app/views/udid/_apps.html.slim | 5 +++- config/locales/zealot/en.yml | 9 +++++--- config/locales/zealot/zh-CN.yml | 9 +++++--- ..._optional_release_version_and_bundle_id.rb | 7 ++++++ db/schema.rb | 8 +++---- 12 files changed, 64 insertions(+), 38 deletions(-) create mode 100644 db/migrate/20230306061106_optional_release_version_and_bundle_id.rb diff --git a/app/models/channel.rb b/app/models/channel.rb index 7117424ca..622be6ddc 100755 --- a/app/models/channel.rb +++ b/app/models/channel.rb @@ -65,6 +65,8 @@ def app_name end def release_versions(limit = 10) + return [] + versions = releases.select(:release_version) .group(:release_version) .map(&:release_version) diff --git a/app/models/release.rb b/app/models/release.rb index 4fb5a2163..a544d14c1 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -15,7 +15,7 @@ class Release < ApplicationRecord has_one :metadata, class_name: 'Metadatum', dependent: :destroy has_and_belongs_to_many :devices, dependent: :destroy - validates :bundle_id, :release_version, :build_version, :file, presence: true + validates :file, presence: true validate :bundle_id_matched, on: :create before_create :auto_release_version @@ -105,16 +105,17 @@ def self.fetch_icon(parser) def self.rescuing_app_parse_errors yield - rescue AppInfo::UnkownFileTypeError - raise AppInfo::UnkownFileTypeError, t('teardowns.messages.errors.not_support_file_type') - rescue NoMethodError => e - logger.error e.full_message - Sentry.capture_exception e - raise AppInfo::Error, t('teardowns.messages.errors.failed_get_metadata') - rescue => e - logger.error e.full_message - Sentry.capture_exception e - raise AppInfo::Error, t('teardowns.messages.errors.unknown_parse', class: e.class, message: e.message) + rescue AppInfo::UnkownFileTypeError, NoMethodError => e + # raise AppInfo::UnkownFileTypeError, t('teardowns.messages.errors.not_support_file_type') + logger.error e.full_message + # rescue NoMethodError => e + # logger.error e.full_message + # Sentry.capture_exception e + # raise AppInfo::Error, t('teardowns.messages.errors.failed_get_metadata') + # rescue => e + # logger.error e.full_message + # Sentry.capture_exception e + # raise AppInfo::Error, t('teardowns.messages.errors.unknown_parse', class: e.class, message: e.message) end private_methods :rescuing_app_parse_errors diff --git a/app/uploaders/app_file_uploader.rb b/app/uploaders/app_file_uploader.rb index a8ebf45b7..200de4325 100644 --- a/app/uploaders/app_file_uploader.rb +++ b/app/uploaders/app_file_uploader.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true class AppFileUploader < ApplicationUploader - process :validate_app_type + # process :validate_app_type SUPPORT_APP = %i[apk aab ipa macos] @@ -9,15 +9,15 @@ def store_dir "#{base_store_dir}/apps/a#{model.app.id}/r#{model.id}/binary" end - def extension_allowlist - %w[ipa apk aab zip] - end + # def extension_allowlist + # %w[ipa apk aab zip] + # end - private + # private - def validate_app_type - return if SUPPORT_APP.include?(AppInfo.file_type(file.path)) + # def validate_app_type + # return if SUPPORT_APP.include?(AppInfo.file_type(file.path)) - raise CarrierWave::InvalidParameter, I18n.t('errors.messages.unknown_file_type') - end + # raise CarrierWave::InvalidParameter, I18n.t('errors.messages.unknown_file_type') + # end end diff --git a/app/views/dashboards/_recently_upload.html.slim b/app/views/dashboards/_recently_upload.html.slim index e6a120474..96c9da7fc 100644 --- a/app/views/dashboards/_recently_upload.html.slim +++ b/app/views/dashboards/_recently_upload.html.slim @@ -28,7 +28,10 @@ section = time_ago_in_words(release.created_at) h3.timeline-header = link_to(release.app_name, friendly_channel_release_path(release.channel, release), class: 'pr-1') - = t('dashboard.timeline.upload_release', release_version: release.release_version, build_version: release.build_version) + - if release.release_version + = t('dashboard.timeline.upload_full_version_release', release_version: release.release_version, build_version: release.build_version) + - else + = t('dashboard.timeline.upload_auto_version_release', version: release.version) - if release.changelog.present? .timeline-body.pb-1 = changelog_format release.text_changelog, class: 'mb-0' diff --git a/app/views/releases/_form.html.slim b/app/views/releases/_form.html.slim index 9c8ecc98c..850d47165 100644 --- a/app/views/releases/_form.html.slim +++ b/app/views/releases/_form.html.slim @@ -8,4 +8,4 @@ = f.input :git_commit = f.input :ci_url - = f.button :submit \ No newline at end of file + = f.button :submit diff --git a/app/views/releases/body/_activity.html.slim b/app/views/releases/body/_activity.html.slim index 5ee375af2..61566b026 100644 --- a/app/views/releases/body/_activity.html.slim +++ b/app/views/releases/body/_activity.html.slim @@ -18,7 +18,10 @@ = time_ago_in_words(release.created_at) h3.timeline-header = link_to release.app_name, friendly_channel_release_path(release.channel, release), class: 'pr-1' - = t('releases.show.upload_release', release_version: release.release_version, build_version: release.build_version) + - if release.release_version + = t('releases.show.upload_full_version_release', release_version: release.release_version, build_version: release.build_version) + - else + = t('releases.show.upload_auto_version_release', version: release.version) - if release.changelog.present? .timeline-body.pb-0 = changelog_format(release.text_changelog, class: 'mb-0') diff --git a/app/views/releases/body/_metadata.html.slim b/app/views/releases/body/_metadata.html.slim index 4103e8713..9609edd49 100644 --- a/app/views/releases/body/_metadata.html.slim +++ b/app/views/releases/body/_metadata.html.slim @@ -21,9 +21,10 @@ li title="#{t('releases.show.device_type')}" = device_icon(@release.platform) = @release.device_type - li title="#{t('releases.show.release_version')}" - i.fas.fa-server - = "#{@release.release_version} (#{@release.build_version})" + - if @release.release_version.present? + li title="#{t('releases.show.release_version')}" + i.fas.fa-server + = "#{@release.release_version} (#{@release.build_version})" - if @release.release_type.present? li title="#{t('releases.show.release_type')}" i.fas.fa-cubes @@ -58,4 +59,4 @@ i.fas.fa-layer-group = link_to t('releases.show.teardown_meatdata'), teardown_path(@release.metadata) - == render 'releases/body/install_app' \ No newline at end of file + == render 'releases/body/install_app' diff --git a/app/views/udid/_apps.html.slim b/app/views/udid/_apps.html.slim index 2d18ad4d1..4d8245a66 100644 --- a/app/views/udid/_apps.html.slim +++ b/app/views/udid/_apps.html.slim @@ -19,7 +19,10 @@ = time_ago_in_words(release.created_at) h3.timeline-header = link_to(release.app_name, friendly_channel_release_path(channel, release), class: 'pr-1') - = t('udid.show.upload_release', release_version: release.release_version, build_version: release.build_version) + - if release.release_version + = t('udid.show.upload_full_version_release', release_version: release.release_version, build_version: release.build_version) + - else + = t('udid.show.upload_auto_version_release', version: release.version) - if release.changelog.present? .timeline-body.pb-0 = changelog_format release.text_changelog, class: 'mb-0' diff --git a/config/locales/zealot/en.yml b/config/locales/zealot/en.yml index be4e61c5b..6db4ddc18 100644 --- a/config/locales/zealot/en.yml +++ b/config/locales/zealot/en.yml @@ -247,7 +247,8 @@ en: disk_usage: Disk usage timeline: title: Timeline - upload_release: uploaded a version %{release_version} (%{build_version}) + upload_full_version_release: uploaded a version %{release_version} (%{build_version}) + upload_auto_version_release: uploaded a version %{version} not_found: Not found any upload. apps: title: Apps @@ -389,7 +390,8 @@ en: more: More releases cannot_install_or_untrusted_enterprise_developer: Occurred "Untrusted Enterprise Developer" or app failed to install? last_ten_uploads: Activity - upload_release: :dashboard.timeline.upload_release + upload_full_version_release: :'dashboard.timeline.upload_full_version_release' + upload_auto_version_release: :'dashboard.timeline.upload_auto_version_release' changelog: Changelog devices: '%{count} test devices (UDID)' sync_devices_feature: Sync device name by using %{link} fastlane plugin @@ -641,7 +643,8 @@ en: platform: Platform model: Model created_at: Registerd at - upload_release: :dashboard.timeline.upload_release + upload_full_version_release: :'dashboard.timeline.upload_full_version_release' + upload_auto_version_release: :'dashboard.timeline.upload_auto_version_release' related_apple_keys: Related Apple Developers register_apple_key: Register to Apple Developer channels: Channels diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index 66b861e08..b6ffc5574 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -266,7 +266,8 @@ zh-CN: disk_usage: 磁盘使用率 timeline: title: 上传时间线 - upload_release: 上传了新版本 %{release_version} (%{build_version}) + upload_full_version_release: 上传了新版本 %{release_version} (%{build_version}) + upload_auto_version_release: 上传了新版本 %{version} not_found: 没有任何上传,快快上传吧。 apps: @@ -414,7 +415,8 @@ zh-CN: cannot_install_or_untrusted_enterprise_developer: 桌面没有发现下载的应用或遇到 "未受信任的企业级开发者" 错误? last_ten_uploads: 最近 10 次上传 - upload_release: :'dashboard.timeline.upload_release' + upload_full_version_release: :'dashboard.timeline.upload_full_version_release' + upload_auto_version_release: :'dashboard.timeline.upload_auto_version_release' changelog: 更新日志 devices: '%{count} 台测试设备 (UDID)' sync_devices_feature: 推荐使用%{link}同步设备名称 @@ -673,7 +675,8 @@ zh-CN: platform: 平台 model: 产品型号 created_at: 注册时间 - upload_release: :'dashboard.timeline.upload_release' + upload_full_version_release: :'dashboard.timeline.upload_full_version_release' + upload_auto_version_release: :'dashboard.timeline.upload_auto_version_release' related_apple_keys: 已关联的苹果开发者 register_apple_key: 注册测试设备到苹果开发者 channels: 应用渠道 diff --git a/db/migrate/20230306061106_optional_release_version_and_bundle_id.rb b/db/migrate/20230306061106_optional_release_version_and_bundle_id.rb new file mode 100644 index 000000000..9efc068dd --- /dev/null +++ b/db/migrate/20230306061106_optional_release_version_and_bundle_id.rb @@ -0,0 +1,7 @@ +class OptionalReleaseVersionAndBundleId < ActiveRecord::Migration[7.0] + def change + change_column_null :releases, :bundle_id, true + change_column_null :releases, :release_version, true + change_column_null :releases, :build_version, true + end +end diff --git a/db/schema.rb b/db/schema.rb index cf86061a0..f45ad86d5 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema[7.0].define(version: 2023_02_21_084553) do +ActiveRecord::Schema[7.0].define(version: 2023_03_06_061106) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -176,10 +176,10 @@ create_table "releases", force: :cascade do |t| t.bigint "channel_id" - t.string "bundle_id", null: false + t.string "bundle_id" t.integer "version", null: false - t.string "release_version", null: false - t.string "build_version", null: false + t.string "release_version" + t.string "build_version" t.string "release_type" t.string "source" t.string "branch" From 746854513215bc2a248cea3d84a12e8eb7626f84 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 6 Mar 2023 17:01:23 +0800 Subject: [PATCH 1381/2165] =?UTF-8?q?feat:=20=E5=BA=94=E7=94=A8=E6=B8=A0?= =?UTF-8?q?=E9=81=93=E7=BC=96=E8=BE=91=E5=90=8E=E8=B0=83=E6=95=B4=E5=8E=9F?= =?UTF-8?q?=E5=85=88=E7=9A=84=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/channels_controller.rb | 7 ++++++- app/views/channels/_form.html.slim | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/app/controllers/channels_controller.rb b/app/controllers/channels_controller.rb index d1ffc2c49..674612aea 100644 --- a/app/controllers/channels_controller.rb +++ b/app/controllers/channels_controller.rb @@ -42,7 +42,8 @@ def update authorize @channel @channel.update(channel_params) - redirect_to friendly_channel_overview_path(@channel) + redirect_to referer_url + # redirect_to friendly_channel_overview_path(@channel) end def destroy @@ -64,6 +65,10 @@ def set_channel @subtitle = t('channels.subtitle', total_scheme: @app.schemes.count, total_channel: @channel.scheme.channels.count) end + def referer_url + @referer_url ||= params[:referer_url] + end + def channel_params params.require(:channel).permit( :scheme_id, :name, :device_type, :bundle_id, diff --git a/app/views/channels/_form.html.slim b/app/views/channels/_form.html.slim index fad4942b0..35cbaae5c 100644 --- a/app/views/channels/_form.html.slim +++ b/app/views/channels/_form.html.slim @@ -14,6 +14,7 @@ ruby: = simple_form_for(@channel, url: form_url) do |f| = f.error_notification + input name="referer_url" value="#{request.referer}" type="hidden" = f.input :scheme_id, as: :hidden, input_html: { value: params[:scheme_id] } = f.input :name, required: true = f.input :device_type, collection: Channel.device_types, label_method: :last, value_method: :first, selected: @channel.device_type ? @channel.device_type : Channel.device_types.first From ed2e9af2e29785ace2072123871a8be02ec4543a Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 6 Mar 2023 17:01:23 +0800 Subject: [PATCH 1382/2165] =?UTF-8?q?feat:=20=E5=BA=94=E7=94=A8=E6=B8=A0?= =?UTF-8?q?=E9=81=93=E7=BC=96=E8=BE=91=E5=90=8E=E8=B0=83=E6=95=B4=E5=8E=9F?= =?UTF-8?q?=E5=85=88=E7=9A=84=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/channels_controller.rb | 6 +++++- app/views/channels/_form.html.slim | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/app/controllers/channels_controller.rb b/app/controllers/channels_controller.rb index d1ffc2c49..0691e8d7b 100644 --- a/app/controllers/channels_controller.rb +++ b/app/controllers/channels_controller.rb @@ -42,7 +42,7 @@ def update authorize @channel @channel.update(channel_params) - redirect_to friendly_channel_overview_path(@channel) + redirect_to (referer_url || friendly_channel_overview_path(@channel)) end def destroy @@ -64,6 +64,10 @@ def set_channel @subtitle = t('channels.subtitle', total_scheme: @app.schemes.count, total_channel: @channel.scheme.channels.count) end + def referer_url + @referer_url ||= params[:referer_url] + end + def channel_params params.require(:channel).permit( :scheme_id, :name, :device_type, :bundle_id, diff --git a/app/views/channels/_form.html.slim b/app/views/channels/_form.html.slim index fad4942b0..35cbaae5c 100644 --- a/app/views/channels/_form.html.slim +++ b/app/views/channels/_form.html.slim @@ -14,6 +14,7 @@ ruby: = simple_form_for(@channel, url: form_url) do |f| = f.error_notification + input name="referer_url" value="#{request.referer}" type="hidden" = f.input :scheme_id, as: :hidden, input_html: { value: params[:scheme_id] } = f.input :name, required: true = f.input :device_type, collection: Channel.device_types, label_method: :last, value_method: :first, selected: @channel.device_type ? @channel.device_type : Channel.device_types.first From 24bc1fe313f7e3587669a56cb7dd4cc5b170a7bf Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 6 Mar 2023 17:04:11 +0800 Subject: [PATCH 1383/2165] =?UTF-8?q?feat:=20=E5=BA=94=E7=94=A8=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=20Windows,=20Linux(rpm,=20deb)=20=E4=B8=89=E4=B8=AA?= =?UTF-8?q?=E6=B8=A0=E9=81=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/channel.rb | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/app/models/channel.rb b/app/models/channel.rb index 622be6ddc..0c6aefdc5 100755 --- a/app/models/channel.rb +++ b/app/models/channel.rb @@ -12,7 +12,11 @@ class Channel < ApplicationRecord has_many :releases, dependent: :destroy has_and_belongs_to_many :web_hooks, dependent: :destroy - enum device_type: { ios: 'iOS', android: 'Android', macos: 'macOS' } + enum device_type: { + ios: 'iOS', android: 'Android', + macos: 'macOS', windows: 'Windows', + linux_rpm: 'Linux (CentOS)', linux_deb: 'Linux (Debian)' + } delegate :count, to: :enabled_web_hooks, prefix: true delegate :count, to: :available_web_hooks, prefix: true @@ -65,9 +69,8 @@ def app_name end def release_versions(limit = 10) - return [] - versions = releases.select(:release_version) + .where.not(release_version: nil) .group(:release_version) .map(&:release_version) .sort do |a,b| From 3eecaaa8108fe9fdfbfebe4044400a7debd77316 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 6 Mar 2023 17:26:52 +0800 Subject: [PATCH 1384/2165] =?UTF-8?q?style:=20=E5=9B=BE=E6=A0=87=E6=94=AF?= =?UTF-8?q?=E6=8C=81=20Windows,=20Linux?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/application_helper.rb | 8 ++++++-- app/models/channel.rb | 3 +-- app/models/release.rb | 15 ++++++++++++++- app/views/channels/_activity.html.slim | 5 ++++- 4 files changed, 25 insertions(+), 6 deletions(-) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 819a0274c..36ca38d10 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -69,6 +69,8 @@ def device_name(device_type) 'Android' when 'macos' 'macOS' + when 'linux' + 'Linux' else device_type end @@ -86,13 +88,15 @@ def timeline_app_icon(device_type) def device_style(device_type) case device_type.downcase when 'ios' - ['fa-apple', 'bg-black'] + ['fa-apple', 'bg-secondary'] when 'android' ['fa-android', 'bg-green'] when 'windows' - ['fa-windows', 'bg-warning'] + ['fa-windows', 'bg-primary'] when 'macos' ['fa-app-store', 'bg-blue'] + when 'linux' + ['fa-linux', 'bg-info'] else ['fa-adn', 'bg-lightblue'] end diff --git a/app/models/channel.rb b/app/models/channel.rb index 0c6aefdc5..c03b7f5c6 100755 --- a/app/models/channel.rb +++ b/app/models/channel.rb @@ -14,8 +14,7 @@ class Channel < ApplicationRecord enum device_type: { ios: 'iOS', android: 'Android', - macos: 'macOS', windows: 'Windows', - linux_rpm: 'Linux (CentOS)', linux_deb: 'Linux (Debian)' + macos: 'macOS', windows: 'Windows', linux: 'Linux' } delegate :count, to: :enabled_web_hooks, prefix: true diff --git a/app/models/release.rb b/app/models/release.rb index a544d14c1..7241bf0c7 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -199,6 +199,10 @@ def platform 'Android' elsif mac? 'macOS' + elsif windows? + 'Windows' + elsif linux? + 'Linux' else 'Unknown' end @@ -219,10 +223,19 @@ def mac? platform_type.casecmp?('macos') end + def windows? + platform_type.casecmp?('windows') + end + + def linux? + platform_type.casecmp?('linux') || platform_type.casecmp?('rpm') || + platform_type.casecmp?('deb') + end + private def platform_type - @platform_type ||= (device_type || channel.device_type) + @platform_type ||= (device_type || Channel.device_types[channel.device_type]) end def auto_release_version diff --git a/app/views/channels/_activity.html.slim b/app/views/channels/_activity.html.slim index 5849f3723..ec9c5b678 100644 --- a/app/views/channels/_activity.html.slim +++ b/app/views/channels/_activity.html.slim @@ -20,7 +20,10 @@ span.badge.badge-light.float-right data-toggle="tooltip" title="#{release.created_at}" = time_ago_in_words(release.created_at) span.product-description - = "#{release.release_version} (#{release.build_version})" + - if release.release_version.present? + = "#{release.release_version} (#{release.build_version})" + - else + = release.version - else li.item.p-3 = raw t('channels.show.not_found') From 365c28e599b5e5a3992367cadd5c399792dd52de Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 6 Mar 2023 17:58:19 +0800 Subject: [PATCH 1385/2165] =?UTF-8?q?feat:=20=E5=BF=BD=E7=95=A5=E6=97=A0?= =?UTF-8?q?=E6=B3=95=E8=A7=A3=E6=9E=90=E7=9A=84=E5=BA=94=E7=94=A8=E7=9A=84?= =?UTF-8?q?=E5=90=8E=E7=BB=AD=E6=AD=A5=E9=AA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/releases_controller.rb | 2 +- app/jobs/teardown_job.rb | 2 ++ app/models/release.rb | 36 ++++++++++++--------- app/views/releases/body/_metadata.html.slim | 2 +- 4 files changed, 25 insertions(+), 17 deletions(-) diff --git a/app/controllers/releases_controller.rb b/app/controllers/releases_controller.rb index b90aab20c..4aa49391e 100644 --- a/app/controllers/releases_controller.rb +++ b/app/controllers/releases_controller.rb @@ -36,7 +36,7 @@ def create # 触发异步任务 @release.channel.perform_web_hook('upload_events', current_user.id) - @release.perform_teardown_job(current_user.id) + @release.perform_teardown_job(current_user.id) if @release.bundle_id.present? message = t('activerecord.success.create', key: "#{t('releases.title')}") redirect_to channel_release_path(@channel, @release), notice: message diff --git a/app/jobs/teardown_job.rb b/app/jobs/teardown_job.rb index 509ab480e..d740d4748 100644 --- a/app/jobs/teardown_job.rb +++ b/app/jobs/teardown_job.rb @@ -9,6 +9,8 @@ def perform(release_id, user_id) metadata = TeardownService.new(file.path).call metadata.update_attribute(:user_id, user_id) if user_id.present? update_release_resouces(release_id, metadata) + rescue AppInfo::UnkownFileTypeError + # ignore end private diff --git a/app/models/release.rb b/app/models/release.rb index 7241bf0c7..b12d61439 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -42,22 +42,28 @@ def self.upload_file(params, parser = nil, default_source = 'web') return add_not_found_file_error if file.blank? create(params) do |release| - rescuing_app_parse_errors do - parser ||= AppInfo.parse(file) - build_metadata(release, parser, default_source) - - # iOS 且是 AdHoc 尝试解析 UDID 列表 - if parser.os == AppInfo::Platform::IOS && - parser.release_type == AppInfo::IPA::ExportType::ADHOC && - parser.devices.present? - - parser.devices.each do |udid| - release.devices << Device.find_or_create_by(udid: udid) - end + release.source ||= default_source + parse_app(release, file, default_source) if AppInfo.file_type(file) != :unkown + end + end + + def self.parse_app(release, file, default_source) + rescuing_app_parse_errors do + parser ||= AppInfo.parse(file) + + build_metadata(release, parser, default_source) + + # iOS 且是 AdHoc 尝试解析 UDID 列表 + if parser.os == AppInfo::Platform::IOS && + parser.release_type == AppInfo::IPA::ExportType::ADHOC && + parser.devices.present? + + parser.devices.each do |udid| + release.devices << Device.find_or_create_by(udid: udid) end - ensure - parser&.clear! end + ensure + parser&.clear! end end @@ -272,7 +278,7 @@ def convert_custom_fields end def detect_device - self.device_type ||= channel.device_type + self.device_type ||= Channel.device_types[channel.device_type] end ORIGIN_PREFIX = 'origin/' diff --git a/app/views/releases/body/_metadata.html.slim b/app/views/releases/body/_metadata.html.slim index 9609edd49..5b0c2cd72 100644 --- a/app/views/releases/body/_metadata.html.slim +++ b/app/views/releases/body/_metadata.html.slim @@ -5,7 +5,7 @@ .app-name = @release.name || @release.app_name .app-identifier - = @release.bundle_id + = @release.bundle_id || @release.file.identifier .card-body ul.app-metadata - if @release.name.present? From 632bad85cbc7e27903af1b3f8be28109beae7afa Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 6 Mar 2023 17:58:43 +0800 Subject: [PATCH 1386/2165] =?UTF-8?q?style:=20=E6=96=B0=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E6=8F=90=E9=86=92=E8=B0=83=E6=95=B4=E5=B1=95=E7=A4=BA=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E5=8F=B7=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/releases/body/_new_release_callout.html.slim | 3 +-- config/locales/zealot/en.yml | 2 +- config/locales/zealot/zh-CN.yml | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/app/views/releases/body/_new_release_callout.html.slim b/app/views/releases/body/_new_release_callout.html.slim index 03f0bfdd3..cd749bed0 100644 --- a/app/views/releases/body/_new_release_callout.html.slim +++ b/app/views/releases/body/_new_release_callout.html.slim @@ -5,7 +5,6 @@ = t('releases.show.not_latest_release') p = raw t('releases.show.released_new_version', \ - release_version: latest_release.release_version, \ - build_version: latest_release.build_version, \ + version: latest_release.release_version ? "#{latest_release.release_version} (#{latest_release.build_version})" : latest_release.version, \ time: time_ago_in_words(latest_release.created_at), \ link: link_to(t('releases.show.view_latest_version'), friendly_channel_release_path(latest_release.channel, latest_release))) diff --git a/config/locales/zealot/en.yml b/config/locales/zealot/en.yml index 3959c833b..e4f779963 100644 --- a/config/locales/zealot/en.yml +++ b/config/locales/zealot/en.yml @@ -367,7 +367,7 @@ en: app_open_in_safari: Choose "Open in Safari" and install app_open_in_webbrower: Open with any browser and install not_latest_release: New release found! - released_new_version: 'New release %{release_version} (%{build_version}) uploaded at %{time} ago, %{link}.' + released_new_version: 'Build %{version} uploaded at %{time} ago, %{link}.' view_latest_version: Check it out name: App version: Auto Version diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index 7a1642ca2..ceaa17824 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -390,7 +390,7 @@ zh-CN: app_open_in_safari: 在 Safari 中打开并安装 app_open_in_webbrower: 在任意浏览器中打开并安装 not_latest_release: 当前不是最新版本! - released_new_version: '%{release_version} (%{build_version}) 于%{time}发布了,%{link}。' + released_new_version: '版本 %{version} 于%{time}发布了,%{link}。' view_latest_version: 查看最新版本 name: 应用 From 43d7bdf3decd60196dc6b4325ef8e8ec44eb818e Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 6 Mar 2023 18:20:03 +0800 Subject: [PATCH 1387/2165] =?UTF-8?q?style:=20=E4=B8=8A=E4=BC=A0=E5=BA=94?= =?UTF-8?q?=E7=94=A8=E6=96=87=E4=BB=B6=E5=AD=97=E6=AE=B5=E7=9A=84=E6=8F=90?= =?UTF-8?q?=E7=A4=BA=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/locales/simple_form/simple_form.en.yml | 4 ++-- config/locales/simple_form/simple_form.zh-CN.yml | 8 ++++---- config/locales/zealot/en.yml | 4 ++-- config/locales/zealot/zh-CN.yml | 4 ++-- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/config/locales/simple_form/simple_form.en.yml b/config/locales/simple_form/simple_form.en.yml index 985f01041..3a4a51778 100644 --- a/config/locales/simple_form/simple_form.en.yml +++ b/config/locales/simple_form/simple_form.en.yml @@ -95,9 +95,9 @@ en: slug: 'A slug is the part of a URL that identifies a particular page on a website in an easy-to-read form.' password: 'Need password by fill it when user is not log in.' release: - file: Support iOS.ipa、Android.apk and macOS.app.zip file + file: Support iOS, Android, macOS, Windows and Linux binary file. changelog: A log or record of all notable changes made to a upload. - release_type: 'iOS: debug、adhoc, release; Android: debug, release' + release_type: 'iOS: debug、adhoc, release; Android: debug, release.' branch: Git branch. In general either main or develop. git_commit: 40 bit length SHA value of git commit ci_url: the detail URL of Jenkins, Gitlab CI diff --git a/config/locales/simple_form/simple_form.zh-CN.yml b/config/locales/simple_form/simple_form.zh-CN.yml index 04d128932..7c47bf31d 100644 --- a/config/locales/simple_form/simple_form.zh-CN.yml +++ b/config/locales/simple_form/simple_form.zh-CN.yml @@ -91,14 +91,14 @@ zh-CN: channel: name: '推荐按照应用平台区分不同渠道,单平台应用也可以是分发市场的名称' device_type: '应用设备类型' - bundle_id: '校验应用 bundle id(package name),为空或 * 为不校验' + bundle_id: '校验应用 bundle id (package name),为空或 * 为不校验' git_url: 'Git 项目地址,填写 Github 或 Gitlab 或其他自建地址' slug: 'URL 的唯一标识' password: '设置后对非登录用户会要求输入密码' release: - file: 支持 iOS.ipa、Android.apk 以及 macOS.app.zip 文件 + file: 支持 iOS、Android、macOS、Windows、Linux 各种应用类型的文件 changelog: 这个应用包含了什么新特性,修复了什么问题等 - release_type: iOS 的 debug、adhoc、release;Android 的 debug、release 等 + release_type: iOS 的 debug、adhoc、release / Android 的 debug、release 等 branch: 通常情况是 main 或 develop git_commit: 通常是 40 位长度的哈希值 ci_url: Jenkins、Gitlab CI 具体构建的地址 @@ -114,7 +114,7 @@ zh-CN: schedule: | 表达式支持英语语义Cron,暂不支持单次执行 - max_keeps: 备份达到设置上限会删除最早的文件,-1 不限制设置;0 不可备份 + max_keeps: 备份达到设置上限会删除最早的文件,-1 不限制设置; 0 不可备份 placeholders: release: diff --git a/config/locales/zealot/en.yml b/config/locales/zealot/en.yml index e4f779963..5173e9375 100644 --- a/config/locales/zealot/en.yml +++ b/config/locales/zealot/en.yml @@ -487,7 +487,7 @@ en: title: New teardown file: File choose_file: Choose file - file_hint: Support .apk, .aab, .ipa, .mobileprovision and macOS.app.zip file + file_hint: Support .apk/.aab/.ipa/.mobileprovision and macOS.app.zip file submit: Start work create: create: :teardowns.new.title @@ -602,7 +602,7 @@ en: not_support_file_type: Not support file type failed_get_metadata: Failed to parse, make sure supported file type and unhardened unknown_parse: 'Unknown parse error [%{class}]: %{message}' - choose_supported_file_type: 'Choose support file type: .apk, .abb, .ipa, .mobileprovision or macOS.app.zip file' + choose_supported_file_type: 'Choose support file type: .apk/.abb/.ipa/.mobileprovision or macOS.app.zip file' udid: title: Fetch UDID index: diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index ceaa17824..0e9e7b16e 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -516,7 +516,7 @@ zh-CN: title: 新建应用解包 file: 文件 choose_file: 选择文件 - file_hint: 支持 .apk、 .aab、.ipa、.mobileprovision 以及 macOS.app.zip 文件 + file_hint: 支持 .apk/.aab/.ipa/.mobileprovision 以及 macOS.app.zip 文件 submit: 开始解包 create: create: :'teardowns.new.title' @@ -635,7 +635,7 @@ zh-CN: not_support_file_type: 应用的文件类型不支持 failed_get_metadata: 应用解析异常,请确保是支持的文件类型且没有安全加固处理 unknown_parse: '上传应用解析发现未知异常,原始错误 [%{class}]: %{message}' - choose_supported_file_type: 请选择需要解包的 .apk、.aab、.ipa、.mobileprovision 或 macOS.app.zip 文件 + choose_supported_file_type: 请选择需要解包的 .apk/.aab/.ipa/.mobileprovision 或 macOS.app.zip 文件 udid: title: 设备 UDID From fa200fe610d48294b4b8abd758d0940f88bfc83e Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 6 Mar 2023 18:20:32 +0800 Subject: [PATCH 1388/2165] =?UTF-8?q?style:=20=E6=8E=A7=E5=88=B6=E9=9D=A2?= =?UTF-8?q?=E6=9D=BF=E6=9C=80=E8=BF=91=E4=B8=8A=E4=BC=A0=E5=BE=AE=E8=B0=83?= =?UTF-8?q?=E9=BB=91=E6=9A=97=E6=A8=A1=E5=BC=8F=E7=9A=84=E9=A2=9C=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/assets/stylesheets/dashboard.scss | 9 +++++++++ app/views/dashboards/_recently_upload.html.slim | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/app/assets/stylesheets/dashboard.scss b/app/assets/stylesheets/dashboard.scss index 8292136a3..3524ebbac 100644 --- a/app/assets/stylesheets/dashboard.scss +++ b/app/assets/stylesheets/dashboard.scss @@ -21,6 +21,11 @@ font-weight: 400; } + .time-title { + @extend .bg-olive !optional; + @extend .text-white; + } + .timeline-item { margin-left: 40px; background-color: #f8f8f8; @@ -63,6 +68,10 @@ background-color: #454d55; } + .time-title { + color: #373737 !important; + } + .timeline-item { background-color: #454d55; border-color: #3a3a3a; diff --git a/app/views/dashboards/_recently_upload.html.slim b/app/views/dashboards/_recently_upload.html.slim index 96c9da7fc..a545a71fa 100644 --- a/app/views/dashboards/_recently_upload.html.slim +++ b/app/views/dashboards/_recently_upload.html.slim @@ -17,7 +17,7 @@ section ruby: loop_date = release.created_at .time-label - span.bg-olive + span.time-title = release.created_at.strftime('%Y-%m-%d') div From 1f91ae8b15612133d9002e50958cb5c495f62f53 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 Mar 2023 21:56:52 +0000 Subject: [PATCH 1389/2165] chore(deps): bump ua-parser-js from 1.0.33 to 1.0.34 Bumps [ua-parser-js](https://github.com/faisalman/ua-parser-js) from 1.0.33 to 1.0.34. - [Release notes](https://github.com/faisalman/ua-parser-js/releases) - [Changelog](https://github.com/faisalman/ua-parser-js/blob/1.0.34/changelog.md) - [Commits](https://github.com/faisalman/ua-parser-js/compare/1.0.33...1.0.34) --- updated-dependencies: - dependency-name: ua-parser-js dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 7b626f47e..0b021acf8 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "compare-versions": "^5.0.3", "esbuild": "^0.17.10", "sass": "^1.58.3", - "ua-parser-js": "^1.0.33" + "ua-parser-js": "^1.0.34" }, "scripts": { "build": "esbuild app/javascript/*.* --bundle --sourcemap --outdir=app/assets/builds --public-path=assets", diff --git a/yarn.lock b/yarn.lock index 63357e3a1..ae7656364 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1558,10 +1558,10 @@ tslib@^2.4.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== -ua-parser-js@^1.0.33: - version "1.0.33" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-1.0.33.tgz#f21f01233e90e7ed0f059ceab46eb190ff17f8f4" - integrity sha512-RqshF7TPTE0XLYAqmjlu5cLLuGdKrNu9O1KLA/qp39QtbZwuzwv1dT46DZSopoUMsYgXpB3Cv8a03FI8b74oFQ== +ua-parser-js@^1.0.34: + version "1.0.34" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-1.0.34.tgz#b33f41c415325839f354005d25a2f588be296976" + integrity sha512-K9mwJm/DaB6mRLZfw6q8IMXipcrmuT6yfhYmwhAkuh+81sChuYstYA+znlgaflUPaYUa3odxKPKGw6Vw/lANew== unbox-primitive@^1.0.2: version "1.0.2" From b04e19e35b51dbb319977c2aeaf614926fc58224 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 6 Mar 2023 21:57:46 +0000 Subject: [PATCH 1390/2165] chore(deps): bump propshaft from 0.6.4 to 0.7.0 Bumps [propshaft](https://github.com/rails/propshaft) from 0.6.4 to 0.7.0. - [Release notes](https://github.com/rails/propshaft/releases) - [Commits](https://github.com/rails/propshaft/compare/v0.6.4...v0.7.0) --- updated-dependencies: - dependency-name: propshaft dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Gemfile b/Gemfile index 3eea60f40..6f480c1a8 100644 --- a/Gemfile +++ b/Gemfile @@ -84,7 +84,7 @@ gem 'sidekiq-failures', '~> 1.0.4' # Assets ## jsbundling-rails, cssbundling-rails 仅生成配置文件到项目组,核心还是 package.json 中 build/build:css 部分。 -gem 'propshaft', '0.6.4' +gem 'propshaft', '0.7.0' gem 'jsbundling-rails', '~> 1.1' gem 'cssbundling-rails', '~> 1.1' ## Javascript diff --git a/Gemfile.lock b/Gemfile.lock index 8455f36e7..e51edb344 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -237,7 +237,7 @@ GEM mini_magick (4.12.0) mini_mime (1.1.2) mini_portile2 (2.8.1) - minitest (5.17.0) + minitest (5.18.0) mixlib-shellout (3.2.7) chef-utils msgpack (1.6.0) @@ -293,7 +293,7 @@ GEM activerecord (>= 6) plist (3.7.0) prettier_print (1.2.0) - propshaft (0.6.4) + propshaft (0.7.0) actionpack (>= 7.0.0) activesupport (>= 7.0.0) rack @@ -314,7 +314,7 @@ GEM pyu-ruby-sasl (0.0.3.3) raabro (1.4.0) racc (1.6.2) - rack (2.2.6.2) + rack (2.2.6.3) rack-cors (2.0.0) rack (>= 2.0.0) rack-protection (3.0.5) @@ -523,7 +523,7 @@ DEPENDENCIES pg (>= 0.18, < 2.0) pghero (~> 3.2.0) plist (~> 3.7.0) - propshaft (= 0.6.4) + propshaft (= 0.7.0) pry-rails pry-rescue puma (~> 6.1.1) From a0b30654192c6a4c3111e5bc728839e883bd202d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 9 Mar 2023 02:59:18 +0000 Subject: [PATCH 1391/2165] chore(deps): bump rack from 2.2.6.2 to 2.2.6.3 Bumps [rack](https://github.com/rack/rack) from 2.2.6.2 to 2.2.6.3. - [Release notes](https://github.com/rack/rack/releases) - [Changelog](https://github.com/rack/rack/blob/main/CHANGELOG.md) - [Commits](https://github.com/rack/rack/compare/v2.2.6.2...v2.2.6.3) --- updated-dependencies: - dependency-name: rack dependency-type: indirect ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 8455f36e7..5ec974ea0 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -314,7 +314,7 @@ GEM pyu-ruby-sasl (0.0.3.3) raabro (1.4.0) racc (1.6.2) - rack (2.2.6.2) + rack (2.2.6.3) rack-cors (2.0.0) rack (>= 2.0.0) rack-protection (3.0.5) From de08c41d926df5b34d952aab3adf256f70c3b533 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 9 Mar 2023 03:02:32 +0000 Subject: [PATCH 1392/2165] chore(deps): bump esbuild from 0.17.10 to 0.17.11 Bumps [esbuild](https://github.com/evanw/esbuild) from 0.17.10 to 0.17.11. - [Release notes](https://github.com/evanw/esbuild/releases) - [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md) - [Commits](https://github.com/evanw/esbuild/compare/v0.17.10...v0.17.11) --- updated-dependencies: - dependency-name: esbuild dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 270 +++++++++++++++++++++++++-------------------------- 2 files changed, 136 insertions(+), 136 deletions(-) diff --git a/package.json b/package.json index 0b021acf8..86b739adc 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "admin-lte": "3.1.0", "clipboard": "^2.0.11", "compare-versions": "^5.0.3", - "esbuild": "^0.17.10", + "esbuild": "^0.17.11", "sass": "^1.58.3", "ua-parser-js": "^1.0.34" }, diff --git a/yarn.lock b/yarn.lock index ae7656364..05b5e4a00 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,115 +2,115 @@ # yarn lockfile v1 -"@esbuild/android-arm64@0.17.10": - version "0.17.10" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.10.tgz#ad2ee47dd021035abdfb0c38848ff77a1e1918c4" - integrity sha512-ht1P9CmvrPF5yKDtyC+z43RczVs4rrHpRqrmIuoSvSdn44Fs1n6DGlpZKdK6rM83pFLbVaSUwle8IN+TPmkv7g== - -"@esbuild/android-arm@0.17.10": - version "0.17.10" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.10.tgz#bb5a68af8adeb94b30eadee7307404dc5237d076" - integrity sha512-7YEBfZ5lSem9Tqpsz+tjbdsEshlO9j/REJrfv4DXgKTt1+/MHqGwbtlyxQuaSlMeUZLxUKBaX8wdzlTfHkmnLw== - -"@esbuild/android-x64@0.17.10": - version "0.17.10" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.10.tgz#751d5d8ae9ece1efa9627b689c888eb85b102360" - integrity sha512-CYzrm+hTiY5QICji64aJ/xKdN70IK8XZ6iiyq0tZkd3tfnwwSWTYH1t3m6zyaaBxkuj40kxgMyj1km/NqdjQZA== - -"@esbuild/darwin-arm64@0.17.10": - version "0.17.10" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.10.tgz#85601ee7efb2129cd3218d5bcbe8da1173bc1e8b" - integrity sha512-3HaGIowI+nMZlopqyW6+jxYr01KvNaLB5znXfbyyjuo4lE0VZfvFGcguIJapQeQMS4cX/NEispwOekJt3gr5Dg== - -"@esbuild/darwin-x64@0.17.10": - version "0.17.10" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.10.tgz#362c7e988c61fe72d5edef4f717e4b4fc728da98" - integrity sha512-J4MJzGchuCRG5n+B4EHpAMoJmBeAE1L3wGYDIN5oWNqX0tEr7VKOzw0ymSwpoeSpdCa030lagGUfnfhS7OvzrQ== - -"@esbuild/freebsd-arm64@0.17.10": - version "0.17.10" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.10.tgz#e8a85a46ede7c3a048a12f16b9d551d25adc8bb1" - integrity sha512-ZkX40Z7qCbugeK4U5/gbzna/UQkM9d9LNV+Fro8r7HA7sRof5Rwxc46SsqeMvB5ZaR0b1/ITQ/8Y1NmV2F0fXQ== - -"@esbuild/freebsd-x64@0.17.10": - version "0.17.10" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.10.tgz#cd0a1b68bffbcb5b65e65b3fd542e8c7c3edd86b" - integrity sha512-0m0YX1IWSLG9hWh7tZa3kdAugFbZFFx9XrvfpaCMMvrswSTvUZypp0NFKriUurHpBA3xsHVE9Qb/0u2Bbi/otg== - -"@esbuild/linux-arm64@0.17.10": - version "0.17.10" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.10.tgz#13b183f432512ed9d9281cc89476caeebe9e9123" - integrity sha512-g1EZJR1/c+MmCgVwpdZdKi4QAJ8DCLP5uTgLWSAVd9wlqk9GMscaNMEViG3aE1wS+cNMzXXgdWiW/VX4J+5nTA== - -"@esbuild/linux-arm@0.17.10": - version "0.17.10" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.10.tgz#dd11e0a5faa3ea94dc80278a601c3be7b4fdf1da" - integrity sha512-whRdrrl0X+9D6o5f0sTZtDM9s86Xt4wk1bf7ltx6iQqrIIOH+sre1yjpcCdrVXntQPCNw/G+XqsD4HuxeS+2QA== - -"@esbuild/linux-ia32@0.17.10": - version "0.17.10" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.10.tgz#4d836f87b92807d9292379963c4888270d282405" - integrity sha512-1vKYCjfv/bEwxngHERp7huYfJ4jJzldfxyfaF7hc3216xiDA62xbXJfRlradiMhGZbdNLj2WA1YwYFzs9IWNPw== - -"@esbuild/linux-loong64@0.17.10": - version "0.17.10" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.10.tgz#92eb2ee200c17ef12c7fb3b648231948699e7a4c" - integrity sha512-mvwAr75q3Fgc/qz3K6sya3gBmJIYZCgcJ0s7XshpoqIAIBszzfXsqhpRrRdVFAyV1G9VUjj7VopL2HnAS8aHFA== - -"@esbuild/linux-mips64el@0.17.10": - version "0.17.10" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.10.tgz#14f7d50c40fe7f7ee545a9bd07c6f6e4cba5570e" - integrity sha512-XilKPgM2u1zR1YuvCsFQWl9Fc35BqSqktooumOY2zj7CSn5czJn279j9TE1JEqSqz88izJo7yE4x3LSf7oxHzg== - -"@esbuild/linux-ppc64@0.17.10": - version "0.17.10" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.10.tgz#1ab5802e93ae511ce9783e1cb95f37df0f84c4af" - integrity sha512-kM4Rmh9l670SwjlGkIe7pYWezk8uxKHX4Lnn5jBZYBNlWpKMBCVfpAgAJqp5doLobhzF3l64VZVrmGeZ8+uKmQ== - -"@esbuild/linux-riscv64@0.17.10": - version "0.17.10" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.10.tgz#4fae25201ef7ad868731d16c8b50b0e386c4774a" - integrity sha512-r1m9ZMNJBtOvYYGQVXKy+WvWd0BPvSxMsVq8Hp4GzdMBQvfZRvRr5TtX/1RdN6Va8JMVQGpxqde3O+e8+khNJQ== - -"@esbuild/linux-s390x@0.17.10": - version "0.17.10" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.10.tgz#126254d8335bb3586918b1ca60beb4abb46e6d54" - integrity sha512-LsY7QvOLPw9WRJ+fU5pNB3qrSfA00u32ND5JVDrn/xG5hIQo3kvTxSlWFRP0NJ0+n6HmhPGG0Q4jtQsb6PFoyg== - -"@esbuild/linux-x64@0.17.10": - version "0.17.10" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.10.tgz#7fa4667b2df81ea0538e1b75e607cf04e526ce91" - integrity sha512-zJUfJLebCYzBdIz/Z9vqwFjIA7iSlLCFvVi7glMgnu2MK7XYigwsonXshy9wP9S7szF+nmwrelNaP3WGanstEg== - -"@esbuild/netbsd-x64@0.17.10": - version "0.17.10" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.10.tgz#2d24727ddc2305619685bf237a46d6087a02ee9a" - integrity sha512-lOMkailn4Ok9Vbp/q7uJfgicpDTbZFlXlnKT2DqC8uBijmm5oGtXAJy2ZZVo5hX7IOVXikV9LpCMj2U8cTguWA== - -"@esbuild/openbsd-x64@0.17.10": - version "0.17.10" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.10.tgz#bf3fc38ee6ecf028c1f0cfe11f61d53cc75fef12" - integrity sha512-/VE0Kx6y7eekqZ+ZLU4AjMlB80ov9tEz4H067Y0STwnGOYL8CsNg4J+cCmBznk1tMpxMoUOf0AbWlb1d2Pkbig== - -"@esbuild/sunos-x64@0.17.10": - version "0.17.10" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.10.tgz#8deabd6dfec6256f80bb101bc59d29dbae99c69b" - integrity sha512-ERNO0838OUm8HfUjjsEs71cLjLMu/xt6bhOlxcJ0/1MG3hNqCmbWaS+w/8nFLa0DDjbwZQuGKVtCUJliLmbVgg== - -"@esbuild/win32-arm64@0.17.10": - version "0.17.10" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.10.tgz#1ec1ee04c788c4c57a83370b6abf79587b3e4965" - integrity sha512-fXv+L+Bw2AeK+XJHwDAQ9m3NRlNemG6Z6ijLwJAAVdu4cyoFbBWbEtyZzDeL+rpG2lWI51cXeMt70HA8g2MqIg== - -"@esbuild/win32-ia32@0.17.10": - version "0.17.10" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.10.tgz#a362528d7f3ad5d44fa8710a96764677ef92ebe9" - integrity sha512-3s+HADrOdCdGOi5lnh5DMQEzgbsFsd4w57L/eLKKjMnN0CN4AIEP0DCP3F3N14xnxh3ruNc32A0Na9zYe1Z/AQ== - -"@esbuild/win32-x64@0.17.10": - version "0.17.10" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.10.tgz#ac779220f2da96afd480fb3f3148a292f66e7fc3" - integrity sha512-oP+zFUjYNaMNmjTwlFtWep85hvwUu19cZklB3QsBOcZSs6y7hmH4LNCJ7075bsqzYaNvZFXJlAVaQ2ApITDXtw== +"@esbuild/android-arm64@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.11.tgz#52c3e6cabc19c5e4c1c0c01cb58f0442338e1c14" + integrity sha512-QnK4d/zhVTuV4/pRM4HUjcsbl43POALU2zvBynmrrqZt9LPcLA3x1fTZPBg2RRguBQnJcnU059yKr+bydkntjg== + +"@esbuild/android-arm@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.11.tgz#f3fc768235aecbeb840d0049fdf13cd28592105f" + integrity sha512-CdyX6sRVh1NzFCsf5vw3kULwlAhfy9wVt8SZlrhQ7eL2qBjGbFhRBWkkAzuZm9IIEOCKJw4DXA6R85g+qc8RDw== + +"@esbuild/android-x64@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.11.tgz#443ed47771a7e917e4282469ba350d117473550c" + integrity sha512-3PL3HKtsDIXGQcSCKtWD/dy+mgc4p2Tvo2qKgKHj9Yf+eniwFnuoQ0OUhlSfAEpKAFzF9N21Nwgnap6zy3L3MQ== + +"@esbuild/darwin-arm64@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.11.tgz#0e8c78d94d5759a48521dbfd83189d2ed3499a16" + integrity sha512-pJ950bNKgzhkGNO3Z9TeHzIFtEyC2GDQL3wxkMApDEghYx5Qers84UTNc1bAxWbRkuJOgmOha5V0WUeh8G+YGw== + +"@esbuild/darwin-x64@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.11.tgz#2405cfdf70eb961c7cf973463ca7263dc2004c88" + integrity sha512-iB0dQkIHXyczK3BZtzw1tqegf0F0Ab5texX2TvMQjiJIWXAfM4FQl7D909YfXWnB92OQz4ivBYQ2RlxBJrMJOw== + +"@esbuild/freebsd-arm64@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.11.tgz#d5138e873e15f87bd4564c024dfa00ef37e623fd" + integrity sha512-7EFzUADmI1jCHeDRGKgbnF5sDIceZsQGapoO6dmw7r/ZBEKX7CCDnIz8m9yEclzr7mFsd+DyasHzpjfJnmBB1Q== + +"@esbuild/freebsd-x64@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.11.tgz#e850b58b8fabf8e9ef0e125af3c25229ad2d6c38" + integrity sha512-iPgenptC8i8pdvkHQvXJFzc1eVMR7W2lBPrTE6GbhR54sLcF42mk3zBOjKPOodezzuAz/KSu8CPyFSjcBMkE9g== + +"@esbuild/linux-arm64@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.11.tgz#2bfb93d0809ec2357c12ebb27736b750c9ae0aa5" + integrity sha512-Qxth3gsWWGKz2/qG2d5DsW/57SeA2AmpSMhdg9TSB5Svn2KDob3qxfQSkdnWjSd42kqoxIPy3EJFs+6w1+6Qjg== + +"@esbuild/linux-arm@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.11.tgz#e56fb3b76828317a704f4a167c5bd790fe5314e7" + integrity sha512-M9iK/d4lgZH0U5M1R2p2gqhPV/7JPJcRz+8O8GBKVgqndTzydQ7B2XGDbxtbvFkvIs53uXTobOhv+RyaqhUiMg== + +"@esbuild/linux-ia32@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.11.tgz#59fa1c49b271793d14eb5effc757e8c0d0cb2cab" + integrity sha512-dB1nGaVWtUlb/rRDHmuDQhfqazWE0LMro/AIbT2lWM3CDMHJNpLckH+gCddQyhhcLac2OYw69ikUMO34JLt3wA== + +"@esbuild/linux-loong64@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.11.tgz#89575bc189099c03a36daa54f3f481780c7fd502" + integrity sha512-aCWlq70Q7Nc9WDnormntGS1ar6ZFvUpqr8gXtO+HRejRYPweAFQN615PcgaSJkZjhHp61+MNLhzyVALSF2/Q0g== + +"@esbuild/linux-mips64el@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.11.tgz#0e18ca039dc7e4645efd8edc1b10952933eb6b1b" + integrity sha512-cGeGNdQxqY8qJwlYH1BP6rjIIiEcrM05H7k3tR7WxOLmD1ZxRMd6/QIOWMb8mD2s2YJFNRuNQ+wjMhgEL2oCEw== + +"@esbuild/linux-ppc64@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.11.tgz#2d152cb3a253afb8c100a165ad132dc96f36cb11" + integrity sha512-BdlziJQPW/bNe0E8eYsHB40mYOluS+jULPCjlWiHzDgr+ZBRXPtgMV1nkLEGdpjrwgmtkZHEGEPaKdS/8faLDA== + +"@esbuild/linux-riscv64@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.11.tgz#c6ac494a81221d53d65b33e665c7df1747952d3c" + integrity sha512-MDLwQbtF+83oJCI1Cixn68Et/ME6gelmhssPebC40RdJaect+IM+l7o/CuG0ZlDs6tZTEIoxUe53H3GmMn8oMA== + +"@esbuild/linux-s390x@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.11.tgz#4bad33894bc7415cea4be8fa90fe456226a424ad" + integrity sha512-4N5EMESvws0Ozr2J94VoUD8HIRi7X0uvUv4c0wpTHZyZY9qpaaN7THjosdiW56irQ4qnJ6Lsc+i+5zGWnyqWqQ== + +"@esbuild/linux-x64@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.11.tgz#903fda743459f530a16a6c6ee8d2c0f6c1a12fc7" + integrity sha512-rM/v8UlluxpytFSmVdbCe1yyKQd/e+FmIJE2oPJvbBo+D0XVWi1y/NQ4iTNx+436WmDHQBjVLrbnAQLQ6U7wlw== + +"@esbuild/netbsd-x64@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.11.tgz#b589239fe7d9b16ee03c5e191f3f5b640f1518a1" + integrity sha512-4WaAhuz5f91h3/g43VBGdto1Q+X7VEZfpcWGtOFXnggEuLvjV+cP6DyLRU15IjiU9fKLLk41OoJfBFN5DhPvag== + +"@esbuild/openbsd-x64@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.11.tgz#b355019754116bef39ec688f8fd2fe6471b9779b" + integrity sha512-UBj135Nx4FpnvtE+C8TWGp98oUgBcmNmdYgl5ToKc0mBHxVVqVE7FUS5/ELMImOp205qDAittL6Ezhasc2Ev/w== + +"@esbuild/sunos-x64@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.11.tgz#2ea47fb592e68406e5025a7696dc714fc6a115dc" + integrity sha512-1/gxTifDC9aXbV2xOfCbOceh5AlIidUrPsMpivgzo8P8zUtczlq1ncFpeN1ZyQJ9lVs2hILy1PG5KPp+w8QPPg== + +"@esbuild/win32-arm64@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.11.tgz#47e6fdab17c4c52e6e0d606dd9cb843b29826325" + integrity sha512-vtSfyx5yRdpiOW9yp6Ax0zyNOv9HjOAw8WaZg3dF5djEHKKm3UnoohftVvIJtRh0Ec7Hso0RIdTqZvPXJ7FdvQ== + +"@esbuild/win32-ia32@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.11.tgz#a97273aa3164c8d8f501899f55cc75a4a79599a3" + integrity sha512-GFPSLEGQr4wHFTiIUJQrnJKZhZjjq4Sphf+mM76nQR6WkQn73vm7IsacmBRPkALfpOCHsopSvLgqdd4iUW2mYw== + +"@esbuild/win32-x64@0.17.11": + version "0.17.11" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.11.tgz#9be796d93ae27b636da32d960899a4912bca27a1" + integrity sha512-N9vXqLP3eRL8BqSy8yn4Y98cZI2pZ8fyuHx6lKjiG2WABpT2l01TXdzq5Ma2ZUBzfB7tx5dXVhge8X9u0S70ZQ== "@fortawesome/fontawesome-free@^5.15.3": version "5.15.4" @@ -777,33 +777,33 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -esbuild@^0.17.10: - version "0.17.10" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.10.tgz#3be050561b34c5dc05b46978f4e1f326d5cc9437" - integrity sha512-n7V3v29IuZy5qgxx25TKJrEm0FHghAlS6QweUcyIgh/U0zYmQcvogWROitrTyZId1mHSkuhhuyEXtI9OXioq7A== +esbuild@^0.17.11: + version "0.17.11" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.11.tgz#9f3122643b21d7e7731e42f18576c10bfa28152b" + integrity sha512-pAMImyokbWDtnA/ufPxjQg0fYo2DDuzAlqwnDvbXqHLphe+m80eF++perYKVm8LeTuj2zUuFXC+xgSVxyoHUdg== optionalDependencies: - "@esbuild/android-arm" "0.17.10" - "@esbuild/android-arm64" "0.17.10" - "@esbuild/android-x64" "0.17.10" - "@esbuild/darwin-arm64" "0.17.10" - "@esbuild/darwin-x64" "0.17.10" - "@esbuild/freebsd-arm64" "0.17.10" - "@esbuild/freebsd-x64" "0.17.10" - "@esbuild/linux-arm" "0.17.10" - "@esbuild/linux-arm64" "0.17.10" - "@esbuild/linux-ia32" "0.17.10" - "@esbuild/linux-loong64" "0.17.10" - "@esbuild/linux-mips64el" "0.17.10" - "@esbuild/linux-ppc64" "0.17.10" - "@esbuild/linux-riscv64" "0.17.10" - "@esbuild/linux-s390x" "0.17.10" - "@esbuild/linux-x64" "0.17.10" - "@esbuild/netbsd-x64" "0.17.10" - "@esbuild/openbsd-x64" "0.17.10" - "@esbuild/sunos-x64" "0.17.10" - "@esbuild/win32-arm64" "0.17.10" - "@esbuild/win32-ia32" "0.17.10" - "@esbuild/win32-x64" "0.17.10" + "@esbuild/android-arm" "0.17.11" + "@esbuild/android-arm64" "0.17.11" + "@esbuild/android-x64" "0.17.11" + "@esbuild/darwin-arm64" "0.17.11" + "@esbuild/darwin-x64" "0.17.11" + "@esbuild/freebsd-arm64" "0.17.11" + "@esbuild/freebsd-x64" "0.17.11" + "@esbuild/linux-arm" "0.17.11" + "@esbuild/linux-arm64" "0.17.11" + "@esbuild/linux-ia32" "0.17.11" + "@esbuild/linux-loong64" "0.17.11" + "@esbuild/linux-mips64el" "0.17.11" + "@esbuild/linux-ppc64" "0.17.11" + "@esbuild/linux-riscv64" "0.17.11" + "@esbuild/linux-s390x" "0.17.11" + "@esbuild/linux-x64" "0.17.11" + "@esbuild/netbsd-x64" "0.17.11" + "@esbuild/openbsd-x64" "0.17.11" + "@esbuild/sunos-x64" "0.17.11" + "@esbuild/win32-arm64" "0.17.11" + "@esbuild/win32-ia32" "0.17.11" + "@esbuild/win32-x64" "0.17.11" ev-emitter@^1.0.0: version "1.1.1" From cf8d12e5ad53f463fed4e3043163b717f967d791 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 9 Mar 2023 21:56:40 +0000 Subject: [PATCH 1393/2165] chore(deps): bump app-info from 2.8.3 to 2.8.4 Bumps [app-info](https://github.com/icyleaf/app-info) from 2.8.3 to 2.8.4. - [Release notes](https://github.com/icyleaf/app-info/releases) - [Changelog](https://github.com/icyleaf/app_info/blob/master/CHANGELOG.md) - [Commits](https://github.com/icyleaf/app-info/compare/v2.8.3...v2.8.4) --- updated-dependencies: - dependency-name: app-info dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 19 ++++++++++--------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/Gemfile b/Gemfile index 3eea60f40..8783022d3 100644 --- a/Gemfile +++ b/Gemfile @@ -92,7 +92,7 @@ gem 'stimulus-rails', '~> 1.2.1' gem 'turbo-rails', '~> 1.4' # 用于解析 iOS, Android 和 macOS 应用 -gem 'app-info', '~> 2.8.3' +gem 'app-info', '~> 2.8.4' # 带缓存的配置库 gem 'rails-settings-cached', '~> 2.8.3' diff --git a/Gemfile.lock b/Gemfile.lock index 5ec974ea0..332a683fa 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,7 +1,7 @@ GEM remote: https://rubygems.org/ specs: - CFPropertyList (3.0.5) + CFPropertyList (3.0.6) rexml actioncable (7.0.4.2) actionpack (= 7.0.4.2) @@ -78,14 +78,15 @@ GEM tzinfo (~> 2.0) addressable (2.8.1) public_suffix (>= 2.0.2, < 6.0) - android_parser (2.5.0) + android_parser (2.5.1) + rexml (> 3.0) rubyzip (>= 1.0, < 3.0) - app-info (2.8.3) + app-info (2.8.4) CFPropertyList (>= 2.3.4, < 3.1.0) - android_parser (~> 2.5.0) - google-protobuf (>= 3.19.4, < 3.22.0) + android_parser (~> 2.5.1) + google-protobuf (>= 3.19.4, < 3.23.0) icns (~> 0.2.0) - image_size (>= 1.5, < 3.1) + image_size (>= 1.5, < 3.3) ruby-macho (>= 1.4, < 4) rubyzip (>= 1.2, < 3.0) uuidtools (>= 2.1.5, < 2.3.0) @@ -161,7 +162,7 @@ GEM rubyntlm (~> 0.5) globalid (1.1.0) activesupport (>= 5.0) - google-protobuf (3.21.12) + google-protobuf (3.22.1) graphiql-rails (1.8.0) railties sprockets-rails @@ -175,7 +176,7 @@ GEM image_processing (1.12.2) mini_magick (>= 4.9.5, < 5) ruby-vips (>= 2.0.17, < 3) - image_size (3.0.2) + image_size (3.2.0) improved_jenkins_client (1.6.7) addressable (~> 2.7) json (>= 1.0) @@ -489,7 +490,7 @@ PLATFORMS DEPENDENCIES active_model_serializers (~> 0.10.13) activejob-status - app-info (~> 2.8.3) + app-info (~> 2.8.4) awesome_print better_errors binding_of_caller From bda4a1b8349393298c10149d4036f6d72cd3b203 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 9 Mar 2023 21:57:03 +0000 Subject: [PATCH 1394/2165] chore(deps): bump graphql from 2.0.17 to 2.0.18 Bumps [graphql](https://github.com/rmosolgo/graphql-ruby) from 2.0.17 to 2.0.18. - [Release notes](https://github.com/rmosolgo/graphql-ruby/releases) - [Changelog](https://github.com/rmosolgo/graphql-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/rmosolgo/graphql-ruby/compare/v2.0.17...v2.0.18) --- updated-dependencies: - dependency-name: graphql dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 3eea60f40..15fb1b9ea 100644 --- a/Gemfile +++ b/Gemfile @@ -18,7 +18,7 @@ gem 'lograge', '~> 0.12.0' # API gem 'active_model_serializers', '~> 0.10.13' -gem 'graphql', '~> 2.0.17' +gem 'graphql', '~> 2.0.18' gem 'rack-cors', '~> 2.0.0' gem 'health_check', '~> 3.1.0' gem 'tiny_appstore_connect', '~> 0.1.7' diff --git a/Gemfile.lock b/Gemfile.lock index 5ec974ea0..e53feee8a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -165,7 +165,7 @@ GEM graphiql-rails (1.8.0) railties sprockets-rails - graphql (2.0.17) + graphql (2.0.18) hashie (5.0.0) health_check (3.1.0) railties (>= 5.0) @@ -504,7 +504,7 @@ DEPENDENCIES friendly_id (~> 5.5.0) gitlab_omniauth-ldap (~> 2.2.0) graphiql-rails - graphql (~> 2.0.17) + graphql (~> 2.0.18) health_check (~> 3.1.0) improved_jenkins_client (~> 1.6.7) jb (~> 0.8.0) From 4e0078a62227e47c545b862bb6701be45aee4f3e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 9 Mar 2023 21:57:32 +0000 Subject: [PATCH 1395/2165] chore(deps): bump slim-rails from 3.6.1 to 3.6.2 Bumps [slim-rails](https://github.com/slim-template/slim-rails) from 3.6.1 to 3.6.2. - [Release notes](https://github.com/slim-template/slim-rails/releases) - [Changelog](https://github.com/slim-template/slim-rails/blob/master/CHANGELOG.md) - [Commits](https://github.com/slim-template/slim-rails/compare/v3.6.1...v3.6.2) --- updated-dependencies: - dependency-name: slim-rails dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 16 ++++++++-------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Gemfile b/Gemfile index 3eea60f40..2a1795839 100644 --- a/Gemfile +++ b/Gemfile @@ -26,7 +26,7 @@ gem 'tiny_appstore_connect', '~> 0.1.7' # View ## 模板引擎 gem 'jb', '~> 0.8.0' -gem 'slim-rails', '~> 3.6.1' +gem 'slim-rails', '~> 3.6.2' ## 表单生成 gem 'simple_form', '~> 5.2' diff --git a/Gemfile.lock b/Gemfile.lock index 5ec974ea0..cebf3eb90 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -237,7 +237,7 @@ GEM mini_magick (4.12.0) mini_mime (1.1.2) mini_portile2 (2.8.1) - minitest (5.17.0) + minitest (5.18.0) mixlib-shellout (3.2.7) chef-utils msgpack (1.6.0) @@ -426,10 +426,10 @@ GEM simple_form (5.2.0) actionpack (>= 5.2) activemodel (>= 5.2) - slim (4.1.0) - temple (>= 0.7.6, < 0.9) - tilt (>= 2.0.6, < 2.1) - slim-rails (3.6.1) + slim (5.1.0) + temple (~> 0.10.0) + tilt (>= 2.0.6, < 2.2) + slim-rails (3.6.2) actionpack (>= 3.1) railties (>= 3.1) slim (>= 3.0, < 6.0, != 5.0.0) @@ -449,11 +449,11 @@ GEM prettier_print (>= 1.2.0) sys-filesystem (1.4.3) ffi (~> 1.1) - temple (0.8.2) + temple (0.10.0) terminal-table (3.0.2) unicode-display_width (>= 1.1.1, < 3) thor (1.2.1) - tilt (2.0.11) + tilt (2.1.0) timeout (0.3.1) tiny_appstore_connect (0.1.7) faraday (>= 1.10.0, < 3.0) @@ -545,7 +545,7 @@ DEPENDENCIES sidekiq-failures (~> 1.0.4) sidekiq-scheduler (~> 5.0.2) simple_form (~> 5.2) - slim-rails (~> 3.6.1) + slim-rails (~> 3.6.2) stimulus-rails (~> 1.2.1) sys-filesystem (~> 1.4.3) tiny_appstore_connect (~> 0.1.7) From e241a85b8abcb2c6e8ba8989f69c7562a372cca1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 10 Mar 2023 02:20:08 +0000 Subject: [PATCH 1396/2165] chore(deps): bump activejob-status from 0.4.1 to 1.0.0 Bumps [activejob-status](https://github.com/inkstak/activejob-status) from 0.4.1 to 1.0.0. - [Release notes](https://github.com/inkstak/activejob-status/releases) - [Commits](https://github.com/inkstak/activejob-status/compare/v0.4.1...v1.0.0) --- updated-dependencies: - dependency-name: activejob-status dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index eb526b7aa..b3300bf5a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -56,9 +56,9 @@ GEM activejob (7.0.4.2) activesupport (= 7.0.4.2) globalid (>= 0.3.6) - activejob-status (0.4.1) - activejob (>= 4.2) - activesupport (>= 4.2) + activejob-status (1.0.0) + activejob (>= 6.0) + activesupport (>= 6.0) activemodel (7.0.4.2) activesupport (= 7.0.4.2) activerecord (7.0.4.2) From b214b0fe04307592844d4a8582b2d363c87ef5ae Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 10 Mar 2023 11:01:57 +0800 Subject: [PATCH 1397/2165] =?UTF-8?q?feat:=20Android=20=E5=BA=94=E7=94=A8?= =?UTF-8?q?=E8=A7=A3=E5=8C=85=E7=BB=93=E6=9E=9C=E6=98=BE=E6=80=A7=E6=A0=87?= =?UTF-8?q?=E6=B3=A8=E8=AE=BE=E5=A4=87=E7=B1=BB=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/teardowns/_android.html.slim | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/app/views/teardowns/_android.html.slim b/app/views/teardowns/_android.html.slim index 1a309d526..ee26ab8c5 100644 --- a/app/views/teardowns/_android.html.slim +++ b/app/views/teardowns/_android.html.slim @@ -23,9 +23,12 @@ ruby: dt = t('teardowns.show.package_name') dd pre = @metadata.packet_name - dt = t('teardowns.show.supported_device') + dt + = t('teardowns.show.supported_device') dd - pre = @metadata.device + pre + = @metadata.device + | (Android) dt = t('teardowns.show.sdk_version_range') dd pre = "#{@metadata.min_sdk_version} / #{@metadata.target_sdk_version}" @@ -40,4 +43,4 @@ ruby: == render 'card', title: 'URL Schemes', raw: @metadata.url_schemes = render 'card', title: 'Features', raw: @metadata.features = render 'card', title: 'Permissions', raw: @metadata.permissions - = render 'card', title: 'Services', raw: @metadata.services \ No newline at end of file + = render 'card', title: 'Services', raw: @metadata.services From 99da38b96d8fde00bf5850a66e1e18b3e2ac6319 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 10 Mar 2023 11:12:04 +0800 Subject: [PATCH 1398/2165] release: 4.7.1 --- Dockerfile | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 26b56e2e3..3c304950d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -64,7 +64,7 @@ ARG BUILD_DATE ARG VCS_REF ARG TAG -ARG ZEALOT_VERSION="4.7.0" +ARG ZEALOT_VERSION="4.7.1" ARG REPLACE_CHINA_MIRROR="true" ARG ORIGINAL_REPO_URL="dl-cdn.alpinelinux.org" ARG MIRROR_REPO_URL="mirrors.ustc.edu.cn" diff --git a/package.json b/package.json index 86b739adc..00cab3776 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "zealot", - "version": "4.7.0", + "version": "4.7.1", "private": true, "license": "MIT", "dependencies": { From ce712db8065ff4ecc72b6ad669a09e315b29ddc2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Mar 2023 21:56:55 +0000 Subject: [PATCH 1399/2165] chore(deps): bump sass from 1.58.3 to 1.59.3 Bumps [sass](https://github.com/sass/dart-sass) from 1.58.3 to 1.59.3. - [Release notes](https://github.com/sass/dart-sass/releases) - [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md) - [Commits](https://github.com/sass/dart-sass/compare/1.58.3...1.59.3) --- updated-dependencies: - dependency-name: sass dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 00cab3776..afb27db27 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "clipboard": "^2.0.11", "compare-versions": "^5.0.3", "esbuild": "^0.17.11", - "sass": "^1.58.3", + "sass": "^1.59.3", "ua-parser-js": "^1.0.34" }, "scripts": { diff --git a/yarn.lock b/yarn.lock index 05b5e4a00..ae3035c76 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1428,10 +1428,10 @@ safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sass@^1.58.3: - version "1.58.3" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.58.3.tgz#2348cc052061ba4f00243a208b09c40e031f270d" - integrity sha512-Q7RaEtYf6BflYrQ+buPudKR26/lH+10EmO9bBqbmPh/KeLqv8bjpTNqxe71ocONqXq+jYiCbpPUmQMS+JJPk4A== +sass@^1.59.3: + version "1.59.3" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.59.3.tgz#a1ddf855d75c70c26b4555df4403e1bbf8e4403f" + integrity sha512-QCq98N3hX1jfTCoUAsF3eyGuXLsY7BCnCEg9qAact94Yc21npG2/mVOqoDvE0fCbWDqiM4WlcJQla0gWG2YlxQ== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" From 108e45faab2290de5b536897b92ed1fb99f51db1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Mar 2023 21:56:55 +0000 Subject: [PATCH 1400/2165] chore(deps): bump graphql from 2.0.18 to 2.0.19 Bumps [graphql](https://github.com/rmosolgo/graphql-ruby) from 2.0.18 to 2.0.19. - [Release notes](https://github.com/rmosolgo/graphql-ruby/releases) - [Changelog](https://github.com/rmosolgo/graphql-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/rmosolgo/graphql-ruby/compare/v2.0.18...v2.0.19) --- updated-dependencies: - dependency-name: graphql dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index ed07805b4..fd80d4549 100644 --- a/Gemfile +++ b/Gemfile @@ -18,7 +18,7 @@ gem 'lograge', '~> 0.12.0' # API gem 'active_model_serializers', '~> 0.10.13' -gem 'graphql', '~> 2.0.18' +gem 'graphql', '~> 2.0.19' gem 'rack-cors', '~> 2.0.0' gem 'health_check', '~> 3.1.0' gem 'tiny_appstore_connect', '~> 0.1.7' diff --git a/Gemfile.lock b/Gemfile.lock index f849c0017..044847a7a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -166,7 +166,7 @@ GEM graphiql-rails (1.8.0) railties sprockets-rails - graphql (2.0.18) + graphql (2.0.19) hashie (5.0.0) health_check (3.1.0) railties (>= 5.0) @@ -505,7 +505,7 @@ DEPENDENCIES friendly_id (~> 5.5.0) gitlab_omniauth-ldap (~> 2.2.0) graphiql-rails - graphql (~> 2.0.18) + graphql (~> 2.0.19) health_check (~> 3.1.0) improved_jenkins_client (~> 1.6.7) jb (~> 0.8.0) From 194251326a6188667e51ca566036e8b010039a52 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Mar 2023 21:57:25 +0000 Subject: [PATCH 1401/2165] chore(deps-dev): bump graphiql-rails from 1.8.0 to 1.9.0 Bumps [graphiql-rails](https://github.com/rmosolgo/graphiql-rails) from 1.8.0 to 1.9.0. - [Release notes](https://github.com/rmosolgo/graphiql-rails/releases) - [Changelog](https://github.com/rmosolgo/graphiql-rails/blob/master/changelog.md) - [Commits](https://github.com/rmosolgo/graphiql-rails/compare/v1.8.0...v1.9.0) --- updated-dependencies: - dependency-name: graphiql-rails dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index f849c0017..cb7de6ff8 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -163,7 +163,7 @@ GEM globalid (1.1.0) activesupport (>= 5.0) google-protobuf (3.22.1) - graphiql-rails (1.8.0) + graphiql-rails (1.9.0) railties sprockets-rails graphql (2.0.18) @@ -315,12 +315,12 @@ GEM pyu-ruby-sasl (0.0.3.3) raabro (1.4.0) racc (1.6.2) - rack (2.2.6.3) + rack (2.2.6.4) rack-cors (2.0.0) rack (>= 2.0.0) rack-protection (3.0.5) rack - rack-test (2.0.2) + rack-test (2.1.0) rack (>= 1.3) rails (7.0.4.2) actioncable (= 7.0.4.2) From 536b2e57e29eebfb2bbe30b1214c8e10ec9a0000 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 14 Mar 2023 21:58:34 +0000 Subject: [PATCH 1402/2165] chore(deps): bump sidekiq from 7.0.6 to 7.0.7 Bumps [sidekiq](https://github.com/sidekiq/sidekiq) from 7.0.6 to 7.0.7. - [Release notes](https://github.com/sidekiq/sidekiq/releases) - [Changelog](https://github.com/sidekiq/sidekiq/blob/main/Changes.md) - [Commits](https://github.com/sidekiq/sidekiq/compare/v7.0.6...v7.0.7) --- updated-dependencies: - dependency-name: sidekiq dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Gemfile b/Gemfile index ed07805b4..7563f0efd 100644 --- a/Gemfile +++ b/Gemfile @@ -78,7 +78,7 @@ gem 'rqrcode' # 异步队列 gem 'activejob-status' -gem 'sidekiq', '~> 7.0.5' +gem 'sidekiq', '~> 7.0.7' gem 'sidekiq-scheduler', '~> 5.0.2' gem 'sidekiq-failures', '~> 1.0.4' diff --git a/Gemfile.lock b/Gemfile.lock index f849c0017..3803d6d1c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -315,7 +315,7 @@ GEM pyu-ruby-sasl (0.0.3.3) raabro (1.4.0) racc (1.6.2) - rack (2.2.6.3) + rack (2.2.6.4) rack-cors (2.0.0) rack (>= 2.0.0) rack-protection (3.0.5) @@ -361,7 +361,7 @@ GEM ffi (~> 1.0) redis (5.0.6) redis-client (>= 0.9.0) - redis-client (0.12.2) + redis-client (0.14.0) connection_pool regexp_parser (2.6.1) reline (0.3.2) @@ -413,7 +413,7 @@ GEM sentry-sidekiq (5.8.0) sentry-ruby (~> 5.8.0) sidekiq (>= 3.0) - sidekiq (7.0.6) + sidekiq (7.0.7) concurrent-ruby (< 2) connection_pool (>= 2.3.0) rack (>= 2.2.4) @@ -542,7 +542,7 @@ DEPENDENCIES sentry-rails sentry-ruby sentry-sidekiq - sidekiq (~> 7.0.5) + sidekiq (~> 7.0.7) sidekiq-failures (~> 1.0.4) sidekiq-scheduler (~> 5.0.2) simple_form (~> 5.2) From 0b5f66c1e1b8dad6f79f60f98886e59dc6973096 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 15 Mar 2023 02:10:06 +0000 Subject: [PATCH 1403/2165] chore(deps): bump rails from 7.0.4.2 to 7.0.4.3 Bumps [rails](https://github.com/rails/rails) from 7.0.4.2 to 7.0.4.3. - [Release notes](https://github.com/rails/rails/releases) - [Commits](https://github.com/rails/rails/compare/v7.0.4.2...v7.0.4.3) --- updated-dependencies: - dependency-name: rails dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 110 +++++++++++++++++++++++++-------------------------- 1 file changed, 55 insertions(+), 55 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 3ab47be85..e0572affd 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -3,47 +3,47 @@ GEM specs: CFPropertyList (3.0.6) rexml - actioncable (7.0.4.2) - actionpack (= 7.0.4.2) - activesupport (= 7.0.4.2) + actioncable (7.0.4.3) + actionpack (= 7.0.4.3) + activesupport (= 7.0.4.3) nio4r (~> 2.0) websocket-driver (>= 0.6.1) - actionmailbox (7.0.4.2) - actionpack (= 7.0.4.2) - activejob (= 7.0.4.2) - activerecord (= 7.0.4.2) - activestorage (= 7.0.4.2) - activesupport (= 7.0.4.2) + actionmailbox (7.0.4.3) + actionpack (= 7.0.4.3) + activejob (= 7.0.4.3) + activerecord (= 7.0.4.3) + activestorage (= 7.0.4.3) + activesupport (= 7.0.4.3) mail (>= 2.7.1) net-imap net-pop net-smtp - actionmailer (7.0.4.2) - actionpack (= 7.0.4.2) - actionview (= 7.0.4.2) - activejob (= 7.0.4.2) - activesupport (= 7.0.4.2) + actionmailer (7.0.4.3) + actionpack (= 7.0.4.3) + actionview (= 7.0.4.3) + activejob (= 7.0.4.3) + activesupport (= 7.0.4.3) mail (~> 2.5, >= 2.5.4) net-imap net-pop net-smtp rails-dom-testing (~> 2.0) - actionpack (7.0.4.2) - actionview (= 7.0.4.2) - activesupport (= 7.0.4.2) + actionpack (7.0.4.3) + actionview (= 7.0.4.3) + activesupport (= 7.0.4.3) rack (~> 2.0, >= 2.2.0) rack-test (>= 0.6.3) rails-dom-testing (~> 2.0) rails-html-sanitizer (~> 1.0, >= 1.2.0) - actiontext (7.0.4.2) - actionpack (= 7.0.4.2) - activerecord (= 7.0.4.2) - activestorage (= 7.0.4.2) - activesupport (= 7.0.4.2) + actiontext (7.0.4.3) + actionpack (= 7.0.4.3) + activerecord (= 7.0.4.3) + activestorage (= 7.0.4.3) + activesupport (= 7.0.4.3) globalid (>= 0.6.0) nokogiri (>= 1.8.5) - actionview (7.0.4.2) - activesupport (= 7.0.4.2) + actionview (7.0.4.3) + activesupport (= 7.0.4.3) builder (~> 3.1) erubi (~> 1.4) rails-dom-testing (~> 2.0) @@ -53,25 +53,25 @@ GEM activemodel (>= 4.1, < 7.1) case_transform (>= 0.2) jsonapi-renderer (>= 0.1.1.beta1, < 0.3) - activejob (7.0.4.2) - activesupport (= 7.0.4.2) + activejob (7.0.4.3) + activesupport (= 7.0.4.3) globalid (>= 0.3.6) activejob-status (1.0.0) activejob (>= 6.0) activesupport (>= 6.0) - activemodel (7.0.4.2) - activesupport (= 7.0.4.2) - activerecord (7.0.4.2) - activemodel (= 7.0.4.2) - activesupport (= 7.0.4.2) - activestorage (7.0.4.2) - actionpack (= 7.0.4.2) - activejob (= 7.0.4.2) - activerecord (= 7.0.4.2) - activesupport (= 7.0.4.2) + activemodel (7.0.4.3) + activesupport (= 7.0.4.3) + activerecord (7.0.4.3) + activemodel (= 7.0.4.3) + activesupport (= 7.0.4.3) + activestorage (7.0.4.3) + actionpack (= 7.0.4.3) + activejob (= 7.0.4.3) + activerecord (= 7.0.4.3) + activesupport (= 7.0.4.3) marcel (~> 1.0) mini_mime (>= 1.1.0) - activesupport (7.0.4.2) + activesupport (7.0.4.3) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 1.6, < 2) minitest (>= 5.1) @@ -228,7 +228,7 @@ GEM loofah (2.19.1) crass (~> 1.0.2) nokogiri (>= 1.5.9) - mail (2.8.0.1) + mail (2.8.1) mini_mime (>= 0.1.1) net-imap net-pop @@ -322,20 +322,20 @@ GEM rack rack-test (2.1.0) rack (>= 1.3) - rails (7.0.4.2) - actioncable (= 7.0.4.2) - actionmailbox (= 7.0.4.2) - actionmailer (= 7.0.4.2) - actionpack (= 7.0.4.2) - actiontext (= 7.0.4.2) - actionview (= 7.0.4.2) - activejob (= 7.0.4.2) - activemodel (= 7.0.4.2) - activerecord (= 7.0.4.2) - activestorage (= 7.0.4.2) - activesupport (= 7.0.4.2) + rails (7.0.4.3) + actioncable (= 7.0.4.3) + actionmailbox (= 7.0.4.3) + actionmailer (= 7.0.4.3) + actionpack (= 7.0.4.3) + actiontext (= 7.0.4.3) + actionview (= 7.0.4.3) + activejob (= 7.0.4.3) + activemodel (= 7.0.4.3) + activerecord (= 7.0.4.3) + activestorage (= 7.0.4.3) + activesupport (= 7.0.4.3) bundler (>= 1.15.0) - railties (= 7.0.4.2) + railties (= 7.0.4.3) rails-dom-testing (2.0.3) activesupport (>= 4.2.0) nokogiri (>= 1.6) @@ -347,9 +347,9 @@ GEM rails-settings-cached (2.8.3) activerecord (>= 5.0.0) railties (>= 5.0.0) - railties (7.0.4.2) - actionpack (= 7.0.4.2) - activesupport (= 7.0.4.2) + railties (7.0.4.3) + actionpack (= 7.0.4.3) + activesupport (= 7.0.4.3) method_source rake (>= 12.2) thor (~> 1.0) @@ -455,7 +455,7 @@ GEM unicode-display_width (>= 1.1.1, < 3) thor (1.2.1) tilt (2.1.0) - timeout (0.3.1) + timeout (0.3.2) tiny_appstore_connect (0.1.7) faraday (>= 1.10.0, < 3.0) jwt (>= 1.4, < 3) From 431fc65fd84fdc26a370483dd98c394ea857ef8e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 16 Mar 2023 21:57:04 +0000 Subject: [PATCH 1404/2165] chore(deps): bump app-info from 2.8.4 to 2.8.5 Bumps [app-info](https://github.com/icyleaf/app-info) from 2.8.4 to 2.8.5. - [Release notes](https://github.com/icyleaf/app-info/releases) - [Changelog](https://github.com/icyleaf/app_info/blob/main/CHANGELOG.md) - [Commits](https://github.com/icyleaf/app-info/compare/v2.8.4...v2.8.5) --- updated-dependencies: - dependency-name: app-info dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index 6428f6d7a..928e8eded 100644 --- a/Gemfile +++ b/Gemfile @@ -92,7 +92,7 @@ gem 'stimulus-rails', '~> 1.2.1' gem 'turbo-rails', '~> 1.4' # 用于解析 iOS, Android 和 macOS 应用 -gem 'app-info', '~> 2.8.4' +gem 'app-info', '~> 2.8.5' # 带缓存的配置库 gem 'rails-settings-cached', '~> 2.8.3' diff --git a/Gemfile.lock b/Gemfile.lock index e0572affd..bab2e92a6 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -81,7 +81,7 @@ GEM android_parser (2.5.1) rexml (> 3.0) rubyzip (>= 1.0, < 3.0) - app-info (2.8.4) + app-info (2.8.5) CFPropertyList (>= 2.3.4, < 3.1.0) android_parser (~> 2.5.1) google-protobuf (>= 3.19.4, < 3.23.0) @@ -162,7 +162,7 @@ GEM rubyntlm (~> 0.5) globalid (1.1.0) activesupport (>= 5.0) - google-protobuf (3.22.1) + google-protobuf (3.22.2) graphiql-rails (1.9.0) railties sprockets-rails @@ -490,7 +490,7 @@ PLATFORMS DEPENDENCIES active_model_serializers (~> 0.10.13) activejob-status - app-info (~> 2.8.4) + app-info (~> 2.8.5) awesome_print better_errors binding_of_caller From f2a1015aea477e5ab235b29dfcf7893a99d6c718 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 16 Mar 2023 21:57:30 +0000 Subject: [PATCH 1405/2165] chore(deps): bump pghero from 3.2.0 to 3.3.1 Bumps [pghero](https://github.com/ankane/pghero) from 3.2.0 to 3.3.1. - [Release notes](https://github.com/ankane/pghero/releases) - [Changelog](https://github.com/ankane/pghero/blob/master/CHANGELOG.md) - [Commits](https://github.com/ankane/pghero/compare/v3.2.0...v3.3.1) --- updated-dependencies: - dependency-name: pghero dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 6428f6d7a..d42238a69 100644 --- a/Gemfile +++ b/Gemfile @@ -63,7 +63,7 @@ gem 'plist', '~> 3.7.0' ## 系统信息 gem 'sys-filesystem', '~> 1.4.3' gem 'vmstat', '~> 2.3.0' -gem 'pghero', '~> 3.2.0' +gem 'pghero', '~> 3.3.1' ## 异常报错上报 gem 'sentry-ruby' diff --git a/Gemfile.lock b/Gemfile.lock index e0572affd..b88a6d43c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -290,7 +290,7 @@ GEM parser (3.1.3.0) ast (~> 2.4.1) pg (1.4.6) - pghero (3.2.0) + pghero (3.3.1) activerecord (>= 6) plist (3.7.0) prettier_print (1.2.0) @@ -522,7 +522,7 @@ DEPENDENCIES omniauth-rails_csrf_protection (~> 1.0.1) openssl (~> 3.1.0) pg (>= 0.18, < 2.0) - pghero (~> 3.2.0) + pghero (~> 3.3.1) plist (~> 3.7.0) propshaft (= 0.7.0) pry-rails From 8a9dba08fac95d7c36bee3df892c8e16adc537ec Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 17 Mar 2023 21:56:55 +0000 Subject: [PATCH 1406/2165] chore(deps): bump esbuild from 0.17.11 to 0.17.12 Bumps [esbuild](https://github.com/evanw/esbuild) from 0.17.11 to 0.17.12. - [Release notes](https://github.com/evanw/esbuild/releases) - [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md) - [Commits](https://github.com/evanw/esbuild/compare/v0.17.11...v0.17.12) --- updated-dependencies: - dependency-name: esbuild dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 270 +++++++++++++++++++++++++-------------------------- 2 files changed, 136 insertions(+), 136 deletions(-) diff --git a/package.json b/package.json index afb27db27..3ecd9871d 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "admin-lte": "3.1.0", "clipboard": "^2.0.11", "compare-versions": "^5.0.3", - "esbuild": "^0.17.11", + "esbuild": "^0.17.12", "sass": "^1.59.3", "ua-parser-js": "^1.0.34" }, diff --git a/yarn.lock b/yarn.lock index ae3035c76..a1fbe8a60 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,115 +2,115 @@ # yarn lockfile v1 -"@esbuild/android-arm64@0.17.11": - version "0.17.11" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.11.tgz#52c3e6cabc19c5e4c1c0c01cb58f0442338e1c14" - integrity sha512-QnK4d/zhVTuV4/pRM4HUjcsbl43POALU2zvBynmrrqZt9LPcLA3x1fTZPBg2RRguBQnJcnU059yKr+bydkntjg== - -"@esbuild/android-arm@0.17.11": - version "0.17.11" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.11.tgz#f3fc768235aecbeb840d0049fdf13cd28592105f" - integrity sha512-CdyX6sRVh1NzFCsf5vw3kULwlAhfy9wVt8SZlrhQ7eL2qBjGbFhRBWkkAzuZm9IIEOCKJw4DXA6R85g+qc8RDw== - -"@esbuild/android-x64@0.17.11": - version "0.17.11" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.11.tgz#443ed47771a7e917e4282469ba350d117473550c" - integrity sha512-3PL3HKtsDIXGQcSCKtWD/dy+mgc4p2Tvo2qKgKHj9Yf+eniwFnuoQ0OUhlSfAEpKAFzF9N21Nwgnap6zy3L3MQ== - -"@esbuild/darwin-arm64@0.17.11": - version "0.17.11" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.11.tgz#0e8c78d94d5759a48521dbfd83189d2ed3499a16" - integrity sha512-pJ950bNKgzhkGNO3Z9TeHzIFtEyC2GDQL3wxkMApDEghYx5Qers84UTNc1bAxWbRkuJOgmOha5V0WUeh8G+YGw== - -"@esbuild/darwin-x64@0.17.11": - version "0.17.11" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.11.tgz#2405cfdf70eb961c7cf973463ca7263dc2004c88" - integrity sha512-iB0dQkIHXyczK3BZtzw1tqegf0F0Ab5texX2TvMQjiJIWXAfM4FQl7D909YfXWnB92OQz4ivBYQ2RlxBJrMJOw== - -"@esbuild/freebsd-arm64@0.17.11": - version "0.17.11" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.11.tgz#d5138e873e15f87bd4564c024dfa00ef37e623fd" - integrity sha512-7EFzUADmI1jCHeDRGKgbnF5sDIceZsQGapoO6dmw7r/ZBEKX7CCDnIz8m9yEclzr7mFsd+DyasHzpjfJnmBB1Q== - -"@esbuild/freebsd-x64@0.17.11": - version "0.17.11" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.11.tgz#e850b58b8fabf8e9ef0e125af3c25229ad2d6c38" - integrity sha512-iPgenptC8i8pdvkHQvXJFzc1eVMR7W2lBPrTE6GbhR54sLcF42mk3zBOjKPOodezzuAz/KSu8CPyFSjcBMkE9g== - -"@esbuild/linux-arm64@0.17.11": - version "0.17.11" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.11.tgz#2bfb93d0809ec2357c12ebb27736b750c9ae0aa5" - integrity sha512-Qxth3gsWWGKz2/qG2d5DsW/57SeA2AmpSMhdg9TSB5Svn2KDob3qxfQSkdnWjSd42kqoxIPy3EJFs+6w1+6Qjg== - -"@esbuild/linux-arm@0.17.11": - version "0.17.11" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.11.tgz#e56fb3b76828317a704f4a167c5bd790fe5314e7" - integrity sha512-M9iK/d4lgZH0U5M1R2p2gqhPV/7JPJcRz+8O8GBKVgqndTzydQ7B2XGDbxtbvFkvIs53uXTobOhv+RyaqhUiMg== - -"@esbuild/linux-ia32@0.17.11": - version "0.17.11" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.11.tgz#59fa1c49b271793d14eb5effc757e8c0d0cb2cab" - integrity sha512-dB1nGaVWtUlb/rRDHmuDQhfqazWE0LMro/AIbT2lWM3CDMHJNpLckH+gCddQyhhcLac2OYw69ikUMO34JLt3wA== - -"@esbuild/linux-loong64@0.17.11": - version "0.17.11" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.11.tgz#89575bc189099c03a36daa54f3f481780c7fd502" - integrity sha512-aCWlq70Q7Nc9WDnormntGS1ar6ZFvUpqr8gXtO+HRejRYPweAFQN615PcgaSJkZjhHp61+MNLhzyVALSF2/Q0g== - -"@esbuild/linux-mips64el@0.17.11": - version "0.17.11" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.11.tgz#0e18ca039dc7e4645efd8edc1b10952933eb6b1b" - integrity sha512-cGeGNdQxqY8qJwlYH1BP6rjIIiEcrM05H7k3tR7WxOLmD1ZxRMd6/QIOWMb8mD2s2YJFNRuNQ+wjMhgEL2oCEw== - -"@esbuild/linux-ppc64@0.17.11": - version "0.17.11" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.11.tgz#2d152cb3a253afb8c100a165ad132dc96f36cb11" - integrity sha512-BdlziJQPW/bNe0E8eYsHB40mYOluS+jULPCjlWiHzDgr+ZBRXPtgMV1nkLEGdpjrwgmtkZHEGEPaKdS/8faLDA== - -"@esbuild/linux-riscv64@0.17.11": - version "0.17.11" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.11.tgz#c6ac494a81221d53d65b33e665c7df1747952d3c" - integrity sha512-MDLwQbtF+83oJCI1Cixn68Et/ME6gelmhssPebC40RdJaect+IM+l7o/CuG0ZlDs6tZTEIoxUe53H3GmMn8oMA== - -"@esbuild/linux-s390x@0.17.11": - version "0.17.11" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.11.tgz#4bad33894bc7415cea4be8fa90fe456226a424ad" - integrity sha512-4N5EMESvws0Ozr2J94VoUD8HIRi7X0uvUv4c0wpTHZyZY9qpaaN7THjosdiW56irQ4qnJ6Lsc+i+5zGWnyqWqQ== - -"@esbuild/linux-x64@0.17.11": - version "0.17.11" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.11.tgz#903fda743459f530a16a6c6ee8d2c0f6c1a12fc7" - integrity sha512-rM/v8UlluxpytFSmVdbCe1yyKQd/e+FmIJE2oPJvbBo+D0XVWi1y/NQ4iTNx+436WmDHQBjVLrbnAQLQ6U7wlw== - -"@esbuild/netbsd-x64@0.17.11": - version "0.17.11" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.11.tgz#b589239fe7d9b16ee03c5e191f3f5b640f1518a1" - integrity sha512-4WaAhuz5f91h3/g43VBGdto1Q+X7VEZfpcWGtOFXnggEuLvjV+cP6DyLRU15IjiU9fKLLk41OoJfBFN5DhPvag== - -"@esbuild/openbsd-x64@0.17.11": - version "0.17.11" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.11.tgz#b355019754116bef39ec688f8fd2fe6471b9779b" - integrity sha512-UBj135Nx4FpnvtE+C8TWGp98oUgBcmNmdYgl5ToKc0mBHxVVqVE7FUS5/ELMImOp205qDAittL6Ezhasc2Ev/w== - -"@esbuild/sunos-x64@0.17.11": - version "0.17.11" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.11.tgz#2ea47fb592e68406e5025a7696dc714fc6a115dc" - integrity sha512-1/gxTifDC9aXbV2xOfCbOceh5AlIidUrPsMpivgzo8P8zUtczlq1ncFpeN1ZyQJ9lVs2hILy1PG5KPp+w8QPPg== - -"@esbuild/win32-arm64@0.17.11": - version "0.17.11" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.11.tgz#47e6fdab17c4c52e6e0d606dd9cb843b29826325" - integrity sha512-vtSfyx5yRdpiOW9yp6Ax0zyNOv9HjOAw8WaZg3dF5djEHKKm3UnoohftVvIJtRh0Ec7Hso0RIdTqZvPXJ7FdvQ== - -"@esbuild/win32-ia32@0.17.11": - version "0.17.11" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.11.tgz#a97273aa3164c8d8f501899f55cc75a4a79599a3" - integrity sha512-GFPSLEGQr4wHFTiIUJQrnJKZhZjjq4Sphf+mM76nQR6WkQn73vm7IsacmBRPkALfpOCHsopSvLgqdd4iUW2mYw== - -"@esbuild/win32-x64@0.17.11": - version "0.17.11" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.11.tgz#9be796d93ae27b636da32d960899a4912bca27a1" - integrity sha512-N9vXqLP3eRL8BqSy8yn4Y98cZI2pZ8fyuHx6lKjiG2WABpT2l01TXdzq5Ma2ZUBzfB7tx5dXVhge8X9u0S70ZQ== +"@esbuild/android-arm64@0.17.12": + version "0.17.12" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.12.tgz#15a8e2b407d03989b899e325151dc2e96d19c620" + integrity sha512-WQ9p5oiXXYJ33F2EkE3r0FRDFVpEdcDiwNX3u7Xaibxfx6vQE0Sb8ytrfQsA5WO6kDn6mDfKLh6KrPBjvkk7xA== + +"@esbuild/android-arm@0.17.12": + version "0.17.12" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.12.tgz#677a09297e1f4f37aba7b4fc4f31088b00484985" + integrity sha512-E/sgkvwoIfj4aMAPL2e35VnUJspzVYl7+M1B2cqeubdBhADV4uPon0KCc8p2G+LqSJ6i8ocYPCqY3A4GGq0zkQ== + +"@esbuild/android-x64@0.17.12": + version "0.17.12" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.12.tgz#b292729eef4e0060ae1941f6a021c4d2542a3521" + integrity sha512-m4OsaCr5gT+se25rFPHKQXARMyAehHTQAz4XX1Vk3d27VtqiX0ALMBPoXZsGaB6JYryCLfgGwUslMqTfqeLU0w== + +"@esbuild/darwin-arm64@0.17.12": + version "0.17.12" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.12.tgz#efa35318df931da05825894e1787b976d55adbe3" + integrity sha512-O3GCZghRIx+RAN0NDPhyyhRgwa19MoKlzGonIb5hgTj78krqp9XZbYCvFr9N1eUxg0ZQEpiiZ4QvsOQwBpP+lg== + +"@esbuild/darwin-x64@0.17.12": + version "0.17.12" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.12.tgz#e7b54bb3f6dc81aadfd0485cd1623c648157e64d" + integrity sha512-5D48jM3tW27h1qjaD9UNRuN+4v0zvksqZSPZqeSWggfMlsVdAhH3pwSfQIFJwcs9QJ9BRibPS4ViZgs3d2wsCA== + +"@esbuild/freebsd-arm64@0.17.12": + version "0.17.12" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.12.tgz#99a18a8579d6299c449566fe91d9b6a54cf2a591" + integrity sha512-OWvHzmLNTdF1erSvrfoEBGlN94IE6vCEaGEkEH29uo/VoONqPnoDFfShi41Ew+yKimx4vrmmAJEGNoyyP+OgOQ== + +"@esbuild/freebsd-x64@0.17.12": + version "0.17.12" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.12.tgz#0e090190fede307fb4022f671791a50dd5121abd" + integrity sha512-A0Xg5CZv8MU9xh4a+7NUpi5VHBKh1RaGJKqjxe4KG87X+mTjDE6ZvlJqpWoeJxgfXHT7IMP9tDFu7IZ03OtJAw== + +"@esbuild/linux-arm64@0.17.12": + version "0.17.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.12.tgz#7fe2a69f8a1a7153fa2b0f44aabcadb59475c7e0" + integrity sha512-cK3AjkEc+8v8YG02hYLQIQlOznW+v9N+OI9BAFuyqkfQFR+DnDLhEM5N8QRxAUz99cJTo1rLNXqRrvY15gbQUg== + +"@esbuild/linux-arm@0.17.12": + version "0.17.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.12.tgz#b87c76ebf1fe03e01fd6bb5cfc2f3c5becd5ee93" + integrity sha512-WsHyJ7b7vzHdJ1fv67Yf++2dz3D726oO3QCu8iNYik4fb5YuuReOI9OtA+n7Mk0xyQivNTPbl181s+5oZ38gyA== + +"@esbuild/linux-ia32@0.17.12": + version "0.17.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.12.tgz#9e9357090254524d32e6708883a47328f3037858" + integrity sha512-jdOBXJqcgHlah/nYHnj3Hrnl9l63RjtQ4vn9+bohjQPI2QafASB5MtHAoEv0JQHVb/xYQTFOeuHnNYE1zF7tYw== + +"@esbuild/linux-loong64@0.17.12": + version "0.17.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.12.tgz#9deb605f9e2c82f59412ddfefb4b6b96d54b5b5b" + integrity sha512-GTOEtj8h9qPKXCyiBBnHconSCV9LwFyx/gv3Phw0pa25qPYjVuuGZ4Dk14bGCfGX3qKF0+ceeQvwmtI+aYBbVA== + +"@esbuild/linux-mips64el@0.17.12": + version "0.17.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.12.tgz#6ef170b974ddf5e6acdfa5b05f22b6e9dfd2b003" + integrity sha512-o8CIhfBwKcxmEENOH9RwmUejs5jFiNoDw7YgS0EJTF6kgPgcqLFjgoc5kDey5cMHRVCIWc6kK2ShUePOcc7RbA== + +"@esbuild/linux-ppc64@0.17.12": + version "0.17.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.12.tgz#1638d3d4acf1d34aaf37cf8908c2e1cefed16204" + integrity sha512-biMLH6NR/GR4z+ap0oJYb877LdBpGac8KfZoEnDiBKd7MD/xt8eaw1SFfYRUeMVx519kVkAOL2GExdFmYnZx3A== + +"@esbuild/linux-riscv64@0.17.12": + version "0.17.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.12.tgz#135b6e9270a8e2de2b9094bb21a287517df520ef" + integrity sha512-jkphYUiO38wZGeWlfIBMB72auOllNA2sLfiZPGDtOBb1ELN8lmqBrlMiucgL8awBw1zBXN69PmZM6g4yTX84TA== + +"@esbuild/linux-s390x@0.17.12": + version "0.17.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.12.tgz#21e40830770c5d08368e300842bde382ce97d615" + integrity sha512-j3ucLdeY9HBcvODhCY4b+Ds3hWGO8t+SAidtmWu/ukfLLG/oYDMaA+dnugTVAg5fnUOGNbIYL9TOjhWgQB8W5g== + +"@esbuild/linux-x64@0.17.12": + version "0.17.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.12.tgz#76c1c199871d48e1aaa47a762fb9e0dca52e1f7a" + integrity sha512-uo5JL3cgaEGotaqSaJdRfFNSCUJOIliKLnDGWaVCgIKkHxwhYMm95pfMbWZ9l7GeW9kDg0tSxcy9NYdEtjwwmA== + +"@esbuild/netbsd-x64@0.17.12": + version "0.17.12" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.12.tgz#c7c3b3017a4b938c76c35f66af529baf62eac527" + integrity sha512-DNdoRg8JX+gGsbqt2gPgkgb00mqOgOO27KnrWZtdABl6yWTST30aibGJ6geBq3WM2TIeW6COs5AScnC7GwtGPg== + +"@esbuild/openbsd-x64@0.17.12": + version "0.17.12" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.12.tgz#05d04217d980e049001afdbeacbb58d31bb5cefb" + integrity sha512-aVsENlr7B64w8I1lhHShND5o8cW6sB9n9MUtLumFlPhG3elhNWtE7M1TFpj3m7lT3sKQUMkGFjTQBrvDDO1YWA== + +"@esbuild/sunos-x64@0.17.12": + version "0.17.12" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.12.tgz#cf3862521600e4eb6c440ec3bad31ed40fb87ef3" + integrity sha512-qbHGVQdKSwi0JQJuZznS4SyY27tYXYF0mrgthbxXrZI3AHKuRvU+Eqbg/F0rmLDpW/jkIZBlCO1XfHUBMNJ1pg== + +"@esbuild/win32-arm64@0.17.12": + version "0.17.12" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.12.tgz#43dd7fb5be77bf12a1550355ab2b123efd60868e" + integrity sha512-zsCp8Ql+96xXTVTmm6ffvoTSZSV2B/LzzkUXAY33F/76EajNw1m+jZ9zPfNJlJ3Rh4EzOszNDHsmG/fZOhtqDg== + +"@esbuild/win32-ia32@0.17.12": + version "0.17.12" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.12.tgz#9940963d0bff4ea3035a84e2b4c6e41c5e6296eb" + integrity sha512-FfrFjR4id7wcFYOdqbDfDET3tjxCozUgbqdkOABsSFzoZGFC92UK7mg4JKRc/B3NNEf1s2WHxJ7VfTdVDPN3ng== + +"@esbuild/win32-x64@0.17.12": + version "0.17.12" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.12.tgz#3a11d13e9a5b0c05db88991b234d8baba1f96487" + integrity sha512-JOOxw49BVZx2/5tW3FqkdjSD/5gXYeVGPDcB0lvap0gLQshkh1Nyel1QazC+wNxus3xPlsYAgqU1BUmrmCvWtw== "@fortawesome/fontawesome-free@^5.15.3": version "5.15.4" @@ -777,33 +777,33 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -esbuild@^0.17.11: - version "0.17.11" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.11.tgz#9f3122643b21d7e7731e42f18576c10bfa28152b" - integrity sha512-pAMImyokbWDtnA/ufPxjQg0fYo2DDuzAlqwnDvbXqHLphe+m80eF++perYKVm8LeTuj2zUuFXC+xgSVxyoHUdg== +esbuild@^0.17.12: + version "0.17.12" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.12.tgz#2ad7523bf1bc01881e9d904bc04e693bd3bdcf2f" + integrity sha512-bX/zHl7Gn2CpQwcMtRogTTBf9l1nl+H6R8nUbjk+RuKqAE3+8FDulLA+pHvX7aA7Xe07Iwa+CWvy9I8Y2qqPKQ== optionalDependencies: - "@esbuild/android-arm" "0.17.11" - "@esbuild/android-arm64" "0.17.11" - "@esbuild/android-x64" "0.17.11" - "@esbuild/darwin-arm64" "0.17.11" - "@esbuild/darwin-x64" "0.17.11" - "@esbuild/freebsd-arm64" "0.17.11" - "@esbuild/freebsd-x64" "0.17.11" - "@esbuild/linux-arm" "0.17.11" - "@esbuild/linux-arm64" "0.17.11" - "@esbuild/linux-ia32" "0.17.11" - "@esbuild/linux-loong64" "0.17.11" - "@esbuild/linux-mips64el" "0.17.11" - "@esbuild/linux-ppc64" "0.17.11" - "@esbuild/linux-riscv64" "0.17.11" - "@esbuild/linux-s390x" "0.17.11" - "@esbuild/linux-x64" "0.17.11" - "@esbuild/netbsd-x64" "0.17.11" - "@esbuild/openbsd-x64" "0.17.11" - "@esbuild/sunos-x64" "0.17.11" - "@esbuild/win32-arm64" "0.17.11" - "@esbuild/win32-ia32" "0.17.11" - "@esbuild/win32-x64" "0.17.11" + "@esbuild/android-arm" "0.17.12" + "@esbuild/android-arm64" "0.17.12" + "@esbuild/android-x64" "0.17.12" + "@esbuild/darwin-arm64" "0.17.12" + "@esbuild/darwin-x64" "0.17.12" + "@esbuild/freebsd-arm64" "0.17.12" + "@esbuild/freebsd-x64" "0.17.12" + "@esbuild/linux-arm" "0.17.12" + "@esbuild/linux-arm64" "0.17.12" + "@esbuild/linux-ia32" "0.17.12" + "@esbuild/linux-loong64" "0.17.12" + "@esbuild/linux-mips64el" "0.17.12" + "@esbuild/linux-ppc64" "0.17.12" + "@esbuild/linux-riscv64" "0.17.12" + "@esbuild/linux-s390x" "0.17.12" + "@esbuild/linux-x64" "0.17.12" + "@esbuild/netbsd-x64" "0.17.12" + "@esbuild/openbsd-x64" "0.17.12" + "@esbuild/sunos-x64" "0.17.12" + "@esbuild/win32-arm64" "0.17.12" + "@esbuild/win32-ia32" "0.17.12" + "@esbuild/win32-x64" "0.17.12" ev-emitter@^1.0.0: version "1.1.1" From 3c0c446617e9ca1623b43246ff9decf701435e24 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 17 Mar 2023 21:57:10 +0000 Subject: [PATCH 1407/2165] chore(deps): bump rack-cors from 2.0.0 to 2.0.1 Bumps [rack-cors](https://github.com/cyu/rack-cors) from 2.0.0 to 2.0.1. - [Release notes](https://github.com/cyu/rack-cors/releases) - [Changelog](https://github.com/cyu/rack-cors/blob/master/CHANGELOG.md) - [Commits](https://github.com/cyu/rack-cors/compare/2.0.0...v2.0.1) --- updated-dependencies: - dependency-name: rack-cors dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 531fef67a..5622a81c6 100644 --- a/Gemfile +++ b/Gemfile @@ -19,7 +19,7 @@ gem 'lograge', '~> 0.12.0' # API gem 'active_model_serializers', '~> 0.10.13' gem 'graphql', '~> 2.0.19' -gem 'rack-cors', '~> 2.0.0' +gem 'rack-cors', '~> 2.0.1' gem 'health_check', '~> 3.1.0' gem 'tiny_appstore_connect', '~> 0.1.7' diff --git a/Gemfile.lock b/Gemfile.lock index ebcfb857b..04bda08db 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -316,7 +316,7 @@ GEM raabro (1.4.0) racc (1.6.2) rack (2.2.6.4) - rack-cors (2.0.0) + rack-cors (2.0.1) rack (>= 2.0.0) rack-protection (3.0.5) rack @@ -529,7 +529,7 @@ DEPENDENCIES pry-rescue puma (~> 6.1.1) pundit (~> 2.3.0) - rack-cors (~> 2.0.0) + rack-cors (~> 2.0.1) rails (~> 7.0.4) rails-i18n (~> 7.0.5) rails-settings-cached (~> 2.8.3) From fd3a286e37b385b2f6dfed43abb173f48539653a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 Mar 2023 21:57:33 +0000 Subject: [PATCH 1408/2165] chore(deps-dev): bump ruby-lsp from 0.4.1 to 0.4.2 Bumps [ruby-lsp](https://github.com/Shopify/ruby-lsp) from 0.4.1 to 0.4.2. - [Release notes](https://github.com/Shopify/ruby-lsp/releases) - [Commits](https://github.com/Shopify/ruby-lsp/compare/v0.4.1...v0.4.2) --- updated-dependencies: - dependency-name: ruby-lsp dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Gemfile b/Gemfile index 5622a81c6..1716c49e8 100644 --- a/Gemfile +++ b/Gemfile @@ -109,7 +109,7 @@ group :development do # 调试器 ## VSCode debug: https://marketplace.visualstudio.com/items?itemName=KoichiSasada.vscode-rdbg gem 'debug', '~> 1.7.1' - gem "ruby-lsp", "~> 0.4.1" + gem "ruby-lsp", "~> 0.4.2" # rails 更友好错误输出 gem 'awesome_print' diff --git a/Gemfile.lock b/Gemfile.lock index 04bda08db..c38c30513 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -293,7 +293,7 @@ GEM pghero (3.3.1) activerecord (>= 6) plist (3.7.0) - prettier_print (1.2.0) + prettier_print (1.2.1) propshaft (0.7.0) actionpack (>= 7.0.0) activesupport (>= 7.0.0) @@ -392,10 +392,10 @@ GEM activesupport (>= 4.2.0) rack (>= 1.1) rubocop (>= 1.33.0, < 2.0) - ruby-lsp (0.4.1) + ruby-lsp (0.4.2) language_server-protocol (~> 3.17.0) sorbet-runtime - syntax_tree (>= 6, < 7) + syntax_tree (>= 6.0.2, < 7) ruby-macho (3.0.0) ruby-progressbar (1.11.0) ruby-vips (2.1.4) @@ -435,7 +435,7 @@ GEM railties (>= 3.1) slim (>= 3.0, < 6.0, != 5.0.0) socksify (1.7.1) - sorbet-runtime (0.5.10679) + sorbet-runtime (0.5.10722) sprockets (4.2.0) concurrent-ruby (~> 1.0) rack (>= 2.2.4, < 4) @@ -446,7 +446,7 @@ GEM ssrf_filter (1.1.1) stimulus-rails (1.2.1) railties (>= 6.0.0) - syntax_tree (6.0.0) + syntax_tree (6.1.0) prettier_print (>= 1.2.0) sys-filesystem (1.4.3) ffi (~> 1.1) @@ -538,7 +538,7 @@ DEPENDENCIES rqrcode rubocop (>= 0.70) rubocop-rails - ruby-lsp (~> 0.4.1) + ruby-lsp (~> 0.4.2) sentry-rails sentry-ruby sentry-sidekiq From 9919e5af4c4cc9d5f164f022f7ba3e580f6ac890 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 23 Mar 2023 18:50:35 +0800 Subject: [PATCH 1409/2165] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 331be7921..8cc3631ee 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ changelog - + docker image From 1528b6e0b4808da77627998bc5dc5496a0cf3af8 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 24 Mar 2023 14:47:05 +0800 Subject: [PATCH 1410/2165] =?UTF-8?q?feat:=20=E5=8F=98=E6=9B=B4=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E6=94=AF=E6=8C=81=20markdown=20=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 1 + Gemfile.lock | 3 ++ app/assets/stylesheets/app.scss | 29 +++++++++++++++++++ app/helpers/apps_helper.rb | 12 ++++++-- app/models/release.rb | 1 + .../dashboards/_recently_upload.html.slim | 2 +- app/views/releases/body/_activity.html.slim | 2 +- app/views/releases/body/_changelog.html.slim | 2 +- app/views/udid/_apps.html.slim | 2 +- 9 files changed, 48 insertions(+), 6 deletions(-) diff --git a/Gemfile b/Gemfile index 1716c49e8..e1d5ba36c 100644 --- a/Gemfile +++ b/Gemfile @@ -27,6 +27,7 @@ gem 'tiny_appstore_connect', '~> 0.1.7' ## 模板引擎 gem 'jb', '~> 0.8.0' gem 'slim-rails', '~> 3.6.2' +gem 'kramdown', '~> 2.4' ## 表单生成 gem 'simple_form', '~> 5.2' diff --git a/Gemfile.lock b/Gemfile.lock index c38c30513..2d8c6701d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -207,6 +207,8 @@ GEM activerecord kaminari-core (= 1.2.2) kaminari-core (1.2.2) + kramdown (2.4.0) + rexml language_server-protocol (3.17.0.3) launchy (2.5.2) addressable (~> 2.8) @@ -511,6 +513,7 @@ DEPENDENCIES jb (~> 0.8.0) jsbundling-rails (~> 1.1) kaminari (~> 1.2.2) + kramdown (~> 2.4) letter_opener (~> 1.8) letter_opener_web (~> 2.0) listen (>= 3.0.5, < 3.9) diff --git a/app/assets/stylesheets/app.scss b/app/assets/stylesheets/app.scss index d122b6359..6fe00c726 100644 --- a/app/assets/stylesheets/app.scss +++ b/app/assets/stylesheets/app.scss @@ -148,6 +148,35 @@ $ios-install-issue-color: rgb(245, 39, 90); } } +.changelog { + ul { + padding-inline-start: 24px; + } + + p { + margin-bottom: 0; + } + + a { + color: #212529; + text-decoration: underline; + + &:hover { + color: #007bff; + } + } + + .dark-mode & { + a { + color: #fff; + + &:hover { + color: #64adfb; + } + } + } +} + .dark-mode { .app-icon { background-color: #fff; diff --git a/app/helpers/apps_helper.rb b/app/helpers/apps_helper.rb index 15bb89093..9d1354bdd 100644 --- a/app/helpers/apps_helper.rb +++ b/app/helpers/apps_helper.rb @@ -79,8 +79,16 @@ def channel_platform(channel) channel.name == platform ? channel.name : "#{channel.name} (#{device_name(channel.device_type)})" end - def changelog_format(changelog, **options) - simple_format changelog, **options + def changelog_render(changelog, **options) + source = options.delete(:source) || :markdown + case source + when :markdown + content_tag(:div, **options) do + raw Kramdown::Document.new(changelog).to_html + end + else + simple_format changelog, **options + end end def app_qrcode_tag(release) diff --git a/app/models/release.rb b/app/models/release.rb index 4fb5a2163..fa0028ae8 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -239,6 +239,7 @@ def convert_changelog changelog.split("\n").each do |message| next if message.blank? + message = message[1..-1].strip if message.start_with?('-') hash << { message: message } end self.changelog = hash diff --git a/app/views/dashboards/_recently_upload.html.slim b/app/views/dashboards/_recently_upload.html.slim index e6a120474..6f93c1faa 100644 --- a/app/views/dashboards/_recently_upload.html.slim +++ b/app/views/dashboards/_recently_upload.html.slim @@ -31,7 +31,7 @@ section = t('dashboard.timeline.upload_release', release_version: release.release_version, build_version: release.build_version) - if release.changelog.present? .timeline-body.pb-1 - = changelog_format release.text_changelog, class: 'mb-0' + = changelog_render release.text_changelog, class: 'changelog changelog-full mb-0' - if release.release_type.present? || release.branch.present? || release.short_git_commit.present? .timeline-footer - if release.device_type diff --git a/app/views/releases/body/_activity.html.slim b/app/views/releases/body/_activity.html.slim index 5ee375af2..65e78f2c8 100644 --- a/app/views/releases/body/_activity.html.slim +++ b/app/views/releases/body/_activity.html.slim @@ -21,7 +21,7 @@ = t('releases.show.upload_release', release_version: release.release_version, build_version: release.build_version) - if release.changelog.present? .timeline-body.pb-0 - = changelog_format(release.text_changelog, class: 'mb-0') + = changelog_render(release.text_changelog, class: 'changelog changelog-full mb-0') - if release.release_type.present? || release.branch.present? || release.short_git_commit.present? .timeline-footer - if release.device_type diff --git a/app/views/releases/body/_changelog.html.slim b/app/views/releases/body/_changelog.html.slim index 894227f3f..2e66fb4d3 100644 --- a/app/views/releases/body/_changelog.html.slim +++ b/app/views/releases/body/_changelog.html.slim @@ -20,4 +20,4 @@ span.badge.badge-info data-toggle="tooltip" title="#{changelog['email']}" = changelog['author'] - = simple_format changelog['message'], class: 'mb-1' \ No newline at end of file + = changelog_render changelog['message'], class: 'changelog changelog-item mb-1' diff --git a/app/views/udid/_apps.html.slim b/app/views/udid/_apps.html.slim index 2d18ad4d1..763ad0e7a 100644 --- a/app/views/udid/_apps.html.slim +++ b/app/views/udid/_apps.html.slim @@ -22,7 +22,7 @@ = t('udid.show.upload_release', release_version: release.release_version, build_version: release.build_version) - if release.changelog.present? .timeline-body.pb-0 - = changelog_format release.text_changelog, class: 'mb-0' + = changelog_render release.text_changelog, class: 'changelog changelog-full mb-0' - if release.release_type.present? || release.branch.present? || release.short_git_commit.present? .timeline-footer - if release.release_type.present? From 00c3926f0a9387a24ff8aeac971814cb26bb9890 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 24 Mar 2023 17:57:07 +0800 Subject: [PATCH 1411/2165] =?UTF-8?q?style:=20=E7=BD=91=E9=A1=B5=E6=B8=B2?= =?UTF-8?q?=E6=9F=93=E7=AE=80=E8=A6=81=E5=8F=98=E6=9B=B4=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E5=8F=AA=E8=BE=93=E5=87=BA=E9=A6=96=E8=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/release.rb | 11 ++++++----- app/serializers/api/upload_app_serializer.rb | 2 +- app/serializers/release_serializer.rb | 4 ++-- app/views/dashboards/_recently_upload.html.slim | 2 +- app/views/releases/body/_activity.html.slim | 2 +- app/views/udid/_apps.html.slim | 2 +- 6 files changed, 12 insertions(+), 11 deletions(-) diff --git a/app/models/release.rb b/app/models/release.rb index fa0028ae8..b82394ea4 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -133,16 +133,17 @@ def short_git_commit git_commit[0..8] end - def array_changelog(use_default_changelog = true) - return empty_changelog(use_default_changelog) if changelog.blank? + def array_changelog(default_template: true) + return empty_changelog(default_template) if changelog.blank? return [{'message' => changelog.to_s}] unless changelog.is_a?(Array) || changelog.is_a?(Hash) changelog end - def text_changelog(use_default_changelog = true) - array_changelog(use_default_changelog).each_with_object([]) do |line, obj| - obj << "- #{line['message']}" + def text_changelog(default_template: true, head_line: false, field: 'message') + array_changelog(default_template: default_template).each_with_object([]) do |line, obj| + message = head_line ? line[field].split("\n")[0] : line[field] + obj << "- #{message}" end.join("\n") end diff --git a/app/serializers/api/upload_app_serializer.rb b/app/serializers/api/upload_app_serializer.rb index 729489dfc..c52614e73 100644 --- a/app/serializers/api/upload_app_serializer.rb +++ b/app/serializers/api/upload_app_serializer.rb @@ -12,6 +12,6 @@ class Api::UploadAppSerializer < ApplicationSerializer belongs_to :channel def changelog - object.array_changelog(false) + object.array_changelog(default_template: false) end end diff --git a/app/serializers/release_serializer.rb b/app/serializers/release_serializer.rb index a6cd4b772..1213e2280 100644 --- a/app/serializers/release_serializer.rb +++ b/app/serializers/release_serializer.rb @@ -8,10 +8,10 @@ class ReleaseSerializer < ApplicationSerializer def changelog - object.array_changelog(false) + object.array_changelog(default_template: false) end def text_changelog - object.text_changelog(false) + object.text_changelog(default_template: false) end end diff --git a/app/views/dashboards/_recently_upload.html.slim b/app/views/dashboards/_recently_upload.html.slim index 6f93c1faa..06a86146b 100644 --- a/app/views/dashboards/_recently_upload.html.slim +++ b/app/views/dashboards/_recently_upload.html.slim @@ -31,7 +31,7 @@ section = t('dashboard.timeline.upload_release', release_version: release.release_version, build_version: release.build_version) - if release.changelog.present? .timeline-body.pb-1 - = changelog_render release.text_changelog, class: 'changelog changelog-full mb-0' + = changelog_render release.text_changelog(head_line: true), class: 'changelog changelog-full mb-0' - if release.release_type.present? || release.branch.present? || release.short_git_commit.present? .timeline-footer - if release.device_type diff --git a/app/views/releases/body/_activity.html.slim b/app/views/releases/body/_activity.html.slim index 65e78f2c8..6550115d9 100644 --- a/app/views/releases/body/_activity.html.slim +++ b/app/views/releases/body/_activity.html.slim @@ -21,7 +21,7 @@ = t('releases.show.upload_release', release_version: release.release_version, build_version: release.build_version) - if release.changelog.present? .timeline-body.pb-0 - = changelog_render(release.text_changelog, class: 'changelog changelog-full mb-0') + = changelog_render(release.text_changelog(head_line: true), class: 'changelog changelog-full mb-0') - if release.release_type.present? || release.branch.present? || release.short_git_commit.present? .timeline-footer - if release.device_type diff --git a/app/views/udid/_apps.html.slim b/app/views/udid/_apps.html.slim index 763ad0e7a..f986d9f53 100644 --- a/app/views/udid/_apps.html.slim +++ b/app/views/udid/_apps.html.slim @@ -22,7 +22,7 @@ = t('udid.show.upload_release', release_version: release.release_version, build_version: release.build_version) - if release.changelog.present? .timeline-body.pb-0 - = changelog_render release.text_changelog, class: 'changelog changelog-full mb-0' + = changelog_render release.text_changelog(head_line: true), class: 'changelog changelog-full mb-0' - if release.release_type.present? || release.branch.present? || release.short_git_commit.present? .timeline-footer - if release.release_type.present? From e4ddb43ddca6cba00d79413196f9bbff22dc7430 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 24 Mar 2023 21:57:19 +0000 Subject: [PATCH 1412/2165] chore(deps): bump sass from 1.59.3 to 1.60.0 Bumps [sass](https://github.com/sass/dart-sass) from 1.59.3 to 1.60.0. - [Release notes](https://github.com/sass/dart-sass/releases) - [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md) - [Commits](https://github.com/sass/dart-sass/compare/1.59.3...1.60.0) --- updated-dependencies: - dependency-name: sass dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 3ecd9871d..ea3884f16 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "clipboard": "^2.0.11", "compare-versions": "^5.0.3", "esbuild": "^0.17.12", - "sass": "^1.59.3", + "sass": "^1.60.0", "ua-parser-js": "^1.0.34" }, "scripts": { diff --git a/yarn.lock b/yarn.lock index a1fbe8a60..8746c8b91 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1428,10 +1428,10 @@ safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sass@^1.59.3: - version "1.59.3" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.59.3.tgz#a1ddf855d75c70c26b4555df4403e1bbf8e4403f" - integrity sha512-QCq98N3hX1jfTCoUAsF3eyGuXLsY7BCnCEg9qAact94Yc21npG2/mVOqoDvE0fCbWDqiM4WlcJQla0gWG2YlxQ== +sass@^1.60.0: + version "1.60.0" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.60.0.tgz#657f0c23a302ac494b09a5ba8497b739fb5b5a81" + integrity sha512-updbwW6fNb5gGm8qMXzVO7V4sWf7LMXnMly/JEyfbfERbVH46Fn6q02BX7/eHTdKpE7d+oTkMMQpFWNUMfFbgQ== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" From 58843af99697318afd5fa550b09cef3ca3155042 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 Mar 2023 21:57:09 +0000 Subject: [PATCH 1413/2165] chore(deps): bump esbuild from 0.17.12 to 0.17.14 Bumps [esbuild](https://github.com/evanw/esbuild) from 0.17.12 to 0.17.14. - [Release notes](https://github.com/evanw/esbuild/releases) - [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md) - [Commits](https://github.com/evanw/esbuild/compare/v0.17.12...v0.17.14) --- updated-dependencies: - dependency-name: esbuild dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 270 +++++++++++++++++++++++++-------------------------- 2 files changed, 136 insertions(+), 136 deletions(-) diff --git a/package.json b/package.json index 3ecd9871d..d6b6ba760 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "admin-lte": "3.1.0", "clipboard": "^2.0.11", "compare-versions": "^5.0.3", - "esbuild": "^0.17.12", + "esbuild": "^0.17.14", "sass": "^1.59.3", "ua-parser-js": "^1.0.34" }, diff --git a/yarn.lock b/yarn.lock index a1fbe8a60..f57c8c81a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,115 +2,115 @@ # yarn lockfile v1 -"@esbuild/android-arm64@0.17.12": - version "0.17.12" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.12.tgz#15a8e2b407d03989b899e325151dc2e96d19c620" - integrity sha512-WQ9p5oiXXYJ33F2EkE3r0FRDFVpEdcDiwNX3u7Xaibxfx6vQE0Sb8ytrfQsA5WO6kDn6mDfKLh6KrPBjvkk7xA== - -"@esbuild/android-arm@0.17.12": - version "0.17.12" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.12.tgz#677a09297e1f4f37aba7b4fc4f31088b00484985" - integrity sha512-E/sgkvwoIfj4aMAPL2e35VnUJspzVYl7+M1B2cqeubdBhADV4uPon0KCc8p2G+LqSJ6i8ocYPCqY3A4GGq0zkQ== - -"@esbuild/android-x64@0.17.12": - version "0.17.12" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.12.tgz#b292729eef4e0060ae1941f6a021c4d2542a3521" - integrity sha512-m4OsaCr5gT+se25rFPHKQXARMyAehHTQAz4XX1Vk3d27VtqiX0ALMBPoXZsGaB6JYryCLfgGwUslMqTfqeLU0w== - -"@esbuild/darwin-arm64@0.17.12": - version "0.17.12" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.12.tgz#efa35318df931da05825894e1787b976d55adbe3" - integrity sha512-O3GCZghRIx+RAN0NDPhyyhRgwa19MoKlzGonIb5hgTj78krqp9XZbYCvFr9N1eUxg0ZQEpiiZ4QvsOQwBpP+lg== - -"@esbuild/darwin-x64@0.17.12": - version "0.17.12" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.12.tgz#e7b54bb3f6dc81aadfd0485cd1623c648157e64d" - integrity sha512-5D48jM3tW27h1qjaD9UNRuN+4v0zvksqZSPZqeSWggfMlsVdAhH3pwSfQIFJwcs9QJ9BRibPS4ViZgs3d2wsCA== - -"@esbuild/freebsd-arm64@0.17.12": - version "0.17.12" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.12.tgz#99a18a8579d6299c449566fe91d9b6a54cf2a591" - integrity sha512-OWvHzmLNTdF1erSvrfoEBGlN94IE6vCEaGEkEH29uo/VoONqPnoDFfShi41Ew+yKimx4vrmmAJEGNoyyP+OgOQ== - -"@esbuild/freebsd-x64@0.17.12": - version "0.17.12" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.12.tgz#0e090190fede307fb4022f671791a50dd5121abd" - integrity sha512-A0Xg5CZv8MU9xh4a+7NUpi5VHBKh1RaGJKqjxe4KG87X+mTjDE6ZvlJqpWoeJxgfXHT7IMP9tDFu7IZ03OtJAw== - -"@esbuild/linux-arm64@0.17.12": - version "0.17.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.12.tgz#7fe2a69f8a1a7153fa2b0f44aabcadb59475c7e0" - integrity sha512-cK3AjkEc+8v8YG02hYLQIQlOznW+v9N+OI9BAFuyqkfQFR+DnDLhEM5N8QRxAUz99cJTo1rLNXqRrvY15gbQUg== - -"@esbuild/linux-arm@0.17.12": - version "0.17.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.12.tgz#b87c76ebf1fe03e01fd6bb5cfc2f3c5becd5ee93" - integrity sha512-WsHyJ7b7vzHdJ1fv67Yf++2dz3D726oO3QCu8iNYik4fb5YuuReOI9OtA+n7Mk0xyQivNTPbl181s+5oZ38gyA== - -"@esbuild/linux-ia32@0.17.12": - version "0.17.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.12.tgz#9e9357090254524d32e6708883a47328f3037858" - integrity sha512-jdOBXJqcgHlah/nYHnj3Hrnl9l63RjtQ4vn9+bohjQPI2QafASB5MtHAoEv0JQHVb/xYQTFOeuHnNYE1zF7tYw== - -"@esbuild/linux-loong64@0.17.12": - version "0.17.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.12.tgz#9deb605f9e2c82f59412ddfefb4b6b96d54b5b5b" - integrity sha512-GTOEtj8h9qPKXCyiBBnHconSCV9LwFyx/gv3Phw0pa25qPYjVuuGZ4Dk14bGCfGX3qKF0+ceeQvwmtI+aYBbVA== - -"@esbuild/linux-mips64el@0.17.12": - version "0.17.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.12.tgz#6ef170b974ddf5e6acdfa5b05f22b6e9dfd2b003" - integrity sha512-o8CIhfBwKcxmEENOH9RwmUejs5jFiNoDw7YgS0EJTF6kgPgcqLFjgoc5kDey5cMHRVCIWc6kK2ShUePOcc7RbA== - -"@esbuild/linux-ppc64@0.17.12": - version "0.17.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.12.tgz#1638d3d4acf1d34aaf37cf8908c2e1cefed16204" - integrity sha512-biMLH6NR/GR4z+ap0oJYb877LdBpGac8KfZoEnDiBKd7MD/xt8eaw1SFfYRUeMVx519kVkAOL2GExdFmYnZx3A== - -"@esbuild/linux-riscv64@0.17.12": - version "0.17.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.12.tgz#135b6e9270a8e2de2b9094bb21a287517df520ef" - integrity sha512-jkphYUiO38wZGeWlfIBMB72auOllNA2sLfiZPGDtOBb1ELN8lmqBrlMiucgL8awBw1zBXN69PmZM6g4yTX84TA== - -"@esbuild/linux-s390x@0.17.12": - version "0.17.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.12.tgz#21e40830770c5d08368e300842bde382ce97d615" - integrity sha512-j3ucLdeY9HBcvODhCY4b+Ds3hWGO8t+SAidtmWu/ukfLLG/oYDMaA+dnugTVAg5fnUOGNbIYL9TOjhWgQB8W5g== - -"@esbuild/linux-x64@0.17.12": - version "0.17.12" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.12.tgz#76c1c199871d48e1aaa47a762fb9e0dca52e1f7a" - integrity sha512-uo5JL3cgaEGotaqSaJdRfFNSCUJOIliKLnDGWaVCgIKkHxwhYMm95pfMbWZ9l7GeW9kDg0tSxcy9NYdEtjwwmA== - -"@esbuild/netbsd-x64@0.17.12": - version "0.17.12" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.12.tgz#c7c3b3017a4b938c76c35f66af529baf62eac527" - integrity sha512-DNdoRg8JX+gGsbqt2gPgkgb00mqOgOO27KnrWZtdABl6yWTST30aibGJ6geBq3WM2TIeW6COs5AScnC7GwtGPg== - -"@esbuild/openbsd-x64@0.17.12": - version "0.17.12" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.12.tgz#05d04217d980e049001afdbeacbb58d31bb5cefb" - integrity sha512-aVsENlr7B64w8I1lhHShND5o8cW6sB9n9MUtLumFlPhG3elhNWtE7M1TFpj3m7lT3sKQUMkGFjTQBrvDDO1YWA== - -"@esbuild/sunos-x64@0.17.12": - version "0.17.12" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.12.tgz#cf3862521600e4eb6c440ec3bad31ed40fb87ef3" - integrity sha512-qbHGVQdKSwi0JQJuZznS4SyY27tYXYF0mrgthbxXrZI3AHKuRvU+Eqbg/F0rmLDpW/jkIZBlCO1XfHUBMNJ1pg== - -"@esbuild/win32-arm64@0.17.12": - version "0.17.12" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.12.tgz#43dd7fb5be77bf12a1550355ab2b123efd60868e" - integrity sha512-zsCp8Ql+96xXTVTmm6ffvoTSZSV2B/LzzkUXAY33F/76EajNw1m+jZ9zPfNJlJ3Rh4EzOszNDHsmG/fZOhtqDg== - -"@esbuild/win32-ia32@0.17.12": - version "0.17.12" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.12.tgz#9940963d0bff4ea3035a84e2b4c6e41c5e6296eb" - integrity sha512-FfrFjR4id7wcFYOdqbDfDET3tjxCozUgbqdkOABsSFzoZGFC92UK7mg4JKRc/B3NNEf1s2WHxJ7VfTdVDPN3ng== - -"@esbuild/win32-x64@0.17.12": - version "0.17.12" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.12.tgz#3a11d13e9a5b0c05db88991b234d8baba1f96487" - integrity sha512-JOOxw49BVZx2/5tW3FqkdjSD/5gXYeVGPDcB0lvap0gLQshkh1Nyel1QazC+wNxus3xPlsYAgqU1BUmrmCvWtw== +"@esbuild/android-arm64@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.14.tgz#4624cea3c8941c91f9e9c1228f550d23f1cef037" + integrity sha512-eLOpPO1RvtsP71afiFTvS7tVFShJBCT0txiv/xjFBo5a7R7Gjw7X0IgIaFoLKhqXYAXhahoXm7qAmRXhY4guJg== + +"@esbuild/android-arm@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.14.tgz#74fae60fcab34c3f0e15cb56473a6091ba2b53a6" + integrity sha512-0CnlwnjDU8cks0yJLXfkaU/uoLyRf9VZJs4p1PskBr2AlAHeEsFEwJEo0of/Z3g+ilw5mpyDwThlxzNEIxOE4g== + +"@esbuild/android-x64@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.14.tgz#f002fbc08d5e939d8314bd23bcfb1e95d029491f" + integrity sha512-nrfQYWBfLGfSGLvRVlt6xi63B5IbfHm3tZCdu/82zuFPQ7zez4XjmRtF/wIRYbJQ/DsZrxJdEvYFE67avYXyng== + +"@esbuild/darwin-arm64@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.14.tgz#b8dcd79a1dd19564950b4ca51d62999011e2e168" + integrity sha512-eoSjEuDsU1ROwgBH/c+fZzuSyJUVXQTOIN9xuLs9dE/9HbV/A5IqdXHU1p2OfIMwBwOYJ9SFVGGldxeRCUJFyw== + +"@esbuild/darwin-x64@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.14.tgz#4b49f195d9473625efc3c773fc757018f2c0d979" + integrity sha512-zN0U8RWfrDttdFNkHqFYZtOH8hdi22z0pFm0aIJPsNC4QQZv7je8DWCX5iA4Zx6tRhS0CCc0XC2m7wKsbWEo5g== + +"@esbuild/freebsd-arm64@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.14.tgz#480923fd38f644c6342c55e916cc7c231a85eeb7" + integrity sha512-z0VcD4ibeZWVQCW1O7szaLxGsx54gcCnajEJMdYoYjLiq4g1jrP2lMq6pk71dbS5+7op/L2Aod+erw+EUr28/A== + +"@esbuild/freebsd-x64@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.14.tgz#a6b6b01954ad8562461cb8a5e40e8a860af69cbe" + integrity sha512-hd9mPcxfTgJlolrPlcXkQk9BMwNBvNBsVaUe5eNUqXut6weDQH8whcNaKNF2RO8NbpT6GY8rHOK2A9y++s+ehw== + +"@esbuild/linux-arm64@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.14.tgz#1fe2f39f78183b59f75a4ad9c48d079916d92418" + integrity sha512-FhAMNYOq3Iblcj9i+K0l1Fp/MHt+zBeRu/Qkf0LtrcFu3T45jcwB6A1iMsemQ42vR3GBhjNZJZTaCe3VFPbn9g== + +"@esbuild/linux-arm@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.14.tgz#18d594a49b64e4a3a05022c005cb384a58056a2a" + integrity sha512-BNTl+wSJ1omsH8s3TkQmIIIQHwvwJrU9u1ggb9XU2KTVM4TmthRIVyxSp2qxROJHhZuW/r8fht46/QE8hU8Qvg== + +"@esbuild/linux-ia32@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.14.tgz#f7f0182a9cfc0159e0922ed66c805c9c6ef1b654" + integrity sha512-91OK/lQ5y2v7AsmnFT+0EyxdPTNhov3y2CWMdizyMfxSxRqHazXdzgBKtlmkU2KYIc+9ZK3Vwp2KyXogEATYxQ== + +"@esbuild/linux-loong64@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.14.tgz#5f5305fdffe2d71dd9a97aa77d0c99c99409066f" + integrity sha512-vp15H+5NR6hubNgMluqqKza85HcGJgq7t6rMH7O3Y6ApiOWPkvW2AJfNojUQimfTp6OUrACUXfR4hmpcENXoMQ== + +"@esbuild/linux-mips64el@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.14.tgz#a602e85c51b2f71d2aedfe7f4143b2f92f97f3f5" + integrity sha512-90TOdFV7N+fgi6c2+GO9ochEkmm9kBAKnuD5e08GQMgMINOdOFHuYLPQ91RYVrnWwQ5683sJKuLi9l4SsbJ7Hg== + +"@esbuild/linux-ppc64@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.14.tgz#32d918d782105cbd9345dbfba14ee018b9c7afdf" + integrity sha512-NnBGeoqKkTugpBOBZZoktQQ1Yqb7aHKmHxsw43NddPB2YWLAlpb7THZIzsRsTr0Xw3nqiPxbA1H31ZMOG+VVPQ== + +"@esbuild/linux-riscv64@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.14.tgz#38612e7b6c037dff7022c33f49ca17f85c5dec58" + integrity sha512-0qdlKScLXA8MGVy21JUKvMzCYWovctuP8KKqhtE5A6IVPq4onxXhSuhwDd2g5sRCzNDlDjitc5sX31BzDoL5Fw== + +"@esbuild/linux-s390x@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.14.tgz#4397dff354f899e72fd035d72af59a700c465ccb" + integrity sha512-Hdm2Jo1yaaOro4v3+6/zJk6ygCqIZuSDJHdHaf8nVH/tfOuoEX5Riv03Ka15LmQBYJObUTNS1UdyoMk0WUn9Ww== + +"@esbuild/linux-x64@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.14.tgz#6c5cb99891b6c3e0c08369da3ef465e8038ad9c2" + integrity sha512-8KHF17OstlK4DuzeF/KmSgzrTWQrkWj5boluiiq7kvJCiQVzUrmSkaBvcLB2UgHpKENO2i6BthPkmUhNDaJsVw== + +"@esbuild/netbsd-x64@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.14.tgz#5fa5255a64e9bf3947c1b3bef5e458b50b211994" + integrity sha512-nVwpqvb3yyXztxIT2+VsxJhB5GCgzPdk1n0HHSnchRAcxqKO6ghXwHhJnr0j/B+5FSyEqSxF4q03rbA2fKXtUQ== + +"@esbuild/openbsd-x64@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.14.tgz#74d14c79dcb6faf446878cc64284aa4e02f5ca6f" + integrity sha512-1RZ7uQQ9zcy/GSAJL1xPdN7NDdOOtNEGiJalg/MOzeakZeTrgH/DoCkbq7TaPDiPhWqnDF+4bnydxRqQD7il6g== + +"@esbuild/sunos-x64@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.14.tgz#5c7d1c7203781d86c2a9b2ff77bd2f8036d24cfa" + integrity sha512-nqMjDsFwv7vp7msrwWRysnM38Sd44PKmW8EzV01YzDBTcTWUpczQg6mGao9VLicXSgW/iookNK6AxeogNVNDZA== + +"@esbuild/win32-arm64@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.14.tgz#dc36ed84f1390e73b6019ccf0566c80045e5ca3d" + integrity sha512-xrD0mccTKRBBIotrITV7WVQAwNJ5+1va6L0H9zN92v2yEdjfAN7864cUaZwJS7JPEs53bDTzKFbfqVlG2HhyKQ== + +"@esbuild/win32-ia32@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.14.tgz#0802a107afa9193c13e35de15a94fe347c588767" + integrity sha512-nXpkz9bbJrLLyUTYtRotSS3t5b+FOuljg8LgLdINWFs3FfqZMtbnBCZFUmBzQPyxqU87F8Av+3Nco/M3hEcu1w== + +"@esbuild/win32-x64@0.17.14": + version "0.17.14" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.14.tgz#e81fb49de05fed91bf74251c9ca0343f4fc77d31" + integrity sha512-gPQmsi2DKTaEgG14hc3CHXHp62k8g6qr0Pas+I4lUxRMugGSATh/Bi8Dgusoz9IQ0IfdrvLpco6kujEIBoaogA== "@fortawesome/fontawesome-free@^5.15.3": version "5.15.4" @@ -777,33 +777,33 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -esbuild@^0.17.12: - version "0.17.12" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.12.tgz#2ad7523bf1bc01881e9d904bc04e693bd3bdcf2f" - integrity sha512-bX/zHl7Gn2CpQwcMtRogTTBf9l1nl+H6R8nUbjk+RuKqAE3+8FDulLA+pHvX7aA7Xe07Iwa+CWvy9I8Y2qqPKQ== +esbuild@^0.17.14: + version "0.17.14" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.14.tgz#d61a22de751a3133f3c6c7f9c1c3e231e91a3245" + integrity sha512-vOO5XhmVj/1XQR9NQ1UPq6qvMYL7QFJU57J5fKBKBKxp17uDt5PgxFDb4A2nEiXhr1qQs4x0F5+66hVVw4ruNw== optionalDependencies: - "@esbuild/android-arm" "0.17.12" - "@esbuild/android-arm64" "0.17.12" - "@esbuild/android-x64" "0.17.12" - "@esbuild/darwin-arm64" "0.17.12" - "@esbuild/darwin-x64" "0.17.12" - "@esbuild/freebsd-arm64" "0.17.12" - "@esbuild/freebsd-x64" "0.17.12" - "@esbuild/linux-arm" "0.17.12" - "@esbuild/linux-arm64" "0.17.12" - "@esbuild/linux-ia32" "0.17.12" - "@esbuild/linux-loong64" "0.17.12" - "@esbuild/linux-mips64el" "0.17.12" - "@esbuild/linux-ppc64" "0.17.12" - "@esbuild/linux-riscv64" "0.17.12" - "@esbuild/linux-s390x" "0.17.12" - "@esbuild/linux-x64" "0.17.12" - "@esbuild/netbsd-x64" "0.17.12" - "@esbuild/openbsd-x64" "0.17.12" - "@esbuild/sunos-x64" "0.17.12" - "@esbuild/win32-arm64" "0.17.12" - "@esbuild/win32-ia32" "0.17.12" - "@esbuild/win32-x64" "0.17.12" + "@esbuild/android-arm" "0.17.14" + "@esbuild/android-arm64" "0.17.14" + "@esbuild/android-x64" "0.17.14" + "@esbuild/darwin-arm64" "0.17.14" + "@esbuild/darwin-x64" "0.17.14" + "@esbuild/freebsd-arm64" "0.17.14" + "@esbuild/freebsd-x64" "0.17.14" + "@esbuild/linux-arm" "0.17.14" + "@esbuild/linux-arm64" "0.17.14" + "@esbuild/linux-ia32" "0.17.14" + "@esbuild/linux-loong64" "0.17.14" + "@esbuild/linux-mips64el" "0.17.14" + "@esbuild/linux-ppc64" "0.17.14" + "@esbuild/linux-riscv64" "0.17.14" + "@esbuild/linux-s390x" "0.17.14" + "@esbuild/linux-x64" "0.17.14" + "@esbuild/netbsd-x64" "0.17.14" + "@esbuild/openbsd-x64" "0.17.14" + "@esbuild/sunos-x64" "0.17.14" + "@esbuild/win32-arm64" "0.17.14" + "@esbuild/win32-ia32" "0.17.14" + "@esbuild/win32-x64" "0.17.14" ev-emitter@^1.0.0: version "1.1.1" From b076bccc85d20223bd9cd52af5224105aae4f074 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 28 Mar 2023 21:57:18 +0000 Subject: [PATCH 1414/2165] chore(deps-dev): bump debug from 1.7.1 to 1.7.2 Bumps [debug](https://github.com/ruby/debug) from 1.7.1 to 1.7.2. - [Release notes](https://github.com/ruby/debug/releases) - [Commits](https://github.com/ruby/debug/compare/v1.7.1...v1.7.2) --- updated-dependencies: - dependency-name: debug dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Gemfile b/Gemfile index e1d5ba36c..0e172098f 100644 --- a/Gemfile +++ b/Gemfile @@ -109,7 +109,7 @@ group :development do # 调试器 ## VSCode debug: https://marketplace.visualstudio.com/items?itemName=KoichiSasada.vscode-rdbg - gem 'debug', '~> 1.7.1' + gem 'debug', '~> 1.7.2' gem "ruby-lsp", "~> 0.4.2" # rails 更友好错误输出 diff --git a/Gemfile.lock b/Gemfile.lock index 2d8c6701d..14a4ae097 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -123,7 +123,7 @@ GEM cssbundling-rails (1.1.2) railties (>= 6.0.0) date (3.3.3) - debug (1.7.1) + debug (1.7.2) irb (>= 1.5.0) reline (>= 0.3.1) debug_inspector (1.1.0) @@ -187,7 +187,7 @@ GEM thor (>= 0.16.0) interception (0.5) io-console (0.6.0) - irb (1.6.2) + irb (1.6.3) reline (>= 0.3.0) jb (0.8.0) jsbundling-rails (1.1.1) @@ -366,7 +366,7 @@ GEM redis-client (0.14.0) connection_pool regexp_parser (2.6.1) - reline (0.3.2) + reline (0.3.3) io-console (~> 0.5) request_store (1.5.1) rack (>= 1.4) @@ -499,7 +499,7 @@ DEPENDENCIES bootsnap (>= 1.4.7) carrierwave (~> 2.2.3) cssbundling-rails (~> 1.1) - debug (~> 1.7.1) + debug (~> 1.7.2) devise (~> 4.9.0) devise-i18n (~> 1.11.0) dotenv-rails From 73c20abb6e6e230b33c6cf36aa28823160943d6d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 29 Mar 2023 21:59:13 +0000 Subject: [PATCH 1415/2165] chore(deps): bump puma from 6.1.1 to 6.2.0 Bumps [puma](https://github.com/puma/puma) from 6.1.1 to 6.2.0. - [Release notes](https://github.com/puma/puma/releases) - [Changelog](https://github.com/puma/puma/blob/master/History.md) - [Commits](https://github.com/puma/puma/compare/v6.1.1...v6.2.0) --- updated-dependencies: - dependency-name: puma dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 0e172098f..e5b4f41d9 100644 --- a/Gemfile +++ b/Gemfile @@ -4,7 +4,7 @@ source 'https://rubygems.org' git_source(:github) { |repo_name| "https://github.com/#{repo_name}" } -gem 'puma', '~> 6.1.1' +gem 'puma', '~> 6.2.0' gem 'rails', '~> 7.0.4' gem 'rails-i18n', '~> 7.0.5' gem 'rake', '~> 13.0.4' diff --git a/Gemfile.lock b/Gemfile.lock index 14a4ae097..1514786d0 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -310,7 +310,7 @@ GEM interception (>= 0.5) pry (>= 0.12.0) public_suffix (5.0.1) - puma (6.1.1) + puma (6.2.0) nio4r (~> 2.0) pundit (2.3.0) activesupport (>= 3.0.0) @@ -530,7 +530,7 @@ DEPENDENCIES propshaft (= 0.7.0) pry-rails pry-rescue - puma (~> 6.1.1) + puma (~> 6.2.0) pundit (~> 2.3.0) rack-cors (~> 2.0.1) rails (~> 7.0.4) From d7b8764f37b59d4fff262105d676d4d62d9f7526 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 30 Mar 2023 15:21:04 +0800 Subject: [PATCH 1416/2165] =?UTF-8?q?feat:=20=E5=B1=95=E7=A4=BA=20Android?= =?UTF-8?q?=20=E8=A7=A3=E5=8C=85=E7=9A=84=E7=AD=BE=E5=90=8D=E8=AF=81?= =?UTF-8?q?=E4=B9=A6=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/assets/stylesheets/application.sass.scss | 1 + app/assets/stylesheets/teardown.scss | 22 +++++++ app/services/teardown_service.rb | 59 +++++++++++++++---- app/views/teardowns/_android.html.slim | 11 ++-- .../teardowns/_developer_certs_part.html.slim | 5 +- app/views/teardowns/_ios.html.slim | 11 ++-- .../teardowns/_mobileprovision_part.html.slim | 4 +- .../teardowns/_signature_certs_part.html.slim | 23 ++++++++ config/locales/zealot/en.yml | 3 + config/locales/zealot/zh-CN.yml | 3 + 10 files changed, 116 insertions(+), 26 deletions(-) create mode 100644 app/assets/stylesheets/teardown.scss create mode 100644 app/views/teardowns/_signature_certs_part.html.slim diff --git a/app/assets/stylesheets/application.sass.scss b/app/assets/stylesheets/application.sass.scss index 4a7bd034e..35ecf89c9 100644 --- a/app/assets/stylesheets/application.sass.scss +++ b/app/assets/stylesheets/application.sass.scss @@ -7,6 +7,7 @@ @import 'dashboard'; @import 'app'; @import 'channel'; +@import 'teardown'; @import 'debug_files'; @import 'devise'; @import 'admin'; diff --git a/app/assets/stylesheets/teardown.scss b/app/assets/stylesheets/teardown.scss new file mode 100644 index 000000000..7a77d410a --- /dev/null +++ b/app/assets/stylesheets/teardown.scss @@ -0,0 +1,22 @@ +.card-comment { + .comment-text { + ul.content { + list-style: none; + } + + .content { + @extend .p-0; + @extend .m-0; + @extend .mt-2; + + .key { + font-weight: bold; + width: 80px; + } + + .value { + @extend .pl-1; + } + } + } +} diff --git a/app/services/teardown_service.rb b/app/services/teardown_service.rb index baab922cc..398ed761f 100644 --- a/app/services/teardown_service.rb +++ b/app/services/teardown_service.rb @@ -52,6 +52,20 @@ def process metadata end + def process_app_common(parser, metadata) + metadata.name = parser.name + metadata.platform = parser.os.downcase + metadata.device = parser.device_type + metadata.release_version = parser.release_version + metadata.build_version = parser.build_version + metadata.size = parser.size + metadata.min_sdk_version = parser.respond_to?(:min_os_version) ? parser.min_os_version : parser.min_sdk_version + end + + ########### + # Android # + ########### + def process_android(parser, metadata) process_app_common(parser, metadata) @@ -63,8 +77,31 @@ def process_android(parser, metadata) metadata.services = parser&.services&.sort_by(&:name)&.select(&:present?)&.map(&:name) metadata.url_schemes = parser&.schemes&.sort metadata.deep_links = parser&.deep_links&.sort + + process_signature_certs(parser, metadata) + end + + def process_signature_certs(parser, metadata) + return unless certificates = parser.certificates + + metadata.developer_certs = certificates.each_with_object([]) do |cert, obj| + cert = cert.certificate + obj << { + version: "v#{cert.version + 1}", + subject: cert.subject.to_a.map {|k,v,_| [k, v] }.to_h, + issuer: cert.issuer.to_a.map {|k,v,_| [k, v] }.to_h, + created_at: cert.not_before, + expired_at: cert.not_after, + algorithem: cert.signature_algorithm, + public_key_type: cert.public_key.class.name.split('::').last + } + end end + ########### + # iOS # + ########### + def process_ios(parser, metadata) process_app_common(parser, metadata) process_mobileprovision(parser.mobileprovision, metadata) if parser.mobileprovision? @@ -85,21 +122,19 @@ def process_ios(parser, metadata) end end + ########### + # macOS # + ########### + def process_macos(parser, metadata) process_app_common(parser, metadata) metadata.bundle_id = parser.bundle_id # metadata.target_sdk_version = parser.target_sdk_version end - def process_app_common(parser, metadata) - metadata.name = parser.name - metadata.platform = parser.os.downcase - metadata.device = parser.device_type - metadata.release_version = parser.release_version - metadata.build_version = parser.build_version - metadata.size = parser.size - metadata.min_sdk_version = parser.respond_to?(:min_os_version) ? parser.min_os_version : parser.min_sdk_version - end + ######################### + # Provision (iOS/macOS) # + ######################### def process_mobileprovision(mobileprovision, metadata) return unless mobileprovision @@ -107,7 +142,7 @@ def process_mobileprovision(mobileprovision, metadata) process_mobileprovision_metadata(mobileprovision, metadata) process_developer_certs(mobileprovision, metadata) process_entitlements(mobileprovision, metadata) - process_entitlements(mobileprovision, metadata) + process_enabled_capabilities(mobileprovision, metadata) end def process_mobileprovision_metadata(mobileprovision, metadata) @@ -143,7 +178,7 @@ def process_entitlements(mobileprovision, metadata) end end - def process_entitlements(mobileprovision, metadata) + def process_enabled_capabilities(mobileprovision, metadata) if capabilities = mobileprovision.enabled_capabilities metadata.capabilities = capabilities.sort end @@ -157,4 +192,4 @@ def checksum(file) checksum end end -end \ No newline at end of file +end diff --git a/app/views/teardowns/_android.html.slim b/app/views/teardowns/_android.html.slim index ee26ab8c5..00789dcb0 100644 --- a/app/views/teardowns/_android.html.slim +++ b/app/views/teardowns/_android.html.slim @@ -12,8 +12,8 @@ ruby: .card-tools button.btn.btn-tool data-card-widget="collapse" i.fas.fa-minus - .card-body - dl.system-info + .card-body.p-0 + dl.system-info.pb-0 dt = t('teardowns.show.app_name') dd pre = app_name @@ -39,8 +39,9 @@ ruby: = render 'card', title: 'Activities', raw: @metadata.activities .col-md-6 + == render 'signature_certs_part', certificates: @metadata.developer_certs == render 'card', title: 'Deep Links', raw: @metadata.deep_links == render 'card', title: 'URL Schemes', raw: @metadata.url_schemes - = render 'card', title: 'Features', raw: @metadata.features - = render 'card', title: 'Permissions', raw: @metadata.permissions - = render 'card', title: 'Services', raw: @metadata.services + == render 'card', title: 'Features', raw: @metadata.features + == render 'card', title: 'Permissions', raw: @metadata.permissions + == render 'card', title: 'Services', raw: @metadata.services diff --git a/app/views/teardowns/_developer_certs_part.html.slim b/app/views/teardowns/_developer_certs_part.html.slim index e193e2181..160c2d470 100644 --- a/app/views/teardowns/_developer_certs_part.html.slim +++ b/app/views/teardowns/_developer_certs_part.html.slim @@ -6,7 +6,7 @@ .card-tools button.btn.btn-tool data-card-widget="collapse" i.fas.fa-minus - .card-body.card-comments + .card-body.card-comments.pb-2 - @metadata.developer_certs.each_with_index do |cert, i| .card-comment .comment-text.ml-0 @@ -14,4 +14,5 @@ = t('teardowns.show.cert', index: i + 1) span.text-muted.float-right = t('teardowns.show.cert_expired_at', date: cert['expired_at']) - = cert['name'] + p.content + = cert['name'] diff --git a/app/views/teardowns/_ios.html.slim b/app/views/teardowns/_ios.html.slim index e30c35ac7..8b55b359f 100644 --- a/app/views/teardowns/_ios.html.slim +++ b/app/views/teardowns/_ios.html.slim @@ -5,8 +5,8 @@ .card-tools button.btn.btn-tool data-card-widget="collapse" i.fas.fa-minus - .card-body - dl.system-info + .card-body.p-0 + dl.system-info.pb-0 dt = t('teardowns.show.app_name') dd pre = @metadata.name @@ -30,10 +30,11 @@ pre = number_to_human_size(@metadata.size) == render 'devices_part' - == render 'developer_certs_part' + == render 'card', title: t('teardowns.show.capabilities'), raw: @metadata.capabilities .col-md-6 + == render 'developer_certs_part' == render 'mobileprovision_part' - == render 'card', title: t('teardowns.show.capabilities'), raw: @metadata.capabilities + == render 'card', title: 'URL Schemes', raw: @metadata.url_schemes - == render 'card', title: 'Entitlements', raw: @metadata.entitlements \ No newline at end of file + == render 'card', title: 'Entitlements', raw: @metadata.entitlements diff --git a/app/views/teardowns/_mobileprovision_part.html.slim b/app/views/teardowns/_mobileprovision_part.html.slim index 8fffba685..06133dca3 100644 --- a/app/views/teardowns/_mobileprovision_part.html.slim +++ b/app/views/teardowns/_mobileprovision_part.html.slim @@ -5,8 +5,8 @@ .card-tools button.btn.btn-tool data-card-widget="collapse" i.fas.fa-minus - .card-body - dl.system-info + .card-body.p-0 + dl.system-info.pb-0 dt = t('teardowns.show.mobileprovision_name') dd pre = "#{@metadata.mobileprovision['profile_name']} (#{@metadata.release_type})" diff --git a/app/views/teardowns/_signature_certs_part.html.slim b/app/views/teardowns/_signature_certs_part.html.slim new file mode 100644 index 000000000..95a79da59 --- /dev/null +++ b/app/views/teardowns/_signature_certs_part.html.slim @@ -0,0 +1,23 @@ +- if certificates.present? + .card + .card-header + h3.card-title + = t('teardowns.show.developer_certs_list', count: @metadata.developer_certs.size) + .card-tools + button.btn.btn-tool data-card-widget="collapse" + i.fas.fa-minus + .card-body.card-comments.pb-2 + - certificates.each_with_index do |cert, i| + .card-comment + .comment-text.ml-0 + span.username + = t('teardowns.show.cert', index: "#{i + 1} (#{cert['public_key_type']})") + span.text-muted.float-right + = t('teardowns.show.cert_expired_at', date: cert['expired_at']) + ul.content + li + span.key = t('teardowns.show.cert_issuer') + span.value = cert['issuer'].map { |k, v| "#{k}=#{v}" }.join(', ') + li + span.key = t('teardowns.show.cert_algorithem') + span.value = cert['algorithem'] diff --git a/config/locales/zealot/en.yml b/config/locales/zealot/en.yml index 123fef392..6e69f11d1 100644 --- a/config/locales/zealot/en.yml +++ b/config/locales/zealot/en.yml @@ -525,6 +525,9 @@ en: developer_certs_list: 'Developer Certificates (%{count})' cert: 'Cert %{index}' cert_expired_at: 'Expired at %{date}' + cert_issuer: Issuer + cert_algorithem: Signature Algorithem + cert_subject: 主题 mobileprovision: Mobileprovision uuid: UUID mobileprovision_name: Name (Type) diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index 6cf7af0ca..d10546215 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -556,6 +556,9 @@ zh-CN: developer_certs_list: '开发者证书 (%{count})' cert: '证书 %{index}' cert_expired_at: '%{date} 到期' + cert_issuer: 发布人 + cert_algorithem: 签名算法 + cert_subject: 主题 mobileprovision: 描述文件 uuid: UUID mobileprovision_name: 名称 (类型) From 8b36372febaa3f8f249b8e137a9285f1a68d9c18 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 30 Mar 2023 15:33:32 +0800 Subject: [PATCH 1417/2165] =?UTF-8?q?style:=20=E8=A7=A3=E5=86=B3=E7=B3=BB?= =?UTF-8?q?=E7=BB=9F=E9=BB=91=E6=9A=97=E6=A8=A1=E5=BC=8F=E4=B8=8B=E6=9C=8D?= =?UTF-8?q?=E5=8A=A1=E8=AE=BE=E7=BD=AE=E6=B5=85=E8=89=B2=E4=B8=8D=E5=B1=95?= =?UTF-8?q?=E7=A4=BA=20logo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/javascript/controllers/global_controller.js | 2 ++ app/views/layouts/_brand_logo.html.slim | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/app/javascript/controllers/global_controller.js b/app/javascript/controllers/global_controller.js index e525be6fe..3b2e03981 100644 --- a/app/javascript/controllers/global_controller.js +++ b/app/javascript/controllers/global_controller.js @@ -34,6 +34,8 @@ export default class extends Controller { // document.getElementsByClassName('main-header').classList.replace("navbar-white", "navbar-dark") // document.getElementsByClassName('main-sidebar').classList.replace("sidebar-light-primary", "sidebar-dark-primary") + } else if (apperance === "light" && Zealot.isDarkMode()) { + jquery(".dark-brand-image").remove() } } diff --git a/app/views/layouts/_brand_logo.html.slim b/app/views/layouts/_brand_logo.html.slim index 2ebd2ec1d..43308c65b 100644 --- a/app/views/layouts/_brand_logo.html.slim +++ b/app/views/layouts/_brand_logo.html.slim @@ -1,6 +1,6 @@ // Brand Logo a.brand-link href="#{ root_path }" picture - source srcset="#{image_url("zealot-icon-dark.png")}" media="(prefers-color-scheme: dark)" class="brand-image" + source srcset="#{image_url("zealot-icon-dark.png")}" media="(prefers-color-scheme: dark)" class="dark-brand-image brand-image" = image_tag 'zealot-icon.png', class: 'brand-image' span.brand-text.font-weight-light = Setting.site_title From fb3aa91a496b29eadbb2581f43ed9940a3b650f8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 30 Mar 2023 21:59:26 +0000 Subject: [PATCH 1418/2165] chore(deps): bump graphql from 2.0.19 to 2.0.20 Bumps [graphql](https://github.com/rmosolgo/graphql-ruby) from 2.0.19 to 2.0.20. - [Release notes](https://github.com/rmosolgo/graphql-ruby/releases) - [Changelog](https://github.com/rmosolgo/graphql-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/rmosolgo/graphql-ruby/compare/v2.0.19...v2.0.20) --- updated-dependencies: - dependency-name: graphql dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 0e172098f..3917131b3 100644 --- a/Gemfile +++ b/Gemfile @@ -18,7 +18,7 @@ gem 'lograge', '~> 0.12.0' # API gem 'active_model_serializers', '~> 0.10.13' -gem 'graphql', '~> 2.0.19' +gem 'graphql', '~> 2.0.20' gem 'rack-cors', '~> 2.0.1' gem 'health_check', '~> 3.1.0' gem 'tiny_appstore_connect', '~> 0.1.7' diff --git a/Gemfile.lock b/Gemfile.lock index 14a4ae097..bba55a34d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -166,7 +166,7 @@ GEM graphiql-rails (1.9.0) railties sprockets-rails - graphql (2.0.19) + graphql (2.0.20) hashie (5.0.0) health_check (3.1.0) railties (>= 5.0) @@ -507,7 +507,7 @@ DEPENDENCIES friendly_id (~> 5.5.0) gitlab_omniauth-ldap (~> 2.2.0) graphiql-rails - graphql (~> 2.0.19) + graphql (~> 2.0.20) health_check (~> 3.1.0) improved_jenkins_client (~> 1.6.7) jb (~> 0.8.0) From e01253e5882d24dda3c38b57b674d7eb2de5aeef Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 31 Mar 2023 10:19:18 +0800 Subject: [PATCH 1419/2165] chore: use vscode-lsp instead of ruby-lsp gem --- Gemfile | 1 - Gemfile.lock | 10 ---------- 2 files changed, 11 deletions(-) diff --git a/Gemfile b/Gemfile index 3917131b3..d1bfc01ae 100644 --- a/Gemfile +++ b/Gemfile @@ -110,7 +110,6 @@ group :development do # 调试器 ## VSCode debug: https://marketplace.visualstudio.com/items?itemName=KoichiSasada.vscode-rdbg gem 'debug', '~> 1.7.2' - gem "ruby-lsp", "~> 0.4.2" # rails 更友好错误输出 gem 'awesome_print' diff --git a/Gemfile.lock b/Gemfile.lock index bba55a34d..da5bbfe39 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -209,7 +209,6 @@ GEM kaminari-core (1.2.2) kramdown (2.4.0) rexml - language_server-protocol (3.17.0.3) launchy (2.5.2) addressable (~> 2.8) letter_opener (1.8.1) @@ -295,7 +294,6 @@ GEM pghero (3.3.1) activerecord (>= 6) plist (3.7.0) - prettier_print (1.2.1) propshaft (0.7.0) actionpack (>= 7.0.0) activesupport (>= 7.0.0) @@ -394,10 +392,6 @@ GEM activesupport (>= 4.2.0) rack (>= 1.1) rubocop (>= 1.33.0, < 2.0) - ruby-lsp (0.4.2) - language_server-protocol (~> 3.17.0) - sorbet-runtime - syntax_tree (>= 6.0.2, < 7) ruby-macho (3.0.0) ruby-progressbar (1.11.0) ruby-vips (2.1.4) @@ -437,7 +431,6 @@ GEM railties (>= 3.1) slim (>= 3.0, < 6.0, != 5.0.0) socksify (1.7.1) - sorbet-runtime (0.5.10722) sprockets (4.2.0) concurrent-ruby (~> 1.0) rack (>= 2.2.4, < 4) @@ -448,8 +441,6 @@ GEM ssrf_filter (1.1.1) stimulus-rails (1.2.1) railties (>= 6.0.0) - syntax_tree (6.1.0) - prettier_print (>= 1.2.0) sys-filesystem (1.4.3) ffi (~> 1.1) temple (0.10.0) @@ -541,7 +532,6 @@ DEPENDENCIES rqrcode rubocop (>= 0.70) rubocop-rails - ruby-lsp (~> 0.4.2) sentry-rails sentry-ruby sentry-sidekiq From 8797c5526f05491d04c668b7a150444ddcd6ef1d Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 31 Mar 2023 10:40:31 +0800 Subject: [PATCH 1420/2165] =?UTF-8?q?chore:=20devcontainer=20=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E6=9C=80=E6=96=B0=E6=A0=87=E5=87=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .devcontainer/devcontainer.json | 40 +++++++++++++++++---------------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 99bb9ec23..a24bce30b 100755 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -4,28 +4,30 @@ "service": "app", "workspaceFolder": "/workspace", - "settings": { - "terminal.integrated.defaultProfile.linux": "zsh", - "terminal.integrated.profiles.linux":{ - "zsh": { - "path": "/bin/zsh", - "icon": "star" - } + "customizations": { + "vscode": { + "settings": { + "terminal.integrated.defaultProfile.linux": "zsh", + "terminal.integrated.profiles.linux":{ + "zsh": { + "path": "/bin/zsh", + "icon": "star" + } + } + }, + "extensions": [ + "Shopify.ruby-lsp", + "KoichiSasada.vscode-rdbg", + "sianglim.slim", + "eamodio.gitlens", + "bung87.rails", + "bung87.vscode-gemfile", + "EditorConfig.EditorConfig", + "formulahendry.auto-complete-tag" + ] } }, - "extensions": [ - "Shopify.ruby-lsp", - "KoichiSasada.vscode-rdbg", - "sianglim.slim", - "misogi.ruby-rubocop", - "eamodio.gitlens", - "bung87.rails", - "bung87.vscode-gemfile", - "EditorConfig.EditorConfig", - "formulahendry.auto-complete-tag" - ], - "forwardPorts": [3000, 5432, 6379, 8081], "portsAttributes": { "3000": { From 4b6038fb094a3aa0734b218a7057c3cb32b5b70f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 31 Mar 2023 21:12:14 +0000 Subject: [PATCH 1421/2165] chore(deps): bump puma from 6.2.0 to 6.2.1 Bumps [puma](https://github.com/puma/puma) from 6.2.0 to 6.2.1. - [Release notes](https://github.com/puma/puma/releases) - [Changelog](https://github.com/puma/puma/blob/master/History.md) - [Commits](https://github.com/puma/puma/compare/v6.2.0...v6.2.1) --- updated-dependencies: - dependency-name: puma dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 5990ec58a..a1f1c0eb8 100644 --- a/Gemfile +++ b/Gemfile @@ -4,7 +4,7 @@ source 'https://rubygems.org' git_source(:github) { |repo_name| "https://github.com/#{repo_name}" } -gem 'puma', '~> 6.2.0' +gem 'puma', '~> 6.2.1' gem 'rails', '~> 7.0.4' gem 'rails-i18n', '~> 7.0.5' gem 'rake', '~> 13.0.4' diff --git a/Gemfile.lock b/Gemfile.lock index 31b8a3a44..5227372f0 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -308,7 +308,7 @@ GEM interception (>= 0.5) pry (>= 0.12.0) public_suffix (5.0.1) - puma (6.2.0) + puma (6.2.1) nio4r (~> 2.0) pundit (2.3.0) activesupport (>= 3.0.0) @@ -521,7 +521,7 @@ DEPENDENCIES propshaft (= 0.7.0) pry-rails pry-rescue - puma (~> 6.2.0) + puma (~> 6.2.1) pundit (~> 2.3.0) rack-cors (~> 2.0.1) rails (~> 7.0.4) From 5862f69b048038029472ea1624e11198b6f6abc1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Apr 2023 21:57:42 +0000 Subject: [PATCH 1422/2165] chore(deps): bump devise from 4.9.0 to 4.9.2 Bumps [devise](https://github.com/heartcombo/devise) from 4.9.0 to 4.9.2. - [Release notes](https://github.com/heartcombo/devise/releases) - [Changelog](https://github.com/heartcombo/devise/blob/main/CHANGELOG.md) - [Commits](https://github.com/heartcombo/devise/compare/v4.9.0...v4.9.2) --- updated-dependencies: - dependency-name: devise dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index 5990ec58a..a008d778c 100644 --- a/Gemfile +++ b/Gemfile @@ -47,7 +47,7 @@ gem 'faraday', '~> 2.7.4' ## 用户认证 gem 'pundit', '~> 2.3.0' -gem 'devise', '~> 4.9.0' +gem 'devise', '~> 4.9.2' gem 'devise-i18n', '~> 1.11.0' gem 'omniauth', '~> 2.1.1' diff --git a/Gemfile.lock b/Gemfile.lock index 31b8a3a44..3da980948 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -127,7 +127,7 @@ GEM irb (>= 1.5.0) reline (>= 0.3.1) debug_inspector (1.1.0) - devise (4.9.0) + devise (4.9.2) bcrypt (~> 3.0) orm_adapter (~> 0.1) railties (>= 4.1.0) @@ -226,7 +226,7 @@ GEM activesupport (>= 4) railties (>= 4) request_store (~> 1.0) - loofah (2.19.1) + loofah (2.20.0) crass (~> 1.0.2) nokogiri (>= 1.5.9) mail (2.8.1) @@ -491,7 +491,7 @@ DEPENDENCIES carrierwave (~> 2.2.3) cssbundling-rails (~> 1.1) debug (~> 1.7.2) - devise (~> 4.9.0) + devise (~> 4.9.2) devise-i18n (~> 1.11.0) dotenv-rails faraday (~> 2.7.4) From d98062ff4792729cc642fd2ddab91f81ad006215 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Apr 2023 21:57:53 +0000 Subject: [PATCH 1423/2165] chore(deps): bump esbuild from 0.17.14 to 0.17.15 Bumps [esbuild](https://github.com/evanw/esbuild) from 0.17.14 to 0.17.15. - [Release notes](https://github.com/evanw/esbuild/releases) - [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md) - [Commits](https://github.com/evanw/esbuild/compare/v0.17.14...v0.17.15) --- updated-dependencies: - dependency-name: esbuild dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 270 +++++++++++++++++++++++++-------------------------- 2 files changed, 136 insertions(+), 136 deletions(-) diff --git a/package.json b/package.json index fb96770de..25ded7af7 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "admin-lte": "3.1.0", "clipboard": "^2.0.11", "compare-versions": "^5.0.3", - "esbuild": "^0.17.14", + "esbuild": "^0.17.15", "sass": "^1.60.0", "ua-parser-js": "^1.0.34" }, diff --git a/yarn.lock b/yarn.lock index 00cbc3bee..aafe64b01 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,115 +2,115 @@ # yarn lockfile v1 -"@esbuild/android-arm64@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.14.tgz#4624cea3c8941c91f9e9c1228f550d23f1cef037" - integrity sha512-eLOpPO1RvtsP71afiFTvS7tVFShJBCT0txiv/xjFBo5a7R7Gjw7X0IgIaFoLKhqXYAXhahoXm7qAmRXhY4guJg== - -"@esbuild/android-arm@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.14.tgz#74fae60fcab34c3f0e15cb56473a6091ba2b53a6" - integrity sha512-0CnlwnjDU8cks0yJLXfkaU/uoLyRf9VZJs4p1PskBr2AlAHeEsFEwJEo0of/Z3g+ilw5mpyDwThlxzNEIxOE4g== - -"@esbuild/android-x64@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.14.tgz#f002fbc08d5e939d8314bd23bcfb1e95d029491f" - integrity sha512-nrfQYWBfLGfSGLvRVlt6xi63B5IbfHm3tZCdu/82zuFPQ7zez4XjmRtF/wIRYbJQ/DsZrxJdEvYFE67avYXyng== - -"@esbuild/darwin-arm64@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.14.tgz#b8dcd79a1dd19564950b4ca51d62999011e2e168" - integrity sha512-eoSjEuDsU1ROwgBH/c+fZzuSyJUVXQTOIN9xuLs9dE/9HbV/A5IqdXHU1p2OfIMwBwOYJ9SFVGGldxeRCUJFyw== - -"@esbuild/darwin-x64@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.14.tgz#4b49f195d9473625efc3c773fc757018f2c0d979" - integrity sha512-zN0U8RWfrDttdFNkHqFYZtOH8hdi22z0pFm0aIJPsNC4QQZv7je8DWCX5iA4Zx6tRhS0CCc0XC2m7wKsbWEo5g== - -"@esbuild/freebsd-arm64@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.14.tgz#480923fd38f644c6342c55e916cc7c231a85eeb7" - integrity sha512-z0VcD4ibeZWVQCW1O7szaLxGsx54gcCnajEJMdYoYjLiq4g1jrP2lMq6pk71dbS5+7op/L2Aod+erw+EUr28/A== - -"@esbuild/freebsd-x64@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.14.tgz#a6b6b01954ad8562461cb8a5e40e8a860af69cbe" - integrity sha512-hd9mPcxfTgJlolrPlcXkQk9BMwNBvNBsVaUe5eNUqXut6weDQH8whcNaKNF2RO8NbpT6GY8rHOK2A9y++s+ehw== - -"@esbuild/linux-arm64@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.14.tgz#1fe2f39f78183b59f75a4ad9c48d079916d92418" - integrity sha512-FhAMNYOq3Iblcj9i+K0l1Fp/MHt+zBeRu/Qkf0LtrcFu3T45jcwB6A1iMsemQ42vR3GBhjNZJZTaCe3VFPbn9g== - -"@esbuild/linux-arm@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.14.tgz#18d594a49b64e4a3a05022c005cb384a58056a2a" - integrity sha512-BNTl+wSJ1omsH8s3TkQmIIIQHwvwJrU9u1ggb9XU2KTVM4TmthRIVyxSp2qxROJHhZuW/r8fht46/QE8hU8Qvg== - -"@esbuild/linux-ia32@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.14.tgz#f7f0182a9cfc0159e0922ed66c805c9c6ef1b654" - integrity sha512-91OK/lQ5y2v7AsmnFT+0EyxdPTNhov3y2CWMdizyMfxSxRqHazXdzgBKtlmkU2KYIc+9ZK3Vwp2KyXogEATYxQ== - -"@esbuild/linux-loong64@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.14.tgz#5f5305fdffe2d71dd9a97aa77d0c99c99409066f" - integrity sha512-vp15H+5NR6hubNgMluqqKza85HcGJgq7t6rMH7O3Y6ApiOWPkvW2AJfNojUQimfTp6OUrACUXfR4hmpcENXoMQ== - -"@esbuild/linux-mips64el@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.14.tgz#a602e85c51b2f71d2aedfe7f4143b2f92f97f3f5" - integrity sha512-90TOdFV7N+fgi6c2+GO9ochEkmm9kBAKnuD5e08GQMgMINOdOFHuYLPQ91RYVrnWwQ5683sJKuLi9l4SsbJ7Hg== - -"@esbuild/linux-ppc64@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.14.tgz#32d918d782105cbd9345dbfba14ee018b9c7afdf" - integrity sha512-NnBGeoqKkTugpBOBZZoktQQ1Yqb7aHKmHxsw43NddPB2YWLAlpb7THZIzsRsTr0Xw3nqiPxbA1H31ZMOG+VVPQ== - -"@esbuild/linux-riscv64@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.14.tgz#38612e7b6c037dff7022c33f49ca17f85c5dec58" - integrity sha512-0qdlKScLXA8MGVy21JUKvMzCYWovctuP8KKqhtE5A6IVPq4onxXhSuhwDd2g5sRCzNDlDjitc5sX31BzDoL5Fw== - -"@esbuild/linux-s390x@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.14.tgz#4397dff354f899e72fd035d72af59a700c465ccb" - integrity sha512-Hdm2Jo1yaaOro4v3+6/zJk6ygCqIZuSDJHdHaf8nVH/tfOuoEX5Riv03Ka15LmQBYJObUTNS1UdyoMk0WUn9Ww== - -"@esbuild/linux-x64@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.14.tgz#6c5cb99891b6c3e0c08369da3ef465e8038ad9c2" - integrity sha512-8KHF17OstlK4DuzeF/KmSgzrTWQrkWj5boluiiq7kvJCiQVzUrmSkaBvcLB2UgHpKENO2i6BthPkmUhNDaJsVw== - -"@esbuild/netbsd-x64@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.14.tgz#5fa5255a64e9bf3947c1b3bef5e458b50b211994" - integrity sha512-nVwpqvb3yyXztxIT2+VsxJhB5GCgzPdk1n0HHSnchRAcxqKO6ghXwHhJnr0j/B+5FSyEqSxF4q03rbA2fKXtUQ== - -"@esbuild/openbsd-x64@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.14.tgz#74d14c79dcb6faf446878cc64284aa4e02f5ca6f" - integrity sha512-1RZ7uQQ9zcy/GSAJL1xPdN7NDdOOtNEGiJalg/MOzeakZeTrgH/DoCkbq7TaPDiPhWqnDF+4bnydxRqQD7il6g== - -"@esbuild/sunos-x64@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.14.tgz#5c7d1c7203781d86c2a9b2ff77bd2f8036d24cfa" - integrity sha512-nqMjDsFwv7vp7msrwWRysnM38Sd44PKmW8EzV01YzDBTcTWUpczQg6mGao9VLicXSgW/iookNK6AxeogNVNDZA== - -"@esbuild/win32-arm64@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.14.tgz#dc36ed84f1390e73b6019ccf0566c80045e5ca3d" - integrity sha512-xrD0mccTKRBBIotrITV7WVQAwNJ5+1va6L0H9zN92v2yEdjfAN7864cUaZwJS7JPEs53bDTzKFbfqVlG2HhyKQ== - -"@esbuild/win32-ia32@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.14.tgz#0802a107afa9193c13e35de15a94fe347c588767" - integrity sha512-nXpkz9bbJrLLyUTYtRotSS3t5b+FOuljg8LgLdINWFs3FfqZMtbnBCZFUmBzQPyxqU87F8Av+3Nco/M3hEcu1w== - -"@esbuild/win32-x64@0.17.14": - version "0.17.14" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.14.tgz#e81fb49de05fed91bf74251c9ca0343f4fc77d31" - integrity sha512-gPQmsi2DKTaEgG14hc3CHXHp62k8g6qr0Pas+I4lUxRMugGSATh/Bi8Dgusoz9IQ0IfdrvLpco6kujEIBoaogA== +"@esbuild/android-arm64@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.15.tgz#893ad71f3920ccb919e1757c387756a9bca2ef42" + integrity sha512-0kOB6Y7Br3KDVgHeg8PRcvfLkq+AccreK///B4Z6fNZGr/tNHX0z2VywCc7PTeWp+bPvjA5WMvNXltHw5QjAIA== + +"@esbuild/android-arm@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.15.tgz#143e0d4e4c08c786ea410b9a7739779a9a1315d8" + integrity sha512-sRSOVlLawAktpMvDyJIkdLI/c/kdRTOqo8t6ImVxg8yT7LQDUYV5Rp2FKeEosLr6ZCja9UjYAzyRSxGteSJPYg== + +"@esbuild/android-x64@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.15.tgz#d2d12a7676b2589864281b2274355200916540bc" + integrity sha512-MzDqnNajQZ63YkaUWVl9uuhcWyEyh69HGpMIrf+acR4otMkfLJ4sUCxqwbCyPGicE9dVlrysI3lMcDBjGiBBcQ== + +"@esbuild/darwin-arm64@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.15.tgz#2e88e79f1d327a2a7d9d06397e5232eb0a473d61" + integrity sha512-7siLjBc88Z4+6qkMDxPT2juf2e8SJxmsbNVKFY2ifWCDT72v5YJz9arlvBw5oB4W/e61H1+HDB/jnu8nNg0rLA== + +"@esbuild/darwin-x64@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.15.tgz#9384e64c0be91388c57be6d3a5eaf1c32a99c91d" + integrity sha512-NbImBas2rXwYI52BOKTW342Tm3LTeVlaOQ4QPZ7XuWNKiO226DisFk/RyPk3T0CKZkKMuU69yOvlapJEmax7cg== + +"@esbuild/freebsd-arm64@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.15.tgz#2ad5a35bc52ebd9ca6b845dbc59ba39647a93c1a" + integrity sha512-Xk9xMDjBVG6CfgoqlVczHAdJnCs0/oeFOspFap5NkYAmRCT2qTn1vJWA2f419iMtsHSLm+O8B6SLV/HlY5cYKg== + +"@esbuild/freebsd-x64@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.15.tgz#b513a48446f96c75fda5bef470e64d342d4379cd" + integrity sha512-3TWAnnEOdclvb2pnfsTWtdwthPfOz7qAfcwDLcfZyGJwm1SRZIMOeB5FODVhnM93mFSPsHB9b/PmxNNbSnd0RQ== + +"@esbuild/linux-arm64@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.15.tgz#9697b168175bfd41fa9cc4a72dd0d48f24715f31" + integrity sha512-T0MVnYw9KT6b83/SqyznTs/3Jg2ODWrZfNccg11XjDehIved2oQfrX/wVuev9N936BpMRaTR9I1J0tdGgUgpJA== + +"@esbuild/linux-arm@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.15.tgz#5b22062c54f48cd92fab9ffd993732a52db70cd3" + integrity sha512-MLTgiXWEMAMr8nmS9Gigx43zPRmEfeBfGCwxFQEMgJ5MC53QKajaclW6XDPjwJvhbebv+RzK05TQjvH3/aM4Xw== + +"@esbuild/linux-ia32@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.15.tgz#eb28a13f9b60b5189fcc9e98e1024f6b657ba54c" + integrity sha512-wp02sHs015T23zsQtU4Cj57WiteiuASHlD7rXjKUyAGYzlOKDAjqK6bk5dMi2QEl/KVOcsjwL36kD+WW7vJt8Q== + +"@esbuild/linux-loong64@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.15.tgz#32454bdfe144cf74b77895a8ad21a15cb81cfbe5" + integrity sha512-k7FsUJjGGSxwnBmMh8d7IbObWu+sF/qbwc+xKZkBe/lTAF16RqxRCnNHA7QTd3oS2AfGBAnHlXL67shV5bBThQ== + +"@esbuild/linux-mips64el@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.15.tgz#af12bde0d775a318fad90eb13a0455229a63987c" + integrity sha512-ZLWk6czDdog+Q9kE/Jfbilu24vEe/iW/Sj2d8EVsmiixQ1rM2RKH2n36qfxK4e8tVcaXkvuV3mU5zTZviE+NVQ== + +"@esbuild/linux-ppc64@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.15.tgz#34c5ed145b2dfc493d3e652abac8bd3baa3865a5" + integrity sha512-mY6dPkIRAiFHRsGfOYZC8Q9rmr8vOBZBme0/j15zFUKM99d4ILY4WpOC7i/LqoY+RE7KaMaSfvY8CqjJtuO4xg== + +"@esbuild/linux-riscv64@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.15.tgz#87bd515e837f2eb004b45f9e6a94dc5b93f22b92" + integrity sha512-EcyUtxffdDtWjjwIH8sKzpDRLcVtqANooMNASO59y+xmqqRYBBM7xVLQhqF7nksIbm2yHABptoioS9RAbVMWVA== + +"@esbuild/linux-s390x@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.15.tgz#20bf7947197f199ddac2ec412029a414ceae3aa3" + integrity sha512-BuS6Jx/ezxFuHxgsfvz7T4g4YlVrmCmg7UAwboeyNNg0OzNzKsIZXpr3Sb/ZREDXWgt48RO4UQRDBxJN3B9Rbg== + +"@esbuild/linux-x64@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.15.tgz#31b93f9c94c195e852c20cd3d1914a68aa619124" + integrity sha512-JsdS0EgEViwuKsw5tiJQo9UdQdUJYuB+Mf6HxtJSPN35vez1hlrNb1KajvKWF5Sa35j17+rW1ECEO9iNrIXbNg== + +"@esbuild/netbsd-x64@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.15.tgz#8da299b3ac6875836ca8cdc1925826498069ac65" + integrity sha512-R6fKjtUysYGym6uXf6qyNephVUQAGtf3n2RCsOST/neIwPqRWcnc3ogcielOd6pT+J0RDR1RGcy0ZY7d3uHVLA== + +"@esbuild/openbsd-x64@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.15.tgz#04a1ec3d4e919714dba68dcf09eeb1228ad0d20c" + integrity sha512-mVD4PGc26b8PI60QaPUltYKeSX0wxuy0AltC+WCTFwvKCq2+OgLP4+fFd+hZXzO2xW1HPKcytZBdjqL6FQFa7w== + +"@esbuild/sunos-x64@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.15.tgz#6694ebe4e16e5cd7dab6505ff7c28f9c1c695ce5" + integrity sha512-U6tYPovOkw3459t2CBwGcFYfFRjivcJJc1WC8Q3funIwX8x4fP+R6xL/QuTPNGOblbq/EUDxj9GU+dWKX0oWlQ== + +"@esbuild/win32-arm64@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.15.tgz#1f95b2564193c8d1fee8f8129a0609728171d500" + integrity sha512-W+Z5F++wgKAleDABemiyXVnzXgvRFs+GVKThSI+mGgleLWluv0D7Diz4oQpgdpNzh4i2nNDzQtWbjJiqutRp6Q== + +"@esbuild/win32-ia32@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.15.tgz#c362b88b3df21916ed7bcf75c6d09c6bf3ae354a" + integrity sha512-Muz/+uGgheShKGqSVS1KsHtCyEzcdOn/W/Xbh6H91Etm+wiIfwZaBn1W58MeGtfI8WA961YMHFYTthBdQs4t+w== + +"@esbuild/win32-x64@0.17.15": + version "0.17.15" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.15.tgz#c2e737f3a201ebff8e2ac2b8e9f246b397ad19b8" + integrity sha512-DjDa9ywLUUmjhV2Y9wUTIF+1XsmuFGvZoCmOWkli1XcNAh5t25cc7fgsCx4Zi/Uurep3TTLyDiKATgGEg61pkA== "@fortawesome/fontawesome-free@^5.15.3": version "5.15.4" @@ -777,33 +777,33 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -esbuild@^0.17.14: - version "0.17.14" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.14.tgz#d61a22de751a3133f3c6c7f9c1c3e231e91a3245" - integrity sha512-vOO5XhmVj/1XQR9NQ1UPq6qvMYL7QFJU57J5fKBKBKxp17uDt5PgxFDb4A2nEiXhr1qQs4x0F5+66hVVw4ruNw== +esbuild@^0.17.15: + version "0.17.15" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.15.tgz#209ebc87cb671ffb79574db93494b10ffaf43cbc" + integrity sha512-LBUV2VsUIc/iD9ME75qhT4aJj0r75abCVS0jakhFzOtR7TQsqQA5w0tZ+KTKnwl3kXE0MhskNdHDh/I5aCR1Zw== optionalDependencies: - "@esbuild/android-arm" "0.17.14" - "@esbuild/android-arm64" "0.17.14" - "@esbuild/android-x64" "0.17.14" - "@esbuild/darwin-arm64" "0.17.14" - "@esbuild/darwin-x64" "0.17.14" - "@esbuild/freebsd-arm64" "0.17.14" - "@esbuild/freebsd-x64" "0.17.14" - "@esbuild/linux-arm" "0.17.14" - "@esbuild/linux-arm64" "0.17.14" - "@esbuild/linux-ia32" "0.17.14" - "@esbuild/linux-loong64" "0.17.14" - "@esbuild/linux-mips64el" "0.17.14" - "@esbuild/linux-ppc64" "0.17.14" - "@esbuild/linux-riscv64" "0.17.14" - "@esbuild/linux-s390x" "0.17.14" - "@esbuild/linux-x64" "0.17.14" - "@esbuild/netbsd-x64" "0.17.14" - "@esbuild/openbsd-x64" "0.17.14" - "@esbuild/sunos-x64" "0.17.14" - "@esbuild/win32-arm64" "0.17.14" - "@esbuild/win32-ia32" "0.17.14" - "@esbuild/win32-x64" "0.17.14" + "@esbuild/android-arm" "0.17.15" + "@esbuild/android-arm64" "0.17.15" + "@esbuild/android-x64" "0.17.15" + "@esbuild/darwin-arm64" "0.17.15" + "@esbuild/darwin-x64" "0.17.15" + "@esbuild/freebsd-arm64" "0.17.15" + "@esbuild/freebsd-x64" "0.17.15" + "@esbuild/linux-arm" "0.17.15" + "@esbuild/linux-arm64" "0.17.15" + "@esbuild/linux-ia32" "0.17.15" + "@esbuild/linux-loong64" "0.17.15" + "@esbuild/linux-mips64el" "0.17.15" + "@esbuild/linux-ppc64" "0.17.15" + "@esbuild/linux-riscv64" "0.17.15" + "@esbuild/linux-s390x" "0.17.15" + "@esbuild/linux-x64" "0.17.15" + "@esbuild/netbsd-x64" "0.17.15" + "@esbuild/openbsd-x64" "0.17.15" + "@esbuild/sunos-x64" "0.17.15" + "@esbuild/win32-arm64" "0.17.15" + "@esbuild/win32-ia32" "0.17.15" + "@esbuild/win32-x64" "0.17.15" ev-emitter@^1.0.0: version "1.1.1" From 90a4d370f0130e585011e898066bab4755b3f1bf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 4 Apr 2023 02:19:38 +0000 Subject: [PATCH 1424/2165] chore(deps): bump ua-parser-js from 1.0.34 to 1.0.35 Bumps [ua-parser-js](https://github.com/faisalman/ua-parser-js) from 1.0.34 to 1.0.35. - [Release notes](https://github.com/faisalman/ua-parser-js/releases) - [Changelog](https://github.com/faisalman/ua-parser-js/blob/master/changelog.md) - [Commits](https://github.com/faisalman/ua-parser-js/compare/1.0.34...1.0.35) --- updated-dependencies: - dependency-name: ua-parser-js dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 25ded7af7..6a8976c83 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "compare-versions": "^5.0.3", "esbuild": "^0.17.15", "sass": "^1.60.0", - "ua-parser-js": "^1.0.34" + "ua-parser-js": "^1.0.35" }, "scripts": { "build": "esbuild app/javascript/*.* --bundle --sourcemap --outdir=app/assets/builds --public-path=assets", diff --git a/yarn.lock b/yarn.lock index aafe64b01..92f8727e6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1558,10 +1558,10 @@ tslib@^2.4.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== -ua-parser-js@^1.0.34: - version "1.0.34" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-1.0.34.tgz#b33f41c415325839f354005d25a2f588be296976" - integrity sha512-K9mwJm/DaB6mRLZfw6q8IMXipcrmuT6yfhYmwhAkuh+81sChuYstYA+znlgaflUPaYUa3odxKPKGw6Vw/lANew== +ua-parser-js@^1.0.35: + version "1.0.35" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-1.0.35.tgz#c4ef44343bc3db0a3cbefdf21822f1b1fc1ab011" + integrity sha512-fKnGuqmTBnIE+/KXSzCn4db8RTigUzw1AN0DmdU6hJovUTbYJKyqj+8Mt1c4VfRDnOVJnENmfYkIPZ946UrSAA== unbox-primitive@^1.0.2: version "1.0.2" From 5ece52a44234d995c403aa55fc0ee6a60dd2ba42 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 5 Apr 2023 21:56:55 +0000 Subject: [PATCH 1425/2165] chore(deps): bump sidekiq from 7.0.7 to 7.0.8 Bumps [sidekiq](https://github.com/sidekiq/sidekiq) from 7.0.7 to 7.0.8. - [Release notes](https://github.com/sidekiq/sidekiq/releases) - [Changelog](https://github.com/sidekiq/sidekiq/blob/main/Changes.md) - [Commits](https://github.com/sidekiq/sidekiq/compare/v7.0.7...v7.0.8) --- updated-dependencies: - dependency-name: sidekiq dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Gemfile b/Gemfile index 5990ec58a..18b06b6cf 100644 --- a/Gemfile +++ b/Gemfile @@ -79,7 +79,7 @@ gem 'rqrcode' # 异步队列 gem 'activejob-status' -gem 'sidekiq', '~> 7.0.7' +gem 'sidekiq', '~> 7.0.8' gem 'sidekiq-scheduler', '~> 5.0.2' gem 'sidekiq-failures', '~> 1.0.4' diff --git a/Gemfile.lock b/Gemfile.lock index 31b8a3a44..32ccdb806 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -118,7 +118,7 @@ GEM chunky_png (1.4.0) coderay (1.1.3) concurrent-ruby (1.2.2) - connection_pool (2.3.0) + connection_pool (2.4.0) crass (1.0.6) cssbundling-rails (1.1.2) railties (>= 6.0.0) @@ -361,7 +361,7 @@ GEM ffi (~> 1.0) redis (5.0.6) redis-client (>= 0.9.0) - redis-client (0.14.0) + redis-client (0.14.1) connection_pool regexp_parser (2.6.1) reline (0.3.3) @@ -409,7 +409,7 @@ GEM sentry-sidekiq (5.8.0) sentry-ruby (~> 5.8.0) sidekiq (>= 3.0) - sidekiq (7.0.7) + sidekiq (7.0.8) concurrent-ruby (< 2) connection_pool (>= 2.3.0) rack (>= 2.2.4) @@ -535,7 +535,7 @@ DEPENDENCIES sentry-rails sentry-ruby sentry-sidekiq - sidekiq (~> 7.0.7) + sidekiq (~> 7.0.8) sidekiq-failures (~> 1.0.4) sidekiq-scheduler (~> 5.0.2) simple_form (~> 5.2) From 4fe15c6814388189980ed8710a8a3ecfa9c64f4e Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 6 Apr 2023 18:51:32 +0800 Subject: [PATCH 1426/2165] chore: update test build action --- .github/workflows/test_docker_build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test_docker_build.yml b/.github/workflows/test_docker_build.yml index 46e5bd5aa..4ebc9197e 100644 --- a/.github/workflows/test_docker_build.yml +++ b/.github/workflows/test_docker_build.yml @@ -27,7 +27,7 @@ jobs: - name: Set Docker Build Date id: build_date - run: echo "::set-output name=value::$(date +'%Y-%m-%d')" + run: echo "BUILD_DATE_TAG=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT - name: Docker metadata id: metadata @@ -47,4 +47,4 @@ jobs: build-args: | REPLACE_CHINA_MIRROR=false VCS_REF=${{ github.sha }} - BUILD_DATE=${{ steps.build_date.outputs.date }} \ No newline at end of file + BUILD_DATE=${{ steps.build_date.outputs.BUILD_DATE_TAG }} From ae219293a129dc30cdce614c5558545e6f9e022c Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 6 Apr 2023 18:58:18 +0800 Subject: [PATCH 1427/2165] chore: update app-info to 3.0.0.beta2 --- Gemfile | 4 ++-- Gemfile.lock | 18 ++++++++++++++---- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/Gemfile b/Gemfile index 18b06b6cf..ea119cfc8 100644 --- a/Gemfile +++ b/Gemfile @@ -92,8 +92,8 @@ gem 'cssbundling-rails', '~> 1.1' gem 'stimulus-rails', '~> 1.2.1' gem 'turbo-rails', '~> 1.4' -# 用于解析 iOS, Android 和 macOS 应用 -gem 'app-info', '~> 2.8.5' +# 用于解析 iOS, Android, macOS 和 Windows 应用 +gem 'app-info', '~> 3.0.0.beta2' # 带缓存的配置库 gem 'rails-settings-cached', '~> 2.8.3' diff --git a/Gemfile.lock b/Gemfile.lock index 32ccdb806..78d359dc2 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -78,15 +78,16 @@ GEM tzinfo (~> 2.0) addressable (2.8.1) public_suffix (>= 2.0.2, < 6.0) - android_parser (2.5.1) + android_parser (2.6.0) rexml (> 3.0) rubyzip (>= 1.0, < 3.0) - app-info (2.8.5) + app-info (3.0.0.beta2) CFPropertyList (>= 2.3.4, < 3.1.0) - android_parser (~> 2.5.1) + android_parser (~> 2.6.0) google-protobuf (>= 3.19.4, < 3.23.0) icns (~> 0.2.0) image_size (>= 1.5, < 3.3) + pedump (~> 0.6.2) ruby-macho (>= 1.4, < 4) rubyzip (>= 1.2, < 3.0) uuidtools (>= 2.1.5, < 2.3.0) @@ -187,6 +188,7 @@ GEM thor (>= 0.16.0) interception (0.5) io-console (0.6.0) + iostruct (0.0.5) irb (1.6.3) reline (>= 0.3.0) jb (0.8.0) @@ -245,6 +247,7 @@ GEM msgpack (1.6.0) multi_json (1.15.0) multi_xml (0.6.0) + multipart-post (2.3.0) net-imap (0.3.4) date net-protocol @@ -290,6 +293,12 @@ GEM parallel (1.22.1) parser (3.1.3.0) ast (~> 2.4.1) + pedump (0.6.5) + awesome_print + iostruct (>= 0.0.4) + multipart-post (>= 2.0.0) + rainbow + zhexdump (>= 0.0.2) pg (1.4.6) pghero (3.3.1) activerecord (>= 6) @@ -476,6 +485,7 @@ GEM websocket-extensions (>= 0.1.0) websocket-extensions (0.1.5) zeitwerk (2.6.7) + zhexdump (0.0.2) PLATFORMS ruby @@ -483,7 +493,7 @@ PLATFORMS DEPENDENCIES active_model_serializers (~> 0.10.13) activejob-status - app-info (~> 2.8.5) + app-info (~> 3.0.0.beta2) awesome_print better_errors binding_of_caller From 5dcb25bcff9726dff6b58aecd7d938d67a448cc2 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Thu, 6 Apr 2023 18:58:38 +0800 Subject: [PATCH 1428/2165] refactor: update appinfo error --- app/controllers/api/apps/upload_controller.rb | 2 +- app/controllers/api/base_controller.rb | 2 +- app/controllers/concerns/exception_handler.rb | 2 +- app/controllers/teardowns_controller.rb | 2 +- app/jobs/teardown_job.rb | 2 +- app/models/release.rb | 13 ++----------- 6 files changed, 7 insertions(+), 16 deletions(-) diff --git a/app/controllers/api/apps/upload_controller.rb b/app/controllers/api/apps/upload_controller.rb index c210fafc8..1a6c3815a 100644 --- a/app/controllers/api/apps/upload_controller.rb +++ b/app/controllers/api/apps/upload_controller.rb @@ -101,7 +101,7 @@ def and_app def parse_scheme_name default_name = t('api.apps.upload.create.adhoc') - return default_name unless app_parser.os == AppInfo::Platform::IOS + return default_name unless app_parser.platform == AppInfo::Platform::IOS t("api.apps.upload.create.#{app_parser.release_type.downcase}", default: default_name) end diff --git a/app/controllers/api/base_controller.rb b/app/controllers/api/base_controller.rb index b5288ce73..7267a66b9 100644 --- a/app/controllers/api/base_controller.rb +++ b/app/controllers/api/base_controller.rb @@ -14,7 +14,7 @@ class Api::BaseController < ActionController::API rescue_from ActiveRecord::RecordNotSaved, ArgumentError, NoMethodError, PG::Error, with: :render_internal_server_error rescue_from ActionController::ParameterMissing, CarrierWave::InvalidParameter, - AppInfo::UnkownFileTypeError, with: :render_missing_params_error + AppInfo::UnknownFileTypeError, with: :render_missing_params_error rescue_from ActionController::UnknownFormat, with: :not_acceptable rescue_from ActionController::InvalidAuthenticityToken, with: :unprocessable_entity diff --git a/app/controllers/concerns/exception_handler.rb b/app/controllers/concerns/exception_handler.rb index 1cb479f46..19bb7f392 100644 --- a/app/controllers/concerns/exception_handler.rb +++ b/app/controllers/concerns/exception_handler.rb @@ -8,7 +8,7 @@ module ExceptionHandler rescue_from ActionController::InvalidAuthenticityToken, with: :unprocessable_entity rescue_from ActionController::UnknownFormat, AppInfo::Error, with: :not_acceptable rescue_from ActionController::ParameterMissing, CarrierWave::InvalidParameter, - JSON::ParserError, AppInfo::UnkownFileTypeError, with: :bad_request + JSON::ParserError, AppInfo::UnknownFileTypeError, with: :bad_request rescue_from Faraday::Error, OpenSSL::SSL::SSLError, StandardError, TinyAppstoreConnect::ConnectAPIError, with: :internal_server_error rescue_from Pundit::NotAuthorizedError, with: :forbidden diff --git a/app/controllers/teardowns_controller.rb b/app/controllers/teardowns_controller.rb index c09916e53..507d750b2 100644 --- a/app/controllers/teardowns_controller.rb +++ b/app/controllers/teardowns_controller.rb @@ -34,7 +34,7 @@ def create t('teardowns.messages.errors.not_found_file', message: e.message) when ActionController::RoutingError e.message - when AppInfo::UnkownFileTypeError + when AppInfo::UnknownFileTypeError t('teardowns.messages.errors.not_support_file_type') when NoMethodError t('teardowns.messages.errors.failed_get_metadata') diff --git a/app/jobs/teardown_job.rb b/app/jobs/teardown_job.rb index d740d4748..ea3f8d3c4 100644 --- a/app/jobs/teardown_job.rb +++ b/app/jobs/teardown_job.rb @@ -9,7 +9,7 @@ def perform(release_id, user_id) metadata = TeardownService.new(file.path).call metadata.update_attribute(:user_id, user_id) if user_id.present? update_release_resouces(release_id, metadata) - rescue AppInfo::UnkownFileTypeError + rescue AppInfo::UnknownFormatError # ignore end diff --git a/app/models/release.rb b/app/models/release.rb index dc4278c4c..e2fb53a28 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -111,17 +111,8 @@ def self.fetch_icon(parser) def self.rescuing_app_parse_errors yield - rescue AppInfo::UnkownFileTypeError, NoMethodError => e - # raise AppInfo::UnkownFileTypeError, t('teardowns.messages.errors.not_support_file_type') - logger.error e.full_message - # rescue NoMethodError => e - # logger.error e.full_message - # Sentry.capture_exception e - # raise AppInfo::Error, t('teardowns.messages.errors.failed_get_metadata') - # rescue => e - # logger.error e.full_message - # Sentry.capture_exception e - # raise AppInfo::Error, t('teardowns.messages.errors.unknown_parse', class: e.class, message: e.message) + rescue e + logger.error e.full_message end private_methods :rescuing_app_parse_errors From 456f735fae2a0cc402915be1967a0d646ac437d6 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 7 Apr 2023 11:46:45 +0800 Subject: [PATCH 1429/2165] =?UTF-8?q?refactor:=20=E5=BA=94=E7=94=A8?= =?UTF-8?q?=E8=A7=A3=E5=8C=85=E8=BF=81=E7=A7=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/teardowns_controller.rb | 2 +- app/jobs/debug_file_teardown_job.rb | 8 +- app/services/teardown_service.rb | 112 ++++++++++-------- app/views/teardowns/_android.html.slim | 4 +- .../teardowns/_signature_certs_part.html.slim | 23 ---- .../teardowns/_signatures_part.html.slim | 8 ++ .../teardowns/_signatures_v1_part.html.slim | 21 ++++ .../_signatures_v1_to_v3_part.html.slim | 55 +++++++++ config/locales/zealot/en.yml | 16 ++- config/locales/zealot/zh-CN.yml | 64 +++------- 10 files changed, 185 insertions(+), 128 deletions(-) delete mode 100644 app/views/teardowns/_signature_certs_part.html.slim create mode 100644 app/views/teardowns/_signatures_part.html.slim create mode 100644 app/views/teardowns/_signatures_v1_part.html.slim create mode 100644 app/views/teardowns/_signatures_v1_to_v3_part.html.slim diff --git a/app/controllers/teardowns_controller.rb b/app/controllers/teardowns_controller.rb index 507d750b2..1481580b7 100644 --- a/app/controllers/teardowns_controller.rb +++ b/app/controllers/teardowns_controller.rb @@ -34,7 +34,7 @@ def create t('teardowns.messages.errors.not_found_file', message: e.message) when ActionController::RoutingError e.message - when AppInfo::UnknownFileTypeError + when AppInfo::UnknownFormatError t('teardowns.messages.errors.not_support_file_type') when NoMethodError t('teardowns.messages.errors.failed_get_metadata') diff --git a/app/jobs/debug_file_teardown_job.rb b/app/jobs/debug_file_teardown_job.rb index e9e9e9d76..d512b4bc5 100644 --- a/app/jobs/debug_file_teardown_job.rb +++ b/app/jobs/debug_file_teardown_job.rb @@ -6,11 +6,11 @@ class DebugFileTeardownJob < ApplicationJob def perform(debug_file, user_id = nil) parser = AppInfo.parse(debug_file.file.path) - case parser.file_type - when AppInfo::Platform::DSYM + case parser.format + when AppInfo::Format::DSYM update_debug_file_version(debug_file, parser) parse_dsym(debug_file, parser) - when AppInfo::Platform::PROGUARD + when AppInfo::Format::PROGUARD update_debug_file_version(debug_file, parser) parse_proguard(debug_file, parser) end @@ -45,7 +45,7 @@ def parse_dsym(debug_file, parser) def parse_proguard(debug_file, parser) debug_file.metadata.find_or_create_by(uuid: parser.uuid) do |metadata| - metadata.type = 'proguard' + metadata.type = parser.format metadata.data = { files: files(parser) } end end diff --git a/app/services/teardown_service.rb b/app/services/teardown_service.rb index 398ed761f..df3f7e1eb 100644 --- a/app/services/teardown_service.rb +++ b/app/services/teardown_service.rb @@ -5,15 +5,13 @@ class TeardownService attr_reader :file - SUPPORTED_TYPES = %i[apk aab ipa mobileprovision macos] - def initialize(file) @file = file end def call file_type = AppInfo.file_type(file) - unless SUPPORTED_TYPES.include?(file_type) + if file_type == AppInfo::Format::UNKNOWN raise ActionController::UnknownFormat, t('teardowns.messages.errors.not_support_file_type') end @@ -28,24 +26,24 @@ def process return metadata unless metadata.new_record? parser = AppInfo.parse(file) - if parser.respond_to?(:os) - case parser.os - when AppInfo::Platform::IOS - process_ios(parser, metadata) - when AppInfo::Platform::ANDROID - process_android(parser, metadata) - when AppInfo::Platform::MACOS - process_macos(parser, metadata) - end - parser.clear! - elsif parser.is_a?(AppInfo::MobileProvision) + if parser.format == AppInfo::Format::MOBILEPROVISION metadata.name = parser.app_name metadata.platform = :mobileprovision - metadata.device = parser.platform + metadata.device = parser.device metadata.release_type = parser.type metadata.size = File.size(file) process_mobileprovision(parser, metadata) + else + case parser.opera_system + when AppInfo::OperaSystem::IOS + process_ios(parser, metadata) + when AppInfo::OperaSystem::ANDROID + process_android(parser, metadata) + when AppInfo::OperaSystem::MACOS + process_macos(parser, metadata) + end + parser.clear! end metadata.save!(validate: false) @@ -54,8 +52,8 @@ def process def process_app_common(parser, metadata) metadata.name = parser.name - metadata.platform = parser.os.downcase - metadata.device = parser.device_type + metadata.platform = parser.opera_system + metadata.device = parser.device metadata.release_version = parser.release_version metadata.build_version = parser.build_version metadata.size = parser.size @@ -82,19 +80,39 @@ def process_android(parser, metadata) end def process_signature_certs(parser, metadata) - return unless certificates = parser.certificates + metadata.developer_certs = parser.signatures.each_with_object([]) do |sign, certs| + signature = { scheme: sign[:version] } + signature[:verified] = sign[:verified] + signature[:certificates] = sign[:certificates]&.each_with_object([]) do |cert, obj| + data = { + version: cert.version, + serial: { + number: cert.serial, + hex: cert.serial(16, prefix: '0x'), + }, + format: cert.format, + digest: cert.digest, + algorithem: cert.algorithm, + subject: cert.subject(format: :to_a), + issuer: cert.issuer(format: :to_a), + created_at: cert.created_at, + expired_at: cert.expired_at, + fingerprint: { + md5: cert.fingerprint(:md5, delimiter: ':'), + sha1: cert.fingerprint(:sha1, delimiter: ':'), + sha256: cert.fingerprint(:sha256, delimiter: ':'), + } + } + data[:length] = begin + cert.size + rescue NotImplementedError + nil + end - metadata.developer_certs = certificates.each_with_object([]) do |cert, obj| - cert = cert.certificate - obj << { - version: "v#{cert.version + 1}", - subject: cert.subject.to_a.map {|k,v,_| [k, v] }.to_h, - issuer: cert.issuer.to_a.map {|k,v,_| [k, v] }.to_h, - created_at: cert.not_before, - expired_at: cert.not_after, - algorithem: cert.signature_algorithm, - public_key_type: cert.public_key.class.name.split('::').last - } + obj << data + end + + certs << signature end end @@ -157,39 +175,39 @@ def process_mobileprovision_metadata(mobileprovision, metadata) end def process_developer_certs(mobileprovision, metadata) - if developer_certs = mobileprovision.developer_certs - metadata.developer_certs = developer_certs.each_with_object([]) do |cert, obj| - obj << { - name: cert.name, - created_at: cert.created_date, - expired_at: cert.expired_date - } - end + return unless certificates = mobileprovision.certificates + + metadata.developer_certs = certificates.each_with_object([]) do |cert, obj| + obj << { + name: cert.name, + created_at: cert.created_date, + expired_at: cert.expired_date + } end end def process_entitlements(mobileprovision, metadata) - if entitlements = mobileprovision.Entitlements - metadata.entitlements = entitlements.sort.each_with_object({}) do |e, obj| - key, value = e + return unless entitlements = mobileprovision.Entitlements - obj[key] = value - end + metadata.entitlements = entitlements.sort.each_with_object({}) do |ent, obj| + key, value = ent + obj[key] = value end end def process_enabled_capabilities(mobileprovision, metadata) - if capabilities = mobileprovision.enabled_capabilities - metadata.capabilities = capabilities.sort - end + return unless capabilities = mobileprovision.enabled_capabilities + + metadata.capabilities = capabilities.sort end def checksum(file) - @checksum ||= begin + @checksum ||= lambda { require 'digest' + checksum = Digest::SHA1.hexdigest(File.read(file)) checksum = checksum.encode('UTF-8') if checksum.respond_to?(:encode) checksum - end + }.call end end diff --git a/app/views/teardowns/_android.html.slim b/app/views/teardowns/_android.html.slim index 00789dcb0..21d4b1e91 100644 --- a/app/views/teardowns/_android.html.slim +++ b/app/views/teardowns/_android.html.slim @@ -39,7 +39,9 @@ ruby: = render 'card', title: 'Activities', raw: @metadata.activities .col-md-6 - == render 'signature_certs_part', certificates: @metadata.developer_certs + - if @metadata.developer_certs.present? + == render 'signatures_part', signatures: @metadata.developer_certs + == render 'card', title: 'Deep Links', raw: @metadata.deep_links == render 'card', title: 'URL Schemes', raw: @metadata.url_schemes == render 'card', title: 'Features', raw: @metadata.features diff --git a/app/views/teardowns/_signature_certs_part.html.slim b/app/views/teardowns/_signature_certs_part.html.slim deleted file mode 100644 index 95a79da59..000000000 --- a/app/views/teardowns/_signature_certs_part.html.slim +++ /dev/null @@ -1,23 +0,0 @@ -- if certificates.present? - .card - .card-header - h3.card-title - = t('teardowns.show.developer_certs_list', count: @metadata.developer_certs.size) - .card-tools - button.btn.btn-tool data-card-widget="collapse" - i.fas.fa-minus - .card-body.card-comments.pb-2 - - certificates.each_with_index do |cert, i| - .card-comment - .comment-text.ml-0 - span.username - = t('teardowns.show.cert', index: "#{i + 1} (#{cert['public_key_type']})") - span.text-muted.float-right - = t('teardowns.show.cert_expired_at', date: cert['expired_at']) - ul.content - li - span.key = t('teardowns.show.cert_issuer') - span.value = cert['issuer'].map { |k, v| "#{k}=#{v}" }.join(', ') - li - span.key = t('teardowns.show.cert_algorithem') - span.value = cert['algorithem'] diff --git a/app/views/teardowns/_signatures_part.html.slim b/app/views/teardowns/_signatures_part.html.slim new file mode 100644 index 000000000..e661cd66f --- /dev/null +++ b/app/views/teardowns/_signatures_part.html.slim @@ -0,0 +1,8 @@ + +.card + - if android_v1_signature?(signatures) + / v1 签名 + == render 'signatures_v1_part', signatures: signatures + - else + / v1-v3 签名 + == render 'signatures_v1_to_v3_part', signatures: signatures diff --git a/app/views/teardowns/_signatures_v1_part.html.slim b/app/views/teardowns/_signatures_v1_part.html.slim new file mode 100644 index 000000000..2eafddd94 --- /dev/null +++ b/app/views/teardowns/_signatures_v1_part.html.slim @@ -0,0 +1,21 @@ +.card-header + h3.card-title + = t('teardowns.show.developer_certs_list', count: @metadata.developer_certs.size) + .card-tools + button.btn.btn-tool data-card-widget="collapse" + i.fas.fa-minus +.card-body.card-comments.pb-2 + - signatures.each_with_index do |cert, i| + .card-comment + .comment-text.ml-0 + span.username + = t('teardowns.show.cert', index: "#{i + 1} (#{cert['public_key_type']})") + span.text-muted.float-right + = t('teardowns.show.cert_expired_at', date: cert['expired_at']) + ul.content + li + span.key = t('teardowns.show.cert_issuer') + span.value = cert['issuer'].map { |k, v| "#{k}=#{v}" }.join(', ') + li + span.key = t('teardowns.show.cert_algorithem') + span.value = cert['algorithem'] diff --git a/app/views/teardowns/_signatures_v1_to_v3_part.html.slim b/app/views/teardowns/_signatures_v1_to_v3_part.html.slim new file mode 100644 index 000000000..7ed3eccaa --- /dev/null +++ b/app/views/teardowns/_signatures_v1_to_v3_part.html.slim @@ -0,0 +1,55 @@ +.card-header + h3.card-title + = t('teardowns.show.signature_title', count: @metadata.developer_certs.size) + .card-tools + button.btn.btn-tool data-card-widget="collapse" + i.fas.fa-minus +.card-body.card-comments.pb-2 + - signatures.each_with_index do |signature, i| + .card-comment + .comment-text.ml-0 + span.username + = t('teardowns.show.signature', scheme: "v#{signature['scheme']}") + span.text-muted.float-right + - if signature['certificates'].present? + = t('teardowns.show.signature_unverified') + - else + = t('teardowns.show.signature_not_found') + - if signature['certificates'].present? + - signature['certificates'].each_with_index do |certificate, i| + span.username = t('teardowns.show.cert', index: "#{i + 1}") + ul.content + li + span.key = t('teardowns.show.cert_serial') + span.value = "#{certificate['serial']['number']} (#{certificate['serial']['hex']})" + li + span.key = t('teardowns.show.cert_version') + span.value = certificate['version'] + li + span.key = t('teardowns.show.cert_algorithem') + span.value = certificate['algorithem'] + li + span.key = t('teardowns.show.cert_digest') + span.value = certificate['digest'] + - if certificate['length'].present? + li + span.key = t('teardowns.show.cert_length') + span.value = certificate['length'] + li + span.key = t('teardowns.show.cert_issuer') + span.value = certificate_name(certificate['issuer']) + li + span.key = t('teardowns.show.cert_created') + span.value = certificate['created_at'] + li + span.key = t('teardowns.show.cert_expired') + span.value = t('teardowns.show.cert_expired_at', date: certificate['expired_at']) + li + span.key = t('teardowns.show.cert_fignger', digest: 'SHA-256') + span.value = certificate['fingerprint']['sha256'] + li + span.key = t('teardowns.show.cert_fignger', digest: 'SHA-1') + span.value = certificate['fingerprint']['sha1'] + li + span.key = t('teardowns.show.cert_fignger', digest: 'MD5') + span.value = certificate['fingerprint']['md5'] diff --git a/config/locales/zealot/en.yml b/config/locales/zealot/en.yml index bb9e333ed..d09d093b0 100644 --- a/config/locales/zealot/en.yml +++ b/config/locales/zealot/en.yml @@ -529,7 +529,19 @@ en: cert_expired_at: 'Expired at %{date}' cert_issuer: Issuer cert_algorithem: Signature Algorithem - cert_subject: 主题 + cert_version: Version + cert_serial: Serial + cert_issuer: Issuer + cert_algorithem: Algorithem + cert_subject: Subject + cert_digest: Digest + cert_length: Length + signature_title: 'Signatures (%{count})' + signature: 'Scheme %{scheme}' + cert_fignger: 'Fingerprint %{digest}' + signature_not_found: Not found + signature_verified: 'Verified' + signature_unverified: 'WIP' mobileprovision: Mobileprovision uuid: UUID mobileprovision_name: Name (Type) @@ -604,7 +616,7 @@ en: not_found_file: 'Not found debug file: %{message}' not_support_file_type: Not support file type failed_get_metadata: Failed to parse, make sure supported file type and unhardened - unknown_parse: 'Unknown parse error [%{class}]: %{message}' + unknown_parse: 'Unknown parse error: %{message} (%{class})' choose_supported_file_type: 'Choose support file type: .apk/.abb/.ipa/.mobileprovision or macOS.app.zip file' udid: title: Fetch UDID diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index eb75061d0..2c4a290c0 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -6,14 +6,11 @@ zh-CN: user_profile: 详情 log_out: 登出 log_in: 登录 - intro: title: 移动应用上传竟然如此简单、移动 App 应用分发系统 description: 持续集成一切跟应用有关事情,接入 CI 系统一切自动化处理,企业多年实战经验,独立部署提供企业打包分发流程、上传应用全套流程方案 - links: back_to_list: 返回列表 - admin: users: title: 用户 @@ -38,7 +35,6 @@ zh-CN: title: 用户信息 active_link: 激活链接 active_link_tip: 若发送邮件设置错误或邀请用户没有收到激活邮件,可通过本链接激活。 - web_hooks: title: 网络钩子 index: @@ -62,7 +58,6 @@ zh-CN: enable: 网络钩子已经成功启用 disable: 网络钩子已经取消启用 test: 网络钩子请求测试已发送 - apple_keys: title: 苹果开发者 new: @@ -95,12 +90,10 @@ zh-CN: udid_related_apps: 关联应用 udid_created_at: 创建时间 create: - successful: 创建成功并成功同步开发者的相关信息 - + successful: 创建成功并成功同步开发者的相关信息\ apple_teams: edit: title: 更新苹果开发者名称 - settings: title: 系统设置 index: @@ -112,54 +105,43 @@ zh-CN: title: 编辑设置 edit: title: 编辑设置 - enable: 开启 disable: 关闭 validates: '条件:%{value}' - general: 通用配置 site_https: 启用 HTTPS site_title: 网站标题 site_locale: 网站语言 site_domain: 网站域名 site_appearance: 网站外观 - presets: 预设值 preset_schemes: 应用类型模板 preset_role: 新用户权限 preset_install_limited: 应用内安装限制 preset_install_limited_hint: 特定手机应用打开无法进行安装操作(比如:微信、钉钉等),通过设置 User Agent 关键词开启使用浏览器打开安装帮助 - switch_mode: 模式开关 registrations_mode: 注册模式 guest_mode: 游客模式 demo_mode: 演示模式 demo_mode_hint: 开启演示模式会触发:每天定时恢复默认数据;无法编辑或删除默认管理员;隐私数据会安全化显示且无法编辑 - third_party_auth: 第三方登录 ldap: LDAP feishu: 飞书 gitlab: Gitlab google_oauth: Google OAuth - backup: 备份 # misc: 杂项 - stmp: 邮件配置 mailer_default_from: 默认邮件发件地址 mailer_default_to: 默认邮件发件人 mailer_options: 发件服务器配置 - analytics: 统计 google_analytics_id: Google 统计 - archives: 上传文件 keep_uploads: 永久保存上传应用版本 - empty_value: 空值 no_editable_key: 当前设置为可读,无法修改 reset: 恢复默认值 - system_info: title: 环境信息 index: @@ -189,7 +171,6 @@ zh-CN: dev_new_version: 发现新版本 (开发环境始终显示) messages: file_permissions_tip: 如果你看到下面路径有显示红色异常图标那就是表面该路径无法写入可能会造成 Zealot 无法正常使用或发生异常情况 - backups: title: 数据备份 index: @@ -235,24 +216,20 @@ zh-CN: success: 备份文件成功删除 parse_schedule: invalid_expression: 表达式无法解析 - background_jobs: title: 后台任务 index: title: :'admin.background_jobs.title' - database_analytics: title: 数据库分析 index: title: :'admin.database_analytics.title' - logs: title: 服务日志 index: title: :'admin.logs.title' loading: 日志加载中 ... error_message: 日志获取失败,返回状态码: - dashboard: title: 控制台 analytics: @@ -269,7 +246,6 @@ zh-CN: upload_full_version_release: 上传了新版本 %{release_version} (%{build_version}) upload_auto_version_release: 上传了新版本 %{version} not_found: 没有任何上传,快快上传吧。 - apps: title: 应用 index: @@ -314,7 +290,6 @@ zh-CN: delete_app: 确定删除【%{name}】应用和已关联的类型、渠道以及已上传的应用数据? delete_app_scheme: 确定删除【%{name}】类型和渠道以及已上传的应用数据? delete_app_channel: 确定删除【%{name}】渠道和已上传的应用数据? - schemes: title: 应用类型 show: @@ -323,7 +298,6 @@ zh-CN: title: '%{app}新建类型' edit: title: '%{app}编辑类型' - channels: title: 应用渠道 subtitle: '%{total_scheme} 类型 %{total_channel} 渠道' @@ -377,7 +351,6 @@ zh-CN: destroy: :'web_hooks.messages.confirm.destroy' errors: not_found_channel: 没有找到应用渠道 %{id},跳转至应用列表 - releases: title: 应用版本 sources: @@ -392,7 +365,6 @@ zh-CN: not_latest_release: 当前不是最新版本! released_new_version: '版本 %{version} 于%{time}发布了,%{link}。' view_latest_version: 查看最新版本 - name: 应用 version: 上传版本 device_type: 平台 @@ -413,17 +385,14 @@ zh-CN: missing_file: 遗失文件不可安装或下载 more: 更多上传 cannot_install_or_untrusted_enterprise_developer: 桌面没有发现下载的应用或遇到 "未受信任的企业级开发者" 错误? - last_ten_uploads: 最近 10 次上传 upload_full_version_release: :'dashboard.timeline.upload_full_version_release' upload_auto_version_release: :'dashboard.timeline.upload_auto_version_release' changelog: 更新日志 devices: '%{count} 台测试设备 (UDID)' sync_devices_feature: 推荐使用%{link}同步设备名称 - qrcode: 二维码 scan_qrcode_with_any_suppprted_app: 任何支持二维码识别的 App 均可 - major_versions: :'channels.show.major_versions' view_detail: 渠道详情 new: @@ -463,7 +432,6 @@ zh-CN: not_found_really: 您访问的应用版本真的不存在 invalid_password: 密码错误,请重新输入 bundle_id_not_matched: '应用的包名 %{got} 和约束的包名 %{expect} 无法匹配' - debug_files: title: 调试文件 index: @@ -509,7 +477,6 @@ zh-CN: body: 一旦删除数据将永久无法找回或恢复,请慎重操作! ok: 我心已决 cancel: 还是算了 - teardowns: title: 应用解包 new: @@ -533,7 +500,6 @@ zh-CN: not_found: title: 没有发现任何应用解包! body_html: 点击右上角的 新建应用解包。 - show: title: '%{name} %{release_version} (%{build_version}) 解包信息' expired_in: 还有%{time}左右过期 @@ -542,7 +508,6 @@ zh-CN: related_app: 关联提醒 related_body: 当前解包关联的应用是 unknow_app_name: 未知 - metadata: 应用信息 app_name: 名称 version: 版本 @@ -558,16 +523,27 @@ zh-CN: developer_certs_list: '开发者证书 (%{count})' cert: '证书 %{index}' cert_expired_at: '%{date} 到期' + cert_created: 创建日期 + cert_expired: 失效日期 + cert_version: 版本 + cert_serial: 序列 cert_issuer: 发布人 cert_algorithem: 签名算法 cert_subject: 主题 + cert_digest: 数字摘要 + cert_length: 长度 + signature_title: '应用签名 (%{count})' + signature: '签名版本 %{scheme}' + cert_fignger: '签名指纹 %{digest}' + signature_not_found: 签名不存在 + signature_verified: '签名校验通过' + signature_unverified: '签名校验待开发' mobileprovision: 描述文件 uuid: UUID mobileprovision_name: 名称 (类型) team_id: 团队名称 (Team ID) created_at: 创建时间 expired_at: 过期时间 - help: title: 帮助中心 body_html: | @@ -637,9 +613,8 @@ zh-CN: not_found_file: '无法找到解包文件: %{message}' not_support_file_type: 应用的文件类型不支持 failed_get_metadata: 应用解析异常,请确保是支持的文件类型且没有安全加固处理 - unknown_parse: '上传应用解析发现未知异常,原始错误 [%{class}]: %{message}' + unknown_parse: '上传应用解析发现未知异常: %{message} (%{class})' choose_supported_file_type: 请选择需要解包的 .apk/.aab/.ipa/.mobileprovision 或 macOS.app.zip 文件 - udid: title: 设备 UDID index: @@ -689,7 +664,6 @@ zh-CN: register_device: 注册本设备 related_apps_not_found_with_registered_device: 本设备是通过其他设备同步的方式被注册,但您的设备还没有关联的应用上传。 related_apps_not_found: 当前设备可能并未未注册或是关联到测试的应用还未上传到本服务 - install: title: Zealot 获取设备 UDID description: | @@ -712,7 +686,6 @@ zh-CN: parse_done_and_refreshing: '解析完成,页面正在刷新 ...' confirm: destroy: 确定删除? - settings: title: :'admin.settings.title' preset_schemes: @@ -730,7 +703,6 @@ zh-CN: light: 浅色 dark: 深色 auto: 随系统自动 - download: releases: show: @@ -738,7 +710,6 @@ zh-CN: debug_files: show: not_found: 找不到调试文件,无法提供下载服务 - api: unauthorized_channel_key: 无效的应用渠道 Key unauthorized_token: 未授权用户 token @@ -761,7 +732,6 @@ zh-CN: jenkins: build: failed_request: 构建请求失败,请重新尝试 - demo: app_name1: 默认应用 app_name2: 默认 Android 应用 @@ -825,7 +795,6 @@ zh-CN: goback_title: 上级页面 homepage_title: 首页 unknown_file_type: 无法正常解析应用的类型,目前仅支持 iOS、Android 和使用 Zip 压缩的 macOS App - active_job: debug_file: success: 调试文件 %{id} 解析完成,需要手动刷新页面才能看到哟 @@ -835,7 +804,6 @@ zh-CN: success: '%{key} 备份创建完成' failures: max_keeps_limited: '%{key} 备份设置最大限制值为零' - activerecord: attributes: channel: @@ -867,12 +835,10 @@ zh-CN: attributes: schedule: invalid: 表达式格式错误 - user_mailer: omniauth_welcome_email: subject: 欢迎使用 %{title} default_password: 您已经使用第三方登录成功授权注册了 Zealot 账号,系统随机生成了默认的密码: - devise: confirmations: new: @@ -898,7 +864,6 @@ zh-CN: feishu: 飞书 google: ' Google ' gitlab: ' Gitlab ' - helpers: submit: user: @@ -930,7 +895,6 @@ zh-CN: backup: create: 创建备份 update: 更新备份 - views: pagination: truncate: ... From 9371153b95692fef11d96813063099302aae2037 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 7 Apr 2023 12:19:57 +0800 Subject: [PATCH 1430/2165] =?UTF-8?q?fix:=20=E6=97=A0=E6=B3=95=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E8=A7=A3=E5=8C=85=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/teardowns/_list.html.slim | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/views/teardowns/_list.html.slim b/app/views/teardowns/_list.html.slim index b1277c2d4..7e27da632 100644 --- a/app/views/teardowns/_list.html.slim +++ b/app/views/teardowns/_list.html.slim @@ -32,7 +32,8 @@ - if user_signed_in? td - a.btn.btn-tool href="#{teardown_path(md)}" data-confirm="#{t('teardowns.messages.confirm.destroy')}" data-method="delete" + = button_to teardown_path(md), method: :delete, class: 'btn btn-tool', \ + data: { confirm: t('teardowns.messages.confirm.destroy'), turbo_confirm: t('teardowns.messages.confirm.destroy') } do i.fas.fa-trash-alt - if @metadata.total_pages > 1 From 08e9c994bbcc65c5bcb253fde3d57428730a8532 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 7 Apr 2023 16:59:57 +0800 Subject: [PATCH 1431/2165] =?UTF-8?q?feat(web):=20=E6=94=AF=E6=8C=81=20Win?= =?UTF-8?q?dows=20=E5=BA=94=E7=94=A8=E8=A7=A3=E6=9E=90=E5=92=8C=E5=B1=95?= =?UTF-8?q?=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 2 +- Gemfile | 2 +- Gemfile.lock | 26 +++++----- app/controllers/api/apps/upload_controller.rb | 28 ++++++----- app/controllers/api/base_controller.rb | 2 +- app/controllers/concerns/exception_handler.rb | 4 +- app/controllers/releases_controller.rb | 2 +- app/controllers/teardowns_controller.rb | 10 ++-- app/helpers/application_helper.rb | 34 +++++++++++-- app/helpers/apps_helper.rb | 8 +++- app/helpers/teardown_helper.rb | 8 ++++ app/models/metadatum.rb | 8 +++- app/models/release.rb | 42 ++++++++++------ app/services/teardown_service.rb | 48 ++++++++++++++++--- app/uploaders/app_file_uploader.rb | 16 ------- app/uploaders/app_icon_uploader.rb | 26 +++------- app/views/channels/_activity.html.slim | 4 +- app/views/channels/_metadata.html.slim | 2 +- app/views/channels/filters/_list.slim | 18 +++---- .../dashboards/_recently_upload.html.slim | 4 +- app/views/debug_files/_debug_file.html.slim | 4 +- app/views/releases/body/_activity.html.slim | 4 +- app/views/releases/body/_metadata.html.slim | 6 ++- .../body/_new_release_callout.html.slim | 2 +- app/views/teardowns/_android.html.slim | 8 ++-- app/views/teardowns/_devices_part.html.slim | 4 +- app/views/teardowns/_imports_part.slim | 12 +++++ app/views/teardowns/_ios.html.slim | 6 ++- app/views/teardowns/_list.html.slim | 13 +++-- app/views/teardowns/_macos.html.slim | 8 ++-- .../teardowns/_mobileprovision_part.html.slim | 2 +- app/views/teardowns/_windows.html.slim | 46 ++++++++++++++++++ app/views/udid/_apps.html.slim | 4 +- config/locales/zealot/zh-CN.yml | 17 +++++-- ...metadata_column_platform_to_string_type.rb | 5 ++ ...407043735_remove_metadata_platform_enum.rb | 13 +++++ db/schema.rb | 8 +--- 37 files changed, 321 insertions(+), 135 deletions(-) create mode 100644 app/views/teardowns/_imports_part.slim create mode 100644 app/views/teardowns/_windows.html.slim create mode 100644 db/migrate/20230407043515_change_metadata_column_platform_to_string_type.rb create mode 100644 db/migrate/20230407043735_remove_metadata_platform_enum.rb diff --git a/Dockerfile b/Dockerfile index 3c304950d..132528cbe 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,7 @@ FROM ruby:3.0-alpine as builder ARG BUILD_PACKAGES="build-base libxml2 libxslt git" -ARG DEV_PACKAGES="libxml2-dev libxslt-dev yaml-dev postgresql-dev nodejs npm yarn libwebp-dev libpng-dev tiff-dev gcompat" +ARG DEV_PACKAGES="libxml2-dev libxslt-dev yaml-dev postgresql-dev nodejs npm yarn imagemagick-dev libwebp-dev libpng-dev tiff-dev gcompat" ARG RUBY_PACKAGES="tzdata" ARG REPLACE_CHINA_MIRROR="true" diff --git a/Gemfile b/Gemfile index ea119cfc8..4bd59c789 100644 --- a/Gemfile +++ b/Gemfile @@ -93,7 +93,7 @@ gem 'stimulus-rails', '~> 1.2.1' gem 'turbo-rails', '~> 1.4' # 用于解析 iOS, Android, macOS 和 Windows 应用 -gem 'app-info', '~> 3.0.0.beta2' +gem 'app-info', path: '/Users/icyleaf/Development/ruby/app_info' # , '~> 3.0.0.beta2' # 带缓存的配置库 gem 'rails-settings-cached', '~> 2.8.3' diff --git a/Gemfile.lock b/Gemfile.lock index 78d359dc2..2d812e692 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,3 +1,17 @@ +PATH + remote: /Users/icyleaf/Development/ruby/app_info + specs: + app-info (3.0.0.beta3) + CFPropertyList (>= 2.3.4, < 3.1.0) + android_parser (~> 2.6.0) + google-protobuf (>= 3.19.4, < 3.23.0) + icns (~> 0.2.0) + image_size (>= 1.5, < 3.3) + pedump (~> 0.6.2) + ruby-macho (>= 1.4, < 4) + rubyzip (>= 1.2, < 3.0) + uuidtools (>= 2.1.5, < 2.3.0) + GEM remote: https://rubygems.org/ specs: @@ -81,16 +95,6 @@ GEM android_parser (2.6.0) rexml (> 3.0) rubyzip (>= 1.0, < 3.0) - app-info (3.0.0.beta2) - CFPropertyList (>= 2.3.4, < 3.1.0) - android_parser (~> 2.6.0) - google-protobuf (>= 3.19.4, < 3.23.0) - icns (~> 0.2.0) - image_size (>= 1.5, < 3.3) - pedump (~> 0.6.2) - ruby-macho (>= 1.4, < 4) - rubyzip (>= 1.2, < 3.0) - uuidtools (>= 2.1.5, < 2.3.0) ast (2.4.2) awesome_print (1.9.2) bcrypt (3.1.18) @@ -493,7 +497,7 @@ PLATFORMS DEPENDENCIES active_model_serializers (~> 0.10.13) activejob-status - app-info (~> 3.0.0.beta2) + app-info! awesome_print better_errors binding_of_caller diff --git a/app/controllers/api/apps/upload_controller.rb b/app/controllers/api/apps/upload_controller.rb index 1a6c3815a..5901d7c69 100644 --- a/app/controllers/api/apps/upload_controller.rb +++ b/app/controllers/api/apps/upload_controller.rb @@ -2,6 +2,7 @@ class Api::Apps::UploadController < Api::BaseController before_action :validate_user_token + before_action :set_parser before_action :set_channel # Upload an App @@ -41,14 +42,17 @@ def create_or_update_release # 创建 App 并创建新版本 def create_new_app_build + # TODO: i18n 需要本地化 + raise AppInfo::UnknownFormatError, t('releases.messages.errors.app_should_be_parsed_requires') unless @app_parser + create_release with_channel and_scheme and_app end # 使用现有 App 创建新版本 def create_build_from_exist_app - message = t('releases.messages.errors.bundle_id_not_matched', got: app_parser.bundle_id, + message = t('releases.messages.errors.bundle_id_not_matched', got: @app_parser.bundle_id, expect: @channel.bundle_id) - raise TypeError, message unless @channel.bundle_id_matched? app_parser.bundle_id + raise TypeError, message unless @channel.bundle_id_matched? @app_parser.bundle_id create_release with_updated_channel end @@ -74,14 +78,14 @@ def with_updated_channel end def create_release(channel) - @release = channel.releases.upload_file(release_params, app_parser, 'api') + @release = channel.releases.upload_file(release_params, @app_parser, 'api') @release.save! end def with_channel(scheme) - @channel = scheme.channels.find_or_create_by channel_params do |channel| - channel.name = app_parser.os - channel.device_type = app_parser.os + @channel = scheme.channels.find_or_create_by(channel_params) do |channel| + channel.name = @app_parser.platform + channel.device_type = @app_parser.platform end end @@ -92,7 +96,7 @@ def and_scheme(app) def and_app permitted = params.permit :name - permitted[:name] ||= app_parser.name + permitted[:name] ||= @app_parser.name App.find_or_create_by permitted do |app| app.users << @user @@ -101,9 +105,9 @@ def and_app def parse_scheme_name default_name = t('api.apps.upload.create.adhoc') - return default_name unless app_parser.platform == AppInfo::Platform::IOS + return default_name unless @app_parser.platform == AppInfo::Platform::IOS - t("api.apps.upload.create.#{app_parser.release_type.downcase}", default: default_name) + t("api.apps.upload.create.#{@app_parser.release_type.downcase}", default: default_name) end def release_params @@ -117,8 +121,10 @@ def channel_params params.permit(:slug, :password, :git_url) end - def app_parser - @app_parser ||= AppInfo.parse(params[:file].path) + def set_parser + @app_parser = AppInfo.parse(params[:file].path) + rescue AppInfo::UnknownFormatError + @app_parser = nil end def set_channel diff --git a/app/controllers/api/base_controller.rb b/app/controllers/api/base_controller.rb index 7267a66b9..5de9de1dc 100644 --- a/app/controllers/api/base_controller.rb +++ b/app/controllers/api/base_controller.rb @@ -14,7 +14,7 @@ class Api::BaseController < ActionController::API rescue_from ActiveRecord::RecordNotSaved, ArgumentError, NoMethodError, PG::Error, with: :render_internal_server_error rescue_from ActionController::ParameterMissing, CarrierWave::InvalidParameter, - AppInfo::UnknownFileTypeError, with: :render_missing_params_error + AppInfo::UnknownFormatError, with: :render_missing_params_error rescue_from ActionController::UnknownFormat, with: :not_acceptable rescue_from ActionController::InvalidAuthenticityToken, with: :unprocessable_entity diff --git a/app/controllers/concerns/exception_handler.rb b/app/controllers/concerns/exception_handler.rb index 19bb7f392..f9616e761 100644 --- a/app/controllers/concerns/exception_handler.rb +++ b/app/controllers/concerns/exception_handler.rb @@ -8,8 +8,8 @@ module ExceptionHandler rescue_from ActionController::InvalidAuthenticityToken, with: :unprocessable_entity rescue_from ActionController::UnknownFormat, AppInfo::Error, with: :not_acceptable rescue_from ActionController::ParameterMissing, CarrierWave::InvalidParameter, - JSON::ParserError, AppInfo::UnknownFileTypeError, with: :bad_request - rescue_from Faraday::Error, OpenSSL::SSL::SSLError, StandardError, + JSON::ParserError, AppInfo::UnknownFormatError, with: :bad_request + rescue_from Faraday::Error, OpenSSL::SSL::SSLError, TinyAppstoreConnect::ConnectAPIError, with: :internal_server_error rescue_from Pundit::NotAuthorizedError, with: :forbidden end diff --git a/app/controllers/releases_controller.rb b/app/controllers/releases_controller.rb index 4aa49391e..b90aab20c 100644 --- a/app/controllers/releases_controller.rb +++ b/app/controllers/releases_controller.rb @@ -36,7 +36,7 @@ def create # 触发异步任务 @release.channel.perform_web_hook('upload_events', current_user.id) - @release.perform_teardown_job(current_user.id) if @release.bundle_id.present? + @release.perform_teardown_job(current_user.id) message = t('activerecord.success.create', key: "#{t('releases.title')}") redirect_to channel_release_path(@channel, @release), notice: message diff --git a/app/controllers/teardowns_controller.rb b/app/controllers/teardowns_controller.rb index 1481580b7..a39861016 100644 --- a/app/controllers/teardowns_controller.rb +++ b/app/controllers/teardowns_controller.rb @@ -13,9 +13,13 @@ def index def show authorize @metadata - @title = t('.title', name: @metadata.name, - release_version: @metadata.release_version, - build_version: @metadata.build_version) + + # Windows 应用会存在名称,版本号全无的情况 + name = @metadata.name || @metadata.id + version = @metadata.release_version + version += " (#{@metadata.build_version})" if @metadata.build_version.present? + + @title = t('.title', name: "#{name} #{version}") end def new diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 36ca38d10..00ca16b9c 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -55,8 +55,8 @@ def active_class(link_paths, class_name = 'active') is_current ? class_name : '' end - def device_name(device_type) - case device_type.downcase + def platform_name(platform) + case platform.downcase when 'ios' 'iOS' when 'iphone' @@ -71,8 +71,36 @@ def device_name(device_type) 'macOS' when 'linux' 'Linux' + when 'windows' + 'Windows' else - device_type + platform + end + end + + def device_name(device) + case device.downcase.to_sym + when AppInfo::Device::IPHONE + 'iPhone' + when AppInfo::Device::IPAD + 'iPad' + when AppInfo::Device::UNIVERSAL + 'Universal' + when AppInfo::Device::PHONE + 'Phone' + when AppInfo::Device::WATCH + 'Watch' + when AppInfo::Device::TELEVISION + 'TV' + when AppInfo::Device::TABLET + 'Tablet' + when AppInfo::Device::AUTOMOTIVE + 'Automotive' + when AppInfo::Device::WINDOWS + 'Windows' + when AppInfo::Device::MACOS + 'macOS' + else device end end diff --git a/app/helpers/apps_helper.rb b/app/helpers/apps_helper.rb index 9d1354bdd..536d8049b 100644 --- a/app/helpers/apps_helper.rb +++ b/app/helpers/apps_helper.rb @@ -27,6 +27,10 @@ def app_icon(release, options = {}) image_tag(release.icon_url, **options) end + def app_device(device) + + end + def logged_in_or_without_auth?(release) user_signed_in? || matched_password?(release) end @@ -75,8 +79,8 @@ def release_type_url(release) def channel_platform(channel) return channel.name if channel.name.downcase == channel.device_type.downcase - platform = device_name(channel.device_type) - channel.name == platform ? channel.name : "#{channel.name} (#{device_name(channel.device_type)})" + platform = platform_name(channel.device_type) + channel.name == platform ? channel.name : "#{channel.name} (#{platform_name(channel.device_type)})" end def changelog_render(changelog, **options) diff --git a/app/helpers/teardown_helper.rb b/app/helpers/teardown_helper.rb index 1cd0baf57..197002867 100644 --- a/app/helpers/teardown_helper.rb +++ b/app/helpers/teardown_helper.rb @@ -1,6 +1,14 @@ # frozen_string_literal: true module TeardownHelper + def android_v1_signature?(certificates) + !certificates.any? { |cert| cert.key?('scheme') } + end + + def certificate_name(dn) + dn.map { |k, v| "#{k}=#{v}" }.join(', ') + end + def expired_date_tips(expired_date) time = Time.parse(expired_date) duration = ActiveSupport::Duration.build(time - Time.now) diff --git a/app/models/metadatum.rb b/app/models/metadatum.rb index ed41704d0..2524ab2a8 100644 --- a/app/models/metadatum.rb +++ b/app/models/metadatum.rb @@ -4,7 +4,13 @@ class Metadatum < ApplicationRecord belongs_to :release belongs_to :user - enum platform: { ios: 'ios', android: 'android', mobileprovision: 'mobileprovision', macos: 'macos' } + enum platform: { + ios: 'ios', + android: 'android', + mobileprovision: 'mobileprovision', + macos: 'macos', + windows: 'windows' + } alias_attribute :packet_name, :bundle_id diff --git a/app/models/release.rb b/app/models/release.rb index e2fb53a28..8b82ef5a8 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -43,7 +43,7 @@ def self.upload_file(params, parser = nil, default_source = 'web') create(params) do |release| release.source ||= default_source - parse_app(release, file, default_source) if AppInfo.file_type(file) != :unkown + parse_app(release, file, default_source) if AppInfo.file_type(file) != AppInfo::Format::UNKNOWN end end @@ -54,7 +54,7 @@ def self.parse_app(release, file, default_source) build_metadata(release, parser, default_source) # iOS 且是 AdHoc 尝试解析 UDID 列表 - if parser.os == AppInfo::Platform::IOS && + if parser.platform == AppInfo::Platform::IOS && parser.release_type == AppInfo::IPA::ExportType::ADHOC && parser.devices.present? @@ -77,10 +77,13 @@ def self.add_not_found_file_error def self.build_metadata(release, parser, default_source) release.source ||= default_source release.name = parser.name - release.bundle_id = parser.bundle_id + release.device_type = parser.device + if parser.respond_to?(:bundle_id) + # iOS, Android only + release.bundle_id = parser.bundle_id + end release.release_version = parser.release_version release.build_version = parser.build_version - release.device_type = parser.device_type release.release_type ||= parser.release_type if parser.respond_to?(:release_type) icon_file = fetch_icon(parser) @@ -89,29 +92,40 @@ def self.build_metadata(release, parser, default_source) private_methods :build_metadata def self.fetch_icon(parser) - file = case parser.os + file = case parser.platform when AppInfo::Platform::IOS - parser.icons.last.try(:[], :uncrushed_file) + return if parser.icons.blank? + + biggest_icon(parser.icons, file_key: :uncrushed_file) when AppInfo::Platform::MACOS return if parser.icons.blank? - parser.icons[:sets].last.try(:[], :file) + biggest_icon(parser.icons[:sets]) when AppInfo::Platform::ANDROID - # 处理 Android anydpi 自适应图标 - parser.icons - .reject { |f| File.extname(f[:file]) == '.xml' } - .last - .try(:[], :file) - end + return if parser.icons.blank? + biggest_icon(parser.icons(exclude: :xml)) + when AppInfo::Platform::WINDOWS + return if parser.icons.blank? + + biggest_icon(parser.icons) + end File.open(file, 'rb') if file end private_methods :fetch_icon + def self.biggest_icon(icons, file_key: :file) + return if icons.blank? + + icons.max_by { |icon| icon[:dimensions][0] } + .try(:[], file_key) + end + private_methods :biggest_icon + def self.rescuing_app_parse_errors yield - rescue e + rescue => e logger.error e.full_message end private_methods :rescuing_app_parse_errors diff --git a/app/services/teardown_service.rb b/app/services/teardown_service.rb index df3f7e1eb..d6d37c886 100644 --- a/app/services/teardown_service.rb +++ b/app/services/teardown_service.rb @@ -23,7 +23,7 @@ def call def process checksum = checksum(file) metadata = Metadatum.find_or_initialize_by(checksum: checksum) - return metadata unless metadata.new_record? + # return metadata unless metadata.new_record? parser = AppInfo.parse(file) if parser.format == AppInfo::Format::MOBILEPROVISION @@ -35,13 +35,15 @@ def process process_mobileprovision(parser, metadata) else - case parser.opera_system - when AppInfo::OperaSystem::IOS + case parser.platform + when AppInfo::Platform::IOS process_ios(parser, metadata) - when AppInfo::OperaSystem::ANDROID + when AppInfo::Platform::ANDROID process_android(parser, metadata) - when AppInfo::OperaSystem::MACOS + when AppInfo::Platform::MACOS process_macos(parser, metadata) + when AppInfo::Platform::WINDOWS + process_windows(parser, metadata) end parser.clear! end @@ -52,12 +54,14 @@ def process def process_app_common(parser, metadata) metadata.name = parser.name - metadata.platform = parser.opera_system + metadata.platform = parser.platform metadata.device = parser.device metadata.release_version = parser.release_version metadata.build_version = parser.build_version metadata.size = parser.size - metadata.min_sdk_version = parser.respond_to?(:min_os_version) ? parser.min_os_version : parser.min_sdk_version + if parser.platform != AppInfo::Platform::WINDOWS + metadata.min_sdk_version = parser.respond_to?(:min_os_version) ? parser.min_os_version : parser.min_sdk_version + end end ########### @@ -201,6 +205,36 @@ def process_enabled_capabilities(mobileprovision, metadata) metadata.capabilities = capabilities.sort end + ######################### + # Windws # + ######################### + + def process_windows(parser, metadata) + process_app_common(parser, metadata) + process_imports(parser, metadata) + + metadata.mobileprovision = { + archs: parser.archs, + company_name: parser.company_name, + file_version: parser.file_version, + product_name: parser.product_name, + file_description: parser.file_description, + copyright: parser.copyright, + assembly_version: parser.assembly_version, + original_filename: parser.original_filename, + binary_size: parser.binary_size + } + end + + def process_imports(parser, metadata) + return unless imports = parser.imports + + metadata.entitlements = imports.sort.each_with_object({}) do |ent, obj| + key, value = ent + obj[key] = value + end + end + def checksum(file) @checksum ||= lambda { require 'digest' diff --git a/app/uploaders/app_file_uploader.rb b/app/uploaders/app_file_uploader.rb index 200de4325..2c53a69a5 100644 --- a/app/uploaders/app_file_uploader.rb +++ b/app/uploaders/app_file_uploader.rb @@ -1,23 +1,7 @@ # frozen_string_literal: true class AppFileUploader < ApplicationUploader - # process :validate_app_type - - SUPPORT_APP = %i[apk aab ipa macos] - def store_dir "#{base_store_dir}/apps/a#{model.app.id}/r#{model.id}/binary" end - - # def extension_allowlist - # %w[ipa apk aab zip] - # end - - # private - - # def validate_app_type - # return if SUPPORT_APP.include?(AppInfo.file_type(file.path)) - - # raise CarrierWave::InvalidParameter, I18n.t('errors.messages.unknown_file_type') - # end end diff --git a/app/uploaders/app_icon_uploader.rb b/app/uploaders/app_icon_uploader.rb index 1815020f7..a28d5fd02 100644 --- a/app/uploaders/app_icon_uploader.rb +++ b/app/uploaders/app_icon_uploader.rb @@ -1,31 +1,19 @@ # frozen_string_literal: true class AppIconUploader < ApplicationUploader - process convert_webp_to_png: [{ quality: 80, method: 5 }], if: :webp? + include CarrierWave::MiniMagick + + process convert: :png def store_dir "#{base_store_dir}/apps/a#{model.app.id}/r#{model.id}/icons" end - def extension_allowlist - %i(png webp jpeg jpg) - end - - private - - def convert_webp_to_png(options = {}) - png_path = "#{path}.png" - WebP.decode(path, png_path) - - @filename = png_path.split('/').pop - @file = CarrierWave::SanitizedFile.new( - tempfile: png_path, - filename: png_path, - content_type: 'image/png' - ) + def filename + "#{file.basename}.png" end - def webp?(file) - File.extname(file.path) == '.webp' + def content_type_allowlist + /image\// end end diff --git a/app/views/channels/_activity.html.slim b/app/views/channels/_activity.html.slim index ec9c5b678..7756c444d 100644 --- a/app/views/channels/_activity.html.slim +++ b/app/views/channels/_activity.html.slim @@ -21,7 +21,9 @@ = time_ago_in_words(release.created_at) span.product-description - if release.release_version.present? - = "#{release.release_version} (#{release.build_version})" + = release.release_version + - if release.build_version.present? + | (#{release.build_version}) - else = release.version - else diff --git a/app/views/channels/_metadata.html.slim b/app/views/channels/_metadata.html.slim index 057324d25..908d7b2a4 100644 --- a/app/views/channels/_metadata.html.slim +++ b/app/views/channels/_metadata.html.slim @@ -5,7 +5,7 @@ = t('channels.show.metadata') .card-body.p-0 p.d-flex.flex-column.border-bottom.pl-3.pb-3.pt-3 - span.font-weight-bold = device_name(@channel.device_type) + span.font-weight-bold = platform_name(@channel.device_type) span.text-muted = t('channels.show.device_type') p.d-flex.flex-column.border-bottom.pl-3.pb-3 span.font-weight-bold = @channel.slug diff --git a/app/views/channels/filters/_list.slim b/app/views/channels/filters/_list.slim index 4b99aa386..de886e956 100644 --- a/app/views/channels/filters/_list.slim +++ b/app/views/channels/filters/_list.slim @@ -4,7 +4,8 @@ th = t('channels.show.id') th = t('channels.show.release_version') th = t('channels.show.build_version') - th = t('channels.show.release_type') + - if @channel.device_type.downcase == 'ios' + th = t('channels.show.release_type') th = t('channels.show.git_branch') th = t('channels.show.git_commit') th = t('channels.show.uploaded_at') @@ -17,17 +18,18 @@ = link_to index + 1, friendly_channel_release_path(release.channel, release) td - if release.release_version == (params[:id] || params[:name]) - = release.release_version + = release.release_version || '-' - else - = link_to release.release_version, friendly_channel_version_path(release.channel, release.release_version) + = link_to (release.release_version || '-'), friendly_channel_version_path(release.channel, release.release_version) td - = release.build_version - td - = release_type_url(release) + = release.build_version || '-' + - if @channel.device_type.downcase == 'ios' + td + = release_type_url(release) td - = git_branch_url(release) + = git_branch_url(release) || '-' td - = git_commit_url(release.channel.git_url, release.git_commit) + = git_commit_url(release.channel.git_url, release.git_commit) || '-' td span data-toggle="tooltip" title="#{release.created_at}" = time_ago_in_words(release.created_at) diff --git a/app/views/dashboards/_recently_upload.html.slim b/app/views/dashboards/_recently_upload.html.slim index 44f624ed7..ad8d588e7 100644 --- a/app/views/dashboards/_recently_upload.html.slim +++ b/app/views/dashboards/_recently_upload.html.slim @@ -28,8 +28,10 @@ section = time_ago_in_words(release.created_at) h3.timeline-header = link_to(release.app_name, friendly_channel_release_path(release.channel, release), class: 'pr-1') - - if release.release_version + - if release.release_version && release.build_version = t('dashboard.timeline.upload_full_version_release', release_version: release.release_version, build_version: release.build_version) + - elsif release.release_version + = t('dashboard.timeline.upload_auto_version_release', version: release.release_version) - else = t('dashboard.timeline.upload_auto_version_release', version: release.version) - if release.changelog.present? diff --git a/app/views/debug_files/_debug_file.html.slim b/app/views/debug_files/_debug_file.html.slim index e039d761d..d63d5cab1 100644 --- a/app/views/debug_files/_debug_file.html.slim +++ b/app/views/debug_files/_debug_file.html.slim @@ -20,7 +20,7 @@ ruby: span.debug-file-version = debug_file.release_version span.debug-file-device-type - = device_name(debug_file.device_type) + = platform_name(debug_file.device_type) .debug-file-build-version - if debug_file.build_version.blank? = t('debug_files.index.processing') @@ -52,4 +52,4 @@ ruby: == render 'metadata', debug_file: debug_file - else .alert - = t('debug_files.index.empty_content') \ No newline at end of file + = t('debug_files.index.empty_content') diff --git a/app/views/releases/body/_activity.html.slim b/app/views/releases/body/_activity.html.slim index 3293432dc..db4e69515 100644 --- a/app/views/releases/body/_activity.html.slim +++ b/app/views/releases/body/_activity.html.slim @@ -18,8 +18,10 @@ = time_ago_in_words(release.created_at) h3.timeline-header = link_to release.app_name, friendly_channel_release_path(release.channel, release), class: 'pr-1' - - if release.release_version + - if release.release_version && release.build_version = t('releases.show.upload_full_version_release', release_version: release.release_version, build_version: release.build_version) + - elsif release.release_version + = t('releases.show.upload_auto_version_release', version: release.release_version) - else = t('releases.show.upload_auto_version_release', version: release.version) - if release.changelog.present? diff --git a/app/views/releases/body/_metadata.html.slim b/app/views/releases/body/_metadata.html.slim index 5b0c2cd72..db904b913 100644 --- a/app/views/releases/body/_metadata.html.slim +++ b/app/views/releases/body/_metadata.html.slim @@ -20,11 +20,13 @@ = @release.version li title="#{t('releases.show.device_type')}" = device_icon(@release.platform) - = @release.device_type + = device_name(@release.device_type) - if @release.release_version.present? li title="#{t('releases.show.release_version')}" i.fas.fa-server - = "#{@release.release_version} (#{@release.build_version})" + = @release.release_version + - if @release.build_version.present? + | (#{@release.build_version}) - if @release.release_type.present? li title="#{t('releases.show.release_type')}" i.fas.fa-cubes diff --git a/app/views/releases/body/_new_release_callout.html.slim b/app/views/releases/body/_new_release_callout.html.slim index cd749bed0..ad9918d6d 100644 --- a/app/views/releases/body/_new_release_callout.html.slim +++ b/app/views/releases/body/_new_release_callout.html.slim @@ -5,6 +5,6 @@ = t('releases.show.not_latest_release') p = raw t('releases.show.released_new_version', \ - version: latest_release.release_version ? "#{latest_release.release_version} (#{latest_release.build_version})" : latest_release.version, \ + version: latest_release.release_version ? "#{latest_release.release_version}#{latest_release.build_version ? " #{latest_release.build_version}" : ''}" : latest_release.version, \ time: time_ago_in_words(latest_release.created_at), \ link: link_to(t('releases.show.view_latest_version'), friendly_channel_release_path(latest_release.channel, latest_release))) diff --git a/app/views/teardowns/_android.html.slim b/app/views/teardowns/_android.html.slim index 21d4b1e91..123172f53 100644 --- a/app/views/teardowns/_android.html.slim +++ b/app/views/teardowns/_android.html.slim @@ -8,11 +8,13 @@ ruby: .col-md-6 .card .card-header - h3.card-title = t('teardowns.show.metadata') + h3.card-title + i.icon.fab.fa-android.text-green + = t('teardowns.show.metadata') .card-tools button.btn.btn-tool data-card-widget="collapse" i.fas.fa-minus - .card-body.p-0 + .card-body.p-0.pl-3 dl.system-info.pb-0 dt = t('teardowns.show.app_name') dd @@ -27,7 +29,7 @@ ruby: = t('teardowns.show.supported_device') dd pre - = @metadata.device + = device_name(@metadata.device) | (Android) dt = t('teardowns.show.sdk_version_range') dd diff --git a/app/views/teardowns/_devices_part.html.slim b/app/views/teardowns/_devices_part.html.slim index 061f39084..0cce4eee8 100644 --- a/app/views/teardowns/_devices_part.html.slim +++ b/app/views/teardowns/_devices_part.html.slim @@ -6,7 +6,7 @@ .card-tools button.btn.btn-tool data-card-widget="collapse" i.fas.fa-minus - .card-body.p-0 + .card-body.p-0.pl-3 table.table - @metadata.devices.each do |udid| tr @@ -15,4 +15,4 @@ - if (device = Device.find_by(udid: udid)) && device.name.present? .float-right small.badge.badge-light - = device.name \ No newline at end of file + = device.name diff --git a/app/views/teardowns/_imports_part.slim b/app/views/teardowns/_imports_part.slim new file mode 100644 index 000000000..615f93fd1 --- /dev/null +++ b/app/views/teardowns/_imports_part.slim @@ -0,0 +1,12 @@ +.card + .card-header + h3.card-title = t('teardowns.show.imports') + .card-tools + button.btn.btn-tool data-card-widget="collapse" + i.fas.fa-minus + .card-body.p-0.pl-3 + dl.system-info.pb-0 + - imports.each do |name, functions| + dt = name + dd + pre = functions.present? ? functions.join("\n") : '-' diff --git a/app/views/teardowns/_ios.html.slim b/app/views/teardowns/_ios.html.slim index 8b55b359f..e30de46e8 100644 --- a/app/views/teardowns/_ios.html.slim +++ b/app/views/teardowns/_ios.html.slim @@ -1,7 +1,9 @@ .col-md-6 .card .card-header - h3.card-title = t('teardowns.show.metadata') + h3.card-title + i.icon.fab.fa-apple.text-secondary + = t('teardowns.show.metadata') .card-tools button.btn.btn-tool data-card-widget="collapse" i.fas.fa-minus @@ -12,7 +14,7 @@ pre = @metadata.name dt = t('teardowns.show.supported_device') dd - pre #{@metadata.device} (#{device_name(@metadata.platform)}) + pre #{device_name(@metadata.device)} (#{platform_name(@metadata.platform)}) dt = t('teardowns.show.version') dd pre = "#{@metadata.release_version} (#{@metadata.build_version})" diff --git a/app/views/teardowns/_list.html.slim b/app/views/teardowns/_list.html.slim index 7e27da632..1f897c8ab 100644 --- a/app/views/teardowns/_list.html.slim +++ b/app/views/teardowns/_list.html.slim @@ -11,7 +11,7 @@ th = t('teardowns.index.uploaded_at') th = t('teardowns.index.app_name') th = t('teardowns.index.version') - th = t('teardowns.index.type') + th = t('teardowns.index.platform') th = t('teardowns.index.uploader') - if user_signed_in? @@ -22,11 +22,16 @@ span data-toggle="tooltip" title="#{md.created_at}" = time_ago_in_words(md.created_at) td - = link_to md.name, teardown_path(md) + = link_to (md.name || '-'), teardown_path(md) td - = md.mobileprovision? ? '-' : "#{md.release_version} (#{md.build_version})" + - if md.release_version.present? + = md.release_version + - if md.build_version.present? + | (#{md.build_version}) + - else + | - td - = device_name(md.platform) + = platform_name(md.platform) td = md.user&.username || t('teardowns.index.anonymous') diff --git a/app/views/teardowns/_macos.html.slim b/app/views/teardowns/_macos.html.slim index 4f6d33f07..9543a8734 100644 --- a/app/views/teardowns/_macos.html.slim +++ b/app/views/teardowns/_macos.html.slim @@ -2,11 +2,13 @@ .col-md-12 .card .card-header - h3.card-title = t('teardowns.show.metadata') + h3.card-title + i.icon.fab.fa-app-store.text-blue + = t('teardowns.show.metadata') .card-tools button.btn.btn-tool data-card-widget="collapse" i.fas.fa-minus - .card-body + .card-body.p-0.pl-3 dl.system-info dt = t('teardowns.show.app_name') dd @@ -34,4 +36,4 @@ .col-md-4 == render 'card', title: t('teardowns.show.capabilities'), raw: @metadata.capabilities - == render 'card', title: 'URL Schemes', raw: @metadata.url_schemes \ No newline at end of file + == render 'card', title: 'URL Schemes', raw: @metadata.url_schemes diff --git a/app/views/teardowns/_mobileprovision_part.html.slim b/app/views/teardowns/_mobileprovision_part.html.slim index 06133dca3..b4671bcbc 100644 --- a/app/views/teardowns/_mobileprovision_part.html.slim +++ b/app/views/teardowns/_mobileprovision_part.html.slim @@ -5,7 +5,7 @@ .card-tools button.btn.btn-tool data-card-widget="collapse" i.fas.fa-minus - .card-body.p-0 + .card-body.p-0.pl-3 dl.system-info.pb-0 dt = t('teardowns.show.mobileprovision_name') dd diff --git a/app/views/teardowns/_windows.html.slim b/app/views/teardowns/_windows.html.slim new file mode 100644 index 000000000..658ebf205 --- /dev/null +++ b/app/views/teardowns/_windows.html.slim @@ -0,0 +1,46 @@ + +.col-md-6 + .card + .card-header + h3.card-title + i.icon.fab.fa-windows.text-primary + = t('teardowns.show.metadata') + .card-tools + button.btn.btn-tool data-card-widget="collapse" + i.fas.fa-minus + .card-body.p-0.pl-3 + dl.system-info + dt = t('teardowns.show.product_name') + dd + pre = @metadata.name || '-' + dt = t('teardowns.show.file_description') + dd + pre = @metadata.mobileprovision['file_description'] + dt = t('teardowns.show.archs') + dd + pre #{@metadata.mobileprovision['archs']} + dt = t('teardowns.show.file_version') || '-' + dd + pre = @metadata.mobileprovision['file_version'] || '-' + dt = t('teardowns.show.product_version') || '-' + dd + pre = @metadata.mobileprovision['product_version'] || '-' + dt = t('teardowns.show.assembly_version') + dd + pre = @metadata.mobileprovision['assembly_version'] || '-' + dt = t('teardowns.show.company_name') + dd + pre = @metadata.mobileprovision['company_name'] || '-' + dt = t('teardowns.show.original_filename') + dd + pre = @metadata.mobileprovision['original_filename'] || '-' + dt = t('teardowns.show.file_size') + dd + pre = number_to_human_size(@metadata.size) + dt = t('teardowns.show.binary_size') + dd + pre = number_to_human_size(@metadata.mobileprovision['binary_size']) + +.col-md-6 + - if @metadata.entitlements.present? + == render 'imports_part', imports: @metadata.entitlements diff --git a/app/views/udid/_apps.html.slim b/app/views/udid/_apps.html.slim index 158ff592f..18ab02784 100644 --- a/app/views/udid/_apps.html.slim +++ b/app/views/udid/_apps.html.slim @@ -19,8 +19,10 @@ = time_ago_in_words(release.created_at) h3.timeline-header = link_to(release.app_name, friendly_channel_release_path(channel, release), class: 'pr-1') - - if release.release_version + - if release.release_version && release.build_version = t('udid.show.upload_full_version_release', release_version: release.release_version, build_version: release.build_version) + - elsif release.release_version + = t('udid.show.upload_auto_version_release', version: release.release_version) - else = t('udid.show.upload_auto_version_release', version: release.version) - if release.changelog.present? diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index 2c4a290c0..afb199ebe 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -321,7 +321,7 @@ zh-CN: id: ID build_version: 开发版本 git_branch: 分支 - git_commit: 开发版本 + git_commit: 提交哈希值 release_type: 打包类型 uploaded_at: 上传时间 actions: 操作 @@ -493,7 +493,7 @@ zh-CN: uploaded_at: 上传时间 app_name: 应用名称 version: 版本 - type: 类型 + platform: 平台 uploader: 提交者 actions: 操作 anonymous: 匿名者 @@ -501,7 +501,7 @@ zh-CN: title: 没有发现任何应用解包! body_html: 点击右上角的 新建应用解包。 show: - title: '%{name} %{release_version} (%{build_version}) 解包信息' + title: '%{name} 解包信息' expired_in: 还有%{time}左右过期 already_expired: 已经过期%{time} expired: 此时此刻刚好过期了! @@ -544,6 +544,17 @@ zh-CN: team_id: 团队名称 (Team ID) created_at: 创建时间 expired_at: 过期时间 + archs: 应用架构 + product_name: 产品名称 + product_version: 产品版本 + assembly_version: 程序集版本 + file_version: 文件版本 + file_description: 文件描述 + copyright: 版权 + original_filename: 原始文件名 + company_name: 公司名称 + binary_size: 二进制文件大小 + imports: 引用库 help: title: 帮助中心 body_html: | diff --git a/db/migrate/20230407043515_change_metadata_column_platform_to_string_type.rb b/db/migrate/20230407043515_change_metadata_column_platform_to_string_type.rb new file mode 100644 index 000000000..64062b080 --- /dev/null +++ b/db/migrate/20230407043515_change_metadata_column_platform_to_string_type.rb @@ -0,0 +1,5 @@ +class ChangeMetadataColumnPlatformToStringType < ActiveRecord::Migration[7.0] + def change + change_column :metadata, :platform, :string + end +end diff --git a/db/migrate/20230407043735_remove_metadata_platform_enum.rb b/db/migrate/20230407043735_remove_metadata_platform_enum.rb new file mode 100644 index 000000000..1a3172cbf --- /dev/null +++ b/db/migrate/20230407043735_remove_metadata_platform_enum.rb @@ -0,0 +1,13 @@ +class RemoveMetadataPlatformEnum < ActiveRecord::Migration[7.0] + def up + execute <<-SQL + DROP TYPE metadata_platform; + SQL + end + + def down + execute <<-SQL + CREATE TYPE metadata_platform AS ENUM ('ios', 'android', 'mobileprovision', 'macos'); + SQL + end +end diff --git a/db/schema.rb b/db/schema.rb index f45ad86d5..3395a342b 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,14 +10,10 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema[7.0].define(version: 2023_03_06_061106) do +ActiveRecord::Schema[7.0].define(version: 2023_04_07_043735) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" - # Custom types defined in this database. - # Note that some types may not work with other database engines. Be careful if changing database. - create_enum "metadata_platform", ["ios", "android", "mobileprovision", "macos"] - create_table "apple_keys", force: :cascade do |t| t.string "issuer_id", null: false t.string "key_id", null: false @@ -167,7 +163,7 @@ t.string "checksum", null: false t.datetime "created_at", null: false t.datetime "updated_at", null: false - t.enum "platform", enum_type: "metadata_platform" + t.string "platform" t.jsonb "deep_links", default: [], null: false t.index ["checksum"], name: "index_metadata_on_checksum" t.index ["release_id"], name: "index_metadata_on_release_id" From 745a9deebb5ebe4faa04c72bd2999a4c5b40978a Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 7 Apr 2023 18:13:24 +0800 Subject: [PATCH 1432/2165] =?UTF-8?q?feat(api):=20API=20=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0=20Windows?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/api/apps/upload_controller.rb | 8 +-- app/services/teardown_service.rb | 21 ++++++-- app/uploaders/app_icon_uploader.rb | 8 ++- .../teardowns/_developer_certs_part.html.slim | 53 +++++++++++++++++-- 4 files changed, 78 insertions(+), 12 deletions(-) diff --git a/app/controllers/api/apps/upload_controller.rb b/app/controllers/api/apps/upload_controller.rb index 5901d7c69..1074e6cba 100644 --- a/app/controllers/api/apps/upload_controller.rb +++ b/app/controllers/api/apps/upload_controller.rb @@ -50,9 +50,11 @@ def create_new_app_build # 使用现有 App 创建新版本 def create_build_from_exist_app - message = t('releases.messages.errors.bundle_id_not_matched', got: @app_parser.bundle_id, - expect: @channel.bundle_id) - raise TypeError, message unless @channel.bundle_id_matched? @app_parser.bundle_id + if @channel.device_type == 'ios' || @channel.device_type == 'android' + message = t('releases.messages.errors.bundle_id_not_matched', got: @app_parser.bundle_id, + expect: @channel.bundle_id) + raise TypeError, message unless @channel.bundle_id_matched? @app_parser.bundle_id + end create_release with_updated_channel end diff --git a/app/services/teardown_service.rb b/app/services/teardown_service.rb index d6d37c886..32531e6ea 100644 --- a/app/services/teardown_service.rb +++ b/app/services/teardown_service.rb @@ -183,9 +183,24 @@ def process_developer_certs(mobileprovision, metadata) metadata.developer_certs = certificates.each_with_object([]) do |cert, obj| obj << { - name: cert.name, - created_at: cert.created_date, - expired_at: cert.expired_date + name: cert.subject(format: :to_a).find { |name, _,| name == 'CN' }[1].force_encoding('UTF-8'), + version: cert.version, + serial: { + number: cert.serial, + hex: cert.serial(16, prefix: '0x'), + }, + format: cert.format, + digest: cert.digest, + algorithem: cert.algorithm, + subject: cert.subject(format: :to_a), + issuer: cert.issuer(format: :to_a), + created_at: cert.created_at, + expired_at: cert.expired_at, + fingerprint: { + md5: cert.fingerprint(:md5, delimiter: ':'), + sha1: cert.fingerprint(:sha1, delimiter: ':'), + sha256: cert.fingerprint(:sha256, delimiter: ':'), + } } end end diff --git a/app/uploaders/app_icon_uploader.rb b/app/uploaders/app_icon_uploader.rb index a28d5fd02..e4071ed15 100644 --- a/app/uploaders/app_icon_uploader.rb +++ b/app/uploaders/app_icon_uploader.rb @@ -3,17 +3,23 @@ class AppIconUploader < ApplicationUploader include CarrierWave::MiniMagick - process convert: :png + process convert: :png, if: :not_png? def store_dir "#{base_store_dir}/apps/a#{model.app.id}/r#{model.id}/icons" end def filename + return super unless file + "#{file.basename}.png" end def content_type_allowlist /image\// end + + def not_png? + File.extname(file.path) != '.png' + end end diff --git a/app/views/teardowns/_developer_certs_part.html.slim b/app/views/teardowns/_developer_certs_part.html.slim index 160c2d470..922392145 100644 --- a/app/views/teardowns/_developer_certs_part.html.slim +++ b/app/views/teardowns/_developer_certs_part.html.slim @@ -7,12 +7,55 @@ button.btn.btn-tool data-card-widget="collapse" i.fas.fa-minus .card-body.card-comments.pb-2 - - @metadata.developer_certs.each_with_index do |cert, i| + - @metadata.developer_certs.each_with_index do |certificate, i| .card-comment .comment-text.ml-0 - span.username + - if certificate['version'].present? + span.username + = "#{t('teardowns.show.cert', index: i + 1)} #{certificate['name']}" + span.text-muted.float-right + = t('teardowns.show.cert_expired_at', date: certificate['expired_at']) + ul.content + li + span.key = t('teardowns.show.cert_serial') + span.value = "#{certificate['serial']['number']} (#{certificate['serial']['hex']})" + li + span.key = t('teardowns.show.cert_version') + span.value = certificate['version'] + li + span.key = t('teardowns.show.cert_algorithem') + span.value = certificate['algorithem'] + li + span.key = t('teardowns.show.cert_digest') + span.value = certificate['digest'] + - if certificate['length'].present? + li + span.key = t('teardowns.show.cert_length') + span.value = certificate['length'] + li + span.key = t('teardowns.show.cert_subject') + span.value = certificate_name(certificate['subject']) + li + span.key = t('teardowns.show.cert_issuer') + span.value = certificate_name(certificate['issuer']) + li + span.key = t('teardowns.show.cert_created') + span.value = certificate['created_at'] + li + span.key = t('teardowns.show.cert_expired') + span.value = t('teardowns.show.cert_expired_at', date: certificate['expired_at']) + li + span.key = t('teardowns.show.cert_fignger', digest: 'SHA-256') + span.value = certificate['fingerprint']['sha256'] + li + span.key = t('teardowns.show.cert_fignger', digest: 'SHA-1') + span.value = certificate['fingerprint']['sha1'] + li + span.key = t('teardowns.show.cert_fignger', digest: 'MD5') + span.value = certificate['fingerprint']['md5'] + - else + span.username = t('teardowns.show.cert', index: i + 1) span.text-muted.float-right - = t('teardowns.show.cert_expired_at', date: cert['expired_at']) - p.content - = cert['name'] + = t('teardowns.show.cert_expired_at', date: certificate['expired_at']) + p.content = certificate['name'] From 82875b729dc1ebb0ee40d3d3d7fb8c8654366776 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 7 Apr 2023 18:25:40 +0800 Subject: [PATCH 1433/2165] =?UTF-8?q?refactor(web):=20release=5Ftype=20?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E5=B1=82=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/application_helper.rb | 10 ++++++++++ app/helpers/apps_helper.rb | 7 ++++--- app/views/channels/filters/_list.slim | 2 +- app/views/dashboards/_recently_upload.html.slim | 2 +- app/views/releases/body/_activity.html.slim | 2 +- app/views/releases/body/_metadata.html.slim | 2 +- app/views/teardowns/_ios.html.slim | 2 +- app/views/teardowns/_mobileprovision_part.html.slim | 2 +- app/views/udid/_apps.html.slim | 2 +- 9 files changed, 21 insertions(+), 10 deletions(-) diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 00ca16b9c..af8a2810e 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -104,6 +104,16 @@ def device_name(device) end end + # iOS build type + def release_type_name(release_type) + case release_type.downcase.to_sym + when :adhoc + 'AdHoc' + else + release_type.capitalize + end + end + def device_icon(device_type) icon, _ = device_style(device_type) tag.i(class: "fab #{icon}") diff --git a/app/helpers/apps_helper.rb b/app/helpers/apps_helper.rb index 536d8049b..49efa4c35 100644 --- a/app/helpers/apps_helper.rb +++ b/app/helpers/apps_helper.rb @@ -65,14 +65,15 @@ def git_branch_url(release) end end - def release_type_url(release) + def release_type_url_builder(release) return unless release_type = release.release_type return if release_type.blank? + title = release_type_name(release_type) if params[:name] == release_type - release_type + title else - link_to(release_type, friendly_channel_release_types_path(release.channel, name: release_type)) + link_to(title, friendly_channel_release_types_path(release.channel, name: release_type)) end end diff --git a/app/views/channels/filters/_list.slim b/app/views/channels/filters/_list.slim index de886e956..8373ffd00 100644 --- a/app/views/channels/filters/_list.slim +++ b/app/views/channels/filters/_list.slim @@ -25,7 +25,7 @@ = release.build_version || '-' - if @channel.device_type.downcase == 'ios' td - = release_type_url(release) + = release_type_url_builder(release) td = git_branch_url(release) || '-' td diff --git a/app/views/dashboards/_recently_upload.html.slim b/app/views/dashboards/_recently_upload.html.slim index ad8d588e7..e129ed73b 100644 --- a/app/views/dashboards/_recently_upload.html.slim +++ b/app/views/dashboards/_recently_upload.html.slim @@ -44,7 +44,7 @@ section = device_name(release.device_type) - if release.release_type small.badge - = release.release_type + = release_type_name(release.release_type) - if release.branch small.badge = release.branch diff --git a/app/views/releases/body/_activity.html.slim b/app/views/releases/body/_activity.html.slim index db4e69515..20123ab62 100644 --- a/app/views/releases/body/_activity.html.slim +++ b/app/views/releases/body/_activity.html.slim @@ -34,7 +34,7 @@ = device_name(release.device_type) - if release.release_type.present? small.badge - = release.release_type + = release_type_name(release.release_type) - if release.branch.present? small.badge = release.branch diff --git a/app/views/releases/body/_metadata.html.slim b/app/views/releases/body/_metadata.html.slim index db904b913..bf9934796 100644 --- a/app/views/releases/body/_metadata.html.slim +++ b/app/views/releases/body/_metadata.html.slim @@ -30,7 +30,7 @@ - if @release.release_type.present? li title="#{t('releases.show.release_type')}" i.fas.fa-cubes - = release_type_url(@release) + = release_type_url_builder(@release) - if @release.file.present? li title="#{t('releases.show.filesize')}" i.fas.fa-weight diff --git a/app/views/teardowns/_ios.html.slim b/app/views/teardowns/_ios.html.slim index e30de46e8..ff3b353c6 100644 --- a/app/views/teardowns/_ios.html.slim +++ b/app/views/teardowns/_ios.html.slim @@ -23,7 +23,7 @@ pre = @metadata.bundle_id dt = t('teardowns.show.release_type') dd - pre = @metadata.release_type + pre = release_type_name(@metadata.release_type) dt = t('teardowns.show.min_ios_version') dd pre = @metadata.min_sdk_version diff --git a/app/views/teardowns/_mobileprovision_part.html.slim b/app/views/teardowns/_mobileprovision_part.html.slim index b4671bcbc..38a8d6e70 100644 --- a/app/views/teardowns/_mobileprovision_part.html.slim +++ b/app/views/teardowns/_mobileprovision_part.html.slim @@ -9,7 +9,7 @@ dl.system-info.pb-0 dt = t('teardowns.show.mobileprovision_name') dd - pre = "#{@metadata.mobileprovision['profile_name']} (#{@metadata.release_type})" + pre = "#{@metadata.mobileprovision['profile_name']} (#{release_type_name(@metadata.release_type)})" dt = t('teardowns.show.uuid') dd pre = @metadata.mobileprovision['uuid'] diff --git a/app/views/udid/_apps.html.slim b/app/views/udid/_apps.html.slim index 18ab02784..c13985dad 100644 --- a/app/views/udid/_apps.html.slim +++ b/app/views/udid/_apps.html.slim @@ -32,7 +32,7 @@ .timeline-footer - if release.release_type.present? small.badge - = release.release_type + = release_type_name(release.release_type) - if release.branch.present? small.badge = release.branch From 6185796bc578df079c6c8df09d564a2e4a8e6bb1 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 7 Apr 2023 18:38:50 +0800 Subject: [PATCH 1434/2165] =?UTF-8?q?feat(web):=20=E5=A4=84=E7=90=86=20bmp?= =?UTF-8?q?=20=E6=A0=BC=E5=BC=8F=E5=9B=BE=E6=A0=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/services/teardown_service.rb | 5 +---- app/uploaders/app_icon_uploader.rb | 13 ++++++++++--- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/app/services/teardown_service.rb b/app/services/teardown_service.rb index 32531e6ea..3af4d0ef3 100644 --- a/app/services/teardown_service.rb +++ b/app/services/teardown_service.rb @@ -11,9 +11,7 @@ def initialize(file) def call file_type = AppInfo.file_type(file) - if file_type == AppInfo::Format::UNKNOWN - raise ActionController::UnknownFormat, t('teardowns.messages.errors.not_support_file_type') - end + return if file_type == AppInfo::Format::UNKNOWN process end @@ -23,7 +21,6 @@ def call def process checksum = checksum(file) metadata = Metadatum.find_or_initialize_by(checksum: checksum) - # return metadata unless metadata.new_record? parser = AppInfo.parse(file) if parser.format == AppInfo::Format::MOBILEPROVISION diff --git a/app/uploaders/app_icon_uploader.rb b/app/uploaders/app_icon_uploader.rb index e4071ed15..96c778985 100644 --- a/app/uploaders/app_icon_uploader.rb +++ b/app/uploaders/app_icon_uploader.rb @@ -9,17 +9,24 @@ def store_dir "#{base_store_dir}/apps/a#{model.app.id}/r#{model.id}/icons" end + # @param [ActionDispatch::Http::UploadedFile] file def filename - return super unless file + return super unless not_png?(file) - "#{file.basename}.png" + filename = File.basename(file.path) + "#{filename}.png" end def content_type_allowlist /image\// end - def not_png? + def extension_allowlist + %i(png webp jpeg jpg bmp) + end + + # @param [ActionDispatch::Http::UploadedFile] file + def not_png?(file) File.extname(file.path) != '.png' end end From 1574cac0e17d3ac8a8731927c27580fb8b15bc98 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 7 Apr 2023 18:47:05 +0800 Subject: [PATCH 1435/2165] =?UTF-8?q?feat(web):=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E4=BE=9D=E8=B5=96=E5=9B=BE=E7=89=87=E5=A4=84=E7=90=86=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Aptfile | 3 ++- Dockerfile | 2 +- Gemfile | 2 +- Gemfile.lock | 26 +++++++++++--------------- 4 files changed, 15 insertions(+), 18 deletions(-) diff --git a/Aptfile b/Aptfile index f8157dd41..f2ab40ef2 100644 --- a/Aptfile +++ b/Aptfile @@ -1,3 +1,4 @@ +libmagickwand-dev libwebp-dev webp -postgresql-client \ No newline at end of file +postgresql-client diff --git a/Dockerfile b/Dockerfile index 132528cbe..1839ef913 100644 --- a/Dockerfile +++ b/Dockerfile @@ -69,7 +69,7 @@ ARG REPLACE_CHINA_MIRROR="true" ARG ORIGINAL_REPO_URL="dl-cdn.alpinelinux.org" ARG MIRROR_REPO_URL="mirrors.ustc.edu.cn" ARG RUBYGEMS_SOURCE="https://gems.ruby-china.com/" -ARG PACKAGES="tzdata curl logrotate postgresql-dev libwebp-dev libpng-dev tiff-dev postgresql-client openssl openssl-dev caddy gcompat" +ARG PACKAGES="tzdata curl logrotate postgresql-dev imagemagick-dev libwebp-dev libpng-dev tiff-dev postgresql-client openssl openssl-dev caddy gcompat" ARG RUBY_GEMS="bundler" ARG APP_ROOT=/app ARG S6_OVERLAY_VERSION="2.2.0.3" diff --git a/Gemfile b/Gemfile index 4bd59c789..4ae56abf0 100644 --- a/Gemfile +++ b/Gemfile @@ -93,7 +93,7 @@ gem 'stimulus-rails', '~> 1.2.1' gem 'turbo-rails', '~> 1.4' # 用于解析 iOS, Android, macOS 和 Windows 应用 -gem 'app-info', path: '/Users/icyleaf/Development/ruby/app_info' # , '~> 3.0.0.beta2' +gem 'app-info', '~> 3.0.0.beta3' # 带缓存的配置库 gem 'rails-settings-cached', '~> 2.8.3' diff --git a/Gemfile.lock b/Gemfile.lock index 2d812e692..bc49b13cb 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,17 +1,3 @@ -PATH - remote: /Users/icyleaf/Development/ruby/app_info - specs: - app-info (3.0.0.beta3) - CFPropertyList (>= 2.3.4, < 3.1.0) - android_parser (~> 2.6.0) - google-protobuf (>= 3.19.4, < 3.23.0) - icns (~> 0.2.0) - image_size (>= 1.5, < 3.3) - pedump (~> 0.6.2) - ruby-macho (>= 1.4, < 4) - rubyzip (>= 1.2, < 3.0) - uuidtools (>= 2.1.5, < 2.3.0) - GEM remote: https://rubygems.org/ specs: @@ -95,6 +81,16 @@ GEM android_parser (2.6.0) rexml (> 3.0) rubyzip (>= 1.0, < 3.0) + app-info (3.0.0.beta3) + CFPropertyList (>= 2.3.4, < 3.1.0) + android_parser (~> 2.6.0) + google-protobuf (>= 3.19.4, < 3.23.0) + icns (~> 0.2.0) + image_size (>= 1.5, < 3.3) + pedump (~> 0.6.2) + ruby-macho (>= 1.4, < 4) + rubyzip (>= 1.2, < 3.0) + uuidtools (>= 2.1.5, < 2.3.0) ast (2.4.2) awesome_print (1.9.2) bcrypt (3.1.18) @@ -497,7 +493,7 @@ PLATFORMS DEPENDENCIES active_model_serializers (~> 0.10.13) activejob-status - app-info! + app-info (~> 3.0.0.beta3) awesome_print better_errors binding_of_caller From 2aa720270226f2f961aee8139f16c0e51f5c945c Mon Sep 17 00:00:00 2001 From: icyleaf Date: Fri, 7 Apr 2023 19:43:22 +0800 Subject: [PATCH 1436/2165] =?UTF-8?q?feat(web):=20dSYM=20=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E5=A4=9A=20dSYM=20=E5=B9=B6=E5=BC=BA=E5=88=B6?= =?UTF-8?q?=E5=8C=B9=E9=85=8D=E7=8E=B0=E6=9C=89=E4=B8=8A=E4=BC=A0=E5=BA=94?= =?UTF-8?q?=E7=94=A8=E6=9D=A5=E7=BA=A0=E6=AD=A3=E5=85=83=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit relates #961 --- app/jobs/debug_file_teardown_job.rb | 48 +++++++++++++++++++++------ app/models/app.rb | 26 +++++++++++++++ app/uploaders/app_icon_uploader.rb | 2 ++ app/views/debug_files/_form.html.slim | 2 +- config/locales/zealot/en.yml | 1 + config/locales/zealot/zh-CN.yml | 5 +-- 6 files changed, 70 insertions(+), 14 deletions(-) diff --git a/app/jobs/debug_file_teardown_job.rb b/app/jobs/debug_file_teardown_job.rb index d512b4bc5..17548b2c6 100644 --- a/app/jobs/debug_file_teardown_job.rb +++ b/app/jobs/debug_file_teardown_job.rb @@ -8,7 +8,6 @@ def perform(debug_file, user_id = nil) case parser.format when AppInfo::Format::DSYM - update_debug_file_version(debug_file, parser) parse_dsym(debug_file, parser) when AppInfo::Format::PROGUARD update_debug_file_version(debug_file, parser) @@ -27,6 +26,13 @@ def perform(debug_file, user_id = nil) type: 'teardown', message: t('active_job.debug_file.failures.not_found_file', id: debug_file.id) ) + rescue RuntimeError => e + debug_file.destroy + notificate_failure( + user_id: user_id, + type: 'teardown', + message: t('active_job.debug_file.failures.not_matched_bundl_id', bundle_id: e.message) + ) ensure parser&.clear! end @@ -34,30 +40,50 @@ def perform(debug_file, user_id = nil) private def parse_dsym(debug_file, parser) - parser.machos.each do |macho| + bundle_ids = debug_file.app.bundle_ids + + upload_bundle_ids = [] + matched_debug_info = nil + parser.each_file do |debug_info| + upload_bundle_ids << debug_info.bundle_id + if bundle_ids.include?(debug_info.bundle_id) + matched_debug_info = debug_info + break + end + end + + raise upload_bundle_ids.join(', ') if matched_debug_info.blank? + + if (release_version = matched_debug_info.release_version) && + (build_version = matched_debug_info.build_version) + debug_file.update!( + release_version: release_version, + build_version: build_version + ) + end + + matched_debug_info.machos.each do |macho| debug_file.metadata.find_or_create_by(uuid: macho.uuid) do |metadata| metadata.size = macho.size metadata.type = macho.cpu_name - metadata.object = parser.object + metadata.object = matched_debug_info.object end end end def parse_proguard(debug_file, parser) - debug_file.metadata.find_or_create_by(uuid: parser.uuid) do |metadata| - metadata.type = parser.format - metadata.data = { files: files(parser) } - end - end - - def update_debug_file_version(debug_file, parser) if (release_version = parser.release_version) && - (build_version = parser.build_version) + (build_version = parser.build_version) debug_file.update!( release_version: release_version, build_version: build_version ) end + + debug_file.metadata.find_or_create_by(uuid: parser.uuid) do |metadata| + metadata.type = parser.format + metadata.data = { files: files(parser) } + end end def files(parser) diff --git a/app/models/app.rb b/app/models/app.rb index 207c16915..ebd0ba704 100644 --- a/app/models/app.rb +++ b/app/models/app.rb @@ -35,4 +35,30 @@ def total_releases end end end + + # Fetch all bundle id of iOS app + def bundle_ids + all_idenfiters(device_type: 'iOS')[:ios] + end + + # Fetch all bundle id of iOS app + def package_names + all_idenfiters(device_type: 'Android')[:android] + end + + def all_idenfiters(device_type: nil) + schemes.all.each_with_object({}) do |scheme, obj| + channels = scheme.channels + channels = device_type ? channels.where(device_type: device_type) : channels.all + channels.each do |channel| + device_type = channel.device_type.to_sym + obj[device_type] ||= [] + channel.releases.select(:bundle_id).distinct.each do |release| + next if obj[device_type].include?(release.bundle_id) + + obj[device_type] << release.bundle_id + end + end + end + end end diff --git a/app/uploaders/app_icon_uploader.rb b/app/uploaders/app_icon_uploader.rb index 96c778985..6c7fa4cac 100644 --- a/app/uploaders/app_icon_uploader.rb +++ b/app/uploaders/app_icon_uploader.rb @@ -27,6 +27,8 @@ def extension_allowlist # @param [ActionDispatch::Http::UploadedFile] file def not_png?(file) + return false if file.nil? + File.extname(file.path) != '.png' end end diff --git a/app/views/debug_files/_form.html.slim b/app/views/debug_files/_form.html.slim index 7e028a86b..892f989c8 100644 --- a/app/views/debug_files/_form.html.slim +++ b/app/views/debug_files/_form.html.slim @@ -7,4 +7,4 @@ = f.input :build_version = f.input :file, required: true = f.input :checksum, disabled: true - = f.button :submit \ No newline at end of file + = f.button :submit diff --git a/config/locales/zealot/en.yml b/config/locales/zealot/en.yml index d09d093b0..8492947cb 100644 --- a/config/locales/zealot/en.yml +++ b/config/locales/zealot/en.yml @@ -785,6 +785,7 @@ en: success: Debug file (%{id}) pare done, Refresh the web page please. failures: not_found_file: Debug file is missing with unknown issue. + not_matched_bundl_id: 'Not found bundle id with selected app: %{bundle_id}' backup: success: '%{key} backup created successfully.' failures: diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index afb199ebe..4b0445544 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -793,11 +793,11 @@ zh-CN: '503': title: 服务暂时不可用,无法请求该页面 messages: + blank: 不能为空值 + inclusion: 不包含在可选值列表中 not_authorized_policy: "没有用户权限无法对 %{model} 进行 %{query} 操作" not_match_url: "页面路径不存在 %{url}" unexpected_parameter: "不可使用的参数: %{value}" - blank: 不能为空值 - inclusion: 不包含在可选值列表中 length_range: 长度限制:%{minimum} ~ %{maximum} 位 optional_value: 可选值:%{value} invaild_in_demo_mode: 演示模式不能编辑默认管理员 @@ -811,6 +811,7 @@ zh-CN: success: 调试文件 %{id} 解析完成,需要手动刷新页面才能看到哟 failures: not_found_file: 遇到玄学问题造成无法找到调试文件,解析失败 + not_matched_bundl_id: '现有应用并不包含上传 bundle id: %{bundle_id}' backup: success: '%{key} 备份创建完成' failures: From 44e6943dde0c7908c6a82c11561958143e4cfec5 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 10 Apr 2023 10:44:04 +0800 Subject: [PATCH 1437/2165] =?UTF-8?q?feat:=20=E5=A4=9A=20dSYM=20=E8=A7=A3?= =?UTF-8?q?=E6=9E=90=E5=85=A8=E9=83=A8=E5=85=83=E4=BF=A1=E6=81=AF=E5=92=8C?= =?UTF-8?q?=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/jobs/debug_file_teardown_job.rb | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/app/jobs/debug_file_teardown_job.rb b/app/jobs/debug_file_teardown_job.rb index 17548b2c6..ac7560bf5 100644 --- a/app/jobs/debug_file_teardown_job.rb +++ b/app/jobs/debug_file_teardown_job.rb @@ -62,11 +62,14 @@ def parse_dsym(debug_file, parser) ) end - matched_debug_info.machos.each do |macho| - debug_file.metadata.find_or_create_by(uuid: macho.uuid) do |metadata| - metadata.size = macho.size - metadata.type = macho.cpu_name - metadata.object = matched_debug_info.object + # Relates all dSYM symbols to metadata of debug file. + parser.each_file do |debug_info| + debug_info.machos.each do |macho| + debug_file.metadata.find_or_create_by(uuid: macho.uuid) do |metadata| + metadata.size = macho.size + metadata.type = macho.cpu_name + metadata.object = debug_info.object + end end end end From 49f336ff27e0d8a6a4ae59e84e2e1116fd4be3b5 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 10 Apr 2023 11:08:23 +0800 Subject: [PATCH 1438/2165] =?UTF-8?q?feat:=20=E6=98=9F=E6=98=9F=E6=A0=87?= =?UTF-8?q?=E8=AE=B0=E5=8C=B9=E9=85=8D=E7=9A=84=20dSYM=20=E6=96=87?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/jobs/debug_file_teardown_job.rb | 5 +++++ app/models/debug_file.rb | 4 ++++ app/views/debug_files/_metadata.html.slim | 7 ++++++- 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/app/jobs/debug_file_teardown_job.rb b/app/jobs/debug_file_teardown_job.rb index ac7560bf5..bea6f7490 100644 --- a/app/jobs/debug_file_teardown_job.rb +++ b/app/jobs/debug_file_teardown_job.rb @@ -69,6 +69,11 @@ def parse_dsym(debug_file, parser) metadata.size = macho.size metadata.type = macho.cpu_name metadata.object = debug_info.object + if debug_info == matched_debug_info + metadata.data = { + main_app: true + } + end end end end diff --git a/app/models/debug_file.rb b/app/models/debug_file.rb index fd2e9103e..04ecfea2d 100644 --- a/app/models/debug_file.rb +++ b/app/models/debug_file.rb @@ -16,6 +16,10 @@ class DebugFile < ApplicationRecord before_validation :generate_checksum + def multi_dsym? + metadata.select(:object).distinct.size > 1 + end + def download_filename "#{app.name}_#{device_type}_#{release_version}_#{build_version}_#{file.file.filename}" end diff --git a/app/views/debug_files/_metadata.html.slim b/app/views/debug_files/_metadata.html.slim index 21eace0b2..3122760be 100644 --- a/app/views/debug_files/_metadata.html.slim +++ b/app/views/debug_files/_metadata.html.slim @@ -1,3 +1,6 @@ +ruby: + multi_dsym = debug_file.multi_dsym? + .debug-file-section-body.p-1.d-none[ data-debug-file-target="source" ] @@ -18,5 +21,7 @@ = metadata.type td = metadata.object + - if multi_dsym && metadata.data['main_app'] == true + i.fa.fa-star.text-warning.pl-1 td - = number_to_human_size(metadata.size) \ No newline at end of file + = number_to_human_size(metadata.size) From 956ac265cc156cc4ee0ebaa70dc93fa7baaa3b55 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 10 Apr 2023 12:12:16 +0800 Subject: [PATCH 1439/2165] =?UTF-8?q?feat:=20=E5=BA=94=E7=94=A8=E7=89=88?= =?UTF-8?q?=E6=9C=AC=E8=AF=A6=E6=83=85=E6=96=B0=E5=A2=9E=E5=8C=B9=E9=85=8D?= =?UTF-8?q?=E5=88=B0=E7=9A=84=E8=B0=83=E8=AF=95=E6=96=87=E4=BB=B6=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E5=92=8C=E4=B8=8B=E8=BD=BD=E5=8A=9F=E8=83=BD=20(beta)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/debug_files_helper.rb | 12 +++++++ app/jobs/debug_file_teardown_job.rb | 1 - app/models/release.rb | 4 +++ app/views/releases/show.html.slim | 1 + .../releases/sidebar/_debug_file.html.slim | 31 +++++++++++++++++++ config/locales/zealot/en.yml | 1 + config/locales/zealot/zh-CN.yml | 1 + 7 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 app/helpers/debug_files_helper.rb create mode 100644 app/views/releases/sidebar/_debug_file.html.slim diff --git a/app/helpers/debug_files_helper.rb b/app/helpers/debug_files_helper.rb new file mode 100644 index 000000000..3726f1fc0 --- /dev/null +++ b/app/helpers/debug_files_helper.rb @@ -0,0 +1,12 @@ +# frozen_string_literal: true + +module DebugFilesHelper + def debug_file_type(debug_file) + case debug_file.device_type.downcase.to_sym + when :ios + 'dSYM' + when :android + 'Proguard' + end + end +end diff --git a/app/jobs/debug_file_teardown_job.rb b/app/jobs/debug_file_teardown_job.rb index bea6f7490..0cde490cd 100644 --- a/app/jobs/debug_file_teardown_job.rb +++ b/app/jobs/debug_file_teardown_job.rb @@ -10,7 +10,6 @@ def perform(debug_file, user_id = nil) when AppInfo::Format::DSYM parse_dsym(debug_file, parser) when AppInfo::Format::PROGUARD - update_debug_file_version(debug_file, parser) parse_proguard(debug_file, parser) end diff --git a/app/models/release.rb b/app/models/release.rb index 8b82ef5a8..e41c91216 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -244,6 +244,10 @@ def linux? platform_type.casecmp?('deb') end + def debug_file + DebugFile.find_by(app: app, release_version: release_version, build_version: build_version) + end + private def platform_type diff --git a/app/views/releases/show.html.slim b/app/views/releases/show.html.slim index f45d2e36f..5eab06336 100644 --- a/app/views/releases/show.html.slim +++ b/app/views/releases/show.html.slim @@ -12,6 +12,7 @@ .col-md-4.col-lg-3 = link_to_if user_signed_in?, t('releases.new.title'), new_channel_release_path(@channel), class: 'btn btn-success btn-block mb-3' + == render 'releases/sidebar/debug_file', debug_file: @release.debug_file == render 'releases/sidebar/version', channel: @release.channel == render 'releases/sidebar/qrcode' = link_to_if guest_mode_or_signed_in?, t('.view_detail'), friendly_channel_overview_path(@channel), class: 'btn btn-default btn-block' diff --git a/app/views/releases/sidebar/_debug_file.html.slim b/app/views/releases/sidebar/_debug_file.html.slim new file mode 100644 index 000000000..4f92f18a6 --- /dev/null +++ b/app/views/releases/sidebar/_debug_file.html.slim @@ -0,0 +1,31 @@ +- if debug_file.present? + ruby: + metadat_size = debug_file.metadata.count + multi_dsym = debug_file.multi_dsym? + .card + .card-header + h3.card-title + i.icon.fas.fa-bug + = t('releases.show.debug_file', type: debug_file_type(debug_file)) + span.badge.badge-warning.ml-1 beta + .card-tools + button.btn.btn-tool data-card-widget="collapse" + i.fas.fa-minus + .card-body.p-0 + - debug_file.metadata.each_with_index do |metadata, index| + - if metadata.type == 'proguard' + - metadata.data['files'].each_with_index do |file, f_index| + p.d-flex.flex-column.mb-0.pl-3.pb-2.pt-2 class="#{f_index == metadata.data['files'].size - 1 ? '' : 'border-bottom'}" + span.font-weight-bold = file["name"] + span.text-muted = number_to_human_size(file["size"]) + - else + p.d-flex.flex-column.mb-0.pl-3.pb-2.pt-2 class="#{index == metadat_size - 1 ? '' : 'border-bottom'}" + span.font-weight-bold + - if multi_dsym && metadata.data['main_app'] == true + i.fa.fa-star.text-warning.pr-1 + = "#{metadata.object} (#{metadata.type})" + span.text-muted = metadata.uuid + .card-footer.p-0 + a.btn.btn-icon.btn-block.btn-default.btn-flat.p-2 href="#{debug_file.file_url}" target="_blank" style="border:none" + i.icon.fas.fa-download + = t('debug_files.index.download', size: number_to_human_size(debug_file.file.size)) diff --git a/config/locales/zealot/en.yml b/config/locales/zealot/en.yml index 8492947cb..ca28e835c 100644 --- a/config/locales/zealot/en.yml +++ b/config/locales/zealot/en.yml @@ -395,6 +395,7 @@ en: changelog: Changelog devices: '%{count} test devices (UDID)' sync_devices_feature: Sync device name by using %{link} fastlane plugin + debug_file: '%{type} matched' qrcode: QR Code scan_qrcode_with_any_suppprted_app: Use your phone's camera to install it major_versions: :channels.show.major_versions diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index 4b0445544..660acdf00 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -391,6 +391,7 @@ zh-CN: changelog: 更新日志 devices: '%{count} 台测试设备 (UDID)' sync_devices_feature: 推荐使用%{link}同步设备名称 + debug_file: '%{type} 调试文件' qrcode: 二维码 scan_qrcode_with_any_suppprted_app: 任何支持二维码识别的 App 均可 major_versions: :'channels.show.major_versions' From 6812aa5f835ff80a33fb3fc038df4fbd6762db02 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Mon, 10 Apr 2023 16:45:05 +0800 Subject: [PATCH 1440/2165] =?UTF-8?q?feat:=20=E5=88=9D=E5=A7=8B=E5=8C=96?= =?UTF-8?q?=E8=BF=90=E8=A1=8C=E5=89=8D=E5=A2=9E=E5=8A=A0=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=BA=93=E7=89=88=E6=9C=AC=E6=A0=A1=E9=AA=8C=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/tasks/zealot/zealot.rake | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/lib/tasks/zealot/zealot.rake b/lib/tasks/zealot/zealot.rake index bce18cc66..215547485 100644 --- a/lib/tasks/zealot/zealot.rake +++ b/lib/tasks/zealot/zealot.rake @@ -17,24 +17,41 @@ namespace :zealot do if db_version.blank? || db_version.zero? Rake::Task['zealot:db:setup'].invoke else - Rake::Task['zealot:db:migrate'].invoke + Rake::Task['zealot:db:migrate'].invoke(db_version) end end # 初始化 task setup: ['db:create',] do - puts "Zealot setup database ..." + puts "Zealot initialize database ..." Rake::Task['db:setup'].invoke # need db/schema.rb Rake::Task['db:migrate:status'].invoke end # 升级 - task migrate: :environment do - puts "Zealot upgrade database ..." - Rake::Task['db:migrate'].invoke + task :migrate, %i[version] => :environment do |_, args| + file_version_str = Dir.children(Rails.root.join('db', 'migrate')) + .map { |f| File.basename(f).split('_')[0] } + .max + file_version = Time.parse(file_version_str) + db_version = Time.parse(args.version.to_s) + + if file_version == db_version + puts "Zealot database is up to date: #{file_version_str}" + next + end + + if file_version < db_version + puts "!!!Found zealot ran the previous version, database must rollback!!!" + puts "File version (#{file_version_str}) < Database version (#{args.version})" + else + puts "Zealot upgrade database ..." + Rake::Task['db:migrate'].invoke + end end end + desc 'Zealot | Print version' task version: :environment do puts Setting.version end From 4e89e17a906404f8050a9e56f7e28264265d446c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Apr 2023 21:57:35 +0000 Subject: [PATCH 1441/2165] chore(deps): bump esbuild from 0.17.15 to 0.17.16 Bumps [esbuild](https://github.com/evanw/esbuild) from 0.17.15 to 0.17.16. - [Release notes](https://github.com/evanw/esbuild/releases) - [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md) - [Commits](https://github.com/evanw/esbuild/compare/v0.17.15...v0.17.16) --- updated-dependencies: - dependency-name: esbuild dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 270 +++++++++++++++++++++++++-------------------------- 2 files changed, 136 insertions(+), 136 deletions(-) diff --git a/package.json b/package.json index 6a8976c83..4c83a22c8 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "admin-lte": "3.1.0", "clipboard": "^2.0.11", "compare-versions": "^5.0.3", - "esbuild": "^0.17.15", + "esbuild": "^0.17.16", "sass": "^1.60.0", "ua-parser-js": "^1.0.35" }, diff --git a/yarn.lock b/yarn.lock index 92f8727e6..617cbbe48 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,115 +2,115 @@ # yarn lockfile v1 -"@esbuild/android-arm64@0.17.15": - version "0.17.15" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.15.tgz#893ad71f3920ccb919e1757c387756a9bca2ef42" - integrity sha512-0kOB6Y7Br3KDVgHeg8PRcvfLkq+AccreK///B4Z6fNZGr/tNHX0z2VywCc7PTeWp+bPvjA5WMvNXltHw5QjAIA== - -"@esbuild/android-arm@0.17.15": - version "0.17.15" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.15.tgz#143e0d4e4c08c786ea410b9a7739779a9a1315d8" - integrity sha512-sRSOVlLawAktpMvDyJIkdLI/c/kdRTOqo8t6ImVxg8yT7LQDUYV5Rp2FKeEosLr6ZCja9UjYAzyRSxGteSJPYg== - -"@esbuild/android-x64@0.17.15": - version "0.17.15" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.15.tgz#d2d12a7676b2589864281b2274355200916540bc" - integrity sha512-MzDqnNajQZ63YkaUWVl9uuhcWyEyh69HGpMIrf+acR4otMkfLJ4sUCxqwbCyPGicE9dVlrysI3lMcDBjGiBBcQ== - -"@esbuild/darwin-arm64@0.17.15": - version "0.17.15" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.15.tgz#2e88e79f1d327a2a7d9d06397e5232eb0a473d61" - integrity sha512-7siLjBc88Z4+6qkMDxPT2juf2e8SJxmsbNVKFY2ifWCDT72v5YJz9arlvBw5oB4W/e61H1+HDB/jnu8nNg0rLA== - -"@esbuild/darwin-x64@0.17.15": - version "0.17.15" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.15.tgz#9384e64c0be91388c57be6d3a5eaf1c32a99c91d" - integrity sha512-NbImBas2rXwYI52BOKTW342Tm3LTeVlaOQ4QPZ7XuWNKiO226DisFk/RyPk3T0CKZkKMuU69yOvlapJEmax7cg== - -"@esbuild/freebsd-arm64@0.17.15": - version "0.17.15" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.15.tgz#2ad5a35bc52ebd9ca6b845dbc59ba39647a93c1a" - integrity sha512-Xk9xMDjBVG6CfgoqlVczHAdJnCs0/oeFOspFap5NkYAmRCT2qTn1vJWA2f419iMtsHSLm+O8B6SLV/HlY5cYKg== - -"@esbuild/freebsd-x64@0.17.15": - version "0.17.15" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.15.tgz#b513a48446f96c75fda5bef470e64d342d4379cd" - integrity sha512-3TWAnnEOdclvb2pnfsTWtdwthPfOz7qAfcwDLcfZyGJwm1SRZIMOeB5FODVhnM93mFSPsHB9b/PmxNNbSnd0RQ== - -"@esbuild/linux-arm64@0.17.15": - version "0.17.15" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.15.tgz#9697b168175bfd41fa9cc4a72dd0d48f24715f31" - integrity sha512-T0MVnYw9KT6b83/SqyznTs/3Jg2ODWrZfNccg11XjDehIved2oQfrX/wVuev9N936BpMRaTR9I1J0tdGgUgpJA== - -"@esbuild/linux-arm@0.17.15": - version "0.17.15" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.15.tgz#5b22062c54f48cd92fab9ffd993732a52db70cd3" - integrity sha512-MLTgiXWEMAMr8nmS9Gigx43zPRmEfeBfGCwxFQEMgJ5MC53QKajaclW6XDPjwJvhbebv+RzK05TQjvH3/aM4Xw== - -"@esbuild/linux-ia32@0.17.15": - version "0.17.15" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.15.tgz#eb28a13f9b60b5189fcc9e98e1024f6b657ba54c" - integrity sha512-wp02sHs015T23zsQtU4Cj57WiteiuASHlD7rXjKUyAGYzlOKDAjqK6bk5dMi2QEl/KVOcsjwL36kD+WW7vJt8Q== - -"@esbuild/linux-loong64@0.17.15": - version "0.17.15" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.15.tgz#32454bdfe144cf74b77895a8ad21a15cb81cfbe5" - integrity sha512-k7FsUJjGGSxwnBmMh8d7IbObWu+sF/qbwc+xKZkBe/lTAF16RqxRCnNHA7QTd3oS2AfGBAnHlXL67shV5bBThQ== - -"@esbuild/linux-mips64el@0.17.15": - version "0.17.15" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.15.tgz#af12bde0d775a318fad90eb13a0455229a63987c" - integrity sha512-ZLWk6czDdog+Q9kE/Jfbilu24vEe/iW/Sj2d8EVsmiixQ1rM2RKH2n36qfxK4e8tVcaXkvuV3mU5zTZviE+NVQ== - -"@esbuild/linux-ppc64@0.17.15": - version "0.17.15" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.15.tgz#34c5ed145b2dfc493d3e652abac8bd3baa3865a5" - integrity sha512-mY6dPkIRAiFHRsGfOYZC8Q9rmr8vOBZBme0/j15zFUKM99d4ILY4WpOC7i/LqoY+RE7KaMaSfvY8CqjJtuO4xg== - -"@esbuild/linux-riscv64@0.17.15": - version "0.17.15" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.15.tgz#87bd515e837f2eb004b45f9e6a94dc5b93f22b92" - integrity sha512-EcyUtxffdDtWjjwIH8sKzpDRLcVtqANooMNASO59y+xmqqRYBBM7xVLQhqF7nksIbm2yHABptoioS9RAbVMWVA== - -"@esbuild/linux-s390x@0.17.15": - version "0.17.15" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.15.tgz#20bf7947197f199ddac2ec412029a414ceae3aa3" - integrity sha512-BuS6Jx/ezxFuHxgsfvz7T4g4YlVrmCmg7UAwboeyNNg0OzNzKsIZXpr3Sb/ZREDXWgt48RO4UQRDBxJN3B9Rbg== - -"@esbuild/linux-x64@0.17.15": - version "0.17.15" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.15.tgz#31b93f9c94c195e852c20cd3d1914a68aa619124" - integrity sha512-JsdS0EgEViwuKsw5tiJQo9UdQdUJYuB+Mf6HxtJSPN35vez1hlrNb1KajvKWF5Sa35j17+rW1ECEO9iNrIXbNg== - -"@esbuild/netbsd-x64@0.17.15": - version "0.17.15" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.15.tgz#8da299b3ac6875836ca8cdc1925826498069ac65" - integrity sha512-R6fKjtUysYGym6uXf6qyNephVUQAGtf3n2RCsOST/neIwPqRWcnc3ogcielOd6pT+J0RDR1RGcy0ZY7d3uHVLA== - -"@esbuild/openbsd-x64@0.17.15": - version "0.17.15" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.15.tgz#04a1ec3d4e919714dba68dcf09eeb1228ad0d20c" - integrity sha512-mVD4PGc26b8PI60QaPUltYKeSX0wxuy0AltC+WCTFwvKCq2+OgLP4+fFd+hZXzO2xW1HPKcytZBdjqL6FQFa7w== - -"@esbuild/sunos-x64@0.17.15": - version "0.17.15" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.15.tgz#6694ebe4e16e5cd7dab6505ff7c28f9c1c695ce5" - integrity sha512-U6tYPovOkw3459t2CBwGcFYfFRjivcJJc1WC8Q3funIwX8x4fP+R6xL/QuTPNGOblbq/EUDxj9GU+dWKX0oWlQ== - -"@esbuild/win32-arm64@0.17.15": - version "0.17.15" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.15.tgz#1f95b2564193c8d1fee8f8129a0609728171d500" - integrity sha512-W+Z5F++wgKAleDABemiyXVnzXgvRFs+GVKThSI+mGgleLWluv0D7Diz4oQpgdpNzh4i2nNDzQtWbjJiqutRp6Q== - -"@esbuild/win32-ia32@0.17.15": - version "0.17.15" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.15.tgz#c362b88b3df21916ed7bcf75c6d09c6bf3ae354a" - integrity sha512-Muz/+uGgheShKGqSVS1KsHtCyEzcdOn/W/Xbh6H91Etm+wiIfwZaBn1W58MeGtfI8WA961YMHFYTthBdQs4t+w== - -"@esbuild/win32-x64@0.17.15": - version "0.17.15" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.15.tgz#c2e737f3a201ebff8e2ac2b8e9f246b397ad19b8" - integrity sha512-DjDa9ywLUUmjhV2Y9wUTIF+1XsmuFGvZoCmOWkli1XcNAh5t25cc7fgsCx4Zi/Uurep3TTLyDiKATgGEg61pkA== +"@esbuild/android-arm64@0.17.16": + version "0.17.16" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.16.tgz#7b18cab5f4d93e878306196eed26b6d960c12576" + integrity sha512-QX48qmsEZW+gcHgTmAj+x21mwTz8MlYQBnzF6861cNdQGvj2jzzFjqH0EBabrIa/WVZ2CHolwMoqxVryqKt8+Q== + +"@esbuild/android-arm@0.17.16": + version "0.17.16" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.17.16.tgz#5c47f6a7c2cada6ed4b4d4e72d8c66e76d812812" + integrity sha512-baLqRpLe4JnKrUXLJChoTN0iXZH7El/mu58GE3WIA6/H834k0XWvLRmGLG8y8arTRS9hJJibPnF0tiGhmWeZgw== + +"@esbuild/android-x64@0.17.16": + version "0.17.16" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.17.16.tgz#8686a6e98359071ffd5312046551943e7244c51a" + integrity sha512-G4wfHhrrz99XJgHnzFvB4UwwPxAWZaZBOFXh+JH1Duf1I4vIVfuYY9uVLpx4eiV2D/Jix8LJY+TAdZ3i40tDow== + +"@esbuild/darwin-arm64@0.17.16": + version "0.17.16" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.17.16.tgz#aa79fbf447630ca0696a596beba962a775bbf394" + integrity sha512-/Ofw8UXZxuzTLsNFmz1+lmarQI6ztMZ9XktvXedTbt3SNWDn0+ODTwxExLYQ/Hod91EZB4vZPQJLoqLF0jvEzA== + +"@esbuild/darwin-x64@0.17.16": + version "0.17.16" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.17.16.tgz#d5d68ee510507104da7e7503224c647c957e163e" + integrity sha512-SzBQtCV3Pdc9kyizh36Ol+dNVhkDyIrGb/JXZqFq8WL37LIyrXU0gUpADcNV311sCOhvY+f2ivMhb5Tuv8nMOQ== + +"@esbuild/freebsd-arm64@0.17.16": + version "0.17.16" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.17.16.tgz#b00b4cc8c2e424907cfe3a607384ab24794edd52" + integrity sha512-ZqftdfS1UlLiH1DnS2u3It7l4Bc3AskKeu+paJSfk7RNOMrOxmeFDhLTMQqMxycP1C3oj8vgkAT6xfAuq7ZPRA== + +"@esbuild/freebsd-x64@0.17.16": + version "0.17.16" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.17.16.tgz#84af4430a07730b50bbc945a90cf7036c1853b76" + integrity sha512-rHV6zNWW1tjgsu0dKQTX9L0ByiJHHLvQKrWtnz8r0YYJI27FU3Xu48gpK2IBj1uCSYhJ+pEk6Y0Um7U3rIvV8g== + +"@esbuild/linux-arm64@0.17.16": + version "0.17.16" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.17.16.tgz#35571d15de6272c862d9ce6341372fb3cef0f266" + integrity sha512-8yoZhGkU6aHu38WpaM4HrRLTFc7/VVD9Q2SvPcmIQIipQt2I/GMTZNdEHXoypbbGao5kggLcxg0iBKjo0SQYKA== + +"@esbuild/linux-arm@0.17.16": + version "0.17.16" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.17.16.tgz#b65c7cd5b0eadd08f91aab66b9dda81b6a4b2a70" + integrity sha512-n4O8oVxbn7nl4+m+ISb0a68/lcJClIbaGAoXwqeubj/D1/oMMuaAXmJVfFlRjJLu/ZvHkxoiFJnmbfp4n8cdSw== + +"@esbuild/linux-ia32@0.17.16": + version "0.17.16" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.17.16.tgz#673a68cb251ce44a00a6422ada29064c5a1cd2c0" + integrity sha512-9ZBjlkdaVYxPNO8a7OmzDbOH9FMQ1a58j7Xb21UfRU29KcEEU3VTHk+Cvrft/BNv0gpWJMiiZ/f4w0TqSP0gLA== + +"@esbuild/linux-loong64@0.17.16": + version "0.17.16" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.17.16.tgz#477e2da34ab46ffdbf4740fa6441e80045249385" + integrity sha512-TIZTRojVBBzdgChY3UOG7BlPhqJz08AL7jdgeeu+kiObWMFzGnQD7BgBBkWRwOtKR1i2TNlO7YK6m4zxVjjPRQ== + +"@esbuild/linux-mips64el@0.17.16": + version "0.17.16" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.17.16.tgz#e1e9687bbdaa831d7c34edc9278200982c1a4bf4" + integrity sha512-UPeRuFKCCJYpBbIdczKyHLAIU31GEm0dZl1eMrdYeXDH+SJZh/i+2cAmD3A1Wip9pIc5Sc6Kc5cFUrPXtR0XHA== + +"@esbuild/linux-ppc64@0.17.16": + version "0.17.16" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.17.16.tgz#2f19075d63622987e86e83a4b7866cd57b796c60" + integrity sha512-io6yShgIEgVUhExJejJ21xvO5QtrbiSeI7vYUnr7l+v/O9t6IowyhdiYnyivX2X5ysOVHAuyHW+Wyi7DNhdw6Q== + +"@esbuild/linux-riscv64@0.17.16": + version "0.17.16" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.17.16.tgz#bbf40a38f03ba2434fe69b5ceeec5d13c742b329" + integrity sha512-WhlGeAHNbSdG/I2gqX2RK2gfgSNwyJuCiFHMc8s3GNEMMHUI109+VMBfhVqRb0ZGzEeRiibi8dItR3ws3Lk+cA== + +"@esbuild/linux-s390x@0.17.16": + version "0.17.16" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.17.16.tgz#d2b8c0779ccd2b7917cdf0fab8831a468e0f9c01" + integrity sha512-gHRReYsJtViir63bXKoFaQ4pgTyah4ruiMRQ6im9YZuv+gp3UFJkNTY4sFA73YDynmXZA6hi45en4BGhNOJUsw== + +"@esbuild/linux-x64@0.17.16": + version "0.17.16" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.17.16.tgz#da48b39cfdc1b12a74976625f583f031eac43590" + integrity sha512-mfiiBkxEbUHvi+v0P+TS7UnA9TeGXR48aK4XHkTj0ZwOijxexgMF01UDFaBX7Q6CQsB0d+MFNv9IiXbIHTNd4g== + +"@esbuild/netbsd-x64@0.17.16": + version "0.17.16" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.17.16.tgz#ddef985aed37cc81908d2573b66c0299dbc49037" + integrity sha512-n8zK1YRDGLRZfVcswcDMDM0j2xKYLNXqei217a4GyBxHIuPMGrrVuJ+Ijfpr0Kufcm7C1k/qaIrGy6eG7wvgmA== + +"@esbuild/openbsd-x64@0.17.16": + version "0.17.16" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.17.16.tgz#85035bf89efd66e9068bc72aa6bb85a2c317d090" + integrity sha512-lEEfkfsUbo0xC47eSTBqsItXDSzwzwhKUSsVaVjVji07t8+6KA5INp2rN890dHZeueXJAI8q0tEIfbwVRYf6Ew== + +"@esbuild/sunos-x64@0.17.16": + version "0.17.16" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.17.16.tgz#16338ecab854cb2d831cc9ee9cc21ef69566e1f3" + integrity sha512-jlRjsuvG1fgGwnE8Afs7xYDnGz0dBgTNZfgCK6TlvPH3Z13/P5pi6I57vyLE8qZYLrGVtwcm9UbUx1/mZ8Ukag== + +"@esbuild/win32-arm64@0.17.16": + version "0.17.16" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.17.16.tgz#423f46bb744aff897a5f74435469e1ef4952e343" + integrity sha512-TzoU2qwVe2boOHl/3KNBUv2PNUc38U0TNnzqOAcgPiD/EZxT2s736xfC2dYQbszAwo4MKzzwBV0iHjhfjxMimg== + +"@esbuild/win32-ia32@0.17.16": + version "0.17.16" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.17.16.tgz#1978be5b192c7063bd2c8d5960eb213e1964740e" + integrity sha512-B8b7W+oo2yb/3xmwk9Vc99hC9bNolvqjaTZYEfMQhzdpBsjTvZBlXQ/teUE55Ww6sg//wlcDjOaqldOKyigWdA== + +"@esbuild/win32-x64@0.17.16": + version "0.17.16" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.17.16.tgz#260f19b0a3300d22c3a3f52722c671dc561edaa3" + integrity sha512-xJ7OH/nanouJO9pf03YsL9NAFQBHd8AqfrQd7Pf5laGyyTt/gToul6QYOA/i5i/q8y9iaM5DQFNTgpi995VkOg== "@fortawesome/fontawesome-free@^5.15.3": version "5.15.4" @@ -777,33 +777,33 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -esbuild@^0.17.15: - version "0.17.15" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.15.tgz#209ebc87cb671ffb79574db93494b10ffaf43cbc" - integrity sha512-LBUV2VsUIc/iD9ME75qhT4aJj0r75abCVS0jakhFzOtR7TQsqQA5w0tZ+KTKnwl3kXE0MhskNdHDh/I5aCR1Zw== +esbuild@^0.17.16: + version "0.17.16" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.17.16.tgz#5efec24a8ff29e0c157359f27e1b5532a728b720" + integrity sha512-aeSuUKr9aFVY9Dc8ETVELGgkj4urg5isYx8pLf4wlGgB0vTFjxJQdHnNH6Shmx4vYYrOTLCHtRI5i1XZ9l2Zcg== optionalDependencies: - "@esbuild/android-arm" "0.17.15" - "@esbuild/android-arm64" "0.17.15" - "@esbuild/android-x64" "0.17.15" - "@esbuild/darwin-arm64" "0.17.15" - "@esbuild/darwin-x64" "0.17.15" - "@esbuild/freebsd-arm64" "0.17.15" - "@esbuild/freebsd-x64" "0.17.15" - "@esbuild/linux-arm" "0.17.15" - "@esbuild/linux-arm64" "0.17.15" - "@esbuild/linux-ia32" "0.17.15" - "@esbuild/linux-loong64" "0.17.15" - "@esbuild/linux-mips64el" "0.17.15" - "@esbuild/linux-ppc64" "0.17.15" - "@esbuild/linux-riscv64" "0.17.15" - "@esbuild/linux-s390x" "0.17.15" - "@esbuild/linux-x64" "0.17.15" - "@esbuild/netbsd-x64" "0.17.15" - "@esbuild/openbsd-x64" "0.17.15" - "@esbuild/sunos-x64" "0.17.15" - "@esbuild/win32-arm64" "0.17.15" - "@esbuild/win32-ia32" "0.17.15" - "@esbuild/win32-x64" "0.17.15" + "@esbuild/android-arm" "0.17.16" + "@esbuild/android-arm64" "0.17.16" + "@esbuild/android-x64" "0.17.16" + "@esbuild/darwin-arm64" "0.17.16" + "@esbuild/darwin-x64" "0.17.16" + "@esbuild/freebsd-arm64" "0.17.16" + "@esbuild/freebsd-x64" "0.17.16" + "@esbuild/linux-arm" "0.17.16" + "@esbuild/linux-arm64" "0.17.16" + "@esbuild/linux-ia32" "0.17.16" + "@esbuild/linux-loong64" "0.17.16" + "@esbuild/linux-mips64el" "0.17.16" + "@esbuild/linux-ppc64" "0.17.16" + "@esbuild/linux-riscv64" "0.17.16" + "@esbuild/linux-s390x" "0.17.16" + "@esbuild/linux-x64" "0.17.16" + "@esbuild/netbsd-x64" "0.17.16" + "@esbuild/openbsd-x64" "0.17.16" + "@esbuild/sunos-x64" "0.17.16" + "@esbuild/win32-arm64" "0.17.16" + "@esbuild/win32-ia32" "0.17.16" + "@esbuild/win32-x64" "0.17.16" ev-emitter@^1.0.0: version "1.1.1" From 496a15b7f3959f68d2f25cafd465a8e2291b1631 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 11 Apr 2023 04:31:47 +0000 Subject: [PATCH 1442/2165] chore(deps): bump sass from 1.60.0 to 1.61.0 Bumps [sass](https://github.com/sass/dart-sass) from 1.60.0 to 1.61.0. - [Release notes](https://github.com/sass/dart-sass/releases) - [Changelog](https://github.com/sass/dart-sass/blob/main/CHANGELOG.md) - [Commits](https://github.com/sass/dart-sass/compare/1.60.0...1.61.0) --- updated-dependencies: - dependency-name: sass dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- package.json | 2 +- yarn.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 4c83a22c8..98be5223e 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "clipboard": "^2.0.11", "compare-versions": "^5.0.3", "esbuild": "^0.17.16", - "sass": "^1.60.0", + "sass": "^1.61.0", "ua-parser-js": "^1.0.35" }, "scripts": { diff --git a/yarn.lock b/yarn.lock index 617cbbe48..4bd01949b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1428,10 +1428,10 @@ safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -sass@^1.60.0: - version "1.60.0" - resolved "https://registry.yarnpkg.com/sass/-/sass-1.60.0.tgz#657f0c23a302ac494b09a5ba8497b739fb5b5a81" - integrity sha512-updbwW6fNb5gGm8qMXzVO7V4sWf7LMXnMly/JEyfbfERbVH46Fn6q02BX7/eHTdKpE7d+oTkMMQpFWNUMfFbgQ== +sass@^1.61.0: + version "1.61.0" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.61.0.tgz#d1f6761bb833887b8fdab32a24e052c40531d02b" + integrity sha512-PDsN7BrVkNZK2+dj/dpKQAWZavbAQ87IXqVvw2+oEYI+GwlTWkvbQtL7F2cCNbMqJEYKPh1EcjSxsnqIb/kyaQ== dependencies: chokidar ">=3.0.0 <4.0.0" immutable "^4.0.0" From 5d96792947af1cbe3e27d06ce9e09807d1ee5109 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 11 Apr 2023 13:59:57 +0800 Subject: [PATCH 1443/2165] =?UTF-8?q?feat:=20=E5=85=A8=E6=96=B0=E8=B0=83?= =?UTF-8?q?=E8=AF=95=E6=96=87=E4=BB=B6=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/assets/stylesheets/app.scss | 2 +- app/assets/stylesheets/application.sass.scss | 1 - app/assets/stylesheets/debug_files.scss | 57 --------- app/controllers/api/debug_files_controller.rb | 4 +- .../channels/branches_controller.rb | 2 +- .../channels/release_types_controller.rb | 2 +- .../channels/versions_controller.rb | 4 +- app/controllers/channels_controller.rb | 2 +- app/controllers/dashboards_controller.rb | 4 +- app/controllers/debug_files_controller.rb | 28 ++++- app/controllers/teardowns_controller.rb | 2 +- app/helpers/debug_files_helper.rb | 5 + .../controllers/debug_file_controller.js | 13 -- app/javascript/controllers/index.js | 3 - app/jobs/debug_file_teardown_job.rb | 10 +- app/models/app.rb | 10 +- app/models/debug_file.rb | 71 ++++++++++- app/models/release.rb | 4 +- app/models/setting.rb | 3 + app/views/admin/apple_keys/show.html.slim | 2 +- app/views/apps/show.html.slim | 2 +- app/views/debug_files/_debug_file.html.slim | 55 -------- app/views/debug_files/_help.html.slim | 6 +- app/views/debug_files/_metadata.html.slim | 27 ---- app/views/debug_files/device.html.slim | 65 ++++++++++ app/views/debug_files/index.html.slim | 36 +++--- app/views/debug_files/new.html.slim | 2 +- app/views/debug_files/show.html.slim | 119 ++++++++++++++++++ app/views/releases/body/_metadata.html.slim | 24 ++-- .../releases/sidebar/_debug_file.html.slim | 2 +- config/locales/zealot/zh-CN.yml | 30 ++++- config/routes.rb | 8 +- ...093112_add_debug_file_device_type_index.rb | 6 + db/schema.rb | 4 +- 34 files changed, 394 insertions(+), 221 deletions(-) delete mode 100644 app/assets/stylesheets/debug_files.scss delete mode 100644 app/javascript/controllers/debug_file_controller.js delete mode 100644 app/views/debug_files/_debug_file.html.slim delete mode 100644 app/views/debug_files/_metadata.html.slim create mode 100644 app/views/debug_files/device.html.slim create mode 100644 app/views/debug_files/show.html.slim create mode 100644 db/migrate/20230410093112_add_debug_file_device_type_index.rb diff --git a/app/assets/stylesheets/app.scss b/app/assets/stylesheets/app.scss index 6fe00c726..973317ea4 100644 --- a/app/assets/stylesheets/app.scss +++ b/app/assets/stylesheets/app.scss @@ -104,7 +104,7 @@ $ios-install-issue-color: rgb(245, 39, 90); } .app-name { - padding-top: 6px; + padding-top: 3px; padding-left: 60px; } diff --git a/app/assets/stylesheets/application.sass.scss b/app/assets/stylesheets/application.sass.scss index 35ecf89c9..664a1b419 100644 --- a/app/assets/stylesheets/application.sass.scss +++ b/app/assets/stylesheets/application.sass.scss @@ -8,6 +8,5 @@ @import 'app'; @import 'channel'; @import 'teardown'; -@import 'debug_files'; @import 'devise'; @import 'admin'; diff --git a/app/assets/stylesheets/debug_files.scss b/app/assets/stylesheets/debug_files.scss deleted file mode 100644 index f4a7a63b4..000000000 --- a/app/assets/stylesheets/debug_files.scss +++ /dev/null @@ -1,57 +0,0 @@ -.debug-file-section { - position: relative; - width: 100%; - - .debug-file-section-header { - display: block; - position: relative; - - .debug-file-toggle { - padding: 10px 2px; - } - - .debug-file-section-title { - display: inline-block; - font-size: 20px; - font-weight: bold; - margin: 0; - line-height: 1; - - .debug-file-version, - .debug-file-device-type { - padding-right: 5px; - } - - .debug-file-device-type { - color: rgb(167, 181, 192); - font-size: 18px; - } - } - - .debug-file-build-version { - color: rgb(161, 171, 187); - font-size: 14px; - } - - .debug-file-section-size { - float: right; - margin-top: -50px; - margin-bottom: -5px; - } - } - - .debug-file-section-body { - border-top-left-radius: 0; - border-top-right-radius: 0; - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; - - .table { - cursor: default; - } - } - - .debug-file-section-body table { - margin-bottom: 0; - } -} diff --git a/app/controllers/api/debug_files_controller.rb b/app/controllers/api/debug_files_controller.rb index 23b26e7ab..2c7d418c5 100644 --- a/app/controllers/api/debug_files_controller.rb +++ b/app/controllers/api/debug_files_controller.rb @@ -8,8 +8,8 @@ class Api::DebugFilesController < Api::BaseController # GET /api/debug_files def index @debug_files = DebugFile.where(app: @channel.app) - .page(params.fetch(:page, 1).to_i) - .per(params.fetch(:per_page, 10).to_i) + .page(params.fetch(:page, 1)) + .per(params.fetch(:per_page, Setting.per_page)) .order(id: :desc) @debug_files = @debug_files.where(device_type: @channel.device_type) diff --git a/app/controllers/channels/branches_controller.rb b/app/controllers/channels/branches_controller.rb index bef48acf5..0acc7fc96 100644 --- a/app/controllers/channels/branches_controller.rb +++ b/app/controllers/channels/branches_controller.rb @@ -18,7 +18,7 @@ def set_releases .where(branch: @branch) .order(id: :desc) .page(params.fetch(:page, 1)) - .per(params.fetch(:per_page, 10)) + .per(params.fetch(:per_page, Setting.per_page)) end def set_channel diff --git a/app/controllers/channels/release_types_controller.rb b/app/controllers/channels/release_types_controller.rb index 411d3d66c..743e44ef6 100644 --- a/app/controllers/channels/release_types_controller.rb +++ b/app/controllers/channels/release_types_controller.rb @@ -19,7 +19,7 @@ def set_releases .where(release_type: @type) .order(id: :desc) .page(params.fetch(:page, 1)) - .per(params.fetch(:per_page, 10)) + .per(params.fetch(:per_page, Setting.per_page)) end def set_channel diff --git a/app/controllers/channels/versions_controller.rb b/app/controllers/channels/versions_controller.rb index 95ffdfc23..59433baad 100644 --- a/app/controllers/channels/versions_controller.rb +++ b/app/controllers/channels/versions_controller.rb @@ -10,7 +10,7 @@ def index @releases = @channel.releases .order(id: :desc) .page(params.fetch(:page, 1)) - .per(params.fetch(:per_page, 10)) + .per(params.fetch(:per_page, Setting.per_page)) render 'channels/filters/index' end @@ -23,7 +23,7 @@ def show .where(release_version: @version) .order(id: :desc) .page(params.fetch(:page, 1)) - .per(params.fetch(:per_page, 10)) + .per(params.fetch(:per_page, Setting.per_page)) render 'channels/filters/index' end diff --git a/app/controllers/channels_controller.rb b/app/controllers/channels_controller.rb index 0691e8d7b..7bb123da2 100644 --- a/app/controllers/channels_controller.rb +++ b/app/controllers/channels_controller.rb @@ -10,7 +10,7 @@ def show @web_hook = @channel.web_hooks.new @releases = @channel.releases .page(params.fetch(:page, 1)) - .per(params.fetch(:per_page, 10)) + .per(params.fetch(:per_page, Setting.per_page)) .order(id: :desc) @versions = @channel.release_versions(5) end diff --git a/app/controllers/dashboards_controller.rb b/app/controllers/dashboards_controller.rb index e8ff1a147..cd113092b 100644 --- a/app/controllers/dashboards_controller.rb +++ b/app/controllers/dashboards_controller.rb @@ -13,7 +13,9 @@ def index private def recently_upload - @releases = Release.page(params.fetch(:page, 1)).per(params.fetch(:per_page, 10)).order(id: :desc) + @releases = Release.page(params.fetch(:page, 1)) + .per(params.fetch(:per_page, Setting.per_page)) + .order(id: :desc) end def system_analytics diff --git a/app/controllers/debug_files_controller.rb b/app/controllers/debug_files_controller.rb index 227819c73..cd72ff248 100644 --- a/app/controllers/debug_files_controller.rb +++ b/app/controllers/debug_files_controller.rb @@ -6,10 +6,32 @@ class DebugFilesController < ApplicationController def index @title = t('debug_files.title') - @apps = App.avaiable_debug_files + @apps = App.has_debug_files authorize @apps end + def show + @debug_file = DebugFile.find(params[:id]) + @app = @debug_file.app + + version = "#{@debug_file.release_version} (#{@debug_file.build_version})" + @title = t('.title', + app: @app.name, + device: @debug_file.device_type, + version: version + ) + end + + def device + @app = App.find(params[:app_id]) + @debug_files = DebugFile.where( + app_id: params[:app_id], + device_type: params[:device] + ).page(params.fetch(:page, 1)).per(params.fetch(:per_page, Setting.per_page)) + + @title = t('.title', app: @app.name, device: params[:device]) + end + def new @title = t('debug_files.index.upload') @apps = App.all @@ -24,8 +46,10 @@ def create return render :new, status: :unprocessable_entity unless @debug_file.save + device_type = DebugFile.device_types[@debug_file.device_type] + DebugFileTeardownJob.perform_later(@debug_file, current_user.id) - redirect_to debug_files_url, notice: t('activerecord.success.create', key: t('debug_files.title')) + redirect_to device_app_debug_files_url(@debug_file.app, device_type), notice: t('activerecord.success.create', key: t('debug_files.title')) end def destroy diff --git a/app/controllers/teardowns_controller.rb b/app/controllers/teardowns_controller.rb index a39861016..175dc531e 100644 --- a/app/controllers/teardowns_controller.rb +++ b/app/controllers/teardowns_controller.rb @@ -7,7 +7,7 @@ class TeardownsController < ApplicationController def index @title = t('.title') @metadata = Metadatum.page(params.fetch(:page, 1)) - .per(params.fetch(:per_page, 50)) + .per(params.fetch(:per_page, Setting.per_page)) .order(id: :desc) end diff --git a/app/helpers/debug_files_helper.rb b/app/helpers/debug_files_helper.rb index 3726f1fc0..e51e49125 100644 --- a/app/helpers/debug_files_helper.rb +++ b/app/helpers/debug_files_helper.rb @@ -1,6 +1,11 @@ # frozen_string_literal: true module DebugFilesHelper + + def ios_debug_file?(debug_file) + debug_file.device_type.downcase.to_sym == :ios + end + def debug_file_type(debug_file) case debug_file.device_type.downcase.to_sym when :ios diff --git a/app/javascript/controllers/debug_file_controller.js b/app/javascript/controllers/debug_file_controller.js deleted file mode 100644 index ba65e89e5..000000000 --- a/app/javascript/controllers/debug_file_controller.js +++ /dev/null @@ -1,13 +0,0 @@ -import { Controller } from "@hotwired/stimulus" - -export default class extends Controller { - static targets = ["source"] - - connect() { - this.element.style.cursor = "pointer" - } - - toggle() { - this.sourceTarget.classList.toggle("d-none") - } -} \ No newline at end of file diff --git a/app/javascript/controllers/index.js b/app/javascript/controllers/index.js index 89ca33acd..6beb0697e 100644 --- a/app/javascript/controllers/index.js +++ b/app/javascript/controllers/index.js @@ -9,9 +9,6 @@ application.register("clipboard-center", ClipboardCenterController) import ReleaseDownloadController from "./release_download_controller" application.register("release-download", ReleaseDownloadController) -import DebugFileController from "./debug_file_controller" -application.register("debug-file", DebugFileController) - import DestroyController from "./destroy_controller" application.register("destroy", DestroyController) diff --git a/app/jobs/debug_file_teardown_job.rb b/app/jobs/debug_file_teardown_job.rb index 0cde490cd..090298f60 100644 --- a/app/jobs/debug_file_teardown_job.rb +++ b/app/jobs/debug_file_teardown_job.rb @@ -68,11 +68,10 @@ def parse_dsym(debug_file, parser) metadata.size = macho.size metadata.type = macho.cpu_name metadata.object = debug_info.object - if debug_info == matched_debug_info - metadata.data = { - main_app: true - } - end + metadata.data = { + main: debug_info.identifier == matched_debug_info.identifier, + identifier: debug_info.identifier, + } end end end @@ -88,6 +87,7 @@ def parse_proguard(debug_file, parser) end debug_file.metadata.find_or_create_by(uuid: parser.uuid) do |metadata| + metadata.object = parser&.package_name metadata.type = parser.format metadata.data = { files: files(parser) } end diff --git a/app/models/app.rb b/app/models/app.rb index ebd0ba704..4f4038a8e 100644 --- a/app/models/app.rb +++ b/app/models/app.rb @@ -8,7 +8,7 @@ class App < ApplicationRecord has_many :debug_files, dependent: :destroy scope :all_names, -> { all.map { |c| [c.name, c.id] } } - scope :avaiable_debug_files, -> { joins(:debug_files).distinct } + scope :has_debug_files, -> { joins(:debug_files).distinct } validates :name, presence: true @@ -36,6 +36,14 @@ def total_releases end end + def android_debug_files + debug_files.where(device_type: 'Android') + end + + def ios_debug_files + debug_files.where(device_type: 'iOS') + end + # Fetch all bundle id of iOS app def bundle_ids all_idenfiters(device_type: 'iOS')[:ios] diff --git a/app/models/debug_file.rb b/app/models/debug_file.rb index 04ecfea2d..461783a22 100644 --- a/app/models/debug_file.rb +++ b/app/models/debug_file.rb @@ -3,6 +3,11 @@ class DebugFile < ApplicationRecord include Rails.application.routes.url_helpers + default_scope { order(id: :desc) } + + paginates_per 50 + max_paginates_per 100 + mount_uploader :file, DebugFileUploader belongs_to :app @@ -16,14 +21,78 @@ class DebugFile < ApplicationRecord before_validation :generate_checksum - def multi_dsym? + def self.apps + App.where(id: select(:app_id).distinct) + end + + def processing? + metadata.count.zero? + end + + def name + name = main_object.object if device_type == 'iOS' + name || app.name + end + + def bundle_id + bundle_id = case device_type.downcase.to_sym + when :ios + main_object.data['identifier'] + when :android + proguard.object + end + bundle_id || app.recently_release.bundle_id + end + alias package_name bundle_id + + # iOS only + def main_object + main_objects.first + end + + # iOS only + def main_objects + if multi_object? + metadata.where("data->>'main' = ?", 'true') + else + [metadata.first] + end + end + + # iOS only + def archs + metadata.select(:type).distinct.map(&:type) + end + + # iOS only + def libraries + return [] unless multi_object? + + metadata.where("data->>'main' = ?", 'false') + end + + # iOS only + def multi_object? metadata.select(:object).distinct.size > 1 end + # Android only + def proguard_files + proguard&.data&.fetch('files') + end + + def proguard + metadata.first + end + def download_filename "#{app.name}_#{device_type}_#{release_version}_#{build_version}_#{file.file.filename}" end + def filesize + file&.size + end + def file? return false if file.blank? diff --git a/app/models/release.rb b/app/models/release.rb index e41c91216..84bb52cce 100644 --- a/app/models/release.rb +++ b/app/models/release.rb @@ -28,8 +28,8 @@ class Release < ApplicationRecord delegate :scheme, to: :channel delegate :app, to: :scheme - paginates_per 20 - max_paginates_per 50 + paginates_per 50 + max_paginates_per 100 def self.version_by_channel(channel_slug, release_id) channel = Channel.friendly.find(channel_slug) diff --git a/app/models/setting.rb b/app/models/setting.rb index e9fd4e37c..90057d131 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -34,6 +34,9 @@ class Setting < RailsSettings::Base field :preset_role, default: 'user', type: :string, display: true, validates: { presence: true, inclusion: { in: builtin_roles.keys.map(&:to_s) } } field :preset_install_limited, default: builtin_install_limited, type: :array, display: true + + field :per_page, default: 25, type: :integer + field :max_per_page, default: 100, type: :integer end # 模式开关 diff --git a/app/views/admin/apple_keys/show.html.slim b/app/views/admin/apple_keys/show.html.slim index 3d105a52d..b2a22e6bc 100644 --- a/app/views/admin/apple_keys/show.html.slim +++ b/app/views/admin/apple_keys/show.html.slim @@ -67,7 +67,7 @@ ruby: .card-footer p - if @apple_key.last_synced_at.present? - span title="#{@apple_key.last_synced_at}" + span title="#{@apple_key.last_synced_at}" data-toggle="tooltip" = t('.last_synced_at', time: time_ago_in_words(@apple_key.last_synced_at)) - else = t('.never_sync') diff --git a/app/views/apps/show.html.slim b/app/views/apps/show.html.slim index f7263cafe..3ba63dd72 100644 --- a/app/views/apps/show.html.slim +++ b/app/views/apps/show.html.slim @@ -28,7 +28,7 @@ ruby: .card-tools - if !scheme.new_build_callout span.badge.rounded-pill.text-bg-secondary - i.fa.fa-bell-slash.text-success title="新上传版本提示窗" alt="sdfsfdsfsfd" + i.fa.fa-bell-slash.text-success title="新上传版本提示窗" data-toggle="tooltip" .card-body.p-0 section.app-section id="scheme-#{scheme.id}" table.table diff --git a/app/views/debug_files/_debug_file.html.slim b/app/views/debug_files/_debug_file.html.slim deleted file mode 100644 index d63d5cab1..000000000 --- a/app/views/debug_files/_debug_file.html.slim +++ /dev/null @@ -1,55 +0,0 @@ -ruby: - debug_files = app.debug_files.where(device_type: value).order(id: :desc) - -.tab-pane id="tab-#{app.id}-#{value.downcase}" class="#{i == 0 ? 'active' : ''}" - - if debug_files.count > 0 - table.table.table-hover - - debug_files.each do |debug_file| - tr[ - data-controller="destroy" - data-destroy-title-value="#{t('debug_files.confirm.destroy.title')}" - data-destroy-content-value="#{t('debug_files.confirm.destroy.body')}" - data-destroy-cancel-value="#{t('debug_files.confirm.destroy.cancel')}" - ] - td - .debug-file-section data-controller="debug-file" - .debug-file-section-header - .debug-file-toggle data-action="click->debug-file#toggle" - h3.debug-file-section-title - - unless debug_file.build_version.blank? - span.debug-file-version - = debug_file.release_version - span.debug-file-device-type - = platform_name(debug_file.device_type) - .debug-file-build-version - - if debug_file.build_version.blank? - = t('debug_files.index.processing') - - else - = t('debug_files.index.version', version: debug_file.build_version) - - .debug-file-section-size - - if debug_file.file? - a.btn.btn-icon.btn-sm.btn-success.btn-flat href="#{debug_file.file_url}" target="_blank" - i.icon.fas.fa-download - = t('debug_files.index.download', size: number_to_human_size(debug_file.file.size)) - - else - button.btn.btn-secondary.btn-icon.btn-sm.btn-flat.disabled - i.icon.fas.fa-ghost - = t('debug_files.index.missing_file') - - if user_signed_in? - button.btn.btn-icon.btn-sm.btn-danger.btn-flat[ - data-action="click->destroy#click" - ] - i.icon.fas.fa-trash-alt - = t('debug_files.index.destroy') - - = button_to t('debug_files.confirm.destroy.ok'), debug_file_path(debug_file), method: :delete, \ - class: 'btn btn-danger d-none', form: { data: { 'destroy-target' => 'destroyButton' } } - .div.text-center - small style="color: #999" - = t('debug_files.index.uploaded_at', time: time_ago_in_words(debug_file.created_at)) - - == render 'metadata', debug_file: debug_file - - else - .alert - = t('debug_files.index.empty_content') diff --git a/app/views/debug_files/_help.html.slim b/app/views/debug_files/_help.html.slim index da8fd2fc8..df7320a9f 100644 --- a/app/views/debug_files/_help.html.slim +++ b/app/views/debug_files/_help.html.slim @@ -1,9 +1,9 @@ .col-md-12 - .card.collapsed-card + .card .card-header.card-border h3.card-title = t('debug_files.help.title') .card-tools button.btn.btn-tool data-card-widget="collapse" - i.fas.fa-plus + i.fas.fa-minus .card-body.table-responsive - = t('debug_files.help.body_html') \ No newline at end of file + = t('debug_files.help.body_html') diff --git a/app/views/debug_files/_metadata.html.slim b/app/views/debug_files/_metadata.html.slim deleted file mode 100644 index 3122760be..000000000 --- a/app/views/debug_files/_metadata.html.slim +++ /dev/null @@ -1,27 +0,0 @@ -ruby: - multi_dsym = debug_file.multi_dsym? - -.debug-file-section-body.p-1.d-none[ - data-debug-file-target="source" -] - table.table - - debug_file.metadata.each do |metadata| - - if metadata.type == 'proguard' - - metadata.data['files'].each do |file| - tr - td colspan="2" - = file["name"] - td colspan="2" - = number_to_human_size(file["size"]) - - else - tr - td - = metadata.uuid - td - = metadata.type - td - = metadata.object - - if multi_dsym && metadata.data['main_app'] == true - i.fa.fa-star.text-warning.pl-1 - td - = number_to_human_size(metadata.size) diff --git a/app/views/debug_files/device.html.slim b/app/views/debug_files/device.html.slim new file mode 100644 index 000000000..c16044b3a --- /dev/null +++ b/app/views/debug_files/device.html.slim @@ -0,0 +1,65 @@ +- content_for :title do + = @title + +- content_for :section_title do + = @title + +- content_for :section_rightpanel do + - if user_signed_in? + a.btn.btn-icon.btn-success href="#{new_debug_file_path}" + i.icon.far.fa-plus-square + = t('debug_files.index.upload') + +.row + .col-md-12 + - if @debug_files.present? + - @debug_files.each do |debug_file| + .debug-file.row.rounded-lg.ml-1.mr-1.mb-3.bg-white.border + .col-md-3.debug-file-version.pt-3 + h6.debug-file-title.mb-1 + - if debug_file.processing? + = link_to t('.number', value: debug_file.id), debug_file_path(debug_file) + - else + = link_to "#{debug_file.release_version} (#{debug_file.build_version})", debug_file_path(debug_file) + abbr.debug-file-date.small data-toggle="tooltip" data-placement="bottom" title="#{debug_file.created_at}" + = time_ago_in_words(debug_file.created_at) + .col.p-0.border-left + - if debug_file.processing? + div.pl-3.pt-3.bg-light + h6.pb-2 = t('.processing') + p.small = t('.refresh_page') + - elsif ios_debug_file?(debug_file) + table.table.table-borderless.mb-0 + thead + tr.bg-light + td.col-md-4 = t('.main_dsym') + td.col-md-4 = t('.arch') + td.col-md-2 = t('.libraries') + td.col-md-2 = t('.filesize') + tbody + tr + td = debug_file.main_object.object + td + - debug_file.archs.each do |arch| + span.badge.badge-secondary.ml-1 = arch + td = debug_file.libraries.size + td = number_to_human_size(debug_file.filesize) + - else + table.table.table-borderless.mb-0 + thead + tr.bg-light + td.col-md-4 = t('.filesize') + td.col-md-2 = t('.filesize') + tbody + tr + td = debug_file.proguard_files&.size + td = number_to_human_size(debug_file.filesize) + + - if @debug_files.total_pages > 1 + .pt-2.pb-3.pr-1.float-right + = paginate @debug_files + - else + .card.card-outline.card-warning + .card-header.card-border + h3.card-title = t('debug_files.index.not_found.title') + .card-body = t('debug_files.index.not_found.body_html') diff --git a/app/views/debug_files/index.html.slim b/app/views/debug_files/index.html.slim index f72524a11..3d2dcd6b0 100644 --- a/app/views/debug_files/index.html.slim +++ b/app/views/debug_files/index.html.slim @@ -11,25 +11,25 @@ = t('debug_files.index.upload') .row - .col-md-12 - - if DebugFile.count > 0 - - @apps.each do |app| - .card - .card-header - h3.card-title = app.name - .card-tools - ul.nav.nav-pills - - DebugFile.device_types.each_with_index do |(value, name), i| - li.nav-item - a.nav-link class="#{i == 0 ? 'active' : ''}" data-toggle="tab" href="#tab-#{app.id}-#{value.downcase}" = name - .card-body.p-0 - .tab-content - - DebugFile.device_types.each_with_index do |(value, name), i| - == render 'debug_file', app: app, value: value, name: name, i: i - - else + - if @apps.present? + - @apps.each_with_index do |app, i| + .col-md-3 + .card.widget-app + .card-body.p-0.pt-3 + .text-center + = app_icon(app.recently_release, class: 'app-icon elevation-1 img-circle') + h3.profile-username.text-center + = app.name + ul.list-group.list-group-unbordered.pt-2 + li.list-group-item.pl-3.pr-4 + b = t('.android_count') + span.float-right = link_to app.android_debug_files.count, device_app_debug_files_path(app, 'Android') + li.list-group-item.pl-3.pr-4 + b = t('ios_count') + span.float-right = link_to app.ios_debug_files.count, device_app_debug_files_path(app, 'iOS') + - else + .col-md-12 .card.card-outline.card-warning .card-header.card-border h3.card-title = t('debug_files.index.not_found.title') .card-body = t('debug_files.index.not_found.body_html') - - == render 'help' diff --git a/app/views/debug_files/new.html.slim b/app/views/debug_files/new.html.slim index 912b6684c..4282aff04 100644 --- a/app/views/debug_files/new.html.slim +++ b/app/views/debug_files/new.html.slim @@ -14,4 +14,4 @@ .card-body == render 'form' - == render 'help' \ No newline at end of file + == render 'help' diff --git a/app/views/debug_files/show.html.slim b/app/views/debug_files/show.html.slim new file mode 100644 index 000000000..493c344d7 --- /dev/null +++ b/app/views/debug_files/show.html.slim @@ -0,0 +1,119 @@ +- content_for :title do + = @title + +- content_for :section_title do + = @title + +.row + .col-md-12 + .app-detail.card + .card-header + h3.card-title + = app_icon(@debug_file.app.recently_release, class: 'app-icon img-circle img-bordered-sm') + .app-name + = @debug_file.name + .app-identifier + - if @debug_file.processing? + = t('debug_files.device.processing') + - else + = @debug_file.bundle_id + .card-body + ul.app-metadata + li title="#{t('.name')}" data-toggle="tooltip" + i.fas.fa-list-ul + = link_to @app.name, app_path(@app) + li title="#{t('.version')}" data-toggle="tooltip" + i.fab.fa-gg + = @debug_file.id + li title="#{t('.device_type')}" data-toggle="tooltip" + = device_icon(@debug_file.device_type) + = platform_name(@debug_file.device_type) + li title="#{t('.release_version')}" data-toggle="tooltip" + i.fas.fa-server + = @debug_file.release_version + - if @debug_file.build_version.present? + | (#{@debug_file.build_version}) + - if @debug_file.filesize.present? + li title="#{t('.filesize')}" data-toggle="tooltip" + i.fas.fa-weight + = " #{number_to_human_size(@debug_file.filesize)}" + li title="#{t('.uploaded_at')}" data-toggle="tooltip" + i.fas.fa-calendar + = time_ago_in_words(@debug_file.created_at) + .app-actions[ + data-controller="destroy" + data-destroy-title-value="#{t('debug_files.confirm.destroy.title')}" + data-destroy-content-value="#{t('debug_files.confirm.destroy.body')}" + data-destroy-cancel-value="#{t('debug_files.confirm.destroy.cancel')}" + ] + - if @debug_file.file? + a.btn.btn-icon.btn-lg.btn-success href="#{@debug_file.file_url}" target="_blank" + i.icon.fas.fa-download + = t('.download') + - else + button.btn.btn-secondary.btn-lg.btn-icon.disabled + i.icon.fas.fa-ghost + = t('.missing_file') + + button.btn.btn-icon.btn-lg.btn-danger[ + data-action="click->destroy#click" + ] + i.icon.fas.fa-trash-alt + = t('.destroy') + + = button_to t('debug_files.confirm.destroy.ok'), debug_file_path(@debug_file), method: :delete, \ + class: 'btn btn-danger d-none', form: { data: { 'destroy-target' => 'destroyButton' } } + + - unless @debug_file.processing? + .row + - if ios_debug_file?(@debug_file) + .col-md-12 + .card + .card-body.p-0 + table.table + thead + tr + td = t('.main_dsym') + td = t('.uuid') + tbody + - @debug_file.main_objects.each do |metadata| + tr + td + div + = metadata.object + span.badge.badge-secondary.ml-1 = metadata.type + span.small = metadata.data['identifier'] + td.col-md-6 = metadata.uuid + + - if @debug_file.libraries.present? + .col-md-12 + .card + .card-body.p-0 + table.table + thead + tr + td = t('.libraries') + td = t('.uuid') + tbody + - @debug_file.libraries.each do |metadata| + tr + td + div + = metadata.object + span.badge.badge-secondary.ml-1 = metadata.type + span.small = metadata.data['identifier'] + td.col-md-6 = metadata.uuid + - else + .col-md-12 + .card + .card-body.p-0 + table.table + thead + tr + td = t('.filename') + td = t('.filesize') + tbody + - @debug_file.proguard_files.each do |file| + tr + td = file['name'] + td = number_to_human_size(file['size']) diff --git a/app/views/releases/body/_metadata.html.slim b/app/views/releases/body/_metadata.html.slim index bf9934796..82986c76d 100644 --- a/app/views/releases/body/_metadata.html.slim +++ b/app/views/releases/body/_metadata.html.slim @@ -9,55 +9,55 @@ .card-body ul.app-metadata - if @release.name.present? - li title="#{t('releases.show.name')}" + li title="#{t('releases.show.name')}" data-toggle="tooltip" i.fas.fa-list-ul - if guest_mode_or_signed_in? = link_to @release.app_name, friendly_channel_overview_path(@release.channel) - else = @release.app_name - li title="#{t('releases.show.version')}" + li title="#{t('releases.show.version')}" data-toggle="tooltip" i.fab.fa-gg = @release.version - li title="#{t('releases.show.device_type')}" + li title="#{t('releases.show.device_type')}" data-toggle="tooltip" = device_icon(@release.platform) = device_name(@release.device_type) - if @release.release_version.present? - li title="#{t('releases.show.release_version')}" + li title="#{t('releases.show.release_version')}" data-toggle="tooltip" i.fas.fa-server = @release.release_version - if @release.build_version.present? | (#{@release.build_version}) - if @release.release_type.present? - li title="#{t('releases.show.release_type')}" + li title="#{t('releases.show.release_type')}" data-toggle="tooltip" i.fas.fa-cubes = release_type_url_builder(@release) - if @release.file.present? - li title="#{t('releases.show.filesize')}" + li title="#{t('releases.show.filesize')}" data-toggle="tooltip" i.fas.fa-weight = " #{number_to_human_size(@release.file.size)}" - li title="#{t('releases.show.uploaded_at')}" + li title="#{t('releases.show.uploaded_at')}" data-toggle="tooltip" i.fas.fa-calendar = time_ago_in_words(@release.created_at) - if @release.branch.present? - li title="#{t('releases.show.git_branch')}" + li title="#{t('releases.show.git_branch')}" data-toggle="tooltip" i.fas.fa-code-branch = git_branch_url(@release) - if @release.git_commit.present? - li title="#{t('releases.show.git_commit')}" + li title="#{t('releases.show.git_commit')}" data-toggle="tooltip" i.fab.fa-git-alt = git_commit_url(@release.channel.git_url, @release.git_commit) - @release.custom_fields.each do |field| - li title="#{field['name']}" + li title="#{field['name']}" data-toggle="tooltip" i class="#{field['icon'] || 'fas fa-hashtag'}" = field['value'] - li title="#{t('releases.show.source')}" + li title="#{t('releases.show.source')}" data-toggle="tooltip" i.fas.fa-compass - if @release.ci_url.blank? = t("releases.sources.#{@release.source.downcase}", default: @release.source) - else = link_to @release.source, @release.ci_url - if @release.metadata.present? && guest_mode_or_signed_in? - li title="#{t('releases.show.metadata')}" + li title="#{t('releases.show.metadata')}" data-toggle="tooltip" i.fas.fa-layer-group = link_to t('releases.show.teardown_meatdata'), teardown_path(@release.metadata) diff --git a/app/views/releases/sidebar/_debug_file.html.slim b/app/views/releases/sidebar/_debug_file.html.slim index 4f92f18a6..37a8830d6 100644 --- a/app/views/releases/sidebar/_debug_file.html.slim +++ b/app/views/releases/sidebar/_debug_file.html.slim @@ -1,7 +1,7 @@ - if debug_file.present? ruby: metadat_size = debug_file.metadata.count - multi_dsym = debug_file.multi_dsym? + multi_dsym = debug_file.multi_object? .card .card-header h3.card-title diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index 660acdf00..73c387771 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -437,16 +437,36 @@ zh-CN: title: 调试文件 index: upload: 上传调试文件 - processing: 后台任务正在解包中,请稍候刷新。 - version: 构建版本:%{version} - download: 下载 (%{size}) - destroy: 删除 uploaded_at: 上传于%{time} - missing_file: 遗失文件无法下载 empty_content: 还没有上传任何调试文件,点击右上角上传一个吧。 not_found: title: 没有发现任何调试文件! body_html: 选择右上角的 上传调试文件 + show: + title: '%{app} %{device} %{version} 调试文件' + name: 应用名称 + version: 编号 + device_type: 平台 + release_version: 版本信息 + filesize: 文件大小 + uploaded_at: 上传时间 + missing_file: 遗失文件无法下载 + download: 下载 + destroy: 删除 + main_dsym: 主项目 + uuid: UUID + libraries: 库 + filename: 文件 + device: + title: '%{app} %{device} 调试文件' + number: '#%{value}' + processing: 调试文件的解析工作正在后台运行中,请耐心等待 ... + refresh_page: 如果长时间没有发生变化,请尝试刷新本页面。多次刷新还是显示本信息请到管理员面板查看"后台任务"是否有异常。 + main_dsym: 主项目 + arch: 架构 + libraries: 库 + filesize: 文件大小 + file_count: 文件数量 help: title: 帮助中心 body_html: | diff --git a/config/routes.rb b/config/routes.rb index 7cebc1df6..1094d9a5c 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -18,6 +18,12 @@ resources :schemes, except: %i[show] do resources :channels, except: %i[index show] end + + resources :debug_files, only: [] do + collection do + get ':device', action: :device, as: :device + end + end end resources :channels, only: %i[index show] do @@ -53,7 +59,7 @@ ############################################# # Debug File ############################################# - resources :debug_files, except: %i[show] + resources :debug_files ############################################# # Teardown diff --git a/db/migrate/20230410093112_add_debug_file_device_type_index.rb b/db/migrate/20230410093112_add_debug_file_device_type_index.rb new file mode 100644 index 000000000..a4bd03b50 --- /dev/null +++ b/db/migrate/20230410093112_add_debug_file_device_type_index.rb @@ -0,0 +1,6 @@ +class AddDebugFileDeviceTypeIndex < ActiveRecord::Migration[7.0] + def change + add_index :debug_files, [:id, :device_type] + add_index :debug_files, [:app_id, :device_type] + end +end diff --git a/db/schema.rb b/db/schema.rb index 3395a342b..1b4009498 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema[7.0].define(version: 2023_04_07_043735) do +ActiveRecord::Schema[7.0].define(version: 2023_04_10_093112) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -117,7 +117,9 @@ t.string "checksum" t.datetime "created_at", null: false t.datetime "updated_at", null: false + t.index ["app_id", "device_type"], name: "index_debug_files_on_app_id_and_device_type" t.index ["app_id"], name: "index_debug_files_on_app_id" + t.index ["id", "device_type"], name: "index_debug_files_on_id_and_device_type" end create_table "devices", force: :cascade do |t| From b3fbc9aacbf2d3fb61a584310dfaf7a732a76799 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 11 Apr 2023 14:28:19 +0800 Subject: [PATCH 1444/2165] =?UTF-8?q?feat:=20=E8=AE=BE=E7=BD=AE=E9=A1=B5?= =?UTF-8?q?=E5=8F=AF=E9=85=8D=E7=BD=AE=E6=AF=8F=E9=A1=B5=E8=BF=94=E5=9B=9E?= =?UTF-8?q?=E6=9C=80=E5=B0=8F=E5=92=8C=E6=9C=80=E5=A4=A7=E6=9D=A1=E7=9B=AE?= =?UTF-8?q?=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/setting.rb | 4 +-- app/views/debug_files/device.html.slim | 2 +- app/views/debug_files/index.html.slim | 2 +- app/views/debug_files/show.html.slim | 22 ++++++-------- config/locales/zealot/en.yml | 42 +++++++++++++++++++++----- config/locales/zealot/zh-CN.yml | 10 ++++-- 6 files changed, 54 insertions(+), 28 deletions(-) diff --git a/app/models/setting.rb b/app/models/setting.rb index 90057d131..2a91b961b 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -35,8 +35,8 @@ class Setting < RailsSettings::Base validates: { presence: true, inclusion: { in: builtin_roles.keys.map(&:to_s) } } field :preset_install_limited, default: builtin_install_limited, type: :array, display: true - field :per_page, default: 25, type: :integer - field :max_per_page, default: 100, type: :integer + field :per_page, default: ENV.fetch('ZEALOT_PER_PAGE', '25').to_i, type: :integer, display: true + field :max_per_page, default: ENV.fetch('ZEALOT_MAX_PER_PAGE', '100').to_i, type: :integer, display: true end # 模式开关 diff --git a/app/views/debug_files/device.html.slim b/app/views/debug_files/device.html.slim index c16044b3a..8e3db5602 100644 --- a/app/views/debug_files/device.html.slim +++ b/app/views/debug_files/device.html.slim @@ -32,7 +32,7 @@ table.table.table-borderless.mb-0 thead tr.bg-light - td.col-md-4 = t('.main_dsym') + td.col-md-4 = t('.main_target') td.col-md-4 = t('.arch') td.col-md-2 = t('.libraries') td.col-md-2 = t('.filesize') diff --git a/app/views/debug_files/index.html.slim b/app/views/debug_files/index.html.slim index 3d2dcd6b0..8207af1f4 100644 --- a/app/views/debug_files/index.html.slim +++ b/app/views/debug_files/index.html.slim @@ -25,7 +25,7 @@ b = t('.android_count') span.float-right = link_to app.android_debug_files.count, device_app_debug_files_path(app, 'Android') li.list-group-item.pl-3.pr-4 - b = t('ios_count') + b = t('.ios_count') span.float-right = link_to app.ios_debug_files.count, device_app_debug_files_path(app, 'iOS') - else .col-md-12 diff --git a/app/views/debug_files/show.html.slim b/app/views/debug_files/show.html.slim index 493c344d7..17da9d7bc 100644 --- a/app/views/debug_files/show.html.slim +++ b/app/views/debug_files/show.html.slim @@ -73,17 +73,15 @@ table.table thead tr - td = t('.main_dsym') - td = t('.uuid') + td = t('.main_target', value: @debug_file.main_object.object) + td.col-md-5 = t('.uuid') tbody - @debug_file.main_objects.each do |metadata| tr td - div - = metadata.object - span.badge.badge-secondary.ml-1 = metadata.type - span.small = metadata.data['identifier'] - td.col-md-6 = metadata.uuid + = metadata.data['identifier'] + span.badge.badge-secondary.ml-1 = metadata.type + td = metadata.uuid - if @debug_file.libraries.present? .col-md-12 @@ -93,16 +91,14 @@ thead tr td = t('.libraries') - td = t('.uuid') + td.col-md-5 = t('.uuid') tbody - @debug_file.libraries.each do |metadata| tr td - div - = metadata.object - span.badge.badge-secondary.ml-1 = metadata.type - span.small = metadata.data['identifier'] - td.col-md-6 = metadata.uuid + = metadata.data['identifier'] + span.badge.badge-secondary.ml-1 = metadata.type + td = metadata.uuid - else .col-md-12 .card diff --git a/config/locales/zealot/en.yml b/config/locales/zealot/en.yml index ca28e835c..6d40f7cfc 100644 --- a/config/locales/zealot/en.yml +++ b/config/locales/zealot/en.yml @@ -119,6 +119,8 @@ en: preset_role: Default user role preset_install_limited: In-App install limited preset_install_limited_hint: "Specific mobile applications can not be installed (E.g. WeChat, Dingtalk etc.), using keywords of User Agent to guide open the browser to install." + per_page: Per page + max_per_page: Max per page switch_mode: Switch mode registrations_mode: Registrations mode guest_mode: Guest mode @@ -129,8 +131,8 @@ en: feishu: Feihsu gitlab: Gitlab google_oauth: Google OAuth - backup: 备份 - #misc: 杂项 + backup: Backup + #misc: Misc stmp: Mail STMP mailer_default_from: Default email send from mailer_default_to: Default sender @@ -441,16 +443,40 @@ en: title: Debug files index: upload: Upload a debug file - processing: Processing in background, refresh the web page later. - version: 'Version: %{version}' - download: Download (%{size}) - destroy: Destroy uploaded_at: Uploaded at %{time} - missing_file: Missing file empty_content: Not found any debug file. + android_count: Proguard + ios_count: dSYM not_found: title: Not found any debug file! body_html: Click the button upload a debug file on the top-right. + show: + title: '%{app} %{device} %{version} Debug file' + name: App name + version: Build number + device_type: Platform + release_version: Version + filesize: File size + uploaded_at: Upload date + missing_file: Missing file + download: Download + destroy: Destroy + main_target: 'Main target: %{value}' + uuid: UUID + libraries: Libraries + filename: Filename + device: + title: '%{app} %{device} Debug file' + number: '#%{value}' + processing: Processing in background, take a coffe break ... + refresh_page: | + If there is no change for a long time, please try to refresh this page. + This message is still displayed after several refreshes, please go to the admin panel to check if there is any exception in the "background tasks". + main_target: Main target + arch: Architecture(s) + libraries: Libraries + filesize: File size + file_count: File count help: title: Help center body_html: | @@ -783,7 +809,7 @@ en: unknown_file_type: Unknown file type to parse active_job: debug_file: - success: Debug file (%{id}) pare done, Refresh the web page please. + success: Debug file (%{id}) pare done, Refresh the web page after 3 seconds. failures: not_found_file: Debug file is missing with unknown issue. not_matched_bundl_id: 'Not found bundle id with selected app: %{bundle_id}' diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index 73c387771..ff407539a 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -119,6 +119,8 @@ zh-CN: preset_role: 新用户权限 preset_install_limited: 应用内安装限制 preset_install_limited_hint: 特定手机应用打开无法进行安装操作(比如:微信、钉钉等),通过设置 User Agent 关键词开启使用浏览器打开安装帮助 + per_page: 每页返回条目数 + max_per_page: 每页最大返回条目数 switch_mode: 模式开关 registrations_mode: 注册模式 guest_mode: 游客模式 @@ -439,6 +441,8 @@ zh-CN: upload: 上传调试文件 uploaded_at: 上传于%{time} empty_content: 还没有上传任何调试文件,点击右上角上传一个吧。 + android_count: Proguard + ios_count: dSYM not_found: title: 没有发现任何调试文件! body_html: 选择右上角的 上传调试文件 @@ -453,7 +457,7 @@ zh-CN: missing_file: 遗失文件无法下载 download: 下载 destroy: 删除 - main_dsym: 主项目 + main_target: '主项目: %{value}' uuid: UUID libraries: 库 filename: 文件 @@ -462,7 +466,7 @@ zh-CN: number: '#%{value}' processing: 调试文件的解析工作正在后台运行中,请耐心等待 ... refresh_page: 如果长时间没有发生变化,请尝试刷新本页面。多次刷新还是显示本信息请到管理员面板查看"后台任务"是否有异常。 - main_dsym: 主项目 + main_target: 主项目 arch: 架构 libraries: 库 filesize: 文件大小 @@ -829,7 +833,7 @@ zh-CN: unknown_file_type: 无法正常解析应用的类型,目前仅支持 iOS、Android 和使用 Zip 压缩的 macOS App active_job: debug_file: - success: 调试文件 %{id} 解析完成,需要手动刷新页面才能看到哟 + success: 调试文件 %{id} 解析完成,3 秒后自动刷新本页面 failures: not_found_file: 遇到玄学问题造成无法找到调试文件,解析失败 not_matched_bundl_id: '现有应用并不包含上传 bundle id: %{bundle_id}' From 005a92912c4e1ce7761d93500f6cd0899470cc96 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 11 Apr 2023 15:16:02 +0800 Subject: [PATCH 1445/2165] =?UTF-8?q?feat:=20=E5=88=9B=E5=BB=BA=E8=B0=83?= =?UTF-8?q?=E8=AF=95=E6=96=87=E4=BB=B6=E6=94=AF=E6=8C=81=E5=8F=82=E6=95=B0?= =?UTF-8?q?=E9=A2=84=E5=A1=AB=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/debug_files_controller.rb | 6 +++++- app/views/debug_files/_form.html.slim | 4 ++-- app/views/debug_files/device.html.slim | 2 +- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/app/controllers/debug_files_controller.rb b/app/controllers/debug_files_controller.rb index cd72ff248..b591adbd5 100644 --- a/app/controllers/debug_files_controller.rb +++ b/app/controllers/debug_files_controller.rb @@ -36,6 +36,9 @@ def new @title = t('debug_files.index.upload') @apps = App.all @debug_file = DebugFile.new + @debug_file.app_id = params[:app_id] if params[:app_id] && App.find(params[:app_id]) + @debug_file.device_type = params[:device] + authorize @debug_file end @@ -49,7 +52,8 @@ def create device_type = DebugFile.device_types[@debug_file.device_type] DebugFileTeardownJob.perform_later(@debug_file, current_user.id) - redirect_to device_app_debug_files_url(@debug_file.app, device_type), notice: t('activerecord.success.create', key: t('debug_files.title')) + redirect_to device_app_debug_files_url(@debug_file.app, device_type), +notice: t('activerecord.success.create', key: t('debug_files.title')) end def destroy diff --git a/app/views/debug_files/_form.html.slim b/app/views/debug_files/_form.html.slim index 892f989c8..a14f8c6d9 100644 --- a/app/views/debug_files/_form.html.slim +++ b/app/views/debug_files/_form.html.slim @@ -1,8 +1,8 @@ = simple_form_for(@debug_file) do |f| = f.error_notification - = f.input :app_id, collection: @apps, label_method: :name, selected: 0 - = f.input :device_type, collection: DebugFile.device_types, label_method: :last, value_method: :first, selected: DebugFile.device_types.first + = f.association :app + = f.input :device_type, collection: DebugFile.device_types, label_method: :last, value_method: :first, include_blank: false = f.input :release_version = f.input :build_version = f.input :file, required: true diff --git a/app/views/debug_files/device.html.slim b/app/views/debug_files/device.html.slim index 8e3db5602..ccace0042 100644 --- a/app/views/debug_files/device.html.slim +++ b/app/views/debug_files/device.html.slim @@ -6,7 +6,7 @@ - content_for :section_rightpanel do - if user_signed_in? - a.btn.btn-icon.btn-success href="#{new_debug_file_path}" + a.btn.btn-icon.btn-success href="#{new_debug_file_path(app_id: @app.id, device: params[:device])}" i.icon.far.fa-plus-square = t('debug_files.index.upload') From 28d1a6063a5b441c9d241777457e9bd941f84477 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 11 Apr 2023 15:20:39 +0800 Subject: [PATCH 1446/2165] =?UTF-8?q?style:=20=E8=B0=83=E8=AF=95=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E5=B9=B3=E5=8F=B0=E5=B1=95=E7=A4=BA=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/debug_files_controller.rb | 7 ------- app/views/debug_files/device.html.slim | 2 +- app/views/debug_files/show.html.slim | 12 ++++++++++-- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/app/controllers/debug_files_controller.rb b/app/controllers/debug_files_controller.rb index b591adbd5..821cfa76c 100644 --- a/app/controllers/debug_files_controller.rb +++ b/app/controllers/debug_files_controller.rb @@ -13,13 +13,6 @@ def index def show @debug_file = DebugFile.find(params[:id]) @app = @debug_file.app - - version = "#{@debug_file.release_version} (#{@debug_file.build_version})" - @title = t('.title', - app: @app.name, - device: @debug_file.device_type, - version: version - ) end def device diff --git a/app/views/debug_files/device.html.slim b/app/views/debug_files/device.html.slim index ccace0042..885086b73 100644 --- a/app/views/debug_files/device.html.slim +++ b/app/views/debug_files/device.html.slim @@ -6,7 +6,7 @@ - content_for :section_rightpanel do - if user_signed_in? - a.btn.btn-icon.btn-success href="#{new_debug_file_path(app_id: @app.id, device: params[:device])}" + a.btn.btn-icon.btn-success href="#{new_debug_file_path(app_id: @app, device: params[:device])}" i.icon.far.fa-plus-square = t('debug_files.index.upload') diff --git a/app/views/debug_files/show.html.slim b/app/views/debug_files/show.html.slim index 17da9d7bc..131cec6ba 100644 --- a/app/views/debug_files/show.html.slim +++ b/app/views/debug_files/show.html.slim @@ -1,8 +1,16 @@ +ruby: + version = @debug_file.processing? ? @debug_file.id : "#{@debug_file.release_version} (#{@debug_file.build_version})" + title = t('.title', + app: @app.name, + device: platform_name(@debug_file.device_type), + version: version + ) + - content_for :title do - = @title + = title - content_for :section_title do - = @title + = title .row .col-md-12 From 3c993392a656f72f9a6516227c77d1ea0e849546 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 11 Apr 2023 15:30:23 +0800 Subject: [PATCH 1447/2165] =?UTF-8?q?fix:=20=E5=88=A0=E9=99=A4=E8=B0=83?= =?UTF-8?q?=E8=AF=95=E6=96=87=E4=BB=B6=E7=94=A8=E6=88=B7=E8=BA=AB=E4=BB=BD?= =?UTF-8?q?=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/debug_files/show.html.slim | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/app/views/debug_files/show.html.slim b/app/views/debug_files/show.html.slim index 131cec6ba..52d5e9930 100644 --- a/app/views/debug_files/show.html.slim +++ b/app/views/debug_files/show.html.slim @@ -63,14 +63,15 @@ ruby: i.icon.fas.fa-ghost = t('.missing_file') - button.btn.btn-icon.btn-lg.btn-danger[ - data-action="click->destroy#click" - ] - i.icon.fas.fa-trash-alt - = t('.destroy') + - if current_user&.manage? + button.btn.btn-icon.btn-lg.btn-danger[ + data-action="click->destroy#click" + ] + i.icon.fas.fa-trash-alt + = t('.destroy') - = button_to t('debug_files.confirm.destroy.ok'), debug_file_path(@debug_file), method: :delete, \ - class: 'btn btn-danger d-none', form: { data: { 'destroy-target' => 'destroyButton' } } + = button_to t('debug_files.confirm.destroy.ok'), debug_file_path(@debug_file), method: :delete, \ + class: 'btn btn-danger d-none', form: { data: { 'destroy-target' => 'destroyButton' } } - unless @debug_file.processing? .row From 21983738c436375d1c368269340ffc7765978bef Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 11 Apr 2023 16:32:59 +0800 Subject: [PATCH 1448/2165] =?UTF-8?q?feat:=20=E5=8F=AF=E9=87=8D=E6=96=B0?= =?UTF-8?q?=E8=A7=A6=E5=8F=91=E8=B0=83=E8=AF=95=E6=96=87=E4=BB=B6=E8=A7=A3?= =?UTF-8?q?=E6=9E=90=E5=90=8E=E5=8F=B0=E4=BB=BB=E5=8A=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Gemfile | 2 +- Gemfile.lock | 4 +- app/controllers/debug_files_controller.rb | 16 +++++--- app/jobs/debug_file_teardown_job.rb | 48 +++++++++++------------ app/views/debug_files/show.html.slim | 7 +++- config/locales/zealot/en.yml | 3 ++ config/locales/zealot/zh-CN.yml | 3 ++ config/routes.rb | 6 ++- 8 files changed, 54 insertions(+), 35 deletions(-) diff --git a/Gemfile b/Gemfile index 9e8c9b666..c90732f20 100644 --- a/Gemfile +++ b/Gemfile @@ -93,7 +93,7 @@ gem 'stimulus-rails', '~> 1.2.1' gem 'turbo-rails', '~> 1.4' # 用于解析 iOS, Android, macOS 和 Windows 应用 -gem 'app-info', '~> 3.0.0.beta3' +gem 'app-info', '~> 3.0.0.beta4' # 带缓存的配置库 gem 'rails-settings-cached', '~> 2.8.3' diff --git a/Gemfile.lock b/Gemfile.lock index 12d2209db..d5fcd7cf5 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -81,7 +81,7 @@ GEM android_parser (2.6.0) rexml (> 3.0) rubyzip (>= 1.0, < 3.0) - app-info (3.0.0.beta3) + app-info (3.0.0.beta4) CFPropertyList (>= 2.3.4, < 3.1.0) android_parser (~> 2.6.0) google-protobuf (>= 3.19.4, < 3.23.0) @@ -493,7 +493,7 @@ PLATFORMS DEPENDENCIES active_model_serializers (~> 0.10.13) activejob-status - app-info (~> 3.0.0.beta3) + app-info (~> 3.0.0.beta4) awesome_print better_errors binding_of_caller diff --git a/app/controllers/debug_files_controller.rb b/app/controllers/debug_files_controller.rb index 821cfa76c..d1632151f 100644 --- a/app/controllers/debug_files_controller.rb +++ b/app/controllers/debug_files_controller.rb @@ -2,7 +2,7 @@ class DebugFilesController < ApplicationController before_action :authenticate_user!, except: %i[index show] - before_action :set_debug_file, only: %i[destroy] + before_action :set_debug_file, only: %i[show reprocess destroy] def index @title = t('debug_files.title') @@ -10,11 +10,6 @@ def index authorize @apps end - def show - @debug_file = DebugFile.find(params[:id]) - @app = @debug_file.app - end - def device @app = App.find(params[:app_id]) @debug_files = DebugFile.where( @@ -25,6 +20,15 @@ def device @title = t('.title', app: @app.name, device: params[:device]) end + def show + @app = @debug_file.app + end + + def reprocess + DebugFileTeardownJob.perform_later(@debug_file, current_user.id) + redirect_to debug_file_url(@debug_file), notice: t('.success') + end + def new @title = t('debug_files.index.upload') @apps = App.all diff --git a/app/jobs/debug_file_teardown_job.rb b/app/jobs/debug_file_teardown_job.rb index 090298f60..75e1dc0b1 100644 --- a/app/jobs/debug_file_teardown_job.rb +++ b/app/jobs/debug_file_teardown_job.rb @@ -42,19 +42,19 @@ def parse_dsym(debug_file, parser) bundle_ids = debug_file.app.bundle_ids upload_bundle_ids = [] - matched_debug_info = nil - parser.each_file do |debug_info| - upload_bundle_ids << debug_info.bundle_id - if bundle_ids.include?(debug_info.bundle_id) - matched_debug_info = debug_info + matched_object = nil + parser.objects.each do |object| + upload_bundle_ids << object.bundle_id + if bundle_ids.include?(object.bundle_id) + matched_object = object break end end - raise upload_bundle_ids.join(', ') if matched_debug_info.blank? + raise upload_bundle_ids.join(', ') if matched_object.blank? - if (release_version = matched_debug_info.release_version) && - (build_version = matched_debug_info.build_version) + if (release_version = matched_object.release_version) && + (build_version = matched_object.build_version) debug_file.update!( release_version: release_version, build_version: build_version @@ -62,17 +62,17 @@ def parse_dsym(debug_file, parser) end # Relates all dSYM symbols to metadata of debug file. - parser.each_file do |debug_info| - debug_info.machos.each do |macho| - debug_file.metadata.find_or_create_by(uuid: macho.uuid) do |metadata| - metadata.size = macho.size - metadata.type = macho.cpu_name - metadata.object = debug_info.object - metadata.data = { - main: debug_info.identifier == matched_debug_info.identifier, - identifier: debug_info.identifier, - } - end + parser.objects.each do |object| + object.machos.each do |macho| + metadata = debug_file.metadata.find_or_initialize_by(uuid: macho.uuid) + metadata.size = macho.size + metadata.type = macho.cpu_name + metadata.object = object.object + metadata.data = { + main: object.identifier == matched_object.identifier, + identifier: object.identifier, + } + metadata.save end end end @@ -86,11 +86,11 @@ def parse_proguard(debug_file, parser) ) end - debug_file.metadata.find_or_create_by(uuid: parser.uuid) do |metadata| - metadata.object = parser&.package_name - metadata.type = parser.format - metadata.data = { files: files(parser) } - end + metadata = debug_file.metadata.find_or_initialize_by(uuid: parser.uuid) + metadata.object = parser&.package_name + metadata.type = parser.format + metadata.data = { files: files(parser) } + metadata.save end def files(parser) diff --git a/app/views/debug_files/show.html.slim b/app/views/debug_files/show.html.slim index 52d5e9930..19e431e9b 100644 --- a/app/views/debug_files/show.html.slim +++ b/app/views/debug_files/show.html.slim @@ -64,6 +64,11 @@ ruby: = t('.missing_file') - if current_user&.manage? + - if !@debug_file.processing? && @debug_file.file? + = link_to reprocess_debug_file_path(@debug_file), class: 'btn btn-lg btn-icon btn-info', data: { turbo_method: :post } do + i.icon.fa.fa-repeat + = t('.reprocess') + button.btn.btn-icon.btn-lg.btn-danger[ data-action="click->destroy#click" ] @@ -88,7 +93,7 @@ ruby: - @debug_file.main_objects.each do |metadata| tr td - = metadata.data['identifier'] + = metadata.data['identifier'] || metadata.object span.badge.badge-secondary.ml-1 = metadata.type td = metadata.uuid diff --git a/config/locales/zealot/en.yml b/config/locales/zealot/en.yml index 6d40f7cfc..7d4441c54 100644 --- a/config/locales/zealot/en.yml +++ b/config/locales/zealot/en.yml @@ -203,6 +203,7 @@ en: created_at: Created at size: Size download: Download + reprocess: Reprocess destroy: Destroy unknown_job_status: Unknown happened! Try again or report to zealot developer please. current_step: Processing, current %{step} @@ -477,6 +478,8 @@ en: libraries: Libraries filesize: File size file_count: File count + reprocess: + success: Reprocess request successful help: title: Help center body_html: | diff --git a/config/locales/zealot/zh-CN.yml b/config/locales/zealot/zh-CN.yml index ff407539a..6ce20de9e 100644 --- a/config/locales/zealot/zh-CN.yml +++ b/config/locales/zealot/zh-CN.yml @@ -456,6 +456,7 @@ zh-CN: uploaded_at: 上传时间 missing_file: 遗失文件无法下载 download: 下载 + reprocess: 重新解析 destroy: 删除 main_target: '主项目: %{value}' uuid: UUID @@ -471,6 +472,8 @@ zh-CN: libraries: 库 filesize: 文件大小 file_count: 文件数量 + reprocess: + success: 调试文件已提交重新解析处理中 help: title: 帮助中心 body_html: | diff --git a/config/routes.rb b/config/routes.rb index 1094d9a5c..fe7aef82c 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -59,7 +59,11 @@ ############################################# # Debug File ############################################# - resources :debug_files + resources :debug_files do + member do + post :reprocess + end + end ############################################# # Teardown From a1247de048ccd4ea27c28d7ceba8cd84dc07b090 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Tue, 11 Apr 2023 16:38:24 +0800 Subject: [PATCH 1449/2165] =?UTF-8?q?feat:=20=E8=AE=BE=E7=BD=AE=20develop?= =?UTF-8?q?=20=E4=B8=BA=E4=B8=8B=E4=B8=80=E4=B8=AA=205.0=20=E7=89=88?= =?UTF-8?q?=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 1839ef913..4c1d98c06 100644 --- a/Dockerfile +++ b/Dockerfile @@ -64,7 +64,7 @@ ARG BUILD_DATE ARG VCS_REF ARG TAG -ARG ZEALOT_VERSION="4.7.1" +ARG ZEALOT_VERSION="5.0.0" ARG REPLACE_CHINA_MIRROR="true" ARG ORIGINAL_REPO_URL="dl-cdn.alpinelinux.org" ARG MIRROR_REPO_URL="mirrors.ustc.edu.cn" diff --git a/package.json b/package.json index 6a8976c83..dd1ecb4f9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "zealot", - "version": "4.7.1", + "version": "5.0.0", "private": true, "license": "MIT", "dependencies": { From 88e843fc42aa2f1b919d4184bf8ab927725ded0b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 11 Apr 2023 21:57:04 +0000 Subject: [PATCH 1450/2165] chore(deps): bump graphql from 2.0.20 to 2.0.21 Bumps [graphql](https://github.com/rmosolgo/graphql-ruby) from 2.0.20 to 2.0.21. - [Release notes](https://github.com/rmosolgo/graphql-ruby/releases) - [Changelog](https://github.com/rmosolgo/graphql-ruby/blob/master/CHANGELOG.md) - [Commits](https://github.com/rmosolgo/graphql-ruby/compare/v2.0.20...v2.0.21) --- updated-dependencies: - dependency-name: graphql dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index 7759c9718..92387383d 100644 --- a/Gemfile +++ b/Gemfile @@ -18,7 +18,7 @@ gem 'lograge', '~> 0.12.0' # API gem 'active_model_serializers', '~> 0.10.13' -gem 'graphql', '~> 2.0.20' +gem 'graphql', '~> 2.0.21' gem 'rack-cors', '~> 2.0.1' gem 'health_check', '~> 3.1.0' gem 'tiny_appstore_connect', '~> 0.1.7' diff --git a/Gemfile.lock b/Gemfile.lock index c72a820fc..fd96a6542 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -167,7 +167,7 @@ GEM graphiql-rails (1.9.0) railties sprockets-rails - graphql (2.0.20) + graphql (2.0.21) hashie (5.0.0) health_check (3.1.0) railties (>= 5.0) @@ -508,7 +508,7 @@ DEPENDENCIES friendly_id (~> 5.5.0) gitlab_omniauth-ldap (~> 2.2.0) graphiql-rails - graphql (~> 2.0.20) + graphql (~> 2.0.21) health_check (~> 3.1.0) improved_jenkins_client (~> 1.6.7) jb (~> 0.8.0) From cd6858bee1efa82784bb5d73e24e1af898bce1df Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 12 Apr 2023 02:19:28 +0000 Subject: [PATCH 1451/2165] chore(deps): bump nokogiri from 1.14.2 to 1.14.3 Bumps [nokogiri](https://github.com/sparklemotion/nokogiri) from 1.14.2 to 1.14.3. - [Release notes](https://github.com/sparklemotion/nokogiri/releases) - [Changelog](https://github.com/sparklemotion/nokogiri/blob/main/CHANGELOG.md) - [Commits](https://github.com/sparklemotion/nokogiri/compare/v1.14.2...v1.14.3) --- updated-dependencies: - dependency-name: nokogiri dependency-type: indirect ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index fd96a6542..29c52d81e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -259,7 +259,7 @@ GEM net-smtp (0.3.3) net-protocol nio4r (2.5.8) - nokogiri (1.14.2) + nokogiri (1.14.3) mini_portile2 (~> 2.8.0) racc (~> 1.4) oauth2 (1.4.11) From 09d6ba6dac1694d559465211d0ea9e3eff84a4e1 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 12 Apr 2023 11:32:26 +0800 Subject: [PATCH 1452/2165] =?UTF-8?q?feat:=20app=20=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E6=9C=80=E6=96=B0=E4=B8=8A=E4=BC=A0=E7=89=88=E6=9C=AC=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E7=BC=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/models/app.rb | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/app/models/app.rb b/app/models/app.rb index ebd0ba704..758b276fe 100644 --- a/app/models/app.rb +++ b/app/models/app.rb @@ -13,11 +13,13 @@ class App < ApplicationRecord validates :name, presence: true def recently_release - return unless scheme = schemes.take - return unless channel = scheme.channels.take - return unless release = channel.releases.last + Rails.cache.fetch("app_#{id}_recently_release") do + return unless schcmes_ids = schemes.select(:id).map(&:id) + return unless channel_ids = Channel.select(:id).where(schemes: schcmes_ids).map(&:id) + return unless release = Release.where(channels: channel_ids).last - release + release + end end def total_schemes From f7bb13716f9b530fd186d44e506565cf04338ef7 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 12 Apr 2023 11:39:19 +0800 Subject: [PATCH 1453/2165] =?UTF-8?q?style:=20=E5=BA=94=E7=94=A8=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E8=B0=83=E6=95=B4=20css=20=E5=B8=83=E5=B1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/helpers/apps_helper.rb | 3 +++ app/views/apps/_list.html.slim | 10 +++++----- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/app/helpers/apps_helper.rb b/app/helpers/apps_helper.rb index 49efa4c35..702977f08 100644 --- a/app/helpers/apps_helper.rb +++ b/app/helpers/apps_helper.rb @@ -24,6 +24,9 @@ def app_icon(release, options = {}) return image_tag('zealot-icon.png', **options) end + options[:data] ||= {} + options[:data][:release_id] ||= release.id + options[:data][:channel_id] ||= release.channel.slug image_tag(release.icon_url, **options) end diff --git a/app/views/apps/_list.html.slim b/app/views/apps/_list.html.slim index f30df8a02..13d1175dd 100644 --- a/app/views/apps/_list.html.slim +++ b/app/views/apps/_list.html.slim @@ -1,20 +1,20 @@ - @apps.each_with_index do |app, i| .col-md-3 .card.widget-app - .card-body.pb-1 + .card-body.p-0.pt-3 .text-center = link_to app_icon(app.recently_release, class: 'app-icon elevation-1 img-circle'), app_path(app) h3.profile-username.text-center = link_to app.name, app_path(app) p.created-time.text-muted.text-center = t('apps.index.created_at', time: time_ago_in_words(app.created_at)) - ul.list-group.list-group-unbordered.mb-3 - li.list-group-item + ul.list-group.list-group-unbordered.pt-2 + li.list-group-item.pl-3.pr-4 b = t('apps.index.schemes') span.float-right = app.total_schemes - li.list-group-item + li.list-group-item.pl-3.pr-4 b = t('apps.index.channels') span.float-right = app.total_channels - li.list-group-item + li.list-group-item.pl-3.pr-4 b = t('apps.index.uploads') span.float-right = app.total_releases From cd05a3f29420280d0e5c54c9e1b73bcfc16b1fb9 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 12 Apr 2023 11:47:13 +0800 Subject: [PATCH 1454/2165] =?UTF-8?q?style:=20=E5=BA=94=E7=94=A8=E8=A7=A3?= =?UTF-8?q?=E5=8C=85=E8=BE=B9=E8=B7=9D=E5=BE=AE=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/views/apps/_list.html.slim | 2 +- app/views/debug_files/index.html.slim | 2 +- app/views/releases/body/_changelog.html.slim | 4 ++-- app/views/teardowns/_android.html.slim | 2 +- app/views/teardowns/_ios.html.slim | 2 +- app/views/teardowns/_windows.html.slim | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/app/views/apps/_list.html.slim b/app/views/apps/_list.html.slim index 13d1175dd..ba05d06d9 100644 --- a/app/views/apps/_list.html.slim +++ b/app/views/apps/_list.html.slim @@ -15,6 +15,6 @@ li.list-group-item.pl-3.pr-4 b = t('apps.index.channels') span.float-right = app.total_channels - li.list-group-item.pl-3.pr-4 + li.list-group-item.pl-3.pr-4.border-bottom-0 b = t('apps.index.uploads') span.float-right = app.total_releases diff --git a/app/views/debug_files/index.html.slim b/app/views/debug_files/index.html.slim index 8207af1f4..a369b0e64 100644 --- a/app/views/debug_files/index.html.slim +++ b/app/views/debug_files/index.html.slim @@ -24,7 +24,7 @@ li.list-group-item.pl-3.pr-4 b = t('.android_count') span.float-right = link_to app.android_debug_files.count, device_app_debug_files_path(app, 'Android') - li.list-group-item.pl-3.pr-4 + li.list-group-item.pl-3.pr-4.border-bottom-0 b = t('.ios_count') span.float-right = link_to app.ios_debug_files.count, device_app_debug_files_path(app, 'iOS') - else diff --git a/app/views/releases/body/_changelog.html.slim b/app/views/releases/body/_changelog.html.slim index 2e66fb4d3..3c817d9ae 100644 --- a/app/views/releases/body/_changelog.html.slim +++ b/app/views/releases/body/_changelog.html.slim @@ -7,9 +7,9 @@ button.btn.btn-tool data-card-widget="collapse" i.fas.fa-minus .card-body.p-0 - ul.products-list.product-list-in-card + ul.products-list.product-list-in-card.p-0 - @release.array_changelog.each do |changelog| - li.item.pl-3.pr-3 + li.item.pl-3.pr-3.pb-2 .product-title - if date = changelog['date'] small.float-right diff --git a/app/views/teardowns/_android.html.slim b/app/views/teardowns/_android.html.slim index 123172f53..e2c4bd487 100644 --- a/app/views/teardowns/_android.html.slim +++ b/app/views/teardowns/_android.html.slim @@ -14,7 +14,7 @@ ruby: .card-tools button.btn.btn-tool data-card-widget="collapse" i.fas.fa-minus - .card-body.p-0.pl-3 + .card-body.pl-2.pr-2.p-0 dl.system-info.pb-0 dt = t('teardowns.show.app_name') dd diff --git a/app/views/teardowns/_ios.html.slim b/app/views/teardowns/_ios.html.slim index ff3b353c6..fec61ae99 100644 --- a/app/views/teardowns/_ios.html.slim +++ b/app/views/teardowns/_ios.html.slim @@ -7,7 +7,7 @@ .card-tools button.btn.btn-tool data-card-widget="collapse" i.fas.fa-minus - .card-body.p-0 + .card-body.pl-2.pr-2.p-0 dl.system-info.pb-0 dt = t('teardowns.show.app_name') dd diff --git a/app/views/teardowns/_windows.html.slim b/app/views/teardowns/_windows.html.slim index 658ebf205..3ed7f6517 100644 --- a/app/views/teardowns/_windows.html.slim +++ b/app/views/teardowns/_windows.html.slim @@ -8,7 +8,7 @@ .card-tools button.btn.btn-tool data-card-widget="collapse" i.fas.fa-minus - .card-body.p-0.pl-3 + .card-body.pl-2.pr-2.p-0 dl.system-info dt = t('teardowns.show.product_name') dd From 681fb403d8bb581e5157b862bf398a12df70358a Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 12 Apr 2023 14:13:12 +0800 Subject: [PATCH 1455/2165] =?UTF-8?q?chore:=20=E6=9B=B4=E6=96=B0=20crowdin?= =?UTF-8?q?=20=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- crowdin.yml | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/crowdin.yml b/crowdin.yml index 6a8fa78ae..7407b0ecb 100644 --- a/crowdin.yml +++ b/crowdin.yml @@ -1,12 +1,19 @@ project_id_env: CROWDIN_PROJECT_ID api_token_env: CROWDIN_PERSONAL_TOKEN +preserve_hierarchy: true commit_message: 'Fix: New translations %original_file_name% from Crowdin' files: - source: /config/locales/zealot/zh-CN.yml translation: /config/locales/zealot/%two_letters_code%.yml + escape_quotes: 0 escape_special_characters: 0 - type: yaml + languages_mapping: &anchor + locale: + 'en-US': 'en' - source: /config/locales/simple_form/simple_form.zh-CN.yml translation: /config/locales/simple_form/simple_form.%two_letters_code%.yml + escape_quotes: 0 escape_special_characters: 0 - type: yaml \ No newline at end of file + languages_mapping: &anchor + locale: + 'en-US': 'en' From d8125100d18cb022f261e3b3ffa697ee2bfeff43 Mon Sep 17 00:00:00 2001 From: icyleaf Date: Wed, 12 Apr 2023 14:27:06 +0800 Subject: [PATCH 1456/2165] =?UTF-8?q?feat:=20=E6=9B=B4=E6=96=B0=20en=20?= =?UTF-8?q?=E8=AF=AD=E8=A8=80=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/locales/simple_form/simple_form.en.yml | 12 +-- config/locales/zealot/en.yml | 76 +++++++++++-------- 2 files changed, 49 insertions(+), 39 deletions(-) diff --git a/config/locales/simple_form/simple_form.en.yml b/config/locales/simple_form/simple_form.en.yml index 3a4a51778..6d7b8f504 100644 --- a/config/locales/simple_form/simple_form.en.yml +++ b/config/locales/simple_form/simple_form.en.yml @@ -3,7 +3,7 @@ en: "yes": 'Yes' "no": 'No' required: - text: 'required' + text: 'Required field' mark: '*' #You can uncomment the line below if you need to overwrite the whole required html. #When using html, text and mark won't be used. @@ -84,9 +84,9 @@ en: app: schemes: name: :simple_form.hints.scheme.name - new_build_callout: 'Display a new callout at the top of the page when visiting a previous build of app' scheme: - name: 'App in the function, the type of audience-oriented division. for example, adhoc, test, production etc.' + name: 'Apply the type of feature to target audience. for example, adhoc, test, production etc.' + new_build_callout: 'Display a new callout at the top of the page when visiting a previous build of app' channel: name: 'Recommended distinguishing different channels according to the application platform, single platform applications can also be the name of the distribution market.' device_type: 'Which device type of app. for example, iOS, Android, macOS etc.' @@ -96,16 +96,16 @@ en: password: 'Need password by fill it when user is not log in.' release: file: Support iOS, Android, macOS, Windows and Linux binary file. - changelog: A log or record of all notable changes made to a upload. + changelog: What new features this app contains, fix what issues, and so on. release_type: 'iOS: debug、adhoc, release; Android: debug, release.' branch: Git branch. In general either main or develop. git_commit: 40 bit length SHA value of git commit - ci_url: the detail URL of Jenkins, Gitlab CI + ci_url: The CI URL specific like Jenkins, Gitlab CI etc web_hook: body: 'Custom JSON struct body to apply the third party notification services. Use default structure by leave it empty.' debug_file: device_type: 'Which device type of app. for example, iOS, Android, macOS etc.' - file: 'Require a zipped file of debug file. for example, dSYM in iOS, proguard in Android.' + file: 'Zip compressed file required. for example, dSYM in iOS, proguard in Android.' setting: value: 'Use JSON standard format to edit, otherwise it will fail to save.' backup: diff --git a/config/locales/zealot/en.yml b/config/locales/zealot/en.yml index 7d4441c54..a5e8a04c4 100644 --- a/config/locales/zealot/en.yml +++ b/config/locales/zealot/en.yml @@ -171,8 +171,8 @@ en: services: Services health ruby_gems: Ruby Gems logs: Logs - new_version: 'Found new version' - dev_new_version: Found new version (dev mode) + new_version: A new update is available + dev_new_version: A new update is available (dev mode) messages: file_permissions_tip: If you see a warning icon in the list below it means that the paths are not writable, which may cause Zealot to be unavailable or abnormal. backups: @@ -212,7 +212,7 @@ en: body_html: Click the button to new a backup file. new: title: New backup - schedule: Scheduel + schedule: Schedule disable: Disable enable: Enable edit: @@ -236,7 +236,7 @@ en: index: title: :admin.logs.title loading: Loading ... - error_message: 'Failed fetch logs, return status code: ' + error_message: 'Log fetch failed, return status code: ' dashboard: title: Dashboard analytics: @@ -280,7 +280,7 @@ en:
      • Debug、Adhoc、Public test、Production
      -

      Use the app store channal in Android app:

      +

      Use the app store channel in Android app:

      • Google Play、Huawei、Xiaomi、Vivo、Oppo etc
      @@ -290,13 +290,13 @@ en: title: Edit app messages: failture: - not_found_app_by_version: 'Not found app version: %{version}.' - not_found_app: Not found app by id %{id}, redirect to list of app. + not_found_app_by_version: 'Not found app version: %{version}' + not_found_app: Not found app by id %{id}, redirect to list of app missing_schemes_and_channels: Missing both schemes and channels. confirm: - delete_app: Confirm to destroy【%{name}】app and all related data of schemes, channels and uploaded releases? - delete_app_scheme: Confirm to destroy【%{name}】scheme and all related data of channels and uploaded releases? - delete_app_channel: Confirm to destroy【%{name}】channel and all related data of uploaded releases? + delete_app: Confirm to destroy `%{name}` app and all related data of schemes, channels and uploaded releases? + delete_app_scheme: Confirm to destroy `%{name}` scheme and all related data of channels and uploaded releases? + delete_app_channel: Confirm to destroy `%{name}` channel and all related data of uploaded releases? schemes: title: Schemes show: @@ -307,7 +307,7 @@ en: title: 'Edit scheme for %{app}' channels: title: Channels - subtitle: 'scheme %{total_scheme}, channel %{total_channel}' + subtitle: 'Scheme %{total_scheme} Channel %{total_channel}' show: scheme: :schemes.title channel: :channels.title @@ -370,7 +370,7 @@ en: app_open_in_safari: Choose "Open in Safari" and install app_open_in_webbrower: Open with any browser and install not_latest_release: New release found! - released_new_version: 'Build %{version} uploaded at %{time} ago, %{link}.' + released_new_version: 'Build %{version} uploaded at %{time} ago on %{link}.' view_latest_version: Check it out name: App version: Auto Version @@ -397,7 +397,7 @@ en: upload_auto_version_release: :'dashboard.timeline.upload_auto_version_release' changelog: Changelog devices: '%{count} test devices (UDID)' - sync_devices_feature: Sync device name by using %{link} fastlane plugin + sync_devices_feature: Synchronize device name with %{link} recommended debug_file: '%{type} matched' qrcode: QR Code scan_qrcode_with_any_suppprted_app: Use your phone's camera to install it @@ -412,7 +412,7 @@ en: default_changelog: | Not found changelog, cause: - - The developer is lazy without leaving anyting 😂 + - The developer is lazy without leaving anything 😂 - Error occurred 👽 install_error: title: What is the solution? @@ -461,6 +461,7 @@ en: uploaded_at: Upload date missing_file: Missing file download: Download + reprocess: Reprocess destroy: Destroy main_target: 'Main target: %{value}' uuid: UUID @@ -469,10 +470,8 @@ en: device: title: '%{app} %{device} Debug file' number: '#%{value}' - processing: Processing in background, take a coffe break ... - refresh_page: | - If there is no change for a long time, please try to refresh this page. - This message is still displayed after several refreshes, please go to the admin panel to check if there is any exception in the "background tasks". + processing: Processing in background, take a coffee break ... + refresh_page: "If there is no change for a long time, please try to refresh this page.\nThis message is still displayed after several refreshes, please go to the admin panel to check if there is any exception in the \"background tasks\"." main_target: Main target arch: Architecture(s) libraries: Libraries @@ -485,10 +484,10 @@ en: body_html: |

      What is debug file, how to location?

      iOS
      -

      Locate with Xcode:

      +

      Locate with XCode: