chore(npm): rename package to unscoped fli-js#189
Merged
Conversation
The unscoped `fli` name is owned by another npm account, and the scoped
`@punitarani/fli` forces consumers to import the scoped specifier. Rename
to the available unscoped name `fli-js` so install and import are the same
clean bare name with no scope and no install alias:
npm i fli-js
import { SearchFlights } from "fli-js";
- fli-js/package.json: name @punitarani/fli -> fli-js
- publish-npm.yml: environment url -> npmjs.com/package/fli-js
- fli-js/README.md: install + import examples + module subpaths use fli-js
- CLAUDE.md / docs/guides/release*.md: refer to the package as fli-js
Publish name only; no source changes (internal imports are relative).
The already-published @punitarani/fli@0.0.3 is left as-is.
Contributor
punitarani
pushed a commit
that referenced
this pull request
May 24, 2026
Main's #189 renamed the npm package to the unscoped `fli-js`, but the TypeScript examples and docs still imported from `fli` and pinned `fli@^0.0.2` — which now resolves to an unrelated npm package. Point all imports, install commands, package links, and the example dependency at `fli-js` (^0.0.4). Also future-proof the README's TS snippet date. Typechecked the example scripts against the local fli-js source (tsc, 0 errors). https://claude.ai/code/session_01VPkFrjXBZkS8Cjzc82X5tp
punitarani
added a commit
that referenced
this pull request
May 24, 2026
* docs(examples): split examples by language and add TypeScript set Reorganize examples/ into examples/python/ and examples/typescript/ so the two libraries have parallel, comparable example sets. - Move the 11 existing Python scripts under examples/python/. - Add Python examples for previously-undocumented capabilities: multi_city_search.py and advanced_filters_search.py (alliances, airline exclusions, layover bounds, currency/locale). - Add a mirrored TypeScript example set under examples/typescript/ (one-way, round-trip, dates, multi-city, advanced filters, error handling) with a runnable package.json/tsconfig and README. - Rewrite the top-level examples README as a language index and add per-language READMEs. Drop the inaccurate "automatic dependency checking" claim the scripts never implemented. https://claude.ai/code/session_01VPkFrjXBZkS8Cjzc82X5tp * docs: restructure into Python + TypeScript sections Reorganize the documentation site so each library has its own section, and add first-class TypeScript docs (previously Python-only). - Move Python docs under docs/python/ (quickstart, examples, api/) and fix their internal links and example paths (examples/ -> examples/python/). - Add docs/typescript/ (quickstart + examples) covering install, one-way, round-trip, dates, multi-city, filters/alliances/locale, client config, and typed errors. - Rewrite docs/index.md as a dual-language landing page. - Update mkdocs nav for the Python/TypeScript split and drop the Contributing/Releasing section. Exclude the internal release runbooks from the built site via exclude_docs while keeping the files in-repo. - Update the README example paths, add a TypeScript section, and drop the inaccurate "automatic dependency checking" claims. https://claude.ai/code/session_01VPkFrjXBZkS8Cjzc82X5tp * docs: remove internal maintainer release runbooks Delete docs/guides/release.md and docs/guides/release-npm.md. These are maintainer-internal release runbooks that don't belong on the public docs site; the same process is summarized in CLAUDE.md and is fully defined by the release workflows themselves. Replaces the earlier exclude_docs approach with outright removal and fixes the now-dangling references in CLAUDE.md, AGENTS.md, and publish.yml. https://claude.ai/code/session_01VPkFrjXBZkS8Cjzc82X5tp * docs: guard nullable price and use future-proof dates in TS examples Address Greptile review on PR #186: - FlightResult.price is `number | null`; print `?? "N/A"` instead of rendering `$null` for premium-cabin results Google doesn't price. - Replace hardcoded travel dates (which fail FlightSegment's "Travel date cannot be in the past" check once they pass) with dynamic `inDays(N)` dates, matching the runnable example scripts. Applied across all affected TS example scripts and the TS docs snippets, not just the two flagged lines, since they share the same patterns. https://claude.ai/code/session_01VPkFrjXBZkS8Cjzc82X5tp * docs: update TypeScript references from fli to fli-js Main's #189 renamed the npm package to the unscoped `fli-js`, but the TypeScript examples and docs still imported from `fli` and pinned `fli@^0.0.2` — which now resolves to an unrelated npm package. Point all imports, install commands, package links, and the example dependency at `fli-js` (^0.0.4). Also future-proof the README's TS snippet date. Typechecked the example scripts against the local fli-js source (tsc, 0 errors). https://claude.ai/code/session_01VPkFrjXBZkS8Cjzc82X5tp --------- Co-authored-by: Claude <noreply@anthropic.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
Rename the npm package from the scoped
@punitarani/flito the available unscoped namefli-js, so install and import are the same clean bare name — no scope, no install alias:Why
The unscoped
fliname is owned by another npm account (so we can't publish it), and@punitarani/fliforces consumers to import the scoped specifier (from "@punitarani/fli"). The import specifier must equal the published package name, so the only way to get a cleanimport … from "<name>"with a plain install is to name the package that.fli-jsis free, matches the directory, and reads as "fli for JS".Changes (publish name + docs only)
fli-js/package.json:name@punitarani/fli→fli-js.github/workflows/publish-npm.yml: environmenturl→https://www.npmjs.com/package/fli-jsfli-js/README.md: install command, import examples, and module subpath labels (fli-js/modelsetc.) usefli-jsCLAUDE.md,docs/guides/release.md,docs/guides/release-npm.md: refer to the package asfli-jsNo source changes (internal imports are relative); 261 tests + typecheck + lint pass locally.
--access public/publishConfig.accessremain valid for an unscoped public package, and provenance is unchanged.Notes
versionis left at0.0.4; the nextrelease-npmbumps to0.0.5and publishesfli-js@0.0.5. (If you'd prefer the firstfli-jsrelease to start at0.1.0/1.0.0, say so and I'll adjust.)@punitarani/fli@0.0.3stays on npm; you cannpm deprecateit to point users atfli-jsif you like.https://claude.ai/code/session_01R2vZihmSWV2wvRawjF4Gjo
Generated by Claude Code
Greptile Summary
Renames the npm package from the scoped
@punitarani/flito the unscopedfli-js, enabling a cleannpm i fli-js/import … from "fli-js"experience without an install alias. All changes are publish-metadata and documentation only — no source files or internal relative imports are touched.fli-js/package.json:namefield is the sole functional change;exports,publishConfig, engines, and dependencies are unchanged and remain valid for an unscoped public package.CLAUDE.md,release.md,release-npm.md,README.md) are updated consistently tofli-js; the README also incidentally fixes a pre-existing inconsistency where module subpaths were listed asfli/modelsrather than the correct scoped form.Confidence Score: 5/5
Safe to merge — the change is a publish-metadata rename with no source, logic, or workflow behavior modifications.
Every changed line is either the package
namefield, the npm environment URL, or a documentation string. Internal imports are all relative and unaffected. The publish workflow's tarball discovery uses a*.tgzglob that works correctly with the new filenamefli-js-X.Y.Z.tgz. No test, build, or auth logic is modified.No files require special attention.
Important Files Changed
namefield renamed from@punitarani/flitofli-js; all other fields (exports, publishConfig, engines, dependencies) are unchanged and remain valid for an unscoped public package.fli-jsnpm page; publish logic and tarball discovery are unaffected by the rename.@punitarani/flitofli-js; also fixes a pre-existing inconsistency where subpaths were listed asfli/modelsinstead of the correct scoped form.flitofli-js.flitofli-js.flitofli-js.Sequence Diagram
sequenceDiagram participant Dev as Developer participant GH as GitHub Actions participant npm as npmjs.com Dev->>GH: Trigger release-npm workflow GH->>GH: Run tests, lint, typecheck (fli-js-tests job) GH->>GH: Build dist/ (release-build job) GH->>GH: npm pack → fli-js-X.Y.Z.tgz GH->>GH: Upload artifact (npm-tarball) GH->>npm: npm publish fli-js-X.Y.Z.tgz --provenance --access public npm-->>GH: Published: https://www.npmjs.com/package/fli-js GH-->>Dev: Environment URL updated to fli-js pageReviews (1): Last reviewed commit: "chore(npm): rename package to unscoped f..." | Re-trigger Greptile