From 8b3569e1671a3bfed3fbc0e191ef77ae89dee6dd Mon Sep 17 00:00:00 2001 From: Emiliano Sanchez Date: Fri, 20 May 2022 12:26:28 -0300 Subject: [PATCH 1/4] fix typos --- package-lock.json | 14 +++++++------- package.json | 4 ++-- src/full/splitFactory.ts | 2 +- src/settings/defaults.ts | 2 +- src/splitFactory.ts | 2 +- types/splitio.d.ts | 8 ++++---- 6 files changed, 16 insertions(+), 16 deletions(-) diff --git a/package-lock.json b/package-lock.json index f2ed624..b0540bf 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "@splitsoftware/splitio-react-native", - "version": "0.3.0", + "version": "0.3.1-rc.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -3555,17 +3555,17 @@ } }, "@splitsoftware/splitio-commons": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@splitsoftware/splitio-commons/-/splitio-commons-1.3.0.tgz", - "integrity": "sha512-jwthiLCgN4DOiLjxn7RIGoEArTonpLUMcHgKMhka1rIzu9R8z+4qkvYPC+Eb5zLK/EIBViyf+sZJFUmBny3Ckw==", + "version": "1.3.2-rc.5", + "resolved": "https://registry.npmjs.org/@splitsoftware/splitio-commons/-/splitio-commons-1.3.2-rc.5.tgz", + "integrity": "sha512-43xcxlBv39fGle+fLTSV2/eZYVo6DC1LqXn7OUvEvuTbomihpauD+XjdlicG5U08Is/ncnj6eG1jCxjpKqal0g==", "requires": { "tslib": "^2.3.1" }, "dependencies": { "tslib": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz", - "integrity": "sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==" + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" } } }, diff --git a/package.json b/package.json index 2359463..88a0838 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@splitsoftware/splitio-react-native", - "version": "0.3.0", + "version": "0.3.1-rc.0", "description": "Split SDK for React Native", "main": "lib/commonjs/index.js", "module": "lib/module/index.js", @@ -54,7 +54,7 @@ }, "homepage": "https://github.com/splitio/react-native-client#readme", "dependencies": { - "@splitsoftware/splitio-commons": "1.3.0" + "@splitsoftware/splitio-commons": "1.3.2-rc.5" }, "devDependencies": { "@react-native-community/eslint-config": "^2.0.0", diff --git a/src/full/splitFactory.ts b/src/full/splitFactory.ts index a5d6f77..2e25db0 100644 --- a/src/full/splitFactory.ts +++ b/src/full/splitFactory.ts @@ -12,7 +12,7 @@ import type { ISdkFactoryParams } from '@splitsoftware/splitio-commons/src/sdkFa * caution since, unlike `config`, this param is not validated neither considered part of the public API. * @throws Will throw an error if the provided config is invalid. */ -export function SplitFactory(config: any, __updateModules: (modules: ISdkFactoryParams) => void) { +export function SplitFactory(config: any, __updateModules?: (modules: ISdkFactoryParams) => void) { const settings = settingsValidator(config); const modules = getModules(settings); if (__updateModules) __updateModules(modules); diff --git a/src/settings/defaults.ts b/src/settings/defaults.ts index bab6e9e..5b670d9 100644 --- a/src/settings/defaults.ts +++ b/src/settings/defaults.ts @@ -1,7 +1,7 @@ import { ConsentStatus } from '@splitsoftware/splitio-commons/src/types'; import { CONSENT_GRANTED } from '@splitsoftware/splitio-commons/src/utils/constants'; -const packageVersion = '0.3.0'; +const packageVersion = '0.3.1-rc.0'; export const defaults = { startup: { diff --git a/src/splitFactory.ts b/src/splitFactory.ts index fa4d022..260c1cf 100644 --- a/src/splitFactory.ts +++ b/src/splitFactory.ts @@ -12,7 +12,7 @@ import type { ISdkFactoryParams } from '@splitsoftware/splitio-commons/src/sdkFa * caution since, unlike `config`, this param is not validated neither considered part of the public API. * @throws Will throw an error if the provided config is invalid. */ -export function SplitFactory(config: any, __updateModules: (modules: ISdkFactoryParams) => void) { +export function SplitFactory(config: any, __updateModules?: (modules: ISdkFactoryParams) => void) { const settings = settingsValidator(config); const modules = getModules(settings); if (__updateModules) __updateModules(modules); diff --git a/types/splitio.d.ts b/types/splitio.d.ts index aa36500..7d40036 100644 --- a/types/splitio.d.ts +++ b/types/splitio.d.ts @@ -778,10 +778,10 @@ declare namespace SplitIO { integrations?: IntegrationFactory[], /** * User consent status. Possible values are `'GRANTED'`, which is the default, `'DECLINED'` or `'UNKNOWN'`. - * - `'GRANTED'`: the user has granted consent for tracking events and impressions. The SDK will send them to Split cloud. - * - `'DECLINED'`: the user has declined consent for tracking events and impressions. The SDK will not send them to Split cloud. - * - `'UNKNOWN'`: the user has neither granted nor declined consent for tracking events and impressions. The SDK will track them in its internal storage, and eventually send - * them or not if the consent status is updated to 'GRANTED' or 'DECLINED' respectively. The status can be updated at any time with the `setUserConsent` factory method. + * - `'GRANTED'`: the user grants consent for tracking events and impressions. The SDK sends them to Split cloud. + * - `'DECLINED'`: the user declines consent for tracking events and impressions. The SDK does not send them to Split cloud. + * - `'UNKNOWN'`: the user neither grants nor declines consent for tracking events and impressions. The SDK tracks them in its internal storage, and eventually either sends + * them or not if the consent status is updated to 'GRANTED' or 'DECLINED' respectively. The status can be updated at any time with the `UserConsent.setStatus` factory method. * * @typedef {string} userConsent * @default 'GRANTED' From 5fa65ed2c23cfc78d76394043127cea2323e893c Mon Sep 17 00:00:00 2001 From: Emiliano Sanchez Date: Fri, 20 May 2022 12:34:04 -0300 Subject: [PATCH 2/4] telemetry v2 support --- src/platform/getModules.ts | 2 ++ types/splitio.d.ts | 18 ++++++++++++++++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/platform/getModules.ts b/src/platform/getModules.ts index 816ba5f..9592eab 100644 --- a/src/platform/getModules.ts +++ b/src/platform/getModules.ts @@ -12,6 +12,7 @@ import { ISdkFactoryParams } from '@splitsoftware/splitio-commons/src/sdkFactory import { ISettings } from '@splitsoftware/splitio-commons/src/types'; import { LOCALHOST_MODE } from '@splitsoftware/splitio-commons/src/utils/constants'; import { createUserConsentAPI } from '@splitsoftware/splitio-commons/src/consent/sdkUserConsent'; +import { now } from '@splitsoftware/splitio-commons/src/utils/timeTracker/now/browser'; import { RNSignalListener } from './RNSignalListener'; import { getEventSource } from './getEventSource'; @@ -23,6 +24,7 @@ const platform = { }, EventEmitter, getEventSource, + now, }; const syncManagerOnlineCSFactory = syncManagerOnlineFactory(pollingManagerCSFactory, pushManagerFactory); diff --git a/types/splitio.d.ts b/types/splitio.d.ts index 7d40036..64998c4 100644 --- a/types/splitio.d.ts +++ b/types/splitio.d.ts @@ -51,6 +51,7 @@ interface ISettings { featuresRefreshRate: number, impressionsRefreshRate: number, impressionsQueueSize: number, + telemetryRefreshRate: number, segmentsRefreshRate: number, offlineRefreshRate: number, eventsPushRate: number, @@ -68,7 +69,8 @@ interface ISettings { events: string, sdk: string, auth: string, - streaming: string + streaming: string, + telemetry: string }, readonly integrations?: SplitIO.IntegrationFactory[], readonly debug: boolean | LogLevel | SplitIO.ILogger, @@ -593,7 +595,13 @@ declare namespace SplitIO { * @property {string} streaming * @default 'https://streaming.split.io' */ - streaming?: string + streaming?: string, + /** + * String property to override the base URL where the SDK will post telemetry data. + * @property {string} telemetry + * @default 'https://telemetry.split.io/api' + */ + telemetry?: string }; /** @@ -697,6 +705,12 @@ declare namespace SplitIO { * @default 30000 */ impressionsQueueSize?: number, + /** + * The SDK sends diagnostic metrics to Split servers. This parameters controls this metric flush period in seconds. + * @property {number} telemetryRefreshRate + * @default 3600 + */ + telemetryRefreshRate?: number, /** * The SDK polls Split servers for changes to segment definitions. This parameter controls this polling period in seconds. * @property {number} segmentsRefreshRate From c9e16b2677c1c898248e315f1e44fecdb0259577 Mon Sep 17 00:00:00 2001 From: Emiliano Sanchez Date: Fri, 20 May 2022 16:35:35 -0300 Subject: [PATCH 3/4] changelog --- CHANGES.txt | 5 +++++ package-lock.json | 14 +++++++------- package.json | 4 ++-- src/settings/defaults.ts | 2 +- 4 files changed, 15 insertions(+), 10 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index 5244d04..499d36e 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,3 +1,8 @@ +0.4.0 (May 23, 2022) + - Added `scheduler.telemetryRefreshRate` property to SDK configuration. + - Updated SDK telemetry storage, metrics and updater to be more effective and send less often. + - Bugfixing - Updated default values for `scheduler.impressionsRefreshRate` config parameter: 300s for OPTIMIZED impression mode and 60s for DEBUG impression mode. + 0.3.0 (April 7, 2022) - Added user consent feature to allow delaying or disabling the data tracking from SDK until user consent is explicitly granted or declined. Read more in our docs. diff --git a/package-lock.json b/package-lock.json index b0540bf..edbbfb1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "@splitsoftware/splitio-react-native", - "version": "0.3.1-rc.0", + "version": "0.3.1-rc.1", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -3555,9 +3555,9 @@ } }, "@splitsoftware/splitio-commons": { - "version": "1.3.2-rc.5", - "resolved": "https://registry.npmjs.org/@splitsoftware/splitio-commons/-/splitio-commons-1.3.2-rc.5.tgz", - "integrity": "sha512-43xcxlBv39fGle+fLTSV2/eZYVo6DC1LqXn7OUvEvuTbomihpauD+XjdlicG5U08Is/ncnj6eG1jCxjpKqal0g==", + "version": "1.3.2-rc.6", + "resolved": "https://registry.npmjs.org/@splitsoftware/splitio-commons/-/splitio-commons-1.3.2-rc.6.tgz", + "integrity": "sha512-iBaz0NlixndiY63tHDtv835NyPzZMTEqgx30EtYBBuGdBffJBQbLvTeTRLD+VIHIWoQNZ323PipftLtuTXaAuQ==", "requires": { "tslib": "^2.3.1" }, @@ -4237,9 +4237,9 @@ "dev": true }, "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", + "version": "2.6.4", + "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz", + "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==", "dev": true, "requires": { "lodash": "^4.17.14" diff --git a/package.json b/package.json index 88a0838..d9850d1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@splitsoftware/splitio-react-native", - "version": "0.3.1-rc.0", + "version": "0.3.1-rc.1", "description": "Split SDK for React Native", "main": "lib/commonjs/index.js", "module": "lib/module/index.js", @@ -54,7 +54,7 @@ }, "homepage": "https://github.com/splitio/react-native-client#readme", "dependencies": { - "@splitsoftware/splitio-commons": "1.3.2-rc.5" + "@splitsoftware/splitio-commons": "1.3.2-rc.6" }, "devDependencies": { "@react-native-community/eslint-config": "^2.0.0", diff --git a/src/settings/defaults.ts b/src/settings/defaults.ts index 5b670d9..343c54f 100644 --- a/src/settings/defaults.ts +++ b/src/settings/defaults.ts @@ -1,7 +1,7 @@ import { ConsentStatus } from '@splitsoftware/splitio-commons/src/types'; import { CONSENT_GRANTED } from '@splitsoftware/splitio-commons/src/utils/constants'; -const packageVersion = '0.3.1-rc.0'; +const packageVersion = '0.3.1-rc.1'; export const defaults = { startup: { From c76f1c9be17493651c6aaa1be38c1951a25e3534 Mon Sep 17 00:00:00 2001 From: Emiliano Sanchez Date: Tue, 24 May 2022 15:34:06 -0300 Subject: [PATCH 4/4] stable version --- CHANGES.txt | 4 ++-- package-lock.json | 8 ++++---- package.json | 4 ++-- src/settings/defaults.ts | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index 499d36e..51a2109 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,7 +1,7 @@ -0.4.0 (May 23, 2022) +0.4.0 (May 24, 2022) - Added `scheduler.telemetryRefreshRate` property to SDK configuration. - Updated SDK telemetry storage, metrics and updater to be more effective and send less often. - - Bugfixing - Updated default values for `scheduler.impressionsRefreshRate` config parameter: 300s for OPTIMIZED impression mode and 60s for DEBUG impression mode. + - Bugfixing - Updated default values for `scheduler.impressionsRefreshRate` config parameter: 300s for OPTIMIZED impression mode and 60s for DEBUG impression mode (previously it was 60s for both). 0.3.0 (April 7, 2022) - Added user consent feature to allow delaying or disabling the data tracking from SDK until user consent is explicitly granted or declined. Read more in our docs. diff --git a/package-lock.json b/package-lock.json index edbbfb1..af3021f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "@splitsoftware/splitio-react-native", - "version": "0.3.1-rc.1", + "version": "0.4.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -3555,9 +3555,9 @@ } }, "@splitsoftware/splitio-commons": { - "version": "1.3.2-rc.6", - "resolved": "https://registry.npmjs.org/@splitsoftware/splitio-commons/-/splitio-commons-1.3.2-rc.6.tgz", - "integrity": "sha512-iBaz0NlixndiY63tHDtv835NyPzZMTEqgx30EtYBBuGdBffJBQbLvTeTRLD+VIHIWoQNZ323PipftLtuTXaAuQ==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@splitsoftware/splitio-commons/-/splitio-commons-1.4.0.tgz", + "integrity": "sha512-i/gXbtzUMKotva66mkPpa8g49v+gR4AbA/ZTKBGFi4CN+blwFO/10YQQWro8Gm9YJIB1mTXdplem6XkeBUzISA==", "requires": { "tslib": "^2.3.1" }, diff --git a/package.json b/package.json index d9850d1..4c794ed 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@splitsoftware/splitio-react-native", - "version": "0.3.1-rc.1", + "version": "0.4.0", "description": "Split SDK for React Native", "main": "lib/commonjs/index.js", "module": "lib/module/index.js", @@ -54,7 +54,7 @@ }, "homepage": "https://github.com/splitio/react-native-client#readme", "dependencies": { - "@splitsoftware/splitio-commons": "1.3.2-rc.6" + "@splitsoftware/splitio-commons": "1.4.0" }, "devDependencies": { "@react-native-community/eslint-config": "^2.0.0", diff --git a/src/settings/defaults.ts b/src/settings/defaults.ts index 343c54f..4523939 100644 --- a/src/settings/defaults.ts +++ b/src/settings/defaults.ts @@ -1,7 +1,7 @@ import { ConsentStatus } from '@splitsoftware/splitio-commons/src/types'; import { CONSENT_GRANTED } from '@splitsoftware/splitio-commons/src/utils/constants'; -const packageVersion = '0.3.1-rc.1'; +const packageVersion = '0.4.0'; export const defaults = { startup: {