import plugin , { StartPlugin , StartReporter , MaybeObject } from '@start/plugin/src/' ; export type StartPluginOrFalse < P0 , P1 > = StartPlugin < P0 , P1 > | false ; export type TExtend < T1 extends MaybeObject , T2 extends MaybeObject > = { [ K in Exclude < keyof T1 , keyof T2 > ] : T1 [ K ] ; } & T2 ; export type TExtend3 < T1 extends MaybeObject , T2 extends MaybeObject , T3 extends MaybeObject > = TExtend < TExtend < T1 , T2 > , T3 > ; export type TExtend4 < T1 extends MaybeObject , T2 extends MaybeObject , T3 extends MaybeObject , T4 extends MaybeObject > = TExtend < TExtend3 < T1 , T2 , T3 > , T4 > ; export type TExtend5 < T1 extends MaybeObject , T2 extends MaybeObject , T3 extends MaybeObject , T4 extends MaybeObject , T5 extends MaybeObject > = TExtend < TExtend4 < T1 , T2 , T3 , T4 > , T5 > ; export type TExtend6 < T1 extends MaybeObject , T2 extends MaybeObject , T3 extends MaybeObject , T4 extends MaybeObject , T5 extends MaybeObject , T6 extends MaybeObject > = TExtend < TExtend5 < T1 , T2 , T3 , T4 , T5 > , T6 > ; export type TExtend7 < T1 extends MaybeObject , T2 extends MaybeObject , T3 extends MaybeObject , T4 extends MaybeObject , T5 extends MaybeObject , T6 extends MaybeObject , T7 extends MaybeObject > = TExtend < TExtend6 < T1 , T2 , T3 , T4 , T5 , T6 > , T7 > ; export type TExtend8 < T1 extends MaybeObject , T2 extends MaybeObject , T3 extends MaybeObject , T4 extends MaybeObject , T5 extends MaybeObject , T6 extends MaybeObject , T7 extends MaybeObject , T8 extends MaybeObject > = TExtend < TExtend7 < T1 , T2 , T3 , T4 , T5 , T6 , T7 > , T8 > ; export type TExtend9 < T1 extends MaybeObject , T2 extends MaybeObject , T3 extends MaybeObject , T4 extends MaybeObject , T5 extends MaybeObject , T6 extends MaybeObject , T7 extends MaybeObject , T8 extends MaybeObject , T9 extends MaybeObject > = TExtend < TExtend8 < T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 > , T9 > ; export type TExtend10 < T1 extends MaybeObject , T2 extends MaybeObject , T3 extends MaybeObject , T4 extends MaybeObject , T5 extends MaybeObject , T6 extends MaybeObject , T7 extends MaybeObject , T8 extends MaybeObject , T9 extends MaybeObject , T10 extends MaybeObject > = TExtend < TExtend9 < T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 > , T10 > ; export type TExtend11 < T1 extends MaybeObject , T2 extends MaybeObject , T3 extends MaybeObject , T4 extends MaybeObject , T5 extends MaybeObject , T6 extends MaybeObject , T7 extends MaybeObject , T8 extends MaybeObject , T9 extends MaybeObject , T10 extends MaybeObject , T11 extends MaybeObject > = TExtend < TExtend10 < T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 > , T11 > ; export type TExtend12 < T1 extends MaybeObject , T2 extends MaybeObject , T3 extends MaybeObject , T4 extends MaybeObject , T5 extends MaybeObject , T6 extends MaybeObject , T7 extends MaybeObject , T8 extends MaybeObject , T9 extends MaybeObject , T10 extends MaybeObject , T11 extends MaybeObject , T12 extends MaybeObject > = TExtend < TExtend11 < T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 > , T12 > ; export type TExtend13 < T1 extends MaybeObject , T2 extends MaybeObject , T3 extends MaybeObject , T4 extends MaybeObject , T5 extends MaybeObject , T6 extends MaybeObject , T7 extends MaybeObject , T8 extends MaybeObject , T9 extends MaybeObject , T10 extends MaybeObject , T11 extends MaybeObject , T12 extends MaybeObject , T13 extends MaybeObject > = TExtend < TExtend12 < T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 > , T13 > ; export type TExtend14 < T1 extends MaybeObject , T2 extends MaybeObject , T3 extends MaybeObject , T4 extends MaybeObject , T5 extends MaybeObject , T6 extends MaybeObject , T7 extends MaybeObject , T8 extends MaybeObject , T9 extends MaybeObject , T10 extends MaybeObject , T11 extends MaybeObject , T12 extends MaybeObject , T13 extends MaybeObject , T14 extends MaybeObject > = TExtend < TExtend13 < T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 > , T14 > ; export type TExtend15 < T1 extends MaybeObject , T2 extends MaybeObject , T3 extends MaybeObject , T4 extends MaybeObject , T5 extends MaybeObject , T6 extends MaybeObject , T7 extends MaybeObject , T8 extends MaybeObject , T9 extends MaybeObject , T10 extends MaybeObject , T11 extends MaybeObject , T12 extends MaybeObject , T13 extends MaybeObject , T14 extends MaybeObject , T15 extends MaybeObject > = TExtend < TExtend14 < T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 > , T15 > ; export type TExtend16 < T1 extends MaybeObject , T2 extends MaybeObject , T3 extends MaybeObject , T4 extends MaybeObject , T5 extends MaybeObject , T6 extends MaybeObject , T7 extends MaybeObject , T8 extends MaybeObject , T9 extends MaybeObject , T10 extends MaybeObject , T11 extends MaybeObject , T12 extends MaybeObject , T13 extends MaybeObject , T14 extends MaybeObject , T15 extends MaybeObject , T16 extends MaybeObject > = TExtend < TExtend15 < T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9 , T10 , T11 , T12 , T13 , T14 , T15 > , T16 > ; function sequence < P0 , R > ( p0 ) ; function sequence < P0 , P1 , R > ( p0 , p1 ) ; function sequence < P0 , P1 , P2 , R > ( p0 , p1 , p2 ) ; function sequence < P0 , P1 , P2 , P3 , R > ( p0 , p1 , p2 , p3 ) ; function sequence < P0 , P1 , P2 , P3 , P4 , R > ( p0 , p1 , p2 , p3 , p4 ) ; function sequence < P0 , P1 , P2 , P3 , P4 , P5 , R > ( p0 , p1 , p2 , p3 , p4 , p5 ) ; function sequence < P0 , P1 , P2 , P3 , P4 , P5 , P6 , R > ( p0 , p1 , p2 , p3 , p4 , p5 , p6 ) ; function sequence < P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , R > ( p0 , p1 , p2 , p3 , p4 , p5 , p6 , p7 ) ; function sequence < P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , R > ( p0 , p1 , p2 , p3 , p4 , p5 , p6 , p7 , p8 ) ; function sequence < P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , R > ( p0 , p1 , p2 , p3 , p4 , p5 , p6 , p7 , p8 , p9 ) ; function sequence < P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , R > ( p0 , p1 , p2 , p3 , p4 , p5 , p6 , p7 , p8 , p9 , p10 ) ; function sequence < P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , R > ( p0 , p1 , p2 , p3 , p4 , p5 , p6 , p7 , p8 , p9 , p10 , p11 ) ; function sequence < P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , R > ( p0 , p1 , p2 , p3 , p4 , p5 , p6 , p7 , p8 , p9 , p10 , p11 , p12 ) ; function sequence < P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , R > ( p0 , p1 , p2 , p3 , p4 , p5 , p6 , p7 , p8 , p9 , p10 , p11 , p12 , p13 ) ; function sequence < P0 , P1 , P2 , P3 , P4 , P5 , P6 , P7 , P8 , P9 , P10 , P11 , P12 , P13 , P14 , R > ( p0 , p1 , p2 , p3 , p4 , p5 , p6 , p7 , p8 , p9 , p10 , p11 , p12 , p13 , p14 ) ; function sequence ( ... plugins ) { return plugin ( 'sequence' , ( { reporter } ) => ( props ) => plugins . reduce ( async ( prev , next ) => { if ( next === false ) { return prev ; } const nextPluginRunner = await next ; const prevProps = await prev ; const result = await nextPluginRunner ( reporter ) ( prevProps ) ; return { ... prevProps , ... result } ; } , Promise . resolve ( props ) ) ) ; } export default sequence ;