@jungvonmatt/sb-migrate
Version:
CLI tool for managing Storyblok schema and content migrations
278 lines (277 loc) • 9.54 kB
TypeScript
import StoryblokClient, { ISbResult } from "storyblok-js-client";
import { IComponent, IPendingComponent } from "../types/IComponent";
import { IStory, IPendingStory } from "../types/stories";
import { IDataSource, IDataSourceEntry, IPendingDataSource, IPendingDataSourceEntry } from "../types/IDataSource";
import { IComponentGroup, IPendingComponentGroup } from "../types/IComponentGroup";
/**
* Sets the number of requests per second to limit API calls
* @param requestsPerSecond Number of requests per second (default: 3)
*/
export declare function setRequestsPerSecond(requestsPerSecond: number): void;
/**
* Creates a new instance of the Storyblok client using configuration from either
* the config file (.storyblokrc.json) or environment variables.
*
* @throws {Error} If no OAuth token is found in either the config file or environment variables
* @returns {Promise<StoryblokClient>} A configured Storyblok client instance
*
* @example
* ```typescript
* const client = await getStoryblokClient();
* const { data } = await client.get('stories');
* ```
*/
export declare function getStoryblokClient(): Promise<StoryblokClient>;
type IResult<T = any> = Omit<ISbResult, "data"> & {
data: T;
};
/**
* API methods for managing Storyblok stories
*/
export type CreateStoryPayload = {
release_id?: number;
publish?: "1";
};
export type UpdateStoryPayload = CreateStoryPayload & {
group_id?: number;
force_update?: "1";
lang?: string;
};
export declare const stories: {
getAll(params?: Record<string, any>): Promise<IResult<{
stories: IStory[];
}>>;
get(id: number, params?: Record<string, any>): Promise<IResult<{
story: IStory;
}>>;
getBySlug(slug: string): Promise<IStory>;
create(story: IPendingStory, params?: CreateStoryPayload): Promise<IResult<{
story: IStory;
}>>;
update(story: IStory, params?: UpdateStoryPayload): Promise<IResult<{
story: IStory;
}>>;
delete(storyOrId: IStory | number): Promise<IResult<{
story: IStory;
}>>;
};
/**
* API methods for managing Storyblok components
*/
export declare const componentGroups: {
getAll(params?: Record<string, any>): Promise<IResult<{
component_groups: IComponentGroup[];
}>>;
get(id: number | string, params?: Record<string, any>): Promise<IResult<{
component_group: IComponentGroup;
}>>;
create(componentGroup: IPendingComponentGroup): Promise<IResult<{
component_group: IComponentGroup;
}>>;
update(componentGroup: IComponentGroup): Promise<IResult<{
component_group: IComponentGroup;
}>>;
delete(componentGroupOrId: IComponentGroup | number | string): Promise<IResult<{
component_group: IComponentGroup;
}>>;
};
export declare const components: {
getAll(params?: Record<string, any>): Promise<IResult<{
components: IComponent[];
}>>;
get(id: number | string, params?: Record<string, any>): Promise<IResult<{
component: IComponent;
}>>;
create(component: IPendingComponent): Promise<IResult<{
component: IComponent;
}>>;
update(component: IComponent): Promise<IResult<{
component: IComponent;
}>>;
delete(componentOrId: IComponent | number | string): Promise<IResult<{
component: IComponent;
}>>;
};
/**
* API methods for managing Storyblok spaces
*/
export declare const spaces: {
getSpaceOptions(): Promise<{
is_demo: boolean;
force_v1: boolean;
force_v2: boolean;
component_groups: Array<{
id: number;
name: string;
uuid: string;
}>;
languages: Array<{
code: string;
name: string;
}>;
hosted_backup: boolean;
duplicated_from: number;
track_statistics: boolean;
required_assest_fields: string[];
use_translated_stories: boolean;
asset_custom_meta_data_schema: any[];
}>;
getSpaceLanguages(): Promise<{
code: string;
name: string;
}[]>;
};
/**
* API methods for managing Storyblok datasources
*/
export declare const datasources: {
getAll(params?: Record<string, any>): Promise<IResult<{
datasources: IDataSource[];
}>>;
get(id: number | string, params?: Record<string, any>): Promise<IResult<{
datasource: IDataSource;
}>>;
create(entry: IPendingDataSource): Promise<IResult<{
datasource: IDataSource;
}>>;
update(entry: IDataSource): Promise<IResult<{
datasource: IDataSource;
}>>;
delete(entryOrId: IDataSource | number | string): Promise<IResult<{
datasource: IStory;
}>>;
has(id: number | string): Promise<boolean>;
};
export declare const datasourceEntries: {
getAll(datasource: IDataSource | number | string, params?: Record<string, any>): Promise<IResult<{
datasource_entries: IDataSourceEntry[];
}>>;
get(id: number | string, params?: Record<string, any>): Promise<IResult<{
datasource: IDataSourceEntry;
}>>;
create(entry: IPendingDataSourceEntry): Promise<IResult<{
datasource: IDataSourceEntry;
}>>;
update(entry: IDataSourceEntry): Promise<IResult<{
datasource: IDataSourceEntry;
}>>;
delete(entryOrId: IDataSourceEntry | number | string): Promise<IResult<{
datasource: IStory;
}>>;
};
export declare const api: {
spaces: {
getSpaceOptions(): Promise<{
is_demo: boolean;
force_v1: boolean;
force_v2: boolean;
component_groups: Array<{
id: number;
name: string;
uuid: string;
}>;
languages: Array<{
code: string;
name: string;
}>;
hosted_backup: boolean;
duplicated_from: number;
track_statistics: boolean;
required_assest_fields: string[];
use_translated_stories: boolean;
asset_custom_meta_data_schema: any[];
}>;
getSpaceLanguages(): Promise<{
code: string;
name: string;
}[]>;
};
stories: {
getAll(params?: Record<string, any>): Promise<IResult<{
stories: IStory[];
}>>;
get(id: number, params?: Record<string, any>): Promise<IResult<{
story: IStory;
}>>;
getBySlug(slug: string): Promise<IStory>;
create(story: IPendingStory, params?: CreateStoryPayload): Promise<IResult<{
story: IStory;
}>>;
update(story: IStory, params?: UpdateStoryPayload): Promise<IResult<{
story: IStory;
}>>;
delete(storyOrId: IStory | number): Promise<IResult<{
story: IStory;
}>>;
};
componentGroups: {
getAll(params?: Record<string, any>): Promise<IResult<{
component_groups: IComponentGroup[];
}>>;
get(id: number | string, params?: Record<string, any>): Promise<IResult<{
component_group: IComponentGroup;
}>>;
create(componentGroup: IPendingComponentGroup): Promise<IResult<{
component_group: IComponentGroup;
}>>;
update(componentGroup: IComponentGroup): Promise<IResult<{
component_group: IComponentGroup;
}>>;
delete(componentGroupOrId: IComponentGroup | number | string): Promise<IResult<{
component_group: IComponentGroup;
}>>;
};
components: {
getAll(params?: Record<string, any>): Promise<IResult<{
components: IComponent[];
}>>;
get(id: number | string, params?: Record<string, any>): Promise<IResult<{
component: IComponent;
}>>;
create(component: IPendingComponent): Promise<IResult<{
component: IComponent;
}>>;
update(component: IComponent): Promise<IResult<{
component: IComponent;
}>>;
delete(componentOrId: IComponent | number | string): Promise<IResult<{
component: IComponent;
}>>;
};
datasources: {
getAll(params?: Record<string, any>): Promise<IResult<{
datasources: IDataSource[];
}>>;
get(id: number | string, params?: Record<string, any>): Promise<IResult<{
datasource: IDataSource;
}>>;
create(entry: IPendingDataSource): Promise<IResult<{
datasource: IDataSource;
}>>;
update(entry: IDataSource): Promise<IResult<{
datasource: IDataSource;
}>>;
delete(entryOrId: IDataSource | number | string): Promise<IResult<{
datasource: IStory;
}>>;
has(id: number | string): Promise<boolean>;
};
datasourceEntries: {
getAll(datasource: IDataSource | number | string, params?: Record<string, any>): Promise<IResult<{
datasource_entries: IDataSourceEntry[];
}>>;
get(id: number | string, params?: Record<string, any>): Promise<IResult<{
datasource: IDataSourceEntry;
}>>;
create(entry: IPendingDataSourceEntry): Promise<IResult<{
datasource: IDataSourceEntry;
}>>;
update(entry: IDataSourceEntry): Promise<IResult<{
datasource: IDataSourceEntry;
}>>;
delete(entryOrId: IDataSourceEntry | number | string): Promise<IResult<{
datasource: IStory;
}>>;
};
};
export {};