{"version":3,"file":"overview.cjs","names":["z","BlockPackId","BlockPackMetaEmbeddedBytes","BlockPackSpec","SemVer","FeatureFlags","BlockPackIdNoVersion","RegistryEntry"],"sources":["../../src/block_registry/overview.ts"],"sourcesContent":["import { z } from \"zod\";\nimport {\n  BlockPackId,\n  BlockPackIdNoVersion,\n  BlockPackMetaEmbeddedBytes,\n  FeatureFlags,\n  SemVer,\n} from \"../block_meta\";\nimport type { BlockPackFromRegistryV2 } from \"./block_pack_spec\";\nimport { BlockPackSpec } from \"./block_pack_spec\";\nimport { RegistryEntry } from \"./registry_spec\";\n\n/**\n * Latest information about specific block pack. Contain information about latest version of the package.\n * */\nexport const BlockPackOverviewLegacy = z\n  .object({\n    registryId: z.string(),\n    id: BlockPackId,\n    meta: BlockPackMetaEmbeddedBytes,\n    spec: BlockPackSpec,\n    otherVersions: z.array(SemVer),\n  })\n  .passthrough();\nexport type BlockPackOverviewLegacy = z.infer<typeof BlockPackOverviewLegacy>;\n\nexport const AnyChannel = \"any\";\nexport const StableChannel = \"stable\";\n\nexport const VersionWithChannels = z\n  .object({\n    version: SemVer,\n    channels: z.array(z.string()),\n  })\n  .passthrough();\n\n/**\n * Information about specific block pack version.\n * */\nexport const SingleBlockPackOverview = z\n  .object({\n    id: BlockPackId,\n    meta: BlockPackMetaEmbeddedBytes,\n    featureFlags: FeatureFlags.optional(),\n    spec: BlockPackSpec,\n  })\n  .passthrough();\nexport type SingleBlockPackOverview = z.infer<typeof SingleBlockPackOverview>;\n\n/**\n * Latest information about specific block pack. Contain information about latest version of the package.\n * */\nexport const BlockPackOverviewRaw = z.object({\n  id: BlockPackIdNoVersion,\n  latestByChannel: z.record(z.string(), SingleBlockPackOverview),\n  allVersions: z.array(VersionWithChannels),\n  registryId: z.string(),\n});\nexport const BlockPackOverview = BlockPackOverviewRaw.passthrough();\nexport type BlockPackOverview = z.infer<typeof BlockPackOverview>;\n\nexport const BlockPackOverviewNoRegistryId = BlockPackOverviewRaw.omit({\n  registryId: true,\n}).passthrough();\nexport type BlockPackOverviewNoRegistryId = z.infer<typeof BlockPackOverviewNoRegistryId>;\n\nexport const RegistryStatus = RegistryEntry.extend({\n  status: z.union([z.literal(\"online\"), z.literal(\"offline\")]),\n});\nexport type RegistryStatus = z.infer<typeof RegistryStatus>;\n\nexport const BlockPackListing = z.object({\n  registries: z.array(RegistryStatus),\n  blockPacks: z.array(BlockPackOverview),\n});\nexport type BlockPackListing = z.infer<typeof BlockPackListing>;\n\nexport function blockPackOverviewToLegacy(bpo: BlockPackOverview): BlockPackOverviewLegacy {\n  const mainChannel = bpo.latestByChannel[StableChannel] !== undefined ? StableChannel : AnyChannel;\n  const latestOverview = bpo.latestByChannel[mainChannel];\n  return {\n    id: latestOverview.id,\n    meta: latestOverview.meta,\n    // so we only add stable channel specs to projects, to smooth the transition\n    spec: { ...(latestOverview.spec as BlockPackFromRegistryV2), channel: StableChannel },\n    otherVersions: bpo.allVersions\n      .filter((v) => v.channels.indexOf(mainChannel) >= 0)\n      .map((v) => v.version),\n    registryId: bpo.registryId,\n  };\n}\n"],"mappings":";;;;;;;;;;;;AAeA,MAAa,0BAA0BA,IAAAA,EACpC,OAAO;CACN,YAAYA,IAAAA,EAAE,OAAO;CACrB,IAAIC,iBAAAA;CACJ,MAAMC,mBAAAA;CACN,MAAMC,wBAAAA;CACN,eAAeH,IAAAA,EAAE,MAAMI,eAAAA,MAAM;AAC/B,CAAC,CAAC,CACD,YAAY;AAGf,MAAa,aAAa;AAC1B,MAAa,gBAAgB;AAE7B,MAAa,sBAAsBJ,IAAAA,EAChC,OAAO;CACN,SAASI,eAAAA;CACT,UAAUJ,IAAAA,EAAE,MAAMA,IAAAA,EAAE,OAAO,CAAC;AAC9B,CAAC,CAAC,CACD,YAAY;;;;AAKf,MAAa,0BAA0BA,IAAAA,EACpC,OAAO;CACN,IAAIC,iBAAAA;CACJ,MAAMC,mBAAAA;CACN,cAAcG,0BAAAA,aAAa,SAAS;CACpC,MAAMF,wBAAAA;AACR,CAAC,CAAC,CACD,YAAY;;;;AAMf,MAAa,uBAAuBH,IAAAA,EAAE,OAAO;CAC3C,IAAIM,iBAAAA;CACJ,iBAAiBN,IAAAA,EAAE,OAAOA,IAAAA,EAAE,OAAO,GAAG,uBAAuB;CAC7D,aAAaA,IAAAA,EAAE,MAAM,mBAAmB;CACxC,YAAYA,IAAAA,EAAE,OAAO;AACvB,CAAC;AACD,MAAa,oBAAoB,qBAAqB,YAAY;AAGlE,MAAa,gCAAgC,qBAAqB,KAAK,EACrE,YAAY,KACd,CAAC,CAAC,CAAC,YAAY;AAGf,MAAa,iBAAiBO,sBAAAA,cAAc,OAAO,EACjD,QAAQP,IAAAA,EAAE,MAAM,CAACA,IAAAA,EAAE,QAAQ,QAAQ,GAAGA,IAAAA,EAAE,QAAQ,SAAS,CAAC,CAAC,EAC7D,CAAC;AAGD,MAAa,mBAAmBA,IAAAA,EAAE,OAAO;CACvC,YAAYA,IAAAA,EAAE,MAAM,cAAc;CAClC,YAAYA,IAAAA,EAAE,MAAM,iBAAiB;AACvC,CAAC;AAGD,SAAgB,0BAA0B,KAAiD;CACzF,MAAM,cAAc,IAAI,gBAAA,cAAmC,KAAA,IAAY,gBAAA;CACvE,MAAM,iBAAiB,IAAI,gBAAgB;CAC3C,OAAO;EACL,IAAI,eAAe;EACnB,MAAM,eAAe;EAErB,MAAM;GAAE,GAAI,eAAe;GAAkC,SAAS;EAAc;EACpF,eAAe,IAAI,YAChB,QAAQ,MAAM,EAAE,SAAS,QAAQ,WAAW,KAAK,CAAC,CAAC,CACnD,KAAK,MAAM,EAAE,OAAO;EACvB,YAAY,IAAI;CAClB;AACF"}