Skip to content

PURISTA API


PURISTA API / @purista/core / StreamDefinitionBuilder

Class: StreamDefinitionBuilder<S, C>

Defined in: StreamDefinitionBuilder/StreamDefinitionBuilder.impl.ts:38

Type Parameters

S

S extends Service

C

C extends StreamDefinitionBuilderTypes = StreamDefinitionBuilderTypes

Constructors

Constructor

new StreamDefinitionBuilder<S, C>(streamName, streamDescription, finalEventName?, deprecated?): StreamDefinitionBuilder<S, C>

Defined in: StreamDefinitionBuilder/StreamDefinitionBuilder.impl.ts:88

Parameters

streamName

string

streamDescription

string

finalEventName?

string

deprecated?

boolean = false

Returns

StreamDefinitionBuilder<S, C>

Methods

addChunkSchema()

addChunkSchema<ChunkSchema>(chunkSchema, validateChunks?): StreamDefinitionBuilder<S, StreamDefinitionBuilderTypes<C["PayloadSchema"], C["ParamsSchema"], ChunkSchema, C["FinalSchema"], C["Resources"], C["Invokes"], C["StreamInvokes"], C["EmitList"], C["QueueInvokes"]>>

Defined in: StreamDefinitionBuilder/StreamDefinitionBuilder.impl.ts:420

Type Parameters

ChunkSchema

ChunkSchema extends Schema

Parameters

chunkSchema

ChunkSchema

validateChunks?

boolean = true

Returns

StreamDefinitionBuilder<S, StreamDefinitionBuilderTypes<C["PayloadSchema"], C["ParamsSchema"], ChunkSchema, C["FinalSchema"], C["Resources"], C["Invokes"], C["StreamInvokes"], C["EmitList"], C["QueueInvokes"]>>


addFinalSchema()

addFinalSchema<FinalSchema>(finalSchema, validateFinal?): StreamDefinitionBuilder<S, StreamDefinitionBuilderTypes<C["PayloadSchema"], C["ParamsSchema"], C["ChunkSchema"], FinalSchema, C["Resources"], C["Invokes"], C["StreamInvokes"], C["EmitList"], C["QueueInvokes"]>>

Defined in: StreamDefinitionBuilder/StreamDefinitionBuilder.impl.ts:439

Type Parameters

FinalSchema

FinalSchema extends Schema

Parameters

finalSchema

FinalSchema

validateFinal?

boolean = true

Returns

StreamDefinitionBuilder<S, StreamDefinitionBuilderTypes<C["PayloadSchema"], C["ParamsSchema"], C["ChunkSchema"], FinalSchema, C["Resources"], C["Invokes"], C["StreamInvokes"], C["EmitList"], C["QueueInvokes"]>>


addOpenApiErrorStatusCodes()

addOpenApiErrorStatusCodes(...codes): StreamDefinitionBuilder<S, C>

Defined in: StreamDefinitionBuilder/StreamDefinitionBuilder.impl.ts:514

Parameters

codes

...StatusCode[]

Returns

StreamDefinitionBuilder<S, C>


addOpenApiTags()

addOpenApiTags(...tags): StreamDefinitionBuilder<S, C>

Defined in: StreamDefinitionBuilder/StreamDefinitionBuilder.impl.ts:504

Parameters

tags

...string[]

Returns

StreamDefinitionBuilder<S, C>


addParameterSchema()

addParameterSchema<ParamsSchema>(parameterSchema): StreamDefinitionBuilder<S, StreamDefinitionBuilderTypes<C["PayloadSchema"], ParamsSchema, C["ChunkSchema"], C["FinalSchema"], C["Resources"], C["Invokes"], C["StreamInvokes"], C["EmitList"], C["QueueInvokes"]>>

Defined in: StreamDefinitionBuilder/StreamDefinitionBuilder.impl.ts:402

Type Parameters

ParamsSchema

ParamsSchema extends Schema

Parameters

parameterSchema

ParamsSchema

Returns

StreamDefinitionBuilder<S, StreamDefinitionBuilderTypes<C["PayloadSchema"], ParamsSchema, C["ChunkSchema"], C["FinalSchema"], C["Resources"], C["Invokes"], C["StreamInvokes"], C["EmitList"], C["QueueInvokes"]>>


addPayloadSchema()

addPayloadSchema<PayloadSchema>(inputSchema, inputContentType?, inputContentEncoding?): StreamDefinitionBuilder<S, StreamDefinitionBuilderTypes<PayloadSchema, C["ParamsSchema"], C["ChunkSchema"], C["FinalSchema"], C["Resources"], C["Invokes"], C["StreamInvokes"], C["EmitList"], C["QueueInvokes"]>>

