Packages · @purista/cli
@purista/cli
Signature
@purista/cliClasses
3 entries
PuristaCliError
Classes
class PuristaCliErrorBase error type thrown by the programmatic CLI API.
PuristaCliPromptError
Classes
class PuristaCliPromptErrorError thrown by prompt adapters when interactive input cannot be collected.
PuristaCliValidationError
Classes
class PuristaCliValidationErrorError thrown when command input or project state cannot be resolved.
Interfaces
2 entries
Type Aliases
44 entries
AddPuristaQueueInput
Types
type AddPuristaQueueInput = voidInput for generating a queue, its primary worker, and optional producer command.
AddPuristaQueueWorkerInput
Types
type AddPuristaQueueWorkerInput = voidInput for generating an additional worker for an existing queue.
BasePromptRequest
Types
type BasePromptRequest = voidShared fields used by prompt requests.
BlueprintId
Types
type BlueprintId = typeof blueprintIds[number]Built-in project blueprint identifiers understood by the generator.
ConfirmPromptRequest
Types
type ConfirmPromptRequest = BasePromptRequest<TKey> & { defaultValue: boolean; type: "confirm" }Boolean confirmation prompt request.
CreateProjectInput
Types
type CreateProjectInput = voidNormalized input used to plan and materialize a new PURISTA project.
EnqueueOption
Types
type EnqueueOption = voidQueue import metadata used when generating a command with `.canEnqueue(...)`.
ExampleServiceGeneratorStep
Types
type ExampleServiceGeneratorStep = voidDeferred generator action that creates the example service after base files exist.
InputPromptRequest
Types
type InputPromptRequest = BasePromptRequest<TKey> & { type: "input"; validate: (value: string) => true | string }Text input prompt request.
Locale
Types
type Locale = string[] | string | false | undefinedSupported locale values. Use `false` to ignore locale. Defaults to `undefined`, which uses the host environment.
OutputAdapter
Types
type OutputAdapter = voidAdapter for rendering CLI results and errors in custom hosts.
PackageManager
Types
type PackageManager = "npm" | "bun" | "pnpm" | "yarn"Package managers supported by the project generator.
PKG
Types
type PKG = PackageJson & { trustedDependencies: string[] }Package.json shape used by the CLI project blueprint merger.
ProjectBlueprint
Types
type ProjectBlueprint = voidA reusable project generator unit.
ProjectBlueprintContext
Types
type ProjectBlueprintContext = CreateProjectInput & { targetDirectoryPath: string }Input visible to a blueprint while it decides and creates contributions.
ProjectBlueprintContribution
Types
type ProjectBlueprintContribution = ProjectConfigPatch & { files: ProjectEntryContribution[]; generatorSteps: ProjectGeneratorStep[]; warnings: string[] }Files, config patches, warnings, and deferred steps emitted by a blueprint.
ProjectConfigPatch
Types
type ProjectConfigPatch = voidPartial project-level configuration merged from a blueprint.
ProjectEntryContribution
Types
type ProjectEntryContribution = ProjectFileContribution | ProjectLinkContributionFile-system entry that a blueprint contributes to a project generation plan.
ProjectFileContribution
Types
type ProjectFileContribution = voidA file that a blueprint contributes to a project generation plan.
ProjectGenerationPlan
Types
type ProjectGenerationPlan = voidComplete dry-run project generation plan.
ProjectGeneratorStep
Types
type ProjectGeneratorStep = ExampleServiceGeneratorStepUnion of deferred generator steps executed while materializing a project.
ProjectLinkContribution
Types
type ProjectLinkContribution = voidA symbolic link that a blueprint contributes to a project generation plan.
ProjectSnapshot
Types
type ProjectSnapshot = voidFull project snapshot used by CLI generators to append new definitions safely.
PromptAdapter
Types
type PromptAdapter = voidAdapter used by the engine when it must collect missing input.
PromptAnswerMap
Types
type PromptAnswerMap = Record<string, string | boolean>Programmatic answer map keyed by prompt `key`.
PromptChoice
Types
type PromptChoice = voidOne selectable prompt option.
PromptRequest
Types
type PromptRequest = InputPromptRequest<TKey> | ConfirmPromptRequest<TKey> | SelectPromptRequest<TKey>Union of prompt requests emitted by CLI command resolution.
PuristaCliEngineOptions
Types
type PuristaCliEngineOptions = voidOptions for creating a reusable programmatic PURISTA CLI engine.
PuristaCommandContext
Types
type PuristaCommandContext = voidRuntime context passed to CLI command resolvers and executors.
PuristaCommandId
Types
type PuristaCommandId = typeof puristaCommandIds[number]Command identifiers accepted by the programmatic CLI engine.
PuristaCommandIssue
Types
type PuristaCommandIssue = voidA validation or execution issue reported by a CLI command.
PuristaCommandMode
Types
type PuristaCommandMode = "interactive" | "non-interactive" | "programmatic"Controls how unresolved command input is completed before execution.
PuristaCommandResolution
Types
type PuristaCommandResolution = voidOutput of command input resolution before execution.
PuristaCommandResult
Types
type PuristaCommandResult = voidResult returned after a CLI command has executed.
PuristaConfig
Types
type PuristaConfig = z.infer<typeof puristaConfigSchema>Parsed `purista.json` configuration with defaults applied.
PuristaExecutableCommand
Types
type PuristaExecutableCommand = voidDefinition contract implemented by commands registered in the CLI engine.
PuristaFileMutation
Types
type PuristaFileMutation = voidDescribes one file path changed by a CLI command.
PuristaProjectInfo
Types
type PuristaProjectInfo = voidPublic project information required by scaffolding helpers.
PuristaProjectServices
Types
type PuristaProjectServices = Record<string, Record<string, Omit<ServiceVersionSnapshot, "queues" | "queueWorkers">>>Public service scan result used by legacy generator helpers.
QueueProducerOptions
Types
type QueueProducerOptions = voidOptional command generated together with a queue to enqueue work.
QueueWorkerOptions
Types
type QueueWorkerOptions = voidQueue worker generated together with a queue.
ResolvedProjectBlueprints
Types
type ResolvedProjectBlueprints = voidResult of selecting project blueprints for a concrete init input.
SelectPromptRequest
Types
type SelectPromptRequest = BasePromptRequest<TKey> & { choices: ReadonlyArray<PromptChoice<TValue>>; defaultValue: TValue; type: "select" }Single-choice prompt request.
ServiceVersionSnapshot
Types
type ServiceVersionSnapshot = voidDiscovered files and artifact directories for one service version.
Variables
4 entries
blueprintIds
Variables
const blueprintIds: typeOperatorOrdered list of built-in project blueprint identifiers.
projectBlueprintRegistry
Variables
const projectBlueprintRegistry: Record<string, ProjectBlueprint>Registry of built-in project blueprints used by `planProjectGeneration`.
puristaCommandIds
Variables
const puristaCommandIds: typeOperatorOrdered list of command identifiers supported by the programmatic CLI engine.
puristaConfigSchema
Variables
const puristaConfigSchema: ZodObject<{ $schema: ZodDefault<ZodOptional<ZodString>>; agentPath: ZodDefault<ZodOptional<ZodString>>; eventBridge: ZodDefault<ZodEnum<{ amqp: unknown; dapr: unknown; default: unknown; mqtt: unknown; nats: unknown }>>; eventConvention: ZodDefault<ZodEnum<{ camel: unknown; constantCase: unknown; dotCase: unknown; kebab: unknown; pascal: unknown; pascalSnake: unknown; ... }>>; fileConvention: ZodDefault<ZodEnum<{ camel: unknown; kebab: unknown; pascal: unknown; pascalSnake: unknown; snake: unknown }>>; formatter: ZodDefault<ZodEnum<{ biome: unknown; none: unknown; prettier: unknown }>>; ... }, $strip>Zod schema for the `purista.json` configuration file consumed by the CLI.
Functions
71 entries
addPuristaAgent
Functions
addPuristaAgent(input: { agentDescription: string; agentName: string; codeWriterOptions: Partial<Options>; projectRootPath: string; puristaConfig: { $schema: string; agentPath: string; eventBridge: "default" | "amqp" | "nats" | "mqtt" | "dapr"; eventConvention: "camel" | "snake" | "kebab" | "pascal" | "pascalSnake" | "constantCase" | "dotCase" | "pathCase" | "trainCase"; fileConvention: "camel" | "snake" | "kebab" | "pascal" | "pascalSnake"; formatter: "biome" | "prettier" | "none"; ... }; puristaProject: PuristaProjectInfo; ... }): Promise<void>addPuristaCommand
Functions
addPuristaCommand(input: { codeWriterOptions: Partial<Options>; commandDescription: string; commandName: string; enqueues: { parameterSchemaExportName: string; payloadSchemaExportName: string; queueName: string; schemaFilePath: string }[]; eventToSubscribe: string; projectRootPath: string; ... }): Promise<void>addPuristaQueue
Functions
addPuristaQueue(input: AddPuristaQueueInput): Promise<void>addPuristaQueueWorker
Functions
addPuristaQueueWorker(input: AddPuristaQueueWorkerInput): Promise<void>addPuristaService
Functions
addPuristaService(input: { codeWriterOptions: Partial<Options>; projectRootPath: string; puristaConfig: { $schema: string; agentPath: string; eventBridge: "default" | "amqp" | "nats" | "mqtt" | "dapr"; eventConvention: "camel" | "snake" | "kebab" | "pascal" | "pascalSnake" | "constantCase" | "dotCase" | "pathCase" | "trainCase"; fileConvention: "camel" | "snake" | "kebab" | "pascal" | "pascalSnake"; formatter: "biome" | "prettier" | "none"; ... }; puristaProject: PuristaProjectInfo; serviceDescription: string; serviceName: string; ... }): Promise<void>addPuristaStream
Functions
addPuristaStream(input: { codeWriterOptions: Partial<Options>; projectRootPath: string; puristaConfig: { $schema: string; agentPath: string; eventBridge: "default" | "amqp" | "nats" | "mqtt" | "dapr"; eventConvention: "camel" | "snake" | "kebab" | "pascal" | "pascalSnake" | "constantCase" | "dotCase" | "pathCase" | "trainCase"; fileConvention: "camel" | "snake" | "kebab" | "pascal" | "pascalSnake"; formatter: "biome" | "prettier" | "none"; ... }; puristaProject: PuristaProjectInfo; responseEventName: string; serviceName: string; ... }): Promise<void>addPuristaSubscription
Functions
addPuristaSubscription(input: { codeWriterOptions: Partial<Options>; eventToSubscribe: string; projectRootPath: string; puristaConfig: { $schema: string; agentPath: string; eventBridge: "default" | "amqp" | "nats" | "mqtt" | "dapr"; eventConvention: "camel" | "snake" | "kebab" | "pascal" | "pascalSnake" | "constantCase" | "dotCase" | "pathCase" | "trainCase"; fileConvention: "camel" | "snake" | "kebab" | "pascal" | "pascalSnake"; formatter: "biome" | "prettier" | "none"; ... }; puristaProject: PuristaProjectInfo; responseEventName: string; ... }): Promise<void>camelCase
Functions
camelCase(input: string, options?: PascalCaseOptions): stringcapitalCase
Functions
capitalCase(input: string, options?: Options): stringconstantCase
Functions
constantCase(input: string, options?: Options): stringconvertToProjectFileCasing
Functions
convertToProjectFileCasing(input: string, puristaProjectConfig: { $schema: string; agentPath: string; eventBridge: "default" | "amqp" | "nats" | "mqtt" | "dapr"; eventConvention: "camel" | "snake" | "kebab" | "pascal" | "pascalSnake" | "constantCase" | "dotCase" | "pathCase" | "trainCase"; fileConvention: "camel" | "snake" | "kebab" | "pascal" | "pascalSnake"; formatter: "biome" | "prettier" | "none"; ... }): stringcreateAgentImplementationFile
Functions
createAgentImplementationFile(input: CreateProjectInput): stringcreateAgentsFile
Functions
createAgentsFile(input: CreateProjectInput): stringcreateAmqpConfigFile
Functions
createAmqpConfigFile(): stringcreateBiomeConfigFile
Functions
createBiomeConfigFile(): stringcreateClaudeFile
Functions
createClaudeFile(): stringcreateDaprConfigFile
Functions
createDaprConfigFile(): stringcreateEntrypointFile
Functions
createEntrypointFile(input: CreateProjectInput, puristaConfig: { $schema: string; agentPath: string; eventBridge: "default" | "amqp" | "nats" | "mqtt" | "dapr"; eventConvention: "camel" | "snake" | "kebab" | "pascal" | "pascalSnake" | "constantCase" | "dotCase" | "pathCase" | "trainCase"; fileConvention: "camel" | "snake" | "kebab" | "pascal" | "pascalSnake"; formatter: "biome" | "prettier" | "none"; ... }): stringcreateEslintModuleConfigFile
Functions
createEslintModuleConfigFile(): stringcreateEventBridgeFile
Functions
createEventBridgeFile(input: CreateProjectInput): stringcreateGitIgnoreFile
Functions
createGitIgnoreFile(): stringcreateHttpConfigFile
Functions
createHttpConfigFile(): stringcreateHttpFile
Functions
createHttpFile(runtime: "node" | "bun"): "import type { EventBridge, Logger, Service } from '@purista/core'\nimport { honoV1Service } from '@purista/hono-http-server'\nimport { apiReference } from '@scalar/hono-api-reference'\nimport { serveStatic } from 'hono/bun'\nimport httpConfig from './config/http.js'\n\nexport const getHttpServer = async (input: { eventBridge: EventBridge; logger: Logger; services: Service[] }) => {\n\tconst honoService = await honoV1Service.getInstance(input.eventBridge, {\n\t\tlogger: input.logger,\n\t\tserviceConfig: { ...httpConfig.serviceConfig, services: input.services },\n\t})\n\n\thonoService.app.get(\n\t\thttpConfig.serviceConfig.apiMountPath,\n\t\tapiReference({\n\t\t\tpageTitle: httpConfig.serviceConfig.openApi.info.title,\n\t\t\tspec: {\n\t\t\t\turl: `${httpConfig.serviceConfig.apiMountPath}/openapi.json`,\n\t\t\t},\n\t\t}),\n\t)\n\n\thonoService.app.get('*', serveStatic({ root: httpConfig.root }))\n\thonoService.openApi.addServer({\n\t\turl: `http://localhost:${httpConfig.port}`,\n\t\tdescription: 'the local server',\n\t})\n\n\tawait honoService.start()\n\n\tconst serverInstance = Bun.serve({\n\t\tfetch: honoService.app.fetch,\n\t\tport: httpConfig.port,\n\t})\n\n\treturn { honoService, serverInstance }\n}\n" | "import { serve } from '@hono/node-server'\nimport { serveStatic } from '@hono/node-server/serve-static'\nimport type { EventBridge, Logger, Service } from '@purista/core'\nimport { honoV1Service } from '@purista/hono-http-server'\nimport { apiReference } from '@scalar/hono-api-reference'\nimport httpConfig from './config/http.js'\n\nexport const getHttpServer = async (input: { eventBridge: EventBridge; logger: Logger; services: Service[] }) => {\n\tconst honoService = await honoV1Service.getInstance(input.eventBridge, {\n\t\tlogger: input.logger,\n\t\tserviceConfig: { ...httpConfig.serviceConfig, services: input.services },\n\t})\n\n\thonoService.app.get(\n\t\thttpConfig.serviceConfig.apiMountPath,\n\t\tapiReference({\n\t\t\tpageTitle: httpConfig.serviceConfig.openApi.info.title,\n\t\t\tspec: {\n\t\t\t\turl: `${httpConfig.serviceConfig.apiMountPath}/openapi.json`,\n\t\t\t},\n\t\t}),\n\t)\n\n\thonoService.app.get('*', serveStatic({ root: httpConfig.root }))\n\thonoService.openApi.addServer({ url: `http://localhost:${httpConfig.port}`, description: 'the local server' })\n\n\tawait honoService.start()\n\n\tconst serverInstance = serve({\n\t\tfetch: honoService.app.fetch,\n\t\tport: httpConfig.port,\n\t})\n\n\treturn { honoService, serverInstance }\n}\n"createMqttConfigFile
Functions
createMqttConfigFile(): stringcreateNatsConfigFile
Functions
createNatsConfigFile(): stringcreateProjectSnapshot
Functions
createProjectSnapshot(puristaConfig: { $schema: string; agentPath: string; eventBridge: "default" | "amqp" | "nats" | "mqtt" | "dapr"; eventConvention: "camel" | "snake" | "kebab" | "pascal" | "pascalSnake" | "constantCase" | "dotCase" | "pathCase" | "trainCase"; fileConvention: "camel" | "snake" | "kebab" | "pascal" | "pascalSnake"; formatter: "biome" | "prettier" | "none"; ... }, projectRootPath?: string): Promise<ProjectSnapshot>createPublicIndexHtml
Functions
createPublicIndexHtml(input: CreateProjectInput): stringcreatePuristaCliEngine
Functions
createPuristaCliEngine(options: PuristaCliEngineOptions): { resolvePuristaCommand: (commandId: "add-service" | "add-command" | "add-subscription" | "add-stream" | "add-queue" | "add-queue-worker" | "add-agent" | "export-asyncapi" | "export-runtime-capabilities" | "export-schedule-manifest" | "export-kubernetes-cronjob" | "export-cloudevents-schema" | "init-project", input: TInput) => Promise<PuristaCommandResolution<TInput, unknown>>; runPuristaCommand: (commandId: "add-service" | "add-command" | "add-subscription" | "add-stream" | "add-queue" | "add-queue-worker" | "add-agent" | "export-asyncapi" | "export-runtime-capabilities" | "export-schedule-manifest" | "export-kubernetes-cronjob" | "export-cloudevents-schema" | "init-project", input: TInput) => Promise<PuristaCommandResult> }createReadmeFile
Functions
createReadmeFile(input: CreateProjectInput): stringcreateServiceEventEnumFile
Functions
createServiceEventEnumFile(input: CreateProjectInput): stringdotCase
Functions
dotCase(input: string, options?: Options): stringgetCommandBuilderFileContent
Functions
getCommandBuilderFileContent(input: { codeWriterOptions: Partial<Options>; commandDescription: string; commandName: string; enqueueOptions: EnqueueOption[]; puristaConfig: { $schema: string; agentPath: string; eventBridge: "default" | "amqp" | "nats" | "mqtt" | "dapr"; eventConvention: "camel" | "snake" | "kebab" | "pascal" | "pascalSnake" | "constantCase" | "dotCase" | "pathCase" | "trainCase"; fileConvention: "camel" | "snake" | "kebab" | "pascal" | "pascalSnake"; formatter: "biome" | "prettier" | "none"; ... }; puristaProject: PuristaProjectInfo; ... }): stringgetCommandSchemaFileContent
Functions
getCommandSchemaFileContent(input: { codeWriterOptions: Partial<Options>; commandName: string; puristaConfig: { $schema: string; agentPath: string; eventBridge: "default" | "amqp" | "nats" | "mqtt" | "dapr"; eventConvention: "camel" | "snake" | "kebab" | "pascal" | "pascalSnake" | "constantCase" | "dotCase" | "pathCase" | "trainCase"; fileConvention: "camel" | "snake" | "kebab" | "pascal" | "pascalSnake"; formatter: "biome" | "prettier" | "none"; ... }; serviceName: string; serviceVersion: string }): stringgetCommandTestFileContent
Functions
getCommandTestFileContent(input: { codeWriterOptions: Partial<Options>; commandName: string; puristaConfig: { $schema: string; agentPath: string; eventBridge: "default" | "amqp" | "nats" | "mqtt" | "dapr"; eventConvention: "camel" | "snake" | "kebab" | "pascal" | "pascalSnake" | "constantCase" | "dotCase" | "pathCase" | "trainCase"; fileConvention: "camel" | "snake" | "kebab" | "pascal" | "pascalSnake"; formatter: "biome" | "prettier" | "none"; ... }; serviceName: string; serviceVersion: string }): stringgetCommandTypeFileContent
Functions
getCommandTypeFileContent(input: { codeWriterOptions: Partial<Options>; commandName: string; puristaConfig: { $schema: string; agentPath: string; eventBridge: "default" | "amqp" | "nats" | "mqtt" | "dapr"; eventConvention: "camel" | "snake" | "kebab" | "pascal" | "pascalSnake" | "constantCase" | "dotCase" | "pathCase" | "trainCase"; fileConvention: "camel" | "snake" | "kebab" | "pascal" | "pascalSnake"; formatter: "biome" | "prettier" | "none"; ... }; serviceName: string; serviceVersion: string }): stringgetGeneralServiceConfigFileContent
Functions
getGeneralServiceConfigFileContent(input: { codeWriterOptions: Partial<Options>; serviceDescription: string; serviceName: string }): stringgetQueueBuilderFileContent
Functions
getQueueBuilderFileContent(input: { codeWriterOptions: Partial<Options>; puristaConfig: { $schema: string; agentPath: string; eventBridge: "default" | "amqp" | "nats" | "mqtt" | "dapr"; eventConvention: "camel" | "snake" | "kebab" | "pascal" | "pascalSnake" | "constantCase" | "dotCase" | "pathCase" | "trainCase"; fileConvention: "camel" | "snake" | "kebab" | "pascal" | "pascalSnake"; formatter: "biome" | "prettier" | "none"; ... }; queueDescription: string; queueName: string; serviceName: string; serviceVersion: string }): stringgetQueueSchemaFileContent
Functions
getQueueSchemaFileContent(input: { codeWriterOptions: Partial<Options>; puristaConfig: { $schema: string; agentPath: string; eventBridge: "default" | "amqp" | "nats" | "mqtt" | "dapr"; eventConvention: "camel" | "snake" | "kebab" | "pascal" | "pascalSnake" | "constantCase" | "dotCase" | "pathCase" | "trainCase"; fileConvention: "camel" | "snake" | "kebab" | "pascal" | "pascalSnake"; formatter: "biome" | "prettier" | "none"; ... }; queueName: string; serviceName: string; serviceVersion: string }): stringgetQueueTestFileContent
Functions
getQueueTestFileContent(input: { codeWriterOptions: Partial<Options>; puristaConfig: { $schema: string; agentPath: string; eventBridge: "default" | "amqp" | "nats" | "mqtt" | "dapr"; eventConvention: "camel" | "snake" | "kebab" | "pascal" | "pascalSnake" | "constantCase" | "dotCase" | "pathCase" | "trainCase"; fileConvention: "camel" | "snake" | "kebab" | "pascal" | "pascalSnake"; formatter: "biome" | "prettier" | "none"; ... }; queueName: string; serviceName: string; serviceVersion: string }): stringgetQueueTypeFileContent
Functions
getQueueTypeFileContent(input: { codeWriterOptions: Partial<Options>; puristaConfig: { $schema: string; agentPath: string; eventBridge: "default" | "amqp" | "nats" | "mqtt" | "dapr"; eventConvention: "camel" | "snake" | "kebab" | "pascal" | "pascalSnake" | "constantCase" | "dotCase" | "pathCase" | "trainCase"; fileConvention: "camel" | "snake" | "kebab" | "pascal" | "pascalSnake"; formatter: "biome" | "prettier" | "none"; ... }; queueName: string; serviceName: string; serviceVersion: string }): stringgetQueueWorkerBuilderFileContent
Functions
getQueueWorkerBuilderFileContent(input: { codeWriterOptions: Partial<Options>; intervalMs: number; maxParallelHandlers: number; mode: "continuous" | "interval" | "sequential"; puristaConfig: { $schema: string; agentPath: string; eventBridge: "default" | "amqp" | "nats" | "mqtt" | "dapr"; eventConvention: "camel" | "snake" | "kebab" | "pascal" | "pascalSnake" | "constantCase" | "dotCase" | "pathCase" | "trainCase"; fileConvention: "camel" | "snake" | "kebab" | "pascal" | "pascalSnake"; formatter: "biome" | "prettier" | "none"; ... }; queueName: string; ... }): stringgetQueueWorkerTestFileContent
Functions
getQueueWorkerTestFileContent(input: { codeWriterOptions: Partial<Options>; puristaConfig: { $schema: string; agentPath: string; eventBridge: "default" | "amqp" | "nats" | "mqtt" | "dapr"; eventConvention: "camel" | "snake" | "kebab" | "pascal" | "pascalSnake" | "constantCase" | "dotCase" | "pathCase" | "trainCase"; fileConvention: "camel" | "snake" | "kebab" | "pascal" | "pascalSnake"; formatter: "biome" | "prettier" | "none"; ... }; queueName: string; serviceName: string; serviceVersion: string; workerName: string }): stringgetServiceBuilderFileContent
Functions
getServiceBuilderFileContent(input: { codeWriterOptions: Partial<Options>; puristaConfig: { $schema: string; agentPath: string; eventBridge: "default" | "amqp" | "nats" | "mqtt" | "dapr"; eventConvention: "camel" | "snake" | "kebab" | "pascal" | "pascalSnake" | "constantCase" | "dotCase" | "pathCase" | "trainCase"; fileConvention: "camel" | "snake" | "kebab" | "pascal" | "pascalSnake"; formatter: "biome" | "prettier" | "none"; ... }; serviceName: string; serviceVersion: string }): stringgetServiceConfigFileContent
Functions
getServiceConfigFileContent(input: { codeWriterOptions: Partial<Options>; serviceName: string; serviceVersion: string }): stringgetServiceFileContent
Functions
getServiceFileContent(input: { codeWriterOptions: Partial<Options>; puristaConfig: { $schema: string; agentPath: string; eventBridge: "default" | "amqp" | "nats" | "mqtt" | "dapr"; eventConvention: "camel" | "snake" | "kebab" | "pascal" | "pascalSnake" | "constantCase" | "dotCase" | "pathCase" | "trainCase"; fileConvention: "camel" | "snake" | "kebab" | "pascal" | "pascalSnake"; formatter: "biome" | "prettier" | "none"; ... }; serviceName: string; serviceVersion: string }): stringgetServiceTestFileContent
Functions
getServiceTestFileContent(input: { codeWriterOptions: Partial<Options>; puristaConfig: { $schema: string; agentPath: string; eventBridge: "default" | "amqp" | "nats" | "mqtt" | "dapr"; eventConvention: "camel" | "snake" | "kebab" | "pascal" | "pascalSnake" | "constantCase" | "dotCase" | "pathCase" | "trainCase"; fileConvention: "camel" | "snake" | "kebab" | "pascal" | "pascalSnake"; formatter: "biome" | "prettier" | "none"; ... }; serviceName: string; serviceVersion: string }): stringgetStreamBuilderFileContent
Functions
getStreamBuilderFileContent(input: { codeWriterOptions: Partial<Options>; puristaConfig: { $schema: string; agentPath: string; eventBridge: "default" | "amqp" | "nats" | "mqtt" | "dapr"; eventConvention: "camel" | "snake" | "kebab" | "pascal" | "pascalSnake" | "constantCase" | "dotCase" | "pathCase" | "trainCase"; fileConvention: "camel" | "snake" | "kebab" | "pascal" | "pascalSnake"; formatter: "biome" | "prettier" | "none"; ... }; puristaProject: PuristaProjectInfo; responseEventName: string; serviceName: string; serviceVersion: string; ... }): stringgetStreamSchemaFileContent
Functions
getStreamSchemaFileContent(input: { codeWriterOptions: Partial<Options>; puristaConfig: { $schema: string; agentPath: string; eventBridge: "default" | "amqp" | "nats" | "mqtt" | "dapr"; eventConvention: "camel" | "snake" | "kebab" | "pascal" | "pascalSnake" | "constantCase" | "dotCase" | "pathCase" | "trainCase"; fileConvention: "camel" | "snake" | "kebab" | "pascal" | "pascalSnake"; formatter: "biome" | "prettier" | "none"; ... }; serviceName: string; serviceVersion: string; streamName: string }): stringgetStreamTestFileContent
Functions
getStreamTestFileContent(input: { codeWriterOptions: Partial<Options>; puristaConfig: { $schema: string; agentPath: string; eventBridge: "default" | "amqp" | "nats" | "mqtt" | "dapr"; eventConvention: "camel" | "snake" | "kebab" | "pascal" | "pascalSnake" | "constantCase" | "dotCase" | "pathCase" | "trainCase"; fileConvention: "camel" | "snake" | "kebab" | "pascal" | "pascalSnake"; formatter: "biome" | "prettier" | "none"; ... }; serviceName: string; serviceVersion: string; streamName: string }): stringgetStreamTypeFileContent
Functions
getStreamTypeFileContent(input: { codeWriterOptions: Partial<Options>; puristaConfig: { $schema: string; agentPath: string; eventBridge: "default" | "amqp" | "nats" | "mqtt" | "dapr"; eventConvention: "camel" | "snake" | "kebab" | "pascal" | "pascalSnake" | "constantCase" | "dotCase" | "pathCase" | "trainCase"; fileConvention: "camel" | "snake" | "kebab" | "pascal" | "pascalSnake"; formatter: "biome" | "prettier" | "none"; ... }; serviceName: string; serviceVersion: string; streamName: string }): stringgetSubscriptionBuilderFileContent
Functions
getSubscriptionBuilderFileContent(input: { codeWriterOptions: Partial<Options>; puristaConfig: { $schema: string; agentPath: string; eventBridge: "default" | "amqp" | "nats" | "mqtt" | "dapr"; eventConvention: "camel" | "snake" | "kebab" | "pascal" | "pascalSnake" | "constantCase" | "dotCase" | "pathCase" | "trainCase"; fileConvention: "camel" | "snake" | "kebab" | "pascal" | "pascalSnake"; formatter: "biome" | "prettier" | "none"; ... }; puristaProject: PuristaProjectInfo; responseEventName: string; serviceName: string; serviceVersion: string; ... }): stringgetSubscriptionSchemaFileContent
Functions
getSubscriptionSchemaFileContent(input: { codeWriterOptions: Partial<Options>; puristaConfig: { $schema: string; agentPath: string; eventBridge: "default" | "amqp" | "nats" | "mqtt" | "dapr"; eventConvention: "camel" | "snake" | "kebab" | "pascal" | "pascalSnake" | "constantCase" | "dotCase" | "pathCase" | "trainCase"; fileConvention: "camel" | "snake" | "kebab" | "pascal" | "pascalSnake"; formatter: "biome" | "prettier" | "none"; ... }; responseEventName: string; serviceName: string; serviceVersion: string; subscriptionName: string }): stringgetSubscriptionTestFileContent
Functions
getSubscriptionTestFileContent(input: { codeWriterOptions: Partial<Options>; puristaConfig: { $schema: string; agentPath: string; eventBridge: "default" | "amqp" | "nats" | "mqtt" | "dapr"; eventConvention: "camel" | "snake" | "kebab" | "pascal" | "pascalSnake" | "constantCase" | "dotCase" | "pathCase" | "trainCase"; fileConvention: "camel" | "snake" | "kebab" | "pascal" | "pascalSnake"; formatter: "biome" | "prettier" | "none"; ... }; serviceName: string; serviceVersion: string; subscriptionName: string }): stringgetSubscriptionTypeFileContent
Functions
getSubscriptionTypeFileContent(input: { codeWriterOptions: Partial<Options>; puristaConfig: { $schema: string; agentPath: string; eventBridge: "default" | "amqp" | "nats" | "mqtt" | "dapr"; eventConvention: "camel" | "snake" | "kebab" | "pascal" | "pascalSnake" | "constantCase" | "dotCase" | "pathCase" | "trainCase"; fileConvention: "camel" | "snake" | "kebab" | "pascal" | "pascalSnake"; formatter: "biome" | "prettier" | "none"; ... }; responseEventName: string; serviceName: string; serviceVersion: string; subscriptionName: string }): stringkebabCase
Functions
kebabCase(input: string, options?: Options): stringloadPuristaConfig
Functions
loadPuristaConfig(projectRootPath?: string): Promise<{ $schema: string; agentPath: string; eventBridge: "default" | "amqp" | "nats" | "mqtt" | "dapr"; eventConvention: "camel" | "snake" | "kebab" | "pascal" | "pascalSnake" | "constantCase" | "dotCase" | "pathCase" | "trainCase"; fileConvention: "camel" | "snake" | "kebab" | "pascal" | "pascalSnake"; formatter: "biome" | "prettier" | "none"; ... }>materializeProjectGeneration
Functions
materializeProjectGeneration(plan: ProjectGenerationPlan): Promise<{ files: string[]; targetDirectoryPath: string }>noCase
Functions
noCase(input: string, options?: Options): stringpascalCase
Functions
pascalCase(input: string, options?: PascalCaseOptions): stringpascalSnakeCase
Functions
pascalSnakeCase(input: string, options?: Options): stringpathCase
Functions
pathCase(input: string, options?: Options): stringplanProjectGeneration
Functions
planProjectGeneration(input: CreateProjectInput, options: { cwd: string }): ProjectGenerationPlanresolveProjectBlueprints
Functions
resolveProjectBlueprints(input: CreateProjectInput, options: { cwd: string }): ResolvedProjectBlueprintsresolvePuristaCommand
Functions
resolvePuristaCommand<TInput>(commandId: "add-service" | "add-command" | "add-subscription" | "add-stream" | "add-queue" | "add-queue-worker" | "add-agent" | "export-asyncapi" | "export-runtime-capabilities" | "export-schedule-manifest" | "export-kubernetes-cronjob" | "export-cloudevents-schema" | "init-project", input: TInput, options?: PuristaCliEngineOptions): Promise<PuristaCommandResolution<TInput, unknown>>runPuristaCommand
Functions
runPuristaCommand<TInput>(commandId: "add-service" | "add-command" | "add-subscription" | "add-stream" | "add-queue" | "add-queue-worker" | "add-agent" | "export-asyncapi" | "export-runtime-capabilities" | "export-schedule-manifest" | "export-kubernetes-cronjob" | "export-cloudevents-schema" | "init-project", input: TInput, options?: PuristaCliEngineOptions): Promise<PuristaCommandResult>scanPuristaProject
Functions
scanPuristaProject(puristaConfig: { $schema: string; agentPath: string; eventBridge: "default" | "amqp" | "nats" | "mqtt" | "dapr"; eventConvention: "camel" | "snake" | "kebab" | "pascal" | "pascalSnake" | "constantCase" | "dotCase" | "pathCase" | "trainCase"; fileConvention: "camel" | "snake" | "kebab" | "pascal" | "pascalSnake"; formatter: "biome" | "prettier" | "none"; ... }, projectRootPath?: string): Promise<PuristaProjectInfo>sentenceCase
Functions
sentenceCase(input: string, options?: Options): stringsnakeCase
Functions
snakeCase(input: string, options?: Options): stringsplit
Functions
split(value: string): string[]splitSeparateNumbers
Functions
splitSeparateNumbers(value: string): string[]trainCase
Functions
trainCase(input: string, options?: Options): string