7.3.0 • Published 6 months ago

@raytio/types v7.3.0

Weekly downloads
207
License
MIT
Repository
-
Last release
6 months ago

@raytio/types

This module contains typescript definitions for Raytio data structures, such as Schema and ProfileObject.

Usage

Install the package:

npm i -D @raytio/types

Import definitions:

import type { Schema } from "@raytio/types";

Hovering over the type in VSCode will display documentation and available properties.

Versioning

⚠️ This package does not strictly follow semver, since every change to the type definitions is a breaking change.

Documentation

Table of contents

Enumerations

Type Aliases

Type Aliases

AA

Ƭ AA: Object

Type declaration

NameTypeDescription
a_idAId-
aa_help?stringmarkdown or string help information including phoneNumber || email
aa_introduction?stringIf a user signs up while completing this form, this message will be sent in the sign up email.
active?boolean-
auth_list_enabled?booleanif true, only specific email addresses can submit the form
callback_uri?string[]-
description?string-
end_date?Date-
key?string-
logout_uri?string[]-
metadata?unknown-
namestring-
org_idOIdthe id of the associated organization
picture?UrnDeprecated see !2101
picture_url?stringEasy to use AA logo url for pasting into emails
ruleset?unknownconfiguration for the submission rules
scopes?string[]-
secret?unknown-
service_provider_n_id?NIdthe n_id of the associated service provider
start_date?DateCurrently Unused Attributes
tags?AATag[]-
theme?{ colors?: Colors ; font?: CustomFonts }-
theme.colors?Colors-
theme.font?CustomFonts-

AATag

Ƭ AATag: "type:client_only" | "type:share_with_new_user" | `related_service_provider:n_id:${NId}` | "ServiceProvider"


AId

Ƭ AId: StringWithIdentity<"AId">

An a_id is the ID of an AA


Colors

Ƭ Colors: Object

Type declaration

NameTypeDescription
blankstring-
climaterolTextstring-
climaterolUistring-
errorRedstring-
feelingHuggedstring-
loadingYellowstring-
poolblueTextstring-
poolblueUistring-
raytioOrangeHoverstring-
raytioOrangeShadestring
raytioOrangeTextstring-
raytioOrangeUistring-
sariShadestring-
silverShellstring-
sirPinklyTextstring-
sirPinklyUistring-
successGreenstring-
textFullstring-
textLightstring-
textMediumstring-
violaPerpetuoTextstring-
violaPerpetuoUistring-

CommonFields

Ƭ CommonFields<IdType, Metadata>: Object

Every object in the new database has these fields. In the interest of type-safety, the id should be one of the well-known IDs that extend StringWithIdentity (e.g. NId or AId). If the ID is irrelevant, then use CommonFields<never> rather than CommonFields<string>. This will deliberately prevent you from utilising the id field until you define a special type for that ID.

This is especially important with the new API where it is much easier to mix up the different types of IDs.

Type parameters

NameType
IdTypeextends StringWithIdentity<string>
Metadataunknown

Type declaration

NameTypeDescription
activeboolean-
end_datestringISO Date
idIdType-
metadataMetadata | undefined-
start_datestringISO Date

CommonSchemaAttributes

Ƭ CommonSchemaAttributes: Object

not exported. Attributes that are identical in both client schema & server schema

Type declaration

