@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 +18 -9
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +18 -9
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/core/core.ts +25 -22
- package/src/test.ts +11 -11
- package/ctil-gql-1.0.0.tgz +0 -0
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.
|
|
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
|
-
|
|
4321
|
-
|
|
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:
|
|
4387
|
+
remember: this._remember
|
|
4388
|
+
// 使用持久化的 remember
|
|
4380
4389
|
});
|
|
4381
4390
|
const newInfo = refreshResult.refreshToken ?? refreshResult;
|
|
4382
|
-
this.setLoginInfo(newInfo,
|
|
4383
|
-
} catch
|
|
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
|
}
|