captan
Version:
Captan — Command your ownership. A tiny, hackable CLI cap table tool.
414 lines • 12.3 kB
TypeScript
export declare const CURRENT_SCHEMA_VERSION = 1;
export declare const MIN_SUPPORTED_VERSION = 1;
export declare const MAX_SUPPORTED_VERSION = 1;
export interface ValidationWarning {
path: string;
message: string;
severity: 'warning' | 'info';
}
export interface ExtendedValidationResult {
valid: boolean;
errors?: string[];
warnings?: ValidationWarning[];
}
export interface SchemaVersion {
version: number;
releaseDate: string;
breaking: boolean;
changes: string[];
}
export declare const SCHEMA_VERSIONS: SchemaVersion[];
export declare function generateJsonSchema(): {
type: "string";
minLength?: number;
maxLength?: number;
format?: "email" | "idn-email" | "uri" | "uuid" | "date-time" | "ipv4" | "ipv6" | "date" | "time" | "duration";
pattern?: string;
allOf?: {
pattern: string;
errorMessage?: import("zod-to-json-schema").ErrorMessages<{
pattern: string;
}>;
}[];
anyOf?: {
format: string;
errorMessage?: import("zod-to-json-schema").ErrorMessages<{
format: string;
}>;
}[];
errorMessage?: import("zod-to-json-schema").ErrorMessages<import("zod-to-json-schema").JsonSchema7StringType>;
contentEncoding?: string;
title: string;
default?: any;
description: string;
markdownDescription?: string;
$schema: string;
definitions?: {
[key: string]: import("zod-to-json-schema").JsonSchema7Type;
} | undefined;
$id: string;
} | {
type: "array";
items?: import("zod-to-json-schema").JsonSchema7Type;
minItems?: number;
maxItems?: number;
errorMessages?: import("zod-to-json-schema").ErrorMessages<import("zod-to-json-schema").JsonSchema7ArrayType, "items">;
title: string;
default?: any;
description: string;
markdownDescription?: string;
$schema: string;
definitions?: {
[key: string]: import("zod-to-json-schema").JsonSchema7Type;
} | undefined;
$id: string;
} | {
type: "number" | "integer";
minimum?: number;
exclusiveMinimum?: number;
maximum?: number;
exclusiveMaximum?: number;
multipleOf?: number;
errorMessage?: import("zod-to-json-schema").ErrorMessages<import("zod-to-json-schema").JsonSchema7NumberType>;
title: string;
default?: any;
description: string;
markdownDescription?: string;
$schema: string;
definitions?: {
[key: string]: import("zod-to-json-schema").JsonSchema7Type;
} | undefined;
$id: string;
} | {
type: "integer";
format: "int64";
minimum?: BigInt;
exclusiveMinimum?: BigInt;
maximum?: BigInt;
exclusiveMaximum?: BigInt;
multipleOf?: BigInt;
errorMessage?: import("zod-to-json-schema").ErrorMessages<import("zod-to-json-schema").JsonSchema7BigintType>;
title: string;
default?: any;
description: string;
markdownDescription?: string;
$schema: string;
definitions?: {
[key: string]: import("zod-to-json-schema").JsonSchema7Type;
} | undefined;
$id: string;
} | {
type: "boolean";
title: string;
default?: any;
description: string;
markdownDescription?: string;
$schema: string;
definitions?: {
[key: string]: import("zod-to-json-schema").JsonSchema7Type;
} | undefined;
$id: string;
} | {
type: "integer" | "string";
format: "unix-time" | "date-time" | "date";
minimum?: number;
maximum?: number;
errorMessage?: import("zod-to-json-schema").ErrorMessages<import("zod-to-json-schema").JsonSchema7NumberType>;
title: string;
default?: any;
description: string;
markdownDescription?: string;
$schema: string;
definitions?: {
[key: string]: import("zod-to-json-schema").JsonSchema7Type;
} | undefined;
$id: string;
} | {
anyOf: import("zod-to-json-schema").JsonSchema7DateType[];
title: string;
default?: any;
description: string;
markdownDescription?: string;
$schema: string;
definitions?: {
[key: string]: import("zod-to-json-schema").JsonSchema7Type;
} | undefined;
$id: string;
} | {
type: "string";
enum: string[];
title: string;
default?: any;
description: string;
markdownDescription?: string;
$schema: string;
definitions?: {
[key: string]: import("zod-to-json-schema").JsonSchema7Type;
} | undefined;
$id: string;
} | {
type: "string" | "number" | "integer" | "boolean";
const: string | number | boolean;
title: string;
default?: any;
description: string;
markdownDescription?: string;
$schema: string;
definitions?: {
[key: string]: import("zod-to-json-schema").JsonSchema7Type;
} | undefined;
$id: string;
} | {
type: "object" | "array";
title: string;
default?: any;
description: string;
markdownDescription?: string;
$schema: string;
definitions?: {
[key: string]: import("zod-to-json-schema").JsonSchema7Type;
} | undefined;
$id: string;
} | {
type: "string" | "number" | ["string", "number"];
enum: (string | number)[];
title: string;
default?: any;
description: string;
markdownDescription?: string;
$schema: string;
definitions?: {
[key: string]: import("zod-to-json-schema").JsonSchema7Type;
} | undefined;
$id: string;
} | {
type: "null";
title: string;
default?: any;
description: string;
markdownDescription?: string;
$schema: string;
definitions?: {
[key: string]: import("zod-to-json-schema").JsonSchema7Type;
} | undefined;
$id: string;
} | {
type: "object";
properties: Record<string, import("zod-to-json-schema").JsonSchema7Type>;
additionalProperties?: boolean | import("zod-to-json-schema").JsonSchema7Type;
required?: string[];
title: string;
default?: any;
description: string;
markdownDescription?: string;
$schema: string;
definitions?: {
[key: string]: import("zod-to-json-schema").JsonSchema7Type;
} | undefined;
$id: string;
} | {
type: "object";
additionalProperties?: import("zod-to-json-schema").JsonSchema7Type | true;
propertyNames?: Omit<import("zod-to-json-schema").JsonSchema7StringType, "type"> | Omit<import("zod-to-json-schema").JsonSchema7EnumType, "type">;
title: string;
default?: any;
description: string;
markdownDescription?: string;
$schema: string;
definitions?: {
[key: string]: import("zod-to-json-schema").JsonSchema7Type;
} | undefined;
$id: string;
} | {
type: "array";
minItems: number;
items: import("zod-to-json-schema").JsonSchema7Type[];
maxItems: number;
title: string;
default?: any;
description: string;
markdownDescription?: string;
$schema: string;
definitions?: {
[key: string]: import("zod-to-json-schema").JsonSchema7Type;
} | undefined;
$id: string;
} | {
type: "array";
minItems: number;
items: import("zod-to-json-schema").JsonSchema7Type[];
additionalItems?: import("zod-to-json-schema").JsonSchema7Type;
title: string;
default?: any;
description: string;
markdownDescription?: string;
$schema: string;
definitions?: {
[key: string]: import("zod-to-json-schema").JsonSchema7Type;
} | undefined;
$id: string;
} | {
type: ("string" | "number" | "boolean" | "integer" | "null") | ("string" | "number" | "boolean" | "integer" | "null")[];
title: string;
default?: any;
description: string;
markdownDescription?: string;
$schema: string;
definitions?: {
[key: string]: import("zod-to-json-schema").JsonSchema7Type;
} | undefined;
$id: string;
} | {
type: ("string" | "number" | "boolean" | "integer" | "null") | ("string" | "number" | "boolean" | "integer" | "null")[];
enum: (string | number | bigint | boolean | null)[];
title: string;
default?: any;
description: string;
markdownDescription?: string;
$schema: string;
definitions?: {
[key: string]: import("zod-to-json-schema").JsonSchema7Type;
} | undefined;
$id: string;
} | {
anyOf: import("zod-to-json-schema").JsonSchema7Type[];
title: string;
default?: any;
description: string;
markdownDescription?: string;
$schema: string;
definitions?: {
[key: string]: import("zod-to-json-schema").JsonSchema7Type;
} | undefined;
$id: string;
} | {
not: import("zod-to-json-schema").JsonSchema7AnyType;
title: string;
default?: any;
description: string;
markdownDescription?: string;
$schema: string;
definitions?: {
[key: string]: import("zod-to-json-schema").JsonSchema7Type;
} | undefined;
$id: string;
} | {
$ref: string;
title: string;
default?: any;
description: string;
markdownDescription?: string;
$schema: string;
definitions?: {
[key: string]: import("zod-to-json-schema").JsonSchema7Type;
} | undefined;
$id: string;
} | {
not: import("zod-to-json-schema").JsonSchema7AnyType;
title: string;
default?: any;
description: string;
markdownDescription?: string;
$schema: string;
definitions?: {
[key: string]: import("zod-to-json-schema").JsonSchema7Type;
} | undefined;
$id: string;
} | {
type: "array";
maxItems: 125;
items: {
type: "array";
items: [import("zod-to-json-schema").JsonSchema7Type, import("zod-to-json-schema").JsonSchema7Type];
minItems: 2;
maxItems: 2;
};
title: string;
default?: any;
description: string;
markdownDescription?: string;
$schema: string;
definitions?: {
[key: string]: import("zod-to-json-schema").JsonSchema7Type;
} | undefined;
$id: string;
} | {
$ref?: string;
title: string;
default?: any;
description: string;
markdownDescription?: string;
$schema: string;
definitions?: {
[key: string]: import("zod-to-json-schema").JsonSchema7Type;
} | undefined;
$id: string;
} | {
anyOf: [import("zod-to-json-schema").JsonSchema7Type, import("zod-to-json-schema").JsonSchema7NullType];
title: string;
default?: any;
description: string;
markdownDescription?: string;
$schema: string;
definitions?: {
[key: string]: import("zod-to-json-schema").JsonSchema7Type;
} | undefined;
$id: string;
} | {
type: [string, "null"];
title: string;
default?: any;
description: string;
markdownDescription?: string;
$schema: string;
definitions?: {
[key: string]: import("zod-to-json-schema").JsonSchema7Type;
} | undefined;
$id: string;
} | {
allOf: import("zod-to-json-schema").JsonSchema7Type[];
unevaluatedProperties?: boolean;
title: string;
default?: any;
description: string;
markdownDescription?: string;
$schema: string;
definitions?: {
[key: string]: import("zod-to-json-schema").JsonSchema7Type;
} | undefined;
$id: string;
} | {
type: "array";
uniqueItems: true;
items?: import("zod-to-json-schema").JsonSchema7Type;
minItems?: number;
maxItems?: number;
errorMessage?: import("zod-to-json-schema").ErrorMessages<import("zod-to-json-schema").JsonSchema7SetType>;
title: string;
default?: any;
description: string;
markdownDescription?: string;
$schema: string;
definitions?: {
[key: string]: import("zod-to-json-schema").JsonSchema7Type;
} | undefined;
$id: string;
};
export declare function getSchemaString(): string;
export declare function validateCaptable(data: unknown): {
valid: boolean;
errors?: string[];
};
/**
* Perform extended validation including business rules and cross-entity checks
*/
/**
* Check if a schema version is supported
*/
export declare function isVersionSupported(version: number): boolean;
/**
* Get migration instructions for upgrading between versions
*/
export declare function getMigrationInstructions(_fromVersion: number, _toVersion: number): string[];
export declare function validateCaptableExtended(data: unknown): ExtendedValidationResult;
//# sourceMappingURL=schema.d.ts.map