NameTypeDescription
descriptionstring-
description_decorator?"md"specifies that the description is formatted in markdown
display?{ expand?: { fields: string[] ; label: string }[] ; head_main?: { fields: string[] ; format?: string } ; head_sub?: { fields: string[] ; format?: string } }-
display.expand?{ fields: string[] ; label: string }[]list of fields that should not be shown by default, unless you expand a collpase section which has a name from the label property. Array because there could be multiple expand groups
display.head_main?{ fields: string[] ; format?: string }list of fields to be considered the header/name of the PO fields joined with a space unless format format string is supplied
display.head_main.fieldsstring[]-
display.head_main.format?string-
display.head_sub?{ fields: string[] ; format?: string }list of fields to be considered the subheader of the PO fields joined with a space unless format format string is supplied
display.head_sub.fieldsstring[]-
display.head_sub.format?string-
i18n?{ [locale: string]: { [fieldNameOrGroupName: string]: ServerSchemaField & { title_plural?: string }; $loading_create_sub_obj: { title: string } ; $loading_delete_pending_ver: { title: string } ; $loading_extract: { title: string } ; $loading_link_to_person: { title: string } ; $loading_long_verification_message: { description?: string ; title?: string } ; $loading_pending_ver_resubmit: { title: string } ; $loading_permission: { title: string } ; $loading_save: { title: string } ; $loading_update: { title: string } ; $loading_upload: { title: string } ; $loading_verify: { title: string } ; $schema: { description?: string ; title: string ; title_plural?: string } }; }-
onboard_properties?{ organizations?: { access_applications?: { links?: { description: string ; wizardConfig: Omit<WizardConfig, "a_id"> }[] ; properties: Omit<AA, "org_id"> }[] ; properties: Organization }[] ; profile_objects?: { properties: Record<string, unknown> ; schema_name: SchemaName }[] ; relationships?: { from: string ; properties?: Record<string, string> ; to: string ; type: string }[] ; return_to?: string }only the schema used for the onboarding wizard have this property
onboard_properties.organizations?{ access_applications?: { links?: { description: string ; wizardConfig: Omit<WizardConfig, "a_id"> }[] ; properties: Omit<AA, "org_id"> }[] ; properties: Organization }[]Organizations that should be created. NOTE: if multiple are specified, when the wizard completes, the first one will be selected
onboard_properties.profile_objects?{ properties: Record<string, unknown> ; schema_name: SchemaName }[]Profile Objects that should be created
onboard_properties.relationships?{ from: string ; properties?: Record<string, string> ; to: string ; type: string }[]Relationships that should be created
onboard_properties.return_to?stringThe relative path in the client to redirect to once finished. May include variables
relationships?{ anyOf?: SchemaName[] ; direction: "from" ; multiple?: boolean ; oneOf?: (SchemaName | "instance")[] ; properties?: { [fieldName: string]: SchemaField; } ; relationship_name: string ; required?: string[] ; required_relationship?: boolean ; type: string }[]-
schema_group?stringthe group that a schema belongs to, such as "passports". This is useful for forms that accept different types of similar documents.
schema_type?SchemaType-
tags?SchemaTag[]-
titlestringthese fields will always exist on schema
title_plural?stringplural version of the title

ConditionallyRequired

Ƭ ConditionallyRequired: Object

should be renamed since this applies to ConditionallyVerifiable

Type declaration

NameType
fieldstring
if{ [fieldName: string]: (string | number | boolean)[]; }

ContactPoint

Ƭ ContactPoint: Object

A Contact Point for an Organization

Type declaration

NameType
activeboolean
contact_point_purposestring
contact_point_typestring
e164string | null
e164_suffixstring | null
e164_typestring | null
email_addressstring
email_address_preferred_formatstring
end_datestring
idstring
metadataunknown
start_datestring
to_tablestring
urlstring | null
url_typestring | null
uuidstring | undefined

CustomFonts

Ƭ CustomFonts: Object

Type declaration

NameType
body?string
header?string

DataTypes

Ƭ DataTypes: "string" | "number" | "boolean" | "object" | "integer" | "array" | "null"


Encrypted

Ƭ Encrypted<_Data>: Object

Type parameters

NameType
_Datastring

Type declaration

NameType
encrypted_data{ algorithm: AesKeyAlgorithm ; data: string ; iv: string }
encrypted_data.algorithmAesKeyAlgorithm
encrypted_data.datastring
encrypted_data.ivstring
encrypted_key{ encrypted_key: string }
encrypted_key.encrypted_keystring

GId

Ƭ GId: StringWithIdentity<"GId">

A g_id is the ID of a group


IId

Ƭ IId: StringWithIdentity<"IId">

An i_id is the ID of an Instance


Instance

Ƭ Instance: InstanceWithoutData & { keys: { [nId2: NId2]: { [fieldName: string]: { data: string }; }; } ; profile_objects: ProfileObject[] ; relationships: Relationship[] }

