Skip to content

chore(npm): publish under scoped name @punitarani/fli - #185

Merged
punitarani merged 1 commit into
mainfrom
claude/rename-npm-scoped
May 24, 2026
Merged

chore(npm): publish under scoped name @punitarani/fli#185
punitarani merged 1 commit into
mainfrom
claude/rename-npm-scoped

Conversation

@punitarani

@punitarani punitarani commented May 24, 2026

Copy link
Copy Markdown
Owner

Summary

The unscoped names fli and flights are both already owned by unrelated accounts on npm, so publishing under either returns 403 Forbidden:

  • fli → owned by nwienert (a React build-system package), v0.2.6
  • flights → owned by kristjanmik, v0.3.1

Switch to the author's personal scope @punitarani/fli, which is available (npm view @punitarani/fli → 404) and needs no org — every npm user gets their own scope for free. publishConfig.access: "public" is already set, so the scoped package publishes publicly and installs with npm install @punitarani/fli.

Changes

  • fli-js/package.json: name fli@punitarani/fli
  • .github/workflows/publish-npm.yml: environment urlhttps://www.npmjs.com/package/@punitarani/fli
  • fli-js/README.md: install command + import examples use the scoped name

No code changes — internal imports are relative, so typecheck/lint/tests are unaffected (261 tests green locally).

After merge

Re-publish the existing 0.0.2 version — do not re-run release-npm (it would bump again). Use the Upload npm Package run's Re-run jobs, or workflow_dispatch publish-npm.yml with environment=npm.

Reminder on the remaining setup item: the NPM_TOKEN secret on the npm GitHub environment must be an Automation token (or a granular token with write access) — a classic "Publish" token will fail in CI if the account has 2FA on writes.

https://claude.ai/code/session_01R2vZihmSWV2wvRawjF4Gjo


Generated by Claude Code

Greptile Summary

Renames the npm package from the unscoped fli to @punitarani/fli to avoid 403 conflicts with unrelated packages that already own the fli and flights names on the registry. No code logic changes — only the package name, workflow environment URL, and README install/import examples are updated.

  • fli-js/package.json: name field updated to @punitarani/fli; existing publishConfig.access: "public" and publishConfig.provenance: true already satisfy the requirements for a public scoped package, and the workflow's --access public --provenance flags on npm publish are consistent with these.
  • .github/workflows/publish-npm.yml: Environment URL updated; tarball discovery uses a *.tgz glob so the rename from fli-0.0.2.tgz to punitarani-fli-0.0.2.tgz is handled automatically.
  • fli-js/README.md: All four install and import examples updated to the scoped name.

Confidence Score: 5/5

Safe to merge — purely a package rename with no logic changes and all three files updated consistently.

All changes are administrative: the package name, the workflow environment URL, and the README examples are updated in lockstep. The workflow's tarball discovery uses a wildcard glob so the scoped-name tarball (punitarani-fli-0.0.2.tgz) is found correctly. No code paths are affected.

No files require special attention.

Important Files Changed

Filename Overview
fli-js/package.json Package name renamed from fli to @punitarani/fli; publishConfig.access: "public" and publishConfig.provenance: true already present
.github/workflows/publish-npm.yml Environment URL updated to reflect scoped package name; tarball glob and publish command are unaffected and work correctly with the new scoped name
fli-js/README.md Install command and all four import examples updated from fli to @punitarani/fli consistently

Sequence Diagram

sequenceDiagram
    participant GH as GitHub Actions
    participant BUN as Bun (release-build)
    participant ART as Artifact Store
    participant NPM as npm registry

    GH->>BUN: bun run build
    BUN->>BUN: tsc → dist/
    GH->>BUN: npm pack
    Note over BUN: produces punitarani-fli-0.0.2.tgz
    BUN->>ART: upload-artifact (npm-tarball)

    GH->>ART: download-artifact (npm-tarball)
    ART-->>GH: dist-tarball/punitarani-fli-0.0.2.tgz
    GH->>NPM: npm publish ./dist-tarball/punitarani-fli-0.0.2.tgz --provenance --access public
    NPM-->>GH: "200 OK → @punitarani/fli@0.0.2"
Loading

Reviews (1): Last reviewed commit: "chore(npm): publish under scoped name @p..." | Re-trigger Greptile

The unscoped names `fli` and `flights` are already owned by unrelated
accounts on npm, so publishing under either returns 403. Switch to the
author's personal scope `@punitarani/fli`, which is available and
requires no org. `publishConfig.access: public` is already set, so the
scoped package publishes publicly (installable via
`npm install @punitarani/fli`).

- fli-js/package.json: name fli -> @punitarani/fli
- publish-npm.yml: environment url -> .../package/@punitarani/fli
- fli-js/README.md: install command + import examples use the scoped name
@github-actions

Copy link
Copy Markdown
Contributor

Test Results

    5 files  ±0     56 suites  ±0   48s ⏱️ -17s
  659 tests ±0    659 ✅ ±0  0 💤 ±0  0 ❌ ±0 
1 861 runs  ±0  1 861 ✅ ±0  0 💤 ±0  0 ❌ ±0 

Results for commit 5faa17a. ± Comparison against base commit 44717de.

@punitarani
punitarani merged commit f63cb05 into main May 24, 2026
13 checks passed
@punitarani
punitarani deleted the claude/rename-npm-scoped branch May 24, 2026 01:15
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.

2 participants