@launchdarkly/react-native-client-sdk 0.1.5 → 0.2.1

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 (77) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/README.md +2 -2
  3. package/dist/package.json +8 -5
  4. package/dist/src/ReactNativeLDClient.d.ts +7 -3
  5. package/dist/src/ReactNativeLDClient.d.ts.map +1 -1
  6. package/dist/src/ReactNativeLDClient.js +10 -6
  7. package/dist/src/ReactNativeLDClient.js.map +1 -1
  8. package/dist/src/fromExternal/js-sha256/index.d.ts +17 -0
  9. package/dist/src/fromExternal/js-sha256/index.d.ts.map +1 -0
  10. package/dist/src/fromExternal/js-sha256/index.js +572 -0
  11. package/dist/src/fromExternal/js-sha256/index.js.map +1 -0
  12. package/dist/src/{react-native-sse → fromExternal/react-native-sse}/EventSource.d.ts +8 -5
  13. package/dist/src/fromExternal/react-native-sse/EventSource.d.ts.map +1 -0
  14. package/dist/src/{react-native-sse → fromExternal/react-native-sse}/EventSource.js +47 -32
  15. package/dist/src/fromExternal/react-native-sse/EventSource.js.map +1 -0
  16. package/dist/src/fromExternal/react-native-sse/index.d.ts.map +1 -0
  17. package/dist/src/fromExternal/react-native-sse/index.js.map +1 -0
  18. package/dist/src/{react-native-sse → fromExternal/react-native-sse}/types.d.ts +3 -3
  19. package/dist/src/fromExternal/react-native-sse/types.d.ts.map +1 -0
  20. package/dist/src/fromExternal/react-native-sse/types.js.map +1 -0
  21. package/dist/src/platform/autoEnv.d.ts +4 -0
  22. package/dist/src/platform/autoEnv.d.ts.map +1 -0
  23. package/dist/src/platform/autoEnv.js +36 -0
  24. package/dist/src/platform/autoEnv.js.map +1 -0
  25. package/dist/src/platform/crypto/PlatformHasher.d.ts +9 -0
  26. package/dist/src/platform/crypto/PlatformHasher.d.ts.map +1 -0
  27. package/dist/src/platform/crypto/PlatformHasher.js +28 -0
  28. package/dist/src/platform/crypto/PlatformHasher.js.map +1 -0
  29. package/dist/src/platform/crypto/index.d.ts +14 -0
  30. package/dist/src/platform/crypto/index.d.ts.map +1 -0
  31. package/dist/src/platform/crypto/index.js +34 -0
  32. package/dist/src/platform/crypto/index.js.map +1 -0
  33. package/dist/src/platform/crypto/types.d.ts +3 -0
  34. package/dist/src/platform/crypto/types.d.ts.map +1 -0
  35. package/dist/src/platform/crypto/types.js +2 -0
  36. package/dist/src/{react-native-sse → platform/crypto}/types.js.map +1 -1
  37. package/dist/src/platform/index.d.ts +9 -1
  38. package/dist/src/platform/index.d.ts.map +1 -1
  39. package/dist/src/platform/index.js +24 -19
  40. package/dist/src/platform/index.js.map +1 -1
  41. package/dist/src/platform/locale.d.ts +7 -0
  42. package/dist/src/platform/locale.d.ts.map +1 -0
  43. package/dist/src/platform/locale.js +10 -0
  44. package/dist/src/platform/locale.js.map +1 -0
  45. package/dist/src/polyfills/CustomEvent.d.ts +1 -1
  46. package/dist/src/polyfills/CustomEvent.d.ts.map +1 -1
  47. package/dist/src/polyfills/CustomEvent.js +1 -1
  48. package/dist/src/polyfills/CustomEvent.js.map +1 -1
  49. package/dist/src/polyfills/btoa.d.ts +2 -1
  50. package/dist/src/polyfills/btoa.d.ts.map +1 -1
  51. package/dist/src/polyfills/btoa.js +4 -1
  52. package/dist/src/polyfills/btoa.js.map +1 -1
  53. package/dist/src/polyfills/index.d.ts +3 -3
  54. package/dist/src/polyfills/index.d.ts.map +1 -1
  55. package/dist/src/polyfills/index.js +3 -3
  56. package/dist/src/polyfills/index.js.map +1 -1
  57. package/dist/src/provider/LDProvider.d.ts +2 -6
  58. package/dist/src/provider/LDProvider.d.ts.map +1 -1
  59. package/dist/src/provider/LDProvider.js +4 -9
  60. package/dist/src/provider/LDProvider.js.map +1 -1
  61. package/dist/src/provider/useAppState.d.ts +13 -0
  62. package/dist/src/provider/useAppState.d.ts.map +1 -0
  63. package/dist/src/provider/useAppState.js +50 -0
  64. package/dist/src/provider/useAppState.js.map +1 -0
  65. package/package.json +8 -5
  66. package/dist/jest.config.d.ts +0 -4
  67. package/dist/jest.config.d.ts.map +0 -1
  68. package/dist/jest.config.js +0 -15
  69. package/dist/jest.config.js.map +0 -1
  70. package/dist/src/react-native-sse/EventSource.d.ts.map +0 -1
  71. package/dist/src/react-native-sse/EventSource.js.map +0 -1
  72. package/dist/src/react-native-sse/index.d.ts.map +0 -1
  73. package/dist/src/react-native-sse/index.js.map +0 -1
  74. package/dist/src/react-native-sse/types.d.ts.map +0 -1
  75. /package/dist/src/{react-native-sse → fromExternal/react-native-sse}/index.d.ts +0 -0
  76. /package/dist/src/{react-native-sse → fromExternal/react-native-sse}/index.js +0 -0
  77. /package/dist/src/{react-native-sse → fromExternal/react-native-sse}/types.js +0 -0
