@hanivanrizky/nestjs-browser-action 0.7.0 → 0.9.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.
@@ -1,43 +1,10 @@
1
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
2
  var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
3
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
4
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
5
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
22
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
23
7
  };
24
- var __importStar = (this && this.__importStar) || (function () {
25
- var ownKeys = function(o) {
26
- ownKeys = Object.getOwnPropertyNames || function (o) {
27
- var ar = [];
28
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
- return ar;
30
- };
31
- return ownKeys(o);
32
- };
33
- return function (mod) {
34
- if (mod && mod.__esModule) return mod;
35
- var result = {};
36
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
- __setModuleDefault(result, mod);
38
- return result;
39
- };
40
- })();
41
8
  var __metadata = (this && this.__metadata) || function (k, v) {
42
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
43
10
  };
@@ -48,10 +15,11 @@ var BrowserPoolService_1;
48
15
  Object.defineProperty(exports, "__esModule", { value: true });
49
16
  exports.BrowserPoolService = void 0;
50
17
  const common_1 = require("@nestjs/common");
51
- const puppeteer = __importStar(require("puppeteer"));
18
+ const puppeteer_core_1 = require("puppeteer-core");
52
19
  const browser_action_constants_1 = require("../constants/browser-action.constants");
53
20
  const logger_util_1 = require("../helpers/logger.util");
54
21
  const delay_util_1 = require("../helpers/delay.util");
