cloud189-sdk 1.0.6-alpha.3 → 1.0.6-alpha.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.
package/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # cloud189-sdk
2
2
 
3
+ [![NPM](https://nodei.co/npm/cloud189-sdk.png?downloads=true&downloadRank=true&stars=true)](https://nodei.co/npm/cloud189-sdk/)
4
+
3
5
  > 基于node.js的天翼网盘sdk
4
6
 
5
7
  <div align="center">
@@ -1,5 +1,6 @@
1
1
  import { Got } from 'got';
2
- import { UserSignResponse, UserSizeInfoResponse, FamilyListResponse, FamilyUserSignResponse, ConfigurationOptions, ClientSession, RefreshTokenSession, TokenSession, AccessTokenStore } from './types';
2
+ import { UserSignResponse, UserSizeInfoResponse, FamilyListResponse, FamilyUserSignResponse, ConfigurationOptions, ClientSession, RefreshTokenSession, TokenSession } from './types';
3
+ import { Store } from './store';
3
4
  interface CacheQuery {
4
5
  captchaToken: string;
5
6
  reqId: string;
@@ -46,7 +47,7 @@ export declare class CloudClient {
46
47
  #private;
47
48
  username: string;
48
49
  password: string;
49
- token: AccessTokenStore;
50
+ tokenStore: Store;
50
51
  readonly request: Got;
51
52
  readonly authClient: CloudAuthClient;
52
53
  readonly session: ClientSession;
@@ -15,6 +15,7 @@ const got_1 = __importDefault(require("got"));
15
15
  const log_1 = require("./log");
16
16
  const util_1 = require("./util");
17
17
  const const_1 = require("./const");
18
+ const store_1 = require("./store");
18
19
  const config = {
19
20
  clientId: '538135150693412',
20
21
  model: 'KB2000',
@@ -170,7 +171,7 @@ class CloudClient {
170
171
  __classPrivateFieldGet(this, _CloudClient_valid, "f").call(this, _options);
171
172
  this.username = _options.username;
172
173
  this.password = _options.password;
173
- this.token = _options.token;
174
+ this.tokenStore = _options.token || new store_1.MemoryStore();
174
175
  this.authClient = new CloudAuthClient();
175
176
  this.session = {
176
177
  accessToken: '',
@@ -240,33 +241,33 @@ class CloudClient {
240
241
  });
241
242
  }
242
243
  async getSession() {
243
- if (this.token) {
244
- if (this.token.accessToken) {
245
- try {
246
- return await this.authClient.loginByAccessToken(this.token.accessToken);
247
- }
248
- catch (e) {
249
- log_1.log.error(e);
250
- }
244
+ const accessToken = await this.tokenStore.getAccessToken();
245
+ if (accessToken) {
246
+ try {
247
+ return await this.authClient.loginByAccessToken(accessToken);
251
248
  }
252
- if (this.token.refreshToken) {
253
- try {
254
- const refreshTokenSession = await this.authClient.refreshToken(this.token.refreshToken);
255
- this.token.accessToken = refreshTokenSession.accessToken;
256
- return await this.authClient.loginByAccessToken(this.token.accessToken);
257
- }
258
- catch (e) {
259
- log_1.log.error(e);
260
- }
249
+ catch (e) {
250
+ log_1.log.error(e);
251
+ }
252
+ }
253
+ const refreshToken = await this.tokenStore.getRefreshToken();
254
+ if (refreshToken) {
255
+ try {
256
+ const refreshTokenSession = await this.authClient.refreshToken(refreshToken);
257
+ await this.tokenStore.updateAccessToken(refreshTokenSession.accessToken);
258
+ return await this.authClient.loginByAccessToken(refreshTokenSession.accessToken);
259
+ }
260
+ catch (e) {
261
+ log_1.log.error(e);
261
262
  }
262
263
  }
263
264
  if (this.username && this.password) {
264
265
  try {
265
266
  const loginToken = await this.authClient.loginByPassword(this.username, this.password);
266
- this.token = {
267
+ await this.tokenStore.update({
267
268
  accessToken: loginToken.accessToken,
268
269
  refreshToken: loginToken.refreshToken
269
- };
270
+ });
270
271
  return loginToken;
271
272
  }
272
273
  catch (e) {
package/dist/index.d.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  export * from './CloudClient';
2
2
  export * from './types';
3
+ export { Store, MemoryStore, FileTokenStore } from './store';
package/dist/index.js CHANGED
@@ -14,5 +14,10 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.FileTokenStore = exports.MemoryStore = exports.Store = void 0;
17
18
  __exportStar(require("./CloudClient"), exports);
18
19
  __exportStar(require("./types"), exports);
20
+ var store_1 = require("./store");
21
+ Object.defineProperty(exports, "Store", { enumerable: true, get: function () { return store_1.Store; } });
22
+ Object.defineProperty(exports, "MemoryStore", { enumerable: true, get: function () { return store_1.MemoryStore; } });
23
+ Object.defineProperty(exports, "FileTokenStore", { enumerable: true, get: function () { return store_1.FileTokenStore; } });
@@ -0,0 +1,12 @@
1
+ import { MemoryStore } from './memstore';
2
+ export declare class FileTokenStore extends MemoryStore {
3
+ #private;
4
+ filePath: string;
5
+ constructor(filePath: string);
6
+ updateAccessToken(accessToken: string): Promise<void>;
7
+ updateRefreshToken(refreshToken: string): Promise<void>;
8
+ update(token: {
9
+ accessToken: string;
10
+ refreshToken: string;
11
+ }): Promise<void>;
12
+ }
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
26
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
27
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
28
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
29
+ };
30
+ var _FileTokenStore_instances, _FileTokenStore_loadFromFile, _FileTokenStore_saveToFile;
31
+ Object.defineProperty(exports, "__esModule", { value: true });
32
+ exports.FileTokenStore = void 0;
33
+ const fs = __importStar(require("node:fs"));
34
+ const promisesFs = __importStar(require("node:fs/promises"));
35
+ const memstore_1 = require("./memstore");
36
+ class FileTokenStore extends memstore_1.MemoryStore {
37
+ constructor(filePath) {
38
+ super();
39
+ _FileTokenStore_instances.add(this);
40
+ this.filePath = filePath;
41
+ if (!filePath) {
42
+ throw new Error('Unknown file for read/write token');
43
+ }
44
+ const dataJson = __classPrivateFieldGet(this, _FileTokenStore_instances, "m", _FileTokenStore_loadFromFile).call(this, filePath);
45
+ if (dataJson) {
46
+ super.update(dataJson);
47
+ }
48
+ }
49
+ updateAccessToken(accessToken) {
50
+ super.updateAccessToken(accessToken);
51
+ return __classPrivateFieldGet(this, _FileTokenStore_instances, "m", _FileTokenStore_saveToFile).call(this, this.filePath, this.store);
52
+ }
53
+ updateRefreshToken(refreshToken) {
54
+ super.updateRefreshToken(refreshToken);
55
+ return __classPrivateFieldGet(this, _FileTokenStore_instances, "m", _FileTokenStore_saveToFile).call(this, this.filePath, this.store);
56
+ }
57
+ update(token) {
58
+ super.update(token);
59
+ return __classPrivateFieldGet(this, _FileTokenStore_instances, "m", _FileTokenStore_saveToFile).call(this, this.filePath, this.store);
60
+ }
61
+ }
62
+ exports.FileTokenStore = FileTokenStore;
63
+ _FileTokenStore_instances = new WeakSet(), _FileTokenStore_loadFromFile = function _FileTokenStore_loadFromFile(filePath) {
64
+ let data = null;
65
+ if (fs.existsSync(filePath)) {
66
+ data = fs.readFileSync(filePath, {
67
+ encoding: 'utf-8'
68
+ });
69
+ }
70
+ if (data) {
71
+ try {
72
+ return JSON.parse(data);
73
+ }
74
+ catch (e) {
75
+ throw new Error(`Could not parse token file ${filePath}. Please ensure it is not corrupted.`);
76
+ }
77
+ }
78
+ return null;
79
+ }, _FileTokenStore_saveToFile = function _FileTokenStore_saveToFile(filePath, data) {
80
+ return promisesFs.writeFile(filePath, JSON.stringify(data), {
81
+ encoding: 'utf-8'
82
+ });
83
+ };
@@ -0,0 +1,3 @@
1
+ export * from './store';
2
+ export * from './memstore';
3
+ export * from './file-token-store';
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./store"), exports);
18
+ __exportStar(require("./memstore"), exports);
19
+ __exportStar(require("./file-token-store"), exports);
@@ -0,0 +1,16 @@
1
+ import { Store } from './store';
2
+ export declare class MemoryStore extends Store {
3
+ store: {
4
+ accessToken: string;
5
+ refreshToken: string;
6
+ };
7
+ constructor();
8
+ getAccessToken(): Promise<string>;
9
+ updateAccessToken(accessToken: string): Promise<void>;
10
+ updateRefreshToken(refreshToken: string): Promise<void>;
11
+ getRefreshToken(): Promise<string>;
12
+ update(token: {
13
+ accessToken: string;
14
+ refreshToken: string;
15
+ }): void;
16
+ }
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MemoryStore = void 0;
4
+ const store_1 = require("./store");
5
+ class MemoryStore extends store_1.Store {
6
+ constructor() {
7
+ super();
8
+ this.store = {
9
+ accessToken: '',
10
+ refreshToken: ''
11
+ };
12
+ }
13
+ getAccessToken() {
14
+ return Promise.resolve(this.store.accessToken);
15
+ }
16
+ updateAccessToken(accessToken) {
17
+ this.store.accessToken = accessToken;
18
+ return Promise.resolve();
19
+ }
20
+ updateRefreshToken(refreshToken) {
21
+ this.store.refreshToken = refreshToken;
22
+ return Promise.resolve();
23
+ }
24
+ getRefreshToken() {
25
+ return Promise.resolve(this.store.refreshToken);
26
+ }
27
+ update(token) {
28
+ this.store = {
29
+ accessToken: token.accessToken,
30
+ refreshToken: token.refreshToken
31
+ };
32
+ }
33
+ }
34
+ exports.MemoryStore = MemoryStore;
@@ -0,0 +1,11 @@
1
+ export declare class Store {
2
+ constructor();
3
+ getAccessToken(): Promise<string | undefined>;
4
+ getRefreshToken(): Promise<string | undefined>;
5
+ updateRefreshToken(refreshToken: string): Promise<void>;
6
+ updateAccessToken(accessToken: string): Promise<void>;
7
+ update(token: {
8
+ accessToken: string;
9
+ refreshToken: string;
10
+ }): any;
11
+ }
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Store = void 0;
4
+ class Store {
5
+ constructor() { }
6
+ getAccessToken() {
7
+ throw new Error('getAccessToken is not implemented');
8
+ }
9
+ getRefreshToken() {
10
+ throw new Error('getRefreshToken is not implemented');
11
+ }
12
+ updateRefreshToken(refreshToken) {
13
+ throw new Error('updateRefreshToken is not implemented');
14
+ }
15
+ updateAccessToken(accessToken) {
16
+ throw new Error('updateAccessToken is not implemented');
17
+ }
18
+ update(token) {
19
+ throw new Error('update is not implemented');
20
+ }
21
+ }
22
+ exports.Store = Store;
package/dist/types.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { Store } from './store';
1
2
  /**
2
3
  * 账户家庭信息
3
4
  * @public
@@ -133,27 +134,27 @@ export interface ConfigurationOptions {
133
134
  username?: string;
134
135
  /** 密码 */
135
136
  password?: string;
136
- token: AccessTokenStore;
137
+ token?: Store;
137
138
  }
138
139
  /**
139
140
  * accessToken 有效期7天,可以通过refreshToken取新的accessToken
140
141
  */
141
- export interface TokenSession extends AccessTokenStore {
142
+ export interface TokenSession {
142
143
  res_code: number;
143
144
  res_message: string;
145
+ accessToken: string;
144
146
  familySessionKey: string;
145
147
  familySessionSecret: string;
148
+ refreshToken: string;
146
149
  loginName: string;
147
150
  sessionKey: string;
148
151
  }
149
- export interface RefreshTokenSession extends AccessTokenStore {
152
+ export interface RefreshTokenSession {
150
153
  expiresIn: number;
154
+ accessToken: string;
155
+ refreshToken: string;
151
156
  }
152
157
  export interface ClientSession {
153
158
  accessToken: string;
154
159
  sessionKey: string;
155
160
  }
156
- export interface AccessTokenStore {
157
- accessToken: string;
158
- refreshToken: string;
159
- }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cloud189-sdk",
3
- "version": "1.0.6-alpha.3",
3
+ "version": "1.0.6-alpha.4",
4
4
  "description": "基于node.js的第三方天翼云盘SDK",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",