{"version":3,"sources":["../../src/utils.ts"],"sourcesContent":["import * as React from \"react\";\nimport { useQueryClient, type QueryClient } from \"@tanstack/react-query\";\n\nfunction useWidgetsInvalidator() {\n  let queryClient: QueryClient;\n  try {\n    queryClient = useQueryClient();\n  } catch {\n    throw Error(\n      \"useWidgetsInvalidation must be used within the `WorkOsWidgets` provider component\",\n    );\n  }\n\n  return React.useCallback(async () => {\n    await queryClient.invalidateQueries({ queryKey: [\"authToken\"] });\n    // TODO: Unclear why, but invalidating other widgets' queries immediately\n    // after the authToken invalidation (even though it's async?) doesn't work,\n    // and We end up with stale data. Waiting for the next tick fixes this.\n    await new Promise((resolve) => setTimeout(resolve, 1));\n    return queryClient.invalidateQueries({\n      predicate: (query) =>\n        query.queryKey.some(\n          (key) => typeof key === \"string\" && key.startsWith(\"/_widgets/\"),\n        ),\n    });\n  }, [queryClient]);\n}\n\nexport { useWidgetsInvalidator as unstable_useWidgetsInvalidator };\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAAuB;AACvB,yBAAiD;AAEjD,SAAS,wBAAwB;AAC/B,MAAI;AACJ,MAAI;AACF,sBAAc,mCAAe;AAAA,EAC/B,QAAQ;AACN,UAAM;AAAA,MACJ;AAAA,IACF;AAAA,EACF;AAEA,SAAO,MAAM,YAAY,YAAY;AACnC,UAAM,YAAY,kBAAkB,EAAE,UAAU,CAAC,WAAW,EAAE,CAAC;AAI/D,UAAM,IAAI,QAAQ,CAAC,YAAY,WAAW,SAAS,CAAC,CAAC;AACrD,WAAO,YAAY,kBAAkB;AAAA,MACnC,WAAW,CAAC,UACV,MAAM,SAAS;AAAA,QACb,CAAC,QAAQ,OAAO,QAAQ,YAAY,IAAI,WAAW,YAAY;AAAA,MACjE;AAAA,IACJ,CAAC;AAAA,EACH,GAAG,CAAC,WAAW,CAAC;AAClB;","names":[]}