Installation for frontend
Open your terminal and use the following command to install the plugin into your project.
npm install @jx_code/rsimzo-client
Usage
new RsimzoClient(options)
Class initialization
import { RsimzoClient, RsOptions } from "@jx_code/rsimzo-client"; const options: RsOptions = { paths: { fetchToken: '/path/to/generate/token' } } const rsimzo = new RsimzoClient(options)
Possible parameters options: RsOptions
baseURL
-  Type: string
-  Default: window.location.origin
Base URL used for all HTTP requests in the application.
locale
-  Type: string
-  Default: en
Specifies the supported languages of the application. Possible values: 
en, ru, uz, uz-kr.headers
-  Type: Record<string, string>
-  Default: {}
Metadata for requests containing information about the request or transmitted data. For example, can be used to pass 
Authorization headers.paths.generateTokenrequired
-  Type: string
URL for the API used to generate tokens.
instantCertsFetch
-  Type: boolean
-  Default: false
If set to true, 
rsimzo.getCertificates() method will return a list of all certificates without user confirmation.storage
-  Type: boolean | StorageOptions
-  Default: true
Controls whether the results of 
rsimzo.getCertificates() method are saved in localStorage. Value can be boolean or StorageOptions object.storage.prefix
-  Type: string
-  Default: rs.
Prefix used for saving data in 
localStorageFields
rsimzo.certificates
-  Type: RsCertificate[]
List of certificates stored in 
localStorage. If no data is present in localStorage, returns an empty array []const list = rsimzo.certificates console.log(list)
interface RsCertificate { pin?: string tin?: string address: string country: string expireAt: number expireFrom: number fullName: string serial: string uid: string isLegalEntity: boolean orgName?: string isExpired: boolean }
Methods
rsimzo.getCertificates(options?: {locale: string, instantCertsFetch: boolean})
-  Type: RsCertificate[] | null
Opens the rs-imzo.uz window to synchronize keys. After calling the method, a window will open where the user must select EDS keys to upload to your site. Key data can be saved in 
localStorage. If instantCertsFetch is set to true, the window closes automatically after saving all client certificates.const { data: list } = await rsimzo.getCertificates() if (list) { console.log(list) }
If the client closes the window, the method will return null
Possible parameters options
locale
-  Type: string
Specifies the supported languages of the application. Possible values: 
en, ru, uz, uz-kr.instantCertsFetch
-  Type: boolean
If set to true, 
rsimzo.getCertificates() method will return a list of all certificates without user confirmation.rsimzo.sign(serial: string, content: string, options?: RsSignOptions)
-  Type: string | null
Opens the rs-imzo.uz window to sign a document. After calling the method, a window opens where the user must enter a password. Method result is 
pkcs7const content = 'string you want to sign' const serial = 'get serial number from rsimzo.getCertificates() method' const { data: pkcs7 } = await rsimzo.sign(serial, btoa(content)) console.log(pkcs7)
The content to be signed must be in base64 format.
Possible parameters options: RsSignOptions
locale
-  Type: string
Specifies the supported languages of the application. Possible values: 
en, ru, uz, uz-kr.attached
-  Type: boolean
-  Default: true
Attaches the signed content to the final 
pkcs7.rsimzo.auth(options?: RsAuthOptions)
-  Type: string | null
Opens the rs-imzo.uz window to authenticate a document. After calling the method, a window opens where the user must select a key and enter a password. Method result is 
pkcs7const { data: pkcs7 } = await rsimzo.auth() console.log(pkcs7)
Possible parameters options: RsAuthOptions
locale
-  Type: string
Specifies the supported languages of the application. Possible values: 
en, ru, uz, uz-kr.Error Handling
For each request, you should check for errors
const { error } = await rsimzo.sign(serial, btoa(content)) if(error && error.errorCode === 13) { console.log('Invalid password') }
error parameters
errorCode
-  Type: number
Unique error code
- 13- Invalid password
- 10001- Window closed
- 10002- HTTP request error
- 10003- Action completed with no result
- 10004- Certificate not found
- 10005- Invalid token
- 10006- Incorrect parameters received
errorMessage
-  Type: string
Error message. The text is always in English. If a translation is needed, use 
errorCoderawError
-  Type: any
Raw error