@aranova/tracking-react 0.9.1 → 0.10.0
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/README.md +6 -2
- package/dist/index.d.mts +62 -1
- package/dist/index.d.ts +62 -1
- package/dist/index.js +11 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +11 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -162,8 +162,12 @@ export default async function handler(_req, res) {
|
|
|
162
162
|
}
|
|
163
163
|
```
|
|
164
164
|
|
|
165
|
-
|
|
166
|
-
|
|
165
|
+
`sales.summary({ range: '30d' })` returns currency-grouped aggregations (revenue and
|
|
166
|
+
average order value per currency, distinct customers, by-service / by-currency /
|
|
167
|
+
by-category breakdowns, and a revenue/count trend) — also a secret-key read.
|
|
168
|
+
|
|
169
|
+
A public-key client calling `list`/`summary`/`get`/`update`/`delete` gets a `403`
|
|
170
|
+
telling it to use a secret key server-side.
|
|
167
171
|
|
|
168
172
|
Generate the typed `AranovaService` union from your dashboard services with the CLI
|
|
169
173
|
(install it as a **devDependency**):
|
package/dist/index.d.mts
CHANGED
|
@@ -1725,6 +1725,61 @@ interface SaleListQuery extends SaleFilters {
|
|
|
1725
1725
|
limit?: number;
|
|
1726
1726
|
cursor?: string | null;
|
|
1727
1727
|
}
|
|
1728
|
+
declare const TRACKING_RANGES: readonly ["24h", "7d", "30d"];
|
|
1729
|
+
type TrackingOverviewRange = (typeof TRACKING_RANGES)[number];
|
|
1730
|
+
/** Query input for `SalesClient.summary()` — filters + range + options. */
|
|
1731
|
+
interface SaleSummaryQuery extends SaleFilters {
|
|
1732
|
+
range: TrackingOverviewRange;
|
|
1733
|
+
/** Include the per-category line-item breakdown (extra join; default false). */
|
|
1734
|
+
include_categories?: boolean;
|
|
1735
|
+
/** Surface soft-deleted services individually (flagged "(deleted)") instead of
|
|
1736
|
+
* rolling them into a single "Deleted services" bucket. Default false. */
|
|
1737
|
+
include_deleted_services?: boolean;
|
|
1738
|
+
/** Cap on the by-service / by-category rows (1–50, default 10). */
|
|
1739
|
+
top_n?: number;
|
|
1740
|
+
}
|
|
1741
|
+
interface CurrencyRevenue {
|
|
1742
|
+
currency: SupportedCurrency;
|
|
1743
|
+
sale_count: number;
|
|
1744
|
+
revenue_cents: number;
|
|
1745
|
+
average_order_value_cents: number;
|
|
1746
|
+
}
|
|
1747
|
+
interface SalesServiceBreakdown {
|
|
1748
|
+
service_id: string | null;
|
|
1749
|
+
service_key: string | null;
|
|
1750
|
+
/** "Unassigned" when the sale has no service. */
|
|
1751
|
+
service_label: string | null;
|
|
1752
|
+
currency: SupportedCurrency;
|
|
1753
|
+
sale_count: number;
|
|
1754
|
+
revenue_cents: number;
|
|
1755
|
+
}
|
|
1756
|
+
interface SalesCategoryBreakdown {
|
|
1757
|
+
category: string | null;
|
|
1758
|
+
currency: SupportedCurrency;
|
|
1759
|
+
/** sum(unit_price_cents * quantity) — advisory, not authoritative. */
|
|
1760
|
+
revenue_cents: number;
|
|
1761
|
+
/** Decimal string. */
|
|
1762
|
+
quantity: string;
|
|
1763
|
+
}
|
|
1764
|
+
interface SalesTrendPoint {
|
|
1765
|
+
bucket_start: string;
|
|
1766
|
+
currency: SupportedCurrency;
|
|
1767
|
+
sale_count: number;
|
|
1768
|
+
revenue_cents: number;
|
|
1769
|
+
}
|
|
1770
|
+
interface SaleSummary {
|
|
1771
|
+
range: TrackingOverviewRange;
|
|
1772
|
+
business_id: string | null;
|
|
1773
|
+
metrics: {
|
|
1774
|
+
sale_count: number;
|
|
1775
|
+
distinct_customers: number;
|
|
1776
|
+
by_currency: CurrencyRevenue[];
|
|
1777
|
+
};
|
|
1778
|
+
by_service: SalesServiceBreakdown[];
|
|
1779
|
+
by_currency: CurrencyRevenue[];
|
|
1780
|
+
by_category: SalesCategoryBreakdown[];
|
|
1781
|
+
series: SalesTrendPoint[];
|
|
1782
|
+
}
|
|
1728
1783
|
|
|
1729
1784
|
/** Shared config for every sales HTTP helper. */
|
|
1730
1785
|
interface SalesTransportConfig {
|
|
@@ -1764,6 +1819,12 @@ interface SalesClient<TService extends string = string> {
|
|
|
1764
1819
|
occurred_at?: string;
|
|
1765
1820
|
}): Promise<Sale>;
|
|
1766
1821
|
list(query?: SaleListQuery): Promise<SaleCursorPage>;
|
|
1822
|
+
/**
|
|
1823
|
+
* Currency-grouped aggregations for the key's business (revenue per currency,
|
|
1824
|
+
* AOV, distinct customers, by-service / by-currency / by-category breakdowns,
|
|
1825
|
+
* and a revenue/count trend). Secret key only — a public key gets a `403`.
|
|
1826
|
+
*/
|
|
1827
|
+
summary(query: SaleSummaryQuery): Promise<SaleSummary>;
|
|
1767
1828
|
get(id: string): Promise<Sale>;
|
|
1768
1829
|
update(id: string, patch: Omit<SaleUpdateInput, 'service'> & {
|
|
1769
1830
|
service?: TService | null;
|
|
@@ -1963,4 +2024,4 @@ interface CreateTrackingResult<TRegistry extends TriggerRegistryConfig> {
|
|
|
1963
2024
|
}
|
|
1964
2025
|
declare function createTracking<TRegistry extends TriggerRegistryConfig>(options: CreateTrackingOptions<TRegistry>): CreateTrackingResult<TRegistry>;
|
|
1965
2026
|
|
|
1966
|
-
export { AranovaApiError, type AutomaticEventName, ConsentBanner, type ConsentBannerProps, type ConsentState, type CreateTrackingOptions, type CreateTrackingResult, type CtaClickConfig, type CtaClickMetadata, type EventConfig, type EventMetadata, type EventName, type FormStartConfig, type FormStartMetadata, type FormSubmitConfig, type FormSubmitMetadata, GoogleAdsTracking, type GoogleAdsTrackingProps, type JsonValue, type ManualEventName, type MultiPageSessionConfig, type MultiPageSessionMetadata, type PageViewConfig, type PageViewMetadata, type PhoneClickConfig, type PhoneClickMetadata, type PublicServiceItem, type RegisteredAutomaticEvents, type RegisteredManualEvents, type Sale, type SaleCursorPage, type SaleInput, type SaleItem, type SaleItemInput, type SaleListPage, type SaleListQuery, type SaleUpdateInput, type SalesClient, type SalesClientConfig, type SalesTransportConfig, type ScrollDepthConfig, type ScrollDepthMetadata, type SpecificPageName, type SpecificPageVisitConfig, type SpecificPageVisitMetadata, type SupportedCurrency, TRACKING_PARAM_KEYS, type TimeOnSiteConfig, type TimeOnSiteMetadata, type TrackingClient, type TrackingClientContext, type TrackingEventCreatePayload, type TrackingInitConfig, type TrackingInstallSurface, type TrackingParams, type TrackingProviderProps, type TrackingSessionUpsertPayload, type TriggerRegistryConfig, type TypedTrackEventOptions, type TypedTrackingClient, type UseConsentResult, captureTrackingParamsFromLocation, createSalesClient, createTracking, createTrackingClientContext, createTrackingEventCreatePayload, createTrackingSessionUpsertPayload, fetchServices, formatMoney, fromMinor, getConsentState, resetConsent, setConsentState, toMinor, useConsent, useConsentState, useGclid, useTrackingParams };
|
|
2027
|
+
export { AranovaApiError, type AutomaticEventName, ConsentBanner, type ConsentBannerProps, type ConsentState, type CreateTrackingOptions, type CreateTrackingResult, type CtaClickConfig, type CtaClickMetadata, type CurrencyRevenue, type EventConfig, type EventMetadata, type EventName, type FormStartConfig, type FormStartMetadata, type FormSubmitConfig, type FormSubmitMetadata, GoogleAdsTracking, type GoogleAdsTrackingProps, type JsonValue, type ManualEventName, type MultiPageSessionConfig, type MultiPageSessionMetadata, type PageViewConfig, type PageViewMetadata, type PhoneClickConfig, type PhoneClickMetadata, type PublicServiceItem, type RegisteredAutomaticEvents, type RegisteredManualEvents, type Sale, type SaleCursorPage, type SaleInput, type SaleItem, type SaleItemInput, type SaleListPage, type SaleListQuery, type SaleSummary, type SaleSummaryQuery, type SaleUpdateInput, type SalesCategoryBreakdown, type SalesClient, type SalesClientConfig, type SalesServiceBreakdown, type SalesTransportConfig, type SalesTrendPoint, type ScrollDepthConfig, type ScrollDepthMetadata, type SpecificPageName, type SpecificPageVisitConfig, type SpecificPageVisitMetadata, type SupportedCurrency, TRACKING_PARAM_KEYS, type TimeOnSiteConfig, type TimeOnSiteMetadata, type TrackingClient, type TrackingClientContext, type TrackingEventCreatePayload, type TrackingInitConfig, type TrackingInstallSurface, type TrackingOverviewRange, type TrackingParams, type TrackingProviderProps, type TrackingSessionUpsertPayload, type TriggerRegistryConfig, type TypedTrackEventOptions, type TypedTrackingClient, type UseConsentResult, captureTrackingParamsFromLocation, createSalesClient, createTracking, createTrackingClientContext, createTrackingEventCreatePayload, createTrackingSessionUpsertPayload, fetchServices, formatMoney, fromMinor, getConsentState, resetConsent, setConsentState, toMinor, useConsent, useConsentState, useGclid, useTrackingParams };
|
package/dist/index.d.ts
CHANGED
|
@@ -1725,6 +1725,61 @@ interface SaleListQuery extends SaleFilters {
|
|
|
1725
1725
|
limit?: number;
|
|
1726
1726
|
cursor?: string | null;
|
|
1727
1727
|
}
|
|
1728
|
+
declare const TRACKING_RANGES: readonly ["24h", "7d", "30d"];
|
|
1729
|
+
type TrackingOverviewRange = (typeof TRACKING_RANGES)[number];
|
|
1730
|
+
/** Query input for `SalesClient.summary()` — filters + range + options. */
|
|
1731
|
+
interface SaleSummaryQuery extends SaleFilters {
|
|
1732
|
+
range: TrackingOverviewRange;
|
|
1733
|
+
/** Include the per-category line-item breakdown (extra join; default false). */
|
|
1734
|
+
include_categories?: boolean;
|
|
1735
|
+
/** Surface soft-deleted services individually (flagged "(deleted)") instead of
|
|
1736
|
+
* rolling them into a single "Deleted services" bucket. Default false. */
|
|
1737
|
+
include_deleted_services?: boolean;
|
|
1738
|
+
/** Cap on the by-service / by-category rows (1–50, default 10). */
|
|
1739
|
+
top_n?: number;
|
|
1740
|
+
}
|
|
1741
|
+
interface CurrencyRevenue {
|
|
1742
|
+
currency: SupportedCurrency;
|
|
1743
|
+
sale_count: number;
|
|
1744
|
+
revenue_cents: number;
|
|
1745
|
+
average_order_value_cents: number;
|
|
1746
|
+
}
|
|
1747
|
+
interface SalesServiceBreakdown {
|
|
1748
|
+
service_id: string | null;
|
|
1749
|
+
service_key: string | null;
|
|
1750
|
+
/** "Unassigned" when the sale has no service. */
|
|
1751
|
+
service_label: string | null;
|
|
1752
|
+
currency: SupportedCurrency;
|
|
1753
|
+
sale_count: number;
|
|
1754
|
+
revenue_cents: number;
|
|
1755
|
+
}
|
|
1756
|
+
interface SalesCategoryBreakdown {
|
|
1757
|
+
category: string | null;
|
|
1758
|
+
currency: SupportedCurrency;
|
|
1759
|
+
/** sum(unit_price_cents * quantity) — advisory, not authoritative. */
|
|
1760
|
+
revenue_cents: number;
|
|
1761
|
+
/** Decimal string. */
|
|
1762
|
+
quantity: string;
|
|
1763
|
+
}
|
|
1764
|
+
interface SalesTrendPoint {
|
|
1765
|
+
bucket_start: string;
|
|
1766
|
+
currency: SupportedCurrency;
|
|
1767
|
+
sale_count: number;
|
|
1768
|
+
revenue_cents: number;
|
|
1769
|
+
}
|
|
1770
|
+
interface SaleSummary {
|
|
1771
|
+
range: TrackingOverviewRange;
|
|
1772
|
+
business_id: string | null;
|
|
1773
|
+
metrics: {
|
|
1774
|
+
sale_count: number;
|
|
1775
|
+
distinct_customers: number;
|
|
1776
|
+
by_currency: CurrencyRevenue[];
|
|
1777
|
+
};
|
|
1778
|
+
by_service: SalesServiceBreakdown[];
|
|
1779
|
+
by_currency: CurrencyRevenue[];
|
|
1780
|
+
by_category: SalesCategoryBreakdown[];
|
|
1781
|
+
series: SalesTrendPoint[];
|
|
1782
|
+
}
|
|
1728
1783
|
|
|
1729
1784
|
/** Shared config for every sales HTTP helper. */
|
|
1730
1785
|
interface SalesTransportConfig {
|
|
@@ -1764,6 +1819,12 @@ interface SalesClient<TService extends string = string> {
|
|
|
1764
1819
|
occurred_at?: string;
|
|
1765
1820
|
}): Promise<Sale>;
|
|
1766
1821
|
list(query?: SaleListQuery): Promise<SaleCursorPage>;
|
|
1822
|
+
/**
|
|
1823
|
+
* Currency-grouped aggregations for the key's business (revenue per currency,
|
|
1824
|
+
* AOV, distinct customers, by-service / by-currency / by-category breakdowns,
|
|
1825
|
+
* and a revenue/count trend). Secret key only — a public key gets a `403`.
|
|
1826
|
+
*/
|
|
1827
|
+
summary(query: SaleSummaryQuery): Promise<SaleSummary>;
|
|
1767
1828
|
get(id: string): Promise<Sale>;
|
|
1768
1829
|
update(id: string, patch: Omit<SaleUpdateInput, 'service'> & {
|
|
1769
1830
|
service?: TService | null;
|
|
@@ -1963,4 +2024,4 @@ interface CreateTrackingResult<TRegistry extends TriggerRegistryConfig> {
|
|
|
1963
2024
|
}
|
|
1964
2025
|
declare function createTracking<TRegistry extends TriggerRegistryConfig>(options: CreateTrackingOptions<TRegistry>): CreateTrackingResult<TRegistry>;
|
|
1965
2026
|
|
|
1966
|
-
export { AranovaApiError, type AutomaticEventName, ConsentBanner, type ConsentBannerProps, type ConsentState, type CreateTrackingOptions, type CreateTrackingResult, type CtaClickConfig, type CtaClickMetadata, type EventConfig, type EventMetadata, type EventName, type FormStartConfig, type FormStartMetadata, type FormSubmitConfig, type FormSubmitMetadata, GoogleAdsTracking, type GoogleAdsTrackingProps, type JsonValue, type ManualEventName, type MultiPageSessionConfig, type MultiPageSessionMetadata, type PageViewConfig, type PageViewMetadata, type PhoneClickConfig, type PhoneClickMetadata, type PublicServiceItem, type RegisteredAutomaticEvents, type RegisteredManualEvents, type Sale, type SaleCursorPage, type SaleInput, type SaleItem, type SaleItemInput, type SaleListPage, type SaleListQuery, type SaleUpdateInput, type SalesClient, type SalesClientConfig, type SalesTransportConfig, type ScrollDepthConfig, type ScrollDepthMetadata, type SpecificPageName, type SpecificPageVisitConfig, type SpecificPageVisitMetadata, type SupportedCurrency, TRACKING_PARAM_KEYS, type TimeOnSiteConfig, type TimeOnSiteMetadata, type TrackingClient, type TrackingClientContext, type TrackingEventCreatePayload, type TrackingInitConfig, type TrackingInstallSurface, type TrackingParams, type TrackingProviderProps, type TrackingSessionUpsertPayload, type TriggerRegistryConfig, type TypedTrackEventOptions, type TypedTrackingClient, type UseConsentResult, captureTrackingParamsFromLocation, createSalesClient, createTracking, createTrackingClientContext, createTrackingEventCreatePayload, createTrackingSessionUpsertPayload, fetchServices, formatMoney, fromMinor, getConsentState, resetConsent, setConsentState, toMinor, useConsent, useConsentState, useGclid, useTrackingParams };
|
|
2027
|
+
export { AranovaApiError, type AutomaticEventName, ConsentBanner, type ConsentBannerProps, type ConsentState, type CreateTrackingOptions, type CreateTrackingResult, type CtaClickConfig, type CtaClickMetadata, type CurrencyRevenue, type EventConfig, type EventMetadata, type EventName, type FormStartConfig, type FormStartMetadata, type FormSubmitConfig, type FormSubmitMetadata, GoogleAdsTracking, type GoogleAdsTrackingProps, type JsonValue, type ManualEventName, type MultiPageSessionConfig, type MultiPageSessionMetadata, type PageViewConfig, type PageViewMetadata, type PhoneClickConfig, type PhoneClickMetadata, type PublicServiceItem, type RegisteredAutomaticEvents, type RegisteredManualEvents, type Sale, type SaleCursorPage, type SaleInput, type SaleItem, type SaleItemInput, type SaleListPage, type SaleListQuery, type SaleSummary, type SaleSummaryQuery, type SaleUpdateInput, type SalesCategoryBreakdown, type SalesClient, type SalesClientConfig, type SalesServiceBreakdown, type SalesTransportConfig, type SalesTrendPoint, type ScrollDepthConfig, type ScrollDepthMetadata, type SpecificPageName, type SpecificPageVisitConfig, type SpecificPageVisitMetadata, type SupportedCurrency, TRACKING_PARAM_KEYS, type TimeOnSiteConfig, type TimeOnSiteMetadata, type TrackingClient, type TrackingClientContext, type TrackingEventCreatePayload, type TrackingInitConfig, type TrackingInstallSurface, type TrackingOverviewRange, type TrackingParams, type TrackingProviderProps, type TrackingSessionUpsertPayload, type TriggerRegistryConfig, type TypedTrackEventOptions, type TypedTrackingClient, type UseConsentResult, captureTrackingParamsFromLocation, createSalesClient, createTracking, createTrackingClientContext, createTrackingEventCreatePayload, createTrackingSessionUpsertPayload, fetchServices, formatMoney, fromMinor, getConsentState, resetConsent, setConsentState, toMinor, useConsent, useConsentState, useGclid, useTrackingParams };
|
package/dist/index.js
CHANGED
|
@@ -1386,6 +1386,16 @@ function createSalesClient(config) {
|
|
|
1386
1386
|
...cursor !== void 0 ? { cursor } : {}
|
|
1387
1387
|
});
|
|
1388
1388
|
},
|
|
1389
|
+
async summary(query) {
|
|
1390
|
+
const { range, include_categories, include_deleted_services, top_n, ...filters } = query;
|
|
1391
|
+
return salesRequest(config, "POST", "/sales/summary", {
|
|
1392
|
+
filters,
|
|
1393
|
+
range,
|
|
1394
|
+
...include_categories !== void 0 ? { include_categories } : {},
|
|
1395
|
+
...include_deleted_services !== void 0 ? { include_deleted_services } : {},
|
|
1396
|
+
...top_n !== void 0 ? { top_n } : {}
|
|
1397
|
+
});
|
|
1398
|
+
},
|
|
1389
1399
|
async get(id) {
|
|
1390
1400
|
return salesRequest(config, "GET", `/sales/${id}`);
|
|
1391
1401
|
},
|
|
@@ -1681,7 +1691,7 @@ function GoogleAdsTracking(props) {
|
|
|
1681
1691
|
var import_react4 = require("react");
|
|
1682
1692
|
|
|
1683
1693
|
// package.json
|
|
1684
|
-
var version = "0.
|
|
1694
|
+
var version = "0.10.0";
|
|
1685
1695
|
|
|
1686
1696
|
// src/factory.tsx
|
|
1687
1697
|
var import_jsx_runtime2 = require("react/jsx-runtime");
|