@convertcom/js-sdk-rules 0.0.1 → 1.0.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/LICENSE.txt +202 -0
- package/lib/enums/index.d.ts +29 -0
- package/lib/enums/src/audience-type.d.ts +11 -0
- package/lib/enums/src/data-enitites.d.ts +7 -0
- package/lib/enums/src/dictionary.d.ts +60 -0
- package/lib/enums/src/do-not-track.d.ts +12 -0
- package/lib/enums/src/event-type.d.ts +10 -0
- package/lib/enums/src/experience-type.d.ts +16 -0
- package/lib/enums/src/feature-status.d.ts +10 -0
- package/lib/enums/src/ga-type.d.ts +10 -0
- package/lib/enums/src/goal-data-key.d.ts +11 -0
- package/lib/enums/src/goal-type.d.ts +22 -0
- package/lib/enums/src/integration-provider.d.ts +27 -0
- package/lib/enums/src/log-level.d.ts +14 -0
- package/lib/enums/src/log-method.d.ts +14 -0
- package/lib/enums/src/project-type.d.ts +10 -0
- package/lib/enums/src/rule-error.d.ts +10 -0
- package/lib/enums/src/segments/browser-type.d.ts +17 -0
- package/lib/enums/src/segments/device-type.d.ts +16 -0
- package/lib/enums/src/segments/segments-keys.d.ts +15 -0
- package/lib/enums/src/segments/source-type.d.ts +12 -0
- package/lib/enums/src/segments/visitor-type.d.ts +10 -0
- package/lib/enums/src/system-events.d.ts +22 -0
- package/lib/enums/src/variable-types.d.ts +7 -0
- package/lib/enums/src/variation-change-type.d.ts +14 -0
- package/lib/index.js +227 -0
- package/lib/index.js.map +1 -0
- package/lib/index.min.js +2 -0
- package/lib/index.min.js.map +1 -0
- package/lib/index.min.mjs +1 -0
- package/lib/index.min.mjs.map +1 -0
- package/lib/index.mjs +227 -0
- package/lib/index.mjs.map +1 -0
- package/lib/legacy/enums/index.d.ts +29 -0
- package/lib/legacy/enums/src/audience-type.d.ts +11 -0
- package/lib/legacy/enums/src/data-enitites.d.ts +7 -0
- package/lib/legacy/enums/src/dictionary.d.ts +60 -0
- package/lib/legacy/enums/src/do-not-track.d.ts +12 -0
- package/lib/legacy/enums/src/event-type.d.ts +10 -0
- package/lib/legacy/enums/src/experience-type.d.ts +16 -0
- package/lib/legacy/enums/src/feature-status.d.ts +10 -0
- package/lib/legacy/enums/src/ga-type.d.ts +10 -0
- package/lib/legacy/enums/src/goal-data-key.d.ts +11 -0
- package/lib/legacy/enums/src/goal-type.d.ts +22 -0
- package/lib/legacy/enums/src/integration-provider.d.ts +27 -0
- package/lib/legacy/enums/src/log-level.d.ts +14 -0
- package/lib/legacy/enums/src/log-method.d.ts +14 -0
- package/lib/legacy/enums/src/project-type.d.ts +10 -0
- package/lib/legacy/enums/src/rule-error.d.ts +10 -0
- package/lib/legacy/enums/src/segments/browser-type.d.ts +17 -0
- package/lib/legacy/enums/src/segments/device-type.d.ts +16 -0
- package/lib/legacy/enums/src/segments/segments-keys.d.ts +15 -0
- package/lib/legacy/enums/src/segments/source-type.d.ts +12 -0
- package/lib/legacy/enums/src/segments/visitor-type.d.ts +10 -0
- package/lib/legacy/enums/src/system-events.d.ts +22 -0
- package/lib/legacy/enums/src/variable-types.d.ts +7 -0
- package/lib/legacy/enums/src/variation-change-type.d.ts +14 -0
- package/lib/legacy/index.js +291 -0
- package/lib/legacy/index.js.map +1 -0
- package/lib/legacy/index.min.js +8 -0
- package/lib/legacy/index.min.js.map +1 -0
- package/lib/legacy/logger/index.d.ts +8 -0
- package/lib/legacy/logger/src/interfaces/log-client.d.ts +13 -0
- package/lib/legacy/logger/src/interfaces/log-manager.d.ts +18 -0
- package/lib/legacy/logger/src/interfaces/log-method-map.d.ts +15 -0
- package/lib/legacy/logger/src/log-manager.d.ts +64 -0
- package/lib/legacy/rules/index.d.ts +8 -0
- package/lib/legacy/rules/src/interfaces/rule-manager.d.ts +14 -0
- package/lib/legacy/rules/src/rule-manager.d.ts +75 -0
- package/lib/legacy/types/index.d.ts +36 -0
- package/lib/legacy/types/src/Audience.d.ts +16 -0
- package/lib/legacy/types/src/BucketedFeature.d.ts +30 -0
- package/lib/legacy/types/src/BucketedVariation.d.ts +13 -0
- package/lib/legacy/types/src/BucketingAttributes.d.ts +13 -0
- package/lib/legacy/types/src/Config.d.ts +62 -0
- package/lib/legacy/types/src/ConversionAttributes.d.ts +11 -0
- package/lib/legacy/types/src/Entity.d.ts +13 -0
- package/lib/legacy/types/src/Experience.d.ts +37 -0
- package/lib/legacy/types/src/Feature.d.ts +18 -0
- package/lib/legacy/types/src/Goal.d.ts +30 -0
- package/lib/legacy/types/src/Id.d.ts +10 -0
- package/lib/{index.d.ts → legacy/types/src/IndentityField.d.ts} +2 -1
- package/lib/legacy/types/src/Integration.d.ts +16 -0
- package/lib/legacy/types/src/Location.d.ts +14 -0
- package/lib/legacy/types/src/Path.d.ts +10 -0
- package/lib/legacy/types/src/Project.d.ts +37 -0
- package/lib/legacy/types/src/RequireAtLeastOne.d.ts +3 -0
- package/lib/legacy/types/src/Rule.d.ts +24 -0
- package/lib/legacy/types/src/Segments.d.ts +14 -0
- package/lib/legacy/types/src/SegmentsAttributes.d.ts +9 -0
- package/lib/legacy/types/src/SegmentsData.d.ts +16 -0
- package/lib/legacy/types/src/StoreData.d.ts +14 -0
- package/lib/legacy/types/src/TrackingEvent.d.ts +14 -0
- package/lib/legacy/types/src/VariableType.d.ts +8 -0
- package/lib/legacy/types/src/Variation.d.ts +49 -0
- package/lib/legacy/types/src/VisitorsQueue.d.ts +16 -0
- package/lib/legacy/types/src/tracking/BucketingEvent.d.ts +11 -0
- package/lib/legacy/types/src/tracking/ConversionEvent.d.ts +16 -0
- package/lib/legacy/types/src/tracking/Visitor.d.ts +14 -0
- package/lib/legacy/types/src/tracking/VisitorEvent.d.ts +13 -0
- package/lib/legacy/utils/index.d.ts +14 -0
- package/lib/legacy/utils/src/array-utils.d.ts +11 -0
- package/lib/legacy/utils/src/comparisons.d.ts +22 -0
- package/lib/legacy/utils/src/data-store.d.ts +39 -0
- package/lib/legacy/utils/src/file-logger.d.ts +40 -0
- package/lib/legacy/utils/src/http-client.d.ts +102 -0
- package/lib/legacy/utils/src/object-utils.d.ts +28 -0
- package/lib/legacy/utils/src/string-utils.d.ts +20 -0
- package/lib/legacy/utils/src/types-utils.d.ts +12 -0
- package/lib/logger/index.d.ts +8 -0
- package/lib/logger/src/interfaces/log-client.d.ts +13 -0
- package/lib/logger/src/interfaces/log-manager.d.ts +18 -0
- package/lib/logger/src/interfaces/log-method-map.d.ts +15 -0
- package/lib/logger/src/log-manager.d.ts +64 -0
- package/lib/package.json +18 -0
- package/lib/rules/index.d.ts +8 -0
- package/lib/rules/src/interfaces/rule-manager.d.ts +14 -0
- package/lib/rules/src/rule-manager.d.ts +75 -0
- package/lib/types/index.d.ts +36 -0
- package/lib/types/src/Audience.d.ts +16 -0
- package/lib/types/src/BucketedFeature.d.ts +30 -0
- package/lib/types/src/BucketedVariation.d.ts +13 -0
- package/lib/types/src/BucketingAttributes.d.ts +13 -0
- package/lib/types/src/Config.d.ts +62 -0
- package/lib/types/src/ConversionAttributes.d.ts +11 -0
- package/lib/types/src/Entity.d.ts +13 -0
- package/lib/types/src/Experience.d.ts +37 -0
- package/lib/types/src/Feature.d.ts +18 -0
- package/lib/types/src/Goal.d.ts +30 -0
- package/lib/types/src/Id.d.ts +10 -0
- package/lib/types/src/IndentityField.d.ts +7 -0
- package/lib/types/src/Integration.d.ts +16 -0
- package/lib/types/src/Location.d.ts +14 -0
- package/lib/types/src/Path.d.ts +10 -0
- package/lib/types/src/Project.d.ts +37 -0
- package/lib/types/src/RequireAtLeastOne.d.ts +3 -0
- package/lib/types/src/Rule.d.ts +24 -0
- package/lib/types/src/Segments.d.ts +14 -0
- package/lib/types/src/SegmentsAttributes.d.ts +9 -0
- package/lib/types/src/SegmentsData.d.ts +16 -0
- package/lib/types/src/StoreData.d.ts +14 -0
- package/lib/types/src/TrackingEvent.d.ts +14 -0
- package/lib/types/src/VariableType.d.ts +8 -0
- package/lib/types/src/Variation.d.ts +49 -0
- package/lib/types/src/VisitorsQueue.d.ts +16 -0
- package/lib/types/src/tracking/BucketingEvent.d.ts +11 -0
- package/lib/types/src/tracking/ConversionEvent.d.ts +16 -0
- package/lib/types/src/tracking/Visitor.d.ts +14 -0
- package/lib/types/src/tracking/VisitorEvent.d.ts +13 -0
- package/lib/utils/index.d.ts +14 -0
- package/lib/utils/src/array-utils.d.ts +11 -0
- package/lib/utils/src/comparisons.d.ts +22 -0
- package/lib/utils/src/data-store.d.ts +39 -0
- package/lib/utils/src/file-logger.d.ts +40 -0
- package/lib/utils/src/http-client.d.ts +102 -0
- package/lib/utils/src/object-utils.d.ts +28 -0
- package/lib/utils/src/string-utils.d.ts +20 -0
- package/lib/utils/src/types-utils.d.ts +12 -0
- package/package.json +60 -1
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Convert JS SDK
|
|
3
|
+
* Version 1.0.0
|
|
4
|
+
* Copyright(c) 2020 Convert Insights, Inc
|
|
5
|
+
* License Apache-2.0
|
|
6
|
+
*/
|
|
7
|
+
import { VariationChangeType } from '@convertcom/js-sdk-enums';
|
|
8
|
+
import { Id } from './Id';
|
|
9
|
+
export type RichStructureChange = {
|
|
10
|
+
js?: string;
|
|
11
|
+
selector: string;
|
|
12
|
+
page_id: string;
|
|
13
|
+
};
|
|
14
|
+
export type CustomCodeChange = {
|
|
15
|
+
css?: string;
|
|
16
|
+
js?: string;
|
|
17
|
+
page_id: string;
|
|
18
|
+
};
|
|
19
|
+
export type DefaultCodeChange = {
|
|
20
|
+
css?: string;
|
|
21
|
+
js?: string;
|
|
22
|
+
custom_js?: string;
|
|
23
|
+
};
|
|
24
|
+
export type DefaultCodeMultipageChange = {
|
|
25
|
+
css?: string;
|
|
26
|
+
js?: string;
|
|
27
|
+
custom_js?: string;
|
|
28
|
+
page_id: string;
|
|
29
|
+
};
|
|
30
|
+
export type DefaultRedirectChange = {
|
|
31
|
+
original_pattern: string;
|
|
32
|
+
variation_pattern: string;
|
|
33
|
+
};
|
|
34
|
+
export type FullStackFeatureChange = {
|
|
35
|
+
feature_id: Id;
|
|
36
|
+
variables_data: Record<string, any>;
|
|
37
|
+
};
|
|
38
|
+
export type VariationChange = {
|
|
39
|
+
id: Id;
|
|
40
|
+
type: VariationChangeType;
|
|
41
|
+
data: RichStructureChange | CustomCodeChange | DefaultCodeChange | DefaultCodeMultipageChange | DefaultRedirectChange | FullStackFeatureChange;
|
|
42
|
+
};
|
|
43
|
+
export type Variation = {
|
|
44
|
+
id: Id;
|
|
45
|
+
key: string;
|
|
46
|
+
name: string;
|
|
47
|
+
changes: Array<VariationChange>;
|
|
48
|
+
traffic_allocation?: number;
|
|
49
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Convert JS SDK
|
|
3
|
+
* Version 1.0.0
|
|
4
|
+
* Copyright(c) 2020 Convert Insights, Inc
|
|
5
|
+
* License Apache-2.0
|
|
6
|
+
*/
|
|
7
|
+
import { Id } from './Id';
|
|
8
|
+
import { SegmentsData } from './SegmentsData';
|
|
9
|
+
import { Visitor } from './tracking/Visitor';
|
|
10
|
+
import { VisitorEvent } from './tracking/VisitorEvent';
|
|
11
|
+
export type VisitorsQueue = {
|
|
12
|
+
length: number;
|
|
13
|
+
items: Array<Visitor>;
|
|
14
|
+
push: (visitorId: Id, eventRequest: VisitorEvent, segments?: SegmentsData) => void;
|
|
15
|
+
reset: () => void;
|
|
16
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Convert JS SDK
|
|
3
|
+
* Version 1.0.0
|
|
4
|
+
* Copyright(c) 2020 Convert Insights, Inc
|
|
5
|
+
* License Apache-2.0
|
|
6
|
+
*/
|
|
7
|
+
import { GoalDataKey } from '@convertcom/js-sdk-enums';
|
|
8
|
+
import { Id } from '../Id';
|
|
9
|
+
export type GoalData = {
|
|
10
|
+
[key in GoalDataKey]?: Id;
|
|
11
|
+
};
|
|
12
|
+
export type ConversionEvent = {
|
|
13
|
+
goalId: Id;
|
|
14
|
+
goalData?: Array<GoalData>;
|
|
15
|
+
bucketingData?: Record<string, Id>;
|
|
16
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Convert JS SDK
|
|
3
|
+
* Version 1.0.0
|
|
4
|
+
* Copyright(c) 2020 Convert Insights, Inc
|
|
5
|
+
* License Apache-2.0
|
|
6
|
+
*/
|
|
7
|
+
import { Id } from '../Id';
|
|
8
|
+
import { SegmentsData } from '../SegmentsData';
|
|
9
|
+
import { VisitorEvent } from './VisitorEvent';
|
|
10
|
+
export type Visitor = {
|
|
11
|
+
visitorId: Id;
|
|
12
|
+
segments?: SegmentsData;
|
|
13
|
+
events: Array<VisitorEvent>;
|
|
14
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Convert JS SDK
|
|
3
|
+
* Version 1.0.0
|
|
4
|
+
* Copyright(c) 2020 Convert Insights, Inc
|
|
5
|
+
* License Apache-2.0
|
|
6
|
+
*/
|
|
7
|
+
import { EventType } from '@convertcom/js-sdk-enums';
|
|
8
|
+
import { BucketingEvent } from './BucketingEvent';
|
|
9
|
+
import { ConversionEvent } from './ConversionEvent';
|
|
10
|
+
export type VisitorEvent = {
|
|
11
|
+
eventType: EventType;
|
|
12
|
+
data?: BucketingEvent | ConversionEvent;
|
|
13
|
+
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Convert JS SDK test
|
|
3
|
+
* Version 1.0.0
|
|
4
|
+
* Copyright(c) 2020 Convert Insights, Inc
|
|
5
|
+
* License Apache-2.0
|
|
6
|
+
*/
|
|
7
|
+
export * from './src/array-utils';
|
|
8
|
+
export * from './src/comparisons';
|
|
9
|
+
export * from './src/data-store';
|
|
10
|
+
export * from './src/file-logger';
|
|
11
|
+
export * from './src/http-client';
|
|
12
|
+
export * from './src/object-utils';
|
|
13
|
+
export * from './src/string-utils';
|
|
14
|
+
export * from './src/types-utils';
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Convert JS SDK
|
|
3
|
+
* Version 1.0.0
|
|
4
|
+
* Copyright(c) 2020 Convert Insights, Inc
|
|
5
|
+
* License Apache-2.0
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Validates variable is array and not empty
|
|
9
|
+
* @param array
|
|
10
|
+
*/
|
|
11
|
+
export declare function arrayNotEmpty(array: Array<unknown>): boolean;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Convert JS SDK
|
|
3
|
+
* Version 1.0.0
|
|
4
|
+
* Copyright(c) 2020 Convert Insights, Inc
|
|
5
|
+
* License Apache-2.0
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Comparison Processor. Provides comparison methods for rules validation
|
|
9
|
+
*/
|
|
10
|
+
export declare class Comparisons {
|
|
11
|
+
static equals(value: string | number | boolean | Array<string | number | boolean> | Record<string, string | number | boolean>, testAgainst: string | number | boolean, negation?: boolean): boolean;
|
|
12
|
+
static equalsNumber: typeof Comparisons.equals;
|
|
13
|
+
static matches: typeof Comparisons.equals;
|
|
14
|
+
static less(value: string | number, testAgainst: string | number, negation?: boolean): boolean;
|
|
15
|
+
static lessEqual(value: string | number, testAgainst: string | number, negation?: boolean): boolean;
|
|
16
|
+
static contains(value: string | number, testAgainst: string | number, negation?: boolean): boolean;
|
|
17
|
+
static isIn(values: string | number, testAgainst: Array<string | number> | string, negation?: boolean, splitter?: string): boolean;
|
|
18
|
+
static startsWith(value: string | number, testAgainst: string | number, negation?: boolean): boolean;
|
|
19
|
+
static endsWith(value: string | number, testAgainst: string | number, negation?: boolean): boolean;
|
|
20
|
+
static regexMatches(value: string | number, testAgainst: string | number, negation?: boolean): boolean;
|
|
21
|
+
private static _returnNegationCheck;
|
|
22
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Convert JS SDK
|
|
3
|
+
* Version 1.0.0
|
|
4
|
+
* Copyright(c) 2020 Convert Insights, Inc
|
|
5
|
+
* License Apache-2.0
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Example of Data Store implementation with simple database Based JSON file.
|
|
9
|
+
* It's not recommended to use it in production as it can be memory and CPU intensive.
|
|
10
|
+
* @param {string} file
|
|
11
|
+
* @param {module} fs
|
|
12
|
+
*/
|
|
13
|
+
declare class DataStore {
|
|
14
|
+
private _file;
|
|
15
|
+
private _fs;
|
|
16
|
+
/**
|
|
17
|
+
* @param {string} file
|
|
18
|
+
* @param {module} fs
|
|
19
|
+
*/
|
|
20
|
+
constructor(file: string, fs: any);
|
|
21
|
+
/**
|
|
22
|
+
* Get value by key
|
|
23
|
+
* @param {string} key
|
|
24
|
+
* @return {any}
|
|
25
|
+
*/
|
|
26
|
+
get(key: string): any;
|
|
27
|
+
/**
|
|
28
|
+
* Store value by key
|
|
29
|
+
* @param {string} key
|
|
30
|
+
* @param {any} value
|
|
31
|
+
*/
|
|
32
|
+
set(key: string, value: any): void;
|
|
33
|
+
/**
|
|
34
|
+
* Delete value by key
|
|
35
|
+
* @param {string} key
|
|
36
|
+
*/
|
|
37
|
+
delete(key: string): void;
|
|
38
|
+
}
|
|
39
|
+
export { DataStore };
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @param {string} file
|
|
3
|
+
* @param {module} fs
|
|
4
|
+
* @param {string=} appendMethod Defaults to 'appendFileSync'
|
|
5
|
+
* @example new FileLogger('./convert.log', require('fs'), 'appendFileSync')
|
|
6
|
+
* @constructor
|
|
7
|
+
*/
|
|
8
|
+
declare class FileLogger {
|
|
9
|
+
private _file;
|
|
10
|
+
private _fs;
|
|
11
|
+
private _appendMethod;
|
|
12
|
+
/**
|
|
13
|
+
* @param {string} file
|
|
14
|
+
* @param {module} fs
|
|
15
|
+
* @param {string=} appendMethod
|
|
16
|
+
*/
|
|
17
|
+
constructor(file: string, fs: any, appendMethod?: string);
|
|
18
|
+
private _write;
|
|
19
|
+
/**
|
|
20
|
+
* @param {Array<any>} args
|
|
21
|
+
*/
|
|
22
|
+
log(...args: any): Promise<void>;
|
|
23
|
+
/**
|
|
24
|
+
* @param {Array<any>} args
|
|
25
|
+
*/
|
|
26
|
+
info(...args: any): Promise<void>;
|
|
27
|
+
/**
|
|
28
|
+
* @param {Array<any>} args
|
|
29
|
+
*/
|
|
30
|
+
debug(...args: any): Promise<void>;
|
|
31
|
+
/**
|
|
32
|
+
* @param {Array<any>} args
|
|
33
|
+
*/
|
|
34
|
+
warn(...args: any): Promise<void>;
|
|
35
|
+
/**
|
|
36
|
+
* @param {Array<any>} args
|
|
37
|
+
*/
|
|
38
|
+
error(...args: any): Promise<void>;
|
|
39
|
+
}
|
|
40
|
+
export { FileLogger };
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Convert JS SDK
|
|
3
|
+
* Version 1.0.0
|
|
4
|
+
* Copyright(c) 2020 Convert Insights, Inc
|
|
5
|
+
* License Apache-2.0
|
|
6
|
+
*/
|
|
7
|
+
export type HttpMethod = 'GET' | 'DELETE' | 'HEAD' | 'OPTIONS' | 'POST' | 'PUT' | 'PATCH';
|
|
8
|
+
export type HttpResponseType = 'json' | 'arraybuffer' | 'text';
|
|
9
|
+
export type HttpRequest = {
|
|
10
|
+
baseURL: string;
|
|
11
|
+
path?: string;
|
|
12
|
+
method?: HttpMethod;
|
|
13
|
+
headers?: {
|
|
14
|
+
[x: string]: any;
|
|
15
|
+
};
|
|
16
|
+
responseType?: HttpResponseType;
|
|
17
|
+
data?: Record<string, any>;
|
|
18
|
+
};
|
|
19
|
+
declare enum HttpStatusCode {
|
|
20
|
+
Continue = 100,
|
|
21
|
+
SwitchingProtocols = 101,
|
|
22
|
+
Processing = 102,
|
|
23
|
+
EarlyHints = 103,
|
|
24
|
+
Ok = 200,
|
|
25
|
+
Created = 201,
|
|
26
|
+
Accepted = 202,
|
|
27
|
+
NonAuthoritativeInformation = 203,
|
|
28
|
+
NoContent = 204,
|
|
29
|
+
ResetContent = 205,
|
|
30
|
+
PartialContent = 206,
|
|
31
|
+
MultiStatus = 207,
|
|
32
|
+
AlreadyReported = 208,
|
|
33
|
+
ImUsed = 226,
|
|
34
|
+
MultipleChoices = 300,
|
|
35
|
+
MovedPermanently = 301,
|
|
36
|
+
Found = 302,
|
|
37
|
+
SeeOther = 303,
|
|
38
|
+
NotModified = 304,
|
|
39
|
+
UseProxy = 305,
|
|
40
|
+
Unused = 306,
|
|
41
|
+
TemporaryRedirect = 307,
|
|
42
|
+
PermanentRedirect = 308,
|
|
43
|
+
BadRequest = 400,
|
|
44
|
+
Unauthorized = 401,
|
|
45
|
+
PaymentRequired = 402,
|
|
46
|
+
Forbidden = 403,
|
|
47
|
+
NotFound = 404,
|
|
48
|
+
MethodNotAllowed = 405,
|
|
49
|
+
NotAcceptable = 406,
|
|
50
|
+
ProxyAuthenticationRequired = 407,
|
|
51
|
+
RequestTimeout = 408,
|
|
52
|
+
Conflict = 409,
|
|
53
|
+
Gone = 410,
|
|
54
|
+
LengthRequired = 411,
|
|
55
|
+
PreconditionFailed = 412,
|
|
56
|
+
PayloadTooLarge = 413,
|
|
57
|
+
UriTooLong = 414,
|
|
58
|
+
UnsupportedMediaType = 415,
|
|
59
|
+
RangeNotSatisfiable = 416,
|
|
60
|
+
ExpectationFailed = 417,
|
|
61
|
+
ImATeapot = 418,
|
|
62
|
+
MisdirectedRequest = 421,
|
|
63
|
+
UnprocessableEntity = 422,
|
|
64
|
+
Locked = 423,
|
|
65
|
+
FailedDependency = 424,
|
|
66
|
+
TooEarly = 425,
|
|
67
|
+
UpgradeRequired = 426,
|
|
68
|
+
PreconditionRequired = 428,
|
|
69
|
+
TooManyRequests = 429,
|
|
70
|
+
RequestHeaderFieldsTooLarge = 431,
|
|
71
|
+
UnavailableForLegalReasons = 451,
|
|
72
|
+
InternalServerError = 500,
|
|
73
|
+
NotImplemented = 501,
|
|
74
|
+
BadGateway = 502,
|
|
75
|
+
ServiceUnavailable = 503,
|
|
76
|
+
GatewayTimeout = 504,
|
|
77
|
+
HttpVersionNotSupported = 505,
|
|
78
|
+
VariantAlsoNegotiates = 506,
|
|
79
|
+
InsufficientStorage = 507,
|
|
80
|
+
LoopDetected = 508,
|
|
81
|
+
NotExtended = 510,
|
|
82
|
+
NetworkAuthenticationRequired = 511
|
|
83
|
+
}
|
|
84
|
+
export type HttpResponse = {
|
|
85
|
+
data: any;
|
|
86
|
+
status: HttpStatusCode;
|
|
87
|
+
statusText: string;
|
|
88
|
+
headers?: {
|
|
89
|
+
[x: string]: any;
|
|
90
|
+
};
|
|
91
|
+
};
|
|
92
|
+
interface HttpClientInterface {
|
|
93
|
+
request(config: HttpRequest): Promise<HttpResponse>;
|
|
94
|
+
}
|
|
95
|
+
export declare const serialize: (params: Record<string, any>, method: string) => string;
|
|
96
|
+
/**
|
|
97
|
+
* Provide http client for newtork requests
|
|
98
|
+
* @param {HttpRequest}
|
|
99
|
+
* @returns {HttpClient}
|
|
100
|
+
*/
|
|
101
|
+
export declare const HttpClient: HttpClientInterface;
|
|
102
|
+
export {};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Convert JS SDK
|
|
3
|
+
* Version 1.0.0
|
|
4
|
+
* Copyright(c) 2020 Convert Insights, Inc
|
|
5
|
+
* License Apache-2.0
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Returns the value at path of object
|
|
9
|
+
* @param {Record<string, any>} object
|
|
10
|
+
* @param {string} path
|
|
11
|
+
* @param {any=} defaultValue
|
|
12
|
+
* @param {boolean=} truthy Should Number 0 number and Boolean false be considered as normal value
|
|
13
|
+
* @return {any}
|
|
14
|
+
*/
|
|
15
|
+
export declare function objectDeepValue(object: Record<string, any>, path: string, defaultValue?: any, truthy?: boolean): any;
|
|
16
|
+
/**
|
|
17
|
+
* Deep merge objects and their keys and nested objects
|
|
18
|
+
* Accepts arrays
|
|
19
|
+
*
|
|
20
|
+
* @param {...Record<any, any>} objects Objects to merge
|
|
21
|
+
* @return {Record<any, any>}
|
|
22
|
+
*/
|
|
23
|
+
export declare function objectDeepMerge(...objects: any[]): any;
|
|
24
|
+
/**
|
|
25
|
+
* Validates variable is object and not empty
|
|
26
|
+
* @param object
|
|
27
|
+
*/
|
|
28
|
+
export declare function objectNotEmpty(object: any): boolean;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* String formatter tool. Use %s for string %d for digit and %j for JSON formatting
|
|
3
|
+
* @param {string} template
|
|
4
|
+
* @param {Array<string>} args
|
|
5
|
+
* @return {string}
|
|
6
|
+
*/
|
|
7
|
+
export declare function stringFormat(template: string, ...args: any[]): string;
|
|
8
|
+
/**
|
|
9
|
+
* String formatter tool. Transforms a space-separated string into camelCase
|
|
10
|
+
* @param {string} input
|
|
11
|
+
* @return {string}
|
|
12
|
+
*/
|
|
13
|
+
export declare function camelCase(input: string): string;
|
|
14
|
+
/**
|
|
15
|
+
* Generate numeric hash based on seed
|
|
16
|
+
* @param {string} value
|
|
17
|
+
* @param {number=} seed
|
|
18
|
+
* @return {number}
|
|
19
|
+
*/
|
|
20
|
+
export declare function generateHash(value: string, seed?: number): number;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Convert JS SDK
|
|
3
|
+
* Version 1.0.0
|
|
4
|
+
* Copyright(c) 2020 Convert Insights, Inc
|
|
5
|
+
* License Apache-2.0
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Transform value type. Does not do any JSON validation
|
|
9
|
+
* @param value
|
|
10
|
+
* @param type
|
|
11
|
+
*/
|
|
12
|
+
export declare function castType(value: any, type: string): any;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Convert JS SDK
|
|
3
|
+
* Version 1.0.0
|
|
4
|
+
* Copyright(c) 2020 Convert Insights, Inc
|
|
5
|
+
* License Apache-2.0
|
|
6
|
+
*/
|
|
7
|
+
import { LogLevel } from '@convertcom/js-sdk-enums';
|
|
8
|
+
import { LogMethodMapInterface } from './log-method-map';
|
|
9
|
+
export interface LogClientInterface {
|
|
10
|
+
sdk: any;
|
|
11
|
+
level: LogLevel;
|
|
12
|
+
mapper: LogMethodMapInterface;
|
|
13
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Convert JS SDK
|
|
3
|
+
* Version 1.0.0
|
|
4
|
+
* Copyright(c) 2020 Convert Insights, Inc
|
|
5
|
+
* License Apache-2.0
|
|
6
|
+
*/
|
|
7
|
+
import { LogLevel } from '@convertcom/js-sdk-enums';
|
|
8
|
+
import { LogMethodMapInterface } from './log-method-map';
|
|
9
|
+
export interface LogManagerInterface {
|
|
10
|
+
log(level: LogLevel, ...args: any[]): void;
|
|
11
|
+
trace(...args: any[]): void;
|
|
12
|
+
debug(...args: any[]): void;
|
|
13
|
+
info(...args: any[]): void;
|
|
14
|
+
warn(...args: any[]): void;
|
|
15
|
+
error(...args: any[]): void;
|
|
16
|
+
addClient(client?: any, level?: LogLevel, methodMap?: LogMethodMapInterface): void;
|
|
17
|
+
setClientLevel(level: LogLevel, client?: any): void;
|
|
18
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Convert JS SDK
|
|
3
|
+
* Version 1.0.0
|
|
4
|
+
* Copyright(c) 2020 Convert Insights, Inc
|
|
5
|
+
* License Apache-2.0
|
|
6
|
+
*/
|
|
7
|
+
import { LogMethod } from '@convertcom/js-sdk-enums';
|
|
8
|
+
export interface LogMethodMapInterface {
|
|
9
|
+
[LogMethod.LOG]?: string;
|
|
10
|
+
[LogMethod.DEBUG]?: string;
|
|
11
|
+
[LogMethod.INFO]?: string;
|
|
12
|
+
[LogMethod.WARN]?: string;
|
|
13
|
+
[LogMethod.ERROR]?: string;
|
|
14
|
+
[LogMethod.TRACE]?: string;
|
|
15
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Convert JS SDK
|
|
3
|
+
* Version 1.0.0
|
|
4
|
+
* Copyright(c) 2020 Convert Insights, Inc
|
|
5
|
+
* License Apache-2.0
|
|
6
|
+
*/
|
|
7
|
+
import { LogLevel } from '@convertcom/js-sdk-enums';
|
|
8
|
+
import { LogMethodMapInterface } from './interfaces/log-method-map';
|
|
9
|
+
import { LogManagerInterface } from './interfaces/log-manager';
|
|
10
|
+
/**
|
|
11
|
+
* Provides logging logic
|
|
12
|
+
* @category Modules
|
|
13
|
+
* @constructor
|
|
14
|
+
* @implements {LogManagerInterface}
|
|
15
|
+
*/
|
|
16
|
+
export declare class LogManager implements LogManagerInterface {
|
|
17
|
+
private _clients;
|
|
18
|
+
private _defaultMapper;
|
|
19
|
+
/**
|
|
20
|
+
* @param {any} client
|
|
21
|
+
* @param {LogLevel=} level
|
|
22
|
+
* @param {LogMethodMapInterface=} mapper
|
|
23
|
+
*/
|
|
24
|
+
constructor(client?: any, level?: LogLevel, mapper?: LogMethodMapInterface);
|
|
25
|
+
private _isValidLevel;
|
|
26
|
+
private _isValidMethod;
|
|
27
|
+
private _log;
|
|
28
|
+
/**
|
|
29
|
+
* @param {LogLevel} level
|
|
30
|
+
* @param {Array<any>} args
|
|
31
|
+
*/
|
|
32
|
+
log(level: LogLevel, ...args: any[]): void;
|
|
33
|
+
/**
|
|
34
|
+
* @param {Array<any>} args
|
|
35
|
+
*/
|
|
36
|
+
trace(...args: any[]): void;
|
|
37
|
+
/**
|
|
38
|
+
* @param {Array<any>} args
|
|
39
|
+
*/
|
|
40
|
+
debug(...args: any[]): void;
|
|
41
|
+
/**
|
|
42
|
+
* @param {Array<any>} args
|
|
43
|
+
*/
|
|
44
|
+
info(...args: any[]): void;
|
|
45
|
+
/**
|
|
46
|
+
* @param {Array<any>} args
|
|
47
|
+
*/
|
|
48
|
+
warn(...args: any[]): void;
|
|
49
|
+
/**
|
|
50
|
+
* @param {Array<any>} args
|
|
51
|
+
*/
|
|
52
|
+
error(...args: any[]): void;
|
|
53
|
+
/**
|
|
54
|
+
* @param {any=} client
|
|
55
|
+
* @param {LogLevel=} level
|
|
56
|
+
* @param {LogMethodMapInterface=} methodMap
|
|
57
|
+
*/
|
|
58
|
+
addClient(client?: any, level?: LogLevel, methodMap?: LogMethodMapInterface): void;
|
|
59
|
+
/**
|
|
60
|
+
* @param {LogLevel=} level
|
|
61
|
+
* @param {any=} client
|
|
62
|
+
*/
|
|
63
|
+
setClientLevel(level: LogLevel, client?: any): void;
|
|
64
|
+
}
|
package/lib/package.json
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@convertcom/js-sdk-rules",
|
|
3
|
+
"main": "index.min.js",
|
|
4
|
+
"module": "index.min.mjs",
|
|
5
|
+
"browser": "index.umd.min.js",
|
|
6
|
+
"types": "index.d.ts",
|
|
7
|
+
"files": [
|
|
8
|
+
"**/**/*"
|
|
9
|
+
],
|
|
10
|
+
"author": "Convert Insights, Inc",
|
|
11
|
+
"repository": {
|
|
12
|
+
"type": "git",
|
|
13
|
+
"url": "git+https://github.com/convertcom/javascript-sdk.git",
|
|
14
|
+
"directory": "packages/rules"
|
|
15
|
+
},
|
|
16
|
+
"license": "Apache-2.0",
|
|
17
|
+
"version": "1.0.0"
|
|
18
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Convert JS SDK
|
|
3
|
+
* Version 1.0.0
|
|
4
|
+
* Copyright(c) 2020 Convert Insights, Inc
|
|
5
|
+
* License Apache-2.0
|
|
6
|
+
*/
|
|
7
|
+
import { Rule, RuleSet } from '@convertcom/js-sdk-types';
|
|
8
|
+
import { RuleError } from '@convertcom/js-sdk-enums';
|
|
9
|
+
export interface RuleManagerInterface {
|
|
10
|
+
comparisonProcessor: Record<string, any>;
|
|
11
|
+
getComparisonProcessorMethods(): Array<string>;
|
|
12
|
+
isRuleMatched(data: Record<string, any>, ruleSet: RuleSet, logEntry?: string): boolean | RuleError;
|
|
13
|
+
isValidRule(rule: Rule): boolean;
|
|
14
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { RuleManagerInterface } from './interfaces/rule-manager';
|
|
2
|
+
import { Config, Rule, RuleSet } from '@convertcom/js-sdk-types';
|
|
3
|
+
import { LogManagerInterface } from '@convertcom/js-sdk-logger';
|
|
4
|
+
import { RuleError } from '@convertcom/js-sdk-enums';
|
|
5
|
+
/**
|
|
6
|
+
* Provides rule processing calculations with corresponding comparisons methods
|
|
7
|
+
* @category Modules
|
|
8
|
+
* @constructor
|
|
9
|
+
* @implements {RuleManagerInterface}
|
|
10
|
+
*/
|
|
11
|
+
export declare class RuleManager implements RuleManagerInterface {
|
|
12
|
+
private _comparisonProcessor;
|
|
13
|
+
private readonly _negation;
|
|
14
|
+
private readonly _keys_case_sensitive;
|
|
15
|
+
private _loggerManager;
|
|
16
|
+
/**
|
|
17
|
+
* @param {Config=} config
|
|
18
|
+
* @param {Object=} dependencies
|
|
19
|
+
* @param {LogManagerInterface=} dependencies.loggerManager
|
|
20
|
+
*/
|
|
21
|
+
constructor(config?: Config, { loggerManager }?: {
|
|
22
|
+
loggerManager?: LogManagerInterface;
|
|
23
|
+
});
|
|
24
|
+
/**
|
|
25
|
+
* Setter for comparison processor
|
|
26
|
+
* @param {Record<string, any>} comparisonProcessor
|
|
27
|
+
*/
|
|
28
|
+
set comparisonProcessor(comparisonProcessor: Record<string, any>);
|
|
29
|
+
/**
|
|
30
|
+
* Getter for comparison processor
|
|
31
|
+
*/
|
|
32
|
+
get comparisonProcessor(): Record<string, any>;
|
|
33
|
+
/**
|
|
34
|
+
* Retrieve comparison methods from comparison processor
|
|
35
|
+
* @return {Array<string>} List of methods of comparison processor
|
|
36
|
+
*/
|
|
37
|
+
getComparisonProcessorMethods(): Array<string>;
|
|
38
|
+
/**
|
|
39
|
+
* Check input data matching to rule set
|
|
40
|
+
* @param {Record<string, any>} data Single value or key-value data set to compare
|
|
41
|
+
* @param {RuleSet} ruleSet
|
|
42
|
+
* @return {boolean | RuleError}
|
|
43
|
+
*/
|
|
44
|
+
isRuleMatched(data: Record<string, any>, ruleSet: RuleSet, logEntry?: string): boolean | RuleError;
|
|
45
|
+
/**
|
|
46
|
+
* Check is rule object valid
|
|
47
|
+
* @param {Rule} rule
|
|
48
|
+
* @return {boolean}
|
|
49
|
+
*/
|
|
50
|
+
isValidRule(rule: Rule): boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Process AND block of rule set. Return first false if found
|
|
53
|
+
* @param {Record<string, any>} data Single value or key-value data set to compare
|
|
54
|
+
* @param {RuleAnd} rulesSubset
|
|
55
|
+
* @return {boolean | RuleError}
|
|
56
|
+
* @private
|
|
57
|
+
*/
|
|
58
|
+
private _processAND;
|
|
59
|
+
/**
|
|
60
|
+
* Process OR block of rule set. Return first true if found
|
|
61
|
+
* @param {Record<string, any>} data Single value or key-value data set to compare
|
|
62
|
+
* @param {RuleOrWhen} rulesSubset
|
|
63
|
+
* @return {boolean | RuleError}
|
|
64
|
+
* @private
|
|
65
|
+
*/
|
|
66
|
+
private _processORWHEN;
|
|
67
|
+
/**
|
|
68
|
+
* Process single rule item
|
|
69
|
+
* @param {Record<string, any>} data Single value or key-value data set to compare
|
|
70
|
+
* @param {Rule} rule A single rule to compare
|
|
71
|
+
* @return {boolean | RuleError} Comparison result
|
|
72
|
+
* @private
|
|
73
|
+
*/
|
|
74
|
+
private _processRuleItem;
|
|
75
|
+
}
|