@qualitas-id/shared-types

v1.4.1

Published

Shared TypeScript types for the Qualitas test automation platform. This package provides type definitions used across Frontend, Backend, Recorder, and Runner components.

Readme

@qualitas-id/shared-types

Shared TypeScript types for the Qualitas test automation platform. This package provides type definitions used across Frontend, Backend, Recorder, and Runner components.

šŸ“¦ Installation

npm install @qualitas-id/shared-types

šŸ“š Type Categories

Flow Types

  • Flow, FlowNode, FlowEdge - Core flow structure
  • FlowNodeType, ActionType - Node type definitions
  • NodeData and all specific node data types (NavigateNodeData, ClickNodeData, etc.)
  • Environment, Variable - Flow configuration

Execution Types

  • RunStatus, StepStatus - Execution state
  • StepResult, ExecutionContext - Runtime data
  • SSEEvent, SSEEventType - Server-sent events
  • RunFlowJobData - Queue job payloads

Recorder Types

  • RecorderConfig, ApiConfig - Chrome extension configuration
  • ActionPayload, ActionStep - User action recording
  • RecordedFlow, RecordingState - Recording state
  • ChromeMessage - Message passing

API Types

  • ApiResponse<T>, ApiError - Standard API responses
  • PaginatedResponse<T>, PaginationMeta - Pagination
  • Query types for projects, flows, and runs

šŸ”Ø Usage

import type { 
  Flow, 
  FlowNode, 
  RunStatus, 
  ApiResponse 
} from '@qualitas-id/shared-types';

// Use in your code
const flow: Flow = {
  id: '123',
  name: 'Login Test',
  // ...
};

const response: ApiResponse<Flow> = {
  success: true,
  data: flow
};

šŸš€ Publishing Updates

1. Make Your Changes

Edit type files in src/:

  • flow.ts - Flow and node types
  • execution.ts - Runtime execution types
  • recorder.ts - Chrome extension types
  • api.ts - API response types

2. Build the Package

npm run build

3. Bump Version

Choose based on change type:

# Bug fixes: 1.0.0 → 1.0.1
npm version patch

# New features (backward compatible): 1.0.0 → 1.1.0
npm version minor

# Breaking changes: 1.0.0 → 2.0.0
npm version major

4. Publish to npm

npm publish --access public

5. Update Consumer Projects

# In each project (frontend, backend, recorder, runner, mcp-server)
npm install @qualitas-id/shared-types@latest
npm run build

šŸ“ Project Structure

shared-types/
ā”œā”€ā”€ src/
│   ā”œā”€ā”€ index.ts              # Main exports
│   ā”œā”€ā”€ flow.ts               # Flow and node types
│   ā”œā”€ā”€ flow-node-types.ts    # Node type constants
│   ā”œā”€ā”€ node-data.ts          # Node data interfaces
│   ā”œā”€ā”€ execution.ts          # Runtime types
│   ā”œā”€ā”€ recorder.ts           # Chrome extension types
│   └── api.ts                # API types
ā”œā”€ā”€ dist/                     # Compiled output (generated)
ā”œā”€ā”€ package.json
ā”œā”€ā”€ tsconfig.json
└── README.md

šŸ”„ Quick Publish Workflow

# All in one command
npm run build && npm version patch && npm publish --access public

# Then update all projects
cd ../front-end && npm install @qualitas-id/shared-types@latest
cd ../back-end && npm install @qualitas-id/shared-types@latest
cd ../recorder && npm install @qualitas-id/shared-types@latest
cd ../runner && npm install @qualitas-id/shared-types@latest
cd ../qualitas-mcp-server && npm install @qualitas-id/shared-types@latest

āš™ļø Development Scripts

# Build TypeScript to JavaScript
npm run build

# Clean build output
npm run clean

šŸ“ Notes

  • Always build before publishing: Run npm run build to compile TypeScript
  • Version matters: Use semantic versioning appropriately
  • Update consumers: After publishing, update all projects that use this package
  • Public package: Published to npm as @qualitas-id/shared-types

šŸ”— Repository

https://github.com/firdyfirdy/qualitas-shared-types

šŸ“„ License

MIT