Skip to content

About

show infomation of all owned ships

Resources

Stars

4 stars

Watchers

13 watching

Forks

Repository files navigation

Ship Info & Navy Staff

Ship Info version Navy Staff version

Two poi plugins in one pnpm workspace:

  • Ship Info (poi-plugin-ship-info): the ship information table with filtering, columns, and CSV export.
  • Navy Staff (poi-plugin-navy-staff): the sortie/deck planner with its own state, saved file, history, synchronization, and translations.

Current maintainer: かがみ

Original Ship Info authored by Yunze

Workspace layout

This is a pnpm workspace for poi plugins:

  • packages/ship-info/ — the published poi-plugin-ship-info plugin: the ship information table (filtering, columns, CSV export).
  • packages/navy-staff/ — the published poi-plugin-navy-staff plugin: the sortie/deck planner, with its own state, saved file and translations.
  • packages/shared/ — private, source-only @poi-plugins/shared modules bundled into the plugins that use them; never published.
  • tests/, stories/, preview/, shims/, .storybook/ and the shared configs live at the repository root.

Navy Staff stores one JSON file per teitoku (member ID): each account's workspaces, history, and legacy archive live in its own file, with no per-workspace account binding. The released Ship Info plan is imported once, while no Navy Staff account file exists yet: the first created account consumes it, later runs do not re-import, and Ship Info keeps saving its own file with its legacy planner field untouched.

For the planning, history, synchronization, and sharing workflows, see the Navy Staff interface guide. Ship search supports kana, romaji, and approximate spellings. Shared references have area, list, and grid views; each can be saved as an image using the same read-only content as the decoded share text.

Installation in poi

Open Settings → Plugins in poi, find Ship Girls Info or Navy Staff in the plugin list and click Install. For manual installation, use Install directly from npm with the full package name poi-plugin-ship-info or poi-plugin-navy-staff, respectively.

Releases

The plugins release independently through pnpm's native versioning, not the Changesets CLI. Record a change intent with pnpm change, run the Prepare release workflow, merge the generated Release PR after validation, and let Publish release publish only the selected verified tarballs. Ordinary pull request merges never bump or publish. Prepare release also offers a per-selection beta channel built on pnpm's native lanes (code -> beta -> main or code -> main); betas publish under the npm beta dist-tag and never become latest. See docs/releases.md for the workflow, channel behavior, changelog rules, and external trusted-publishing setup.

Development

Use the Node.js version in .node-version and the pnpm version pinned in package.json.

npm install --global pnpm@11.20.0
pnpm install --frozen-lockfile
pnpm run check
pnpm test
pnpm run test:browser
pnpm run build
pnpm run build-storybook

Optional: pnpm run lint and pnpm run fmt use the Vite+ lint/format tools.

pnpm run build builds every plugin with vp pack (each plugin package owns its vite.config.ts). pnpm test runs the Vitest suite (vp test run) in tests/. The tests exercise the real reducers, selectors, CSV builder and file writer against small fixtures, mocking poi host modules and isolating persistence boundaries where needed. Separate filesystem tests exercise real reads and queued writes in temporary directories. Vitest is pinned to the version bundled by Vite+ (5.0.4) so tsc --noEmit can resolve its types.

The jsdom integration tests render the real table and planner menu with React, Redux, Jotai, and the UI libraries. They cover sorting, filters, column settings, clipboard CSV output, and planner search/selection. Host services and viewport geometry are supplied by test fixtures; these tests do not replace visual checks inside poi.

A second layer runs the Storybook stories as real Chromium tests via Playwright: see docs/browser-testing.md for the commands, the scenario parameters, the coverage matrix and the in-memory host boundaries.

Packaging

pnpm run pack            # packs both plugins into .cache/packages/*.tgz
pnpm run verify:package  # checks both packed artifacts

pnpm run pack runs each plugin's prepack build and writes the tarballs to .cache/packages/. pnpm run verify:package inspects both tarballs and checks their manifests (name/version against the source package), compiled entries, i18n JSON, bundled shared code (no runtime workspace or private-package references), host external conventions, and runs a controlled load/register/ lifecycle smoke against an isolated temp APPDATA. These checks verify the produced artifacts and their host boundaries; they are not a live poi installation.

About

show infomation of all owned ships

Resources

Stars

4 stars

Watchers

13 watching

Forks

Releases

Packages

Used by

Contributors

Languages