rudder-sdk-js 2.32.0 → 2.33.0
Sign up to get free protection for your applications and to get access to all the features.
- package/CHANGELOG.md +26 -0
- package/index.d.ts +1 -0
- package/index.es.js +1 -1
- package/index.js +1 -1
- package/package.json +15 -4
- package/service-worker/index.d.ts +19 -0
- package/service-worker/index.es.js +16 -17
- package/service-worker/index.js +16 -17
package/package.json
CHANGED
@@ -1,13 +1,24 @@
|
|
1
1
|
{
|
2
2
|
"name": "rudder-sdk-js",
|
3
|
-
"version": "2.
|
3
|
+
"version": "2.33.0",
|
4
4
|
"description": "RudderStack Javascript SDK",
|
5
5
|
"main": "index.js",
|
6
6
|
"module": "index.es.js",
|
7
7
|
"exports": {
|
8
|
-
".":
|
9
|
-
|
10
|
-
|
8
|
+
".": {
|
9
|
+
"types": "./index.d.ts",
|
10
|
+
"import": "./index.es.js",
|
11
|
+
"require": "./index.js"
|
12
|
+
},
|
13
|
+
"./service-worker": {
|
14
|
+
"types": "./service-worker/index.d.ts",
|
15
|
+
"import": "./service-worker/index.es.js",
|
16
|
+
"require": "./service-worker/index.js"
|
17
|
+
},
|
18
|
+
"./service-worker/index.es": {
|
19
|
+
"types": "./service-worker/index.d.ts",
|
20
|
+
"import": "./service-worker/index.es.js"
|
21
|
+
}
|
11
22
|
},
|
12
23
|
"typesVersions": {
|
13
24
|
"*": {
|
@@ -29,17 +29,36 @@ export interface integrationOptions {
|
|
29
29
|
[index: string]: boolean | apiObject | undefined;
|
30
30
|
}
|
31
31
|
|
32
|
+
/**
|
33
|
+
* Represents the first argument object for flushOverride method
|
34
|
+
*/
|
35
|
+
export type FlushOverrideMessage = {
|
36
|
+
host: string;
|
37
|
+
writeKey: string;
|
38
|
+
data: {
|
39
|
+
batch: Object[],
|
40
|
+
sentAt: string;
|
41
|
+
};
|
42
|
+
headers: Record<string, string>;
|
43
|
+
reqTimeout: number;
|
44
|
+
flush: (callback?: apiCallback) => void;
|
45
|
+
done: (error?: Error) => void;
|
46
|
+
isErrorRetryable: (error: Error) => boolean;
|
47
|
+
}
|
48
|
+
|
32
49
|
/**
|
33
50
|
* Represents the constructor options object
|
34
51
|
* Example usages:
|
35
52
|
* constructorOptions { flushAt: 20, "flushInterval": 20000, "enable": true, "maxInternalQueueSize":20000, "logLevel": "info"/"debug"/"error"/"silly"/"off"}
|
36
53
|
*/
|
37
54
|
export interface constructorOptions {
|
55
|
+
timeout?: number;
|
38
56
|
flushAt?: number;
|
39
57
|
flushInterval?: number;
|
40
58
|
enable?: boolean;
|
41
59
|
maxInternalQueueSize?: number;
|
42
60
|
logLevel?: 'silly' | 'debug' | 'info' | 'error' | 'off';
|
61
|
+
flushOverride?: (message: FlushOverrideMessage) => void;
|
43
62
|
}
|
44
63
|
|
45
64
|
/**
|
@@ -566,7 +566,7 @@ var platform = 'browser';
|
|
566
566
|
var browser = true;
|
567
567
|
var env = {};
|
568
568
|
var argv = [];
|
569
|
-
var version$
|
569
|
+
var version$1 = ''; // empty string to avoid regexp issues
|
570
570
|
var versions = {};
|
571
571
|
var release = {};
|
572
572
|
var config = {};
|
@@ -630,7 +630,7 @@ var browser$1 = {
|
|
630
630
|
browser: browser,
|
631
631
|
env: env,
|
632
632
|
argv: argv,
|
633
|
-
version: version$
|
633
|
+
version: version$1,
|
634
634
|
versions: versions,
|
635
635
|
on: on,
|
636
636
|
addListener: addListener,
|
@@ -2802,7 +2802,7 @@ function formatValue(ctx, value, recurseTimes) {
|
|
2802
2802
|
// Check that value is an object with an inspect function on it
|
2803
2803
|
if (ctx.customInspect &&
|
2804
2804
|
value &&
|
2805
|
-
isFunction$
|
2805
|
+
isFunction$2(value.inspect) &&
|
2806
2806
|
// Filter out the util module, it's inspect function is special
|
2807
2807
|
value.inspect !== inspect$1 &&
|
2808
2808
|
// Also filter out any prototype objects using the circular check.
|
@@ -2837,7 +2837,7 @@ function formatValue(ctx, value, recurseTimes) {
|
|
2837
2837
|
|
2838
2838
|
// Some type of object without properties can be shortcutted.
|
2839
2839
|
if (keys.length === 0) {
|
2840
|
-
if (isFunction$
|
2840
|
+
if (isFunction$2(value)) {
|
2841
2841
|
var name = value.name ? ': ' + value.name : '';
|
2842
2842
|
return ctx.stylize('[Function' + name + ']', 'special');
|
2843
2843
|
}
|
@@ -2861,7 +2861,7 @@ function formatValue(ctx, value, recurseTimes) {
|
|
2861
2861
|
}
|
2862
2862
|
|
2863
2863
|
// Make functions say that they are functions
|
2864
|
-
if (isFunction$
|
2864
|
+
if (isFunction$2(value)) {
|
2865
2865
|
var n = value.name ? ': ' + value.name : '';
|
2866
2866
|
base = ' [Function' + n + ']';
|
2867
2867
|
}
|
@@ -3075,7 +3075,7 @@ function isError(e) {
|
|
3075
3075
|
(objectToString$1(e) === '[object Error]' || e instanceof Error);
|
3076
3076
|
}
|
3077
3077
|
|
3078
|
-
function isFunction$
|
3078
|
+
function isFunction$2(arg) {
|
3079
3079
|
return typeof arg === 'function';
|
3080
3080
|
}
|
3081
3081
|
|
@@ -3190,7 +3190,7 @@ function assert$1(value, message) {
|
|
3190
3190
|
var regex = /\s*function\s+([^\(\s]*)\s*/;
|
3191
3191
|
// based on https://github.com/ljharb/function.prototype.name/blob/adeeeec8bfcc6068b187d7d9fb3d5bb1d3a30899/implementation.js
|
3192
3192
|
function getName(func) {
|
3193
|
-
if (!isFunction$
|
3193
|
+
if (!isFunction$2(func)) {
|
3194
3194
|
return;
|
3195
3195
|
}
|
3196
3196
|
if (functionsHaveNames()) {
|
@@ -3248,7 +3248,7 @@ function truncate(s, n) {
|
|
3248
3248
|
}
|
3249
3249
|
}
|
3250
3250
|
function inspect(something) {
|
3251
|
-
if (functionsHaveNames() || !isFunction$
|
3251
|
+
if (functionsHaveNames() || !isFunction$2(something)) {
|
3252
3252
|
return inspect$1(something);
|
3253
3253
|
}
|
3254
3254
|
var rawname = getName(something);
|
@@ -3702,17 +3702,17 @@ return function(thing){var str=toString.call(thing);return cache[str]||(cache[st
|
|
3702
3702
|
*
|
3703
3703
|
* @param {Object} val The value to test
|
3704
3704
|
* @returns {boolean} True if value is a Function, otherwise false
|
3705
|
-
*/function isFunction(val){return toString.call(val)==='[object Function]';}/**
|
3705
|
+
*/function isFunction$1(val){return toString.call(val)==='[object Function]';}/**
|
3706
3706
|
* Determine if a value is a Stream
|
3707
3707
|
*
|
3708
3708
|
* @param {Object} val The value to test
|
3709
3709
|
* @returns {boolean} True if value is a Stream, otherwise false
|
3710
|
-
*/function isStream(val){return isObject(val)&&isFunction(val.pipe);}/**
|
3710
|
+
*/function isStream(val){return isObject(val)&&isFunction$1(val.pipe);}/**
|
3711
3711
|
* Determine if a value is a FormData
|
3712
3712
|
*
|
3713
3713
|
* @param {Object} thing The value to test
|
3714
3714
|
* @returns {boolean} True if value is an FormData, otherwise false
|
3715
|
-
*/function isFormData(thing){var pattern='[object FormData]';return thing&&(typeof FormData==='function'&&thing instanceof FormData||toString.call(thing)===pattern||isFunction(thing.toString)&&thing.toString()===pattern);}/**
|
3715
|
+
*/function isFormData(thing){var pattern='[object FormData]';return thing&&(typeof FormData==='function'&&thing instanceof FormData||toString.call(thing)===pattern||isFunction$1(thing.toString)&&thing.toString()===pattern);}/**
|
3716
3716
|
* Determine if a value is a URLSearchParams object
|
3717
3717
|
* @function
|
3718
3718
|
* @param {Object} val The value to test
|
@@ -3803,7 +3803,7 @@ for(var key in obj){if(Object.prototype.hasOwnProperty.call(obj,key)){fn.call(nu
|
|
3803
3803
|
* @returns {Array}
|
3804
3804
|
*/function toArray(thing){if(!thing)return null;var i=thing.length;if(isUndefined(i))return null;var arr=new Array(i);while(i-->0){arr[i]=thing[i];}return arr;}// eslint-disable-next-line func-names
|
3805
3805
|
var isTypedArray=function(TypedArray){// eslint-disable-next-line func-names
|
3806
|
-
return function(thing){return TypedArray&&thing instanceof TypedArray;};}(typeof Uint8Array!=='undefined'&&Object.getPrototypeOf(Uint8Array));var utils$9={isArray:isArray$1,isArrayBuffer:isArrayBuffer,isBuffer:isBuffer,isFormData:isFormData,isArrayBufferView:isArrayBufferView,isString:isString$1,isNumber:isNumber,isObject:isObject,isPlainObject:isPlainObject,isUndefined:isUndefined,isDate:isDate,isFile:isFile,isBlob:isBlob,isFunction:isFunction,isStream:isStream,isURLSearchParams:isURLSearchParams,isStandardBrowserEnv:isStandardBrowserEnv,forEach:forEach,merge:merge,extend:extend,trim:trim,stripBOM:stripBOM,inherits:inherits,toFlatObject:toFlatObject,kindOf:kindOf,kindOfTest:kindOfTest,endsWith:endsWith,toArray:toArray,isTypedArray:isTypedArray,isFileList:isFileList};
|
3806
|
+
return function(thing){return TypedArray&&thing instanceof TypedArray;};}(typeof Uint8Array!=='undefined'&&Object.getPrototypeOf(Uint8Array));var utils$9={isArray:isArray$1,isArrayBuffer:isArrayBuffer,isBuffer:isBuffer,isFormData:isFormData,isArrayBufferView:isArrayBufferView,isString:isString$1,isNumber:isNumber,isObject:isObject,isPlainObject:isPlainObject,isUndefined:isUndefined,isDate:isDate,isFile:isFile,isBlob:isBlob,isFunction:isFunction$1,isStream:isStream,isURLSearchParams:isURLSearchParams,isStandardBrowserEnv:isStandardBrowserEnv,forEach:forEach,merge:merge,extend:extend,trim:trim,stripBOM:stripBOM,inherits:inherits,toFlatObject:toFlatObject,kindOf:kindOf,kindOfTest:kindOfTest,endsWith:endsWith,toArray:toArray,isTypedArray:isTypedArray,isFileList:isFileList};
|
3807
3807
|
|
3808
3808
|
var utils$8=utils$9;function encode(val){return encodeURIComponent(val).replace(/%3A/gi,':').replace(/%24/g,'$').replace(/%2C/gi,',').replace(/%20/g,'+').replace(/%5B/gi,'[').replace(/%5D/gi,']');}/**
|
3809
3809
|
* Build a URL by appending params to the end
|
@@ -5229,9 +5229,7 @@ description:this.description,number:this.number,// Mozilla
|
|
5229
5229
|
fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,// Axios
|
5230
5230
|
config:this.config,code:this.code,status:this.response&&this.response.status?this.response.status:null};};return error;}
|
5231
5231
|
|
5232
|
-
var version
|
5233
|
-
|
5234
|
-
var version=version$1;var removeTrailingSlashes=function removeTrailingSlashes(inURL){return inURL&&inURL.endsWith('/')?inURL.replace(/\/+$/,''):inURL;};var setImmediate=browser$1.nextTick.bind(browser$1);var noop=function noop(){};var Analytics=/*#__PURE__*/function(){/**
|
5232
|
+
var version='2.33.0';var removeTrailingSlashes=function removeTrailingSlashes(inURL){return inURL&&inURL.endsWith('/')?inURL.replace(/\/+$/,''):inURL;};var isFunction=function isFunction(value){return typeof value==='function'&&Boolean(value.constructor&&value.call&&value.apply);};var setImmediate=browser$1.nextTick.bind(browser$1);var noop=function noop(){};var Analytics=/*#__PURE__*/function(){/**
|
5235
5233
|
* Initialize a new `Analytics` with your RudderStack source's `writeKey` and an
|
5236
5234
|
* optional dictionary of `options`.
|
5237
5235
|
*
|
@@ -5244,7 +5242,8 @@ var version=version$1;var removeTrailingSlashes=function removeTrailingSlashes(i
|
|
5244
5242
|
* @param {Number=20000} options.maxInternalQueueSize (default: 20000)
|
5245
5243
|
* @param {Number} options.timeout (default: false)
|
5246
5244
|
* @param {String=info} options.logLevel (default: info)
|
5247
|
-
|
5245
|
+
* @param {Function} options.flushOverride (optional)
|
5246
|
+
*/function Analytics(writeKey,dataPlaneURL,options){_classCallCheck(this,Analytics);options=options||{};if(!writeKey){throw new Error('You must pass your project\'s write key.');}if(!dataPlaneURL){throw new Error('You must pass our data plane url.');}this.queue=[];this.writeKey=writeKey;this.host=removeTrailingSlashes(dataPlaneURL);this.timeout=options.timeout||false;this.flushAt=Math.max(options.flushAt,1)||20;this.flushInterval=options.flushInterval||20000;this.maxInternalQueueSize=options.maxInternalQueueSize||20000;this.logLevel=options.logLevel||'info';this.flushOverride=options.flushOverride&&isFunction(options.flushOverride)?options.flushOverride:undefined;this.flushed=false;this.axiosInstance=axios.create({adapter:fetchAdapter});Object.defineProperty(this,'enable',{configurable:false,writable:false,enumerable:true,value:typeof options.enable==='boolean'?options.enable:true});this.logger={error:function error(message){if(this.logLevel!=='off'){var _console;for(var _len=arguments.length,args=new Array(_len>1?_len-1:0),_key=1;_key<_len;_key++){args[_key-1]=arguments[_key];}(_console=console).error.apply(_console,["".concat(new Date().toISOString()," [\"Rudder\"] error: ").concat(message)].concat(args));}},info:function info(message){if(['silly','debug','info'].includes(this.logLevel)){var _console2;for(var _len2=arguments.length,args=new Array(_len2>1?_len2-1:0),_key2=1;_key2<_len2;_key2++){args[_key2-1]=arguments[_key2];}(_console2=console).log.apply(_console2,["".concat(new Date().toISOString()," [\"Rudder\"] info: ").concat(message)].concat(args));}},debug:function debug(message){if(['silly','debug'].includes(this.logLevel)){var _console3;for(var _len3=arguments.length,args=new Array(_len3>1?_len3-1:0),_key3=1;_key3<_len3;_key3++){args[_key3-1]=arguments[_key3];}(_console3=console).debug.apply(_console3,["".concat(new Date().toISOString()," [\"Rudder\"] debug: ").concat(message)].concat(args));}},silly:function silly(message){if(['silly'].includes(this.logLevel)){var _console4;for(var _len4=arguments.length,args=new Array(_len4>1?_len4-1:0),_key4=1;_key4<_len4;_key4++){args[_key4-1]=arguments[_key4];}(_console4=console).info.apply(_console4,["".concat(new Date().toISOString()," [\"Rudder\"] silly: ").concat(message)].concat(args));}}};axiosRetry(this.axiosInstance,{retries:0});}_createClass(Analytics,[{key:"_validate",value:function _validate(message,type){try{looselyValidateEvent_1(message,type);}catch(e){if(e.message==='Your message must be < 32kb.'){this.logger.info('Your message must be < 32kb. This is currently surfaced as a warning. Please update your code',message);return;}throw e;}}/**
|
5248
5247
|
* Send an identify `message`.
|
5249
5248
|
*
|
5250
5249
|
* @param {Object} message
|
@@ -5338,7 +5337,7 @@ if(_typeof(item.message)==='object'){item.message.sentAt=new Date();}return item
|
|
5338
5337
|
// the User-Agent header (see https://fetch.spec.whatwg.org/#terminology-headers
|
5339
5338
|
// and https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/setRequestHeader),
|
5340
5339
|
// but browsers such as Chrome and Safari have not caught up.
|
5341
|
-
var headers={};if(typeof window==='undefined'){headers['user-agent']="analytics-service-worker/".concat(version);headers['Content-Type']="application/json";}var req={method:'POST',url:"".concat(this.host),auth:{username:this.writeKey},data:data,headers:headers};if(
|
5340
|
+
var headers={};if(typeof window==='undefined'){headers['user-agent']="analytics-service-worker/".concat(version);headers['Content-Type']="application/json";}var reqTimeout=typeof this.timeout==='string'?ms(this.timeout):this.timeout;if(this.flushOverride){this.flushOverride({host:"".concat(this.host),writeKey:this.writeKey,data:data,headers:headers,reqTimeout:reqTimeout,flush:this.flush.bind(this),done:done,isErrorRetryable:this._isErrorRetryable.bind(this)});}else {var req={method:'POST',url:"".concat(this.host),auth:{username:this.writeKey},data:data,headers:headers};if(reqTimeout){req.timeout=reqTimeout;}this.axiosInstance(_objectSpread2(_objectSpread2({},req),{},{'axios-retry':{retries:3,retryCondition:this._isErrorRetryable.bind(this),retryDelay:axiosRetry.exponentialDelay}})).then(function(response){_this.timer=setTimeout(_this.flush.bind(_this),_this.flushInterval);done();}).catch(function(err){console.log(err);_this.logger.error("got error while attempting send for 3 times, dropping ".concat(items.length," events"));_this.timer=setTimeout(_this.flush.bind(_this),_this.flushInterval);if(err.response){var error=new Error(err.response.statusText);return done(error);}done(err);});}}},{key:"_isErrorRetryable",value:function _isErrorRetryable(error){// Retry Network Errors.
|
5342
5341
|
if(axiosRetry.isNetworkError(error)){return true;}if(!error.response){// Cannot determine if the request can be retried
|
5343
5342
|
return false;}this.logger.error("error status: ".concat(error.response.status));// Retry Server Errors (5xx).
|
5344
5343
|
if(error.response.status>=500&&error.response.status<=599){return true;}// Retry if rate limited.
|
package/service-worker/index.js
CHANGED
@@ -572,7 +572,7 @@
|
|
572
572
|
var browser = true;
|
573
573
|
var env = {};
|
574
574
|
var argv = [];
|
575
|
-
var version$
|
575
|
+
var version$1 = ''; // empty string to avoid regexp issues
|
576
576
|
var versions = {};
|
577
577
|
var release = {};
|
578
578
|
var config = {};
|
@@ -636,7 +636,7 @@
|
|
636
636
|
browser: browser,
|
637
637
|
env: env,
|
638
638
|
argv: argv,
|
639
|
-
version: version$
|
639
|
+
version: version$1,
|
640
640
|
versions: versions,
|
641
641
|
on: on,
|
642
642
|
addListener: addListener,
|
@@ -2808,7 +2808,7 @@
|
|
2808
2808
|
// Check that value is an object with an inspect function on it
|
2809
2809
|
if (ctx.customInspect &&
|
2810
2810
|
value &&
|
2811
|
-
isFunction$
|
2811
|
+
isFunction$2(value.inspect) &&
|
2812
2812
|
// Filter out the util module, it's inspect function is special
|
2813
2813
|
value.inspect !== inspect$1 &&
|
2814
2814
|
// Also filter out any prototype objects using the circular check.
|
@@ -2843,7 +2843,7 @@
|
|
2843
2843
|
|
2844
2844
|
// Some type of object without properties can be shortcutted.
|
2845
2845
|
if (keys.length === 0) {
|
2846
|
-
if (isFunction$
|
2846
|
+
if (isFunction$2(value)) {
|
2847
2847
|
var name = value.name ? ': ' + value.name : '';
|
2848
2848
|
return ctx.stylize('[Function' + name + ']', 'special');
|
2849
2849
|
}
|
@@ -2867,7 +2867,7 @@
|
|
2867
2867
|
}
|
2868
2868
|
|
2869
2869
|
// Make functions say that they are functions
|
2870
|
-
if (isFunction$
|
2870
|
+
if (isFunction$2(value)) {
|
2871
2871
|
var n = value.name ? ': ' + value.name : '';
|
2872
2872
|
base = ' [Function' + n + ']';
|
2873
2873
|
}
|
@@ -3081,7 +3081,7 @@
|
|
3081
3081
|
(objectToString$1(e) === '[object Error]' || e instanceof Error);
|
3082
3082
|
}
|
3083
3083
|
|
3084
|
-
function isFunction$
|
3084
|
+
function isFunction$2(arg) {
|
3085
3085
|
return typeof arg === 'function';
|
3086
3086
|
}
|
3087
3087
|
|
@@ -3196,7 +3196,7 @@
|
|
3196
3196
|
var regex = /\s*function\s+([^\(\s]*)\s*/;
|
3197
3197
|
// based on https://github.com/ljharb/function.prototype.name/blob/adeeeec8bfcc6068b187d7d9fb3d5bb1d3a30899/implementation.js
|
3198
3198
|
function getName(func) {
|
3199
|
-
if (!isFunction$
|
3199
|
+
if (!isFunction$2(func)) {
|
3200
3200
|
return;
|
3201
3201
|
}
|
3202
3202
|
if (functionsHaveNames()) {
|
@@ -3254,7 +3254,7 @@
|
|
3254
3254
|
}
|
3255
3255
|
}
|
3256
3256
|
function inspect(something) {
|
3257
|
-
if (functionsHaveNames() || !isFunction$
|
3257
|
+
if (functionsHaveNames() || !isFunction$2(something)) {
|
3258
3258
|
return inspect$1(something);
|
3259
3259
|
}
|
3260
3260
|
var rawname = getName(something);
|
@@ -3708,17 +3708,17 @@
|
|
3708
3708
|
*
|
3709
3709
|
* @param {Object} val The value to test
|
3710
3710
|
* @returns {boolean} True if value is a Function, otherwise false
|
3711
|
-
*/function isFunction(val){return toString.call(val)==='[object Function]';}/**
|
3711
|
+
*/function isFunction$1(val){return toString.call(val)==='[object Function]';}/**
|
3712
3712
|
* Determine if a value is a Stream
|
3713
3713
|
*
|
3714
3714
|
* @param {Object} val The value to test
|
3715
3715
|
* @returns {boolean} True if value is a Stream, otherwise false
|
3716
|
-
*/function isStream(val){return isObject(val)&&isFunction(val.pipe);}/**
|
3716
|
+
*/function isStream(val){return isObject(val)&&isFunction$1(val.pipe);}/**
|
3717
3717
|
* Determine if a value is a FormData
|
3718
3718
|
*
|
3719
3719
|
* @param {Object} thing The value to test
|
3720
3720
|
* @returns {boolean} True if value is an FormData, otherwise false
|
3721
|
-
*/function isFormData(thing){var pattern='[object FormData]';return thing&&(typeof FormData==='function'&&thing instanceof FormData||toString.call(thing)===pattern||isFunction(thing.toString)&&thing.toString()===pattern);}/**
|
3721
|
+
*/function isFormData(thing){var pattern='[object FormData]';return thing&&(typeof FormData==='function'&&thing instanceof FormData||toString.call(thing)===pattern||isFunction$1(thing.toString)&&thing.toString()===pattern);}/**
|
3722
3722
|
* Determine if a value is a URLSearchParams object
|
3723
3723
|
* @function
|
3724
3724
|
* @param {Object} val The value to test
|
@@ -3809,7 +3809,7 @@
|
|
3809
3809
|
* @returns {Array}
|
3810
3810
|
*/function toArray(thing){if(!thing)return null;var i=thing.length;if(isUndefined(i))return null;var arr=new Array(i);while(i-->0){arr[i]=thing[i];}return arr;}// eslint-disable-next-line func-names
|
3811
3811
|
var isTypedArray=function(TypedArray){// eslint-disable-next-line func-names
|
3812
|
-
return function(thing){return TypedArray&&thing instanceof TypedArray;};}(typeof Uint8Array!=='undefined'&&Object.getPrototypeOf(Uint8Array));var utils$9={isArray:isArray$1,isArrayBuffer:isArrayBuffer,isBuffer:isBuffer,isFormData:isFormData,isArrayBufferView:isArrayBufferView,isString:isString$1,isNumber:isNumber,isObject:isObject,isPlainObject:isPlainObject,isUndefined:isUndefined,isDate:isDate,isFile:isFile,isBlob:isBlob,isFunction:isFunction,isStream:isStream,isURLSearchParams:isURLSearchParams,isStandardBrowserEnv:isStandardBrowserEnv,forEach:forEach,merge:merge,extend:extend,trim:trim,stripBOM:stripBOM,inherits:inherits,toFlatObject:toFlatObject,kindOf:kindOf,kindOfTest:kindOfTest,endsWith:endsWith,toArray:toArray,isTypedArray:isTypedArray,isFileList:isFileList};
|
3812
|
+
return function(thing){return TypedArray&&thing instanceof TypedArray;};}(typeof Uint8Array!=='undefined'&&Object.getPrototypeOf(Uint8Array));var utils$9={isArray:isArray$1,isArrayBuffer:isArrayBuffer,isBuffer:isBuffer,isFormData:isFormData,isArrayBufferView:isArrayBufferView,isString:isString$1,isNumber:isNumber,isObject:isObject,isPlainObject:isPlainObject,isUndefined:isUndefined,isDate:isDate,isFile:isFile,isBlob:isBlob,isFunction:isFunction$1,isStream:isStream,isURLSearchParams:isURLSearchParams,isStandardBrowserEnv:isStandardBrowserEnv,forEach:forEach,merge:merge,extend:extend,trim:trim,stripBOM:stripBOM,inherits:inherits,toFlatObject:toFlatObject,kindOf:kindOf,kindOfTest:kindOfTest,endsWith:endsWith,toArray:toArray,isTypedArray:isTypedArray,isFileList:isFileList};
|
3813
3813
|
|
3814
3814
|
var utils$8=utils$9;function encode(val){return encodeURIComponent(val).replace(/%3A/gi,':').replace(/%24/g,'$').replace(/%2C/gi,',').replace(/%20/g,'+').replace(/%5B/gi,'[').replace(/%5D/gi,']');}/**
|
3815
3815
|
* Build a URL by appending params to the end
|
@@ -5235,9 +5235,7 @@
|
|
5235
5235
|
fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,// Axios
|
5236
5236
|
config:this.config,code:this.code,status:this.response&&this.response.status?this.response.status:null};};return error;}
|
5237
5237
|
|
5238
|
-
var version
|
5239
|
-
|
5240
|
-
var version=version$1;var removeTrailingSlashes=function removeTrailingSlashes(inURL){return inURL&&inURL.endsWith('/')?inURL.replace(/\/+$/,''):inURL;};var setImmediate=browser$1.nextTick.bind(browser$1);var noop=function noop(){};var Analytics=/*#__PURE__*/function(){/**
|
5238
|
+
var version='2.33.0';var removeTrailingSlashes=function removeTrailingSlashes(inURL){return inURL&&inURL.endsWith('/')?inURL.replace(/\/+$/,''):inURL;};var isFunction=function isFunction(value){return typeof value==='function'&&Boolean(value.constructor&&value.call&&value.apply);};var setImmediate=browser$1.nextTick.bind(browser$1);var noop=function noop(){};var Analytics=/*#__PURE__*/function(){/**
|
5241
5239
|
* Initialize a new `Analytics` with your RudderStack source's `writeKey` and an
|
5242
5240
|
* optional dictionary of `options`.
|
5243
5241
|
*
|
@@ -5250,7 +5248,8 @@
|
|
5250
5248
|
* @param {Number=20000} options.maxInternalQueueSize (default: 20000)
|
5251
5249
|
* @param {Number} options.timeout (default: false)
|
5252
5250
|
* @param {String=info} options.logLevel (default: info)
|
5253
|
-
|
5251
|
+
* @param {Function} options.flushOverride (optional)
|
5252
|
+
*/function Analytics(writeKey,dataPlaneURL,options){_classCallCheck(this,Analytics);options=options||{};if(!writeKey){throw new Error('You must pass your project\'s write key.');}if(!dataPlaneURL){throw new Error('You must pass our data plane url.');}this.queue=[];this.writeKey=writeKey;this.host=removeTrailingSlashes(dataPlaneURL);this.timeout=options.timeout||false;this.flushAt=Math.max(options.flushAt,1)||20;this.flushInterval=options.flushInterval||20000;this.maxInternalQueueSize=options.maxInternalQueueSize||20000;this.logLevel=options.logLevel||'info';this.flushOverride=options.flushOverride&&isFunction(options.flushOverride)?options.flushOverride:undefined;this.flushed=false;this.axiosInstance=axios.create({adapter:fetchAdapter});Object.defineProperty(this,'enable',{configurable:false,writable:false,enumerable:true,value:typeof options.enable==='boolean'?options.enable:true});this.logger={error:function error(message){if(this.logLevel!=='off'){var _console;for(var _len=arguments.length,args=new Array(_len>1?_len-1:0),_key=1;_key<_len;_key++){args[_key-1]=arguments[_key];}(_console=console).error.apply(_console,["".concat(new Date().toISOString()," [\"Rudder\"] error: ").concat(message)].concat(args));}},info:function info(message){if(['silly','debug','info'].includes(this.logLevel)){var _console2;for(var _len2=arguments.length,args=new Array(_len2>1?_len2-1:0),_key2=1;_key2<_len2;_key2++){args[_key2-1]=arguments[_key2];}(_console2=console).log.apply(_console2,["".concat(new Date().toISOString()," [\"Rudder\"] info: ").concat(message)].concat(args));}},debug:function debug(message){if(['silly','debug'].includes(this.logLevel)){var _console3;for(var _len3=arguments.length,args=new Array(_len3>1?_len3-1:0),_key3=1;_key3<_len3;_key3++){args[_key3-1]=arguments[_key3];}(_console3=console).debug.apply(_console3,["".concat(new Date().toISOString()," [\"Rudder\"] debug: ").concat(message)].concat(args));}},silly:function silly(message){if(['silly'].includes(this.logLevel)){var _console4;for(var _len4=arguments.length,args=new Array(_len4>1?_len4-1:0),_key4=1;_key4<_len4;_key4++){args[_key4-1]=arguments[_key4];}(_console4=console).info.apply(_console4,["".concat(new Date().toISOString()," [\"Rudder\"] silly: ").concat(message)].concat(args));}}};axiosRetry(this.axiosInstance,{retries:0});}_createClass(Analytics,[{key:"_validate",value:function _validate(message,type){try{looselyValidateEvent_1(message,type);}catch(e){if(e.message==='Your message must be < 32kb.'){this.logger.info('Your message must be < 32kb. This is currently surfaced as a warning. Please update your code',message);return;}throw e;}}/**
|
5254
5253
|
* Send an identify `message`.
|
5255
5254
|
*
|
5256
5255
|
* @param {Object} message
|
@@ -5344,7 +5343,7 @@
|
|
5344
5343
|
// the User-Agent header (see https://fetch.spec.whatwg.org/#terminology-headers
|
5345
5344
|
// and https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/setRequestHeader),
|
5346
5345
|
// but browsers such as Chrome and Safari have not caught up.
|
5347
|
-
var headers={};if(typeof window==='undefined'){headers['user-agent']="analytics-service-worker/".concat(version);headers['Content-Type']="application/json";}var req={method:'POST',url:"".concat(this.host),auth:{username:this.writeKey},data:data,headers:headers};if(
|
5346
|
+
var headers={};if(typeof window==='undefined'){headers['user-agent']="analytics-service-worker/".concat(version);headers['Content-Type']="application/json";}var reqTimeout=typeof this.timeout==='string'?ms(this.timeout):this.timeout;if(this.flushOverride){this.flushOverride({host:"".concat(this.host),writeKey:this.writeKey,data:data,headers:headers,reqTimeout:reqTimeout,flush:this.flush.bind(this),done:done,isErrorRetryable:this._isErrorRetryable.bind(this)});}else {var req={method:'POST',url:"".concat(this.host),auth:{username:this.writeKey},data:data,headers:headers};if(reqTimeout){req.timeout=reqTimeout;}this.axiosInstance(_objectSpread2(_objectSpread2({},req),{},{'axios-retry':{retries:3,retryCondition:this._isErrorRetryable.bind(this),retryDelay:axiosRetry.exponentialDelay}})).then(function(response){_this.timer=setTimeout(_this.flush.bind(_this),_this.flushInterval);done();}).catch(function(err){console.log(err);_this.logger.error("got error while attempting send for 3 times, dropping ".concat(items.length," events"));_this.timer=setTimeout(_this.flush.bind(_this),_this.flushInterval);if(err.response){var error=new Error(err.response.statusText);return done(error);}done(err);});}}},{key:"_isErrorRetryable",value:function _isErrorRetryable(error){// Retry Network Errors.
|
5348
5347
|
if(axiosRetry.isNetworkError(error)){return true;}if(!error.response){// Cannot determine if the request can be retried
|
5349
5348
|
return false;}this.logger.error("error status: ".concat(error.response.status));// Retry Server Errors (5xx).
|
5350
5349
|
if(error.response.status>=500&&error.response.status<=599){return true;}// Retry if rate limited.
|