{"version":3,"sources":["../../../../src/server/app-render/instant-validation/instant-samples-client.ts"],"sourcesContent":["import type { Params } from '../../request/params'\nimport type { ReadonlyURLSearchParams } from '../../../client/components/readonly-url-search-params'\nimport { workUnitAsyncStorage } from '../work-unit-async-storage.external'\nimport { workAsyncStorage } from '../work-async-storage.external'\nimport {\n  createExhaustiveParamsProxy,\n  createExhaustiveURLSearchParamsProxy,\n  trackMissingSampleErrorAndThrow,\n} from './instant-samples'\nimport { InstantValidationError } from './instant-validation-error'\n\nexport function instrumentParamsForClientValidation<TPArams extends Params>(\n  underlyingParams: TPArams\n): TPArams {\n  const workStore = workAsyncStorage.getStore()\n  const workUnitStore = workUnitAsyncStorage.getStore()\n  if (workStore && workUnitStore) {\n    switch (workUnitStore.type) {\n      case 'validation-client': {\n        if (workUnitStore.validationSamples) {\n          const declaredKeys = new Set(\n            Object.keys(workUnitStore.validationSamples.params ?? {})\n          )\n          return createExhaustiveParamsProxy(\n            underlyingParams,\n            declaredKeys,\n            workStore.route\n          )\n        }\n        break\n      }\n      case 'prerender-runtime':\n      case 'prerender-client':\n      case 'prerender-legacy':\n      case 'prerender-ppr':\n      case 'prerender':\n      case 'cache':\n      case 'request':\n      case 'private-cache':\n      case 'unstable-cache':\n      case 'generate-static-params':\n        break\n      default:\n        workUnitStore satisfies never\n    }\n  }\n  return underlyingParams\n}\n\nexport function expectCompleteParamsInClientValidation(\n  expression: string\n): void {\n  const workStore = workAsyncStorage.getStore()\n  const workUnitStore = workUnitAsyncStorage.getStore()\n  if (workStore && workUnitStore) {\n    switch (workUnitStore.type) {\n      case 'validation-client': {\n        if (workUnitStore.validationSamples) {\n          const fallbackParams = workUnitStore.fallbackRouteParams\n          if (fallbackParams && fallbackParams.size > 0) {\n            const missingParams = Array.from(fallbackParams.keys())\n            trackMissingSampleErrorAndThrow(\n              new InstantValidationError(\n                `Route \"${workStore.route}\" called ${expression} but param${missingParams.length > 1 ? 's' : ''} ${missingParams.map((p) => `\"${p}\"`).join(', ')} ${missingParams.length > 1 ? 'are' : 'is'} not defined in the \\`samples\\` of \\`unstable_instant\\`. ` +\n                  `${expression} requires all route params to be provided.`\n              )\n            )\n          }\n        }\n        break\n      }\n      case 'prerender-runtime':\n      case 'prerender-client':\n      case 'prerender-legacy':\n      case 'prerender-ppr':\n      case 'prerender':\n      case 'cache':\n      case 'request':\n      case 'private-cache':\n      case 'unstable-cache':\n      case 'generate-static-params':\n        break\n      default:\n        workUnitStore satisfies never\n    }\n  }\n}\n\nexport function instrumentSearchParamsForClientValidation(\n  underlyingSearchParams: ReadonlyURLSearchParams\n): ReadonlyURLSearchParams {\n  const workStore = workAsyncStorage.getStore()\n  const workUnitStore = workUnitAsyncStorage.getStore()\n  if (workStore && workUnitStore) {\n    switch (workUnitStore.type) {\n      case 'validation-client': {\n        if (workUnitStore.validationSamples) {\n          const declaredKeys = new Set(\n            Object.keys(workUnitStore.validationSamples.searchParams ?? {})\n          )\n          return createExhaustiveURLSearchParamsProxy(\n            underlyingSearchParams,\n            declaredKeys,\n            workStore.route\n          )\n        }\n        break\n      }\n      case 'prerender-runtime':\n      case 'prerender-client':\n      case 'prerender-legacy':\n      case 'prerender-ppr':\n      case 'prerender':\n      case 'cache':\n      case 'request':\n      case 'private-cache':\n      case 'unstable-cache':\n      case 'generate-static-params':\n        break\n      default:\n        workUnitStore satisfies never\n    }\n  }\n  return underlyingSearchParams\n}\n"],"names":["expectCompleteParamsInClientValidation","instrumentParamsForClientValidation","instrumentSearchParamsForClientValidation","underlyingParams","workStore","workAsyncStorage","getStore","workUnitStore","workUnitAsyncStorage","type","validationSamples","declaredKeys","Set","Object","keys","params","createExhaustiveParamsProxy","route","expression","fallbackParams","fallbackRouteParams","size","missingParams","Array","from","trackMissingSampleErrorAndThrow","InstantValidationError","length","map","p","join","underlyingSearchParams","searchParams","createExhaustiveURLSearchParamsProxy"],"mappings":";;;;;;;;;;;;;;;;IAiDgBA,sCAAsC;eAAtCA;;IAtCAC,mCAAmC;eAAnCA;;IA6EAC,yCAAyC;eAAzCA;;;8CAtFqB;0CACJ;gCAK1B;wCACgC;AAEhC,SAASD,oCACdE,gBAAyB;IAEzB,MAAMC,YAAYC,0CAAgB,CAACC,QAAQ;IAC3C,MAAMC,gBAAgBC,kDAAoB,CAACF,QAAQ;IACnD,IAAIF,aAAaG,eAAe;QAC9B,OAAQA,cAAcE,IAAI;YACxB,KAAK;gBAAqB;oBACxB,IAAIF,cAAcG,iBAAiB,EAAE;wBACnC,MAAMC,eAAe,IAAIC,IACvBC,OAAOC,IAAI,CAACP,cAAcG,iBAAiB,CAACK,MAAM,IAAI,CAAC;wBAEzD,OAAOC,IAAAA,2CAA2B,EAChCb,kBACAQ,cACAP,UAAUa,KAAK;oBAEnB;oBACA;gBACF;YACA,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;gBACH;YACF;gBACEV;QACJ;IACF;IACA,OAAOJ;AACT;AAEO,SAASH,uCACdkB,UAAkB;IAElB,MAAMd,YAAYC,0CAAgB,CAACC,QAAQ;IAC3C,MAAMC,gBAAgBC,kDAAoB,CAACF,QAAQ;IACnD,IAAIF,aAAaG,eAAe;QAC9B,OAAQA,cAAcE,IAAI;YACxB,KAAK;gBAAqB;oBACxB,IAAIF,cAAcG,iBAAiB,EAAE;wBACnC,MAAMS,iBAAiBZ,cAAca,mBAAmB;wBACxD,IAAID,kBAAkBA,eAAeE,IAAI,GAAG,GAAG;4BAC7C,MAAMC,gBAAgBC,MAAMC,IAAI,CAACL,eAAeL,IAAI;4BACpDW,IAAAA,+CAA+B,EAC7B,qBAGC,CAHD,IAAIC,8CAAsB,CACxB,CAAC,OAAO,EAAEtB,UAAUa,KAAK,CAAC,SAAS,EAAEC,WAAW,UAAU,EAAEI,cAAcK,MAAM,GAAG,IAAI,MAAM,GAAG,CAAC,EAAEL,cAAcM,GAAG,CAAC,CAACC,IAAM,CAAC,CAAC,EAAEA,EAAE,CAAC,CAAC,EAAEC,IAAI,CAAC,MAAM,CAAC,EAAER,cAAcK,MAAM,GAAG,IAAI,QAAQ,KAAK,yDAAyD,CAAC,GACpP,GAAGT,WAAW,0CAA0C,CAAC,GAF7D,qBAAA;uCAAA;4CAAA;8CAAA;4BAGA;wBAEJ;oBACF;oBACA;gBACF;YACA,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;gBACH;YACF;gBACEX;QACJ;IACF;AACF;AAEO,SAASL,0CACd6B,sBAA+C;IAE/C,MAAM3B,YAAYC,0CAAgB,CAACC,QAAQ;IAC3C,MAAMC,gBAAgBC,kDAAoB,CAACF,QAAQ;IACnD,IAAIF,aAAaG,eAAe;QAC9B,OAAQA,cAAcE,IAAI;YACxB,KAAK;gBAAqB;oBACxB,IAAIF,cAAcG,iBAAiB,EAAE;wBACnC,MAAMC,eAAe,IAAIC,IACvBC,OAAOC,IAAI,CAACP,cAAcG,iBAAiB,CAACsB,YAAY,IAAI,CAAC;wBAE/D,OAAOC,IAAAA,oDAAoC,EACzCF,wBACApB,cACAP,UAAUa,KAAK;oBAEnB;oBACA;gBACF;YACA,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;YACL,KAAK;gBACH;YACF;gBACEV;QACJ;IACF;IACA,OAAOwB;AACT","ignoreList":[0]}