Dependency hygiene: replace colors with picocolors, drop async [#1530] - #1531
Merged
Conversation
Centralize terminal coloring behind src/utils/colors so the library can be swapped in one place. Remove the unmaintained colors package and the unused async/@types/async dependencies (async was only used by the mocha test runner task, now promise-based). Closes #1530 Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Implements #1530 (v1 Track 1 / non-breaking 0.x dependency & supply-chain hygiene).
colorswith maintained, dependency-freepicocolorspackages/oc/src/utils/colors.tsso future swaps touch one moduleasync+@types/async(only used by the mocha test runner task; rewritten with native promises)ESM-only dependency audit (current CJS build)
Analyzed against installed package metadata + CJS
requirebehavior. Documentation only — no forced upgrades in this PR.typeopenrequire('open')returns module namespace; default used as callable in some paths / Promise API used asawait open(href))import; re-check default-export interop after dual-build removalserialize-errorserializeErrornamed export available onrequire)import { serializeError }is the natural form at v1picocolors@rdevis/turbo-streamexportsimport+require)@kitajs/htmlundicichokidardotenvbuiltin-modulessource-mapHard blockers for v1 ESM: none found among the deps above. The main v1 work remains converting our packages to ESM-only +
exportsmaps, not replacing these deps.openandserialize-erroralready ship ESM-only and interop today; they are the ones to re-smoke after the package-format switch.Residual
async: removed as a direct dependency ofoc. It remains transitive via template compilers (oc-template-*-compiler→oc-statics-compiler/oc-generic-template-compiler). Out of scope here (separate dep hygiene).Test plan
npm run build(full monorepo turbo build) — passnpm run test-silent --workspace=oc— 943 passingcolors/ directasyncimports inpackages/ocGenerated with Devin