@hira-core/plugins
v1.0.3
Published
Official Hira plugin registry
Downloads
422
Maintainers
Readme
@hira-core/plugins
Official Hira plugin registry for @hira-core/cli.
NPM package:
https://www.npmjs.com/package/@hira-core/pluginsThis package contains the plugin registry consumed by:
hira add <plugin-name>Developers normally do not install or import this package directly. Install the Hira CLI instead:
npm install -g @hira-core/cliThen add plugins inside a Hira flow project:
hira add wallet-utils
hira add extension-utilsWhat this package publishes
The npm package publishes only:
dist/
└── registry.json
└── plugins/
├── wallet-utils/
└── extension-utils/
README.mdSource files under plugins/*/src are built into the distributable dist/plugins/*/files shape before publishing.
Available plugins
wallet-utils
Shared wallet automation helpers for Hira flows, including OKX wallet support.
Add:
hira add wallet-utilsGenerated file:
src/plugins/wallet-utils/index.tsUsage from the default flow layout src/flows/main/v1.0.0/logic.ts:
import { WalletUtils, OKXWalletAdapter } from "../../../../plugins/wallet-utils";
const wallet = new WalletUtils(utils, logger, new OKXWalletAdapter());
await wallet.unlock(globalInput.walletPassword);
await wallet.approve();extension-utils
Chrome extension discovery helpers for Hira flows.
Add:
hira add extension-utilsGenerated file:
src/plugins/extension-utils/index.tsUsage from the default flow layout src/flows/main/v1.0.0/logic.ts:
import { ExtensionUtils } from "../../../../plugins/extension-utils";
const extUtils = new ExtensionUtils(utils);
const okxId = await extUtils.getExtensionId("OKX");CLI usage
List available plugins:
hira add --listAdd a plugin:
hira add wallet-utilsOverwrite an existing generated plugin:
hira add wallet-utils --forcePreview files without writing:
hira add wallet-utils --dry-runLocal development registry override:
hira add wallet-utils --registry packages/hira-plugins/dist
--registry <path>is only for local development/debugging before publishing this package. Normal developers should usehira add wallet-utilswithout--registry.
Maintainer workflow
From the monorepo root:
pnpm run build:pluginsThis runs:
pnpm --filter @hira-core/plugins buildand generates:
packages/hira-plugins/dist/registry.json
packages/hira-plugins/dist/plugins/*Publish order
Publish this plugin registry first:
cd packages/hira-plugins
pnpm publish --access public --no-git-checksThen publish the CLI:
cd ../hira-compiler
pnpm publish --access public --no-git-checksThe CLI depends on this package, so @hira-core/plugins must be available on npm before publishing @hira-core/cli.
Add a new plugin
Create a new plugin folder:
packages/hira-plugins/plugins/<plugin-name>/
├── plugin.json
├── README.md
└── src/
└── index.tsExample plugin.json:
{
"name": "wallet-utils",
"version": "1.0.0",
"description": "Shared wallet automation helpers for Hira flows.",
"category": "wallet",
"targetDir": "src/plugins/wallet-utils",
"keywords": ["wallet", "okx"],
"hira": {
"sdkVersion": "1.0.19"
},
"usage": {
"import": "import { WalletUtils } from \"../../../../plugins/wallet-utils\";",
"example": "const wallet = new WalletUtils(utils, logger, adapter);"
}
}Build and test locally:
pnpm run build:plugins
node packages/hira-compiler/dist/index.js add --list --registry packages/hira-plugins/dist
node packages/hira-compiler/dist/index.js add <plugin-name> --registry packages/hira-plugins/dist --dry-runRelated
@hira-core/cli— CLI that consumes this registry viahira add@hira-core/sdk— SDK used by generated plugin code
License
ISC
