@cuemath/web-utils 1.0.2 → 1.0.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.
@@ -0,0 +1,4 @@
1
+ export declare const getDates: (timezone: string, platform: string, country: string) => Array<{
2
+ futureDate: number;
3
+ disabled: boolean;
4
+ }>;
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getDates = void 0;
4
+ const index_1 = require("../../constants/country/index");
5
+ const date_time_1 = require("../../constants/date-time");
6
+ const index_2 = require("../index");
7
+ const getDates = (timezone, platform, country) => {
8
+ const currentDate = Date.parse((0, index_2.getCurrentDatebyTimezone)(timezone)) / 1000;
9
+ const dates = [];
10
+ let days = 7;
11
+ let buffer = 1;
12
+ switch (platform) {
13
+ case 'astro':
14
+ if (country === index_1.ISO_COUNTRY_CODE.INDIA) {
15
+ days = 10;
16
+ buffer = 2;
17
+ }
18
+ break;
19
+ case 'website':
20
+ if (country === index_1.ISO_COUNTRY_CODE.INDIA) {
21
+ days = 10;
22
+ buffer = 2;
23
+ }
24
+ break;
25
+ default:
26
+ days = 7;
27
+ buffer = 1;
28
+ break;
29
+ }
30
+ // getting dates by adding 86400 seconds(24 hours)
31
+ for (let i = 0; i < days; i += 1) {
32
+ dates.push({
33
+ futureDate: currentDate + date_time_1.TWENTY_FOUR_HOURS_IN_SECONDS * i,
34
+ disabled: !(i > buffer),
35
+ });
36
+ }
37
+ return dates;
38
+ };
39
+ exports.getDates = getDates;
40
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/date-time-helper/e-cna/index.ts"],"names":[],"mappings":";;;AAAA,yDAAiE;AACjE,yDAAyE;AACzE,oCAAoD;AAE7C,MAAM,QAAQ,GAAG,CACtB,QAAgB,EAChB,QAAgB,EAChB,OAAe,EACmC,EAAE;IACpD,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAA,gCAAwB,EAAC,QAAQ,CAAC,CAAC,GAAG,IAAI,CAAC;IAC1E,MAAM,KAAK,GAAG,EAAE,CAAC;IAEjB,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,MAAM,GAAG,CAAC,CAAC;IAEf,QAAQ,QAAQ,EAAE;QAChB,KAAK,OAAO;YACV,IAAI,OAAO,KAAK,wBAAgB,CAAC,KAAK,EAAE;gBACtC,IAAI,GAAG,EAAE,CAAC;gBACV,MAAM,GAAG,CAAC,CAAC;aACZ;YACD,MAAM;QACR,KAAK,SAAS;YACZ,IAAI,OAAO,KAAK,wBAAgB,CAAC,KAAK,EAAE;gBACtC,IAAI,GAAG,EAAE,CAAC;gBACV,MAAM,GAAG,CAAC,CAAC;aACZ;YACD,MAAM;QACR;YACE,IAAI,GAAG,CAAC,CAAC;YACT,MAAM,GAAG,CAAC,CAAC;YACX,MAAM;KACT;IAED,kDAAkD;IAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE;QAChC,KAAK,CAAC,IAAI,CAAC;YACT,UAAU,EAAE,WAAW,GAAG,wCAA4B,GAAG,CAAC;YAC1D,QAAQ,EAAE,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;SACxB,CAAC,CAAC;KACJ;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAvCW,QAAA,QAAQ,YAuCnB"}
@@ -15,7 +15,7 @@ const readSourceCookie = () => {
15
15
  };
16
16
  exports.readSourceCookie = readSourceCookie;
17
17
  const writeSourceCookie = (sourceDetails) => {
18
- (0, cookie_1.createCookie)(SOURCE_DETAILS_COOKIE, JSON.stringify(sourceDetails), 365, true);
18
+ (0, cookie_1.createCookie)(SOURCE_DETAILS_COOKIE, JSON.stringify(sourceDetails), 365);
19
19
  };
