alcaeus-model
Version:
rdfine models for Alcaeus, Hydra client
119 lines • 9 kB
TypeScript
import type { NamedNode, Quad } from '@rdfjs/types';
import type { Resource, Operation } from '@rdfine/hydra';
import type { NamespaceBuilder } from '@rdfjs/namespace';
import type { Constructor, RdfResource } from '@tpluscode/rdfine';
import type { RuntimeOperation } from '../Operation.js';
type Constraint<TExactMatch, TFuncMatch = TExactMatch> = (string | TExactMatch) | ((value: TFuncMatch) => boolean);
export interface Criteria {
/**
* Filters operations by exactly matching the HTTP method (case-insensitive)
*/
byMethod?: Constraint<string>;
/**
* Filters operations by exactly matching the hydra:expects annotation or via a custom check function.
* The exact match can be ether a `Class` object or identifier
*/
expecting?: Constraint<RdfResource | NamedNode, RdfResource>;
/**
* Filters operations by exactly matching the hydra:returns annotation or via a custom check function.
* The exact match can be ether a `Class` object or identifier
*/
returning?: Constraint<RdfResource | NamedNode, RdfResource>;
/**
* Filters operations by exactly matching supported operation's id or types, or by
* executing a custom function against the supported operation
*/
bySupportedOperation?: Constraint<NamedNode, Operation>;
}
export interface RecursiveStopConditions {
excludedProperties?: (string | NamedNode | RdfResource)[];
namespaces: (string | NamespaceBuilder)[];
}
declare module '@tpluscode/rdfine' {
/**
* Provides methods to find operations in deeply nested resource graphs
*/
interface RdfResource {
/**
* Recursively gets operations from this resource and its children in the graph
* @param condition allows to control which properties should be followed
*/
getOperationsDeep(condition?: RecursiveStopConditions): RuntimeOperation[];
/**
* Finds operations of this resource which match the given criteria
* @param criteria zero or more criteria objects which filter out unwanted operations
*/
findOperations(...criteria: Criteria[]): RuntimeOperation[];
/**
* Finds operations of this resource and its children in graph, which match the given criteria
* @param stopCondition (optional) allows to control which properties should be followed
* @param moreCriteria zero or more criteria objects which filter out unwanted operations
*/
findOperationsDeep(stopCondition: RecursiveStopConditions, ...moreCriteria: Criteria[]): RuntimeOperation[];
}
}
export declare function OperationFinderMixin<TBase extends Constructor<Resource>>(Base: TBase): {
new (...input: any[]): {
getOperationsDeep(stopConditions?: RecursiveStopConditions, previousResources?: /*elided*/ any[]): RuntimeOperation[];
findOperations(...criteria: Criteria[]): RuntimeOperation[];
findOperationsDeep(stopCondition: RecursiveStopConditions & Criteria, ...moreCriteria: Criteria[]): RuntimeOperation[];
__filterOperations(operations: RuntimeOperation[], criteria?: Criteria[]): RuntimeOperation[];
first: Resource<import("@rdfjs/types").DatasetCore<Quad, Quad>> | undefined;
freetextQuery: string | undefined;
last: Resource<import("@rdfjs/types").DatasetCore<Quad, Quad>> | undefined;
next: Resource<import("@rdfjs/types").DatasetCore<Quad, Quad>> | undefined;
operation: Operation<import("@rdfjs/types").DatasetCore<Quad, Quad>>[];
previous: Resource<import("@rdfjs/types").DatasetCore<Quad, Quad>> | undefined;
search: import("@rdfine/hydra").IriTemplate<import("@rdfjs/types").DatasetCore<Quad, Quad>> | undefined;
view: Resource<import("@rdfjs/types").DatasetCore<Quad, Quad>>[];
title: string | undefined;
description: string | undefined;
comment: string | undefined;
isDefinedBy: import("@rdfine/rdfs").Resource<import("@rdfjs/types").DatasetCore<Quad, Quad>> | undefined;
label: string | undefined;
seeAlso: import("@rdfine/rdfs").Resource<import("@rdfjs/types").DatasetCore<Quad, Quad>>[];
readonly operations: RuntimeOperation[];
readonly apiDocumentation: import("@rdfine/hydra").ApiDocumentation | undefined;
getProperties(options?: import("./HydraResource.js").GetProperties): {
supportedProperty: import("@rdfine/hydra").SupportedProperty;
objects: any[];
}[];
getLinks(includeMissing?: boolean): {
supportedProperty: import("@rdfine/hydra").SupportedProperty;
resources: RdfResource<import("@rdfjs/types").DatasetCore<Quad, Quad>>[];
}[];
getCollections(filter?: import("../Mixins/MemberAssertion.js").MemberAssertionPattern): RdfResource<import("@rdfjs/types").DatasetCore<Quad, Quad>>[];
load?<T extends RdfResource<import("@rdfjs/types").DatasetCore<Quad, Quad>>>(headers?: HeadersInit): Promise<import("alcaeus-core").HydraResponse<import("@rdfjs/types").DatasetCore<Quad, Quad>, T>>;
readonly env: import("@tpluscode/rdfine/environment").RdfineEnvironment;
readonly id: import("@tpluscode/rdfine").ResourceIdentifier;
readonly types: import("@tpluscode/rdfine/lib/TypeCollection").TypeCollection<import("@rdfjs/types").DatasetCore<Quad, Quad>>;
readonly pointer: import("clownface").GraphPointer<import("@tpluscode/rdfine").ResourceIdentifier, import("@rdfjs/types").DatasetCore<Quad, Quad>>;
readonly unionGraphPointer: import("clownface").MultiPointer<import("@tpluscode/rdfine").ResourceIdentifier, import("@rdfjs/types").DatasetCore<Quad, Quad>>;
readonly _graphId: import("@rdfjs/types").Quad_Graph;
readonly _parent?: RdfResource<import("@rdfjs/types").DatasetCore<Quad, Quad>> | undefined;
readonly isAnonymous: boolean;
equals(other: RdfResource | import("@tpluscode/rdfine").ResourceIdentifier | import("clownface").GraphPointer | undefined | null): boolean;
hasType(type: string | NamedNode): boolean;
get<T extends RdfResource<import("@rdfjs/types").DatasetCore<Quad, Quad>> = RdfResource<import("@rdfjs/types").DatasetCore<Quad, Quad>>>(property: string | NamedNode): T;
get<T extends RdfResource<import("@rdfjs/types").DatasetCore<Quad, Quad>> = RdfResource<import("@rdfjs/types").DatasetCore<Quad, Quad>>>(property: string | NamedNode, options?: import("@tpluscode/rdfine/RdfResource").GetOptions): T | null;
getArray<T extends RdfResource<import("@rdfjs/types").DatasetCore<Quad, Quad>> = RdfResource<import("@rdfjs/types").DatasetCore<Quad, Quad>>>(property: string | NamedNode, options?: import("@tpluscode/rdfine/RdfResource").GetOptions): T[];
getBoolean(property: string | NamedNode, options?: import("@tpluscode/rdfine/RdfResource").GetOptions): boolean;
getString(property: string | NamedNode): string;
getString(property: string | NamedNode, options?: import("@tpluscode/rdfine/RdfResource").GetOptions): string | null;
getNumber(property: string | NamedNode): number | null;
getNumber(property: string | NamedNode, options?: import("@tpluscode/rdfine/RdfResource").GetOptions): number | null;
toJSON<T extends import("@tpluscode/rdfine/RdfResource").RdfResourceCore = /*elided*/ any>(): import("@tpluscode/rdfine/lib/toJSON").Jsonified<RdfResource<import("@rdfjs/types").DatasetCore<Quad, Quad>> & T>;
_getObjects(property: string | NamedNode, options?: import("@tpluscode/rdfine/RdfResource").GetOptions): import("clownface").MultiPointer<import("@rdfjs/types").Term, import("@rdfjs/types").DatasetCore<Quad, Quad>>;
_create<T extends import("@tpluscode/rdfine/RdfResource").RdfResourceCore<import("@rdfjs/types").DatasetCore<Quad, Quad>>>(term: import("clownface").GraphPointer<import("@rdfjs/types").Term, import("@rdfjs/types").DatasetCore<Quad, Quad>>, mixins?: import("@tpluscode/rdfine/lib/ResourceFactory").Mixin[] | [Constructor, ...import("@tpluscode/rdfine/lib/ResourceFactory").Mixin[]], options?: import("@tpluscode/rdfine/lib/ResourceFactory").ResourceCreationOptions<import("@rdfjs/types").DatasetCore<Quad, Quad>, T> | undefined): T & import("@tpluscode/rdfine").ResourceIndexer<RdfResource<import("@rdfjs/types").DatasetCore<Quad, Quad>>>;
collection: import("@rdfine/hydra").Collection<Resource<import("@rdfjs/types").DatasetCore<Quad, Quad>>, import("@rdfjs/types").DatasetCore<Quad, Quad>>[];
};
__mixins: import("@tpluscode/rdfine/lib/ResourceFactory").Mixin[];
__properties: Map<string, import("@tpluscode/rdfine/lib/decorators/property/decoratorFactory").PropertyMeta>;
__initializers: Map<string, unknown>;
__ns?: NamespaceBuilder;
} & TBase;
export declare namespace OperationFinderMixin {
var shouldApply: boolean;
}
export {};
//# sourceMappingURL=OperationFinder.d.ts.map