{"version":3,"file":"index.cjs","sources":["../src/createQueryStore/universal.ts"],"sourcesContent":["import type {QueryParams} from '@sanity/client'\n\nimport {\n  createQueryStore as createCoreQueryStore,\n  type CreateQueryStoreOptions,\n} from '@sanity/core-loader'\n\nimport type {\n  NonUndefinedGuard,\n  QueryResponseInitial,\n  QueryStore,\n  UseLiveModeHook,\n  UseQueryOptionsDefinedInitial,\n  UseQueryOptionsUndefinedInitial,\n} from '../types'\n\nimport {defineStudioUrlStore} from '../defineStudioUrlStore'\nimport {defineUseLiveMode} from '../defineUseLiveMode'\nimport {defineUseQuery} from '../defineUseQuery'\n\nexport type * from '../types'\n\nexport const createQueryStore = (options: CreateQueryStoreOptions): QueryStore => {\n  const {\n    createFetcherStore,\n    setServerClient,\n    enableLiveMode,\n    unstable__cache,\n    unstable__serverClient,\n  } = createCoreQueryStore({tag: 'react-loader', ...options})\n  const studioUrlStore = defineStudioUrlStore(options.client)\n  const useQuery = defineUseQuery({createFetcherStore, studioUrlStore})\n  const useLiveMode: UseLiveModeHook = defineUseLiveMode({\n    enableLiveMode,\n    setStudioUrl: studioUrlStore.setStudioUrl,\n  })\n\n  const loadQuery = async <QueryResponseResult>(\n    query: string,\n    params: QueryParams = {},\n    options: Parameters<QueryStore['loadQuery']>[2] = {},\n  ): Promise<QueryResponseInitial<QueryResponseResult>> => {\n    const {headers, tag} = options\n    const stega =\n      typeof options.stega === 'boolean'\n        ? options.stega\n        : (options.stega?.enabled ??\n          unstable__serverClient.instance?.config().stega?.enabled ??\n          false)\n    const perspective =\n      options.perspective || unstable__serverClient.instance?.config().perspective || 'published'\n\n    if (typeof document !== 'undefined') {\n      throw new Error(\n        'Cannot use `loadQuery` in a browser environment, you should use it inside a loader, getStaticProps, getServerSideProps, getInitialProps, or in a React Server Component.',\n      )\n    }\n    if (perspective !== 'published' && !unstable__serverClient.instance) {\n      throw new Error(\n        `You cannot use other perspectives than \"published\" unless you set \"ssr: true\" and call \"setServerClient\" first.`,\n      )\n    }\n    if (Array.isArray(perspective) || perspective === 'drafts' || perspective === 'previewDrafts') {\n      if (!unstable__serverClient.canPreviewDrafts) {\n        throw new Error(\n          `You cannot use 'perspective: ${JSON.stringify(perspective)}' unless you set a \"token\" in the \"client\" instance you're pasing to \"setServerClient\".`,\n        )\n      }\n\n      const {result, resultSourceMap} =\n        await unstable__serverClient.instance!.fetch<QueryResponseResult>(query, params, {\n          filterResponse: false,\n          resultSourceMap: 'withKeyArraySelector',\n          stega,\n          perspective,\n          useCdn: false,\n          headers,\n          tag,\n        })\n      return resultSourceMap\n        ? {data: result, sourceMap: resultSourceMap, perspective}\n        : // @ts-expect-error - update typings\n          {data: result, perspective}\n    }\n\n    const {result, resultSourceMap} = await unstable__cache.instance.fetch<QueryResponseResult>(\n      JSON.stringify({query, params, perspective, options: {stega}}),\n    )\n    // @ts-expect-error - update typings\n    return resultSourceMap ? {data: result, sourceMap: resultSourceMap} : {data: result}\n  }\n\n  return {\n    loadQuery,\n    // @ts-expect-error - update typings\n    useQuery,\n    setServerClient,\n    useLiveMode,\n  }\n}\n\nexport type {\n  NonUndefinedGuard,\n  QueryResponseInitial,\n  QueryStore,\n  UseLiveModeHook,\n  UseQueryOptionsDefinedInitial,\n  UseQueryOptionsUndefinedInitial,\n}\n\n/**\n * Shortcut setup for the main SSR use-case.\n * @public\n */\nexport const {loadQuery, setServerClient, useLiveMode, useQuery} = createQueryStore({\n  client: false,\n  ssr: true,\n})\n"],"names":["setServerClient","createCoreQueryStore","defineStudioUrlStore","useQuery","defineUseQuery","useLiveMode","defineUseLiveMode","options","result","resultSourceMap"],"mappings":";;;AAsBO,MAAM,mBAAmB,CAAC,YAAiD;AAChF,QAAM;AAAA,IACJ;AAAA,IACA,iBAAAA;AAAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,IACEC,WAAAA,iBAAqB,EAAC,KAAK,gBAAgB,GAAG,SAAQ,GACpD,iBAAiBC,oCAAqB,QAAQ,MAAM,GACpDC,YAAWC,eAAAA,eAAe,EAAC,oBAAoB,gBAAe,GAC9DC,eAA+BC,iCAAkB;AAAA,IACrD;AAAA,IACA,cAAc,eAAe;AAAA,EAAA,CAC9B;AAyDD,SAAO;AAAA,IACL,WAxDgB,OAChB,OACA,SAAsB,CAAA,GACtBC,WAAkD,CAAA,MACK;AACvD,YAAM,EAAC,SAAS,IAAA,IAAOA,UACjB,QACJ,OAAOA,SAAQ,SAAU,YACrBA,SAAQ,QACPA,SAAQ,OAAO,WAChB,uBAAuB,UAAU,OAAA,EAAS,OAAO,WACjD,IACA,cACJA,SAAQ,eAAe,uBAAuB,UAAU,OAAA,EAAS,eAAe;AAElF,UAAI,OAAO,WAAa;AACtB,cAAM,IAAI;AAAA,UACR;AAAA,QAAA;AAGJ,UAAI,gBAAgB,eAAe,CAAC,uBAAuB;AACzD,cAAM,IAAI;AAAA,UACR;AAAA,QAAA;AAGJ,UAAI,MAAM,QAAQ,WAAW,KAAK,gBAAgB,YAAY,gBAAgB,iBAAiB;AAC7F,YAAI,CAAC,uBAAuB;AAC1B,gBAAM,IAAI;AAAA,YACR,gCAAgC,KAAK,UAAU,WAAW,CAAC;AAAA,UAAA;AAI/D,cAAM,EAAC,QAAAC,SAAQ,iBAAAC,iBAAAA,IACb,MAAM,uBAAuB,SAAU,MAA2B,OAAO,QAAQ;AAAA,UAC/E,gBAAgB;AAAA,UAChB,iBAAiB;AAAA,UACjB;AAAA,UACA;AAAA,UACA,QAAQ;AAAA,UACR;AAAA,UACA;AAAA,QAAA,CACD;AACH,eAAOA,mBACH,EAAC,MAAMD,SAAQ,WAAWC,kBAAiB,YAAA;AAAA;AAAA,UAE3C,EAAC,MAAMD,SAAQ,YAAA;AAAA;AAAA,MACrB;AAEA,YAAM,EAAC,QAAQ,gBAAA,IAAmB,MAAM,gBAAgB,SAAS;AAAA,QAC/D,KAAK,UAAU,EAAC,OAAO,QAAQ,aAAa,SAAS,EAAC,QAAK,CAAE;AAAA,MAAA;AAG/D,aAAO,kBAAkB,EAAC,MAAM,QAAQ,WAAW,gBAAA,IAAmB,EAAC,MAAM,OAAA;AAAA,IAC/E;AAAA;AAAA,IAKE,UAAAL;AAAAA,IACA,iBAAAH;AAAAA,IACA,aAAAK;AAAAA,EAAA;AAEJ,GAea,EAAC,WAAW,iBAAiB,aAAa,SAAA,IAAY,iBAAiB;AAAA,EAClF,QAAQ;AAAA,EACR,KAAK;AACP,CAAC;;;;;;;;;;;;;;;"}