Defined in: StreamDefinitionBuilder/StreamDefinitionBuilder.impl.ts:377

Type Parameters

PayloadSchema

PayloadSchema extends Schema

Parameters

inputSchema

PayloadSchema

inputContentType?

string

inputContentEncoding?

string

Returns

StreamDefinitionBuilder<S, StreamDefinitionBuilderTypes<PayloadSchema, C["ParamsSchema"], C["ChunkSchema"], C["FinalSchema"], C["Resources"], C["Invokes"], C["StreamInvokes"], C["EmitList"], C["QueueInvokes"]>>


addQueryParameters()

addQueryParameters(...queryParams): StreamDefinitionBuilder<S, C>

Defined in: StreamDefinitionBuilder/StreamDefinitionBuilder.impl.ts:519

Parameters

queryParams

...QueryParameter<Infer<C["ParamsSchema"]>>[]

Returns

StreamDefinitionBuilder<S, C>


canConsumeStream()

canConsumeStream<Chunk, Final, Payload, Parameter, SName, Version, Fname>(serviceName, serviceVersion, serviceTarget, chunkSchema?, payloadSchema?, parameterSchema?, finalSchema?, validateChunk?, validateFinal?): StreamDefinitionBuilder<S, StreamDefinitionBuilderTypes<C["PayloadSchema"], C["ParamsSchema"], C["ChunkSchema"], C["FinalSchema"], C["Resources"], C["Invokes"], C["StreamInvokes"] & Record<SName, Record<Version, Record<Fname, (payload, parameter) => Promise<{ sessionId: string; [asyncIterator]: AsyncIterator<{ payload: ...; }>; cancel: Promise<void>; }>>>>, C["EmitList"], C["QueueInvokes"]>>

Defined in: StreamDefinitionBuilder/StreamDefinitionBuilder.impl.ts:193

Type Parameters

Chunk

Chunk extends Schema

Final

Final extends Schema

Payload

Payload extends Schema

Parameter

Parameter extends Schema

SName

SName extends string = string

Version

Version extends string = string

Fname

Fname extends string = string

Parameters

serviceName

SName

serviceVersion

Version

serviceTarget

Fname

chunkSchema?

Chunk

payloadSchema?

Payload

parameterSchema?

Parameter

finalSchema?

Final

validateChunk?

boolean = true

validateFinal?

boolean = true

Returns

StreamDefinitionBuilder<S, StreamDefinitionBuilderTypes<C["PayloadSchema"], C["ParamsSchema"], C["ChunkSchema"], C["FinalSchema"], C["Resources"], C["Invokes"], C["StreamInvokes"] & Record<SName, Record<Version, Record<Fname, (payload, parameter) => Promise<{ sessionId: string; [asyncIterator]: AsyncIterator<{ payload: ...; }>; cancel: Promise<void>; }>>>>, C["EmitList"], C["QueueInvokes"]>>


canEmit()

canEmit<EventName, T>(eventName, schema): StreamDefinitionBuilder<S, StreamDefinitionBuilderTypes<C["PayloadSchema"], C["ParamsSchema"], C["ChunkSchema"], C["FinalSchema"], C["Resources"], C["Invokes"], C["StreamInvokes"], C["EmitList"] & Record<EventName, InferIn<T>>, C["QueueInvokes"]>>

Defined in: StreamDefinitionBuilder/StreamDefinitionBuilder.impl.ts:359

Type Parameters

EventName

EventName extends string

T

T extends Schema

Parameters

eventName

EventName

schema

T

Returns

StreamDefinitionBuilder<S, StreamDefinitionBuilderTypes<C["PayloadSchema"], C["ParamsSchema"], C["ChunkSchema"], C["FinalSchema"], C["Resources"], C["Invokes"], C["StreamInvokes"], C["EmitList"] & Record<EventName, InferIn<T>>, C["QueueInvokes"]>>


canEnqueue()

canEnqueue<Payload, Parameter, QueueName>(queueName, payloadSchema?, parameterSchema?): StreamDefinitionBuilder<S, StreamDefinitionBuilderTypes<C["PayloadSchema"], C["ParamsSchema"], C["ChunkSchema"], C["FinalSchema"], C["Resources"], C["Invokes"], C["StreamInvokes"], C["EmitList"], C["QueueInvokes"] & Record<QueueName, (payload, parameter, options?) => Promise<QueueEnqueueResult>>>>

Defined in: StreamDefinitionBuilder/StreamDefinitionBuilder.impl.ts:98

Type Parameters

Payload

Payload extends Schema

Parameter

Parameter extends Schema

QueueName

QueueName extends string = string

Parameters

queueName

QueueName

payloadSchema?

Payload

parameterSchema?

Parameter

Returns

StreamDefinitionBuilder<S, StreamDefinitionBuilderTypes<C["PayloadSchema"], C["ParamsSchema"], C["ChunkSchema"], C["FinalSchema"], C["Resources"], C["Invokes"], C["StreamInvokes"], C["EmitList"], C["QueueInvokes"] & Record<QueueName, (payload, parameter, options?) => Promise<QueueEnqueueResult>>>>


canInvoke()

canInvoke<Output, Payload, Parameter, SName, Version, Fname>(serviceName, serviceVersion, serviceTarget, outputSchema?, payloadSchema?, parameterSchema?): StreamDefinitionBuilder<S, StreamDefinitionBuilderTypes<C["PayloadSchema"], C["ParamsSchema"], C["ChunkSchema"], C["FinalSchema"], C["Resources"], C["Invokes"] & Record<SName, Record<Version, Record<Fname, (payload, parameter) => Promise<Infer<Output>>>>>, C["StreamInvokes"], C["EmitList"], C["QueueInvokes"]>>

Defined in: StreamDefinitionBuilder/StreamDefinitionBuilder.impl.ts:139

Type Parameters

Output

Output extends Schema

Payload

Payload extends Schema

Parameter

Parameter extends Schema

SName

SName extends string = string

Version

Version extends string = string

Fname

Fname extends string = string

Parameters

serviceName

SName

serviceVersion

Version

serviceTarget

Fname

outputSchema?

Output

payloadSchema?

Payload

parameterSchema?

Parameter

Returns

StreamDefinitionBuilder<S, StreamDefinitionBuilderTypes<C["PayloadSchema"], C["ParamsSchema"], C["ChunkSchema"], C["FinalSchema"], C["Resources"], C["Invokes"] & Record<SName, Record<Version, Record<Fname, (payload, parameter) => Promise<Infer<Output>>>>>, C["StreamInvokes"], C["EmitList"], C["QueueInvokes"]>>


canInvokeAgent()

canInvokeAgent<Payload, Parameter, SName, Version>(agentName, agentVersion, invokeConfigOrParameterSchema?): StreamDefinitionBuilder<S, StreamDefinitionBuilderTypes<C["PayloadSchema"], C["ParamsSchema"], C["ChunkSchema"], C["FinalSchema"], C["Resources"], C["Invokes"], C["StreamInvokes"], C["EmitList"], C["QueueInvokes"], C["AgentInvokes"] & Record<SName, Record<Version, { call: (payload, parameter?) => AgentInvocation<{ history: any[]; message: any; }>; }>>>>

Defined in: StreamDefinitionBuilder/StreamDefinitionBuilder.impl.ts:289

Define an agent which can be invoked by the current stream. The agent must follow the PURISTA agent protocol.

Type Parameters

Payload

Payload extends Schema = ZodObject<{ attachments: ZodDefault<ZodOptional<ZodArray<ZodAny>>>; conversationId: ZodOptional<ZodString>; history: ZodDefault<ZodOptional<ZodArray<ZodAny>>>; message: ZodString; }, $loose>

Parameter

Parameter extends Schema = Schema

SName

SName extends string = string

Version

Version extends string = string

Parameters

agentName

SName

The name of the agent service

agentVersion

Version

The version of the agent service

invokeConfigOrParameterSchema?

Optional invoke configuration:

  • parameterSchema (legacy shorthand) validates .call(_, parameter)
  • { payloadSchema, parameterSchema } validates both .call(payload, parameter) arguments

Parameter | AgentInvokeConfig<Payload, Parameter>

Returns

StreamDefinitionBuilder<S, StreamDefinitionBuilderTypes<C["PayloadSchema"], C["ParamsSchema"], C["ChunkSchema"], C["FinalSchema"], C["Resources"], C["Invokes"], C["StreamInvokes"], C["EmitList"], C["QueueInvokes"], C["AgentInvokes"] & Record<SName, Record<Version, { call: (payload, parameter?) => AgentInvocation<{ history: any[]; message: any; }>; }>>>>


enableChunkAggregation()

enableChunkAggregation(enabled?): StreamDefinitionBuilder<S, C>

Defined in: StreamDefinitionBuilder/StreamDefinitionBuilder.impl.ts:458

Parameters

enabled?

boolean = true

Returns

StreamDefinitionBuilder<S, C>


enableHttpSecurity()

enableHttpSecurity(enabled?): StreamDefinitionBuilder<S, C>

Defined in: StreamDefinitionBuilder/StreamDefinitionBuilder.impl.ts:494

Parameters

enabled?

boolean = true

Returns

StreamDefinitionBuilder<S, C>


exposeAsHttpStreamEndpoint()

