mirror of https://github.com/openclaw/openclaw.git
Plugins: sanitize sdk export subpaths
This commit is contained in:
parent
fc60ced03c
commit
01d3442246
|
|
@ -341,6 +341,9 @@ describe("plugin sdk alias helpers", () => {
|
|||
"./plugin-sdk/compat": { default: "./dist/plugin-sdk/compat.js" },
|
||||
"./plugin-sdk/telegram": { default: "./dist/plugin-sdk/telegram.js" },
|
||||
"./plugin-sdk/nested/value": { default: "./dist/plugin-sdk/nested/value.js" },
|
||||
"./plugin-sdk/..\\..\\evil": { default: "./dist/plugin-sdk/evil.js" },
|
||||
"./plugin-sdk/C:temp": { default: "./dist/plugin-sdk/drive.js" },
|
||||
"./plugin-sdk/.hidden": { default: "./dist/plugin-sdk/hidden.js" },
|
||||
},
|
||||
});
|
||||
const subpaths = listPluginSdkExportedSubpaths({
|
||||
|
|
|
|||
|
|
@ -32,11 +32,15 @@ function readPluginSdkPackageJson(packageRoot: string): PluginSdkPackageJson | n
|
|||
}
|
||||
}
|
||||
|
||||
function isSafePluginSdkSubpathSegment(subpath: string): boolean {
|
||||
return /^[A-Za-z0-9][A-Za-z0-9_-]*$/.test(subpath);
|
||||
}
|
||||
|
||||
function listPluginSdkSubpathsFromPackageJson(pkg: PluginSdkPackageJson): string[] {
|
||||
return Object.keys(pkg.exports ?? {})
|
||||
.filter((key) => key.startsWith("./plugin-sdk/"))
|
||||
.map((key) => key.slice("./plugin-sdk/".length))
|
||||
.filter((subpath) => Boolean(subpath) && !subpath.includes("/"))
|
||||
.filter((subpath) => isSafePluginSdkSubpathSegment(subpath))
|
||||
.toSorted();
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue