fix(params): retain @alpha tag on WireParamSpec to prevent stripped dts export - #1961
Merged
Merged
Conversation
…ts export ### Description In PR #1960, WireParamSpec was tagged as @internal to indicate that it is internal wire protocol rather than user-facing API. However, tsconfig.release.json has stripInternal: true, which completely removes declarations marked @internal from the emitted lib/params/types.d.ts. Because src/runtime/manifest.ts is not marked @internal, its emitted declaration file lib/runtime/manifest.d.ts imports WireParamSpec directly from ../params/types. Stripping WireParamSpec causes downstream TypeScript consumers (like extension function kits or user projects without skipLibCheck: true) to fail during compilation with: error TS2724: '"../params/types"' has no exported member named 'WireParamSpec'. This PR changes WireParamSpec from @internal back to @Alpha. WireParamSpec remains unexported from src/params/index.ts, so it is still cleanly omitted from public documentation and autocompletion while remaining available in types.d.ts for internal manifest references. ### Scenarios Tested - Built project: npm run build (0 errors) - Ran unit tests: npm test (all 996 tests passing) - Ran linter: npm run lint:quiet (0 errors) - Ran docgen: npm run docgen:v2 (verified WireParamSpec is absent from docs) - Verified downstream: Installed local tarball in storage-resize-images and verified tsc succeeds with 0 errors (and fails without this fix). relnotes: none
ajperel
approved these changes
Sep 11, 2026
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.
Description
In PR #1960,
WireParamSpecwas tagged as@internalto indicate that it is an internal wire protocol schema rather than public user API. However,tsconfig.release.jsonhasstripInternal: true, which completely removes declarations tagged@internalfrom the emittedlib/params/types.d.ts.Because
src/runtime/manifest.tsis not marked@internal, its emitted declaration filelib/runtime/manifest.d.tsstill importsWireParamSpecdirectly from../params/types. StrippingWireParamSpeccreates a broken dangling import in the published.d.tsbundle, causing downstream consumers (such as extension function kits or user projects withoutskipLibCheck: true) to fail compilation with:This PR changes
WireParamSpecinsrc/params/types.tsfrom@internalback to@alpha:WireParamSpecremains unexported fromsrc/params/index.ts, so it is still cleanly omitted from public documentation (docgen:v2) and public module autocompletion.@alphainstead of@internalensurestscemits the type intolib/params/types.d.ts, resolving the broken import inmanifest.d.ts.Scenarios Tested
npm run build(0 errors; verifiedexport type WireParamSpecis present inlib/params/types.d.ts).npm test(all 996 tests passing).npm run lint:quiet(0 errors).npm run docgen:v2(verifiedWireParamSpecis absent from generated reference docs indocgen/v2/markdown/).@firebase-function-kits/storage-resize-images, and verifiednpm run build(tsc) compiles cleanly with 0 errors (and confirmed it reproduces the TS2724 error when reverted).Release Notes
relnote: none