@powerhousedao/connect 1.0.17-dev.2 → 1.0.17-dev.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{app-CayLrjAy.js → app-BdUxze73.js} +735 -117
- package/dist/assets/{app-CayLrjAy.js.map → app-BdUxze73.js.map} +1 -1
- package/dist/assets/{app-CDOWlDp2.css → app-b1jkE5Vo.css} +115 -0
- package/dist/assets/{app-loader-DiF8OhX3.css → app-loader-B74nopv_.css} +130 -0
- package/dist/assets/{app-loader-Ej0QwX6c.js → app-loader-BVN3aSFC.js} +9 -5
- package/dist/assets/app-loader-BVN3aSFC.js.map +1 -0
- package/dist/assets/{browser-BfB4Waw5.js → browser-CzAjKVis.js} +4 -5
- package/dist/assets/{browser-BfB4Waw5.js.map → browser-CzAjKVis.js.map} +1 -1
- package/dist/assets/{ccip-DBZNMhmz.js → ccip-CbFWJKu1.js} +4 -4
- package/dist/assets/{ccip-DBZNMhmz.js.map → ccip-CbFWJKu1.js.map} +1 -1
- package/dist/assets/{content-DnXO71l4.js → content-C1JKApwb.js} +1010 -374
- package/dist/assets/content-C1JKApwb.js.map +1 -0
- package/dist/assets/{index-CCSrpy8s.js → index-D1myKexe.js} +4 -4
- package/dist/assets/{index-CCSrpy8s.js.map → index-D1myKexe.js.map} +1 -1
- package/dist/assets/{index-BbMglwKh.js → index-DtwSBKZB.js} +14 -14
- package/dist/assets/index-DtwSBKZB.js.map +1 -0
- package/dist/assets/{index-CU3_V46J.js → index-qIrGoURI.js} +4 -4
- package/dist/assets/{index-CU3_V46J.js.map → index-qIrGoURI.js.map} +1 -1
- package/dist/assets/{main.D0KZAQpb.js → main.DCtGjfg0.js} +2 -2
- package/dist/assets/{main.D0KZAQpb.js.map → main.DCtGjfg0.js.map} +1 -1
- package/dist/assets/reactor-analytics-BUR_Njds.js +15 -0
- package/dist/assets/reactor-analytics-BUR_Njds.js.map +1 -0
- package/dist/assets/{router-BF9pgdRU.js → router-LLmzUc4B.js} +8 -7
- package/dist/assets/{router-BF9pgdRU.js.map → router-LLmzUc4B.js.map} +1 -1
- package/dist/index.html +1 -1
- package/dist/vite-envs.sh +1 -1
- package/package.json +8 -8
- package/dist/assets/AnalyticsProfiler-DD1sT8NE.js +0 -22
- package/dist/assets/AnalyticsProfiler-DD1sT8NE.js.map +0 -1
- package/dist/assets/app-loader-Ej0QwX6c.js.map +0 -1
- package/dist/assets/content-DnXO71l4.js.map +0 -1
- package/dist/assets/index-BbMglwKh.js.map +0 -1
- package/dist/assets/reactor-analytics-BioFquA0.js +0 -605
- package/dist/assets/reactor-analytics-BioFquA0.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"reactor-analytics-BioFquA0.js","sources":["../../../../node_modules/.pnpm/@powerhousedao+analytics-engine-core@0.4.0/node_modules/@powerhousedao/analytics-engine-core/dist/AnalyticsTimeSlicer.js","../../../../node_modules/.pnpm/@powerhousedao+analytics-engine-core@0.4.0/node_modules/@powerhousedao/analytics-engine-core/dist/AnalyticsDiscretizer.js","../../../../node_modules/.pnpm/@powerhousedao+analytics-engine-core@0.4.0/node_modules/@powerhousedao/analytics-engine-core/dist/AnalyticsQueryEngine.js","../../../../packages/reactor-browser/dist/src/analytics/context.js","../../src/context/reactor-analytics.tsx"],"sourcesContent":["import { DateTime } from \"luxon\";\nimport { AnalyticsGranularity } from \"./AnalyticsQuery.js\";\nexport const getPeriodSeriesArray = (range) => {\n const result = [];\n const series = getPeriodSeries(range);\n let next = series.next();\n while (next) {\n result.push(next);\n next = series.next();\n }\n return result;\n};\nexport const getPeriodSeries = (range) => {\n return {\n ...range,\n next: _createFactoryFn(range),\n };\n};\nconst _createFactoryFn = (range) => {\n let current = range.start;\n return () => {\n if (current == null) {\n return null;\n }\n let result = null;\n switch (range.granularity) {\n case AnalyticsGranularity.Total:\n result = _nextTotalPeriod(current, range.end);\n break;\n case AnalyticsGranularity.Annual:\n result = _nextAnnualPeriod(current, range.end);\n break;\n case AnalyticsGranularity.SemiAnnual:\n result = _nextSemiAnnualPeriod(current, range.end);\n break;\n case AnalyticsGranularity.Quarterly:\n result = _nextQuarterlyPeriod(current, range.end);\n break;\n case AnalyticsGranularity.Monthly:\n result = _nextMonthlyPeriod(current, range.end);\n break;\n case AnalyticsGranularity.Weekly:\n result = _nextWeeklyPeriod(current, range.end);\n break;\n case AnalyticsGranularity.Daily:\n result = _nextDailyPeriod(current, range.end);\n break;\n case AnalyticsGranularity.Hourly:\n result = _nextHourlyPeriod(current, range.end);\n }\n // Update current to start of next period\n if (result === null) {\n current = null;\n }\n else {\n current = result.end.plus({ milliseconds: 1 });\n }\n return result;\n };\n};\nconst _nextTotalPeriod = (nextStart, seriesEnd) => {\n if (seriesEnd <= nextStart) {\n return null;\n }\n return {\n period: \"total\",\n start: nextStart,\n end: seriesEnd,\n };\n};\nexport const _nextAnnualPeriod = (nextStart, seriesEnd) => {\n if (seriesEnd <= nextStart) {\n return null;\n }\n const inputUtc = nextStart.toUTC();\n const oneYearLater = DateTime.utc(inputUtc.year, inputUtc.month, inputUtc.day).plus({ years: 1 });\n return {\n period: \"annual\",\n start: nextStart,\n end: oneYearLater,\n };\n};\nexport const _nextSemiAnnualPeriod = (nextStart, seriesEnd) => {\n if (seriesEnd <= nextStart) {\n return null;\n }\n const midYear = DateTime.utc(nextStart.year, 7, 1);\n const endYear = DateTime.utc(nextStart.year, 12, 31, 23, 59, 59, 999);\n let endDate;\n if (midYear > nextStart) {\n endDate = midYear;\n }\n else {\n endDate = endYear;\n }\n if (endDate > seriesEnd) {\n endDate = seriesEnd;\n }\n return {\n period: \"semiAnnual\",\n start: nextStart,\n end: endDate,\n };\n};\nexport const _nextQuarterlyPeriod = (nextStart, seriesEnd) => {\n if (seriesEnd <= nextStart) {\n return null;\n }\n let endDate;\n const nextStartUtc = nextStart.toUTC();\n const startMonth = nextStartUtc.month;\n if (startMonth < 3) {\n endDate = DateTime.utc(nextStartUtc.year, 4, 1);\n }\n else if (startMonth < 6) {\n endDate = DateTime.utc(nextStartUtc.year, 7, 1);\n }\n else if (startMonth < 9) {\n endDate = DateTime.utc(nextStartUtc.year, 10, 1);\n }\n else {\n endDate = DateTime.utc(nextStartUtc.year, 12, 31, 23, 59, 59, 999);\n }\n if (endDate > seriesEnd) {\n endDate = seriesEnd;\n }\n return {\n period: \"quarterly\",\n start: nextStart,\n end: endDate,\n };\n};\nexport const _nextMonthlyPeriod = (nextStart, seriesEnd) => {\n if (seriesEnd <= nextStart) {\n return null;\n }\n // Get the first day of the next month\n const nextStartUtc = nextStart.toUTC();\n let endDate = DateTime.utc(nextStartUtc.year, nextStartUtc.month, nextStartUtc.day)\n .plus({ months: 1 })\n .startOf(\"month\");\n // If the end date is after the series end, then use the series end as the end date\n if (endDate > seriesEnd) {\n if (!nextStart.hasSame(seriesEnd, \"month\")) {\n endDate = seriesEnd;\n }\n }\n // Otherwise, return the end date as the first day of the next month\n return {\n period: \"monthly\",\n start: nextStart,\n end: endDate,\n };\n};\nexport const _nextWeeklyPeriod = (nextStart, seriesEnd) => {\n if (seriesEnd <= nextStart) {\n return null;\n }\n // Calculate the start of the next week (Monday)\n const nextStartUtc = nextStart.toUTC();\n const nextWeekStartUTC = DateTime.utc(nextStartUtc.year, nextStartUtc.month, nextStartUtc.day)\n .plus({ weeks: 1 })\n .startOf(\"week\");\n // If the calculated next week start is later or equal to the series end date, return the series end\n if (nextWeekStartUTC > seriesEnd)\n if (!nextWeekStartUTC.hasSame(seriesEnd, \"day\")) {\n return {\n period: \"weekly\",\n start: nextStart,\n end: seriesEnd,\n };\n }\n return {\n period: \"weekly\",\n start: nextStart,\n end: nextWeekStartUTC,\n };\n};\nexport const _nextDailyPeriod = (nextStart, seriesEnd) => {\n if (seriesEnd <= nextStart) {\n return null;\n }\n // Set the end date to the start of the next day\n const nextStartUtc = nextStart.toUTC();\n let endDate = nextStartUtc.plus({ days: 1 }).startOf(\"day\");\n if (endDate > seriesEnd || endDate.hasSame(seriesEnd, \"day\")) {\n endDate = seriesEnd;\n }\n return {\n period: \"daily\",\n start: nextStart,\n end: endDate,\n };\n};\nexport const _nextHourlyPeriod = (nextStart, seriesEnd) => {\n if (seriesEnd <= nextStart) {\n return null;\n }\n const startDate = nextStart.toUTC();\n let endDate = startDate.plus({ hours: 1 });\n if (endDate > seriesEnd) {\n if (nextStart.hour !== seriesEnd.hour) {\n endDate = seriesEnd.toUTC();\n }\n }\n return {\n period: \"hourly\",\n start: nextStart,\n end: endDate,\n };\n};\n//# sourceMappingURL=AnalyticsTimeSlicer.js.map","import { getPeriodSeriesArray, } from \"./AnalyticsTimeSlicer.js\";\nimport { DateTime, Interval } from \"luxon\";\nexport const getQuarter = (date) => {\n return Math.floor((date.month - 1) / 3) + 1;\n};\nexport class AnalyticsDiscretizer {\n static discretize(series, dimensions, start, end, granularity) {\n const index = this._buildIndex(series, dimensions);\n const periods = getPeriodSeriesArray(this._calculateRange(start, end, granularity, series));\n const disretizedResults = this._discretizeNode(index, {}, dimensions, periods);\n const groupedResults = this._groupResultsByPeriod(periods, disretizedResults);\n return groupedResults;\n }\n static _calculateRange(start, end, granularity, results) {\n let calculatedStart = start || null;\n let calculatedEnd = end || null;\n if (calculatedStart == null || calculatedEnd == null) {\n for (const r of results) {\n if (calculatedStart == null) {\n calculatedStart = r.start;\n }\n const endValue = r.end || r.start;\n if (calculatedEnd == null || calculatedEnd < endValue) {\n calculatedEnd = endValue;\n }\n }\n }\n if (calculatedStart == null || calculatedEnd == null) {\n throw new Error(\"Cannot determine query start and/or end.\");\n }\n return {\n start: calculatedStart,\n end: calculatedEnd,\n granularity,\n };\n }\n static _groupResultsByPeriod(periods, dimensionedResults) {\n const result = {};\n for (const p of periods) {\n const id = p.start.toISO() + \"-\" + p.period;\n const period = AnalyticsDiscretizer._getPeriodString(p);\n result[id] = {\n period: period,\n start: p.start,\n end: p.end,\n rows: [],\n };\n }\n for (const r of dimensionedResults) {\n for (const period of Object.keys(r.series)) {\n result[period].rows.push({\n dimensions: r.dimensions,\n metric: r.metric,\n unit: r.unit == \"__NULL__\" ? null : r.unit,\n value: r.series[period].inc,\n sum: r.series[period].sum,\n });\n }\n }\n return Object.values(result);\n }\n static _getPeriodString(p) {\n switch (p.period) {\n case \"annual\":\n return p.start.year.toString();\n case \"semiAnnual\":\n return `${p.start.year}/${p.start.month < 7 ? \"H1\" : \"H2\"}`;\n case \"quarterly\":\n return `${p.start.year}/Q${getQuarter(p.start)}`;\n case \"monthly\":\n const month = p.start.toUTC().month;\n const formattedMonth = month < 10 ? `0${month}` : `${month}`;\n return `${p.start.year}/${formattedMonth}`;\n case \"weekly\":\n return `${p.start.weekYear}/W${p.start.weekNumber}`;\n case \"daily\":\n const monthD = p.start.month;\n const day = p.start.day;\n const formattedMonthD = monthD < 10 ? `0${monthD}` : `${monthD}`;\n const formattedDay = day < 10 ? `0${day}` : `${day}`;\n return `${p.start.year}/${formattedMonthD}/${formattedDay}`;\n case \"hourly\":\n const monthH = p.start.month;\n const dayH = p.start.day;\n const hourH = p.start.hour;\n const formattedMonthH = monthH < 10 ? `0${monthH}` : `${monthH}`;\n const formattedDayH = dayH < 10 ? `0${dayH}` : `${dayH}`;\n const formattedHourH = hourH < 10 ? `0${hourH}` : `${hourH}`;\n return `${p.start.year}/${formattedMonthH}/${formattedDayH}/${formattedHourH}`;\n default:\n return p.period;\n }\n }\n static _discretizeNode(node, dimensionValues, remainingDimensions, periods) {\n const result = [];\n if (remainingDimensions.length > 0) {\n const subdimension = remainingDimensions[0];\n Object.keys(node).forEach((subdimensionValue, index, arr) => {\n const newDimensionValues = { ...dimensionValues };\n newDimensionValues[subdimension] = subdimensionValue;\n result.push(...this._discretizeNode(node[subdimensionValue], newDimensionValues, remainingDimensions.slice(1), periods));\n });\n }\n else {\n Object.keys(node).forEach((metric) => {\n result.push(...this._discretizeLeaf(node[metric], periods, metric, dimensionValues));\n });\n }\n return result;\n }\n static _discretizeLeaf(leaf, periods, metric, dimensionValues) {\n const result = [];\n Object.keys(leaf).forEach((unit) => {\n const metaDimensions = {};\n Object.keys(dimensionValues).forEach((k) => {\n metaDimensions[k] = {\n path: leaf[unit][0].dimensions[k],\n icon: leaf[unit][0].dimensions.icon,\n label: leaf[unit][0].dimensions.label,\n description: leaf[unit][0].dimensions.description,\n };\n });\n result.push({\n unit,\n metric,\n dimensions: metaDimensions,\n series: this._discretizeSeries(leaf[unit], periods),\n });\n });\n return result;\n }\n static _discretizeSeries(series, periods) {\n const result = {};\n for (const s of series) {\n let oldSum = this._getValue(s, periods[0].start);\n for (const p of periods) {\n const newSum = this._getValue(s, p.end);\n const id = `${p.start.toISO()}-${p.period}`;\n // const id = p.period;\n if (result[id]) {\n result[id].inc += newSum - oldSum;\n result[id].sum += newSum;\n }\n else {\n result[id] = {\n inc: newSum - oldSum,\n sum: newSum,\n };\n }\n oldSum = newSum;\n }\n }\n return result;\n }\n static _getValue(series, when) {\n switch (series.fn) {\n case \"Single\":\n return this._getSingleValue(series, when);\n case \"DssVest\":\n return this._getVestValue(series, when);\n default:\n // todo: logging interface\n //console.error(`Unknown analytics series function: '${series.fn}'`);\n return 0.0;\n }\n }\n static _getSingleValue(series, when) {\n return when >= series.start ? series.value : 0.0;\n }\n static _getVestValue(series, when) {\n const now = when;\n const start = series.start;\n const end = series.end;\n const cliff = series.params?.cliff\n ? DateTime.fromISO(series.params.cliff)\n : null;\n if (now < start || (cliff && now < cliff)) {\n return 0.0;\n }\n else if (end && now >= end) {\n return series.value;\n }\n const a = Interval.fromDateTimes(start, now);\n const b = Interval.fromDateTimes(start, end || now);\n return (a.length() / b.length()) * series.value;\n }\n static _buildIndex(series, dimensions) {\n const result = {};\n const map = {};\n const dimName = dimensions[0] || \"\";\n for (const s of series) {\n const dimValue = s.dimensions[dimName];\n if (undefined === map[dimValue]) {\n map[dimValue] = [];\n }\n map[dimValue].push(s);\n }\n if (dimensions.length > 1) {\n const newDimensions = dimensions.slice(1);\n Object.keys(map).forEach((k) => {\n result[k] = this._buildIndex(map[k], newDimensions);\n });\n }\n else {\n Object.keys(map).forEach((k) => {\n result[k] = this._buildMetricsIndex(map[k]);\n });\n }\n return result;\n }\n static _buildMetricsIndex(series) {\n const result = {};\n const map = {};\n for (const s of series) {\n const metric = s.metric;\n if (undefined === map[metric]) {\n map[metric] = [];\n }\n map[metric].push(s);\n }\n Object.keys(map).forEach((k) => (result[k] = this._buildUnitIndex(map[k])));\n return result;\n }\n static _buildUnitIndex(series) {\n const result = {};\n for (const s of series) {\n const unit = s.unit || \"__NULL__\";\n if (undefined === result[unit]) {\n result[unit] = [];\n }\n result[unit].push(s);\n }\n return result;\n }\n}\n//# sourceMappingURL=AnalyticsDiscretizer.js.map","import { AnalyticsDiscretizer, } from \"./AnalyticsDiscretizer.js\";\nimport { AnalyticsPath } from \"./AnalyticsPath.js\";\nimport { PassthroughAnalyticsProfiler, } from \"./AnalyticsProfiler.js\";\nimport { CompoundOperator, } from \"./AnalyticsQuery.js\";\nexport class AnalyticsQueryEngine {\n _analyticsStore;\n _profiler;\n constructor(_analyticsStore, profiler) {\n this._analyticsStore = _analyticsStore;\n this._profiler = profiler ?? new PassthroughAnalyticsProfiler();\n }\n async executeCompound(query) {\n let result;\n const inputsQuery = {\n start: query.start,\n end: query.end,\n granularity: query.granularity,\n lod: query.lod,\n select: query.select,\n metrics: query.expression.inputs.metrics,\n currency: query.expression.inputs.currency,\n };\n const operandQuery = {\n start: query.start,\n end: query.end,\n granularity: query.granularity,\n lod: { priceData: 1 },\n select: { priceData: [AnalyticsPath.fromString(\"atlas\")] },\n metrics: [query.expression.operand.metric],\n currency: query.expression.operand.currency,\n };\n const inputExecute = await this.execute(inputsQuery);\n const operandExecute = await this.execute(operandQuery);\n if ([CompoundOperator.VectorAdd, CompoundOperator.VectorSubtract].includes(query.expression.operator)) {\n result = await this._profiler.record(\"ApplyVectorOperator\", async () => await this._applyVectorOperator(inputExecute, operandExecute, query.expression.operator, query.expression.resultCurrency));\n }\n else {\n result = await this._profiler.record(\"ApplyScalarOperator\", async () => await this._applyScalarOperator(inputExecute, operandExecute, query.expression.operator, query.expression.operand.useSum, query.expression.resultCurrency));\n }\n return result;\n }\n async execute(query) {\n const seriesResults = await this._executeSeriesQuery(query);\n const normalizedSeriesResults = this._profiler.recordSync(\"ApplyLODs\", () => this._applyLods(seriesResults, query.lod));\n const dimensions = Object.keys(query.select);\n const discretizedResult = this._profiler.recordSync(\"Discretize\", () => normalizedSeriesResults.length < 1\n ? []\n : AnalyticsDiscretizer.discretize(normalizedSeriesResults, dimensions, query.start, query.end, query.granularity));\n return discretizedResult;\n }\n async executeMultiCurrency(query, mcc) {\n const baseQuery = {\n ...query,\n currency: mcc.targetCurrency,\n };\n let result = await this.execute(baseQuery);\n for (const conversion of mcc.conversions) {\n const nextQuery = {\n start: query.start,\n end: query.end,\n granularity: query.granularity,\n lod: query.lod,\n select: query.select,\n expression: {\n inputs: {\n metrics: baseQuery.metrics,\n currency: conversion.currency,\n },\n operator: CompoundOperator.ScalarMultiply,\n operand: {\n metric: conversion.metric,\n currency: mcc.targetCurrency,\n useSum: true,\n },\n resultCurrency: mcc.targetCurrency,\n },\n };\n const executedCompound = await this.executeCompound(nextQuery);\n result = await this._applyVectorOperator(result, executedCompound, CompoundOperator.VectorAdd, mcc.targetCurrency);\n }\n return result;\n }\n async _applyVectorOperator(inputsA, inputsB, operator, resultCurrency) {\n if ([CompoundOperator.ScalarMultiply, CompoundOperator.ScalarDivide].includes(operator)) {\n throw new Error(\"Invalid operator for vector operation\");\n }\n return inputsB;\n }\n async _applyScalarOperator(inputs, // expected input is the budget & actuals in 2022 monthly granularity in MKR\n operand, // expected input is the daily mkr price change in 2022 monthly granularity in DAI\n operator, // expected to me multiply and later addition\n useOperandSum, resultCurrency // expected to be DAI\n ) {\n if ([CompoundOperator.VectorAdd, CompoundOperator.VectorSubtract].includes(operator)) {\n throw new Error(\"Invalid operator for scalar operation\");\n }\n const result = [];\n const operandMap = {};\n const key = useOperandSum ? \"sum\" : \"value\";\n for (const operandPeriod of operand) {\n if (operandPeriod.rows.length > 0) {\n operandMap[operandPeriod.period] = operandPeriod.rows[0][key];\n }\n }\n // let previousValue: number = 1;\n for (const inputPeriod of inputs) {\n const outputPeriod = {\n period: inputPeriod.period,\n start: inputPeriod.start,\n end: inputPeriod.end,\n rows: inputPeriod.rows.map((row) => {\n const newRow = {\n dimensions: row.dimensions,\n metric: row.metric,\n unit: resultCurrency.toString(),\n value: this._calculateOutputValue(row.value, operator, operandMap[inputPeriod.period]),\n sum: -1,\n };\n return newRow;\n }),\n };\n result.push(outputPeriod);\n }\n return result;\n }\n _calculateOutputValue(input, operator, operand) {\n switch (operator) {\n case CompoundOperator.VectorAdd:\n return input + operand;\n case CompoundOperator.VectorSubtract:\n return input - operand;\n case CompoundOperator.ScalarMultiply:\n return input * operand;\n case CompoundOperator.ScalarDivide:\n return input / operand;\n }\n }\n async _executeSeriesQuery(query) {\n const seriesQuery = {\n start: query.start,\n end: query.end,\n currency: query.currency,\n select: query.select,\n metrics: query.metrics,\n };\n return await this._analyticsStore.getMatchingSeries(seriesQuery);\n }\n _applyLods(series, lods) {\n return series.map((result) => ({\n ...result,\n dimensions: this._applyDimensionsLods(result.dimensions, lods),\n }));\n }\n _applyDimensionsLods(dimensionMap, lods) {\n const result = {};\n for (const [dimension, lod] of Object.entries(lods)) {\n if (lod !== null && dimensionMap[dimension]) {\n result[dimension] = dimensionMap[dimension][\"path\"]\n .applyLod(lod)\n .toString();\n result[\"icon\"] = dimensionMap[dimension][\"icon\"].toString();\n result[\"label\"] = dimensionMap[dimension][\"label\"].toString();\n result[\"description\"] =\n dimensionMap[dimension][\"description\"].toString();\n }\n }\n return result;\n }\n async getDimensions() {\n return await this._analyticsStore.getDimensions();\n }\n}\n//# sourceMappingURL=AnalyticsQueryEngine.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { AnalyticsQueryEngine, } from \"@powerhousedao/analytics-engine-core\";\nimport { QueryClient, QueryClientProvider } from \"@tanstack/react-query\";\nimport { createContext, useContext } from \"react\";\nconst AnalyticsContext = createContext(null);\nconst defaultQueryClient = new QueryClient();\nexport function AnalyticsProvider({ children, store, queryClient = defaultQueryClient, }) {\n const engine = new AnalyticsQueryEngine(store);\n const content = (_jsx(AnalyticsContext.Provider, { value: { store, engine }, children: children }));\n if (queryClient === false) {\n return content;\n }\n return (_jsx(QueryClientProvider, { client: queryClient, children: content }));\n}\nexport function useAnalyticsStore() {\n const context = useContext(AnalyticsContext);\n if (!context?.store) {\n throw new Error(\"No analytics store available. Use within an AnalyticsProvider.\");\n }\n return context.store;\n}\nexport function useAnalyticsEngine() {\n const context = useContext(AnalyticsContext);\n if (!context?.engine) {\n throw new Error(\"No analytics engine available. Use within an AnalyticsProvider.\");\n }\n return context.engine;\n}\n//# sourceMappingURL=context.js.map","import { AnalyticsProvider } from '@powerhousedao/reactor-browser/analytics/context';\nimport { type PropsWithChildren } from 'react';\nimport { useUnwrappedAnalyticsStore } from '../store/analytics';\n\nexport function ReactorAnalyticsProvider({ children }: PropsWithChildren) {\n const store = useUnwrappedAnalyticsStore();\n\n // Use store if available, otherwise render children without the provider\n return store ? (\n <AnalyticsProvider store={store}>{children}</AnalyticsProvider>\n ) : (\n children\n );\n}\n\nexport default ReactorAnalyticsProvider;\n"],"names":["_jsx"],"mappings":"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","x_google_ignoreList":[0,1,2]}
|