openspec-playwright 0.1.20 → 0.1.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/README.zh-CN.md +1 -1
- package/dist/commands/update.js +21 -18
- package/dist/commands/update.js.map +1 -1
- package/openspec-playwright-0.1.22.tgz +0 -0
- package/package.json +1 -1
- package/release-notes.md +2 -2
- package/src/commands/update.ts +29 -24
- package/openspec-playwright-0.1.20.tgz +0 -0
package/README.md
CHANGED
package/README.zh-CN.md
CHANGED
package/dist/commands/update.js
CHANGED
|
@@ -3,42 +3,45 @@ import { existsSync, readFileSync, writeFileSync, mkdirSync, } from 'fs';
|
|
|
3
3
|
import { join } from 'path';
|
|
4
4
|
import chalk from 'chalk';
|
|
5
5
|
const SKILL_SRC = new URL('../../.claude/skills/openspec-e2e', import.meta.url).pathname;
|
|
6
|
-
const CMD_SRC = new URL('../../.claude/commands/opsx
|
|
6
|
+
const CMD_SRC = new URL('../../.claude/commands/opsx', import.meta.url).pathname;
|
|
7
7
|
const SCHEMA_DIR = new URL('../../schemas', import.meta.url).pathname;
|
|
8
8
|
export async function update(options) {
|
|
9
9
|
console.log(chalk.blue('\n🔄 Updating OpenSpec + Playwright E2E\n'));
|
|
10
10
|
const projectRoot = process.cwd();
|
|
11
|
-
// 1. Update CLI tool
|
|
11
|
+
// 1. Update CLI tool from npm
|
|
12
12
|
if (options.cli !== false) {
|
|
13
13
|
console.log(chalk.blue('─── Updating CLI ───'));
|
|
14
14
|
try {
|
|
15
|
-
execSync('npm install -g
|
|
16
|
-
console.log(chalk.green(' ✓ CLI updated
|
|
15
|
+
execSync('npm install -g openspec-playwright', { stdio: 'inherit', cwd: projectRoot });
|
|
16
|
+
console.log(chalk.green(' ✓ CLI updated via npm'));
|
|
17
17
|
}
|
|
18
18
|
catch {
|
|
19
|
-
console.log(chalk.yellow(' ⚠ Failed to update CLI'));
|
|
20
|
-
console.log(chalk.gray(' Run manually: npm install -g
|
|
19
|
+
console.log(chalk.yellow(' ⚠ Failed to update CLI via npm'));
|
|
20
|
+
console.log(chalk.gray(' Run manually: npm install -g openspec-playwright'));
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
|
-
// 2. Update skill and command from
|
|
23
|
+
// 2. Update skill and command from npm tarball
|
|
24
24
|
if (options.skill !== false) {
|
|
25
25
|
console.log(chalk.blue('\n─── Updating Skill & Command ───'));
|
|
26
26
|
try {
|
|
27
|
-
// Download tarball
|
|
28
|
-
const tmpSkill = '/tmp/openspec-e2e-skill.tar.gz';
|
|
27
|
+
// Download npm tarball and extract
|
|
29
28
|
const tmpDir = '/tmp/openspec-e2e-update';
|
|
30
|
-
execSync(`
|
|
31
|
-
|
|
32
|
-
execSync(`
|
|
33
|
-
|
|
34
|
-
const
|
|
35
|
-
|
|
29
|
+
execSync(`rm -rf ${tmpDir} && mkdir -p ${tmpDir}`, { stdio: 'pipe', cwd: projectRoot });
|
|
30
|
+
execSync(`npm pack openspec-playwright --pack-destination ${tmpDir}`, { stdio: 'pipe', cwd: projectRoot });
|
|
31
|
+
const tarball = execSync(`ls -t ${tmpDir}/openspec-playwright-*.tgz | head -1`, { encoding: 'utf-8', cwd: projectRoot }).trim();
|
|
32
|
+
// Move tarball out before extracting to avoid "overwrite archive" error
|
|
33
|
+
const tmpTarball = `${tmpDir}/package.tgz`;
|
|
34
|
+
execSync(`mv "${tarball}" "${tmpTarball}"`, { stdio: 'pipe', cwd: projectRoot });
|
|
35
|
+
execSync(`tar -xzf "${tmpTarball}" -C ${tmpDir} --strip-components=1`, { stdio: 'pipe', cwd: projectRoot });
|
|
36
|
+
const skillSrc = join(tmpDir, '.claude', 'skills', 'openspec-e2e', 'SKILL.md');
|
|
37
|
+
const cmdSrc = join(tmpDir, '.claude', 'commands', 'opsx', 'e2e.md');
|
|
38
|
+
const schemaSrc = join(tmpDir, 'schemas', 'playwright-e2e');
|
|
36
39
|
installSkillFrom(skillSrc, cmdSrc, schemaSrc, projectRoot);
|
|
37
40
|
console.log(chalk.green(' ✓ Skill & command updated to latest'));
|
|
38
41
|
}
|
|
39
42
|
catch {
|
|
40
|
-
console.log(chalk.yellow(' ⚠ Failed to update skill/command from
|
|
41
|
-
console.log(chalk.gray('
|
|
43
|
+
console.log(chalk.yellow(' ⚠ Failed to update skill/command from npm'));
|
|
44
|
+
console.log(chalk.gray(' Falling back to local files...'));
|
|
42
45
|
installSkill(projectRoot);
|
|
43
46
|
}
|
|
44
47
|
}
|
|
@@ -49,7 +52,7 @@ export async function update(options) {
|
|
|
49
52
|
console.log(chalk.gray(' Then run /opsx:e2e <change-name> to verify.\n'));
|
|
50
53
|
}
|
|
51
54
|
function installSkill(projectRoot) {
|
|
52
|
-
installSkillFrom(SKILL_SRC, CMD_SRC, SCHEMA_DIR
|
|
55
|
+
installSkillFrom(join(SKILL_SRC, 'SKILL.md'), join(CMD_SRC, 'e2e.md'), join(SCHEMA_DIR, 'playwright-e2e'), projectRoot);
|
|
53
56
|
}
|
|
54
57
|
function installSkillFrom(skillSrc, cmdSrc, schemaSrc, projectRoot) {
|
|
55
58
|
const skillDir = join(projectRoot, '.claude', 'skills', 'openspec-e2e');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EACL,UAAU,EACV,YAAY,EACZ,aAAa,EACb,SAAS,GACV,MAAM,IAAI,CAAC;AACZ,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,mCAAmC,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;AACzF,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"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"}
|
|
Binary file
|
package/package.json
CHANGED
package/release-notes.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
## What's Changed
|
|
2
2
|
|
|
3
|
-
-
|
|
3
|
+
- fix: update command now uses npm instead of git tarball
|
|
4
4
|
|
|
5
|
-
**Full Changelog**: https://github.com/wxhou/openspec-playwright/releases/tag/v0.1.
|
|
5
|
+
**Full Changelog**: https://github.com/wxhou/openspec-playwright/releases/tag/v0.1.22
|
package/src/commands/update.ts
CHANGED
|
@@ -9,7 +9,7 @@ import { join } from 'path';
|
|
|
9
9
|
import chalk from 'chalk';
|
|
10
10
|
|
|
11
11
|
const SKILL_SRC = new URL('../../.claude/skills/openspec-e2e', import.meta.url).pathname;
|
|
12
|
-
const CMD_SRC = new URL('../../.claude/commands/opsx
|
|
12
|
+
const CMD_SRC = new URL('../../.claude/commands/opsx', import.meta.url).pathname;
|
|
13
13
|
const SCHEMA_DIR = new URL('../../schemas', import.meta.url).pathname;
|
|
14
14
|
|
|
15
15
|
export interface UpdateOptions {
|
|
@@ -22,47 +22,52 @@ export async function update(options: UpdateOptions) {
|
|
|
22
22
|
|
|
23
23
|
const projectRoot = process.cwd();
|
|
24
24
|
|
|
25
|
-
// 1. Update CLI tool
|
|
25
|
+
// 1. Update CLI tool from npm
|
|
26
26
|
if (options.cli !== false) {
|
|
27
27
|
console.log(chalk.blue('─── Updating CLI ───'));
|
|
28
28
|
try {
|
|
29
29
|
execSync(
|
|
30
|
-
'npm install -g
|
|
31
|
-
{ stdio: 'inherit' }
|
|
30
|
+
'npm install -g openspec-playwright',
|
|
31
|
+
{ stdio: 'inherit', cwd: projectRoot }
|
|
32
32
|
);
|
|
33
|
-
console.log(chalk.green(' ✓ CLI updated
|
|
33
|
+
console.log(chalk.green(' ✓ CLI updated via npm'));
|
|
34
34
|
} catch {
|
|
35
|
-
console.log(chalk.yellow(' ⚠ Failed to update CLI'));
|
|
35
|
+
console.log(chalk.yellow(' ⚠ Failed to update CLI via npm'));
|
|
36
36
|
console.log(
|
|
37
|
-
chalk.gray(' Run manually: npm install -g
|
|
37
|
+
chalk.gray(' Run manually: npm install -g openspec-playwright')
|
|
38
38
|
);
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
-
// 2. Update skill and command from
|
|
42
|
+
// 2. Update skill and command from npm tarball
|
|
43
43
|
if (options.skill !== false) {
|
|
44
44
|
console.log(chalk.blue('\n─── Updating Skill & Command ───'));
|
|
45
45
|
try {
|
|
46
|
-
// Download tarball
|
|
47
|
-
const tmpSkill = '/tmp/openspec-e2e-skill.tar.gz';
|
|
46
|
+
// Download npm tarball and extract
|
|
48
47
|
const tmpDir = '/tmp/openspec-e2e-update';
|
|
49
|
-
|
|
48
|
+
execSync(`rm -rf ${tmpDir} && mkdir -p ${tmpDir}`, { stdio: 'pipe', cwd: projectRoot });
|
|
50
49
|
execSync(
|
|
51
|
-
`
|
|
52
|
-
{ stdio: 'pipe' }
|
|
50
|
+
`npm pack openspec-playwright --pack-destination ${tmpDir}`,
|
|
51
|
+
{ stdio: 'pipe', cwd: projectRoot }
|
|
53
52
|
);
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
const
|
|
53
|
+
const tarball = execSync(
|
|
54
|
+
`ls -t ${tmpDir}/openspec-playwright-*.tgz | head -1`,
|
|
55
|
+
{ encoding: 'utf-8', cwd: projectRoot }
|
|
56
|
+
).trim();
|
|
57
|
+
// Move tarball out before extracting to avoid "overwrite archive" error
|
|
58
|
+
const tmpTarball = `${tmpDir}/package.tgz`;
|
|
59
|
+
execSync(`mv "${tarball}" "${tmpTarball}"`, { stdio: 'pipe', cwd: projectRoot });
|
|
60
|
+
execSync(`tar -xzf "${tmpTarball}" -C ${tmpDir} --strip-components=1`, { stdio: 'pipe', cwd: projectRoot });
|
|
61
|
+
|
|
62
|
+
const skillSrc = join(tmpDir, '.claude', 'skills', 'openspec-e2e', 'SKILL.md');
|
|
63
|
+
const cmdSrc = join(tmpDir, '.claude', 'commands', 'opsx', 'e2e.md');
|
|
64
|
+
const schemaSrc = join(tmpDir, 'schemas', 'playwright-e2e');
|
|
60
65
|
|
|
61
66
|
installSkillFrom(skillSrc, cmdSrc, schemaSrc, projectRoot);
|
|
62
67
|
console.log(chalk.green(' ✓ Skill & command updated to latest'));
|
|
63
68
|
} catch {
|
|
64
|
-
console.log(chalk.yellow(' ⚠ Failed to update skill/command from
|
|
65
|
-
console.log(chalk.gray('
|
|
69
|
+
console.log(chalk.yellow(' ⚠ Failed to update skill/command from npm'));
|
|
70
|
+
console.log(chalk.gray(' Falling back to local files...'));
|
|
66
71
|
installSkill(projectRoot);
|
|
67
72
|
}
|
|
68
73
|
}
|
|
@@ -77,9 +82,9 @@ export async function update(options: UpdateOptions) {
|
|
|
77
82
|
|
|
78
83
|
function installSkill(projectRoot: string) {
|
|
79
84
|
installSkillFrom(
|
|
80
|
-
SKILL_SRC,
|
|
81
|
-
CMD_SRC,
|
|
82
|
-
SCHEMA_DIR
|
|
85
|
+
join(SKILL_SRC, 'SKILL.md'),
|
|
86
|
+
join(CMD_SRC, 'e2e.md'),
|
|
87
|
+
join(SCHEMA_DIR, 'playwright-e2e'),
|
|
83
88
|
projectRoot
|
|
84
89
|
);
|
|
85
90
|
}
|
|
Binary file
|