exposeAsHttpStreamEndpoint(method, path, contentTypeRequest?, contentEncodingRequest?): StreamDefinitionBuilder<S, C>

Defined in: StreamDefinitionBuilder/StreamDefinitionBuilder.impl.ts:468

Parameters

method

SupportedHttpMethod

path

string

contentTypeRequest?

string

contentEncodingRequest?

string

Returns

StreamDefinitionBuilder<S, C>


getDefinition()

getDefinition(): Promise<StreamDefinition<S, Infer<C["PayloadSchema"]>, Infer<C["ParamsSchema"]>, Infer<C["PayloadSchema"]>, Infer<C["ParamsSchema"]>, InferIn<C["ChunkSchema"]>, InferIn<C["FinalSchema"]>, C["Resources"], C["Invokes"], C["StreamInvokes"], C["EmitList"], StreamDefinitionMetadataBase, C["QueueInvokes"], C["AgentInvokes"]>>

Defined in: StreamDefinitionBuilder/StreamDefinitionBuilder.impl.ts:580

Returns

Promise<StreamDefinition<S, Infer<C["PayloadSchema"]>, Infer<C["ParamsSchema"]>, Infer<C["PayloadSchema"]>, Infer<C["ParamsSchema"]>, InferIn<C["ChunkSchema"]>, InferIn<C["FinalSchema"]>, C["Resources"], C["Invokes"], C["StreamInvokes"], C["EmitList"], StreamDefinitionMetadataBase, C["QueueInvokes"], C["AgentInvokes"]>>


getStreamContextMock()

getStreamContextMock(_input): object

Defined in: StreamDefinitionBuilder/StreamDefinitionBuilder.impl.ts:570

Parameters

_input
resources?

Partial<C["Resources"]>

sandbox?

SinonSandbox

writer?

Partial<StreamWriter<unknown, unknown>>

Returns

object


getStreamFunction()

getStreamFunction(): StreamFunction<S, Infer<C["PayloadSchema"]>, Infer<C["ParamsSchema"]>, Infer<C["PayloadSchema"]>, Infer<C["ParamsSchema"]>, InferIn<C["ChunkSchema"]>, InferIn<C["FinalSchema"]>, C["Resources"], C["Invokes"], C["StreamInvokes"], C["EmitList"], C["QueueInvokes"], C["AgentInvokes"]>

Defined in: StreamDefinitionBuilder/StreamDefinitionBuilder.impl.ts:546

Returns

StreamFunction<S, Infer<C["PayloadSchema"]>, Infer<C["ParamsSchema"]>, Infer<C["PayloadSchema"]>, Infer<C["ParamsSchema"]>, InferIn<C["ChunkSchema"]>, InferIn<C["FinalSchema"]>, C["Resources"], C["Invokes"], C["StreamInvokes"], C["EmitList"], C["QueueInvokes"], C["AgentInvokes"]>


makeEndpointPublic()

makeEndpointPublic(): StreamDefinitionBuilder<S, C>

Defined in: StreamDefinitionBuilder/StreamDefinitionBuilder.impl.ts:489

Returns

StreamDefinitionBuilder<S, C>


setFinalEventName()

setFinalEventName<N>(eventName): StreamDefinitionBuilder<S, C>

Defined in: StreamDefinitionBuilder/StreamDefinitionBuilder.impl.ts:463

Type Parameters

N

N extends string

Parameters

eventName

NonEmptyString<N>

Returns

StreamDefinitionBuilder<S, C>


setOpenApiOperationId()

setOpenApiOperationId(operationId): StreamDefinitionBuilder<S, C>

Defined in: StreamDefinitionBuilder/StreamDefinitionBuilder.impl.ts:509

Parameters

operationId

string

Returns

StreamDefinitionBuilder<S, C>


setOpenApiSummary()

setOpenApiSummary(summary): StreamDefinitionBuilder<S, C>

Defined in: StreamDefinitionBuilder/StreamDefinitionBuilder.impl.ts:499

Parameters

summary

string

Returns

StreamDefinitionBuilder<S, C>


setStreamFunction()

setStreamFunction(fn): StreamDefinitionBuilder<S, C>

Defined in: StreamDefinitionBuilder/StreamDefinitionBuilder.impl.ts:524

Parameters

fn

StreamFunction<S, Infer<C["PayloadSchema"]>, Infer<C["ParamsSchema"]>, Infer<C["PayloadSchema"]>, Infer<C["ParamsSchema"]>, InferIn<C["ChunkSchema"]>, InferIn<C["FinalSchema"]>, C["Resources"], C["Invokes"], C["StreamInvokes"], C["EmitList"], C["QueueInvokes"], C["AgentInvokes"]>

Returns

StreamDefinitionBuilder<S, C>