structured-field-values
Version:
Implementation of Structured Field Values from IETF httpbis RFC8941
319 lines (318 loc) • 7.92 kB
TypeScript
/**
* @param {Item} value
* @returns {string}
*/
export function encodeItem(value: Item): string;
/**
* @param {MemberList} value
* @returns {string}
*/
export function encodeList(value: MemberList): string;
/**
* @param {Dictionary} value
* @returns {string}
*/
export function encodeDict(value: Dictionary): string;
/**
* @param {string} input
* @returns {Item}
*/
export function decodeItem(input: string): Item;
/**
* @param {string} input
* @returns {MemberList}
*/
export function decodeList(input: string): MemberList;
/**
* @param {string} input
* @returns {Dictionary}
*/
export function decodeDict(input: string): Dictionary;
/**
* @param {MemberList} list
* @return {string}
*/
export function serializeList(list: MemberList): string;
/**
* @param {Object} value
* @return {string}
*/
export function serializeInnerList(value: any): string;
/**
* @param {Object} params
* @return {string}
*/
export function serializeParams(params: any): string;
/**
* @param {string} value
* @return {string}
*/
export function serializeKey(value: string): string;
/**
* @param {Dictionary} dict
* @return {string}
*/
export function serializeDict(dict: Dictionary): string;
/**
* @param {Item} value
* @return {string}
*/
export function serializeItem(value: Item): string;
/**
* @param {any} value
* @return {string}
*/
export function serializeBareItem(value: any): string;
/**
* @param {number} value
* @return {string}
*/
export function serializeInteger(value: number): string;
/**
* @param {number} value
* @return {string}
*/
export function serializeDecimal(value: number): string;
/**
* @param {string} value
* @return {string}
*/
export function serializeString(value: string): string;
/**
* @param {symbol} token
* @return {string}
*/
export function serializeToken(token: symbol): string;
/**
* @param {Uint8Array} value
* @return {string}
*/
export function serializeByteSequence(value: Uint8Array): string;
/**
* @param {boolean} value
* @return {string}
*/
export function serializeBoolean(value: boolean): string;
/**
* @param {Date} value
* @return {string}
*/
export function serializeDate(value: Date): string;
/**
* @typedef {Array.<Item|InnerList>} MemberList
*
* @typedef {Object} ParsedList
* @property {MemberList} value
* @property {string} input_string
*
* @param {string} input_string
* @return {ParsedList}
*/
export function parseList(input_string: string): ParsedList;
/**
* @typedef {ParsedItem|ParsedInnerList} ParsedItemOrInnerList
*
* @param {string} input_string
* @return {ParsedItemOrInnerList}
*/
export function parseItemOrInnerList(input_string: string): ParsedItemOrInnerList;
/**
* @typedef {Array.<Item>} ItemList
*
* @typedef {{value: ItemList, params: Parameters}} InnerList
*
* @typedef {Object} ParsedInnerList
* @property {InnerList} value
* @property {string} input_string
*
* @param {string} input_string
* @return {ParsedInnerList}
*/
export function parseInnerList(input_string: string): ParsedInnerList;
/**
* @typedef {Object.<string, Item|InnerList>|Map} Dictionary
*
* @typedef {Object} ParsedDictionary
* @property {Dictionary} value
* @property {string} input_string
*
* @param {string} input_string
* @param {Object?} option TODO: not fully supported yet
* @return {ParsedDictionary}
*/
export function parseDictionary(input_string: string, option?: any | null): ParsedDictionary;
/**
* @typedef {Object} ParsedItem
* @property {Item} value
* @property {string} input_string
*
* @param {string} input_string
* @return {ParsedItem}
*/
export function parseItem(input_string: string): ParsedItem;
/**
* @typedef {ParsedString|ParsedByteSequence|ParsedBoolean|ParsedIntegerOrDecimal|ParsedToken|ParsedDate} ParsedBareItem
*
* @param {string} input_string
* @return {ParsedBareItem}
*/
export function parseBareItem(input_string: string): ParsedBareItem;
/**
* @typedef {string | Uint8Array | boolean | number | symbol | Date} BareItem
*
* @typedef {Object.<Key, BareItem>} Parameters
*
* @typedef {Object} ParsedParameters
* @property {Parameters} value
* @property {string} input_string
*
* @param {string} input_string
* @return {ParsedParameters}
*/
export function parseParameters(input_string: string): ParsedParameters;
/**
* @typedef {string} Key
*
* @typedef {Object} ParsedKey
* @property {Key} value
* @property {string} input_string
*
* @param {string} input_string
* @return {ParsedKey}
*/
export function parseKey(input_string: string): ParsedKey;
/**
* @typedef {Object} ParsedIntegerOrDecimal
* @property {number} value
* @property {string} input_string
*
* @param {string} input_string
* @return {ParsedIntegerOrDecimal}
*/
export function parseIntegerOrDecimal(input_string: string): ParsedIntegerOrDecimal;
/**
* @typedef {Object} ParsedString
* @property {string} value
* @property {string} input_string
*
* @param {string} input_string
* @return {ParsedString}
*/
export function parseString(input_string: string): ParsedString;
/**
* @typedef {Object} ParsedToken
* @property {symbol} value
* @property {string} input_string
*
* @param {string} input_string
* @return {ParsedToken}
*/
export function parseToken(input_string: string): ParsedToken;
/**
* @typedef {Object} ParsedByteSequence
* @property {Uint8Array} value
* @property {string} input_string
*
* @param {string} input_string
* @return {ParsedByteSequence}
*/
export function parseByteSequence(input_string: string): ParsedByteSequence;
/**
* @typedef {Object} ParsedBoolean
* @property {boolean} value
* @property {string} input_string
*
* @param {string} input_string
* @return {ParsedBoolean}
*/
export function parseBoolean(input_string: string): ParsedBoolean;
/**
* @typedef {Object} ParsedDate
* @property {Date} value
* @property {string} input_string
*
* @param {string} input_string
* @return {ParsedDate}
*/
export function parseDate(input_string: string): ParsedDate;
/**
* @param {string} str
* @return {Uint8Array}
*/
export function base64decode(str: string): Uint8Array;
/**
* @param {Uint8Array} binary
* @return {string}
*/
export function base64encode(binary: Uint8Array): string;
export class Item {
/**
* @property {BareItem} value
* @property {Parameters} params
*/
constructor(value: any, params?: any);
value: any;
params: any;
}
export type MemberList = Array<Item | InnerList>;
export type ParsedList = {
value: MemberList;
input_string: string;
};
export type ParsedItemOrInnerList = ParsedItem | ParsedInnerList;
export type ItemList = Array<Item>;
export type InnerList = {
value: Item[];
params: Parameters;
};
export type ParsedInnerList = {
value: InnerList;
input_string: string;
};
export type Dictionary = {
[x: string]: Item | InnerList;
} | Map<any, any>;
export type ParsedDictionary = {
value: Dictionary;
input_string: string;
};
export type ParsedItem = {
value: Item;
input_string: string;
};
export type ParsedBareItem = ParsedString | ParsedByteSequence | ParsedBoolean | ParsedIntegerOrDecimal | ParsedToken | ParsedDate;
export type BareItem = string | Uint8Array | boolean | number | symbol | Date;
export type Parameters = any;
export type ParsedParameters = {
value: Parameters;
input_string: string;
};
export type Key = string;
export type ParsedKey = {
value: Key;
input_string: string;
};
export type ParsedIntegerOrDecimal = {
value: number;
input_string: string;
};
export type ParsedString = {
value: string;
input_string: string;
};
export type ParsedToken = {
value: symbol;
input_string: string;
};
export type ParsedByteSequence = {
value: Uint8Array;
input_string: string;
};
export type ParsedBoolean = {
value: boolean;
input_string: string;
};
export type ParsedDate = {
value: Date;
input_string: string;
};