diff --git a/auth/api/src/main/java/com/tencent/supersonic/auth/api/authentication/config/AuthenticationConfig.java b/auth/api/src/main/java/com/tencent/supersonic/auth/api/authentication/config/AuthenticationConfig.java index 42f3eb109..2f5a9600e 100644 --- a/auth/api/src/main/java/com/tencent/supersonic/auth/api/authentication/config/AuthenticationConfig.java +++ b/auth/api/src/main/java/com/tencent/supersonic/auth/api/authentication/config/AuthenticationConfig.java @@ -33,4 +33,6 @@ public class AuthenticationConfig { @Value("${authentication.app.signature:signature}") private String signature; + @Value("${authentication.token.timeout:7200000}") + private Long tokenTimeout; } diff --git a/auth/api/src/main/java/com/tencent/supersonic/auth/api/authentication/constant/UserConstants.java b/auth/api/src/main/java/com/tencent/supersonic/auth/api/authentication/constant/UserConstants.java index 3f582d2c5..f176cb0bf 100644 --- a/auth/api/src/main/java/com/tencent/supersonic/auth/api/authentication/constant/UserConstants.java +++ b/auth/api/src/main/java/com/tencent/supersonic/auth/api/authentication/constant/UserConstants.java @@ -19,10 +19,6 @@ public class UserConstants { public static final String TOKEN_CREATE_TIME = "token_create_time"; public static final String TOKEN_PREFIX = "Bearer"; - - public static final Long TOKEN_TIME_OUT = 25920000000L; - public static final String INTERNAL = "internal"; - } diff --git a/auth/authentication/src/main/java/com/tencent/supersonic/auth/authentication/utils/UserTokenUtils.java b/auth/authentication/src/main/java/com/tencent/supersonic/auth/authentication/utils/UserTokenUtils.java index f1ef5b590..f1a47781e 100644 --- a/auth/authentication/src/main/java/com/tencent/supersonic/auth/authentication/utils/UserTokenUtils.java +++ b/auth/authentication/src/main/java/com/tencent/supersonic/auth/authentication/utils/UserTokenUtils.java @@ -4,12 +4,12 @@ import static com.tencent.supersonic.auth.api.authentication.constant.UserConsta import static com.tencent.supersonic.auth.api.authentication.constant.UserConstants.TOKEN_CREATE_TIME; import static com.tencent.supersonic.auth.api.authentication.constant.UserConstants.TOKEN_IS_ADMIN; import static com.tencent.supersonic.auth.api.authentication.constant.UserConstants.TOKEN_PREFIX; -import static com.tencent.supersonic.auth.api.authentication.constant.UserConstants.TOKEN_TIME_OUT; import static com.tencent.supersonic.auth.api.authentication.constant.UserConstants.TOKEN_USER_DISPLAY_NAME; import static com.tencent.supersonic.auth.api.authentication.constant.UserConstants.TOKEN_USER_EMAIL; import static com.tencent.supersonic.auth.api.authentication.constant.UserConstants.TOKEN_USER_ID; import static com.tencent.supersonic.auth.api.authentication.constant.UserConstants.TOKEN_USER_NAME; import static com.tencent.supersonic.auth.api.authentication.constant.UserConstants.TOKEN_USER_PASSWORD; + import com.tencent.supersonic.auth.api.authentication.config.AuthenticationConfig; import com.tencent.supersonic.auth.api.authentication.pojo.User; import com.tencent.supersonic.auth.api.authentication.pojo.UserWithPassword; @@ -48,14 +48,13 @@ public class UserTokenUtils { } public String generateAdminToken() { - Map claims = new HashMap<>(5); - claims.put(TOKEN_USER_ID, "1"); - claims.put(TOKEN_USER_NAME, "admin"); - claims.put(TOKEN_USER_PASSWORD, "admin"); - claims.put(TOKEN_USER_DISPLAY_NAME, "admin"); - claims.put(TOKEN_CREATE_TIME, System.currentTimeMillis()); - claims.put(TOKEN_IS_ADMIN, 1); - return generate(claims); + UserWithPassword admin = new UserWithPassword("admin"); + admin.setId(1L); + admin.setName("admin"); + admin.setPassword("admin"); + admin.setDisplayName("admin"); + admin.setIsAdmin(1); + return generateToken(admin); } public User getUser(HttpServletRequest request) { @@ -107,13 +106,15 @@ public class UserTokenUtils { } private String toTokenString(Map claims) { - long expiration = Long.parseLong(claims.get(TOKEN_CREATE_TIME) + "") + TOKEN_TIME_OUT; + Long tokenTimeout = authenticationConfig.getTokenTimeout(); + long expiration = Long.parseLong(claims.get(TOKEN_CREATE_TIME) + "") + tokenTimeout; + Date expirationDate = new Date(expiration); SignatureAlgorithm.valueOf(TOKEN_ALGORITHM); return Jwts.builder() .setClaims(claims) .setSubject(claims.get(TOKEN_USER_NAME).toString()) - .setExpiration(new Date(expiration)) + .setExpiration(expirationDate) .signWith(SignatureAlgorithm.valueOf(TOKEN_ALGORITHM), authenticationConfig.getTokenSecret().getBytes(StandardCharsets.UTF_8)) .compact(); diff --git a/launchers/common/src/main/java/dev/langchain4j/model/openai/FullOpenAiChatModel.java b/launchers/common/src/main/java/dev/langchain4j/model/openai/FullOpenAiChatModel.java index 933312bc5..fef875c68 100644 --- a/launchers/common/src/main/java/dev/langchain4j/model/openai/FullOpenAiChatModel.java +++ b/launchers/common/src/main/java/dev/langchain4j/model/openai/FullOpenAiChatModel.java @@ -22,6 +22,7 @@ import java.util.Collections; import java.util.List; public class FullOpenAiChatModel implements ChatLanguageModel, TokenCountEstimator { + private final OpenAiClient client; private final String modelName; private final Double temperature; @@ -34,36 +35,36 @@ public class FullOpenAiChatModel implements ChatLanguageModel, TokenCountEstimat private final Tokenizer tokenizer; public FullOpenAiChatModel(String baseUrl, String apiKey, String modelName, Double temperature, - Double topP, List stop, Integer maxTokens, Double presencePenalty, - Double frequencyPenalty, Duration timeout, Integer maxRetries, Proxy proxy, - Boolean logRequests, Boolean logResponses, Tokenizer tokenizer) { - baseUrl = (String) Utils.getOrDefault(baseUrl, "https://api.openai.com/v1"); + Double topP, List stop, Integer maxTokens, Double presencePenalty, + Double frequencyPenalty, Duration timeout, Integer maxRetries, Proxy proxy, + Boolean logRequests, Boolean logResponses, Tokenizer tokenizer) { + baseUrl = Utils.getOrDefault(baseUrl, "https://api.openai.com/v1"); if ("demo".equals(apiKey)) { baseUrl = "http://langchain4j.dev/demo/openai/v1"; } - timeout = (Duration) Utils.getOrDefault(timeout, Duration.ofSeconds(60L)); + timeout = Utils.getOrDefault(timeout, Duration.ofSeconds(60L)); this.client = OpenAiClient.builder().openAiApiKey(apiKey) - .baseUrl(baseUrl).callTimeout(timeout).connectTimeout(timeout) - .readTimeout(timeout).writeTimeout(timeout).proxy(proxy) - .logRequests(logRequests).logResponses(logResponses).build(); - this.modelName = (String) Utils.getOrDefault(modelName, "gpt-3.5-turbo"); - this.temperature = (Double) Utils.getOrDefault(temperature, 0.7D); + .baseUrl(baseUrl).callTimeout(timeout).connectTimeout(timeout) + .readTimeout(timeout).writeTimeout(timeout).proxy(proxy) + .logRequests(logRequests).logResponses(logResponses).build(); + this.modelName = Utils.getOrDefault(modelName, "gpt-3.5-turbo"); + this.temperature = Utils.getOrDefault(temperature, 0.7D); this.topP = topP; this.stop = stop; this.maxTokens = maxTokens; this.presencePenalty = presencePenalty; this.frequencyPenalty = frequencyPenalty; - this.maxRetries = (Integer) Utils.getOrDefault(maxRetries, 3); - this.tokenizer = (Tokenizer) Utils.getOrDefault(tokenizer, new OpenAiTokenizer(this.modelName)); + this.maxRetries = Utils.getOrDefault(maxRetries, 3); + this.tokenizer = Utils.getOrDefault(tokenizer, new OpenAiTokenizer(this.modelName)); } public Response generate(List messages) { - return this.generate(messages, (List) null, (ToolSpecification) null); + return this.generate(messages, null, null); } public Response generate(List messages, List toolSpecifications) { - return this.generate(messages, toolSpecifications, (ToolSpecification) null); + return this.generate(messages, toolSpecifications, null); } public Response generate(List messages, ToolSpecification toolSpecification) { @@ -71,8 +72,8 @@ public class FullOpenAiChatModel implements ChatLanguageModel, TokenCountEstimat } private Response generate(List messages, - List toolSpecifications, - ToolSpecification toolThatMustBeExecuted) { + List toolSpecifications, + ToolSpecification toolThatMustBeExecuted) { Builder requestBuilder = null; if (modelName.contains(ChatModel.ZHIPU.toString()) || modelName.contains(ChatModel.ALI.toString())) { requestBuilder = ChatCompletionRequest.builder() @@ -107,15 +108,12 @@ public class FullOpenAiChatModel implements ChatLanguageModel, TokenCountEstimat return this.tokenizer.estimateTokenCountInMessages(messages); } - public static FullOpenAiChatModel withApiKey(String apiKey) { - return builder().apiKey(apiKey).build(); - } - public static FullOpenAiChatModel.FullOpenAiChatModelBuilder builder() { return new FullOpenAiChatModel.FullOpenAiChatModelBuilder(); } public static class FullOpenAiChatModelBuilder { + private String baseUrl; private String apiKey; private String modelName; diff --git a/launchers/common/src/main/java/dev/langchain4j/model/openai/ImproveInternalOpenAiHelper.java b/launchers/common/src/main/java/dev/langchain4j/model/openai/ImproveInternalOpenAiHelper.java index 0bdcc27ec..ed2b1ac6f 100644 --- a/launchers/common/src/main/java/dev/langchain4j/model/openai/ImproveInternalOpenAiHelper.java +++ b/launchers/common/src/main/java/dev/langchain4j/model/openai/ImproveInternalOpenAiHelper.java @@ -1,32 +1,18 @@ package dev.langchain4j.model.openai; -import dev.ai4j.openai4j.chat.ChatCompletionChoice; -import dev.ai4j.openai4j.chat.ChatCompletionResponse; -import dev.ai4j.openai4j.chat.Function; import dev.ai4j.openai4j.chat.FunctionCall; import dev.ai4j.openai4j.chat.Message; -import dev.ai4j.openai4j.chat.Parameters; import dev.ai4j.openai4j.chat.Role; -import dev.ai4j.openai4j.shared.Usage; -import dev.langchain4j.agent.tool.ToolExecutionRequest; -import dev.langchain4j.agent.tool.ToolParameters; -import dev.langchain4j.agent.tool.ToolSpecification; import dev.langchain4j.data.message.AiMessage; import dev.langchain4j.data.message.ChatMessage; import dev.langchain4j.data.message.SystemMessage; import dev.langchain4j.data.message.ToolExecutionResultMessage; import dev.langchain4j.data.message.UserMessage; import dev.langchain4j.model.ChatModel; -import dev.langchain4j.model.output.TokenUsage; - -import java.util.Collection; import java.util.List; import java.util.stream.Collectors; public class ImproveInternalOpenAiHelper { - static final String OPENAI_URL = "https://api.openai.com/v1"; - static final String OPENAI_DEMO_API_KEY = "demo"; - static final String OPENAI_DEMO_URL = "http://langchain4j.dev/demo/openai/v1"; public ImproveInternalOpenAiHelper() { } @@ -77,35 +63,4 @@ public class ImproveInternalOpenAiHelper { } } - public static List toFunctions(Collection toolSpecifications) { - return (List) toolSpecifications.stream().map(ImproveInternalOpenAiHelper::toFunction) - .collect(Collectors.toList()); - } - - private static Function toFunction(ToolSpecification toolSpecification) { - return Function.builder().name(toolSpecification.name()) - .description(toolSpecification.description()) - .parameters(toOpenAiParameters(toolSpecification.parameters())).build(); - } - - private static Parameters toOpenAiParameters(ToolParameters toolParameters) { - return toolParameters == null ? Parameters.builder().build() : Parameters.builder() - .properties(toolParameters.properties()).required(toolParameters.required()).build(); - } - - public static AiMessage aiMessageFrom(ChatCompletionResponse response) { - if (response.content() != null) { - return AiMessage.aiMessage(response.content()); - } else { - FunctionCall functionCall = ((ChatCompletionChoice) response.choices().get(0)).message().functionCall(); - ToolExecutionRequest toolExecutionRequest = ToolExecutionRequest.builder() - .name(functionCall.name()).arguments(functionCall.arguments()).build(); - return AiMessage.aiMessage(toolExecutionRequest); - } - } - - public static TokenUsage tokenUsageFrom(Usage openAiUsage) { - return openAiUsage == null ? null : new TokenUsage(openAiUsage.promptTokens(), - openAiUsage.completionTokens(), openAiUsage.totalTokens()); - } } diff --git a/webapp/pnpm-lock.yaml b/webapp/pnpm-lock.yaml index a5462db14..2deaa67cc 100644 --- a/webapp/pnpm-lock.yaml +++ b/webapp/pnpm-lock.yaml @@ -427,8 +427,8 @@ importers: specifier: ^2.3.3 version: 2.3.4 supersonic-chat-sdk: - specifier: ^1.1.7 - version: 1.1.7(@types/react@18.3.1)(react-dom@18.3.1)(react@18.3.1) + specifier: 0.0.0 + version: link:../chat-sdk supersonic-insights-flow-components: specifier: ^1.4.9 version: 1.4.9(classnames@2.5.1)(moment@2.30.1)(rc-field-form@1.44.0)(reflect-metadata@0.1.14) @@ -7185,18 +7185,6 @@ packages: - react-router dev: true - /@umijs/bundler-utils@3.5.41(react-dom@16.14.0)(react-router@6.23.1)(react@16.14.0): - resolution: {integrity: sha512-irJUU/eWa2GG6JCkz172lMi+jiq7ZXatE2N7Tq/lokZUYu9R9BRaRN7dphgBlAUfOP3aBtjx51/5yZdYAeW0yQ==} - dependencies: - '@umijs/babel-preset-umi': 3.5.41 - '@umijs/types': 3.5.41(react-dom@16.14.0)(react-router@6.23.1)(react@16.14.0) - '@umijs/utils': 3.5.41 - transitivePeerDependencies: - - react - - react-dom - - react-router - dev: true - /@umijs/bundler-utils@4.2.5: resolution: {integrity: sha512-Hj8Uda4E/Bf9aIWLfMiixxjFRRXaVDQDU1MbUf7HhDtpgmfeQfIfWhzWRat9B8TfPLDA4KI3yW1EPdlNHGBiSA==} dependencies: @@ -7260,31 +7248,6 @@ packages: - react-router dev: true - /@umijs/bundler-webpack@3.5.41(react-dom@16.14.0)(react-router@6.23.1)(react@16.14.0): - resolution: {integrity: sha512-n4HIrDUE3QfN5xSTWJlRz5wzsnWggzRJhEDJZ6l23BWiwWasFW6QMGCnFWLwO93ei273LovylD5vZhI221tBtQ==} - hasBin: true - dependencies: - '@umijs/bundler-utils': 3.5.41(react-dom@16.14.0)(react-router@6.23.1)(react@16.14.0) - '@umijs/case-sensitive-paths-webpack-plugin': 1.0.1 - '@umijs/deps': 3.5.41 - '@umijs/types': 3.5.41(react-dom@16.14.0)(react-router@6.23.1)(react@16.14.0) - '@umijs/utils': 3.5.41 - jest-worker: 26.6.2 - node-libs-browser: 2.2.1 - normalize-url: 1.9.1 - postcss: 7.0.32 - postcss-flexbugs-fixes: 4.2.1 - postcss-loader: 3.0.0 - postcss-preset-env: 6.7.0 - postcss-safe-parser: 4.0.2 - terser: 5.14.2 - webpack-chain: 6.5.1 - transitivePeerDependencies: - - react - - react-dom - - react-router - dev: true - /@umijs/bundler-webpack@4.2.5(typescript@4.9.5)(webpack@5.91.0): resolution: {integrity: sha512-kABzFUTbkgccf2XwMiKEEVyfBuvZZSnFFU7E1uu2OQg3x7rv5dnF9yrMGwvul4I0KClPZAabd5eaf7WuKYyBAA==} hasBin: true @@ -7729,7 +7692,7 @@ packages: umi: 3.x dependencies: fast-deep-equal: 3.1.1 - umi: 3.5.41(react-router@6.23.1) + umi: 3.5.41(react-router@5.2.0) dev: true /@umijs/plugin-run@4.2.5: @@ -7861,7 +7824,7 @@ packages: mime: 1.4.1 react: 16.14.0 react-refresh: 0.10.0 - react-router: 5.2.0(react@16.14.0) + react-router: 5.2.0(react@18.3.1) react-router-config: 5.1.1(react-router@5.2.0)(react@16.14.0) react-router-dom: 5.2.0(react@16.14.0) regenerator-runtime: 0.13.5 @@ -7999,23 +7962,6 @@ packages: - react-router dev: true - /@umijs/renderer-react@3.5.41(react-dom@16.14.0)(react-router@6.23.1)(react@16.14.0): - resolution: {integrity: sha512-DmExaziU84uFXv09gYXpFk/tHB+mjINUD8YmYULjbQ+QQA9so2zkxNSv9gYy5hXNepheUMd+uriV/qUB6HNBVg==} - peerDependencies: - react: 16.x || 17.x - react-dom: 16.x || 17.x - dependencies: - '@types/react': 16.14.60 - '@types/react-dom': 16.9.24 - '@types/react-router-config': 5.0.2 - '@umijs/runtime': 3.5.41(react@16.14.0) - react: 16.14.0 - react-dom: 16.14.0(react@16.14.0) - react-router-config: 5.1.1(react-router@6.23.1)(react@16.14.0) - transitivePeerDependencies: - - react-router - dev: true - /@umijs/renderer-react@4.2.5(react-dom@18.1.0)(react@18.1.0): resolution: {integrity: sha512-WuV2ye/A9NY5eHQ9VH6pD1MEgeuBbn18AU9dpJku5gaQ0kigPIMfMLVuon1Cvwc2XA9ab+5HcpwsJiAqrde3EQ==} peerDependencies: @@ -8055,7 +8001,7 @@ packages: express: 4.19.2 lodash: 4.17.21 prettier: 2.8.8 - umi: 3.5.41(react-router@6.23.1) + umi: 3.5.41(react-router@5.2.0) transitivePeerDependencies: - supports-color dev: true @@ -8138,22 +8084,6 @@ packages: - react-router dev: true - /@umijs/types@3.5.41(react-dom@16.14.0)(react-router@6.23.1)(react@16.14.0): - resolution: {integrity: sha512-pxvLiQ99EL8Yu98F/ZMojG9ukDptC315cnxSnRYOdS34F57oiIgW0Zoi0TrKlA0pVIQxC2MXzyQwy+HfDmB23Q==} - dependencies: - '@umijs/babel-preset-umi': 3.5.41 - '@umijs/core': 3.5.41 - '@umijs/deps': 3.5.41 - '@umijs/renderer-react': 3.5.41(react-dom@16.14.0)(react-router@6.23.1)(react@16.14.0) - '@umijs/server': 3.5.41 - '@umijs/utils': 3.5.41 - webpack-chain: 6.5.1 - transitivePeerDependencies: - - react - - react-dom - - react-router - dev: true - /@umijs/ui@3.0.1: resolution: {integrity: sha512-zcz37AJH0xt/6XVVbyO/hmsK9Hq4vH23HZ4KYVi5A8rbM9KeJkJigTS7ELOdArawZhVNGe+h3a5Oixs4a2QsWw==} dev: true @@ -10410,7 +10340,6 @@ packages: /core-js@3.6.5: resolution: {integrity: sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==} - deprecated: core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js. requiresBuild: true dev: true @@ -17757,6 +17686,19 @@ packages: tiny-warning: 1.0.3 dev: true + /mini-create-react-context@0.4.1(prop-types@15.8.1)(react@18.3.1): + resolution: {integrity: sha512-YWCYEmd5CQeHGSAKrYvXgmzzkrvssZcuuQDDeqkT+PziKGMgE+0MCCtcKbROzocGBG1meBLl2FotlRwf4gAzbQ==} + deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. + peerDependencies: + prop-types: ^15.0.0 + react: ^0.14.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + dependencies: + '@babel/runtime': 7.24.5 + prop-types: 15.8.1 + react: 18.3.1 + tiny-warning: 1.0.3 + dev: true + /mini-css-extract-plugin@2.9.0(webpack@5.91.0): resolution: {integrity: sha512-Zs1YsZVfemekSZG+44vBsYTLQORkPMwnlv+aehcxK/NLKC+EGhDB39/YePYYqx/sTk6NnYpuqikhSn7+JIevTA==} engines: {node: '>= 12.13.0'} @@ -18154,7 +18096,7 @@ packages: dev: true /normalize-url@1.9.1: - resolution: {integrity: sha512-A48My/mtCklowHBlI8Fq2jFWK4tX4lJ5E6ytFsSOq1fzpvT0SQSgKhSg7lN5c2uYFOrUAOQp6zhhJnpp1eMloQ==} + resolution: {integrity: sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=} engines: {node: '>=4'} dependencies: object-assign: 4.1.1 @@ -22768,28 +22710,6 @@ packages: /react-lifecycles-compat@3.0.4: resolution: {integrity: sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==} - /react-markdown@9.0.1(@types/react@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-186Gw/vF1uRkydbsOIkcGXw7aHq0sZOCRFFjGrr7b9+nVZg4UfA4enXCaxm4fUzecU38sWfrNDitGhshuU7rdg==} - peerDependencies: - '@types/react': '>=18' - react: '>=18' - dependencies: - '@types/hast': 3.0.4 - '@types/react': 18.3.1 - devlop: 1.1.0 - hast-util-to-jsx-runtime: 2.3.0 - html-url-attributes: 3.0.0 - mdast-util-to-hast: 13.1.0 - react: 18.3.1 - remark-parse: 11.0.0 - remark-rehype: 11.1.0 - unified: 11.0.4 - unist-util-visit: 5.0.0 - vfile: 6.0.1 - transitivePeerDependencies: - - supports-color - dev: false - /react-markdown@9.0.1(@types/react@18.3.2)(react@18.3.1): resolution: {integrity: sha512-186Gw/vF1uRkydbsOIkcGXw7aHq0sZOCRFFjGrr7b9+nVZg4UfA4enXCaxm4fUzecU38sWfrNDitGhshuU7rdg==} peerDependencies: @@ -22949,18 +22869,7 @@ packages: dependencies: '@babel/runtime': 7.24.5 react: 16.14.0 - react-router: 5.2.0(react@16.14.0) - dev: true - - /react-router-config@5.1.1(react-router@6.23.1)(react@16.14.0): - resolution: {integrity: sha512-DuanZjaD8mQp1ppHjgnnUnyOlqYXZVjnov/JzFhjLEwd3Z4dYjMSnqrEzzGThH47vpCOqPPwJM2FtthLeJ8Pbg==} - peerDependencies: - react: '>=15' - react-router: '>=5' - dependencies: - '@babel/runtime': 7.24.5 - react: 16.14.0 - react-router: 6.23.1(react@18.3.1) + react-router: 5.2.0(react@18.3.1) dev: true /react-router-dom@4.3.1(react@18.3.1): @@ -23074,6 +22983,24 @@ packages: tiny-warning: 1.0.3 dev: true + /react-router@5.2.0(react@18.3.1): + resolution: {integrity: sha512-smz1DUuFHRKdcJC0jobGo8cVbhO3x50tCL4icacOlcwDOEQPq4TMqwx3sY1TP+DvtTgz4nm3thuo7A+BK2U0Dw==} + peerDependencies: + react: '>=15' + dependencies: + '@babel/runtime': 7.24.5 + history: 4.10.1 + hoist-non-react-statics: 3.3.2 + loose-envify: 1.4.0 + mini-create-react-context: 0.4.1(prop-types@15.8.1)(react@18.3.1) + path-to-regexp: 1.8.0 + prop-types: 15.8.1 + react: 18.3.1 + react-is: 16.13.1 + tiny-invariant: 1.3.3 + tiny-warning: 1.0.3 + dev: true + /react-router@6.23.1(react@18.3.1): resolution: {integrity: sha512-fzcOaRF69uvqbbM7OhvQyBTFDVrrGlsFdS3AL+1KfIBtGETibHzi3FkoTRyiDJnWNc2VxrfvR+657ROHjaNjqQ==} engines: {node: '>=14.0.0'} @@ -25557,44 +25484,6 @@ packages: copy-anything: 3.0.5 dev: true - /supersonic-chat-sdk@1.1.7(@types/react@18.3.1)(react-dom@18.3.1)(react@18.3.1): - resolution: {integrity: sha512-MLMPN2c54hQetwJ+qXkOsWQ2IHDCuo3rAj6r7p+rknzDZSmMPF8yHXD2XcADmWJCXus8LKSwThUnuz51L7OqgA==} - engines: {node: '>=16'} - peerDependencies: - react: '>=16.8.0' - react-dom: '>=16.8.0' - dependencies: - '@ant-design/icons': 4.8.3(react-dom@18.3.1)(react@18.3.1) - '@uiw/react-watermark': 0.0.5(react-dom@18.3.1)(react@18.3.1) - ahooks: 3.7.11(react@18.3.1) - antd: 5.11.2(moment@2.30.1)(react-dom@18.3.1)(react@18.3.1) - axios: 0.21.4 - classnames: 2.5.1 - dayjs: 1.11.11 - echarts: 5.5.0 - github-markdown-css: 5.5.1 - highlight.js: 11.9.0 - lodash: 4.17.21 - moment: 2.30.1 - react: 18.3.1 - react-copy-to-clipboard: 5.1.0(react@18.3.1) - react-dom: 18.3.1(react@18.3.1) - react-grid-layout: 1.4.4(react-dom@18.3.1)(react@18.3.1) - react-markdown: 9.0.1(@types/react@18.3.1)(react@18.3.1) - react-spinners: 0.13.8(react-dom@18.3.1)(react@18.3.1) - react-syntax-highlighter: 15.5.0(react@18.3.1) - rehype-highlight: 7.0.0 - remark-gfm: 4.0.0 - sql-formatter: 2.3.4 - tslib: 2.6.2 - transitivePeerDependencies: - - '@types/react' - - date-fns - - debug - - luxon - - supports-color - dev: false - /supersonic-insights-flow-components@1.4.9(classnames@2.5.1)(moment@2.30.1)(rc-field-form@1.44.0)(reflect-metadata@0.1.14): resolution: {integrity: sha512-nY7sFY0EMtbs4KckudLTdLrUnq5vI2Gt78uVLgTfMSdSlV2PfG1bQlddp5ulAoyedZ3J7gMJlaWuqaUlRiLw8A==} dependencies: @@ -26455,16 +26344,16 @@ packages: slash2: 2.0.0 dev: true - /umi@3.5.41(react-router@6.23.1): + /umi@3.5.41(react-router@5.2.0): resolution: {integrity: sha512-sjgfFGC3E5jG5Cn8pXdwODDgPW1hnlkn24f7+onNnNdq77syuc4s3R5z7BKQHbjiWtVVIV1VOFMYE9JsJYnOPQ==} hasBin: true dependencies: - '@umijs/bundler-webpack': 3.5.41(react-dom@16.14.0)(react-router@6.23.1)(react@16.14.0) + '@umijs/bundler-webpack': 3.5.41(react-dom@16.14.0)(react-router@5.2.0)(react@16.14.0) '@umijs/core': 3.5.41 '@umijs/deps': 3.5.41 '@umijs/preset-built-in': 3.5.41(react-dom@16.14.0)(react@16.14.0) '@umijs/runtime': 3.5.41(react@16.14.0) - '@umijs/types': 3.5.41(react-dom@16.14.0)(react-router@6.23.1)(react@16.14.0) + '@umijs/types': 3.5.41(react-dom@16.14.0)(react-router@5.2.0)(react@16.14.0) '@umijs/utils': 3.5.41 react: 16.14.0 react-dom: 16.14.0(react@16.14.0) @@ -27101,7 +26990,6 @@ packages: /webpack-chain@6.5.1: resolution: {integrity: sha512-7doO/SRtLu8q5WM0s7vPKPWX580qhi0/yBHkOxNkv50f6qB76Zy9o2wRTrrPULqYTvQlVHuvbA8v+G5ayuUDsA==} engines: {node: '>=8'} - deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. dependencies: deepmerge: 1.5.2 javascript-stringify: 2.1.0