@orvium/orvium-tools
Version:
Set of tools to interact with Orvium API
264 lines (186 loc) • 6.82 kB
Markdown
**Orvium Tools** is a command-line and programmatic toolkit for interacting with the Orvium API. It simplifies common workflows such as:
- Importing deposits and manuscripts into Orvium communities.
- Exporting deposits from Orvium as a zip file (metadata + manuscript files).
- Retrieving user contribution summaries by ORCID.
- Using all of the above either via CLI or inside your own Node.js applications.
## Features
- **Import Deposits**: Import a deposit with metadata and manuscript files into a target Orvium community.
- **Export Deposits**: Export a deposit as a zip file containing `meta.json` and manuscript files.
- **User Contribution Summary**: Retrieve a summary of a user’s contributions (deposits, reviews, communities) using their ORCID.
- **Programmatic Usage**: Import, export, and retrieve summaries directly inside your Node.js workflows.
## Table of Contents
- [Installation](#installation)
- [Usage](#usage)
- [CLI](#cli)
- [Programmatic Usage](#programmatic-usage)
- [Environment Variables](#environment-variables)
- [Development](#development)
- [License](#license)
## Installation
You can install the **Orvium Tools** package globally or use it directly via `npx`. You can also install it locally in your project for programmatic usage.
### Option 1: Run via `npx` (No Installation Required)
You can run **Orvium Tools** directly without installing it globally using `npx`:
#### Importing
```bash
npx @orvium/orvium-tools-import <manuscriptPath> <community>
```
- **directory**: The path to the folder that contains the deposit metadata and manuscript files (required).
- **community**: The name of the Orvium community where the deposit should be uploaded (required).
#### Example
```bash
npx orvium-tools-import ./manuscripts/manuscript_1 Orvium
```
#### Exporting
```bash
npx @orvium/orvium-tools-export <depositId> <directory>
```
- **depositId**: Orvium deposit unique identifier (required).
- **directory**: The path to the folder to download the zip file (required).
#### Example
```bash
npx orvium-tools-export 34274234697423cdsf /tmp
```
#### User Contribution Summary
```bash
npx orvium-tools-user-summary <orcid>
```
- **orcid**: ORCID iD of the user (e.g., 0000-0002-1825-0097).
#### Example
```bash
npx orvium-tools-user-summary 0000-0002-1825-0097
```
### Option 2: Install Globally
To install Orvium Tools globally on your machine:
```bash
npm install -g @orvium/orvium-tools
```
### Option 3: Install Locally for Programmatic Usage
To use Orvium Tools programmatically in your Node.js project, install it as a dependency:
```bash
npm install @orvium/orvium-tools --save
```
## Usage
### CLI
Orvium Tools provides a simple CLI for managing deposits in Orvium.
```bash
# Import a deposit
orvium-tools-import ./manuscripts/my_deposit "Ethics Community"
# Export a deposit
orvium-tools-export 64a09f6ce3d5ff0813586345 ./downloads
# Get user contribution summary
orvium-tools-user-summary 0000-0002-1825-0097
```
Please make sure your PATH include the global NPM bin directory.
### Programmatic Usage
You can also use Orvium Tools within your own Node.js applications.
#### Importing:
```typescript
import { importDeposit } from "@orvium/orvium-tools";
const directoryPath = "/manuscript/manuscript_1";
const community = "Orvium";
importDeposit(directoryPath, community)
.then(() => console.log("Deposit imported successfully"))
.catch((err) => console.error("Error during deposit import:", err));
```
```typescript
import { exportDeposit } from "@orvium/orvium-tools";
const depositId = "63214723845236xc631q3";
const directoryPath = "/tmp";
exportDeposit(depositId, directoryPath)
.then(() => console.log("Deposit exported successfully"))
.catch((err) => console.error("Error during deposit export:", err));
```
```typescript
import { getUserSummary } from "@orvium/orvium-tools";
const orcid = "0000-0002-1825-0097";
const summary = await getUserSummary(orcid);
console.log("User contribution summary:", summary);
```
```json
{
"nickname": "jane-doe",
"orcid": "https://orcid.org/0000-0002-1825-0097",
"isOpensciVerified": true,
"depositsSummaryPopulated": [
{
"title": "Open Access in Practice",
"abstract": "This paper explores the implementation of open access...",
"publicationType": "Research article",
"accessRight": "open",
"submissionDate": "2025-01-15",
"status": "published",
"reviewType": "open",
"authors": [
{ "firstName": "Jane", "lastName": "Doe" },
{ "firstName": "John", "lastName": "Smith" }
],
"keywords": ["Open Science", "Publishing"],
"doi": "https://doi.org/10.1234/example",
"url": "https://platform.orvium.io/deposits/64a09f6ce3d5ff0813586345/view"
}
],
"peerReviewsSummaryPopulated": [
{
"_id": "65b7a0a8ef2cde1d3f98a77f",
"creator": "65b79fa3ef2cde1d3f98a12c",
"status": "published",
"kind": "peer review",
"decision": "accepted",
"showIdentityToAuthor": true,
"showIdentityToEveryone": false
}
],
"communitiesSummaryPopulated": [
{
"name": "Ethics, Privacy, and Legal Issues",
"description": "A community focused on ethical and legal aspects of science.",
"country": "Spain",
"type": "community",
"subscription": "free",
"membershipType": "open",
"logoURL": "https://assets.example.com/community/logo.png"
}
]
}
```
To connect to the Orvium platform, Orvium Tools requires some environment variables to be set. These variables are typically loaded from a .env file located in your project root.
```makefile
API_KEY=your-api-key-here
API_KEY_USER=your-api-key-user-here
API_URL=https://your-orvium-api-url-here
```
Make sure to replace the placeholders with actual values for your Orvium environment.
If you want to contribute to the development of Orvium Tools or add your own features, follow these steps to get started:
```bash
git clone https://github.com/orvium/orvium-tools.git
cd orvium-tools
```
```bash
npm install
```
```bash
npm run build
```
You can test the tool locally using npm link to create a symlink to your local package:
```bash
npm link
orvium-tools-import ./manuscripts/manuscript_1 Orvium
```
To run the TypeScript files directly (without building):
```bash
npx ts-node src/import-deposit-cli.ts ./manuscripts/manuscript_1 Orvium
```
## License
This project is licensed under the MIT License. See the LICENSE file for details.