The API used to store data in this format, but it no longer does :( so @raytio/core reconstructs this object.


InstanceWithoutData

Ƭ InstanceWithoutData: CommonFields<IId, { message?: string }> & { aa_id: AId ; aack_id: KId ; confirmation_code: string ; data_provider_email: string ; device_id?: unknown ; instance_version?: unknown ; platform_footer_html?: unknown ; previous_state?: SubmissionStatus ; reference: string ; related_offers?: unknown ; related_service_types?: unknown ; score?: unknown ; service_provider_n_id: NId ; source_ip?: unknown ; state: SubmissionStatus ; sub_service_provider_hash: string ; thread: string }


KId

Ƭ KId: StringWithIdentity<"KId">

A k_id (also called a aack_id or a publicKeyId) is the ID of an AA's public key


LId

Ƭ LId: StringWithIdentity<"LId">

An l_id is the ID of any data stored in the KV-Store


Location

Ƭ Location: Object

An Organization Location

Type declaration

NameType
activeboolean
address_line_1string | null
address_line_2string | null
address_line_3string | null
address_line_4string | null
administrative_area_level_1string | null
administrative_area_level_2string | null
administrative_area_level_3string | null
citystring | null
countrystring | null
end_datestring
geolocationstring | null
geolocation_outlinestring | null
idstring
localitystring | null
location_descriptionstring | null
location_namestring
metadataunknown
postal_codestring
postal_code_suffixstring | null
premisestring | null
regionstring | null
routestring | null
start_datestring
street_numberstring | null
subpremisestring | null

Lookup

Ƭ Lookup: Object

Type declaration

NameTypeDescription
children?Lookup[]-
description?string-
keystring | number-
label?string | numberUsed in Antd Cascader
requires_2FA?booleanused in AkahuDynamicSection only
valuestring | number-

NId

Ƭ NId: StringWithIdentity<"NId">

An n_id is the ID of a ProfileObject


NId2

Ƭ NId2: StringWithIdentity<"NId2">

⚠️ This ID duplicates the NId and should only be used in exceptional circumstances


OId

Ƭ OId: StringWithIdentity<"OId">

An o_id is the ID of an Organization


Organization

Ƭ Organization: Object

An organization. NOTE: this is different to how the schema defines an Organization. The schema is wrong (see #468)

Type declaration

NameType
addressunknown
customerunknown
emailstring
idOId
namestring

PId

Ƭ PId: StringWithIdentity<"PId">

A p_id is the ID of a Relationship


Party

Ƭ Party: Object

An Organisation

Type declaration

NameType
activeboolean
end_datestring
idstring
metadataPartyMetadata
party_descriptionstring
party_namestring
party_numbernumber
party_typestring
start_datestring

PartyMetadata

Ƭ PartyMetadata: Object

An Organizations credentials

Type declaration

NameType
centrix_credentialsunknown
gandalfunknown
stripe{ customer: unknown }
stripe.customerunknown

PartySite

Ƭ PartySite: Object

An Organization Site

Type declaration

NameType
activeboolean
end_datestring
idstring
location_numbernumber
metadataunknown
party_idstring
party_site_descriptionstring | null
party_site_namestring
party_site_numberstring | null
party_use_primarystring
party_usesstring[]
start_datestring

ProfileObject

Ƭ ProfileObject<Properties>: Partial<CommonFields<NId2>> & { labels: string[] ; n_id: NId ; properties: Properties }

You can supply an option type argument if you know exactly what the properties will be

Type parameters

NameType
PropertiesJson

RealVer

Ƭ RealVer: Object

This is what @raytio/core exposes, which is more useable than Verification

Type declaration

NameTypeDescription
belongsToNId?NIdnId of the PO that the verification belongs to. Could be undefined
expiredDate | falseIf the verification has expired, it's the date that it expired on. Otherwise it's false
fieldNamestring-
metadata?VerificationPayload<false>"metadata"arbitary metadata returned by the verifier
nIDNIdnId of the verification
providerVerificationProvider-
signaturestring-
valueunknown-
verifiedbooleanwhether the fieldName/value pair is verified, as confirmed by the API. This should be the single source of truth.
xIdstringthis will be a unique id to group verifications from the same PO. Doesn't work yet

Relationship

Ƭ Relationship: Object

Type declaration

NameType
active?boolean
endUrn
end_date?string
p_idPId
properties?{ [fieldName: string]: unknown; name?: string ; p_id: PId }
properties.name?string
properties.p_idPId
startUrn
start_date?string
typestring

Schema

Ƭ Schema: CommonSchemaAttributes & { clientLocale?: string ; end_date?: string ; groupNames?: Record<string, string> ; group_title?: string ; isProfileSchema?: boolean ; isSpSchema?: boolean ; name: SchemaName ; properties: { [fieldName: string]: SchemaField; } ; required?: (string | ConditionallyRequired)[] ; start_date?: string ; timing?: Record<"extract" | "live_person" | "verify_pending_delay", number> ; type?: DataTypes ; verified_fields?: (string | ConditionallyRequired)[] ; version: string ; wasExpandedByClient?: boolean }

Raytio's variant of JSON Schema, as used by the client. It is a modified version of what the API returns.


SchemaField

Ƭ SchemaField: Object

Type declaration

NameTypeDescription
$id?stringDeprecated don't use, it's inconsistent
$ref?SchemaNameIf this field refers to a sub-object
add_row_btn_label?stringif this field is a table input, this determines the text to show on the "Add Row" btn
allOf?[{ $ref: string }, ServerSchemaField]-
content?stringonly checkbox uses this prop
contentEncoding?"base64"-
contentMediaType?string-
default?unknownthe default value
default_signature_name?stringused on fields that are a signature file picker, see !849 also used to determine if the MediaPicker should be shown inline
description?string-
description_decorator?"md"specifies that the description is formatted in markdown
encrypt?booleanwhether the field should be encrypted
encrypt_require?booleanif true, the user must have encryption enabled to save this data, see #1324
enum?(string | number | boolean)[]-
examples?unknown[]-
format?"date" | "date-time" | "uri"-
image_silhouette?stringIf this schema requires a photo of a document, you can specify a URL to a silhouette image which will be overlaid on top of the camera. For best results, the image should have a transparent background + minimal white foreground
items?{ properties: { [subFieldName: string]: SchemaField; } ; type: DataTypes }items is used for nested arrays, (while properties is used for nested objects)
items.properties{ [subFieldName: string]: SchemaField; }-
items.typeDataTypes-
lookup?stringURL to a JSON file in the Lookup format
maxLength?numberDeprecated raytio's usage not documented
maximum?numberfor number inputs, the maximum allowed value
minLength?numberDeprecated raytio's usage not documented
minimum?numberfor number inputs, the minimum allowed value
override?{ permissions: { default: string } }-
override.permissions{ default: string }-
override.permissions.defaultstringideally this could be typed as keyof typeof GROUPS but the schemas aren't consistent and we have to assume it could be invalid.
pattern?string-
patternMessage?stringif a pattern is specified, this is the error message
priority?number-
properties?{ [subFieldName: string]: SchemaField; }properties is used for nested objects, (while items is used for nested arrays)
readOnly?booleanreadOnly means the Wizard won't show this field
step?numberfor number inputs, the step size used in the input or slider
table_empty_message?stringif this field is a table input, this determines the text to show if the table is empty
tags?SchemaFieldTag[]-
title?string-
title_plural?string-
type?DataTypes-

SchemaFieldTag

Ƭ SchemaFieldTag: "password" | `group:${string}` | `upload-group:${string}` | "display:stars" | "display:no_autofill" | "display:currency" | "display:cascade" | "display:survey" | "display:quoting" | "display:customModal" | `display:replace:'${string}':'${string}'` | "display:terms_conditions" | `display:main_media:${string}` | "date_component:day" | "date_component:month" | "date_component:year" | "action:client_upload" | "action:require_webauthn" | "verify:show_if_pending" | "special:hide_select_behind_button" | "type:capture_geolocation" | "type:extract_required"


SchemaName

Ƭ SchemaName: StringWithIdentity<"SchemaName">

A SchemaName is the ID of a Schema


SchemaTag

Ƭ SchemaTag: "action:experimental_pass_object_store_id" | "action:verify" | "default_camera:rear" | "default_camera:front" | `oauth2_component:name:${string}` | `oauth2_component:redirect_url:${string}` | `time:${string}:${number}` | `link_to:${string}:${string}` | "type:service_provider" | "type:service_offer" | "type:marketplace" | "type:client_only" | "type:globally_unique_field"


SchemaType

Ƭ SchemaType: "ss" | "ps" | "us"

Type Classification of a Schema returned by API


ServerSchemaField

Ƭ ServerSchemaField: Omit<SchemaField, "$prop">

the only difference between the client & server's definition is that the client adds $prop


SubmissionStatus

Ƭ SubmissionStatus: "Submitted" | "Processing" | "Rejected" | "Expired" | "Completed" | "DataChanged" | "Received" | "Accepted"


UId

Ƭ UId: StringWithIdentity<"UId">

A u_id is the ID of a user


Urn

Ƭ Urn: `urn:user:${UId}` | `urn:profile_object:${NId}` | `urn:instance:${IId}` | `urn:temp_object:${LId}` | `urn:schema:${SchemaName}` | `urn:document:${NId}`

e.g. "urn:user:..."


UrnNodeType

Ƭ UrnNodeType: "user" | "profile_object" | "instance" | "schema" | "temp_object" | "document"


Validation

Ƭ Validation: Object

validation data returned by preVerify (part of the extract&map API)

Type declaration

NameType
breakdown{ [category: string]: { code?: number ; passed: boolean ; reason?: string ; severity?: "low" | "medium" | "high" }; }
scorenumber
warning?string[]

Verification

Ƭ Verification<WithValue>: ProfileObject<{ field: string ; n_id: NId ; valid_until?: string ; verifications: [{ data: VerificationPayload<WithValue> ; hashing_algorithm?: "SHA512" ; key_id?: string ; key_urn?: string ; signature: string ; signing_algorithm?: "RSASSA_PSS_SHA_512" }] }>

Different APIs inconsistently include the value prop. If you know it exists, use Verification<true>, otherwise just Verification. Verifications from the DataContext don't have the value.

Type parameters

NameType
WithValueextends boolean = false

VerificationPayload

Ƭ VerificationPayload<WithValue>: { field: string ; metadata?: { [otherAttributes: string]: unknown; pending_details?: { pending_time: "short" | "long" ; pending_type: "time" | "user" } ; safeHarbourScore?: SafeHarbourCode ; status?: "pending" } ; passed: boolean ; request_div: string ; schema?: SchemaName ; source: string ; source_hashed_n_id?: NId ; source_n_id?: NId ; type?: null ; v_id: string ; verification_date: string ; verifier_div: string ; verifier_id?: NId ; verifier_service_id?: NId ; verifier_source_id?: NId } & WithValue extends true ? { value: string | number } : {}

Type parameters

NameType
WithValueextends boolean

VerificationProvider

Ƭ VerificationProvider: Object

These n_ids point to service provider profile objects

Type declaration

NameTypeDescription
dataSourceNId?NId-
date?Datethe date which the verification was verified on, or last re-verified on
serviceProviderNId?NId-
verifierNId?NId-

WId

Ƭ WId: StringWithIdentity<"WId">

A wi_id is the ID of a Webhook


Webhook

Ƭ Webhook: Object

Type declaration

NameTypeDescription
date_createdstringISO Date
date_updatedstringISO Date
provider_signature_check_enabledboolean-
provider_signature_credentialsunknown-
provider_subscription_credentialsunknown-
provider_webhook_idNIdn_id of "the webhook provider which can be set up against a service provider"
provider_webhook_subscription_idNIdnot sure what this is
statusWebhookStatus-
subscribe_log?{ date: string ; response_payload: Json ; response_status_code: number }[]-
webhook_action{ webhook_action_type: string }[]-
webhook_field_mapping_schema{ [key: string]: string; }-
webhook_filter_schema{ field_name: string ; field_value: string ; operator: string }-
webhook_filter_schema.field_namestring-
webhook_filter_schema.field_valuestring-
webhook_filter_schema.operatorstring-
webhook_filter_sourcestring-
webhook_processing_rulesunknown-
wi_idWId-

WebhookStatus

Ƭ WebhookStatus: "subscribed" | "pending" | "unsubscribe_failed"


WizardConfig

Ƭ WizardConfig: Object

when a form link is generated, this is what gets saved on the API. Each value can be overridden in the query parameters. If specified in the query parameters, it needs to be base64 and/or url encoded.

Type declaration

NameTypeDescription
a_idAId-
display_sharing_preview?booleanIf this value is true, the form will display some data sharing information before the form (WizardPreview)
emails?string[]if specified, the email addresses that a submission should be sent to
expiry_date?numbernumber of days in the future
pagesWizardPage[]-
quick_onboard?booleanwhether the passwordless-signup process should be used if the user visits this form, and they are not logged in. If false, the standard sign-up process will be used
reference?string-
relationships?{ from: string ; properties?: Record<string, any> ; to: string ; type: string }[]a list of relationships that should be created after the wizard completes (see #987)
return_to?stringthe callback url to redirect to once complete. Must be in the AA's list of authorized callback urls
review_text?stringthe text on the WizardReview page
sharing_data_message?stringthe loading message to show next to the spinner after the review screen
signature_schema?SchemaNameif specified, a Wizard will be shown on the review page with this schema
skip_share?booleanDeprecated added in !244 but never used
submit_text?stringthe submit button label
terms_schema?SchemaNameif specified, a Wizard will be shown on the review page with this schema
update_reference?booleanwhether the user can change the reference, if there is one in the QP
webauthn_type?("usb" | "nfc" | "ble" | "internal")[]if specified, the user must validate their WebAuthN credential before they can submit the form

WizardPage

Ƭ WizardPage: Object

configuration data for a single wizard page (WizardConfig)

Type declaration

NameTypeDescription
allow_upload?booleando not allow uploading in ImageDynamicSection if this is explictly false
branching_rule_name?stringIf specified, this is is a "Conditional Wizard Page", which is only shown if the rule passed. This field contains the ID (not name) of the rule.
create_new_text?stringcustom text to display on the Create New button
description?stringthe fallback description, if there isn't one for the specific situation
description_create?string-
description_select?string-
description_update?string-
display_field_description?booleanwhether the field descriptions should be shown
display_field_title?booleanwhether the field titles should be shown
display_mode?"light" | "dark" | "default"can you force the colour theme to change for just one page (#1066, #1074). At the moment this on pages that use WebcamImageCapture
display_schema_description?booleanwhether the schema description should be shown
extract_threshold?numberfor ImageDynamicSection, the minimum score to be treated as a pass
extract_threshold_fail_action?"capture" | "capture_review" | "recapture_or_next_step" | "review" | "next_step"for ImageDynamicSection, the action to take if pre-verify fails
extract_threshold_null_action?WizardPage"extract_threshold_fail_action"for ImageDynamicSection, the action to take if the API returns no validation: {} object
extract_threshold_pass_action?"review" | "next_step"for ImageDynamicSection, the action to take if pre-verify passes
field_list?string[]if supplied, only the fields that are listed should be shared (#520, #1024)
filter"oneOf" | "anyOf"-
multiple?booleanif true mulitple POs can be shared
name?string | symbolif undefined, the schema title will be used
optional?booleanif true this page can be skipped. The PageResult wil be undefined
optional_fields?string[]a list of fields that should not be required, even if the schema says they're required
profile?booleanif explictly == false, then it's an AO (not a PO), in which case there can only be one schema
reverify_header?stringcustom text & header that's displayed on reverfication modal for expired PO
reverify_text?string-
schemasSchemaName[]-
selection_hierarchy_json?stringa URL to a preset for configuing NestedSchemaSelect. DeepConfig
service_provider_link?booleansee #463
share?"profile" | "verification" | "both"the information to share. undefined implies both.
tags?WizardPageTag[]-
verify_data?booleanif false, ProfileObjects created while completing the form will not be verified. if true, you can only select ProfileObjects that are partially or fully verified. undefined implies true. Default ts true

WizardPageTag

Ƭ WizardPageTag: "action:require_chip"


WrappedSchema

Ƭ WrappedSchema: Object

This is what's returned by the API

Type declaration

NameTypeDescription
activetrue-
end_datestringISO Date. If this tag exists, the schema is deprecated.
schemaCommonSchemaAttributes & { $id?: string ; $schema?: string ; allOf?: { $ref?: string ; if?: Partial<WrappedSchema"schema"> ; then?: Partial<WrappedSchema"schema"> }[] ; definitions?: Record<string, { $ref: Urn }> ; properties: { [fieldName: string]: ServerSchemaField; } ; required?: string[] ; verified_fields?: string[] }-
schema_nameSchemaNameSchema Name Type and Version Properties
schema_typeSchemaType-
schema_versionstring-
start_datestringISO Date
version_currentbooleanwhether the version is the latest version
7.3.0

6 months ago

7.2.0

10 months ago

7.1.0

1 year ago

7.0.0

1 year ago

6.0.2

2 years ago

6.0.1

2 years ago

6.0.0

2 years ago

5.2.1

3 years ago

5.2.0

3 years ago

5.1.0

3 years ago

5.0.0

3 years ago

4.0.0

3 years ago

3.0.0

3 years ago

2.2.1

3 years ago

2.2.0

3 years ago

2.1.1

3 years ago

2.1.0

3 years ago

1.0.3

3 years ago

1.0.2

3 years ago

1.0.1

4 years ago

1.0.0

4 years ago

0.3.3

4 years ago

0.3.2

4 years ago

0.3.1

4 years ago

0.3.0

4 years ago

0.0.1

4 years ago