@launchdarkly/react-native-client-sdk 10.6.1 → 10.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,22 @@
1
1
  # Changelog
2
2
 
3
+ ## [10.7.0](https://github.com/launchdarkly/js-core/compare/react-native-client-sdk-v10.6.1...react-native-client-sdk-v10.7.0) (2024-09-26)
4
+
5
+
6
+ ### Features
7
+
8
+ * Add support for conditional event source capabilities. ([#577](https://github.com/launchdarkly/js-core/issues/577)) ([fe82500](https://github.com/launchdarkly/js-core/commit/fe82500f28cf8d8311502098aa6cc2e73932064e))
9
+ * Add support for js-client-sdk style initialization. ([53f5bb8](https://github.com/launchdarkly/js-core/commit/53f5bb89754ff05405d481a959e75742fbd0d0a9))
10
+ * Adds support for REPORT. ([#575](https://github.com/launchdarkly/js-core/issues/575)) ([916b724](https://github.com/launchdarkly/js-core/commit/916b72409b63abdf350e70cca41331c4204b6e95))
11
+ * Refactor data source connection handling. ([53f5bb8](https://github.com/launchdarkly/js-core/commit/53f5bb89754ff05405d481a959e75742fbd0d0a9))
12
+
13
+
14
+ ### Dependencies
15
+
16
+ * The following workspace dependencies were updated
17
+ * dependencies
18
+ * @launchdarkly/js-client-sdk-common bumped from 1.7.0 to 1.8.0
19
+
3
20
  ## [10.6.1](https://github.com/launchdarkly/js-core/compare/react-native-client-sdk-v10.6.0...react-native-client-sdk-v10.6.1) (2024-09-03)
4
21
 
5
22
 
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@launchdarkly/react-native-client-sdk",
3
- "version": "10.6.1",
3
+ "version": "10.7.0",
4
4
  "description": "React Native LaunchDarkly SDK",
5
5
  "homepage": "https://github.com/launchdarkly/js-core/tree/main/packages/sdk/react-native",
6
6
  "repository": {
@@ -34,16 +34,14 @@
34
34
  "prettier": "prettier --write '**/*.@(js|ts|tsx|json|css)' --ignore-path ../../../.prettierignore",
35
35
  "test": "jest",
36
36
  "coverage": "yarn test --coverage",
37
- "check": "yarn prettier && yarn lint && yarn build && yarn test",
38
- "android": "yarn && yarn ./example && yarn build && (cd example/ && yarn android-release)",
39
- "ios": "yarn && yarn ./example && yarn build && (cd example/ && yarn ios-go)"
37
+ "check": "yarn prettier && yarn lint && yarn build && yarn test"
40
38
  },
41
39
  "peerDependencies": {
42
40
  "react": "*",
43
41
  "react-native": "*"
44
42
  },
45
43
  "dependencies": {
46
- "@launchdarkly/js-client-sdk-common": "1.7.0",
44
+ "@launchdarkly/js-client-sdk-common": "1.8.0",
47
45
  "@react-native-async-storage/async-storage": "^1.21.0",
48
46
  "base64-js": "^1.5.1"
49
47
  },
@@ -0,0 +1,15 @@
1
+ import { BaseDataManager, Configuration, ConnectionMode, Context, DataSourcePaths, FlagManager, internal, LDEmitter, LDHeaders, LDIdentifyOptions, Platform } from '@launchdarkly/js-client-sdk-common';
2
+ import { ValidatedOptions } from './options';
3
+ export default class MobileDataManager extends BaseDataManager {
4
+ private readonly rnConfig;
5
+ protected networkAvailable: boolean;
6
+ protected connectionMode: ConnectionMode;
7
+ constructor(platform: Platform, flagManager: FlagManager, credential: string, config: Configuration, rnConfig: ValidatedOptions, getPollingPaths: () => DataSourcePaths, getStreamingPaths: () => DataSourcePaths, baseHeaders: LDHeaders, emitter: LDEmitter, diagnosticsManager?: internal.DiagnosticsManager);
8
+ private debugLog;
9
+ identify(identifyResolve: () => void, identifyReject: (err: Error) => void, context: Context, identifyOptions?: LDIdentifyOptions): Promise<void>;
10
+ private setupConnection;
11
+ setNetworkAvailability(available: boolean): void;
12
+ setConnectionMode(mode: ConnectionMode): Promise<void>;
13
+ getConnectionMode(): ConnectionMode;
14
+ }
15
+ //# sourceMappingURL=MobileDataManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MobileDataManager.d.ts","sourceRoot":"","sources":["../../src/MobileDataManager.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,aAAa,EACb,cAAc,EACd,OAAO,EACP,eAAe,EACf,WAAW,EACX,QAAQ,EACR,SAAS,EACT,SAAS,EACT,iBAAiB,EACjB,QAAQ,EACT,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAI7C,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,eAAe;IAU1D,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAR3B,SAAS,CAAC,gBAAgB,EAAE,OAAO,CAAQ;IAC3C,SAAS,CAAC,cAAc,EAAE,cAAc,CAAe;gBAGrD,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,aAAa,EACJ,QAAQ,EAAE,gBAAgB,EAC3C,eAAe,EAAE,MAAM,eAAe,EACtC,iBAAiB,EAAE,MAAM,eAAe,EACxC,WAAW,EAAE,SAAS,EACtB,OAAO,EAAE,SAAS,EAClB,kBAAkB,CAAC,EAAE,QAAQ,CAAC,kBAAkB;IAgBlD,OAAO,CAAC,QAAQ;IAID,QAAQ,CACrB,eAAe,EAAE,MAAM,IAAI,EAC3B,cAAc,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,EACpC,OAAO,EAAE,OAAO,EAChB,eAAe,CAAC,EAAE,iBAAiB,GAClC,OAAO,CAAC,IAAI,CAAC;IAgChB,OAAO,CAAC,eAAe;IAqBvB,sBAAsB,CAAC,SAAS,EAAE,OAAO,GAAG,IAAI;IAI1C,iBAAiB,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IA6B5D,iBAAiB,IAAI,cAAc;CAGpC"}
@@ -0,0 +1,89 @@
1
+ import { BaseDataManager, Context, } from '@launchdarkly/js-client-sdk-common';
2
+ const logTag = '[MobileDataManager]';
3
+ export default class MobileDataManager extends BaseDataManager {
4
+ constructor(platform, flagManager, credential, config, rnConfig, getPollingPaths, getStreamingPaths, baseHeaders, emitter, diagnosticsManager) {
5
+ super(platform, flagManager, credential, config, getPollingPaths, getStreamingPaths, baseHeaders, emitter, diagnosticsManager);
6
+ this.rnConfig = rnConfig;
7
+ // Not implemented yet.
8
+ this.networkAvailable = true;
9
+ this.connectionMode = 'streaming';
10
+ this.connectionMode = rnConfig.initialConnectionMode;
11
+ }
12
+ debugLog(message, ...args) {
13
+ this.logger.debug(`${logTag} ${message}`, ...args);
14
+ }
15
+ async identify(identifyResolve, identifyReject, context, identifyOptions) {
16
+ this.context = context;
17
+ const offline = this.connectionMode === 'offline';
18
+ // In offline mode we do not support waiting for results.
19
+ const waitForNetworkResults = !!(identifyOptions === null || identifyOptions === void 0 ? void 0 : identifyOptions.waitForNetworkResults) && !offline;
20
+ const loadedFromCache = await this.flagManager.loadCached(context);
21
+ if (loadedFromCache && !waitForNetworkResults) {
22
+ this.debugLog('Identify completing with cached flags');
23
+ identifyResolve();
24
+ }
25
+ if (loadedFromCache && waitForNetworkResults) {
26
+ this.debugLog('Identify - Flags loaded from cache, but identify was requested with "waitForNetworkResults"');
27
+ }
28
+ if (this.connectionMode === 'offline') {
29
+ if (loadedFromCache) {
30
+ this.debugLog('Offline identify - using cached flags.');
31
+ }
32
+ else {
33
+ this.debugLog('Offline identify - no cached flags, using defaults or already loaded flags.');
34
+ identifyResolve();
35
+ }
36
+ }
37
+ else {
38
+ // Context has been validated in LDClientImpl.identify
39
+ this.setupConnection(context, identifyResolve, identifyReject);
40
+ }
41
+ }
42
+ setupConnection(context, identifyResolve, identifyReject) {
43
+ var _a;
44
+ const rawContext = Context.toLDContext(context);
45
+ (_a = this.updateProcessor) === null || _a === void 0 ? void 0 : _a.close();
46
+ switch (this.connectionMode) {
47
+ case 'streaming':
48
+ this.createStreamingProcessor(rawContext, context, identifyResolve, identifyReject);
49
+ break;
50
+ case 'polling':
51
+ this.createPollingProcessor(rawContext, context, identifyResolve, identifyReject);
52
+ break;
53
+ default:
54
+ break;
55
+ }
56
+ this.updateProcessor.start();
57
+ }
58
+ setNetworkAvailability(available) {
59
+ this.networkAvailable = available;
60
+ }
61
+ async setConnectionMode(mode) {
62
+ var _a;
63
+ if (this.connectionMode === mode) {
64
+ this.debugLog(`setConnectionMode ignored. Mode is already '${mode}'.`);
65
+ return;
66
+ }
67
+ this.connectionMode = mode;
68
+ this.debugLog(`setConnectionMode ${mode}.`);
69
+ switch (mode) {
70
+ case 'offline':
71
+ (_a = this.updateProcessor) === null || _a === void 0 ? void 0 : _a.close();
72
+ break;
73
+ case 'polling':
74
+ case 'streaming':
75
+ if (this.context) {
76
+ // identify will start the update processor
77
+ this.setupConnection(this.context);
78
+ }
79
+ break;
80
+ default:
81
+ this.logger.warn(`Unknown ConnectionMode: ${mode}. Only 'offline', 'streaming', and 'polling' are supported.`);
82
+ break;
83
+ }
84
+ }
85
+ getConnectionMode() {
86
+ return this.connectionMode;
87
+ }
88
+ }
89
+ //# sourceMappingURL=MobileDataManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MobileDataManager.js","sourceRoot":"","sources":["../../src/MobileDataManager.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { LDOptions } from '@launchdarkly/js-client-sdk-common';
1
+ import { ConnectionMode, LDOptions } from '@launchdarkly/js-client-sdk-common';
2
2
  /**
3
3
  * Interface for providing custom storage implementations for react Native.
4
4
  *
@@ -87,6 +87,15 @@ export interface RNSpecificOptions {
87
87
  * Defaults to @react-native-async-storage/async-storage.
88
88
  */
89
89
  readonly storage?: RNStorage;
90
+ /**
91
+ * Sets the mode to use for connections when the SDK is initialized.
92
+ *
93
+ * @remarks
94
+ * Possible values are offline, streaming, or polling. See {@link ConnectionMode} for more information.
95
+ *
96
+ * @defaultValue streaming.
97
+ */
98
+ initialConnectionMode?: ConnectionMode;
90
99
  }
91
100
  export default interface RNOptions extends LDOptions, RNSpecificOptions {
92
101
  }
@@ -1 +1 @@
1
- {"version":3,"file":"RNOptions.d.ts","sourceRoot":"","sources":["../../src/RNOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAE/D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,SAAS;IACxB;;;;;OAKG;IAEH;;;;;;OAMG;IACH,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAE7C;;;;;;OAMG;IACH,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnD;;;;;;;;OAQG;IACH,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,iBAAiB;IAChC;;;;;OAKG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IAEnC;;;;;;OAMG;IACH,QAAQ,CAAC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IAE5C;;;;;OAKG;IACH,QAAQ,CAAC,2BAA2B,CAAC,EAAE,OAAO,CAAC;IAE/C;;;;;;;;;OASG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC;CAC9B;AAED,MAAM,CAAC,OAAO,WAAW,SAAU,SAAQ,SAAS,EAAE,iBAAiB;CAAG"}
1
+ {"version":3,"file":"RNOptions.d.ts","sourceRoot":"","sources":["../../src/RNOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAE/E;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,SAAS;IACxB;;;;;OAKG;IAEH;;;;;;OAMG;IACH,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAE7C;;;;;;OAMG;IACH,GAAG,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnD;;;;;;;;OAQG;IACH,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC;AAED,MAAM,WAAW,iBAAiB;IAChC;;;;;OAKG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IAEnC;;;;;;OAMG;IACH,QAAQ,CAAC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IAE5C;;;;;OAKG;IACH,QAAQ,CAAC,2BAA2B,CAAC,EAAE,OAAO,CAAC;IAE/C;;;;;;;;;OASG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC;IAE7B;;;;;;;OAOG;IACH,qBAAqB,CAAC,EAAE,cAAc,CAAC;CACxC;AAED,MAAM,CAAC,OAAO,WAAW,SAAU,SAAQ,SAAS,EAAE,iBAAiB;CAAG"}
@@ -1,4 +1,4 @@
1
- import { AutoEnvAttributes, ConnectionMode, LDClientImpl, type LDContext } from '@launchdarkly/js-client-sdk-common';
1
+ import { AutoEnvAttributes, ConnectionMode, LDClientImpl } from '@launchdarkly/js-client-sdk-common';
2
2
  import LDOptions from './RNOptions';
3
3
  /**
4
4
  * The React Native LaunchDarkly client. Instantiate this class to create an
@@ -26,10 +26,11 @@ export default class ReactNativeLDClient extends LDClientImpl {
26
26
  * @param options {@link LDOptions} to initialize the client with.
27
27
  */
28
28
  constructor(sdkKey: string, autoEnvAttributes: AutoEnvAttributes, options?: LDOptions);
29
- private baseSetConnectionMode;
30
- private encodeContext;
31
- createStreamUriPath(context: LDContext): string;
32
- createPollUriPath(context: LDContext): string;
33
29
  setConnectionMode(mode: ConnectionMode): Promise<void>;
30
+ /**
31
+ * Gets the SDK connection mode.
32
+ */
33
+ getConnectionMode(): ConnectionMode;
34
+ isOffline(): boolean;
34
35
  }
35
36
  //# sourceMappingURL=ReactNativeLDClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ReactNativeLDClient.d.ts","sourceRoot":"","sources":["../../src/ReactNativeLDClient.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iBAAiB,EAGjB,cAAc,EAEd,YAAY,EACZ,KAAK,SAAS,EACf,MAAM,oCAAoC,CAAC;AAK5C,OAAO,SAAS,MAAM,aAAa,CAAC;AAGpC;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,YAAY;IAC3D,OAAO,CAAC,iBAAiB,CAAoB;IAC7C;;;;;;;;;OASG;gBACS,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,OAAO,GAAE,SAAc;IAsDzF,OAAO,CAAC,qBAAqB;IAK7B,OAAO,CAAC,aAAa;IAIZ,mBAAmB,CAAC,OAAO,EAAE,SAAS;IAItC,iBAAiB,CAAC,OAAO,EAAE,SAAS,GAAG,MAAM;IAIvC,iBAAiB,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CAOtE"}
1
+ {"version":3,"file":"ReactNativeLDClient.d.ts","sourceRoot":"","sources":["../../src/ReactNativeLDClient.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iBAAiB,EAIjB,cAAc,EAId,YAAY,EAGb,MAAM,oCAAoC,CAAC;AAM5C,OAAO,SAAS,MAAM,aAAa,CAAC;AAGpC;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,YAAY;IAC3D,OAAO,CAAC,iBAAiB,CAAoB;IAC7C;;;;;;;;;OASG;gBACS,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,OAAO,GAAE,SAAc;IA2FnF,iBAAiB,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ5D;;OAEG;IACH,iBAAiB,IAAI,cAAc;IAKnC,SAAS;CAIV"}
@@ -1,5 +1,6 @@
1
1
  /* eslint-disable max-classes-per-file */
2
2
  import { base64UrlEncode, BasicLogger, LDClientImpl, } from '@launchdarkly/js-client-sdk-common';
3
+ import MobileDataManager from './MobileDataManager';
3
4
  import validateOptions, { filterToBaseOptions } from './options';
4
5
  import createPlatform from './platform';
5
6
  import { ConnectionManager } from './platform/ConnectionManager';
@@ -42,10 +43,27 @@ export default class ReactNativeLDClient extends LDClientImpl {
42
43
  highTimeoutThreshold: 15,
43
44
  };
44
45
  const validatedRnOptions = validateOptions(options, logger);
45
- super(sdkKey, autoEnvAttributes, createPlatform(logger, validatedRnOptions.storage), Object.assign(Object.assign({}, filterToBaseOptions(options)), { logger }), internalOptions);
46
+ const platform = createPlatform(logger, validatedRnOptions.storage);
47
+ super(sdkKey, autoEnvAttributes, platform, Object.assign(Object.assign({}, filterToBaseOptions(options)), { logger }), (flagManager, configuration, baseHeaders, emitter, diagnosticsManager) => new MobileDataManager(platform, flagManager, sdkKey, configuration, validatedRnOptions, () => ({
48
+ pathGet(encoding, _plainContextString) {
49
+ return `/msdk/evalx/contexts/${base64UrlEncode(_plainContextString, encoding)}`;
50
+ },
51
+ pathReport(_encoding, _plainContextString) {
52
+ return `/msdk/evalx/context`;
53
+ },
54
+ }), () => ({
55
+ pathGet(encoding, _plainContextString) {
56
+ return `/meval/${base64UrlEncode(_plainContextString, encoding)}`;
57
+ },
58
+ pathReport(_encoding, _plainContextString) {
59
+ return `/meval`;
60
+ },
61
+ }), baseHeaders, emitter, diagnosticsManager), internalOptions);
62
+ this.setEventSendingEnabled(!this.isOffline(), false);
63
+ const dataManager = this.dataManager;
46
64
  const destination = {
47
65
  setNetworkAvailability: (available) => {
48
- this.setNetworkAvailability(available);
66
+ dataManager.setNetworkAvailability(available);
49
67
  },
50
68
  setEventSendingEnabled: (enabled, flush) => {
51
69
  this.setEventSendingEnabled(enabled, flush);
@@ -53,7 +71,7 @@ export default class ReactNativeLDClient extends LDClientImpl {
53
71
  setConnectionMode: async (mode) => {
54
72
  // Pass the connection mode to the base implementation.
55
73
  // The RN implementation will pass the connection mode through the connection manager.
56
- this.baseSetConnectionMode(mode);
74
+ dataManager.setConnectionMode(mode);
57
75
  },
58
76
  };
59
77
  const initialConnectionMode = (_a = options.initialConnectionMode) !== null && _a !== void 0 ? _a : 'streaming';
@@ -64,19 +82,6 @@ export default class ReactNativeLDClient extends LDClientImpl {
64
82
  runInBackground: validatedRnOptions.runInBackground,
65
83
  }, destination, new RNStateDetector());
66
84
  }
67
- baseSetConnectionMode(mode) {
68
- // Jest had problems with calls to super from nested arrow functions, so this method proxies the call.
69
- super.setConnectionMode(mode);
70
- }
71
- encodeContext(context) {
72
- return base64UrlEncode(JSON.stringify(context), this.platform.encoding);
73
- }
74
- createStreamUriPath(context) {
75
- return `/meval/${this.encodeContext(context)}`;
76
- }
77
- createPollUriPath(context) {
78
- return `/msdk/evalx/contexts/${this.encodeContext(context)}`;
79
- }
80
85
  async setConnectionMode(mode) {
81
86
  // Set the connection mode before setting offline, in case there is any mode transition work
82
87
  // such as flushing on entering the background.
@@ -84,5 +89,16 @@ export default class ReactNativeLDClient extends LDClientImpl {
84
89
  // For now the data source connection and the event processing state are connected.
85
90
  this.connectionManager.setOffline(mode === 'offline');
86
91
  }
92
+ /**
93
+ * Gets the SDK connection mode.
94
+ */
95
+ getConnectionMode() {
96
+ const dataManager = this.dataManager;
97
+ return dataManager.getConnectionMode();
98
+ }
99
+ isOffline() {
100
+ const dataManager = this.dataManager;
101
+ return dataManager.getConnectionMode() === 'offline';
102
+ }
87
103
  }
88
104
  //# sourceMappingURL=ReactNativeLDClient.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ReactNativeLDClient.js","sourceRoot":"","sources":["../../src/ReactNativeLDClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ReactNativeLDClient.js","sourceRoot":"","sources":["../../src/ReactNativeLDClient.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,11 @@
1
- import { LDLogger, LDOptions } from '@launchdarkly/js-client-sdk-common';
1
+ import { ConnectionMode, LDLogger, LDOptions } from '@launchdarkly/js-client-sdk-common';
2
2
  import RNOptions, { RNStorage } from './RNOptions';
3
3
  export interface ValidatedOptions {
4
4
  runInBackground: boolean;
5
5
  automaticNetworkHandling: boolean;
6
6
  automaticBackgroundHandling: boolean;
7
7
  storage?: RNStorage;
8
+ initialConnectionMode: ConnectionMode;
8
9
  }
9
10
  export declare function filterToBaseOptions(opts: RNOptions): LDOptions;
10
11
  export default function validateOptions(opts: RNOptions, logger: LDLogger): ValidatedOptions;
@@ -1 +1 @@
1
- {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/options.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,SAAS,EAIV,MAAM,oCAAoC,CAAC;AAE5C,OAAO,SAAS,EAAE,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAEnD,MAAM,WAAW,gBAAgB;IAC/B,eAAe,EAAE,OAAO,CAAC;IACzB,wBAAwB,EAAE,OAAO,CAAC;IAClC,2BAA2B,EAAE,OAAO,CAAC;IACrC,OAAO,CAAC,EAAE,SAAS,CAAC;CACrB;AAgBD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,CAS9D;AAED,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,GAAG,gBAAgB,CAgB3F"}
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../src/options.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,QAAQ,EACR,SAAS,EAIV,MAAM,oCAAoC,CAAC;AAE5C,OAAO,SAAS,EAAE,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAWnD,MAAM,WAAW,gBAAgB;IAC/B,eAAe,EAAE,OAAO,CAAC;IACzB,wBAAwB,EAAE,OAAO,CAAC;IAClC,2BAA2B,EAAE,OAAO,CAAC;IACrC,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,qBAAqB,EAAE,cAAc,CAAC;CACvC;AAkBD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,CAS9D;AAED,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,GAAG,gBAAgB,CAiB3F"}
@@ -1,15 +1,25 @@
1
1
  import { OptionMessages, TypeValidators, } from '@launchdarkly/js-client-sdk-common';
2
+ class ConnectionModeValidator {
3
+ is(u) {
4
+ return u === 'offline' || u === 'streaming' || u === 'polling';
5
+ }
6
+ getType() {
7
+ return 'ConnectionMode (offline | streaming | polling)';
8
+ }
9
+ }
2
10
  const optDefaults = {
3
11
  runInBackground: false,
4
12
  automaticNetworkHandling: true,
5
13
  automaticBackgroundHandling: true,
6
14
  storage: undefined,
15
+ initialConnectionMode: 'streaming',
7
16
  };
8
17
  const validators = {
9
18
  runInBackground: TypeValidators.Boolean,
10
19
  automaticNetworkHandling: TypeValidators.Boolean,
11
20
  automaticBackgroundHandling: TypeValidators.Boolean,
12
21
  storage: TypeValidators.Object,
22
+ initialConnectionMode: new ConnectionModeValidator(),
13
23
  };
14
24
  export function filterToBaseOptions(opts) {
15
25
  const baseOptions = Object.assign({}, opts);
@@ -27,6 +37,7 @@ export default function validateOptions(opts, logger) {
27
37
  const value = opts[key];
28
38
  if (value !== undefined) {
29
39
  if (validator.is(value)) {
40
+ // @ts-ignore The type inference has some problems here.
30
41
  output[key] = value;
31
42
  }
32
43
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,cAAc,EAEd,cAAc,GACf,MAAM,oCAAoC,CAAC;AAW5C,MAAM,WAAW,GAAG;IAClB,eAAe,EAAE,KAAK;IACtB,wBAAwB,EAAE,IAAI;IAC9B,2BAA2B,EAAE,IAAI;IACjC,OAAO,EAAE,SAAS;CACnB,CAAC;AAEF,MAAM,UAAU,GAAiE;IAC/E,eAAe,EAAE,cAAc,CAAC,OAAO;IACvC,wBAAwB,EAAE,cAAc,CAAC,OAAO;IAChD,2BAA2B,EAAE,cAAc,CAAC,OAAO;IACnD,OAAO,EAAE,cAAc,CAAC,MAAM;CAC/B,CAAC;AAEF,MAAM,UAAU,mBAAmB,CAAC,IAAe;IACjD,MAAM,WAAW,qBAAmB,IAAI,CAAE,CAAC;IAE3C,0EAA0E;IAC1E,qDAAqD;IACrD,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QACvC,OAAQ,WAAmB,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IACH,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,IAAe,EAAE,MAAgB;IACvE,MAAM,MAAM,qBAA0B,WAAW,CAAE,CAAC;IAEpD,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAC3C,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,GAAG,KAAyC,CAAC;QACnE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACxB,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,IAAI,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE;gBACvB,MAAM,CAAC,GAA6B,CAAC,GAAG,KAAY,CAAC;aACtD;iBAAM;gBACL,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,GAAG,EAAE,SAAS,CAAC,OAAO,EAAE,EAAE,OAAO,KAAK,CAAC,CAAC,CAAC;aACrF;SACF;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../../src/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,cAAc,EAEd,cAAc,GACf,MAAM,oCAAoC,CAAC;AAI5C,MAAM,uBAAuB;IAC3B,EAAE,CAAC,CAAU;QACX,OAAO,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,WAAW,IAAI,CAAC,KAAK,SAAS,CAAC;IACjE,CAAC;IACD,OAAO;QACL,OAAO,gDAAgD,CAAC;IAC1D,CAAC;CACF;AAUD,MAAM,WAAW,GAAqB;IACpC,eAAe,EAAE,KAAK;IACtB,wBAAwB,EAAE,IAAI;IAC9B,2BAA2B,EAAE,IAAI;IACjC,OAAO,EAAE,SAAS;IAClB,qBAAqB,EAAE,WAAW;CACnC,CAAC;AAEF,MAAM,UAAU,GAAiE;IAC/E,eAAe,EAAE,cAAc,CAAC,OAAO;IACvC,wBAAwB,EAAE,cAAc,CAAC,OAAO;IAChD,2BAA2B,EAAE,cAAc,CAAC,OAAO;IACnD,OAAO,EAAE,cAAc,CAAC,MAAM;IAC9B,qBAAqB,EAAE,IAAI,uBAAuB,EAAE;CACrD,CAAC;AAEF,MAAM,UAAU,mBAAmB,CAAC,IAAe;IACjD,MAAM,WAAW,qBAAmB,IAAI,CAAE,CAAC;IAE3C,0EAA0E;IAC1E,qDAAqD;IACrD,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QACvC,OAAQ,WAAmB,CAAC,GAAG,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IACH,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,IAAe,EAAE,MAAgB;IACvE,MAAM,MAAM,qBAA0B,WAAW,CAAE,CAAC;IAEpD,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAC3C,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,GAAG,KAAyC,CAAC;QACnE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QACxB,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,IAAI,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE;gBACvB,wDAAwD;gBACxD,MAAM,CAAC,GAA6B,CAAC,GAAG,KAAY,CAAC;aACtD;iBAAM;gBACL,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,eAAe,CAAC,GAAG,EAAE,SAAS,CAAC,OAAO,EAAE,EAAE,OAAO,KAAK,CAAC,CAAC,CAAC;aACrF;SACF;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1,8 +1,9 @@
1
- import type { EventSource, EventSourceInitDict, LDLogger, Options, Requests, Response } from '@launchdarkly/js-client-sdk-common';
1
+ import type { EventSource, EventSourceCapabilities, EventSourceInitDict, LDLogger, Options, Requests, Response } from '@launchdarkly/js-client-sdk-common';
2
2
  export default class PlatformRequests implements Requests {
3
3
  private readonly logger;
4
4
  constructor(logger: LDLogger);
5
5
  createEventSource(url: string, eventSourceInitDict: EventSourceInitDict): EventSource;
6
+ getEventSourceCapabilities(): EventSourceCapabilities;
6
7
  fetch(url: string, options?: Options): Promise<Response>;
7
8
  }
8
9
  //# sourceMappingURL=PlatformRequests.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PlatformRequests.d.ts","sourceRoot":"","sources":["../../../src/platform/PlatformRequests.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,WAAW,EACX,mBAAmB,EACnB,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,QAAQ,EACT,MAAM,oCAAoC,CAAC;AAI5C,MAAM,CAAC,OAAO,OAAO,gBAAiB,YAAW,QAAQ;IAC3C,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,QAAQ;IAE7C,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,mBAAmB,EAAE,mBAAmB,GAAG,WAAW;IAQrF,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;CAIzD"}
1
+ {"version":3,"file":"PlatformRequests.d.ts","sourceRoot":"","sources":["../../../src/platform/PlatformRequests.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,WAAW,EACX,uBAAuB,EACvB,mBAAmB,EACnB,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,QAAQ,EACT,MAAM,oCAAoC,CAAC;AAI5C,MAAM,CAAC,OAAO,OAAO,gBAAiB,YAAW,QAAQ;IAC3C,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,QAAQ;IAE7C,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,mBAAmB,EAAE,mBAAmB,GAAG,WAAW;IAUrF,0BAA0B,IAAI,uBAAuB;IAQrD,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;CAIzD"}
@@ -4,12 +4,22 @@ export default class PlatformRequests {
4
4
  this.logger = logger;
5
5
  }
6
6
  createEventSource(url, eventSourceInitDict) {
7
+ var _a;
7
8
  return new RNEventSource(url, {
9
+ method: (_a = eventSourceInitDict.method) !== null && _a !== void 0 ? _a : 'GET',
8
10
  headers: eventSourceInitDict.headers,
11
+ body: eventSourceInitDict.body,
9
12
  retryAndHandleError: eventSourceInitDict.errorFilter,
10
13
  logger: this.logger,
11
14
  });
12
15
  }
16
+ getEventSourceCapabilities() {
17
+ return {
18
+ readTimeout: false,
19
+ headers: true,
20
+ customMethod: true,
21
+ };
22
+ }
13
23
  fetch(url, options) {
14
24
  // @ts-ignore
15
25
  return fetch(url, options);
@@ -1 +1 @@
1
- {"version":3,"file":"PlatformRequests.js","sourceRoot":"","sources":["../../../src/platform/PlatformRequests.ts"],"names":[],"mappings":"AAUA,OAAO,aAAa,MAAM,kCAAkC,CAAC;AAE7D,MAAM,CAAC,OAAO,OAAO,gBAAgB;IACnC,YAA6B,MAAgB;QAAhB,WAAM,GAAN,MAAM,CAAU;IAAG,CAAC;IAEjD,iBAAiB,CAAC,GAAW,EAAE,mBAAwC;QACrE,OAAO,IAAI,aAAa,CAAY,GAAG,EAAE;YACvC,OAAO,EAAE,mBAAmB,CAAC,OAAO;YACpC,mBAAmB,EAAE,mBAAmB,CAAC,WAAW;YACpD,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,GAAW,EAAE,OAAiB;QAClC,aAAa;QACb,OAAO,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC7B,CAAC;CACF"}
1
+ {"version":3,"file":"PlatformRequests.js","sourceRoot":"","sources":["../../../src/platform/PlatformRequests.ts"],"names":[],"mappings":"AAWA,OAAO,aAAa,MAAM,kCAAkC,CAAC;AAE7D,MAAM,CAAC,OAAO,OAAO,gBAAgB;IACnC,YAA6B,MAAgB;QAAhB,WAAM,GAAN,MAAM,CAAU;IAAG,CAAC;IAEjD,iBAAiB,CAAC,GAAW,EAAE,mBAAwC;;QACrE,OAAO,IAAI,aAAa,CAAY,GAAG,EAAE;YACvC,MAAM,EAAE,MAAA,mBAAmB,CAAC,MAAM,mCAAI,KAAK;YAC3C,OAAO,EAAE,mBAAmB,CAAC,OAAO;YACpC,IAAI,EAAE,mBAAmB,CAAC,IAAI;YAC9B,mBAAmB,EAAE,mBAAmB,CAAC,WAAW;YACpD,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;IACL,CAAC;IAED,0BAA0B;QACxB,OAAO;YACL,WAAW,EAAE,KAAK;YAClB,OAAO,EAAE,IAAI;YACb,YAAY,EAAE,IAAI;SACnB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,GAAW,EAAE,OAAiB;QAClC,aAAa;QACb,OAAO,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC7B,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@launchdarkly/react-native-client-sdk",
3
- "version": "10.6.1",
3
+ "version": "10.7.0",
4
4
  "description": "React Native LaunchDarkly SDK",
5
5
  "homepage": "https://github.com/launchdarkly/js-core/tree/main/packages/sdk/react-native",
6
6
  "repository": {
@@ -34,16 +34,14 @@
34
34
  "prettier": "prettier --write '**/*.@(js|ts|tsx|json|css)' --ignore-path ../../../.prettierignore",
35
35
  "test": "jest",
36
36
  "coverage": "yarn test --coverage",
37
- "check": "yarn prettier && yarn lint && yarn build && yarn test",
38
- "android": "yarn && yarn ./example && yarn build && (cd example/ && yarn android-release)",
39
- "ios": "yarn && yarn ./example && yarn build && (cd example/ && yarn ios-go)"
37
+ "check": "yarn prettier && yarn lint && yarn build && yarn test"
40
38
  },
41
39
  "peerDependencies": {
42
40
  "react": "*",
43
41
  "react-native": "*"
44
42
  },
45
43
  "dependencies": {
46
- "@launchdarkly/js-client-sdk-common": "1.7.0",
44
+ "@launchdarkly/js-client-sdk-common": "1.8.0",
47
45
  "@react-native-async-storage/async-storage": "^1.21.0",
48
46
  "base64-js": "^1.5.1"
49
47
  },