{"version":3,"sources":["../../../src/client/request/search-params.browser.dev.ts"],"sourcesContent":["import type { SearchParams } from '../../server/request/search-params'\n\nimport { ReflectAdapter } from '../../server/web/spec-extension/adapters/reflect'\nimport {\n describeStringPropertyAccess,\n describeHasCheckingStringProperty,\n wellKnownProperties,\n} from '../../shared/lib/utils/reflect-utils'\n\ninterface CacheLifetime {}\nconst CachedSearchParams = new WeakMap>()\n\nfunction makeUntrackedSearchParamsWithDevWarnings(\n underlyingSearchParams: SearchParams\n): Promise {\n const cachedSearchParams = CachedSearchParams.get(underlyingSearchParams)\n if (cachedSearchParams) {\n return cachedSearchParams\n }\n\n const proxiedProperties = new Set()\n const promise = Promise.resolve(underlyingSearchParams)\n\n Object.keys(underlyingSearchParams).forEach((prop) => {\n if (wellKnownProperties.has(prop)) {\n // These properties cannot be shadowed because they need to be the\n // true underlying value for Promises to work correctly at runtime\n } else {\n proxiedProperties.add(prop)\n }\n })\n\n const proxiedPromise = new Proxy(promise, {\n get(target, prop, receiver) {\n if (typeof prop === 'string') {\n if (\n !wellKnownProperties.has(prop) &&\n (proxiedProperties.has(prop) ||\n // We are accessing a property that doesn't exist on the promise nor\n // the underlying searchParams.\n Reflect.has(target, prop) === false)\n ) {\n const expression = describeStringPropertyAccess('searchParams', prop)\n warnForSyncAccess(expression)\n }\n }\n return ReflectAdapter.get(target, prop, receiver)\n },\n set(target, prop, value, receiver) {\n if (typeof prop === 'string') {\n proxiedProperties.delete(prop)\n }\n return Reflect.set(target, prop, value, receiver)\n },\n has(target, prop) {\n if (typeof prop === 'string') {\n if (\n !wellKnownProperties.has(prop) &&\n (proxiedProperties.has(prop) ||\n // We are accessing a property that doesn't exist on the promise nor\n // the underlying searchParams.\n Reflect.has(target, prop) === false)\n ) {\n const expression = describeHasCheckingStringProperty(\n 'searchParams',\n prop\n )\n warnForSyncAccess(expression)\n }\n }\n return Reflect.has(target, prop)\n },\n ownKeys(target) {\n warnForSyncSpread()\n return Reflect.ownKeys(target)\n },\n })\n\n CachedSearchParams.set(underlyingSearchParams, proxiedPromise)\n return proxiedPromise\n}\n\nfunction warnForSyncAccess(expression: string) {\n console.error(\n `A searchParam property was accessed directly with ${expression}. ` +\n `\\`searchParams\\` is a Promise and must be unwrapped with \\`React.use()\\` before accessing its properties. ` +\n `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`\n )\n}\n\nfunction warnForSyncSpread() {\n console.error(\n `The keys of \\`searchParams\\` were accessed directly. ` +\n `\\`searchParams\\` is a Promise and must be unwrapped with \\`React.use()\\` before accessing its properties. ` +\n `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`\n )\n}\n\nexport function createRenderSearchParamsFromClient(\n underlyingSearchParams: SearchParams\n): Promise {\n return makeUntrackedSearchParamsWithDevWarnings(underlyingSearchParams)\n}\n"],"names":["ReflectAdapter","describeStringPropertyAccess","describeHasCheckingStringProperty","wellKnownProperties","CachedSearchParams","WeakMap","makeUntrackedSearchParamsWithDevWarnings","underlyingSearchParams","cachedSearchParams","get","proxiedProperties","Set","promise","Promise","resolve","Object","keys","forEach","prop","has","add","proxiedPromise","Proxy","target","receiver","Reflect","expression","warnForSyncAccess","set","value","delete","ownKeys","warnForSyncSpread","console","error","createRenderSearchParamsFromClient"],"mappings":"AAEA,SAASA,cAAc,QAAQ,mDAAkD;AACjF,SACEC,4BAA4B,EAC5BC,iCAAiC,EACjCC,mBAAmB,QACd,uCAAsC;AAG7C,MAAMC,qBAAqB,IAAIC;AAE/B,SAASC,yCACPC,sBAAoC;IAEpC,MAAMC,qBAAqBJ,mBAAmBK,GAAG,CAACF;IAClD,IAAIC,oBAAoB;QACtB,OAAOA;IACT;IAEA,MAAME,oBAAoB,IAAIC;IAC9B,MAAMC,UAAUC,QAAQC,OAAO,CAACP;IAEhCQ,OAAOC,IAAI,CAACT,wBAAwBU,OAAO,CAAC,CAACC;QAC3C,IAAIf,oBAAoBgB,GAAG,CAACD,OAAO;QACjC,kEAAkE;QAClE,kEAAkE;QACpE,OAAO;YACLR,kBAAkBU,GAAG,CAACF;QACxB;IACF;IAEA,MAAMG,iBAAiB,IAAIC,MAAMV,SAAS;QACxCH,KAAIc,MAAM,EAAEL,IAAI,EAAEM,QAAQ;YACxB,IAAI,OAAON,SAAS,UAAU;gBAC5B,IACE,CAACf,oBAAoBgB,GAAG,CAACD,SACxBR,CAAAA,kBAAkBS,GAAG,CAACD,SACrB,oEAAoE;gBACpE,+BAA+B;gBAC/BO,QAAQN,GAAG,CAACI,QAAQL,UAAU,KAAI,GACpC;oBACA,MAAMQ,aAAazB,6BAA6B,gBAAgBiB;oBAChES,kBAAkBD;gBACpB;YACF;YACA,OAAO1B,eAAeS,GAAG,CAACc,QAAQL,MAAMM;QAC1C;QACAI,KAAIL,MAAM,EAAEL,IAAI,EAAEW,KAAK,EAAEL,QAAQ;YAC/B,IAAI,OAAON,SAAS,UAAU;gBAC5BR,kBAAkBoB,MAAM,CAACZ;YAC3B;YACA,OAAOO,QAAQG,GAAG,CAACL,QAAQL,MAAMW,OAAOL;QAC1C;QACAL,KAAII,MAAM,EAAEL,IAAI;YACd,IAAI,OAAOA,SAAS,UAAU;gBAC5B,IACE,CAACf,oBAAoBgB,GAAG,CAACD,SACxBR,CAAAA,kBAAkBS,GAAG,CAACD,SACrB,oEAAoE;gBACpE,+BAA+B;gBAC/BO,QAAQN,GAAG,CAACI,QAAQL,UAAU,KAAI,GACpC;oBACA,MAAMQ,aAAaxB,kCACjB,gBACAgB;oBAEFS,kBAAkBD;gBACpB;YACF;YACA,OAAOD,QAAQN,GAAG,CAACI,QAAQL;QAC7B;QACAa,SAAQR,MAAM;YACZS;YACA,OAAOP,QAAQM,OAAO,CAACR;QACzB;IACF;IAEAnB,mBAAmBwB,GAAG,CAACrB,wBAAwBc;IAC/C,OAAOA;AACT;AAEA,SAASM,kBAAkBD,UAAkB;IAC3CO,QAAQC,KAAK,CACX,CAAC,kDAAkD,EAAER,WAAW,EAAE,CAAC,GACjE,CAAC,0GAA0G,CAAC,GAC5G,CAAC,8DAA8D,CAAC;AAEtE;AAEA,SAASM;IACPC,QAAQC,KAAK,CACX,CAAC,qDAAqD,CAAC,GACrD,CAAC,0GAA0G,CAAC,GAC5G,CAAC,8DAA8D,CAAC;AAEtE;AAEA,OAAO,SAASC,mCACd5B,sBAAoC;IAEpC,OAAOD,yCAAyCC;AAClD","ignoreList":[0]}