@@ -1,15 +1,23 @@
1
1
  const XMLReadyStateMap = ['UNSENT', 'OPENED', 'HEADERS_RECEIVED', 'LOADING', 'DONE'];
2
2
  const defaultOptions = {
3
3
  body: undefined,
4
- debug: false,
5
4
  headers: {},
6
5
  method: 'GET',
7
- pollingInterval: 5000,
8
6
  timeout: 0,
9
- timeoutBeforeConnection: 0,
10
7
  withCredentials: false,
11
8
  retryAndHandleError: undefined,
9
+ initialRetryDelayMillis: 1000,
10
+ logger: undefined,
12
11
  };
12
+ const maxRetryDelay = 30 * 1000; // Maximum retry delay 30 seconds.
13
+ const jitterRatio = 0.5; // Delay should be 50%-100% of calculated time.
14
+ export function backoff(base, retryCount) {
15
+ const delay = base * Math.pow(2, retryCount);
16
+ return Math.min(delay, maxRetryDelay);
17
+ }
18
+ export function jitter(computedDelayMillis) {
19
+ return computedDelayMillis - Math.trunc(Math.random() * jitterRatio * computedDelayMillis);
20
+ }
13
21
  export default class EventSource {
14
22
  constructor(url, options) {
15
23
  this.ERROR = -1;
@@ -25,27 +33,33 @@ export default class EventSource {
25
33
  close: [],
26
34
  };
27
35
  this.xhr = new XMLHttpRequest();
36
+ this.initialRetryDelayMillis = 1000;
37
+ this.retryCount = 0;
28
38
  const opts = Object.assign(Object.assign({}, defaultOptions), options);
29
39
  this.url = url;
30
40
  this.method = opts.method;
31
41
  this.timeout = opts.timeout;
32
- this.timeoutBeforeConnection = opts.timeoutBeforeConnection;
33
42
  this.withCredentials = opts.withCredentials;
34
43
  this.headers = opts.headers;
35
44
  this.body = opts.body;
36
- this.debug = opts.debug;
37
- this.pollingInterval = opts.pollingInterval;
38
45
  this.retryAndHandleError = opts.retryAndHandleError;
39
- this.pollAgain(this.timeoutBeforeConnection, true);
46
+ this.initialRetryDelayMillis = opts.initialRetryDelayMillis;
47
+ this.logger = opts.logger;
48
+ this.tryConnect(true);
40
49
  }
41
- pollAgain(time, allowZero) {
42
- if (time > 0 || allowZero) {
43
- this.logDebug(`[EventSource] Will open new connection in ${time} ms.`);
44
- this.dispatch('retry', { type: 'retry' });
45
- this.pollTimer = setTimeout(() => {
46
- this.open();
47
- }, time);
48
- }
50
+ getNextRetryDelay() {
51
+ const delay = jitter(backoff(this.initialRetryDelayMillis, this.retryCount));
52
+ this.retryCount += 1;
53
+ return delay;
54
+ }
55
+ tryConnect(forceNoDelay = false) {
56
+ var _a;
57
+ let delay = forceNoDelay ? 0 : this.getNextRetryDelay();
58
+ (_a = this.logger) === null || _a === void 0 ? void 0 : _a.debug(`[EventSource] Will open new connection in ${delay} ms.`);
59
+ this.dispatch('retry', { type: 'retry', delayMillis: delay });
60
+ this.pollTimer = setTimeout(() => {
61
+ this.open();
62
+ }, delay);
49
63
  }
50
64
  open() {
51
65
  try {
@@ -68,24 +82,27 @@ export default class EventSource {
68
82
  }
69
83
  this.xhr.timeout = this.timeout;
70
84
  this.xhr.onreadystatechange = () => {
85
+ var _a, _b, _c, _d;
71
86
  if (this.status === this.CLOSED) {
72
87
  return;
73
88
  }
74
- this.logDebug(`[EventSource][onreadystatechange] ReadyState: ${XMLReadyStateMap[this.xhr.readyState] || 'Unknown'}(${this.xhr.readyState}), status: ${this.xhr.status}`);
89
+ (_a = this.logger) === null || _a === void 0 ? void 0 : _a.debug(`[EventSource][onreadystatechange] ReadyState: ${XMLReadyStateMap[this.xhr.readyState] || 'Unknown'}(${this.xhr.readyState}), status: ${this.xhr.status}`);
75
90
  if (this.xhr.readyState !== XMLHttpRequest.DONE &&
76
91
  this.xhr.readyState !== XMLHttpRequest.LOADING) {
77
92
  return;
78
93
  }
79
94
  if (this.xhr.status >= 200 && this.xhr.status < 400) {
80
95
  if (this.status === this.CONNECTING) {
96
+ this.retryCount = 0;
81
97
  this.status = this.OPEN;
82
98
  this.dispatch('open', { type: 'open' });
83
- this.logDebug('[EventSource][onreadystatechange][OPEN] Connection opened.');
99
+ (_b = this.logger) === null || _b === void 0 ? void 0 : _b.debug('[EventSource][onreadystatechange][OPEN] Connection opened.');
84
100
  }
101
+ // retry from server gets set here
85
102
  this.handleEvent(this.xhr.responseText || '');
86
103
  if (this.xhr.readyState === XMLHttpRequest.DONE) {
87
- this.logDebug('[EventSource][onreadystatechange][DONE] Operation done.');
88
- this.pollAgain(this.pollingInterval, false);
104
+ (_c = this.logger) === null || _c === void 0 ? void 0 : _c.debug('[EventSource][onreadystatechange][DONE] Operation done.');
105
+ this.tryConnect();
89
106
  }
90
107
  }
91
108
  else if (this.xhr.status !== 0) {
@@ -97,19 +114,19 @@ export default class EventSource {
97
114
  xhrState: this.xhr.readyState,
98
115
  });
99
116
  if (this.xhr.readyState === XMLHttpRequest.DONE) {
100
- this.logDebug('[EventSource][onreadystatechange][ERROR] Response status error.');
117
+ (_d = this.logger) === null || _d === void 0 ? void 0 : _d.debug('[EventSource][onreadystatechange][ERROR] Response status error.');
101
118
  if (!this.retryAndHandleError) {
102
- // default implementation
103
- this.pollAgain(this.pollingInterval, false);
119
+ // by default just try and reconnect if there's an error.
120
+ this.tryConnect();
104
121
  }
105
122
  else {
106
- // custom retry logic
123
+ // custom retry logic taking into account status codes.
107
124
  const shouldRetry = this.retryAndHandleError({
108
125
  status: this.xhr.status,
109
126
  message: this.xhr.responseText,
110
127
  });
111
128
  if (shouldRetry) {
112
- this.pollAgain(this.pollingInterval, true);
129
+ this.tryConnect();
113
130
  }
114
131
  }
115
132
  }
@@ -151,12 +168,6 @@ export default class EventSource {
151
168
  });
152
169
  }
153
170
  }
154
- logDebug(...msg) {
155
- if (this.debug) {
156
- // eslint-disable-next-line no-console
157
- console.debug(...msg);
158
- }
159
- }
160
171
  handleEvent(response) {
161
172
  const parts = response.slice(this.lastIndexProcessed).split('\n');
162
173
  const indexOfDoubleNewline = response.lastIndexOf('\n\n');
@@ -175,7 +186,8 @@ export default class EventSource {
175
186
  else if (line.indexOf('retry') === 0) {
176
187
  retry = parseInt(line.replace(/retry:?\s*/, ''), 10);
177
188
  if (!Number.isNaN(retry)) {
178
- this.pollingInterval = retry;
189
+ // GOTCHA: Ignore the server retry recommendation. Use our own custom getNextRetryDelay logic.
190
+ // this.pollingInterval = retry;
179
191
  }
180
192
  }
181
193
  else if (line.indexOf('data') === 0) {
@@ -242,7 +254,7 @@ export default class EventSource {
242
254
  this.onerror(data);
243
255
  break;
244
256
  case 'retry':
245
- this.onretrying({ delayMillis: this.pollingInterval });
257
+ this.onretrying(data);
246
258
  break;
247
259
  default:
248
260
  break;
@@ -256,6 +268,9 @@ export default class EventSource {
256
268
  }
257
269
  this.dispatch('close', { type: 'close' });
258
270
  }
271
+ getStatus() {
272
+ return this.status;
273
+ }
259
274
  onopen() { }
260
275
  onclose() { }
261
276
  onerror(_err) { }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EventSource.js","sourceRoot":"","sources":["../../../../src/fromExternal/react-native-sse/EventSource.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/fromExternal/react-native-sse/index.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,eAAe,CAAC;AAExC,eAAe,WAAW,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/fromExternal/react-native-sse/index.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,eAAe,CAAC;AAExC,eAAe,WAAW,CAAC"}
@@ -14,6 +14,7 @@ export interface CloseEvent {
14
14
  }
15
15
  export interface RetryEvent {
16
16
  type: 'retry';
17
+ delayMillis: number;
17
18
  }
18
19
  export interface TimeoutEvent {
19
20
  type: 'timeout';
@@ -38,13 +39,12 @@ export interface ExceptionEvent {
38
39
  export interface EventSourceOptions {
39
40
  method?: string;
40
41
  timeout?: number;
41
- timeoutBeforeConnection?: number;
42
42
  withCredentials?: boolean;
43
43
  headers?: Record<string, any>;
44
44
  body?: any;
45
- debug?: boolean;
46
- pollingInterval?: number;
47
45
  retryAndHandleError?: (err: any) => boolean;
46
+ initialRetryDelayMillis?: number;
47
+ logger?: any;
48
48
  }
49
49
  type BuiltInEventMap = {
50
50
  message: MessageEvent;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/fromExternal/react-native-sse/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;AAChF,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,MAAM,GAAG,KAAK,IAAI,CAAC,GAAG,gBAAgB,CAAC;AAEvE,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS,MAAM;IAC3C,IAAI,EAAE,CAAC,CAAC;IACR,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,KAAK,CAAC;CACd;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,mBAAmB,CAAC,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC;IAC5C,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,MAAM,CAAC,EAAE,GAAG,CAAC;CACd;AAED,KAAK,eAAe,GAAG;IACrB,OAAO,EAAE,YAAY,CAAC;IACtB,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,UAAU,CAAC;IAClB,KAAK,EAAE,UAAU,GAAG,YAAY,GAAG,cAAc,CAAC;IAClD,KAAK,EAAE,UAAU,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,SAAS,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,gBAAgB,GAC1F,eAAe,CAAC,CAAC,CAAC,GAClB,WAAW,CAAC,CAAC,CAAC,CAAC;AAEnB,MAAM,MAAM,mBAAmB,CAAC,CAAC,SAAS,MAAM,GAAG,KAAK,EAAE,CAAC,SAAS,SAAS,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CACjG,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,KACvB,IAAI,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/fromExternal/react-native-sse/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ import type { LDApplication, LDDevice } from '@launchdarkly/js-client-sdk-common';
2
+ export declare const ldApplication: LDApplication;
3
+ export declare const ldDevice: LDDevice;
4
+ //# sourceMappingURL=autoEnv.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autoEnv.d.ts","sourceRoot":"","sources":["../../../src/platform/autoEnv.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAIlF,eAAO,MAAM,aAAa,EAAE,aAa3B,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,QAoBtB,CAAC"}
@@ -0,0 +1,36 @@
1
+ import { Platform } from 'react-native';
2
+ import locale from './locale';
3
+ export const ldApplication = {
4
+ // key is populated by common/client-sdk
5
+ key: '',
6
+ envAttributesVersion: '1.0',
7
+ locale,
8
+ // These are not automatically generated. Use LDOptions.applicationInfo
9
+ // to specify these values.
10
+ id: '',
11
+ name: '',
12
+ version: '',
13
+ versionName: '',
14
+ };
15
+ export const ldDevice = {
16
+ // key is populated by common/client-sdk
17
+ key: '',
18
+ envAttributesVersion: '1.0',
19
+ manufacturer: Platform.select({
20
+ ios: 'apple',
21
+ android: Platform.constants.Manufacturer,
22
+ }),
23
+ model: Platform.select({
24
+ // ios: model n/a from PlatformIOSStatic
25
+ android: Platform.constants.Model,
26
+ }),
27
+ os: {
28
+ family: Platform.select({
29
+ ios: 'apple',
30
+ default: Platform.OS,
31
+ }),
32
+ name: Platform.OS,
33
+ version: Platform.Version.toString(),
34
+ },
35
+ };
36
+ //# sourceMappingURL=autoEnv.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autoEnv.js","sourceRoot":"","sources":["../../../src/platform/autoEnv.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAA8B,MAAM,cAAc,CAAC;AAIpE,OAAO,MAAM,MAAM,UAAU,CAAC;AAE9B,MAAM,CAAC,MAAM,aAAa,GAAkB;IAC1C,wCAAwC;IACxC,GAAG,EAAE,EAAE;IACP,oBAAoB,EAAE,KAAK;IAE3B,MAAM;IAEN,uEAAuE;IACvE,2BAA2B;IAC3B,EAAE,EAAE,EAAE;IACN,IAAI,EAAE,EAAE;IACR,OAAO,EAAE,EAAE;IACX,WAAW,EAAE,EAAE;CAChB,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAa;IAChC,wCAAwC;IACxC,GAAG,EAAE,EAAE;IACP,oBAAoB,EAAE,KAAK;IAC3B,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC;QAC5B,GAAG,EAAE,OAAO;QACZ,OAAO,EAAG,QAAkC,CAAC,SAAS,CAAC,YAAY;KACpE,CAAC;IACF,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC;QACrB,wCAAwC;QACxC,OAAO,EAAG,QAAkC,CAAC,SAAS,CAAC,KAAK;KAC7D,CAAC;IACF,EAAE,EAAE;QACF,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC;YACtB,GAAG,EAAE,OAAO;YACZ,OAAO,EAAE,QAAQ,CAAC,EAAE;SACrB,CAAC;QACF,IAAI,EAAE,QAAQ,CAAC,EAAE;QACjB,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE;KACrC;CACF,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { Hasher as LDHasher } from '@launchdarkly/js-client-sdk-common';
2
+ import { SupportedHashAlgorithm, SupportedOutputEncoding } from './types';
3
+ export default class PlatformHasher implements LDHasher {
4
+ private hasher;
5
+ constructor(algorithm: SupportedHashAlgorithm, hmacKey?: string);
6
+ digest(encoding: SupportedOutputEncoding): string;
7
+ update(data: string): this;
8
+ }
9
+ //# sourceMappingURL=PlatformHasher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlatformHasher.d.ts","sourceRoot":"","sources":["../../../../src/platform/crypto/PlatformHasher.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAIxE,OAAO,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAE1E,MAAM,CAAC,OAAO,OAAO,cAAe,YAAW,QAAQ;IACrD,OAAO,CAAC,MAAM,CAAS;gBAEX,SAAS,EAAE,sBAAsB,EAAE,OAAO,CAAC,EAAE,MAAM;IAU/D,MAAM,CAAC,QAAQ,EAAE,uBAAuB,GAAG,MAAM;IAajD,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;CAI3B"}
@@ -0,0 +1,28 @@
1
+ import { sha256 } from '../../fromExternal/js-sha256';
2
+ import { base64FromByteArray } from '../../polyfills';
3
+ export default class PlatformHasher {
4
+ constructor(algorithm, hmacKey) {
5
+ switch (algorithm) {
6
+ case 'sha256':
7
+ this.hasher = hmacKey ? sha256.hmac.create(hmacKey) : sha256.create();
8
+ break;
9
+ default:
10
+ throw new Error(`Unsupported hash algorithm: ${algorithm}. Only sha256 is supported.`);
11
+ }
12
+ }
13
+ digest(encoding) {
14
+ switch (encoding) {
15
+ case 'base64':
16
+ return base64FromByteArray(new Uint8Array(this.hasher.arrayBuffer()));
17
+ case 'hex':
18
+ return this.hasher.hex();
19
+ default:
20
+ throw new Error(`unsupported output encoding: ${encoding}. Only base64 and hex are supported.`);
21
+ }
22
+ }
23
+ update(data) {
24
+ this.hasher.update(data);
25
+ return this;
26
+ }
27
+ }
28
+ //# sourceMappingURL=PlatformHasher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlatformHasher.js","sourceRoot":"","sources":["../../../../src/platform/crypto/PlatformHasher.ts"],"names":[],"mappings":"AAEA,OAAO,EAAU,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAGtD,MAAM,CAAC,OAAO,OAAO,cAAc;IAGjC,YAAY,SAAiC,EAAE,OAAgB;QAC7D,QAAQ,SAAS,EAAE;YACjB,KAAK,QAAQ;gBACX,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;gBACtE,MAAM;YACR;gBACE,MAAM,IAAI,KAAK,CAAC,+BAA+B,SAAS,6BAA6B,CAAC,CAAC;SAC1F;IACH,CAAC;IAED,MAAM,CAAC,QAAiC;QACtC,QAAQ,QAAQ,EAAE;YAChB,KAAK,QAAQ;gBACX,OAAO,mBAAmB,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;YACxE,KAAK,KAAK;gBACR,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;YAC3B;gBACE,MAAM,IAAI,KAAK,CACb,gCAAgC,QAAQ,sCAAsC,CAC/E,CAAC;SACL;IACH,CAAC;IAED,MAAM,CAAC,IAAY;QACjB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -0,0 +1,14 @@
1
+ import type { Crypto, Hmac } from '@launchdarkly/js-client-sdk-common';
2
+ import PlatformHasher from './PlatformHasher';
3
+ import { SupportedHashAlgorithm } from './types';
4
+ /**
5
+ * Uses crypto-js as substitute to node:crypto because the latter
6
+ * is not yet supported in some runtimes.
7
+ * https://cryptojs.gitbook.io/docs/
8
+ */
9
+ export default class PlatformCrypto implements Crypto {
10
+ createHash(algorithm: SupportedHashAlgorithm): PlatformHasher;
11
+ createHmac(algorithm: SupportedHashAlgorithm, key: string): Hmac;
12
+ randomUUID(): string;
13
+ }
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/platform/crypto/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAEvE,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAmBjD;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,cAAe,YAAW,MAAM;IACnD,UAAU,CAAC,SAAS,EAAE,sBAAsB,GAAG,cAAc;IAI7D,UAAU,CAAC,SAAS,EAAE,sBAAsB,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAIhE,UAAU,IAAI,MAAM;CAGrB"}
@@ -0,0 +1,34 @@
1
+ import PlatformHasher from './PlatformHasher';
2
+ /* eslint-disable no-bitwise */
3
+ /**
4
+ * To avoid dependencies on uuid, this is good enough for now.
5
+ * Ripped from the react-native repo:
6
+ * https://github.com/facebook/react-native/blob/main/packages/react-native/Libraries/Blob/BlobManager.js#L27
7
+ *
8
+ * Based on the rfc4122-compliant solution posted at
9
+ * http://stackoverflow.com/questions/105034
10
+ */
11
+ function uuidv4() {
12
+ return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {
13
+ const r = (Math.random() * 16) | 0;
14
+ const v = c === 'x' ? r : (r & 0x3) | 0x8;
15
+ return v.toString(16);
16
+ });
17
+ }
18
+ /**
19
+ * Uses crypto-js as substitute to node:crypto because the latter
20
+ * is not yet supported in some runtimes.
21
+ * https://cryptojs.gitbook.io/docs/
22
+ */
23
+ export default class PlatformCrypto {
24
+ createHash(algorithm) {
25
+ return new PlatformHasher(algorithm);
26
+ }
27
+ createHmac(algorithm, key) {
28
+ return new PlatformHasher(algorithm, key);
29
+ }
30
+ randomUUID() {
31
+ return uuidv4();
32
+ }
33
+ }
34
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/platform/crypto/index.ts"],"names":[],"mappings":"AAEA,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAG9C,+BAA+B;AAC/B;;;;;;;GAOG;AACH,SAAS,MAAM;IACb,OAAO,sCAAsC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;QACnE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;QAC1C,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,cAAc;IACjC,UAAU,CAAC,SAAiC;QAC1C,OAAO,IAAI,cAAc,CAAC,SAAS,CAAC,CAAC;IACvC,CAAC;IAED,UAAU,CAAC,SAAiC,EAAE,GAAW;QACvD,OAAO,IAAI,cAAc,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAC5C,CAAC;IAED,UAAU;QACR,OAAO,MAAM,EAAE,CAAC;IAClB,CAAC;CACF"}
@@ -0,0 +1,3 @@
1
+ export type SupportedHashAlgorithm = 'sha256';
2
+ export type SupportedOutputEncoding = 'base64' | 'hex';
3
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/platform/crypto/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,sBAAsB,GAAG,QAAQ,CAAC;AAC9C,MAAM,MAAM,uBAAuB,GAAG,QAAQ,GAAG,KAAK,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/react-native-sse/types.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/platform/crypto/types.ts"],"names":[],"mappings":""}
@@ -1,4 +1,12 @@
1
- import type { LDLogger, Platform } from '@launchdarkly/js-client-sdk-common';
1
+ import type { EventName, EventSource, EventSourceInitDict, LDLogger, Options, Platform, Requests, Response } from '@launchdarkly/js-client-sdk-common';
2
+ import RNEventSource from '../fromExternal/react-native-sse';
3
+ export declare class PlatformRequests implements Requests {
4
+ private readonly logger;
5
+ eventSource?: RNEventSource<EventName>;
6
+ constructor(logger: LDLogger);
7
+ createEventSource(url: string, eventSourceInitDict: EventSourceInitDict): EventSource;
8
+ fetch(url: string, options?: Options): Promise<Response>;
9
+ }
2
10
  declare const createPlatform: (logger: LDLogger) => Platform;
3
11
  export default createPlatform;
4
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/platform/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EASV,QAAQ,EAER,QAAQ,EAMT,MAAM,oCAAoC,CAAC;AAiF5C,QAAA,MAAM,cAAc,WAAY,QAAQ,KAAG,QAMzC,CAAC;AAEH,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/platform/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,SAAS,EACT,WAAW,EACX,mBAAmB,EAEnB,QAAQ,EACR,OAAO,EACP,QAAQ,EAER,QAAQ,EACR,QAAQ,EAGT,MAAM,oCAAoC,CAAC;AAG5C,OAAO,aAAa,MAAM,kCAAkC,CAAC;AAM7D,qBAAa,gBAAiB,YAAW,QAAQ;IAGnC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAFnC,WAAW,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;gBAEV,MAAM,EAAE,QAAQ;IAE7C,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,mBAAmB,EAAE,mBAAmB,GAAG,WAAW;IAUrF,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;CAIzD;AA2DD,QAAA,MAAM,cAAc,WAAY,QAAQ,KAAG,QAMzC,CAAC;AAEH,eAAe,cAAc,CAAC"}
@@ -1,13 +1,20 @@
1
1
  import { name, version } from '../../package.json';
2
- import { btoa, uuidv4 } from '../polyfills';
3
- import RNEventSource from '../react-native-sse';
2
+ import RNEventSource from '../fromExternal/react-native-sse';
3
+ import { btoa } from '../polyfills';
4
+ import { ldApplication, ldDevice } from './autoEnv';
4
5
  import AsyncStorage from './ConditionalAsyncStorage';
5
- class PlatformRequests {
6
+ import PlatformCrypto from './crypto';
7
+ export class PlatformRequests {
8
+ constructor(logger) {
9
+ this.logger = logger;
10
+ }
6
11
  createEventSource(url, eventSourceInitDict) {
7
- return new RNEventSource(url, {
12
+ this.eventSource = new RNEventSource(url, {
8
13
  headers: eventSourceInitDict.headers,
9
14
  retryAndHandleError: eventSourceInitDict.errorFilter,
15
+ logger: this.logger,
10
16
  });
17
+ return this.eventSource;
11
18
  }
12
19
  fetch(url, options) {
13
20
  // @ts-ignore
@@ -20,28 +27,26 @@ class PlatformEncoding {
20
27
  }
21
28
  }
22
29
  class PlatformInfo {
30
+ constructor(logger) {
31
+ this.logger = logger;
32
+ }
23
33
  platformData() {
24
- return {
34
+ const data = {
25
35
  name: 'React Native',
36
+ ld_application: ldApplication,
37
+ ld_device: ldDevice,
26
38
  };
39
+ this.logger.debug(`platformData: ${JSON.stringify(data, null, 2)}`);
40
+ return data;
27
41
  }
28
42
  sdkData() {
29
- return {
43
+ const data = {
30
44
  name,
31
45
  version,
32
46
  userAgentBase: 'ReactNativeClient',
33
47
  };
34
- }
35
- }
36
- class PlatformCrypto {
37
- createHash(_algorithm) {
38
- throw new Error('not implemented');
39
- }
40
- createHmac(_algorithm, _key) {
41
- throw new Error('not implemented');
42
- }
43
- randomUUID() {
44
- return uuidv4();
48
+ this.logger.debug(`sdkData: ${JSON.stringify(data, null, 2)}`);
49
+ return data;
45
50
  }
46
51
  }
47
52
  class PlatformStorage {
@@ -72,8 +77,8 @@ class PlatformStorage {
72
77
  }
73
78
  const createPlatform = (logger) => ({
74
79
  crypto: new PlatformCrypto(),
75
- info: new PlatformInfo(),
76
- requests: new PlatformRequests(),
80
+ info: new PlatformInfo(logger),
81
+ requests: new PlatformRequests(logger),
77
82
  encoding: new PlatformEncoding(),
78
83
  storage: new PlatformStorage(logger),
79
84
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/platform/index.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,aAAa,MAAM,qBAAqB,CAAC;AAChD,OAAO,YAAY,MAAM,2BAA2B,CAAC;AAErD,MAAM,gBAAgB;IACpB,iBAAiB,CAAC,GAAW,EAAE,mBAAwC;QACrE,OAAO,IAAI,aAAa,CAAY,GAAG,EAAE;YACvC,OAAO,EAAE,mBAAmB,CAAC,OAAO;YACpC,mBAAmB,EAAE,mBAAmB,CAAC,WAAW;SACrD,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,GAAW,EAAE,OAAiB;QAClC,aAAa;QACb,OAAO,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC7B,CAAC;CACF;AACD,MAAM,gBAAgB;IACpB,IAAI,CAAC,IAAY;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;CACF;AAED,MAAM,YAAY;IAChB,YAAY;QACV,OAAO;YACL,IAAI,EAAE,cAAc;SACrB,CAAC;IACJ,CAAC;IAED,OAAO;QACL,OAAO;YACL,IAAI;YACJ,OAAO;YACP,aAAa,EAAE,mBAAmB;SACnC,CAAC;IACJ,CAAC;CACF;AAED,MAAM,cAAc;IAClB,UAAU,CAAC,UAAkB;QAC3B,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IAED,UAAU,CAAC,UAAkB,EAAE,IAAY;QACzC,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IAED,UAAU;QACR,OAAO,MAAM,EAAE,CAAC;IAClB,CAAC;CACF;AAED,MAAM,eAAe;IACnB,YAA6B,MAAgB;QAAhB,WAAM,GAAN,MAAM,CAAU;IAAG,CAAC;IACjD,KAAK,CAAC,KAAK,CAAC,GAAW;QACrB,MAAM,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,IAAI;YACF,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC9C,OAAO,KAAK,aAAL,KAAK,cAAL,KAAK,GAAI,IAAI,CAAC;SACtB;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mCAAmC,GAAG,YAAY,KAAK,EAAE,CAAC,CAAC;YAC7E,OAAO,IAAI,CAAC;SACb;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,KAAa;QAClC,IAAI;YACF,MAAM,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;SACxC;QAAC,OAAO,KAAK,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,GAAG,YAAY,KAAK,YAAY,KAAK,EAAE,CAAC,CAAC;SAC9F;IACH,CAAC;CACF;AAED,MAAM,cAAc,GAAG,CAAC,MAAgB,EAAY,EAAE,CAAC,CAAC;IACtD,MAAM,EAAE,IAAI,cAAc,EAAE;IAC5B,IAAI,EAAE,IAAI,YAAY,EAAE;IACxB,QAAQ,EAAE,IAAI,gBAAgB,EAAE;IAChC,QAAQ,EAAE,IAAI,gBAAgB,EAAE;IAChC,OAAO,EAAE,IAAI,eAAe,CAAC,MAAM,CAAC;CACrC,CAAC,CAAC;AAEH,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/platform/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Ripped from:
3
+ * https://dev.to/medaimane/localization-and-internationalization-in-react-native-reaching-global-audiences-3acj
4
+ */
5
+ declare const locale: any;
6
+ export default locale;
7
+ //# sourceMappingURL=locale.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"locale.d.ts","sourceRoot":"","sources":["../../../src/platform/locale.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,QAAA,MAAM,MAAM,KAGoC,CAAC;AAEjD,eAAe,MAAM,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { NativeModules, Platform } from 'react-native';
2
+ /**
3
+ * Ripped from:
4
+ * https://dev.to/medaimane/localization-and-internationalization-in-react-native-reaching-global-audiences-3acj
5
+ */
6
+ const locale = Platform.OS === 'ios'
7
+ ? NativeModules.SettingsManager.settings.AppleLocale // iOS
8
+ : NativeModules.I18nManager.localeIdentifier; // Android and rest
9
+ export default locale;
10
+ //# sourceMappingURL=locale.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"locale.js","sourceRoot":"","sources":["../../../src/platform/locale.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAEvD;;;GAGG;AACH,MAAM,MAAM,GACV,QAAQ,CAAC,EAAE,KAAK,KAAK;IACnB,CAAC,CAAC,aAAa,CAAC,eAAe,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM;IAC3D,CAAC,CAAC,aAAa,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,mBAAmB;AAErE,eAAe,MAAM,CAAC"}
@@ -2,7 +2,7 @@
2
2
  * Ripped from:
3
3
  * https://github.com/facebook/react-native/blob/main/packages/react-native/Libraries/Events/CustomEvent.js#L21
4
4
  */
5
- import { Event } from 'event-target-shim';
5
+ import { Event } from 'event-target-shim/es5';
6
6
  type CustomEventOptions = {
7
7
  bubbles?: boolean;
8
8
  cancelable?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"CustomEvent.d.ts","sourceRoot":"","sources":["../../../src/polyfills/CustomEvent.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,KAAK,kBAAkB,GAAG;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,GAAG,CAAC;CACd,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,KAAK;IAC5C,MAAM,EAAE,GAAG,CAAC;gBAEA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB;CAMzD"}
1
+ {"version":3,"file":"CustomEvent.d.ts","sourceRoot":"","sources":["../../../src/polyfills/CustomEvent.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAE9C,KAAK,kBAAkB,GAAG;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,GAAG,CAAC;CACd,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,KAAK;IAC5C,MAAM,EAAE,GAAG,CAAC;gBAEA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB;CAMzD"}
@@ -2,7 +2,7 @@
2
2
  * Ripped from:
3
3
  * https://github.com/facebook/react-native/blob/main/packages/react-native/Libraries/Events/CustomEvent.js#L21
4
4
  */
5
- import { Event } from 'event-target-shim';
5
+ import { Event } from 'event-target-shim/es5';
6
6
  export default class CustomEvent extends Event {
7
7
  constructor(typeArg, options) {
8
8
  const { bubbles, cancelable, composed, detail } = options;
@@ -1 +1 @@
1
- {"version":3,"file":"CustomEvent.js","sourceRoot":"","sources":["../../../src/polyfills/CustomEvent.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAS1C,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,KAAK;IAG5C,YAAY,OAAe,EAAE,OAA2B;QACtD,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAC1D,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC;QAElD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,2DAA2D;IACnF,CAAC;CACF"}
1
+ {"version":3,"file":"CustomEvent.js","sourceRoot":"","sources":["../../../src/polyfills/CustomEvent.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAS9C,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,KAAK;IAG5C,YAAY,OAAe,EAAE,OAA2B;QACtD,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAC1D,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC,CAAC;QAElD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC,2DAA2D;IACnF,CAAC;CACF"}
@@ -1,2 +1,3 @@
1
- export default function btoa(s: string): string;
1
+ export declare function btoa(s: string): string;
2
+ export declare function base64FromByteArray(a: Uint8Array): string;
2
3
  //# sourceMappingURL=btoa.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"btoa.d.ts","sourceRoot":"","sources":["../../../src/polyfills/btoa.ts"],"names":[],"mappings":"AAUA,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,CAAC,EAAE,MAAM,UAErC"}
1
+ {"version":3,"file":"btoa.d.ts","sourceRoot":"","sources":["../../../src/polyfills/btoa.ts"],"names":[],"mappings":"AAUA,wBAAgB,IAAI,CAAC,CAAC,EAAE,MAAM,UAE7B;AAED,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,UAAU,UAEhD"}
@@ -6,7 +6,10 @@ function convertToByteArray(s) {
6
6
  }
7
7
  return Uint8Array.from(b);
8
8
  }
9
- export default function btoa(s) {
9
+ export function btoa(s) {
10
10
  return fromByteArray(convertToByteArray(s));
11
11
  }
12
+ export function base64FromByteArray(a) {
13
+ return fromByteArray(a);
14
+ }
12
15
  //# sourceMappingURL=btoa.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"btoa.js","sourceRoot":"","sources":["../../../src/polyfills/btoa.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,SAAS,kBAAkB,CAAC,CAAS;IACnC,MAAM,CAAC,GAAG,EAAE,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;QACpC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;KACzB;IACD,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,CAAS;IACpC,OAAO,aAAa,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9C,CAAC"}
1
+ {"version":3,"file":"btoa.js","sourceRoot":"","sources":["../../../src/polyfills/btoa.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,SAAS,kBAAkB,CAAC,CAAS;IACnC,MAAM,CAAC,GAAG,EAAE,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE;QACpC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;KACzB;IACD,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,CAAS;IAC5B,OAAO,aAAa,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,CAAa;IAC/C,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC;AAC1B,CAAC"}
@@ -1,5 +1,5 @@
1
- import btoa from './btoa';
2
- import uuidv4 from './uuid';
1
+ import { type Hasher, sha256 } from '../fromExternal/js-sha256';
2
+ import { base64FromByteArray, btoa } from './btoa';
3
3
  declare function setupPolyfill(): void;
4
- export { btoa, setupPolyfill, uuidv4 };
4
+ export { base64FromByteArray, btoa, type Hasher, setupPolyfill, sha256 };
5
5
  //# sourceMappingURL=index.d.ts.map