From cd72a96b56482242627c3f012548458d3abfc2f5 Mon Sep 17 00:00:00 2001 From: SSNTPL Date: Sun, 3 May 2026 14:47:10 +0530 Subject: [PATCH] Rename back to @ssntpl/otper-cli (unscoped name blocked by similarity) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit npm rejected unscoped 'otper-cli' as too similar to 'open-cli' (typo- squatting prevention). Scoped packages bypass that check, so we revert to @ssntpl/otper-cli — also matches the GitHub org and is consistent with how other ssntpl packages are namespaced. Restores --access public on the publish workflow (required for first publish of a scoped package on the free tier). Published: https://www.npmjs.com/package/@ssntpl/otper-cli/v/0.1.0 --- .github/workflows/publish.yml | 2 +- README.md | 16 ++++++++-------- package.json | 2 +- src/index.ts | 4 ++-- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 0ff35ce..b7589e6 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -20,4 +20,4 @@ jobs: cache: npm - run: npm ci - run: npm run build - - run: npm publish --provenance + - run: npm publish --access public --provenance diff --git a/README.md b/README.md index db80fe0..52b2ce9 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,12 @@ # otper-cli -[![npm version](https://img.shields.io/npm/v/otper-cli.svg)](https://www.npmjs.com/package/otper-cli) -[![License](https://img.shields.io/npm/l/otper-cli.svg)](LICENSE) +[![npm version](https://img.shields.io/npm/v/@ssntpl/otper-cli.svg)](https://www.npmjs.com/package/@ssntpl/otper-cli) +[![License](https://img.shields.io/npm/l/@ssntpl/otper-cli.svg)](LICENSE) Command-line interface for [Otper](https://otper.com) — manage boards, lists, cards, labels, and comments from your terminal. Talks directly to the Otper GraphQL API and is also embeddable as a Node library. ```sh -npm install -g otper-cli +npm install -g @ssntpl/otper-cli otper auth:login otper board:search "taillog" otper card:list --list 119 @@ -29,13 +29,13 @@ otper card:list --list 119 Requires **Node.js 18+**. ```sh -npm install -g otper-cli +npm install -g @ssntpl/otper-cli ``` To use it programmatically in another Node project (no global install needed): ```sh -npm install otper-cli +npm install @ssntpl/otper-cli ``` ## Authentication @@ -203,10 +203,10 @@ otper card:move 1234 --to-list 138 --format silent && echo moved ## Library usage -`otper-cli` doubles as a typed library. Useful for openclaw plugins and other Node integrations: +`@ssntpl/otper-cli` doubles as a typed library. Useful for openclaw plugins and other Node integrations: ```ts -import { OtperClient, boards, cards, lists } from 'otper-cli'; +import { OtperClient, boards, cards, lists } from '@ssntpl/otper-cli'; const client = new OtperClient({ baseUrl: 'https://otper.com', @@ -226,7 +226,7 @@ await cards.moveCard(client, '36905', '120'); // → Done You can also load the user's saved config: ```ts -import { OtperClient, resolveConfig } from 'otper-cli'; +import { OtperClient, resolveConfig } from '@ssntpl/otper-cli'; const cfg = resolveConfig(); // throws if not authenticated const client = OtperClient.fromConfig(cfg); diff --git a/package.json b/package.json index 9ccf5bc..8b418c0 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "otper-cli", + "name": "@ssntpl/otper-cli", "version": "0.1.0", "description": "Command-line interface for Otper boards (https://otper.com).", "author": "SSNTPL ", diff --git a/src/index.ts b/src/index.ts index 9a9c7bf..c3d9c7c 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,9 +1,9 @@ /** - * Library entry point for embedding otper-cli inside other Node apps + * Library entry point for embedding @ssntpl/otper-cli inside other Node apps * (for example, openclaw plugins). * * Example: - * import { OtperClient, boards } from 'otper-cli'; + * import { OtperClient, boards } from '@ssntpl/otper-cli'; * const client = new OtperClient({ baseUrl: 'https://otper.com', token: '...' }); * const board = await boards.getBoard(client, '24'); */