n8n-nodes-playwright-test-executor 1.0.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/LICENSE.md ADDED
@@ -0,0 +1,19 @@
1
+ Copyright 2024 n8n
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy of
4
+ this software and associated documentation files (the "Software"), to deal in
5
+ the Software without restriction, including without limitation the rights to
6
+ use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
7
+ of the Software, and to permit persons to whom the Software is furnished to do
8
+ so, subject to the following conditions:
9
+
10
+ The above copyright notice and this permission notice shall be included in all
11
+ copies or substantial portions of the Software.
12
+
13
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,109 @@
1
+ # n8n-nodes-playwright
2
+
3
+ This is an n8n community node. It lets you automate browser actions using Playwright in your n8n workflows.
4
+
5
+ [n8n](https://n8n.io/) is a [fair-code licensed](https://docs.n8n.io/reference/license/) workflow automation platform.
6
+
7
+ [Installation](#installation)
8
+
9
+ [Operations](#operations)
10
+
11
+ [Compatibility](#compatibility)
12
+
13
+ [Resources](#resources)
14
+
15
+ [Version history](#version-history)
16
+
17
+ ## Installation
18
+
19
+ Follow the [installation guide](https://docs.n8n.io/integrations/community-nodes/installation/) in the n8n community nodes documentation.
20
+
21
+ ```bash
22
+ pnpm install n8n-nodes-playwright
23
+
24
+ ```
25
+
26
+ Note: The package will automatically download and set up the required browser binaries during installation. This requires approximately 1GB of disk space.
27
+
28
+ If you need to manually trigger the browser setup:
29
+
30
+ ```bash
31
+ pnpm rebuild n8n-nodes-playwright
32
+
33
+ ```
34
+
35
+ Operations
36
+ ----------
37
+
38
+ This node supports the following operations:
39
+
40
+ - Navigate: Go to a specified URL
41
+ - Take Screenshot: Capture a screenshot of a webpage
42
+ - Get Text: Extract text from an element using CSS selector
43
+ - Click Element: Click on an element using CSS selector
44
+ - Fill Form: Fill a form field using CSS selector
45
+
46
+ ### Browser Options
47
+
48
+ - Choose between Chromium, Firefox, or WebKit
49
+ - Configure headless mode
50
+ - Adjust operation speed with slow motion option
51
+
52
+ ### Screenshot Options
53
+
54
+ - Full page capture
55
+ - Custom save path
56
+ - Base64 output
57
+
58
+ Compatibility
59
+ -------------
60
+
61
+ - Requires n8n version 1.0.0 or later
62
+ - Tested with Playwright version 1.49.0
63
+ - Supports Windows, macOS, and Linux
64
+
65
+ ### System Requirements
66
+
67
+ - Node.js 18.10 or later
68
+ - Approximately 1GB disk space for browser binaries
69
+ - Additional system dependencies may be required for browser automation
70
+
71
+ Resources
72
+ ---------
73
+
74
+ - [n8n community nodes documentation](https://docs.n8n.io/integrations/community-nodes/)
75
+ - [Playwright documentation](https://playwright.dev/docs/intro)
76
+
77
+ Version history
78
+ ---------------
79
+
80
+ ### 0.1.*
81
+
82
+ - Initial release
83
+ - Basic browser automation operations
84
+ - Support for Chromium, Firefox, and WebKit.
85
+ - Screenshot and form interaction capabilities
86
+
87
+ ### Troubleshooting
88
+
89
+ If browsers are not installed correctly:
90
+
91
+ 1. Clean the installation:
92
+
93
+ ```bash
94
+ rm -rf ~/.cache/ms-playwright
95
+ # or for Windows:
96
+ rmdir /s /q %USERPROFILE%\AppData\Local\ms-playwright
97
+
98
+ ```
99
+
100
+ 1. Rebuild the package:
101
+
102
+ ```bash
103
+ pnpm rebuild n8n-nodes-playwright
104
+
105
+ ```
106
+
107
+ ### License
108
+
109
+ [MIT](https://github.com/n8n-io/n8n-nodes-starter/blob/master/LICENSE.md)
@@ -0,0 +1,5 @@
1
+ import { INodeType, INodeExecutionData, IExecuteFunctions, INodeTypeDescription } from 'n8n-workflow';
2
+ export declare class Playwright implements INodeType {
3
+ description: INodeTypeDescription;
4
+ execute(this: IExecuteFunctions): Promise<INodeExecutionData[][]>;
5
+ }
@@ -0,0 +1,294 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Playwright = void 0;
4
+ const path_1 = require("path");
5
+ const os_1 = require("os");
6
+ const utils_1 = require("./utils");
7
+ const operations_1 = require("./operations");
8
+ const setup_browsers_1 = require("../scripts/setup-browsers");
9
+ class Playwright {
10
+ constructor() {
11
+ this.description = {
12
+ displayName: 'Playwright',
13
+ name: 'playwright',
14
+ icon: 'file:playwright.svg',
15
+ group: ['automation'],
16
+ version: 1,
17
+ subtitle: '={{$parameter["operation"]}}',
18
+ description: 'Automate browser actions using Playwright',
19
+ defaults: {
20
+ name: 'Playwright',
21
+ },
22
+ inputs: [
23
+ {
24
+ displayName: 'Input',
25
+ type: "main",
26
+ },
27
+ ],
28
+ outputs: [
29
+ {
30
+ displayName: 'Output',
31
+ type: "main",
32
+ },
33
+ ],
34
+ properties: [
35
+ {
36
+ displayName: 'Operation',
37
+ name: 'operation',
38
+ type: 'options',
39
+ noDataExpression: true,
40
+ options: [
41
+ {
42
+ name: 'Click Element',
43
+ value: 'clickElement',
44
+ description: 'Click on an element',
45
+ action: 'Click on an element',
46
+ },
47
+ {
48
+ name: 'Fill Form',
49
+ value: 'fillForm',
50
+ description: 'Fill a form field',
51
+ action: 'Fill a form field',
52
+ },
53
+ {
54
+ name: 'Get Text',
55
+ value: 'getText',
56
+ description: 'Get text from an element',
57
+ action: 'Get text from an element',
58
+ },
59
+ {
60
+ name: 'Navigate',
61
+ value: 'navigate',
62
+ description: 'Navigate to a URL',
63
+ action: 'Navigate to a URL',
64
+ },
65
+ {
66
+ name: 'Take Screenshot',
67
+ value: 'takeScreenshot',
68
+ description: 'Take a screenshot of a webpage',
69
+ action: 'Take a screenshot of a webpage',
70
+ },
71
+ {
72
+ name: 'Execute Test Specification',
73
+ value: 'executeTestSpec',
74
+ description: 'Execute test cases from JSON specification',
75
+ action: 'Execute test cases from JSON specification',
76
+ }
77
+ ],
78
+ default: 'navigate',
79
+ },
80
+ {
81
+ displayName: 'URL',
82
+ name: 'url',
83
+ type: 'string',
84
+ default: '',
85
+ placeholder: 'https://example.com',
86
+ description: 'The URL to navigate to',
87
+ displayOptions: {
88
+ show: {
89
+ operation: ['navigate', 'takeScreenshot', 'getText', 'clickElement', 'fillForm'],
90
+ },
91
+ hide: {
92
+ operation: ['executeTestSpec'],
93
+ },
94
+ },
95
+ required: true,
96
+ },
97
+ {
98
+ displayName: 'Property Name',
99
+ name: 'dataPropertyName',
100
+ type: 'string',
101
+ required: true,
102
+ default: 'screenshot',
103
+ description: 'Name of the binary property in which to store the screenshot data',
104
+ displayOptions: {
105
+ show: {
106
+ operation: ['takeScreenshot'],
107
+ },
108
+ },
109
+ },
110
+ {
111
+ displayName: 'Selector',
112
+ name: 'selector',
113
+ type: 'string',
114
+ default: '',
115
+ placeholder: '#submit-button',
116
+ description: 'CSS selector for the element',
117
+ displayOptions: {
118
+ show: {
119
+ operation: ['getText', 'clickElement', 'fillForm'],
120
+ },
121
+ },
122
+ required: true,
123
+ },
124
+ {
125
+ displayName: 'Value',
126
+ name: 'value',
127
+ type: 'string',
128
+ default: '',
129
+ description: 'Value to fill in the form field',
130
+ displayOptions: {
131
+ show: {
132
+ operation: ['fillForm'],
133
+ },
134
+ },
135
+ required: true,
136
+ },
137
+ {
138
+ displayName: 'Test Specification',
139
+ name: 'testSpec',
140
+ type: 'json',
141
+ default: '[]',
142
+ description: 'JSON array of test cases to execute',
143
+ displayOptions: {
144
+ show: {
145
+ operation: ['executeTestSpec'],
146
+ },
147
+ },
148
+ required: true,
149
+ },
150
+ {
151
+ displayName: 'Base URL',
152
+ name: 'baseUrl',
153
+ type: 'string',
154
+ default: '',
155
+ placeholder: 'https://example.com',
156
+ description: 'Base URL for test execution',
157
+ displayOptions: {
158
+ show: {
159
+ operation: ['executeTestSpec'],
160
+ },
161
+ },
162
+ required: true,
163
+ },
164
+ {
165
+ displayName: 'Browser',
166
+ name: 'browser',
167
+ type: 'options',
168
+ options: [
169
+ {
170
+ name: 'Chromium',
171
+ value: 'chromium',
172
+ },
173
+ {
174
+ name: 'Firefox',
175
+ value: 'firefox',
176
+ },
177
+ {
178
+ name: 'Webkit',
179
+ value: 'webkit',
180
+ },
181
+ ],
182
+ default: 'chromium',
183
+ },
184
+ {
185
+ displayName: 'Browser Launch Options',
186
+ name: 'browserOptions',
187
+ type: 'collection',
188
+ placeholder: 'Add Option',
189
+ default: {},
190
+ options: [
191
+ {
192
+ displayName: 'Headless',
193
+ name: 'headless',
194
+ type: 'boolean',
195
+ default: true,
196
+ description: 'Whether to run browser in headless mode',
197
+ },
198
+ {
199
+ displayName: 'Slow Motion',
200
+ name: 'slowMo',
201
+ type: 'number',
202
+ default: 0,
203
+ description: 'Slows down operations by the specified amount of milliseconds',
204
+ }
205
+ ],
206
+ },
207
+ {
208
+ displayName: 'Screenshot Options',
209
+ name: 'screenshotOptions',
210
+ type: 'collection',
211
+ placeholder: 'Add Option',
212
+ default: {},
213
+ displayOptions: {
214
+ show: {
215
+ operation: ['takeScreenshot'],
216
+ },
217
+ },
218
+ options: [
219
+ {
220
+ displayName: 'Full Page',
221
+ name: 'fullPage',
222
+ type: 'boolean',
223
+ default: false,
224
+ description: 'Whether to take a screenshot of the full scrollable page',
225
+ },
226
+ {
227
+ displayName: 'Path',
228
+ name: 'path',
229
+ type: 'string',
230
+ default: '',
231
+ description: 'The file path to save the screenshot to',
232
+ },
233
+ ],
234
+ },
235
+ ],
236
+ };
237
+ }
238
+ async execute() {
239
+ const items = this.getInputData();
240
+ const returnData = [];
241
+ for (let i = 0; i < items.length; i++) {
242
+ const operation = this.getNodeParameter('operation', i);
243
+ const url = operation === 'executeTestSpec'
244
+ ? this.getNodeParameter('baseUrl', i)
245
+ : this.getNodeParameter('url', i);
246
+ const browserType = this.getNodeParameter('browser', i);
247
+ const browserOptions = this.getNodeParameter('browserOptions', i);
248
+ try {
249
+ const playwright = require('playwright');
250
+ const browsersPath = (0, path_1.join)(__dirname, '..', 'browsers');
251
+ let executablePath;
252
+ try {
253
+ executablePath = (0, utils_1.getBrowserExecutablePath)(browserType, browsersPath);
254
+ }
255
+ catch (error) {
256
+ console.error(`Browser path error: ${error.message}`);
257
+ await (0, setup_browsers_1.installBrowser)(browserType);
258
+ executablePath = (0, utils_1.getBrowserExecutablePath)(browserType, browsersPath);
259
+ }
260
+ console.log(`Launching browser from: ${executablePath}`);
261
+ const browser = await playwright[browserType].launch({
262
+ headless: browserOptions.headless !== false,
263
+ slowMo: browserOptions.slowMo || 0,
264
+ executablePath,
265
+ });
266
+ const context = await browser.newContext();
267
+ const page = await context.newPage();
268
+ if (operation !== 'executeTestSpec') {
269
+ await page.goto(url);
270
+ }
271
+ const result = await (0, operations_1.handleOperation)(operation, page, this, i);
272
+ await browser.close();
273
+ returnData.push(result);
274
+ }
275
+ catch (error) {
276
+ console.error(`Browser launch error:`, error);
277
+ if (this.continueOnFail()) {
278
+ returnData.push({
279
+ json: {
280
+ error: error.message,
281
+ browserType,
282
+ os: (0, os_1.platform)(),
283
+ },
284
+ });
285
+ continue;
286
+ }
287
+ throw error;
288
+ }
289
+ }
290
+ return [returnData];
291
+ }
292
+ }
293
+ exports.Playwright = Playwright;
294
+ //# sourceMappingURL=Playwright.node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Playwright.node.js","sourceRoot":"","sources":["../../../nodes/playwright/Playwright.node.ts"],"names":[],"mappings":";;;AACA,+BAA4B;AAC5B,2BAA8B;AAC9B,mCAAmD;AACnD,6CAA+C;AAE/C,8DAA2D;AAG3D,MAAa,UAAU;IAAvB;QACI,gBAAW,GAA0B;YACrC,WAAW,EAAE,YAAY;YACzB,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,qBAAqB;YAC3B,KAAK,EAAE,CAAC,YAAY,CAAC;YACrB,OAAO,EAAE,CAAC;YACV,QAAQ,EAAE,8BAA8B;YACxC,WAAW,EAAE,2CAA2C;YACxD,QAAQ,EAAE;gBACN,IAAI,EAAE,YAAY;aACrB;YAED,MAAM,EAAE;gBACJ;oBACI,WAAW,EAAE,OAAO;oBACpB,IAAI,QAAyB;iBACL;aAC/B;YAED,OAAO,EAAE;gBACL;oBACI,WAAW,EAAE,QAAQ;oBACrB,IAAI,QAAyB;iBACJ;aAChC;YAED,UAAU,EAAE;gBACR;oBACI,WAAW,EAAE,WAAW;oBACxB,IAAI,EAAE,WAAW;oBACjB,IAAI,EAAE,SAAS;oBACf,gBAAgB,EAAE,IAAI;oBACtB,OAAO,EAAE;wBACL;4BACI,IAAI,EAAE,eAAe;4BACrB,KAAK,EAAE,cAAc;4BACrB,WAAW,EAAE,qBAAqB;4BAClC,MAAM,EAAE,qBAAqB;yBAChC;wBACD;4BACI,IAAI,EAAE,WAAW;4BACjB,KAAK,EAAE,UAAU;4BACjB,WAAW,EAAE,mBAAmB;4BAChC,MAAM,EAAE,mBAAmB;yBAC9B;wBACD;4BACI,IAAI,EAAE,UAAU;4BAChB,KAAK,EAAE,SAAS;4BAChB,WAAW,EAAE,0BAA0B;4BACvC,MAAM,EAAE,0BAA0B;yBACrC;wBACD;4BACI,IAAI,EAAE,UAAU;4BAChB,KAAK,EAAE,UAAU;4BACjB,WAAW,EAAE,mBAAmB;4BAChC,MAAM,EAAE,mBAAmB;yBAC9B;wBACD;4BACI,IAAI,EAAE,iBAAiB;4BACvB,KAAK,EAAE,gBAAgB;4BACvB,WAAW,EAAE,gCAAgC;4BAC7C,MAAM,EAAE,gCAAgC;yBAC3C;wBACD;4BACI,IAAI,EAAE,4BAA4B;4BAClC,KAAK,EAAE,iBAAiB;4BACxB,WAAW,EAAE,4CAA4C;4BACzD,MAAM,EAAE,4CAA4C;yBACvD;qBACJ;oBACD,OAAO,EAAE,UAAU;iBACtB;gBAED;oBACI,WAAW,EAAE,KAAK;oBAClB,IAAI,EAAE,KAAK;oBACX,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,EAAE;oBACX,WAAW,EAAE,qBAAqB;oBAClC,WAAW,EAAE,wBAAwB;oBACrC,cAAc,EAAE;wBACZ,IAAI,EAAE;4BACF,SAAS,EAAE,CAAC,UAAU,EAAE,gBAAgB,EAAE,SAAS,EAAE,cAAc,EAAE,UAAU,CAAC;yBACnF;wBACD,IAAI,EAAE;4BACF,SAAS,EAAE,CAAC,iBAAiB,CAAC;yBACjC;qBACJ;oBACD,QAAQ,EAAE,IAAI;iBACjB;gBACL;oBACA,WAAW,EAAE,eAAe;oBAC5B,IAAI,EAAE,kBAAkB;oBACxB,IAAI,EAAE,QAAQ;oBACd,QAAQ,EAAE,IAAI;oBACd,OAAO,EAAE,YAAY;oBACrB,WAAW,EAAE,mEAAmE;oBAChF,cAAc,EAAE;wBACZ,IAAI,EAAE;4BACF,SAAS,EAAE,CAAC,gBAAgB,CAAC;yBAChC;qBACJ;iBACJ;gBACO;oBACI,WAAW,EAAE,UAAU;oBACvB,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,EAAE;oBACX,WAAW,EAAE,gBAAgB;oBAC7B,WAAW,EAAE,8BAA8B;oBAC3C,cAAc,EAAE;wBACZ,IAAI,EAAE;4BACF,SAAS,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE,UAAU,CAAC;yBACrD;qBACJ;oBACD,QAAQ,EAAE,IAAI;iBACjB;gBACD;oBACI,WAAW,EAAE,OAAO;oBACpB,IAAI,EAAE,OAAO;oBACb,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,EAAE;oBACX,WAAW,EAAE,iCAAiC;oBAC9C,cAAc,EAAE;wBACZ,IAAI,EAAE;4BACF,SAAS,EAAE,CAAC,UAAU,CAAC;yBAC1B;qBACJ;oBACD,QAAQ,EAAE,IAAI;iBACjB;gBACD;oBACI,WAAW,EAAE,oBAAoB;oBACjC,IAAI,EAAE,UAAU;oBAChB,IAAI,EAAE,MAAM;oBACZ,OAAO,EAAE,IAAI;oBACb,WAAW,EAAE,qCAAqC;oBAClD,cAAc,EAAE;wBACZ,IAAI,EAAE;4BACF,SAAS,EAAE,CAAC,iBAAiB,CAAC;yBACjC;qBACJ;oBACD,QAAQ,EAAE,IAAI;iBACjB;gBACD;oBACI,WAAW,EAAE,UAAU;oBACvB,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,QAAQ;oBACd,OAAO,EAAE,EAAE;oBACX,WAAW,EAAE,qBAAqB;oBAClC,WAAW,EAAE,6BAA6B;oBAC1C,cAAc,EAAE;wBACZ,IAAI,EAAE;4BACF,SAAS,EAAE,CAAC,iBAAiB,CAAC;yBACjC;qBACJ;oBACD,QAAQ,EAAE,IAAI;iBACjB;gBACD;oBACI,WAAW,EAAE,SAAS;oBACtB,IAAI,EAAE,SAAS;oBACf,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE;wBACL;4BACI,IAAI,EAAE,UAAU;4BAChB,KAAK,EAAE,UAAU;yBACpB;wBACD;4BACI,IAAI,EAAE,SAAS;4BACf,KAAK,EAAE,SAAS;yBACnB;wBACD;4BACI,IAAI,EAAE,QAAQ;4BACd,KAAK,EAAE,QAAQ;yBAClB;qBACJ;oBACD,OAAO,EAAE,UAAU;iBACtB;gBACD;oBACI,WAAW,EAAE,wBAAwB;oBACrC,IAAI,EAAE,gBAAgB;oBACtB,IAAI,EAAE,YAAY;oBAClB,WAAW,EAAE,YAAY;oBACzB,OAAO,EAAE,EAAE;oBACX,OAAO,EAAE;wBACL;4BACI,WAAW,EAAE,UAAU;4BACvB,IAAI,EAAE,UAAU;4BAChB,IAAI,EAAE,SAAS;4BACf,OAAO,EAAE,IAAI;4BACb,WAAW,EAAE,yCAAyC;yBACzD;wBACD;4BACI,WAAW,EAAE,aAAa;4BAC1B,IAAI,EAAE,QAAQ;4BACd,IAAI,EAAE,QAAQ;4BACd,OAAO,EAAE,CAAC;4BACV,WAAW,EAAE,+DAA+D;yBAC/E;qBACJ;iBACJ;gBACD;oBACI,WAAW,EAAE,oBAAoB;oBACjC,IAAI,EAAE,mBAAmB;oBACzB,IAAI,EAAE,YAAY;oBAClB,WAAW,EAAE,YAAY;oBACzB,OAAO,EAAE,EAAE;oBACX,cAAc,EAAE;wBACZ,IAAI,EAAE;4BACF,SAAS,EAAE,CAAC,gBAAgB,CAAC;yBAChC;qBACJ;oBACD,OAAO,EAAE;wBACL;4BACI,WAAW,EAAE,WAAW;4BACxB,IAAI,EAAE,UAAU;4BAChB,IAAI,EAAE,SAAS;4BACf,OAAO,EAAE,KAAK;4BACd,WAAW,EAAE,0DAA0D;yBAC1E;wBACD;4BACI,WAAW,EAAE,MAAM;4BACnB,IAAI,EAAE,MAAM;4BACZ,IAAI,EAAE,QAAQ;4BACd,OAAO,EAAE,EAAE;4BACX,WAAW,EAAE,yCAAyC;yBACzD;qBACJ;iBACJ;aACJ;SACJ,CAAC;IAoEF,CAAC;IAlEG,KAAK,CAAC,OAAO;QACT,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;QAClC,MAAM,UAAU,GAAyB,EAAE,CAAC;QAE5C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAW,CAAC;YAClE,MAAM,GAAG,GAAG,SAAS,KAAK,iBAAiB;gBACvC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAW;gBAC/C,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC,CAAW,CAAC;YAChD,MAAM,WAAW,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC,CAAgB,CAAC;YACvE,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,CAAC,CAAoB,CAAC;YAErF,IAAI,CAAC;gBACD,MAAM,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;gBACzC,MAAM,YAAY,GAAG,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;gBAGvD,IAAI,cAAc,CAAC;gBACnB,IAAI,CAAC;oBACD,cAAc,GAAG,IAAA,gCAAwB,EAAC,WAAW,EAAE,YAAY,CAAC,CAAC;gBACzE,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACb,OAAO,CAAC,KAAK,CAAC,uBAAuB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;oBAEtD,MAAM,IAAA,+BAAc,EAAC,WAAW,CAAC,CAAC;oBAClC,cAAc,GAAG,IAAA,gCAAwB,EAAC,WAAW,EAAE,YAAY,CAAC,CAAC;gBACzE,CAAC;gBAED,OAAO,CAAC,GAAG,CAAC,2BAA2B,cAAc,EAAE,CAAC,CAAC;gBAEzD,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC;oBACjD,QAAQ,EAAE,cAAc,CAAC,QAAQ,KAAK,KAAK;oBAC3C,MAAM,EAAE,cAAc,CAAC,MAAM,IAAI,CAAC;oBAClC,cAAc;iBACjB,CAAC,CAAC;gBAEH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE,CAAC;gBAC3C,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;gBAGrC,IAAI,SAAS,KAAK,iBAAiB,EAAE,CAAC;oBAClC,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACzB,CAAC;gBAET,MAAM,MAAM,GAAG,MAAM,IAAA,4BAAe,EAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;gBAEvD,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;gBAEtB,UAAU,CAAC,IAAI,CAAC,MAAM,CAAE,CAAC;YAC7B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;gBAC9C,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC;oBACxB,UAAU,CAAC,IAAI,CAAC;wBACZ,IAAI,EAAE;4BACF,KAAK,EAAE,KAAK,CAAC,OAAO;4BACpB,WAAW;4BACX,EAAE,EAAE,IAAA,aAAQ,GAAE;yBACjB;qBACJ,CAAC,CAAC;oBACH,SAAS;gBACb,CAAC;gBACD,MAAM,KAAK,CAAC;YAChB,CAAC;QACL,CAAC;QAED,OAAO,CAAC,UAAU,CAAC,CAAC;IACxB,CAAC;CACJ;AA1SD,gCA0SC"}
@@ -0,0 +1,16 @@
1
+ {
2
+ "node": "n8n-nodes-base.playwright",
3
+ "nodeVersion": "1.0",
4
+ "codexVersion": "1.0",
5
+ "categories": [
6
+ "Development",
7
+ "Automation"
8
+ ],
9
+ "resources": {
10
+ "primaryDocumentation": [
11
+ {
12
+ "url": "https://playwright.dev/docs/intro"
13
+ }
14
+ ]
15
+ }
16
+ }
@@ -0,0 +1,3 @@
1
+ import { BrowserPaths } from './types';
2
+ export type BrowserType = 'chromium' | 'firefox' | 'webkit';
3
+ export declare const browserPaths: BrowserPaths;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.browserPaths = void 0;
4
+ exports.browserPaths = {
5
+ 'chromium': {
6
+ windows: ['chrome-win', 'chrome.exe'],
7
+ linux: ['chrome-linux', 'chrome'],
8
+ darwin: ['chrome-mac', 'Chrome']
9
+ },
10
+ 'firefox': {
11
+ windows: ['firefox', 'firefox.exe'],
12
+ linux: ['firefox', 'firefox'],
13
+ darwin: ['firefox', 'Firefox']
14
+ },
15
+ 'webkit': {
16
+ windows: ['Playwright.exe'],
17
+ linux: ['minibrowser-gtk', 'MiniBrowser'],
18
+ darwin: ['Playwright']
19
+ }
20
+ };
21
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../nodes/playwright/config.ts"],"names":[],"mappings":";;;AAKa,QAAA,YAAY,GAAiB;IACtC,UAAU,EAAE;QACR,OAAO,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC;QACrC,KAAK,EAAE,CAAC,cAAc,EAAE,QAAQ,CAAC;QACjC,MAAM,EAAE,CAAC,YAAY,EAAE,QAAQ,CAAC;KACnC;IACD,SAAS,EAAE;QACP,OAAO,EAAE,CAAC,SAAS,EAAE,aAAa,CAAC;QACnC,KAAK,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;QAC7B,MAAM,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC;KACjC;IACD,QAAQ,EAAE;QACN,OAAO,EAAE,CAAC,gBAAgB,CAAC;QAC/B,KAAK,EAAE,CAAC,iBAAiB,EAAE,aAAa,CAAC;QACrC,MAAM,EAAE,CAAC,YAAY,CAAC;KACzB;CACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { IExecuteFunctions } from 'n8n-workflow';
2
+ import { Page } from 'playwright';
3
+ export declare function handleOperation(operation: string, page: Page, executeFunctions: IExecuteFunctions, itemIndex: number): Promise<any>;
@@ -0,0 +1,134 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.handleOperation = handleOperation;
4
+ async function handleOperation(operation, page, executeFunctions, itemIndex) {
5
+ switch (operation) {
6
+ case 'navigate':
7
+ const content = await page.content();
8
+ const url = page.url();
9
+ return { content: content, url: url };
10
+ case 'takeScreenshot':
11
+ const screenshotOptions = executeFunctions.getNodeParameter('screenshotOptions', itemIndex);
12
+ const dataPropertyName = executeFunctions.getNodeParameter('dataPropertyName', itemIndex) || 'screenshot';
13
+ const screenshot = await page.screenshot(screenshotOptions);
14
+ const binaryData = await executeFunctions.helpers.prepareBinaryData(Buffer.from(screenshot), screenshotOptions.path || dataPropertyName, 'image/png');
15
+ return {
16
+ binary: {
17
+ [dataPropertyName]: binaryData
18
+ },
19
+ json: {
20
+ success: true,
21
+ url: page.url()
22
+ },
23
+ pairedItem: {
24
+ item: itemIndex
25
+ }
26
+ };
27
+ case 'getText':
28
+ const selector = executeFunctions.getNodeParameter('selector', itemIndex);
29
+ const element = await page.$(selector);
30
+ const text = await (element === null || element === void 0 ? void 0 : element.textContent());
31
+ return { text };
32
+ case 'clickElement':
33
+ const clickSelector = executeFunctions.getNodeParameter('selector', itemIndex);
34
+ await page.click(clickSelector);
35
+ return { success: true };
36
+ case 'fillForm':
37
+ const formSelector = executeFunctions.getNodeParameter('selector', itemIndex);
38
+ const value = executeFunctions.getNodeParameter('value', itemIndex);
39
+ await page.fill(formSelector, value);
40
+ return { success: true };
41
+ case 'executeTestSpec':
42
+ const testSpec = executeFunctions.getNodeParameter('testSpec', itemIndex);
43
+ const baseUrl = executeFunctions.getNodeParameter('baseUrl', itemIndex);
44
+ const results = await executeTestSpecification(page, testSpec, baseUrl);
45
+ return { json: results };
46
+ default:
47
+ throw new Error(`Unknown operation: ${operation}`);
48
+ }
49
+ }
50
+ async function executeTestSpecification(page, testSpec, baseUrl) {
51
+ const results = [];
52
+ const tests = typeof testSpec === 'string' ? JSON.parse(testSpec) : testSpec;
53
+ for (const test of tests) {
54
+ const testResult = {
55
+ test_name: test.test_name,
56
+ status: 'passed',
57
+ errors: [],
58
+ details: []
59
+ };
60
+ try {
61
+ for (const step of test.steps) {
62
+ const stepResult = await executeStep(page, step, baseUrl);
63
+ testResult.details.push(stepResult);
64
+ if (!stepResult.success) {
65
+ testResult.status = 'failed';
66
+ testResult.errors.push(stepResult.error);
67
+ }
68
+ }
69
+ }
70
+ catch (error) {
71
+ testResult.status = 'failed';
72
+ testResult.errors.push(error.message);
73
+ }
74
+ results.push(testResult);
75
+ }
76
+ return {
77
+ summary: {
78
+ total: results.length,
79
+ passed: results.filter((r) => r.status === 'passed').length,
80
+ failed: results.filter((r) => r.status === 'failed').length
81
+ },
82
+ results
83
+ };
84
+ }
85
+ async function executeStep(page, step, baseUrl) {
86
+ const result = {
87
+ action: step.action,
88
+ success: true,
89
+ error: null
90
+ };
91
+ try {
92
+ switch (step.action) {
93
+ case 'load_page':
94
+ await page.goto(baseUrl);
95
+ result.details = `Navigated to ${baseUrl}`;
96
+ break;
97
+ case 'assert_element_present':
98
+ const elementExists = await page.$(step.selector) !== null;
99
+ if (!elementExists) {
100
+ throw new Error(`Element not found: ${step.selector}`);
101
+ }
102
+ result.details = `Element found: ${step.selector}`;
103
+ break;
104
+ case 'assert_text_present':
105
+ const pageContent = await page.textContent('body');
106
+ if (!(pageContent === null || pageContent === void 0 ? void 0 : pageContent.includes(step.text))) {
107
+ throw new Error(`Text not found: "${step.text}"`);
108
+ }
109
+ result.details = `Text found: "${step.text}"`;
110
+ break;
111
+ case 'click':
112
+ if (step.selector) {
113
+ await page.click(step.selector);
114
+ result.details = `Clicked element: ${step.selector}`;
115
+ }
116
+ else if (step.link) {
117
+ await page.click(`text="${step.link}"`);
118
+ result.details = `Clicked link: ${step.link}`;
119
+ }
120
+ break;
121
+ case 'submit_form':
122
+ result.details = 'Form submission prepared';
123
+ break;
124
+ default:
125
+ result.details = `Action not implemented: ${step.action}`;
126
+ }
127
+ }
128
+ catch (error) {
129
+ result.success = false;
130
+ result.error = error.message;
131
+ }
132
+ return result;
133
+ }
134
+ //# sourceMappingURL=operations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operations.js","sourceRoot":"","sources":["../../../nodes/playwright/operations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="256px" height="192px" viewBox="0 0 256 192" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMid">
3
+ <title>Playwright</title>
4
+ <g>
5
+ <path d="M84.380258,108.351608 C74.8238495,111.063682 68.554264,115.818897 64.4242284,120.570403 C68.3799853,117.108559 73.678801,113.931495 80.8264547,111.905411 C88.1372629,109.833348 94.3742174,109.848181 99.5276772,110.842682 L99.5276772,106.812764 C95.131403,106.41081 90.0914098,106.731187 84.380258,108.351608 Z M63.9874191,74.4747851 L28.4964782,83.8250256 C28.4964782,83.8250256 29.1433119,84.7386912 30.3410148,85.9579009 L60.4328742,78.0285884 C60.4328742,78.0285884 60.0064474,83.5231896 56.3033577,88.4385921 C63.3081028,83.1390348 63.9874191,74.4747851 63.9874191,74.4747851 Z M93.6956427,157.884596 C43.750467,171.336691 17.3261001,113.45538 9.32588954,83.4126895 C5.62969676,69.5452921 4.01617216,59.042587 3.58611152,52.2649975 C3.53990911,51.561208 3.56126753,50.9679186 3.61102968,50.4243173 C1.020135,50.5807973 -0.220284754,51.9275642 0.0320857117,55.8195425 C0.462146344,62.5934239 2.07567095,73.0953873 5.77186373,86.9672344 C13.7685145,117.005475 40.1964412,174.886786 90.1418394,161.434691 C101.013125,158.506067 109.180495,153.171654 115.311399,146.362175 C109.660318,151.465947 102.587567,155.485482 93.6956427,157.884596 Z M103.081481,39.05096 L103.081481,42.605505 L122.671896,42.605505 C122.269942,41.3469899 121.865022,40.2130656 121.463068,39.05096 L103.081481,39.05096 Z" fill="#2D4552"></path>
6
+ <path d="M127.050371,68.3253408 C135.860718,70.8275387 140.520265,77.0044227 142.983157,82.4708426 L152.806546,85.2607859 C152.806546,85.2607859 151.466454,66.1294285 134.161686,61.2140261 C117.973044,56.6145502 108.010974,70.2090345 106.79918,71.9681375 C111.508414,68.6130861 118.38538,65.8661563 127.050371,68.3253408 Z M205.246652,82.5590944 C189.043177,77.9388534 179.084815,91.561519 177.890821,93.2961488 C182.603763,89.9448054 189.47702,87.1971341 198.138304,89.6674427 C206.93456,92.1733486 211.590398,98.3428165 214.060707,103.812944 L223.898186,106.61327 C223.898186,106.61327 222.536587,87.4782049 205.246652,82.5590944 Z M195.487042,133.00204 L113.768847,110.156691 C113.768847,110.156691 114.65359,114.641959 118.047947,120.44952 L186.850973,139.683961 C192.515403,136.406779 195.487042,133.00204 195.487042,133.00204 Z M138.831615,182.176088 C74.1267345,164.828307 81.9492548,82.3855573 92.419329,43.3189354 C96.7303179,27.2192868 101.162189,15.2528626 104.837617,7.23136786 C102.644671,6.77994881 100.828464,7.93508322 99.0337638,11.5850736 C95.131403,19.4998504 90.1410978,32.3868372 85.3117223,50.4272837 C74.8446146,89.4931639 67.0220942,171.932947 131.724008,189.280728 C162.221307,197.451064 185.979579,185.033518 203.690009,165.532096 C186.879154,180.758126 165.41617,189.294819 138.831615,182.176088 Z" fill="#2D4552"></path>
7
+ <path d="M103.081481,138.564869 L103.081481,121.928294 L56.8578607,135.035539 C56.8578607,135.035539 60.2734277,115.19001 84.380258,108.351608 C91.6910663,106.279545 97.9287624,106.293636 103.081481,107.288879 L103.081481,39.05096 L126.225699,39.05096 C123.705702,31.264037 121.268025,25.2688479 119.220435,21.103215 C115.833494,14.2084509 112.361268,18.7790038 104.478677,25.371932 C98.9269718,30.0099716 84.8956781,39.9045551 63.7812511,45.5942002 C42.6665273,51.2875533 25.5964056,49.7776318 18.474115,48.5443316 C8.37699735,46.8022856 3.0956837,44.5848666 3.58974542,52.2649975 C4.01973189,59.0388789 5.63333066,69.541584 9.32952344,83.4126895 C17.3261001,113.451672 43.7540267,171.332983 93.6993508,157.880888 C106.745784,154.365649 115.954377,147.417488 122.337429,138.561161 L103.081481,138.561161 L103.081481,138.564869 Z M28.4929926,83.8250256 L63.9874191,74.4747851 C63.9874191,74.4747851 62.9528708,88.12934 49.6466509,91.6371634 C36.336723,95.1412787 28.4929926,83.8250256 28.4929926,83.8250256 Z" fill="#E2574C"></path>
8
+ <path d="M236.66429,39.8400349 C227.437899,41.45749 205.303014,43.4724491 177.947925,36.140134 C150.585419,28.8122687 132.430764,15.9960317 125.237872,9.97191979 C115.041453,1.4315193 110.556185,-4.50374756 106.142112,4.47383303 C102.239751,12.3922438 97.2494461,25.2792305 92.419329,43.319677 C81.9529629,82.3855573 74.1304425,164.82534 138.831615,182.173121 C203.519438,199.50607 237.957661,124.195401 248.424769,85.1258125 C253.254886,67.0890741 255.372929,53.4308111 255.955836,44.624172 C256.62032,34.6480113 249.767828,37.544005 236.66429,39.8400349 Z M106.667915,72.1609566 C106.667915,72.1609566 116.864334,56.3023317 134.157978,61.2177341 C151.462746,66.1331366 152.802838,85.2644939 152.802838,85.2644939 L106.667915,72.1609566 Z M148.882678,143.323792 C118.463991,134.413327 113.772555,110.156691 113.772555,110.156691 L195.487042,133.002782 C195.487042,132.999073 178.992856,152.123015 148.882678,143.323792 Z M177.773646,93.4741356 C177.773646,93.4741356 187.955975,77.6266349 205.246652,82.556128 C222.536587,87.4789465 223.898186,106.610304 223.898186,106.610304 L177.773646,93.4741356 Z" fill="#2EAD33"></path>
9
+ <path d="M86.9284358,126.509229 L56.8578607,135.031831 C56.8578607,135.031831 60.1243637,116.42331 82.2763056,109.048723 L65.2489006,45.1470083 L63.777543,45.5942002 C42.6629676,51.2882949 25.5928458,49.7776318 18.4705553,48.5443316 C8.37351178,46.8030273 3.09219812,44.5848666 3.58618569,52.2657391 C4.01624632,59.0396205 5.62977092,69.541584 9.3259637,83.4134311 C17.3226145,113.451672 43.7505412,171.332983 93.6956427,157.880888 L95.1670004,157.418864 L86.9284358,126.509229 Z M28.4929926,83.8257672 L63.9874191,74.4747851 C63.9874191,74.4747851 62.9528708,88.12934 49.6466509,91.6371634 C36.3367972,95.1412787 28.4929926,83.8257672 28.4929926,83.8257672 Z" fill="#D65348"></path>
10
+ <path d="M150.25466,143.657517 L148.87897,143.32305 C118.460283,134.413327 113.768847,110.156691 113.768847,110.156691 L155.905741,121.934968 L178.214163,36.2113288 L177.944217,36.140134 C150.581711,28.8122687 132.427798,15.9960317 125.234164,9.97191979 C115.037745,1.4315193 110.552477,-4.50374756 106.138404,4.47383303 C102.239751,12.3922438 97.2494461,25.2792305 92.419329,43.319677 C81.9529629,82.3855573 74.1304425,164.82534 138.831615,182.17238 L140.157617,182.471249 L150.25466,143.657517 Z M106.667915,72.1609566 C106.667915,72.1609566 116.864334,56.3023317 134.157978,61.2177341 C151.462746,66.1331366 152.802838,85.2644939 152.802838,85.2644939 L106.667915,72.1609566 Z" fill="#1D8D22"></path>
11
+ <path d="M88.4606056,126.07242 L80.3963199,128.361034 C82.3015204,139.101055 85.6595382,149.407974 90.9301726,158.513483 C91.8475463,158.311023 92.7575039,158.136744 93.6919347,157.880888 C96.1407365,157.220112 98.4115516,156.402114 100.597823,155.509955 C94.7086843,146.770803 90.812998,136.705649 88.4606056,126.07242 Z M85.3117223,50.4280253 C81.1675961,65.8950792 77.4602791,88.1575212 78.4807368,110.48745 C80.3073265,109.694667 82.2370001,108.956022 84.380258,108.3479 L85.8731224,108.014175 C84.0532072,84.1624589 87.9874574,59.8568766 92.419329,43.319677 C93.5428707,39.1362454 94.6693789,35.2450087 95.792179,31.6163026 C93.9833881,32.767284 92.0359157,33.9471882 89.8177551,35.1626898 C88.3219243,39.7799643 86.8112612,44.826632 85.3117223,50.4280253 Z" fill="#C04B41"></path>
12
+ </g>
13
+ </svg>
@@ -0,0 +1,25 @@
1
+ export interface IBrowserOptions {
2
+ headless?: boolean;
3
+ slowMo?: number;
4
+ }
5
+ export interface BrowserPaths {
6
+ chromium: {
7
+ windows: string[];
8
+ linux: string[];
9
+ darwin: string[];
10
+ };
11
+ firefox: {
12
+ windows: string[];
13
+ linux: string[];
14
+ darwin: string[];
15
+ };
16
+ webkit: {
17
+ windows: string[];
18
+ linux: string[];
19
+ darwin: string[];
20
+ };
21
+ }
22
+ export interface IScreenshotOptions {
23
+ fullPage?: boolean;
24
+ path?: string;
25
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../nodes/playwright/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ import { BrowserType } from './config';
2
+ export declare function getBrowserExecutablePath(browserType: BrowserType, basePath: string): string;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getBrowserExecutablePath = getBrowserExecutablePath;
4
+ const path_1 = require("path");
5
+ const config_1 = require("./config");
6
+ const os_1 = require("os");
7
+ const fs_1 = require("fs");
8
+ function getBrowserExecutablePath(browserType, basePath) {
9
+ const os = (0, os_1.platform)();
10
+ const files = (0, fs_1.readdirSync)(basePath);
11
+ const browserDir = files.find(f => f.startsWith(browserType));
12
+ if (!browserDir) {
13
+ throw new Error(`Browser ${browserType} not found in ${basePath}`);
14
+ }
15
+ let pathSegments;
16
+ switch (os) {
17
+ case 'win32':
18
+ pathSegments = config_1.browserPaths[browserType].windows;
19
+ break;
20
+ case 'linux':
21
+ pathSegments = config_1.browserPaths[browserType].linux;
22
+ break;
23
+ case 'darwin':
24
+ pathSegments = config_1.browserPaths[browserType].darwin;
25
+ break;
26
+ default:
27
+ throw new Error(`Unsupported operating system: ${os}`);
28
+ }
29
+ return (0, path_1.join)(basePath, browserDir, ...pathSegments);
30
+ }
31
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../nodes/playwright/utils.ts"],"names":[],"mappings":";;AAKA,4DA0BC;AA/BD,+BAA4B;AAC5B,qCAAqD;AACrD,2BAA8B;AAC9B,2BAAiC;AAEjC,SAAgB,wBAAwB,CAAC,WAAwB,EAAE,QAAgB;IAC/E,MAAM,EAAE,GAAG,IAAA,aAAQ,GAAE,CAAC;IACtB,MAAM,KAAK,GAAG,IAAA,gBAAW,EAAC,QAAQ,CAAC,CAAC;IAGpC,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;IAC9D,IAAI,CAAC,UAAU,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,WAAW,WAAW,iBAAiB,QAAQ,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,IAAI,YAAsB,CAAC;IAC3B,QAAQ,EAAE,EAAE,CAAC;QACT,KAAK,OAAO;YACR,YAAY,GAAG,qBAAY,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC;YACjD,MAAM;QACV,KAAK,OAAO;YACR,YAAY,GAAG,qBAAY,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC;YAC/C,MAAM;QACV,KAAK,QAAQ;YACT,YAAY,GAAG,qBAAY,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC;YAChD,MAAM;QACV;YACI,MAAM,IAAI,KAAK,CAAC,iCAAiC,EAAE,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,OAAO,IAAA,WAAI,EAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,YAAY,CAAC,CAAC;AACvD,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { BrowserType } from '../playwright/config';
2
+ export declare function installBrowser(browserType: BrowserType): Promise<void>;
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.installBrowser = installBrowser;
4
+ const fs_1 = require("fs");
5
+ const path_1 = require("path");
6
+ const child_process_1 = require("child_process");
7
+ const os_1 = require("os");
8
+ async function setupBrowsers() {
9
+ try {
10
+ console.log('Current working directory:', process.cwd());
11
+ console.log('Operating System:', (0, os_1.platform)());
12
+ console.log('Node version:', process.version);
13
+ const os = (0, os_1.platform)();
14
+ const sourcePath = os === 'win32'
15
+ ? (0, path_1.join)(process.env.USERPROFILE || '', 'AppData', 'Local', 'ms-playwright')
16
+ : (0, path_1.join)(process.env.HOME || '', '.cache', 'ms-playwright');
17
+ const browsersPath = (0, path_1.join)(__dirname, '..', 'browsers');
18
+ console.log('\nPaths:');
19
+ console.log('Source path:', sourcePath);
20
+ console.log('Destination path:', browsersPath);
21
+ if (!(0, fs_1.existsSync)(sourcePath)) {
22
+ console.log('\nInstalling Playwright browsers...');
23
+ (0, child_process_1.execSync)('npx --yes playwright install', { stdio: 'inherit' });
24
+ }
25
+ if ((0, fs_1.existsSync)(browsersPath)) {
26
+ console.log('\nCleaning existing browsers directory...');
27
+ (0, fs_1.rmSync)(browsersPath, { recursive: true, force: true });
28
+ }
29
+ console.log('Creating browsers directory...');
30
+ (0, fs_1.mkdirSync)(browsersPath, { recursive: true });
31
+ console.log('\nCopying browser files...');
32
+ const files = (0, fs_1.readdirSync)(sourcePath);
33
+ for (const file of files) {
34
+ if (file.startsWith('chromium-') ||
35
+ file.startsWith('firefox-') ||
36
+ file.startsWith('webkit')) {
37
+ const sourceFull = (0, path_1.join)(sourcePath, file);
38
+ const destFull = (0, path_1.join)(browsersPath, file);
39
+ console.log(`Copying ${file}...`);
40
+ (0, fs_1.cpSync)(sourceFull, destFull, { recursive: true });
41
+ }
42
+ }
43
+ console.log('\nVerifying installation...');
44
+ const installedFiles = (0, fs_1.readdirSync)(browsersPath);
45
+ console.log('Installed browsers:', installedFiles);
46
+ const browsers = ['chromium', 'firefox', 'webkit'];
47
+ for (const browserType of browsers) {
48
+ const browserDir = installedFiles.find(f => f.startsWith(browserType));
49
+ if (!browserDir) {
50
+ console.log(`\nInstalling ${browserType}...`);
51
+ await installBrowser(browserType);
52
+ }
53
+ }
54
+ console.log('\nBrowser setup completed successfully!');
55
+ }
56
+ catch (error) {
57
+ console.error('\nError during browser setup:', error);
58
+ process.exit(1);
59
+ }
60
+ }
61
+ async function installBrowser(browserType) {
62
+ try {
63
+ console.log(`Installing ${browserType}...`);
64
+ (0, child_process_1.execSync)(`PLAYWRIGHT_BROWSERS_PATH=~/.n8n/nodes/node_modules/n8n-nodes-playwright/dist/nodes/browsers npx --yes playwright install ${browserType}`, { stdio: 'inherit' });
65
+ }
66
+ catch (error) {
67
+ console.error(`Failed to install ${browserType}:`, error);
68
+ }
69
+ }
70
+ console.log('Starting browser setup...\n');
71
+ setupBrowsers().catch(error => {
72
+ console.error('Unhandled error:', error);
73
+ process.exit(1);
74
+ });
75
+ //# sourceMappingURL=setup-browsers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup-browsers.js","sourceRoot":"","sources":["../../../nodes/scripts/setup-browsers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const fs_1 = require("fs");
4
+ const path_1 = require("path");
5
+ const os_1 = require("os");
6
+ function testPaths() {
7
+ const os = (0, os_1.platform)();
8
+ const sourcePath = os === 'win32'
9
+ ? (0, path_1.join)(process.env.USERPROFILE || '', 'AppData', 'Local', 'ms-playwright')
10
+ : (0, path_1.join)(process.env.HOME || '', '.cache', 'ms-playwright');
11
+ console.log('Testing paths:');
12
+ console.log('Source path exists:', (0, fs_1.existsSync)(sourcePath));
13
+ if ((0, fs_1.existsSync)(sourcePath)) {
14
+ console.log('Source contents:', (0, fs_1.readdirSync)(sourcePath));
15
+ }
16
+ }
17
+ function testBrowserVersions() {
18
+ const browsersPath = (0, path_1.join)(process.cwd(), 'browsers');
19
+ console.log('\nTesting browser versions:');
20
+ console.log('Browsers path exists:', (0, fs_1.existsSync)(browsersPath));
21
+ if ((0, fs_1.existsSync)(browsersPath)) {
22
+ console.log('Installed browsers:', (0, fs_1.readdirSync)(browsersPath));
23
+ }
24
+ }
25
+ console.log('Running setup tests...\n');
26
+ testPaths();
27
+ testBrowserVersions();
28
+ //# sourceMappingURL=test-setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-setup.js","sourceRoot":"","sources":["../../../nodes/scripts/test-setup.ts"],"names":[],"mappings":";;AAAA,2BAA6C;AAC7C,+BAA4B;AAC5B,2BAA8B;AAE9B,SAAS,SAAS;IACd,MAAM,EAAE,GAAG,IAAA,aAAQ,GAAE,CAAC;IACtB,MAAM,UAAU,GAAG,EAAE,KAAK,OAAO;QAC7B,CAAC,CAAC,IAAA,WAAI,EAAC,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,eAAe,CAAC;QAC1E,CAAC,CAAC,IAAA,WAAI,EAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;IAE9D,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IAC9B,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,IAAA,eAAU,EAAC,UAAU,CAAC,CAAC,CAAC;IAC3D,IAAI,IAAA,eAAU,EAAC,UAAU,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAA,gBAAW,EAAC,UAAU,CAAC,CAAC,CAAC;IAC7D,CAAC;AACL,CAAC;AAED,SAAS,mBAAmB;IACxB,MAAM,YAAY,GAAG,IAAA,WAAI,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;IAC3C,OAAO,CAAC,GAAG,CAAC,uBAAuB,EAAE,IAAA,eAAU,EAAC,YAAY,CAAC,CAAC,CAAC;IAC/D,IAAI,IAAA,eAAU,EAAC,YAAY,CAAC,EAAE,CAAC;QAC3B,OAAO,CAAC,GAAG,CAAC,qBAAqB,EAAE,IAAA,gBAAW,EAAC,YAAY,CAAC,CAAC,CAAC;IAClE,CAAC;AACL,CAAC;AAED,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;AACxC,SAAS,EAAE,CAAC;AACZ,mBAAmB,EAAE,CAAC"}
@@ -0,0 +1,68 @@
1
+ {
2
+ "name": "n8n-nodes-playwright",
3
+ "version": "0.2.16",
4
+ "description": "n8n-community-node-package for browser automation using Playwright",
5
+ "keywords": [
6
+ "n8n-community-node-package"
7
+ ],
8
+ "license": "MIT",
9
+ "homepage": "",
10
+ "author": {
11
+ "name": "Mohamed Toema",
12
+ "email": "m.toema20@gmail.com"
13
+ },
14
+ "repository": {
15
+ "type": "git",
16
+ "url": "https://github.com/toema/n8n-playwright"
17
+ },
18
+ "engines": {
19
+ "node": ">=18.10",
20
+ "pnpm": ">=9.1"
21
+ },
22
+ "packageManager": "pnpm@9.1.4",
23
+ "main": "dist/nodes/index.js",
24
+ "scripts": {
25
+ "preinstall": "npx only-allow pnpm",
26
+ "postinstall": "npm config set yes true && node dist/nodes/scripts/setup-browsers.js",
27
+ "rebuild": "node dist/nodes/scripts/setup-browsers.js",
28
+ "setup": "npm config set yes true && node dist/nodes/scripts/setup-browsers.js ",
29
+ "test:setup": "ts-node scripts/test-setup.ts",
30
+ "build": "tsc && gulp build:icons",
31
+ "dev": "tsc --watch",
32
+ "format": "prettier nodes package.json --write",
33
+ "lint": "eslint nodes package.json",
34
+ "lintfix": "eslint nodes package.json --fix",
35
+ "prepublish": "pnpm build && pnpm lint -c .eslintrc.prepublish.js nodes package.json && npm version patch",
36
+ "publish": " npm publish --access public"
37
+ },
38
+ "files": [
39
+ "dist",
40
+ "nodes/browsers"
41
+ ],
42
+ "n8n": {
43
+ "n8nNodesApiVersion": 1,
44
+ "nodes": [
45
+ "dist/nodes/playwright/Playwright.node.js"
46
+ ]
47
+ },
48
+ "devDependencies": {
49
+ "@types/fs-extra": "^11.0.4",
50
+ "@types/node": "^22.10.1",
51
+ "@typescript-eslint/parser": "^7.15.0",
52
+ "eslint": "^8.56.0",
53
+ "eslint-plugin-n8n-nodes-base": "^1.16.1",
54
+ "gulp": "^4.0.2",
55
+ "n8n-workflow": "*",
56
+ "playwright": "^1.49.0",
57
+ "prettier": "^3.3.2",
58
+ "ts-node": "^10.9.2",
59
+ "typescript": "^5.5.3"
60
+ },
61
+ "peerDependencies": {
62
+ "n8n-workflow": "*"
63
+ },
64
+ "dependencies": {
65
+ "fs-extra": "^11.2.0",
66
+ "playwright": "1.49.0"
67
+ }
68
+ }
@@ -0,0 +1 @@
1
+ {"program":{"fileNames":["../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es5.d.ts","../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2017.date.d.ts","../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.es2022.error.d.ts","../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.decorators.d.ts","../node_modules/.pnpm/typescript@5.5.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","../node_modules/.pnpm/@types+node@22.10.1/node_modules/@types/node/compatibility/disposable.d.ts","../node_modules/.pnpm/@types+node@22.10.1/node_modules/@types/node/compatibility/indexable.d.ts","../node_modules/.pnpm/@types+node@22.10.1/node_modules/@types/node/compatibility/iterators.d.ts","../node_modules/.pnpm/@types+node@22.10.1/node_modules/@types/node/compatibility/index.d.ts","../node_modules/.pnpm/@types+node@22.10.1/node_modules/@types/node/ts5.6/globals.typedarray.d.ts","../node_modules/.pnpm/@types+node@22.10.1/node_modules/@types/node/ts5.6/buffer.buffer.d.ts","../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/header.d.ts","../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/readable.d.ts","../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/file.d.ts","../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/fetch.d.ts","../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/formdata.d.ts","../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/connector.d.ts","../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/client.d.ts","../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/errors.d.ts","../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/dispatcher.d.ts","../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/global-dispatcher.d.ts","../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/global-origin.d.ts","../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/pool-stats.d.ts","../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/pool.d.ts","../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/handlers.d.ts","../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/balanced-pool.d.ts","../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/agent.d.ts","../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/mock-interceptor.d.ts","../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/mock-agent.d.ts","../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/mock-client.d.ts","../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/mock-pool.d.ts","../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/mock-errors.d.ts","../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/proxy-agent.d.ts","../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/env-http-proxy-agent.d.ts","../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/retry-handler.d.ts","../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/retry-agent.d.ts","../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/api.d.ts","../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/interceptors.d.ts","../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/util.d.ts","../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/cookies.d.ts","../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/patch.d.ts","../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/websocket.d.ts","../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/eventsource.d.ts","../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/filereader.d.ts","../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/diagnostics-channel.d.ts","../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/content-type.d.ts","../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/cache.d.ts","../node_modules/.pnpm/undici-types@6.20.0/node_modules/undici-types/index.d.ts","../node_modules/.pnpm/@types+node@22.10.1/node_modules/@types/node/globals.d.ts","../node_modules/.pnpm/@types+node@22.10.1/node_modules/@types/node/assert.d.ts","../node_modules/.pnpm/@types+node@22.10.1/node_modules/@types/node/assert/strict.d.ts","../node_modules/.pnpm/@types+node@22.10.1/node_modules/@types/node/async_hooks.d.ts","../node_modules/.pnpm/@types+node@22.10.1/node_modules/@types/node/buffer.d.ts","../node_modules/.pnpm/@types+node@22.10.1/node_modules/@types/node/child_process.d.ts","../node_modules/.pnpm/@types+node@22.10.1/node_modules/@types/node/cluster.d.ts","../node_modules/.pnpm/@types+node@22.10.1/node_modules/@types/node/console.d.ts","../node_modules/.pnpm/@types+node@22.10.1/node_modules/@types/node/constants.d.ts","../node_modules/.pnpm/@types+node@22.10.1/node_modules/@types/node/crypto.d.ts","../node_modules/.pnpm/@types+node@22.10.1/node_modules/@types/node/dgram.d.ts","../node_modules/.pnpm/@types+node@22.10.1/node_modules/@types/node/diagnostics_channel.d.ts","../node_modules/.pnpm/@types+node@22.10.1/node_modules/@types/node/dns.d.ts","../node_modules/.pnpm/@types+node@22.10.1/node_modules/@types/node/dns/promises.d.ts","../node_modules/.pnpm/@types+node@22.10.1/node_modules/@types/node/domain.d.ts","../node_modules/.pnpm/@types+node@22.10.1/node_modules/@types/node/dom-events.d.ts","../node_modules/.pnpm/@types+node@22.10.1/node_modules/@types/node/events.d.ts","../node_modules/.pnpm/@types+node@22.10.1/node_modules/@types/node/fs.d.ts","../node_modules/.pnpm/@types+node@22.10.1/node_modules/@types/node/fs/promises.d.ts","../node_modules/.pnpm/@types+node@22.10.1/node_modules/@types/node/http.d.ts","../node_modules/.pnpm/@types+node@22.10.1/node_modules/@types/node/http2.d.ts","../node_modules/.pnpm/@types+node@22.10.1/node_modules/@types/node/https.d.ts","../node_modules/.pnpm/@types+node@22.10.1/node_modules/@types/node/inspector.d.ts","../node_modules/.pnpm/@types+node@22.10.1/node_modules/@types/node/module.d.ts","../node_modules/.pnpm/@types+node@22.10.1/node_modules/@types/node/net.d.ts","../node_modules/.pnpm/@types+node@22.10.1/node_modules/@types/node/os.d.ts","../node_modules/.pnpm/@types+node@22.10.1/node_modules/@types/node/path.d.ts","../node_modules/.pnpm/@types+node@22.10.1/node_modules/@types/node/perf_hooks.d.ts","../node_modules/.pnpm/@types+node@22.10.1/node_modules/@types/node/process.d.ts","../node_modules/.pnpm/@types+node@22.10.1/node_modules/@types/node/punycode.d.ts","../node_modules/.pnpm/@types+node@22.10.1/node_modules/@types/node/querystring.d.ts","../node_modules/.pnpm/@types+node@22.10.1/node_modules/@types/node/readline.d.ts","../node_modules/.pnpm/@types+node@22.10.1/node_modules/@types/node/readline/promises.d.ts","../node_modules/.pnpm/@types+node@22.10.1/node_modules/@types/node/repl.d.ts","../node_modules/.pnpm/@types+node@22.10.1/node_modules/@types/node/sea.d.ts","../node_modules/.pnpm/@types+node@22.10.1/node_modules/@types/node/sqlite.d.ts","../node_modules/.pnpm/@types+node@22.10.1/node_modules/@types/node/stream.d.ts","../node_modules/.pnpm/@types+node@22.10.1/node_modules/@types/node/stream/promises.d.ts","../node_modules/.pnpm/@types+node@22.10.1/node_modules/@types/node/stream/consumers.d.ts","../node_modules/.pnpm/@types+node@22.10.1/node_modules/@types/node/stream/web.d.ts","../node_modules/.pnpm/@types+node@22.10.1/node_modules/@types/node/string_decoder.d.ts","../node_modules/.pnpm/@types+node@22.10.1/node_modules/@types/node/test.d.ts","../node_modules/.pnpm/@types+node@22.10.1/node_modules/@types/node/timers.d.ts","../node_modules/.pnpm/@types+node@22.10.1/node_modules/@types/node/timers/promises.d.ts","../node_modules/.pnpm/@types+node@22.10.1/node_modules/@types/node/tls.d.ts","../node_modules/.pnpm/@types+node@22.10.1/node_modules/@types/node/trace_events.d.ts","../node_modules/.pnpm/@types+node@22.10.1/node_modules/@types/node/tty.d.ts","../node_modules/.pnpm/@types+node@22.10.1/node_modules/@types/node/url.d.ts","../node_modules/.pnpm/@types+node@22.10.1/node_modules/@types/node/util.d.ts","../node_modules/.pnpm/@types+node@22.10.1/node_modules/@types/node/v8.d.ts","../node_modules/.pnpm/@types+node@22.10.1/node_modules/@types/node/vm.d.ts","../node_modules/.pnpm/@types+node@22.10.1/node_modules/@types/node/wasi.d.ts","../node_modules/.pnpm/@types+node@22.10.1/node_modules/@types/node/worker_threads.d.ts","../node_modules/.pnpm/@types+node@22.10.1/node_modules/@types/node/zlib.d.ts","../node_modules/.pnpm/@types+node@22.10.1/node_modules/@types/node/ts5.6/index.d.ts","../node_modules/.pnpm/form-data@4.0.0/node_modules/form-data/index.d.ts","../node_modules/.pnpm/n8n-workflow@1.48.0/node_modules/n8n-workflow/dist/authentication.d.ts","../node_modules/.pnpm/n8n-workflow@1.48.0/node_modules/n8n-workflow/dist/constants.d.ts","../node_modules/.pnpm/n8n-workflow@1.48.0/node_modules/n8n-workflow/dist/deferredpromise.d.ts","../node_modules/.pnpm/n8n-workflow@1.48.0/node_modules/n8n-workflow/dist/executionstatus.d.ts","../node_modules/.pnpm/n8n-workflow@1.48.0/node_modules/n8n-workflow/dist/errors/application.error.d.ts","../node_modules/.pnpm/n8n-workflow@1.48.0/node_modules/n8n-workflow/dist/errors/abstract/execution-base.error.d.ts","../node_modules/.pnpm/n8n-workflow@1.48.0/node_modules/n8n-workflow/dist/errors/expression.error.d.ts","../node_modules/.pnpm/n8n-workflow@1.48.0/node_modules/n8n-workflow/dist/expression.d.ts","../node_modules/.pnpm/n8n-workflow@1.48.0/node_modules/n8n-workflow/dist/workflow.d.ts","../node_modules/.pnpm/n8n-workflow@1.48.0/node_modules/n8n-workflow/dist/errors/workflow-activation.error.d.ts","../node_modules/.pnpm/n8n-workflow@1.48.0/node_modules/n8n-workflow/dist/errors/workflow-operation.error.d.ts","../node_modules/.pnpm/n8n-workflow@1.48.0/node_modules/n8n-workflow/dist/workflowhooks.d.ts","../node_modules/.pnpm/n8n-workflow@1.48.0/node_modules/n8n-workflow/dist/errors/abstract/node.error.d.ts","../node_modules/.pnpm/n8n-workflow@1.48.0/node_modules/n8n-workflow/dist/errors/node-api.error.d.ts","../node_modules/.pnpm/n8n-workflow@1.48.0/node_modules/n8n-workflow/dist/errors/node-operation.error.d.ts","../node_modules/.pnpm/axios@1.6.7/node_modules/axios/index.d.ts","../node_modules/.pnpm/n8n-workflow@1.48.0/node_modules/n8n-workflow/dist/interfaces.d.ts","../node_modules/.pnpm/n8n-workflow@1.48.0/node_modules/n8n-workflow/dist/loggerproxy.d.ts","../node_modules/.pnpm/n8n-workflow@1.48.0/node_modules/n8n-workflow/dist/errorreporterproxy.d.ts","../node_modules/.pnpm/ast-types@0.15.2/node_modules/ast-types/types.d.ts","../node_modules/.pnpm/ast-types@0.15.2/node_modules/ast-types/gen/namedtypes.d.ts","../node_modules/.pnpm/ast-types@0.15.2/node_modules/ast-types/gen/kinds.d.ts","../node_modules/.pnpm/ast-types@0.15.2/node_modules/ast-types/gen/builders.d.ts","../node_modules/.pnpm/ast-types@0.15.2/node_modules/ast-types/lib/types.d.ts","../node_modules/.pnpm/ast-types@0.15.2/node_modules/ast-types/lib/path.d.ts","../node_modules/.pnpm/ast-types@0.15.2/node_modules/ast-types/lib/scope.d.ts","../node_modules/.pnpm/ast-types@0.15.2/node_modules/ast-types/lib/node-path.d.ts","../node_modules/.pnpm/ast-types@0.15.2/node_modules/ast-types/lib/path-visitor.d.ts","../node_modules/.pnpm/ast-types@0.15.2/node_modules/ast-types/gen/visitor.d.ts","../node_modules/.pnpm/ast-types@0.15.2/node_modules/ast-types/main.d.ts","../node_modules/.pnpm/recast@0.22.0/node_modules/recast/lib/options.d.ts","../node_modules/.pnpm/recast@0.22.0/node_modules/recast/lib/parser.d.ts","../node_modules/.pnpm/recast@0.22.0/node_modules/recast/lib/printer.d.ts","../node_modules/.pnpm/recast@0.22.0/node_modules/recast/main.d.ts","../node_modules/.pnpm/@n8n+tournament@1.0.2/node_modules/@n8n/tournament/dist/expressionsplitter.d.ts","../node_modules/.pnpm/@n8n+tournament@1.0.2/node_modules/@n8n/tournament/dist/expressionbuilder.d.ts","../node_modules/.pnpm/@n8n+tournament@1.0.2/node_modules/@n8n/tournament/dist/analysis.d.ts","../node_modules/.pnpm/@n8n+tournament@1.0.2/node_modules/@n8n/tournament/dist/index.d.ts","../node_modules/.pnpm/n8n-workflow@1.48.0/node_modules/n8n-workflow/dist/expressionevaluatorproxy.d.ts","../node_modules/.pnpm/n8n-workflow@1.48.0/node_modules/n8n-workflow/dist/nodehelpers.d.ts","../node_modules/.pnpm/n8n-workflow@1.48.0/node_modules/n8n-workflow/dist/observableobject.d.ts","../node_modules/.pnpm/n8n-workflow@1.48.0/node_modules/n8n-workflow/dist/telemetryhelpers.d.ts","../node_modules/.pnpm/n8n-workflow@1.48.0/node_modules/n8n-workflow/dist/errors/credential-access-error.d.ts","../node_modules/.pnpm/n8n-workflow@1.48.0/node_modules/n8n-workflow/dist/errors/node-ssl.error.d.ts","../node_modules/.pnpm/n8n-workflow@1.48.0/node_modules/n8n-workflow/dist/errors/webhook-taken.error.d.ts","../node_modules/.pnpm/n8n-workflow@1.48.0/node_modules/n8n-workflow/dist/errors/workflow-deactivation.error.d.ts","../node_modules/.pnpm/n8n-workflow@1.48.0/node_modules/n8n-workflow/dist/errors/subworkflow-operation.error.d.ts","../node_modules/.pnpm/n8n-workflow@1.48.0/node_modules/n8n-workflow/dist/errors/cli-subworkflow-operation.error.d.ts","../node_modules/.pnpm/n8n-workflow@1.48.0/node_modules/n8n-workflow/dist/errors/trigger-close.error.d.ts","../node_modules/.pnpm/n8n-workflow@1.48.0/node_modules/n8n-workflow/dist/errors/expression-extension.error.d.ts","../node_modules/.pnpm/n8n-workflow@1.48.0/node_modules/n8n-workflow/dist/errors/index.d.ts","../node_modules/.pnpm/n8n-workflow@1.48.0/node_modules/n8n-workflow/dist/cron.d.ts","../node_modules/.pnpm/n8n-workflow@1.48.0/node_modules/n8n-workflow/dist/globalstate.d.ts","../node_modules/.pnpm/n8n-workflow@1.48.0/node_modules/n8n-workflow/dist/messageeventbus.d.ts","../node_modules/.pnpm/n8n-workflow@1.48.0/node_modules/n8n-workflow/dist/routingnode.d.ts","../node_modules/.pnpm/n8n-workflow@1.48.0/node_modules/n8n-workflow/dist/workflowdataproxy.d.ts","../node_modules/.pnpm/n8n-workflow@1.48.0/node_modules/n8n-workflow/dist/versionednodetype.d.ts","../node_modules/.pnpm/n8n-workflow@1.48.0/node_modules/n8n-workflow/dist/typevalidation.d.ts","../node_modules/.pnpm/n8n-workflow@1.48.0/node_modules/n8n-workflow/dist/utils.d.ts","../node_modules/.pnpm/n8n-workflow@1.48.0/node_modules/n8n-workflow/dist/type-guards.d.ts","../node_modules/.pnpm/n8n-workflow@1.48.0/node_modules/n8n-workflow/dist/extensions/extensions.d.ts","../node_modules/.pnpm/n8n-workflow@1.48.0/node_modules/n8n-workflow/dist/extensions/expressionextension.d.ts","../node_modules/.pnpm/n8n-workflow@1.48.0/node_modules/n8n-workflow/dist/extensions/index.d.ts","../node_modules/.pnpm/n8n-workflow@1.48.0/node_modules/n8n-workflow/dist/extensions/expressionparser.d.ts","../node_modules/.pnpm/n8n-workflow@1.48.0/node_modules/n8n-workflow/dist/nativemethods/index.d.ts","../node_modules/.pnpm/n8n-workflow@1.48.0/node_modules/n8n-workflow/dist/nodeparameters/filterparameter.d.ts","../node_modules/.pnpm/n8n-workflow@1.48.0/node_modules/n8n-workflow/dist/index.d.ts","../nodes/playwright/types.ts","../nodes/playwright/config.ts","../nodes/playwright/utils.ts","../node_modules/.pnpm/playwright-core@1.49.0/node_modules/playwright-core/types/protocol.d.ts","../node_modules/.pnpm/playwright-core@1.49.0/node_modules/playwright-core/types/structs.d.ts","../node_modules/.pnpm/playwright-core@1.49.0/node_modules/playwright-core/types/types.d.ts","../node_modules/.pnpm/playwright@1.49.0/node_modules/playwright/index.d.ts","../nodes/playwright/operations.ts","../nodes/scripts/setup-browsers.ts","../nodes/playwright/playwright.node.ts","../nodes/scripts/test-setup.ts","../nodes/playwright/playwright.node.json","../package.json","../node_modules/.pnpm/@types+jsonfile@6.1.4/node_modules/@types/jsonfile/index.d.ts","../node_modules/.pnpm/@types+jsonfile@6.1.4/node_modules/@types/jsonfile/utils.d.ts","../node_modules/.pnpm/@types+fs-extra@11.0.4/node_modules/@types/fs-extra/index.d.ts","../node_modules/@types/json-schema/index.d.ts","../node_modules/@types/jsonfile/index.d.ts","../node_modules/@types/semver/classes/semver.d.ts","../node_modules/@types/semver/functions/parse.d.ts","../node_modules/@types/semver/functions/valid.d.ts","../node_modules/@types/semver/functions/clean.d.ts","../node_modules/@types/semver/functions/inc.d.ts","../node_modules/@types/semver/functions/diff.d.ts","../node_modules/@types/semver/functions/major.d.ts","../node_modules/@types/semver/functions/minor.d.ts","../node_modules/@types/semver/functions/patch.d.ts","../node_modules/@types/semver/functions/prerelease.d.ts","../node_modules/@types/semver/functions/compare.d.ts","../node_modules/@types/semver/functions/rcompare.d.ts","../node_modules/@types/semver/functions/compare-loose.d.ts","../node_modules/@types/semver/functions/compare-build.d.ts","../node_modules/@types/semver/functions/sort.d.ts","../node_modules/@types/semver/functions/rsort.d.ts","../node_modules/@types/semver/functions/gt.d.ts","../node_modules/@types/semver/functions/lt.d.ts","../node_modules/@types/semver/functions/eq.d.ts","../node_modules/@types/semver/functions/neq.d.ts","../node_modules/@types/semver/functions/gte.d.ts","../node_modules/@types/semver/functions/lte.d.ts","../node_modules/@types/semver/functions/cmp.d.ts","../node_modules/@types/semver/functions/coerce.d.ts","../node_modules/@types/semver/classes/comparator.d.ts","../node_modules/@types/semver/classes/range.d.ts","../node_modules/@types/semver/functions/satisfies.d.ts","../node_modules/@types/semver/ranges/max-satisfying.d.ts","../node_modules/@types/semver/ranges/min-satisfying.d.ts","../node_modules/@types/semver/ranges/to-comparators.d.ts","../node_modules/@types/semver/ranges/min-version.d.ts","../node_modules/@types/semver/ranges/valid.d.ts","../node_modules/@types/semver/ranges/outside.d.ts","../node_modules/@types/semver/ranges/gtr.d.ts","../node_modules/@types/semver/ranges/ltr.d.ts","../node_modules/@types/semver/ranges/intersects.d.ts","../node_modules/@types/semver/ranges/simplify.d.ts","../node_modules/@types/semver/ranges/subset.d.ts","../node_modules/@types/semver/internals/identifiers.d.ts","../node_modules/@types/semver/index.d.ts"],"fileInfos":[{"version":"44e584d4f6444f58791784f1d530875970993129442a847597db702a073ca68c","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","9a68c0c07ae2fa71b44384a839b7b8d81662a236d4b9ac30916718f7510b1b2d","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4",{"version":"6920e1448680767498a0b77c6a00a8e77d14d62c3da8967b171f1ddffa3c18e4","affectsGlobalScope":true},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"bc47685641087c015972a3f072480889f0d6c65515f12bd85222f49a98952ed7","affectsGlobalScope":true},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true},{"version":"93495ff27b8746f55d19fcbcdbaccc99fd95f19d057aed1bd2c0cafe1335fbf0","affectsGlobalScope":true},{"version":"6fc23bb8c3965964be8c597310a2878b53a0306edb71d4b5a4dfe760186bcc01","affectsGlobalScope":true},{"version":"ea011c76963fb15ef1cdd7ce6a6808b46322c527de2077b6cfdf23ae6f5f9ec7","affectsGlobalScope":true},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true},{"version":"bb42a7797d996412ecdc5b2787720de477103a0b2e53058569069a0e2bae6c7e","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"b541a838a13f9234aba650a825393ffc2292dc0fc87681a5d81ef0c96d281e7a","affectsGlobalScope":true},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true},{"version":"ae37d6ccd1560b0203ab88d46987393adaaa78c919e51acf32fb82c86502e98c","affectsGlobalScope":true},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"5e07ed3809d48205d5b985642a59f2eba47c402374a7cf8006b686f79efadcbd","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"479553e3779be7d4f68e9f40cdb82d038e5ef7592010100410723ceced22a0f7","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"e6633e05da3ff36e6da2ec170d0d03ccf33de50ca4dc6f5aeecb572cedd162fb","affectsGlobalScope":true},{"version":"33358442698bb565130f52ba79bfd3d4d484ac85fe33f3cb1759c54d18201393","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},{"version":"70521b6ab0dcba37539e5303104f29b721bfb2940b2776da4cc818c07e1fefc1","affectsGlobalScope":true},{"version":"030e350db2525514580ed054f712ffb22d273e6bc7eddc1bb7eda1e0ba5d395e","affectsGlobalScope":true},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true},"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a",{"version":"613b21ccdf3be6329d56e6caa13b258c842edf8377be7bc9f014ed14cdcfc308","affectsGlobalScope":true},{"version":"2d1319e6b5d0efd8c5eae07eb864a00102151e8b9afddd2d45db52e9aae002c4","affectsGlobalScope":true},"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","24bd580b5743dc56402c440dc7f9a4f5d592ad7a419f25414d37a7bfe11e342b","25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","6bdc71028db658243775263e93a7db2fd2abfce3ca569c3cca5aee6ed5eb186d","cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107",{"version":"81184fe8e67d78ac4e5374650f0892d547d665d77da2b2f544b5d84729c4a15d","affectsGlobalScope":true},"f52e8dacc97d71dcc96af29e49584353f9c54cb916d132e3e768d8b8129c928d","7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","76103716ba397bbb61f9fa9c9090dca59f39f9047cb1352b2179c5d8e7f4e8d0",{"version":"53eac70430b30089a3a1959d8306b0f9cfaf0de75224b68ef25243e0b5ad1ca3","affectsGlobalScope":true},"4314c7a11517e221f7296b46547dbc4df047115b182f544d072bdccffa57fc72","115971d64632ea4742b5b115fb64ed04bcaae2c3c342f13d9ba7e3f9ee39c4e7",{"version":"c2510f124c0293ab80b1777c44d80f812b75612f297b9857406468c0f4dafe29","affectsGlobalScope":true},"a40826e8476694e90da94aa008283a7de50d1dafd37beada623863f1901cb7fb",{"version":"86956cc2eb9dd371d6fab493d326a574afedebf76eef3fa7833b8e0d9b52d6f1","affectsGlobalScope":true},"24642567d3729bcc545bacb65ee7c0db423400c7f1ef757cab25d05650064f98","e6f5a38687bebe43a4cef426b69d34373ef68be9a6b1538ec0a371e69f309354","a6bf63d17324010ca1fbf0389cab83f93389bb0b9a01dc8a346d092f65b3605f","e009777bef4b023a999b2e5b9a136ff2cde37dc3f77c744a02840f05b18be8ff","1e0d1f8b0adfa0b0330e028c7941b5a98c08b600efe7f14d2d2a00854fb2f393",{"version":"ee1ee365d88c4c6c0c0a5a5701d66ebc27ccd0bcfcfaa482c6e2e7fe7b98edf7","affectsGlobalScope":true},{"version":"875928df2f3e9a3aed4019539a15d04ff6140a06df6cd1b2feb836d22a81eaca","affectsGlobalScope":true},"e9ad08a376ac84948fcca0013d6f1d4ae4f9522e26b91f87945b97c99d7cc30b","eaf9ee1d90a35d56264f0bf39842282c58b9219e112ac7d0c1bce98c6c5da672","c15c4427ae7fd1dcd7f312a8a447ac93581b0d4664ddf151ecd07de4bf2bb9d7","5135bdd72cc05a8192bd2e92f0914d7fc43ee077d1293dc622a049b7035a0afb","4f80de3a11c0d2f1329a72e92c7416b2f7eab14f67e92cac63bb4e8d01c6edc8","6d386bc0d7f3afa1d401afc3e00ed6b09205a354a9795196caed937494a713e6",{"version":"75c3400359d59fae5aed4c4a59fcd8a9760cf451e25dc2174cb5e08b9d4803e2","affectsGlobalScope":true},"94c4187083503a74f4544503b5a30e2bd7af0032dc739b0c9a7ce87f8bddc7b9","b1b6ee0d012aeebe11d776a155d8979730440082797695fc8e2a5c326285678f","45875bcae57270aeb3ebc73a5e3fb4c7b9d91d6b045f107c1d8513c28ece71c0",{"version":"3eb62baae4df08c9173e6903d3ca45942ccec8c3659b0565684a75f3292cffbb","affectsGlobalScope":true},{"version":"a85683ef86875f4ad4c6b7301bbcc63fb379a8d80d3d3fd735ee57f48ef8a47e","affectsGlobalScope":true},"3f16a7e4deafa527ed9995a772bb380eb7d3c2c0fd4ae178c5263ed18394db2c","c6b4e0a02545304935ecbf7de7a8e056a31bb50939b5b321c9d50a405b5a0bba","fab29e6d649aa074a6b91e3bdf2bff484934a46067f6ee97a30fcd9762ae2213","8145e07aad6da5f23f2fcd8c8e4c5c13fb26ee986a79d03b0829b8fce152d8b2","e1120271ebbc9952fdc7b2dd3e145560e52e06956345e6fdf91d70ca4886464f","15c5e91b5f08be34a78e3d976179bf5b7a9cc28dc0ef1ffebffeb3c7812a2dca","a8f06c2382a30b7cb89ad2dfc48fc3b2b490f3dafcd839dadc008e4e5d57031d","553870e516f8c772b89f3820576152ebc70181d7994d96917bb943e37da7f8a7","37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","93452d394fdd1dc551ec62f5042366f011a00d342d36d50793b3529bfc9bd633",{"version":"745c4240220559bd340c8aeb6e3c5270a709d3565e934dc22a69c304703956bc","affectsGlobalScope":true},"2754d8221d77c7b382096651925eb476f1066b3348da4b73fe71ced7801edada",{"version":"9212c6e9d80cb45441a3614e95afd7235a55a18584c2ed32d6c1aca5a0c53d93","affectsGlobalScope":true},{"version":"bef91efa0baea5d0e0f0f27b574a8bc100ce62a6d7e70220a0d58af6acab5e89","affectsGlobalScope":true},"282fd2a1268a25345b830497b4b7bf5037a5e04f6a9c44c840cb605e19fea841","5360a27d3ebca11b224d7d3e38e3e2c63f8290cb1fcf6c3610401898f8e68bc3","66ba1b2c3e3a3644a1011cd530fb444a96b1b2dfe2f5e837a002d41a1a799e60","7e514f5b852fdbc166b539fdd1f4e9114f29911592a5eb10a94bb3a13ccac3c4",{"version":"7d6ff413e198d25639f9f01f16673e7df4e4bd2875a42455afd4ecc02ef156da","affectsGlobalScope":true},{"version":"6bd91a2a356600dee28eb0438082d0799a18a974a6537c4410a796bab749813c","affectsGlobalScope":true},"f689c4237b70ae6be5f0e4180e8833f34ace40529d1acc0676ab8fb8f70457d7","ae25afbbf1ed5df63a177d67b9048bf7481067f1b8dc9c39212e59db94fc9fc6","ac5ed35e649cdd8143131964336ab9076937fa91802ec760b3ea63b59175c10a",{"version":"52a8e7e8a1454b6d1b5ad428efae3870ffc56f2c02d923467f2940c454aa9aec","affectsGlobalScope":true},"78dc0513cc4f1642906b74dda42146bcbd9df7401717d6e89ea6d72d12ecb539","171fd8807643c46a9d17e843959abdf10480d57d60d38d061fb44a4c8d4a8cc4","736097ddbb2903bef918bb3b5811ef1c9c5656f2a73bd39b22a91b9cc2525e50","d00d9369b2ee770658530f04dc09cd14deebdc6456816c5ecd5495911b1cae84","a69fe04ffcfb78fc4f9761397b97419f09629e3e7dc76f2980f85d03aeac39eb","8b9e20585ff8d1664c6cd14d4b02ccc46300a7cf30871fae19436a5babedd86d","3226c2a2af36d14aa551babd4154ad18042c0deb1509a61058c6b066cfddc30a","7e17bc482ade0e34ec7d328767bfd36b38acd50437af0da5b8fb0d2fbd2afb50","038a6396d4f8c66d6bacd7ab14f4b084c3ef1ea7fab5b7528d9832f9717fbcb1","054eafa956d5592e6a91c2553e5657ee3032ed50121a65da1079c96d82631459","14f2edd0618d9adaf83d22b55155ec41faddac678b4d158c8380e4325c8b36b6","d8a779627816583ed4fb309c04ae5559cf5c3929d9f4378085e1fe5de66f5b4a","aca223e907b2e6a5c7f94b506b260da1ac1aebd5b02bb52c1ad7867e04c7e8b1","c32c8968ae44372c2975dfb3f51876ba635a3598673118565f661a9efb8874e3","14e9055fab9d7252730a60f301fd64c0429ae6ac273df2e3424474836b44dbfc","4f39bb23970b0a1d9dcc0b6db6382c06cfd653c2e33fd5a1b83afb650912434f","d88eff4699ac491c3b470fe4ef7bd8eadefedb23d1ae7109da33e34f0538e321","64f353c0c41fd90d2ad429631442fcfbb51d97b77e3e3f3855f9ca6f0f04c2d7","f64487e06875cfbe0cc854328920403df337dc6c1925070995653ac71c266c0e","f682d02a03249dfe41da5857a371c99269a2649b7540bb43426b357b35a2f8e7","6ed8cd0313f2a4c0d3080c0d324b31be20766f53639161bef0405e1c8a888152","84e41060dd913fc5466aa6a04c5ebec55e9d76ab1f5e3917c8492797d8679701","e78705f977ecfcc36de9ab57841ad7a617ef649b07a995577fd857f1d175f730","5083850590c7890ffb680f0c9838f48b07eb8b2f7dbe02874858fcac0691705d","02a4a2284d423d8ccc3a77aa9257c34fdac28cddfb46f73178e60f6a1b1b31e9","3ee8e014aab37dbd755401967fbb9602221550038f6b8da6cedd5291a918ae0a","826f3c6a6d737e0d330522094a21cde94a202c5373448240ba483709cb829aec","7e4a23f6f3763da4a06900935d22acfd463c375cada5ab325e3980bd6c95d5b3","f3e045e81b47113fa02aaf9637b9ef84347610aaceda60a0d8316aabc3f03638","1bfe6db4f3dffacd1da82748cb8f0acec04e8a4d7bd36c09573d5d80a7dec28b","6a8d6deca8ec4250630fea4e5f23bd9bf0face98739ccd22e08a17173117155b","226dbfe4506447111bd898161d47850f8c57f04cbb6a3a6d487b7939dbf89b1b","13f846a45f738733c8a63a06eaa9f580e9c07eb7aed5d8a2c674114846a42175","9d14fcf0b69094271127c7b6acb36987be5d1bffa4eb948359549f040fb50349","e3a5287471fb08f053c06fd998632792aa5f022e45278f1e6dd55fb2fa9e7362","28a6c8eeb48e165920067b9193555649fc43c2a28c450f23f622e5eb043d9463","1147c3efa5a256bcd6a3d2cfaf764185b7120bf985f8412d9bae596a0348f77b","0494f89b64c5e8906ce5284194e09bad42b56837757d79cb9e62ce16aae88ab4","1b5d04b01ffda14ab49924c1c5601c1d29df55ea9bfd281d38082730bebf0295","d6220bee7bd245bc2a377f1a8ef31c496132cc9c7e7e3937e7dd4cbbcec0b38d","da4868424f5ea67d59e98705dab39055000d839a1250ac0cc80bda366c89fddc","420f415e6e5f2550395698e535147339d66fcc5848699e5308d35d90927f72d1","d0a633354f887cc3190bddeba688c8d24706052351151ac199d9c58038faaec4","edd5e20e9eb8cb2eaf941d431af3ab69a9b94e7f5d8699b4c938fee1be8d53c4","315438c7c6fb8645f6862af11b4dcfb7784ebff919056da1dfc3007ac8d5468d","5830ba1f5c81d641b214365ef519d2856f92a584f6cd90cb688edf63c2b84d25","37020cf15e16fa6e1c6e2485cd51d6cbe74adee3b860ab49fb7528ca7e8e518e","1950d2a49c05c7aa6decfe409b552c4ea5fb156894cf0541b34999819bd778ea","32fe829960ff7120843f6dd20197e863aee3e81ecded415641a7500654d1bda7","393b1ed0dca4f0aac333e65f2e40dfedfa8b37ac60571e02b152d32d8c84d340","f46d50c283425bcc59d68ccf067b3672fb727f802652dc7d60d2e470fb956370","6a5a7df74a63e3c3e34c8d4eab2bc8bdc78e242331105e77a428daabcc8ee80a","0b4b6ca509cdb152e18ceeed526d17bb416e7e518508d859a0174977195f9a35","8131b8cb20786d5493b9d48f391c7579b9230ae1ce37a24482b50a753b1da428","0234584eaf3c5c21e7d3b79e1a9d71551e2a6fa5ca25bdc39c544f00e6e52b1e","304b0d21771513c0a36ed7179a9d1069bfa776e95f50b789ce898f3ef2b71514","a42e1c2eec0e747163afa705044664a39065215a8d66c930f8d43f118a9bc044","b30813c7fd97c6a52dc0acfd2444cc06f5fb84fbcc7c19f102bc4443d5199372","8dc10d735f5eecccbfe84231f0ed47c6059593629311210f0d3c94a4f08dd23e","951baa882e6e3e5026cb8a16f80a8bebec1caa35c3fa016c9a3ce6a338bd3123","310ae04779dbcfebfac4872bf27cf636b24324d20dd28132d4d5757bbc8abb2b","0a3f7038afb4012783d87c03e9d53a27ce9bdb6487e70bde9a024a04430c672a","3f6f70c077ed8d600aa24d8c0e83ba0dd5d2c5300d524cd2181efd30c0a62c72","b773bcdaeda86c0f58910cecd6c77a0bd60be763127c42cad5a64fe66799b1f6","0ca63470234437191f454f7f66b5815d79b59ebc636faa1de1194d282563e431","6d3b514475ee51ab5e99e4fc82ffcd6191d40c19dd197a1743111e0757c6f9c6","0494f89b64c5e8906ce5284194e09bad42b56837757d79cb9e62ce16aae88ab4","716c6fce977a188f23ee5165e4179944a63e8620784a7054fc0dd81f6c348bb4","b79ef2d2e4d26abd3c9bc4e72d4daa09feb0e6044c7872b587bf6b43d8a8838d","44474654278b37f50e1ff14dc992ffaa6b2530989d7a9853bdb66203a36e080c",{"version":"40a444b5b57519bd85c220faf89651b8fbced91a2db94a5ddee9e0c833058d86","signature":"5603f5c5da18af5df19d14e97ee9b2e50ac9126bdd4854b61bab6ea828c45d3e"},{"version":"dc600ff5386f2c918b53c4807248f946eced5317275ae937a55929dc5ffe95d6","signature":"ac779ad2b98d1c602904d1f8d4b1a6a7b39e698e93b804c7f86d5d18a90fa983"},{"version":"b5b8a7bf4f4def143850f15fe2583b3220a46e78dae9c339cb47e9225ae9eb0f","signature":"2b701ca24dfe03c44443fa23a185eb378b71a25244fa1b3abe8f315c628607ca"},"6d2be267381fea1868d0154946740e826c153fd6c17c7a9d78b4a0db588d0a93","32727845ab5bd8a9ef3e4844c567c09f6d418fcf0f90d381c00652a6f23e7f6e","70f970ac222364baed72f4da852bcd7b8644354ca485a07c5f19ba1db4d8edee","b07f64ff6ec710998a62b07377fbda0ab4c313ba1f0055bfe9faa22cffedd47c",{"version":"5850cbbab285782f2de24e6cd60d6c5e75ac5edc9e4aaffade374ed7f0261678","signature":"0fe92e0c6115ae7b052a93b2bd3ab37de016873ce8dbe118bcee62bd33e42ae5"},{"version":"5b2775cb24d9bb3d1b94a761a5c732f0f9aa78fa4a7f78f92581ceed104c19d7","signature":"c3434e281faef755d8f3959342e61d6939bc603bb12af325c53b496f32c0aa5d"},{"version":"2755f6b217724edf5dd305d08bfb01a2d58630ba64f65cf75badb69c90258790","signature":"ca9f99b561b6c023625a4528b3e7cd60236de7d28c2302dfdda3cbf58a8fe44b"},{"version":"9dcdf90ac4c3b423eaa99835fe0cd3a95efce29753c710bb8b3d40d1d9853a91","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},"da881c45c4e7846f925c0c03f8b8cd2d848f2ac3d8df736e89652c3ca63a387a","2714b24224ab3d4282316078f472158c88b40f8ad651e70955fefee815a4a4e3","211440ce81e87b3491cdf07155881344b0a61566df6e749acff0be7e8b9d1a07","5d9a0b6e6be8dbb259f64037bce02f34692e8c1519f5cd5d467d7fa4490dced4","880da0e0f3ebca42f9bd1bc2d3e5e7df33f2619d85f18ee0ed4bd16d1800bc32","f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","211440ce81e87b3491cdf07155881344b0a61566df6e749acff0be7e8b9d1a07","cf3d384d082b933d987c4e2fe7bfb8710adfd9dc8155190056ed6695a25a559e","9871b7ee672bc16c78833bdab3052615834b08375cb144e4d2cba74473f4a589","c863198dae89420f3c552b5a03da6ed6d0acfa3807a64772b895db624b0de707","8b03a5e327d7db67112ebbc93b4f744133eda2c1743dbb0a990c61a8007823ef","86c73f2ee1752bac8eeeece234fd05dfcf0637a4fbd8032e4f5f43102faa8eec","42fad1f540271e35ca37cecda12c4ce2eef27f0f5cf0f8dd761d723c744d3159","ff3743a5de32bee10906aff63d1de726f6a7fd6ee2da4b8229054dfa69de2c34","83acd370f7f84f203e71ebba33ba61b7f1291ca027d7f9a662c6307d74e4ac22","1445cec898f90bdd18b2949b9590b3c012f5b7e1804e6e329fb0fe053946d5ec","0e5318ec2275d8da858b541920d9306650ae6ac8012f0e872fe66eb50321a669","cf530297c3fb3a92ec9591dd4fa229d58b5981e45fe6702a0bd2bea53a5e59be","c1f6f7d08d42148ddfe164d36d7aba91f467dbcb3caa715966ff95f55048b3a4","f4e9bf9103191ef3b3612d3ec0044ca4044ca5be27711fe648ada06fad4bcc85","0c1ee27b8f6a00097c2d6d91a21ee4d096ab52c1e28350f6362542b55380059a","7677d5b0db9e020d3017720f853ba18f415219fb3a9597343b1b1012cfd699f7","bc1c6bc119c1784b1a2be6d9c47addec0d83ef0d52c8fbe1f14a51b4dfffc675","52cf2ce99c2a23de70225e252e9822a22b4e0adb82643ab0b710858810e00bf1","770625067bb27a20b9826255a8d47b6b5b0a2d3dfcbd21f89904c731f671ba77","d1ed6765f4d7906a05968fb5cd6d1db8afa14dbe512a4884e8ea5c0f5e142c80","799c0f1b07c092626cf1efd71d459997635911bb5f7fc1196efe449bba87e965","2a184e4462b9914a30b1b5c41cf80c6d3428f17b20d3afb711fff3f0644001fd","9eabde32a3aa5d80de34af2c2206cdc3ee094c6504a8d0c2d6d20c7c179503cc","397c8051b6cfcb48aa22656f0faca2553c5f56187262135162ee79d2b2f6c966","a8ead142e0c87dcd5dc130eba1f8eeed506b08952d905c47621dc2f583b1bff9","a02f10ea5f73130efca046429254a4e3c06b5475baecc8f7b99a0014731be8b3","c2576a4083232b0e2d9bd06875dd43d371dee2e090325a9eac0133fd5650c1cb","4c9a0564bb317349de6a24eb4efea8bb79898fa72ad63a1809165f5bd42970dd","f40ac11d8859092d20f953aae14ba967282c3bb056431a37fced1866ec7a2681","cc11e9e79d4746cc59e0e17473a59d6f104692fd0eeea1bdb2e206eabed83b03","b444a410d34fb5e98aa5ee2b381362044f4884652e8bc8a11c8fe14bbd85518e","c35808c1f5e16d2c571aa65067e3cb95afeff843b259ecfa2fc107a9519b5392","14d5dc055143e941c8743c6a21fa459f961cbc3deedf1bfe47b11587ca4b3ef5","a3ad4e1fc542751005267d50a6298e6765928c0c3a8dce1572f2ba6ca518661c","f237e7c97a3a89f4591afd49ecb3bd8d14f51a1c4adc8fcae3430febedff5eb6","3ffdfbec93b7aed71082af62b8c3e0cc71261cc68d796665faa1e91604fbae8f","662201f943ed45b1ad600d03a90dffe20841e725203ced8b708c91fcd7f9379a","c9ef74c64ed051ea5b958621e7fb853fe3b56e8787c1587aefc6ea988b3c7e79","2462ccfac5f3375794b861abaa81da380f1bbd9401de59ffa43119a0b644253d","34baf65cfee92f110d6653322e2120c2d368ee64b3c7981dff08ed105c4f19b0","7d8ddf0f021c53099e34ee831a06c394d50371816caa98684812f089b4c6b3d4"],"root":[[212,214],[219,224]],"options":{"declaration":true,"esModuleInterop":true,"module":1,"noImplicitAny":true,"noImplicitReturns":true,"noUnusedLocals":true,"outDir":"./","preserveConstEnums":true,"removeComments":true,"rootDir":"..","skipLibCheck":true,"sourceMap":true,"strict":true,"strictNullChecks":true,"target":6,"useUnknownInCatchVariables":false},"fileIdsList":[[51,93,180],[51,93,178,179],[51,93],[51,93,180,181],[51,93,106,143,225,226],[51,93,106,136,143],[51,90,93],[51,92,93],[51,93,98,128],[51,93,94,99,105,106,113,125,136],[51,93,94,95,105,113],[46,47,48,51,93],[51,93,96,137],[51,93,97,98,106,114],[51,93,98,125,133],[51,93,99,101,105,113],[51,92,93,100],[51,93,101,102],[51,93,105],[51,93,103,105],[51,92,93,105],[51,93,105,106,107,125,136],[51,93,105,106,107,120,125,128],[51,88,93,141],[51,88,93,101,105,108,113,125,136,211],[51,93,105,106,108,109,113,125,133,136],[51,93,108,110,125,133,136],[51,93,105,111],[51,93,112,136,141],[51,93,101,105,113,125],[51,93,114],[51,93,115],[51,92,93,116],[51,90,91,92,93,94,95,96,97,98,99,100,101,102,103,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,211],[51,93,118],[51,93,119],[51,93,105,120,121],[51,93,120,122,137,139],[51,93,105,125,126,127,128],[51,93,125,127],[51,93,125,126],[51,93,128],[51,93,129],[51,90,93,125],[51,93,105,131,132],[51,93,131,132],[51,93,98,113,125,133],[51,93,134],[93],[49,50,51,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142],[51,93,113,135],[51,93,108,119,136],[51,93,98,137],[51,93,125,138],[51,93,112,139],[51,93,140],[51,93,98,105,107,116,125,136,139,141],[51,93,125,142],[51,93,165,166],[51,93,165],[51,93,164,166,168],[51,93,165,171,172],[51,93,164,168,169,170],[51,93,164,168,171,173],[51,93,164,168],[51,93,164,171],[51,93,164,165,167],[51,93,164,165,167,168,169,171,172,173],[51,93,108,125,143,211],[51,93,161],[51,93,149],[51,93,149,161],[51,93,150],[51,93,191],[51,93,150,161],[51,93,151],[51,93,149,150,151,154,155,157,158,159,187,188,189,190,191,192,193,194],[51,93,149,157,161],[51,93,157,158],[51,93,155],[51,93,154],[51,93,149,150,161],[51,93,153,161],[51,93,161,182],[51,93,205],[51,93,205,206],[51,93,108,145,146,147,148,152,153,156,161,162,163,183,184,185,186,195,196,197,198,199,200,201,202,203,204,207,208,209,210],[51,93,106,108,125,133,136,144,145,146,147,148,151,153,154,155,156,158,159,160,211],[51,93,152,161],[51,93,217],[51,93,94,105,106,125,215,216],[51,93,164],[51,93,175],[51,93,174,175,176,177],[51,60,64,93,136],[51,60,93,125,136],[51,55,93],[51,57,60,93,133,136],[51,93,113,133],[51,93,143],[51,55,93,143],[51,57,60,93,113,136],[51,52,53,56,59,93,105,125,136],[51,60,67,93],[51,52,58,93],[51,60,81,82,93],[51,56,60,93,128,136,143],[51,81,93,143],[51,54,55,93,143],[51,60,93],[51,54,55,56,57,58,59,60,61,62,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,82,83,84,85,86,87,93],[51,60,75,93],[51,60,67,68,93],[51,58,60,68,69,93],[51,59,93],[51,52,55,60,93],[51,60,64,68,69,93],[51,64,93],[51,58,60,63,93,136],[51,52,57,60,67,93],[51,93,125],[51,55,60,81,93,141,143],[51,93,106,136],[51,93,230,269],[51,93,230,254,269],[51,93,269],[51,93,230],[51,93,230,255,269],[51,93,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268],[51,93,255,269],[51,93,212],[51,93,211,218],[51,93,114,115,211,212,213,214,219,220],[51,93,106,114,115,213],[51,93,94,106,114,115,213],[51,93,106,114,115]],"referencedMap":[[181,1],[180,2],[179,3],[182,4],[227,5],[225,6],[226,3],[90,7],[91,7],[92,8],[93,9],[94,10],[95,11],[46,3],[49,12],[47,3],[48,3],[96,13],[97,14],[98,15],[99,16],[100,17],[101,18],[102,18],[104,19],[103,20],[105,21],[106,22],[107,23],[89,24],[108,25],[109,26],[110,27],[111,28],[112,29],[113,30],[114,31],[115,32],[116,33],[117,34],[118,35],[119,36],[120,37],[121,37],[122,38],[123,3],[124,3],[125,39],[127,40],[126,41],[128,42],[129,43],[130,44],[131,45],[132,46],[133,47],[134,48],[51,49],[50,3],[143,50],[135,51],[136,52],[137,53],[138,54],[139,55],[140,56],[141,57],[142,58],[167,59],[166,60],[165,61],[173,62],[171,63],[172,64],[169,65],[170,66],[168,67],[174,68],[164,3],[160,3],[144,69],[145,3],[146,70],[196,3],[147,3],[163,71],[150,72],[157,73],[149,3],[192,74],[187,75],[194,76],[151,73],[195,77],[158,78],[159,79],[188,73],[191,80],[193,72],[189,81],[154,82],[190,81],[155,73],[148,3],[152,83],[183,84],[206,85],[208,3],[205,3],[207,86],[197,3],[211,87],[161,88],[162,70],[198,70],[209,85],[184,83],[210,70],[185,70],[199,83],[186,70],[204,70],[202,70],[203,70],[201,70],[153,89],[200,83],[156,70],[215,3],[216,90],[217,91],[218,90],[175,92],[176,93],[177,3],[178,94],[44,3],[45,3],[9,3],[8,3],[2,3],[10,3],[11,3],[12,3],[13,3],[14,3],[15,3],[16,3],[17,3],[3,3],[18,3],[4,3],[19,3],[23,3],[20,3],[21,3],[22,3],[24,3],[25,3],[26,3],[5,3],[27,3],[28,3],[29,3],[30,3],[6,3],[34,3],[31,3],[32,3],[33,3],[35,3],[7,3],[36,3],[41,3],[42,3],[37,3],[38,3],[39,3],[40,3],[43,3],[1,3],[67,95],[77,96],[66,95],[87,97],[58,98],[57,99],[86,100],[80,101],[85,102],[60,103],[74,104],[59,105],[83,106],[55,107],[54,100],[84,108],[56,109],[61,110],[62,3],[65,110],[52,3],[88,111],[78,112],[69,113],[70,114],[72,115],[68,116],[71,117],[81,100],[63,118],[64,119],[73,120],[53,121],[76,112],[75,110],[79,3],[82,122],[228,3],[229,123],[254,124],[255,125],[230,126],[233,126],[252,124],[253,124],[243,124],[242,127],[240,124],[235,124],[248,124],[246,124],[250,124],[234,124],[247,124],[251,124],[236,124],[237,124],[249,124],[231,124],[238,124],[239,124],[241,124],[245,124],[256,128],[244,124],[232,124],[269,129],[268,3],[263,128],[265,130],[264,128],[257,128],[258,128],[260,128],[262,128],[266,130],[267,130],[259,130],[261,130],[213,131],[219,132],[223,3],[221,133],[212,3],[214,134],[220,135],[222,136],[224,3]]},"version":"5.5.3"}
package/package.json ADDED
@@ -0,0 +1,68 @@
1
+ {
2
+ "name": "n8n-nodes-playwright-test-executor",
3
+ "version": "1.0.0",
4
+ "description": "n8n Playwright node for executing AI-generated test specifications",
5
+ "keywords": [
6
+ "n8n-community-node-package"
7
+ ],
8
+ "license": "MIT",
9
+ "homepage": "",
10
+ "author": {
11
+ "name": "Mohamed Toema",
12
+ "email": "m.toema20@gmail.com"
13
+ },
14
+ "repository": {
15
+ "type": "git",
16
+ "url": "https://github.com/toema/n8n-playwright"
17
+ },
18
+ "engines": {
19
+ "node": ">=18.10",
20
+ "pnpm": ">=9.1"
21
+ },
22
+ "packageManager": "pnpm@9.1.4",
23
+ "main": "dist/nodes/index.js",
24
+ "scripts": {
25
+ "preinstall": "npx only-allow pnpm",
26
+ "postinstall": "npm config set yes true && node dist/nodes/scripts/setup-browsers.js",
27
+ "rebuild": "node dist/nodes/scripts/setup-browsers.js",
28
+ "setup": "npm config set yes true && node dist/nodes/scripts/setup-browsers.js ",
29
+ "test:setup": "ts-node scripts/test-setup.ts",
30
+ "build": "tsc && gulp build:icons",
31
+ "dev": "tsc --watch",
32
+ "format": "prettier nodes package.json --write",
33
+ "lint": "eslint nodes package.json",
34
+ "lintfix": "eslint nodes package.json --fix",
35
+ "prepublish": "pnpm build && pnpm lint -c .eslintrc.prepublish.js nodes package.json && npm version patch",
36
+ "publish": " npm publish --access public"
37
+ },
38
+ "files": [
39
+ "dist",
40
+ "nodes/browsers"
41
+ ],
42
+ "n8n": {
43
+ "n8nNodesApiVersion": 1,
44
+ "nodes": [
45
+ "dist/nodes/playwright/Playwright.node.js"
46
+ ]
47
+ },
48
+ "devDependencies": {
49
+ "@types/fs-extra": "^11.0.4",
50
+ "@types/node": "^22.10.1",
51
+ "@typescript-eslint/parser": "^7.15.0",
52
+ "eslint": "^8.56.0",
53
+ "eslint-plugin-n8n-nodes-base": "^1.16.1",
54
+ "gulp": "^4.0.2",
55
+ "n8n-workflow": "*",
56
+ "playwright": "^1.49.0",
57
+ "prettier": "^3.3.2",
58
+ "ts-node": "^10.9.2",
59
+ "typescript": "^5.5.3"
60
+ },
61
+ "peerDependencies": {
62
+ "n8n-workflow": "*"
63
+ },
64
+ "dependencies": {
65
+ "fs-extra": "^11.2.0",
66
+ "playwright": "1.49.0"
67
+ }
68
+ }