Skip to content

Commit 3997367

Browse files
RomneyDasteipete
andcommitted
test: guard private sdk declaration leaks
Co-authored-by: Peter Steinberger <steipete@gmail.com>
1 parent a974fd2 commit 3997367

3 files changed

Lines changed: 30 additions & 1 deletion

File tree

scripts/prepare-extension-package-boundary-artifacts.mjs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ const WHATSAPP_DTS_INPUTS = [
6969
const WHATSAPP_DTS_STAMP = "dist/plugin-sdk/extensions/whatsapp/.boundary-dts.stamp";
7070
const WHATSAPP_DTS_REQUIRED_OUTPUTS = ["dist/plugin-sdk/extensions/whatsapp/api.d.ts"];
7171
const ENTRY_SHIMS_INPUTS = [
72+
"scripts/lib/plugin-sdk-private-local-only-subpaths.json",
7273
"scripts/write-plugin-sdk-entry-dts.ts",
7374
"scripts/lib/plugin-sdk-entrypoints.json",
7475
"scripts/lib/plugin-sdk-entries.mjs",

scripts/release-check.ts

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,12 @@ const forbiddenPrivateQaContentMarkers = [
119119
"qa-lab/cli.js",
120120
"qa-lab/runtime-api.js",
121121
] as const;
122+
const forbiddenPrivatePluginSdkDeclarationMarkers = [
123+
"//#region src/agents/test-helpers/",
124+
"//#region src/plugin-sdk/test-helpers/",
125+
"//#region src/test-helpers/",
126+
"//#region src/test-utils/",
127+
] as const;
122128
const forbiddenPrivateQaContentScanPrefixes = ["dist/"] as const;
123129
const forbiddenPluginSdkRootAliasMinifiedExportPattern = /\bmod\.[A-Za-z_$]\b/u;
124130
const appcastPath = resolve("appcast.xml");
@@ -836,7 +842,10 @@ export function collectForbiddenPackContentPaths(
836842
} catch {
837843
return false;
838844
}
839-
return forbiddenPrivateQaContentMarkers.some((marker) => content.includes(marker));
845+
return (
846+
forbiddenPrivateQaContentMarkers.some((marker) => content.includes(marker)) ||
847+
forbiddenPrivatePluginSdkDeclarationMarkers.some((marker) => content.includes(marker))
848+
);
840849
})
841850
.toSorted((left, right) => left.localeCompare(right));
842851
}

test/release-check.test.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -556,6 +556,25 @@ describe("collectForbiddenPackPaths", () => {
556556
rmSync(tempRoot, { recursive: true, force: true });
557557
}
558558
});
559+
560+
it("blocks root plugin SDK declarations that still reference private test helpers", () => {
561+
const tempRoot = mkdtempSync(join(tmpdir(), "openclaw-release-private-sdk-"));
562+
563+
try {
564+
mkdirSync(join(tempRoot, "dist", "plugin-sdk"), { recursive: true });
565+
writeFileSync(
566+
join(tempRoot, "dist", "plugin-sdk", "testing.d.ts"),
567+
"//#region src/plugin-sdk/test-helpers/session.ts\n",
568+
"utf8",
569+
);
570+
571+
expect(collectForbiddenPackContentPaths(["dist/plugin-sdk/testing.d.ts"], tempRoot)).toEqual([
572+
"dist/plugin-sdk/testing.d.ts",
573+
]);
574+
} finally {
575+
rmSync(tempRoot, { recursive: true, force: true });
576+
}
577+
});
559578
});
560579

561580
describe("collectMissingPackPaths", () => {

0 commit comments

Comments
 (0)