@hanivanrizky/nestjs-browser-action 0.21.0 → 0.22.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.
Files changed (73) hide show
  1. package/README.md +72 -31
  2. package/dist/browser-action.module-definition.d.ts +1 -0
  3. package/dist/browser-action.module.d.ts +3 -0
  4. package/dist/browser-action.module.js +146 -27
  5. package/dist/browser-action.module.js.map +1 -1
  6. package/dist/common/index.d.ts +1 -0
  7. package/dist/common/index.js +18 -0
  8. package/dist/common/index.js.map +1 -0
  9. package/dist/common/tokens.d.ts +7 -0
  10. package/dist/common/tokens.js +36 -0
  11. package/dist/common/tokens.js.map +1 -0
  12. package/dist/decorators/index.d.ts +1 -0
  13. package/dist/decorators/index.js +1 -0
  14. package/dist/decorators/index.js.map +1 -1
  15. package/dist/decorators/inject-browser.decorator.d.ts +2 -1
  16. package/dist/decorators/inject-browser.decorator.js +2 -1
  17. package/dist/decorators/inject-browser.decorator.js.map +1 -1
  18. package/dist/decorators/inject-page-controller.decorator.d.ts +2 -0
  19. package/dist/decorators/inject-page-controller.decorator.js +8 -0
  20. package/dist/decorators/inject-page-controller.decorator.js.map +1 -0
  21. package/dist/decorators/inject-page.decorator.d.ts +2 -1
  22. package/dist/decorators/inject-page.decorator.js +2 -1
  23. package/dist/decorators/inject-page.decorator.js.map +1 -1
  24. package/dist/examples/named-browser-example.d.ts +1 -0
  25. package/dist/examples/named-browser-example.js +183 -0
  26. package/dist/examples/named-browser-example.js.map +1 -0
  27. package/dist/index.d.ts +5 -0
  28. package/dist/index.js +5 -0
  29. package/dist/index.js.map +1 -1
  30. package/dist/interfaces/browser-action-options.d.ts +1 -0
  31. package/dist/operators/capture.operator.d.ts +11 -0
  32. package/dist/operators/capture.operator.js +62 -0
  33. package/dist/operators/capture.operator.js.map +1 -0
  34. package/dist/operators/container.operator.d.ts +13 -0
  35. package/dist/operators/container.operator.js +149 -0
  36. package/dist/operators/container.operator.js.map +1 -0
  37. package/dist/operators/extraction.operator.d.ts +22 -0
  38. package/dist/operators/extraction.operator.js +204 -0
  39. package/dist/operators/extraction.operator.js.map +1 -0
  40. package/dist/operators/index.d.ts +5 -0
  41. package/dist/operators/index.js +14 -0
  42. package/dist/operators/index.js.map +1 -0
  43. package/dist/operators/pagination.operator.d.ts +24 -0
  44. package/dist/operators/pagination.operator.js +182 -0
  45. package/dist/operators/pagination.operator.js.map +1 -0
  46. package/dist/operators/workflow.operator.d.ts +35 -0
  47. package/dist/operators/workflow.operator.js +501 -0
  48. package/dist/operators/workflow.operator.js.map +1 -0
  49. package/dist/services/browser-action.service.d.ts +6 -29
  50. package/dist/services/browser-action.service.js +28 -968
  51. package/dist/services/browser-action.service.js.map +1 -1
  52. package/dist/services/browser-holder.d.ts +7 -0
  53. package/dist/services/browser-holder.js +26 -0
  54. package/dist/services/browser-holder.js.map +1 -0
  55. package/dist/services/browser-manager.service.js.map +1 -1
  56. package/dist/services/browser-pool.service.d.ts +0 -4
  57. package/dist/services/browser-pool.service.js +12 -103
  58. package/dist/services/browser-pool.service.js.map +1 -1
  59. package/dist/services/named-browser-shutdown.d.ts +9 -0
  60. package/dist/services/named-browser-shutdown.js +47 -0
  61. package/dist/services/named-browser-shutdown.js.map +1 -0
  62. package/dist/services/page-controller.d.ts +39 -0
  63. package/dist/services/page-controller.js +325 -0
  64. package/dist/services/page-controller.js.map +1 -0
  65. package/dist/services/page-session.d.ts +26 -0
  66. package/dist/services/page-session.js +135 -0
  67. package/dist/services/page-session.js.map +1 -0
  68. package/dist/services/page.service.js.map +1 -1
  69. package/dist/tsconfig.build.tsbuildinfo +1 -1
  70. package/dist/utils/browser-launcher.d.ts +6 -0
  71. package/dist/utils/browser-launcher.js +100 -0
  72. package/dist/utils/browser-launcher.js.map +1 -0
  73. package/package.json +2 -2
