@hanivanrizky/nestjs-browser-action 0.7.0 → 0.8.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/README.md CHANGED
@@ -7,7 +7,7 @@
7
7
  >
8
8
  > This project is currently in **experimental** stage and intended for **personal use only**. The API is subject to change, and production use is not recommended.
9
9
 
10
- A NestJS module that provides Puppeteer-based browser automation with configurable options, connection pooling, and data cleansing capabilities.
10
+ A NestJS module that provides stealth browser automation (CloakBrowser + puppeteer-core) with configurable options, connection pooling, and data cleansing capabilities.
11
11
 
12
12
  ## Features
13
13
 
@@ -19,6 +19,7 @@ A NestJS module that provides Puppeteer-based browser automation with configurab
19
19
  - (°_°)! **Shadow DOM**: Support for web components
20
20
  - (^_^) **Type-Safe**: Full TypeScript support with generics
21
21
  - (^^) **Remote Chrome**: Connect to remote Chrome instances via CDP (browserURL/browserWSEndpoint)
22
+ - (•̀ᴗ•́) **Stealth**: Local launches use CloakBrowser stealth Chromium (proxy, humanize, geoip, timezone/locale spoofing)
22
23
 
23
24
  ## Installation
24
25
 
@@ -28,6 +29,8 @@ A NestJS module that provides Puppeteer-based browser automation with configurab
28
29
  npm install @hanivanrizky/nestjs-browser-action
29
30
  # or
30
31
  yarn add @hanivanrizky/nestjs-browser-action
32
+ # or
33
+ pnpm add @hanivanrizky/nestjs-browser-action
31
34
  ```
32
35
 
33
36
  ### From GitHub
@@ -35,9 +38,9 @@ yarn add @hanivanrizky/nestjs-browser-action
35
38
  ```bash
36
39
  npm install https://github.com/Hanivan/nestjs-browser-action.git
37
40
  # or
38
- yarn add https://github.com/Hanivan/nestjs-browser-action.git
41
+ pnpm add https://github.com/Hanivan/nestjs-browser-action.git
39
42
  # or using SSH
40
- yarn add git@github.com:Hanivan/nestjs-browser-action.git
43
+ pnpm add git@github.com:Hanivan/nestjs-browser-action.git
41
44
  ```
42
45
 
43
46
  ## Quick Start
@@ -179,6 +182,32 @@ const workflow = {
179
182
  };
180
183
  ```
181
184
 
185
+ ### Stealth (CloakBrowser)
186
+
187
+ Local browsers launch through CloakBrowser stealth Chromium. Configure anti-detect
188
+ features via the `cloak` option:
189
+
190
+ ```typescript
191
+ BrowserActionModule.forRoot({
192
+ cloak: {
193
+ proxy: { server: 'http://host:port', username: 'user', password: 'pass' },
194
+ humanize: true, // human-like mouse/typing
195
+ geoip: true, // spoof geolocation from proxy IP
196
+ timezone: 'America/New_York', // spoof timezone
197
+ locale: 'en-US', // spoof locale
198
+ stealthArgs: true, // anti-detect Chromium flags
199
+ extensionPaths: ['/path/ext'], // load unpacked extensions
200
+ userDataDir: './profile', // persistent profile (launchPersistentContext)
201
+ launchOptions: { headless: true, args: ['--no-sandbox'] }, // raw puppeteer-core passthrough
202
+ },
203
+ pool: { min: 2, max: 5 },
204
+ })
205
+ ```
206
+
207
+ `launchOptions` (top-level) is also forwarded to CloakBrowser's `launchOptions`
208
+ passthrough for backward compatibility. `cloak` is ignored when `remote` is set
209
+ (remote uses plain CDP connect).
210
+
182
211
  ### Remote Chrome Connection
183
212
 
184
213
  Connect to remote Chrome instances via Chrome DevTools Protocol (CDP):
