@cuemath/web-utils 1.0.53-ajeet-beta.2 → 1.0.53-beta.1
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/cjs/ab-experiment/index.d.ts +1 -1
- package/dist/cjs/ab-experiment/index.js +1 -4
- package/dist/cjs/ab-experiment/index.js.map +1 -1
- package/dist/cjs/ab-experiment/utils/ab-variant.d.ts +1 -4
- package/dist/cjs/ab-experiment/utils/ab-variant.js +5 -44
- package/dist/cjs/ab-experiment/utils/ab-variant.js.map +1 -1
- package/dist/esm/ab-experiment/index.d.ts +1 -1
- package/dist/esm/ab-experiment/index.js +1 -1
- package/dist/esm/ab-experiment/index.js.map +1 -1
- package/dist/esm/ab-experiment/utils/ab-variant.d.ts +1 -4
- package/dist/esm/ab-experiment/utils/ab-variant.js +4 -40
- package/dist/esm/ab-experiment/utils/ab-variant.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { getABVariant, getABExperimentCacheKey
|
|
1
|
+
export { getABVariant, getABExperimentCacheKey } from './utils/ab-variant';
|
|
2
2
|
export { EXPERIMENT_KEYS, VARIANTS, AB_IDENTIFIER_KEY, LAST_LANDING_PAGE_COOKIE, } from './constants';
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.LAST_LANDING_PAGE_COOKIE = exports.AB_IDENTIFIER_KEY = exports.VARIANTS = exports.EXPERIMENT_KEYS = exports.
|
|
3
|
+
exports.LAST_LANDING_PAGE_COOKIE = exports.AB_IDENTIFIER_KEY = exports.VARIANTS = exports.EXPERIMENT_KEYS = exports.getABExperimentCacheKey = exports.getABVariant = void 0;
|
|
4
4
|
var ab_variant_1 = require("./utils/ab-variant");
|
|
5
5
|
Object.defineProperty(exports, "getABVariant", { enumerable: true, get: function () { return ab_variant_1.getABVariant; } });
|
|
6
6
|
Object.defineProperty(exports, "getABExperimentCacheKey", { enumerable: true, get: function () { return ab_variant_1.getABExperimentCacheKey; } });
|
|
7
|
-
Object.defineProperty(exports, "setABExperiment", { enumerable: true, get: function () { return ab_variant_1.setABExperiment; } });
|
|
8
|
-
Object.defineProperty(exports, "resetABExperiment", { enumerable: true, get: function () { return ab_variant_1.resetABExperiment; } });
|
|
9
|
-
Object.defineProperty(exports, "resetAllABExperiments", { enumerable: true, get: function () { return ab_variant_1.resetAllABExperiments; } });
|
|
10
7
|
var constants_1 = require("./constants");
|
|
11
8
|
Object.defineProperty(exports, "EXPERIMENT_KEYS", { enumerable: true, get: function () { return constants_1.EXPERIMENT_KEYS; } });
|
|
12
9
|
Object.defineProperty(exports, "VARIANTS", { enumerable: true, get: function () { return constants_1.VARIANTS; } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ab-experiment/index.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ab-experiment/index.ts"],"names":[],"mappings":";;;AAAA,iDAA2E;AAAlE,0GAAA,YAAY,OAAA;AAAE,qHAAA,uBAAuB,OAAA;AAC9C,yCAKqB;AAJnB,4GAAA,eAAe,OAAA;AACf,qGAAA,QAAQ,OAAA;AACR,8GAAA,iBAAiB,OAAA;AACjB,qHAAA,wBAAwB,OAAA"}
|
|
@@ -2,12 +2,9 @@ type LastLandingPageProps = {
|
|
|
2
2
|
value: string;
|
|
3
3
|
createdAt: string;
|
|
4
4
|
};
|
|
5
|
-
export declare const getABVariant: (url: string, countryCode: string, currentABVariant: Record<string, string>, lastLandingPageCookies: LastLandingPageProps
|
|
5
|
+
export declare const getABVariant: (url: string, countryCode: string, currentABVariant: Record<string, string>, lastLandingPageCookies: LastLandingPageProps) => {
|
|
6
6
|
isABExperimentsUpdated: boolean;
|
|
7
7
|
abExperiment: Record<string, string>;
|
|
8
8
|
};
|
|
9
|
-
export declare const setABExperiment: (debugABCookieName: string, experimentName: string, variant: string, timeInDays?: number) => void;
|
|
10
|
-
export declare const resetABExperiment: (debugABCookieName: string, experimentName: string) => void;
|
|
11
|
-
export declare const resetAllABExperiments: (debugABCookieName: string) => void;
|
|
12
9
|
export declare const getABExperimentCacheKey: (abExperimentObj: Record<string, string>) => string;
|
|
13
10
|
export {};
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getABExperimentCacheKey = exports.
|
|
4
|
-
const cookie_1 = require("../../cookie");
|
|
3
|
+
exports.getABExperimentCacheKey = exports.getABVariant = void 0;
|
|
5
4
|
const url_parser_1 = require("../../url-parser");
|
|
6
5
|
const constants_1 = require("../constants");
|
|
7
6
|
const experiments_1 = require("./experiments");
|
|
8
7
|
const EXPERIMENT_VERSION = '2.0.1';
|
|
9
|
-
const getABVariant = (url, countryCode, currentABVariant, lastLandingPageCookies
|
|
8
|
+
const getABVariant = (url, countryCode, currentABVariant, lastLandingPageCookies) => {
|
|
10
9
|
const path = (0, url_parser_1.removeHrefLangFromPath)((0, url_parser_1.removeQueryStringFromPath)(url));
|
|
11
10
|
const newAbVariants = {
|
|
12
11
|
version: EXPERIMENT_VERSION,
|
|
@@ -19,25 +18,13 @@ const getABVariant = (url, countryCode, currentABVariant, lastLandingPageCookies
|
|
|
19
18
|
isExpModified = true;
|
|
20
19
|
}
|
|
21
20
|
});
|
|
22
|
-
const enabledABCookies = debugABCookieName
|
|
23
|
-
? (0, cookie_1.getCookie)(debugABCookieName, sourceCookies)
|
|
24
|
-
: '';
|
|
25
|
-
const enabledABKeys = enabledABCookies ? JSON.parse(enabledABCookies) : {};
|
|
26
21
|
experiments_1.EXPERIMENTS.forEach((experiment) => {
|
|
27
22
|
// eslint-disable-next-line prefer-const
|
|
28
23
|
let { name: experimentName, variants: getVariants } = experiment;
|
|
29
24
|
const variants = getVariants(path, countryCode, lastLandingPageCookies);
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
const isEnabledVariantPresent = variantIDs.includes(enabledABKeys[experimentName]);
|
|
34
|
-
if (isEnabledVariantPresent) {
|
|
35
|
-
newAbVariants[experimentName] = enabledABKeys[experimentName];
|
|
36
|
-
isExpModified = true;
|
|
37
|
-
return;
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
const isVariantPresent = variantIDs.includes(currentABVariant[experimentName]);
|
|
25
|
+
const isVariantPresent = variants
|
|
26
|
+
.map((element) => element.id)
|
|
27
|
+
.includes(currentABVariant[experimentName]);
|
|
41
28
|
// remove experimentName from currentABVariant if it is not present in variants.id
|
|
42
29
|
if (!isVariantPresent) {
|
|
43
30
|
delete currentABVariant[experimentName];
|
|
@@ -68,32 +55,6 @@ const getABVariant = (url, countryCode, currentABVariant, lastLandingPageCookies
|
|
|
68
55
|
return { isABExperimentsUpdated: isExpModified, abExperiment: newAbVariants };
|
|
69
56
|
};
|
|
70
57
|
exports.getABVariant = getABVariant;
|
|
71
|
-
const setABExperiment = (debugABCookieName, experimentName, variant, timeInDays) => {
|
|
72
|
-
let results = {};
|
|
73
|
-
const enabledABCookie = (0, cookie_1.getCookie)(debugABCookieName);
|
|
74
|
-
if (enabledABCookie) {
|
|
75
|
-
const enabledABKeys = JSON.parse(enabledABCookie) || {};
|
|
76
|
-
results = { ...enabledABKeys };
|
|
77
|
-
}
|
|
78
|
-
results[experimentName] = variant;
|
|
79
|
-
(0, cookie_1.createCookie)(debugABCookieName, JSON.stringify(results), timeInDays || 1);
|
|
80
|
-
};
|
|
81
|
-
exports.setABExperiment = setABExperiment;
|
|
82
|
-
const resetABExperiment = (debugABCookieName, experimentName) => {
|
|
83
|
-
let results = {};
|
|
84
|
-
const enabledABCookie = (0, cookie_1.getCookie)(debugABCookieName);
|
|
85
|
-
if (enabledABCookie) {
|
|
86
|
-
const enabledABKeys = JSON.parse(enabledABCookie) || {};
|
|
87
|
-
results = { ...enabledABKeys };
|
|
88
|
-
delete results[experimentName];
|
|
89
|
-
}
|
|
90
|
-
(0, cookie_1.createCookie)(debugABCookieName, JSON.stringify(results), 1);
|
|
91
|
-
};
|
|
92
|
-
exports.resetABExperiment = resetABExperiment;
|
|
93
|
-
const resetAllABExperiments = (debugABCookieName) => {
|
|
94
|
-
(0, cookie_1.removeCookie)(debugABCookieName);
|
|
95
|
-
};
|
|
96
|
-
exports.resetAllABExperiments = resetAllABExperiments;
|
|
97
58
|
const getABExperimentCacheKey = (abExperimentObj) => {
|
|
98
59
|
// return key=value&key=value sorted by key
|
|
99
60
|
const keys = Object.keys(abExperimentObj).sort();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ab-variant.js","sourceRoot":"","sources":["../../../../src/ab-experiment/utils/ab-variant.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"ab-variant.js","sourceRoot":"","sources":["../../../../src/ab-experiment/utils/ab-variant.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { getABVariant, getABExperimentCacheKey
|
|
1
|
+
export { getABVariant, getABExperimentCacheKey } from './utils/ab-variant';
|
|
2
2
|
export { EXPERIMENT_KEYS, VARIANTS, AB_IDENTIFIER_KEY, LAST_LANDING_PAGE_COOKIE, } from './constants';
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { getABVariant, getABExperimentCacheKey
|
|
1
|
+
export { getABVariant, getABExperimentCacheKey } from './utils/ab-variant';
|
|
2
2
|
export { EXPERIMENT_KEYS, VARIANTS, AB_IDENTIFIER_KEY, LAST_LANDING_PAGE_COOKIE, } from './constants';
|
|
3
3
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ab-experiment/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ab-experiment/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EACL,eAAe,EACf,QAAQ,EACR,iBAAiB,EACjB,wBAAwB,GACzB,MAAM,aAAa,CAAC"}
|
|
@@ -2,12 +2,9 @@ type LastLandingPageProps = {
|
|
|
2
2
|
value: string;
|
|
3
3
|
createdAt: string;
|
|
4
4
|
};
|
|
5
|
-
export declare const getABVariant: (url: string, countryCode: string, currentABVariant: Record<string, string>, lastLandingPageCookies: LastLandingPageProps
|
|
5
|
+
export declare const getABVariant: (url: string, countryCode: string, currentABVariant: Record<string, string>, lastLandingPageCookies: LastLandingPageProps) => {
|
|
6
6
|
isABExperimentsUpdated: boolean;
|
|
7
7
|
abExperiment: Record<string, string>;
|
|
8
8
|
};
|
|
9
|
-
export declare const setABExperiment: (debugABCookieName: string, experimentName: string, variant: string, timeInDays?: number) => void;
|
|
10
|
-
export declare const resetABExperiment: (debugABCookieName: string, experimentName: string) => void;
|
|
11
|
-
export declare const resetAllABExperiments: (debugABCookieName: string) => void;
|
|
12
9
|
export declare const getABExperimentCacheKey: (abExperimentObj: Record<string, string>) => string;
|
|
13
10
|
export {};
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { createCookie, getCookie, removeCookie } from '../../cookie';
|
|
2
1
|
import { removeQueryStringFromPath, removeHrefLangFromPath } from '../../url-parser';
|
|
3
2
|
import { REMOVED_EXPERIMENTS } from '../constants';
|
|
4
3
|
import { EXPERIMENTS } from './experiments';
|
|
5
4
|
const EXPERIMENT_VERSION = '2.0.1';
|
|
6
|
-
export const getABVariant = (url, countryCode, currentABVariant, lastLandingPageCookies
|
|
5
|
+
export const getABVariant = (url, countryCode, currentABVariant, lastLandingPageCookies) => {
|
|
7
6
|
const path = removeHrefLangFromPath(removeQueryStringFromPath(url));
|
|
8
7
|
const newAbVariants = {
|
|
9
8
|
version: EXPERIMENT_VERSION,
|
|
@@ -16,25 +15,13 @@ export const getABVariant = (url, countryCode, currentABVariant, lastLandingPage
|
|
|
16
15
|
isExpModified = true;
|
|
17
16
|
}
|
|
18
17
|
});
|
|
19
|
-
const enabledABCookies = debugABCookieName
|
|
20
|
-
? getCookie(debugABCookieName, sourceCookies)
|
|
21
|
-
: '';
|
|
22
|
-
const enabledABKeys = enabledABCookies ? JSON.parse(enabledABCookies) : {};
|
|
23
18
|
EXPERIMENTS.forEach((experiment) => {
|
|
24
19
|
// eslint-disable-next-line prefer-const
|
|
25
20
|
let { name: experimentName, variants: getVariants } = experiment;
|
|
26
21
|
const variants = getVariants(path, countryCode, lastLandingPageCookies);
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
const isEnabledVariantPresent = variantIDs.includes(enabledABKeys[experimentName]);
|
|
31
|
-
if (isEnabledVariantPresent) {
|
|
32
|
-
newAbVariants[experimentName] = enabledABKeys[experimentName];
|
|
33
|
-
isExpModified = true;
|
|
34
|
-
return;
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
const isVariantPresent = variantIDs.includes(currentABVariant[experimentName]);
|
|
22
|
+
const isVariantPresent = variants
|
|
23
|
+
.map((element) => element.id)
|
|
24
|
+
.includes(currentABVariant[experimentName]);
|
|
38
25
|
// remove experimentName from currentABVariant if it is not present in variants.id
|
|
39
26
|
if (!isVariantPresent) {
|
|
40
27
|
delete currentABVariant[experimentName];
|
|
@@ -64,29 +51,6 @@ export const getABVariant = (url, countryCode, currentABVariant, lastLandingPage
|
|
|
64
51
|
});
|
|
65
52
|
return { isABExperimentsUpdated: isExpModified, abExperiment: newAbVariants };
|
|
66
53
|
};
|
|
67
|
-
export const setABExperiment = (debugABCookieName, experimentName, variant, timeInDays) => {
|
|
68
|
-
let results = {};
|
|
69
|
-
const enabledABCookie = getCookie(debugABCookieName);
|
|
70
|
-
if (enabledABCookie) {
|
|
71
|
-
const enabledABKeys = JSON.parse(enabledABCookie) || {};
|
|
72
|
-
results = Object.assign({}, enabledABKeys);
|
|
73
|
-
}
|
|
74
|
-
results[experimentName] = variant;
|
|
75
|
-
createCookie(debugABCookieName, JSON.stringify(results), timeInDays || 1);
|
|
76
|
-
};
|
|
77
|
-
export const resetABExperiment = (debugABCookieName, experimentName) => {
|
|
78
|
-
let results = {};
|
|
79
|
-
const enabledABCookie = getCookie(debugABCookieName);
|
|
80
|
-
if (enabledABCookie) {
|
|
81
|
-
const enabledABKeys = JSON.parse(enabledABCookie) || {};
|
|
82
|
-
results = Object.assign({}, enabledABKeys);
|
|
83
|
-
delete results[experimentName];
|
|
84
|
-
}
|
|
85
|
-
createCookie(debugABCookieName, JSON.stringify(results), 1);
|
|
86
|
-
};
|
|
87
|
-
export const resetAllABExperiments = (debugABCookieName) => {
|
|
88
|
-
removeCookie(debugABCookieName);
|
|
89
|
-
};
|
|
90
54
|
export const getABExperimentCacheKey = (abExperimentObj) => {
|
|
91
55
|
// return key=value&key=value sorted by key
|
|
92
56
|
const keys = Object.keys(abExperimentObj).sort();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ab-variant.js","sourceRoot":"","sources":["../../../../src/ab-experiment/utils/ab-variant.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ab-variant.js","sourceRoot":"","sources":["../../../../src/ab-experiment/utils/ab-variant.ts"],"names":[],"mappings":"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"}
|