- Add Activepieces fork with SmoothSchedule custom piece - Create integrations app with Activepieces service layer - Add embed token endpoint for iframe integration - Create Automations page with embedded workflow builder - Add sidebar visibility fix for embed mode - Add list inactive customers endpoint to Public API - Include SmoothSchedule triggers: event created/updated/cancelled - Include SmoothSchedule actions: create/update/cancel events, list resources/services/customers 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
135 lines
3.9 KiB
TypeScript
135 lines
3.9 KiB
TypeScript
import { Static, Type } from '@sinclair/typebox'
|
|
import { ApMultipartFile } from '../../common'
|
|
import { ApEdition } from '../../flag/flag'
|
|
import { PackageType, PieceCategory } from '../piece'
|
|
|
|
export const EXACT_VERSION_PATTERN = '^[0-9]+\\.[0-9]+\\.[0-9]+$'
|
|
export const EXACT_VERSION_REGEX = new RegExp(EXACT_VERSION_PATTERN)
|
|
const VERSION_PATTERN = '^([~^])?[0-9]+\\.[0-9]+\\.[0-9]+$'
|
|
|
|
export const ExactVersionType = Type.String({
|
|
pattern: EXACT_VERSION_PATTERN,
|
|
})
|
|
export const VersionType = Type.String({
|
|
pattern: VERSION_PATTERN,
|
|
})
|
|
export enum SuggestionType {
|
|
ACTION = 'ACTION',
|
|
TRIGGER = 'TRIGGER',
|
|
ACTION_AND_TRIGGER = 'ACTION_AND_TRIGGER',
|
|
}
|
|
export enum PieceSortBy {
|
|
NAME = 'NAME',
|
|
UPDATED = 'UPDATED',
|
|
CREATED = 'CREATED',
|
|
POPULARITY = 'POPULARITY',
|
|
}
|
|
|
|
export enum PieceOrderBy {
|
|
ASC = 'ASC',
|
|
DESC = 'DESC',
|
|
}
|
|
|
|
export const GetPieceRequestWithScopeParams = Type.Object({
|
|
name: Type.String(),
|
|
scope: Type.String(),
|
|
})
|
|
|
|
export type GetPieceRequestWithScopeParams = Static<typeof GetPieceRequestWithScopeParams>
|
|
|
|
|
|
export const GetPieceRequestParams = Type.Object({
|
|
name: Type.String(),
|
|
})
|
|
|
|
export type GetPieceRequestParams = Static<typeof GetPieceRequestParams>
|
|
|
|
export const ListPiecesRequestQuery = Type.Object({
|
|
release: Type.Optional(ExactVersionType),
|
|
includeTags: Type.Optional(Type.Boolean()),
|
|
includeHidden: Type.Optional(Type.Boolean()),
|
|
edition: Type.Optional(Type.Enum(ApEdition)),
|
|
searchQuery: Type.Optional(Type.String()),
|
|
sortBy: Type.Optional(Type.Enum(PieceSortBy)),
|
|
orderBy: Type.Optional(Type.Enum(PieceOrderBy)),
|
|
categories: Type.Optional(Type.Array(Type.Enum(PieceCategory))),
|
|
suggestionType: Type.Optional(Type.Enum(SuggestionType)),
|
|
locale: Type.Optional(Type.String()),
|
|
})
|
|
|
|
export type ListPiecesRequestQuery = Static<typeof ListPiecesRequestQuery>
|
|
|
|
|
|
export const RegistryPiecesRequestQuery = Type.Object({
|
|
release: ExactVersionType,
|
|
edition: Type.Enum(ApEdition),
|
|
})
|
|
|
|
export type RegistryPiecesRequestQuery = Static<typeof RegistryPiecesRequestQuery>
|
|
|
|
export const ListVersionRequestQuery = Type.Object({
|
|
release: ExactVersionType,
|
|
name: Type.String(),
|
|
edition: Type.Optional(Type.Enum(ApEdition)),
|
|
})
|
|
|
|
export type ListVersionRequestQuery = Static<typeof ListVersionRequestQuery>
|
|
|
|
export const GetPieceRequestQuery = Type.Object({
|
|
version: Type.Optional(VersionType),
|
|
projectId: Type.Optional(Type.String()),
|
|
locale: Type.Optional(Type.String()),
|
|
})
|
|
|
|
export const ListVersionsResponse = Type.Record(ExactVersionType, Type.Object({}))
|
|
export type ListVersionsResponse = Static<typeof ListVersionsResponse>
|
|
|
|
export type GetPieceRequestQuery = Static<typeof GetPieceRequestQuery>
|
|
|
|
export const PieceOptionRequest = Type.Object({
|
|
pieceName: Type.String({}),
|
|
pieceVersion: VersionType,
|
|
actionOrTriggerName: Type.String({}),
|
|
propertyName: Type.String({}),
|
|
flowId: Type.String(),
|
|
flowVersionId: Type.String(),
|
|
input: Type.Any({}),
|
|
searchValue: Type.Optional(Type.String()),
|
|
})
|
|
|
|
export type PieceOptionRequest = Static<typeof PieceOptionRequest>
|
|
|
|
export enum PieceScope {
|
|
PLATFORM = 'PLATFORM',
|
|
// TODO: all users have their own platform, so we can remove this
|
|
// @deprecated
|
|
PROJECT = 'PROJECT',
|
|
|
|
}
|
|
|
|
export const AddPieceRequestBody = Type.Union([
|
|
Type.Object({
|
|
packageType: Type.Literal(PackageType.ARCHIVE),
|
|
scope: Type.Literal(PieceScope.PLATFORM),
|
|
pieceName: Type.String({
|
|
minLength: 1,
|
|
}),
|
|
pieceVersion: ExactVersionType,
|
|
pieceArchive: ApMultipartFile,
|
|
}, {
|
|
title: 'Private Piece',
|
|
}),
|
|
Type.Object({
|
|
packageType: Type.Literal(PackageType.REGISTRY),
|
|
scope: Type.Literal(PieceScope.PLATFORM),
|
|
pieceName: Type.String({
|
|
minLength: 1,
|
|
}),
|
|
pieceVersion: ExactVersionType,
|
|
}, {
|
|
title: 'NPM Piece',
|
|
}),
|
|
])
|
|
|
|
export type AddPieceRequestBody = Static<typeof AddPieceRequestBody>
|