@anmiles/google-api-wrapper 13.0.1 → 14.1.0

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/CHANGELOG.md CHANGED
@@ -5,6 +5,16 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [14.1.0](../../tags/v14.1.0) - 2023-08-06
9
+ ### Added
10
+ - Filtering profiles
11
+
12
+ ## [14.0.0](../../tags/v14.0.0) - 2023-06-11
13
+ ### Added
14
+ - Warn if trying to store non-readonly credentials in a file
15
+ ### Removed
16
+ - Credentials can't be explicitly revoked anymore since this affects other credentials based on the same client id for current user
17
+
8
18
  ## [13.0.1](../../tags/v13.0.1) - 2023-06-01
9
19
  ### Changed
10
20
  - Do not delete credentials file if revoking temporary credentials because they are not stored in the file
@@ -15,7 +25,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
15
25
  - All existing google APIs are now available
16
26
  ### Changed
17
27
  - Single entry point for creating any APIs
18
- - BEFORE:
28
+ - BEFORE:
19
29
  ```
20
30
  import { getCalendarAPI } from '@anmiles/google-api-wrapper';
21
31
  const calendarAPI = getCalendarAPI(profile);
@@ -26,7 +36,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
26
36
  const calendarAPI = getAPI('calendar', profile);
27
37
  ```
28
38
  - Changed signature for `getItems`. Also explicit types are now redundant.
29
- - BEFORE:
39
+ - BEFORE:
30
40
  ```
31
41
  const events = await getItems<GoogleApis.calendar_v3.Schema$Event, GoogleApis.calendar_v3.Params$Resource$Events$List>(calendarAPI.events, { ...args });
32
42
  ```
package/README.md CHANGED
@@ -55,8 +55,6 @@ getProfiles().map(async (profile) => {
55
55
  const youtubeAPI = getAPI('youtube', profile, { temporary: true });
56
56
  const videos = await youtubeAPI.getItems((api) => api.playlistItems, { playlistId : 'LL', part : [ 'snippet' ], maxResults : 50 });
57
57
  videos.forEach((video) => console.log(`Downloaded: ${video.snippet?.title}`));
58
- // Revoke temporary credentials in the end
59
- await youtubeAPI.revoke();
60
58
  });
61
59
 
