@ctil/gql 1.0.1 → 1.0.2

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.
package/dist/index.cjs CHANGED
@@ -4240,11 +4240,14 @@ var import_path = __toESM(require("path"), 1);
4240
4240
  var isBrowser = typeof window !== "undefined" && typeof window.document !== "undefined";
4241
4241
  var isNode2 = typeof process !== "undefined" && process.versions?.node != null;
4242
4242
  var NODE_LOGIN_FILE = import_path.default.resolve(process.cwd(), "loginInfo.json");
4243
+ var NODE_LOGIN_REMEBER_FILE = import_path.default.resolve(process.cwd(), "loginInfo.json.remember");
4243
4244
  var STORAGE_KEY = "GRAPHQL_LOGIN_INFO";
4245
+ var REMEMBER_KEY = "GRAPHQL_LOGIN_REMEMBER";
4244
4246
  var nodeLoginInfo = null;
4245
4247
  var CCRequest = class {
4246
4248
  constructor(config) {
4247
4249
  this.config = config;
4250
+ this._remember = false;
4248
4251
  this.interceptors = [];
4249
4252
  this.deviceInfoPromise = getDeviceInfo();
4250
4253
  this.headers = this.buildHeaders(config);
@@ -4286,22 +4289,24 @@ var CCRequest = class {
4286
4289
  }
4287
4290
  // ===== LoginInfo 管理 =====
4288
4291
  setLoginInfo(loginInfo, remember = false) {
4289
- this.config.loginInfo = loginInfo;
4292
+ this._remember = remember;
4290
4293
  if (loginInfo.token) this.setToken(loginInfo.token);
4291
4294
  if (isBrowser) {
4292
4295
  const storage = remember ? localStorage : sessionStorage;
4293
4296
  storage.setItem(STORAGE_KEY, JSON.stringify(loginInfo));
4297
+ localStorage.setItem(REMEMBER_KEY, JSON.stringify(remember));
4294
4298
  } else if (isNode2) {
4295
4299
  nodeLoginInfo = loginInfo;
4296
4300
  try {
4297
4301
  import_fs.default.writeFileSync(NODE_LOGIN_FILE, JSON.stringify(loginInfo), "utf-8");
4302
+ import_fs.default.writeFileSync(NODE_LOGIN_REMEBER_FILE, JSON.stringify(remember), "utf-8");
4298
4303
  } catch (err) {
4299
4304
  console.error("Failed to persist login info to file:", err);
4300
4305
  }
4301
4306
  }
4302
4307
  }
4303
- /** 加载登录信息(含访问 token 和刷新 token 过期检查) */
4304
4308
  /** 加载登录信息(仅负责加载,不负责刷新) */
4309
+ /** 加载登录信息 */
4305
4310
  loadLoginInfo() {
4306
4311
  let info = null;
4307
4312
  if (isBrowser) {
@@ -4310,17 +4315,17 @@ var CCRequest = class {
4310
4315
  try {
4311
4316
  info = JSON.parse(str);
4312
4317
  } catch {
4313
- info = null;
4314
4318
  }
4315
4319
  }
4320
+ const rememberStr = localStorage.getItem(REMEMBER_KEY);
4321
+ this._remember = rememberStr === "true";
4316
4322
  } else if (isNode2) {
4317
4323
  if (nodeLoginInfo) return nodeLoginInfo;
4318
4324
  if (import_fs.default.existsSync(NODE_LOGIN_FILE)) {
4319
4325
  try {
4320
- const raw = import_fs.default.readFileSync(NODE_LOGIN_FILE, "utf-8");
4321
- info = JSON.parse(raw);
4326
+ info = JSON.parse(import_fs.default.readFileSync(NODE_LOGIN_FILE, "utf-8"));
4327
+ this._remember = import_fs.default.existsSync(NODE_LOGIN_REMEBER_FILE) ? JSON.parse(import_fs.default.readFileSync(NODE_LOGIN_REMEBER_FILE, "utf-8")) : false;
4322
4328
  } catch {
4323
- info = null;
4324
4329
  }
4325
4330
  }
4326
4331
  }
@@ -4339,6 +4344,8 @@ var CCRequest = class {
4339
4344
  } else if (isNode2) {
4340
4345
  nodeLoginInfo = null;
4341
4346
  try {
4347
+ if (import_fs.default.existsSync(NODE_LOGIN_FILE)) import_fs.default.unlinkSync(NODE_LOGIN_FILE);
4348
+ if (import_fs.default.existsSync(NODE_LOGIN_REMEBER_FILE)) import_fs.default.unlinkSync(NODE_LOGIN_REMEBER_FILE);
4342
4349
  } catch {
4343
4350
  }
4344
4351
  }
@@ -4362,6 +4369,7 @@ var CCRequest = class {
4362
4369
  this.headers = { "Content-Type": "application/json" };
4363
4370
  }
4364
4371
  //无感刷新
4372
+ /** 无感刷新 token */
4365
4373
  async ensureTokenValid() {
4366
4374
  const loginInfo = this.getLoginInfo();
4367
4375
  if (!loginInfo) return;
@@ -4376,11 +4384,12 @@ var CCRequest = class {
4376
4384
  try {
4377
4385
  const refreshResult = await auth.refreshToken({
4378
4386
  refreshToken: loginInfo.refreshToken,
4379
- remember: true
4387
+ remember: this._remember
4388
+ // 使用持久化的 remember
4380
4389
  });
4381
4390
  const newInfo = refreshResult.refreshToken ?? refreshResult;
4382
- this.setLoginInfo(newInfo, true);
4383
- } catch (err) {
4391
+ this.setLoginInfo(newInfo, this._remember);
4392
+ } catch {
4384
4393
  this.removeLoginInfo();
4385
4394
  throw new Error("Failed to refresh token. Please login again.");
4386
4395
  }