@levi-gemcommerce/analytics 0.0.1-dev.3 → 0.0.1-dev.4

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.
Files changed (133) hide show
  1. package/dist/esm/core/gemxql/api/index.d.ts +2 -0
  2. package/dist/esm/core/gemxql/api/useCustomGemXQlQuery.d.ts +16 -0
  3. package/dist/esm/core/gemxql/api/useGemxQlNamedQuery.d.ts +14 -0
  4. package/dist/esm/core/gemxql/builder/build-gemxql-query.d.ts +15 -0
  5. package/dist/esm/core/gemxql/builder/clauses/condition-query.d.ts +12 -0
  6. package/dist/esm/core/gemxql/builder/clauses/from-query.d.ts +6 -0
  7. package/dist/esm/core/gemxql/builder/clauses/group-query.d.ts +11 -0
  8. package/dist/esm/core/gemxql/builder/clauses/index.d.ts +11 -0
  9. package/dist/esm/core/gemxql/builder/clauses/limit-query.d.ts +6 -0
  10. package/dist/esm/core/gemxql/builder/clauses/mode-query.d.ts +7 -0
  11. package/dist/esm/core/gemxql/builder/clauses/offset-query.d.ts +6 -0
  12. package/dist/esm/core/gemxql/builder/clauses/order-by-query.d.ts +7 -0
  13. package/dist/esm/core/gemxql/builder/clauses/show-query.d.ts +6 -0
  14. package/dist/esm/core/gemxql/builder/clauses/time-query.d.ts +16 -0
  15. package/dist/esm/core/gemxql/builder/clauses/time-series-query.d.ts +6 -0
  16. package/dist/esm/core/gemxql/builder/clauses/timezone-query.d.ts +6 -0
  17. package/dist/esm/core/gemxql/builder/configs/date-formats.d.ts +1 -0
  18. package/dist/esm/core/gemxql/builder/configs/index.d.ts +3 -0
  19. package/dist/esm/core/gemxql/builder/configs/keywords.d.ts +2 -0
  20. package/dist/esm/core/gemxql/builder/configs/query-defaults.d.ts +1 -0
  21. package/dist/esm/core/gemxql/builder/filters/build-extra-conditions.d.ts +3 -0
  22. package/dist/esm/core/gemxql/builder/filters/build-filter-conditions.d.ts +22 -0
  23. package/dist/esm/core/gemxql/builder/filters/index.d.ts +2 -0
  24. package/dist/esm/core/gemxql/builder/helpers/date-query-helpers.d.ts +5 -0
  25. package/dist/esm/core/gemxql/builder/helpers/index.d.ts +1 -0
  26. package/dist/esm/core/gemxql/builder/helpers/is-valid-query-input.d.ts +1 -0
  27. package/dist/esm/core/gemxql/builder/index.d.ts +6 -0
  28. package/dist/esm/core/gemxql/builder/parse-gemxql-query.d.ts +4 -0
  29. package/dist/esm/core/gemxql/constants/analytic-data.d.ts +2 -0
  30. package/dist/esm/core/gemxql/constants/column-keys.d.ts +4 -0
  31. package/dist/esm/core/gemxql/constants/index.d.ts +4 -0
  32. package/dist/esm/core/gemxql/constants/operators.d.ts +2 -0
  33. package/dist/esm/core/gemxql/constants/row-reader-mode.d.ts +5 -0
  34. package/dist/esm/core/gemxql/graphql/fragments/gemxql.generated.d.ts +23 -0
  35. package/dist/esm/core/gemxql/graphql/index.d.ts +2 -0
  36. package/dist/esm/core/gemxql/graphql/queries/gemxql.generated.d.ts +9 -0
  37. package/dist/esm/core/gemxql/helpers/columnKeys.d.ts +3 -0
  38. package/dist/esm/core/gemxql/helpers/extractQueryData.d.ts +5 -0
  39. package/dist/esm/core/gemxql/helpers/formatAnalyticData.d.ts +10 -0
  40. package/dist/esm/core/gemxql/helpers/formatAnalyticDate.d.ts +1 -0
  41. package/dist/esm/core/gemxql/helpers/getTimeDimension.d.ts +3 -0
  42. package/dist/esm/core/gemxql/helpers/hasMetricData.d.ts +1 -0
  43. package/dist/esm/core/gemxql/helpers/index.d.ts +8 -0
  44. package/dist/esm/core/gemxql/helpers/parseJsonFields.d.ts +9 -0
  45. package/dist/esm/core/gemxql/helpers/readNumeric.d.ts +3 -0
  46. package/dist/esm/core/gemxql/hooks/index.d.ts +2 -0
  47. package/dist/esm/core/gemxql/hooks/useAnalyticData.d.ts +24 -0
  48. package/dist/esm/core/gemxql/hooks/useGemXQlPagination.d.ts +25 -0
  49. package/dist/esm/core/gemxql/index.d.ts +10 -0
  50. package/dist/esm/core/gemxql/types/analytic-data.d.ts +24 -0
  51. package/dist/esm/core/gemxql/types/analytic-mode.d.ts +5 -0
  52. package/dist/esm/core/gemxql/types/analytic-source.d.ts +4 -0
  53. package/dist/esm/core/gemxql/types/breakdown-items.d.ts +19 -0
  54. package/dist/esm/core/gemxql/types/date-filter.d.ts +10 -0
  55. package/dist/esm/core/gemxql/types/extra-condition.d.ts +28 -0
  56. package/dist/esm/core/gemxql/types/field-filters.d.ts +18 -0
  57. package/dist/esm/core/gemxql/types/field-operators.d.ts +8 -0
  58. package/dist/esm/core/gemxql/types/filter-types.d.ts +28 -0
  59. package/dist/esm/core/gemxql/types/group-with-clause.d.ts +12 -0
  60. package/dist/esm/core/gemxql/types/index.d.ts +14 -0
  61. package/dist/esm/core/gemxql/types/order-by.d.ts +10 -0
  62. package/dist/esm/core/gemxql/types/page-fields.d.ts +22 -0
  63. package/dist/esm/core/gemxql/types/row-reader-mode.d.ts +6 -0
  64. package/dist/esm/core/gemxql/types/time-dimension.d.ts +8 -0
  65. package/dist/esm/core/gemxql/utils/analytics.d.ts +13 -0
  66. package/dist/esm/core/gemxql/utils/dayjs.d.ts +8 -0
  67. package/dist/umd/esm/core/gemxql/api/index.d.ts +2 -0
  68. package/dist/umd/esm/core/gemxql/api/useCustomGemXQlQuery.d.ts +16 -0
  69. package/dist/umd/esm/core/gemxql/api/useGemxQlNamedQuery.d.ts +14 -0
  70. package/dist/umd/esm/core/gemxql/builder/build-gemxql-query.d.ts +15 -0
  71. package/dist/umd/esm/core/gemxql/builder/clauses/condition-query.d.ts +12 -0
  72. package/dist/umd/esm/core/gemxql/builder/clauses/from-query.d.ts +6 -0
  73. package/dist/umd/esm/core/gemxql/builder/clauses/group-query.d.ts +11 -0
  74. package/dist/umd/esm/core/gemxql/builder/clauses/index.d.ts +11 -0
  75. package/dist/umd/esm/core/gemxql/builder/clauses/limit-query.d.ts +6 -0
  76. package/dist/umd/esm/core/gemxql/builder/clauses/mode-query.d.ts +7 -0
  77. package/dist/umd/esm/core/gemxql/builder/clauses/offset-query.d.ts +6 -0
  78. package/dist/umd/esm/core/gemxql/builder/clauses/order-by-query.d.ts +7 -0
  79. package/dist/umd/esm/core/gemxql/builder/clauses/show-query.d.ts +6 -0
  80. package/dist/umd/esm/core/gemxql/builder/clauses/time-query.d.ts +16 -0
  81. package/dist/umd/esm/core/gemxql/builder/clauses/time-series-query.d.ts +6 -0
  82. package/dist/umd/esm/core/gemxql/builder/clauses/timezone-query.d.ts +6 -0
  83. package/dist/umd/esm/core/gemxql/builder/configs/date-formats.d.ts +1 -0
  84. package/dist/umd/esm/core/gemxql/builder/configs/index.d.ts +3 -0
  85. package/dist/umd/esm/core/gemxql/builder/configs/keywords.d.ts +2 -0
  86. package/dist/umd/esm/core/gemxql/builder/configs/query-defaults.d.ts +1 -0
  87. package/dist/umd/esm/core/gemxql/builder/filters/build-extra-conditions.d.ts +3 -0
  88. package/dist/umd/esm/core/gemxql/builder/filters/build-filter-conditions.d.ts +22 -0
  89. package/dist/umd/esm/core/gemxql/builder/filters/index.d.ts +2 -0
  90. package/dist/umd/esm/core/gemxql/builder/helpers/date-query-helpers.d.ts +5 -0
  91. package/dist/umd/esm/core/gemxql/builder/helpers/index.d.ts +1 -0
  92. package/dist/umd/esm/core/gemxql/builder/helpers/is-valid-query-input.d.ts +1 -0
  93. package/dist/umd/esm/core/gemxql/builder/index.d.ts +6 -0
  94. package/dist/umd/esm/core/gemxql/builder/parse-gemxql-query.d.ts +4 -0
  95. package/dist/umd/esm/core/gemxql/constants/analytic-data.d.ts +2 -0
  96. package/dist/umd/esm/core/gemxql/constants/column-keys.d.ts +4 -0
  97. package/dist/umd/esm/core/gemxql/constants/index.d.ts +4 -0
  98. package/dist/umd/esm/core/gemxql/constants/operators.d.ts +2 -0
  99. package/dist/umd/esm/core/gemxql/constants/row-reader-mode.d.ts +5 -0
  100. package/dist/umd/esm/core/gemxql/graphql/fragments/gemxql.generated.d.ts +23 -0
  101. package/dist/umd/esm/core/gemxql/graphql/index.d.ts +2 -0
  102. package/dist/umd/esm/core/gemxql/graphql/queries/gemxql.generated.d.ts +9 -0
  103. package/dist/umd/esm/core/gemxql/helpers/columnKeys.d.ts +3 -0
  104. package/dist/umd/esm/core/gemxql/helpers/extractQueryData.d.ts +5 -0
  105. package/dist/umd/esm/core/gemxql/helpers/formatAnalyticData.d.ts +10 -0
  106. package/dist/umd/esm/core/gemxql/helpers/formatAnalyticDate.d.ts +1 -0
  107. package/dist/umd/esm/core/gemxql/helpers/getTimeDimension.d.ts +3 -0
  108. package/dist/umd/esm/core/gemxql/helpers/hasMetricData.d.ts +1 -0
  109. package/dist/umd/esm/core/gemxql/helpers/index.d.ts +8 -0
  110. package/dist/umd/esm/core/gemxql/helpers/parseJsonFields.d.ts +9 -0
  111. package/dist/umd/esm/core/gemxql/helpers/readNumeric.d.ts +3 -0
  112. package/dist/umd/esm/core/gemxql/hooks/index.d.ts +2 -0
  113. package/dist/umd/esm/core/gemxql/hooks/useAnalyticData.d.ts +24 -0
  114. package/dist/umd/esm/core/gemxql/hooks/useGemXQlPagination.d.ts +25 -0
  115. package/dist/umd/esm/core/gemxql/index.d.ts +10 -0
  116. package/dist/umd/esm/core/gemxql/types/analytic-data.d.ts +24 -0
  117. package/dist/umd/esm/core/gemxql/types/analytic-mode.d.ts +5 -0
  118. package/dist/umd/esm/core/gemxql/types/analytic-source.d.ts +4 -0
  119. package/dist/umd/esm/core/gemxql/types/breakdown-items.d.ts +19 -0
  120. package/dist/umd/esm/core/gemxql/types/date-filter.d.ts +10 -0
  121. package/dist/umd/esm/core/gemxql/types/extra-condition.d.ts +28 -0
  122. package/dist/umd/esm/core/gemxql/types/field-filters.d.ts +18 -0
  123. package/dist/umd/esm/core/gemxql/types/field-operators.d.ts +8 -0
  124. package/dist/umd/esm/core/gemxql/types/filter-types.d.ts +28 -0
  125. package/dist/umd/esm/core/gemxql/types/group-with-clause.d.ts +12 -0
  126. package/dist/umd/esm/core/gemxql/types/index.d.ts +14 -0
  127. package/dist/umd/esm/core/gemxql/types/order-by.d.ts +10 -0
  128. package/dist/umd/esm/core/gemxql/types/page-fields.d.ts +22 -0
  129. package/dist/umd/esm/core/gemxql/types/row-reader-mode.d.ts +6 -0
  130. package/dist/umd/esm/core/gemxql/types/time-dimension.d.ts +8 -0
  131. package/dist/umd/esm/core/gemxql/utils/analytics.d.ts +13 -0
  132. package/dist/umd/esm/core/gemxql/utils/dayjs.d.ts +8 -0
  133. package/package.json +21 -4