20
20
  const isSourcePresent = () => {
21
21
  return !!(0, cookie_1.getCookie)(SOURCE_DETAILS_COOKIE);
@@ -31,7 +31,7 @@ const updateSourceCookie = (sourceDetail) => {
31
31
  };
32
32
  writeSourceCookie(updatedDetails);
33
33
  };
34
- const getRevenueChannel = (platform, utmParams) => {
34
+ const getRevenueChannel = (platform, utmSource) => {
35
35
  let revenueChannel = 'unknown';
36
36
  // set defaults for WEBSITE and ASTRO
37
37
  if (platform === 'website') {
@@ -40,8 +40,7 @@ const getRevenueChannel = (platform, utmParams) => {
40
40
  else if (platform === 'astro') {
41
41
  revenueChannel = 'performance';
42
42
  }
43
- if (utmParams) {
44
- const { utm_source: utmSource = '' } = utmParams;
43
+ if (utmSource) {
45
44
  switch (true) {
46
45
  case /^affiliate-/.test(utmSource):
47
46
  revenueChannel = 'affiliate';
@@ -77,7 +76,7 @@ const getFlow = (platform, experiments) => {
77
76
  };
78
77
  const getUTMParams = () => {
79
78
  if (typeof window === undefined)
80
- return;
79
+ return {};
81
80
  const search = new URLSearchParams(window.location.search);
82
81
  const utmParams = UTM_PARAMS.reduce((acc, param) => {
83
82
  const utmParam = search.get(param);
@@ -99,21 +98,21 @@ const getFirstPage = () => {
99
98
  organic-<channel>
100
99
  offline-<channel>
101
100
  */
102
- const getChannel = (utmParams) => {
101
+ const getChannel = (utmSource) => {
103
102
  // TODO: UTM source patter for FB, GOOGLE...
104
- if (!utmParams)
103
+ if (!utmSource)
105
104
  return '';
106
- const { utm_source: utmSource = '' } = utmParams;
107
105
  return utmSource.split('-')[1];
108
106
  };
109
107
  /*
110
108
  Set Static Source Details of user on Visit of Platform
111
109
  */
112
110
  const initSourceDetails = async ({ platform, experiments, flow, affiliateChannel, offlineChannel, organicChannel, performanceChannel, revenueChannel, }) => {
113
- if (!(0, exports.isSourcePresent)()) {
114
- const utmParams = getUTMParams();
115
- const leadChannel = getChannel(utmParams);
116
- revenueChannel = revenueChannel || getRevenueChannel(platform, utmParams);
111
+ const utmParams = getUTMParams();
112
+ const { utm_source: utmSource } = utmParams;
113
+ const leadChannel = getChannel(utmSource);
114
+ revenueChannel = revenueChannel || getRevenueChannel(platform, utmSource);
115
+ if (utmSource) {
117
116
  affiliateChannel =
118
117
  revenueChannel === 'affiliate' ? affiliateChannel || leadChannel : undefined;
119
118
  offlineChannel =
@@ -122,10 +121,12 @@ const initSourceDetails = async ({ platform, experiments, flow, affiliateChannel
122
121
  revenueChannel === 'organic' ? organicChannel || leadChannel : undefined;
123
122
  performanceChannel =
124
123
  revenueChannel === 'performance' ? performanceChannel || leadChannel : undefined;
124
+ }
125
+ if (!(0, exports.isSourcePresent)()) {
125
126
  const sourceDetails = {
126
127
  platform_channel: platform,
127
128
  experiment_dict: experiments,
128
- utm_params: getUTMParams(),
129
+ utm_params: utmParams,
129
130
  flow: flow || getFlow(platform, experiments),
130
131
  affiliate_channel: affiliateChannel,
131
132
  offline_channel: offlineChannel,
@@ -136,6 +137,24 @@ const initSourceDetails = async ({ platform, experiments, flow, affiliateChannel
136
137
  };
137
138
  writeSourceCookie(sourceDetails);
138
139
  }
140
+ else {
141
+ let updatedSource = {
142
+ experiment_dict: experiments,
143
+ flow: flow || getFlow(platform, experiments),
144
+ };
145
+ if (utmSource) {
146
+ updatedSource = {
147
+ ...updatedSource,
148
+ utm_params: utmParams,
149
+ affiliate_channel: affiliateChannel,
150
+ offline_channel: offlineChannel,
151
+ organic_channel: organicChannel,
152
+ performance_channel: performanceChannel,
153
+ revenue_channel: revenueChannel,
154
+ };
155
+ }
156
+ updateSourceCookie(updatedSource);
157
+ }
139
158
  };
140
159
  exports.initSourceDetails = initSourceDetails;
141
160
  // Last Page which user visited signup before
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/growth-source/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/growth-source/index.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,2 @@
1
1
  export declare function isEmpty(obj: object): boolean;
2
- export declare function isMapEqual(map1: {
3
- [x: string]: any;
4
- }, map2: {
5
- [x: string]: any;
6
- }): boolean;
7
2
  export declare function nestedMapsAreEqual(map1: Map<any, any>, map2: Map<any, any>): boolean;
@@ -1,26 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.nestedMapsAreEqual = exports.isMapEqual = exports.isEmpty = void 0;
3
+ exports.nestedMapsAreEqual = exports.isEmpty = void 0;
4
4
  function isEmpty(obj) {
5
5
  return Object.keys(obj).length === 0;
6
6
  }
7
7
  exports.isEmpty = isEmpty;
8
- // In this case both object have same key names Don't use to compare objects
9
- function isMapEqual(map1, map2) {
10
- const map1Keys = Object.keys(map1);
11
- const map2Keys = Object.keys(map2);
12
- if (map1Keys.length !== map2Keys.length) {
13
- return false;
14
- }
15
- for (let i = 0; i < map1Keys.length; i += 1) {
16
- const key = map1Keys[i];
17
- if (map1[key] !== map2[key]) {
18
- return false;
19
- }
20
- }
21
- return true;
22
- }
23
- exports.isMapEqual = isMapEqual;
24
8
  function nestedMapsAreEqual(map1, map2) {
25
9
  // First, check if the maps have the same size
26
10
  if (map1.size !== map2.size) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/object/index.ts"],"names":[],"mappings":";;;AAAA,SAAgB,OAAO,CAAC,GAAW;IACjC,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;AACvC,CAAC;AAFD,0BAEC;AAED,4EAA4E;AAC5E,SAAgB,UAAU,CACxB,IAA0B,EAC1B,IAA0B;IAE1B,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEnC,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,EAAE;QACvC,OAAO,KAAK,CAAC;KACd;IACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;QAC3C,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;QAExB,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE;YAC3B,OAAO,KAAK,CAAC;SACd;KACF;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAnBD,gCAmBC;AAED,SAAgB,kBAAkB,CAAC,IAAmB,EAAE,IAAmB;IACzE,8CAA8C;IAC9C,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE;QAC3B,OAAO,KAAK,CAAC;KACd;IAED,8GAA8G;IAC9G,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;QAC/B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE;YAC7C,kGAAkG;YAClG,OAAO,KAAK,CAAC;SACd;KACF;IAED,0DAA0D;IAC1D,OAAO,IAAI,CAAC;AACd,CAAC;AAhBD,gDAgBC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/object/index.ts"],"names":[],"mappings":";;;AAAA,SAAgB,OAAO,CAAC,GAAW;IACjC,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;AACvC,CAAC;AAFD,0BAEC;AAED,SAAgB,kBAAkB,CAAC,IAAmB,EAAE,IAAmB;IACzE,8CAA8C;IAC9C,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE;QAC3B,OAAO,KAAK,CAAC;KACd;IAED,8GAA8G;IAC9G,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;QAC/B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE;YAC7C,kGAAkG;YAClG,OAAO,KAAK,CAAC;SACd;KACF;IAED,0DAA0D;IAC1D,OAAO,IAAI,CAAC;AACd,CAAC;AAhBD,gDAgBC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cuemath/web-utils",
3
- "version": "1.0.2",
3
+ "version": "1.0.3",
4
4
  "description": "Shared web utils package",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -0,0 +1,44 @@
1
+ import { ISO_COUNTRY_CODE } from '../../constants/country/index';
2
+ import { TWENTY_FOUR_HOURS_IN_SECONDS } from '../../constants/date-time';
3
+ import { getCurrentDatebyTimezone } from '../index';
4
+
5
+ export const getDates = (
6
+ timezone: string,
7
+ platform: string,
8
+ country: string,
9
+ ): Array<{ futureDate: number; disabled: boolean }> => {
10
+ const currentDate = Date.parse(getCurrentDatebyTimezone(timezone)) / 1000;
11
+ const dates = [];
12
+
13
+ let days = 7;
14
+ let buffer = 1;
15
+
16
+ switch (platform) {
17
+ case 'astro':
18
+ if (country === ISO_COUNTRY_CODE.INDIA) {
19
+ days = 10;
20
+ buffer = 2;
21
+ }
22
+ break;
23
+ case 'website':
24
+ if (country === ISO_COUNTRY_CODE.INDIA) {
25
+ days = 10;
26
+ buffer = 2;
27
+ }
28
+ break;
29
+ default:
30
+ days = 7;
31
+ buffer = 1;
32
+ break;
33
+ }
34
+
35
+ // getting dates by adding 86400 seconds(24 hours)
36
+ for (let i = 0; i < days; i += 1) {
37
+ dates.push({
38
+ futureDate: currentDate + TWENTY_FOUR_HOURS_IN_SECONDS * i,
39
+ disabled: !(i > buffer),
40
+ });
41
+ }
42
+
43
+ return dates;
44
+ };
@@ -26,7 +26,7 @@ export const readSourceCookie = (): SourceDetailsCookie => {
26
26
  };
27
27
 
28
28
  const writeSourceCookie = (sourceDetails: SourceDetailsCookie): void => {
29
- createCookie(SOURCE_DETAILS_COOKIE, JSON.stringify(sourceDetails), 365, true);
29
+ createCookie(SOURCE_DETAILS_COOKIE, JSON.stringify(sourceDetails), 365);
30
30
  };
31
31
 
32
32
  export const isSourcePresent = (): boolean => {
@@ -45,7 +45,7 @@ const updateSourceCookie = (sourceDetail: Partial<SourceDetailsCookie>): void =>
45
45
  writeSourceCookie(updatedDetails);
46
46
  };
47
47
 
48
- const getRevenueChannel = (platform: Platform, utmParams?: UTMParams): RevenueChannel => {
48
+ const getRevenueChannel = (platform: Platform, utmSource?: string): RevenueChannel => {
49
49
  let revenueChannel: RevenueChannel = 'unknown';
50
50
 
51
51
  // set defaults for WEBSITE and ASTRO
@@ -55,9 +55,7 @@ const getRevenueChannel = (platform: Platform, utmParams?: UTMParams): RevenueCh
55
55
  revenueChannel = 'performance';
56
56
  }
57
57
 
58
- if (utmParams) {
59
- const { utm_source: utmSource = '' } = utmParams;
60
-
58
+ if (utmSource) {
61
59
  switch (true) {
62
60
  case /^affiliate-/.test(utmSource):
63
61
  revenueChannel = 'affiliate';
@@ -99,8 +97,8 @@ const getFlow = (platform: Platform, experiments?: Experiments): SignupFlow => {
99
97
  return flow;
100
98
  };
101
99
 
102
- const getUTMParams = (): UTMParams | undefined => {
103
- if (typeof window === undefined) return;
100
+ const getUTMParams = (): Partial<UTMParams> => {
101
+ if (typeof window === undefined) return {};
104
102
 
105
103
  const search = new URLSearchParams(window.location.search);
106
104
  const utmParams = UTM_PARAMS.reduce((acc: UTMParams, param) => {
@@ -128,11 +126,9 @@ const getFirstPage = (): string => {
128
126
  organic-<channel>
129
127
  offline-<channel>
130
128
  */
131
- const getChannel = (utmParams: UTMParams | undefined): string => {
129
+ const getChannel = (utmSource?: string): string => {
132
130
  // TODO: UTM source patter for FB, GOOGLE...
133
- if (!utmParams) return '';
134
-
135
- const { utm_source: utmSource = '' } = utmParams;
131
+ if (!utmSource) return '';
136
132
 
137
133
  return utmSource.split('-')[1];
138
134
  };
@@ -150,11 +146,13 @@ export const initSourceDetails = async ({
150
146
  performanceChannel,
151
147
  revenueChannel,
152
148
  }: SourceDetails): Promise<void> => {
153
- if (!isSourcePresent()) {
154
- const utmParams = getUTMParams();
155
- const leadChannel = getChannel(utmParams);
149
+ const utmParams: Partial<UTMParams> = getUTMParams();
150
+ const { utm_source: utmSource } = utmParams;
151
+ const leadChannel = getChannel(utmSource);
156
152
 
157
- revenueChannel = revenueChannel || getRevenueChannel(platform, utmParams);
153
+ revenueChannel = revenueChannel || getRevenueChannel(platform, utmSource);
154
+
155
+ if (utmSource) {
158
156
  affiliateChannel =
159
157
  revenueChannel === 'affiliate' ? affiliateChannel || leadChannel : undefined;
160
158
  offlineChannel =
@@ -163,11 +161,13 @@ export const initSourceDetails = async ({
163
161
  revenueChannel === 'organic' ? organicChannel || leadChannel : undefined;
164
162
  performanceChannel =
165
163
  revenueChannel === 'performance' ? performanceChannel || leadChannel : undefined;
164
+ }
166
165
 
166
+ if (!isSourcePresent()) {
167
167
  const sourceDetails: SourceDetailsCookie = {
168
168
  platform_channel: platform,
169
169
  experiment_dict: experiments,
170
- utm_params: getUTMParams(),
170
+ utm_params: utmParams,
171
171
  flow: flow || getFlow(platform, experiments),
172
172
  affiliate_channel: affiliateChannel,
173
173
  offline_channel: offlineChannel,
@@ -178,6 +178,25 @@ export const initSourceDetails = async ({
178
178
  };
179
179
 
180
180
  writeSourceCookie(sourceDetails);
181
+ } else {
182
+ let updatedSource: Partial<SourceDetailsCookie> = {
183
+ experiment_dict: experiments,
184
+ flow: flow || getFlow(platform, experiments),
185
+ };
186
+
187
+ if (utmSource) {
188
+ updatedSource = {
189
+ ...updatedSource,
190
+ utm_params: utmParams,
191
+ affiliate_channel: affiliateChannel,
192
+ offline_channel: offlineChannel,
193
+ organic_channel: organicChannel,
194
+ performance_channel: performanceChannel,
195
+ revenue_channel: revenueChannel,
196
+ };
197
+ }
198
+
199
+ updateSourceCookie(updatedSource);
181
200
  }
182
201
  };
183
202
 
@@ -2,28 +2,6 @@ export function isEmpty(obj: object): boolean {
2
2
  return Object.keys(obj).length === 0;
3
3
  }
4
4
 
5
- // In this case both object have same key names Don't use to compare objects
6
- export function isMapEqual(
7
- map1: { [x: string]: any },
8
- map2: { [x: string]: any },
9
- ): boolean {
10
- const map1Keys = Object.keys(map1);
11
- const map2Keys = Object.keys(map2);
12
-
13
- if (map1Keys.length !== map2Keys.length) {
14
- return false;
15
- }
16
- for (let i = 0; i < map1Keys.length; i += 1) {
17
- const key = map1Keys[i];
18
-
19
- if (map1[key] !== map2[key]) {
20
- return false;
21
- }
22
- }
23
-
24
- return true;
25
- }
26
-
27
5
  export function nestedMapsAreEqual(map1: Map<any, any>, map2: Map<any, any>): boolean {
28
6
  // First, check if the maps have the same size
29
7
  if (map1.size !== map2.size) {