|
1 | | -import { mkdtemp, rm } from "node:fs/promises" |
| 1 | +import { mkdtemp, readdir, rm } from "node:fs/promises" |
2 | 2 | import { tmpdir } from "node:os" |
3 | 3 | import { join, resolve } from "node:path" |
4 | 4 | import { spawnSync } from "node:child_process" |
|
18 | 18 | const listing = spawnSync("tar", ["-tzf", archive], { encoding: "utf8" }) |
19 | 19 | if (listing.status !== 0) throw new Error(listing.stderr) |
20 | 20 | const files = listing.stdout.trim().split("\n") |
| 21 | + const sourceFiles = (await readdir(join(root, "src"), { recursive: true })) |
| 22 | + .filter((file) => file.endsWith(".ts")) |
| 23 | + .map((file) => `package/src/${file.replaceAll("\\", "/")}`) |
21 | 24 | const required = [ |
| 25 | + ...sourceFiles, |
22 | 26 | "package/dist/index.js", |
23 | 27 | "package/dist/index.d.ts", |
24 | 28 | "package/dist/unstable/reactivity/index.js", |
|
47 | 51 | if (legacyBuildFiles.length > 0) { |
48 | 52 | throw new Error(`tarball contains legacy entrypoint artifacts:\n${legacyBuildFiles.join("\n")}`) |
49 | 53 | } |
50 | | - const forbidden = files.filter((file) => /^package\/(?:src|test|typetest|scripts|\.github|\.changeset)\//.test(file)) |
| 54 | + const forbidden = files.filter((file) => /^package\/(?:test|typetest|scripts|\.github|\.changeset)\//.test(file)) |
51 | 55 | if (forbidden.length > 0) throw new Error(`tarball contains repository files:\n${forbidden.join("\n")}`) |
52 | 56 | console.log(`pack verification passed (${files.length} files)`) |
53 | 57 | } finally { |
|
0 commit comments