import { idFromName } from './builderIdUtils' import { normalizeProtocolStep } from './protocolNormalizers' import { createTemplateEnvelope } from './templateEnvelopes' import { validateProtocolStepsData } from './templateValidators' import type { CreateProtocolStepsTemplateOptions, ProtocolStepRecord, ProtocolStepsTemplate, ProtocolStepsTemplateData, } from './types' /** @deprecated Scheduled for removal from the core SDK in MINT 1.4; the biology templates move to a dedicated package or the owning plugins. */ export function createProtocolStepsTemplate( options: CreateProtocolStepsTemplateOptions ): ProtocolStepsTemplate { const steps = options.steps.map((step, index): ProtocolStepRecord => { if (typeof step === 'string') { return { id: idFromName(step, `step-${index + 1}`), type: 'custom', name: step, status: 'pending', parameters: {}, order: index, metadata: {}, } } return normalizeProtocolStep(step, index) }).sort((a, b) => a.order - b.order) const data: ProtocolStepsTemplateData = { steps, metadata: options.metadata ?? {}, } validateProtocolStepsData(data) return createTemplateEnvelope('protocol-steps', data, options.metadata ?? {}) }