@@ -0,0 +1,28 @@
1
+ export declare enum EComparisonOperator {
2
+ EQ = "=",
3
+ IN = "IN",
4
+ LIKE = "LIKE"
5
+ }
6
+ export declare enum EGroupOperator {
7
+ OR = "OR",
8
+ AND = "AND"
9
+ }
10
+ export type IExtraConditionEq = {
11
+ operator: EComparisonOperator.EQ;
12
+ fields: string[];
13
+ value: string | number;
14
+ groupOperator?: EGroupOperator;
15
+ };
16
+ export type IExtraConditionIn = {
17
+ operator: EComparisonOperator.IN;
18
+ fields: string[];
19
+ values: Array<string | number>;
20
+ groupOperator?: EGroupOperator;
21
+ };
22
+ export type IExtraConditionLike = {
23
+ operator: EComparisonOperator.LIKE;
24
+ fields: string[];
25
+ value: string;
26
+ groupOperator?: EGroupOperator;
27
+ };
28
+ export type IExtraCondition = IExtraConditionEq | IExtraConditionIn | IExtraConditionLike;
@@ -0,0 +1,18 @@
1
+ export declare enum EFilterField {
2
+ DEVICE = "device",
3
+ DEVICES = "devices",
4
+ VISITOR = "visitor_type",
5
+ VISITORS = "visitor_types",
6
+ TRAFFIC_SOURCE = "traffic_source",
7
+ TRAFFIC_SOURCES = "traffic_sources",
8
+ VERSION = "version",
9
+ VERSIONS = "versions",
10
+ SINGLE_PAGE = "page_path",
11
+ LIST_PAGE = "page_paths",
12
+ GROUP_CAMPAIGN_ITEM = "group_campaign_item",
13
+ GROUP_CAMPAIGN_ITEMS = "group_campaign_items",
14
+ SINGLE_CAMPAIGN = "experiment_id",
15
+ GROUP_CAMPAIGN = "experiment_group_id",
16
+ CAMPAIGN_VERSION_ID = "version_id",
17
+ GROUP_CAMPAIGN_VERSION_ID = "group_version_id"
18
+ }
@@ -0,0 +1,8 @@
1
+ export declare enum EOperatorField {
2
+ DEVICE_OPERATOR = "deviceOperator",
3
+ VISITOR_OPERATOR = "visitorOperator",
4
+ TRAFFIC_SOURCE_OPERATOR = "trafficSourceOperator",
5
+ VERSION_OPERATOR = "versionOperator",
6
+ PAGE_OPERATOR = "pageOperator",
7
+ CAMPAIGN_ITEM_OPERATOR = "campaignItemOperator"
8
+ }
@@ -0,0 +1,28 @@
1
+ import type { EFilterField } from './field-filters';
2
+ import type { EOperatorField } from './field-operators';
3
+ export type GemXQlFilters = {
4
+ [EFilterField.DEVICE]?: string;
5
+ [EFilterField.VISITOR]?: string;
6
+ [EFilterField.TRAFFIC_SOURCE]?: string;
7
+ [EFilterField.VERSION]?: string;
8
+ [EFilterField.SINGLE_PAGE]?: string;
9
+ [EFilterField.GROUP_CAMPAIGN_ITEM]?: string;
10
+ [EFilterField.SINGLE_CAMPAIGN]?: string;
11
+ [EFilterField.CAMPAIGN_VERSION_ID]?: string;
12
+ [EFilterField.GROUP_CAMPAIGN_VERSION_ID]?: string;
13
+ [EFilterField.DEVICES]?: string[];
14
+ [EFilterField.VISITORS]?: string[];
15
+ [EFilterField.TRAFFIC_SOURCES]?: string[];
16
+ [EFilterField.VERSIONS]?: string[];
17
+ [EFilterField.LIST_PAGE]?: string[];
18
+ [EFilterField.GROUP_CAMPAIGN_ITEMS]?: string[];
19
+ [EFilterField.GROUP_CAMPAIGN]?: string[];
20
+ [EOperatorField.DEVICE_OPERATOR]?: string;
21
+ [EOperatorField.VISITOR_OPERATOR]?: string;
22
+ [EOperatorField.TRAFFIC_SOURCE_OPERATOR]?: string;
23
+ [EOperatorField.VERSION_OPERATOR]?: string;
24
+ [EOperatorField.PAGE_OPERATOR]?: string;
25
+ [EOperatorField.CAMPAIGN_ITEM_OPERATOR]?: string;
26
+ };
27
+ export type GemXQlOverrideFilters = GemXQlFilters;
28
+ export type GemXQlVersionIds = Record<string, string | undefined>;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Controls which totals columns are appended to the query result.
3
+ *
4
+ * - NONE → no totals, GROUP BY only.
5
+ * - TOTALS → adds `<metric>___totals` (grand total only). Use with single-dimension GROUP BY.
6
+ * - ALL → adds subtotals per dimension group + grand total. Use with multi-dimension GROUP BY.
7
+ */
8
+ export declare enum EGroupWithClause {
9
+ NONE = "",
10
+ TOTALS = "TOTALS",
11
+ ALL = "WITH GROUP_TOTALS, TOTALS"
12
+ }
@@ -0,0 +1,14 @@
1
+ export * from './analytic-data';
2
+ export * from './analytic-mode';
3
+ export * from './analytic-source';
4
+ export * from './breakdown-items';
5
+ export * from './date-filter';
6
+ export * from './extra-condition';
7
+ export * from './field-filters';
8
+ export * from './field-operators';
9
+ export * from './filter-types';
10
+ export * from './group-with-clause';
11
+ export * from './order-by';
12
+ export * from './page-fields';
13
+ export * from './row-reader-mode';
14
+ export * from './time-dimension';
@@ -0,0 +1,10 @@
1
+ export declare enum EOrderDirectionType {
2
+ ASC = "ASC",
3
+ DESC = "DESC"
4
+ }
5
+ export type OrderDirectionType = EOrderDirectionType.ASC | EOrderDirectionType.DESC;
6
+ export type OrderByType = {
7
+ field: string;
8
+ direction: OrderDirectionType;
9
+ };
10
+ export type OrderByFields = Record<string, OrderByType>;
@@ -0,0 +1,22 @@
1
+ export declare enum EPageMetric {
2
+ PAGE_ITEMS = "page_items",
3
+ PAGE_PATHS = "page_paths"
4
+ }
5
+ export declare enum EPageDimension {
6
+ PAGE_PATH = "page_path"
7
+ }
8
+ export declare enum EPageField {
9
+ SHOPIFY_PAGE_ID = "shopify_page_id",
10
+ LOCATION_PATH = "location_path",
11
+ PAGE_TYPE = "page_type",
12
+ PAGE_TITLE = "page_title",
13
+ PAGE_PATH = "page_path",
14
+ TEMPLATE_SUFFIX = "template_suffix"
15
+ }
16
+ export interface IPageItemsPayload {
17
+ [EPageField.SHOPIFY_PAGE_ID]: string;
18
+ [EPageField.LOCATION_PATH]: string;
19
+ [EPageField.PAGE_TYPE]: string;
20
+ [EPageField.PAGE_TITLE]: string;
21
+ [EPageField.TEMPLATE_SUFFIX]: string;
22
+ }
@@ -0,0 +1,6 @@
1
+ export declare enum ERowReaderMode {
2
+ DEFAULT = "DEFAULT",
3
+ COMPARISON = "COMPARISON",
4
+ TOTALS = "TOTALS",
5
+ COMPARISON_TOTALS = "COMPARISON_TOTALS"
6
+ }
@@ -0,0 +1,8 @@
1
+ export declare enum ETimeDimension {
2
+ HOUR = "hour",
3
+ DAY = "day",
4
+ WEEK = "week",
5
+ MONTH = "month",
6
+ QUARTER = "quarter",
7
+ YEAR = "year"
8
+ }
@@ -0,0 +1,13 @@
1
+ export declare enum AnalyticInterval {
2
+ DAY = "DAY",
3
+ HOUR = "HOUR",
4
+ MONTH = "MONTH",
5
+ QUARTER = "QUARTER",
6
+ WEEK = "WEEK",
7
+ YEAR = "YEAR"
8
+ }
9
+ export declare function numberWithCommas(x: string): string;
10
+ export declare const getTimeDurationLabel: (valueInSeconds: number) => string;
11
+ export declare const getFormattedByInterval: (value: string | number | null, interval?: AnalyticInterval, options?: {
12
+ isExpandDetail?: boolean;
13
+ }) => string;
@@ -0,0 +1,8 @@
1
+ import type { ConfigType, Dayjs } from 'dayjs';
2
+ import dayjs from 'dayjs';
3
+ export declare function getInitialTimezone(): string;
4
+ export declare function setTz(value: string): void;
5
+ export declare const dayjsTz: (date?: ConfigType) => Dayjs;
6
+ export declare const convertDateToTz: (date?: ConfigType) => Dayjs;
7
+ export { dayjs };
8
+ export type { Dayjs };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@levi-gemcommerce/analytics",
3
- "version": "0.0.1-dev.3",
3
+ "version": "0.0.1-dev.4",
4
4
  "license": "MIT",
