UNPKG

@fnlb-project/stanza

Version:

Modern XMPP in the browser, with a JSON API

87 lines (86 loc) 8.73 kB
import { FieldDefinition, JSONData, LanguageSet, TranslationContext } from './Definitions'; import XMLElement, { JSONElement } from './Element'; type ElementPath = Array<{ namespace: string | null; element: string; }>; export declare function createElement(namespace: string | null | undefined, name: string, parentNamespace?: string, parent?: XMLElement): XMLElement; export declare function getLang(xml: XMLElement, lang?: string): string; export declare function getTargetLang(children: XMLElement[], context: TranslationContext): string; export declare function findAll(xml: XMLElement, namespace: string | null | undefined, element: string, lang?: string): XMLElement[]; export declare function findOrCreate(xml: XMLElement, namespace: string | null, element: string, lang?: string): XMLElement; export interface CreateAttributeOptions<T, E = T> { staticDefault?: T; dynamicDefault?: (raw?: string) => T | undefined; emitEmpty?: boolean; name: string; namespace?: string | null; prefix?: string; parseValue(raw: string): T | undefined; writeValue(raw: T | E): string; } export interface CreateChildAttributeOptions<T, E = T> extends CreateAttributeOptions<T, E> { element: string; attributeNamespace?: string | null; converter?: FieldDefinition<T, E>; } export interface CreateTextOptions<T, E = T> { emitEmpty?: boolean; staticDefault?: T; dynamicDefault?: (raw?: string) => T | undefined; parseValue(raw: string): T | undefined; writeValue(raw: T | E): string; } export interface CreateChildTextOptions<T, E = T> extends CreateTextOptions<T, E> { emitEmpty?: boolean; matchLanguage?: boolean; element: string; namespace: string | null; } export declare const attribute: (name: string, defaultValue?: string | undefined, opts?: Partial<CreateAttributeOptions<string, string>>) => FieldDefinition<string, string>; export declare const booleanAttribute: (name: string, defaultValue?: boolean | undefined, opts?: Partial<CreateAttributeOptions<boolean, boolean>>) => FieldDefinition<boolean, boolean>; export declare const integerAttribute: (name: string, defaultValue?: number | undefined, opts?: Partial<CreateAttributeOptions<number, number>>) => FieldDefinition<number, number>; export declare const floatAttribute: (name: string, defaultValue?: number | undefined, opts?: Partial<CreateAttributeOptions<number, number>>) => FieldDefinition<number, number>; export declare const dateAttribute: (name: string, defaultValue?: Date | undefined, opts?: Partial<CreateAttributeOptions<Date, string>>) => FieldDefinition<Date, string>; export declare const namespacedAttribute: (prefix: string, namespace: string, name: string, defaultValue?: string | undefined, opts?: Partial<CreateAttributeOptions<string, string>>) => FieldDefinition<string, string>; export declare const namespacedBooleanAttribute: (prefix: string, namespace: string, name: string, defaultValue?: boolean | undefined, opts?: Partial<CreateAttributeOptions<boolean, boolean>>) => FieldDefinition<boolean, boolean>; export declare const namespacedIntegerAttribute: (prefix: string, namespace: string, name: string, defaultValue?: number | undefined, opts?: Partial<CreateAttributeOptions<number, number>>) => FieldDefinition<number, number>; export declare const namespacedFloatAttribute: (prefix: string, namespace: string, name: string, defaultValue?: number | undefined, opts?: Partial<CreateAttributeOptions<number, number>>) => FieldDefinition<number, number>; export declare const namespacedDateAttribute: (prefix: string, namespace: string, name: string, defaultValue?: Date | undefined, opts?: Partial<CreateAttributeOptions<Date, string>>) => FieldDefinition<Date, string>; export declare const childAttribute: (namespace: string | null, element: string, name: string, defaultValue?: string | undefined, opts?: Partial<CreateChildAttributeOptions<string, string>>) => FieldDefinition<string, string>; export declare const childBooleanAttribute: (namespace: string | null, element: string, name: string, defaultValue?: boolean | undefined, opts?: Partial<CreateChildAttributeOptions<boolean, boolean>>) => FieldDefinition<boolean, boolean>; export declare const childIntegerAttribute: (namespace: string | null, element: string, name: string, defaultValue?: number | undefined, opts?: Partial<CreateChildAttributeOptions<number, number>>) => FieldDefinition<number, number>; export declare const childFloatAttribute: (namespace: string | null, element: string, name: string, defaultValue?: number | undefined, opts?: Partial<CreateChildAttributeOptions<number, number>>) => FieldDefinition<number, number>; export declare const childDateAttribute: (namespace: string | null, element: string, name: string, defaultValue?: Date | undefined, opts?: Partial<CreateChildAttributeOptions<Date, string>>) => FieldDefinition<Date, string>; export declare const text: (defaultValue?: string) => FieldDefinition<string, string>; export declare const textJSON: () => FieldDefinition<JSONData>; export declare const textBuffer: (encoding?: BufferEncoding) => FieldDefinition<Buffer, string>; export declare function languageAttribute(): FieldDefinition<string>; export declare const childLanguageAttribute: (namespace: string | null, element: string) => FieldDefinition<string>; export declare const childText: (namespace: string | null, element: string, defaultValue?: string, emitEmpty?: boolean) => FieldDefinition<string>; export declare const childTextBuffer: (namespace: string | null, element: string, encoding?: BufferEncoding) => FieldDefinition<Buffer, string>; export declare const childDate: (namespace: string | null, element: string) => FieldDefinition<Date, string>; export declare const childInteger: (namespace: string | null, element: string, defaultValue?: number) => FieldDefinition<number>; export declare const childFloat: (namespace: string | null, element: string, defaultValue?: number) => FieldDefinition<number>; export declare const childJSON: (namespace: string | null, element: string) => FieldDefinition<any>; export declare function childTimezoneOffset(namespace: string | null, element: string): FieldDefinition<number, string>; export declare function childBoolean(namespace: string | null, element: string): FieldDefinition<boolean>; export declare function deepChildText(path: ElementPath, defaultValue?: string): FieldDefinition<string>; export declare function deepChildInteger(path: ElementPath, defaultValue?: number): FieldDefinition<number>; export declare function deepChildBoolean(path: ElementPath): FieldDefinition<boolean>; export declare function deepMultipleChildText(path: ElementPath): FieldDefinition<string[]>; export declare function childEnum(namespace: string | null, elements: Array<string | [string, string]>, defaultValue?: string): FieldDefinition<string>; export declare function childDoubleEnum(namespace: string | null, parentElements: string[], childElements: string[], defaultValue?: [string] | [string, string]): FieldDefinition<[string] | [string, string]>; export declare function multipleChildText(namespace: string | null, element: string): FieldDefinition<string[]>; export declare function multipleChildAttribute(namespace: string | null, element: string, name: string): FieldDefinition<string[]>; export declare function multipleChildIntegerAttribute(namespace: string | null, element: string, name: string): FieldDefinition<number[]>; export declare function childAlternateLanguageText(namespace: string | null, element: string): FieldDefinition<LanguageSet<string>>; export declare function multipleChildAlternateLanguageText(namespace: string | null, element: string): FieldDefinition<LanguageSet<string[]>>; export declare function multipleChildEnum(namespace: string | null, elements: Array<string | [string, string]>): FieldDefinition<string[]>; export declare function splicePath(namespace: string | null, element: string, path: string, multiple?: boolean): FieldDefinition<JSONData | JSONData[]>; export declare function staticValue<T>(value: T): FieldDefinition<T>; export declare function childRawElement(namespace: string | null, element: string, sanitizer?: string): FieldDefinition<JSONElement | string>; export declare function childLanguageRawElement(namespace: string | null, element: string, sanitizer?: string): FieldDefinition<JSONElement | string>; export declare function childAlternateLanguageRawElement(namespace: string | null, element: string, sanitizer?: string): FieldDefinition<LanguageSet<JSONElement>, LanguageSet<JSONElement | string>>; export declare function parameterMap(namespace: string, element: string, keyName: string, valueName: string): FieldDefinition; export {};