playwright-zed-language-server 0.0.0-stage → 0.2.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/dist/spawn.js ADDED
@@ -0,0 +1,140 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.KILL_GRACE_MS = void 0;
37
+ exports.reportFilePath = reportFilePath;
38
+ exports.runPlaywright = runPlaywright;
39
+ const node_child_process_1 = require("node:child_process");
40
+ const fs = __importStar(require("node:fs"));
41
+ const os = __importStar(require("node:os"));
42
+ const path = __importStar(require("node:path"));
43
+ exports.KILL_GRACE_MS = 5000;
44
+ /**
45
+ * Allocates the JSON report path inside a fresh, owner-only temp directory so another user on
46
+ * a shared machine cannot pre-plant a symlink or a crafted report at a predictable path.
47
+ * The whole directory is removed after the run by `runPlaywright`.
48
+ */
49
+ function reportFilePath(prefix, id) {
50
+ const dir = fs.mkdtempSync(path.join(os.tmpdir(), 'playwright-zed-'));
51
+ fs.chmodSync(dir, 0o700);
52
+ return path.join(dir, `${prefix}-${id}.json`);
53
+ }
54
+ function readReport(file) {
55
+ try {
56
+ const stat = fs.lstatSync(file);
57
+ if (!stat.isFile())
58
+ return null;
59
+ return JSON.parse(fs.readFileSync(file, 'utf8'));
60
+ }
61
+ catch {
62
+ return null;
63
+ }
64
+ }
65
+ function removeReportDir(file) {
66
+ try {
67
+ fs.rmSync(path.dirname(file), { recursive: true, force: true });
68
+ }
69
+ catch {
70
+ // best effort
71
+ }
72
+ }
73
+ function quote(arg) {
74
+ return /[\s"']/.test(arg) ? JSON.stringify(arg) : arg;
75
+ }
76
+ /** Runs the Playwright CLI as a child process with cancellation and JSON report capture. */
77
+ function runPlaywright(options) {
78
+ const node = options.node ?? process.execPath;
79
+ const argv = [options.cli, ...options.args];
80
+ const command = [node, ...argv].map(quote).join(' ');
81
+ const env = { ...process.env, ...(options.env ?? {}), PLAYWRIGHT_JSON_OUTPUT_FILE: options.reportFile };
82
+ let cancelled = false;
83
+ let killTimer = null;
84
+ const child = (0, node_child_process_1.spawn)(node, argv, {
85
+ cwd: options.cwd,
86
+ env,
87
+ stdio: ['ignore', 'pipe', 'pipe'],
88
+ detached: process.platform !== 'win32',
89
+ });
90
+ const stdout = [];
91
+ const stderr = [];
92
+ child.stdout?.on('data', (chunk) => stdout.push(chunk));
93
+ child.stderr?.on('data', (chunk) => stderr.push(chunk));
94
+ const signalGroup = (signal) => {
95
+ if (child.pid === undefined)
96
+ return;
97
+ try {
98
+ if (process.platform !== 'win32')
99
+ process.kill(-child.pid, signal);
100
+ else
101
+ child.kill(signal);
102
+ }
103
+ catch {
104
+ // already gone
105
+ }
106
+ };
107
+ const promise = new Promise((resolve) => {
108
+ let spawnError;
109
+ child.on('error', (error) => {
110
+ spawnError = error.message;
111
+ });
112
+ child.on('close', (code, signal) => {
113
+ if (killTimer)
114
+ clearTimeout(killTimer);
115
+ const report = readReport(options.reportFile);
116
+ removeReportDir(options.reportFile);
117
+ resolve({
118
+ code,
119
+ signal,
120
+ stdout: Buffer.concat(stdout).toString('utf8'),
121
+ stderr: Buffer.concat(stderr).toString('utf8'),
122
+ report,
123
+ cancelled,
124
+ command,
125
+ spawnError,
126
+ });
127
+ });
128
+ });
129
+ return {
130
+ promise,
131
+ cancel() {
132
+ if (cancelled)
133
+ return;
134
+ cancelled = true;
135
+ signalGroup('SIGTERM');
136
+ killTimer = setTimeout(() => signalGroup('SIGKILL'), exports.KILL_GRACE_MS);
137
+ },
138
+ };
139
+ }
140
+ //# sourceMappingURL=spawn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spawn.js","sourceRoot":"","sources":["../src/spawn.ts"],"names":[],"mappings":"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"}
package/dist/types.js ADDED
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+ /** Shared data model for the Playwright language server (see specs/.../data-model.md). */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA,0FAA0F"}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MINIMUM_SUPPORTED = void 0;
4
+ exports.parseVersion = parseVersion;
5
+ exports.compareVersions = compareVersions;
6
+ exports.isSupported = isSupported;
7
+ exports.formatVersion = formatVersion;
8
+ exports.MINIMUM_SUPPORTED = { major: 1, minor: 38, patch: 0 };
9
+ /** Parses `major.minor.patch`, ignoring prerelease and build metadata. */
10
+ function parseVersion(input) {
11
+ const match = /^\s*v?(\d+)\.(\d+)\.(\d+)/.exec(input);
12
+ if (!match)
13
+ return null;
14
+ return { major: Number(match[1]), minor: Number(match[2]), patch: Number(match[3]) };
15
+ }
16
+ function compareVersions(a, b) {
17
+ if (a.major !== b.major)
18
+ return a.major - b.major;
19
+ if (a.minor !== b.minor)
20
+ return a.minor - b.minor;
21
+ return a.patch - b.patch;
22
+ }
23
+ function isSupported(version) {
24
+ return compareVersions(version, exports.MINIMUM_SUPPORTED) >= 0;
25
+ }
26
+ function formatVersion(version) {
27
+ return `${version.major}.${version.minor}.${version.patch}`;
28
+ }
29
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":";;;AAKA,oCAIC;AAED,0CAIC;AAED,kCAEC;AAED,sCAEC;AArBY,QAAA,iBAAiB,GAAY,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AAE5E,0EAA0E;AAC1E,SAAgB,YAAY,CAAC,KAAa;IACxC,MAAM,KAAK,GAAG,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtD,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACvF,CAAC;AAED,SAAgB,eAAe,CAAC,CAAU,EAAE,CAAU;IACpD,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK;QAAE,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;IAClD,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,KAAK;QAAE,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;IAClD,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;AAC3B,CAAC;AAED,SAAgB,WAAW,CAAC,OAAgB;IAC1C,OAAO,eAAe,CAAC,OAAO,EAAE,yBAAiB,CAAC,IAAI,CAAC,CAAC;AAC1D,CAAC;AAED,SAAgB,aAAa,CAAC,OAAgB;IAC5C,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;AAC9D,CAAC"}
@@ -0,0 +1,140 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.isConfigFile = isConfigFile;
37
+ exports.findConfigs = findConfigs;
38
+ exports.resolvePlaywright = resolvePlaywright;
39
+ exports.buildConfig = buildConfig;
40
+ exports.configForFile = configForFile;
41
+ exports.isUnderTestDirs = isUnderTestDirs;
42
+ const fs = __importStar(require("node:fs"));
43
+ const path = __importStar(require("node:path"));
44
+ const version_1 = require("./version");
45
+ const CONFIG_NAME = /^playwright\.config\.(ts|js|mts|mjs|cts|cjs)$/;
46
+ const SKIPPED_DIRS = new Set(['node_modules', '.git', 'test-results', 'playwright-report', 'blob-report']);
47
+ /** True when the file name is one Playwright treats as a configuration file. */
48
+ function isConfigFile(file) {
49
+ return CONFIG_NAME.test(path.basename(file));
50
+ }
51
+ /** Finds every Playwright config file under `root`, skipping dependency and output folders. */
52
+ function findConfigs(root) {
53
+ const found = [];
54
+ const stack = [root];
55
+ while (stack.length > 0) {
56
+ const dir = stack.pop();
57
+ let entries;
58
+ try {
59
+ entries = fs.readdirSync(dir, { withFileTypes: true });
60
+ }
61
+ catch {
62
+ continue;
63
+ }
64
+ for (const entry of entries) {
65
+ if (entry.isDirectory()) {
66
+ if (!SKIPPED_DIRS.has(entry.name) && !entry.name.startsWith('.')) {
67
+ stack.push(path.join(dir, entry.name));
68
+ }
69
+ }
70
+ else if (entry.isFile() && CONFIG_NAME.test(entry.name)) {
71
+ found.push(path.join(dir, entry.name));
72
+ }
73
+ }
74
+ }
75
+ return found.sort();
76
+ }
77
+ /** Walks upward from `configDir` to the nearest `node_modules/@playwright/test`. */
78
+ function resolvePlaywright(configDir) {
79
+ let dir = path.resolve(configDir);
80
+ for (;;) {
81
+ const packageDir = path.join(dir, 'node_modules', '@playwright', 'test');
82
+ const packageJson = path.join(packageDir, 'package.json');
83
+ if (fs.existsSync(packageJson)) {
84
+ try {
85
+ const parsed = JSON.parse(fs.readFileSync(packageJson, 'utf8'));
86
+ const version = (0, version_1.parseVersion)(parsed.version ?? '');
87
+ if (version) {
88
+ return { playwrightCli: path.join(packageDir, 'cli.js'), playwrightVersion: version, packageDir };
89
+ }
90
+ }
91
+ catch {
92
+ // fall through and keep walking: a broken package.json should not hide a parent install
93
+ }
94
+ }
95
+ const parent = path.dirname(dir);
96
+ if (parent === dir)
97
+ return null;
98
+ dir = parent;
99
+ }
100
+ }
101
+ /** Builds the config entity, or null when no `@playwright/test` package resolves for it. */
102
+ function buildConfig(configPath) {
103
+ const configDir = path.dirname(configPath);
104
+ const resolved = resolvePlaywright(configDir);
105
+ if (!resolved)
106
+ return null;
107
+ return {
108
+ configPath,
109
+ configDir,
110
+ playwrightCli: resolved.playwrightCli,
111
+ playwrightVersion: resolved.playwrightVersion,
112
+ supported: (0, version_1.isSupported)(resolved.playwrightVersion),
113
+ rootDir: null,
114
+ testDirs: [],
115
+ tests: [],
116
+ discoveryState: 'idle',
117
+ };
118
+ }
119
+ function isWithin(parent, child) {
120
+ const rel = path.relative(parent, child);
121
+ return rel === '' || (!rel.startsWith('..') && !path.isAbsolute(rel));
122
+ }
123
+ /** Nearest supported config: the one whose `configDir` is the longest prefix of `file`. */
124
+ function configForFile(workspace, file) {
125
+ let best = null;
126
+ for (const config of workspace.configs) {
127
+ if (!config.supported)
128
+ continue;
129
+ if (!isWithin(config.configDir, file))
130
+ continue;
131
+ if (!best || config.configDir.length > best.configDir.length)
132
+ best = config;
133
+ }
134
+ return best;
135
+ }
136
+ /** True when `file` lives under one of the config's discovered test directories. */
137
+ function isUnderTestDirs(config, file) {
138
+ return config.testDirs.some((dir) => isWithin(dir, file));
139
+ }
140
+ //# sourceMappingURL=workspace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace.js","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,50 @@
1
1
  {
2
2
  "name": "playwright-zed-language-server",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
6
- }
3
+ "version": "0.2.0",
4
+ "description": "Language server for the Playwright for Zed extension: discovers and runs Playwright tests in your workspace (community project, not affiliated with Microsoft)",
5
+ "keywords": [
6
+ "playwright",
7
+ "zed",
8
+ "language-server",
9
+ "lsp",
10
+ "testing"
11
+ ],
12
+ "homepage": "https://github.com/radekBednarik/playwright-zed#readme",
13
+ "license": "MIT",
14
+ "repository": {
15
+ "type": "git",
16
+ "url": "git+https://github.com/radekBednarik/playwright-zed.git",
17
+ "directory": "server"
18
+ },
19
+ "type": "commonjs",
20
+ "bin": {
21
+ "playwright-zed-language-server": "bin/playwright-zed-language-server.js"
22
+ },
23
+ "files": [
24
+ "bin/",
25
+ "dist/"
26
+ ],
27
+ "engines": {
28
+ "node": ">=20"
29
+ },
30
+ "scripts": {
31
+ "build": "tsc -p tsconfig.json",
32
+ "lint": "tsc --noEmit -p tsconfig.json",
33
+ "test": "vitest run",
34
+ "test:unit": "vitest run test/unit",
35
+ "test:integration": "vitest run test/integration"
36
+ },
37
+ "dependencies": {
38
+ "vscode-languageserver": "^9.0.1",
39
+ "vscode-languageserver-textdocument": "^1.0.12"
40
+ },
41
+ "devDependencies": {
42
+ "@types/node": "^20.14.0",
43
+ "typescript": "^5.5.0",
44
+ "vitest": "^3.0.0",
45
+ "vscode-jsonrpc": "^8.2.1"
46
+ },
47
+ "allowScripts": {
48
+ "esbuild@0.28.2": true
49
+ }
50
+ }