@@ -271,16 +300,16 @@ const workflow = await this.actionHelpers.scrapeWithActions<{
271
300
 
272
301
  ```bash
273
302
  # Build
274
- yarn build
303
+ pnpm build
275
304
 
276
305
  # Run tests
277
- yarn test
306
+ pnpm test
278
307
 
279
308
  # Lint code
280
- yarn lint
309
+ pnpm lint
281
310
 
282
311
  # Format code
283
- yarn format
312
+ pnpm format
284
313
  ```
285
314
 
286
315
  ### Git Hooks
@@ -1,4 +1,4 @@
1
- import type { Page, ScreenshotOptions, PDFOptions } from 'puppeteer';
1
+ import type { Page, ScreenshotOptions, PDFOptions } from 'puppeteer-core';
2
2
  import { PageService } from '../services/page-service';
3
3
  import { CookieService } from '../services/cookie.service';
4
4
  import { CleansingService } from '../services/cleansing.service';
@@ -1,6 +1,10 @@
1
1
  import type { LogLevel } from '@nestjs/common';
2
- import type { BrowserContextOptions, LaunchOptions } from 'puppeteer';
2
+ import type { BrowserContextOptions, LaunchOptions } from 'puppeteer-core';
3
+ import type { LaunchOptions as CloakLaunchOptions } from 'cloakbrowser';
3
4
  import { PoolOptions } from './pool-options';
5
+ export type CloakOptions = CloakLaunchOptions & {
6
+ userDataDir?: string;
7
+ };
4
8
  export interface CookieOptions {
5
9
  enabled?: boolean;
6
10
  cookiesDir?: string;
@@ -16,6 +20,7 @@ export interface RemoteOptions {
16
20
  }
17
21
  export interface BrowserActionOptions {
18
22
  launchOptions?: LaunchOptions;
23
+ cloak?: CloakOptions;
19
24
  contextOptions?: BrowserContextOptions;
20
25
  pool?: PoolOptions;
21
26
  multiContext?: boolean;
@@ -1,4 +1,4 @@
1
- import type { Cookie } from 'puppeteer';
1
+ import type { Cookie } from 'puppeteer-core';
2
2
  export interface CookieSaveOptions<TMetadata extends Record<string, unknown> = Record<string, unknown>> {
3
3
  cookiesDir?: string;
4
4
  overwrite?: boolean;
@@ -1,4 +1,4 @@
1
- import type { Browser } from 'puppeteer';
1
+ import type { Browser } from 'puppeteer-core';
2
2
  import { BrowserPoolService } from './browser-pool.service';
3
3
  import type { LogLevel } from '@nestjs/common';
4
4
  export declare class BrowserManagerService {
@@ -1,5 +1,5 @@
1
1
  import { OnModuleInit, OnModuleDestroy } from '@nestjs/common';
2
- import type { Browser } from 'puppeteer';
2
+ import type { Browser } from 'puppeteer-core';
3
3
  import type { BrowserActionOptions } from '../interfaces/browser-action-options';
4
4
  import type { LogLevel } from '@nestjs/common';
5
5
  export declare class BrowserPoolService implements OnModuleInit, OnModuleDestroy {
@@ -9,7 +9,6 @@ export declare class BrowserPoolService implements OnModuleInit, OnModuleDestroy
9
9
  private available;
10
10
  private inUse;
11
11
  private disconnectListeners;
12
- private launchOptions;
13
12
  private minSize;
14
13
  private maxSize;
15
14
  private currentIndex;
@@ -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,7 +27,6 @@ let BrowserPoolService = BrowserPoolService_1 = class BrowserPoolService {
59
27
  available = new Set();
60
28
  inUse = new Set();
61
29
  disconnectListeners = new Map();
62
- launchOptions = {};
63
30
  minSize = browser_action_constants_1.DEFAULT_POOL_OPTIONS.min;
64
31
  maxSize = browser_action_constants_1.DEFAULT_POOL_OPTIONS.max;
65
32
  currentIndex = 0;
@@ -68,7 +35,6 @@ let BrowserPoolService = BrowserPoolService_1 = class BrowserPoolService {
68
35
  this.logger = new logger_util_1.LoggerWithLevel(BrowserPoolService_1.name, options.logLevel || 'log');
69
36
  }
70
37
  async onModuleInit() {
71
- this.launchOptions = this.options.launchOptions || {};
72
38
  this.minSize = this.options.pool?.min || browser_action_constants_1.DEFAULT_POOL_OPTIONS.min;
73
39
  this.maxSize = this.options.pool?.max || browser_action_constants_1.DEFAULT_POOL_OPTIONS.max;
74
40
  this.validateRemoteOptions(this.options.remote);
@@ -80,7 +46,7 @@ let BrowserPoolService = BrowserPoolService_1 = class BrowserPoolService {
80
46
  this.logger.log(`Browser mode: Remote CDP (WebSocket: ${remote.browserWSEndpoint})`);
81
47
  }
82
48
  else {
83
- this.logger.log('Browser mode: Local Puppeteer');
49
+ this.logger.log('Browser mode: Local CloakBrowser (stealth Chromium)');
84
50
  }
85
51
  this.logger.warn('Call app.enableShutdownHooks() in main.ts to ensure graceful browser cleanup on Ctrl+C');
86
52
  this.logger.log(`Initializing browser pool (min: ${this.minSize}, max: ${this.maxSize})`);
@@ -110,7 +76,21 @@ let BrowserPoolService = BrowserPoolService_1 = class BrowserPoolService {
110
76
  if (this.options.remote) {
111
77
  return await this.connectWithRetry(this.options.remote);
112
78
  }
113
- const browser = await puppeteer.launch(this.launchOptions);
79
+ const { launch, launchPersistentContext } = await (0, cloak_loader_1.loadCloakPuppeteer)();
80
+ const cloak = this.options.cloak ?? {};
81
+ const cloakOptions = {
82
+ ...cloak,
83
+ launchOptions: {
84
+ ...(cloak.launchOptions ?? {}),
85
+ ...this.options.launchOptions,
86
+ },
87
+ };
88
+ const browser = cloak.userDataDir
89
+ ? await launchPersistentContext({
90
+ ...cloakOptions,
91
+ userDataDir: cloak.userDataDir,
92
+ })
93
+ : await launch(cloakOptions);
114
94
  const disconnectHandler = () => {
115
95
  this.logger.warn('Browser disconnected');
116
96
  };
@@ -131,7 +111,7 @@ let BrowserPoolService = BrowserPoolService_1 = class BrowserPoolService {
131
111
  for (let attempt = 1; attempt <= retryMax; attempt++) {
132
112
  try {
133
113
  this.logger.debug(`Connecting to remote Chrome (attempt ${attempt}/${retryMax})`);
134
- const browser = await puppeteer.connect(connectOptions);
114
+ const browser = await (0, puppeteer_core_1.connect)(connectOptions);
135
115
  const disconnectHandler = () => {
136
116
  this.logger.warn('Remote Chrome disconnected');
137
117
  };
@@ -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,4 +1,4 @@
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
4
  export declare class PageService {