UNPKG

@grouparoo/core

Version:
644 lines (643 loc) 21.5 kB
import { ParamsFrom } from "actionhero"; import { AuthenticatedAction } from "../classes/actions/authenticatedAction"; import { App } from "../models/App"; import { PluginConnection, PluginConnectionApiData } from "../classes/plugin"; import { OptionHelper } from "../modules/optionHelper"; import { Property, PropertyTypes } from "../models/Property"; import { AsyncReturnType } from "type-fest"; import { APIData } from "../modules/apiData"; import { ActionPermission } from "../models/Permission"; export declare class SourcesList extends AuthenticatedAction { name: string; description: string; outputExample: {}; permission: ActionPermission; inputs: { readonly limit: { readonly required: true; readonly default: 100; readonly formatter: typeof APIData.ensureNumber; }; readonly offset: { readonly required: true; readonly default: 0; readonly formatter: typeof APIData.ensureNumber; }; readonly state: { readonly required: false; }; readonly modelId: { readonly required: false; }; readonly order: { readonly required: false; readonly formatter: typeof APIData.ensureArray; readonly default: readonly [readonly ["appId", "desc"], readonly ["createdAt", "asc"]]; }; }; runWithinTransaction({ params }: { params: ParamsFrom<SourcesList>; }): Promise<{ total: number; sources: { id: string; name: string; type: string; state: "ready" | "draft" | "deleted"; mapping: import("../modules/mappingHelper").MappingHelper.Mappings; app: { id: string; name: string; icon: string; type: string; state: "ready" | "draft" | "deleted"; locked: string; options: OptionHelper.SimpleOptions; provides: { source: boolean; destination: boolean; }; pluginName: string; pluginApp: import("../classes/plugin").PluginApp; refreshQueryAvailable: boolean; createdAt: number; updatedAt: number; appRefreshQuery: { id: string; appId: string; refreshQuery: string; value: string; locked: string; state: "ready" | "draft"; lastChangedAt: number; lastConfirmedAt: number; recurringFrequency: number; createdAt: number; updatedAt: number; }; }; appId: string; modelName: string; modelId: string; scheduleAvailable: boolean; schedule: { id: string; name: string; state: "ready" | "draft"; sourceId: string; incremental: boolean; recurring: boolean; refreshEnabled: boolean; locked: string; confirmRecords: boolean; supportIncrementalSchedule: boolean; options: OptionHelper.SimpleOptions; filters: import("../modules/filterHelper").FilterHelper.FiltersWithKey[]; recurringFrequency: number; createdAt: number; updatedAt: number; }; previewAvailable: boolean; locked: string; options: OptionHelper.SimpleOptions; connection: PluginConnection; createdAt: number; updatedAt: number; }[]; }>; } export declare class SourceConnectionApps extends AuthenticatedAction { name: string; description: string; outputExample: {}; permission: ActionPermission; runWithinTransaction(): Promise<{ connectionApps: { app: AsyncReturnType<App["apiData"]>; connection: PluginConnectionApiData; }[]; environmentVariableOptions: string[]; }>; } export declare class SourceCreate extends AuthenticatedAction { name: string; description: string; outputExample: {}; permission: ActionPermission; inputs: { readonly appId: { readonly required: true; }; readonly modelId: { readonly required: true; }; readonly name: { readonly required: false; }; readonly type: { readonly required: true; }; readonly state: { readonly required: false; }; readonly options: { readonly required: false; readonly formatter: typeof APIData.ensureObject; }; readonly mapping: { readonly required: false; readonly formatter: typeof APIData.ensureObject; }; }; runWithinTransaction({ params }: { params: ParamsFrom<SourceCreate>; }): Promise<{ source: { id: string; name: string; type: string; state: "ready" | "draft" | "deleted"; mapping: import("../modules/mappingHelper").MappingHelper.Mappings; app: { id: string; name: string; icon: string; type: string; state: "ready" | "draft" | "deleted"; locked: string; options: OptionHelper.SimpleOptions; provides: { source: boolean; destination: boolean; }; pluginName: string; pluginApp: import("../classes/plugin").PluginApp; refreshQueryAvailable: boolean; createdAt: number; updatedAt: number; appRefreshQuery: { id: string; appId: string; refreshQuery: string; value: string; locked: string; state: "ready" | "draft"; lastChangedAt: number; lastConfirmedAt: number; recurringFrequency: number; createdAt: number; updatedAt: number; }; }; appId: string; modelName: string; modelId: string; scheduleAvailable: boolean; schedule: { id: string; name: string; state: "ready" | "draft"; sourceId: string; incremental: boolean; recurring: boolean; refreshEnabled: boolean; locked: string; confirmRecords: boolean; supportIncrementalSchedule: boolean; options: OptionHelper.SimpleOptions; filters: import("../modules/filterHelper").FilterHelper.FiltersWithKey[]; recurringFrequency: number; createdAt: number; updatedAt: number; }; previewAvailable: boolean; locked: string; options: OptionHelper.SimpleOptions; connection: PluginConnection; createdAt: number; updatedAt: number; }; }>; } export declare class SourceView extends AuthenticatedAction { name: string; description: string; outputExample: {}; permission: ActionPermission; inputs: { readonly id: { readonly required: true; }; }; runWithinTransaction({ params }: { params: ParamsFrom<SourceView>; }): Promise<{ source: { id: string; name: string; type: string; state: "ready" | "draft" | "deleted"; mapping: import("../modules/mappingHelper").MappingHelper.Mappings; app: { id: string; name: string; icon: string; type: string; state: "ready" | "draft" | "deleted"; locked: string; options: OptionHelper.SimpleOptions; provides: { source: boolean; destination: boolean; }; pluginName: string; pluginApp: import("../classes/plugin").PluginApp; refreshQueryAvailable: boolean; createdAt: number; updatedAt: number; appRefreshQuery: { id: string; appId: string; refreshQuery: string; value: string; locked: string; state: "ready" | "draft"; lastChangedAt: number; lastConfirmedAt: number; recurringFrequency: number; createdAt: number; updatedAt: number; }; }; appId: string; modelName: string; modelId: string; scheduleAvailable: boolean; schedule: { id: string; name: string; state: "ready" | "draft"; sourceId: string; incremental: boolean; recurring: boolean; refreshEnabled: boolean; locked: string; confirmRecords: boolean; supportIncrementalSchedule: boolean; options: OptionHelper.SimpleOptions; filters: import("../modules/filterHelper").FilterHelper.FiltersWithKey[]; recurringFrequency: number; createdAt: number; updatedAt: number; }; previewAvailable: boolean; locked: string; options: OptionHelper.SimpleOptions; connection: PluginConnection; createdAt: number; updatedAt: number; }; }>; } export declare class SourceEdit extends AuthenticatedAction { name: string; description: string; outputExample: {}; permission: ActionPermission; inputs: { readonly id: { readonly required: true; }; readonly appId: { readonly required: false; }; readonly name: { readonly required: false; }; readonly type: { readonly required: false; }; readonly state: { readonly required: false; }; readonly options: { readonly required: false; readonly formatter: typeof APIData.ensureObject; }; readonly mapping: { readonly required: false; readonly formatter: typeof APIData.ensureObject; }; }; runWithinTransaction({ params }: { params: ParamsFrom<SourceEdit>; }): Promise<{ source: { id: string; name: string; type: string; state: "ready" | "draft" | "deleted"; mapping: import("../modules/mappingHelper").MappingHelper.Mappings; app: { id: string; name: string; icon: string; type: string; state: "ready" | "draft" | "deleted"; locked: string; options: OptionHelper.SimpleOptions; provides: { source: boolean; destination: boolean; }; pluginName: string; pluginApp: import("../classes/plugin").PluginApp; refreshQueryAvailable: boolean; createdAt: number; updatedAt: number; appRefreshQuery: { id: string; appId: string; refreshQuery: string; value: string; locked: string; state: "ready" | "draft"; lastChangedAt: number; lastConfirmedAt: number; recurringFrequency: number; createdAt: number; updatedAt: number; }; }; appId: string; modelName: string; modelId: string; scheduleAvailable: boolean; schedule: { id: string; name: string; state: "ready" | "draft"; sourceId: string; incremental: boolean; recurring: boolean; refreshEnabled: boolean; locked: string; confirmRecords: boolean; supportIncrementalSchedule: boolean; options: OptionHelper.SimpleOptions; filters: import("../modules/filterHelper").FilterHelper.FiltersWithKey[]; recurringFrequency: number; createdAt: number; updatedAt: number; }; previewAvailable: boolean; locked: string; options: OptionHelper.SimpleOptions; connection: PluginConnection; createdAt: number; updatedAt: number; }; }>; } export declare class SourceGenerateSampleRecords extends AuthenticatedAction { name: string; description: string; permission: ActionPermission; inputs: { readonly id: { readonly required: true; }; }; runWithinTransaction({ params, }: { params: ParamsFrom<SourceGenerateSampleRecords>; }): Promise<{ records: { id: string; state: "pending" | "ready" | "draft" | "deleted"; modelId: string; modelName: string; groupIds: string[]; invalid: boolean; properties: import("../modules/ops/record").RecordPropertyType; createdAt: number; updatedAt: number; }[]; }>; } export declare class SourceBootstrapUniqueProperty extends AuthenticatedAction { name: string; description: string; outputExample: {}; permission: ActionPermission; inputs: { readonly id: { readonly required: true; }; readonly key: { readonly required: false; }; readonly type: { readonly required: false; readonly formatter: (p: unknown) => "string" | "boolean" | "url" | "float" | "integer" | "date" | "email" | "phoneNumber"; }; readonly mappedColumn: { readonly required: true; }; readonly sourceOptions: { readonly required: false; readonly formatter: typeof APIData.ensureObject; }; }; runWithinTransaction({ params, }: { params: ParamsFrom<SourceBootstrapUniqueProperty>; }): Promise<{ source: { id: string; name: string; type: string; state: "ready" | "draft" | "deleted"; mapping: import("../modules/mappingHelper").MappingHelper.Mappings; app: { id: string; name: string; icon: string; type: string; state: "ready" | "draft" | "deleted"; locked: string; options: OptionHelper.SimpleOptions; provides: { source: boolean; destination: boolean; }; pluginName: string; pluginApp: import("../classes/plugin").PluginApp; refreshQueryAvailable: boolean; createdAt: number; updatedAt: number; appRefreshQuery: { id: string; appId: string; refreshQuery: string; value: string; locked: string; state: "ready" | "draft"; lastChangedAt: number; lastConfirmedAt: number; recurringFrequency: number; createdAt: number; updatedAt: number; }; }; appId: string; modelName: string; modelId: string; scheduleAvailable: boolean; schedule: { id: string; name: string; state: "ready" | "draft"; sourceId: string; incremental: boolean; recurring: boolean; refreshEnabled: boolean; locked: string; confirmRecords: boolean; supportIncrementalSchedule: boolean; options: OptionHelper.SimpleOptions; filters: import("../modules/filterHelper").FilterHelper.FiltersWithKey[]; recurringFrequency: number; createdAt: number; updatedAt: number; }; previewAvailable: boolean; locked: string; options: OptionHelper.SimpleOptions; connection: PluginConnection; createdAt: number; updatedAt: number; }; property: { id: string; sourceId: string; key: string; type: "string" | "boolean" | "url" | "float" | "integer" | "date" | "email" | "phoneNumber"; state: "ready" | "draft" | "deleted"; unique: boolean; isPrimaryKey: boolean; locked: string; options: OptionHelper.SimpleOptions; filters: import("../modules/filterHelper").FilterHelper.FiltersWithKey[]; isArray: boolean; createdAt: number; updatedAt: number; recordProperties: { recordId: string; property: Property; state: "pending" | "ready" | "draft"; valueChangedAt: number; stateChangedAt: number; confirmedAt: number; startedAt: number; position: number; unique: boolean; key: string; value: string | number | boolean | Date; invalidValue: string; invalidReason: string; }[]; }; }>; } export declare class SourceConnectionOptions extends AuthenticatedAction { name: string; description: string; outputExample: {}; permission: ActionPermission; inputs: { readonly id: { readonly required: true; }; readonly options: { readonly required: false; readonly formatter: typeof APIData.ensureObject; }; }; runWithinTransaction({ params, }: { params: ParamsFrom<SourceConnectionOptions>; }): Promise<{ options: import("../classes/plugin").SourceOptionsMethodResponse; }>; } export declare class SourcePreview extends AuthenticatedAction { name: string; description: string; outputExample: {}; permission: ActionPermission; inputs: { readonly id: { readonly required: true; }; readonly options: { readonly required: false; readonly formatter: typeof APIData.ensureObject; }; }; runWithinTransaction({ params, }: { params: ParamsFrom<SourcePreview>; }): Promise<{ preview: import("../classes/plugin").SourcePreviewMethodResponseRow[]; columnSpeculation: { [column: string]: { suggestedPropertyKey?: string; type: typeof PropertyTypes[number]; isUnique: boolean; }; }; }>; } export declare class SourceDefaultPropertyOptions extends AuthenticatedAction { name: string; description: string; outputExample: {}; permission: ActionPermission; inputs: { readonly id: { readonly required: true; }; }; runWithinTransaction({ params, }: { params: ParamsFrom<SourceDefaultPropertyOptions>; }): Promise<{ defaultPropertyOptions: { key: string; displayName?: string; default?: boolean; description: string; required: boolean; type: string; primary?: boolean; options: { key: string; description?: string; default?: boolean; examples?: any[]; }[]; }[]; }>; } export declare class SourceDestroy extends AuthenticatedAction { name: string; description: string; outputExample: {}; permission: ActionPermission; inputs: { readonly id: { readonly required: true; }; }; runWithinTransaction({ params, }: { params: ParamsFrom<SourceDestroy>; }): Promise<{ success: boolean; }>; }