{"version":3,"sources":["../../../src/schema/types/memberdef-factory.ts"],"sourcesContent":["import SyntaxError from '../../errors/io-syntax-error'\r\nimport ErrorCodes from '../../errors/io-error-codes'\r\nimport MemberDef from './memberdef'\r\n\r\nexport interface CreateMemberDefInput extends Partial<MemberDef> {\r\n  name?: string\r\n  type: string\r\n  path?: string\r\n  optional?: boolean\r\n  null?: boolean\r\n}\r\n\r\nexport function createMemberDef(input: CreateMemberDefInput, opts?: { allowNameless?: boolean }): MemberDef {\r\n  const allowNameless = opts?.allowNameless === true\r\n\r\n  if (!input || typeof input !== 'object') {\r\n    throw new SyntaxError(ErrorCodes.invalidMemberDef, 'Invalid member definition input provided.')\r\n  }\r\n\r\n  const { name, type } = input\r\n\r\n  if (!type || typeof type !== 'string') {\r\n    throw new SyntaxError(ErrorCodes.invalidType, 'MemberDef.type must be a non-empty string.')\r\n  }\r\n\r\n  if (!allowNameless && (!name || typeof name !== 'string' || name.trim() === '')) {\r\n    throw new SyntaxError(ErrorCodes.invalidMemberDef, 'MemberDef must have a valid name.')\r\n  }\r\n\r\n  // Basic shape checks for common compound types\r\n  if (type === 'array') {\r\n    if (!('of' in input) || typeof (input as any).of !== 'object' || !(input as any).of) {\r\n      throw new SyntaxError(ErrorCodes.invalidDefinition, \"Array MemberDef must include an 'of' definition.\")\r\n    }\r\n  }\r\n\r\n  // Normalize boolean-like flags when provided\r\n  const out: any = { ...input }\r\n  if ('optional' in out && out.optional !== undefined) {\r\n    out.optional = Boolean(out.optional)\r\n  }\r\n  if ('null' in out && out.null !== undefined) {\r\n    out.null = Boolean(out.null)\r\n  }\r\n\r\n  return out as MemberDef\r\n}\r\n\r\nexport default createMemberDef\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,6BAAwB;AACxB,4BAAuB;AAWhB,SAAS,gBAAgB,OAA6B,MAA+C;AAC1G,QAAM,gBAAgB,MAAM,kBAAkB;AAE9C,MAAI,CAAC,SAAS,OAAO,UAAU,UAAU;AACvC,UAAM,IAAI,uBAAAA,QAAY,sBAAAC,QAAW,kBAAkB,2CAA2C;AAAA,EAChG;AAEA,QAAM,EAAE,MAAM,KAAK,IAAI;AAEvB,MAAI,CAAC,QAAQ,OAAO,SAAS,UAAU;AACrC,UAAM,IAAI,uBAAAD,QAAY,sBAAAC,QAAW,aAAa,4CAA4C;AAAA,EAC5F;AAEA,MAAI,CAAC,kBAAkB,CAAC,QAAQ,OAAO,SAAS,YAAY,KAAK,KAAK,MAAM,KAAK;AAC/E,UAAM,IAAI,uBAAAD,QAAY,sBAAAC,QAAW,kBAAkB,mCAAmC;AAAA,EACxF;AAGA,MAAI,SAAS,SAAS;AACpB,QAAI,EAAE,QAAQ,UAAU,OAAQ,MAAc,OAAO,YAAY,CAAE,MAAc,IAAI;AACnF,YAAM,IAAI,uBAAAD,QAAY,sBAAAC,QAAW,mBAAmB,kDAAkD;AAAA,IACxG;AAAA,EACF;AAGA,QAAM,MAAW,EAAE,GAAG,MAAM;AAC5B,MAAI,cAAc,OAAO,IAAI,aAAa,QAAW;AACnD,QAAI,WAAW,QAAQ,IAAI,QAAQ;AAAA,EACrC;AACA,MAAI,UAAU,OAAO,IAAI,SAAS,QAAW;AAC3C,QAAI,OAAO,QAAQ,IAAI,IAAI;AAAA,EAC7B;AAEA,SAAO;AACT;AAEA,IAAO,4BAAQ;","names":["SyntaxError","ErrorCodes"]}