@vibesdotdev/runtime-environment-bun 0.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/dist/bun-environment.impl.d.ts +71 -0
- package/dist/bun-environment.impl.d.ts.map +1 -0
- package/dist/bun-environment.impl.js +130 -0
- package/dist/bun-environment.impl.js.map +1 -0
- package/dist/bun-loader.impl.d.ts +12 -0
- package/dist/bun-loader.impl.d.ts.map +1 -0
- package/dist/bun-loader.impl.js +96 -0
- package/dist/bun-loader.impl.js.map +1 -0
- package/dist/discovery/discovery.assets.consumer.d.ts +13 -0
- package/dist/discovery/discovery.assets.consumer.d.ts.map +1 -0
- package/dist/discovery/discovery.assets.consumer.js +116 -0
- package/dist/discovery/discovery.assets.consumer.js.map +1 -0
- package/dist/host/host.consumer.d.ts +12 -0
- package/dist/host/host.consumer.d.ts.map +1 -0
- package/dist/host/host.consumer.js +13 -0
- package/dist/host/host.consumer.js.map +1 -0
- package/dist/index.d.ts +49 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +77 -0
- package/dist/index.js.map +1 -0
- package/dist/loaders/fallback-loader.impl.consumer.d.ts +7 -0
- package/dist/loaders/fallback-loader.impl.consumer.d.ts.map +1 -0
- package/dist/loaders/fallback-loader.impl.consumer.js +63 -0
- package/dist/loaders/fallback-loader.impl.consumer.js.map +1 -0
- package/dist/package-plugins/candidates.consumer.d.ts +8 -0
- package/dist/package-plugins/candidates.consumer.d.ts.map +1 -0
- package/dist/package-plugins/candidates.consumer.js +133 -0
- package/dist/package-plugins/candidates.consumer.js.map +1 -0
- package/dist/package-plugins/import-module.consumer.d.ts +14 -0
- package/dist/package-plugins/import-module.consumer.d.ts.map +1 -0
- package/dist/package-plugins/import-module.consumer.js +28 -0
- package/dist/package-plugins/import-module.consumer.js.map +1 -0
- package/dist/package-plugins/index.d.ts +8 -0
- package/dist/package-plugins/index.d.ts.map +1 -0
- package/dist/package-plugins/index.js +8 -0
- package/dist/package-plugins/index.js.map +1 -0
- package/dist/package-plugins/installer.consumer.d.ts +14 -0
- package/dist/package-plugins/installer.consumer.d.ts.map +1 -0
- package/dist/package-plugins/installer.consumer.js +29 -0
- package/dist/package-plugins/installer.consumer.js.map +1 -0
- package/dist/package-plugins/loader.consumer.d.ts +12 -0
- package/dist/package-plugins/loader.consumer.d.ts.map +1 -0
- package/dist/package-plugins/loader.consumer.js +59 -0
- package/dist/package-plugins/loader.consumer.js.map +1 -0
- package/dist/package-plugins/reporting.d.ts +5 -0
- package/dist/package-plugins/reporting.d.ts.map +1 -0
- package/dist/package-plugins/reporting.js +10 -0
- package/dist/package-plugins/reporting.js.map +1 -0
- package/dist/package-plugins/resolve.consumer.d.ts +22 -0
- package/dist/package-plugins/resolve.consumer.d.ts.map +1 -0
- package/dist/package-plugins/resolve.consumer.js +265 -0
- package/dist/package-plugins/resolve.consumer.js.map +1 -0
- package/dist/process-spawn.impl.d.ts +15 -0
- package/dist/process-spawn.impl.d.ts.map +1 -0
- package/dist/process-spawn.impl.js +41 -0
- package/dist/process-spawn.impl.js.map +1 -0
- package/dist/services/runtime-path.impl.d.ts +20 -0
- package/dist/services/runtime-path.impl.d.ts.map +1 -0
- package/dist/services/runtime-path.impl.js +20 -0
- package/dist/services/runtime-path.impl.js.map +1 -0
- package/dist/services/self-spawn.consumer.d.ts +55 -0
- package/dist/services/self-spawn.consumer.d.ts.map +1 -0
- package/dist/services/self-spawn.consumer.js +85 -0
- package/dist/services/self-spawn.consumer.js.map +1 -0
- package/dist/services/workspace-resolve.d.ts +84 -0
- package/dist/services/workspace-resolve.d.ts.map +1 -0
- package/dist/services/workspace-resolve.js +107 -0
- package/dist/services/workspace-resolve.js.map +1 -0
- package/package.json +66 -0
- package/src/bun-environment.impl.ts +179 -0
- package/src/bun-loader.impl.ts +102 -0
- package/src/discovery/discovery.assets.consumer.ts +135 -0
- package/src/host/host.consumer.ts +23 -0
- package/src/index.ts +92 -0
- package/src/loaders/fallback-loader.impl.consumer.ts +57 -0
- package/src/package-plugins/candidates.consumer.ts +133 -0
- package/src/package-plugins/import-module.consumer.ts +27 -0
- package/src/package-plugins/index.ts +8 -0
- package/src/package-plugins/installer.consumer.ts +38 -0
- package/src/package-plugins/loader.consumer.ts +80 -0
- package/src/package-plugins/reporting.ts +13 -0
- package/src/package-plugins/resolve.consumer.ts +292 -0
- package/src/process-spawn.impl.ts +52 -0
- package/src/services/runtime-path.impl.ts +20 -0
- package/src/services/self-spawn.consumer.ts +91 -0
- package/src/services/workspace-resolve.ts +146 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { RuntimeLoaderImplementation } from '@vibesdotdev/runtime/schemas/registry';
|
|
2
|
+
/**
|
|
3
|
+
* Test/dev fallback loader.
|
|
4
|
+
* Recursively scans basePaths for .ts/.js files and returns lazy importers.
|
|
5
|
+
*/
|
|
6
|
+
export declare const fallbackLoader: RuntimeLoaderImplementation;
|
|
7
|
+
//# sourceMappingURL=fallback-loader.impl.consumer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fallback-loader.impl.consumer.d.ts","sourceRoot":"","sources":["../../src/loaders/fallback-loader.impl.consumer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEX,2BAA2B,EAE3B,MAAM,uCAAuC,CAAC;AAE/C;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,2BA4C5B,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {
|
|
2
|
+
if (typeof path === "string" && /^\.\.?\//.test(path)) {
|
|
3
|
+
return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
|
|
4
|
+
return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
|
|
5
|
+
});
|
|
6
|
+
}
|
|
7
|
+
return path;
|
|
8
|
+
};
|
|
9
|
+
import { readdir } from 'node:fs/promises';
|
|
10
|
+
import { join } from 'node:path';
|
|
11
|
+
/**
|
|
12
|
+
* Test/dev fallback loader.
|
|
13
|
+
* Recursively scans basePaths for .ts/.js files and returns lazy importers.
|
|
14
|
+
*/
|
|
15
|
+
export const fallbackLoader = {
|
|
16
|
+
async loadModules({ discovery }) {
|
|
17
|
+
const descriptors = {};
|
|
18
|
+
const implementations = {};
|
|
19
|
+
const plugins = {};
|
|
20
|
+
async function scanDir(dir) {
|
|
21
|
+
try {
|
|
22
|
+
const entries = await readdir(dir, { withFileTypes: true });
|
|
23
|
+
for (const entry of entries) {
|
|
24
|
+
const fullPath = join(dir, entry.name);
|
|
25
|
+
if (entry.isDirectory()) {
|
|
26
|
+
await scanDir(fullPath);
|
|
27
|
+
continue;
|
|
28
|
+
}
|
|
29
|
+
if (!entry.isFile())
|
|
30
|
+
continue;
|
|
31
|
+
const name = entry.name;
|
|
32
|
+
if (!name.endsWith('.ts') && !name.endsWith('.js'))
|
|
33
|
+
continue;
|
|
34
|
+
const importer = async () => {
|
|
35
|
+
try {
|
|
36
|
+
return await import(__rewriteRelativeImportExtension(fullPath));
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
return {};
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
if (name.includes('.descriptor')) {
|
|
43
|
+
descriptors[fullPath] = importer;
|
|
44
|
+
}
|
|
45
|
+
else if (name.includes('.impl')) {
|
|
46
|
+
implementations[fullPath] = importer;
|
|
47
|
+
}
|
|
48
|
+
else if (name.includes('.plugin')) {
|
|
49
|
+
plugins[fullPath] = importer;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
catch {
|
|
54
|
+
// Skip unreadable directories
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
for (const basePath of discovery?.basePaths ?? []) {
|
|
58
|
+
await scanDir(basePath);
|
|
59
|
+
}
|
|
60
|
+
return { descriptors, implementations, plugins };
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
//# sourceMappingURL=fallback-loader.impl.consumer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fallback-loader.impl.consumer.js","sourceRoot":"","sources":["../../src/loaders/fallback-loader.impl.consumer.ts"],"names":[],"mappings":";;;;;;;;AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAOjC;;;GAGG;AACH,MAAM,CAAC,MAAM,cAAc,GAAgC;IAC1D,KAAK,CAAC,WAAW,CAAC,EAAE,SAAS,EAA0C;QACtE,MAAM,WAAW,GAAwD,EAAE,CAAC;QAC5E,MAAM,eAAe,GAAwD,EAAE,CAAC;QAChF,MAAM,OAAO,GAAwD,EAAE,CAAC;QAExE,KAAK,UAAU,OAAO,CAAC,GAAW;YACjC,IAAI,CAAC;gBACJ,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC5D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;oBAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;oBACvC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;wBACzB,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAC;wBACxB,SAAS;oBACV,CAAC;oBACD,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;wBAAE,SAAS;oBAC9B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;oBACxB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;wBAAE,SAAS;oBAC7D,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;wBAC3B,IAAI,CAAC;4BACJ,OAAO,MAAM,MAAM,kCAAC,QAAQ,EAAC,CAAC;wBAC/B,CAAC;wBAAC,MAAM,CAAC;4BACR,OAAO,EAAE,CAAC;wBACX,CAAC;oBACF,CAAC,CAAC;oBACF,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;wBAClC,WAAW,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;oBAClC,CAAC;yBAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;wBACnC,eAAe,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;oBACtC,CAAC;yBAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;wBACrC,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;oBAC9B,CAAC;gBACF,CAAC;YACF,CAAC;YAAC,MAAM,CAAC;gBACR,8BAA8B;YAC/B,CAAC;QACF,CAAC;QAED,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,SAAS,IAAI,EAAE,EAAE,CAAC;YACnD,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAC;QACzB,CAAC;QAED,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,OAAO,EAA6B,CAAC;IAC7E,CAAC;CACD,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare function getPackageName(specifier: string): string;
|
|
2
|
+
export declare function isBarePackageSpecifier(specifier: string): boolean;
|
|
3
|
+
export declare function packageRootFor(baseDir: string, packageName: string): string | null;
|
|
4
|
+
export declare function exportPluginSpecifiers(packageName: string, packageRoot: string): string[];
|
|
5
|
+
export declare function resolvePackageExportPath(packageRoot: string, subpath: string): string | null;
|
|
6
|
+
export declare function resolvePackageSpecifierPath(baseDir: string, specifier: string): string | null;
|
|
7
|
+
export declare function pluginFileCandidates(packageRoot: string, packageName: string): string[];
|
|
8
|
+
//# sourceMappingURL=candidates.consumer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"candidates.consumer.d.ts","sourceRoot":"","sources":["../../src/package-plugins/candidates.consumer.ts"],"names":[],"mappings":"AAoBA,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAMxD;AAED,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAEjE;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGlF;AAED,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CAezF;AA+BD,wBAAgB,wBAAwB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAW5F;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAO7F;AAoBD,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,EAAE,CASvF"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
import { existsSync, readFileSync, readdirSync } from 'fs';
|
|
2
|
+
import { basename, extname, join, sep } from 'path';
|
|
3
|
+
const EXPORT_CONDITION_PRIORITY = [
|
|
4
|
+
'bun',
|
|
5
|
+
'import',
|
|
6
|
+
'module',
|
|
7
|
+
'default',
|
|
8
|
+
'compiled',
|
|
9
|
+
'node',
|
|
10
|
+
'require'
|
|
11
|
+
];
|
|
12
|
+
function readPackageJson(packageRoot) {
|
|
13
|
+
return JSON.parse(readFileSync(join(packageRoot, 'package.json'), 'utf8'));
|
|
14
|
+
}
|
|
15
|
+
export function getPackageName(specifier) {
|
|
16
|
+
if (specifier.startsWith('@')) {
|
|
17
|
+
const parts = specifier.split('/');
|
|
18
|
+
return `${parts[0]}/${parts[1]}`;
|
|
19
|
+
}
|
|
20
|
+
return specifier.split('/')[0];
|
|
21
|
+
}
|
|
22
|
+
export function isBarePackageSpecifier(specifier) {
|
|
23
|
+
return specifier === getPackageName(specifier);
|
|
24
|
+
}
|
|
25
|
+
export function packageRootFor(baseDir, packageName) {
|
|
26
|
+
const root = join(baseDir, 'node_modules', ...packageName.split('/'));
|
|
27
|
+
return existsSync(join(root, 'package.json')) ? root : null;
|
|
28
|
+
}
|
|
29
|
+
export function exportPluginSpecifiers(packageName, packageRoot) {
|
|
30
|
+
const pkg = readPackageJson(packageRoot);
|
|
31
|
+
if (!pkg.exports || typeof pkg.exports !== 'object' || Array.isArray(pkg.exports))
|
|
32
|
+
return [];
|
|
33
|
+
const exactName = `./${packageName.split('/').pop()}.plugin`;
|
|
34
|
+
const keys = Object.keys(pkg.exports).filter((key) => key === './plugin' || key.endsWith('.plugin'));
|
|
35
|
+
keys.sort((left, right) => {
|
|
36
|
+
if (left === './plugin')
|
|
37
|
+
return -1;
|
|
38
|
+
if (right === './plugin')
|
|
39
|
+
return 1;
|
|
40
|
+
if (left === exactName)
|
|
41
|
+
return -1;
|
|
42
|
+
if (right === exactName)
|
|
43
|
+
return 1;
|
|
44
|
+
return left.localeCompare(right);
|
|
45
|
+
});
|
|
46
|
+
return keys.map((key) => `${packageName}/${key.slice(2)}`);
|
|
47
|
+
}
|
|
48
|
+
function resolveExportTarget(packageRoot, target) {
|
|
49
|
+
if (!target)
|
|
50
|
+
return null;
|
|
51
|
+
if (typeof target === 'string')
|
|
52
|
+
return join(packageRoot, target);
|
|
53
|
+
if (Array.isArray(target)) {
|
|
54
|
+
for (const option of target) {
|
|
55
|
+
const resolved = resolveExportTarget(packageRoot, option);
|
|
56
|
+
if (resolved && existsSync(resolved))
|
|
57
|
+
return resolved;
|
|
58
|
+
if (resolved)
|
|
59
|
+
return resolved;
|
|
60
|
+
}
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
const record = target;
|
|
64
|
+
for (const key of EXPORT_CONDITION_PRIORITY) {
|
|
65
|
+
if (!(key in record))
|
|
66
|
+
continue;
|
|
67
|
+
const resolved = resolveExportTarget(packageRoot, record[key]);
|
|
68
|
+
if (resolved && existsSync(resolved))
|
|
69
|
+
return resolved;
|
|
70
|
+
if (resolved)
|
|
71
|
+
return resolved;
|
|
72
|
+
}
|
|
73
|
+
for (const value of Object.values(record)) {
|
|
74
|
+
const resolved = resolveExportTarget(packageRoot, value);
|
|
75
|
+
if (resolved && existsSync(resolved))
|
|
76
|
+
return resolved;
|
|
77
|
+
if (resolved)
|
|
78
|
+
return resolved;
|
|
79
|
+
}
|
|
80
|
+
return null;
|
|
81
|
+
}
|
|
82
|
+
export function resolvePackageExportPath(packageRoot, subpath) {
|
|
83
|
+
const pkg = readPackageJson(packageRoot);
|
|
84
|
+
if (!pkg.exports)
|
|
85
|
+
return null;
|
|
86
|
+
if (typeof pkg.exports === 'string') {
|
|
87
|
+
return subpath === '.' ? join(packageRoot, pkg.exports) : null;
|
|
88
|
+
}
|
|
89
|
+
const exportsMap = pkg.exports;
|
|
90
|
+
const exportValue = subpath === '.' ? (exportsMap['.'] ?? exportsMap) : exportsMap[subpath];
|
|
91
|
+
return resolveExportTarget(packageRoot, exportValue);
|
|
92
|
+
}
|
|
93
|
+
export function resolvePackageSpecifierPath(baseDir, specifier) {
|
|
94
|
+
const packageName = getPackageName(specifier);
|
|
95
|
+
const packageRoot = packageRootFor(baseDir, packageName);
|
|
96
|
+
if (!packageRoot)
|
|
97
|
+
return null;
|
|
98
|
+
const subpath = specifier === packageName ? '.' : `./${specifier.slice(packageName.length + 1)}`;
|
|
99
|
+
return resolvePackageExportPath(packageRoot, subpath);
|
|
100
|
+
}
|
|
101
|
+
function collectPluginFiles(dir, files = [], depth = 0) {
|
|
102
|
+
if (depth > 6)
|
|
103
|
+
return files;
|
|
104
|
+
for (const entry of readdirSync(dir, { withFileTypes: true })) {
|
|
105
|
+
if (entry.name === 'node_modules' || entry.name === '.git')
|
|
106
|
+
continue;
|
|
107
|
+
const fullPath = join(dir, entry.name);
|
|
108
|
+
if (entry.isDirectory()) {
|
|
109
|
+
collectPluginFiles(fullPath, files, depth + 1);
|
|
110
|
+
continue;
|
|
111
|
+
}
|
|
112
|
+
if (!entry.isFile())
|
|
113
|
+
continue;
|
|
114
|
+
if (!entry.name.includes('.plugin.'))
|
|
115
|
+
continue;
|
|
116
|
+
const extension = extname(entry.name);
|
|
117
|
+
if (!['.ts', '.js', '.mjs', '.cjs'].includes(extension))
|
|
118
|
+
continue;
|
|
119
|
+
files.push(fullPath);
|
|
120
|
+
}
|
|
121
|
+
return files;
|
|
122
|
+
}
|
|
123
|
+
export function pluginFileCandidates(packageRoot, packageName) {
|
|
124
|
+
const expectedBasename = `${packageName.split('/').pop()}.plugin`;
|
|
125
|
+
return collectPluginFiles(packageRoot).sort((left, right) => {
|
|
126
|
+
const leftName = basename(left).replace(extname(left), '');
|
|
127
|
+
const rightName = basename(right).replace(extname(right), '');
|
|
128
|
+
const leftScore = Number(leftName !== expectedBasename) * 100 + left.split(sep).length;
|
|
129
|
+
const rightScore = Number(rightName !== expectedBasename) * 100 + right.split(sep).length;
|
|
130
|
+
return leftScore - rightScore || left.localeCompare(right);
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=candidates.consumer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"candidates.consumer.js","sourceRoot":"","sources":["../../src/package-plugins/candidates.consumer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Standard dynamic import for plugin modules.
|
|
3
|
+
*
|
|
4
|
+
* Resolves a path on disk to a `file://` URL and imports it. No bundle-shim
|
|
5
|
+
* fallback: a self-contained binary already has its own first-party plugins
|
|
6
|
+
* bundled, and project-local third-party plugins resolve normally through
|
|
7
|
+
* Bun's standard module resolution.
|
|
8
|
+
*/
|
|
9
|
+
export declare function isNotFoundError(message: string): boolean;
|
|
10
|
+
export declare function importPluginModule(path: string): Promise<{
|
|
11
|
+
loadedPath: string;
|
|
12
|
+
module: Record<string, unknown>;
|
|
13
|
+
}>;
|
|
14
|
+
//# sourceMappingURL=import-module.consumer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"import-module.consumer.d.ts","sourceRoot":"","sources":["../../src/package-plugins/import-module.consumer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAMxD;AAED,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAC/D,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC,CAAC,CAID"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Standard dynamic import for plugin modules.
|
|
3
|
+
*
|
|
4
|
+
* Resolves a path on disk to a `file://` URL and imports it. No bundle-shim
|
|
5
|
+
* fallback: a self-contained binary already has its own first-party plugins
|
|
6
|
+
* bundled, and project-local third-party plugins resolve normally through
|
|
7
|
+
* Bun's standard module resolution.
|
|
8
|
+
*/
|
|
9
|
+
var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {
|
|
10
|
+
if (typeof path === "string" && /^\.\.?\//.test(path)) {
|
|
11
|
+
return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
|
|
12
|
+
return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
return path;
|
|
16
|
+
};
|
|
17
|
+
import { pathToFileURL } from 'url';
|
|
18
|
+
export function isNotFoundError(message) {
|
|
19
|
+
return (message.includes('Cannot find') ||
|
|
20
|
+
message.includes('Could not resolve') ||
|
|
21
|
+
message.includes('Failed to resolve'));
|
|
22
|
+
}
|
|
23
|
+
export async function importPluginModule(path) {
|
|
24
|
+
const url = path.startsWith('file://') ? path : pathToFileURL(path).href;
|
|
25
|
+
const module = (await import(__rewriteRelativeImportExtension(url)));
|
|
26
|
+
return { loadedPath: path, module };
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=import-module.consumer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"import-module.consumer.js","sourceRoot":"","sources":["../../src/package-plugins/import-module.consumer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;;;;;;;;;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAEpC,MAAM,UAAU,eAAe,CAAC,OAAe;IAC9C,OAAO,CACN,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;QAC/B,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QACrC,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CACrC,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,IAAY;IAIpD,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;IACzE,MAAM,MAAM,GAAG,CAAC,MAAM,MAAM,kCAAC,GAAG,EAAC,CAA4B,CAAC;IAC9D,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;AACrC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/package-plugins/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/package-plugins/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plugin install advisor.
|
|
3
|
+
*
|
|
4
|
+
* When `loadPlugins` returns `missing: [...]` (specifiers that didn't resolve
|
|
5
|
+
* from the project), this surface emits a clear, actionable instruction
|
|
6
|
+
* telling the user exactly how to install them and from which directory.
|
|
7
|
+
*
|
|
8
|
+
* Auto-installing was removed: it was the source of opaque failures and
|
|
9
|
+
* surprising network calls. The CLI now refuses to mutate the project's
|
|
10
|
+
* dependencies on the user's behalf — they run `bun add` themselves.
|
|
11
|
+
*/
|
|
12
|
+
import type { PackagePluginRequest, PluginLoadOptions } from '@vibesdotdev/runtime/schemas/package-plugins';
|
|
13
|
+
export declare function reportMissingPlugins(requests: PackagePluginRequest[], options?: PluginLoadOptions): void;
|
|
14
|
+
//# sourceMappingURL=installer.consumer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"installer.consumer.d.ts","sourceRoot":"","sources":["../../src/package-plugins/installer.consumer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,8CAA8C,CAAC;AAI5G,wBAAgB,oBAAoB,CACnC,QAAQ,EAAE,oBAAoB,EAAE,EAChC,OAAO,CAAC,EAAE,iBAAiB,GACzB,IAAI,CAkBN"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plugin install advisor.
|
|
3
|
+
*
|
|
4
|
+
* When `loadPlugins` returns `missing: [...]` (specifiers that didn't resolve
|
|
5
|
+
* from the project), this surface emits a clear, actionable instruction
|
|
6
|
+
* telling the user exactly how to install them and from which directory.
|
|
7
|
+
*
|
|
8
|
+
* Auto-installing was removed: it was the source of opaque failures and
|
|
9
|
+
* surprising network calls. The CLI now refuses to mutate the project's
|
|
10
|
+
* dependencies on the user's behalf — they run `bun add` themselves.
|
|
11
|
+
*/
|
|
12
|
+
import { getPackageName } from './resolve.consumer.js';
|
|
13
|
+
import { reportError } from './reporting.js';
|
|
14
|
+
export function reportMissingPlugins(requests, options) {
|
|
15
|
+
if (requests.length === 0)
|
|
16
|
+
return;
|
|
17
|
+
const byProject = new Map();
|
|
18
|
+
for (const request of requests) {
|
|
19
|
+
const packages = byProject.get(request.projectDir) ?? new Set();
|
|
20
|
+
packages.add(getPackageName(request.id));
|
|
21
|
+
byProject.set(request.projectDir, packages);
|
|
22
|
+
}
|
|
23
|
+
for (const [projectDir, packages] of byProject) {
|
|
24
|
+
const pkgList = [...packages].sort().join(' ');
|
|
25
|
+
reportError(options, `[vibes] ${packages.size} plugin(s) configured but not installed in ${projectDir}.\n` +
|
|
26
|
+
` Run: cd ${projectDir} && bun add ${pkgList}`);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=installer.consumer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"installer.consumer.js","sourceRoot":"","sources":["../../src/package-plugins/installer.consumer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,UAAU,oBAAoB,CACnC,QAAgC,EAChC,OAA2B;IAE3B,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAElC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAuB,CAAC;IACjD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,IAAI,GAAG,EAAU,CAAC;QACxE,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QACzC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAED,KAAK,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,SAAS,EAAE,CAAC;QAChD,MAAM,OAAO,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/C,WAAW,CACV,OAAO,EACP,WAAW,QAAQ,CAAC,IAAI,8CAA8C,UAAU,KAAK;YACpF,mBAAmB,UAAU,eAAe,OAAO,EAAE,CACtD,CAAC;IACH,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plugin loader.
|
|
3
|
+
*
|
|
4
|
+
* Resolves each `PackagePluginRequest` via Bun's standard module resolution
|
|
5
|
+
* from `request.projectDir` and registers any returned `RuntimePlugin` with
|
|
6
|
+
* the runtime. Plugins that don't resolve are reported as missing; the caller
|
|
7
|
+
* surfaces install instructions to the user.
|
|
8
|
+
*/
|
|
9
|
+
import type { VibesRuntime } from '@vibesdotdev/runtime';
|
|
10
|
+
import type { LoadPluginsResult, PackagePluginRequest, PluginLoadOptions } from '@vibesdotdev/runtime/schemas/package-plugins';
|
|
11
|
+
export declare function loadPlugins(runtime: VibesRuntime, requests: PackagePluginRequest[], options?: PluginLoadOptions): Promise<LoadPluginsResult>;
|
|
12
|
+
//# sourceMappingURL=loader.consumer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.consumer.d.ts","sourceRoot":"","sources":["../../src/package-plugins/loader.consumer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EACX,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EAEjB,MAAM,8CAA8C,CAAC;AActD,wBAAsB,WAAW,CAChC,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,oBAAoB,EAAE,EAChC,OAAO,CAAC,EAAE,iBAAiB,GACzB,OAAO,CAAC,iBAAiB,CAAC,CA8C5B"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plugin loader.
|
|
3
|
+
*
|
|
4
|
+
* Resolves each `PackagePluginRequest` via Bun's standard module resolution
|
|
5
|
+
* from `request.projectDir` and registers any returned `RuntimePlugin` with
|
|
6
|
+
* the runtime. Plugins that don't resolve are reported as missing; the caller
|
|
7
|
+
* surfaces install instructions to the user.
|
|
8
|
+
*/
|
|
9
|
+
import { reportInfo, reportWarn } from './reporting.js';
|
|
10
|
+
import { resolvePluginModule } from './resolve.consumer.js';
|
|
11
|
+
function validatePluginRequest(request) {
|
|
12
|
+
if (typeof request.id !== 'string') {
|
|
13
|
+
throw new Error(`[vibes] Plugin request id must be a string, got ${typeof request.id}. ` +
|
|
14
|
+
`Check your vibes.config.ts plugins array — all entries must be strings. ` +
|
|
15
|
+
`Received: ${JSON.stringify(request)}`);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
export async function loadPlugins(runtime, requests, options) {
|
|
19
|
+
const loaded = [];
|
|
20
|
+
const missing = [];
|
|
21
|
+
const verbose = options?.verbose ?? false;
|
|
22
|
+
for (const request of requests) {
|
|
23
|
+
validatePluginRequest(request);
|
|
24
|
+
const resolved = await resolvePluginModule(request);
|
|
25
|
+
if ('plugins' in resolved) {
|
|
26
|
+
for (const entry of resolved.plugins) {
|
|
27
|
+
try {
|
|
28
|
+
await runtime.registerPlugin(entry.plugin);
|
|
29
|
+
loaded.push({
|
|
30
|
+
id: `${request.id} → ${entry.plugin.id}`,
|
|
31
|
+
success: true,
|
|
32
|
+
resolvedPath: entry.resolvedPath
|
|
33
|
+
});
|
|
34
|
+
if (verbose) {
|
|
35
|
+
reportInfo(options, `[vibes] Loaded plugin: ${entry.plugin.id} (${entry.specifier})`);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
catch (error) {
|
|
39
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
40
|
+
loaded.push({
|
|
41
|
+
id: `${request.id} → ${entry.plugin.id}`,
|
|
42
|
+
success: false,
|
|
43
|
+
error: message
|
|
44
|
+
});
|
|
45
|
+
reportWarn(options, `[vibes] Failed to register ${entry.plugin.id} from ${entry.specifier}: ${message}`);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
if (resolved.missing) {
|
|
51
|
+
missing.push(request);
|
|
52
|
+
continue;
|
|
53
|
+
}
|
|
54
|
+
loaded.push({ id: request.id, success: false, error: resolved.error });
|
|
55
|
+
reportWarn(options, `[vibes] Failed to load ${request.id}: ${resolved.error}`);
|
|
56
|
+
}
|
|
57
|
+
return { loaded, missing };
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=loader.consumer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader.consumer.js","sourceRoot":"","sources":["../../src/package-plugins/loader.consumer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AASH,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAEzD,SAAS,qBAAqB,CAAC,OAA6B;IAC3D,IAAI,OAAO,OAAO,CAAC,EAAE,KAAK,QAAQ,EAAE,CAAC;QACpC,MAAM,IAAI,KAAK,CACd,mDAAmD,OAAO,OAAO,CAAC,EAAE,IAAI;YACvE,0EAA0E;YAC1E,aAAa,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CACvC,CAAC;IACH,CAAC;AACF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAChC,OAAqB,EACrB,QAAgC,EAChC,OAA2B;IAE3B,MAAM,MAAM,GAAuB,EAAE,CAAC;IACtC,MAAM,OAAO,GAA2B,EAAE,CAAC;IAC3C,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,KAAK,CAAC;IAE1C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAChC,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAC/B,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,SAAS,IAAI,QAAQ,EAAE,CAAC;YAC3B,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACtC,IAAI,CAAC;oBACJ,MAAM,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBAC3C,MAAM,CAAC,IAAI,CAAC;wBACX,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE;wBACxC,OAAO,EAAE,IAAI;wBACb,YAAY,EAAE,KAAK,CAAC,YAAY;qBAChC,CAAC,CAAC;oBACH,IAAI,OAAO,EAAE,CAAC;wBACb,UAAU,CAAC,OAAO,EAAE,0BAA0B,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,KAAK,CAAC,SAAS,GAAG,CAAC,CAAC;oBACvF,CAAC;gBACF,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBAChB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBACvE,MAAM,CAAC,IAAI,CAAC;wBACX,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE;wBACxC,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,OAAO;qBACd,CAAC,CAAC;oBACH,UAAU,CACT,OAAO,EACP,8BAA8B,KAAK,CAAC,MAAM,CAAC,EAAE,SAAS,KAAK,CAAC,SAAS,KAAK,OAAO,EAAE,CACnF,CAAC;gBACH,CAAC;YACF,CAAC;YACD,SAAS;QACV,CAAC;QAED,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACtB,SAAS;QACV,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;QACvE,UAAU,CAAC,OAAO,EAAE,0BAA0B,OAAO,CAAC,EAAE,KAAK,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;IAChF,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;AAC5B,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { PluginLoadOptions } from '@vibesdotdev/runtime/schemas/package-plugins';
|
|
2
|
+
export declare function reportInfo(options: PluginLoadOptions | undefined, message: string): void;
|
|
3
|
+
export declare function reportWarn(options: PluginLoadOptions | undefined, message: string): void;
|
|
4
|
+
export declare function reportError(options: PluginLoadOptions | undefined, message: string): void;
|
|
5
|
+
//# sourceMappingURL=reporting.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reporting.d.ts","sourceRoot":"","sources":["../../src/package-plugins/reporting.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8CAA8C,CAAC;AAEtF,wBAAgB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAExF;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,iBAAiB,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAExF;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,iBAAiB,GAAG,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAEzF"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export function reportInfo(options, message) {
|
|
2
|
+
options?.report?.info?.(message);
|
|
3
|
+
}
|
|
4
|
+
export function reportWarn(options, message) {
|
|
5
|
+
options?.report?.warn?.(message);
|
|
6
|
+
}
|
|
7
|
+
export function reportError(options, message) {
|
|
8
|
+
options?.report?.error?.(message);
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=reporting.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reporting.js","sourceRoot":"","sources":["../../src/package-plugins/reporting.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,UAAU,CAAC,OAAsC,EAAE,OAAe;IACjF,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,OAAsC,EAAE,OAAe;IACjF,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,OAAsC,EAAE,OAAe;IAClF,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC;AACnC,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plugin resolution — anchored on the project directory.
|
|
3
|
+
*
|
|
4
|
+
* For each request, we ask Bun to resolve the package's plugin entry points
|
|
5
|
+
* from `projectDir`. Bun's resolver follows the standard Node walk: it finds
|
|
6
|
+
* the package in `projectDir/node_modules`, then in parent `node_modules`,
|
|
7
|
+
* and so on. No shadow trees, no on-the-fly bundling.
|
|
8
|
+
*/
|
|
9
|
+
import type { PackagePluginRequest, ResolvePluginResult } from '@vibesdotdev/runtime/schemas/package-plugins';
|
|
10
|
+
export declare function getPackageName(specifier: string): string;
|
|
11
|
+
/**
|
|
12
|
+
* Resolve all plugins exported by a package — the primary plugin (`./plugin`
|
|
13
|
+
* or the bare specifier) plus any sibling surface plugins (`./<x>.plugin`,
|
|
14
|
+
* e.g. `./cli.plugin`). Cloud-scoped specifiers are excluded in consumer
|
|
15
|
+
* resolution. Plugins are deduplicated by `plugin.id` (preserving first occurrence)
|
|
16
|
+
* to handle index-barrel re-exports.
|
|
17
|
+
*/
|
|
18
|
+
export declare function resolvePluginModule(request: PackagePluginRequest): Promise<ResolvePluginResult | {
|
|
19
|
+
error: string;
|
|
20
|
+
missing: boolean;
|
|
21
|
+
}>;
|
|
22
|
+
//# sourceMappingURL=resolve.consumer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve.consumer.d.ts","sourceRoot":"","sources":["../../src/package-plugins/resolve.consumer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,KAAK,EACX,oBAAoB,EAGpB,mBAAmB,EACnB,MAAM,8CAA8C,CAAC;AAgDtD,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAExD;AA4ID;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACxC,OAAO,EAAE,oBAAoB,GAC3B,OAAO,CAAC,mBAAmB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CA0EpE"}
|