package/README.md CHANGED
@@ -10,7 +10,7 @@
10
10
  <a href="https://www.npmjs.com/package/@hanivanrizky/nestjs-browser-action" target="_blank"><img src="https://img.shields.io/npm/v/@hanivanrizky/nestjs-browser-action.svg" alt="NPM Version" /></a>
11
11
  <a href="https://www.npmjs.com/package/@hanivanrizky/nestjs-browser-action" target="_blank"><img src="https://img.shields.io/npm/l/@hanivanrizky/nestjs-browser-action.svg" alt="Package License" /></a>
12
12
  <a href="https://www.npmjs.com/package/@hanivanrizky/nestjs-browser-action" target="_blank"><img src="https://img.shields.io/npm/dm/@hanivanrizky/nestjs-browser-action.svg" alt="NPM Downloads" /></a>
13
- <img src="https://img.shields.io/badge/tests-410%20passed-brightgreen.svg" alt="Tests: 410 passed" />
13
+ <img src="https://img.shields.io/badge/tests-463%20passed-brightgreen.svg" alt="Tests: 463 passed" />
14
14
  </p>
15
15
 
16
16
  > **⚠️ Status: Experimental** — personal use only; API subject to change.
@@ -39,7 +39,8 @@
39
39
  - **(.\_.) Remote Chrome**: Connect to remote Chrome instances via CDP (browserURL / browserWSEndpoint)
40
40
  - **(>\_<) TLS Fingerprint**: Capture the browser's own TLS/HTTP handshake (ja3/ja4, ciphers, http2 akamai, headers) for use with `nestjs-xpath-parser`'s CycleTLS engine
41
41
  - **(☆^O^☆) TypeScript Generics**: Full generic type support for type-safe results
42
- - **(o_o) Fully Tested**: 410 tests across 39 suites
42
+ - **(o_o) Fully Tested**: 463 tests across 51 suites
43
+ - **(☆^O^☆) Named Browsers & Pages (v0.22+)**: persistent named browser/page pairs with `PageController` — cookies/state carry over across calls, no open/close per scrape
43
44
 
44
45
  ## Installation
45
46
 
@@ -53,21 +54,7 @@ npm install @hanivanrizky/nestjs-browser-action
53
54
 
54
55
  ## Quick Start
55
56
 
56
- ### Import the Module
57
-
58
- **Basic usage:**
59
-
60
- ```typescript
61
- import { Module } from '@nestjs/common';
62
- import { BrowserActionModule } from '@hanivanrizky/nestjs-browser-action';
63
-
64
- @Module({
65
- imports: [BrowserActionModule.forRoot()],
66
- })
67
- export class AppModule {}
68
- ```
69
-
70
- **With pool and cookie options:**
57
+ ### Register a Named Browser + Pages
71
58
 
72
59
  ```typescript
73
60
  import { Module } from '@nestjs/common';
@@ -75,17 +62,14 @@ import { BrowserActionModule } from '@hanivanrizky/nestjs-browser-action';
75
62
 
76
63
  @Module({
77
64
  imports: [
78
- BrowserActionModule.forRoot({
79
- pool: { min: 2, max: 10 },
80
- cookies: { enabled: true, cookiesDir: './cookies' },
81
- logLevel: 'log',
82
- }),
65
+ BrowserActionModule.forRoot({ name: 'stealth', cloak: { headless: true } }),
66
+ BrowserActionModule.forFeature(['products'], 'stealth'),
83
67
  ],
84
68
  })
85
69
  export class AppModule {}
86
70
  ```
87
71
 
88
- **Async configuration:**
72
+ **With cookies and async config:**
89
73
 
90
74
  ```typescript
91
75
  import { Module } from '@nestjs/common';
@@ -96,36 +80,41 @@ import { ConfigModule, ConfigService } from '@nestjs/config';
96
80
  imports: [
97
81
  ConfigModule.forRoot(),
98
82
  BrowserActionModule.forRootAsync({
83
+ name: 'stealth',
99
84
  imports: [ConfigModule],
100
85
  useFactory: (configService: ConfigService) => ({
101
- pool: {
102
- min: configService.get<number>('POOL_MIN', 2),
103
- max: configService.get<number>('POOL_MAX', 10),
104
- },
105
86
  cloak: {
106
87
  proxy: { server: configService.get<string>('PROXY_URL', '') },
107
88
  },
89
+ cookies: { enabled: true, cookiesDir: './cookies' },
108
90
  logLevel: configService.get<string>('LOG_LEVEL', 'log'),
109
91
  }),
110
92
  inject: [ConfigService],
111
93
  }),
94
+ BrowserActionModule.forFeature(['products'], 'stealth'),
112
95
  ],
113
96
  })
114
97
  export class AppModule {}
115
98
  ```
