@wandzai/utils 1.0.73 → 1.0.74-benchmark-classifications-2
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/package.json +1 -1
- package/src/activations.d.ts +3 -0
- package/src/activations.js +59 -0
- package/src/activations.js.map +1 -0
- package/src/common.d.ts +1 -1
- package/src/common.js +5 -8
- package/src/common.js.map +1 -1
- package/src/http.d.ts +5 -0
- package/src/http.js +44 -0
- package/src/http.js.map +1 -1
- package/src/index.d.ts +1 -0
- package/src/index.js +1 -0
- package/src/index.js.map +1 -1
package/package.json
CHANGED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { CommonTargets, ICommonEntityRule, ITargetRuleItem } from '@wandzai/wandz-interfaces';
|
|
2
|
+
export declare const NONE_ENTITY_RELATED_TARGET_RULES: CommonTargets[];
|
|
3
|
+
export declare const entityRulesToOriginEntities: (rules: ITargetRuleItem[], excludeNonEntityRules?: boolean) => ICommonEntityRule[];
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.entityRulesToOriginEntities = exports.NONE_ENTITY_RELATED_TARGET_RULES = void 0;
|
|
4
|
+
const wandz_interfaces_1 = require("@wandzai/wandz-interfaces");
|
|
5
|
+
exports.NONE_ENTITY_RELATED_TARGET_RULES = [
|
|
6
|
+
wandz_interfaces_1.CommonTargets.URL,
|
|
7
|
+
wandz_interfaces_1.CommonTargets.PAGE_TITLE,
|
|
8
|
+
wandz_interfaces_1.CommonTargets.TIME_TO_RETURN,
|
|
9
|
+
];
|
|
10
|
+
const entityRulesToOriginEntities = (rules, excludeNonEntityRules = true) => {
|
|
11
|
+
const baseArray = [];
|
|
12
|
+
(rules || []).forEach((rule) => {
|
|
13
|
+
if (!excludeNonEntityRules && exports.NONE_ENTITY_RELATED_TARGET_RULES.includes(rule.type)) {
|
|
14
|
+
baseArray.push({
|
|
15
|
+
commonTarget: rule.type,
|
|
16
|
+
operator: rule.operator,
|
|
17
|
+
value: rule.value,
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
else if (rule.type === wandz_interfaces_1.CommonTargets.EVENTS_COUNT) {
|
|
21
|
+
baseArray.push({
|
|
22
|
+
entityType: wandz_interfaces_1.WandzEntities.EVENT,
|
|
23
|
+
commonTarget: rule.type,
|
|
24
|
+
identifier: rule.entityIdentifier,
|
|
25
|
+
isCustom: rule.isCustomEntity,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
else if (rule.type === wandz_interfaces_1.CommonTargets.AI_FEATURE) {
|
|
29
|
+
baseArray.push({
|
|
30
|
+
entityType: wandz_interfaces_1.WandzEntities.AI_FEATURE,
|
|
31
|
+
identifier: rule.entityIdentifier,
|
|
32
|
+
isCustom: rule.isCustomEntity,
|
|
33
|
+
operator: rule.operator,
|
|
34
|
+
value: rule.value,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
else if (rule.type === wandz_interfaces_1.CommonTargets.EVENT ||
|
|
38
|
+
rule.type === wandz_interfaces_1.CommonTargets.AUDIENCE ||
|
|
39
|
+
rule.type === wandz_interfaces_1.CommonTargets.SECTION) {
|
|
40
|
+
baseArray.push({
|
|
41
|
+
entityType: rule.type,
|
|
42
|
+
identifier: rule.value,
|
|
43
|
+
isCustom: rule.isCustomEntity,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
else if (rule.type === wandz_interfaces_1.CommonTargets.AFFINITY && Array.isArray(rule.value)) {
|
|
47
|
+
rule.value.forEach((val) => {
|
|
48
|
+
baseArray.push({
|
|
49
|
+
entityType: rule.affinityType,
|
|
50
|
+
identifier: val,
|
|
51
|
+
isCustom: true,
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
return baseArray;
|
|
57
|
+
};
|
|
58
|
+
exports.entityRulesToOriginEntities = entityRulesToOriginEntities;
|
|
59
|
+
//# sourceMappingURL=activations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activations.js","sourceRoot":"","sources":["../../../../libs/utils/src/activations.ts"],"names":[],"mappings":";;;AAAA,gEAA+H;AAElH,QAAA,gCAAgC,GAAG;IAC9C,gCAAa,CAAC,GAAG;IACjB,gCAAa,CAAC,UAAU;IACxB,gCAAa,CAAC,cAAc;CAC7B,CAAC;AAEK,MAAM,2BAA2B,GAAG,CACzC,KAAwB,EAExB,wBAAiC,IAAI,EAChB,EAAE;IACvB,MAAM,SAAS,GAAwB,EAAE,CAAC;IAC1C,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QAC7B,IAAI,CAAC,qBAAqB,IAAI,wCAAgC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACnF,SAAS,CAAC,IAAI,CAAC;gBACb,YAAY,EAAE,IAAI,CAAC,IAAI;gBACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,KAAK,EAAE,IAAI,CAAC,KAAK;aAClB,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,gCAAa,CAAC,YAAY,EAAE,CAAC;YACpD,SAAS,CAAC,IAAI,CAAC;gBACb,UAAU,EAAE,gCAAa,CAAC,KAAK;gBAC/B,YAAY,EAAE,IAAI,CAAC,IAAI;gBACvB,UAAU,EAAE,IAAI,CAAC,gBAA0B;gBAC3C,QAAQ,EAAE,IAAI,CAAC,cAAc;aAC9B,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,gCAAa,CAAC,UAAU,EAAE,CAAC;YAClD,SAAS,CAAC,IAAI,CAAC;gBACb,UAAU,EAAE,gCAAa,CAAC,UAAU;gBACpC,UAAU,EAAE,IAAI,CAAC,gBAA0B;gBAC3C,QAAQ,EAAE,IAAI,CAAC,cAAc;gBAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,KAAK,EAAE,IAAI,CAAC,KAAK;aAClB,CAAC,CAAC;QACL,CAAC;aAAM,IACL,IAAI,CAAC,IAAI,KAAK,gCAAa,CAAC,KAAK;YACjC,IAAI,CAAC,IAAI,KAAK,gCAAa,CAAC,QAAQ;YACpC,IAAI,CAAC,IAAI,KAAK,gCAAa,CAAC,OAAO,EACnC,CAAC;YACD,SAAS,CAAC,IAAI,CAAC;gBACb,UAAU,EAAE,IAAI,CAAC,IAAmC;gBACpD,UAAU,EAAE,IAAI,CAAC,KAAwB;gBACzC,QAAQ,EAAE,IAAI,CAAC,cAAc;aAC9B,CAAC,CAAC;QACL,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,gCAAa,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7E,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBACzB,SAAS,CAAC,IAAI,CAAC;oBACb,UAAU,EAAE,IAAI,CAAC,YAAa;oBAC9B,UAAU,EAAE,GAAa;oBACzB,QAAQ,EAAE,IAAI;iBACf,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAjDW,QAAA,2BAA2B,+BAiDtC"}
|
package/src/common.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ export declare const upperCaseFirstCharOfEachWord: (str: string) => string;
|
|
|
11
11
|
export declare const upperCaseFirstCharOfEachWordSplitBySpace: (str: string) => string;
|
|
12
12
|
export declare const jsonToConsistentString: (jsonObj: any) => string;
|
|
13
13
|
export declare const booleanStringToBoolean: (value: string) => value is "true";
|
|
14
|
-
export declare const booleanStringToNumber: (value: string) =>
|
|
14
|
+
export declare const booleanStringToNumber: (value: string) => 1 | 0;
|
|
15
15
|
export declare const normalizeSfResponseObjKeys: (obj: Record<string, any>) => {
|
|
16
16
|
[k: string]: any;
|
|
17
17
|
};
|
package/src/common.js
CHANGED
|
@@ -32,7 +32,7 @@ const convertCamelCaseToUnderscoreObj = (obj) => {
|
|
|
32
32
|
exports.convertCamelCaseToUnderscoreObj = convertCamelCaseToUnderscoreObj;
|
|
33
33
|
const kebabToDisplayName = (kebabCase) => kebabCase
|
|
34
34
|
.split('-')
|
|
35
|
-
.map(word => word.charAt(0).toUpperCase() + word.slice(1))
|
|
35
|
+
.map((word) => word.charAt(0).toUpperCase() + word.slice(1))
|
|
36
36
|
.join(' ');
|
|
37
37
|
exports.kebabToDisplayName = kebabToDisplayName;
|
|
38
38
|
const stringifyWithSingleQuotes = (arr) => {
|
|
@@ -79,22 +79,19 @@ const jsonToConsistentString = (jsonObj) => {
|
|
|
79
79
|
exports.jsonToConsistentString = jsonToConsistentString;
|
|
80
80
|
const booleanStringToBoolean = (value) => value === 'true';
|
|
81
81
|
exports.booleanStringToBoolean = booleanStringToBoolean;
|
|
82
|
-
const booleanStringToNumber = (value) => (0, exports.booleanStringToBoolean)(value) ? 1 : 0;
|
|
82
|
+
const booleanStringToNumber = (value) => ((0, exports.booleanStringToBoolean)(value) ? 1 : 0);
|
|
83
83
|
exports.booleanStringToNumber = booleanStringToNumber;
|
|
84
84
|
const normalizeSfResponseObjKeys = (obj) => {
|
|
85
85
|
return Object.fromEntries(Object.entries(obj).map(([key, value]) => [
|
|
86
|
-
key
|
|
87
|
-
|
|
88
|
-
.replace(/_([a-z])/g, (_, char) => char.toUpperCase()),
|
|
89
|
-
value
|
|
86
|
+
key.toLowerCase().replace(/_([a-z])/g, (_, char) => char.toUpperCase()),
|
|
87
|
+
value,
|
|
90
88
|
]));
|
|
91
89
|
};
|
|
92
90
|
exports.normalizeSfResponseObjKeys = normalizeSfResponseObjKeys;
|
|
93
91
|
const getCurrentOnCall = (items) => {
|
|
94
92
|
const rotationStart = new Date('2025-09-21');
|
|
95
93
|
const now = new Date();
|
|
96
|
-
const weeksSinceStart = Math.floor((now.getTime() - rotationStart.getTime()) /
|
|
97
|
-
(7 * 24 * 60 * 60 * 1000));
|
|
94
|
+
const weeksSinceStart = Math.floor((now.getTime() - rotationStart.getTime()) / (7 * 24 * 60 * 60 * 1000));
|
|
98
95
|
if (weeksSinceStart < 0)
|
|
99
96
|
return '';
|
|
100
97
|
return items[weeksSinceStart % items.length] ? items[weeksSinceStart % items.length].slackId : '';
|
package/src/common.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../../libs/utils/src/common.ts"],"names":[],"mappings":";;;AAEO,MAAM,SAAS,GAAG,CAAC,QAAgB,EAAE,EAAE,CAC5C,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;IACtB,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AAChC,CAAC,CAAC,CAAC;AAHQ,QAAA,SAAS,aAGjB;AAEE,MAAM,4BAA4B,GAAG,CAAC,IAAY,
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../../libs/utils/src/common.ts"],"names":[],"mappings":"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"}
|
package/src/http.d.ts
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import { Request } from 'express';
|
|
2
|
+
import { Logger } from '@nestjs/common';
|
|
2
3
|
export declare function getIpFromHttpRequest(req: Request): string;
|
|
3
4
|
export declare function buildUriBodyString(queryParams: Record<string, any>): string;
|
|
4
5
|
export declare function getEncodedQueryParams(fullUrl: string): object;
|
|
5
6
|
export declare function buildQueryString(params: Record<string, any>): string;
|
|
7
|
+
export declare function retryWithBackoff<T>(fn: () => Promise<T>, logger: Logger, options?: {
|
|
8
|
+
retries: number;
|
|
9
|
+
baseDelayMs: number;
|
|
10
|
+
}): Promise<T>;
|
package/src/http.js
CHANGED
|
@@ -4,6 +4,7 @@ exports.getIpFromHttpRequest = getIpFromHttpRequest;
|
|
|
4
4
|
exports.buildUriBodyString = buildUriBodyString;
|
|
5
5
|
exports.getEncodedQueryParams = getEncodedQueryParams;
|
|
6
6
|
exports.buildQueryString = buildQueryString;
|
|
7
|
+
exports.retryWithBackoff = retryWithBackoff;
|
|
7
8
|
const querystring = require("querystring");
|
|
8
9
|
function getIpFromHttpRequest(req) {
|
|
9
10
|
return req.headers['x-forwarded-for']
|
|
@@ -44,4 +45,47 @@ function buildQueryString(params) {
|
|
|
44
45
|
});
|
|
45
46
|
return queryParams.toString();
|
|
46
47
|
}
|
|
48
|
+
function getErrorDetails(error) {
|
|
49
|
+
if (error?.code) {
|
|
50
|
+
return `${error.code}: ${error.message || 'No further details'}`;
|
|
51
|
+
}
|
|
52
|
+
if (Array.isArray(error?.errors)) {
|
|
53
|
+
const innerErrors = error.errors.map((e) => getErrorDetails(e)).join('; ');
|
|
54
|
+
const errorName = error.name || 'AggregateError';
|
|
55
|
+
return `${errorName}: [${innerErrors}]`;
|
|
56
|
+
}
|
|
57
|
+
return error?.message || String(error);
|
|
58
|
+
}
|
|
59
|
+
async function retryWithBackoff(fn, logger, options = {
|
|
60
|
+
retries: 3,
|
|
61
|
+
baseDelayMs: 500,
|
|
62
|
+
}) {
|
|
63
|
+
const { retries, baseDelayMs } = options;
|
|
64
|
+
for (let attempt = 1; attempt <= retries; attempt++) {
|
|
65
|
+
try {
|
|
66
|
+
logger.log(`Attempt #${attempt} of ${retries}`);
|
|
67
|
+
return await fn();
|
|
68
|
+
}
|
|
69
|
+
catch (error) {
|
|
70
|
+
const status = error?.response?.status;
|
|
71
|
+
const RETRYABLE_STATUS_CODES = [502, 503, 504];
|
|
72
|
+
const isRetryableError = !status || RETRYABLE_STATUS_CODES.includes(status);
|
|
73
|
+
const isLastAttempt = attempt === retries;
|
|
74
|
+
const errorDetails = getErrorDetails(error);
|
|
75
|
+
if (!isRetryableError || isLastAttempt) {
|
|
76
|
+
if (isLastAttempt) {
|
|
77
|
+
logger.error(`All ${retries} retries failed: ${errorDetails}`);
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
logger.error(`Non-retryable error (HTTP ${status}): ${errorDetails}`);
|
|
81
|
+
}
|
|
82
|
+
throw new Error(errorDetails);
|
|
83
|
+
}
|
|
84
|
+
logger.warn(`Retry #${attempt} failed: ${errorDetails}`);
|
|
85
|
+
const delayMs = baseDelayMs * 2 ** (attempt - 1);
|
|
86
|
+
await new Promise((res) => setTimeout(res, delayMs));
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
throw new Error('Unexpected retry loop failure');
|
|
90
|
+
}
|
|
47
91
|
//# sourceMappingURL=http.js.map
|
package/src/http.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../../../libs/utils/src/http.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../../../libs/utils/src/http.ts"],"names":[],"mappings":"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"}
|
package/src/index.d.ts
CHANGED
package/src/index.js
CHANGED
|
@@ -29,4 +29,5 @@ __exportStar(require("./cache"), exports);
|
|
|
29
29
|
__exportStar(require("./interactions"), exports);
|
|
30
30
|
__exportStar(require("./slack"), exports);
|
|
31
31
|
__exportStar(require("./sentry"), exports);
|
|
32
|
+
__exportStar(require("./activations"), exports);
|
|
32
33
|
//# sourceMappingURL=index.js.map
|
package/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/utils/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,yCAAuB;AACvB,yCAAuB;AACvB,yCAAuB;AACvB,4CAA0B;AAC1B,2CAAyB;AACzB,0CAAwB;AACxB,oDAAkC;AAClC,0CAAwB;AACxB,8CAA4B;AAC5B,6CAA2B;AAC3B,0CAAwB;AACxB,iDAA+B;AAC/B,0CAAwB;AACxB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/utils/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,yCAAuB;AACvB,yCAAuB;AACvB,yCAAuB;AACvB,4CAA0B;AAC1B,2CAAyB;AACzB,0CAAwB;AACxB,oDAAkC;AAClC,0CAAwB;AACxB,8CAA4B;AAC5B,6CAA2B;AAC3B,0CAAwB;AACxB,iDAA+B;AAC/B,0CAAwB;AACxB,2CAAyB;AACzB,gDAA8B"}
|