[upd] plankton
This commit is contained in:
parent
ef879bb81b
commit
b86e1b62e2
2 changed files with 571 additions and 456 deletions
242
lib/plankton/plankton.d.ts
vendored
242
lib/plankton/plankton.d.ts
vendored
|
@ -1588,7 +1588,7 @@ declare namespace lib_plankton.string {
|
||||||
* @return {Array<string>}
|
* @return {Array<string>}
|
||||||
* @author fenris
|
* @author fenris
|
||||||
*/
|
*/
|
||||||
function split(chain: string, separator?: string): Array<string>;
|
function split(chain: string, separator: string): Array<string>;
|
||||||
/**
|
/**
|
||||||
* @author neu3no
|
* @author neu3no
|
||||||
*/
|
*/
|
||||||
|
@ -3651,60 +3651,38 @@ declare namespace lib_plankton.http {
|
||||||
declare namespace lib_plankton.xml {
|
declare namespace lib_plankton.xml {
|
||||||
/**
|
/**
|
||||||
*/
|
*/
|
||||||
abstract class class_node {
|
type type_node_data = ({
|
||||||
/**
|
kind: "root";
|
||||||
*/
|
data: {
|
||||||
abstract compile(depth?: int): string;
|
version: string;
|
||||||
}
|
encoding: string;
|
||||||
/**
|
content: type_node_data;
|
||||||
*/
|
|
||||||
class class_node_text extends class_node {
|
|
||||||
/**
|
|
||||||
*/
|
|
||||||
protected content: string;
|
|
||||||
/**
|
|
||||||
*/
|
|
||||||
constructor(content: string);
|
|
||||||
/**
|
|
||||||
*/
|
|
||||||
compile(depth?: int): string;
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
*/
|
|
||||||
class class_node_comment extends class_node {
|
|
||||||
/**
|
|
||||||
*/
|
|
||||||
protected content: string;
|
|
||||||
/**
|
|
||||||
*/
|
|
||||||
constructor(content: string);
|
|
||||||
/**
|
|
||||||
*/
|
|
||||||
compile(depth?: int): string;
|
|
||||||
}
|
|
||||||
/**
|
|
||||||
*/
|
|
||||||
class class_node_complex extends class_node {
|
|
||||||
/**
|
|
||||||
*/
|
|
||||||
protected name: string;
|
|
||||||
/**
|
|
||||||
*/
|
|
||||||
protected attributes: {
|
|
||||||
[key: string]: string;
|
|
||||||
};
|
};
|
||||||
/**
|
} | {
|
||||||
*/
|
kind: "comment";
|
||||||
protected children: Array<class_node>;
|
data: string;
|
||||||
/**
|
} | {
|
||||||
*/
|
kind: "text";
|
||||||
constructor(name: string, attributes?: {
|
data: string;
|
||||||
[key: string]: string;
|
} | {
|
||||||
}, children?: any[]);
|
kind: "complex";
|
||||||
/**
|
data: {
|
||||||
*/
|
tag: string;
|
||||||
compile(depth?: int): string;
|
attributes: Record<string, string>;
|
||||||
}
|
children: Array<type_node_data>;
|
||||||
|
};
|
||||||
|
});
|
||||||
|
/**
|
||||||
|
*/
|
||||||
|
type type_node_logic = {
|
||||||
|
compile: ((depths: int) => string);
|
||||||
|
};
|
||||||
|
/**
|
||||||
|
*/
|
||||||
|
function get_node_logic(node_data: type_node_data): type_node_logic;
|
||||||
|
/**
|
||||||
|
*/
|
||||||
|
function parse(xml_string: string): Promise<type_node_data>;
|
||||||
}
|
}
|
||||||
declare namespace lib_plankton.webdav {
|
declare namespace lib_plankton.webdav {
|
||||||
/**
|
/**
|
||||||
|
@ -3794,12 +3772,33 @@ declare namespace lib_plankton.webdav {
|
||||||
* @see http://www.webdav.org/specs/rfc2518.html#ELEMENT_status
|
* @see http://www.webdav.org/specs/rfc2518.html#ELEMENT_status
|
||||||
*/
|
*/
|
||||||
type type_data_status = string;
|
type type_data_status = string;
|
||||||
|
/**
|
||||||
|
*/
|
||||||
|
type type_data_prop_value = ({
|
||||||
|
kind: "none";
|
||||||
|
data: null;
|
||||||
|
} | {
|
||||||
|
kind: "primitive";
|
||||||
|
data: string;
|
||||||
|
} | {
|
||||||
|
kind: "href";
|
||||||
|
data: string;
|
||||||
|
} | {
|
||||||
|
kind: "resourcetype";
|
||||||
|
data: {
|
||||||
|
kind: string;
|
||||||
|
type: string;
|
||||||
|
};
|
||||||
|
} | {
|
||||||
|
kind: "privileges";
|
||||||
|
data: Array<string>;
|
||||||
|
});
|
||||||
/**
|
/**
|
||||||
* @see http://www.webdav.org/specs/rfc2518.html#ELEMENT_prop
|
* @see http://www.webdav.org/specs/rfc2518.html#ELEMENT_prop
|
||||||
*/
|
*/
|
||||||
type type_data_prop = {
|
type type_data_prop = {
|
||||||
name: string;
|
name: string;
|
||||||
value: (null | string);
|
value: type_data_prop_value;
|
||||||
};
|
};
|
||||||
/**
|
/**
|
||||||
* @see http://www.webdav.org/specs/rfc2518.html#ELEMENT_propstat
|
* @see http://www.webdav.org/specs/rfc2518.html#ELEMENT_propstat
|
||||||
|
@ -3838,7 +3837,6 @@ declare namespace lib_plankton.webdav {
|
||||||
}
|
}
|
||||||
declare namespace lib_plankton.webdav {
|
declare namespace lib_plankton.webdav {
|
||||||
/**
|
/**
|
||||||
* @author roydfalk <roydfalk@folksprak.org>
|
|
||||||
*/
|
*/
|
||||||
function is_special_method(method: enum_method): boolean;
|
function is_special_method(method: enum_method): boolean;
|
||||||
/**
|
/**
|
||||||
|
@ -3865,6 +3863,10 @@ declare namespace lib_plankton.webdav {
|
||||||
/**
|
/**
|
||||||
*/
|
*/
|
||||||
function encode_request(request: type_request): string;
|
function encode_request(request: type_request): string;
|
||||||
|
/**
|
||||||
|
* @todo description
|
||||||
|
*/
|
||||||
|
function data_multistatus_encode_xml(data_multistatus: type_data_multistatus): lib_plankton.xml.type_node_data;
|
||||||
/**
|
/**
|
||||||
*/
|
*/
|
||||||
function data_multistatus_encode(data_multistatus: type_data_multistatus): string;
|
function data_multistatus_encode(data_multistatus: type_data_multistatus): string;
|
||||||
|
@ -4165,7 +4167,6 @@ declare namespace lib_plankton.rest_base {
|
||||||
/**
|
/**
|
||||||
*/
|
*/
|
||||||
type type_execution<type_input, type_output> = ((stuff: {
|
type type_execution<type_input, type_output> = ((stuff: {
|
||||||
version: (null | string);
|
|
||||||
headers: Record<string, string>;
|
headers: Record<string, string>;
|
||||||
path_parameters: Record<string, string>;
|
path_parameters: Record<string, string>;
|
||||||
query_parameters: Record<string, string>;
|
query_parameters: Record<string, string>;
|
||||||
|
@ -4178,7 +4179,6 @@ declare namespace lib_plankton.rest_base {
|
||||||
/**
|
/**
|
||||||
*/
|
*/
|
||||||
type type_restriction<type_input> = ((stuff: {
|
type type_restriction<type_input> = ((stuff: {
|
||||||
version: (null | string);
|
|
||||||
headers: Record<string, string>;
|
headers: Record<string, string>;
|
||||||
path_parameters: Record<string, string>;
|
path_parameters: Record<string, string>;
|
||||||
query_parameters: Record<string, string>;
|
query_parameters: Record<string, string>;
|
||||||
|
@ -4187,22 +4187,22 @@ declare namespace lib_plankton.rest_base {
|
||||||
*/
|
*/
|
||||||
type type_operation<type_input, type_output> = {
|
type type_operation<type_input, type_output> = {
|
||||||
action_name: string;
|
action_name: string;
|
||||||
query_parameters: ((version: string) => Array<{
|
query_parameters: ((version: (null | string)) => Array<{
|
||||||
name: string;
|
name: string;
|
||||||
description: (null | string);
|
description: (null | string);
|
||||||
required: boolean;
|
required: boolean;
|
||||||
}>);
|
}>);
|
||||||
input_schema: ((version: (null | string)) => type_oas_schema);
|
input_schema: ((version: (null | string)) => type_oas_schema);
|
||||||
output_schema: ((version: (null | string)) => type_oas_schema);
|
output_schema: ((version: (null | string)) => type_oas_schema);
|
||||||
request_body_mimetype: string;
|
request_body_mimetype: ((version: (null | string)) => string);
|
||||||
request_body_decode: ((http_request_body: Buffer, http_request_header_content_type: (null | string)) => any);
|
request_body_decode: ((version: (null | string)) => (http_request_body: Buffer, http_request_header_content_type: (null | string)) => any);
|
||||||
response_body_mimetype: string;
|
response_body_mimetype: ((version: (null | string)) => string);
|
||||||
response_body_encode: ((output: any) => (null | Buffer));
|
response_body_encode: ((version: (null | string)) => ((output: any) => (null | Buffer)));
|
||||||
};
|
};
|
||||||
/**
|
/**
|
||||||
*/
|
*/
|
||||||
type type_routenode = {
|
type type_routenode = {
|
||||||
operations: Record</*lib_plankton.http.enum_method*/ string, type_operation<any, any>>;
|
operations: Record<string, type_operation<any, any>>;
|
||||||
sub_branch: Record<string, type_routenode>;
|
sub_branch: Record<string, type_routenode>;
|
||||||
sub_wildcard: (null | {
|
sub_wildcard: (null | {
|
||||||
name: string;
|
name: string;
|
||||||
|
@ -4225,19 +4225,39 @@ declare namespace lib_plankton.rest_base {
|
||||||
set_access_control_headers: boolean;
|
set_access_control_headers: boolean;
|
||||||
authentication: ({
|
authentication: ({
|
||||||
kind: "none";
|
kind: "none";
|
||||||
parameters: {};
|
data: {};
|
||||||
} | {
|
} | {
|
||||||
kind: "key_header";
|
kind: "key_header";
|
||||||
parameters: {
|
data: {
|
||||||
name: string;
|
name: string;
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
/**
|
||||||
|
*/
|
||||||
|
type type_action_options<type_input, type_output> = {
|
||||||
|
active?: ((version: (null | string)) => boolean);
|
||||||
|
restriction?: ((version: (null | string)) => type_restriction<type_input>);
|
||||||
|
execution?: ((version: (null | string)) => type_execution<type_input, (null | type_output)>);
|
||||||
|
title?: ((version: (null | string)) => (null | string));
|
||||||
|
description?: ((version: (null | string)) => (null | string));
|
||||||
|
query_parameters?: ((version: (null | string)) => Array<{
|
||||||
|
name: string;
|
||||||
|
description: (null | string);
|
||||||
|
required: boolean;
|
||||||
|
}>);
|
||||||
|
input_schema?: ((version: (null | string)) => type_oas_schema);
|
||||||
|
output_schema?: ((version: (null | string)) => type_oas_schema);
|
||||||
|
request_body_mimetype?: ((version: (null | string)) => string);
|
||||||
|
request_body_decode?: ((version: (null | string)) => (http_request_body: Buffer, http_request_header_content_type: (null | string)) => Promise<any>);
|
||||||
|
response_body_mimetype?: ((version: (null | string)) => string);
|
||||||
|
response_body_encode?: ((version: (null | string)) => (output: any) => Promise<Buffer>);
|
||||||
|
};
|
||||||
}
|
}
|
||||||
declare namespace lib_plankton.rest_base {
|
declare namespace lib_plankton.rest_base {
|
||||||
/**
|
/**
|
||||||
*/
|
*/
|
||||||
function make<type_http_method>(encode_http_method: ((http_method: type_http_method) => string), options?: {
|
function make<type_http_method>(encode_http_method: ((http_method: type_http_method) => string), { "title": option_title, "versioning_method": option_versioning_method, "versioning_header_name": option_versioning_header_name, "versioning_query_key": option_versioning_query_key, "header_parameters": option_header_parameters, "set_access_control_headers": option_set_access_control_headers, "authentication": option_authentication, "actions": option_actions, }?: {
|
||||||
title?: (null | string);
|
title?: (null | string);
|
||||||
versioning_method?: ("none" | "path" | "header" | "query");
|
versioning_method?: ("none" | "path" | "header" | "query");
|
||||||
versioning_header_name?: (null | string);
|
versioning_header_name?: (null | string);
|
||||||
|
@ -4250,56 +4270,26 @@ declare namespace lib_plankton.rest_base {
|
||||||
set_access_control_headers?: boolean;
|
set_access_control_headers?: boolean;
|
||||||
authentication?: ({
|
authentication?: ({
|
||||||
kind: "none";
|
kind: "none";
|
||||||
parameters: {};
|
data: {};
|
||||||
} | {
|
} | {
|
||||||
kind: "key_header";
|
kind: "key_header";
|
||||||
parameters: {
|
data: {
|
||||||
name: string;
|
name: string;
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
actions?: Array<{
|
actions?: Array<{
|
||||||
http_method: type_http_method;
|
http_method: type_http_method;
|
||||||
path: string;
|
path: string;
|
||||||
options: {
|
options: type_action_options<any, any>;
|
||||||
active?: ((version: string) => boolean);
|
|
||||||
restriction?: (null | type_restriction<any>);
|
|
||||||
execution?: type_execution<any, any>;
|
|
||||||
title?: (null | string);
|
|
||||||
description?: (null | string);
|
|
||||||
query_parameters?: ((version: string) => Array<{
|
|
||||||
name: string;
|
|
||||||
description: (null | string);
|
|
||||||
required: boolean;
|
|
||||||
}>);
|
|
||||||
input_schema?: ((version: string) => type_oas_schema);
|
|
||||||
output_schema?: ((version: string) => type_oas_schema);
|
|
||||||
request_body_mimetype?: string;
|
|
||||||
request_body_decode?: ((http_request_body: Buffer, http_request_header_content_type: (null | string)) => any);
|
|
||||||
response_body_mimetype?: string;
|
|
||||||
response_body_encode?: ((output: any) => Buffer);
|
|
||||||
};
|
|
||||||
}>;
|
}>;
|
||||||
}): type_rest;
|
}): type_rest;
|
||||||
/**
|
/**
|
||||||
*/
|
*/
|
||||||
function register<type_http_method, type_input, type_output>(encode_http_method: ((http_method: type_http_method) => string), rest: type_rest, http_method: type_http_method, path: string, options: {
|
function register<type_http_method, type_input, type_output>(encode_http_method: ((http_method: type_http_method) => string), rest: type_rest, http_method: type_http_method, path: string, { "active": option_active, "execution": option_execution, "restriction": option_restriction, "title": option_title, "description": option_description, "query_parameters": option_query_parameters, "input_schema": option_input_schema, "output_schema": option_output_schema, "request_body_mimetype": option_request_body_mimetype, "request_body_decode": option_request_body_decode, "response_body_mimetype": option_response_body_mimetype,
|
||||||
active?: ((version: string) => boolean);
|
/**
|
||||||
restriction?: (null | type_restriction<type_input>);
|
* @todo no "from"?
|
||||||
execution?: type_execution<type_input, type_output>;
|
*/
|
||||||
title?: (null | string);
|
"response_body_encode": option_response_body_encode, }?: type_action_options<type_input, type_output>): void;
|
||||||
description?: (null | string);
|
|
||||||
query_parameters?: ((version: string) => Array<{
|
|
||||||
name: string;
|
|
||||||
description: (null | string);
|
|
||||||
required: boolean;
|
|
||||||
}>);
|
|
||||||
input_schema?: ((version: (null | string)) => type_oas_schema);
|
|
||||||
output_schema?: ((version: (null | string)) => type_oas_schema);
|
|
||||||
request_body_mimetype?: string;
|
|
||||||
request_body_decode?: ((http_request_body: Buffer, http_request_header_content_type: (null | string)) => any);
|
|
||||||
response_body_mimetype?: string;
|
|
||||||
response_body_encode?: ((output: any) => Buffer);
|
|
||||||
}): void;
|
|
||||||
/**
|
/**
|
||||||
* @todo check request body mimetype?
|
* @todo check request body mimetype?
|
||||||
* @todo check query paramater validity
|
* @todo check query paramater validity
|
||||||
|
@ -4354,56 +4344,22 @@ declare namespace lib_plankton.rest_caldav {
|
||||||
set_access_control_headers?: boolean;
|
set_access_control_headers?: boolean;
|
||||||
authentication?: ({
|
authentication?: ({
|
||||||
kind: "none";
|
kind: "none";
|
||||||
parameters: {};
|
data: {};
|
||||||
} | {
|
} | {
|
||||||
kind: "key_header";
|
kind: "key_header";
|
||||||
parameters: {
|
data: {
|
||||||
name: string;
|
name: string;
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
actions?: Array<{
|
actions?: Array<{
|
||||||
http_method: lib_plankton.caldav.enum_method;
|
http_method: lib_plankton.caldav.enum_method;
|
||||||
path: string;
|
path: string;
|
||||||
options: {
|
options: lib_plankton.rest_base.type_action_options<any, any>;
|
||||||
active?: ((version: string) => boolean);
|
|
||||||
restriction?: (null | type_restriction<any>);
|
|
||||||
execution?: type_execution<any, any>;
|
|
||||||
title?: (null | string);
|
|
||||||
description?: (null | string);
|
|
||||||
query_parameters?: ((version: string) => Array<{
|
|
||||||
name: string;
|
|
||||||
description: (null | string);
|
|
||||||
required: boolean;
|
|
||||||
}>);
|
|
||||||
input_schema?: ((version: string) => type_oas_schema);
|
|
||||||
output_schema?: ((version: string) => type_oas_schema);
|
|
||||||
request_body_mimetype?: string;
|
|
||||||
request_body_decode?: ((http_request_body: Buffer, http_request_header_content_type: (null | string)) => any);
|
|
||||||
response_body_mimetype?: string;
|
|
||||||
response_body_encode?: ((output: any) => Buffer);
|
|
||||||
};
|
|
||||||
}>;
|
}>;
|
||||||
}): type_rest;
|
}): type_rest;
|
||||||
/**
|
/**
|
||||||
*/
|
*/
|
||||||
function register<type_input, type_output>(rest: type_rest, http_method: lib_plankton.caldav.enum_method, path: string, options: {
|
function register<type_input, type_output>(rest: type_rest, http_method: lib_plankton.caldav.enum_method, path: string, options: lib_plankton.rest_base.type_action_options<type_input, type_output>): void;
|
||||||
active?: ((version: string) => boolean);
|
|
||||||
restriction?: (null | type_restriction<type_input>);
|
|
||||||
execution?: type_execution<type_input, type_output>;
|
|
||||||
title?: (null | string);
|
|
||||||
description?: (null | string);
|
|
||||||
query_parameters?: ((version: string) => Array<{
|
|
||||||
name: string;
|
|
||||||
description: (null | string);
|
|
||||||
required: boolean;
|
|
||||||
}>);
|
|
||||||
input_schema?: ((version: (null | string)) => type_oas_schema);
|
|
||||||
output_schema?: ((version: (null | string)) => type_oas_schema);
|
|
||||||
request_body_mimetype?: string;
|
|
||||||
request_body_decode?: ((http_request_body: Buffer, http_request_header_content_type: (null | string)) => any);
|
|
||||||
response_body_mimetype?: string;
|
|
||||||
response_body_encode?: ((output: any) => Buffer);
|
|
||||||
}): void;
|
|
||||||
/**
|
/**
|
||||||
* @todo check request body mimetype?
|
* @todo check request body mimetype?
|
||||||
* @todo check query paramater validity
|
* @todo check query paramater validity
|
||||||
|
|
File diff suppressed because it is too large
Load diff
Loading…
Add table
Reference in a new issue