5
5
  "author": "gemx-dev",
6
6
  "sideEffects": [
@@ -68,23 +68,40 @@
68
68
  "@shopify/polaris-icons": "9.3.1",
69
69
  "@shopify/polaris-viz": "16.16.0",
70
70
  "@shopify/polaris-viz-core": "16.16.0",
71
+ "@tanstack/react-query": "^5.0.0",
71
72
  "@types/node": "^22.15.3",
72
73
  "@types/react": "18.3.1",
73
74
  "@types/react-dom": "18.3.1",
74
75
  "concurrently": "^10.0.3",
76
+ "dayjs": "^1.11.10",
75
77
  "eslint": "9.36.0",
76
78
  "react": "18.3.1",
77
79
  "rollup": "3.29.5",
78
80
  "rollup-plugin-postcss": "^4.0.2",
79
81
  "sass": "^1.100.0",
80
82
  "tailwindcss": "3.4.1",
81
- "typescript": "5.9.2"
83
+ "typescript": "5.9.2",
84
+ "zustand": "^4.4.7"
82
85
  },
83
86
  "peerDependencies": {
84
87
  "@shopify/polaris": ">=12",
85
- "@shopify/polaris-viz": ">=10",
88
+ "@shopify/polaris-viz": ">=16",
89
+ "@tanstack/react-query": ">=4",
90
+ "dayjs": ">=1.11",
86
91
  "react": ">=17",
87
- "react-dom": ">=17"
92
+ "react-dom": ">=17",
93
+ "zustand": ">=4"
94
+ },
95
+ "peerDependenciesMeta": {
96
+ "@tanstack/react-query": {
97
+ "optional": true
98
+ },
99
+ "dayjs": {
100
+ "optional": true
101
+ },
102
+ "zustand": {
103
+ "optional": true
104
+ }
88
105
  },
89
106
  "publishConfig": {
90
107
  "access": "public",