22
+ const cloak_loader_1 = require("./cloak.loader");
55
23
  let BrowserPoolService = BrowserPoolService_1 = class BrowserPoolService {
56
24
  options;
57
25
  logger;
@@ -59,18 +27,27 @@ let BrowserPoolService = BrowserPoolService_1 = class BrowserPoolService {
59
27
  available = new Set();
60
28
  inUse = new Set();
61
29
  disconnectListeners = new Map();
62
- launchOptions = {};
30
+ lastUsed = new Map();
31
+ waiters = [];
63
32
  minSize = browser_action_constants_1.DEFAULT_POOL_OPTIONS.min;
64
33
  maxSize = browser_action_constants_1.DEFAULT_POOL_OPTIONS.max;
34
+ idleTimeoutMs = browser_action_constants_1.DEFAULT_POOL_OPTIONS.idleTimeoutMs;
35
+ acquireTimeoutMs = browser_action_constants_1.DEFAULT_POOL_OPTIONS.acquireTimeoutMs;
65
36
  currentIndex = 0;
37
+ reaper;
38
+ destroyed = false;
66
39
  constructor(options) {
67
40
  this.options = options;
68
41
  this.logger = new logger_util_1.LoggerWithLevel(BrowserPoolService_1.name, options.logLevel || 'log');
69
42
  }
70
43
  async onModuleInit() {
71
- this.launchOptions = this.options.launchOptions || {};
72
44
  this.minSize = this.options.pool?.min || browser_action_constants_1.DEFAULT_POOL_OPTIONS.min;
73
45
  this.maxSize = this.options.pool?.max || browser_action_constants_1.DEFAULT_POOL_OPTIONS.max;
46
+ this.idleTimeoutMs =
47
+ this.options.pool?.idleTimeoutMs ?? browser_action_constants_1.DEFAULT_POOL_OPTIONS.idleTimeoutMs;
48
+ this.acquireTimeoutMs =
49
+ this.options.pool?.acquireTimeoutMs ??
50
+ browser_action_constants_1.DEFAULT_POOL_OPTIONS.acquireTimeoutMs;
74
51
  this.validateRemoteOptions(this.options.remote);
75
52
  const remote = this.options.remote;
76
53
  if (remote?.browserURL) {
@@ -80,7 +57,7 @@ let BrowserPoolService = BrowserPoolService_1 = class BrowserPoolService {
80
57
  this.logger.log(`Browser mode: Remote CDP (WebSocket: ${remote.browserWSEndpoint})`);
81
58
  }
82
59
  else {
83
- this.logger.log('Browser mode: Local Puppeteer');
60
+ this.logger.log('Browser mode: Local CloakBrowser (stealth Chromium)');
84
61
  }
85
62
  this.logger.warn('Call app.enableShutdownHooks() in main.ts to ensure graceful browser cleanup on Ctrl+C');
86
63
  this.logger.log(`Initializing browser pool (min: ${this.minSize}, max: ${this.maxSize})`);
@@ -88,9 +65,35 @@ let BrowserPoolService = BrowserPoolService_1 = class BrowserPoolService {
88
65
  browsers.forEach((browser) => {
89
66
  this.pool.push(browser);
90
67
  this.available.add(browser);
68
+ this.touch(browser);
91
69
  });
70
+ this.startReaper();
92
71
  this.logger.log(`Browser pool initialized with ${this.pool.length} browsers`);
93
72
  }
73
+ touch(browser) {
74
+ this.lastUsed.set(browser, Date.now());
75
+ }
76
+ startReaper() {
77
+ if (this.reaper || this.idleTimeoutMs <= 0)
78
+ return;
79
+ this.reaper = setInterval(() => this.reapIdle(), this.idleTimeoutMs);
80
+ this.reaper.unref?.();
81
+ }
82
+ reapIdle() {
83
+ if (this.destroyed)
84
+ return;
85
+ const now = Date.now();
86
+ for (const browser of Array.from(this.available)) {
87
+ if (this.pool.length <= this.minSize)
88
+ break;
89
+ const last = this.lastUsed.get(browser) ?? now;
90
+ if (now - last >= this.idleTimeoutMs) {
91
+ this.evict(browser);
92
+ void this.closeBrowser(browser);
93
+ this.logger.debug('Reaped idle browser');
94
+ }
95
+ }
96
+ }
94
97
  getLogLevel() {
95
98
  return this.logger.getLogLevel();
96
99
  }
@@ -110,14 +113,45 @@ let BrowserPoolService = BrowserPoolService_1 = class BrowserPoolService {
110
113
  if (this.options.remote) {
111
114
  return await this.connectWithRetry(this.options.remote);
112
115
  }
113
- const browser = await puppeteer.launch(this.launchOptions);
116
+ const browser = await this.launchLocal();
114
117
  const disconnectHandler = () => {
115
- this.logger.warn('Browser disconnected');
118
+ this.logger.warn('Browser disconnected; evicting from pool');
119
+ void this.handleDisconnect(browser);
116
120
  };
117
121
  browser.on('disconnected', disconnectHandler);
118
122
  this.disconnectListeners.set(browser, disconnectHandler);
119
123
  return browser;
120
124
  }
125
+ async launchLocal(cloakOverride) {
126
+ const { launch, launchPersistentContext } = await (0, cloak_loader_1.loadCloakPuppeteer)();
127
+ const cloak = {
128
+ ...(this.options.cloak ?? {}),
129
+ ...(cloakOverride ?? {}),
130
+ };
131
+ const cloakOptions = {
132
+ ...cloak,
133
+ launchOptions: {
134
+ ...(cloak.launchOptions ?? {}),
135
+ ...this.options.launchOptions,
136
+ },
137
+ };
138
+ return cloak.userDataDir
139
+ ? await launchPersistentContext({
140
+ ...cloakOptions,
141
+ userDataDir: cloak.userDataDir,
142
+ })
143
+ : await launch(cloakOptions);
144
+ }
145
+ async createDedicatedBrowser(cloakOverride) {
146
+ if (this.options.remote) {
147
+ throw new Error('Per-call cloak override is not supported in remote CDP mode');
148
+ }
149
+ this.logger.debug('Launching dedicated (off-pool) browser');
150
+ return await this.launchLocal(cloakOverride);
151
+ }
152
+ async destroyDedicatedBrowser(browser) {
153
+ await this.closeBrowser(browser);
154
+ }
121
155
  async connectWithRetry(remoteOptions) {
122
156
  const { browserURL, browserWSEndpoint, retryMax = browser_action_constants_1.DEFAULT_REMOTE_OPTIONS.retryMax, retryDelay = browser_action_constants_1.DEFAULT_REMOTE_OPTIONS.retryDelay, } = remoteOptions;
123
157
  const connectOptions = {};
@@ -131,9 +165,10 @@ let BrowserPoolService = BrowserPoolService_1 = class BrowserPoolService {
131
165
  for (let attempt = 1; attempt <= retryMax; attempt++) {
132
166
  try {
133
167
  this.logger.debug(`Connecting to remote Chrome (attempt ${attempt}/${retryMax})`);
134
- const browser = await puppeteer.connect(connectOptions);
168
+ const browser = await (0, puppeteer_core_1.connect)(connectOptions);
135
169
  const disconnectHandler = () => {
136
- this.logger.warn('Remote Chrome disconnected');
170
+ this.logger.warn('Remote Chrome disconnected; evicting from pool');
171
+ void this.handleDisconnect(browser);
137
172
  };
138
173
  browser.on('disconnected', disconnectHandler);
139
174
  this.disconnectListeners.set(browser, disconnectHandler);
@@ -151,20 +186,23 @@ let BrowserPoolService = BrowserPoolService_1 = class BrowserPoolService {
151
186
  throw new Error(`Failed to connect to remote Chrome after ${retryMax} attempts: ${lastError?.message}`);
152
187
  }
153
188
  async acquire() {
154
- if (this.available.size === 0) {
189
+ for (;;) {
190
+ if (this.available.size > 0) {
191
+ const browser = this.getNextAvailable();
192
+ this.available.delete(browser);
193
+ this.inUse.add(browser);
194
+ this.touch(browser);
195
+ return browser;
196
+ }
155
197
  if (this.pool.length < this.maxSize) {
156
198
  const browser = await this.createBrowser();
157
199
  this.pool.push(browser);
158
- this.available.add(browser);
159
200
  this.inUse.add(browser);
201
+ this.touch(browser);
160
202
  return browser;
161
203
  }
162
204
  await this.waitForAvailable();
163
205
  }
164
- const browser = this.getNextAvailable();
165
- this.available.delete(browser);
166
- this.inUse.add(browser);
167
- return browser;
168
206
  }
169
207
  getNextAvailable() {
170
208
  const browsers = Array.from(this.available);
@@ -173,19 +211,76 @@ let BrowserPoolService = BrowserPoolService_1 = class BrowserPoolService {
173
211
  return browser;
174
212
  }
175
213
  waitForAvailable() {
176
- return new Promise((resolve) => {
177
- const checkInterval = setInterval(() => {
178
- if (this.available.size > 0) {
179
- clearInterval(checkInterval);
180
- resolve();
181
- }
182
- }, browser_action_constants_1.AVAILABILITY_CHECK_INTERVAL_MS);
214
+ return new Promise((resolve, reject) => {
215
+ const waiter = { resolve, reject };
216
+ if (this.acquireTimeoutMs > 0) {
217
+ waiter.timer = setTimeout(() => {
218
+ const idx = this.waiters.indexOf(waiter);
219
+ if (idx >= 0)
220
+ this.waiters.splice(idx, 1);
221
+ reject(new Error(`Timed out acquiring browser after ${this.acquireTimeoutMs}ms (pool exhausted)`));
222
+ }, this.acquireTimeoutMs);
223
+ }
224
+ this.waiters.push(waiter);
183
225
  });
184
226
  }
227
+ signalWaiter() {
228
+ const waiter = this.waiters.shift();
229
+ if (waiter) {
230
+ if (waiter.timer)
231
+ clearTimeout(waiter.timer);
232
+ waiter.resolve();
233
+ }
234
+ }
185
235
  release(browser) {
186
236
  if (this.inUse.has(browser)) {
187
237
  this.inUse.delete(browser);
188
238
  this.available.add(browser);
239
+ this.touch(browser);
240
+ }
241
+ this.signalWaiter();
242
+ }
243
+ evict(browser) {
244
+ this.pool = this.pool.filter((b) => b !== browser);
245
+ this.available.delete(browser);
246
+ this.inUse.delete(browser);
247
+ this.lastUsed.delete(browser);
248
+ const handler = this.disconnectListeners.get(browser);
249
+ if (handler) {
250
+ browser.off('disconnected', handler);
251
+ this.disconnectListeners.delete(browser);
252
+ }
253
+ }
254
+ async closeBrowser(browser) {
255
+ try {
256
+ if (browser.connected) {
257
+ if (this.options.remote) {
258
+ await browser.disconnect();
259
+ }
260
+ else {
261
+ await browser.close();
262
+ }
263
+ }
264
+ }
265
+ catch {
266
+ this.logger.error('Error closing browser');
267
+ }
268
+ }
269
+ async handleDisconnect(browser) {
270
+ this.evict(browser);
271
+ if (this.destroyed)
272
+ return;
273
+ try {
274
+ while (this.pool.length < this.minSize && !this.destroyed) {
275
+ const replacement = await this.createBrowser();
276
+ this.pool.push(replacement);
277
+ this.available.add(replacement);
278
+ this.touch(replacement);
279
+ this.signalWaiter();
280
+ }
281
+ }
282
+ catch {
283
+ this.logger.error('Failed to recreate browser after disconnect');
189
284
  }
190
285
  }
191
286
  getPoolSize() {
@@ -195,6 +290,17 @@ let BrowserPoolService = BrowserPoolService_1 = class BrowserPoolService {
195
290
  return this.available.size;
196
291
  }
197
292
  async onModuleDestroy() {
293
+ this.destroyed = true;
294
+ if (this.reaper) {
295
+ clearInterval(this.reaper);
296
+ this.reaper = undefined;
297
+ }
298
+ while (this.waiters.length > 0) {
299
+ const waiter = this.waiters.shift();
300
+ if (waiter.timer)
301
+ clearTimeout(waiter.timer);
302
+ waiter.reject(new Error('Browser pool is shutting down'));
303
+ }
198
304
  const isRemote = !!this.options.remote;
199
305
  this.logger.log(isRemote
200
306
  ? 'Disconnecting all remote CDP browsers'
@@ -223,6 +329,7 @@ let BrowserPoolService = BrowserPoolService_1 = class BrowserPoolService {
223
329
  this.available.clear();
224
330
  this.inUse.clear();
225
331
  this.disconnectListeners.clear();
332
+ this.lastUsed.clear();
226
333
  this.logger.log('Browser pool shut down');
227
334
  }
228
335
  };
@@ -1 +1 @@
1
- {"version":3,"file":"browser-pool.service.js","sourceRoot":"","sources":["../../src/services/browser-pool.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser-pool.service.js","sourceRoot":"","sources":["../../src/services/browser-pool.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare const loadCloakPuppeteer: () => Promise<typeof import("cloakbrowser/puppeteer", { with: { "resolution-mode": "import" } })>;
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.loadCloakPuppeteer = void 0;
4
+ const loadCloakPuppeteer = () => import('cloakbrowser/puppeteer');
5
+ exports.loadCloakPuppeteer = loadCloakPuppeteer;
6
+ //# sourceMappingURL=cloak.loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloak.loader.js","sourceRoot":"","sources":["../../src/services/cloak.loader.ts"],"names":[],"mappings":";;;AAGO,MAAM,kBAAkB,GAAG,GAAG,EAAE,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC;AAA5D,QAAA,kBAAkB,sBAA0C"}
@@ -1,4 +1,4 @@
1
- import type { Page } from 'puppeteer';
1
+ import type { Page } from 'puppeteer-core';
2
2
  import type { BrowserActionOptions } from '../interfaces/browser-action-options';
3
3
  import type { CookieSaveOptions, CookieLoadOptions, CookieSession, CookieSessionInfo } from '../interfaces/cookie-options';
4
4
  export declare class CookieService {
@@ -1,14 +1,16 @@
1
- import type { Browser, Page, WaitForOptions } from 'puppeteer';
1
+ import type { Browser, Page, WaitForOptions } from 'puppeteer-core';
2
2
  import { BrowserManagerService } from './browser-manager.service';
3
3
  import type { LogLevel } from '@nestjs/common';
4
+ import type { CloakOptions } from '../interfaces/browser-action-options';
4
5
  export declare class PageService {
5
6
  private readonly browserManager;
6
7
  private readonly logger;
7
8
  private currentBrowser?;
8
9
  private currentPage?;
10
+ private dedicated;
9
11
  constructor(browserManager: BrowserManagerService);
10
- createPage(): Promise<Page>;
11
- navigateTo(url: string, options?: WaitForOptions): Promise<Page>;
12
+ createPage(cloak?: CloakOptions): Promise<Page>;
13
+ navigateTo(url: string, options?: WaitForOptions, cloak?: CloakOptions): Promise<Page>;
12
14
  closePage(): Promise<void>;
13
15
  getCurrentPage(): Page | undefined;
14
16
  getCurrentBrowser(): Browser | undefined;
@@ -19,19 +19,28 @@ let PageService = PageService_1 = class PageService {
19
19
  logger;
20
20
  currentBrowser;
21
21
  currentPage;
22
+ dedicated = false;
22
23
  constructor(browserManager) {
23
24
  this.browserManager = browserManager;
24
25
  this.logger = new logger_util_1.LoggerWithLevel(PageService_1.name, this.browserManager.getLogLevel());
25
26
  }
26
- async createPage() {
27
+ async createPage(cloak) {
27
28
  this.logger.debug('Creating new page');
28
- this.currentBrowser = await this.browserManager.getBrowser();
29
+ if (cloak) {
30
+ this.currentBrowser =
31
+ await this.browserManager.getDedicatedBrowser(cloak);
32
+ this.dedicated = true;
33
+ }
34
+ else {
35
+ this.currentBrowser = await this.browserManager.getBrowser();
36
+ this.dedicated = false;
37
+ }
29
38
  this.currentPage = await this.currentBrowser.newPage();
30
39
  return this.currentPage;
31
40
  }
32
- async navigateTo(url, options) {
41
+ async navigateTo(url, options, cloak) {
33
42
  if (!this.currentPage) {
34
- await this.createPage();
43
+ await this.createPage(cloak);
35
44
  }
36
45
  this.logger.debug(`Navigating to ${url}`);
37
46
  if (this.currentPage) {
@@ -46,8 +55,14 @@ let PageService = PageService_1 = class PageService {
46
55
  this.currentPage = undefined;
47
56
  }
48
57
  if (this.currentBrowser) {
49
- this.browserManager.releaseBrowser(this.currentBrowser);
58
+ if (this.dedicated) {
59
+ await this.browserManager.destroyDedicatedBrowser(this.currentBrowser);
60
+ }
61
+ else {
62
+ this.browserManager.releaseBrowser(this.currentBrowser);
63
+ }
50
64
  this.currentBrowser = undefined;
65
+ this.dedicated = false;
51
66
  }
52
67
  }
53
68
  getCurrentPage() {
@@ -1 +1 @@
1
- {"version":3,"file":"page-service.js","sourceRoot":"","sources":["../../src/services/page-service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAmD;AAEnD,uEAAkE;AAElE,wDAAyD;AAGlD,IAAM,WAAW,mBAAjB,MAAM,WAAW;IAKO;IAJZ,MAAM,CAAkB;IACjC,cAAc,CAAW;IACzB,WAAW,CAAQ;IAE3B,YAA6B,cAAqC;QAArC,mBAAc,GAAd,cAAc,CAAuB;QAChE,IAAI,CAAC,MAAM,GAAG,IAAI,6BAAe,CAC/B,aAAW,CAAC,IAAI,EAChB,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAClC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACvC,IAAI,CAAC,cAAc,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC;QAC7D,IAAI,CAAC,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;QACvD,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,GAAW,EAAE,OAAwB;QACpD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QAC1B,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,GAAG,EAAE,CAAC,CAAC;QAC1C,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC,WAAW,CAAC;QAC1B,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,SAAS;QACb,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;YAC/B,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;QAC/B,CAAC;QACD,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACxD,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;QAClC,CAAC;IACH,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;IACnC,CAAC;CACF,CAAA;AArDY,kCAAW;sBAAX,WAAW;IADvB,IAAA,mBAAU,EAAC,EAAE,KAAK,EAAE,cAAK,CAAC,SAAS,EAAE,CAAC;qCAMQ,+CAAqB;GALvD,WAAW,CAqDvB"}
1
+ {"version":3,"file":"page-service.js","sourceRoot":"","sources":["../../src/services/page-service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAmD;AAEnD,uEAAkE;AAElE,wDAAyD;AAIlD,IAAM,WAAW,mBAAjB,MAAM,WAAW;IAMO;IALZ,MAAM,CAAkB;IACjC,cAAc,CAAW;IACzB,WAAW,CAAQ;IACnB,SAAS,GAAG,KAAK,CAAC;IAE1B,YAA6B,cAAqC;QAArC,mBAAc,GAAd,cAAc,CAAuB;QAChE,IAAI,CAAC,MAAM,GAAG,IAAI,6BAAe,CAC/B,aAAW,CAAC,IAAI,EAChB,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAClC,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAAoB;QACnC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACvC,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,cAAc;gBACjB,MAAM,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;YACvD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACxB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,cAAc,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC;YAC7D,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACzB,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;QACvD,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,UAAU,CACd,GAAW,EACX,OAAwB,EACxB,KAAoB;QAEpB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,GAAG,EAAE,CAAC,CAAC;QAC1C,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAC1C,OAAO,IAAI,CAAC,WAAW,CAAC;QAC1B,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,SAAS;QACb,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;YAC/B,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;QAC/B,CAAC;QACD,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,MAAM,IAAI,CAAC,cAAc,CAAC,uBAAuB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YACzE,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC1D,CAAC;YACD,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;YAChC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACzB,CAAC;IACH,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;IACnC,CAAC;CACF,CAAA;AAtEY,kCAAW;sBAAX,WAAW;IADvB,IAAA,mBAAU,EAAC,EAAE,KAAK,EAAE,cAAK,CAAC,SAAS,EAAE,CAAC;qCAOQ,+CAAqB;GANvD,WAAW,CAsEvB"}