@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,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,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 { Id } from '../Id';
8
+ export type BucketingEvent = {
9
+ experienceId: Id;
10
+ variationId: Id;
11
+ };
@@ -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,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 { LogManager } from './src/log-manager';
8
+ export { LogManagerInterface } from './src/interfaces/log-manager';
@@ -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
+ }
@@ -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,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
+ }