Initial Commit

This commit is contained in:
2026-05-27 23:47:53 +01:00
parent fbc70f96e6
commit 9b28db724f
18103 changed files with 1600554 additions and 0 deletions

View File

@@ -0,0 +1,88 @@
#!/usr/bin/env bash
# Convert all `export * from` violations in one package's feature barrels,
# then run biome --write to canonicalise import order.
#
# Usage: bash scripts/convert-package-barrels.sh <pkg-rel-path>
# e.g. bash scripts/convert-package-barrels.sh packages/crypto/crypto-hash
#
# Skips:
# - src/index.ts (package root, out of scope per change spec)
# - *.select/index.ts (generated forwarders, allowed by §6a)
set -euo pipefail
PKG_DIR="${1:?usage: $0 <pkg-rel-path>}"
ROOT="$(cd "$(dirname "$0")/.." && pwd)"
ABS_PKG="${ROOT}/${PKG_DIR}"
if [ ! -d "${ABS_PKG}/src" ]; then
echo "no src/ in ${ABS_PKG}" >&2
exit 1
fi
# Pass 1: convert all leaf barrels.
mapfile -t FILES < <(
grep -rln "^export \* from" "${ABS_PKG}/src" --include="*.ts" 2>/dev/null \
| grep -v "/src/index\.ts$" \
| grep -v "\.select/" \
| sort -u
)
if [ "${#FILES[@]}" -eq 0 ]; then
echo "no violations in ${PKG_DIR} — running biome anyway"
cd "${ABS_PKG}"
for i in 1 2 3; do
bunx biome check --write --max-diagnostics 1000 src/ 2>&1 | tail -1
done
exit 0
fi
echo "Pass 1: ${#FILES[@]} barrels in ${PKG_DIR}"
bun "${ROOT}/scripts/convert-barrels.ts" "${FILES[@]}" || true
# Pass 2: handle intermediate barrels whose targets have just become explicit.
mapfile -t REMAINING < <(
grep -rln "^export \* from" "${ABS_PKG}/src" --include="*.ts" 2>/dev/null \
| grep -v "/src/index\.ts$" \
| grep -v "\.select/" \
| sort -u
)
if [ "${#REMAINING[@]}" -gt 0 ]; then
echo "Pass 2: ${#REMAINING[@]} intermediate barrels"
bun "${ROOT}/scripts/convert-barrels.ts" "${REMAINING[@]}" || true
fi
# Pass 3: third pass for deeply-nested barrel chains.
mapfile -t LEFT < <(
grep -rln "^export \* from" "${ABS_PKG}/src" --include="*.ts" 2>/dev/null \
| grep -v "/src/index\.ts$" \
| grep -v "\.select/" \
| sort -u
)
if [ "${#LEFT[@]}" -gt 0 ]; then
echo "Pass 3: ${#LEFT[@]} barrels remain"
bun "${ROOT}/scripts/convert-barrels.ts" "${LEFT[@]}" || true
fi
# Final check.
FINAL=$(grep -rln "^export \* from" "${ABS_PKG}/src" --include="*.ts" 2>/dev/null \
| grep -v "/src/index\.ts$" \
| grep -v "\.select/" \
| wc -l)
if [ "${FINAL}" -gt 0 ]; then
echo "WARNING: ${FINAL} barrels still have violations after 3 passes:"
grep -rln "^export \* from" "${ABS_PKG}/src" --include="*.ts" 2>/dev/null \
| grep -v "/src/index\.ts$" \
| grep -v "\.select/"
fi
# Biome auto-fix — run unconditionally for 3 passes to handle layered
# auto-fixes (e.g. organize-imports surfacing format issues that surface
# further organize-imports).
cd "${ABS_PKG}"
for i in 1 2 3; do
bunx biome check --write --max-diagnostics 1000 src/ 2>&1 | tail -1
done