/*! * Copyright (c) Microsoft. All rights reserved. * Licensed under the MIT license. See LICENSE file in the project. */ import type { BasicInput, DualInput, UnknownInput, VariadicInput, } from './bindings.js' import type { AggregateArgs, BinArgs, BinarizeArgs, BooleanArgs, ConvertArgs, CopyArgs, DedupeArgs, DeriveArgs, DestructureArgs, DropArgs, EncodeDecodeArgs, EraseArgs, FillArgs, FilterArgs, FoldArgs, GroupbyArgs, ImputeArgs, JoinArgs, LookupArgs, MergeArgs, PrintArgs, OnehotArgs, OrderbyArgs, PivotArgs, RecodeArgs, RenameArgs, RollupArgs, SampleArgs, SelectArgs, SpreadArgs, StringsArgs, StringsReplaceArgs, UnfoldArgs, UnhotArgs, UnrollArgs, Verb, WindowArgs, WorkflowArgs } from './verbs.js' /** * Common step properties */ export interface StepJsonCommon { /** * A unique identifier for this step */ id?: string } /** * Specification for step items */ export type Step = StepJsonCommon & ( | ({ verb: Verb.Aggregate; args?: AggregateArgs } & BasicInput) | ({ verb: Verb.Bin; args?: BinArgs } & BasicInput) | ({ verb: Verb.Binarize; args?: BinarizeArgs } & BasicInput) | ({ verb: Verb.Boolean; args?: BooleanArgs } & BasicInput) | ({ verb: Verb.Concat } & VariadicInput) | ({ verb: Verb.Convert; args?: ConvertArgs } & BasicInput) | ({ verb: Verb.Copy; args?: CopyArgs } & BasicInput) | ({ verb: Verb.Dedupe; args?: DedupeArgs } & BasicInput) | ({ verb: Verb.Derive; args?: DeriveArgs } & BasicInput) | ({ verb: Verb.Difference } & VariadicInput) | ({ verb: Verb.Decode; args?: EncodeDecodeArgs } & BasicInput) | ({ verb: Verb.Drop; args?: DropArgs } & BasicInput) | ({ verb: Verb.Encode; args?: EncodeDecodeArgs } & BasicInput) | ({ verb: Verb.Erase; args?: EraseArgs } & BasicInput) | ({ verb: Verb.Fill; args?: FillArgs } & BasicInput) | ({ verb: Verb.Filter; args?: FilterArgs } & BasicInput) | ({ verb: Verb.Fold; args?: FoldArgs } & BasicInput) | ({ verb: Verb.Groupby; args?: GroupbyArgs } & BasicInput) | ({ verb: Verb.Impute; args?: ImputeArgs } & BasicInput) | ({ verb: Verb.Intersect } & VariadicInput) | ({ verb: Verb.Join; args?: JoinArgs } & DualInput) | ({ verb: Verb.Lookup; args?: LookupArgs } & DualInput) | ({ verb: Verb.Merge; args?: MergeArgs } & BasicInput) | ({ verb: Verb.Print; args?: PrintArgs } & BasicInput) | ({ verb: Verb.Onehot; args?: OnehotArgs } & BasicInput) | ({ verb: Verb.Orderby; args?: OrderbyArgs } & BasicInput) | ({ verb: Verb.Pivot; args?: PivotArgs } & BasicInput) | ({ verb: Verb.Recode; args?: RecodeArgs } & BasicInput) | ({ verb: Verb.Rename; args?: RenameArgs } & BasicInput) | ({ verb: Verb.Rollup; args?: RollupArgs } & BasicInput) | ({ verb: Verb.Sample; args?: SampleArgs } & BasicInput) | ({ verb: Verb.Select; args?: SelectArgs } & BasicInput) | ({ verb: Verb.Spread; args?: SpreadArgs } & BasicInput) | ({ verb: Verb.Destructure; args?: DestructureArgs } & BasicInput) | ({ verb: Verb.StringsReplace; args?: StringsReplaceArgs } & BasicInput) | ({ verb: Verb.StringsLower; args?: StringsArgs } & BasicInput) | ({ verb: Verb.StringsUpper; args?: StringsArgs } & BasicInput) | ({ verb: Verb.Unfold; args?: UnfoldArgs } & BasicInput) | ({ verb: Verb.Ungroup } & BasicInput) | ({ verb: Verb.Unhot; args?: UnhotArgs } & BasicInput) | ({ verb: Verb.Union } & VariadicInput) | ({ verb: Verb.Unorder } & BasicInput) | ({ verb: Verb.Unroll; args?: UnrollArgs } & BasicInput) | ({ verb: Verb.Window; args?: WindowArgs } & BasicInput) | ({ verb: Verb.Workflow, args?: WorkflowArgs } & BasicInput) /** * Custom step - we may not know the verb, args, or binding pattern */ | ({ verb: string; args?: unknown } & UnknownInput) )