{"version":3,"sources":["../src/contextUtils.ts"],"sourcesContent":["import type { RoutingSpec } from './RoutingSpec';\nimport { type TinkerableState } from './TinkerableContext';\nimport { parseHref, getSearchParams } from './urlUtils';\nimport { FilesMetadata } from './sandboxTypes';\nimport { applyRoutingRule } from './routing';\nimport { getInjectedMetadataSnapshot } from './injectedBundler';\n\nexport const getContextFromUrl = (\n  routingSpec: RoutingSpec,\n  outerHref: string,\n  filesMetadata?: FilesMetadata,\n): TinkerableState => {\n  const navigationState = parseHref(outerHref);\n  const appliedRoutingRule = applyRoutingRule(routingSpec, navigationState);\n  if (!appliedRoutingRule) {\n    // TODO: better error\n    throw new Error(`No route registered for path ${navigationState.sandboxPath}!`);\n  }\n  return {\n    filesMetadata: filesMetadata ?? {},\n    routingSpec,\n    outerHref,\n    navigationState: {\n      ...navigationState,\n      ...appliedRoutingRule,\n    },\n  };\n};\n\nexport const getInitialContext = (routingSpec: RoutingSpec): (() => TinkerableState) => {\n  const searchParams = getSearchParams();\n  // initial href is passed in 'href' search param value; seed filesMetadata from the\n  // injected bundler's boot snapshot (§1.4) so the first synchronous frame already\n  // holds the full MDX collection (injected path). Off-injection the snapshot is null\n  // → `{}`, and the store fills from `metadata-update` events as before (event-fill).\n  return () => getContextFromUrl(routingSpec, searchParams['href'], getInjectedMetadataSnapshot() ?? undefined);\n};\n\nexport const updateContext = (context: TinkerableState, href: string): TinkerableState => {\n  // No update is necessary if outerHref has not changed.\n  if (href === context.outerHref) {\n    return context;\n  }\n  return getContextFromUrl(context.routingSpec, href, context.filesMetadata);\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,sBAA2C;AAE3C,qBAAiC;AACjC,6BAA4C;AAErC,MAAM,oBAAoB,CAC/B,aACA,WACA,kBACoB;AACpB,QAAM,sBAAkB,2BAAU,SAAS;AAC3C,QAAM,yBAAqB,iCAAiB,aAAa,eAAe;AACxE,MAAI,CAAC,oBAAoB;AAEvB,UAAM,IAAI,MAAM,gCAAgC,gBAAgB,WAAW,GAAG;AAAA,EAChF;AACA,SAAO;AAAA,IACL,eAAe,iBAAiB,CAAC;AAAA,IACjC;AAAA,IACA;AAAA,IACA,iBAAiB;AAAA,MACf,GAAG;AAAA,MACH,GAAG;AAAA,IACL;AAAA,EACF;AACF;AAEO,MAAM,oBAAoB,CAAC,gBAAsD;AACtF,QAAM,mBAAe,iCAAgB;AAKrC,SAAO,MAAM,kBAAkB,aAAa,aAAa,MAAM,OAAG,oDAA4B,KAAK,MAAS;AAC9G;AAEO,MAAM,gBAAgB,CAAC,SAA0B,SAAkC;AAExF,MAAI,SAAS,QAAQ,WAAW;AAC9B,WAAO;AAAA,EACT;AACA,SAAO,kBAAkB,QAAQ,aAAa,MAAM,QAAQ,aAAa;AAC3E;","names":[]}