@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.
Files changed (159) hide show
  1. package/LICENSE.txt +202 -0
  2. package/lib/enums/index.d.ts +29 -0
  3. package/lib/enums/src/audience-type.d.ts +11 -0
  4. package/lib/enums/src/data-enitites.d.ts +7 -0
  5. package/lib/enums/src/dictionary.d.ts +60 -0
  6. package/lib/enums/src/do-not-track.d.ts +12 -0
  7. package/lib/enums/src/event-type.d.ts +10 -0
  8. package/lib/enums/src/experience-type.d.ts +16 -0
  9. package/lib/enums/src/feature-status.d.ts +10 -0
  10. package/lib/enums/src/ga-type.d.ts +10 -0
  11. package/lib/enums/src/goal-data-key.d.ts +11 -0
  12. package/lib/enums/src/goal-type.d.ts +22 -0
  13. package/lib/enums/src/integration-provider.d.ts +27 -0
  14. package/lib/enums/src/log-level.d.ts +14 -0
  15. package/lib/enums/src/log-method.d.ts +14 -0
  16. package/lib/enums/src/project-type.d.ts +10 -0
  17. package/lib/enums/src/rule-error.d.ts +10 -0
  18. package/lib/enums/src/segments/browser-type.d.ts +17 -0
  19. package/lib/enums/src/segments/device-type.d.ts +16 -0
  20. package/lib/enums/src/segments/segments-keys.d.ts +15 -0
  21. package/lib/enums/src/segments/source-type.d.ts +12 -0
  22. package/lib/enums/src/segments/visitor-type.d.ts +10 -0
  23. package/lib/enums/src/system-events.d.ts +22 -0
  24. package/lib/enums/src/variable-types.d.ts +7 -0
  25. package/lib/enums/src/variation-change-type.d.ts +14 -0
  26. package/lib/index.js +227 -0
  27. package/lib/index.js.map +1 -0
  28. package/lib/index.min.js +2 -0
  29. package/lib/index.min.js.map +1 -0
  30. package/lib/index.min.mjs +1 -0
  31. package/lib/index.min.mjs.map +1 -0
  32. package/lib/index.mjs +227 -0
  33. package/lib/index.mjs.map +1 -0
  34. package/lib/legacy/enums/index.d.ts +29 -0
  35. package/lib/legacy/enums/src/audience-type.d.ts +11 -0
  36. package/lib/legacy/enums/src/data-enitites.d.ts +7 -0
  37. package/lib/legacy/enums/src/dictionary.d.ts +60 -0
  38. package/lib/legacy/enums/src/do-not-track.d.ts +12 -0
  39. package/lib/legacy/enums/src/event-type.d.ts +10 -0
  40. package/lib/legacy/enums/src/experience-type.d.ts +16 -0
  41. package/lib/legacy/enums/src/feature-status.d.ts +10 -0
  42. package/lib/legacy/enums/src/ga-type.d.ts +10 -0
  43. package/lib/legacy/enums/src/goal-data-key.d.ts +11 -0
  44. package/lib/legacy/enums/src/goal-type.d.ts +22 -0
  45. package/lib/legacy/enums/src/integration-provider.d.ts +27 -0
  46. package/lib/legacy/enums/src/log-level.d.ts +14 -0
  47. package/lib/legacy/enums/src/log-method.d.ts +14 -0
  48. package/lib/legacy/enums/src/project-type.d.ts +10 -0
  49. package/lib/legacy/enums/src/rule-error.d.ts +10 -0
  50. package/lib/legacy/enums/src/segments/browser-type.d.ts +17 -0
  51. package/lib/legacy/enums/src/segments/device-type.d.ts +16 -0
  52. package/lib/legacy/enums/src/segments/segments-keys.d.ts +15 -0
  53. package/lib/legacy/enums/src/segments/source-type.d.ts +12 -0
  54. package/lib/legacy/enums/src/segments/visitor-type.d.ts +10 -0
  55. package/lib/legacy/enums/src/system-events.d.ts +22 -0
  56. package/lib/legacy/enums/src/variable-types.d.ts +7 -0
  57. package/lib/legacy/enums/src/variation-change-type.d.ts +14 -0
  58. package/lib/legacy/index.js +291 -0
  59. package/lib/legacy/index.js.map +1 -0
  60. package/lib/legacy/index.min.js +8 -0
  61. package/lib/legacy/index.min.js.map +1 -0
  62. package/lib/legacy/logger/index.d.ts +8 -0
  63. package/lib/legacy/logger/src/interfaces/log-client.d.ts +13 -0
  64. package/lib/legacy/logger/src/interfaces/log-manager.d.ts +18 -0
  65. package/lib/legacy/logger/src/interfaces/log-method-map.d.ts +15 -0
  66. package/lib/legacy/logger/src/log-manager.d.ts +64 -0
  67. package/lib/legacy/rules/index.d.ts +8 -0
  68. package/lib/legacy/rules/src/interfaces/rule-manager.d.ts +14 -0
  69. package/lib/legacy/rules/src/rule-manager.d.ts +75 -0
  70. package/lib/legacy/types/index.d.ts +36 -0
  71. package/lib/legacy/types/src/Audience.d.ts +16 -0
  72. package/lib/legacy/types/src/BucketedFeature.d.ts +30 -0
  73. package/lib/legacy/types/src/BucketedVariation.d.ts +13 -0
  74. package/lib/legacy/types/src/BucketingAttributes.d.ts +13 -0
  75. package/lib/legacy/types/src/Config.d.ts +62 -0
  76. package/lib/legacy/types/src/ConversionAttributes.d.ts +11 -0
  77. package/lib/legacy/types/src/Entity.d.ts +13 -0
  78. package/lib/legacy/types/src/Experience.d.ts +37 -0
  79. package/lib/legacy/types/src/Feature.d.ts +18 -0
  80. package/lib/legacy/types/src/Goal.d.ts +30 -0
  81. package/lib/legacy/types/src/Id.d.ts +10 -0
  82. package/lib/{index.d.ts → legacy/types/src/IndentityField.d.ts} +2 -1
  83. package/lib/legacy/types/src/Integration.d.ts +16 -0
  84. package/lib/legacy/types/src/Location.d.ts +14 -0
  85. package/lib/legacy/types/src/Path.d.ts +10 -0
  86. package/lib/legacy/types/src/Project.d.ts +37 -0
  87. package/lib/legacy/types/src/RequireAtLeastOne.d.ts +3 -0
  88. package/lib/legacy/types/src/Rule.d.ts +24 -0
  89. package/lib/legacy/types/src/Segments.d.ts +14 -0
  90. package/lib/legacy/types/src/SegmentsAttributes.d.ts +9 -0
  91. package/lib/legacy/types/src/SegmentsData.d.ts +16 -0
  92. package/lib/legacy/types/src/StoreData.d.ts +14 -0
  93. package/lib/legacy/types/src/TrackingEvent.d.ts +14 -0
  94. package/lib/legacy/types/src/VariableType.d.ts +8 -0
  95. package/lib/legacy/types/src/Variation.d.ts +49 -0
  96. package/lib/legacy/types/src/VisitorsQueue.d.ts +16 -0
  97. package/lib/legacy/types/src/tracking/BucketingEvent.d.ts +11 -0
  98. package/lib/legacy/types/src/tracking/ConversionEvent.d.ts +16 -0
  99. package/lib/legacy/types/src/tracking/Visitor.d.ts +14 -0
  100. package/lib/legacy/types/src/tracking/VisitorEvent.d.ts +13 -0
  101. package/lib/legacy/utils/index.d.ts +14 -0
  102. package/lib/legacy/utils/src/array-utils.d.ts +11 -0
  103. package/lib/legacy/utils/src/comparisons.d.ts +22 -0
  104. package/lib/legacy/utils/src/data-store.d.ts +39 -0
  105. package/lib/legacy/utils/src/file-logger.d.ts +40 -0
  106. package/lib/legacy/utils/src/http-client.d.ts +102 -0
  107. package/lib/legacy/utils/src/object-utils.d.ts +28 -0
  108. package/lib/legacy/utils/src/string-utils.d.ts +20 -0
  109. package/lib/legacy/utils/src/types-utils.d.ts +12 -0
  110. package/lib/logger/index.d.ts +8 -0
  111. package/lib/logger/src/interfaces/log-client.d.ts +13 -0
  112. package/lib/logger/src/interfaces/log-manager.d.ts +18 -0
  113. package/lib/logger/src/interfaces/log-method-map.d.ts +15 -0
  114. package/lib/logger/src/log-manager.d.ts +64 -0
  115. package/lib/package.json +18 -0
  116. package/lib/rules/index.d.ts +8 -0
  117. package/lib/rules/src/interfaces/rule-manager.d.ts +14 -0
  118. package/lib/rules/src/rule-manager.d.ts +75 -0
  119. package/lib/types/index.d.ts +36 -0
  120. package/lib/types/src/Audience.d.ts +16 -0
  121. package/lib/types/src/BucketedFeature.d.ts +30 -0
  122. package/lib/types/src/BucketedVariation.d.ts +13 -0
  123. package/lib/types/src/BucketingAttributes.d.ts +13 -0
  124. package/lib/types/src/Config.d.ts +62 -0
  125. package/lib/types/src/ConversionAttributes.d.ts +11 -0
  126. package/lib/types/src/Entity.d.ts +13 -0
  127. package/lib/types/src/Experience.d.ts +37 -0
  128. package/lib/types/src/Feature.d.ts +18 -0
  129. package/lib/types/src/Goal.d.ts +30 -0
  130. package/lib/types/src/Id.d.ts +10 -0
  131. package/lib/types/src/IndentityField.d.ts +7 -0
  132. package/lib/types/src/Integration.d.ts +16 -0
  133. package/lib/types/src/Location.d.ts +14 -0
  134. package/lib/types/src/Path.d.ts +10 -0
  135. package/lib/types/src/Project.d.ts +37 -0
  136. package/lib/types/src/RequireAtLeastOne.d.ts +3 -0
  137. package/lib/types/src/Rule.d.ts +24 -0
  138. package/lib/types/src/Segments.d.ts +14 -0
  139. package/lib/types/src/SegmentsAttributes.d.ts +9 -0
  140. package/lib/types/src/SegmentsData.d.ts +16 -0
  141. package/lib/types/src/StoreData.d.ts +14 -0
  142. package/lib/types/src/TrackingEvent.d.ts +14 -0
  143. package/lib/types/src/VariableType.d.ts +8 -0
  144. package/lib/types/src/Variation.d.ts +49 -0
  145. package/lib/types/src/VisitorsQueue.d.ts +16 -0
  146. package/lib/types/src/tracking/BucketingEvent.d.ts +11 -0
  147. package/lib/types/src/tracking/ConversionEvent.d.ts +16 -0
  148. package/lib/types/src/tracking/Visitor.d.ts +14 -0
  149. package/lib/types/src/tracking/VisitorEvent.d.ts +13 -0
  150. package/lib/utils/index.d.ts +14 -0
  151. package/lib/utils/src/array-utils.d.ts +11 -0
  152. package/lib/utils/src/comparisons.d.ts +22 -0
  153. package/lib/utils/src/data-store.d.ts +39 -0
  154. package/lib/utils/src/file-logger.d.ts +40 -0
  155. package/lib/utils/src/http-client.d.ts +102 -0
  156. package/lib/utils/src/object-utils.d.ts +28 -0
  157. package/lib/utils/src/string-utils.d.ts +20 -0
  158. package/lib/utils/src/types-utils.d.ts +12 -0
  159. package/package.json +60 -1
