llonebot-dist 6.6.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- dist/default_config.json +68 -0
- dist/llonebot.js +48348 -0
- dist/llonebot.js.map +1 -0
- dist/node_modules/@borewit/text-codec/LICENSE.txt +9 -0
- dist/node_modules/@borewit/text-codec/README.md +76 -0
- dist/node_modules/@borewit/text-codec/lib/index.d.ts +8 -0
- dist/node_modules/@borewit/text-codec/lib/index.js +161 -0
- dist/node_modules/@borewit/text-codec/package.json +68 -0
- dist/node_modules/@minatojs/sql.js/LICENSE +44 -0
- dist/node_modules/@minatojs/sql.js/README.md +357 -0
- dist/node_modules/@minatojs/sql.js/dist/sql-wasm.d.ts +316 -0
- dist/node_modules/@minatojs/sql.js/dist/sql-wasm.js +225 -0
- dist/node_modules/@minatojs/sql.js/dist/sql-wasm.wasm +0 -0
- dist/node_modules/@minatojs/sql.js/package.json +58 -0
- dist/node_modules/@tokenizer/inflate/LICENSE +15 -0
- dist/node_modules/@tokenizer/inflate/README.md +114 -0
- dist/node_modules/@tokenizer/inflate/lib/GzipHandler.d.ts +6 -0
- dist/node_modules/@tokenizer/inflate/lib/GzipHandler.js +19 -0
- dist/node_modules/@tokenizer/inflate/lib/ZipHandler.d.ts +26 -0
- dist/node_modules/@tokenizer/inflate/lib/ZipHandler.js +233 -0
- dist/node_modules/@tokenizer/inflate/lib/ZipToken.d.ts +94 -0
- dist/node_modules/@tokenizer/inflate/lib/ZipToken.js +117 -0
- dist/node_modules/@tokenizer/inflate/lib/index.d.ts +3 -0
- dist/node_modules/@tokenizer/inflate/lib/index.js +2 -0
- dist/node_modules/@tokenizer/inflate/package.json +76 -0
- dist/node_modules/@tokenizer/token/README.md +19 -0
- dist/node_modules/@tokenizer/token/index.d.ts +30 -0
- dist/node_modules/@tokenizer/token/package.json +33 -0
- dist/node_modules/debug/LICENSE +20 -0
- dist/node_modules/debug/README.md +481 -0
- dist/node_modules/debug/package.json +64 -0
- dist/node_modules/debug/src/browser.js +272 -0
- dist/node_modules/debug/src/common.js +292 -0
- dist/node_modules/debug/src/index.js +10 -0
- dist/node_modules/debug/src/node.js +263 -0
- dist/node_modules/file-type/core.d.ts +253 -0
- dist/node_modules/file-type/core.js +1899 -0
- dist/node_modules/file-type/index.d.ts +98 -0
- dist/node_modules/file-type/index.js +86 -0
- dist/node_modules/file-type/license +9 -0
- dist/node_modules/file-type/package.json +288 -0
- dist/node_modules/file-type/readme.md +674 -0
- dist/node_modules/file-type/supported.js +356 -0
- dist/node_modules/file-type/util.js +60 -0
- dist/node_modules/ieee754/LICENSE +11 -0
- dist/node_modules/ieee754/README.md +51 -0
- dist/node_modules/ieee754/index.d.ts +10 -0
- dist/node_modules/ieee754/index.js +85 -0
- dist/node_modules/ieee754/package.json +52 -0
- dist/node_modules/ms/index.js +162 -0
- dist/node_modules/ms/license.md +21 -0
- dist/node_modules/ms/package.json +38 -0
- dist/node_modules/ms/readme.md +59 -0
- dist/node_modules/silk-wasm/LICENSE +21 -0
- dist/node_modules/silk-wasm/README.md +85 -0
- dist/node_modules/silk-wasm/lib/index.cjs +16 -0
- dist/node_modules/silk-wasm/lib/index.d.ts +70 -0
- dist/node_modules/silk-wasm/lib/index.mjs +16 -0
- dist/node_modules/silk-wasm/lib/silk.wasm +0 -0
- dist/node_modules/silk-wasm/lib/utils.d.ts +4 -0
- dist/node_modules/silk-wasm/package.json +39 -0
- dist/node_modules/strtok3/LICENSE.txt +21 -0
- dist/node_modules/strtok3/README.md +399 -0
- dist/node_modules/strtok3/lib/AbstractTokenizer.d.ts +76 -0
- dist/node_modules/strtok3/lib/AbstractTokenizer.js +108 -0
- dist/node_modules/strtok3/lib/BlobTokenizer.d.ts +29 -0
- dist/node_modules/strtok3/lib/BlobTokenizer.js +53 -0
- dist/node_modules/strtok3/lib/BufferTokenizer.d.ts +29 -0
- dist/node_modules/strtok3/lib/BufferTokenizer.js +52 -0
- dist/node_modules/strtok3/lib/FileTokenizer.d.ts +37 -0
- dist/node_modules/strtok3/lib/FileTokenizer.js +61 -0
- dist/node_modules/strtok3/lib/ReadStreamTokenizer.d.ts +31 -0
- dist/node_modules/strtok3/lib/ReadStreamTokenizer.js +102 -0
- dist/node_modules/strtok3/lib/core.d.ts +40 -0
- dist/node_modules/strtok3/lib/core.js +62 -0
- dist/node_modules/strtok3/lib/index.d.ts +16 -0
- dist/node_modules/strtok3/lib/index.js +22 -0
- dist/node_modules/strtok3/lib/stream/AbstractStreamReader.d.ts +54 -0
- dist/node_modules/strtok3/lib/stream/AbstractStreamReader.js +71 -0
- dist/node_modules/strtok3/lib/stream/Deferred.d.ts +6 -0
- dist/node_modules/strtok3/lib/stream/Deferred.js +10 -0
- dist/node_modules/strtok3/lib/stream/Errors.d.ts +10 -0
- dist/node_modules/strtok3/lib/stream/Errors.js +16 -0
- dist/node_modules/strtok3/lib/stream/StreamReader.d.ts +29 -0
- dist/node_modules/strtok3/lib/stream/StreamReader.js +83 -0
- dist/node_modules/strtok3/lib/stream/WebStreamByobReader.d.ts +14 -0
- dist/node_modules/strtok3/lib/stream/WebStreamByobReader.js +27 -0
- dist/node_modules/strtok3/lib/stream/WebStreamDefaultReader.d.ts +19 -0
- dist/node_modules/strtok3/lib/stream/WebStreamDefaultReader.js +62 -0
- dist/node_modules/strtok3/lib/stream/WebStreamReader.d.ts +14 -0
- dist/node_modules/strtok3/lib/stream/WebStreamReader.js +13 -0
- dist/node_modules/strtok3/lib/stream/WebStreamReaderFactory.d.ts +5 -0
- dist/node_modules/strtok3/lib/stream/WebStreamReaderFactory.js +19 -0
- dist/node_modules/strtok3/lib/stream/index.d.ts +6 -0
- dist/node_modules/strtok3/lib/stream/index.js +5 -0
- dist/node_modules/strtok3/lib/types.d.ts +139 -0
- dist/node_modules/strtok3/lib/types.js +1 -0
- dist/node_modules/strtok3/package.json +94 -0
- dist/node_modules/token-types/LICENSE.txt +9 -0
- dist/node_modules/token-types/README.md +120 -0
- dist/node_modules/token-types/lib/index.d.ts +135 -0
- dist/node_modules/token-types/lib/index.js +401 -0
- dist/node_modules/token-types/package.json +81 -0
- dist/node_modules/uint8array-extras/index.d.ts +312 -0
- dist/node_modules/uint8array-extras/index.js +321 -0
- dist/node_modules/uint8array-extras/license +9 -0
- dist/node_modules/uint8array-extras/package.json +54 -0
- dist/node_modules/uint8array-extras/readme.md +301 -0
- dist/node_modules/ws/LICENSE +20 -0
- dist/node_modules/ws/README.md +548 -0
- dist/node_modules/ws/browser.js +8 -0
- dist/node_modules/ws/index.js +13 -0
- dist/node_modules/ws/lib/buffer-util.js +131 -0
- dist/node_modules/ws/lib/constants.js +18 -0
- dist/node_modules/ws/lib/event-target.js +292 -0
- dist/node_modules/ws/lib/extension.js +203 -0
- dist/node_modules/ws/lib/limiter.js +55 -0
- dist/node_modules/ws/lib/permessage-deflate.js +528 -0
- dist/node_modules/ws/lib/receiver.js +706 -0
- dist/node_modules/ws/lib/sender.js +602 -0
- dist/node_modules/ws/lib/stream.js +161 -0
- dist/node_modules/ws/lib/subprotocol.js +62 -0
- dist/node_modules/ws/lib/validation.js +152 -0
- dist/node_modules/ws/lib/websocket-server.js +550 -0
- dist/node_modules/ws/lib/websocket.js +1388 -0
- dist/node_modules/ws/package.json +69 -0
- dist/node_modules/ws/wrapper.mjs +8 -0
- dist/package.json +1 -0
- dist/webui/assets/index-B9vGhdCO.js +256 -0
- dist/webui/assets/index-DaqFU7JR.css +1 -0
- dist/webui/index.html +13 -0
- dist/webui/logo.jpg +0 -0
- dist//344/275/277/347/224/250/350/257/264/346/230/216.txt +11 -0
- dist//346/233/264/346/226/260/346/227/245/345/277/227.txt +399 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}*{box-sizing:border-box}body{margin:0;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:linear-gradient(135deg,#e0e7ff,#e9d5ff,#fce7f3,#fef0dc,#f0fdfa);min-height:100vh;position:relative}body:after{content:"";position:fixed;top:0;left:0;right:0;bottom:0;background-image:radial-gradient(circle at 20% 30%,rgba(167,139,250,.08) 0,transparent 50%),radial-gradient(circle at 80% 70%,rgba(96,165,250,.08) 0,transparent 50%),radial-gradient(circle at 50% 50%,rgba(244,114,182,.05) 0,transparent 50%);pointer-events:none;z-index:0}#root{min-height:100vh;position:relative;z-index:1}.card{border-radius:1.5rem;border-width:1px;border-color:#ffffff80;background-color:#fff9;--tw-shadow: 0 2px 8px rgba(0, 0, 0, .1);--tw-shadow-colored: 0 2px 8px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow);--tw-backdrop-blur: blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.3s}.card:hover{--tw-shadow: 0 4px 16px rgba(0, 0, 0, .15);--tw-shadow-colored: 0 4px 16px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.btn-primary{border-radius:.75rem;background-image:linear-gradient(to right,var(--tw-gradient-stops));--tw-gradient-from: #3b82f6 var(--tw-gradient-from-position);--tw-gradient-to: rgb(59 130 246 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to: #9333ea var(--tw-gradient-to-position);padding:.625rem 1.5rem;font-weight:500;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1));transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.btn-primary:hover{--tw-scale-x: 1.05;--tw-scale-y: 1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.input-field{width:100%;border-radius:.75rem;border-width:1px;border-color:#ffffff4d;background-color:#fff6;padding:.625rem 1rem;--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.input-field:focus{border-color:transparent;outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-opacity: 1;--tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1))}.switch{position:relative;display:inline-flex;cursor:pointer;align-items:center}.pointer-events-none{pointer-events:none}.\!visible{visibility:visible!important}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.bottom-8{bottom:2rem}.right-3{right:.75rem}.right-4{right:1rem}.right-8{right:2rem}.top-0{top:0}.top-1\/2{top:50%}.top-4{top:1rem}.z-10{z-index:10}.z-40{z-index:40}.z-50{z-index:50}.mx-auto{margin-left:auto;margin-right:auto}.my-5{margin-top:1.25rem;margin-bottom:1.25rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.mr-2{margin-right:.5rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.block{display:block}.inline-block{display:inline-block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-20{height:5rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-\[60px\]{height:60px}.h-full{height:100%}.h-screen{height:100vh}.max-h-96{max-height:24rem}.max-h-\[80vh\]{max-height:80vh}.min-h-screen{min-height:100vh}.w-10{width:2.5rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-20{width:5rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-\[280px\]{width:280px}.w-\[60px\]{width:60px}.w-full{width:100%}.min-w-0{min-width:0px}.min-w-\[320px\]{min-width:320px}.max-w-2xl{max-width:42rem}.max-w-6xl{max-width:72rem}.max-w-\[180px\]{max-width:180px}.max-w-md{max-width:28rem}.flex-1{flex:1 1 0%}.flex-shrink-0{flex-shrink:0}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-full{--tw-translate-x: 100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-105{--tw-scale-x: 1.05;--tw-scale-y: 1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-pointer{cursor:pointer}.resize{resize:both}.appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.75rem * var(--tw-space-x-reverse));margin-left:calc(.75rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.break-all{word-break:break-all}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-r{border-right-width:1px}.border-t{border-top-width:1px}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.border-gray-300{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1))}.border-green-200\/50{border-color:#bbf7d080}.border-red-200{--tw-border-opacity: 1;border-color:rgb(254 202 202 / var(--tw-border-opacity, 1))}.border-red-200\/50{border-color:#fecaca80}.border-red-300{--tw-border-opacity: 1;border-color:rgb(252 165 165 / var(--tw-border-opacity, 1))}.border-transparent{border-color:transparent}.border-white\/20{border-color:#fff3}.border-white\/30{border-color:#ffffff4d}.border-white\/50{border-color:#ffffff80}.border-yellow-200\/50{border-color:#fef08a80}.bg-black\/20{background-color:#0003}.bg-black\/30{background-color:#0000004d}.bg-black\/70{background-color:#000000b3}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.bg-gray-200{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.bg-gray-300{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity, 1))}.bg-gray-50\/50{background-color:#f9fafb80}.bg-gray-800{--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.bg-green-100{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity, 1))}.bg-green-50\/90{background-color:#f0fdf4e6}.bg-red-100{--tw-bg-opacity: 1;background-color:rgb(254 226 226 / var(--tw-bg-opacity, 1))}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-red-50\/90{background-color:#fef2f2e6}.bg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity, 1))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\/50{background-color:#ffffff80}.bg-white\/60{background-color:#fff9}.bg-white\/90{background-color:#ffffffe6}.bg-yellow-50\/90{background-color:#fefce8e6}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.from-blue-50{--tw-gradient-from: #eff6ff var(--tw-gradient-from-position);--tw-gradient-to: rgb(239 246 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-blue-500{--tw-gradient-from: #3b82f6 var(--tw-gradient-from-position);--tw-gradient-to: rgb(59 130 246 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-green-400{--tw-gradient-from: #4ade80 var(--tw-gradient-from-position);--tw-gradient-to: rgb(74 222 128 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-green-50{--tw-gradient-from: #f0fdf4 var(--tw-gradient-from-position);--tw-gradient-to: rgb(240 253 244 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-green-500{--tw-gradient-from: #22c55e var(--tw-gradient-from-position);--tw-gradient-to: rgb(34 197 94 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-indigo-500{--tw-gradient-from: #6366f1 var(--tw-gradient-from-position);--tw-gradient-to: rgb(99 102 241 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-orange-50{--tw-gradient-from: #fff7ed var(--tw-gradient-from-position);--tw-gradient-to: rgb(255 247 237 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-orange-500{--tw-gradient-from: #f97316 var(--tw-gradient-from-position);--tw-gradient-to: rgb(249 115 22 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-pink-50{--tw-gradient-from: #fdf2f8 var(--tw-gradient-from-position);--tw-gradient-to: rgb(253 242 248 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-pink-500{--tw-gradient-from: #ec4899 var(--tw-gradient-from-position);--tw-gradient-to: rgb(236 72 153 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-purple-500{--tw-gradient-from: #a855f7 var(--tw-gradient-from-position);--tw-gradient-to: rgb(168 85 247 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-red-500{--tw-gradient-from: #ef4444 var(--tw-gradient-from-position);--tw-gradient-to: rgb(239 68 68 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.to-blue-500{--tw-gradient-to: #3b82f6 var(--tw-gradient-to-position)}.to-cyan-600{--tw-gradient-to: #0891b2 var(--tw-gradient-to-position)}.to-emerald-600{--tw-gradient-to: #059669 var(--tw-gradient-to-position)}.to-pink-600{--tw-gradient-to: #db2777 var(--tw-gradient-to-position)}.to-purple-50{--tw-gradient-to: #faf5ff var(--tw-gradient-to-position)}.to-purple-600{--tw-gradient-to: #9333ea var(--tw-gradient-to-position)}.to-red-50{--tw-gradient-to: #fef2f2 var(--tw-gradient-to-position)}.to-red-600{--tw-gradient-to: #dc2626 var(--tw-gradient-to-position)}.to-rose-50{--tw-gradient-to: #fff1f2 var(--tw-gradient-to-position)}.to-rose-600{--tw-gradient-to: #e11d48 var(--tw-gradient-to-position)}.to-teal-50{--tw-gradient-to: #f0fdfa var(--tw-gradient-to-position)}.to-teal-600{--tw-gradient-to: #0d9488 var(--tw-gradient-to-position)}.object-cover{-o-object-fit:cover;object-fit:cover}.p-1{padding:.25rem}.p-10{padding:2.5rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.pb-24{padding-bottom:6rem}.pl-4{padding-left:1rem}.pr-12{padding-right:3rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.text-left{text-align:left}.text-center{text-align:center}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-semibold{font-weight:600}.text-blue-500{--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity, 1))}.text-blue-600{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.text-blue-800{--tw-text-opacity: 1;color:rgb(30 64 175 / var(--tw-text-opacity, 1))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.text-gray-800{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.text-green-600{--tw-text-opacity: 1;color:rgb(22 163 74 / var(--tw-text-opacity, 1))}.text-green-800{--tw-text-opacity: 1;color:rgb(22 101 52 / var(--tw-text-opacity, 1))}.text-purple-600{--tw-text-opacity: 1;color:rgb(147 51 234 / var(--tw-text-opacity, 1))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-red-800{--tw-text-opacity: 1;color:rgb(153 27 27 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-white\/80{color:#fffc}.text-yellow-800{--tw-text-opacity: 1;color:rgb(133 77 14 / var(--tw-text-opacity, 1))}.opacity-0{opacity:0}.opacity-100{opacity:1}.shadow-2xl{--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / .25);--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.ring-2{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-blue-500{--tw-ring-opacity: 1;--tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1))}.ring-white\/50{--tw-ring-color: rgb(255 255 255 / .5)}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-2xl{--tw-backdrop-blur: blur(40px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-md{--tw-backdrop-blur: blur(12px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-xl{--tw-backdrop-blur: blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.before\:absolute:before{content:var(--tw-content);position:absolute}.before\:left-0\.5:before{content:var(--tw-content);left:.125rem}.before\:top-0\.5:before{content:var(--tw-content);top:.125rem}.before\:h-5:before{content:var(--tw-content);height:1.25rem}.before\:h-6:before{content:var(--tw-content);height:1.5rem}.before\:w-5:before{content:var(--tw-content);width:1.25rem}.before\:w-6:before{content:var(--tw-content);width:1.5rem}.before\:rounded-full:before{content:var(--tw-content);border-radius:9999px}.before\:bg-white:before{content:var(--tw-content);--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.before\:transition-transform:before{content:var(--tw-content);transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.before\:duration-200:before{content:var(--tw-content);transition-duration:.2s}.before\:content-\[\'\'\]:before{--tw-content: "";content:var(--tw-content)}.checked\:bg-gradient-to-r:checked{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.checked\:from-blue-500:checked{--tw-gradient-from: #3b82f6 var(--tw-gradient-from-position);--tw-gradient-to: rgb(59 130 246 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.checked\:to-purple-600:checked{--tw-gradient-to: #9333ea var(--tw-gradient-to-position)}.checked\:before\:translate-x-6:checked:before{content:var(--tw-content);--tw-translate-x: 1.5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.checked\:before\:translate-x-7:checked:before{content:var(--tw-content);--tw-translate-x: 1.75rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-105:hover{--tw-scale-x: 1.05;--tw-scale-y: 1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-blue-500:hover{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.hover\:bg-blue-50:hover{--tw-bg-opacity: 1;background-color:rgb(239 246 255 / var(--tw-bg-opacity, 1))}.hover\:bg-blue-600:hover{--tw-bg-opacity: 1;background-color:rgb(37 99 235 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-100:hover{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-100\/50:hover{background-color:#f3f4f680}.hover\:bg-gray-300:hover{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-900:hover{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1))}.hover\:bg-red-600:hover{--tw-bg-opacity: 1;background-color:rgb(220 38 38 / var(--tw-bg-opacity, 1))}.hover\:bg-white\/50:hover{background-color:#ffffff80}.hover\:from-blue-100:hover{--tw-gradient-from: #dbeafe var(--tw-gradient-from-position);--tw-gradient-to: rgb(219 234 254 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.hover\:from-green-100:hover{--tw-gradient-from: #dcfce7 var(--tw-gradient-from-position);--tw-gradient-to: rgb(220 252 231 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.hover\:from-orange-100:hover{--tw-gradient-from: #ffedd5 var(--tw-gradient-from-position);--tw-gradient-to: rgb(255 237 213 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.hover\:from-pink-100:hover{--tw-gradient-from: #fce7f3 var(--tw-gradient-from-position);--tw-gradient-to: rgb(252 231 243 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.hover\:to-purple-100:hover{--tw-gradient-to: #f3e8ff var(--tw-gradient-to-position)}.hover\:to-red-100:hover{--tw-gradient-to: #fee2e2 var(--tw-gradient-to-position)}.hover\:to-rose-100:hover{--tw-gradient-to: #ffe4e6 var(--tw-gradient-to-position)}.hover\:to-teal-100:hover{--tw-gradient-to: #ccfbf1 var(--tw-gradient-to-position)}.hover\:text-blue-600:hover{--tw-text-opacity: 1;color:rgb(37 99 235 / var(--tw-text-opacity, 1))}.hover\:text-blue-700:hover{--tw-text-opacity: 1;color:rgb(29 78 216 / var(--tw-text-opacity, 1))}.hover\:text-gray-600:hover{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-70:hover{opacity:.7}.hover\:opacity-90:hover{opacity:.9}.hover\:shadow-lg:hover{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:backdrop-blur-sm:hover{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.focus\:border-red-500:focus{--tw-border-opacity: 1;border-color:rgb(239 68 68 / var(--tw-border-opacity, 1))}.focus\:border-transparent:focus{border-color:transparent}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-blue-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1))}.focus\:ring-red-500:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(239 68 68 / var(--tw-ring-opacity, 1))}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.disabled\:hover\:shadow-none:hover:disabled{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.group:hover .group-hover\:scale-110{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@media (min-width: 768px){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width: 1024px){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}
|
dist/webui/index.html
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="zh-CN">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8" />
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
|
+
<title>WebUI</title>
|
|
7
|
+
<script type="module" crossorigin src="/assets/index-B9vGhdCO.js"></script>
|
|
8
|
+
<link rel="stylesheet" crossorigin href="/assets/index-DaqFU7JR.css">
|
|
9
|
+
</head>
|
|
10
|
+
<body>
|
|
11
|
+
<div id="root"></div>
|
|
12
|
+
</body>
|
|
13
|
+
</html>
|
dist/webui/logo.jpg
ADDED
|
Binary file
|
|
@@ -0,0 +1,399 @@
|
|
|
1
|
+
V6.6.6
|
|
2
|
+
更新时间 2025-11-25
|
|
3
|
+
|
|
4
|
+
* 修复登录成功后没有加载配置文件
|
|
5
|
+
|
|
6
|
+
=================
|
|
7
|
+
V6.6.5
|
|
8
|
+
更新时间 2025-11-18
|
|
9
|
+
|
|
10
|
+
* 修复一些 bug
|
|
11
|
+
|
|
12
|
+
=================
|
|
13
|
+
V6.6.4
|
|
14
|
+
更新时间 2025-11-17
|
|
15
|
+
|
|
16
|
+
* 修复有概率登录成功后 webui 依然显示需要登录,或不显示登录二维码
|
|
17
|
+
* 修复 UNIQUE constraint failed: message.shortId
|
|
18
|
+
* 修复内存泄露
|
|
19
|
+
* 修复合并转发使用 message_id 先发给了自己
|
|
20
|
+
* `get_group_info` 返回新增 `avatar_url` 字段
|
|
21
|
+
|
|
22
|
+
=================
|
|
23
|
+
V6.6.3
|
|
24
|
+
更新时间 2025-11-17
|
|
25
|
+
|
|
26
|
+
* 修复 邀请进群 invitor_id 为 0
|
|
27
|
+
* 修复 UNIQUE constraint failed: message.shortId
|
|
28
|
+
* 修复概率启动卡死
|
|
29
|
+
|
|
30
|
+
=================
|
|
31
|
+
V6.6.2
|
|
32
|
+
更新时间 2025-11-17
|
|
33
|
+
|
|
34
|
+
* 修复表情回应 出现 Cannot read properties of null (reading 'msgContent') 导致程序崩溃
|
|
35
|
+
* 修复 UNIQUE constraint failed: message.shortId
|
|
36
|
+
|
|
37
|
+
=================
|
|
38
|
+
V6.6.1
|
|
39
|
+
更新时间 2025-11-16
|
|
40
|
+
|
|
41
|
+
* 修复撤回消息接口失效
|
|
42
|
+
* 修复 UNIQUE constraint failed: message.shortId
|
|
43
|
+
|
|
44
|
+
=================
|
|
45
|
+
V6.6.0
|
|
46
|
+
更新时间 2025-11-15
|
|
47
|
+
|
|
48
|
+
* 支持 42086
|
|
49
|
+
* 新增上传群相册 API `upload_group_album`
|
|
50
|
+
* 新增获取群相册列表 API `get_group_album_list`
|
|
51
|
+
* 新增创建群相册列表 API `create_group_album`
|
|
52
|
+
* 新增删除群公告 API `_delete_group_notice`
|
|
53
|
+
* 合并转发中节点使用消息 id 可直接发出,不再需要发送给自己
|
|
54
|
+
* 支持他人的表情回应事件
|
|
55
|
+
* 支持取消表情回应事件, `group_msg_emoji_like` 中 `is_add` 为 `false` 表示取消
|
|
56
|
+
* 修复 > 40990 版本的 QQ 无法发送语音消息
|
|
57
|
+
* 修复离线消息重复推送
|
|
58
|
+
* 提升稳定性
|
|
59
|
+
=================
|
|
60
|
+
V6.5.7
|
|
61
|
+
更新时间 2025-11-04
|
|
62
|
+
|
|
63
|
+
* 支持 41875
|
|
64
|
+
* 修复无头模式扫码无法登录
|
|
65
|
+
* 修复已经登录的账号依然在 webui 登录列表
|
|
66
|
+
=================
|
|
67
|
+
|
|
68
|
+
V6.5.6
|
|
69
|
+
更新时间 2025-11-04
|
|
70
|
+
|
|
71
|
+
* 支持 41679,41785
|
|
72
|
+
=================
|
|
73
|
+
|
|
74
|
+
V6.5.5
|
|
75
|
+
更新时间 2025-10-31
|
|
76
|
+
|
|
77
|
+
* 修复 `get_group_member_list` API 获取群成员列表可能不完整
|
|
78
|
+
* 修复 `get_group_member_info` API 获取群成员 QQ 等级可能为 0
|
|
79
|
+
* 修复 `move_group_file` API 移动群文件时报错
|
|
80
|
+
* `upload_private_file` API 上传私聊文件返回 `file_id`
|
|
81
|
+
=================
|
|
82
|
+
V6.5.4
|
|
83
|
+
更新时间 2025-10-25
|
|
84
|
+
|
|
85
|
+
* 修复 `get_forward_msg` API 可能报错
|
|
86
|
+
* 修复无法获取用户在私聊中嵌套2层后发到群里的聊天记录 #639
|
|
87
|
+
* `get_friend_list` API 删除如下字段:
|
|
88
|
+
`longNick`, `level`, `eMail`, `uid`, `categoryId`, `richTime`
|
|
89
|
+
=================
|
|
90
|
+
V6.5.3
|
|
91
|
+
更新时间 2025-10-24
|
|
92
|
+
|
|
93
|
+
* 修复 `set_group_kick` 等群成员相关接口可能报错「无法获取用户信息」
|
|
94
|
+
=================
|
|
95
|
+
V6.5.2
|
|
96
|
+
更新时间 2025-10-24
|
|
97
|
+
|
|
98
|
+
* 修复群成员被踢触发程序崩溃
|
|
99
|
+
=================
|
|
100
|
+
|
|
101
|
+
V6.5.1
|
|
102
|
+
更新时间 2025-10-22
|
|
103
|
+
|
|
104
|
+
* 修复上报后程序崩溃
|
|
105
|
+
|
|
106
|
+
=================
|
|
107
|
+
V6.5.0
|
|
108
|
+
更新时间 2025-10-21
|
|
109
|
+
|
|
110
|
+
* 新增群文件转永久 API `set_group_file_forever`
|
|
111
|
+
* 修复 API `get_stranger_info` 获取不到登录天数时报错
|
|
112
|
+
* 修复 OneBot11 多个上报时,上报格式 string 和 array 没有正确应用
|
|
113
|
+
* 支持 40990
|
|
114
|
+
|
|
115
|
+
=================
|
|
116
|
+
V6.4.0
|
|
117
|
+
更新时间 2025-10-18
|
|
118
|
+
|
|
119
|
+
* 修复手机登录 bot 发送消息会被上报两次
|
|
120
|
+
* 修复退群导致误上报解散群事件
|
|
121
|
+
* 修复调用数据量较大的 API 失败
|
|
122
|
+
* 修复获取群文件根目录失败 #632
|
|
123
|
+
* 修复 `get_forward_msg` 报错 #633
|
|
124
|
+
* 修复首次启用 Satori 时,事件不会上报
|
|
125
|
+
* 修复系统代理会导致 API 无法调用
|
|
126
|
+
* 修复非群管理员无法获取群成员被踢事件
|
|
127
|
+
* 支持 `get_stranger_info` 获取 `login_days`
|
|
128
|
+
* 支持 40768
|
|
129
|
+
|
|
130
|
+
=================
|
|
131
|
+
V6.3.4
|
|
132
|
+
更新时间 2025-10-11
|
|
133
|
+
|
|
134
|
+
* 修复发送语音找不到 ffmpeg 导致发送失败
|
|
135
|
+
* 修复附带消息记录邀请入群没有上报 #629
|
|
136
|
+
|
|
137
|
+
=================
|
|
138
|
+
V6.3.3
|
|
139
|
+
更新时间 2025-10-11
|
|
140
|
+
|
|
141
|
+
* 修复非本地访问 WebUI 失败的问题
|
|
142
|
+
* 修复获取群成员列表 `get_group_member_list` 报错 Data Not Existed
|
|
143
|
+
|
|
144
|
+
=================
|
|
145
|
+
V6.3.2
|
|
146
|
+
更新时间 2025-10-10
|
|
147
|
+
|
|
148
|
+
* 优化 WebUI 密码输入
|
|
149
|
+
|
|
150
|
+
=================
|
|
151
|
+
V6.3.1
|
|
152
|
+
更新时间 2025-10-10
|
|
153
|
+
|
|
154
|
+
* 修复打印 WebUI 端口不正确
|
|
155
|
+
* WebUI 添加只监听本地地址开关
|
|
156
|
+
|
|
157
|
+
=================
|
|
158
|
+
V6.3.0
|
|
159
|
+
更新时间 2025-10-08
|
|
160
|
+
|
|
161
|
+
* 修复上传群文件失败
|
|
162
|
+
* 重构 WebUI
|
|
163
|
+
* 支持每个连接单独设置 token 等配置项
|
|
164
|
+
|
|
165
|
+
=================
|
|
166
|
+
V6.2.3
|
|
167
|
+
更新时间 2025-10-02
|
|
168
|
+
|
|
169
|
+
* 修复怀旧版 PCQQ 无法查看 LLTwoBot 发送的合并转发内图片
|
|
170
|
+
|
|
171
|
+
=================
|
|
172
|
+
V6.2.2
|
|
173
|
+
更新时间 2025-10-01
|
|
174
|
+
|
|
175
|
+
* 修复首次打开可能读取不到配置文件
|
|
176
|
+
|
|
177
|
+
=================
|
|
178
|
+
V6.2.1
|
|
179
|
+
更新时间 2025-9-28
|
|
180
|
+
|
|
181
|
+
* 支持 QQ 40326
|
|
182
|
+
|
|
183
|
+
=================
|
|
184
|
+
V6.2.0
|
|
185
|
+
更新时间 2025-9-27
|
|
186
|
+
|
|
187
|
+
* 修复触发 friend.add 事件后向该好友发送消息有概率无法发送
|
|
188
|
+
* 新增获取被过滤好友请求 API `get_doubt_friends_add_request`
|
|
189
|
+
* 新增处理被过滤好友请求 API `set_doubt_friends_add_request`
|
|
190
|
+
|
|
191
|
+
=================
|
|
192
|
+
V6.1.1
|
|
193
|
+
更新时间 2025-9-23
|
|
194
|
+
|
|
195
|
+
* 修复无法获取登录二维码
|
|
196
|
+
|
|
197
|
+
=================
|
|
198
|
+
V6.1.0
|
|
199
|
+
更新时间 2025-9-23
|
|
200
|
+
|
|
201
|
+
* `pmhq_config.json` 新增 `quick_login_qq`, 如果已经登录过该账号,下次启动会自动快速登录
|
|
202
|
+
* 修复发送合并转发中有图片会发送失败 #623
|
|
203
|
+
* `get_friend_list` API 新增个性签名字段 `long_nick`, 一些非 OneBot11 标准字段暂时恢复,一月后将删除如下字段:
|
|
204
|
+
`longNick`, `level`, `eMail`, `uid`, `categoryId`, `richTime`
|
|
205
|
+
|
|
206
|
+
=================
|
|
207
|
+
V6.0.2
|
|
208
|
+
更新时间 2025-9-21
|
|
209
|
+
|
|
210
|
+
* 修复 Windows 上没有正确识别文档目录和下载目录
|
|
211
|
+
* 修复 getUserSimpleInfo timeout
|
|
212
|
+
* 修复没有启用 Satori 协议时并没有完全禁用 Satori
|
|
213
|
+
|
|
214
|
+
=================
|
|
215
|
+
|
|
216
|
+
V6.0.1
|
|
217
|
+
更新时间 2025-9-20
|
|
218
|
+
|
|
219
|
+
* 修复没有自动创建 data 文件夹导致启动失败
|
|
220
|
+
|
|
221
|
+
=================
|
|
222
|
+
|
|
223
|
+
V6.0.0
|
|
224
|
+
更新时间 2025-9-20
|
|
225
|
+
|
|
226
|
+
* 支持 QQ 无头模式,pmhq_config.json 配置项 `headless`,设置为 true 后启用
|
|
227
|
+
* WebUI 新增快速登录和扫码登录
|
|
228
|
+
* Docker 不再使用 VNC
|
|
229
|
+
* 修复没有捕获异常导致程序崩溃
|
|
230
|
+
* 修复 API `get_group_msg_history` `get_friend_msg_history` 返回内容不正确
|
|
231
|
+
* 修复 API get_group_shut_list 在没有群成员被禁言时报错超时的问题
|
|
232
|
+
|
|
233
|
+
=================
|
|
234
|
+
V5.10.0
|
|
235
|
+
更新时间 2025-9-14
|
|
236
|
+
|
|
237
|
+
* 修复 256 级以上 QQ 等级计算不正确的问题
|
|
238
|
+
* 支持群打卡 API `send_group_sign`
|
|
239
|
+
* 修复好友请求重复上报的问题
|
|
240
|
+
* 修复好友列表获取不全的问题
|
|
241
|
+
* 好友列表 API 返回数据规范化
|
|
242
|
+
|
|
243
|
+
=================
|
|
244
|
+
V5.9.0
|
|
245
|
+
更新时间 2025-8-30
|
|
246
|
+
|
|
247
|
+
* 现在群成员信息的 `card` 字段在未设置群名片时为空字符串
|
|
248
|
+
* 群成员信息增加字段 `card_or_nickname`
|
|
249
|
+
* 新增群解散事件,`notice_type: group_dismiss`
|
|
250
|
+
* 新增获取私聊文件资源链接 API `get_private_file_url`
|
|
251
|
+
|
|
252
|
+
=================
|
|
253
|
+
V5.8.1
|
|
254
|
+
更新时间 2025-8-26
|
|
255
|
+
|
|
256
|
+
* 修复好友列表为空,并导致所有好友会话变成了临时会话
|
|
257
|
+
|
|
258
|
+
=================
|
|
259
|
+
V5.8.0
|
|
260
|
+
更新时间 2025-8-24
|
|
261
|
+
|
|
262
|
+
* 修复`receiveOfflineMsg`不生效
|
|
263
|
+
* 修复接受撤回的戳一戳消息可能导致崩溃
|
|
264
|
+
* 支持加载类似 LiteLoaderQQNT 的 js 插件,详情见 <https://github.com/linyuchen/PMHQ/blob/main/doc/plugin.md>
|
|
265
|
+
|
|
266
|
+
=================
|
|
267
|
+
|
|
268
|
+
V5.7.2
|
|
269
|
+
更新时间 2025-8-23
|
|
270
|
+
|
|
271
|
+
* `get_group_file_url` API 现在不会下载文件到本地
|
|
272
|
+
* `get_msg` API 返回字段增加 `group_name`
|
|
273
|
+
|
|
274
|
+
=================
|
|
275
|
+
V5.7.1
|
|
276
|
+
更新时间 2025-8-16
|
|
277
|
+
|
|
278
|
+
* 修复 `get_friend_list` API 可能获取不到好友的问题
|
|
279
|
+
* 修复 `get_forward_msg` API 可能获取不到消息的问题
|
|
280
|
+
|
|
281
|
+
=================
|
|
282
|
+
V5.7.0
|
|
283
|
+
更新时间
|
|
284
|
+
|
|
285
|
+
* 新增撤回戳一戳事件,`sub_type: poke_recall`,其他内容与戳一戳一致
|
|
286
|
+
* 修复日志中 message_sent 的 sub_type 没有正确显示
|
|
287
|
+
* 修复 `get_friend_list` 获取不到新加的好友
|
|
288
|
+
* 修复 `get_msg` 获取合并转发消息没有解析 #604
|
|
289
|
+
|
|
290
|
+
=================
|
|
291
|
+
V5.6.1
|
|
292
|
+
更新时间 2025-8-2 21:04:08
|
|
293
|
+
|
|
294
|
+
* 修复 bot 被邀请进群事件没有上报的问题
|
|
295
|
+
* 新增获取群 Ai 语音可用声色列表 API `get_ai_characters`
|
|
296
|
+
* 新增发送群 Ai 语音 API `send_group_ai_record`
|
|
297
|
+
|
|
298
|
+
=================
|
|
299
|
+
V5.6.0
|
|
300
|
+
更新时间 2025-7-26 15:37:40
|
|
301
|
+
|
|
302
|
+
* 新增批量踢出群成员 API `batch_delete_group_member` #478
|
|
303
|
+
* 表情消息新增 `sub_type` 用于表示表情类型,1 是普通小表情 3 是超级表情 #450
|
|
304
|
+
* 新增配置项 `receiveOfflineMsg`,默认 false,开启后会接收离线消息 #573
|
|
305
|
+
* 修复收到私聊 戳一戳(窗口抖动)消息解析成了 face #443
|
|
306
|
+
* 修复 pmhq 开启 debug 导致 gui 卡死
|
|
307
|
+
* 修复某些机器上登录后获取不到账号信息 #595 #594
|
|
308
|
+
* 修复任务栏无图标
|
|
309
|
+
|
|
310
|
+
=================
|
|
311
|
+
V5.5.2
|
|
312
|
+
更新时间 2025-7-23 14:04:33
|
|
313
|
+
|
|
314
|
+
* 修复 `get_stranger_info` API 无法获取部分用户等级的问题
|
|
315
|
+
|
|
316
|
+
=================
|
|
317
|
+
V5.5.1
|
|
318
|
+
更新时间 2025-7-21 21:19:47
|
|
319
|
+
|
|
320
|
+
* 修复 `get_group_member_info` API 偶现报错的问题
|
|
321
|
+
|
|
322
|
+
=================
|
|
323
|
+
V5.5.0
|
|
324
|
+
更新时间 2025-7-20 17:39:39
|
|
325
|
+
|
|
326
|
+
* 支持 37475
|
|
327
|
+
* pmhq_config.json 新增配置项
|
|
328
|
+
* * debug: 默认 false,开启后会打印收发的 pb,并且 ws 会推送 send 的 pb
|
|
329
|
+
* * enable_gui: 默认 true,关闭后不启用 gui,仅 Windows 有效
|
|
330
|
+
* 新增获取指定词汇推荐的表情 API `get_recommend_face`
|
|
331
|
+
* 修复 `get_group_member_info` API 返回的 `qq_level` 为 0 的问题
|
|
332
|
+
* 修复 `get_group_msg_history` API 获取撤回的消息时没有使用缓存的问题
|
|
333
|
+
* 修复非好友邀请 bot 加群上报
|
|
334
|
+
* 修复视频消息 url 上报失败
|
|
335
|
+
* 修复在线状态上报不准确
|
|
336
|
+
|
|
337
|
+
=================
|
|
338
|
+
V5.4.1
|
|
339
|
+
更新时间 2025-7-11 10:54:08
|
|
340
|
+
|
|
341
|
+
* 修复消息过多导致 GUI 崩溃
|
|
342
|
+
|
|
343
|
+
=================
|
|
344
|
+
V5.4.0
|
|
345
|
+
更新时间 2025-7-10 15:27:42
|
|
346
|
+
|
|
347
|
+
* 支持 37051
|
|
348
|
+
* 新增 GUI 和托盘
|
|
349
|
+
|
|
350
|
+
=================
|
|
351
|
+
V5.3.0
|
|
352
|
+
更新时间:2025-7-6 21:18:03
|
|
353
|
+
|
|
354
|
+
* 修复内存泄露
|
|
355
|
+
* 修复自动检测环境变量的 ffmpeg
|
|
356
|
+
* 支持 37012
|
|
357
|
+
* 支持合并转发自定义 uin 和 name
|
|
358
|
+
* 新增获取 rkey API `get_rkey`
|
|
359
|
+
* 新增上传闪传文件 API `upload_flash_file`
|
|
360
|
+
* 新增下载闪传文件 API `download_flash_file`
|
|
361
|
+
* 新增上传和下载闪传文件进度事件,`"notice_type": "flash_file"`
|
|
362
|
+
|
|
363
|
+
=================
|
|
364
|
+
V5.2.2
|
|
365
|
+
更新时间 2025-6-24 23:51:18
|
|
366
|
+
|
|
367
|
+
支持 36580
|
|
368
|
+
修复 webui 没有监听 127.0.0.1
|
|
369
|
+
|
|
370
|
+
=================
|
|
371
|
+
V5.2.1
|
|
372
|
+
更新时间 2025-6-21 20:18:55
|
|
373
|
+
|
|
374
|
+
修复可能会初始化失败的问题
|
|
375
|
+
|
|
376
|
+
=================
|
|
377
|
+
V5.2.0
|
|
378
|
+
更新时间:2025-6-20 23:37:17
|
|
379
|
+
|
|
380
|
+
修复 API 获取被禁言群员列表 get_group_shut_list
|
|
381
|
+
支持 36497 36330
|
|
382
|
+
新增 WebUI,默认端口 3080,如果放在公网请务必设置 token
|
|
383
|
+
|
|
384
|
+
=================
|
|
385
|
+
V5.1.0
|
|
386
|
+
更新时间:2025-6-15 11:54:17
|
|
387
|
+
|
|
388
|
+
修复加群申请 user_id 为 0
|
|
389
|
+
新增语音消息转文本 API voice_msg_to_text
|
|
390
|
+
|
|
391
|
+
=================
|
|
392
|
+
V5.0.2
|
|
393
|
+
更新时间:2025-6-11 18:28:31
|
|
394
|
+
|
|
395
|
+
修复加群申请 user_id 为 0
|
|
396
|
+
修复视频上报 url
|
|
397
|
+
修复获取不到引用消息的 reply_id
|
|
398
|
+
修复程序异常卡死
|
|
399
|
+
优化私聊日志
|