@kb-labs/marketplace-npm 2.16.0 → 2.17.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/index.js.map +1 -1
- package/package.json +3 -3
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["
|
|
1
|
+
{"version":3,"sources":["../src/npm-source.ts"],"names":["versionSep"],"mappings":"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","file":"index.js","sourcesContent":["/**\n * @module @kb-labs/marketplace-npm/npm-source\n * pnpm-based PackageSource implementation.\n * This is the ONLY place in the marketplace codebase that calls pnpm.\n */\n\nimport { execa } from 'execa';\nimport * as path from 'node:path';\nimport * as fs from 'node:fs/promises';\nimport * as crypto from 'node:crypto';\nimport type {\n PackageSource,\n ResolvedPackage,\n InstalledPackage,\n} from '@kb-labs/marketplace-contracts';\n\nexport class NpmPackageSource implements PackageSource {\n async resolve(spec: string): Promise<ResolvedPackage> {\n const id = extractPackageName(spec);\n if (!id) {\n throw new Error(`Invalid package spec: ${spec}`);\n }\n\n return {\n id,\n version: extractVersion(spec) ?? 'latest',\n integrity: '', // computed after install\n source: 'marketplace',\n };\n }\n\n async install(\n pkg: ResolvedPackage,\n root: string,\n opts?: { dev?: boolean },\n ): Promise<InstalledPackage> {\n const spec = pkg.version === 'latest' ? pkg.id : `${pkg.id}@${pkg.version}`;\n const args = ['add', spec];\n if (opts?.dev) {args.push('--save-dev');}\n\n await execa('pnpm', args, { cwd: root, timeout: 5 * 60 * 1000 });\n\n const packageRoot = path.join(root, 'node_modules', pkg.id);\n\n // Read actual installed version\n let version = pkg.version;\n try {\n const pkgJson = JSON.parse(await fs.readFile(path.join(packageRoot, 'package.json'), 'utf-8'));\n version = pkgJson.version ?? version;\n } catch { /* use spec version */ }\n\n // Compute integrity\n const integrity = await computeIntegrity(packageRoot);\n\n return {\n id: pkg.id,\n version,\n packageRoot,\n integrity,\n };\n }\n\n async remove(packageId: string, root: string): Promise<void> {\n await execa('pnpm', ['remove', packageId], { cwd: root, timeout: 2 * 60 * 1000 });\n }\n}\n\n// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\n\nfunction extractPackageName(spec: string): string | null {\n if (!spec || spec.startsWith('.') || spec.startsWith('/')) {return null;}\n\n if (spec.startsWith('@')) {\n const slashIndex = spec.indexOf('/');\n if (slashIndex === -1) {return null;}\n const versionSep = spec.lastIndexOf('@');\n return versionSep > slashIndex ? spec.slice(0, versionSep) : spec;\n }\n\n const versionSep = spec.indexOf('@');\n return versionSep > 0 ? spec.slice(0, versionSep) : spec;\n}\n\nfunction extractVersion(spec: string): string | null {\n if (spec.startsWith('@')) {\n const slashIndex = spec.indexOf('/');\n const lastAt = spec.lastIndexOf('@');\n return lastAt > slashIndex ? spec.slice(lastAt + 1) : null;\n }\n const atIndex = spec.indexOf('@');\n return atIndex > 0 ? spec.slice(atIndex + 1) : null;\n}\n\nasync function computeIntegrity(packageRoot: string): Promise<string> {\n try {\n const content = await fs.readFile(path.join(packageRoot, 'package.json'));\n const hash = crypto.createHash('sha256').update(content).digest('base64');\n return `sha256-${hash}`;\n } catch {\n return '';\n }\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"dependencies": {
|
|
3
3
|
"execa": "^9.5.3",
|
|
4
|
-
"@kb-labs/marketplace-contracts": "2.
|
|
4
|
+
"@kb-labs/marketplace-contracts": "2.17.0"
|
|
5
5
|
},
|
|
6
6
|
"description": "npm/pnpm package source for KB Labs marketplace",
|
|
7
7
|
"devDependencies": {
|
|
8
8
|
"tsup": "^8.5.0",
|
|
9
9
|
"typescript": "^5",
|
|
10
10
|
"vitest": "^3.2.4",
|
|
11
|
-
"@kb-labs/devkit": "2.
|
|
11
|
+
"@kb-labs/devkit": "2.17.0"
|
|
12
12
|
},
|
|
13
13
|
"engines": {
|
|
14
14
|
"node": ">=20.0.0",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"sideEffects": false,
|
|
31
31
|
"type": "module",
|
|
32
32
|
"types": "./dist/index.d.ts",
|
|
33
|
-
"version": "2.
|
|
33
|
+
"version": "2.17.0",
|
|
34
34
|
"scripts": {
|
|
35
35
|
"build": "tsup",
|
|
36
36
|
"clean": "rimraf dist",
|