{
  "version": 3,
  "sources": ["../../../../src/packages/workspace.read-manifest/catalogs.ts"],
  "sourcesContent": ["import { InvalidWorkspaceManifestError } from './errors/InvalidWorkspaceManifestError.ts';\n\nexport type WorkspaceNamedCatalogs = {\n  readonly [catalogName: string]: WorkspaceCatalog;\n};\n\nexport type WorkspaceCatalog = {\n  readonly [dependencyName: string]: string;\n};\n\nexport function assertValidWorkspaceManifestCatalog(manifest: {\n  packages?: readonly string[] | undefined;\n  catalog?: unknown | undefined;\n}): asserts manifest is { catalog?: WorkspaceCatalog } {\n  if (manifest.catalog == null) {\n    return;\n  }\n\n  if (Array.isArray(manifest.catalog)) {\n    throw new InvalidWorkspaceManifestError(\n      'Expected catalog field to be an object, but found - array'\n    );\n  }\n\n  if (typeof manifest.catalog !== 'object') {\n    throw new InvalidWorkspaceManifestError(\n      `Expected catalog field to be an object, but found - ${typeof manifest.catalog}`\n    );\n  }\n\n  for (const [alias, specifier] of Object.entries(manifest.catalog)) {\n    if (typeof specifier !== 'string') {\n      throw new InvalidWorkspaceManifestError(\n        `Invalid catalog entry for ${alias}. Expected string, but found: ${typeof specifier}`\n      );\n    }\n  }\n}\n\nexport function assertValidWorkspaceManifestCatalogs(manifest: {\n  packages?: readonly string[] | undefined;\n  catalogs?: unknown | undefined;\n}): asserts manifest is { catalogs?: WorkspaceNamedCatalogs } {\n  if (manifest.catalogs == null) {\n    return;\n  }\n\n  if (Array.isArray(manifest.catalogs)) {\n    throw new InvalidWorkspaceManifestError(\n      'Expected catalogs field to be an object, but found - array'\n    );\n  }\n\n  if (typeof manifest.catalogs !== 'object') {\n    throw new InvalidWorkspaceManifestError(\n      `Expected catalogs field to be an object, but found - ${typeof manifest.catalogs}`\n    );\n  }\n\n  for (const [catalogName, catalog] of Object.entries(manifest.catalogs)) {\n    if (Array.isArray(catalog)) {\n      throw new InvalidWorkspaceManifestError(\n        `Expected named catalog ${catalogName} to be an object, but found - array`\n      );\n    }\n\n    if (typeof catalog !== 'object') {\n      throw new InvalidWorkspaceManifestError(\n        `Expected named catalog ${catalogName} to be an object, but found - ${typeof catalog}`\n      );\n    }\n\n    for (const [alias, specifier] of Object.entries(catalog)) {\n      if (typeof specifier !== 'string') {\n        throw new InvalidWorkspaceManifestError(\n          `Catalog '${catalogName}' has invalid entry '${alias}'. Expected string specifier, but found: ${typeof specifier}`\n        );\n      }\n    }\n  }\n}\n"],
  "mappings": "AAAA,SAAS,qCAAqC;AAUvC,SAAS,oCAAoC,UAGG;AACrD,MAAI,SAAS,WAAW,MAAM;AAC5B;AAAA,EACF;AAEA,MAAI,MAAM,QAAQ,SAAS,OAAO,GAAG;AACnC,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEA,MAAI,OAAO,SAAS,YAAY,UAAU;AACxC,UAAM,IAAI;AAAA,MACR,uDAAuD,OAAO,SAAS,OAAO;AAAA,IAChF;AAAA,EACF;AAEA,aAAW,CAAC,OAAO,SAAS,KAAK,OAAO,QAAQ,SAAS,OAAO,GAAG;AACjE,QAAI,OAAO,cAAc,UAAU;AACjC,YAAM,IAAI;AAAA,QACR,6BAA6B,KAAK,iCAAiC,OAAO,SAAS;AAAA,MACrF;AAAA,IACF;AAAA,EACF;AACF;AAEO,SAAS,qCAAqC,UAGS;AAC5D,MAAI,SAAS,YAAY,MAAM;AAC7B;AAAA,EACF;AAEA,MAAI,MAAM,QAAQ,SAAS,QAAQ,GAAG;AACpC,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AAEA,MAAI,OAAO,SAAS,aAAa,UAAU;AACzC,UAAM,IAAI;AAAA,MACR,wDAAwD,OAAO,SAAS,QAAQ;AAAA,IAClF;AAAA,EACF;AAEA,aAAW,CAAC,aAAa,OAAO,KAAK,OAAO,QAAQ,SAAS,QAAQ,GAAG;AACtE,QAAI,MAAM,QAAQ,OAAO,GAAG;AAC1B,YAAM,IAAI;AAAA,QACR,0BAA0B,WAAW;AAAA,MACvC;AAAA,IACF;AAEA,QAAI,OAAO,YAAY,UAAU;AAC/B,YAAM,IAAI;AAAA,QACR,0BAA0B,WAAW,iCAAiC,OAAO,OAAO;AAAA,MACtF;AAAA,IACF;AAEA,eAAW,CAAC,OAAO,SAAS,KAAK,OAAO,QAAQ,OAAO,GAAG;AACxD,UAAI,OAAO,cAAc,UAAU;AACjC,cAAM,IAAI;AAAA,UACR,YAAY,WAAW,wBAAwB,KAAK,4CAA4C,OAAO,SAAS;AAAA,QAClH;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;",
  "names": []
}
