@ukwhatn/wikidot 4.0.2 → 4.0.3

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ukwhatn/wikidot",
3
- "version": "4.0.2",
3
+ "version": "4.0.3",
4
4
  "description": "TypeScript library for interacting with Wikidot sites",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -1,105 +0,0 @@
1
- import { createRequire } from "node:module";
2
- var __create = Object.create;
3
- var __getProtoOf = Object.getPrototypeOf;
4
- var __defProp = Object.defineProperty;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __toESM = (mod, isNodeMode, target) => {
8
- target = mod != null ? __create(__getProtoOf(mod)) : {};
9
- const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
10
- for (let key of __getOwnPropNames(mod))
11
- if (!__hasOwnProp.call(to, key))
12
- __defProp(to, key, {
13
- get: () => mod[key],
14
- enumerable: true
15
- });
16
- return to;
17
- };
18
- var __legacyDecorateClassTS = function(decorators, target, key, desc) {
19
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function")
21
- r = Reflect.decorate(decorators, target, key, desc);
22
- else
23
- for (var i = decorators.length - 1;i >= 0; i--)
24
- if (d = decorators[i])
25
- r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
26
- return c > 3 && r && Object.defineProperty(target, key, r), r;
27
- };
28
- var __require = /* @__PURE__ */ createRequire(import.meta.url);
29
-
30
- // src/common/errors/base.ts
31
- class WikidotError extends Error {
32
- name;
33
- constructor(message) {
34
- super(message);
35
- this.name = this.constructor.name;
36
- Object.setPrototypeOf(this, new.target.prototype);
37
- }
38
- }
39
-
40
- class UnexpectedError extends WikidotError {
41
- }
42
-
43
- // src/common/errors/amc.ts
44
- class AMCError extends WikidotError {
45
- }
46
-
47
- class AMCHttpError extends AMCError {
48
- statusCode;
49
- constructor(message, statusCode) {
50
- super(message);
51
- this.statusCode = statusCode;
52
- }
53
- }
54
-
55
- class WikidotStatusError extends AMCError {
56
- statusCode;
57
- constructor(message, statusCode) {
58
- super(message);
59
- this.statusCode = statusCode;
60
- }
61
- }
62
-
63
- class ResponseDataError extends AMCError {
64
- }
65
-
66
- // src/common/errors/session.ts
67
- class SessionError extends WikidotError {
68
- }
69
-
70
- class SessionCreateError extends SessionError {
71
- }
72
-
73
- class LoginRequiredError extends SessionError {
74
- constructor(message = "Login is required for this operation") {
75
- super(message);
76
- }
77
- }
78
-
79
- // src/common/errors/target.ts
80
- class NotFoundException extends WikidotError {
81
- }
82
-
83
- class TargetExistsError extends WikidotError {
84
- }
85
-
86
- class TargetError extends WikidotError {
87
- }
88
-
89
- class ForbiddenError extends WikidotError {
90
- }
91
-
92
- class NoElementError extends WikidotError {
93
- }
94
- // src/common/types/result.ts
95
- import { err, errAsync, ok, okAsync, ResultAsync } from "neverthrow";
96
- var wdOk = (value) => ok(value);
97
- var wdErr = (error) => err(error);
98
- var wdOkAsync = (value) => okAsync(value);
99
- var wdErrAsync = (error) => errAsync(error);
100
- var fromPromise = (promise, errorMapper) => ResultAsync.fromPromise(promise, errorMapper);
101
- var combineResults = (results) => ResultAsync.combine(results);
102
- export { __toESM, __legacyDecorateClassTS, __require, WikidotError, UnexpectedError, AMCError, AMCHttpError, WikidotStatusError, ResponseDataError, SessionError, SessionCreateError, LoginRequiredError, NotFoundException, TargetExistsError, TargetError, ForbiddenError, NoElementError, wdOk, wdErr, wdOkAsync, wdErrAsync, fromPromise, combineResults };
103
-
104
- //# debugId=A3764A26372D2C2364756E2164756E21
105
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL2NvbW1vbi9lcnJvcnMvYmFzZS50cyIsICJzcmMvY29tbW9uL2Vycm9ycy9hbWMudHMiLCAic3JjL2NvbW1vbi9lcnJvcnMvc2Vzc2lvbi50cyIsICJzcmMvY29tbW9uL2Vycm9ycy90YXJnZXQudHMiLCAic3JjL2NvbW1vbi90eXBlcy9yZXN1bHQudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbCiAgICAiLyoqXG4gKiBXaWtpZG9044Op44Kk44OW44Op44Oq44Gu5Z+65bqV44Ko44Op44O844Kv44Op44K5XG4gKiDlhajjgabjga7jgqvjgrnjgr/jg6Djgqjjg6njg7zjga/jgZPjga7jgq/jg6njgrnjgpLntpnmib/jgZnjgotcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFdpa2lkb3RFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgLyoqIOOCqOODqeODvOWQjSAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcGFyYW0gbWVzc2FnZSAtIOOCqOODqeODvOODoeODg+OCu+ODvOOCuFxuICAgKi9cbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nKSB7XG4gICAgc3VwZXIobWVzc2FnZSk7XG4gICAgdGhpcy5uYW1lID0gdGhpcy5jb25zdHJ1Y3Rvci5uYW1lO1xuICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBuZXcudGFyZ2V0LnByb3RvdHlwZSk7XG4gIH1cbn1cblxuLyoqXG4gKiDkuojmnJ/jgZvjgazjgqjjg6njg7xcbiAqIOWGhemDqOeahOOBquS4jeaVtOWQiOOChOODkOOCsOOCkuihqOOBmVxuICovXG5leHBvcnQgY2xhc3MgVW5leHBlY3RlZEVycm9yIGV4dGVuZHMgV2lraWRvdEVycm9yIHt9XG4iLAogICAgImltcG9ydCB7IFdpa2lkb3RFcnJvciB9IGZyb20gJy4vYmFzZSc7XG5cbi8qKlxuICogQWpheCBNb2R1bGUgQ29ubmVjdG9y6Zai6YCj44Gu5Z+65bqV44Ko44Op44O8XG4gKi9cbmV4cG9ydCBjbGFzcyBBTUNFcnJvciBleHRlbmRzIFdpa2lkb3RFcnJvciB7fVxuXG4vKipcbiAqIEhUVFDjgrnjg4bjg7zjgr/jgrnjgrPjg7zjg4njgqjjg6njg7xcbiAqIEFNQ+OBuOOBruODquOCr+OCqOOCueODiOOBjEhUVFDjgqjjg6njg7zjgaflpLHmlZfjgZfjgZ/loLTlkIhcbiAqL1xuZXhwb3J0IGNsYXNzIEFNQ0h0dHBFcnJvciBleHRlbmRzIEFNQ0Vycm9yIHtcbiAgLyoqIEhUVFDjgrnjg4bjg7zjgr/jgrnjgrPjg7zjg4kgKi9cbiAgcHVibGljIHJlYWRvbmx5IHN0YXR1c0NvZGU6IG51bWJlcjtcblxuICAvKipcbiAgICogQHBhcmFtIG1lc3NhZ2UgLSDjgqjjg6njg7zjg6Hjg4Pjgrvjg7zjgrhcbiAgICogQHBhcmFtIHN0YXR1c0NvZGUgLSBIVFRQ44K544OG44O844K/44K544Kz44O844OJXG4gICAqL1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcsIHN0YXR1c0NvZGU6IG51bWJlcikge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgIHRoaXMuc3RhdHVzQ29kZSA9IHN0YXR1c0NvZGU7XG4gIH1cbn1cblxuLyoqXG4gKiBXaWtpZG9044K544OG44O844K/44K544Kz44O844OJ44Ko44Op44O8XG4gKiBBTUPjg6zjgrnjg53jg7Pjgrnjga5zdGF0dXPjgYxva+OBp+OBquOBhOWgtOWQiFxuICovXG5leHBvcnQgY2xhc3MgV2lraWRvdFN0YXR1c0Vycm9yIGV4dGVuZHMgQU1DRXJyb3Ige1xuICAvKiogV2lraWRvdOOCueODhuODvOOCv+OCueOCs+ODvOODieaWh+Wtl+WIlyAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc3RhdHVzQ29kZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcGFyYW0gbWVzc2FnZSAtIOOCqOODqeODvOODoeODg+OCu+ODvOOCuFxuICAgKiBAcGFyYW0gc3RhdHVzQ29kZSAtIOOCueODhuODvOOCv+OCueOCs+ODvOODie+8iOS+izogJ25vdF9vaycsICd0cnlfYWdhaW4n77yJXG4gICAqL1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcsIHN0YXR1c0NvZGU6IHN0cmluZykge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgIHRoaXMuc3RhdHVzQ29kZSA9IHN0YXR1c0NvZGU7XG4gIH1cbn1cblxuLyoqXG4gKiDjg6zjgrnjg53jg7Pjgrnjg4fjg7zjgr/jgqjjg6njg7xcbiAqIOODrOOCueODneODs+OCueOBruODkeODvOOCueOBq+WkseaVl+OBl+OBn+WgtOWQiFxuICovXG5leHBvcnQgY2xhc3MgUmVzcG9uc2VEYXRhRXJyb3IgZXh0ZW5kcyBBTUNFcnJvciB7fVxuIiwKICAgICJpbXBvcnQgeyBXaWtpZG90RXJyb3IgfSBmcm9tICcuL2Jhc2UnO1xuXG4vKipcbiAqIOOCu+ODg+OCt+ODp+ODs+mWoumAo+OBruWfuuW6leOCqOODqeODvFxuICovXG5leHBvcnQgY2xhc3MgU2Vzc2lvbkVycm9yIGV4dGVuZHMgV2lraWRvdEVycm9yIHt9XG5cbi8qKlxuICog44K744OD44K344On44Oz5L2c5oiQ5aSx5pWX44Ko44Op44O8XG4gKiDjg63jgrDjgqTjg7PoqabooYzjgYzlpLHmlZfjgZfjgZ/loLTlkIjjgavjgrnjg63jg7xcbiAqL1xuZXhwb3J0IGNsYXNzIFNlc3Npb25DcmVhdGVFcnJvciBleHRlbmRzIFNlc3Npb25FcnJvciB7fVxuXG4vKipcbiAqIOODreOCsOOCpOODs+W/hemgiOOCqOODqeODvFxuICog6KqN6Ki844GM5b+F6KaB44Gq5pON5L2c44KS5pyq44Ot44Kw44Kk44Oz54q25oWL44Gn5a6f6KGM44GX44Gf5aC05ZCI44Gr44K544Ot44O8XG4gKi9cbmV4cG9ydCBjbGFzcyBMb2dpblJlcXVpcmVkRXJyb3IgZXh0ZW5kcyBTZXNzaW9uRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlID0gJ0xvZ2luIGlzIHJlcXVpcmVkIGZvciB0aGlzIG9wZXJhdGlvbicpIHtcbiAgICBzdXBlcihtZXNzYWdlKTtcbiAgfVxufVxuIiwKICAgICJpbXBvcnQgeyBXaWtpZG90RXJyb3IgfSBmcm9tICcuL2Jhc2UnO1xuXG4vKipcbiAqIOODquOCveODvOOCueacqueZuuimi+OCqOODqeODvFxuICog6KaB5rGC44GV44KM44Gf44Oq44K944O844K544GM5a2Y5Zyo44GX44Gq44GE5aC05ZCIXG4gKi9cbmV4cG9ydCBjbGFzcyBOb3RGb3VuZEV4Y2VwdGlvbiBleHRlbmRzIFdpa2lkb3RFcnJvciB7fVxuXG4vKipcbiAqIOODquOCveODvOOCueaXouWtmOOCqOODqeODvFxuICog5L2c5oiQ44GX44KI44GG44Go44GX44Gf44Oq44K944O844K544GM5pei44Gr5a2Y5Zyo44GZ44KL5aC05ZCIXG4gKi9cbmV4cG9ydCBjbGFzcyBUYXJnZXRFeGlzdHNFcnJvciBleHRlbmRzIFdpa2lkb3RFcnJvciB7fVxuXG4vKipcbiAqIOOCv+ODvOOCsuODg+ODiOeKtuaFi+OCqOODqeODvFxuICog44Oq44K944O844K544GM5pON5L2c5LiN5Y+v6IO944Gq54q25oWL44Gu5aC05ZCI77yI44Ot44OD44Kv5Lit44Gq44Gp77yJXG4gKi9cbmV4cG9ydCBjbGFzcyBUYXJnZXRFcnJvciBleHRlbmRzIFdpa2lkb3RFcnJvciB7fVxuXG4vKipcbiAqIOOCouOCr+OCu+OCueaLkuWQpuOCqOODqeODvFxuICog5qip6ZmQ5LiN6Laz44Gn5pON5L2c44GM5ouS5ZCm44GV44KM44Gf5aC05ZCIXG4gKi9cbmV4cG9ydCBjbGFzcyBGb3JiaWRkZW5FcnJvciBleHRlbmRzIFdpa2lkb3RFcnJvciB7fVxuXG4vKipcbiAqIEhUTUzopoHntKDmnKrnmbropovjgqjjg6njg7xcbiAqIOODkeODvOOCueS4reOBq+W/heimgeOBquimgee0oOOBjOimi+OBpOOBi+OCieOBquOBhOWgtOWQiFxuICovXG5leHBvcnQgY2xhc3MgTm9FbGVtZW50RXJyb3IgZXh0ZW5kcyBXaWtpZG90RXJyb3Ige31cbiIsCiAgICAiaW1wb3J0IHsgZXJyLCBlcnJBc3luYywgb2ssIG9rQXN5bmMsIHR5cGUgUmVzdWx0LCBSZXN1bHRBc3luYyB9IGZyb20gJ25ldmVydGhyb3cnO1xuaW1wb3J0IHR5cGUgeyBXaWtpZG90RXJyb3IgfSBmcm9tICcuLi9lcnJvcnMnO1xuXG4vKiog5ZCM5pyfUmVzdWx05Z6L44Ko44Kk44Oq44Ki44K5ICovXG5leHBvcnQgdHlwZSBXaWtpZG90UmVzdWx0PFQ+ID0gUmVzdWx0PFQsIFdpa2lkb3RFcnJvcj47XG5cbi8qKiDpnZ7lkIzmnJ9SZXN1bHTlnovjgqjjgqTjg6rjgqLjgrkgKi9cbmV4cG9ydCB0eXBlIFdpa2lkb3RSZXN1bHRBc3luYzxUPiA9IFJlc3VsdEFzeW5jPFQsIFdpa2lkb3RFcnJvcj47XG5cbi8qKiDmiJDlip9SZXN1bHTjgpLnlJ/miJAgKi9cbmV4cG9ydCBjb25zdCB3ZE9rID0gPFQ+KHZhbHVlOiBUKTogV2lraWRvdFJlc3VsdDxUPiA9PiBvayh2YWx1ZSk7XG5cbi8qKiDjgqjjg6njg7xSZXN1bHTjgpLnlJ/miJAgKi9cbmV4cG9ydCBjb25zdCB3ZEVyciA9IDxFIGV4dGVuZHMgV2lraWRvdEVycm9yPihlcnJvcjogRSk6IFdpa2lkb3RSZXN1bHQ8bmV2ZXI+ID0+IGVycihlcnJvcik7XG5cbi8qKiDmiJDlip9SZXN1bHRBc3luY+OCkueUn+aIkCAqL1xuZXhwb3J0IGNvbnN0IHdkT2tBc3luYyA9IDxUPih2YWx1ZTogVCk6IFdpa2lkb3RSZXN1bHRBc3luYzxUPiA9PiBva0FzeW5jKHZhbHVlKTtcblxuLyoqIOOCqOODqeODvFJlc3VsdEFzeW5j44KS55Sf5oiQICovXG5leHBvcnQgY29uc3Qgd2RFcnJBc3luYyA9IDxFIGV4dGVuZHMgV2lraWRvdEVycm9yPihlcnJvcjogRSk6IFdpa2lkb3RSZXN1bHRBc3luYzxuZXZlcj4gPT5cbiAgZXJyQXN5bmMoZXJyb3IpO1xuXG4vKiogUHJvbWlzZeOBi+OCieOBruWkieaPmyAqL1xuZXhwb3J0IGNvbnN0IGZyb21Qcm9taXNlID0gPFQ+KFxuICBwcm9taXNlOiBQcm9taXNlPFQ+LFxuICBlcnJvck1hcHBlcjogKGVycm9yOiB1bmtub3duKSA9PiBXaWtpZG90RXJyb3Jcbik6IFdpa2lkb3RSZXN1bHRBc3luYzxUPiA9PiBSZXN1bHRBc3luYy5mcm9tUHJvbWlzZShwcm9taXNlLCBlcnJvck1hcHBlcik7XG5cbi8qKiDopIfmlbBSZXN1bHRBc3luY+OBrue1kOWQiCAqL1xuZXhwb3J0IGNvbnN0IGNvbWJpbmVSZXN1bHRzID0gPFQ+KHJlc3VsdHM6IFdpa2lkb3RSZXN1bHRBc3luYzxUPltdKTogV2lraWRvdFJlc3VsdEFzeW5jPFRbXT4gPT5cbiAgUmVzdWx0QXN5bmMuY29tYmluZShyZXN1bHRzKTtcbiIKICBdLAogICJtYXBwaW5ncyI6ICI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUlPLE1BQWUscUJBQXFCLE1BQU07QUFBQSxFQUV0QjtBQUFBLEVBS3pCLFdBQVcsQ0FBQyxTQUFpQjtBQUFBLElBQzNCLE1BQU0sT0FBTztBQUFBLElBQ2IsS0FBSyxPQUFPLEtBQUssWUFBWTtBQUFBLElBQzdCLE9BQU8sZUFBZSxNQUFNLFdBQVcsU0FBUztBQUFBO0FBRXBEO0FBQUE7QUFNTyxNQUFNLHdCQUF3QixhQUFhO0FBQUM7OztBQ2pCNUMsTUFBTSxpQkFBaUIsYUFBYTtBQUFDO0FBQUE7QUFNckMsTUFBTSxxQkFBcUIsU0FBUztBQUFBLEVBRXpCO0FBQUEsRUFNaEIsV0FBVyxDQUFDLFNBQWlCLFlBQW9CO0FBQUEsSUFDL0MsTUFBTSxPQUFPO0FBQUEsSUFDYixLQUFLLGFBQWE7QUFBQTtBQUV0QjtBQUFBO0FBTU8sTUFBTSwyQkFBMkIsU0FBUztBQUFBLEVBRS9CO0FBQUEsRUFNaEIsV0FBVyxDQUFDLFNBQWlCLFlBQW9CO0FBQUEsSUFDL0MsTUFBTSxPQUFPO0FBQUEsSUFDYixLQUFLLGFBQWE7QUFBQTtBQUV0QjtBQUFBO0FBTU8sTUFBTSwwQkFBMEIsU0FBUztBQUFDOzs7QUMxQzFDLE1BQU0scUJBQXFCLGFBQWE7QUFBQztBQUFBO0FBTXpDLE1BQU0sMkJBQTJCLGFBQWE7QUFBQztBQUFBO0FBTS9DLE1BQU0sMkJBQTJCLGFBQWE7QUFBQSxFQUNuRCxXQUFXLENBQUMsVUFBVSx3Q0FBd0M7QUFBQSxJQUM1RCxNQUFNLE9BQU87QUFBQTtBQUVqQjs7O0FDZk8sTUFBTSwwQkFBMEIsYUFBYTtBQUFDO0FBQUE7QUFNOUMsTUFBTSwwQkFBMEIsYUFBYTtBQUFDO0FBQUE7QUFNOUMsTUFBTSxvQkFBb0IsYUFBYTtBQUFDO0FBQUE7QUFNeEMsTUFBTSx1QkFBdUIsYUFBYTtBQUFDO0FBQUE7QUFNM0MsTUFBTSx1QkFBdUIsYUFBYTtBQUFDOztBQzlCbEQ7QUFVTyxJQUFNLE9BQU8sQ0FBSSxVQUErQixHQUFHLEtBQUs7QUFHeEQsSUFBTSxRQUFRLENBQXlCLFVBQW1DLElBQUksS0FBSztBQUduRixJQUFNLFlBQVksQ0FBSSxVQUFvQyxRQUFRLEtBQUs7QUFHdkUsSUFBTSxhQUFhLENBQXlCLFVBQ2pELFNBQVMsS0FBSztBQUdULElBQU0sY0FBYyxDQUN6QixTQUNBLGdCQUMwQixZQUFZLFlBQVksU0FBUyxXQUFXO0FBR2pFLElBQU0saUJBQWlCLENBQUksWUFDaEMsWUFBWSxRQUFRLE9BQU87IiwKICAiZGVidWdJZCI6ICJBMzc2NEEyNjM3MkQyQzIzNjQ3NTZFMjE2NDc1NkUyMSIsCiAgIm5hbWVzIjogW10KfQ==
@@ -1,172 +0,0 @@
1
- import {
2
- NoElementError,
3
- UnexpectedError,
4
- fromPromise
5
- } from "./index-7dqqxq7x.js";
6
-
7
- // src/module/page/page-revision.ts
8
- import * as cheerio from "cheerio";
9
- class PageRevision {
10
- page;
11
- id;
12
- revNo;
13
- createdBy;
14
- createdAt;
15
- comment;
16
- _source = null;
17
- _html = null;
18
- constructor(data) {
19
- this.page = data.page;
20
- this.id = data.id;
21
- this.revNo = data.revNo;
22
- this.createdBy = data.createdBy;
23
- this.createdAt = data.createdAt;
24
- this.comment = data.comment;
25
- }
26
- isSourceAcquired() {
27
- return this._source !== null;
28
- }
29
- isHtmlAcquired() {
30
- return this._html !== null;
31
- }
32
- get source() {
33
- return this._source;
34
- }
35
- set source(value) {
36
- this._source = value;
37
- }
38
- get html() {
39
- return this._html;
40
- }
41
- set html(value) {
42
- this._html = value;
43
- }
44
- getSource() {
45
- return fromPromise((async () => {
46
- if (this._source) {
47
- return this._source.wikiText;
48
- }
49
- const result = await this.page.site.amcRequest([
50
- {
51
- moduleName: "history/PageSourceModule",
52
- revision_id: this.id
53
- }
54
- ]);
55
- if (result.isErr()) {
56
- throw result.error;
57
- }
58
- const response = result.value[0];
59
- if (!response) {
60
- throw new NoElementError("Empty response from PageSourceModule");
61
- }
62
- const html = String(response.body ?? "");
63
- const $ = cheerio.load(html);
64
- const sourceElem = $("div.page-source");
65
- if (sourceElem.length === 0) {
66
- throw new NoElementError("Source element not found");
67
- }
68
- const sourceText = sourceElem.text();
69
- return sourceText;
70
- })(), (error) => {
71
- if (error instanceof NoElementError) {
72
- return error;
73
- }
74
- return new UnexpectedError(`Failed to get revision source: ${String(error)}`);
75
- });
76
- }
77
- getHtml() {
78
- return fromPromise((async () => {
79
- if (this._html) {
80
- return this._html;
81
- }
82
- const result = await this.page.site.amcRequest([
83
- {
84
- moduleName: "history/PageVersionModule",
85
- revision_id: this.id
86
- }
87
- ]);
88
- if (result.isErr()) {
89
- throw result.error;
90
- }
91
- const response = result.value[0];
92
- if (!response) {
93
- throw new NoElementError("Empty response from PageVersionModule");
94
- }
95
- const html = String(response.body ?? "");
96
- const $ = cheerio.load(html);
97
- const contentElem = $("#page-content");
98
- if (contentElem.length === 0) {
99
- this._html = html;
100
- return html;
101
- }
102
- const contentHtml = contentElem.html() ?? "";
103
- this._html = contentHtml;
104
- return contentHtml;
105
- })(), (error) => {
106
- if (error instanceof NoElementError) {
107
- return error;
108
- }
109
- return new UnexpectedError(`Failed to get revision HTML: ${String(error)}`);
110
- });
111
- }
112
- toString() {
113
- return `PageRevision(id=${this.id}, revNo=${this.revNo})`;
114
- }
115
- }
116
-
117
- class PageRevisionCollection extends Array {
118
- page;
119
- constructor(page, revisions) {
120
- super();
121
- this.page = page;
122
- if (revisions) {
123
- this.push(...revisions);
124
- }
125
- }
126
- findById(id) {
127
- return this.find((revision) => revision.id === id);
128
- }
129
- getSources() {
130
- return fromPromise((async () => {
131
- const results = await Promise.all(this.map(async (revision) => {
132
- const result = await revision.getSource();
133
- if (result.isErr()) {
134
- throw result.error;
135
- }
136
- return result.value;
137
- }));
138
- return results;
139
- })(), (error) => {
140
- if (error instanceof NoElementError) {
141
- return error;
142
- }
143
- return new UnexpectedError(`Failed to get sources: ${String(error)}`);
144
- });
145
- }
146
- getHtmls() {
147
- return fromPromise((async () => {
148
- const results = await Promise.all(this.map(async (revision) => {
149
- const result = await revision.getHtml();
150
- if (result.isErr()) {
151
- throw result.error;
152
- }
153
- return result.value;
154
- }));
155
- return results;
156
- })(), (error) => {
157
- if (error instanceof NoElementError) {
158
- return error;
159
- }
160
- return new UnexpectedError(`Failed to get HTMLs: ${String(error)}`);
161
- });
162
- }
163
- }
164
- export {
165
- PageRevisionCollection,
166
- PageRevision
167
- };
168
-
169
- export { PageRevision, PageRevisionCollection };
170
-
171
- //# debugId=2CCA5AB31F653C1264756E2164756E21
172
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsic3JjL21vZHVsZS9wYWdlL3BhZ2UtcmV2aXNpb24udHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbCiAgICAiaW1wb3J0ICogYXMgY2hlZXJpbyBmcm9tICdjaGVlcmlvJztcbmltcG9ydCB7IE5vRWxlbWVudEVycm9yLCBVbmV4cGVjdGVkRXJyb3IgfSBmcm9tICcuLi8uLi9jb21tb24vZXJyb3JzJztcbmltcG9ydCB7IGZyb21Qcm9taXNlLCB0eXBlIFdpa2lkb3RSZXN1bHRBc3luYyB9IGZyb20gJy4uLy4uL2NvbW1vbi90eXBlcyc7XG5pbXBvcnQgdHlwZSB7IEFic3RyYWN0VXNlciB9IGZyb20gJy4uL3VzZXInO1xuaW1wb3J0IHR5cGUgeyBQYWdlIH0gZnJvbSAnLi9wYWdlJztcbmltcG9ydCB0eXBlIHsgUGFnZVNvdXJjZSB9IGZyb20gJy4vcGFnZS1zb3VyY2UnO1xuXG4vKipcbiAqIOODmuODvOOCuOODquODk+OCuOODp+ODs+ODh+ODvOOCv1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFBhZ2VSZXZpc2lvbkRhdGEge1xuICBwYWdlOiBQYWdlO1xuICBpZDogbnVtYmVyO1xuICByZXZObzogbnVtYmVyO1xuICBjcmVhdGVkQnk6IEFic3RyYWN0VXNlcjtcbiAgY3JlYXRlZEF0OiBEYXRlO1xuICBjb21tZW50OiBzdHJpbmc7XG59XG5cbi8qKlxuICog44Oa44O844K444Gu44Oq44OT44K444On44Oz77yI57eo6ZuG5bGl5q2044Gu44OQ44O844K444On44Oz77yJXG4gKi9cbmV4cG9ydCBjbGFzcyBQYWdlUmV2aXNpb24ge1xuICAvKiog44Oq44OT44K444On44Oz44GM5bGe44GZ44KL44Oa44O844K4ICovXG4gIHB1YmxpYyByZWFkb25seSBwYWdlOiBQYWdlO1xuXG4gIC8qKiDjg6rjg5Pjgrjjg6fjg7NJRCAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaWQ6IG51bWJlcjtcblxuICAvKiog44Oq44OT44K444On44Oz55Wq5Y+3ICovXG4gIHB1YmxpYyByZWFkb25seSByZXZObzogbnVtYmVyO1xuXG4gIC8qKiDjg6rjg5Pjgrjjg6fjg7PkvZzmiJDogIUgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNyZWF0ZWRCeTogQWJzdHJhY3RVc2VyO1xuXG4gIC8qKiDjg6rjg5Pjgrjjg6fjg7PkvZzmiJDml6XmmYIgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNyZWF0ZWRBdDogRGF0ZTtcblxuICAvKiog57eo6ZuG44Kz44Oh44Oz44OIICovXG4gIHB1YmxpYyByZWFkb25seSBjb21tZW50OiBzdHJpbmc7XG5cbiAgLyoqIOOCveODvOOCueOCs+ODvOODie+8iOWGhemDqOOCreODo+ODg+OCt+ODpe+8iSAqL1xuICBwcml2YXRlIF9zb3VyY2U6IFBhZ2VTb3VyY2UgfCBudWxsID0gbnVsbDtcblxuICAvKiogSFRNTOihqOekuu+8iOWGhemDqOOCreODo+ODg+OCt+ODpe+8iSAqL1xuICBwcml2YXRlIF9odG1sOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICBjb25zdHJ1Y3RvcihkYXRhOiBQYWdlUmV2aXNpb25EYXRhKSB7XG4gICAgdGhpcy5wYWdlID0gZGF0YS5wYWdlO1xuICAgIHRoaXMuaWQgPSBkYXRhLmlkO1xuICAgIHRoaXMucmV2Tm8gPSBkYXRhLnJldk5vO1xuICAgIHRoaXMuY3JlYXRlZEJ5ID0gZGF0YS5jcmVhdGVkQnk7XG4gICAgdGhpcy5jcmVhdGVkQXQgPSBkYXRhLmNyZWF0ZWRBdDtcbiAgICB0aGlzLmNvbW1lbnQgPSBkYXRhLmNvbW1lbnQ7XG4gIH1cblxuICAvKipcbiAgICog44K944O844K544Kz44O844OJ44GM5Y+W5b6X5riI44G/44GL44Gp44GG44GLXG4gICAqL1xuICBpc1NvdXJjZUFjcXVpcmVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9zb3VyY2UgIT09IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogSFRNTOihqOekuuOBjOWPluW+l+a4iOOBv+OBi+OBqeOBhuOBi1xuICAgKi9cbiAgaXNIdG1sQWNxdWlyZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2h0bWwgIT09IG51bGw7XG4gIH1cblxuICAvKipcbiAgICog44K944O844K544Kz44O844OJ77yI44Kt44Oj44OD44K344Ol5riI44G/77yJ44KS5Y+W5b6XXG4gICAqL1xuICBnZXQgc291cmNlKCk6IFBhZ2VTb3VyY2UgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fc291cmNlO1xuICB9XG5cbiAgLyoqXG4gICAqIOOCveODvOOCueOCs+ODvOODieOCkuioreWumlxuICAgKi9cbiAgc2V0IHNvdXJjZSh2YWx1ZTogUGFnZVNvdXJjZSB8IG51bGwpIHtcbiAgICB0aGlzLl9zb3VyY2UgPSB2YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIVE1M6KGo56S677yI44Kt44Oj44OD44K344Ol5riI44G/77yJ44KS5Y+W5b6XXG4gICAqL1xuICBnZXQgaHRtbCgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5faHRtbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBIVE1M6KGo56S644KS6Kit5a6aXG4gICAqL1xuICBzZXQgaHRtbCh2YWx1ZTogc3RyaW5nIHwgbnVsbCkge1xuICAgIHRoaXMuX2h0bWwgPSB2YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiDjg6rjg5Pjgrjjg6fjg7Pjga7jgr3jg7zjgrnjgpLlj5blvpfjgZnjgovvvIhSRVYtMDAx77yJXG4gICAqIEByZXR1cm5zIOOCveODvOOCueaWh+Wtl+WIl1xuICAgKi9cbiAgZ2V0U291cmNlKCk6IFdpa2lkb3RSZXN1bHRBc3luYzxzdHJpbmc+IHtcbiAgICByZXR1cm4gZnJvbVByb21pc2UoXG4gICAgICAoYXN5bmMgKCkgPT4ge1xuICAgICAgICAvLyDjgq3jg6Pjg4Pjgrfjg6XjgYzjgYLjgozjgbDov5TjgZlcbiAgICAgICAgaWYgKHRoaXMuX3NvdXJjZSkge1xuICAgICAgICAgIHJldHVybiB0aGlzLl9zb3VyY2Uud2lraVRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnBhZ2Uuc2l0ZS5hbWNSZXF1ZXN0KFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBtb2R1bGVOYW1lOiAnaGlzdG9yeS9QYWdlU291cmNlTW9kdWxlJyxcbiAgICAgICAgICAgIHJldmlzaW9uX2lkOiB0aGlzLmlkLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0pO1xuXG4gICAgICAgIGlmIChyZXN1bHQuaXNFcnIoKSkge1xuICAgICAgICAgIHRocm93IHJlc3VsdC5lcnJvcjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gcmVzdWx0LnZhbHVlWzBdO1xuICAgICAgICBpZiAoIXJlc3BvbnNlKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IE5vRWxlbWVudEVycm9yKCdFbXB0eSByZXNwb25zZSBmcm9tIFBhZ2VTb3VyY2VNb2R1bGUnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGh0bWwgPSBTdHJpbmcocmVzcG9uc2UuYm9keSA/PyAnJyk7XG4gICAgICAgIGNvbnN0ICQgPSBjaGVlcmlvLmxvYWQoaHRtbCk7XG5cbiAgICAgICAgLy8g44K944O844K544Kz44O844OJ44GvPGRpdiBjbGFzcz1cInBhZ2Utc291cmNlXCI+5YaF44Gr44GC44KLXG4gICAgICAgIGNvbnN0IHNvdXJjZUVsZW0gPSAkKCdkaXYucGFnZS1zb3VyY2UnKTtcbiAgICAgICAgaWYgKHNvdXJjZUVsZW0ubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IE5vRWxlbWVudEVycm9yKCdTb3VyY2UgZWxlbWVudCBub3QgZm91bmQnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHNvdXJjZVRleHQgPSBzb3VyY2VFbGVtLnRleHQoKTtcbiAgICAgICAgcmV0dXJuIHNvdXJjZVRleHQ7XG4gICAgICB9KSgpLFxuICAgICAgKGVycm9yKSA9PiB7XG4gICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIE5vRWxlbWVudEVycm9yKSB7XG4gICAgICAgICAgcmV0dXJuIGVycm9yO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgVW5leHBlY3RlZEVycm9yKGBGYWlsZWQgdG8gZ2V0IHJldmlzaW9uIHNvdXJjZTogJHtTdHJpbmcoZXJyb3IpfWApO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICog44Oq44OT44K444On44Oz44GuSFRNTOOCkuWPluW+l+OBmeOCi++8iFJFVi0wMDLvvIlcbiAgICogQHJldHVybnMgSFRNTOaWh+Wtl+WIl1xuICAgKi9cbiAgZ2V0SHRtbCgpOiBXaWtpZG90UmVzdWx0QXN5bmM8c3RyaW5nPiB7XG4gICAgcmV0dXJuIGZyb21Qcm9taXNlKFxuICAgICAgKGFzeW5jICgpID0+IHtcbiAgICAgICAgLy8g44Kt44Oj44OD44K344Ol44GM44GC44KM44Gw6L+U44GZXG4gICAgICAgIGlmICh0aGlzLl9odG1sKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuX2h0bWw7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnBhZ2Uuc2l0ZS5hbWNSZXF1ZXN0KFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBtb2R1bGVOYW1lOiAnaGlzdG9yeS9QYWdlVmVyc2lvbk1vZHVsZScsXG4gICAgICAgICAgICByZXZpc2lvbl9pZDogdGhpcy5pZCxcbiAgICAgICAgICB9LFxuICAgICAgICBdKTtcblxuICAgICAgICBpZiAocmVzdWx0LmlzRXJyKCkpIHtcbiAgICAgICAgICB0aHJvdyByZXN1bHQuZXJyb3I7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZXNwb25zZSA9IHJlc3VsdC52YWx1ZVswXTtcbiAgICAgICAgaWYgKCFyZXNwb25zZSkge1xuICAgICAgICAgIHRocm93IG5ldyBOb0VsZW1lbnRFcnJvcignRW1wdHkgcmVzcG9uc2UgZnJvbSBQYWdlVmVyc2lvbk1vZHVsZScpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaHRtbCA9IFN0cmluZyhyZXNwb25zZS5ib2R5ID8/ICcnKTtcbiAgICAgICAgY29uc3QgJCA9IGNoZWVyaW8ubG9hZChodG1sKTtcblxuICAgICAgICAvLyBIVE1M44Kz44Oz44OG44Oz44OE44GvPGRpdiBpZD1cInBhZ2UtY29udGVudFwiPuWGheOBq+OBguOCi1xuICAgICAgICBjb25zdCBjb250ZW50RWxlbSA9ICQoJyNwYWdlLWNvbnRlbnQnKTtcbiAgICAgICAgaWYgKGNvbnRlbnRFbGVtLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIC8vIHBhZ2UtY29udGVudOOBjOOBquOBhOWgtOWQiOOBr2JvZHnlhajkvZPjgpLov5TjgZlcbiAgICAgICAgICB0aGlzLl9odG1sID0gaHRtbDtcbiAgICAgICAgICByZXR1cm4gaHRtbDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGNvbnRlbnRIdG1sID0gY29udGVudEVsZW0uaHRtbCgpID8/ICcnO1xuICAgICAgICB0aGlzLl9odG1sID0gY29udGVudEh0bWw7XG4gICAgICAgIHJldHVybiBjb250ZW50SHRtbDtcbiAgICAgIH0pKCksXG4gICAgICAoZXJyb3IpID0+IHtcbiAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgTm9FbGVtZW50RXJyb3IpIHtcbiAgICAgICAgICByZXR1cm4gZXJyb3I7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBVbmV4cGVjdGVkRXJyb3IoYEZhaWxlZCB0byBnZXQgcmV2aXNpb24gSFRNTDogJHtTdHJpbmcoZXJyb3IpfWApO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiBgUGFnZVJldmlzaW9uKGlkPSR7dGhpcy5pZH0sIHJldk5vPSR7dGhpcy5yZXZOb30pYDtcbiAgfVxufVxuXG4vKipcbiAqIOODmuODvOOCuOODquODk+OCuOODp+ODs+OCs+ODrOOCr+OCt+ODp+ODs1xuICovXG5leHBvcnQgY2xhc3MgUGFnZVJldmlzaW9uQ29sbGVjdGlvbiBleHRlbmRzIEFycmF5PFBhZ2VSZXZpc2lvbj4ge1xuICBwdWJsaWMgcmVhZG9ubHkgcGFnZTogUGFnZSB8IG51bGw7XG5cbiAgY29uc3RydWN0b3IocGFnZTogUGFnZSB8IG51bGwsIHJldmlzaW9ucz86IFBhZ2VSZXZpc2lvbltdKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnBhZ2UgPSBwYWdlO1xuICAgIGlmIChyZXZpc2lvbnMpIHtcbiAgICAgIHRoaXMucHVzaCguLi5yZXZpc2lvbnMpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBJROOBp+aknOe0olxuICAgKiBAcGFyYW0gaWQgLSDjg6rjg5Pjgrjjg6fjg7NJRFxuICAgKiBAcmV0dXJucyDjg6rjg5Pjgrjjg6fjg7PvvIjlrZjlnKjjgZfjgarjgYTloLTlkIjjga91bmRlZmluZWTvvIlcbiAgICovXG4gIGZpbmRCeUlkKGlkOiBudW1iZXIpOiBQYWdlUmV2aXNpb24gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmZpbmQoKHJldmlzaW9uKSA9PiByZXZpc2lvbi5pZCA9PT0gaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIOWFqOODquODk+OCuOODp+ODs+OBruOCveODvOOCueOCkuS4gOaLrOWPluW+l+OBmeOCi1xuICAgKiBAcmV0dXJucyDjgr3jg7zjgrnmloflrZfliJfjga7phY3liJdcbiAgICovXG4gIGdldFNvdXJjZXMoKTogV2lraWRvdFJlc3VsdEFzeW5jPHN0cmluZ1tdPiB7XG4gICAgcmV0dXJuIGZyb21Qcm9taXNlKFxuICAgICAgKGFzeW5jICgpID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0cyA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICAgIHRoaXMubWFwKGFzeW5jIChyZXZpc2lvbikgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmV2aXNpb24uZ2V0U291cmNlKCk7XG4gICAgICAgICAgICBpZiAocmVzdWx0LmlzRXJyKCkpIHtcbiAgICAgICAgICAgICAgdGhyb3cgcmVzdWx0LmVycm9yO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC52YWx1ZTtcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gcmVzdWx0cztcbiAgICAgIH0pKCksXG4gICAgICAoZXJyb3IpID0+IHtcbiAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgTm9FbGVtZW50RXJyb3IpIHtcbiAgICAgICAgICByZXR1cm4gZXJyb3I7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBVbmV4cGVjdGVkRXJyb3IoYEZhaWxlZCB0byBnZXQgc291cmNlczogJHtTdHJpbmcoZXJyb3IpfWApO1xuICAgICAgfVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICog5YWo44Oq44OT44K444On44Oz44GuSFRNTOOCkuS4gOaLrOWPluW+l+OBmeOCi1xuICAgKiBAcmV0dXJucyBIVE1M5paH5a2X5YiX44Gu6YWN5YiXXG4gICAqL1xuICBnZXRIdG1scygpOiBXaWtpZG90UmVzdWx0QXN5bmM8c3RyaW5nW10+IHtcbiAgICByZXR1cm4gZnJvbVByb21pc2UoXG4gICAgICAoYXN5bmMgKCkgPT4ge1xuICAgICAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGwoXG4gICAgICAgICAgdGhpcy5tYXAoYXN5bmMgKHJldmlzaW9uKSA9PiB7XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZXZpc2lvbi5nZXRIdG1sKCk7XG4gICAgICAgICAgICBpZiAocmVzdWx0LmlzRXJyKCkpIHtcbiAgICAgICAgICAgICAgdGhyb3cgcmVzdWx0LmVycm9yO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC52YWx1ZTtcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgICByZXR1cm4gcmVzdWx0cztcbiAgICAgIH0pKCksXG4gICAgICAoZXJyb3IpID0+IHtcbiAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgTm9FbGVtZW50RXJyb3IpIHtcbiAgICAgICAgICByZXR1cm4gZXJyb3I7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBVbmV4cGVjdGVkRXJyb3IoYEZhaWxlZCB0byBnZXQgSFRNTHM6ICR7U3RyaW5nKGVycm9yKX1gKTtcbiAgICAgIH1cbiAgICApO1xuICB9XG59XG4iCiAgXSwKICAibWFwcGluZ3MiOiAiOzs7Ozs7O0FBQUE7QUFzQk8sTUFBTSxhQUFhO0FBQUEsRUFFUjtBQUFBLEVBR0E7QUFBQSxFQUdBO0FBQUEsRUFHQTtBQUFBLEVBR0E7QUFBQSxFQUdBO0FBQUEsRUFHUixVQUE2QjtBQUFBLEVBRzdCLFFBQXVCO0FBQUEsRUFFL0IsV0FBVyxDQUFDLE1BQXdCO0FBQUEsSUFDbEMsS0FBSyxPQUFPLEtBQUs7QUFBQSxJQUNqQixLQUFLLEtBQUssS0FBSztBQUFBLElBQ2YsS0FBSyxRQUFRLEtBQUs7QUFBQSxJQUNsQixLQUFLLFlBQVksS0FBSztBQUFBLElBQ3RCLEtBQUssWUFBWSxLQUFLO0FBQUEsSUFDdEIsS0FBSyxVQUFVLEtBQUs7QUFBQTtBQUFBLEVBTXRCLGdCQUFnQixHQUFZO0FBQUEsSUFDMUIsT0FBTyxLQUFLLFlBQVk7QUFBQTtBQUFBLEVBTTFCLGNBQWMsR0FBWTtBQUFBLElBQ3hCLE9BQU8sS0FBSyxVQUFVO0FBQUE7QUFBQSxNQU1wQixNQUFNLEdBQXNCO0FBQUEsSUFDOUIsT0FBTyxLQUFLO0FBQUE7QUFBQSxNQU1WLE1BQU0sQ0FBQyxPQUEwQjtBQUFBLElBQ25DLEtBQUssVUFBVTtBQUFBO0FBQUEsTUFNYixJQUFJLEdBQWtCO0FBQUEsSUFDeEIsT0FBTyxLQUFLO0FBQUE7QUFBQSxNQU1WLElBQUksQ0FBQyxPQUFzQjtBQUFBLElBQzdCLEtBQUssUUFBUTtBQUFBO0FBQUEsRUFPZixTQUFTLEdBQStCO0FBQUEsSUFDdEMsT0FBTyxhQUNKLFlBQVk7QUFBQSxNQUVYLElBQUksS0FBSyxTQUFTO0FBQUEsUUFDaEIsT0FB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