From 72b553efe8a4a22314076fc373cd342702651944 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Per=20Andr=C3=A9=20R=C3=B8nsen?= Date: Mon, 24 Apr 2023 22:54:24 +0200 Subject: [PATCH 01/61] Add files for Norwegian translation --- app/locales/cn.ts | 1 + app/locales/de.ts | 1 + app/locales/en.ts | 1 + app/locales/es.ts | 1 + app/locales/index.ts | 3 + app/locales/it.ts | 1 + app/locales/jp.ts | 1 + app/locales/no.ts | 186 +++++++++++++++++++++++++++++++++++++++++++ app/locales/tr.ts | 1 + app/locales/tw.ts | 1 + 10 files changed, 197 insertions(+) create mode 100644 app/locales/no.ts diff --git a/app/locales/cn.ts b/app/locales/cn.ts index c6f5d67fa..89cd521b1 100644 --- a/app/locales/cn.ts +++ b/app/locales/cn.ts @@ -80,6 +80,7 @@ const cn = { de: "Deutsch", vi: "Vietnamese", ru: "Русский", + no: "Norsk", }, }, Avatar: "头像", diff --git a/app/locales/de.ts b/app/locales/de.ts index 7c0b94db6..0b303bfd9 100644 --- a/app/locales/de.ts +++ b/app/locales/de.ts @@ -83,6 +83,7 @@ const de: LocaleType = { de: "Deutsch", vi: "Vietnamese", ru: "Русский", + no: "Norsk", }, }, Avatar: "Avatar", diff --git a/app/locales/en.ts b/app/locales/en.ts index ba6482574..b5a9d7691 100644 --- a/app/locales/en.ts +++ b/app/locales/en.ts @@ -82,6 +82,7 @@ const en: LocaleType = { de: "Deutsch", vi: "Vietnamese", ru: "Русский", + no: "Norsk", }, }, Avatar: "Avatar", diff --git a/app/locales/es.ts b/app/locales/es.ts index 9997752e8..6430bb1e8 100644 --- a/app/locales/es.ts +++ b/app/locales/es.ts @@ -82,6 +82,7 @@ const es: LocaleType = { de: "Deutsch", vi: "Vietnamese", ru: "Русский", + no: "Norsk", }, }, Avatar: "Avatar", diff --git a/app/locales/index.ts b/app/locales/index.ts index 757c1719d..ca4c9adfa 100644 --- a/app/locales/index.ts +++ b/app/locales/index.ts @@ -8,6 +8,7 @@ import JP from "./jp"; import DE from "./de"; import VI from "./vi"; import RU from "./ru"; +import NO from "./no"; export type { LocaleType } from "./cn"; @@ -22,6 +23,7 @@ export const AllLangs = [ "de", "vi", "ru", + "no", ] as const; export type Lang = (typeof AllLangs)[number]; @@ -85,4 +87,5 @@ export default { de: DE, vi: VI, ru: RU, + no: NO, }[getLang()] as typeof CN; diff --git a/app/locales/it.ts b/app/locales/it.ts index ddb85c948..19c854a5f 100644 --- a/app/locales/it.ts +++ b/app/locales/it.ts @@ -82,6 +82,7 @@ const it: LocaleType = { de: "Deutsch", vi: "Vietnamese", ru: "Русский", + no: "Norsk", }, }, Avatar: "Avatar", diff --git a/app/locales/jp.ts b/app/locales/jp.ts index d34ee68a6..b954f6fce 100644 --- a/app/locales/jp.ts +++ b/app/locales/jp.ts @@ -82,6 +82,7 @@ const jp: LocaleType = { de: "Deutsch", vi: "Vietnamese", ru: "Русский", + no: "Norsk", }, }, Avatar: "アバター", diff --git a/app/locales/no.ts b/app/locales/no.ts new file mode 100644 index 000000000..77e650786 --- /dev/null +++ b/app/locales/no.ts @@ -0,0 +1,186 @@ +import { SubmitKey } from "../store/config"; +import type { LocaleType } from "./index"; + +const en: LocaleType = { + WIP: "Arbeid pågår ...", + Error: { + Unauthorized: + "Du har ikke tilgang. Vennlig oppgi tildelt adgangskode.", + }, + ChatItem: { + ChatItemCount: (count: number) => `${count} meldinger`, + }, + Chat: { + SubTitle: (count: number) => `${count} meldinger med ChatGPT`, + Actions: { + ChatList: "Gå til chatlisten", + CompressedHistory: "Komprimert historikk for instrukser", + Export: "Eksporter alle meldinger i markdown-format", + Copy: "Kopier", + Stop: "Stopp", + Retry: "Prøv igjen", + Delete: "Slett", + }, + Rename: "Gi nytt navn", + Typing: "Skriver …", + Input: (submitKey: string) => { + var inputHints = `${submitKey} for å sende`; + if (submitKey === String(SubmitKey.Enter)) { + inputHints += ", Shift + Enter for å omgi"; + } + return inputHints + ", / for å søke instrukser"; + }, + Send: "Send", + }, + Export: { + Title: "Alle meldinger", + Copy: "Kopiere alle", + Download: "Last ned", + MessageFromYou: "Melding fra deg", + MessageFromChatGPT: "Melding fra ChatGPT", + }, + Memory: { + Title: "Minneinstruks", + EmptyContent: "Ingen sålant.", + Send: "Send minne", + Copy: "Kopiere minne", + Reset: "Nulstill sesjon", + ResetConfirm: + "Om du nillstiller vil du slette hele historikken. Er du sikker på at du vil nullstille?", + }, + Home: { + NewChat: "Ny chat", + DeleteChat: "Bekreft for å slette det valgte dialogen", + DeleteToast: "Samtale slettet", + Revert: "Tilbakestill", + }, + Settings: { + Title: "Innstillinger", + SubTitle: "Alle innstillinger", + Actions: { + ClearAll: "Fjern alle data", + ResetAll: "Nullstill innstillinger", + Close: "Lukk", + ConfirmResetAll: { + Confirm: "Er du sikker på at du vil nullstille alle konfigurasjoner?", + }, + ConfirmClearAll: { + Confirm: "Er du sikker på at du vil fjern alle samtaler?", + }, + }, + Lang: { + Name: "Language", // ATTENTION: if you wanna add a new translation, please do not translate this value, leave it as `Language` + Options: { + cn: "简体中文", + en: "English", + tw: "繁體中文", + es: "Español", + it: "Italiano", + tr: "Türkçe", + jp: "日本語", + de: "Deutsch", + no: "Norsk", + }, + }, + Avatar: "Avatar", + FontSize: { + Title: "Fontstørrelsen", + SubTitle: "Juster fontstørrelsen for samtaleinnholdet.", + }, + Update: { + Version: (x: string) => `Versjon: ${x}`, + IsLatest: "Siste versjon", + CheckUpdate: "Se etter oppdatering", + IsChecking: "Ser etter oppdatering ...", + FoundUpdate: (x: string) => `Fant ny versjon: ${x}`, + GoToUpdate: "Oppdater", + }, + SendKey: "Send nøkkel", + Theme: "Tema", + TightBorder: "Stram innramming", + SendPreviewBubble: "Vis forhåndsvisningsboble", + Prompt: { + Disable: { + Title: "Skru av autofullfør", + SubTitle: "Skriv / for å trigge autofullfør", + }, + List: "Instruksliste", + ListCount: (builtin: number, custom: number) => + `${builtin} innebygde, ${custom} brukerdefinerte`, + Edit: "Endre", + Modal: { + Title: "Instruksliste", + Add: "Legg til", + Search: "Søk instrukser", + }, + }, + HistoryCount: { + Title: "Tall på tilhørende meldinger", + SubTitle: "Antall sendte meldinger tilknyttet hver spørring", + }, + CompressThreshold: { + Title: "Terskeverdi for komprimering av historikk", + SubTitle: + "Komprimer dersom ikke-komprimert lengde på meldinger overskrider denne verdien", + }, + Token: { + Title: "API Key", + SubTitle: "Bruk din egen API-nøkkel for å ignorere tilgangskoden begrensning", + Placeholder: "OpenAI API-nøkkel", + }, + Usage: { + Title: "Saldo for konto", + SubTitle(used: any, total: any) { + return `Brukt denne måneden $${used}, abonnement $${total}`; + }, + IsChecking: "Sjekker ...", + Check: "Sjekk", + NoAccess: "Skriv inn API-nøkkelen for å sjekke saldo", + }, + AccessCode: { + Title: "Tilgangskode", + SubTitle: "Tilgangskontroll på", + Placeholder: "Trenger tilgangskode", + }, + Model: "Model", + Temperature: { + Title: "Temperatur", + SubTitle: "Høyere verdi gir mer kreative svar", + }, + MaxTokens: { + Title: "Maks tokens", + SubTitle: "Maksimum lengde på tokens for instrukser og svar", + }, + PresencePenlty: { + Title: "Straff for tilstedeværelse", + SubTitle: + "Høyere verdi øker sjansen for ny tematikk", + }, + }, + Store: { + DefaultTopic: "Ny samtale", + BotHello: "Hei! Hva kan jeg hjelpe deg med i dag?", + Error: "Noe gikk galt, vennligst prøv igjen senere.", + Prompt: { + History: (content: string) => + "Dette er et sammendrag av chatthistorikken mellom AI-en og brukeren som en oppsummering: " + + content, + Topic: + "Vennligst lag en fire til fem ords tittel som oppsummerer samtalen vår uten innledning, punktsetting, anførselstegn, punktum, symboler eller tillegg tekst. Fjern innrammende anførselstegn.", + Summarize: + "Oppsummer diskusjonen vår kort i 200 ord eller mindre for å bruke som en oppfordring til fremtidig sammenheng.", + }, + ConfirmClearAll: "Bekreft for å slette alle samtaler og innstillinger?", + }, + Copy: { + Success: "Kopiert til utklippstavle", + Failed: "Kopiering feilet. Vennligst gi tilgang til utklippstavlen.", + }, + Context: { + Toast: (x: any) => `Med ${x} kontekstuelle instrukser`, + Edit: "Kontekstuelle -og minneinstrukser", + Add: "Legg til", + }, +}; + +export default no; \ No newline at end of file diff --git a/app/locales/tr.ts b/app/locales/tr.ts index 80d2bae71..338b9fa92 100644 --- a/app/locales/tr.ts +++ b/app/locales/tr.ts @@ -82,6 +82,7 @@ const tr: LocaleType = { de: "Deutsch", vi: "Vietnamese", ru: "Русский", + no: "Norsk", }, }, Avatar: "Avatar", diff --git a/app/locales/tw.ts b/app/locales/tw.ts index ba54e8356..92fcfd176 100644 --- a/app/locales/tw.ts +++ b/app/locales/tw.ts @@ -80,6 +80,7 @@ const tw: LocaleType = { de: "Deutsch", vi: "Vietnamese", ru: "Русский", + no: "Norsk", }, }, Avatar: "大頭貼", From 5a10b2a75f6235a3648adbede12f0ea6d558eef0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Per=20Andr=C3=A9=20R=C3=B8nsen?= Date: Fri, 5 May 2023 08:42:33 +0200 Subject: [PATCH 02/61] Update no.ts with const no: LocaleType --- app/locales/no.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/locales/no.ts b/app/locales/no.ts index 77e650786..2f079af2a 100644 --- a/app/locales/no.ts +++ b/app/locales/no.ts @@ -1,7 +1,7 @@ import { SubmitKey } from "../store/config"; import type { LocaleType } from "./index"; -const en: LocaleType = { +const no: LocaleType = { WIP: "Arbeid pågår ...", Error: { Unauthorized: From 72cbb156ae78d2390a4238c5e71b6d0b8850e27f Mon Sep 17 00:00:00 2001 From: AngelLiang Date: Sun, 4 Jun 2023 16:05:35 +0800 Subject: [PATCH 03/61] feat: Add frequency_penalty request parameter --- app/client/platforms/openai.ts | 1 + app/components/model-config.tsx | 21 +++++++++++++++++++++ app/locales/cn.ts | 4 ++++ app/locales/cs.ts | 5 +++++ app/locales/de.ts | 5 +++++ app/locales/en.ts | 5 +++++ app/locales/es.ts | 5 +++++ app/locales/fr.ts | 5 +++++ app/locales/it.ts | 5 +++++ app/locales/jp.ts | 4 ++++ app/locales/ko.ts | 4 ++++ app/locales/ru.ts | 5 +++++ app/locales/tr.ts | 5 +++++ app/locales/tw.ts | 4 ++++ app/locales/vi.ts | 4 ++++ app/masks/cn.ts | 14 ++++++++++++++ app/masks/en.ts | 4 ++++ app/store/config.ts | 4 ++++ 18 files changed, 104 insertions(+) diff --git a/app/client/platforms/openai.ts b/app/client/platforms/openai.ts index 84c4a2df0..dcad63a30 100644 --- a/app/client/platforms/openai.ts +++ b/app/client/platforms/openai.ts @@ -46,6 +46,7 @@ export class ChatGPTApi implements LLMApi { model: modelConfig.model, temperature: modelConfig.temperature, presence_penalty: modelConfig.presence_penalty, + frequency_penalty: modelConfig.frequency_penalty, }; console.log("[Request] openai payload: ", requestPayload); diff --git a/app/components/model-config.tsx b/app/components/model-config.tsx index 0392621d9..325e1e3bb 100644 --- a/app/components/model-config.tsx +++ b/app/components/model-config.tsx @@ -88,6 +88,27 @@ export function ModelConfigList(props: { > + + { + props.updateConfig( + (config) => + (config.frequency_penalty = + ModalConfigValidator.frequency_penalty( + e.currentTarget.valueAsNumber, + )), + ); + }} + > + + Date: Fri, 9 Jun 2023 12:39:42 +0800 Subject: [PATCH 04/61] =?UTF-8?q?=E4=BF=AE=E6=94=B9=20auth.tsx=20=E8=BE=93?= =?UTF-8?q?=E5=85=A5=E6=A1=86=E4=B8=BApassword?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/components/auth.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/components/auth.tsx b/app/components/auth.tsx index 93df35b90..de0df4542 100644 --- a/app/components/auth.tsx +++ b/app/components/auth.tsx @@ -25,7 +25,7 @@ export function AuthPage() { { From 0d4611052e75cbe9b2dc9309b60435178dcab663 Mon Sep 17 00:00:00 2001 From: Yidadaa Date: Tue, 13 Jun 2023 00:39:29 +0800 Subject: [PATCH 05/61] feat: white url list for openai security --- app/api/openai/[...path]/route.ts | 18 ++++++++++++++++++ app/client/platforms/openai.ts | 13 +++++-------- app/constant.ts | 6 ++++++ 3 files changed, 29 insertions(+), 8 deletions(-) diff --git a/app/api/openai/[...path]/route.ts b/app/api/openai/[...path]/route.ts index 981749e7e..04f3b6da8 100644 --- a/app/api/openai/[...path]/route.ts +++ b/app/api/openai/[...path]/route.ts @@ -1,14 +1,32 @@ +import { OpenaiPath } from "@/app/constant"; import { prettyObject } from "@/app/utils/format"; import { NextRequest, NextResponse } from "next/server"; import { auth } from "../../auth"; import { requestOpenai } from "../../common"; +const ALLOWD_PATH = new Set(Object.values(OpenaiPath)); + async function handle( req: NextRequest, { params }: { params: { path: string[] } }, ) { console.log("[OpenAI Route] params ", params); + const subpath = params.path.join("/"); + + if (!ALLOWD_PATH.has(subpath)) { + console.log("[OpenAI Route] forbidden path ", subpath); + return NextResponse.json( + { + error: true, + msg: "you are not allowed to request " + subpath, + }, + { + status: 403, + }, + ); + } + const authResult = auth(req); if (authResult.error) { return NextResponse.json(authResult, { diff --git a/app/client/platforms/openai.ts b/app/client/platforms/openai.ts index 84c4a2df0..fd4c33655 100644 --- a/app/client/platforms/openai.ts +++ b/app/client/platforms/openai.ts @@ -1,4 +1,4 @@ -import { REQUEST_TIMEOUT_MS } from "@/app/constant"; +import { OpenaiPath, REQUEST_TIMEOUT_MS } from "@/app/constant"; import { useAccessStore, useAppConfig, useChatStore } from "@/app/store"; import { ChatOptions, getHeaders, LLMApi, LLMUsage } from "../api"; @@ -10,10 +10,6 @@ import { import { prettyObject } from "@/app/utils/format"; export class ChatGPTApi implements LLMApi { - public ChatPath = "v1/chat/completions"; - public UsagePath = "dashboard/billing/usage"; - public SubsPath = "dashboard/billing/subscription"; - path(path: string): string { let openaiUrl = useAccessStore.getState().openaiUrl; if (openaiUrl.endsWith("/")) { @@ -55,7 +51,7 @@ export class ChatGPTApi implements LLMApi { options.onController?.(controller); try { - const chatPath = this.path(this.ChatPath); + const chatPath = this.path(OpenaiPath.ChatPath); const chatPayload = { method: "POST", body: JSON.stringify(requestPayload), @@ -177,14 +173,14 @@ export class ChatGPTApi implements LLMApi { const [used, subs] = await Promise.all([ fetch( this.path( - `${this.UsagePath}?start_date=${startDate}&end_date=${endDate}`, + `${OpenaiPath.UsagePath}?start_date=${startDate}&end_date=${endDate}`, ), { method: "GET", headers: getHeaders(), }, ), - fetch(this.path(this.SubsPath), { + fetch(this.path(OpenaiPath.SubsPath), { method: "GET", headers: getHeaders(), }), @@ -228,3 +224,4 @@ export class ChatGPTApi implements LLMApi { } as LLMUsage; } } +export { OpenaiPath }; diff --git a/app/constant.ts b/app/constant.ts index b640919e5..0f8052753 100644 --- a/app/constant.ts +++ b/app/constant.ts @@ -45,3 +45,9 @@ export const LAST_INPUT_KEY = "last-input"; export const REQUEST_TIMEOUT_MS = 60000; export const EXPORT_MESSAGE_CLASS_NAME = "export-markdown"; + +export const OpenaiPath = { + ChatPath: "v1/chat/completions", + UsagePath: "dashboard/billing/usage", + SubsPath: "dashboard/billing/subscription", +}; From 88df4a2223beb86d8c9d4fe0285732152f0b372a Mon Sep 17 00:00:00 2001 From: Yidadaa Date: Tue, 13 Jun 2023 02:27:39 +0800 Subject: [PATCH 06/61] feat: close #1762 add hover text for chat input actions --- app/components/chat.module.scss | 25 +++++++ app/components/chat.tsx | 125 +++++++++++++++++++++----------- app/locales/cn.ts | 13 ++++ app/locales/en.ts | 13 ++++ 4 files changed, 135 insertions(+), 41 deletions(-) diff --git a/app/components/chat.module.scss b/app/components/chat.module.scss index 0e2741e70..3a8d3cda4 100644 --- a/app/components/chat.module.scss +++ b/app/components/chat.module.scss @@ -17,10 +17,35 @@ transition: all ease 0.3s; margin-bottom: 10px; align-items: center; + height: 16px; &:not(:last-child) { margin-right: 5px; } + + .text { + white-space: nowrap; + padding-left: 5px; + opacity: 0; + transform: translateX(-5px); + transition: all ease 0.3s; + transition-delay: 0.1s; + pointer-events: none; + } + + &:hover { + .text { + opacity: 1; + transform: translate(0); + } + } + + .text, + .icon { + display: flex; + align-items: center; + justify-content: center; + } } } diff --git a/app/components/chat.tsx b/app/components/chat.tsx index 70fd462d9..15784861e 100644 --- a/app/components/chat.tsx +++ b/app/components/chat.tsx @@ -279,6 +279,52 @@ function ClearContextDivider() { ); } +function ChatAction(props: { + text: string; + icon: JSX.Element; + onClick: () => void; +}) { + const iconRef = useRef(null); + const textRef = useRef(null); + const [hovering, setHovering] = useState(false); + const [width, setWidth] = useState(20); + + const updateWidth = () => { + if (!iconRef.current || !textRef.current) return; + const getWidth = (dom: HTMLDivElement) => dom.getBoundingClientRect().width; + const textWidth = getWidth(textRef.current); + const iconWidth = getWidth(iconRef.current); + setWidth(hovering ? textWidth + iconWidth : iconWidth); + }; + + useEffect(() => { + updateWidth(); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [hovering]); + + return ( +
setHovering(true)} + onMouseLeave={() => setHovering(false)} + style={{ + width, + }} + onClick={() => { + props.onClick(); + setTimeout(updateWidth, 1); + }} + > +
+ {props.icon} +
+
+ {props.text} +
+
+ ); +} + function useScrollToBottom() { // for auto-scroll const scrollRef = useRef(null); @@ -330,61 +376,60 @@ export function ChatActions(props: { return (
{couldStop && ( -
- -
+ text={Locale.Chat.InputActions.Stop} + icon={} + /> )} {!props.hitBottom && ( -
- -
+ text={Locale.Chat.InputActions.ToBottom} + icon={} + /> )} {props.hitBottom && ( -
- -
+ text={Locale.Chat.InputActions.Settings} + icon={} + /> )} -
- {theme === Theme.Auto ? ( - - ) : theme === Theme.Light ? ( - - ) : theme === Theme.Dark ? ( - - ) : null} -
+ text={Locale.Chat.InputActions.Theme[theme]} + icon={ + <> + {theme === Theme.Auto ? ( + + ) : theme === Theme.Light ? ( + + ) : theme === Theme.Dark ? ( + + ) : null} + + } + /> -
- -
+ text={Locale.Chat.InputActions.Prompt} + icon={} + /> -
{ navigate(Path.Masks); }} - > - -
+ text={Locale.Chat.InputActions.Masks} + icon={} + /> -
} onClick={() => { chatStore.updateCurrentSession((session) => { if (session.clearContextIndex === session.messages.length) { @@ -395,9 +440,7 @@ export function ChatActions(props: { } }); }} - > - -
+ />
); } diff --git a/app/locales/cn.ts b/app/locales/cn.ts index c3cd8f457..d33ba101b 100644 --- a/app/locales/cn.ts +++ b/app/locales/cn.ts @@ -27,6 +27,19 @@ const cn = { Retry: "重试", Delete: "删除", }, + InputActions: { + Stop: "停止响应", + ToBottom: "滚到最新", + Theme: { + auto: "自动主题", + light: "亮色模式", + dark: "深色模式", + }, + Prompt: "快捷指令", + Masks: "所有面具", + Clear: "清除聊天", + Settings: "对话设置", + }, Rename: "重命名对话", Typing: "正在输入…", Input: (submitKey: string) => { diff --git a/app/locales/en.ts b/app/locales/en.ts index 068b2e583..9c8bc2a79 100644 --- a/app/locales/en.ts +++ b/app/locales/en.ts @@ -28,6 +28,19 @@ const en: RequiredLocaleType = { Retry: "Retry", Delete: "Delete", }, + InputActions: { + Stop: "Stop", + ToBottom: "To Latest", + Theme: { + auto: "Auto", + light: "Light Theme", + dark: "Dark Theme", + }, + Prompt: "Prompts", + Masks: "Masks", + Clear: "Clear Context", + Settings: "Settings", + }, Rename: "Rename Chat", Typing: "Typing…", Input: (submitKey: string) => { From a7e9356c16469ff75d2a162e2923edaac81c65e2 Mon Sep 17 00:00:00 2001 From: Yidadaa Date: Tue, 13 Jun 2023 03:04:09 +0800 Subject: [PATCH 07/61] fixup: #1762 optimize style on mobile screen --- app/components/chat.module.scss | 3 +++ app/components/chat.tsx | 31 ++++++++++++++++++------------- 2 files changed, 21 insertions(+), 13 deletions(-) diff --git a/app/components/chat.module.scss b/app/components/chat.module.scss index 3a8d3cda4..644c917a1 100644 --- a/app/components/chat.module.scss +++ b/app/components/chat.module.scss @@ -18,6 +18,7 @@ margin-bottom: 10px; align-items: center; height: 16px; + width: var(--icon-width); &:not(:last-child) { margin-right: 5px; @@ -34,6 +35,8 @@ } &:hover { + width: var(--full-width); + .text { opacity: 1; transform: translate(0); diff --git a/app/components/chat.tsx b/app/components/chat.tsx index 15784861e..ffd2b7d29 100644 --- a/app/components/chat.tsx +++ b/app/components/chat.tsx @@ -1,5 +1,5 @@ import { useDebouncedCallback } from "use-debounce"; -import { useState, useRef, useEffect, useLayoutEffect } from "react"; +import React, { useState, useRef, useEffect, useLayoutEffect } from "react"; import SendWhiteIcon from "../icons/send-white.svg"; import BrainIcon from "../icons/brain.svg"; @@ -286,34 +286,39 @@ function ChatAction(props: { }) { const iconRef = useRef(null); const textRef = useRef(null); - const [hovering, setHovering] = useState(false); - const [width, setWidth] = useState(20); + const [width, setWidth] = useState({ + full: 20, + icon: 20, + }); - const updateWidth = () => { + function updateWidth() { if (!iconRef.current || !textRef.current) return; const getWidth = (dom: HTMLDivElement) => dom.getBoundingClientRect().width; const textWidth = getWidth(textRef.current); const iconWidth = getWidth(iconRef.current); - setWidth(hovering ? textWidth + iconWidth : iconWidth); - }; + setWidth({ + full: textWidth + iconWidth, + icon: iconWidth, + }); + } useEffect(() => { updateWidth(); - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [hovering]); + }, []); return (
setHovering(true)} - onMouseLeave={() => setHovering(false)} - style={{ - width, - }} onClick={() => { props.onClick(); setTimeout(updateWidth, 1); }} + style={ + { + "--icon-width": `${width.icon}px`, + "--full-width": `${width.full}px`, + } as React.CSSProperties + } >
{props.icon} From 50cd33dbb2992066dae8c51c2da6ef4781e4500a Mon Sep 17 00:00:00 2001 From: Yidadaa Date: Wed, 14 Jun 2023 00:37:42 +0800 Subject: [PATCH 08/61] feat: #1000 ready to support client-side only --- app/client/api.ts | 23 ++++++++++++++++++++++- app/components/home.tsx | 5 +++++ app/components/settings.tsx | 18 +++++++++++++++++- app/config/build.ts | 29 ++++++++++++++++------------- app/config/client.ts | 27 +++++++++++++++++++++++++++ app/config/server.ts | 1 + app/constant.ts | 1 + app/layout.tsx | 5 ++--- app/locales/cn.ts | 4 ++++ app/locales/en.ts | 4 ++++ app/store/access.ts | 13 +++++++++++-- app/store/update.ts | 18 ++---------------- next.config.mjs | 21 +++++++++++++++++++++ 13 files changed, 133 insertions(+), 36 deletions(-) create mode 100644 app/config/client.ts diff --git a/app/client/api.ts b/app/client/api.ts index fb829f97a..8897d7a66 100644 --- a/app/client/api.ts +++ b/app/client/api.ts @@ -1,5 +1,5 @@ import { ACCESS_CODE_PREFIX } from "../constant"; -import { ChatMessage, ModelConfig, ModelType, useAccessStore } from "../store"; +import { ChatMessage, ModelType, useAccessStore } from "../store"; import { ChatGPTApi } from "./platforms/openai"; export const ROLES = ["system", "user", "assistant"] as const; @@ -42,6 +42,27 @@ export abstract class LLMApi { abstract usage(): Promise; } +type ProviderName = "openai" | "azure" | "claude" | "palm"; + +interface Model { + name: string; + provider: ProviderName; + ctxlen: number; +} + +interface ChatProvider { + name: ProviderName; + apiConfig: { + baseUrl: string; + apiKey: string; + summaryModel: Model; + }; + models: Model[]; + + chat: () => void; + usage: () => void; +} + export class ClientApi { public llm: LLMApi; diff --git a/app/components/home.tsx b/app/components/home.tsx index 96bcd2882..16650228c 100644 --- a/app/components/home.tsx +++ b/app/components/home.tsx @@ -24,6 +24,7 @@ import { import { SideBar } from "./sidebar"; import { useAppConfig } from "../store/config"; import { AuthPage } from "./auth"; +import { getClientConfig } from "../config/client"; export function Loading(props: { noLogo?: boolean }) { return ( @@ -147,6 +148,10 @@ function Screen() { export function Home() { useSwitchTheme(); + useEffect(() => { + console.log("[Config] got config from build time", getClientConfig()); + }, []); + if (!useHasHydrated()) { return ; } diff --git a/app/components/settings.tsx b/app/components/settings.tsx index 9029fdf2c..4f8379f59 100644 --- a/app/components/settings.tsx +++ b/app/components/settings.tsx @@ -1,4 +1,4 @@ -import { useState, useEffect, useMemo, HTMLProps, useRef } from "react"; +import { useState, useEffect, useMemo } from "react"; import styles from "./settings.module.scss"; @@ -45,6 +45,7 @@ import { ErrorBoundary } from "./error"; import { InputRange } from "./input-range"; import { useNavigate } from "react-router-dom"; import { Avatar, AvatarPicker } from "./emoji"; +import { getClientConfig } from "../config/client"; function EditPromptModal(props: { id: number; onClose: () => void }) { const promptStore = usePromptStore(); @@ -541,6 +542,21 @@ export function Settings() { /> )} + + {!accessStore.hideUserApiKey ? ( + + + accessStore.updateOpenAiUrl(e.currentTarget.value) + } + > + + ) : null} diff --git a/app/config/build.ts b/app/config/build.ts index 79ed5d3e8..f294ef3f2 100644 --- a/app/config/build.ts +++ b/app/config/build.ts @@ -1,16 +1,3 @@ -const COMMIT_ID: string = (() => { - try { - const childProcess = require("child_process"); - return childProcess - .execSync('git log -1 --format="%at000" --date=unix') - .toString() - .trim(); - } catch (e) { - console.error("[Build Config] No git or not from git repo."); - return "unknown"; - } -})(); - export const getBuildConfig = () => { if (typeof process === "undefined") { throw Error( @@ -18,7 +5,23 @@ export const getBuildConfig = () => { ); } + const COMMIT_ID: string = (() => { + try { + const childProcess = require("child_process"); + return childProcess + .execSync('git log -1 --format="%at000" --date=unix') + .toString() + .trim(); + } catch (e) { + console.error("[Build Config] No git or not from git repo."); + return "unknown"; + } + })(); + return { commitId: COMMIT_ID, + buildMode: process.env.BUILD_MODE ?? "standalone", }; }; + +export type BuildConfig = ReturnType; diff --git a/app/config/client.ts b/app/config/client.ts new file mode 100644 index 000000000..da582a3e8 --- /dev/null +++ b/app/config/client.ts @@ -0,0 +1,27 @@ +import { BuildConfig, getBuildConfig } from "./build"; + +export function getClientConfig() { + if (typeof document !== "undefined") { + // client side + return JSON.parse(queryMeta("config")) as BuildConfig; + } + + if (typeof process !== "undefined") { + // server side + return getBuildConfig(); + } +} + +function queryMeta(key: string, defaultValue?: string): string { + let ret: string; + if (document) { + const meta = document.head.querySelector( + `meta[name='${key}']`, + ) as HTMLMetaElement; + ret = meta?.content ?? ""; + } else { + ret = defaultValue ?? ""; + } + + return ret; +} diff --git a/app/config/server.ts b/app/config/server.ts index b978e726e..f5fee7190 100644 --- a/app/config/server.ts +++ b/app/config/server.ts @@ -10,6 +10,7 @@ declare global { VERCEL?: string; HIDE_USER_API_KEY?: string; // disable user's api key input DISABLE_GPT4?: string; // allow user to use gpt-4 or not + BUILD_MODE?: "standalone" | "export"; } } } diff --git a/app/constant.ts b/app/constant.ts index 0f8052753..6f31ad431 100644 --- a/app/constant.ts +++ b/app/constant.ts @@ -6,6 +6,7 @@ export const UPDATE_URL = `${REPO_URL}#keep-updated`; export const FETCH_COMMIT_URL = `https://api.github.com/repos/${OWNER}/${REPO}/commits?per_page=1`; export const FETCH_TAG_URL = `https://api.github.com/repos/${OWNER}/${REPO}/tags?per_page=1`; export const RUNTIME_CONFIG_DOM = "danger-runtime-config"; +export const DEFAULT_API_HOST = "https://chatgpt.nextweb.fun/api/proxy"; export enum Path { Home = "/", diff --git a/app/layout.tsx b/app/layout.tsx index 37f5a9f14..e7c14e307 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -3,8 +3,7 @@ import "./styles/globals.scss"; import "./styles/markdown.scss"; import "./styles/highlight.scss"; import { getBuildConfig } from "./config/build"; - -const buildConfig = getBuildConfig(); +import { getClientConfig } from "./config/client"; export const metadata = { title: "ChatGPT Next Web", @@ -32,7 +31,7 @@ export default function RootLayout({ return ( - + diff --git a/app/locales/cn.ts b/app/locales/cn.ts index d33ba101b..0dc5d3545 100644 --- a/app/locales/cn.ts +++ b/app/locales/cn.ts @@ -180,6 +180,10 @@ const cn = { SubTitle: "管理员已开启加密访问", Placeholder: "请输入访问密码", }, + Endpoint: { + Title: "接口地址", + SubTitle: "除默认地址外,必须包含 http(s)://", + }, Model: "模型 (model)", Temperature: { Title: "随机性 (temperature)", diff --git a/app/locales/en.ts b/app/locales/en.ts index 9c8bc2a79..6d7174dc3 100644 --- a/app/locales/en.ts +++ b/app/locales/en.ts @@ -181,6 +181,10 @@ const en: RequiredLocaleType = { SubTitle: "Access control enabled", Placeholder: "Need Access Code", }, + Endpoint: { + Title: "Endpoint", + SubTitle: "Custom endpoint must start with http(s)://", + }, Model: "Model", Temperature: { Title: "Temperature", diff --git a/app/store/access.ts b/app/store/access.ts index 91049846b..daefa0aad 100644 --- a/app/store/access.ts +++ b/app/store/access.ts @@ -1,9 +1,10 @@ import { create } from "zustand"; import { persist } from "zustand/middleware"; -import { StoreKey } from "../constant"; +import { DEFAULT_API_HOST, StoreKey } from "../constant"; import { getHeaders } from "../client/api"; import { BOT_HELLO } from "./chat"; import { ALL_MODELS } from "./config"; +import { getClientConfig } from "../config/client"; export interface AccessControlStore { accessCode: string; @@ -15,6 +16,7 @@ export interface AccessControlStore { updateToken: (_: string) => void; updateCode: (_: string) => void; + updateOpenAiUrl: (_: string) => void; enabledAccessControl: () => boolean; isAuthorized: () => boolean; fetch: () => void; @@ -22,6 +24,10 @@ export interface AccessControlStore { let fetchState = 0; // 0 not fetch, 1 fetching, 2 done +const DEFAULT_OPENAI_URL = + getClientConfig()?.buildMode === "export" ? DEFAULT_API_HOST : "/api/openai/"; +console.log("[API] default openai url", DEFAULT_OPENAI_URL); + export const useAccessStore = create()( persist( (set, get) => ({ @@ -29,7 +35,7 @@ export const useAccessStore = create()( accessCode: "", needCode: true, hideUserApiKey: false, - openaiUrl: "/api/openai/", + openaiUrl: DEFAULT_OPENAI_URL, enabledAccessControl() { get().fetch(); @@ -42,6 +48,9 @@ export const useAccessStore = create()( updateToken(token: string) { set(() => ({ token })); }, + updateOpenAiUrl(url: string) { + set(() => ({ openaiUrl: url })); + }, isAuthorized() { get().fetch(); diff --git a/app/store/update.ts b/app/store/update.ts index 5a9bec9d7..ca2ae70ad 100644 --- a/app/store/update.ts +++ b/app/store/update.ts @@ -2,7 +2,7 @@ import { create } from "zustand"; import { persist } from "zustand/middleware"; import { FETCH_COMMIT_URL, StoreKey } from "../constant"; import { api } from "../client/api"; -import { showToast } from "../components/ui-lib"; +import { getClientConfig } from "../config/client"; export interface UpdateStore { lastUpdate: number; @@ -17,20 +17,6 @@ export interface UpdateStore { updateUsage: (force?: boolean) => Promise; } -function queryMeta(key: string, defaultValue?: string): string { - let ret: string; - if (document) { - const meta = document.head.querySelector( - `meta[name='${key}']`, - ) as HTMLMetaElement; - ret = meta?.content ?? ""; - } else { - ret = defaultValue ?? ""; - } - - return ret; -} - const ONE_MINUTE = 60 * 1000; export const useUpdateStore = create()( @@ -44,7 +30,7 @@ export const useUpdateStore = create()( version: "unknown", async getLatestVersion(force = false) { - set(() => ({ version: queryMeta("version") ?? "unknown" })); + set(() => ({ version: getClientConfig()?.commitId ?? "unknown" })); const overTenMins = Date.now() - get().lastUpdate > 10 * ONE_MINUTE; if (!force && !overTenMins) return; diff --git a/next.config.mjs b/next.config.mjs index 7bb1436bf..b2a47deb2 100644 --- a/next.config.mjs +++ b/next.config.mjs @@ -15,6 +15,27 @@ const nextConfig = { }; if (mode !== "export") { + nextConfig.headers = async () => { + return [ + { + source: "/:path*", + headers: [ + { key: "Access-Control-Allow-Credentials", value: "true" }, + { key: "Access-Control-Allow-Origin", value: "*" }, + { + key: "Access-Control-Allow-Methods", + value: "GET,OPTIONS,PATCH,DELETE,POST,PUT", + }, + { + key: "Access-Control-Allow-Headers", + value: + "X-CSRF-Token, X-Requested-With, Accept, Accept-Version, Content-Length, Content-MD5, Content-Type, Date, X-Api-Version", + }, + ], + }, + ]; + }; + nextConfig.rewrites = async () => { const ret = [ { From 2a191aacb7d2d44de7c8cdd77b73e1f31651907f Mon Sep 17 00:00:00 2001 From: Yidadaa Date: Wed, 14 Jun 2023 00:46:52 +0800 Subject: [PATCH 09/61] fixup --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index c95f80876..60c6ac61c 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,7 @@ "build": "next build", "start": "next start", "lint": "next lint", + "export": "BUILD_MODE=export yarn build", "prompts": "node ./scripts/fetch-prompts.mjs", "prepare": "husky install", "proxy-dev": "sh ./scripts/init-proxy.sh && proxychains -f ./scripts/proxychains.conf yarn dev" From c56c6074e9b978704b299c379ab60ec1d529706f Mon Sep 17 00:00:00 2001 From: samelamin Date: Tue, 13 Jun 2023 18:32:51 +0100 Subject: [PATCH 10/61] fix date time bug --- app/components/chat-list.tsx | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/app/components/chat-list.tsx b/app/components/chat-list.tsx index c1365182c..fc4e53788 100644 --- a/app/components/chat-list.tsx +++ b/app/components/chat-list.tsx @@ -72,9 +72,7 @@ export function ChatItem(props: {
{Locale.ChatItem.ChatItemCount(props.count)}
-
- {new Date(props.time).toLocaleString()} -
+
{props.time}
)} From d2ae740d5f178c316ba4991b2a71452409def7dc Mon Sep 17 00:00:00 2001 From: suhipek Date: Wed, 14 Jun 2023 01:51:37 +0800 Subject: [PATCH 11/61] add new models --- app/store/config.ts | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/app/store/config.ts b/app/store/config.ts index 1e960456f..e837011a9 100644 --- a/app/store/config.ts +++ b/app/store/config.ts @@ -60,6 +60,10 @@ export const ALL_MODELS = [ name: "gpt-4-0314", available: ENABLE_GPT4, }, + { + name: "gpt-4-0613", + available: ENABLE_GPT4, + }, { name: "gpt-4-32k", available: ENABLE_GPT4, @@ -68,6 +72,10 @@ export const ALL_MODELS = [ name: "gpt-4-32k-0314", available: ENABLE_GPT4, }, + { + name: "gpt-4-32k-0613", + available: ENABLE_GPT4, + }, { name: "gpt-3.5-turbo", available: true, @@ -76,6 +84,14 @@ export const ALL_MODELS = [ name: "gpt-3.5-turbo-0301", available: true, }, + { + name: "gpt-3.5-turbo-0613", + available: true, + }, + { + name: "gpt-3.5-turbo-16k", + available: true, + }, { name: "qwen-v1", // 通义千问 available: false, @@ -116,7 +132,7 @@ export function limitNumber( export function limitModel(name: string) { return ALL_MODELS.some((m) => m.name === name && m.available) ? name - : ALL_MODELS[4].name; + : "gpt-3.5-turbo"; } export const ModalConfigValidator = { From 21aa015a79f909e5602f779c1ae50cb4d404710c Mon Sep 17 00:00:00 2001 From: Cesaryuan Date: Wed, 14 Jun 2023 14:30:08 +0800 Subject: [PATCH 12/61] fix: remove slection range when user blured --- app/components/mask.tsx | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/components/mask.tsx b/app/components/mask.tsx index de724e26d..af067ed4e 100644 --- a/app/components/mask.tsx +++ b/app/components/mask.tsx @@ -185,7 +185,11 @@ function ContextPromptItem(props: { className={chatStyle["context-content"]} rows={focusingInput ? 5 : 1} onFocus={() => setFocusingInput(true)} - onBlur={() => setFocusingInput(false)} + onBlur={() => { + setFocusingInput(false); + // 如果在用户失去焦点时不清除选区,那么一些依赖类似「划词翻译」的扩展会始终显示浮动条 + window?.getSelection()?.removeAllRanges(); + }} onInput={(e) => props.update({ ...props.prompt, From b4cb8c3d75feb7db1e092b533513704690373f97 Mon Sep 17 00:00:00 2001 From: Cesaryuan Date: Wed, 14 Jun 2023 14:40:51 +0800 Subject: [PATCH 13/61] chore: translate comment to english --- app/components/mask.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/components/mask.tsx b/app/components/mask.tsx index af067ed4e..d48ed7c29 100644 --- a/app/components/mask.tsx +++ b/app/components/mask.tsx @@ -187,7 +187,8 @@ function ContextPromptItem(props: { onFocus={() => setFocusingInput(true)} onBlur={() => { setFocusingInput(false); - // 如果在用户失去焦点时不清除选区,那么一些依赖类似「划词翻译」的扩展会始终显示浮动条 + // If the selection is not removed when the user loses focus, some + // extensions like "Translate" will always display a floating bar window?.getSelection()?.removeAllRanges(); }} onInput={(e) => From 8590750e4c883a79d9462f23fd21b32b13ab4c04 Mon Sep 17 00:00:00 2001 From: Yidadaa Date: Wed, 14 Jun 2023 23:22:59 +0800 Subject: [PATCH 14/61] feat: close #1960 add gpt-3.5-turbo-16k-0613 --- app/store/config.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/store/config.ts b/app/store/config.ts index e837011a9..3378b9c36 100644 --- a/app/store/config.ts +++ b/app/store/config.ts @@ -92,6 +92,10 @@ export const ALL_MODELS = [ name: "gpt-3.5-turbo-16k", available: true, }, + { + name: "gpt-3.5-turbo-16k-0613", + available: true, + }, { name: "qwen-v1", // 通义千问 available: false, From 76fdd047e7a9427dee18785d1cf60cc0e0999554 Mon Sep 17 00:00:00 2001 From: Yidadaa Date: Thu, 15 Jun 2023 00:14:38 +0800 Subject: [PATCH 15/61] feat: new token count function --- app/store/chat.ts | 3 ++- app/utils/token.ts | 22 ++++++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 app/utils/token.ts diff --git a/app/store/chat.ts b/app/store/chat.ts index 3c9953e58..f56d9b9d8 100644 --- a/app/store/chat.ts +++ b/app/store/chat.ts @@ -11,6 +11,7 @@ import { StoreKey } from "../constant"; import { api, RequestMessage } from "../client/api"; import { ChatControllerPool } from "../client/controller"; import { prettyObject } from "../utils/format"; +import { estimateTokenLength } from "../utils/token"; export type ChatMessage = RequestMessage & { date: string; @@ -102,7 +103,7 @@ interface ChatStore { } function countMessages(msgs: ChatMessage[]) { - return msgs.reduce((pre, cur) => pre + cur.content.length, 0); + return msgs.reduce((pre, cur) => pre + estimateTokenLength(cur.content), 0); } export const useChatStore = create()( diff --git a/app/utils/token.ts b/app/utils/token.ts new file mode 100644 index 000000000..ec8139b20 --- /dev/null +++ b/app/utils/token.ts @@ -0,0 +1,22 @@ +export function estimateTokenLength(input: string): number { + let tokenLength = 0; + + for (let i = 0; i < input.length; i++) { + const charCode = input.charCodeAt(i); + + if (charCode < 128) { + // ASCII character + if (charCode <= 122 && charCode >= 65) { + // a-Z + tokenLength += 0.25; + } else { + tokenLength += 0.5; + } + } else { + // Unicode character + tokenLength += 1.5; + } + } + + return tokenLength; +} From 0fb775d71a0fac5ce4aa802bc3eb0b066c12ed7b Mon Sep 17 00:00:00 2001 From: Yidadaa Date: Thu, 15 Jun 2023 00:28:47 +0800 Subject: [PATCH 16/61] fix: #1931 try to fix cors issues --- app/api/openai/[...path]/route.ts | 4 ++++ next.config.mjs | 11 +++++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/app/api/openai/[...path]/route.ts b/app/api/openai/[...path]/route.ts index 04f3b6da8..36f92d0ff 100644 --- a/app/api/openai/[...path]/route.ts +++ b/app/api/openai/[...path]/route.ts @@ -12,6 +12,10 @@ async function handle( ) { console.log("[OpenAI Route] params ", params); + if (req.method === "OPTIONS") { + return NextResponse.json({ body: "OK" }, { status: 200 }); + } + const subpath = params.path.join("/"); if (!ALLOWD_PATH.has(subpath)) { diff --git a/next.config.mjs b/next.config.mjs index b2a47deb2..540fc0275 100644 --- a/next.config.mjs +++ b/next.config.mjs @@ -18,18 +18,21 @@ if (mode !== "export") { nextConfig.headers = async () => { return [ { - source: "/:path*", + source: "/api/:path*", headers: [ { key: "Access-Control-Allow-Credentials", value: "true" }, { key: "Access-Control-Allow-Origin", value: "*" }, { key: "Access-Control-Allow-Methods", - value: "GET,OPTIONS,PATCH,DELETE,POST,PUT", + value: "*", }, { key: "Access-Control-Allow-Headers", - value: - "X-CSRF-Token, X-Requested-With, Accept, Accept-Version, Content-Length, Content-MD5, Content-Type, Date, X-Api-Version", + value: "*", + }, + { + key: "Access-Control-Max-Age", + value: "86400", }, ], }, From 184a0b94811c5a697351388021bad03d62d98105 Mon Sep 17 00:00:00 2001 From: Yidadaa Date: Thu, 15 Jun 2023 01:34:21 +0800 Subject: [PATCH 17/61] fix: #1954 lazy render bugs --- README.md | 3 + README_CN.md | 5 +- app/api/auth.ts | 1 - app/components/markdown.tsx | 69 +++++---- app/constant.ts | 2 +- app/layout.tsx | 1 - package.json | 8 +- yarn.lock | 269 +++++++++++++++++++++++++++++++++++- 8 files changed, 318 insertions(+), 40 deletions(-) diff --git a/README.md b/README.md index 9607a21ef..1ca591128 100644 --- a/README.md +++ b/README.md @@ -188,6 +188,9 @@ Before starting development, you must create a new `.env.local` file at project ``` OPENAI_API_KEY= + +# if you are not able to access openai service, use this BASE_URL +BASE_URL=https://chatgpt1.nextweb.fun/api/proxy ``` ### Local Development diff --git a/README_CN.md b/README_CN.md index 9601e5fda..104b07eda 100644 --- a/README_CN.md +++ b/README_CN.md @@ -100,8 +100,6 @@ OpenAI 接口代理 URL,如果你手动配置了 openai 接口代理,请填 ## 开发 -> 强烈不建议在本地进行开发或者部署,由于一些技术原因,很难在本地配置好 OpenAI API 代理,除非你能保证可以直连 OpenAI 服务器。 - 点击下方按钮,开始二次开发: [![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/Yidadaa/ChatGPT-Next-Web) @@ -110,6 +108,9 @@ OpenAI 接口代理 URL,如果你手动配置了 openai 接口代理,请填 ``` OPENAI_API_KEY= + +# 中国大陆用户,可以使用本项目自带的代理进行开发,你也可以自由选择其他代理地址 +BASE_URL=https://chatgpt1.nextweb.fun/api/proxy ``` ### 本地开发 diff --git a/app/api/auth.ts b/app/api/auth.ts index fffb63c1f..e0453b2b4 100644 --- a/app/api/auth.ts +++ b/app/api/auth.ts @@ -2,7 +2,6 @@ import { NextRequest } from "next/server"; import { getServerSideConfig } from "../config/server"; import md5 from "spark-md5"; import { ACCESS_CODE_PREFIX } from "../constant"; -import { OPENAI_URL } from "./common"; function getIP(req: NextRequest) { let ip = req.ip ?? req.headers.get("x-real-ip"); diff --git a/app/components/markdown.tsx b/app/components/markdown.tsx index 108b0570d..af7b484a4 100644 --- a/app/components/markdown.tsx +++ b/app/components/markdown.tsx @@ -11,6 +11,7 @@ import mermaid from "mermaid"; import LoadingIcon from "../icons/three-dots.svg"; import React from "react"; +import { useThrottledCallback } from "use-debounce"; export function Mermaid(props: { code: string; onError: () => void }) { const ref = useRef(null); @@ -127,43 +128,57 @@ export function Markdown( ) { const mdRef = useRef(null); const renderedHeight = useRef(0); + const renderedWidth = useRef(0); const inView = useRef(!!props.defaultShow); + const [_, triggerRender] = useState(0); + const checkInView = useThrottledCallback( + () => { + const parent = props.parentRef?.current; + const md = mdRef.current; + if (parent && md && !props.defaultShow) { + const parentBounds = parent.getBoundingClientRect(); + const twoScreenHeight = Math.max(500, parentBounds.height * 2); + const mdBounds = md.getBoundingClientRect(); + const parentTop = parentBounds.top - twoScreenHeight; + const parentBottom = parentBounds.bottom + twoScreenHeight; + const isOverlap = + Math.max(parentTop, mdBounds.top) <= + Math.min(parentBottom, mdBounds.bottom); + inView.current = isOverlap; + triggerRender(Date.now()); + } - const parent = props.parentRef?.current; - const md = mdRef.current; + if (inView.current && md) { + const rect = md.getBoundingClientRect(); + renderedHeight.current = Math.max(renderedHeight.current, rect.height); + renderedWidth.current = Math.max(renderedWidth.current, rect.width); + } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, + 300, + { + leading: true, + trailing: true, + }, + ); - const checkInView = () => { - if (parent && md) { - const parentBounds = parent.getBoundingClientRect(); - const twoScreenHeight = Math.max(500, parentBounds.height * 2); - const mdBounds = md.getBoundingClientRect(); - const parentTop = parentBounds.top - twoScreenHeight; - const parentBottom = parentBounds.bottom + twoScreenHeight; - const isOverlap = - Math.max(parentTop, mdBounds.top) <= - Math.min(parentBottom, mdBounds.bottom); - inView.current = isOverlap; - } + useEffect(() => { + props.parentRef?.current?.addEventListener("scroll", checkInView); + checkInView(); + return () => + props.parentRef?.current?.removeEventListener("scroll", checkInView); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); - if (inView.current && md) { - renderedHeight.current = Math.max( - renderedHeight.current, - md.getBoundingClientRect().height, - ); - } - }; - - setTimeout(() => checkInView(), 1); + const getSize = (x: number) => (!inView.current && x > 0 ? x : "auto"); return (
0 - ? renderedHeight.current - : "auto", + height: getSize(renderedHeight.current), + width: getSize(renderedWidth.current), }} ref={mdRef} onContextMenu={props.onContextMenu} diff --git a/app/constant.ts b/app/constant.ts index 6f31ad431..b798f6f82 100644 --- a/app/constant.ts +++ b/app/constant.ts @@ -6,7 +6,7 @@ export const UPDATE_URL = `${REPO_URL}#keep-updated`; export const FETCH_COMMIT_URL = `https://api.github.com/repos/${OWNER}/${REPO}/commits?per_page=1`; export const FETCH_TAG_URL = `https://api.github.com/repos/${OWNER}/${REPO}/tags?per_page=1`; export const RUNTIME_CONFIG_DOM = "danger-runtime-config"; -export const DEFAULT_API_HOST = "https://chatgpt.nextweb.fun/api/proxy"; +export const DEFAULT_API_HOST = "https://chatgpt1.nextweb.fun/api/proxy"; export enum Path { Home = "/", diff --git a/app/layout.tsx b/app/layout.tsx index e7c14e307..4977afa17 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -2,7 +2,6 @@ import "./styles/globals.scss"; import "./styles/markdown.scss"; import "./styles/highlight.scss"; -import { getBuildConfig } from "./config/build"; import { getClientConfig } from "./config/client"; export const metadata = { diff --git a/package.json b/package.json index 60c6ac61c..2dcf02504 100644 --- a/package.json +++ b/package.json @@ -1,8 +1,7 @@ { "name": "chatgpt-next-web", - "version": "1.9.3", "private": false, - "license": "Anti 996", + "license": "mit", "scripts": { "dev": "next dev", "build": "next build", @@ -34,11 +33,13 @@ "remark-gfm": "^3.0.1", "remark-math": "^5.1.1", "sass": "^1.59.2", + "sharp": "^0.32.1", "spark-md5": "^3.0.2", "use-debounce": "^9.0.3", "zustand": "^4.3.6" }, "devDependencies": { + "@tauri-apps/cli": "^1.3.1", "@types/node": "^18.14.6", "@types/react": "^18.0.28", "@types/react-dom": "^18.0.11", @@ -52,7 +53,6 @@ "husky": "^8.0.0", "lint-staged": "^13.2.0", "prettier": "^2.8.7", - "typescript": "4.9.5", - "@tauri-apps/cli": "^1.3.1" + "typescript": "4.9.5" } } diff --git a/yarn.lock b/yarn.lock index ed3401b39..7fa0cc9c1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1754,11 +1754,25 @@ balanced-match@^1.0.0: resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + binary-extensions@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== +bl@^4.0.3: + version "4.1.0" + resolved "https://registry.npmmirror.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== + dependencies: + buffer "^5.5.0" + inherits "^2.0.4" + readable-stream "^3.4.0" + boolbase@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" @@ -1789,6 +1803,14 @@ browserslist@^4.21.3, browserslist@^4.21.5: node-releases "^2.0.8" update-browserslist-db "^1.0.10" +buffer@^5.5.0: + version "5.7.1" + resolved "https://registry.npmmirror.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.1.13" + busboy@1.6.0: version "1.6.0" resolved "https://registry.npmmirror.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893" @@ -1866,6 +1888,11 @@ character-entities@^2.0.0: optionalDependencies: fsevents "~2.3.2" +chownr@^1.1.1: + version "1.1.4" + resolved "https://registry.npmmirror.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== + clean-stack@^2.0.0: version "2.2.0" resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" @@ -1923,11 +1950,27 @@ color-name@1.1.3: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== -color-name@~1.1.4: +color-name@^1.0.0, color-name@~1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +color-string@^1.9.0: + version "1.9.1" + resolved "https://registry.npmmirror.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" + integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color@^4.2.3: + version "4.2.3" + resolved "https://registry.npmmirror.com/color/-/color-4.2.3.tgz#d781ecb5e57224ee43ea9627560107c0e0c6463a" + integrity sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A== + dependencies: + color-convert "^2.0.1" + color-string "^1.9.0" + colorette@^2.0.19: version "2.0.19" resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798" @@ -2364,6 +2407,13 @@ decode-named-character-reference@^1.0.0: dependencies: character-entities "^2.0.0" +decompress-response@^6.0.0: + version "6.0.0" + resolved "https://registry.npmmirror.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" + integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== + dependencies: + mimic-response "^3.1.0" + deep-equal@^2.0.5: version "2.2.0" resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-2.2.0.tgz#5caeace9c781028b9ff459f33b779346637c43e6" @@ -2387,6 +2437,11 @@ deep-equal@^2.0.5: which-collection "^1.0.1" which-typed-array "^1.1.9" +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.npmmirror.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + deep-is@^0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" @@ -2422,6 +2477,11 @@ dequal@^2.0.0: resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be" integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA== +detect-libc@^2.0.0, detect-libc@^2.0.1: + version "2.0.1" + resolved "https://registry.npmmirror.com/detect-libc/-/detect-libc-2.0.1.tgz#e1897aa88fa6ad197862937fbc0441ef352ee0cd" + integrity sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w== + diff@^5.0.0: version "5.1.0" resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40" @@ -2515,6 +2575,13 @@ emoji-regex@^9.2.2: resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== +end-of-stream@^1.1.0, end-of-stream@^1.4.1: + version "1.4.4" + resolved "https://registry.npmmirror.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@^5.12.0: version "5.12.0" resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz#300e1c90228f5b570c4d35babf263f6da7155634" @@ -2872,6 +2939,11 @@ execa@^7.0.0: signal-exit "^3.0.7" strip-final-newline "^3.0.0" +expand-template@^2.0.3: + version "2.0.3" + resolved "https://registry.npmmirror.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" + integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== + extend@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" @@ -2984,6 +3056,11 @@ formdata-polyfill@^4.0.10: dependencies: fetch-blob "^3.1.2" +fs-constants@^1.0.0: + version "1.0.0" + resolved "https://registry.npmmirror.com/fs-constants/-/fs-constants-1.0.0.tgz#6be0de9be998ce16af8afc24497b9ee9b7ccd9ad" + integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== + fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" @@ -3051,6 +3128,11 @@ get-tsconfig@^4.5.0: resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.5.0.tgz#6d52d1c7b299bd3ee9cd7638561653399ac77b0f" integrity sha512-MjhiaIWCJ1sAU4pIQ5i5OfOuHHxVo1oYeNsWTON7jxYkod8pHocXeh+SSbmu5OZZZK73B6cbJ2XADzXehLyovQ== +github-from-package@0.0.0: + version "0.0.0" + resolved "https://registry.npmmirror.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" + integrity sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw== + glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" @@ -3297,6 +3379,11 @@ iconv-lite@0.6: dependencies: safer-buffer ">= 2.1.2 < 3.0.0" +ieee754@^1.1.13: + version "1.2.1" + resolved "https://registry.npmmirror.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + ignore@^5.2.0: version "5.2.4" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" @@ -3333,11 +3420,16 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2: +inherits@2, inherits@^2.0.3, inherits@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== +ini@~1.3.0: + version "1.3.8" + resolved "https://registry.npmmirror.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== + inline-style-parser@0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.1.1.tgz#ec8a3b429274e9c0a1f1c4ffa9453a7fef72cea1" @@ -3379,6 +3471,11 @@ is-arrayish@^0.2.1: resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== + is-bigint@^1.0.1: version "1.0.4" resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" @@ -4303,6 +4400,11 @@ mimic-fn@^4.0.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== +mimic-response@^3.1.0: + version "3.1.0" + resolved "https://registry.npmmirror.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" + integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== + minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" @@ -4310,11 +4412,16 @@ minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: dependencies: brace-expansion "^1.1.7" -minimist@^1.2.0, minimist@^1.2.6: +minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.6: version "1.2.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== +mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: + version "0.5.3" + resolved "https://registry.npmmirror.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" + integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== + mri@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" @@ -4335,6 +4442,11 @@ nanoid@^3.3.4: resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== +napi-build-utils@^1.0.1: + version "1.0.2" + resolved "https://registry.npmmirror.com/napi-build-utils/-/napi-build-utils-1.0.2.tgz#b1fddc0b2c46e380a0b7a76f984dd47c41a13806" + integrity sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg== + natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" @@ -4363,6 +4475,18 @@ next@^13.4.3: "@next/swc-win32-ia32-msvc" "13.4.3" "@next/swc-win32-x64-msvc" "13.4.3" +node-abi@^3.3.0: + version "3.45.0" + resolved "https://registry.npmmirror.com/node-abi/-/node-abi-3.45.0.tgz#f568f163a3bfca5aacfce1fbeee1fa2cc98441f5" + integrity sha512-iwXuFrMAcFVi/ZoZiqq8BzAdsLw9kxDfTC0HMyjXfSL/6CSDAGD5UmR7azrAgWV1zKYq7dUUMj4owusBWKLsiQ== + dependencies: + semver "^7.3.5" + +node-addon-api@^6.1.0: + version "6.1.0" + resolved "https://registry.npmmirror.com/node-addon-api/-/node-addon-api-6.1.0.tgz#ac8470034e58e67d0c6f1204a18ae6995d9c0d76" + integrity sha512-+eawOlIgy680F0kBzPUNFhMZGtJ1YmqM6l4+Crf4IkImjYrO/mqPwRMh352g23uIaQKFItcQ64I7KMaJxHgAVA== + node-domexception@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/node-domexception/-/node-domexception-1.0.0.tgz#6888db46a1f71c0b76b3f7555016b63fe64766e5" @@ -4474,7 +4598,7 @@ object.values@^1.1.6: define-properties "^1.1.4" es-abstract "^1.20.4" -once@^1.3.0: +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" integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== @@ -4613,6 +4737,24 @@ postcss@8.4.14: picocolors "^1.0.0" source-map-js "^1.0.2" +prebuild-install@^7.1.1: + version "7.1.1" + resolved "https://registry.npmmirror.com/prebuild-install/-/prebuild-install-7.1.1.tgz#de97d5b34a70a0c81334fd24641f2a1702352e45" + integrity sha512-jAXscXWMcCK8GgCoHOfIr0ODh5ai8mj63L2nWrjuAgXE6tDyYGnx4/8o/rCgU+B4JSyZBKbeZqzhtwtC3ovxjw== + dependencies: + detect-libc "^2.0.0" + expand-template "^2.0.3" + github-from-package "0.0.0" + minimist "^1.2.3" + mkdirp-classic "^0.5.3" + napi-build-utils "^1.0.1" + node-abi "^3.3.0" + pump "^3.0.0" + rc "^1.2.7" + simple-get "^4.0.0" + tar-fs "^2.0.0" + tunnel-agent "^0.6.0" + prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" @@ -4644,6 +4786,14 @@ property-information@^6.0.0: resolved "https://registry.yarnpkg.com/property-information/-/property-information-6.2.0.tgz#b74f522c31c097b5149e3c3cb8d7f3defd986a1d" integrity sha512-kma4U7AFCTwpqq5twzC1YVIDXSqg6qQK6JN0smOw8fgRy1OkMi0CYSzFmsy6dnqSenamAtj0CyXMUJ1Mf6oROg== +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.npmmirror.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" + punycode@^2.1.0: version "2.3.0" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" @@ -4659,6 +4809,16 @@ raf-schd@^4.0.3: resolved "https://registry.npmmirror.com/raf-schd/-/raf-schd-4.0.3.tgz#5d6c34ef46f8b2a0e880a8fcdb743efc5bfdbc1a" integrity sha512-tQkJl2GRWh83ui2DiPTJz9wEiMN20syf+5oKfB03yYP7ioZcJwsIK8FjrtLwH1m7C7e+Tt2yYBlrOpdT+dyeIQ== +rc@^1.2.7: + version "1.2.8" + resolved "https://registry.npmmirror.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" + react-dom@^18.2.0: version "18.2.0" resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d" @@ -4732,6 +4892,15 @@ react@^18.2.0: dependencies: loose-envify "^1.1.0" +readable-stream@^3.1.1, readable-stream@^3.4.0: + version "3.6.2" + resolved "https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + readdirp@~3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" @@ -4960,6 +5129,11 @@ sade@^1.7.3: dependencies: mri "^1.1.0" +safe-buffer@^5.0.1, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + safe-regex-test@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" @@ -4995,6 +5169,13 @@ semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== +semver@^7.3.5, semver@^7.5.0: + version "7.5.1" + resolved "https://registry.npmmirror.com/semver/-/semver-7.5.1.tgz#c90c4d631cf74720e46b21c1d37ea07edfab91ec" + integrity sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw== + dependencies: + lru-cache "^6.0.0" + semver@^7.3.7: version "7.3.8" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" @@ -5002,6 +5183,20 @@ semver@^7.3.7: dependencies: lru-cache "^6.0.0" +sharp@^0.32.1: + version "0.32.1" + resolved "https://registry.npmmirror.com/sharp/-/sharp-0.32.1.tgz#41aa0d0b2048b2e0ee453d9fcb14ec1f408390fe" + integrity sha512-kQTFtj7ldpUqSe8kDxoGLZc1rnMFU0AO2pqbX6pLy3b7Oj8ivJIdoKNwxHVQG2HN6XpHPJqCSM2nsma2gOXvOg== + dependencies: + color "^4.2.3" + detect-libc "^2.0.1" + node-addon-api "^6.1.0" + prebuild-install "^7.1.1" + semver "^7.5.0" + simple-get "^4.0.1" + tar-fs "^2.1.1" + tunnel-agent "^0.6.0" + shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" @@ -5028,6 +5223,27 @@ signal-exit@^3.0.2, signal-exit@^3.0.7: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== +simple-concat@^1.0.0: + version "1.0.1" + resolved "https://registry.npmmirror.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" + integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== + +simple-get@^4.0.0, simple-get@^4.0.1: + version "4.0.1" + resolved "https://registry.npmmirror.com/simple-get/-/simple-get-4.0.1.tgz#4a39db549287c979d352112fa03fd99fd6bc3543" + integrity sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA== + dependencies: + decompress-response "^6.0.0" + once "^1.3.1" + simple-concat "^1.0.0" + +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.npmmirror.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== + dependencies: + is-arrayish "^0.3.1" + slash@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" @@ -5165,6 +5381,13 @@ string.prototype.trimstart@^1.0.6: define-properties "^1.1.4" es-abstract "^1.20.4" +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" @@ -5194,6 +5417,11 @@ strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.npmmirror.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== + style-to-object@^0.4.0: version "0.4.1" resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-0.4.1.tgz#53cf856f7cf7f172d72939d9679556469ba5de37" @@ -5263,6 +5491,27 @@ tapable@^2.2.0: resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== +tar-fs@^2.0.0, tar-fs@^2.1.1: + version "2.1.1" + resolved "https://registry.npmmirror.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" + integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== + dependencies: + chownr "^1.1.1" + mkdirp-classic "^0.5.2" + pump "^3.0.0" + tar-stream "^2.1.4" + +tar-stream@^2.1.4: + version "2.2.0" + resolved "https://registry.npmmirror.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" + integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== + dependencies: + bl "^4.0.3" + end-of-stream "^1.4.1" + fs-constants "^1.0.0" + inherits "^2.0.3" + readable-stream "^3.1.1" + text-table@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" @@ -5340,6 +5589,13 @@ tsutils@^3.21.0: dependencies: tslib "^1.8.1" +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.npmmirror.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== + dependencies: + safe-buffer "^5.0.1" + type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" @@ -5506,6 +5762,11 @@ use-sync-external-store@1.2.0, use-sync-external-store@^1.0.0: resolved "https://registry.yarnpkg.com/use-sync-external-store/-/use-sync-external-store-1.2.0.tgz#7dbefd6ef3fe4e767a0cf5d7287aacfb5846928a" integrity sha512-eEgnFxGQ1Ife9bzYs6VLi8/4X6CObHMw9Qr9tPY43iKwsPw8xE8+EFsf/2cFZ5S3esXgpWgtSCtLNS41F+sKPA== +util-deprecate@^1.0.1: + version "1.0.2" + resolved "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + uuid@^9.0.0: version "9.0.0" resolved "https://registry.npmmirror.com/uuid/-/uuid-9.0.0.tgz#592f550650024a38ceb0c562f2f6aa435761efb5" From 80d5bfd7c0cffaebe0eb7dd1790babb186447344 Mon Sep 17 00:00:00 2001 From: Yidadaa Date: Thu, 15 Jun 2023 01:48:56 +0800 Subject: [PATCH 18/61] feat: add app dev mode --- app/components/home.tsx | 7 ++++++- package.json | 2 ++ src-tauri/tauri.conf.json | 6 +++--- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/app/components/home.tsx b/app/components/home.tsx index 16650228c..46fd78e81 100644 --- a/app/components/home.tsx +++ b/app/components/home.tsx @@ -94,9 +94,14 @@ const useHasHydrated = () => { const loadAsyncGoogleFont = () => { const linkEl = document.createElement("link"); + const proxyFontUrl = "/google-fonts"; + const remoteFontUrl = "https://fonts.googleapis.com"; + const googleFontUrl = + getClientConfig()?.buildMode === "export" ? remoteFontUrl : proxyFontUrl; linkEl.rel = "stylesheet"; linkEl.href = - "/google-fonts/css2?family=Noto+Sans+SC:wght@300;400;700;900&display=swap"; + googleFontUrl + + "/css2?family=Noto+Sans+SC:wght@300;400;700;900&display=swap"; document.head.appendChild(linkEl); }; diff --git a/package.json b/package.json index 2dcf02504..b7e920e3e 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,8 @@ "start": "next start", "lint": "next lint", "export": "BUILD_MODE=export yarn build", + "export:dev": "BUILD_MODE=export yarn dev", + "app:dev": "yarn tauri dev", "prompts": "node ./scripts/fetch-prompts.mjs", "prepare": "husky install", "proxy-dev": "sh ./scripts/init-proxy.sh && proxychains -f ./scripts/proxychains.conf yarn dev" diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index 728d92d86..9db5da43b 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -1,14 +1,14 @@ { "$schema": "../node_modules/@tauri-apps/cli/schema.json", "build": { - "beforeBuildCommand": "yarn build", - "beforeDevCommand": "yarn dev", + "beforeBuildCommand": "yarn export", + "beforeDevCommand": "yarn export:dev", "devPath": "http://localhost:3000", "distDir": "../out" }, "package": { "productName": "chatgpt-next-web", - "version": "2.8" + "version": "2.8.1" }, "tauri": { "allowlist": { From 6264c02543cfbcda249e3a848cdeecc230157b4b Mon Sep 17 00:00:00 2001 From: Yidadaa Date: Thu, 15 Jun 2023 02:49:08 +0800 Subject: [PATCH 19/61] feat: add app logo and release workflow --- .github/workflows/app.yml | 91 ++++++++++++++++++++++++++ .github/workflows/sync.yml | 4 +- app/components/chat.tsx | 15 ++++- app/components/settings.tsx | 5 +- app/config/build.ts | 1 + app/config/server.ts | 1 + app/store/access.ts | 2 +- app/store/config.ts | 3 +- package.json | 5 +- src-tauri/icons/128x128.png | Bin 11059 -> 12367 bytes src-tauri/icons/128x128@2x.png | Bin 23137 -> 25655 bytes src-tauri/icons/32x32.png | Bin 2225 -> 1981 bytes src-tauri/icons/Square107x107Logo.png | Bin 9202 -> 10348 bytes src-tauri/icons/Square142x142Logo.png | Bin 12530 -> 13869 bytes src-tauri/icons/Square150x150Logo.png | Bin 13032 -> 14828 bytes src-tauri/icons/Square284x284Logo.png | Bin 25943 -> 29795 bytes src-tauri/icons/Square30x30Logo.png | Bin 2078 -> 1861 bytes src-tauri/icons/Square310x310Logo.png | Bin 28507 -> 33057 bytes src-tauri/icons/Square44x44Logo.png | Bin 3419 -> 3122 bytes src-tauri/icons/Square71x71Logo.png | Bin 6027 -> 5993 bytes src-tauri/icons/Square89x89Logo.png | Bin 7551 -> 8002 bytes src-tauri/icons/StoreLogo.png | Bin 3971 -> 3777 bytes src-tauri/icons/icon.icns | Bin 277003 -> 304021 bytes src-tauri/icons/icon.ico | Bin 37710 -> 41222 bytes src-tauri/icons/icon.png | Bin 49979 -> 18550 bytes src-tauri/tauri.conf.json | 8 +-- 26 files changed, 122 insertions(+), 13 deletions(-) create mode 100644 .github/workflows/app.yml diff --git a/.github/workflows/app.yml b/.github/workflows/app.yml new file mode 100644 index 000000000..01c44e217 --- /dev/null +++ b/.github/workflows/app.yml @@ -0,0 +1,91 @@ +name: Release App + +on: + workflow_dispatch: + release: + types: [published] + +jobs: + create-release: + permissions: + contents: write + runs-on: ubuntu-20.04 + outputs: + release_id: ${{ steps.create-release.outputs.result }} + + steps: + - uses: actions/checkout@v3 + - name: setup node + uses: actions/setup-node@v3 + with: + node-version: 16 + - name: get version + run: echo "PACKAGE_VERSION=$(node -p "require('./package.json').version")" >> $GITHUB_ENV + - name: create release + id: create-release + uses: actions/github-script@v6 + with: + script: | + const { data } = await github.rest.repos.createRelease({ + owner: context.repo.owner, + repo: context.repo.repo, + tag_name: `app-v${process.env.PACKAGE_VERSION}`, + name: `Desktop App v${process.env.PACKAGE_VERSION}`, + body: 'Take a look at the assets to download and install this app.', + draft: true, + prerelease: false + }) + return data.id + + build-tauri: + needs: create-release + permissions: + contents: write + strategy: + fail-fast: false + matrix: + platform: [macos-latest, ubuntu-20.04, windows-latest] + + runs-on: ${{ matrix.platform }} + steps: + - uses: actions/checkout@v3 + - name: setup node + uses: actions/setup-node@v3 + with: + node-version: 16 + - name: install Rust stable + uses: dtolnay/rust-toolchain@stable + - name: install dependencies (ubuntu only) + if: matrix.platform == 'ubuntu-20.04' + run: | + sudo apt-get update + sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev libappindicator3-dev librsvg2-dev patchelf + - name: install frontend dependencies + run: yarn install # change this to npm or pnpm depending on which one you use + - uses: tauri-apps/tauri-action@v0 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + releaseId: ${{ needs.create-release.outputs.release_id }} + + publish-release: + permissions: + contents: write + runs-on: ubuntu-20.04 + needs: [create-release, build-tauri] + + steps: + - name: publish release + id: publish-release + uses: actions/github-script@v6 + env: + release_id: ${{ needs.create-release.outputs.release_id }} + with: + script: | + github.rest.repos.updateRelease({ + owner: context.repo.owner, + repo: context.repo.repo, + release_id: process.env.release_id, + draft: false, + prerelease: false + }) diff --git a/.github/workflows/sync.yml b/.github/workflows/sync.yml index a4c14c843..ebf5587d0 100644 --- a/.github/workflows/sync.yml +++ b/.github/workflows/sync.yml @@ -35,6 +35,6 @@ jobs: - name: Sync check if: failure() run: | - echo "::error::由于权限不足,导致同步失败(这是预期的行为),请前往仓库首页手动执行[Sync fork]。" - echo "::error::Due to insufficient permissions, synchronization failed (as expected). Please go to the repository homepage and manually perform [Sync fork]." + echo "[Error] 由于上游仓库的 workflow 文件变更,导致 GitHub 自动暂停了本次自动更新,你需要手动 Sync Fork 一次,详细教程请查看:https://github.com/Yidadaa/ChatGPT-Next-Web/blob/main/README_CN.md#%E6%89%93%E5%BC%80%E8%87%AA%E5%8A%A8%E6%9B%B4%E6%96%B0" + echo "[Error] Due to a change in the workflow file of the upstream repository, GitHub has automatically suspended the scheduled automatic update. You need to manually sync your fork. Please refer to the detailed tutorial for instructions: https://github.com/Yidadaa/ChatGPT-Next-Web#enable-automatic-updates" exit 1 diff --git a/app/components/chat.tsx b/app/components/chat.tsx index ffd2b7d29..38daa3cde 100644 --- a/app/components/chat.tsx +++ b/app/components/chat.tsx @@ -1,5 +1,11 @@ import { useDebouncedCallback } from "use-debounce"; -import React, { useState, useRef, useEffect, useLayoutEffect } from "react"; +import React, { + useState, + useRef, + useEffect, + useLayoutEffect, + useMemo, +} from "react"; import SendWhiteIcon from "../icons/send-white.svg"; import BrainIcon from "../icons/brain.svg"; @@ -61,6 +67,7 @@ import { useMaskStore } from "../store/mask"; import { useCommand } from "../command"; import { prettyObject } from "../utils/format"; import { ExportMessageModal } from "./exporter"; +import { getClientConfig } from "../config/client"; const Markdown = dynamic(async () => (await import("./markdown")).Markdown, { loading: () => , @@ -704,9 +711,13 @@ export function Chat() { } }; + const clientConfig = useMemo(() => getClientConfig(), []); + const location = useLocation(); const isChat = location.pathname === Path.Chat; + const autoFocus = !isMobileScreen || isChat; // only focus in chat page + const showMaxIcon = !isMobileScreen && !clientConfig?.isApp; useCommand({ fill: setUserInput, @@ -755,7 +766,7 @@ export function Chat() { }} />
- {!isMobileScreen && ( + {showMaxIcon && (
: } diff --git a/app/components/settings.tsx b/app/components/settings.tsx index 4f8379f59..38e6107fb 100644 --- a/app/components/settings.tsx +++ b/app/components/settings.tsx @@ -286,6 +286,9 @@ export function Settings() { // eslint-disable-next-line react-hooks/exhaustive-deps }, []); + const clientConfig = useMemo(() => getClientConfig(), []); + const showAccessCode = enabledAccessControl && !clientConfig?.isApp; + return (
@@ -485,7 +488,7 @@ export function Settings() { - {enabledAccessControl ? ( + {showAccessCode ? ( { return { commitId: COMMIT_ID, buildMode: process.env.BUILD_MODE ?? "standalone", + isApp: !!process.env.BUILD_APP, }; }; diff --git a/app/config/server.ts b/app/config/server.ts index f5fee7190..0f6e6fb86 100644 --- a/app/config/server.ts +++ b/app/config/server.ts @@ -11,6 +11,7 @@ declare global { HIDE_USER_API_KEY?: string; // disable user's api key input DISABLE_GPT4?: string; // allow user to use gpt-4 or not BUILD_MODE?: "standalone" | "export"; + BUILD_APP?: string; // is building desktop app } } } diff --git a/app/store/access.ts b/app/store/access.ts index daefa0aad..0601903d3 100644 --- a/app/store/access.ts +++ b/app/store/access.ts @@ -60,7 +60,7 @@ export const useAccessStore = create()( ); }, fetch() { - if (fetchState > 0) return; + if (fetchState > 0 || getClientConfig()?.buildMode === "export") return; fetchState = 1; fetch("/api/config", { method: "post", diff --git a/app/store/config.ts b/app/store/config.ts index 3378b9c36..6858fc5ec 100644 --- a/app/store/config.ts +++ b/app/store/config.ts @@ -1,6 +1,7 @@ import { create } from "zustand"; import { persist } from "zustand/middleware"; import { StoreKey } from "../constant"; +import { getBuildConfig } from "../config/build"; export enum SubmitKey { Enter = "Enter", @@ -21,7 +22,7 @@ export const DEFAULT_CONFIG = { avatar: "1f603", fontSize: 14, theme: Theme.Auto as Theme, - tightBorder: false, + tightBorder: !getBuildConfig().isApp, sendPreviewBubble: true, sidebarWidth: 300, diff --git a/package.json b/package.json index b7e920e3e..35a98e085 100644 --- a/package.json +++ b/package.json @@ -7,9 +7,10 @@ "build": "next build", "start": "next start", "lint": "next lint", - "export": "BUILD_MODE=export yarn build", - "export:dev": "BUILD_MODE=export yarn dev", + "export": "cross-env BUILD_MODE=export BUILD_APP=1 yarn build", + "export:dev": "cross-env BUILD_MODE=export BUILD_APP=1 yarn dev", "app:dev": "yarn tauri dev", + "app:build": "yarn tauri build", "prompts": "node ./scripts/fetch-prompts.mjs", "prepare": "husky install", "proxy-dev": "sh ./scripts/init-proxy.sh && proxychains -f ./scripts/proxychains.conf yarn dev" diff --git a/src-tauri/icons/128x128.png b/src-tauri/icons/128x128.png index 77e7d2338e9d8ccffc731198dc584906627c903f..7fee8db6e736e814da1f6ca3dd0c18e3a3150797 100644 GIT binary patch literal 12367 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 B7exR7 literal 11059 zcmV-3E6mi1P)zzX*Ni-(9iHR{LW;cmROrp_5H>=4eMq@}e z@mMv+3xjxp2XcrYFr32-Fg^G5T~)8@?f1Q^21J?ZYla@2`q9h`Om|nm@BhBz{~eE< z^^Nm|;p>xoiNi}U41nQl7y!f9FaU|ogfeq1Wpr_ zP+1a$I=@vuwOpS)y;7e)u|z+yE?`XzYE~782T4O_HoT%mY!H6y?x?bHbC>+q+IG(? z8@tqZLUAdKlK08Bpojwe4L|@e6zs-0QjMd|5iG?76HXg2r7R5a6l1FNbT=;dX~Q0;(he(R?qWoF)^u0w&0Z+ z=ow<$1qg&A4gdsgGKeH<5{i;Mroxzd{`lDS^G3w4@cFEAE&>aLZ4)kR*8vns8qVKA z7h?xFf*ceggFVkUM0#S%?qw~$KR>hG|J%kcxk(irAb{Di3duAaQ2+qrD<>_18kQ&= zUzMDG<>bh1C)Fh`h)2c5`3*T|tnCKT#Ju?tI2!*0a7zm;F0R~X{#Fhw? z1rWMGW%|_iz}=5*2>uA1$V8E9p;@p{gB;dP({R$nA;0Us2 z^co@^5wt6QJiF`h3nuk`6C8QXqQt}d$Uq&*il zhzX&n!a!Rb7VS9{1@G=Ixm%aaQ%C9Z|FAH$`PkanIaX3KQKf=bPzv$3fjCkagpZa^ ztW(GKUj6%pZ68dnw5IgHeIuBM0g%or5|lq9VDIVG(_+{EbZ*-+pF+zl0~Qe$I1j2m z<=tc0W~CknuzW1X`xgPA5(S}G`HlMfPYbO(w?6qP1T&hmVH41w@Iew$OJO&i5dP`s zkM8_AI(ZC2x@;G3pRip!%p(Mm5hB935)+BUe-`)W3J9lTHoHQt%Oif8q6?p$N+#i934qm61(-p-d}%uQqQ+7U9?azS=f3Wu7MC4 zkOm@AY*Ca!$Re^eqS32Mq3)#I9EzzsLs6+YVydk=CA~HiZB1exqA*ERm;(&JiW|}~ zlHq+g(F@pqfYOXn@e9Cm#a8UmmII5(iKD?-*C9g%EEu5UC_` zwl9<22MHg6YYS1e`Dc&C<&KT5p5^PiwAZ)xsH^uxrR_lRwkIi&h`{b4N@R2@93m%B z3Y77P0Bx99MrTed*XKq$6c0X#~<2IbbqNv z6-Z8*1HP_9fd@bb34~%^H$C$0tB&cs)6yj>k<5gTyOaw?1xW#rR)#!JFWu!`yt>Wv zawsnMLPikZ2ao|@K_nvCmnL?d0?-=pIut;G4|E7r%qs+F<;)u6tkXxuuR6Lau}}b@ zaI*wJNYT;hnj-v*XpG$TR>fscZSg%;>ai4fFY^-(0CeooOFq9oe&Kgd?s(ERh)puE zyD8@lcDw|FF`wV*f8fcjf%_V}m2H^*^#E6|IvG5|Tv-brpXVne<%c-m^WWDYvzP=+ zj$k;t(wKh9#Q4qgMnpb`K(HX}%Y=Z!d*x;XK={p9s%E^~s;&yEY(QDVf(8IC9wu`p zmRt3|ThRIexL+zbe0I9FmhXBIm^e_#E1Cm;e{g;9)=iztP8HlNbhe0750Dc#e_)y! z@0CJ2;DqYr^lOg}-#xV^emZCyo@7c_8}Q!+8o4(q@A=Y8)swrEBm&?P2P% zVSplof&~C_=wU;$zjj>sC$mRKE~gOZBaxE!&iB~L#y0;e-+aAt?y6RGZLwy{uHXkO z8|Ro10+E6s!F!1-TeVg1guMTILZyCsv7gqY7|L`sAN(#IS!PU$>T1)fkh;dlQ_A_* z0tHC~;Q~a#e$J>hj=f}J?`=#MvHU76&zgJTAnc{vi~exqvWnB%qC!_GfB``^X*~f=PsHr*+?l2`k@Rr$QQz6bf0?Z0V`ZW%vB>&9W~`Aa9QhtQ(kv!|^%LgAXW7PMCsq^Q-0O zz1!k@Ox7&fO2f0q`T{fssz!s?9^HE@!0i@p_*sffGC&CegU3qgs#0cQSgeWU!c)w})wkTeT5lG*=SK<>a0*{P%B zSD#p`&%h#=OhU^c2>@I$zea>BCrADhMfWiw6sKcr7*r44l#jC1th;mf$=fs&OZ25v;V!iJI1qp) zkmH6R{NSzf3k*YwVu;$GV~5($Hbr}SP4e8C)%q;Z0#-h?KtWN#=%jhT&%bbdKIGopOZ9v7RNBXVQZ5cGkJne(CD0uY)u zcFDVcy{7D%TTW_!j2S$K(4Q8tfiM<7T_3&it-YSNof5<&3;>Ag7@&JbjWKgVsXiNc zbwSo_6+eC~E_JNi<6ru2o9BfM9m*Tc5oK!_OTBD-9^<-Ib!zepR`>_{Dy5*gp4sMo zeBKEEV<(M@UTQ&VyRZBKr@i6x&aO>d+)!fN+7wn=G)P|M!^9N~03gpxOj{Jr85_G+ z@KV8wDDkx|o)?!kdl#UUyq3y6f{19ik+fZ_gCi@xbP3$(b!e=`}c!4&#I1p z8a{~X{PQ6r9iDLnljoT~GI81O-dFDdCR4P8BLn~_NNn5~8MKQhm6^x?-+LuL`{#E5 z1KWC)X5{O=An*W~03xJ{EuCVGfxMpsdj(U4AoYnOfCTFxe|>96=3^z^vYd;aBSP^o3BSP;l9t8;N6}A z;0-7M(s@(nWPXsBK+PkgQ45aN> znK+@;oN`PRojJA2o<1sIjzlnq4Y3pQ30Uf#k7{1b9msoQa&LVJtshseA7{B$%zc>w z%xdn5sGC-Y_Eit%1b~9^0dPn0?M|?D<{+jFg^qvQ6xehS6Cy+L3RY1?m6(Wh3O2Q} z1wpD&q(>Ji2%_fS8p2b%(g@`37!B@XTDOuUfnP! zQ8Q^_toEq$)nxCEnkDz1%ZTW@2bl{WpA@GeyL3`)(O0JR+^2Y`ANz+O?aYfhT%GKc zogpCL5s9gxd)JnJ@r50pXNzD*=3tLGU!ef6@yCUsO$a)y8a@=~&pR0*9PEfII~Ogf zo|vQp7Lt-&fKZ4fVUYY3B~b5FGLn?3J|Q-G`l-=zGp~wOPd?WSl-F=aO7RFqZ~yfV zqLC1&Hz*O?&SEDr61QagrkT-STr{cu7Qv7N>Xc|pyg2m3gbQPoFrcQbplVise@@#! ztGp#&d*p+n`vC;#7i6OeFy|rn=n{ReLtDDA*qmSk0Hi}`0`3R`Fe|)tbe*4$Lq9;4 zSx%%^VF7@MGLXDfN<^vUFHw6Z&AY01!YMZ-OGi(~>Psb2f7z0Z z+bCl@h&CVWIsNkV$Tu&V+T;DZm z!L4RV&1iv|f@mgep2`Q4fMT#EMN#5C%}Q@*6O$CTnlAmzC7tMTHT0OPr*_}X5+b_) zX_s!{^SRnLMd_yFx*l5BuD;e9liDFl$e5f#wGNSwu(d~C3of4R);bEL<1;Eah1&i9U5vQ^7GtX*1?|U0Uvp#!2^_PxDO(0Uk25g87wS(YUCKlK}K z`+0^MfMN0ql3gw*1Ez(WHd6$zAh>>5;Axkdtq2LQa-8n(0^H521bSg`B7+Zwya zo%C6v$1T|L76@25Snvlgf)elE#j^Xrq5&k&G3ENHf?`Rj3}aRw18p)WkRqQ|Gr825 zp;J-FrfLTx47?`@MMG(fsKJ0p0LQZw>Ev9qo`VknQ0GYGiZp3=&A9m1<^?w{HMKys zoQ#<024J!`ts757+H<*$F+pQ$UbL8#sT0N&TT?J*%(6F;w*e(AsYgg_SAz#jEMGoS zg7P2>AHqA+LJWlFU-zf(`q@`W$tZqUoA3IxHy+RaB(oJ6Dj<(XDRY)ND+=KwmtVGu zvwao9y;ve7h!+U3a9Z~Szpw1a;7|Yn7rtTHvPMFu-|%9%Zt6lAY&{4b??DmT=@G#xK?*;pR*W>{jF>4eLybpl-*0yY} z_D{cI2^W4clDY65!2^g?)zSh2^90IC7KuQfa{!yYzDrwytQyH}4KRNpF;g-dyVX^y z$hT$2J2O=U9n@H*%j@)8BNU@@m@<-TRTByq02rrPhR{0qi;F?+pOLxnA?wF%APQ8; z*8GyzyZ8ON<$wHoVB6b^E!B%GU`9MVrcW`|yuMvs9tz8wL@E2q8cqhuwy>d7dv$w{ zyi?2WwTOF9q}*fG;j{a4Bpo715PFkBn`LM1bPkRQz&Ia6y{;24{a(-blRoR({IrG7 z1rI)gt$Jl|=Z^PE)-U;Suxa%ZkTeGN!~+4eOtK(>80Pdb`}gFw;5}cN(e*zT6)m^@ zDr4J?Tkz2>fjhB0nQ&G*Qw1pq*oI!E(JBDI2xoF(KSG87ZBNQA`KW{#Fb#kt4p6&h ztbW$Q_M^}LDR}#~>+q$yEi7s&URknftY+o^es$EdKRdQ)%kn39X4YFIXDNJsVeB7N zZSwe*;O{rK`d*PWif!0NCa(cP(3xvj}DxetsrbGL`C!N04HWvCcf^GaP-~8=8#|IxHzbinR$xRBhJ4ia21&=UpSs&o z{pmQV*j4Qazk2z@mlkha_Bif(@Te$;e!>7=*j5Ib0EB4Uzh4);`ybo<56q}eo_S1# zKDRbtHTY%Q7dEBno`|$*O}n;qRY-do97sE;K!%z)J2;2kCnf;^^F}2vC917hdf)v4 zT-XvsFrC`#36lt##`-)ZA z^@cD=mn%e4qS;c!5aQ46@ICeHcHdKqXm8e#J017NidWcY+|{p>F$gH?FLJei7%%3Il1n*#ZX?QpKj$TRz(Y}u30F?+{r(}kpg*dmK>fcP@;uuSCke%A zEM)})0Nlwy&kEs&*!zHUC>b#Y!al37f(~c* z!$woQLixI9ZdN;+_u7g_8EA*E5H5G}nb}Zk)m}X%{Bs-w(_gzc?tYwPx~oT9vpS@{ z?o$}aS8G^a0FbJKh>V+gmCIxHlgwt8C2L6Ut|{L1>hD1HlYt8L3h5$l9{>jP-=5L^ zCqdoZZjB@ssT9r$>HxbWLm_j=$+|tSky&l9=2TmYZJO z;d#Wb*g`%VW957-IM(sSs~YB--r`cM+ZXy0D42d5$Q^HI)7n7Onx`PqL-NA#;d_E3 z0se*~s{02v?=kFu{ei8vfS3{= z+gfyIM?x|nRL$$;(3}C_sDCEJYbT$DPJe%19In0~DPr-q6~67XaYy#rCaa#n@BQDARU4|71Ag zZ+`Dd$nj^K&p%lEz!tGZQ@7%ykDcE&?X3SyRE$3j+r|#u{k(q|Oq0K>X?f`fFa5-~ zedP-_@>AGTkVRKf`YPW!p0+b7nHNutUwZS2U5^U%fSJJkZ!TUe_u%@XZ-sRM2&nv@ zHkKOzKmddqwpmg;$_P|WBABEjeH2E4_GgMu^0sb%RqkyI*@`9!*#dwI-{Pviea_YQ zc1@c9@3^ue2wKvkA6X>yOQIFy=S1g!?fKGC%O9$IbMYcZO`Fg38~_kts0X;Er2cIHJ=qSxZ)C*|~g%q5vg3mc2N z8s=VO_{zqNSbE>-3{n^T5SKie19z&K&<(r3E@%gDKB4oWS)-yCGab9%(mPZF!#+v0 zm1sigxOYwQ^?2yyK#jM}$unlINjHmYrnvUM?_9b7Y$33`-i{q_Vs{S_vfFu_bp)!p zW7ZY-pz!5*x8V$q5c~G1(NRPbl<3i;byF9#o&4DcMJM{qX&o?(w906eY=s)5PfMCqvHRCfNBlylzG(Zo%(s@I2a6f6AixxEW{n z8@cpzQTQBqd>yu&om`uo{hI|HOK+al@%MmYRv$0{EUnr-Oc044Tm1XRvLAu!e=*mt z;{i1RTyMgodMukd=6f% zOogr~3%~DcTJu7-CIFulRBitmqZ4OdFg|v}l*;4+WNAV0IPQgHa(oO{B*`92eQQ_n z(FfKBe+YJ89OxrvbMpbfd1655fc>vwJj?-xwrFEm@ z74>KEjAOPtm($m}kSHHJN3R$=Rc+h8fhk%>4k4=i2nhN+Gkbo$U_$sy{BQ`0U0#G` z%GSZoH)PFH8{53E|LD!q%hB%VscC5-O#o^D1?Tk?x#h5=9~&%)$w(V^R0>&@GXnr1 z($LGt&ayP0<`OzNv|}&|q!fg(<7N}?lxEmz?Dq7T7SS=EZ; zzv|}KE6*@3es+;G7;_JE0YIu#8L&#Ubf2W!MmTG@IhsT;gB1-dot#6OuL(ZP1d_uG z^irjZdw5y2nPY(|s{O`x&x)H~DW4P5nSs;A2W!fCKAb=_=4pR$$=&|BT#~B!^R)md zcuQ3LEPMG2NyD51NaEdbuNVjI2LY5;tmUlTKmLV)CdyP;%OKtSS1G82}!WBVKUx|tGF?syjgGIZ5_p^=|=0C|5&wiQV3h->x) zUij7Ol11CP#l0n(CEJWxhil4tZYBWzFz}uwBi6R>WamRJ0><6I8v2SyGi(oJS@;6T z=H>#VSWgSvs-anx>%`Z2djM6Sl(*x z@cb-QM2b^A@uV=FlJMgjif_MWNp-{HjsCxQWn1*fY`{sLf!6@;%0s@rF%1s@!NRB~ zSb@2E(WXLHRXSKuqIhIaYvTtM??3w;%UhIbuOP$nGs{~nR%~2yho^bnTej+xGc6Lq zU2VWKMg*;i0nM(WmQyv1|CQ<_>P<+yA6;McgGEcK>p|uJAYza>7IZLY+~JS)Z|esH=Qs4**uX4HQsiW1{VD$4>)**z1vus8s$VQw^N%}qZ|SJ+qfWm8atvsX zOgAA!K34Dy)eezNUx`||?TtT`t$ge@Ah8I^qC$vw_1eUqR<55SsFon(`$8U&8ItjS ztM}!9?eabH#%}MEt#K)d^9WGzDa}v_g3pr^$S@HDUUcgwQIEyIk@CBo`k|&=a+8s$ zn|uy?|G9feZYAIleyBqAia*_`#k+R4AAR00Em>6v(8KT^)`3nY_s<}QWGQ|b%~18) zr+-kk`pMgEEM0Vt2haFE_)rHhK66Is7bIg!@0xb)#nmBg$*MNbOFMeyT{!m5r`Q4> z4+C4h-~_)9$a$C+jys68oco=X@v^ZqfM2)z=mchN7RJD~Z>4ANE?%dXbwP%6ptoqm zY@?=OA|!~u8>^jiq3J0qLCv%eiSY7rG7|B%ZhEd{!%KJgS~stQ`~}HY_$em>=lzc< zrW1EZ~F@Y01G^x*nE(U?!A5;zC{m@{sDAj^$bjLD|xyO1Nzcc>1g0 zYdboS6n>va4>>3x#12jdUEi*JpgKp|NN#T6V~(>S?gVs`x+fGIK^g$FYLHKljXh!E z?gck2A!$?vGg%R}NZXcC|GZ-|&IxwQ$a32m?!akWWGp%nTo|UtxM1iBCdwJa%jwf-Nyf5K-R;|k$DfoY=tQn(3t3e}T^0)pIY<$0O6DtOzsy`jcBb~}sQhe~&+ zha^fyP6&@X@pGb?05(OE@^K%0S4&{#RlkH<0e3on#h)Qnrmw@xr14MCu4I)9F1B4#4WIaj&a8hFQ^m%Qk ze(86+&i`Ix>+Gw3p@u_^N~~Ll|C0;F7syL{xKoTtgusrKkMuOmxwhZDx~m2Bk`WC6 zg722U^Vm;uCeV;*4|7i{15?8r#YML=8HZbdiZ9d4$Igt`9d%B$deV7jacu)X=)y<} zO0@H;HF&k01~Gl*{i;GXs!t9(0GKZAXc zg{I;1dT=BTf|T?q9=O&U9W&!1Y#QyC??(_&oyMygPJm}qf76;*K~2g9vrU{36?+fu zj@h5Pt82pCFX8MX-T>nqFe~nRd<3}QEP%?ddiT-m0R)?wtjU5P z-%Hd@Io}9Wj3l<11_b^bivta#->>!zg@?>>GTXabz-S8)DK{*R7D639$4Ez$i!xc=lt{q_r{ zu!Eb4nnG;!ac2vPMgq<6En~>-NRoUwd;-*FIN~0>eAY4N^LKYnJ^Q<;-Q3o<{yqCr$+BY7&P>OW4VMlZ!j=vdzvx9ljhOBiqH`&3m%2@T}S(2GF)9Ac$L7=l(-L%ta zX>GlK_lBn+Qh@ZYrVN@%Ab4Uauvr+(dxIK~H;?x;oN^7{`RNJYnSACAN);Pk{7KQq zSN;Z>OPLgCbTc4_M{}16*2)*!@=|=vu~$NJrc%W7ef!VX~@5ayy%!@+U00DvUGED_{y==zq{;;Dm!lO8CqW{Krla;#s^3z*imz+e znwr-iyuwC*Fi!)Wh717s1q%iqGWGWCegjOwbqI<5hq3ny0ui+a_Sx6`12UH~>J>9aOghyH~Z1mhhMvp91x6r(FevXAB`PVB2D>_NY0r zaWfVXRilv6`#_2JB>6Nyq}(Co;?5#T=j?=(*Up75Vv!;cRt%yL+YXeMc1=6`rnWg( z{Vh^+)TyG8V0@f-KOM&(w);3$(nspveB^Rp)0*YB=2!AL;ChGwfVW=p@-6S)jjNdE z_s8m{o+6nEGwn`XC%i%d0b%4Vii|ww?C7|eU!=uVweWB4a-z2tk}Wo;WmD-tCp44X zFimoPcKHt6pwwg_bX&3v$Vz&IWX*&VyN)^U*7li~{~>z*`}9&Q@#A58>#HYi4#L&=HVa!K-f3S2Q#62=6~g} z$k-W|9B^b@hO8f+A;c*+38D>RJN5i{z_bO<+Fp3Nlg~Bh{yzGJMHy-{f-jiGSGbARS4h{hJfxxn{ zP^)e3qCa-kLui!@Td8AYvvV_;&B-UH_(H;21q|i5FIqcbR1}(X*p$fG^K|it`1rvda0^Mw#7yseIe4m&apD-5iN(3%YHBa5D&MAG?)A5B#-J-B->2ZEq~~e zlJ{TyBh`Eoai_@-CE*_q0PK?$q)}zho{eiEPyU!*HU1R6sJagF0mvcILKy4%al0O) z3d<9e{Ow!c8Ub;>w|U*$j<-KF9KHeqfRi`^uUwJCZK2|AZ~YdmgA88zJX=!vF|&fx zd3N}Lz$siX_^MBaM3r6n{Ayj768t!!m+Wyl-V{5>{_$TA8LGp z2FoYtr6U^fyaCK4IC)6eRi zF!$eM)f3OQ6tBojuCUh5IaY=+$LY&fJ1}0{=?W4lWo$KLvLaxGkALsRe-t;qcAt0m zhF6hT0zkMu1xJS93ljhb0s%=sGl6`MpjV8U5F2~KmC+GLU!)h;9*cE&C^r-g_WGsb z`VUzb*VAy%T6P4!Px6AuOS&j4|KC!m=A@-e&*Fj!GfeWhclCs+lHTrmUQ-xMU+-OcvC)y>>29AT>dP?tO;?$V`v`L~KD+JcAAnH5aK1XaCN>)5e% z-;Pi5J!nNz&VfV!3hrPjM;oBP;Q?AjV($3yeeGqRplfIV;1FQoRXn(B1&tguqX`p6 zEM@o^hHVG@KS|k$R2$hRN#a8u00+Ur;okdhK_N%}QG{7v1xL9KU&8uXd<_F& t_!_yHaYoC0qai002ovPDHLkV1lY`4Y=e96y;oVbBwJROw!HuR=6i3w7S=Xt<=xerWRbku^2#^!&HQHOHx6nh(KL;0 zcDvoatckFIU{e%jB5sa>fA%`fABlKQZk)gy&lTvKey#aN4%XZu_XRP z=SKlQ&e=3NU0qvu{DnXL;gH?#*uG-vlAWuTFDtICt?_@o!|rhCUXRD4>w2>sVAK_h zPge7KJ$61JQF^=0Ml)y6P8~9G^q3(d$Ih5Ib=t&~)YPGQskT=90(*HKU$y2rcS|g3 zR^dI6GM%jDM4sX*?}eJ0>TPRQe71V~ruEBrY~HwG>EgxJ9&=V>}(3$QPqa1 z835kwH9m4XTQgDo+`KmQwTB*_^1wq6-=5n(Z*FUix|Z|vwI042{BYH|NVD0z{61U( zo8R$SyT2vzEV}W4U~{+WUau|5nZ!E69xy*L`48uHI$ly(yy&@So_^znXP;hCQdDH> z5!(w^5q1iqad1tpTyXVay}VwpDE_3W(=)&G$WQMaH*wHn$MSG zpCp^j=71O7)S*F>DI65v;c(bpE|&-Yp2&*-y+r8np?cA+#D^#7&x?ar??F#7B5-;)bD@s{Ly(k|WOuvWO@oKG>Dj+8c;NP1=lz&1LD!2_Vh`L13HYZymhXTimc)pN%g+kq$V#(AX^y|~ z=E7e*c+VZr)l^sG?~D~XysUGLwgQbd01j9rW7q$|Pk%oA>kobVPaWFjj4QA95?mHm zd~3J2#FEGan1L4|b!MuK3eJ|Ud*SInKK$z^AK!vM`s-e#67h~KES8Z;YBgTR*se z-{+@}AJ+|#&>Qg=MDiv+CSs5eU+kWB!`v=!eDMAP4p}CYl-F{M;zW#Zx%!q^(!|0Z zwa4YEv*%_eQ!UY&FVDI0jwK&1I>CS9l%dV-^@eW;!ZrX5;%V%c;C-S_Xj^Ol>I5%y)f9YsW8;R0dB=KjjR z;QfyuzJLCWOUo!wtQmK?7h`8O@$Ex63<= z-roSkk-U(Wny$R55r(17Otl>!U_bpvCJ~uda2` z1l_B6DCgBw04b8r|ZA=3$8rkextF69{=y(JkHVn1h>m= zDZeF_#EC#xS%=-pMB^X-uire5=b+P?_Qn1F3+_DH4H@1T6#=)wSB_zTKx)dF}77S+Tsp(Cy2-fXkHHK>Z0Vz1xo!tj%eaGtT4Dt=fJ| zEQv!w?||K**-J}G*A4C7aXeayO&vGovJk*@^U=@Wp>57M#tqz-@>^m_dBVK^gd7JT9u?XLPMuVNWuCfr(+EN)2jHh#FE4k&gPNb<#KNr z-o4}4;-Vtov@TI}4DD#0;TQwzZnBi$5=#DLUlx!vxeZVn9?AVle}WdSU)B(Vh(1-#ICopoP3R#y8| zO0x4|U6=A-EB|kaC5bO?-s&Cf3OsE~O?GxQ_yMf=-x5n&hS&%??{s!^cy-FRu19=} zZvI#I|Mw;F#dQY8W5s!vhiH8*NG*uDWcfyu6Ye*x1pIs9_n`?Zq&YbBX#vQ z`3Xii_0XjW3=JXbJ=X1SL1NzQw%VB*-2(q&SXfO(S#gUTtm#P{s5$Kt=Zom*g%UbjSx)CF%Bj*-t9E#=;UV~m zjc+k(yznzSC6(G|WKw=+4)tuEN4;9Np+327DK|BhvQlkqJcx}58wB1L;1yWLAfZKr z2cVNBF(JC)-aBkIR(kbZL3uT8D?CLTPoJR8XHL?ovI|t@s-tSRiyWGr?EG51-d|C# z6auK9x)=x#E4NFHdZ%<}GG!(wQ@_0SG_pfy8k^sh2DE9<&uQWrR2#D-EJKi(Vi|xK z5L5A!?KXDN)lR>$;5aQgyr0&dJW7QXWmM~Ni~H`dDWw;ML>y0-uz}F-xQP{L@Xj=E)bWM-GY#4G0P2-g=^;)~tESgYa8Gx%O%4PRbvP13oC(Eko z!-Ko&oqap#@cCj<`c#hFlQ@Ql!b@0SD1DPI0wMzp)Wiq~j^OoBPI4+u?9!d)_a8Ph7kppj|R6K4Nx3>#2Ef zk;*7&i~}&Z=yFMjF`|7Z`pVETbWP9R1Qv-3Mh|g(nq>&$S}X(5%%U4Rc!pEs-PB9} z+_RNl+O~m>z)^f>)~-E!J_wm{Nz$sFICx%pTW)8((ItCck3?E{C?L!&2iMj=_k z0;`rFKE*Ns%_IV_Ic;>I#zjwWTuJ}fu}PFY&FPG3#jh{e?Y#^JUaYO5-nnh)`{QTQ zb-jDChk$d`Eo>mp#4-R;7FC6(Q#Pm7HWr+vpDbHMdx{Dr9}iWDmaDJ%eSb6rnTTq} z2Ve~D8#a#qecUv1*io2dg#_^=mH~*On5DKr&tKoYlYX`GQ;DUq>%${x^v&~6>5~@a# zQMUWLH7n@Pn^#Lp4~TlCyMFz2or_a-DClvagqQ!8nv|pzo&SZ@A-<*#o!>f1N)aW( zP)w)IE`P_dXhwRmF(C*(2O&Y%>{j&K*|*Th4(+JSG6HcSmH~)@c#RYvl=8>RKA^Yu zY!jE?3pbd^nJuNg`B~YLMSya*PE8l%aK5HezVlpV zg**z%FG?Bl@zV36v~@| zYh0|47noj&JnProWWkHk6UzWJu|WAzzhBF-@DG-}OG^&#79>-@lVqojAffca_v6pzPSAhj;Awd>AVfGX3GY+ZY?@ESZlIHaKU>%c!WTg3ec0 z3Kmkz*nt_o;DKue@1<2rn*822J%c)BopRXi4_Eo&GS~2qkNAF6$1e0QoNu4iy)Wga*^R;*1@<*|Cp7yH zG^5QJwF%g951%ikS9flba^&*bTFOXH4m(=`BLGhzJ2_Pvi%{frp}I;ih&ls{F#8Jp zkKg0#fMkqo$CC9b#y!UBEf4&c#T@G5}2^P>?K6 z_5E_y=k%wIt2hP^Z|65_{mVHn@4<`xo1-SvoIV5CB`2!jMeb(pv}w^Pz15B57a-B0 z-1Xf>CG^79b?g=Fk~loo;S9?g@b4>du)6_eH!~5Y;cAGv$P7R56W)!RKc~*PrqEq5oO8oc0%=rA)>$!T~YOtc5=a z81@1sGbB=1z-(o%VK5Y)LYM5;G__kVx~4}z8riXgwEAH;rbx{P1du`G9`8atXb6 zV5hj{SAEg?Y8rG2HDElE6@fQ!>wsZ`l^~?4usRomUrWmXL@v6xn*hDMbnn7fXlG#o zyQs+_yUJLYaQSC+??aDIyPkKmbSkTfo~s{;AZAZXa!@WS)Z?pG(sP^F@V}E{rdi1} z2EauCn&RK1I&`M54jW6edh`;Upwi{_rBW@acl|5_5V=6nvy*M~t5qxLnN6!g2K`L8 zwv3hkHr}zGoPGmgv#)W*PVtP134j^sA{(W*_HL&I3=W2Ks(HWxDK4FeX=9`Av4B6ixvo zbC|!m;2e83E9tXi2eC{9*z{8TbS;|K8sw%h1V|tLc=EM0zEcM_zL)n&v}CaiKm=mC z{tI^PqDL9^&vK@O6!#0@$I5?mzajMB*UXh-9JTTiDr&WGaT zn8U3E{K5hwWAKQ9+Ix(~BYdv;{kU{y&A;6MKVNgY)_I5LJ}KHR0*P}2V%F`$<42W zyMA6O232aW+FdK30XAe*2BI`MQo1w=voIHdzxVasTj|J!68imh^QmJ-n(!O8R9wI^ z0O2SOsn*x?)gEz?opyUjgq=`xbn-nq>00WWmrbSBS7*Wb$N6Ye-dIpb&vN!+#qmS3 zQ$slr=SRv_V0trVZXTXdyNoRApVywxyDfFk$)(QOIn*H|TS|P*o!9gZ@PMI!5rAiP zx~x=;?2fai=_LOS-T}PFd~dj&i?~;?k%d2`0y!w?(fz1v^lq17a!t22;aEc88x)zrn z-OmQ0K!80M0;kOp5jY7$j$Q|}P(L&GOVlr~b&JdpSOy>r!48sS)94%Tzd@@`92Uh1 zq%_#su=8gnr_evqUfHoxcmXmb&euZ9UR+5` z#YbF?vfR-fyV9-whl=vIO;_%H4f+^#<#~{H2@?o7k#kVK0bqRJr~mm^vZ2R&)s+jwdZi4x$n=_7Rvwx5pyA8aiz20ytk;BzVgn? zqBOyliMjj#V8TrL_SmuP+A6fYS&rLKqI4t9|LEX;dTz@a+I8+s#0ukEGzRMs<`F_! zCU)sbUl}r*CUov9N{ZB`YS+CqwYahOK&B!~yS1901P|fpg$nUvFjD~qN-(tHb}rh* z2-MJ^wjJrYo9%P|6$0cc>snJ%SC>xCUCmDj|Rt5?w<*MCkqLAw2*BmltL zq-D^8+wP^@v{VMVqM!2f#ra7p&R=(`Kni(Q8gYJFBl7uXN)3%T=y@2~u`@k1Y7$N9 z+FcZ~(xpJsX!q!w4NEC@n}imJ&X-Fi=6m~g%K0NS2*S$vd^)v^ zskxQ`xWdB1f=Dyq(Tf}x9xORWJI)o*zM`|V>f{jvj0#*1YwrGF%l+=S2~=7e{dAKr z&UY%MK;8a(`*(`MHa57i;e6|cq~lt1VB)N0C8zw z$%r&SC*@K*gDSs9s!I?`_Zsj1`B|A%=Z@a)uZoE{pYPPDq}nZn9*FY`E6R<0e&gf( z3U-sT7(M^ez!CJ-VPmLMW~ypej)AsY({N`oKzp{LmVU8fF)cc{i!%6Lk&$5t^;}Uf zg!JINzI}Y0hKVdK+5nh}k2o1xySM1P4Ch>a?4S(i#Lk&w4Cizhi#(LnlezoPGm!tv zDD5V`<9BMpo%g|keeCY9=JP0&_E=2tX^J=>zt8T`j~--qe{j28#Z2UGUY>$b#A6Iv zMdaM#qs4KVMZT ze0C-smDjIwEo8++wt$Vsbv^q_JE|YoZPOe-sW?BCk002?>XWBM@mHTX!b+(LKH>F7 zme0R(oIjbSb?c^P0Mx3Xps~0!;+O#7q0IN;F=Hu@@s}q)|40~xLZM^F-%-1OaqPcc zvy}dL!!0p)j!i8s&H$LZL<+n6Xn6VCwso}Z=mE)x!@U>fF_qpM2~eiMKNPz_dB9m` zYeE;lGG zmMjd}2;kZwo3QxsKE_Y>a$2*$d{&~C3%3{pV5Y@D-BnOtBZE5L-m{GtcC9FmRKc-w zHFjbTc6{ud1KPCX?@}qHrXZp)n}$$`1csi!Y~ILm{wDstLgIXnuU4LKkS)bwZ2rYO7-b%eV|AyWJFN^a5f*~A;*WFK$ecruq9ng={d{qJt zraPS!>{6-BLJ}Qe90-8w4<=5cQZ@kg1WXJjyaB+Dp2@rBxyoAl@7145t{5z}Do$=n z#W%i>KMy4D9{7RO}$+>+7QIA$Re614C3rJW4U@A}!yZq};71CqN7s;*( zgjW>R>uvJyG}C{I%RWbt`AC+FSpu8GhHGzesVM#j2X;#wn`y=Q5#1MHF+ZF*OKJqR z6`oQBQ2|^5`~^TR#;L&zcyjtIs&*%y7m$!?KyinSyf_+n{&U4AGF}VrpF0YQ@4J|2 z`{f(#}@TEb`lg~G+ zD$RRhqpL%Biu22G+Gy8Vvy|Iw-~j>dCta%NKw7X{PIkh10SO0fn!6{8dj5CaT4C&g z(xVUE-N-iAU?K~KzoT77Chs1KQ!gy#r%NHjW6M6IUvnx721N}PjjRve?9E4(1D}OB zAB*|X$x|seHC5t#MRL-#OF<{osHi%H9L`z*z)W^%z6!qP6r3Nr{f4#AqpuDfBTYcI zAR&(F1t2ZBaNiD@IpB?XM#S(Wp+W#t`7t~1mn%OLq(9qq`6F0x(sRx?920rb`yUFL zuj&huiPt&RMX>urS^m0Z6MHUOs7+eB9Cu^$`6zA~-LZ=Rd{er1je49f6k~ktfW4Gd zxoQ3B0xBrGD8O3(ymr(lx0Sq3=(?NHBS4J=`W5aSK8`-+)bC*q2ToXr5Yf zWIugv_;?QQ9ASHPu`CH=0OS_R&aadoNIBwtU5{+aEfz7V`JniiZ-;W=8s0$zc>|ik zPmk|Sl0lZCyNil!MC0%DNOzkVqv{bFE;G*W*(#6j=LLULzaeVOSQO)Y-!Kt&wK2}@ zrS044@7p&>FF$G{pny29$z6KV*GG)!-MCG&Ru!rm4KL;KBDr_ySo)7o-;>V5fcM2H z4#G%vw1Cg+*EgZ+0usjnNUWyOZ&t6Mzp(OW8)K}(Q6DvJhD7nPP=Ws5(toHJfLmUB zPH+S*P#=J@LJ=Rolih~h=ZeJTgzFiuo9v&@N0#H8!^TRRF2;2DjdQ2FFF?!r7RN@XXq!1V;^zx(X5;GC7t9H&#W%rzf5-i$^1w(^tac!^u^pBkz zX>ZY4U&Uub0>gp7!wa~fPhU!;dBh1}06boW_P@A&8$G*eb=b;py31g+!7c^G|H{zO zG_pensVgt!730;T@Am=w17&!)fSfsO6LCJ?hu!{x5ff-o+twVukPv>_C7<84Ct#K& zo0XM2&z8`$n^#E{9j-rW6in>G)Gw2I49foembLO)7y%dqUu(f#Q0TPMCV3@VK?k+% zK;Iibou+d>8~`3-)Ec*qe7fJXCH+@Eo-n>3V4SZvPn@5{*Zx#_4ZXZ=J-x=b1;UOD zgP5bCT)RTxNxYQes!IC#=O0Pi@;63KxO|*fl<)zRW`nc@BiWwK%3-ChklKodwhRf+ z*n`3Az$JK7-#!Tw2E?@i5P*i=&co-+=!wrh^z9tpFa~o%d7vN|A%#gjty1j1d^i>g z_~~NN)L->DKiMY3H(%VoLw54x7tc%kZI)S?802##OTfk(p$Fcp30qc>?PG$n%cFO;1tP1@Y3*6+YDxB7=Rnu03-?w7`Fz%RCc&x zKV{`F;J6u09HAoSQ2Gjk6!P(@*UMDi%6fJ0v6%2Nm)+Hh^U*;G`Q*?MVHDn8cuMHS zBBc_SrYpe@lH}h@8J!3D=luS|q)4f2cDewH?kLRl!~Mlr@i+Hu3%YIu3}i#Kr>IcY zi6chmBZez+YXH0kL+{fY)-yVLMACgBD?cXm)YLEvoln1=eGBz$ohek^i2q~RtyA%< zF6Vx=;{0ue#jN-%=~D*8a70;+q!Pb$Kg|q+nzHob_VxT7`((;5NJtRoH6=cP&;l6< zgnb<|vxHL+fMr8j7d#JdX8iewkYr#?Fty zoKw5?q~BdTpBJ3Nr#!JNW>s2Nax(pV+8mnIvj^dnnnqJttR(4Ai(PSnk z`(6|1nDq$06YqmZQBqwc6kqRi*5Df>CerL)y``|I%BA}zEH~nQ_^YML%^O4WrUU*uK3=7hMcsX6TP43Nw>Pn#}b7=O6 z@qttWAHepMj7fu5~0rLxZzAwHm(n@J`XrG+xxSyT7nWZ4C&2BZY&35Y8L zAhp@NTZ8!Wd3Hxb-MP(L_cpu)%q^6RPyldGH|7$QaOx5nibUWFj4K0xMT&Uz)tx&eZIlxN z@CSvFW+1lkPtKS_d1+3LVO#Dn$ogWA21h=>q0!)hc5ah#7*y#UGPCL1tdw`KQs!_v zl@luT#PnI5Hy(soFvLP6kZ z4Q=0+o|$tiEk1lmDh16c#0X=&5ybH@`Y6oF<~0C7?t6>hVWZW99vnT1#^rYu!&Bo5 zUO!-BNy+?Kow9QT2u!AikpPu}Q0ZfAD#=o=9p6A;+!z3JEcZY6?3Koh>=4FsOS+Ha z{+T`cu&X$f7kYdEe$f;a=PN37*v}6ST&|SC^7&?*kB|!C0Sb3eeK@*fd!a0=Pa|fR z*D7OkL!VwWsY?$D36N1Z$zWPWacy#D8{%2w#sJ_Zg17>G*@4P7FWpcQ)Vy_C8hvm43|Z{WP{|v! za@lBbzUx~!&i8lAgT?t~*)cc;5Gx~fh8_R<-hCxChXN!u+4qaeW_k;l@{4fe{t?4z zcF%skv?7eOnO2MxA20{CE@1D_#0TzVuOv6sA?v0gd;rfo_yq8NJ?OkgHGl=mFY7Oo zJf~#G#>O!62L?@2(?-@3hzC3V*e4dO2(?bKq6u$yV7?zioN{>&S;ll@(8ihsa5#j^p zdVmK5gYw(eOX-6Hd!)bMhTi=+eAHw>i>wX5V^zR1NduW&1N<$}ck2lO{`(}ZK){a= z?V%cvTU=ES1s=<15N@2$N7!Cg7w#!F@XCI zbkN6dmgklk4Kd+dTGLB#G5Q9+gh6fd=;<47p-+z-k<7z3BjwmAe1KDqNLe1aP(+qg6{r& zmr$^ATmNCyB`Zb7a<`=2-)x0WGe(2Ix9{@N;Mrl+?L#SMNSr@eK-AhMq6>$SHt_+- zwY_?8^9xspVbW13?k?( zU+MLykBefX-#?J)MMF5(BpQh$0vP*J5Mv0T@7BkN;V_ zoX=~IoYTC11NieaY48cA)TR*vZURH7$9W1664M4i8ZcO)u{(gvJtYM9Uk%N4(ltH$ z8adj;-u=zd;3$tqh2#rcHw%ybX(OL+R?kH$;6Vgg2l((%b$7R4>#PpQ7bGUc4j1qS8NB?xTIWd_YITB?Yc_CcLcJJd2+!TO{=u{xsuNQK0bh;R6Oq%e_N~(Jc1tUfRa^fY6WC zNO%*;z?Ay+1EIX%On0`=$V`M10FgMr0EpeS5{dsawZIc_g<02b=U6r0ue~!d41nf$ zHaRH{-UTaUWEk9YD03*I!G%VQmAS0CNcSz~0k|@quWJ z8v6o1ke5rpn>|-T5deiK1BUUB6dwrX`*H2DzPjbKR;<7Yu)Jc{0GQNI)qJH9|2u-A z&fo`Rm$prMri|wDcqySuwoLB^#_<2veI`3`ju2UT8&v*F{rPorMQ8WwCj~JWk0s;3 ztChC^daM7OF`E(bA(y2M(;N*~<@r;1;ksiA)5nMQigB6Wf2j0rls5xDFs)lx8qFc! zdmNHHzjYlQzEB)7J`n7CU2YF`%g&WL3PlTUc>qxrs61SMq-c;M)`NNg9wB!~aoDBe zD^c-($!imZT(=MILlpAN>d`~~UY|y+PIgtI5gppoGjnfaw|YOj*Q#(RSXG`-d>i<{ z*~&8d>GBWQE7)<_xbbM>111UTT|jb1w`eJcIg!>6T=AM}nozF~>yXc( z66QBpwBXSdq_=FUq7SZpu*IWkDn$c;2IHP;6A%D2#T&3+-Hh|A*~QQC4c*90)`V2k zd`J^)@lFbF;L!Ru1c^WexyG`L+f@d5Q| z;B~~njvq~&Omlh5=1gXy%CUmQ(-##W;W5Wn;I>LfEnVtMcGQeRK2}Q6`k;z8wOq&n1d)1;~APV7Fu^ z&^Yv!p<}3XR;ttwL}LUPycsupG8g&LH?Ote12;21fYc~T$ORuriVPo6yT4l~j~PXsTL$|avtYsk=$x2svk<6A8y^g+UeD<+CC#aY*wF3!$VR9 z9{_Xn2M2fiypb$p1Q;Zm_`p=g2gY_{d|>}BdX5djA>ac>rX#GdKv(3es3JU5UPc2r z<55wU7$HEy)yT$sWmd@NNhT`pkzuBT+P0^sZn#}K>(F6`I3I|)Jwlh;{Cwa8_$-sv z=l`y|jS={E@}2nZK%eiA511pszVgn?LNuy3AS*xCE*M}B6Mg4lS_T|)s&Z(E|ZO3zU3b2 zs6!mDD%6^WE?jn1+5L1WeFdw}EA#K6M<>T>frw1bC_8F=X{AzERZmtqoU->$z^GE$ameVQtz)QE>O(WWO5|B`^j}Whs;-pBXoeYdV#z3c;rHc3E zmQV&jG3IIsPyK^f9E%%q{%g10Ck#9IH)3~l_iOTnVknDr?eXsS;HXjbI=*}OIQ89p zOo2r30V&u?lJMb^L;L6+_6C0b`7+*FG3LxBi?JzFccutF;MK(t3~kqz{&w@-QpH#! z0JA6L>!qepr_#p^Eo^NtTj9dyni&JVN;H>ong`_M0S?co@3EUNh`G_1yJ3>Q&DN7focN4Cn?GvEVy zh^4tdb$q;ZS z?|%CwAt}WS!f4?G0s!*Dg3-LSe_wib?w6=-dWHaep%{TnLutMAUn@SL^VKeL+H7$< zB`Bs1fC;{YvYX@jV^NmYR0%t6VuFDxwnssV5S`d;SM@w41Hs3DW5F>g1=7Pfn=g(4 z`?rtZq=!Cui?$b@6MVoK1$;m=ilD$0HLg!wKC6tS*fTb7Ex?X$F^Ouv^;DIT`pss(}w+ zMEJe${+)ihd?}r+tmL@cCg0K2uC~mIWDjOgn_T+S+}o*LdZw@-g|c?MM&HRBySLKT zGv}l`Gaj=7v5f&>XoJH+`B^!t8ZeMz=p=OE$4k%4O|)wX2?H3{AQp{V@XB~_^albd zefWSgMeZF&gx~Szi}dHso5=0)Mg<>$5kQ&~Y)6X^MN z!6c?b0NiMl^`g928GyhZfC>Ss>Bxm*b}JKOdTSzx88^2vVr>E4g47Sx9}#{xXAJ!D z0j!Oty1!~_w3jAz$)`s-y@?j-P?TA<2Pf0AV+Uy2(W8{^)Z)$yh;0l&c27m<7@0;7!2Lx(C zZU%VXFz4=EMU~7G(3@g^(2biK%m^6Dk6jDNi+IitH~r02*YF}M7$)(8)#sI4?h)#C z^n0i@T*H-l{`dd{Bf{@~`(=81;|6}e$A=Fz#_N-&A8`J$7Jq-jOjYR@!pC7?C~&8@ z_H2v0+Y;LbK#F^K!K9^8A2tGYL2}G$h=`q$<8oSc@(86m8gGqNdQqc{q-0|;1o(bk zWg;+n2TVpe$@Y->=30WN`T;eN1HhZf`uohBFVWC;`Qmn?>n<2R0P!CYj*3DIKLLLv zMua!!daHr5I!*7^m2T=YSO$g!3k6UO2oLr1{h&W%~H9!W(eQTJB4vN!{|gt+PHoVG*@?A>qwozq#z1h7htQc+91irHUK zZS*b7?9q*0y!mc=a>iWB&&&ym56HSOM}#vzfDz%}{p4->-Y4%-1*7u71{&oFkQx^T ziZd_(W5{g43=}_bEG1QywEWmX0j}faUdOxv5HEnkfJt3?DvtXgIDlEC0S@`Cg=ZS= z1;D!FhF;UNpL{p;KX5uyg#bG^3;`*|zkR%r0j!d!Hoe5Fm?=T@7r-doJ!FV98hvy0 zWO8yS7cxHJNaD4TLhtU|K|ffsP%0D~)2M^@g2iZXyVi7L-@%;fs}*dCg4}nsqr>=v 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 literal 23137 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 KMNUMnLSTX-bvrBo literal 9202 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 literal 12530 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 IM6N<$g7Cm5Jpcdz diff --git a/src-tauri/icons/Square150x150Logo.png b/src-tauri/icons/Square150x150Logo.png index dc2b22cea563cca761896877ed8d72502c8fa241..d9d58df2d3ac4a8811e5dca507c4c24d90ef3ac3 100644 GIT binary patch literal 14828 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

HKsC>(;(imP>XcdJ>!q32im@AeIJ06KtyE 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%0DC}W9Vpeu((J{vrGq9 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 delta 2065 zcmV+s2=4dA4xSK@B!A^eL_t(|oUK=Ra8=bAKil2jlDwCfrI5scPz)v#!BU|*V(g%_ z1Eu&!?WRJft%K9CbkrHFEp{7dJC>={8AketgKY=Vsi;-@2T;qDLIDY+0a*%!?AuG; zlK0+S-aY5^J1+|cNaA+iyEFIRbLV{L`~803?|c{Ew_zpvIDZF*KgNjQ!X-iy{!$_# z3zyR$?4t%GBf*F#knj1J3yDXcOQcgc31SdgzzW2t7MNnhaz6I+0*i_OFRCf>>Pk#L z19Fsu4()DBYp45dn$d|w7L$xiD(prrVk27&L?thUHZvQO9tP#G3GXyng}8) zue<@*@GLYZ<}Lcltn3dwPKKKL%_ERKxnAIDGgbo1Vy)E-7T!me5-c z_n2>XWVCY_Nqj@tpTBgb^VRBzH(zOB{oNQLZ^rVtlEhI^K`k%BeiAT63gJ>{w!-d(Qh`X#i>%8GO&b{ zHHt`Q+-=_59of?wX_(9N`IN^s zurn)X<uG%S&AvO=y_AboRU;?YPn=9YCWJXYMz@u__o<++O>=IJ=0X9#-T0VZ@HW1?ZQB~?f9P&3`tC+2By)L zW~bl=8JY-;8A$suJEO)xWL#OO#Y9*QL4O(^Wb5G%YG@*_gc2`@1{bdWb*5?o1a%P0 z4z*SP{WtZc$6kF}v8R-40c1=N8TUQTR=cG4?Z3>MYtxM zuTzW;*t8?#5tovJ&t1haKumnscVjhklC^g~K|BX`f^4F4-yiPKlRaJB3~N}SA%8%? zz?H!W`^(wTb9-6?+tp-H?@oY8tYA)fl&`!o^FVQsm#e9p--;Mm_#VkSQW!8jFhbp|AJR=``?$b`5)Z&jfme4< z#Gm<{y3}u#R|!El)bS4BSw$4rKz|L{aKQ{@SA4cnDL~7_dqZtauW&sGW5OrCCsQ{q zTidp3)1~%Rn=U8k-}8Nx_k2Py1&71R5)%&fZZ7d^e|OiwL2$7s(jpPv6pSzkg^9b-ZWw zUu+T@XciX!*uvzmVCQ;D`8(1CI@Mzx*xpjKQCaELUQNd07Al)CT@q>(2J&uN!Htxn zcpiC?8MjEv5OK3P;^uM)Q+QU{02DwPVCsPWikjT_uqL1t5a_**z@CikiACLfH3)Q-TMVb|(AzfUq9ae;Wu zg5E%v(Rjw_-FYUs3HECtZZEiz%Gq9I=B<9Hs=5_R|fL{&ia^xn;Ss<%VIj3KaE;O2vY<;Q#2fk6~T(0>FFmCs}?(70Et z8m7J@fa7Skvi?gTGy}@Z4Yi;62XL>!!lX7l&|TDebXU0b=qs?GE~yzrRfEP|k;Y+h z8qXG~h7~`xEF-E9Ts{S8(2)&uiq>aD)h2>TcR*Ip_-42yQMdeQtN+5gq07hibE}xZ z0*nbZCwZRPNk21d@qZWl?s)h$5h#jE-$y08_f<%$sdOf7_$KU5AS}l0v`x4-Fg$zl zYTz4XY8HKy`fjHgzkGsvIoKYcseu!oae!Q=Y8%(}ec|C~BB;^ zSix{6>uj#+KrjZ|wE4j8-`G01;LAUvP8La~Av50E6zu%(ZhtM^e^$Mg50}?ws}`(r z%4RQuz7wo0h+-{!ww4{)`MA(6Fd)gNY^ko(`V_nz_?1HqE1w!{ShZOcU>j*mz=}o- zk&M#^2%uQ=+dnR8etQdO1CI-Ks#f{>jR0Us83}Z@{43b~{_7y3h|q(TK!v4tuEHBo z+nSvo3U!=(qkrPipS~5oc=)fN0dnQTVwxs$s%8(A&cL;N5E1f2r7<@$qn=xl%EF56 zWS5cbImI&ZLD(9Q&`hSR^}~J~OxfP5iAGBXQ#(Bv%nThE7b;|~oD7gCl*~s7`r*DL v3d)qqP62+k&5vM-3lCLiAo$1m==(p6$OE<+3IX^4015yANkvXXu0mjfn2rt1 diff --git a/src-tauri/icons/Square310x310Logo.png b/src-tauri/icons/Square310x310Logo.png index c8ca0ad132e0184b64cd2e4a38cfceab3c4b3a46..70b0b5ddb824e504e184119cd071029f855e5eb2 100644 GIT binary patch literal 33057 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 z⁣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 G^8G*Qa$+a| literal 25943 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 diff --git a/src-tauri/icons/Square30x30Logo.png b/src-tauri/icons/Square30x30Logo.png index 60bf0eadf75c86e5d25cc1da13fe5ecc2c39c559..c585069dbc082bb9aa37e04c4b9bdc2c61fb3805 100644 GIT binary patch delta 1846 zcmV-62g&%J5XBCVB!3J^L_t(|+O1a!P?TjDe*S+i7MA-~IxG+YD@=&I3R6ePvcoLY zDeSN`GtGv~bh=DaM`u(tCoM_h18E?O2MUIO$9FHOkVcQSS|xn1U{mVNY7EinBFP22|+Vppl@bQw)B~$yY4|h$y!hQozw0zIMs$tAXFd8Nz$k;cWF~6J5C=t0mZX+q zu9aAIErB`}MLb?@l3}@ zkPsFLcY{m@sN!66t3_{}ssf`pSlA!hXZMEk3%p~%a>}%y`x1}gjWSO&Ctj) z#}M1{&SL(t{aBdr24Xt|Qy7{D*S18jCs};{MkQus{e!)ia8=K)nM{yMHH=)3#8|49G1nB^FAsb;L*L+c6L~ z>_Bq*KBQhaN1j^nQg{?5#`Q%vKM#zJ?Tu;swxg)p3SXlOsa_R%e|t5lQW{DFD_J|| z@E#0}h{mLt7$Gn&8C)tjXJa}%EI?CEo<#3o7r;Wo+c|P977reV%0^aM4_jgbizmel4C1 z>WGpW3-T(;kQg3@L7`z-eEbMfjvWA-8)R~apQ{OW1-MsVO{nJhSZr3Zkko8+6?w_$ zS+QCwYHUE2wO$BnXheiCY(sW7#_iaEr+>%@j``GQdmyoEcR}<1%Xugz!vfuy>Zag# zsFs9xfWND|NdAJGmBK0(MLE%BCh-_aWKjV@7!esk1}I{`-8Bl)!6D+@r>UDT_26G5 zPCb4Z@;V~?f-r;B&w%$Plzdk;p7TC#>Yq(Ttp?i|3_sxn+JV+nY`V1rm zm*Io0n{m@-!}q=WAcgXn*XfcXtjfxUmy0a+nseuoT~{Qd;^Q=3dLDn&-oRgCHucPHOD3+5d^fz9VnVeQZ) zN6!B)OCDViIZqgqcaILxusUtrW7n!Ofh1W%zb@%r|uEmNuhjvpsokaYjVOT^3 zguB