62
60
  ```
package/dist/index.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  export { getAPI } from './lib/api';
2
- export { createProfile, getProfiles } from './lib/profiles';
2
+ export { createProfile, getProfiles, filterProfiles } from './lib/profiles';
3
3
  export { login, getAuth } from './lib/auth';
package/dist/index.js CHANGED
@@ -1,11 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getAuth = exports.login = exports.getProfiles = exports.createProfile = exports.getAPI = void 0;
3
+ exports.getAuth = exports.login = exports.filterProfiles = exports.getProfiles = exports.createProfile = exports.getAPI = void 0;
4
4
  var api_1 = require("./lib/api");
5
5
  Object.defineProperty(exports, "getAPI", { enumerable: true, get: function () { return api_1.getAPI; } });
6
6
  var profiles_1 = require("./lib/profiles");
7
7
  Object.defineProperty(exports, "createProfile", { enumerable: true, get: function () { return profiles_1.createProfile; } });
8
8
  Object.defineProperty(exports, "getProfiles", { enumerable: true, get: function () { return profiles_1.getProfiles; } });
9
+ Object.defineProperty(exports, "filterProfiles", { enumerable: true, get: function () { return profiles_1.filterProfiles; } });
9
10
  var auth_1 = require("./lib/auth");
10
11
  Object.defineProperty(exports, "login", { enumerable: true, get: function () { return auth_1.login; } });
11
12
  Object.defineProperty(exports, "getAuth", { enumerable: true, get: function () { return auth_1.getAuth; } });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,iCAAmC;AAA1B,6FAAA,MAAM,OAAA;AACf,2CAA4D;AAAnD,yGAAA,aAAa,OAAA;AAAE,uGAAA,WAAW,OAAA;AACnC,mCAA4C;AAAnC,6FAAA,KAAK,OAAA;AAAE,+FAAA,OAAO,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,iCAAmC;AAA1B,6FAAA,MAAM,OAAA;AACf,2CAA4E;AAAnE,yGAAA,aAAa,OAAA;AAAE,uGAAA,WAAW,OAAA;AAAE,0GAAA,cAAc,OAAA;AACnD,mCAA4C;AAAnC,6FAAA,KAAK,OAAA;AAAE,+FAAA,OAAO,OAAA"}
package/dist/lib/api.d.ts CHANGED
@@ -24,7 +24,6 @@ declare class API<TKey extends keyof typeof allAPIs> {
24
24
  constructor(apiName: TKey, profile: string, authOptions?: AuthOptions);
25
25
  init(): Promise<void>;
26
26
  getItems<TItem>(selectAPI: (api: ReturnType<typeof allAPIs[TKey]>) => CommonAPI<TItem>, params: any, options?: CommonOptions): Promise<TItem[]>;
27
- revoke(): Promise<GoogleApis.Common.GaxiosResponse<import("google-auth-library/build/src/auth/oauth2client").RevokeCredentialsResult>>;
28
27
  }
29
28
  declare function getAPI<TKey extends keyof typeof allAPIs>(apiName: TKey, profile: string, authOptions?: AuthOptions): Promise<API<TKey>>;
30
29
  declare const allAPIs: {
package/dist/lib/api.js CHANGED
@@ -21,7 +21,7 @@ class API {
21
21
  this.api = allAPIs[this.apiName](this.auth);
22
22
  }
23
23
  async getItems(selectAPI, params, options) {
24
- var _a, _b;
24
+ var _a, _b, _c;
25
25
  const items = [];
26
26
  let pageToken = undefined;
27
27
  do {
@@ -30,7 +30,8 @@ class API {
30
30
  response = await selectAPI(this.api).list({ ...params, pageToken });
31
31
  }
32
32
  catch (ex) {
33
- if (ex.message === 'invalid_grant') {
33
+ if ((ex.message === 'invalid_grant' || ex.message === 'Invalid credentials') && !((_a = this.authOptions) === null || _a === void 0 ? void 0 : _a.temporary)) {
34
+ (0, logger_1.warn)('Access token stored is invalid, re-creating...');
34
35
  (0, secrets_1.deleteCredentials)(this.profile);
35
36
  await this.init();
36
37
  return this.getItems(selectAPI, params, options);
@@ -39,24 +40,24 @@ class API {
39
40
  throw ex;
40
41
  }
41
42
  }
42
- (_a = response.data.items) === null || _a === void 0 ? void 0 : _a.forEach((item) => items.push(item));
43
+ (_b = response.data.items) === null || _b === void 0 ? void 0 : _b.forEach((item) => items.push(item));
43
44
  if (!(options === null || options === void 0 ? void 0 : options.hideProgress)) {
44
- (0, logger_1.log)(`Getting items (${items.length} of ${((_b = response.data.pageInfo) === null || _b === void 0 ? void 0 : _b.totalResults) || 'many'})...`);
45
+ (0, logger_1.log)(`Getting items (${items.length} of ${((_c = response.data.pageInfo) === null || _c === void 0 ? void 0 : _c.totalResults) || 'many'})...`);
45
46
  }
46
47
  await (0, sleep_1.default)(requestInterval);
47
48
  pageToken = response.data.nextPageToken;
48
49
  } while (pageToken);
49
50
  return items;
50
51
  }
51
- async revoke() {
52
- var _a;
53
- if (!((_a = this.authOptions) === null || _a === void 0 ? void 0 : _a.temporary)) {
54
- (0, secrets_1.deleteCredentials)(this.profile);
55
- }
56
- return this.auth.revokeCredentials();
57
- }
58
52
  }
59
53
  async function getAPI(apiName, profile, authOptions) {
54
+ var _a;
55
+ if (!(authOptions === null || authOptions === void 0 ? void 0 : authOptions.temporary)) {
56
+ const writableScopes = ((_a = authOptions === null || authOptions === void 0 ? void 0 : authOptions.scopes) === null || _a === void 0 ? void 0 : _a.filter((scope) => !scope.endsWith('.readonly'))) || [];
57
+ if (writableScopes.length > 0) {
58
+ (0, logger_1.warn)(`WARNING: trying to create permanent credentials using non-readonly scopes (${writableScopes}). Permanent credentials will be stored in the file and potentially might be re-used to modify your data`);
59
+ }
60
+ }
60
61
  const instance = new API(apiName, profile, authOptions);
61
62
  await instance.init();
62
63
  return instance;
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":";;;;;;AAAA,2CAAoC;AAEpC,4CAAsC;AACtC,2DAAmC;AAEnC,iCAAiC;AACjC,uCAA8C;AAE9C,MAAM,eAAe,GAAG,GAAG,CAAC;AAiB5B,MAAM,GAAG;IAQR,YAAY,OAAa,EAAE,OAAe,EAAE,WAAyB;QACpE,IAAI,CAAC,OAAO,GAAO,OAAO,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAO,OAAO,CAAC;QAC3B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IAChC,CAAC;IAED,KAAK,CAAC,IAAI;QACT,IAAI,CAAC,IAAI,GAAG,MAAM,IAAA,cAAO,EAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QAC1D,IAAI,CAAC,GAAG,GAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAqC,CAAC;IAClF,CAAC;IAED,KAAK,CAAC,QAAQ,CAAQ,SAAsE,EAAE,MAAW,EAAE,OAAuB;;QACjI,MAAM,KAAK,GAAY,EAAE,CAAC;QAE1B,IAAI,SAAS,GAA8B,SAAS,CAAC;QAErD,GAAG;YACF,IAAI,QAAiE,CAAC;YAEtE,IAAI;gBACH,QAAQ,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;aACpE;YAAC,OAAO,EAAE,EAAE;gBACZ,IAAI,EAAE,CAAC,OAAO,KAAK,eAAe,EAAE;oBACnC,IAAA,2BAAiB,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAChC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;oBAClB,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;iBACjD;qBAAM;oBACN,MAAM,EAAE,CAAC;iBACT;aACD;YAED,MAAA,QAAQ,CAAC,IAAI,CAAC,KAAK,0CAAE,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;YAEzD,IAAI,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,CAAA,EAAE;gBAC3B,IAAA,YAAG,EAAC,kBAAkB,KAAK,CAAC,MAAM,OAAO,CAAA,MAAA,QAAQ,CAAC,IAAI,CAAC,QAAQ,0CAAE,YAAY,KAAI,MAAM,MAAM,CAAC,CAAC;aAC/F;YAED,MAAM,IAAA,eAAK,EAAC,eAAe,CAAC,CAAC;YAC7B,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC;SACxC,QAAQ,SAAS,EAAE;QAEpB,OAAO,KAAK,CAAC;IACd,CAAC;IAED,KAAK,CAAC,MAAM;;QACX,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,WAAW,0CAAE,SAAS,CAAA,EAAE;YACjC,IAAA,2BAAiB,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SAChC;QAED,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;IACtC,CAAC;CACD;AAED,KAAK,UAAU,MAAM,CAAoC,OAAa,EAAE,OAAe,EAAE,WAAyB;IACjH,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAO,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;IAC9D,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IACtB,OAAO,QAAQ,CAAC;AACjB,CAAC;AAoRQ,wBAAM;AAlRf,0BAA0B;AAC1B,MAAM,OAAO,GAAG;IACf,uBAAuB,EAAY,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,uBAAuB,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACrI,wBAAwB,EAAW,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,wBAAwB,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACtI,cAAc,EAAqB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,cAAc,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC5H,oBAAoB,EAAe,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,oBAAoB,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAClI,OAAO,EAA4B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,OAAO,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACrH,eAAe,EAAoB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,eAAe,CAAC,EAAE,OAAO,EAAG,MAAM,EAAE,IAAI,EAAE,CAAC;IAC/H,gBAAgB,EAAmB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAG,SAAS,EAAE,IAAI,EAAE,CAAC;IACnI,kBAAkB,EAAiB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,kBAAkB,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAChI,KAAK,EAA8B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAG,iBAAiB,EAAE,IAAI,EAAE,CAAC;IAChI,KAAK,EAA8B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACnH,OAAO,EAA4B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,OAAO,CAAC,EAAE,OAAO,EAAG,MAAM,EAAE,IAAI,EAAE,CAAC;IACvH,WAAW,EAAwB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,WAAW,CAAC,EAAE,OAAO,EAAG,MAAM,EAAE,IAAI,EAAE,CAAC;IAC3H,qBAAqB,EAAc,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,qBAAqB,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACnI,WAAW,EAAwB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,WAAW,CAAC,EAAE,OAAO,EAAG,SAAS,EAAE,IAAI,EAAE,CAAC;IAC9H,SAAS,EAA0B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,SAAS,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACvH,cAAc,EAAqB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,cAAc,CAAC,EAAE,OAAO,EAAG,SAAS,EAAE,IAAI,EAAE,CAAC;IACjI,aAAa,EAAsB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,aAAa,CAAC,EAAE,OAAO,EAAG,SAAS,EAAE,IAAI,EAAE,CAAC;IAChI,YAAY,EAAuB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,YAAY,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC1H,kBAAkB,EAAiB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,kBAAkB,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAChI,yBAAyB,EAAU,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,yBAAyB,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACvI,iBAAiB,EAAkB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC/H,iBAAiB,EAAkB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC/H,gBAAgB,EAAmB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAG,MAAM,EAAE,IAAI,EAAE,CAAC;IAChI,UAAU,EAAyB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,UAAU,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACxH,cAAc,EAAqB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,cAAc,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC5H,OAAO,EAA4B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,OAAO,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACrH,SAAS,EAA0B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,SAAS,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACvH,YAAY,EAAuB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,YAAY,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC1H,aAAa,EAAsB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,aAAa,CAAC,EAAE,OAAO,EAAG,UAAU,EAAE,IAAI,EAAE,CAAC;IACjI,gBAAgB,EAAmB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC9H,gBAAgB,EAAmB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC9H,2BAA2B,EAAQ,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,2BAA2B,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACzI,iBAAiB,EAAkB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC/H,KAAK,EAA8B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACnH,UAAU,EAAyB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,UAAU,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACxH,QAAQ,EAA2B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACtH,kBAAkB,EAAiB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,kBAAkB,CAAC,EAAE,OAAO,EAAG,SAAS,EAAE,IAAI,EAAE,CAAC;IACrI,oBAAoB,EAAe,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,oBAAoB,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAClI,mBAAmB,EAAgB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,mBAAmB,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACjI,aAAa,EAAsB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,aAAa,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC3H,cAAc,EAAqB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,cAAc,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC5H,mBAAmB,EAAgB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,mBAAmB,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACjI,OAAO,EAA4B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,OAAO,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACrH,KAAK,EAA8B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACnH,0BAA0B,EAAS,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,0BAA0B,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACxI,QAAQ,EAA2B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACtH,kBAAkB,EAAiB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,kBAAkB,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAChI,IAAI,EAA+B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAClH,gBAAgB,EAAmB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC9H,YAAY,EAAuB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,YAAY,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC1H,cAAc,EAAqB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,cAAc,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC5H,SAAS,EAA0B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,SAAS,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACvH,SAAS,EAA0B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,SAAS,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACvH,UAAU,EAAyB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,UAAU,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACxH,YAAY,EAAuB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,YAAY,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC1H,UAAU,EAAyB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,UAAU,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACxH,YAAY,EAAuB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,YAAY,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC1H,aAAa,EAAsB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,aAAa,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC3H,WAAW,EAAwB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,WAAW,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACzH,mBAAmB,EAAgB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,mBAAmB,CAAC,EAAE,OAAO,EAAG,SAAS,EAAE,IAAI,EAAE,CAAC;IACtI,cAAc,EAAqB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,cAAc,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC5H,aAAa,EAAsB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,aAAa,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC3H,QAAQ,EAA2B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACtH,QAAQ,EAA2B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACtH,aAAa,EAAsB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,aAAa,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC3H,oBAAoB,EAAe,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,oBAAoB,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAClI,cAAc,EAAqB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,cAAc,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC5H,WAAW,EAAwB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,WAAW,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACzH,UAAU,EAAyB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,UAAU,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACxH,YAAY,EAAuB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,YAAY,CAAC,EAAE,OAAO,EAAG,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC9H,UAAU,EAAyB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,UAAU,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACxH,UAAU,EAAyB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,UAAU,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACxH,QAAQ,EAA2B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACtH,OAAO,EAA4B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,OAAO,CAAC,EAAE,OAAO,EAAG,OAAO,EAAE,IAAI,EAAE,CAAC;IACxH,UAAU,EAAyB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,UAAU,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACxH,uBAAuB,EAAY,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,uBAAuB,CAAC,EAAE,OAAO,EAAG,UAAU,EAAE,IAAI,EAAE,CAAC;IAC3I,qBAAqB,EAAc,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,qBAAqB,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACnI,SAAS,EAA0B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,SAAS,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACvH,iBAAiB,EAAkB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC/H,OAAO,EAA4B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,OAAO,CAAC,EAAE,OAAO,EAAG,MAAM,EAAE,IAAI,EAAE,CAAC;IACvH,gBAAgB,EAAmB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC9H,YAAY,EAAuB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,YAAY,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC1H,WAAW,EAAwB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,WAAW,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACzH,QAAQ,EAA2B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAG,MAAM,EAAE,IAAI,EAAE,CAAC;IACxH,QAAQ,EAA2B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAG,SAAS,EAAE,IAAI,EAAE,CAAC;IAC3H,UAAU,EAAyB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,UAAU,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACxH,YAAY,EAAuB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,YAAY,CAAC,EAAE,OAAO,EAAG,SAAS,EAAE,IAAI,EAAE,CAAC;IAC/H,WAAW,EAAwB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,WAAW,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACzH,aAAa,EAAsB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,aAAa,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC3H,aAAa,EAAsB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,aAAa,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC3H,QAAQ,EAA2B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACtH,QAAQ,EAA2B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACtH,SAAS,EAA0B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,SAAS,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACvH,UAAU,EAAyB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,UAAU,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACxH,iBAAiB,EAAkB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAG,OAAO,EAAE,IAAI,EAAE,CAAC;IAClI,YAAY,EAAuB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,YAAY,CAAC,EAAE,OAAO,EAAG,MAAM,EAAE,IAAI,EAAE,CAAC;IAC5H,UAAU,EAAyB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,UAAU,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACxH,iBAAiB,EAAkB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC/H,SAAS,EAA0B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,SAAS,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACvH,eAAe,EAAoB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,eAAe,CAAC,EAAE,OAAO,EAAG,SAAS,EAAE,IAAI,EAAE,CAAC;IAClI,YAAY,EAAuB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,YAAY,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC1H,GAAG,EAAgC,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,GAAG,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACjH,GAAG,EAAgC,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,GAAG,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACjH,IAAI,EAA+B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAClH,UAAU,EAAyB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,UAAU,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACxH,OAAO,EAA4B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,OAAO,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACrH,WAAW,EAAwB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,WAAW,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACzH,qBAAqB,EAAc,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,qBAAqB,CAAC,EAAE,OAAO,EAAG,MAAM,EAAE,IAAI,EAAE,CAAC;IACrI,iBAAiB,EAAkB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC/H,KAAK,EAA8B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACnH,aAAa,EAAsB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,aAAa,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC3H,WAAW,EAAwB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,WAAW,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACzH,iBAAiB,EAAkB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC/H,QAAQ,EAA2B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACtH,cAAc,EAAqB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,cAAc,CAAC,EAAE,OAAO,EAAG,UAAU,EAAE,IAAI,EAAE,CAAC;IAClI,GAAG,EAAgC,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,GAAG,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACjH,OAAO,EAA4B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,OAAO,CAAC,EAAE,OAAO,EAAG,SAAS,EAAE,IAAI,EAAE,CAAC;IAC1H,IAAI,EAA+B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAClH,QAAQ,EAA2B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAG,SAAS,EAAE,IAAI,EAAE,CAAC;IAC3H,gBAAgB,EAAmB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC9H,uBAAuB,EAAY,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,uBAAuB,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACrI,gBAAgB,EAAmB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAG,QAAQ,EAAE,IAAI,EAAE,CAAC;IAClI,oBAAoB,EAAe,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,oBAAoB,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAClI,eAAe,EAAoB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,eAAe,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC7H,UAAU,EAAyB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,UAAU,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACxH,aAAa,EAAsB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,aAAa,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC3H,eAAe,EAAoB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,eAAe,CAAC,EAAE,OAAO,EAAG,QAAQ,EAAE,IAAI,EAAE,CAAC;IACjI,SAAS,EAA0B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,SAAS,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACvH,OAAO,EAA4B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,OAAO,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACrH,KAAK,EAA8B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACnH,KAAK,EAA8B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACnH,kBAAkB,EAAiB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,kBAAkB,CAAC,EAAE,OAAO,EAAG,iBAAiB,EAAE,IAAI,EAAE,CAAC;IAC7I,YAAY,EAAuB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,YAAY,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC1H,eAAe,EAAoB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,eAAe,CAAC,EAAE,OAAO,EAAG,cAAc,EAAE,IAAI,EAAE,CAAC;IACvI,QAAQ,EAA2B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACtH,SAAS,EAA0B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,SAAS,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACvH,MAAM,EAA6B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACpH,KAAK,EAA8B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACnH,oBAAoB,EAAe,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,oBAAoB,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAClI,eAAe,EAAoB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,eAAe,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC7H,cAAc,EAAqB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,cAAc,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC5H,UAAU,EAAyB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,UAAU,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACxH,SAAS,EAA0B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,SAAS,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACvH,GAAG,EAAgC,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,GAAG,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACjH,cAAc,EAAqB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,cAAc,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC5H,GAAG,EAAgC,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,GAAG,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACjH,OAAO,EAA4B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,OAAO,CAAC,EAAE,OAAO,EAAG,SAAS,EAAE,IAAI,EAAE,CAAC;IAC1H,eAAe,EAAoB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,eAAe,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC7H,GAAG,EAAgC,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,GAAG,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACjH,QAAQ,EAA2B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACtH,YAAY,EAAuB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,YAAY,CAAC,EAAE,OAAO,EAAG,SAAS,EAAE,IAAI,EAAE,CAAC;IAC/H,IAAI,EAA+B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAClH,QAAQ,EAA2B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACtH,YAAY,EAAuB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,YAAY,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC1H,QAAQ,EAA2B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACtH,YAAY,EAAuB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,YAAY,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC1H,SAAS,EAA0B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,SAAS,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACvH,YAAY,EAAuB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,YAAY,CAAC,EAAE,OAAO,EAAG,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC9H,aAAa,EAAsB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,aAAa,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC3H,OAAO,EAA4B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,OAAO,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACrH,iBAAiB,EAAkB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC/H,aAAa,EAAsB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,aAAa,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC3H,QAAQ,EAA2B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACtH,SAAS,EAA0B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,SAAS,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACvH,eAAe,EAAoB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,eAAe,CAAC,EAAE,OAAO,EAAG,UAAU,EAAE,IAAI,EAAE,CAAC;IACnI,EAAE,EAAiC,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,EAAE,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAChH,UAAU,EAAyB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,UAAU,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACxH,2BAA2B,EAAQ,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,2BAA2B,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACzI,uBAAuB,EAAY,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,uBAAuB,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACrI,6BAA6B,EAAM,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,6BAA6B,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC3I,iBAAiB,EAAkB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC/H,uBAAuB,EAAY,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,uBAAuB,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACrI,sBAAsB,EAAa,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,sBAAsB,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACpI,eAAe,EAAoB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,eAAe,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC7H,uBAAuB,EAAY,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,uBAAuB,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACrI,mBAAmB,EAAgB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,mBAAmB,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACjI,iBAAiB,EAAkB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC/H,eAAe,EAAoB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,eAAe,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC7H,eAAe,EAAoB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,eAAe,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC7H,SAAS,EAA0B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,SAAS,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACvH,MAAM,EAA6B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACpH,gBAAgB,EAAmB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC9H,SAAS,EAA0B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,SAAS,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACvH,QAAQ,EAA2B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACtH,OAAO,EAA4B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,OAAO,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACrH,eAAe,EAAoB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,eAAe,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC7H,4BAA4B,EAAO,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,4BAA4B,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC1I,MAAM,EAA6B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACpH,iBAAiB,EAAkB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC/H,aAAa,EAAsB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,aAAa,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC3H,sBAAsB,EAAa,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,sBAAsB,CAAC,EAAE,OAAO,EAAG,UAAU,EAAE,IAAI,EAAE,CAAC;IAC1I,aAAa,EAAsB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,aAAa,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC3H,IAAI,EAA+B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAClH,cAAc,EAAqB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,cAAc,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC5H,eAAe,EAAoB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,eAAe,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC7H,oBAAoB,EAAe,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,oBAAoB,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAClI,IAAI,EAA+B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAClH,SAAS,EAA0B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,SAAS,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACvH,qCAAqC;IACrC,iBAAiB,EAAkB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAG,UAAU,EAAE,IAAI,EAAE,CAAC;IACrI,QAAQ,EAA2B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAG,UAAU,EAAE,IAAI,EAAE,CAAC;IAC5H,MAAM,EAA6B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACpH,UAAU,EAAyB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,UAAU,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACxH,gCAAgC,EAAG,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,gCAAgC,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC9I,eAAe,EAAoB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,eAAe,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC7H,mBAAmB,EAAgB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,mBAAmB,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACjI,oBAAoB,EAAe,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,oBAAoB,CAAC,EAAE,OAAO,EAAG,SAAS,EAAE,IAAI,EAAE,CAAC;IACvI,WAAW,EAAwB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,WAAW,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACzH,KAAK,EAA8B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACnH,oBAAoB,EAAe,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,oBAAoB,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAClI,QAAQ,EAA2B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACtH,gBAAgB,EAAmB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC9H,MAAM,EAA6B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACpH,GAAG,EAAgC,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,GAAG,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACjH,aAAa,EAAsB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,aAAa,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC3H,YAAY,EAAuB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,YAAY,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC1H,SAAS,EAA0B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,SAAS,CAAC,EAAE,OAAO,EAAG,UAAU,EAAE,IAAI,EAAE,CAAC;IAC7H,MAAM,EAA6B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACpH,YAAY,EAAuB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,YAAY,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC1H,aAAa,EAAsB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,aAAa,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC3H,aAAa,EAAsB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,aAAa,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC3H,cAAc,EAAqB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,cAAc,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC5H,yBAAyB,EAAU,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,yBAAyB,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACvI,cAAc,EAAqB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,cAAc,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC5H,gBAAgB,EAAmB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC9H,iBAAiB,EAAkB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC/H,iBAAiB,EAAkB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC/H,YAAY,EAAuB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,YAAY,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC1H,MAAM,EAA6B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACpH,gBAAgB,EAAmB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC9H,MAAM,EAA6B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACpH,qBAAqB,EAAc,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,qBAAqB,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACnI,UAAU,EAAyB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,UAAU,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACxH,OAAO,EAA4B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,OAAO,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACrH,MAAM,EAA6B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACpH,GAAG,EAAgC,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,GAAG,CAAC,EAAE,OAAO,EAAG,SAAS,EAAE,IAAI,EAAE,CAAC;IACtH,QAAQ,EAA2B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACtH,OAAO,EAA4B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,OAAO,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACrH,eAAe,EAAoB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,eAAe,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC7H,iBAAiB,EAAkB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC/H,GAAG,EAAgC,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,GAAG,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACjH,UAAU,EAAyB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,UAAU,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACxH,KAAK,EAA8B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACnH,OAAO,EAA4B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,OAAO,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACrH,YAAY,EAAuB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,YAAY,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC1H,WAAW,EAAwB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,WAAW,CAAC,EAAE,OAAO,EAAG,SAAS,EAAE,IAAI,EAAE,CAAC;IAC9H,GAAG,EAAgC,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,GAAG,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACjH,eAAe,EAAoB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,eAAe,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC7H,UAAU,EAAyB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,UAAU,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACxH,SAAS,EAA0B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,SAAS,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACvH,iBAAiB,EAAkB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC/H,KAAK,EAA8B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACnH,UAAU,EAAyB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,UAAU,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACxH,cAAc,EAAqB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,cAAc,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC5H,cAAc,EAAqB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,cAAc,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC5H,iBAAiB,EAAkB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC/H,MAAM,EAA6B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,MAAM,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACpH,WAAW,EAAwB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,WAAW,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACzH,SAAS,EAA0B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,SAAS,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACvH,QAAQ,EAA2B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACtH,UAAU,EAAyB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,UAAU,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACxH,OAAO,EAA4B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,OAAO,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACrH,kBAAkB,EAAiB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,kBAAkB,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAChI,kBAAkB,EAAiB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,kBAAkB,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAChI,SAAS,EAA0B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,SAAS,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACvH,eAAe,EAAoB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,eAAe,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC7H,YAAY,EAAuB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,YAAY,CAAC,EAAE,OAAO,EAAG,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC9H,OAAO,EAA4B,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,OAAO,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IACrH,gBAAgB,EAAmB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;IAC9H,gBAAgB,EAAmB,CAAC,IAAoC,EAAE,EAAE,CAAC,mBAAM,CAAC,gBAAgB,CAAC,EAAE,OAAO,EAAG,IAAI,EAAE,IAAI,EAAE,CAAC;CACrH,CAAC;AAGX,kBAAe,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,13 @@
1
1
  import '@anmiles/prototypes';
2
- export { getProfiles, setProfiles, createProfile };
2
+ export { getProfiles, setProfiles, createProfile, filterProfiles };
3
3
  declare const _default: {
4
4
  getProfiles: typeof getProfiles;
5
5
  setProfiles: typeof setProfiles;
6
6
  createProfile: typeof createProfile;
7
+ filterProfiles: typeof filterProfiles;
7
8
  };
8
9
  export default _default;
9
10
  declare function getProfiles(): string[];
10
11
  declare function setProfiles(profiles: string[]): void;
11
12
  declare function createProfile(profile: string): void;
13
+ declare function filterProfiles(profile?: string): string[];
@@ -3,12 +3,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.createProfile = exports.setProfiles = exports.getProfiles = void 0;
6
+ exports.filterProfiles = exports.createProfile = exports.setProfiles = exports.getProfiles = void 0;
7
7
  const fs_1 = __importDefault(require("fs"));
8
8
  require("@anmiles/prototypes");
9
9
  const paths_1 = require("./paths");
10
10
  const profiles_1 = __importDefault(require("./profiles"));
11
- exports.default = { getProfiles, setProfiles, createProfile };
11
+ exports.default = { getProfiles, setProfiles, createProfile, filterProfiles };
12
12
  function getProfiles() {
13
13
  const profilesFile = (0, paths_1.getProfilesFile)();
14
14
  return fs_1.default.getJSON(profilesFile, () => []);
@@ -31,4 +31,18 @@ function createProfile(profile) {
31
31
  profiles_1.default.setProfiles(existingProfiles);
32
32
  }
33
33
  exports.createProfile = createProfile;
34
+ function filterProfiles(profile) {
35
+ const existingProfiles = profiles_1.default.getProfiles();
36
+ if (existingProfiles.length === 0) {
37
+ throw 'Please `npm run create` at least one profile';
38
+ }
39
+ if (!profile) {
40
+ return existingProfiles;
41
+ }
42
+ if (existingProfiles.includes(profile)) {
43
+ return [profile];
44
+ }
45
+ throw `Profile '${profile}' does not exist`;
46
+ }
47
+ exports.filterProfiles = filterProfiles;
34
48
  //# sourceMappingURL=profiles.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"profiles.js","sourceRoot":"","sources":["../../src/lib/profiles.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AACpB,+BAA6B;AAC7B,mCAA0C;AAE1C,0DAAkC;AAGlC,kBAAe,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC;AAE3D,SAAS,WAAW;IACnB,MAAM,YAAY,GAAG,IAAA,uBAAe,GAAE,CAAC;IACvC,OAAO,YAAE,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;AAC3C,CAAC;AANQ,kCAAW;AAQpB,SAAS,WAAW,CAAC,QAAkB;IACtC,MAAM,YAAY,GAAG,IAAA,uBAAe,GAAE,CAAC;IACvC,YAAE,CAAC,SAAS,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;AACtC,CAAC;AAXqB,kCAAW;AAajC,SAAS,aAAa,CAAC,OAAe;IACrC,IAAI,CAAC,OAAO,EAAE;QACb,MAAM,kFAAkF,CAAC;KACzF;IAED,MAAM,gBAAgB,GAAG,kBAAQ,CAAC,WAAW,EAAE,CAAC;IAEhD,IAAI,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;QACvC,OAAO;KACP;IAED,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/B,kBAAQ,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;AACxC,CAAC;AA1BkC,sCAAa"}
1
+ {"version":3,"file":"profiles.js","sourceRoot":"","sources":["../../src/lib/profiles.ts"],"names":[],"mappings":";;;;;;AAAA,4CAAoB;AACpB,+BAA6B;AAC7B,mCAA0C;AAE1C,0DAAkC;AAGlC,kBAAe,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,CAAC;AAE3E,SAAS,WAAW;IACnB,MAAM,YAAY,GAAG,IAAA,uBAAe,GAAE,CAAC;IACvC,OAAO,YAAE,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;AAC3C,CAAC;AANQ,kCAAW;AAQpB,SAAS,WAAW,CAAC,QAAkB;IACtC,MAAM,YAAY,GAAG,IAAA,uBAAe,GAAE,CAAC;IACvC,YAAE,CAAC,SAAS,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;AACtC,CAAC;AAXqB,kCAAW;AAajC,SAAS,aAAa,CAAC,OAAe;IACrC,IAAI,CAAC,OAAO,EAAE;QACb,MAAM,kFAAkF,CAAC;KACzF;IAED,MAAM,gBAAgB,GAAG,kBAAQ,CAAC,WAAW,EAAE,CAAC;IAEhD,IAAI,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;QACvC,OAAO;KACP;IAED,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/B,kBAAQ,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;AACxC,CAAC;AA1BkC,sCAAa;AA4BhD,SAAS,cAAc,CAAC,OAAgB;IACvC,MAAM,gBAAgB,GAAG,kBAAQ,CAAC,WAAW,EAAE,CAAC;IAEhD,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE;QAClC,MAAM,8CAA8C,CAAC;KACrD;IAED,IAAI,CAAC,OAAO,EAAE;QACb,OAAO,gBAAgB,CAAC;KACxB;IAED,IAAI,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;QACvC,OAAO,CAAE,OAAO,CAAE,CAAC;KACnB;IAED,MAAM,YAAY,OAAO,kBAAkB,CAAC;AAC7C,CAAC;AA5CiD,wCAAc"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@anmiles/google-api-wrapper",
3
- "version": "13.0.1",
3
+ "version": "14.1.0",
4
4
  "description": "Provides quick interface for getting google API data",
5
5
  "keywords": [
6
6
  "google",
package/src/index.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  export { getAPI } from './lib/api';
2
- export { createProfile, getProfiles } from './lib/profiles';
2
+ export { createProfile, getProfiles, filterProfiles } from './lib/profiles';
3
3
  export { login, getAuth } from './lib/auth';
@@ -54,9 +54,7 @@ const calendarAPI = {
54
54
  calendarList : getAPI(response, pageTokens),
55
55
  };
56
56
 
57
- const googleAuth = {
58
- revokeCredentials : jest.fn(),
59
- };
57
+ const googleAuth = 'googleAuth';
60
58
 
61
59
  const scopes = [ 'scope1', 'scope2' ];
62
60
 
@@ -81,7 +79,8 @@ jest.mock<Partial<typeof secrets>>('../secrets', () => ({
81
79
  }));
82
80
 
83
81
  jest.mock<Partial<typeof logger>>('@anmiles/logger', () => ({
84
- log : jest.fn(),
82
+ log : jest.fn(),
83
+ warn : jest.fn(),
85
84
  }));
86
85
 
87
86
  jest.mock<Partial<typeof sleep>>('@anmiles/sleep', () => jest.fn());
@@ -111,6 +110,24 @@ describe('src/lib/api', () => {
111
110
 
112
111
  expect(instance).toEqual({ apiName : 'calendar', profile, authOptions : { scopes, temporary : true }, api : calendarAPI, auth : googleAuth });
113
112
  });
113
+
114
+ it('should warn when creating permanent credentials using non-readonly scopes', async () => {
115
+ await api.getAPI('calendar', profile, { scopes });
116
+
117
+ expect(logger.warn).toHaveBeenCalledWith('WARNING: trying to create permanent credentials using non-readonly scopes (scope1,scope2). Permanent credentials will be stored in the file and potentially might be re-used to modify your data');
118
+ });
119
+
120
+ it('should not warn when creating temporary credentials using non-readonly scopes', async () => {
121
+ await api.getAPI('calendar', profile, { scopes, temporary : true });
122
+
123
+ expect(logger.warn).not.toHaveBeenCalled();
124
+ });
125
+
126
+ it('should not warn when creating permanent credentials using readonly scopes only', async () => {
127
+ await api.getAPI('calendar', profile, { scopes : [ 'scope1.readonly', 'scope2.readonly' ], temporary : true });
128
+
129
+ expect(logger.warn).not.toHaveBeenCalled();
130
+ });
114
131
  });
115
132
 
116
133
  describe('API', () => {
@@ -160,25 +177,47 @@ describe('src/lib/api', () => {
160
177
  });
161
178
 
162
179
  it('should be initialized and called once if no API error', async () => {
180
+ const getAuthSpy = jest.spyOn(auth, 'getAuth');
163
181
  const getItemsSpy = jest.spyOn(instance, 'getItems');
182
+
164
183
  await instance.getItems((api) => api.calendarList, args);
165
- expect(auth.getAuth).toHaveBeenCalledTimes(1);
184
+
185
+ expect(getAuthSpy).toHaveBeenCalledTimes(1);
166
186
  expect(getItemsSpy).toHaveBeenCalledTimes(1);
167
187
  });
168
188
 
169
- it('should delete credentials, re-initialize api and retry while API exception is invalid_grant', async () => {
170
- const error = new Error('invalid_grant');
171
- // fail twice
172
- getListException.mockReturnValueOnce(error).mockReturnValueOnce(error);
189
+ it('should delete credentials, re-initialize api and retry if API exception is invalid_grant or Invalid credentials', async () => {
190
+ for (const message of [ 'invalid_grant', 'Invalid credentials' ]) {
191
+ const error = new Error(message);
192
+ // fail twice
193
+ getListException.mockReturnValueOnce(error).mockReturnValueOnce(error);
173
194
 
174
- const getItemsSpy = jest.spyOn(instance, 'getItems');
175
- await instance.getItems((api) => api.calendarList, args);
176
- expect(secrets.deleteCredentials).toHaveBeenCalledWith(profile);
177
- expect(auth.getAuth).toHaveBeenCalledTimes(3);
178
- expect(getItemsSpy).toHaveBeenCalledTimes(3);
195
+ const getAuthSpy = jest.spyOn(auth, 'getAuth');
196
+ const getItemsSpy = jest.spyOn(instance, 'getItems');
197
+ getAuthSpy.mockClear();
198
+ getItemsSpy.mockClear();
199
+
200
+ await instance.getItems((api) => api.calendarList, args);
201
+
202
+ expect(logger.warn).toHaveBeenCalledWith('Access token stored is invalid, re-creating...');
203
+ expect(secrets.deleteCredentials).toHaveBeenCalledWith(profile);
204
+ expect(getAuthSpy).toHaveBeenCalledTimes(2);
205
+ expect(getItemsSpy).toHaveBeenCalledTimes(3);
206
+ }
179
207
  });
180
208
 
181
- it('should re-throw API exception if not invalid_grant', async () => {
209
+ it('should re-throw if credentials are just created but API exception is invalid_grant or Invalid credentials', async () => {
210
+ for (const message of [ 'invalid_grant', 'Invalid credentials' ]) {
211
+ const error = new Error(message);
212
+ // fail twice
213
+ getListException.mockReturnValueOnce(error);
214
+
215
+ const instance = await api.getAPI('calendar', profile, { temporary : true });
216
+ await expect(instance.getItems((api) => api.calendarList, args)).rejects.toEqual(error);
217
+ }
218
+ });
219
+
220
+ it('should re-throw API exception if not invalid_grant or Invalid credentials', async () => {
182
221
  const error = new Error('random exception');
183
222
  getListException.mockReturnValueOnce(error);
184
223
  await expect(instance.getItems((api) => api.calendarList, args)).rejects.toEqual(error);
@@ -190,23 +229,5 @@ describe('src/lib/api', () => {
190
229
  expect(items).toEqual(items);
191
230
  });
192
231
  });
193
-
194
- describe('revoke', () => {
195
- it('should delete credentials file for current profile', async () => {
196
- await instance.revoke();
197
- expect(secrets.deleteCredentials).toHaveBeenCalledWith(profile);
198
- });
199
-
200
- it('should not delete credentials file if credentials are temporary', async () => {
201
- const tempInstance = await api.getAPI('calendar', profile, { temporary : true });
202
- await tempInstance.revoke();
203
- expect(secrets.deleteCredentials).not.toHaveBeenCalled();
204
- });
205
-
206
- it('should revoke credentials in google API', async () => {
207
- await instance.revoke();
208
- expect(googleAuth.revokeCredentials).toHaveBeenCalledWith();
209
- });
210
- });
211
232
  });
212
233
  });
@@ -5,9 +5,10 @@ import paths from '../paths';
5
5
  import profiles from '../profiles';
6
6
  const original = jest.requireActual('../profiles').default as typeof profiles;
7
7
  jest.mock<typeof profiles>('../profiles', () => ({
8
- getProfiles : jest.fn().mockImplementation(() => existingProfiles),
9
- setProfiles : jest.fn(),
10
- createProfile : jest.fn(),
8
+ getProfiles : jest.fn().mockImplementation(() => existingProfiles),
9
+ setProfiles : jest.fn(),
10
+ createProfile : jest.fn(),
11
+ filterProfiles : jest.fn(),
11
12
  }));
12
13
 
13
14
  jest.mock<Partial<typeof fs>>('fs', () => ({
@@ -26,13 +27,13 @@ jest.mock<Partial<typeof paths>>('../paths', () => ({
26
27
  getProfilesFile : jest.fn().mockImplementation(() => profilesFile),
27
28
  }));
28
29
 
29
- const json = { key : 'value' };
30
- const existingProfiles = [ 'username1', 'username2' ];
31
- const profilesFile = 'profilesFile';
32
- const profile1 = 'username1';
33
- const profile2 = 'username2';
34
- const allProfiles = [ profile1, profile2 ];
30
+ const json = { key : 'value' };
31
+ const profilesFile = 'profilesFile';
32
+ const profile1 = 'username1';
33
+ const profile2 = 'username2';
34
+ const allProfiles = [ profile1, profile2 ];
35
35
 
36
+ let existingProfiles: string[];
36
37
  let existingFiles: string[] = [];
37
38
 
38
39
  let getJSONSpy: jest.SpyInstance;
@@ -46,7 +47,9 @@ beforeAll(() => {
46
47
  beforeEach(() => {
47
48
  getJSONSpy.mockImplementation(() => json);
48
49
  writeJSONSpy.mockImplementation();
49
- existingFiles = [];
50
+
51
+ existingFiles = [];
52
+ existingProfiles = [ 'username1', 'username2' ];
50
53
  });
51
54
 
52
55
  afterAll(() => {
@@ -118,4 +121,40 @@ describe('src/lib/profiles', () => {
118
121
  expect(profiles.setProfiles).toHaveBeenCalledWith([ 'username1', 'username2', 'newProfile' ]);
119
122
  });
120
123
  });
124
+
125
+ describe('filterProfiles', () => {
126
+ it('should get profiles', () => {
127
+ original.filterProfiles();
128
+
129
+ expect(profiles.getProfiles).toHaveBeenCalled();
130
+ });
131
+
132
+ it('should output error if no profiles', () => {
133
+ existingProfiles = [];
134
+
135
+ const func = () => original.filterProfiles();
136
+
137
+ expect(func).toThrow('Please `npm run create` at least one profile');
138
+ });
139
+
140
+ it('should output error if profile does not exist', () => {
141
+ const newProfile = 'newProfile';
142
+
143
+ const func = () => original.filterProfiles(newProfile);
144
+
145
+ expect(func).toThrow(`Profile '${newProfile}' does not exist`);
146
+ });
147
+
148
+ it('should return array with requested profile if it exists', () => {
149
+ const found = original.filterProfiles(profile1);
150
+
151
+ expect(found).toEqual([ profile1 ]);
152
+ });
153
+
154
+ it('should return all profiles if nothing requested', () => {
155
+ const found = original.filterProfiles();
156
+
157
+ expect(found).toEqual(existingProfiles);
158
+ });
159
+ });
121
160
  });
package/src/lib/api.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { google } from 'googleapis';
2
2
  import type GoogleApis from 'googleapis';
3
- import { log } from '@anmiles/logger';
3
+ import { log, warn } from '@anmiles/logger';
4
4
  import sleep from '@anmiles/sleep';
5
5
  import type { AuthOptions, CommonOptions } from '../types';
6
6
  import { getAuth } from './auth';
@@ -53,7 +53,8 @@ class API<TKey extends keyof typeof allAPIs> {
53
53
  try {
54
54
  response = await selectAPI(this.api).list({ ...params, pageToken });
55
55
  } catch (ex) {
56
- if (ex.message === 'invalid_grant') {
56
+ if ((ex.message === 'invalid_grant' || ex.message === 'Invalid credentials') && !this.authOptions?.temporary) {
57
+ warn('Access token stored is invalid, re-creating...');
57
58
  deleteCredentials(this.profile);
58
59
  await this.init();
59
60
  return this.getItems(selectAPI, params, options);
@@ -74,17 +75,17 @@ class API<TKey extends keyof typeof allAPIs> {
74
75
 
75
76
  return items;
76
77
  }
78
+ }
77
79
 
78
- async revoke() {
79
- if (!this.authOptions?.temporary) {
80
- deleteCredentials(this.profile);
81
- }
80
+ async function getAPI<TKey extends keyof typeof allAPIs>(apiName: TKey, profile: string, authOptions?: AuthOptions): Promise<API<TKey>> {
81
+ if (!authOptions?.temporary) {
82
+ const writableScopes = authOptions?.scopes?.filter((scope) => !scope.endsWith('.readonly')) || [];
82
83
 
83
- return this.auth.revokeCredentials();
84
+ if (writableScopes.length > 0) {
85
+ warn(`WARNING: trying to create permanent credentials using non-readonly scopes (${writableScopes}). Permanent credentials will be stored in the file and potentially might be re-used to modify your data`);
86
+ }
84
87
  }
85
- }
86
88
 
87
- async function getAPI<TKey extends keyof typeof allAPIs>(apiName: TKey, profile: string, authOptions?: AuthOptions): Promise<API<TKey>> {
88
89
  const instance = new API<TKey>(apiName, profile, authOptions);
89
90
  await instance.init();
90
91
  return instance;
@@ -4,8 +4,8 @@ import { getProfilesFile } from './paths';
4
4
 
5
5
  import profiles from './profiles';
6
6
 
7
- export { getProfiles, setProfiles, createProfile };
8
- export default { getProfiles, setProfiles, createProfile };
7
+ export { getProfiles, setProfiles, createProfile, filterProfiles };
8
+ export default { getProfiles, setProfiles, createProfile, filterProfiles };
9
9
 
10
10
  function getProfiles(): string[] {
11
11
  const profilesFile = getProfilesFile();
@@ -31,3 +31,21 @@ function createProfile(profile: string): void {
31
31
  existingProfiles.push(profile);
32
32
  profiles.setProfiles(existingProfiles);
33
33
  }
34
+
35
+ function filterProfiles(profile?: string): string[] {
36
+ const existingProfiles = profiles.getProfiles();
37
+
38
+ if (existingProfiles.length === 0) {
39
+ throw 'Please `npm run create` at least one profile';
40
+ }
41
+
42
+ if (!profile) {
43
+ return existingProfiles;
44
+ }
45
+
46
+ if (existingProfiles.includes(profile)) {
47
+ return [ profile ];
48
+ }
49
+
50
+ throw `Profile '${profile}' does not exist`;
51
+ }