Skip to content

fix(params): retain @alpha tag on WireParamSpec to prevent stripped dts export - #1961

Merged
ajperel merged 1 commit into
masterfrom
shettyvarun268/restore-wireparamspec-alpha
Sep 11, 2026
Merged

ajperel merged 1 commit into
masterfrom
shettyvarun268/restore-wireparamspec-alpha

Conversation

@shettyvarun268

@shettyvarun268 shettyvarun268 commented Sep 11, 2026

Copy link
Copy Markdown
Contributor

Description

In PR #1960, WireParamSpec was tagged as @internal to indicate that it is an internal wire protocol schema rather than public user API. However, tsconfig.release.json has stripInternal: true, which completely removes declarations tagged @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 still imports WireParamSpec directly from ../params/types. Stripping WireParamSpec creates a broken dangling import in the published .d.ts bundle, causing downstream consumers (such as extension function kits or user projects without skipLibCheck: true) to fail compilation with:

node_modules/firebase-functions/lib/runtime/manifest.d.ts:2:22 - error TS2724: '"../params/types"' has no exported member named 'WireParamSpec'. Did you mean 'ParamSpec'?

This PR changes WireParamSpec in src/params/types.ts from @internal back to @alpha:

  • WireParamSpec remains unexported from src/params/index.ts, so it is still cleanly omitted from public documentation (docgen:v2) and public module autocompletion.
  • Marking it @alpha instead of @internal ensures tsc emits the type into lib/params/types.d.ts, resolving the broken import in manifest.d.ts.

Scenarios Tested

  • Package Build: Ran npm run build (0 errors; verified export type WireParamSpec is present in lib/params/types.d.ts).
  • Unit Tests: Ran npm test (all 996 tests passing).
  • Linter: Ran npm run lint:quiet (0 errors).
  • Docgen: Ran npm run docgen:v2 (verified WireParamSpec is absent from generated reference docs in docgen/v2/markdown/).
  • Downstream Verification: Built and packed tarball locally, installed it into @firebase-function-kits/storage-resize-images, and verified npm run build (tsc) compiles cleanly with 0 errors (and confirmed it reproduces the TS2724 error when reverted).

Release Notes

relnote: none

…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

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates the JSDoc annotation for the WireParamSpec type in src/params/types.ts, changing its visibility tag from @internal to @alpha. There are no review comments, and I have no feedback to provide.

@shettyvarun268 shettyvarun268 changed the title fix(params): retain @alpha tag on WireParamSpec to prevent stripped d… fix(params): retain @alpha tag on WireParamSpec to prevent stripped dts export Sep 11, 2026
@ajperel
ajperel merged commit 3dca676 into master Sep 11, 2026
29 checks passed
@ajperel
ajperel deleted the shettyvarun268/restore-wireparamspec-alpha branch September 11, 2026 15:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants