From 64980c036e02d49c6dabc0bd06a3264498e6b2a4 Mon Sep 17 00:00:00 2001 From: WJG Date: Wed, 28 Feb 2024 15:49:13 +0800 Subject: [PATCH] misc: Ensure account info is verified before initiation --- package.json | 8 +++++--- src/index.ts | 15 ++++++++++++--- tsup.config.ts | 2 +- yarn.lock | 8 ++++---- 4 files changed, 22 insertions(+), 11 deletions(-) diff --git a/package.json b/package.json index a02a9ee..84a2511 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "mi-gpt", - "version": "1.2.0", + "version": "1.3.0", "type": "module", "description": "Seamlessly integrate your XiaoAI speaker and Mi Home devices with ChatGPT for an enhanced smart home experience.", "license": "MIT", @@ -30,7 +30,7 @@ "axios": "^1.6.5", "fs-extra": "^11.2.0", "https-proxy-agent": "^7.0.4", - "mi-service-lite": "^2.0.0", + "mi-service-lite": "^2.1.0", "openai": "^4.28.0", "prisma": "^5.8.1" }, @@ -47,7 +47,9 @@ }, "sideEffects": false, "files": [ - "dist" + "dist", + "prisma/migrations", + "prisma/schema.prisma" ], "main": "dist/index.cjs", "module": "dist/index.js", diff --git a/src/index.ts b/src/index.ts index 914eec5..2b2a85d 100644 --- a/src/index.ts +++ b/src/index.ts @@ -2,6 +2,7 @@ import { AISpeaker, AISpeakerConfig } from "./services/speaker/ai"; import { MyBot, MyBotConfig } from "./services/bot"; import { initDB, runWithDB } from "./services/db"; import { kBannerASCII } from "./utils/string"; +import { Logger } from "./utils/log"; export type MiGPTConfig = Omit & { speaker: AISpeakerConfig; @@ -12,10 +13,15 @@ export class MiGPT { static reset() { MiGPT.instance = null; } + static logger = Logger.create({ tag: "MiGPT" }); static create(config: MiGPTConfig) { + const hasAccount = config?.speaker?.userId && config?.speaker?.password; + MiGPT.logger.assert(hasAccount, "Missing userId or password."); if (MiGPT.instance) { - console.log("🚨 注意:MiGPT 是单例,暂不支持多设备、多账号!"); - console.log("如果需要切换设备或账号,请先使用 MiGPT.reset() 重置实例。"); + MiGPT.logger.log("🚨 注意:MiGPT 是单例,暂不支持多设备、多账号!"); + MiGPT.logger.log( + "如果需要切换设备或账号,请先使用 MiGPT.reset() 重置实例。" + ); } else { MiGPT.instance = new MiGPT({ ...config, fromCreate: true }); } @@ -25,7 +31,10 @@ export class MiGPT { ai: MyBot; speaker: AISpeaker; constructor(config: MiGPTConfig & { fromCreate?: boolean }) { - console.assert(config.fromCreate, "请使用 MiGPT.create() 获取客户端实例!"); + MiGPT.logger.assert( + config.fromCreate, + "请使用 MiGPT.create() 获取客户端实例!" + ); const { speaker, ...myBotConfig } = config; this.speaker = new AISpeaker(speaker); this.ai = new MyBot({ diff --git a/tsup.config.ts b/tsup.config.ts index 12d12d8..88ea245 100644 --- a/tsup.config.ts +++ b/tsup.config.ts @@ -8,7 +8,7 @@ export default defineConfig(() => ({ format: ["esm", "cjs"], sourcemap: false, treeshake: true, - minify: true, + minify: false, clean: true, shims: true, dts: true, // Generate declaration file diff --git a/yarn.lock b/yarn.lock index b10bab2..2ed3097 100644 --- a/yarn.lock +++ b/yarn.lock @@ -927,10 +927,10 @@ merge2@^1.3.0, merge2@^1.4.1: resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== -mi-service-lite@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/mi-service-lite/-/mi-service-lite-2.0.0.tgz#c043a931574011c154a3113ecabe4fc2a61b328a" - integrity sha512-PqMWtvEHQ7a6mhKee9RAnT6Xh+rqf+RvhlCki/8VsSTnjREAzl/kxZh3U0ogFhN5iQzwlK4YC8Is0rnSljl2og== +mi-service-lite@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mi-service-lite/-/mi-service-lite-2.1.0.tgz#a05d85340f18d3ee5278afc180294273235533c5" + integrity sha512-yy7q/7sR36PiE+0kIXgGDQ8ZUCrnLpMUxqtpmdIQgKBsyCaxBx0QNEcscwY+2ejx3WLwbB+ObMy6yR9fznx6hg== dependencies: axios "^1.6.5" pako "^2.1.0"