forest-cli
Version:
The Lumberjacks' toolbelt is the Forest CLI which makes easy to manage your back office application directly from the terminal.
48 lines • 1.71 kB
TypeScript
/** Shared types for the `forest layout` commands (pull / diff / apply). */
/** The three patchable domains served by the generic layout patch engine. */
export type LayoutDomain = 'folders' | 'layout' | 'workflows';
export declare const LAYOUT_DOMAINS: LayoutDomain[];
/** A single RFC 6902 JSON-Patch operation, as accepted by `PATCH /api/:domain`. */
export type JsonPatchOp = {
op: 'add' | 'remove' | 'replace' | 'test';
path: string;
value?: unknown;
};
/** A diff-produced operation, enriched for display (`label`/`jsonPath`) and the 403 premium explanation (`premiumPack`). */
export type PlannedOp = JsonPatchOp & {
domain: LayoutDomain;
label: string;
premiumPack?: string;
jsonPath: string;
};
/** Minimal JSON:API resource shape (the rendering document uses snake_case attributes). */
export type JsonApiResource = {
attributes?: Record<string, unknown>;
id: string;
relationships?: Record<string, {
data?: unknown;
}>;
type: string;
};
/** A JSON:API document with its primary resource and the flattened `included` graph. */
export type JsonApiDocument = {
data: JsonApiResource;
included?: JsonApiResource[];
};
/** Fully-resolved patch scope (ids + names; names are used to build the GET URL). */
export type LayoutScope = {
environmentId: number;
environmentName: string;
projectId: number;
projectName: string;
serverUrl: string;
teamId: number;
teamName: string;
};
/** Parsed content of forest-layout.json (any domain may be absent on a partial pull). */
export type LayoutFileDoc = {
folders?: unknown[];
layout?: unknown;
workflows?: unknown[];
};
//# sourceMappingURL=types.d.ts.map