import { assertCallInitiator } from '../async-context/lib.mjs' import type { PkgName } from '../types.mjs' export type ScopeDefs = Record export const registeredPkgScopeDefs: Record = {} export function getPkgScopes() { const pkgScopes = Object.entries(registeredPkgScopeDefs) .map(([pkgName, defs]) => { return Object.entries(defs).map(([pkgScope, def]) => { return { ...def, scope: `${pkgName}:${pkgScope}`, } }) }) .flat() return pkgScopes } export async function registerScopes(scopeDefs: ScopeDefs) { const { pkgId } = assertCallInitiator() registeredPkgScopeDefs[pkgId.name] = scopeDefs }