@@ -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
+ }
@@ -0,0 +1,8 @@
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 { RuleManager } from './src/rule-manager';
8
+ export { RuleManagerInterface } from './src/interfaces/rule-manager';
@@ -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
+ }
@@ -0,0 +1,36 @@
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/Audience';
8
+ export * from './src/BucketedFeature';
9
+ export * from './src/BucketedVariation';
10
+ export * from './src/BucketingAttributes';
11
+ export * from './src/Config';
12
+ export * from './src/ConversionAttributes';
13
+ export * from './src/Entity';
14
+ export * from './src/Experience';
15
+ export * from './src/Feature';
16
+ export * from './src/Goal';
17
+ export * from './src/Id';
18
+ export * from './src/IndentityField';
19
+ export * from './src/Integration';
20
+ export * from './src/Location';
21
+ export * from './src/Path';
22
+ export * from './src/Project';
23
+ export * from './src/RequireAtLeastOne';
24
+ export * from './src/Rule';
25
+ export * from './src/Segments';
26
+ export * from './src/SegmentsAttributes';
27
+ export * from './src/SegmentsData';
28
+ export * from './src/StoreData';
29
+ export * from './src/TrackingEvent';
30
+ export * from './src/VariableType';
31
+ export * from './src/Variation';
32
+ export * from './src/VisitorsQueue';
33
+ export * from './src/tracking/BucketingEvent';
34
+ export * from './src/tracking/ConversionEvent';
35
+ export * from './src/tracking/Visitor';
36
+ export * from './src/tracking/VisitorEvent';
@@ -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 { AudienceType } from '@convertcom/js-sdk-enums';
8
+ import { RuleSet } from './Rule';
9
+ import { Id } from './Id';
10
+ export type Audience = {
11
+ id: Id;
12
+ name: string;
13
+ key: string;
14
+ rules: RuleSet;
15
+ type: AudienceType;
16
+ };
@@ -0,0 +1,30 @@
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 { FeatureStatus } from '@convertcom/js-sdk-enums';
9
+ import { RequireAtLeastOne } from './RequireAtLeastOne';
10
+ type NotEnabledFeature = RequireAtLeastOne<{
11
+ experienceId?: Id;
12
+ experienceKey?: string;
13
+ experienceName?: string;
14
+ id?: Id;
15
+ key?: string;
16
+ name?: string;
17
+ status: FeatureStatus.DISABLED;
18
+ variables?: Record<string, any>;
19
+ }, 'id' | 'key'>;
20
+ export type BucketedFeature = {
21
+ experienceId?: Id;
22
+ experienceKey?: string;
23
+ experienceName?: string;
24
+ id?: Id;
25
+ key?: string;
26
+ name?: string;
27
+ status: FeatureStatus;
28
+ variables?: Record<string, any>;
29
+ } | NotEnabledFeature;
30
+ export {};
@@ -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 { Id } from './Id';
8
+ import { Variation } from './Variation';
9
+ export type BucketedVariation = Variation & {
10
+ experienceId?: Id;
11
+ experienceKey?: string;
12
+ experienceName?: string;
13
+ };
@@ -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
+ export type BucketingAttributes = {
8
+ environment?: string;
9
+ locationProperties?: Record<any, any>;
10
+ visitorProperties?: Record<any, any>;
11
+ typeCasting?: boolean;
12
+ experienceKeys?: Array<string>;
13
+ };
@@ -0,0 +1,62 @@
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 { Experience } from './Experience';
8
+ import { Feature } from './Feature';
9
+ import { Id } from './Id';
10
+ import { Project } from './Project';
11
+ import { Goal } from './Goal';
12
+ import { Audience } from './Audience';
13
+ import { Location } from './Location';
14
+ import { LogLevel } from '@convertcom/js-sdk-enums';
15
+ import { Segments } from './Segments';
16
+ export type ConfigData = {
17
+ account_id: Id;
18
+ project: Project;
19
+ goals?: Array<Goal>;
20
+ locations?: Array<Location>;
21
+ audiences?: Array<Audience>;
22
+ experiences?: Array<Experience>;
23
+ archived_experiences?: Array<Id>;
24
+ features?: Array<Feature>;
25
+ segments?: Array<Segments>;
26
+ };
27
+ export type Config = {
28
+ environment: string;
29
+ api?: {
30
+ endpoint?: {
31
+ config?: string;
32
+ track?: string;
33
+ };
34
+ };
35
+ bucketing?: {
36
+ hash_seed?: number;
37
+ max_traffic?: number;
38
+ };
39
+ data: ConfigData;
40
+ dataStore?: object;
41
+ dataRefreshInterval?: number;
42
+ tracking?: boolean;
43
+ events?: {
44
+ batch_size?: number;
45
+ release_interval?: number;
46
+ };
47
+ rules?: {
48
+ comparisonProcessor?: Record<string, any>;
49
+ negation?: string;
50
+ keys_case_sensitive?: boolean;
51
+ };
52
+ sdkKey: string;
53
+ logger?: {
54
+ logLevel?: LogLevel;
55
+ file?: {
56
+ enabled?: boolean;
57
+ path?: string;
58
+ logLevel?: LogLevel;
59
+ };
60
+ customLoggers: Array<Record<string, any>>;
61
+ };
62
+ };
@@ -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
+ import { GoalDataKey } from '@convertcom/js-sdk-enums';
8
+ export type ConversionAttributes = {
9
+ ruleData?: Record<string, any>;
10
+ conversionData?: Array<Record<GoalDataKey, number>>;
11
+ };
@@ -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 { Experience } from './Experience';
8
+ import { Feature } from './Feature';
9
+ import { Audience } from './Audience';
10
+ import { Location } from './Location';
11
+ import { Segments } from './Segments';
12
+ import { Goal } from './Goal';
13
+ export type Entity = Experience | Feature | Audience | Location | Segments | Goal;
@@ -0,0 +1,37 @@
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 { ExperienceType } from '@convertcom/js-sdk-enums';
8
+ import { Id } from './Id';
9
+ import { RuleSet } from './Rule';
10
+ import { Variation } from './Variation';
11
+ import { Integration } from './Integration';
12
+ export type MultipagePages = {
13
+ id: Id;
14
+ url: string;
15
+ };
16
+ export type Experience = {
17
+ id: Id;
18
+ name: string;
19
+ key: string;
20
+ site_area?: RuleSet;
21
+ locations?: Array<Id>;
22
+ audiences?: Array<Id>;
23
+ goals?: Array<Id>;
24
+ type: ExperienceType;
25
+ version: number;
26
+ url: string;
27
+ global_js?: string;
28
+ global_css?: string;
29
+ multipage_pages?: Array<MultipagePages>;
30
+ variations: Array<Variation>;
31
+ environments: Array<string>;
32
+ settings?: {
33
+ min_order_value?: number;
34
+ max_order_value?: number;
35
+ };
36
+ integrations?: Array<Integration>;
37
+ };
@@ -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 { Id } from './Id';
8
+ import { VariableType } from './VariableType';
9
+ export type FeatureVariableDefinition = {
10
+ key: string;
11
+ type?: VariableType;
12
+ };
13
+ export type Feature = {
14
+ id: Id;
15
+ name: string;
16
+ key: string;
17
+ variables: Array<FeatureVariableDefinition>;
18
+ };
@@ -0,0 +1,30 @@
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 { RuleSet } from './Rule';
8
+ import { Id } from './Id';
9
+ import { GoalType, GoalRevenueTriggeringType } from '@convertcom/js-sdk-enums';
10
+ export type GoalTrackedItem = {
11
+ event: string;
12
+ selector: string;
13
+ };
14
+ export type GoalSettings = {
15
+ percentage?: number;
16
+ tracked_items?: Array<GoalTrackedItem>;
17
+ triggering_type?: GoalRevenueTriggeringType;
18
+ selector?: string;
19
+ href?: string;
20
+ action?: string;
21
+ ga_event?: string;
22
+ };
23
+ export type Goal = {
24
+ id: Id;
25
+ rules?: RuleSet;
26
+ type: GoalType;
27
+ settings?: GoalSettings;
28
+ name: string;
29
+ key: string;
30
+ };
@@ -0,0 +1,10 @@
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
+ * A type which describes identification. String or number
9
+ */
10
+ export type Id = string | number;
@@ -1,6 +1,7 @@
1
1
  /*!
2
- * Convert JS SDK test
2
+ * Convert JS SDK
3
3
  * Version 1.0.0
4
4
  * Copyright(c) 2020 Convert Insights, Inc
5
5
  * License Apache-2.0
6
6
  */
