Removes every workaround the symlink approach needed, and reverts tsconfig to
upstream's exactly.
The three forked packages — @polkadot/{networks,util-crypto,keyring} — are now
pinned to Gitea tarball URLs in resolutions. @polkadot/util is not, because this
fork does not modify it; it comes from npm like the rest of the scope.
Tarball URLs rather than routing the @polkadot scope to Gitea, because the scope
is mostly *not* forked: routing it would send yarn looking for dozens of packages
that are not there. @quantus is routed as a whole scope in .yarnrc.yml, which is
safe because we own every name in it.
Four things go away, all of which existed for one reason — node resolves a portal
or link symlink to its realpath, after which @polkadot/util-crypto resolved inside
*common's* tree, where it is a workspace source directory with no exports map:
- resolutions pointing four packages at ../common/packages/*/build
- tsconfig.base.json `*.d.ts` path mappings, needed because NodeNext will not
infer an extension for a bare path and looked for a `types` directory
- tsconfig.json overriding those with a runtime `.js` view, because
@polkadot/dev-ts reads that file and tried to import a declaration file as a
module
- --preserve-symlinks in the test scripts
Also drops fflate and @quantus/crypto from ui-keyring's devDependencies; they were
there only because `link:` does not install its target's dependencies.
`yarn lint` now reports 0 errors, down from 25 on pristine upstream. Those were
no-unsafe-assignment and no-unsafe-argument on values that were `any` purely
because the types did not resolve.
Refs quantus/extension#2, quantus/ui#1
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012uDUodEcRbBwNRi3UCmw8f
214 B
214 B