116
99
 
117
- ### Inject the Service
100
+ ### Inject the Page Controller
118
101
 
119
102
  ```typescript
120
103
  import { Injectable } from '@nestjs/common';
121
- import { BrowserActionService } from '@hanivanrizky/nestjs-browser-action';
104
+ import {
105
+ InjectPageController,
106
+ PageController,
107
+ } from '@hanivanrizky/nestjs-browser-action';
122
108
 
123
109
  @Injectable()
124
110
  export class YourService {
125
- constructor(private readonly browserAction: BrowserActionService) {}
111
+ constructor(
112
+ @InjectPageController('products', 'stealth')
113
+ private readonly products: PageController,
114
+ ) {}
126
115
 
127
116
  async scrapeProducts() {
128
- const result = await this.browserAction.evaluateWebsite({
117
+ const result = await this.products.evaluateWebsite({
129
118
  url: 'https://www.scrapingcourse.com/ecommerce/',
130
119
  patterns: [
131
120
  {
@@ -157,6 +146,49 @@ export class YourService {
157
146
  }
158
147
  ```
159
148
 
149
+ > Pool mode (`forRoot()`/`forRootAsync()` without `name`, plain
150
+ > `BrowserActionService`) still works but is deprecated — see
151
+ > [Named Browsers & Pages (v0.22+)](#named-browsers--pages-v022) for full
152
+ > details, decorators, and the pool → controller migration table.
153
+
154
+ ## Named Browsers & Pages (v0.22+)
155
+
156
+ Persistent, named browser + page pairs — an alternative to pool mode for
157
+ workloads that want cookies/localStorage/navigation state to carry over
158
+ between calls (login sessions, authenticated crawls) instead of a fresh
159
+ page opened and closed per scrape. Full details, decorators, auto-recreate
160
+ semantics, and a pool → controller migration table live in
161
+ [Named Browsers & Pages](docs/features/named-browsers.md).
162
+
163
+ ```typescript
164
+ import { Module, Injectable } from '@nestjs/common';
165
+ import {
166
+ BrowserActionModule,
167
+ InjectPageController,
168
+ PageController,
169
+ } from '@hanivanrizky/nestjs-browser-action';
170
+
171
+ @Module({
172
+ imports: [
173
+ BrowserActionModule.forRoot({ name: 'stealth', cloak: { headless: true } }),
174
+ BrowserActionModule.forFeature(['login', 'search'], 'stealth'),
175
+ ],
176
+ })
177
+ export class AppModule {}
178
+
179
+ @Injectable()
180
+ export class MyService {
181
+ constructor(
182
+ @InjectPageController('login', 'stealth')
183
+ private readonly login: PageController,
184
+ ) {}
185
+
186
+ async run() {
187
+ return this.login.scrape('https://example.com', { title: 'h1' });
188
+ }
189
+ }
190
+ ```
191
+
160
192
  ## Documentation
161
193
 
162
194
  ### Features
@@ -166,6 +198,7 @@ export class YourService {
166
198
  - [Data Cleaning Pipes](docs/features/pipes.md) - Transform extracted data with pipes
167
199
  - [Cookie Management](docs/features/cookies.md) - Session persistence
168
200
  - [Workflow Actions](docs/methods/workflow.md) - Declarative step-by-step automation
201
+ - [Named Browsers & Pages](docs/features/named-browsers.md) - Persistent named browser/page pairs with `PageController`
169
202
 
170
203
  ### Reference
171
204
 
@@ -331,6 +364,14 @@ pnpm format
331
364
  4. Push to the branch (`git push origin feature/yourusername/amazing-feature`)
332
365
  5. Open a Pull Request
333
366
 
367
+ ## Acknowledgments
368
+
369
+ The [Named Browsers & Pages](#named-browsers--pages-v022) DI pattern
370
+ (`forRoot({ name })` + `forFeature(pages, name)` +
371
+ `@InjectBrowser`/`@InjectPage`/`@InjectPageController`) was inspired by
372
+ [oblakstudio/nestjs-puppeteer](https://github.com/oblakstudio/nestjs-puppeteer).
373
+ Thanks to the maintainers for the clean named-instance design.
374
+
334
375
  ## License
335
376
 
336
377
  This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
@@ -4,4 +4,5 @@ export type BrowserActionModuleOptions = BrowserActionOptions;
4
4
  export interface BrowserActionAsyncModuleOptions extends Pick<ModuleMetadata, 'imports'> {
5
5
  useFactory: (...args: unknown[]) => Promise<BrowserActionModuleOptions> | BrowserActionModuleOptions;
6
6
  inject?: Array<Type | string | symbol>;
7
+ name?: string;
7
8
  }
@@ -3,6 +3,9 @@ import { BrowserActionModuleOptions, BrowserActionAsyncModuleOptions } from './b
3
3
  export declare class BrowserActionModule {
4
4
  static register(options: BrowserActionModuleOptions): DynamicModule;
5
5
  static forRoot(options: BrowserActionModuleOptions): DynamicModule;
6
+ private static forNamedBrowser;
6
7
  static forRootAsync(options: BrowserActionAsyncModuleOptions): DynamicModule;
8
+ private static forNamedBrowserAsync;
9
+ static forFeature(pages: string[], browserName?: string): DynamicModule;
7
10
  onModuleDestroy(): Promise<void>;
8
11
  }
@@ -15,7 +15,48 @@ const page_service_1 = require("./services/page.service");
15
15
  const browser_action_service_1 = require("./services/browser-action.service");
16
16
  const cookie_service_1 = require("./services/cookie.service");
17
17
  const cleansing_service_1 = require("./services/cleansing.service");
18
+ const named_browser_shutdown_1 = require("./services/named-browser-shutdown");
19
+ const browser_holder_1 = require("./services/browser-holder");
18
20
  const constants_1 = require("./constants");
21
+ const tokens_1 = require("./common/tokens");
22
+ const browser_launcher_1 = require("./utils/browser-launcher");
23
+ const logger_util_1 = require("./utils/logger.util");
24
+ const pipe_engine_1 = require("./pipes/pipe-engine");
25
+ const operators_1 = require("./operators");
26
+ const page_session_1 = require("./services/page-session");
27
+ const page_controller_1 = require("./services/page-controller");
28
+ const browser_action_constants_1 = require("./constants/browser-action.constants");
29
+ const POOL_MODE_SERVICES = [
30
+ browser_pool_service_1.BrowserPoolService,
31
+ browser_manager_service_1.BrowserManagerService,
32
+ page_service_1.PageService,
33
+ browser_action_service_1.BrowserActionService,
34
+ cookie_service_1.CookieService,
35
+ cleansing_service_1.CleansingService,
36
+ ];
37
+ const POOL_MODE_EXPORTS = [
38
+ browser_manager_service_1.BrowserManagerService,
39
+ page_service_1.PageService,
40
+ browser_action_service_1.BrowserActionService,
41
+ cookie_service_1.CookieService,
42
+ cleansing_service_1.CleansingService,
43
+ ];
44
+ function resolveLogLevel(logLevel) {
45
+ return (Array.isArray(logLevel) ? logLevel[0] : logLevel) || 'log';
46
+ }
47
+ async function launchNamedBrowser(options) {
48
+ const logger = new logger_util_1.LoggerWithLevel('BrowserActionModule', resolveLogLevel(options.logLevel));
49
+ return options.remote
50
+ ? await (0, browser_launcher_1.connectRemoteBrowser)(options.remote, logger)
51
+ : await (0, browser_launcher_1.launchLocalBrowser)(options, undefined, logger);
52
+ }
53
+ function namedBrowserHolderProvider(name) {
54
+ return {
55
+ provide: (0, tokens_1.getBrowserHolderToken)(name),
56
+ useFactory: (browser) => new browser_holder_1.BrowserHolder(browser),
57
+ inject: [(0, tokens_1.getBrowserToken)(name)],
58
+ };
59
+ }
19
60
  let BrowserActionModule = BrowserActionModule_1 = class BrowserActionModule {
20
61
  static register(options) {
21
62
  const optionsProvider = {
@@ -29,31 +70,52 @@ let BrowserActionModule = BrowserActionModule_1 = class BrowserActionModule {
29
70
  };
30
71
  }
31
72
  static forRoot(options) {
73
+ if (options.name)
74
+ return this.forNamedBrowser(options);
32
75
  const optionsProvider = {
33
76
  provide: constants_1.BROWSER_ACTION_OPTIONS,
34
77
  useValue: options,
35
78
  };
36
79
  return {
37
80
  module: BrowserActionModule_1,
81
+ providers: [optionsProvider, ...POOL_MODE_SERVICES],
82
+ exports: [...POOL_MODE_EXPORTS],
83
+ };
84
+ }
85
+ static forNamedBrowser(options) {
86
+ const name = options.name;
87
+ (0, tokens_1.claimBrowserName)(name);
88
+ if (options.remote)
89
+ (0, browser_launcher_1.validateRemoteOptions)(options.remote);
90
+ const optionsProvider = {
91
+ provide: (0, tokens_1.getNamedOptionsToken)(name),
92
+ useValue: options,
93
+ };
94
+ const browserProvider = {
95
+ provide: (0, tokens_1.getBrowserToken)(name),
96
+ useFactory: () => launchNamedBrowser(options),
97
+ };
98
+ const holderProvider = namedBrowserHolderProvider(name);
99
+ const shutdownProvider = {
100
+ provide: `${(0, tokens_1.getBrowserToken)(name)}Shutdown`,
101
+ useFactory: (holder) => new named_browser_shutdown_1.NamedBrowserShutdown(name, holder, !!options.remote),
102
+ inject: [(0, tokens_1.getBrowserHolderToken)(name)],
103
+ };
104
+ return {
105
+ module: BrowserActionModule_1,
106
+ global: true,
38
107
  providers: [
39
108
  optionsProvider,
40
- browser_pool_service_1.BrowserPoolService,
41
- browser_manager_service_1.BrowserManagerService,
42
- page_service_1.PageService,
43
- browser_action_service_1.BrowserActionService,
44
- cookie_service_1.CookieService,
45
- cleansing_service_1.CleansingService,
46
- ],
47
- exports: [
48
- browser_manager_service_1.BrowserManagerService,
49
- page_service_1.PageService,
50
- browser_action_service_1.BrowserActionService,
51
- cookie_service_1.CookieService,
52
- cleansing_service_1.CleansingService,
109
+ browserProvider,
110
+ holderProvider,
111
+ shutdownProvider,
53
112
  ],
113
+ exports: [browserProvider, holderProvider, optionsProvider],
54
114
  };
55
115
  }
56
116
  static forRootAsync(options) {
117
+ if (options.name)
118
+ return this.forNamedBrowserAsync(options);
57
119
  const asyncOptionsProvider = {
58
120
  provide: constants_1.BROWSER_ACTION_OPTIONS,
59
121
  useFactory: async (...args) => {
@@ -64,24 +126,81 @@ let BrowserActionModule = BrowserActionModule_1 = class BrowserActionModule {
64
126
  return {
65
127
  module: BrowserActionModule_1,
66
128
  imports: options.imports || [],
129
+ providers: [asyncOptionsProvider, ...POOL_MODE_SERVICES],
130
+ exports: [...POOL_MODE_EXPORTS],
131
+ };
132
+ }
133
+ static forNamedBrowserAsync(options) {
134
+ const name = options.name;
135
+ (0, tokens_1.claimBrowserName)(name);
136
+ const optionsToken = (0, tokens_1.getNamedOptionsToken)(name);
137
+ const optionsProvider = {
138
+ provide: optionsToken,
139
+ useFactory: async (...args) => {
140
+ const resolved = await options.useFactory(...args);
141
+ if (resolved.remote)
142
+ (0, browser_launcher_1.validateRemoteOptions)(resolved.remote);
143
+ return resolved;
144
+ },
145
+ inject: options.inject || [],
146
+ };
147
+ const browserProvider = {
148
+ provide: (0, tokens_1.getBrowserToken)(name),
149
+ useFactory: (resolved) => launchNamedBrowser(resolved),
150
+ inject: [optionsToken],
151
+ };
152
+ const holderProvider = namedBrowserHolderProvider(name);
153
+ const shutdownProvider = {
154
+ provide: `${(0, tokens_1.getBrowserToken)(name)}Shutdown`,
155
+ useFactory: (holder, resolved) => new named_browser_shutdown_1.NamedBrowserShutdown(name, holder, !!resolved.remote),
156
+ inject: [(0, tokens_1.getBrowserHolderToken)(name), optionsToken],
157
+ };
158
+ return {
159
+ module: BrowserActionModule_1,
160
+ global: true,
161
+ imports: options.imports || [],
67
162
  providers: [
68
- asyncOptionsProvider,
69
- browser_pool_service_1.BrowserPoolService,
70
- browser_manager_service_1.BrowserManagerService,
71
- page_service_1.PageService,
72
- browser_action_service_1.BrowserActionService,
73
- cookie_service_1.CookieService,
74
- cleansing_service_1.CleansingService,
75
- ],
76
- exports: [
77
- browser_manager_service_1.BrowserManagerService,
78
- page_service_1.PageService,
79
- browser_action_service_1.BrowserActionService,
80
- cookie_service_1.CookieService,
81
- cleansing_service_1.CleansingService,
163
+ optionsProvider,
164
+ browserProvider,
165
+ holderProvider,
166
+ shutdownProvider,
82
167
  ],
168
+ exports: [browserProvider, holderProvider, optionsProvider],
83
169
  };
84
170
  }
171
+ static forFeature(pages, browserName = 'default') {
172
+ const providers = pages.flatMap((pageName) => {
173
+ const pageProvider = {
174
+ provide: (0, tokens_1.getPageToken)(pageName, browserName),
175
+ useFactory: async (browser) => await browser.newPage(),
176
+ inject: [(0, tokens_1.getBrowserToken)(browserName)],
177
+ };
178
+ const controllerProvider = {
179
+ provide: (0, tokens_1.getPageControllerToken)(pageName, browserName),
180
+ useFactory: (holder, page, options) => {
181
+ const debugLen = options.debugLogMaxLength ?? browser_action_constants_1.DEFAULT_DEBUG_LOG_MAX_LENGTH;
182
+ const logger = new logger_util_1.LoggerWithLevel(`PageController:${browserName}/${pageName}`, resolveLogLevel(options.logLevel));
183
+ const pipeEngine = new pipe_engine_1.PipeEngine();
184
+ const extraction = new operators_1.ExtractionOperator(pipeEngine, logger);
185
+ const container = new operators_1.ContainerOperator(extraction, pipeEngine, logger);
186
+ const cleansingService = new cleansing_service_1.CleansingService(options);
187
+ const cookieService = new cookie_service_1.CookieService(options);
188
+ const workflow = new operators_1.WorkflowOperator(extraction, container, pipeEngine, cleansingService, logger, () => cookieService);
189
+ const pagination = new operators_1.PaginationOperator(logger);
190
+ const capture = new operators_1.CaptureOperator(logger);
191
+ const session = new page_session_1.PageSession(browserName, holder, page, options, logger);
192
+ return new page_controller_1.PageController(session, extraction, container, workflow, pagination, capture, logger, debugLen);
193
+ },
194
+ inject: [
195
+ (0, tokens_1.getBrowserHolderToken)(browserName),
196
+ (0, tokens_1.getPageToken)(pageName, browserName),
197
+ (0, tokens_1.getNamedOptionsToken)(browserName),
198
+ ],
199
+ };
200
+ return [pageProvider, controllerProvider];
201
+ });
202
+ return { module: BrowserActionModule_1, providers, exports: providers };
203
+ }
85
204
  async onModuleDestroy() {
86
205
  }
87
206
  };
@@ -1 +1 @@
1
- {"version":3,"file":"browser-action.module.js","sourceRoot":"","sources":["../src/browser-action.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAyE;AAKzE,0EAAqE;AACrE,gFAA2E;AAC3E,0DAAsD;AACtD,8EAAyE;AACzE,8DAA0D;AAC1D,oEAAgE;AAChE,2CAAqD;AAI9C,IAAM,mBAAmB,2BAAzB,MAAM,mBAAmB;IAC9B,MAAM,CAAC,QAAQ,CAAC,OAAmC;QACjD,MAAM,eAAe,GAAa;YAChC,OAAO,EAAE,kCAAsB;YAC/B,QAAQ,EAAE,OAAO;SAClB,CAAC;QAEF,OAAO;YACL,MAAM,EAAE,qBAAmB;YAC3B,SAAS,EAAE,CAAC,eAAe,CAAC;YAC5B,OAAO,EAAE,EAAE;SACZ,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,OAAmC;QAChD,MAAM,eAAe,GAAa;YAChC,OAAO,EAAE,kCAAsB;YAC/B,QAAQ,EAAE,OAAO;SAClB,CAAC;QAEF,OAAO;YACL,MAAM,EAAE,qBAAmB;YAC3B,SAAS,EAAE;gBACT,eAAe;gBACf,yCAAkB;gBAClB,+CAAqB;gBACrB,0BAAW;gBACX,6CAAoB;gBACpB,8BAAa;gBACb,oCAAgB;aACjB;YACD,OAAO,EAAE;gBACP,+CAAqB;gBACrB,0BAAW;gBACX,6CAAoB;gBACpB,8BAAa;gBACb,oCAAgB;aACjB;SACF,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,YAAY,CAAC,OAAwC;QAC1D,MAAM,oBAAoB,GAAa;YACrC,OAAO,EAAE,kCAAsB;YAC/B,UAAU,EAAE,KAAK,EAAE,GAAG,IAAe,EAAE,EAAE;gBACvC,OAAO,MAAM,OAAO,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC;YAC3C,CAAC;YACD,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE;SAC7B,CAAC;QAEF,OAAO;YACL,MAAM,EAAE,qBAAmB;YAC3B,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;YAC9B,SAAS,EAAE;gBACT,oBAAoB;gBACpB,yCAAkB;gBAClB,+CAAqB;gBACrB,0BAAW;gBACX,6CAAoB;gBACpB,8BAAa;gBACb,oCAAgB;aACjB;YACD,OAAO,EAAE;gBACP,+CAAqB;gBACrB,0BAAW;gBACX,6CAAoB;gBACpB,8BAAa;gBACb,oCAAgB;aACjB;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,eAAe;IAErB,CAAC;CACF,CAAA;AA3EY,kDAAmB;8BAAnB,mBAAmB;IAF/B,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,mBAAmB,CA2E/B"}
1
+ {"version":3,"file":"browser-action.module.js","sourceRoot":"","sources":["../src/browser-action.module.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export * from './tokens';
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./tokens"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB"}
@@ -0,0 +1,7 @@
1
+ export declare function getBrowserToken(name: string): string;
2
+ export declare function getPageToken(page: string, name: string): string;
3
+ export declare function getPageControllerToken(page: string, name: string): string;
4
+ export declare function getBrowserHolderToken(name: string): string;
5
+ export declare function getNamedOptionsToken(name: string): string;
6
+ export declare function claimBrowserName(name: string): void;
7
+ export declare function releaseBrowserName(name: string): void;
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getBrowserToken = getBrowserToken;
4
+ exports.getPageToken = getPageToken;
5
+ exports.getPageControllerToken = getPageControllerToken;
6
+ exports.getBrowserHolderToken = getBrowserHolderToken;
7
+ exports.getNamedOptionsToken = getNamedOptionsToken;
8
+ exports.claimBrowserName = claimBrowserName;
9
+ exports.releaseBrowserName = releaseBrowserName;
10
+ function getBrowserToken(name) {
11
+ return `${name}BrowserActionBrowser`;
12
+ }
13
+ function getPageToken(page, name) {
14
+ return `${name}_${page}BrowserActionPage`;
15
+ }
16
+ function getPageControllerToken(page, name) {
17
+ return `${name}_${page}BrowserActionPageController`;
18
+ }
19
+ function getBrowserHolderToken(name) {
20
+ return `${getBrowserToken(name)}Holder`;
21
+ }
22
+ function getNamedOptionsToken(name) {
23
+ return `BROWSER_ACTION_OPTIONS:${name}`;
24
+ }
25
+ const registeredBrowserNames = new Set();
26
+ function claimBrowserName(name) {
27
+ if (registeredBrowserNames.has(name)) {
28
+ throw new Error(`BrowserActionModule: a browser with name "${name}" is already registered. ` +
29
+ `Each forRoot()/forRootAsync() call must use a unique \`name\`.`);
30
+ }
31
+ registeredBrowserNames.add(name);
32
+ }
33
+ function releaseBrowserName(name) {
34
+ registeredBrowserNames.delete(name);
35
+ }
36
+ //# sourceMappingURL=tokens.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokens.js","sourceRoot":"","sources":["../../src/common/tokens.ts"],"names":[],"mappings":";;AAAA,0CAEC;AAED,oCAEC;AAED,wDAEC;AAED,sDAEC;AAED,oDAEC;AASD,4CAQC;AAED,gDAEC;AAvCD,SAAgB,eAAe,CAAC,IAAY;IAC1C,OAAO,GAAG,IAAI,sBAAsB,CAAC;AACvC,CAAC;AAED,SAAgB,YAAY,CAAC,IAAY,EAAE,IAAY;IACrD,OAAO,GAAG,IAAI,IAAI,IAAI,mBAAmB,CAAC;AAC5C,CAAC;AAED,SAAgB,sBAAsB,CAAC,IAAY,EAAE,IAAY;IAC/D,OAAO,GAAG,IAAI,IAAI,IAAI,6BAA6B,CAAC;AACtD,CAAC;AAED,SAAgB,qBAAqB,CAAC,IAAY;IAChD,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC1C,CAAC;AAED,SAAgB,oBAAoB,CAAC,IAAY;IAC/C,OAAO,0BAA0B,IAAI,EAAE,CAAC;AAC1C,CAAC;AAOD,MAAM,sBAAsB,GAAG,IAAI,GAAG,EAAU,CAAC;AAEjD,SAAgB,gBAAgB,CAAC,IAAY;IAC3C,IAAI,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CACb,6CAA6C,IAAI,2BAA2B;YAC1E,gEAAgE,CACnE,CAAC;IACJ,CAAC;IACD,sBAAsB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACnC,CAAC;AAED,SAAgB,kBAAkB,CAAC,IAAY;IAC7C,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC"}
@@ -1,2 +1,3 @@
1
1
  export * from './inject-browser.decorator';
2
2
  export * from './inject-page.decorator';
3
+ export * from './inject-page-controller.decorator';
@@ -16,4 +16,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./inject-browser.decorator"), exports);
18
18
  __exportStar(require("./inject-page.decorator"), exports);
19
+ __exportStar(require("./inject-page-controller.decorator"), exports);
19
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/decorators/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6DAA2C;AAC3C,0DAAwC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/decorators/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6DAA2C;AAC3C,0DAAwC;AACxC,qEAAmD"}
@@ -1 +1,2 @@
1
- export declare const InjectBrowser: () => PropertyDecorator & ParameterDecorator;
1
+ import { Inject } from '@nestjs/common';
2
+ export declare const InjectBrowser: (name?: string) => ReturnType<typeof Inject>;
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.InjectBrowser = void 0;
4
4
  const common_1 = require("@nestjs/common");
5
- const InjectBrowser = () => (0, common_1.Inject)('BROWSER_INSTANCE');
5
+ const tokens_1 = require("../common/tokens");
6
+ const InjectBrowser = (name = 'default') => (0, common_1.Inject)((0, tokens_1.getBrowserToken)(name));
6
7
  exports.InjectBrowser = InjectBrowser;
7
8
  //# sourceMappingURL=inject-browser.decorator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"inject-browser.decorator.js","sourceRoot":"","sources":["../../src/decorators/inject-browser.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AAEjC,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,IAAA,eAAM,EAAC,kBAAkB,CAAC,CAAC;AAAjD,QAAA,aAAa,iBAAoC"}
1
+ {"version":3,"file":"inject-browser.decorator.js","sourceRoot":"","sources":["../../src/decorators/inject-browser.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AACxC,6CAAmD;AAM5C,MAAM,aAAa,GAAG,CAAC,IAAI,GAAG,SAAS,EAA6B,EAAE,CAC3E,IAAA,eAAM,EAAC,IAAA,wBAAe,EAAC,IAAI,CAAC,CAAC,CAAC;AADnB,QAAA,aAAa,iBACM"}
@@ -0,0 +1,2 @@
1
+ import { Inject } from '@nestjs/common';
2
+ export declare const InjectPageController: (page: string, name?: string) => ReturnType<typeof Inject>;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.InjectPageController = void 0;
4
+ const common_1 = require("@nestjs/common");
5
+ const tokens_1 = require("../common/tokens");
6
+ const InjectPageController = (page, name = 'default') => (0, common_1.Inject)((0, tokens_1.getPageControllerToken)(page, name));
7
+ exports.InjectPageController = InjectPageController;
8
+ //# sourceMappingURL=inject-page-controller.decorator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inject-page-controller.decorator.js","sourceRoot":"","sources":["../../src/decorators/inject-page-controller.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AACxC,6CAA0D;AAMnD,MAAM,oBAAoB,GAAG,CAClC,IAAY,EACZ,IAAI,GAAG,SAAS,EACW,EAAE,CAAC,IAAA,eAAM,EAAC,IAAA,+BAAsB,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAH9D,QAAA,oBAAoB,wBAG0C"}
@@ -1 +1,2 @@
1
- export declare const InjectPage: () => PropertyDecorator & ParameterDecorator;
1
+ import { Inject } from '@nestjs/common';
2
+ export declare const InjectPage: (page: string, name?: string) => ReturnType<typeof Inject>;
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.InjectPage = void 0;
4
4
  const common_1 = require("@nestjs/common");
5
- const InjectPage = () => (0, common_1.Inject)('PAGE_INSTANCE');
5
+ const tokens_1 = require("../common/tokens");
6
+ const InjectPage = (page, name = 'default') => (0, common_1.Inject)((0, tokens_1.getPageToken)(page, name));
6
7
  exports.InjectPage = InjectPage;
7
8
  //# sourceMappingURL=inject-page.decorator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"inject-page.decorator.js","sourceRoot":"","sources":["../../src/decorators/inject-page.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AAEjC,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,IAAA,eAAM,EAAC,eAAe,CAAC,CAAC;AAA3C,QAAA,UAAU,cAAiC"}
1
+ {"version":3,"file":"inject-page.decorator.js","sourceRoot":"","sources":["../../src/decorators/inject-page.decorator.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AACxC,6CAAgD;AAMzC,MAAM,UAAU,GAAG,CACxB,IAAY,EACZ,IAAI,GAAG,SAAS,EACW,EAAE,CAAC,IAAA,eAAM,EAAC,IAAA,qBAAY,EAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAHpD,QAAA,UAAU,cAG0C"}
@@ -0,0 +1 @@
1
+ export {};