diff --git a/package.json b/package.json index f49e59e2e971..38e2d9573e67 100644 --- a/package.json +++ b/package.json @@ -408,6 +408,8 @@ "custodian-skills/", "scripts/check-install-dependency-ownership.mjs", "scripts/freebsd-service-inspect.mjs", + "scripts/generate-kysely-types.mts", + "scripts/lib/direct-run.mjs", "scripts/lib/freebsd-service-discovery.d.mts", "scripts/lib/freebsd-service-discovery.mjs", "scripts/lib/fs-safe-prebuild.mjs", diff --git a/test/scripts/eager-import-closure.test.ts b/test/scripts/eager-import-closure.test.ts index 2975ad7519b5..7887cf285e08 100644 --- a/test/scripts/eager-import-closure.test.ts +++ b/test/scripts/eager-import-closure.test.ts @@ -26,6 +26,20 @@ const inventoryCheck = const wrapperFailure = (output: string) => `${output}\nCheck the inventory first: ${inventoryCheck}`; +it("keeps packaged scripts closed over runtime imports", () => { + const files: string[] = JSON.parse(readFileSync("package.json", "utf8")).files; + const scripts = files.filter( + (file) => file.startsWith("scripts/") && !/\.d\.[cm]?ts$/.test(file), + ); + const closure = collectRuntimeImportClosure(process.cwd(), scripts, { + includeDynamicImports: true, + }); + expect( + closure.filter((file) => !files.includes(file)), + "Package lifecycle scripts must ship their guarded imports and transitive dependencies.", + ).toEqual([]); +}); + it("keeps the PR wrapper inventory closed over runtime imports", () => { const components = readFileSync(wrapperInventory, "utf8").trim().split("\n"); const stale = components.filter((file) => !existsSync(file)).toSorted();