优化微信公众号接入方式

This commit is contained in:
token
2024-09-06 01:51:33 +08:00
parent 131c4bd225
commit 69a6daf86a
8 changed files with 758 additions and 157 deletions

View File

@@ -13,6 +13,7 @@ using MemoryService = mem0.NET.Services.MemoryService;
namespace FastWiki.Service.Backgrounds;
public class WeChatBackgroundService(
ILogger<WeChatBackgroundService> logger,
IServiceProvider serviceProvider,
WikiMemoryService wikiMemoryService,
IMemoryCache memoryCache) : BackgroundService
@@ -27,7 +28,7 @@ public class WeChatBackgroundService(
scope.ServiceProvider.GetRequiredService<MemoryService>();
var eventBus = scope.ServiceProvider.GetRequiredService<IEventBus>();
var openAIService = scope.ServiceProvider.GetRequiredService<OpenAIService>();
var openAiService = scope.ServiceProvider.GetRequiredService<OpenAIService>();
var wikiRepository = scope.ServiceProvider.GetRequiredService<IWikiRepository>();
var fileStorageRepository = scope.ServiceProvider.GetRequiredService<IFileStorageRepository>();
@@ -35,20 +36,12 @@ public class WeChatBackgroundService(
{
var content = await Channel.Reader.ReadAsync(stoppingToken);
await SendMessageAsync(content, memoryService,eventBus,openAIService,wikiRepository,fileStorageRepository);
await SendMessageAsync(content, memoryService, eventBus, openAiService, wikiRepository,
fileStorageRepository);
}
}
private const string OutputTemplate =
"""
FastWiki
""";
/// <summary>
/// 微信AI对话
/// </summary>
@@ -61,92 +54,92 @@ public class WeChatBackgroundService(
public async Task SendMessageAsync(WeChatAI chatAi, MemoryService memoryService, IEventBus eventBus,
OpenAIService openAiService, IWikiRepository wikiRepository, IFileStorageRepository fileStorageRepository)
{
var chatShareInfoQuery = new ChatShareInfoQuery(chatAi.SharedId);
await eventBus.PublishAsync(chatShareInfoQuery);
// 如果chatShareId不存在则返回让下面扣款
var chatShare = chatShareInfoQuery.Result;
var chatApplicationQuery = new ChatApplicationInfoQuery(chatShareInfoQuery.Result.ChatApplicationId);
await eventBus.PublishAsync(chatApplicationQuery);
var chatApplication = chatApplicationQuery?.Result;
if (chatApplication == null) return;
var requestToken = 0;
var module = new ChatCompletionDto<ChatCompletionRequestMessage>
{
messages =
[
new ChatCompletionRequestMessage
{
content = chatAi.Content,
role = "user"
}
]
};
var chatHistory = new ChatHistory();
// 如果设置了Prompt则添加
if (!chatApplication.Prompt.IsNullOrEmpty()) chatHistory.AddSystemMessage(chatApplication.Prompt);
// 保存对话提问
var createChatRecordCommand = new CreateChatRecordCommand(chatApplication.Id, chatAi.Content);
await eventBus.PublishAsync(createChatRecordCommand);
var sourceFile = new List<FileStorage>();
// 如果为空则不使用知识库
if (chatApplication.WikiIds.Count != 0)
{
var success = await OpenAIService.WikiPrompt(chatApplication, wikiMemoryService, chatAi.Content,
fileStorageRepository,
wikiRepository,
sourceFile, module, null, memoryService);
if (!success) return;
}
var output = new StringBuilder();
// 添加用户输入并且计算请求token数量
module.messages.ForEach(x =>
{
if (x.content.IsNullOrEmpty()) return;
requestToken += TokenHelper.ComputeToken(x.content);
chatHistory.Add(new ChatMessageContent(new AuthorRole(x.role), x.content));
});
if (chatShare != null)
{
// 如果token不足则返回使用token和当前request总和大于可用token则返回
if (chatShare.AvailableToken != -1 &&
chatShare.UsedToken + requestToken >=
chatShare.AvailableToken)
{
output.Append("Token不足");
return;
}
// 如果没有过期则继续
if (chatShare.Expires != null &&
chatShare.Expires < DateTimeOffset.Now)
{
output.Append("Token已过期");
return;
}
}
try
{
var chatShareInfoQuery = new ChatShareInfoQuery(chatAi.SharedId);
await eventBus.PublishAsync(chatShareInfoQuery);
// 如果chatShareId不存在则返回让下面扣款
var chatShare = chatShareInfoQuery.Result;
var chatApplicationQuery = new ChatApplicationInfoQuery(chatShareInfoQuery.Result.ChatApplicationId);
await eventBus.PublishAsync(chatApplicationQuery);
var chatApplication = chatApplicationQuery?.Result;
if (chatApplication == null) return;
var requestToken = 0;
var module = new ChatCompletionDto<ChatCompletionRequestMessage>
{
messages =
[
new ChatCompletionRequestMessage
{
content = chatAi.Content,
role = "user"
}
]
};
var chatHistory = new ChatHistory();
// 如果设置了Prompt则添加
if (!chatApplication.Prompt.IsNullOrEmpty()) chatHistory.AddSystemMessage(chatApplication.Prompt);
// 保存对话提问
var createChatRecordCommand = new CreateChatRecordCommand(chatApplication.Id, chatAi.Content);
await eventBus.PublishAsync(createChatRecordCommand);
var sourceFile = new List<FileStorage>();
// 如果为空则不使用知识库
if (chatApplication.WikiIds.Count != 0)
{
var success = await OpenAIService.WikiPrompt(chatApplication, wikiMemoryService, chatAi.Content,
fileStorageRepository,
wikiRepository,
sourceFile, module, null, memoryService);
if (!success) return;
}
// 添加用户输入并且计算请求token数量
module.messages.ForEach(x =>
{
if (x.content.IsNullOrEmpty()) return;
requestToken += TokenHelper.ComputeToken(x.content);
chatHistory.Add(new ChatMessageContent(new AuthorRole(x.role), x.content));
});
if (chatShare != null)
{
// 如果token不足则返回使用token和当前request总和大于可用token则返回
if (chatShare.AvailableToken != -1 &&
chatShare.UsedToken + requestToken >=
chatShare.AvailableToken)
{
output.Append("Token不足");
return;
}
// 如果没有过期则继续
if (chatShare.Expires != null &&
chatShare.Expires < DateTimeOffset.Now)
{
output.Append("Token已过期");
return;
}
}
await foreach (var item in openAiService.SendChatMessageAsync(chatApplication,
chatHistory))
{
@@ -168,20 +161,30 @@ public class WeChatBackgroundService(
{
output.Clear();
output.Append("对话异常:" + invalidOperationException.Message);
logger.LogError(invalidOperationException, "对话异常");
}
catch (ArgumentException argumentException)
{
output.Clear();
output.Append("对话异常:" + argumentException.Message);
logger.LogError(argumentException, "对话异常");
}
catch (Exception e)
{
output.Clear();
output.Append("对话异常,请联系管理员");
logger.LogError(e, "对话异常");
}
finally
var content = output.ToString();
if (content.IsNullOrEmpty())
{
memoryCache.Set(chatAi.MessageId, output.ToString(), TimeSpan.FromMinutes(5));
memoryCache.Set(chatAi.MessageId, "抱歉,似乎出现了问题,产生空的消息内容,请联系管理员", TimeSpan.FromMinutes(15));
return;
}
// 写入缓存,15分钟过期
memoryCache.Set(chatAi.MessageId, content, TimeSpan.FromMinutes(15));
}
}

View File

@@ -11,7 +11,9 @@ public sealed class UserRepository : Repository<WikiDbContext, User, Guid>, IUse
public async Task<List<User>> GetListAsync(string? keyword, int page, int pageSize)
{
var query = GetQuery(keyword);
return await query.Skip((page - 1) * pageSize).Take(pageSize).ToListAsync();
return await query.Skip((page - 1) * pageSize)
.Take(pageSize)
.ToListAsync();
}
public async Task<long> GetCountAsync(string? keyword)
@@ -53,7 +55,9 @@ public sealed class UserRepository : Repository<WikiDbContext, User, Guid>, IUse
private IQueryable<User> GetQuery(string? keyword)
{
var query = Context.Users.AsQueryable();
var query = Context.Users
.AsNoTracking()
.AsQueryable();
if (!string.IsNullOrEmpty(keyword)) query = query.Where(x => x.Account.Contains(keyword));
return query;

View File

@@ -56,7 +56,8 @@ if (ConnectionStringsOptions.DefaultType == "sqlite")
else
builder.Services.AddMasaDbContext<WikiDbContext>(opt =>
{
opt.UseNpgsql(ConnectionStringsOptions.DefaultConnection);
opt.UseNpgsql(ConnectionStringsOptions.DefaultConnection)
.EnableDetailedErrors();
});
builder.Services
@@ -172,7 +173,11 @@ builder.Services
builder.Services.AddAutoInject();
var app = builder.Services.AddServices(builder, option => option.MapHttpMethodsForUnmatched = ["Post"]);
var app = builder.Services.AddServices(builder, option =>
{
option.MapHttpMethodsForUnmatched = ["Post"];
});
app.UseCors("AllowAll");
app.UseAuthentication();

View File

@@ -5,7 +5,7 @@ namespace FastWiki.Service.Service;
/// <summary>
/// 文件存储服务
/// </summary>
public sealed class StorageService(IFileStorageRepository fileStorageRepository) : ApplicationService<StorageService>
public sealed class StorageService(IServiceProvider serviceProvider) : ApplicationService<StorageService>
{
/// <summary>
/// 上传文件
@@ -34,6 +34,9 @@ public sealed class StorageService(IFileStorageRepository fileStorageRepository)
fileStorage.SetFullName(fileInfo.FullName);
var fileStorageRepository = GetService<IFileStorageRepository>();
fileStorage = await fileStorageRepository.AddAsync(fileStorage);
return new UploadFileResult

View File

@@ -1,17 +1,7 @@
using System.Text;
using System.Threading.Channels;
using System.Xml;
using System.Xml;
using FastWiki.Service.Backgrounds;
using FastWiki.Service.Contracts.OpenAI;
using FastWiki.Service.Contracts.WeChat;
using FastWiki.Service.DataAccess.Repositories.Wikis;
using FastWiki.Service.Domain.Function.Repositories;
using FastWiki.Service.Domain.Storage.Aggregates;
using FastWiki.Service.Infrastructure.Helper;
using Masa.BuildingBlocks.Data;
using Microsoft.Extensions.Caching.Memory;
using Microsoft.SemanticKernel;
using Microsoft.SemanticKernel.ChatCompletion;
namespace FastWiki.Service.Service;
@@ -22,17 +12,18 @@ public class WeChatService
{
private const string OutputTemplate =
"""
FastWiki
""";
/// <summary>
/// 接收消息
/// </summary>
/// <param name="context"></param>
public static async Task ReceiveMessageAsync(HttpContext context, string? id, IMemoryCache memoryCache)
/// <param name="id"></param>
/// <param name="memoryCache"></param>
public static async Task ReceiveMessageAsync(HttpContext context, string id, IMemoryCache memoryCache)
{
if (context.Request.Method != "POST")
{
@@ -44,6 +35,7 @@ public class WeChatService
return;
}
using var reader = new StreamReader(context.Request.Body);
// xml解析
var body = await reader.ReadToEndAsync();
@@ -69,7 +61,8 @@ public class WeChatService
Content = input.Content
};
if (output.Content.IsNullOrEmpty()) return;
if (output.Content.IsNullOrEmpty())
return;
if (id == null)
@@ -79,34 +72,28 @@ public class WeChatService
return;
}
var outputValue = string.Empty;
var messageId = GetMessageId(output);
// 从缓存中获取,如果有则返回
memoryCache.TryGetValue(messageId, out var value);
string outputValue;
// 如果value有值则但是value为空则返回提示,防止重复提问!
if (value is string str && str.IsNullOrEmpty())
if (output.Content.Trim().Equals("继续", StringComparison.OrdinalIgnoreCase))
{
await WriteMessageAsync(context, output, "暂无消息请稍后再试code:no_message");
return;
}
if (value is string v && !v.IsNullOrEmpty())
{
await WriteMessageAsync(context, output, v, messageId);
return;
}
else if (output.Content == "继续")
{
if (value is string v1 && !v1.IsNullOrEmpty())
// 尝试4s
for (var i = 0; i < 9; i++)
{
await WriteMessageAsync(context, output, v1, messageId);
return;
await Task.Delay(500);
// 从缓存中获取,如果有则返回
memoryCache.TryGetValue(messageId, out var value);
if (value is string s && !s.IsNullOrEmpty())
{
await WriteMessageAsync(context, output, s, messageId, true);
return;
}
}
await WriteMessageAsync(context, output, "暂无消息请稍后再试code:no_message");
await WriteMessageAsync(context, output, "抱歉,暂时没有消息,请稍后在回复", messageId);
return;
}
@@ -121,10 +108,11 @@ public class WeChatService
// 等待4s
for (var i = 0; i < 9; i++)
{
await Task.Delay(510);
if (!memoryCache.TryGetValue(messageId, out outputValue) || outputValue.IsNullOrEmpty()) continue;
await Task.Delay(500);
if (!memoryCache.TryGetValue(messageId, out outputValue) || outputValue.IsNullOrEmpty())
continue;
await WriteMessageAsync(context, output, outputValue, messageId);
await WriteMessageAsync(context, output, outputValue, messageId, true);
return;
}
@@ -132,23 +120,19 @@ public class WeChatService
memoryCache.TryGetValue(messageId, out outputValue);
if (!outputValue.IsNullOrEmpty())
{
await WriteMessageAsync(context, output, outputValue, messageId);
await WriteMessageAsync(context, output, outputValue, messageId, true);
return;
}
context.Response.ContentType = "application/xml";
await context.Response.WriteAsync(GetOutputXml(output, OutputTemplate));
// 写入缓存,5分钟过期
memoryCache.Set(messageId, OutputTemplate, TimeSpan.FromMinutes(5));
await WriteMessageAsync(context, output, OutputTemplate, messageId);
}
public static async Task WriteMessageAsync(HttpContext context, WehCahtMe chatAi, string outputValue,
string? messageId = null)
string messageId = null, bool remove = false)
{
context.Response.ContentType = "application/xml";
await context.Response.WriteAsync(GetOutputXml(chatAi, outputValue));
if (!messageId.IsNullOrWhiteSpace())
if (!messageId.IsNullOrWhiteSpace() && remove)
context.RequestServices.GetRequiredService<IMemoryCache>().Remove(messageId);
}

View File

@@ -162,11 +162,7 @@ export default function UserList({
useEffect(() => {
loadingData();
}, [keyword]);
useEffect(() => {
loadingData();
}, [input]);
}, [keyword,input]);
return (

View File

@@ -179,7 +179,7 @@ export default function UploadWikiFile({ id, onChagePath }: IUploadWikiFileProps
justifyContent: 'center',
alignItems: 'center',
flexDirection: 'column'
}} height={200}>
}} >
<p className="ant-upload-drag-icon">
<InboxOutlined />
</p>
@@ -194,7 +194,7 @@ export default function UploadWikiFile({ id, onChagePath }: IUploadWikiFileProps
display: 'flex',
flexWrap: 'wrap',
overflow: 'auto',
height: '200px',
height: 'calc(100vh - 450px)',
alignContent: 'flex-start'
}}>
@@ -318,7 +318,11 @@ export default function UploadWikiFile({ id, onChagePath }: IUploadWikiFileProps
</>
}
</div>
<Table dataSource={fileList.map(item => {
<Table
scroll={{
y: 'calc(100vh - 500px)'
}}
dataSource={fileList.map(item => {
return {
fileName: item.name,
progress: item.progress || 0,

View File

@@ -446,6 +446,328 @@
resolved "https://mirrors.huaweicloud.com/repository/npm/@cfworker/json-schema/-/json-schema-1.12.8.tgz"
integrity sha512-hi//AkiNRh5e8yLtpmRHnboHX051bow36+sn68f7yB163vOd3EDpUzUKH/wuNETFAyZAovsAHGAyMt+6oVb2Xg==
"@codemirror/autocomplete@^6.0.0", "@codemirror/autocomplete@^6.3.2", "@codemirror/autocomplete@^6.7.1":
version "6.18.0"
resolved "https://mirrors.huaweicloud.com/repository/npm/@codemirror/autocomplete/-/autocomplete-6.18.0.tgz"
integrity sha512-5DbOvBbY4qW5l57cjDsmmpDh3/TeK1vXfTHa+BUMrRzdWdcxKZ4U4V7vQaTtOpApNU4kLS4FQ6cINtLg245LXA==
dependencies:
"@codemirror/language" "^6.0.0"
"@codemirror/state" "^6.0.0"
"@codemirror/view" "^6.17.0"
"@lezer/common" "^1.0.0"
"@codemirror/commands@^6.0.0":
version "6.6.1"
resolved "https://mirrors.huaweicloud.com/repository/npm/@codemirror/commands/-/commands-6.6.1.tgz"
integrity sha512-iBfKbyIoXS1FGdsKcZmnrxmbc8VcbMrSgD7AVrsnX+WyAYjmUDWvE93dt5D874qS4CCVu4O1JpbagHdXbbLiOw==
dependencies:
"@codemirror/language" "^6.0.0"
"@codemirror/state" "^6.4.0"
"@codemirror/view" "^6.27.0"
"@lezer/common" "^1.1.0"
"@codemirror/lang-angular@^0.1.0":
version "0.1.3"
resolved "https://mirrors.huaweicloud.com/repository/npm/@codemirror/lang-angular/-/lang-angular-0.1.3.tgz"
integrity sha512-xgeWGJQQl1LyStvndWtruUvb4SnBZDAu/gvFH/ZU+c0W25tQR8e5hq7WTwiIY2dNxnf+49mRiGI/9yxIwB6f5w==
dependencies:
"@codemirror/lang-html" "^6.0.0"
"@codemirror/lang-javascript" "^6.1.2"
"@codemirror/language" "^6.0.0"
"@lezer/common" "^1.2.0"
"@lezer/highlight" "^1.0.0"
"@lezer/lr" "^1.3.3"
"@codemirror/lang-cpp@^6.0.0":
version "6.0.2"
resolved "https://mirrors.huaweicloud.com/repository/npm/@codemirror/lang-cpp/-/lang-cpp-6.0.2.tgz"
integrity sha512-6oYEYUKHvrnacXxWxYa6t4puTlbN3dgV662BDfSH8+MfjQjVmP697/KYTDOqpxgerkvoNm7q5wlFMBeX8ZMocg==
dependencies:
"@codemirror/language" "^6.0.0"
"@lezer/cpp" "^1.0.0"
"@codemirror/lang-css@^6.0.0", "@codemirror/lang-css@^6.2.0":
version "6.2.1"
resolved "https://mirrors.huaweicloud.com/repository/npm/@codemirror/lang-css/-/lang-css-6.2.1.tgz"
integrity sha512-/UNWDNV5Viwi/1lpr/dIXJNWiwDxpw13I4pTUAsNxZdg6E0mI2kTQb0P2iHczg1Tu+H4EBgJR+hYhKiHKko7qg==
dependencies:
"@codemirror/autocomplete" "^6.0.0"
"@codemirror/language" "^6.0.0"
"@codemirror/state" "^6.0.0"
"@lezer/common" "^1.0.2"
"@lezer/css" "^1.0.0"
"@codemirror/lang-go@^6.0.0":
version "6.0.1"
resolved "https://mirrors.huaweicloud.com/repository/npm/@codemirror/lang-go/-/lang-go-6.0.1.tgz"
integrity sha512-7fNvbyNylvqCphW9HD6WFnRpcDjr+KXX/FgqXy5H5ZS0eC5edDljukm/yNgYkwTsgp2busdod50AOTIy6Jikfg==
dependencies:
"@codemirror/autocomplete" "^6.0.0"
"@codemirror/language" "^6.6.0"
"@codemirror/state" "^6.0.0"
"@lezer/common" "^1.0.0"
"@lezer/go" "^1.0.0"
"@codemirror/lang-html@^6.0.0":
version "6.4.9"
resolved "https://mirrors.huaweicloud.com/repository/npm/@codemirror/lang-html/-/lang-html-6.4.9.tgz"
integrity sha512-aQv37pIMSlueybId/2PVSP6NPnmurFDVmZwzc7jszd2KAF8qd4VBbvNYPXWQq90WIARjsdVkPbw29pszmHws3Q==
dependencies:
"@codemirror/autocomplete" "^6.0.0"
"@codemirror/lang-css" "^6.0.0"
"@codemirror/lang-javascript" "^6.0.0"
"@codemirror/language" "^6.4.0"
"@codemirror/state" "^6.0.0"
"@codemirror/view" "^6.17.0"
"@lezer/common" "^1.0.0"
"@lezer/css" "^1.1.0"
"@lezer/html" "^1.3.0"
"@codemirror/lang-java@^6.0.0":
version "6.0.1"
resolved "https://mirrors.huaweicloud.com/repository/npm/@codemirror/lang-java/-/lang-java-6.0.1.tgz"
integrity sha512-OOnmhH67h97jHzCuFaIEspbmsT98fNdhVhmA3zCxW0cn7l8rChDhZtwiwJ/JOKXgfm4J+ELxQihxaI7bj7mJRg==
dependencies:
"@codemirror/language" "^6.0.0"
"@lezer/java" "^1.0.0"
"@codemirror/lang-javascript@^6.0.0", "@codemirror/lang-javascript@^6.1.2":
version "6.2.2"
resolved "https://mirrors.huaweicloud.com/repository/npm/@codemirror/lang-javascript/-/lang-javascript-6.2.2.tgz"
integrity sha512-VGQfY+FCc285AhWuwjYxQyUQcYurWlxdKYT4bqwr3Twnd5wP5WSeu52t4tvvuWmljT4EmgEgZCqSieokhtY8hg==
dependencies:
"@codemirror/autocomplete" "^6.0.0"
"@codemirror/language" "^6.6.0"
"@codemirror/lint" "^6.0.0"
"@codemirror/state" "^6.0.0"
"@codemirror/view" "^6.17.0"
"@lezer/common" "^1.0.0"
"@lezer/javascript" "^1.0.0"
"@codemirror/lang-json@^6.0.0":
version "6.0.1"
resolved "https://mirrors.huaweicloud.com/repository/npm/@codemirror/lang-json/-/lang-json-6.0.1.tgz"
integrity sha512-+T1flHdgpqDDlJZ2Lkil/rLiRy684WMLc74xUnjJH48GQdfJo/pudlTRreZmKwzP8/tGdKf83wlbAdOCzlJOGQ==
dependencies:
"@codemirror/language" "^6.0.0"
"@lezer/json" "^1.0.0"
"@codemirror/lang-less@^6.0.0":
version "6.0.2"
resolved "https://mirrors.huaweicloud.com/repository/npm/@codemirror/lang-less/-/lang-less-6.0.2.tgz"
integrity sha512-EYdQTG22V+KUUk8Qq582g7FMnCZeEHsyuOJisHRft/mQ+ZSZ2w51NupvDUHiqtsOy7It5cHLPGfHQLpMh9bqpQ==
dependencies:
"@codemirror/lang-css" "^6.2.0"
"@codemirror/language" "^6.0.0"
"@lezer/common" "^1.2.0"
"@lezer/highlight" "^1.0.0"
"@lezer/lr" "^1.0.0"
"@codemirror/lang-liquid@^6.0.0":
version "6.2.1"
resolved "https://mirrors.huaweicloud.com/repository/npm/@codemirror/lang-liquid/-/lang-liquid-6.2.1.tgz"
integrity sha512-J1Mratcm6JLNEiX+U2OlCDTysGuwbHD76XwuL5o5bo9soJtSbz2g6RU3vGHFyS5DC8rgVmFSzi7i6oBftm7tnA==
dependencies:
"@codemirror/autocomplete" "^6.0.0"
"@codemirror/lang-html" "^6.0.0"
"@codemirror/language" "^6.0.0"
"@codemirror/state" "^6.0.0"
"@codemirror/view" "^6.0.0"
"@lezer/common" "^1.0.0"
"@lezer/highlight" "^1.0.0"
"@lezer/lr" "^1.3.1"
"@codemirror/lang-markdown@^6.0.0", "@codemirror/lang-markdown@^6.2.5":
version "6.2.5"
resolved "https://mirrors.huaweicloud.com/repository/npm/@codemirror/lang-markdown/-/lang-markdown-6.2.5.tgz"
integrity sha512-Hgke565YcO4fd9pe2uLYxnMufHO5rQwRr+AAhFq8ABuhkrjyX8R5p5s+hZUTdV60O0dMRjxKhBLxz8pu/MkUVA==
dependencies:
"@codemirror/autocomplete" "^6.7.1"
"@codemirror/lang-html" "^6.0.0"
"@codemirror/language" "^6.3.0"
"@codemirror/state" "^6.0.0"
"@codemirror/view" "^6.0.0"
"@lezer/common" "^1.2.1"
"@lezer/markdown" "^1.0.0"
"@codemirror/lang-php@^6.0.0":
version "6.0.1"
resolved "https://mirrors.huaweicloud.com/repository/npm/@codemirror/lang-php/-/lang-php-6.0.1.tgz"
integrity sha512-ublojMdw/PNWa7qdN5TMsjmqkNuTBD3k6ndZ4Z0S25SBAiweFGyY68AS3xNcIOlb6DDFDvKlinLQ40vSLqf8xA==
dependencies:
"@codemirror/lang-html" "^6.0.0"
"@codemirror/language" "^6.0.0"
"@codemirror/state" "^6.0.0"
"@lezer/common" "^1.0.0"
"@lezer/php" "^1.0.0"
"@codemirror/lang-python@^6.0.0":
version "6.1.6"
resolved "https://mirrors.huaweicloud.com/repository/npm/@codemirror/lang-python/-/lang-python-6.1.6.tgz"
integrity sha512-ai+01WfZhWqM92UqjnvorkxosZ2aq2u28kHvr+N3gu012XqY2CThD67JPMHnGceRfXPDBmn1HnyqowdpF57bNg==
dependencies:
"@codemirror/autocomplete" "^6.3.2"
"@codemirror/language" "^6.8.0"
"@codemirror/state" "^6.0.0"
"@lezer/common" "^1.2.1"
"@lezer/python" "^1.1.4"
"@codemirror/lang-rust@^6.0.0":
version "6.0.1"
resolved "https://mirrors.huaweicloud.com/repository/npm/@codemirror/lang-rust/-/lang-rust-6.0.1.tgz"
integrity sha512-344EMWFBzWArHWdZn/NcgkwMvZIWUR1GEBdwG8FEp++6o6vT6KL9V7vGs2ONsKxxFUPXKI0SPcWhyYyl2zPYxQ==
dependencies:
"@codemirror/language" "^6.0.0"
"@lezer/rust" "^1.0.0"
"@codemirror/lang-sass@^6.0.0":
version "6.0.2"
resolved "https://mirrors.huaweicloud.com/repository/npm/@codemirror/lang-sass/-/lang-sass-6.0.2.tgz"
integrity sha512-l/bdzIABvnTo1nzdY6U+kPAC51czYQcOErfzQ9zSm9D8GmNPD0WTW8st/CJwBTPLO8jlrbyvlSEcN20dc4iL0Q==
dependencies:
"@codemirror/lang-css" "^6.2.0"
"@codemirror/language" "^6.0.0"
"@codemirror/state" "^6.0.0"
"@lezer/common" "^1.0.2"
"@lezer/sass" "^1.0.0"
"@codemirror/lang-sql@^6.0.0":
version "6.7.1"
resolved "https://mirrors.huaweicloud.com/repository/npm/@codemirror/lang-sql/-/lang-sql-6.7.1.tgz"
integrity sha512-flQa7zemrLKk0TIrOJnpeyH/b29BcVybtsTeZMgAo40O6kGbrnUSCgwI3TF5iJY3O9VXJKKCA+i0CBVvDfr88w==
dependencies:
"@codemirror/autocomplete" "^6.0.0"
"@codemirror/language" "^6.0.0"
"@codemirror/state" "^6.0.0"
"@lezer/common" "^1.2.0"
"@lezer/highlight" "^1.0.0"
"@lezer/lr" "^1.0.0"
"@codemirror/lang-vue@^0.1.1":
version "0.1.3"
resolved "https://mirrors.huaweicloud.com/repository/npm/@codemirror/lang-vue/-/lang-vue-0.1.3.tgz"
integrity sha512-QSKdtYTDRhEHCfo5zOShzxCmqKJvgGrZwDQSdbvCRJ5pRLWBS7pD/8e/tH44aVQT6FKm0t6RVNoSUWHOI5vNug==
dependencies:
"@codemirror/lang-html" "^6.0.0"
"@codemirror/lang-javascript" "^6.1.2"
"@codemirror/language" "^6.0.0"
"@lezer/common" "^1.2.0"
"@lezer/highlight" "^1.0.0"
"@lezer/lr" "^1.3.1"
"@codemirror/lang-wast@^6.0.0":
version "6.0.2"
resolved "https://mirrors.huaweicloud.com/repository/npm/@codemirror/lang-wast/-/lang-wast-6.0.2.tgz"
integrity sha512-Imi2KTpVGm7TKuUkqyJ5NRmeFWF7aMpNiwHnLQe0x9kmrxElndyH0K6H/gXtWwY6UshMRAhpENsgfpSwsgmC6Q==
dependencies:
"@codemirror/language" "^6.0.0"
"@lezer/common" "^1.2.0"
"@lezer/highlight" "^1.0.0"
"@lezer/lr" "^1.0.0"
"@codemirror/lang-xml@^6.0.0":
version "6.1.0"
resolved "https://mirrors.huaweicloud.com/repository/npm/@codemirror/lang-xml/-/lang-xml-6.1.0.tgz"
integrity sha512-3z0blhicHLfwi2UgkZYRPioSgVTo9PV5GP5ducFH6FaHy0IAJRg+ixj5gTR1gnT/glAIC8xv4w2VL1LoZfs+Jg==
dependencies:
"@codemirror/autocomplete" "^6.0.0"
"@codemirror/language" "^6.4.0"
"@codemirror/state" "^6.0.0"
"@codemirror/view" "^6.0.0"
"@lezer/common" "^1.0.0"
"@lezer/xml" "^1.0.0"
"@codemirror/lang-yaml@^6.0.0":
version "6.1.1"
resolved "https://mirrors.huaweicloud.com/repository/npm/@codemirror/lang-yaml/-/lang-yaml-6.1.1.tgz"
integrity sha512-HV2NzbK9bbVnjWxwObuZh5FuPCowx51mEfoFT9y3y+M37fA3+pbxx4I7uePuygFzDsAmCTwQSc/kXh/flab4uw==
dependencies:
"@codemirror/autocomplete" "^6.0.0"
"@codemirror/language" "^6.0.0"
"@codemirror/state" "^6.0.0"
"@lezer/common" "^1.2.0"
"@lezer/highlight" "^1.2.0"
"@lezer/yaml" "^1.0.0"
"@codemirror/language-data@^6.5.1":
version "6.5.1"
resolved "https://mirrors.huaweicloud.com/repository/npm/@codemirror/language-data/-/language-data-6.5.1.tgz"
integrity sha512-0sWxeUSNlBr6OmkqybUTImADFUP0M3P0IiSde4nc24bz/6jIYzqYSgkOSLS+CBIoW1vU8Q9KUWXscBXeoMVC9w==
dependencies:
"@codemirror/lang-angular" "^0.1.0"
"@codemirror/lang-cpp" "^6.0.0"
"@codemirror/lang-css" "^6.0.0"
"@codemirror/lang-go" "^6.0.0"
"@codemirror/lang-html" "^6.0.0"
"@codemirror/lang-java" "^6.0.0"
"@codemirror/lang-javascript" "^6.0.0"
"@codemirror/lang-json" "^6.0.0"
"@codemirror/lang-less" "^6.0.0"
"@codemirror/lang-liquid" "^6.0.0"
"@codemirror/lang-markdown" "^6.0.0"
"@codemirror/lang-php" "^6.0.0"
"@codemirror/lang-python" "^6.0.0"
"@codemirror/lang-rust" "^6.0.0"
"@codemirror/lang-sass" "^6.0.0"
"@codemirror/lang-sql" "^6.0.0"
"@codemirror/lang-vue" "^0.1.1"
"@codemirror/lang-wast" "^6.0.0"
"@codemirror/lang-xml" "^6.0.0"
"@codemirror/lang-yaml" "^6.0.0"
"@codemirror/language" "^6.0.0"
"@codemirror/legacy-modes" "^6.4.0"
"@codemirror/language@^6.0.0", "@codemirror/language@^6.3.0", "@codemirror/language@^6.4.0", "@codemirror/language@^6.6.0", "@codemirror/language@^6.8.0":
version "6.10.2"
resolved "https://mirrors.huaweicloud.com/repository/npm/@codemirror/language/-/language-6.10.2.tgz"
integrity sha512-kgbTYTo0Au6dCSc/TFy7fK3fpJmgHDv1sG1KNQKJXVi+xBTEeBPY/M30YXiU6mMXeH+YIDLsbrT4ZwNRdtF+SA==
dependencies:
"@codemirror/state" "^6.0.0"
"@codemirror/view" "^6.23.0"
"@lezer/common" "^1.1.0"
"@lezer/highlight" "^1.0.0"
"@lezer/lr" "^1.0.0"
style-mod "^4.0.0"
"@codemirror/legacy-modes@^6.4.0":
version "6.4.1"
resolved "https://mirrors.huaweicloud.com/repository/npm/@codemirror/legacy-modes/-/legacy-modes-6.4.1.tgz"
integrity sha512-vdg3XY7OAs5uLDx2Iw+cGfnwtd7kM+Et/eMsqAGTfT/JKiVBQZXosTzjEbWAi/FrY6DcQIz8mQjBozFHZEUWQA==
dependencies:
"@codemirror/language" "^6.0.0"
"@codemirror/lint@^6.0.0":
version "6.8.1"
resolved "https://mirrors.huaweicloud.com/repository/npm/@codemirror/lint/-/lint-6.8.1.tgz"
integrity sha512-IZ0Y7S4/bpaunwggW2jYqwLuHj0QtESf5xcROewY6+lDNwZ/NzvR4t+vpYgg9m7V8UXLPYqG+lu3DF470E5Oxg==
dependencies:
"@codemirror/state" "^6.0.0"
"@codemirror/view" "^6.0.0"
crelt "^1.0.5"
"@codemirror/search@^6.0.0":
version "6.5.6"
resolved "https://mirrors.huaweicloud.com/repository/npm/@codemirror/search/-/search-6.5.6.tgz"
integrity sha512-rpMgcsh7o0GuCDUXKPvww+muLA1pDJaFrpq/CCHtpQJYz8xopu4D1hPcKRoDD0YlF8gZaqTNIRa4VRBWyhyy7Q==
dependencies:
"@codemirror/state" "^6.0.0"
"@codemirror/view" "^6.0.0"
crelt "^1.0.5"
"@codemirror/state@^6.0.0", "@codemirror/state@^6.4.0":
version "6.4.1"
resolved "https://mirrors.huaweicloud.com/repository/npm/@codemirror/state/-/state-6.4.1.tgz"
integrity sha512-QkEyUiLhsJoZkbumGZlswmAhA7CBU02Wrz7zvH4SrcifbsqwlXShVXg65f3v/ts57W3dqyamEriMhij1Z3Zz4A==
"@codemirror/view@^6.0.0", "@codemirror/view@^6.17.0", "@codemirror/view@^6.23.0", "@codemirror/view@^6.27.0":
version "6.33.0"
resolved "https://mirrors.huaweicloud.com/repository/npm/@codemirror/view/-/view-6.33.0.tgz"
integrity sha512-AroaR3BvnjRW8fiZBalAaK+ZzB5usGgI014YKElYZvQdNH5ZIidHlO+cyf/2rWzyBFRkvG6VhiXeAEbC53P2YQ==
dependencies:
"@codemirror/state" "^6.4.0"
style-mod "^4.1.0"
w3c-keyname "^2.2.4"
"@ctrl/tinycolor@^3.6.1":
version "3.6.1"
resolved "https://mirrors.huaweicloud.com/repository/npm/@ctrl/tinycolor/-/tinycolor-3.6.1.tgz"
@@ -777,6 +1099,150 @@
resolved "https://mirrors.huaweicloud.com/repository/npm/@jsdevtools/ono/-/ono-7.1.3.tgz"
integrity sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==
"@lezer/common@^1.0.0", "@lezer/common@^1.0.2", "@lezer/common@^1.1.0", "@lezer/common@^1.2.0", "@lezer/common@^1.2.1":
version "1.2.1"
resolved "https://mirrors.huaweicloud.com/repository/npm/@lezer/common/-/common-1.2.1.tgz"
integrity sha512-yemX0ZD2xS/73llMZIK6KplkjIjf2EvAHcinDi/TfJ9hS25G0388+ClHt6/3but0oOxinTcQHJLDXh6w1crzFQ==
"@lezer/cpp@^1.0.0":
version "1.1.2"
resolved "https://mirrors.huaweicloud.com/repository/npm/@lezer/cpp/-/cpp-1.1.2.tgz"
integrity sha512-macwKtyeUO0EW86r3xWQCzOV9/CF8imJLpJlPv3sDY57cPGeUZ8gXWOWNlJr52TVByMV3PayFQCA5SHEERDmVQ==
dependencies:
"@lezer/common" "^1.2.0"
"@lezer/highlight" "^1.0.0"
"@lezer/lr" "^1.0.0"
"@lezer/css@^1.0.0", "@lezer/css@^1.1.0":
version "1.1.8"
resolved "https://mirrors.huaweicloud.com/repository/npm/@lezer/css/-/css-1.1.8.tgz"
integrity sha512-7JhxupKuMBaWQKjQoLtzhGj83DdnZY9MckEOG5+/iLKNK2ZJqKc6hf6uc0HjwCX7Qlok44jBNqZhHKDhEhZYLA==
dependencies:
"@lezer/common" "^1.2.0"
"@lezer/highlight" "^1.0.0"
"@lezer/lr" "^1.0.0"
"@lezer/go@^1.0.0":
version "1.0.0"
resolved "https://mirrors.huaweicloud.com/repository/npm/@lezer/go/-/go-1.0.0.tgz"
integrity sha512-co9JfT3QqX1YkrMmourYw2Z8meGC50Ko4d54QEcQbEYpvdUvN4yb0NBZdn/9ertgvjsySxHsKzH3lbm3vqJ4Jw==
dependencies:
"@lezer/common" "^1.2.0"
"@lezer/highlight" "^1.0.0"
"@lezer/lr" "^1.0.0"
"@lezer/highlight@^1.0.0", "@lezer/highlight@^1.1.3", "@lezer/highlight@^1.2.0":
version "1.2.1"
resolved "https://mirrors.huaweicloud.com/repository/npm/@lezer/highlight/-/highlight-1.2.1.tgz"
integrity sha512-Z5duk4RN/3zuVO7Jq0pGLJ3qynpxUVsh7IbUbGj88+uV2ApSAn6kWg2au3iJb+0Zi7kKtqffIESgNcRXWZWmSA==
dependencies:
"@lezer/common" "^1.0.0"
"@lezer/html@^1.3.0":
version "1.3.10"
resolved "https://mirrors.huaweicloud.com/repository/npm/@lezer/html/-/html-1.3.10.tgz"
integrity sha512-dqpT8nISx/p9Do3AchvYGV3qYc4/rKr3IBZxlHmpIKam56P47RSHkSF5f13Vu9hebS1jM0HmtJIwLbWz1VIY6w==
dependencies:
"@lezer/common" "^1.2.0"
"@lezer/highlight" "^1.0.0"
"@lezer/lr" "^1.0.0"
"@lezer/java@^1.0.0":
version "1.1.2"
resolved "https://mirrors.huaweicloud.com/repository/npm/@lezer/java/-/java-1.1.2.tgz"
integrity sha512-3j8X70JvYf0BZt8iSRLXLkt0Ry1hVUgH6wT32yBxH/Xi55nW2VMhc1Az4SKwu4YGSmxCm1fsqDDcHTuFjC8pmg==
dependencies:
"@lezer/common" "^1.2.0"
"@lezer/highlight" "^1.0.0"
"@lezer/lr" "^1.0.0"
"@lezer/javascript@^1.0.0":
version "1.4.17"
resolved "https://mirrors.huaweicloud.com/repository/npm/@lezer/javascript/-/javascript-1.4.17.tgz"
integrity sha512-bYW4ctpyGK+JMumDApeUzuIezX01H76R1foD6LcRX224FWfyYit/HYxiPGDjXXe/wQWASjCvVGoukTH68+0HIA==
dependencies:
"@lezer/common" "^1.2.0"
"@lezer/highlight" "^1.1.3"
"@lezer/lr" "^1.3.0"
"@lezer/json@^1.0.0":
version "1.0.2"
resolved "https://mirrors.huaweicloud.com/repository/npm/@lezer/json/-/json-1.0.2.tgz"
integrity sha512-xHT2P4S5eeCYECyKNPhr4cbEL9tc8w83SPwRC373o9uEdrvGKTZoJVAGxpOsZckMlEh9W23Pc72ew918RWQOBQ==
dependencies:
"@lezer/common" "^1.2.0"
"@lezer/highlight" "^1.0.0"
"@lezer/lr" "^1.0.0"
"@lezer/lr@^1.0.0", "@lezer/lr@^1.1.0", "@lezer/lr@^1.3.0", "@lezer/lr@^1.3.1", "@lezer/lr@^1.3.3", "@lezer/lr@^1.4.0":
version "1.4.2"
resolved "https://mirrors.huaweicloud.com/repository/npm/@lezer/lr/-/lr-1.4.2.tgz"
integrity sha512-pu0K1jCIdnQ12aWNaAVU5bzi7Bd1w54J3ECgANPmYLtQKP0HBj2cE/5coBD66MT10xbtIuUr7tg0Shbsvk0mDA==
dependencies:
"@lezer/common" "^1.0.0"
"@lezer/markdown@^1.0.0":
version "1.3.1"
resolved "https://mirrors.huaweicloud.com/repository/npm/@lezer/markdown/-/markdown-1.3.1.tgz"
integrity sha512-DGlzU/i8DC8k0uz1F+jeePrkATl0jWakauTzftMQOcbaMkHbNSRki/4E2tOzJWsVpoKYhe7iTJ03aepdwVUXUA==
dependencies:
"@lezer/common" "^1.0.0"
"@lezer/highlight" "^1.0.0"
"@lezer/php@^1.0.0":
version "1.0.2"
resolved "https://mirrors.huaweicloud.com/repository/npm/@lezer/php/-/php-1.0.2.tgz"
integrity sha512-GN7BnqtGRpFyeoKSEqxvGvhJQiI4zkgmYnDk/JIyc7H7Ifc1tkPnUn/R2R8meH3h/aBf5rzjvU8ZQoyiNDtDrA==
dependencies:
"@lezer/common" "^1.2.0"
"@lezer/highlight" "^1.0.0"
"@lezer/lr" "^1.1.0"
"@lezer/python@^1.1.4":
version "1.1.14"
resolved "https://mirrors.huaweicloud.com/repository/npm/@lezer/python/-/python-1.1.14.tgz"
integrity sha512-ykDOb2Ti24n76PJsSa4ZoDF0zH12BSw1LGfQXCYJhJyOGiFTfGaX0Du66Ze72R+u/P35U+O6I9m8TFXov1JzsA==
dependencies:
"@lezer/common" "^1.2.0"
"@lezer/highlight" "^1.0.0"
"@lezer/lr" "^1.0.0"
"@lezer/rust@^1.0.0":
version "1.0.2"
resolved "https://mirrors.huaweicloud.com/repository/npm/@lezer/rust/-/rust-1.0.2.tgz"
integrity sha512-Lz5sIPBdF2FUXcWeCu1//ojFAZqzTQNRga0aYv6dYXqJqPfMdCAI0NzajWUd4Xijj1IKJLtjoXRPMvTKWBcqKg==
dependencies:
"@lezer/common" "^1.2.0"
"@lezer/highlight" "^1.0.0"
"@lezer/lr" "^1.0.0"
"@lezer/sass@^1.0.0":
version "1.0.6"
resolved "https://mirrors.huaweicloud.com/repository/npm/@lezer/sass/-/sass-1.0.6.tgz"
integrity sha512-w/RCO2dIzZH1To8p+xjs8cE+yfgGus8NZ/dXeWl/QzHyr+TeBs71qiE70KPImEwvTsmEjoWh0A5SxMzKd5BWBQ==
dependencies:
"@lezer/common" "^1.2.0"
"@lezer/highlight" "^1.0.0"
"@lezer/lr" "^1.0.0"
"@lezer/xml@^1.0.0":
version "1.0.5"
resolved "https://mirrors.huaweicloud.com/repository/npm/@lezer/xml/-/xml-1.0.5.tgz"
integrity sha512-VFouqOzmUWfIg+tfmpcdV33ewtK+NSwd4ngSe1aG7HFb4BN0ExyY1b8msp+ndFrnlG4V4iC8yXacjFtrwERnaw==
dependencies:
"@lezer/common" "^1.2.0"
"@lezer/highlight" "^1.0.0"
"@lezer/lr" "^1.0.0"
"@lezer/yaml@^1.0.0":
version "1.0.3"
resolved "https://mirrors.huaweicloud.com/repository/npm/@lezer/yaml/-/yaml-1.0.3.tgz"
integrity sha512-GuBLekbw9jDBDhGur82nuwkxKQ+a3W5H0GfaAthDXcAu+XdpS43VlnxA9E9hllkpSP5ellRDKjLLj7Lu9Wr6xA==
dependencies:
"@lezer/common" "^1.2.0"
"@lezer/highlight" "^1.0.0"
"@lezer/lr" "^1.4.0"
"@lit-labs/ssr-dom-shim@^1.2.0":
version "1.2.1"
resolved "https://mirrors.huaweicloud.com/repository/npm/@lit-labs/ssr-dom-shim/-/ssr-dom-shim-1.2.1.tgz"
@@ -1731,6 +2197,11 @@
resolved "https://mirrors.huaweicloud.com/repository/npm/@types/katex/-/katex-0.16.7.tgz"
integrity sha512-HMwFiRujE5PjrgwHQ25+bsLJgowjGjm5Z8FVSf0N6PwgJrwxH0QxzHYDcKsTfV3wva0vzrpqMTJS2jXPr5BMEQ==
"@types/linkify-it@^5":
version "5.0.0"
resolved "https://mirrors.huaweicloud.com/repository/npm/@types/linkify-it/-/linkify-it-5.0.0.tgz"
integrity sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==
"@types/lodash-es@^4.17.12":
version "4.17.12"
resolved "https://mirrors.huaweicloud.com/repository/npm/@types/lodash-es/-/lodash-es-4.17.12.tgz"
@@ -1743,6 +2214,14 @@
resolved "https://mirrors.huaweicloud.com/repository/npm/@types/lodash/-/lodash-4.17.7.tgz"
integrity sha512-8wTvZawATi/lsmNu10/j2hk1KEP0IvjubqPE3cu1Xz7xfXXt5oCq3SNUz4fMIP4XGF9Ky+Ue2tBA3hcS7LSBlA==
"@types/markdown-it@^14.0.1":
version "14.1.2"
resolved "https://mirrors.huaweicloud.com/repository/npm/@types/markdown-it/-/markdown-it-14.1.2.tgz"
integrity sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog==
dependencies:
"@types/linkify-it" "^5"
"@types/mdurl" "^2"
"@types/mdast@^3.0.0":
version "3.0.15"
resolved "https://mirrors.huaweicloud.com/repository/npm/@types/mdast/-/mdast-3.0.15.tgz"
@@ -1757,6 +2236,11 @@
dependencies:
"@types/unist" "*"
"@types/mdurl@^2":
version "2.0.0"
resolved "https://mirrors.huaweicloud.com/repository/npm/@types/mdurl/-/mdurl-2.0.0.tgz"
integrity sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==
"@types/ms@*":
version "0.7.34"
resolved "https://mirrors.huaweicloud.com/repository/npm/@types/ms/-/ms-0.7.34.tgz"
@@ -1959,6 +2443,11 @@
dependencies:
"@use-gesture/core" "10.3.1"
"@vavt/util@^2.0.0":
version "2.0.0"
resolved "https://mirrors.huaweicloud.com/repository/npm/@vavt/util/-/util-2.0.0.tgz"
integrity sha512-zf1sY9Gy4jj5SE7FuSTXu7PrUdnKJf0zKvhNLAHWiGg1t8IkMfYwRN5567HcUgZSaSuJ8FR3dr+w6E2XzxoPiQ==
"@vercel/analytics@^1.3.1":
version "1.3.1"
resolved "https://mirrors.huaweicloud.com/repository/npm/@vercel/analytics/-/analytics-1.3.1.tgz"
@@ -2519,6 +3008,19 @@ code-red@^1.0.3:
estree-walker "^3.0.3"
periscopic "^3.1.0"
codemirror@^6.0.1:
version "6.0.1"
resolved "https://mirrors.huaweicloud.com/repository/npm/codemirror/-/codemirror-6.0.1.tgz"
integrity sha512-J8j+nZ+CdWmIeFIGXEFbFPtpiYacFMDR8GlHK3IyHQJMCaVRfGx9NT+Hxivv1ckLWPvNdZqndbr/7lVhrf/Svg==
dependencies:
"@codemirror/autocomplete" "^6.0.0"
"@codemirror/commands" "^6.0.0"
"@codemirror/language" "^6.0.0"
"@codemirror/lint" "^6.0.0"
"@codemirror/search" "^6.0.0"
"@codemirror/state" "^6.0.0"
"@codemirror/view" "^6.0.0"
color-convert@^1.9.0:
version "1.9.3"
resolved "https://mirrors.huaweicloud.com/repository/npm/color-convert/-/color-convert-1.9.3.tgz"
@@ -2560,6 +3062,11 @@ comma-separated-tokens@^2.0.0:
resolved "https://mirrors.huaweicloud.com/repository/npm/comma-separated-tokens/-/comma-separated-tokens-2.0.3.tgz"
integrity sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==
commander@^2.20.3:
version "2.20.3"
resolved "https://mirrors.huaweicloud.com/repository/npm/commander/-/commander-2.20.3.tgz"
integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==
commander@^8.3.0:
version "8.3.0"
resolved "https://mirrors.huaweicloud.com/repository/npm/commander/-/commander-8.3.0.tgz"
@@ -2637,6 +3144,11 @@ cosmiconfig@^7.0.0:
path-type "^4.0.0"
yaml "^1.10.0"
crelt@^1.0.5:
version "1.0.6"
resolved "https://mirrors.huaweicloud.com/repository/npm/crelt/-/crelt-1.0.6.tgz"
integrity sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==
cross-spawn@^7.0.2:
version "7.0.3"
resolved "https://mirrors.huaweicloud.com/repository/npm/cross-spawn/-/cross-spawn-7.0.3.tgz"
@@ -2668,6 +3180,11 @@ css-tree@^2.3.1:
mdn-data "2.0.30"
source-map-js "^1.0.1"
cssfilter@0.0.10:
version "0.0.10"
resolved "https://mirrors.huaweicloud.com/repository/npm/cssfilter/-/cssfilter-0.0.10.tgz"
integrity sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==
csstype@^3.0.2, csstype@^3.1.3, csstype@3.1.3:
version "3.1.3"
resolved "https://mirrors.huaweicloud.com/repository/npm/csstype/-/csstype-3.1.3.tgz"
@@ -4309,6 +4826,13 @@ lines-and-columns@^1.1.6:
resolved "https://mirrors.huaweicloud.com/repository/npm/lines-and-columns/-/lines-and-columns-1.2.4.tgz"
integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==
linkify-it@^5.0.0:
version "5.0.0"
resolved "https://mirrors.huaweicloud.com/repository/npm/linkify-it/-/linkify-it-5.0.0.tgz"
integrity sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==
dependencies:
uc.micro "^2.0.0"
lit-element@^4.1.0:
version "4.1.0"
resolved "https://mirrors.huaweicloud.com/repository/npm/lit-element/-/lit-element-4.1.0.tgz"
@@ -4373,6 +4897,11 @@ loose-envify@^1.1.0, loose-envify@^1.4.0:
dependencies:
js-tokens "^3.0.0 || ^4.0.0"
lru-cache@^10.2.0:
version "10.4.3"
resolved "https://mirrors.huaweicloud.com/repository/npm/lru-cache/-/lru-cache-10.4.3.tgz"
integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==
lru-cache@^5.1.1:
version "5.1.1"
resolved "https://mirrors.huaweicloud.com/repository/npm/lru-cache/-/lru-cache-5.1.1.tgz"
@@ -4392,11 +4921,46 @@ magic-string@^0.30.10, magic-string@^0.30.4:
dependencies:
"@jridgewell/sourcemap-codec" "^1.5.0"
markdown-it-image-figures@^2.1.1:
version "2.1.1"
resolved "https://mirrors.huaweicloud.com/repository/npm/markdown-it-image-figures/-/markdown-it-image-figures-2.1.1.tgz"
integrity sha512-mwXSQ2nPeVUzCMIE3HlLvjRioopiqyJLNph0pyx38yf9mpqFDhNGnMpAXF9/A2Xv0oiF2cVyg9xwfF0HNAz05g==
markdown-it@*, markdown-it@^14.0.0:
version "14.1.0"
resolved "https://mirrors.huaweicloud.com/repository/npm/markdown-it/-/markdown-it-14.1.0.tgz"
integrity sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==
dependencies:
argparse "^2.0.1"
entities "^4.4.0"
linkify-it "^5.0.0"
mdurl "^2.0.0"
punycode.js "^2.3.1"
uc.micro "^2.1.0"
markdown-table@^3.0.0:
version "3.0.3"
resolved "https://mirrors.huaweicloud.com/repository/npm/markdown-table/-/markdown-table-3.0.3.tgz"
integrity sha512-Z1NL3Tb1M9wH4XESsCDEksWoKTdlUafKc4pt0GRwjUyXaCFZ+dc3g2erqB6zm3szA2IUSi7VnPI+o/9jnxh9hw==
md-editor-rt@^4.19.2:
version "4.19.2"
resolved "https://mirrors.huaweicloud.com/repository/npm/md-editor-rt/-/md-editor-rt-4.19.2.tgz"
integrity sha512-BHeo0L8sly/EfHQZi09l7wFugFry1MCrM0dAHCa/wF+xiqv7FowI2g2oiYu2S3l4H9qVdvfxqcj/D6YnYtZEeg==
dependencies:
"@codemirror/lang-markdown" "^6.2.5"
"@codemirror/language-data" "^6.5.1"
"@types/markdown-it" "^14.0.1"
"@vavt/util" "^2.0.0"
codemirror "^6.0.1"
copy-to-clipboard "^3.3.3"
lru-cache "^10.2.0"
markdown-it "^14.0.0"
markdown-it-image-figures "^2.1.1"
medium-zoom "^1.1.0"
punycode "^2.3.1"
xss "^1.0.15"
mdast-util-definitions@^5.0.0:
version "5.1.2"
resolved "https://mirrors.huaweicloud.com/repository/npm/mdast-util-definitions/-/mdast-util-definitions-5.1.2.tgz"
@@ -4629,6 +5193,16 @@ mdn-data@2.0.30:
resolved "https://mirrors.huaweicloud.com/repository/npm/mdn-data/-/mdn-data-2.0.30.tgz"
integrity sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==
mdurl@^2.0.0:
version "2.0.0"
resolved "https://mirrors.huaweicloud.com/repository/npm/mdurl/-/mdurl-2.0.0.tgz"
integrity sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==
medium-zoom@^1.1.0:
version "1.1.0"
resolved "https://mirrors.huaweicloud.com/repository/npm/medium-zoom/-/medium-zoom-1.1.0.tgz"
integrity sha512-ewyDsp7k4InCUp3jRmwHBRFGyjBimKps/AJLjRSox+2q/2H4p/PNpQf+pwONWlJiOudkBXtbdmVbFjqyybfTmQ==
merge-value@^1.0.0:
version "1.0.0"
resolved "https://mirrors.huaweicloud.com/repository/npm/merge-value/-/merge-value-1.0.0.tgz"
@@ -5666,7 +6240,12 @@ pump@^3.0.0:
end-of-stream "^1.1.0"
once "^1.3.1"
punycode@^2.1.0:
punycode.js@^2.3.1:
version "2.3.1"
resolved "https://mirrors.huaweicloud.com/repository/npm/punycode.js/-/punycode.js-2.3.1.tgz"
integrity sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==
punycode@^2.1.0, punycode@^2.3.1:
version "2.3.1"
resolved "https://mirrors.huaweicloud.com/repository/npm/punycode/-/punycode-2.3.1.tgz"
integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==
@@ -6812,6 +7391,11 @@ strip-json-comments@~2.0.1:
resolved "https://mirrors.huaweicloud.com/repository/npm/strip-json-comments/-/strip-json-comments-2.0.1.tgz"
integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==
style-mod@^4.0.0, style-mod@^4.1.0:
version "4.1.2"
resolved "https://mirrors.huaweicloud.com/repository/npm/style-mod/-/style-mod-4.1.2.tgz"
integrity sha512-wnD1HyVqpJUI2+eKZ+eo1UwghftP6yuFheBqqe+bWCotBjC2K1YnteJILRMs3SM4V/0dLEW1SC27MWP5y+mwmw==
style-to-object@^0.4.0:
version "0.4.4"
resolved "https://mirrors.huaweicloud.com/repository/npm/style-to-object/-/style-to-object-0.4.4.tgz"
@@ -7127,6 +7711,11 @@ ua-parser-js@^1.0.38:
resolved "https://mirrors.huaweicloud.com/repository/npm/ua-parser-js/-/ua-parser-js-1.0.38.tgz"
integrity sha512-Aq5ppTOfvrCMgAPneW1HfWj66Xi7XL+/mIy996R1/CLS/rcyJQm6QZdsKrUeivDFQ+Oc9Wyuwor8Ze8peEoUoQ==
uc.micro@^2.0.0, uc.micro@^2.1.0:
version "2.1.0"
resolved "https://mirrors.huaweicloud.com/repository/npm/uc.micro/-/uc.micro-2.1.0.tgz"
integrity sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==
undici-types@~5.26.4:
version "5.26.5"
resolved "https://mirrors.huaweicloud.com/repository/npm/undici-types/-/undici-types-5.26.5.tgz"
@@ -7422,6 +8011,11 @@ vue@^3.3.4, "vue@>=3.2.26 < 4", vue@3.4.37:
"@vue/server-renderer" "3.4.37"
"@vue/shared" "3.4.37"
w3c-keyname@^2.2.4:
version "2.2.8"
resolved "https://mirrors.huaweicloud.com/repository/npm/w3c-keyname/-/w3c-keyname-2.2.8.tgz"
integrity sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==
web-namespaces@^2.0.0:
version "2.0.1"
resolved "https://mirrors.huaweicloud.com/repository/npm/web-namespaces/-/web-namespaces-2.0.1.tgz"
@@ -7496,6 +8090,14 @@ ws@^8.14.2:
resolved "https://mirrors.huaweicloud.com/repository/npm/ws/-/ws-8.18.0.tgz"
integrity sha512-8VbfWfHLbbwu3+N6OKsOMpBdT4kXPDDB9cJk2bJ6mh9ucxdlnNvH1e+roYkKmN9Nxw2yjz7VzeO9oOz2zJ04Pw==
xss@^1.0.15:
version "1.0.15"
resolved "https://mirrors.huaweicloud.com/repository/npm/xss/-/xss-1.0.15.tgz"
integrity sha512-FVdlVVC67WOIPvfOwhoMETV72f6GbW7aOabBC3WxN/oUdoEMDyLz4OgRv5/gck2ZeNqEQu+Tb0kloovXOfpYVg==
dependencies:
commander "^2.20.3"
cssfilter "0.0.10"
xtend@~2.1.1:
version "2.1.2"
resolved "https://mirrors.huaweicloud.com/repository/npm/xtend/-/xtend-2.1.2.tgz"