Skip to content

Commit 351c58d

Browse files
blakebyrnescalebjclark
authored andcommitted
feat(emulators): move installation into emulators
1 parent 1389850 commit 351c58d

22 files changed

+40
-92
lines changed

.eslintrc.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,7 @@ module.exports = {
114114
{
115115
files: [
116116
'**/install*',
117+
'**/installer/index*',
117118
'**/*Install*',
118119
'**/prepare-*.js',
119120
'**/scripts/*.ts',

.github/workflows/lint-and-test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ jobs:
131131
- name: Linux - Apt Install Chrome(s)
132132
if: ${{ matrix.os == 'ubuntu-latest' }}
133133
working-directory: ./build
134-
run: sudo $(npx puppet-install-deps)
134+
run: sudo $(npx install-browser-deps)
135135

136136
- name: Run tests
137137
run: yarn jest --testTimeout=60000 --maxWorkers=2

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ RUN cat /etc/*-release
5050
# NOTE: this installs the monorepo, but you could also install secret-agent directly + and desired browsers
5151
# we will automatically install dependencies
5252
RUN cd /app/secret-agent && yarn \
53-
&& $(npx puppet-install-deps) \
53+
&& $(npx install-browser-deps) \
5454
&& groupadd -r sagent && useradd -r -g sagent -G audio,video sagent \
5555
&& mkdir -p /home/sagent/Downloads \
5656
&& mkdir -p /home/sagent/.cache \

core/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
"dependencies": {
1717
"@secret-agent/commons": "1.4.1-alpha.4",
1818
"@secret-agent/interfaces": "1.4.1-alpha.4",
19-
"@secret-agent/emulate-browsers-base": "1.4.1-alpha.4",
2019
"@secret-agent/emulate-chrome-latest": "1.4.1-alpha.4",
2120
"@secret-agent/emulate-humans-basic": "1.4.1-alpha.4",
2221
"@secret-agent/emulate-humans-ghost": "1.4.1-alpha.4",
@@ -35,6 +34,7 @@
3534
"@secret-agent/client": "1.4.1-alpha.4",
3635
"@secret-agent/core": "1.4.1-alpha.4",
3736
"@secret-agent/puppet-chrome": "1.4.1-alpha.4",
37+
"@secret-agent/emulate-browsers-installer": "1.4.1-alpha.4",
3838
"@secret-agent/testing": "1.4.1-alpha.4",
3939
"@types/better-sqlite3": "^5.4.1",
4040
"@types/json-socket": "^0.1.17",

core/server/ConnectionToClient.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import IAgentMeta from '@secret-agent/interfaces/IAgentMeta';
1212
import Log from '@secret-agent/commons/Logger';
1313
import { CanceledPromiseError } from '@secret-agent/commons/interfaces/IPendingWaitEvent';
1414
import PuppetLaunchError from '@secret-agent/puppet/lib/PuppetLaunchError';
15-
import { DependenciesMissingError } from '@secret-agent/puppet/lib/DependenciesMissingError';
1615
import IUserProfile from '@secret-agent/interfaces/IUserProfile';
1716
import SessionClosedOrMissingError from '@secret-agent/commons/SessionClosedOrMissingError';
1817
import TimeoutError from '@secret-agent/commons/interfaces/TimeoutError';
@@ -324,7 +323,7 @@ export default class ConnectionToClient extends TypedEventEmitter<{
324323
}
325324

326325
private isLaunchError(error: Error): boolean {
327-
return error instanceof PuppetLaunchError || error instanceof DependenciesMissingError;
326+
return error instanceof PuppetLaunchError || error.name === 'DependenciesMissingError';
328327
}
329328

330329
private serializeError(error: Error): object {

core/test/connection.test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import { Helpers } from '@secret-agent/testing';
22
import agent, { Agent, Handler } from '@secret-agent/client';
33
import * as http from 'http';
4-
import { DependenciesMissingError } from '@secret-agent/puppet/lib/DependenciesMissingError';
5-
import DependencyInstaller from '@secret-agent/puppet/lib/DependencyInstaller';
6-
import * as ValidateHostDeps from '@secret-agent/puppet/lib/validateHostDependencies';
74
import { Log } from '@secret-agent/commons/Logger';
85
import ChromeLatest from '@secret-agent/emulate-chrome-latest';
96
import BrowserEmulators from '@secret-agent/core/lib/BrowserEmulators';
7+
import { DependenciesMissingError } from '@secret-agent/emulate-browsers-installer/lib/DependenciesMissingError';
8+
import DependencyInstaller from '@secret-agent/emulate-browsers-installer/lib/DependencyInstaller';
9+
import * as ValidateHostDeps from '@secret-agent/emulate-browsers-installer/lib/validateHostDependencies';
1010
import CoreServer from '../server';
1111

1212
const validate = jest.spyOn(ValidateHostDeps, 'validateHostRequirements');

emulate-browsers/base/index.ts

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,6 @@ import IBrowserEmulatorClass, {
22
BrowserEmulatorClassDecorator,
33
} from '@secret-agent/interfaces/IBrowserEmulatorClass';
44
import IBrowserEmulator from '@secret-agent/interfaces/IBrowserEmulator';
5-
import IBrowserEngine from '@secret-agent/interfaces/IBrowserEngine';
6-
import { EngineFetcher } from '@secret-agent/puppet/lib/EngineFetcher';
7-
import Log from '@secret-agent/commons/Logger';
85
import modifyHeaders from './lib/modifyHeaders';
96
import DataLoader from './lib/DataLoader';
107
import DomPolyfillLoader from './lib/DomPolyfillLoader';
@@ -14,30 +11,6 @@ import DomOverridesBuilder from './lib/DomOverridesBuilder';
1411
import * as DnsOverTlsProviders from './lib/DnsOverTlsProviders';
1512
import Viewports from './lib/Viewports';
1613

17-
const { log } = Log(module);
18-
19-
function getEngine(
20-
engine: { name: string; fullVersion: string },
21-
executablePathEnvVar?: string,
22-
getLaunchArguments?: IBrowserEngine['getLaunchArguments'],
23-
): IBrowserEngine {
24-
const engineFetcher = new EngineFetcher(engine.name, engine.fullVersion, executablePathEnvVar);
25-
26-
const browserEngine = engineFetcher.toJSON();
27-
log.stats('Browser.getEngine', {
28-
sessionId: null,
29-
browserEngine,
30-
});
31-
const engineFetcherLaunchArgs = engineFetcher.launchArgs;
32-
browserEngine.getLaunchArguments = (puppetOptions, defaultArguments) => {
33-
defaultArguments.push(...engineFetcherLaunchArgs);
34-
if (getLaunchArguments) return getLaunchArguments(puppetOptions, defaultArguments);
35-
return defaultArguments;
36-
};
37-
38-
return browserEngine;
39-
}
40-
4114
export {
4215
DnsOverTlsProviders,
4316
BrowserEmulatorClassDecorator,
@@ -49,6 +22,5 @@ export {
4922
DomPolyfillLoader,
5023
getTcpSettingsForOs,
5124
Viewports,
52-
getEngine,
5325
parseNavigatorPlugins,
5426
};

emulate-browsers/base/install.ts

Lines changed: 0 additions & 9 deletions
This file was deleted.

emulate-browsers/base/package.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,13 @@
66
"dependencies": {
77
"@secret-agent/commons": "1.4.1-alpha.4",
88
"@secret-agent/interfaces": "1.4.1-alpha.4",
9-
"@secret-agent/puppet": "1.4.1-alpha.4"
9+
"progress": "^2.0.3",
10+
"tar": "^6.1.0"
1011
},
1112
"devDependencies": {
1213
"@secret-agent/core": "1.4.1-alpha.4",
1314
"@secret-agent/emulate-chrome-latest": "1.4.1-alpha.4",
14-
"@secret-agent/testing": "1.4.1-alpha.4"
15+
"@secret-agent/testing": "1.4.1-alpha.4",
16+
"@secret-agent/puppet": "1.4.1-alpha.4"
1517
}
1618
}

emulate-browsers/chrome-88

Submodule chrome-88 deleted from 9e59c67

0 commit comments

Comments
 (0)