@interaapps/accounts
TypeScript icon, indicating that this package has built-in type declarations

1.0.1 • Public • Published

InteraApps Accounts SDK

A TypeScript/JavaScript SDK for interacting with the InteraApps Accounts API. This SDK provides all the necessary tools for user authentication, user management, OAuth2 integrations, and project/app management through a simple and consistent API.


🌐 Features

  • 🔐 Login, registration, password reset
  • 👥 User and contact management
  • 📁 Project and app management
  • 🔄 OAuth2 authentication flows
  • 📦 Fully typed request and response models
  • 🧪 Built-in exception handling

📦 Installation

npm install @interaapps/accounts

🚀 Getting Started

Initialize the client:

import { AccountsClient } from '@interaapps/accounts-client';

const client = new AccountsClient('YOUR_API_TOKEN');

// Or without token (you can set it later)
const client = new AccountsClient();
client.setApiToken('YOUR_API_TOKEN');

🔐 Authentication

import { LoginRequest } from '@interaapps/accounts-client';

const authKey = await client.login({
  name: 'your-username',
  password: 'your-password',
});

👤 User Management

const user = await client.getCurrentUser();

await client.editUser({
  full_name: 'New Name',
  favorite_color: '#123456'
});

🧑‍💻 Projects & Apps

const project = await client.createProject({ name: 'My Project' });

await client.createProjectApp(project.id, {
  name: 'My App',
  type: 'OAUTH2',
  url: 'https://myapp.com',
});

🔄 OAuth2 Integration

Create a URL for OAuth2 login:

import { InteraAppsOAuth2Client } from '@interaapps/accounts-client';

const oauthClient = new InteraAppsOAuth2Client(
  'your-client-id',
  'your-client-secret'
);

const url = oauthClient.urlBuilder()
  .setRedirectUri('https://yourapp.com/callback')
  .setScopes(['user'])
  .build();

// Redirect user to this URL

Token Exchange

const token = await oauthClient.exchangeToken('oauth-code');

Get Key for App

oauthClient.urlBuilder()
  .setRedirectUri('https://yourapp.com/callback')
  .setScopes(['profile', 'pastefy|pastes'])
  .build();
// ...

const userClient = await oauthClient.exchangeTokenAndGetClient('oauth-code');
const pastefyToken = userClient.getKeyFor('pastefy')
const pastefyClient = new PastefyClient(pastefyToken)

🛠 Exceptions

All exceptions inherit from InteraAppsAccountsException and include:

  • AlreadyLinked
  • AccountNotGrantedApp
  • Authentication
  • AuthenticationInvalid
  • ChallengeFailed
  • HTTP
  • InternalError
  • InvalidRequest
  • NamespacePermissionsDenied
  • NotFound
  • PermissionsDenied
  • PrivacyPoliciesNotChecked
  • TokenExpired

You can handle them like this:

try {
  await client.login({ name: 'user', password: 'wrong-pass' });
} catch (e) {
  if (e instanceof AuthenticationInvalid) {
    console.error('Invalid login credentials');
  }
}

📘 Types

All request and response types are fully typed. For example:

  • LoginRequest, RegisterRequest, EditUserRequest
  • User, Project, OAuth2App, AuthKey, etc.

🧪 Testing

No test framework included, but you can mock BaseClient methods for integration testing.


📝 License

MIT License © InteraApps


---

Let me know if you'd like the README in German or want a `tsdoc` style API documentation as well.

Readme

Keywords

none

Package Sidebar

Install

npm i @interaapps/accounts

Weekly Downloads

7

Version

1.0.1

License

MIT

Unpacked Size

413 kB

Total Files

18

Last publish

Collaborators

  • interaapps