{"version":3,"sources":["../src/index.ts","../src/hooks/use-article.ts","../src/hooks/use-articles.ts","../src/hooks/use-pagination.ts","../src/server/index.ts","../src/core/pantheon-api.ts","../src/core/pantheon-context.tsx","../src/utils/markdownConverter.ts"],"names":["index_exports","__export","GQL","PCCConvenienceFunctions","NextPantheonAPI","PantheonClient","PantheonProvider","findTab","flattenDocumentTabs","getAllTags","getArticle","getArticleBySlugOrId","getArticlePathComponentsFromContentStructure","getArticleURLFromSite","getArticleURLFromSiteWithOptions","getArticles","getPaginatedArticles","getRecommendedArticles","getSite","markdownToText","updateConfig","useArticle","useArticles","useMutation","usePagination","usePantheonClient","useQuery","useSubscription","id","args","apolloQueryOptions","related","_b","publishingLevel","contentType","buildContentType","memoizedArgs","useMemo","__spreadValues","_a","generateArticleQuery","__spreadProps","subscribeToMore","queryData","__objRest","useEffect","ARTICLE_UPDATE_SUBSCRIPTION","prev","subscriptionData","article","searchParams","LIST_ARTICLES_QUERY","convertSearchParamsToGQL","cursor","initialArticles","pageSize","currentCursor","setCurrentCursor","useState","articlePages","setArticlePages","fetching","setFetching","currentPage","setCurrentPage","__async","data","newCursor","result","server_exports","__reExport","types_star","options","api","PantheonAPI","req","res","isPagesRouterResponse","appRouterParams","headers","cookiesToObj","key","value","status","path","cookies","acc","cookie","PantheonContext","React","client","children","jsx","ApolloProvider","headerIdRegex","markdownHeaderSymbolRegex","parserConfig","markdown","markdownToTxt"],"mappings":"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","file":"index.mjs","sourcesContent":["// Would be nice to have this as a separate entry point but\n// context is defined at module scope so can't be shared between\n// entry points.\n\n// https://github.com/facebook/react/issues/19541\nexport * from \"./hooks\";\n\nexport * from \"./server\";\nexport * from \"./core/pantheon-context\";\nexport * from \"./utils/markdownConverter\";\n","import { type QueryHookOptions } from \"@apollo/client\";\nimport { useQuery } from \"@apollo/client/react/hooks/useQuery.js\";\nimport {\n  ARTICLE_UPDATE_SUBSCRIPTION,\n  ArticleQueryArgs,\n  buildContentType,\n  generateArticleQuery,\n} from \"@pantheon-systems/pcc-sdk-core\";\nimport { Article } from \"@pantheon-systems/pcc-sdk-core/types\";\nimport { useEffect, useMemo } from \"react\";\n\ntype Return = ReturnType<typeof useQuery<{ article: Article }>> & {\n  article: Article | undefined;\n};\n\ntype ApolloQueryOptions = Omit<\n  QueryHookOptions<{ article: Article }>,\n  \"variables\"\n>;\n\nexport const useArticle = (\n  id: string,\n  args?: ArticleQueryArgs,\n  apolloQueryOptions?: ApolloQueryOptions,\n  related?: {\n    site?: boolean;\n  },\n): Return => {\n  const publishingLevel = args?.publishingLevel;\n  const contentType = buildContentType(args?.contentType);\n\n  const memoizedArgs = useMemo(() => {\n    return {\n      ...(publishingLevel && { publishingLevel }),\n      ...(contentType && { contentType }),\n    };\n  }, [publishingLevel, contentType]);\n\n  const { subscribeToMore, ...queryData } = useQuery<{ article: Article }>(\n    generateArticleQuery({ withSite: related?.site }),\n    {\n      ...apolloQueryOptions,\n      variables: { id, ...memoizedArgs },\n    },\n  );\n\n  useEffect(() => {\n    if (apolloQueryOptions?.skip) return;\n\n    subscribeToMore({\n      document: ARTICLE_UPDATE_SUBSCRIPTION,\n      variables: { id, ...memoizedArgs },\n      updateQuery: (prev, { subscriptionData }) => {\n        if (!subscriptionData.data) return prev;\n\n        const { article } = subscriptionData.data;\n        return { article, updatedAt: article.updatedAt };\n      },\n    });\n  }, [id, memoizedArgs, subscribeToMore, apolloQueryOptions?.skip]);\n\n  return {\n    ...queryData,\n    subscribeToMore,\n    article: queryData.data?.article,\n  };\n};\n","import { type QueryHookOptions } from \"@apollo/client\";\nimport { useQuery } from \"@apollo/client/react/hooks/useQuery.js\";\nimport {\n  ArticleQueryArgs,\n  ArticleSearchArgs,\n  buildContentType,\n  convertSearchParamsToGQL,\n  LIST_ARTICLES_QUERY,\n} from \"@pantheon-systems/pcc-sdk-core\";\nimport { ArticleWithoutContent } from \"@pantheon-systems/pcc-sdk-core/types\";\n\ntype ListArticlesResponse = {\n  articles: ArticleWithoutContent[];\n};\n\ntype Return = ReturnType<typeof useQuery<ListArticlesResponse>> & {\n  articles: ArticleWithoutContent[] | undefined;\n};\n\ntype ApolloQueryOptions = Omit<\n  QueryHookOptions<ListArticlesResponse>,\n  \"variables\"\n>;\n\nexport const useArticles = (\n  args?: ArticleQueryArgs,\n  searchParams?: ArticleSearchArgs,\n  apolloQueryOptions?: ApolloQueryOptions,\n): Return => {\n  const contentType = buildContentType(args?.contentType);\n  const queryData = useQuery<ListArticlesResponse>(LIST_ARTICLES_QUERY, {\n    ...apolloQueryOptions,\n    variables: {\n      ...args,\n      ...convertSearchParamsToGQL(searchParams),\n      contentType,\n    },\n  });\n\n  return {\n    ...queryData,\n    articles: queryData.data?.articles,\n  };\n};\n","import { PCCConvenienceFunctions } from \"@pantheon-systems/pcc-sdk-core\";\nimport {\n  ArticleWithoutContent,\n  PaginatedArticle,\n} from \"@pantheon-systems/pcc-sdk-core/types\";\nimport { useEffect, useState } from \"react\";\n\ninterface Props {\n  cursor?: string;\n  pageSize: number;\n  initialArticles?: PaginatedArticle[] | ArticleWithoutContent[];\n}\n\nexport function usePagination({ cursor, initialArticles, pageSize }: Props) {\n  const [currentCursor, setCurrentCursor] = useState(cursor);\n  const [articlePages, setArticlePages] = useState(\n    initialArticles ? [initialArticles] : [],\n  );\n  const [fetching, setFetching] = useState(false);\n  const [currentPage, setCurrentPage] = useState(0);\n\n  useEffect(() => {\n    (async () => {\n      if (articlePages[currentPage]) return;\n\n      setFetching(true);\n      const { data, cursor: newCursor } =\n        await PCCConvenienceFunctions.getPaginatedArticles({\n          pageSize,\n          ...(currentCursor && { cursor: currentCursor }),\n        });\n      setFetching(false);\n      setArticlePages((prev) => {\n        const result = [...prev];\n        result[currentPage] = data;\n        return result;\n      });\n      setCurrentCursor(newCursor);\n    })();\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, [currentPage]);\n\n  return {\n    // Return last page if current page doesn't exist\n    data: articlePages[currentPage] || articlePages[articlePages.length - 1],\n    fetching,\n    onPageChange: setCurrentPage,\n    currentPage,\n  };\n}\n","export type {\n  PantheonClientConfig,\n  PantheonAPIOptions,\n} from \"@pantheon-systems/pcc-sdk-core\";\nexport { PantheonClient } from \"@pantheon-systems/pcc-sdk-core\";\n\nexport {\n  getArticles,\n  getPaginatedArticles,\n  getRecommendedArticles,\n  getArticle,\n  getAllTags,\n  getArticleBySlugOrId,\n  PCCConvenienceFunctions,\n  getArticlePathComponentsFromContentStructure,\n  getArticleURLFromSite,\n  getArticleURLFromSiteWithOptions,\n  updateConfig,\n  GQL,\n  getSite,\n  findTab,\n  flattenDocumentTabs,\n} from \"@pantheon-systems/pcc-sdk-core\";\nexport * from \"@pantheon-systems/pcc-sdk-core/types\";\n\nexport { NextPantheonAPI as PantheonAPI } from \"../core/pantheon-api\";\n","import {\n  PantheonAPI,\n  PantheonAPIOptions,\n} from \"@pantheon-systems/pcc-sdk-core\";\nimport type { NextApiRequest, NextApiResponse } from \"next\";\nimport type { NextRequest } from \"next/server\";\n\nexport interface AppRouterParams {\n  params: Record<string, string>;\n  headers?: null;\n}\n\ntype Handler = {\n  // In Pages routing, req and res are NextApiRequest and NextApiResponse\n  (req: NextApiRequest, res: NextApiResponse): Promise<unknown>;\n  // In App routing, req is NextRequest and the second argument is AppRouterParams\n  (req: NextRequest, res: AppRouterParams): Promise<void | Response>;\n};\n\nexport function NextPantheonAPI(options?: PantheonAPIOptions) {\n  const api = PantheonAPI(options);\n\n  const handler: Handler = async (req, res) => {\n    if (isPagesRouterResponse(res)) {\n      // Pages router\n      // Intentionally voiding the return value, page router API routes should not return a value\n      // https://github.com/vercel/next.js/discussions/48951\n      return void (await api(req as NextApiRequest, res as NextApiResponse));\n    }\n\n    // App router\n    const appRouterParams = res as AppRouterParams;\n    const headers = new Headers({\n      ...(appRouterParams.headers || {}),\n    });\n\n    return (await api(\n      {\n        query: {\n          ...Object.fromEntries((req as NextRequest).nextUrl.searchParams),\n          ...appRouterParams.params,\n        },\n        cookies: cookiesToObj((req as NextRequest).cookies),\n      },\n      {\n        getHeader: (key) => headers.get(key) || \"\",\n        setHeader: (key, value) => headers.set(key, value.toString()),\n        redirect: (status, path) => {\n          headers.set(\"Location\", path);\n          return new Response(null, {\n            status,\n            headers,\n          });\n        },\n        json: (data) => {\n          return Response.json(data, {\n            headers,\n          });\n        },\n      },\n    )) as void | Response;\n  };\n\n  return handler;\n}\n\nfunction isPagesRouterResponse(\n  res: AppRouterParams | NextApiResponse,\n): res is NextApiResponse {\n  // We can differentiate between app router vs pages api\n  // by checking for params\n  // reference: (https://github.com/nextauthjs/next-auth/blob/v4/packages/next-auth/src/next/index.ts)\n  return res != null && typeof res === \"object\" && !(\"params\" in res);\n}\n\nfunction cookiesToObj(cookies: NextRequest[\"cookies\"]) {\n  // Convert to name value pairs\n  return cookies.getAll().reduce(\n    (acc, cookie) => {\n      acc[cookie.name] = cookie.value;\n      return acc;\n    },\n    {} as Record<string, string>,\n  );\n}\n","import { ApolloClient } from \"@apollo/client/core/ApolloClient.js\";\nimport { ApolloProvider } from \"@apollo/client/react/context/ApolloProvider.js\";\nimport { PantheonClient } from \"@pantheon-systems/pcc-sdk-core\";\nimport React, { PropsWithChildren } from \"react\";\n\ninterface PantheonProviderProps extends PropsWithChildren<object> {\n  client: PantheonClient;\n}\n\nconst PantheonContext = React.createContext<PantheonClient | null>(null);\n\nexport const PantheonProvider = ({\n  client,\n  children,\n}: PantheonProviderProps) => (\n  <PantheonContext.Provider value={client}>\n    <ApolloProvider\n      client={client.apolloClient as unknown as ApolloClient<unknown>}\n    >\n      {children}\n    </ApolloProvider>\n  </PantheonContext.Provider>\n);\n\nexport const usePantheonClient = () => {\n  const client = React.useContext(PantheonContext);\n\n  if (!client) {\n    throw new Error(\"Cannot use outside of a PantheonProvider\");\n  }\n\n  return client;\n};\n","import { markdownToTxt } from \"markdown-to-txt\";\n\nconst headerIdRegex = /\\s*\\{#h\\.[^}]*\\}/g;\nconst markdownHeaderSymbolRegex = /^#+\\s*/gm;\nconst parserConfig = { gfm: true, mangle: false };\n\nexport const markdownToText = function (markdown: string) {\n  return markdownToTxt(\n    markdown.replace(headerIdRegex, \"\"),\n    parserConfig,\n  ).replace(markdownHeaderSymbolRegex, \"\");\n};\n"]}