// src/createBuilder.ts import { createFnWithProps } from "inferred-types"; function createAboutSection(name, description, stage) { return { kind: "builder", about: { name, description, stage } }; } var createBuilder = (name, lifecycle) => { return { options: () => { return { initializer: (initializer) => { return { handler: (handler) => { return { meta(meta = {}) { const apiMeta = createAboutSection(name, meta?.description || "", lifecycle); const registration = { ...meta, name, lifecycle, description: meta?.description, parserRules: meta?.parserRules, handler, initializer }; const api = createFnWithProps( (options = {}) => createFnWithProps( () => ({ ...registration, options: options || {}, ...apiMeta }), apiMeta ), apiMeta ); return api; } }; } }; } }; } }; }; export { createBuilder };