Skip to content

fix(typescript): export ExchangeOptions from package root#1493

Merged
realfishsam merged 1 commit into
mainfrom
fix/issue-1463-export-exchange-options
Jul 4, 2026
Merged

fix(typescript): export ExchangeOptions from package root#1493
realfishsam merged 1 commit into
mainfrom
fix/issue-1463-export-exchange-options

Conversation

@realfishsam

Copy link
Copy Markdown
Contributor

Summary

  • Export ExchangeOptions from the TypeScript package root alongside the existing client option types.

Fixes #1463

Test Plan

  • git diff --check
  • node -e "const fs=require('fs'); const s=fs.readFileSync('sdks/typescript/index.ts','utf8'); if(!s.includes('export type { ExchangeOptions, SuiBetsOptions }')) process.exit(1); console.log('ExchangeOptions root export present')"

Note: this is a package-root type export only; no runtime code is changed.

@realfishsam

Copy link
Copy Markdown
Contributor Author

PR Review: PASS (NOT VERIFIED)

What This Does

Exports the TypeScript SDK ExchangeOptions type from the package root (pmxtjs) so consumers can write import type { ExchangeOptions } from "pmxtjs" instead of reaching into pmxt/client.js. This is a package-root type surface fix only; runtime behavior is unchanged.

Blast Radius

TypeScript package root export surface only: sdks/typescript/index.ts. The underlying ExchangeOptions interface already exists in sdks/typescript/pmxt/client.ts; no core exchange, OpenAPI schema, sidecar route, Python SDK, or generated SDK behavior changes.

Consumer Verification

Before (base branch):
Package root had no explicit type re-export for ExchangeOptions:

// sdks/typescript/index.ts on base
export type { SuiBetsOptions } from "./pmxt/client.js";

A package-root consumer import of ExchangeOptions would not be available from pmxtjs.

After (PR branch):
The root export now includes ExchangeOptions:

// sdks/typescript/index.ts:30 on PR head f18496e3
export type { ExchangeOptions, SuiBetsOptions } from "./pmxt/client.js";

I also verified the source type exists at sdks/typescript/pmxt/client.ts:231 (export interface ExchangeOptions). I could not complete a packaged tsc consumer harness because the TypeScript SDK build requires regenerated sdks/typescript/generated/ artifacts; local generation is blocked in this runner by missing java for @openapitools/openapi-generator-cli.

Test Results

  • Build: PASS for npm run build --workspace=pmxt-core
  • Unit tests: PASS for core Jest suite (46 passed, 1 skipped; 809 passed, 3 skipped)
  • Server starts: PASS during root verification script
  • E2E smoke: NOT VERIFIED — root npm test then failed on environment setup (/usr/bin/python3: No module named pytest), and TS SDK package build was blocked by missing generated artifacts / missing Java for regeneration.

Findings

No blocking findings.

PMXT Pipeline Check

  • Field propagation (3-layer): N/A — type export only, no response field/schema change.
  • OpenAPI sync: N/A — no core API signature/schema change.
  • Financial precision: N/A.
  • Type safety: OK — exposes an existing exported interface from client.ts at the package root.
  • Auth safety: N/A.

Semver Impact

patch -- restores/extends a missing public type export without changing runtime behavior.

Risk

The actual packaged consumer import remains not fully verified in this environment because generated TypeScript SDK artifacts are absent and regeneration requires Java. Static source inspection shows the intended root type export is present and points at an existing exported interface.

@realfishsam realfishsam merged commit fd8cb7c into main Jul 4, 2026
11 checks passed
@realfishsam realfishsam deleted the fix/issue-1463-export-exchange-options branch July 4, 2026 07:27
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.

SDK drift: ExchangeOptions is exported from the Python package root but has no export path from TypeScript's index.ts

1 participant