7
+ export type IdentityField = 'id' | 'key';
@@ -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 { GoogleAnalyticsType, IntegrationProvider } from '@convertcom/js-sdk-enums';
8
+ export type Integration = {
9
+ provider: IntegrationProvider;
10
+ enabled?: boolean;
11
+ custom_dimension?: string;
12
+ type?: GoogleAnalyticsType;
13
+ measurementId?: string;
14
+ property_UA?: string;
15
+ evar?: string;
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 { RuleSet } from './Rule';
8
+ import { Id } from './Id';
9
+ export type Location = {
10
+ id: Id;
11
+ name: string;
12
+ key: string;
13
+ rules: RuleSet;
14
+ };
@@ -0,0 +1,10 @@
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 Path = {
8
+ base: string;
9
+ route: string;
10
+ };
@@ -0,0 +1,37 @@
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 { DoNotTrack, GoogleAnalyticsType, ProjectType } from '@convertcom/js-sdk-enums';
9
+ export type Project = {
10
+ id: Id;
11
+ name: string;
12
+ type: ProjectType;
13
+ environments: Record<string, string>;
14
+ utc_offset: number;
15
+ domains: Array<Record<string, any>>;
16
+ global_javascript?: string | ((...args: any) => any | undefined);
17
+ settings: {
18
+ auto_link: boolean;
19
+ data_anonymization: boolean;
20
+ do_not_track: DoNotTrack;
21
+ include_jquery: boolean;
22
+ min_order_value?: number;
23
+ max_order_value?: number;
24
+ integrations?: {
25
+ google_analytics?: {
26
+ enabled: boolean;
27
+ type: GoogleAnalyticsType;
28
+ measurementId?: string;
29
+ property_UA?: string;
30
+ auto_revenue_tracking: boolean;
31
+ };
32
+ kissmetrics?: {
33
+ enabled: boolean;
34
+ };
35
+ };
36
+ };
37
+ };
@@ -0,0 +1,3 @@
1
+ export type RequireAtLeastOne<T, Keys extends keyof T = keyof T> = Pick<T, Exclude<keyof T, Keys>> & {
2
+ [K in Keys]-?: Required<Pick<T, K>> & Partial<Pick<T, Exclude<Keys, K>>>;
3
+ }[Keys];
@@ -0,0 +1,24 @@
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 Rule = {
8
+ rule_type?: string;
9
+ key?: string;
10
+ matching: {
11
+ match_type: string;
12
+ negated?: boolean;
13
+ };
14
+ value: string | number | boolean | ((...args: any) => any | undefined);
15
+ };
16
+ export type RuleOrWhen = {
17
+ OR_WHEN: Array<Rule>;
18
+ };
19
+ export type RuleAnd = {
20
+ AND: Array<RuleOrWhen>;
21
+ };
22
+ export type RuleSet = {
23
+ OR: Array<RuleAnd>;
24
+ };
@@ -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 { RuleSet } from './Rule';
8
+ import { Id } from './Id';
9
+ export type Segments = {
10
+ id: Id;
11
+ rules: RuleSet;
12
+ name: string;
13
+ key: string;
14
+ };
@@ -0,0 +1,9 @@
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 SegmentsAttributes = {
8
+ ruleData?: Record<string, any>;
9
+ };
@@ -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 { BrowserType, DeviceType, SegmentsKeys, SourceType, VisitorType } from '@convertcom/js-sdk-enums';
8
+ export type SegmentsData = {
9
+ [SegmentsKeys.COUNTRY]?: string;
10
+ [SegmentsKeys.BROWSER]?: BrowserType;
11
+ [SegmentsKeys.DEVICES]?: Array<DeviceType>;
12
+ [SegmentsKeys.SOURCE]?: SourceType;
13
+ [SegmentsKeys.CAMPAIGN]?: string;
14
+ [SegmentsKeys.VISITOR_TYPE]?: VisitorType;
15
+ [SegmentsKeys.CUSTOM_SEGMENTS]?: Array<string>;
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
+ export type StoreData = {
10
+ bucketing?: Record<string, Id>;
11
+ locations?: Array<Id>;
12
+ segments?: SegmentsData;
13
+ goals?: Record<string, boolean>;
14
+ };
@@ -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 { Visitor } from './tracking/Visitor';
9
+ export type TrackingEvent = {
10
+ accountId?: Id;
11
+ projectId?: Id;
12
+ enrichData?: boolean;
13
+ visitors: Array<Visitor>;
14
+ };
@@ -0,0 +1,8 @@
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 { VARIABLE_TYPES } from '@convertcom/js-sdk-enums';
8
+ export type VariableType = (typeof VARIABLE_TYPES)[number];