@nordicsemiconductor/pc-nrfconnect-shared 150.0.0 → 152.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/Changelog.md +31 -1
  2. package/nrfutil/sandbox.ts +6 -6
  3. package/package.json +4 -4
  4. package/src/App/App.test.tsx +11 -2
  5. package/src/App/App.tsx +3 -3
  6. package/src/Device/DeviceSelector/DeviceSelector.test.tsx +13 -0
  7. package/src/Device/DeviceSelector/DeviceSelector.tsx +6 -6
  8. package/src/Device/deviceLister.ts +4 -4
  9. package/src/ErrorBoundary/ErrorBoundary.test.tsx +5 -5
  10. package/src/ErrorBoundary/ErrorBoundary.tsx +14 -13
  11. package/src/Parsers/shellParser.ts +3 -3
  12. package/src/index.ts +2 -2
  13. package/src/telemetry/TelemetryMetadata.ts +9 -0
  14. package/src/telemetry/TelemetrySender.ts +80 -0
  15. package/src/telemetry/TelemetrySenderInMain.ts +80 -0
  16. package/src/telemetry/TelemetrySenderInRenderer.ts +86 -0
  17. package/src/telemetry/flatObject.test.ts +37 -0
  18. package/src/telemetry/flatObject.ts +19 -0
  19. package/src/telemetry/simplifyDevice.ts +20 -0
  20. package/src/telemetry/telemetry.ts +97 -0
  21. package/src/utils/persistentStore.ts +7 -7
  22. package/src/utils/systemReport.ts +1 -1
  23. package/src/utils/useHotKey.ts +2 -2
  24. package/typings/generated/src/ErrorBoundary/ErrorBoundary.d.ts +1 -1
  25. package/typings/generated/src/ErrorBoundary/ErrorBoundary.d.ts.map +1 -1
  26. package/typings/generated/src/index.d.ts +2 -2
  27. package/typings/generated/src/index.d.ts.map +1 -1
  28. package/typings/generated/src/telemetry/TelemetryMetadata.d.ts +4 -0
  29. package/typings/generated/src/telemetry/TelemetryMetadata.d.ts.map +1 -0
  30. package/typings/generated/src/telemetry/TelemetrySender.d.ts +24 -0
  31. package/typings/generated/src/telemetry/TelemetrySender.d.ts.map +1 -0
  32. package/typings/generated/src/telemetry/TelemetrySenderInMain.d.ts +15 -0
  33. package/typings/generated/src/telemetry/TelemetrySenderInMain.d.ts.map +1 -0
  34. package/typings/generated/src/telemetry/TelemetrySenderInRenderer.d.ts +15 -0
  35. package/typings/generated/src/telemetry/TelemetrySenderInRenderer.d.ts.map +1 -0
  36. package/typings/generated/src/telemetry/flatObject.d.ts +4 -0
  37. package/typings/generated/src/telemetry/flatObject.d.ts.map +1 -0
  38. package/typings/generated/src/telemetry/flatObject.test.d.ts +2 -0
  39. package/typings/generated/src/telemetry/flatObject.test.d.ts.map +1 -0
  40. package/typings/generated/src/{utils/usageDataCommon.d.ts → telemetry/simplifyDevice.d.ts} +2 -14
  41. package/typings/generated/src/telemetry/simplifyDevice.d.ts.map +1 -0
  42. package/typings/generated/src/telemetry/telemetry.d.ts +16 -0
  43. package/typings/generated/src/telemetry/telemetry.d.ts.map +1 -0
  44. package/typings/generated/src/utils/persistentStore.d.ts +4 -4
  45. package/typings/generated/src/utils/persistentStore.d.ts.map +1 -1
  46. package/src/utils/usageData.ts +0 -117
  47. package/src/utils/usageDataCommon.ts +0 -59
  48. package/src/utils/usageDataMain.ts +0 -119
  49. package/src/utils/usageDataRenderer.ts +0 -137
  50. package/typings/generated/src/utils/usageData.d.ts +0 -16
  51. package/typings/generated/src/utils/usageData.d.ts.map +0 -1
  52. package/typings/generated/src/utils/usageDataCommon.d.ts.map +0 -1
  53. package/typings/generated/src/utils/usageDataMain.d.ts +0 -10
  54. package/typings/generated/src/utils/usageDataMain.d.ts.map +0 -1
  55. package/typings/generated/src/utils/usageDataRenderer.d.ts +0 -10
  56. package/typings/generated/src/utils/usageDataRenderer.d.ts.map +0 -1
@@ -0,0 +1,37 @@
1
+ /*
2
+ * Copyright (c) 2023 Nordic Semiconductor ASA
3
+ *
4
+ * SPDX-License-Identifier: LicenseRef-Nordic-4-Clause
5
+ */
6
+
7
+ import flatObject from './flatObject';
8
+
9
+ describe('flatObject', () => {
10
+ it('is an empty object for nullish input', () => {
11
+ expect(flatObject(null)).toEqual({});
12
+ expect(flatObject(undefined)).toEqual({});
13
+ });
14
+
15
+ it('is an empty object for primitives', () => {
16
+ expect(flatObject(true)).toEqual({});
17
+ expect(flatObject(false)).toEqual({});
18
+ expect(flatObject(0)).toEqual({});
19
+ expect(flatObject(1)).toEqual({});
20
+ expect(flatObject(NaN)).toEqual({});
21
+ expect(flatObject(Symbol(''))).toEqual({});
22
+ });
23
+
24
+ it('flattens typical objects', () => {
25
+ expect(
26
+ flatObject({
27
+ top: true,
28
+ nested: { once: 1 },
29
+ and: { nested: { by: { multiple: 'levels' } } },
30
+ })
31
+ ).toEqual({
32
+ top: true,
33
+ 'nested.once': 1,
34
+ 'and.nested.by.multiple': 'levels',
35
+ });
36
+ });
37
+ });
@@ -0,0 +1,19 @@
1
+ /*
2
+ * Copyright (c) 2023 Nordic Semiconductor ASA
3
+ *
4
+ * SPDX-License-Identifier: LicenseRef-Nordic-4-Clause
5
+ */
6
+ import TelemetryMetadata from './TelemetryMetadata';
7
+
8
+ const flatObject = (obj?: unknown, parentKey?: string): TelemetryMetadata =>
9
+ Object.entries(obj ?? {}).reduce((acc, [key, value]) => {
10
+ const newKey = parentKey ? `${parentKey}.${key}` : key;
11
+ return {
12
+ ...acc,
13
+ ...(typeof value === 'object'
14
+ ? flatObject(value, newKey)
15
+ : { [newKey]: value }),
16
+ };
17
+ }, {});
18
+
19
+ export default flatObject;
@@ -0,0 +1,20 @@
1
+ /*
2
+ * Copyright (c) 2023 Nordic Semiconductor ASA
3
+ *
4
+ * SPDX-License-Identifier: LicenseRef-Nordic-4-Clause
5
+ */
6
+
7
+ import { type Device } from '../Device/deviceSlice';
8
+
9
+ export default (device: Device) => ({
10
+ devkit: device.devkit,
11
+ serialPorts: device.serialPorts,
12
+ traits: device.traits,
13
+ serialNumber: device.serialNumber,
14
+ enumerationID: device.id,
15
+ usb: {
16
+ product: device.usb?.product,
17
+ manufacturer: device.usb?.manufacturer,
18
+ deviceDescriptor: device.usb?.device.descriptor,
19
+ },
20
+ });
@@ -0,0 +1,97 @@
1
+ /*
2
+ * Copyright (c) 2023 Nordic Semiconductor ASA
3
+ *
4
+ * SPDX-License-Identifier: LicenseRef-Nordic-4-Clause
5
+ */
6
+
7
+ import { Logger } from 'winston';
8
+
9
+ import { packageJson } from '../utils/packageJson';
10
+ import flatObject from './flatObject';
11
+ import TelemetryMetadata from './TelemetryMetadata';
12
+ import TelemetrySender from './TelemetrySender';
13
+ import TelemetrySenderInMain from './TelemetrySenderInMain';
14
+ import TelemetrySenderInRenderer from './TelemetrySenderInRenderer';
15
+
16
+ const isRenderer = process && process.type === 'renderer';
17
+
18
+ let cachedSender: TelemetrySender | undefined;
19
+
20
+ const newTelemetrySender = () => {
21
+ cachedSender = isRenderer
22
+ ? new TelemetrySenderInRenderer()
23
+ : new TelemetrySenderInMain();
24
+
25
+ return cachedSender;
26
+ };
27
+
28
+ // We experienced that apps sometimes freeze when closing the window
29
+ // until the telemetry events are sent. But as far as we observed so
30
+ // far this only happens in the renderer processes
31
+ if (isRenderer) {
32
+ globalThis.addEventListener('beforeunload', () => cachedSender?.flush());
33
+ }
34
+
35
+ const getTelemetrySenderUnconditionally = () =>
36
+ cachedSender ?? newTelemetrySender();
37
+
38
+ const getTelemetrySenderIfEnabled = () => {
39
+ const sender = getTelemetrySenderUnconditionally();
40
+
41
+ if (sender.getIsSendingTelemetry()) return sender;
42
+
43
+ return undefined;
44
+ };
45
+
46
+ // Functions which can always be called
47
+
48
+ const setLogger = (logger: Logger) =>
49
+ getTelemetrySenderUnconditionally().setLogger(logger);
50
+ const setUsersAgreedToTelemetry = (hasAgreed: boolean) =>
51
+ getTelemetrySenderUnconditionally().setUsersAgreedToTelemetry(hasAgreed);
52
+ const getIsSendingTelemetry = () =>
53
+ getTelemetrySenderUnconditionally().getIsSendingTelemetry();
54
+ const setUsersWithdrewTelemetryAgreement = () =>
55
+ getTelemetrySenderUnconditionally().setUsersWithdrewTelemetryAgreement();
56
+ const enableTelemetry = () =>
57
+ getTelemetrySenderUnconditionally().allowTelemetryForCurrentApp();
58
+
59
+ // Functions which will be no-ops if telemetry is disabled for some reason
60
+
61
+ const getFriendlyAppName = () =>
62
+ packageJson().name.replace('pc-nrfconnect-', '');
63
+
64
+ const sendEvent = (action: string, metadata?: TelemetryMetadata) =>
65
+ getTelemetrySenderIfEnabled()?.sendEvent(
66
+ `${getFriendlyAppName()}: ${action}`,
67
+ flatObject(metadata)
68
+ );
69
+
70
+ const sendPageView = (pageName: string) =>
71
+ getTelemetrySenderIfEnabled()?.sendPageView(
72
+ `${getFriendlyAppName()} - ${pageName}`
73
+ );
74
+
75
+ const sendMetric = (name: string, average: number) =>
76
+ getTelemetrySenderIfEnabled()?.sendMetric(name, average);
77
+
78
+ const sendTrace = (message: string) =>
79
+ getTelemetrySenderIfEnabled()?.sendTrace(message);
80
+
81
+ const sendErrorReport = (error: string | Error) =>
82
+ getTelemetrySenderIfEnabled()?.sendErrorReport(
83
+ typeof error === 'string' ? new Error(error) : error
84
+ );
85
+
86
+ export default {
87
+ setLogger,
88
+ setUsersAgreedToTelemetry,
89
+ setUsersWithdrewTelemetryAgreement,
90
+ getIsSendingTelemetry,
91
+ sendErrorReport,
92
+ sendEvent,
93
+ sendPageView,
94
+ sendMetric,
95
+ sendTrace,
96
+ enableTelemetry,
97
+ };
@@ -115,22 +115,22 @@ export const getPersistedTerminalSettings = (
115
115
  return undefined;
116
116
  };
117
117
 
118
- export const persistIsSendingUsageData = (value: boolean) =>
118
+ export const persistHasUserAgreedToTelemetry = (value: boolean) =>
119
119
  sharedStore.set('isSendingTelemetry', value);
120
- export const getIsSendingUsageData = () =>
120
+ export const getHasUserAgreedToTelemetry = () =>
121
121
  sharedStore.get('isSendingTelemetry', undefined) as boolean | undefined;
122
- export const deleteIsSendingUsageData = () =>
122
+ export const deleteHasUserAgreedToTelemetry = () =>
123
123
  sharedStore.delete('isSendingTelemetry');
124
124
 
125
- const existingUsageDataClientId = () => sharedStore.get('clientId');
126
- const newUsageDataClientId = () => {
125
+ const existingTelemetryClientId = () => sharedStore.get('clientId');
126
+ const newTelemetryClientId = () => {
127
127
  const clientId = uuid();
128
128
  sharedStore.set('clientId', clientId);
129
129
 
130
130
  return clientId;
131
131
  };
132
- export const getUsageDataClientId = () =>
133
- existingUsageDataClientId() ?? newUsageDataClientId();
132
+ export const getTelemetryClientId = () =>
133
+ existingTelemetryClientId() ?? newTelemetryClientId();
134
134
 
135
135
  // This one must be initialised lazily, because the package.json is not read yet when this module is initialised.
136
136
  // This can probably be changed when we bundle shared with the apps.
@@ -1,5 +1,5 @@
1
1
  /*
2
- * Copyright (c) 2105 Nordic Semiconductor ASA
2
+ * Copyright (c) 2023 Nordic Semiconductor ASA
3
3
  *
4
4
  * SPDX-License-Identifier: LicenseRef-Nordic-4-Clause
5
5
  */
@@ -9,7 +9,7 @@ import { useDispatch } from 'react-redux';
9
9
  import Mousetrap from 'mousetrap';
10
10
 
11
11
  import { addShortcut, removeShortcut, Shortcut } from '../About/shortcutSlice';
12
- import usageData from './usageData';
12
+ import telemetry from '../telemetry/telemetry';
13
13
 
14
14
  const useNewHotKey = (shortcut: Shortcut, deps: DependencyList = []) => {
15
15
  const dispatch = useDispatch();
@@ -18,7 +18,7 @@ const useNewHotKey = (shortcut: Shortcut, deps: DependencyList = []) => {
18
18
 
19
19
  Mousetrap.bind(shortcut.hotKey, (_e, combo) => {
20
20
  shortcut.action();
21
- usageData.sendUsageData('pressed hotkey', { combo });
21
+ telemetry.sendEvent('pressed hotkey', { combo });
22
22
  });
23
23
 
24
24
  return () => {
@@ -8,7 +8,7 @@ interface Props {
8
8
  devices?: Device[];
9
9
  appName?: string;
10
10
  restoreDefaults?: () => void;
11
- sendUsageData?: (message: string) => void;
11
+ sendTelemetryEvent?: (message: string) => void;
12
12
  }
13
13
  declare class ErrorBoundary extends React.Component<Props, {
14
14
  hasError: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"ErrorBoundary.d.ts","sourceRoot":"","sources":["../../../../src/ErrorBoundary/ErrorBoundary.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIzC,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAW/C,OAAO,uBAAuB,CAAC;AAU/B,UAAU,KAAK;IACX,QAAQ,EAAE,SAAS,CAAC;IACpB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7C;AAOD,cAAM,aAAc,SAAQ,KAAK,CAAC,SAAS,CACvC,KAAK,EACL;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAC1E;gBACe,KAAK,EAAE,KAAK;IASxB,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,KAAK;;;;IAO5C,iBAAiB,CAAC,KAAK,EAAE,KAAK;IAiB9B,MAAM;CA8FT;AAED,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"ErrorBoundary.d.ts","sourceRoot":"","sources":["../../../../src/ErrorBoundary/ErrorBoundary.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIzC,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAW/C,OAAO,uBAAuB,CAAC;AAM/B,UAAU,KAAK;IACX,QAAQ,EAAE,SAAS,CAAC;IACpB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAClD;AAOD,cAAM,aAAc,SAAQ,KAAK,CAAC,SAAS,CACvC,KAAK,EACL;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAC1E;gBACe,KAAK,EAAE,KAAK;IASxB,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,KAAK;;;;IAO5C,iBAAiB,CAAC,KAAK,EAAE,KAAK;IAsB9B,MAAM;CA8FT;AAED,eAAe,aAAa,CAAC"}
@@ -50,8 +50,8 @@ export { colors } from './utils/colors';
50
50
  export { getAppDir, getAppFile, getAppDataDir, getAppLogDir, getUserDataDir, } from './utils/appDirs';
51
51
  export { openUrl, openFile } from './utils/open';
52
52
  export { default as systemReport } from './utils/systemReport';
53
- export { default as usageData } from './utils/usageData';
54
- export { type Metadata as UsageDataMetadata } from './utils/usageDataCommon';
53
+ export { default as telemetry } from './telemetry/telemetry';
54
+ export { type default as TelemetryMetadata } from './telemetry/TelemetryMetadata';
55
55
  export { default as classNames } from './utils/classNames';
56
56
  export { truncateMiddle } from './utils/truncateMiddle';
57
57
  export { default as useHotKey } from './utils/useHotKey';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export default interface TelemetryMetadata {
2
+ [key: string]: unknown;
3
+ }
4
+ //# sourceMappingURL=TelemetryMetadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TelemetryMetadata.d.ts","sourceRoot":"","sources":["../../../../src/telemetry/TelemetryMetadata.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,OAAO,WAAW,iBAAiB;IACtC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B"}
@@ -0,0 +1,24 @@
1
+ import { Logger } from 'winston';
2
+ import TelemetryMetadata from './TelemetryMetadata';
3
+ type MaybePromise<T> = T | Promise<T>;
4
+ export default abstract class TelemetrySender {
5
+ readonly INSTRUMENTATION_KEY = "4b8b1a39-37c7-479e-a684-d4763c7c647c";
6
+ logger?: Logger;
7
+ setLogger: (logger: Logger) => void;
8
+ isTelemetryAllowedForCurrentApp: boolean;
9
+ allowTelemetryForCurrentApp: () => void;
10
+ getIsSendingTelemetry: () => boolean;
11
+ sendAgreementEvent(): Promise<void>;
12
+ sendDisagreementEvent(): void;
13
+ setUsersAgreedToTelemetry(hasAgreed: boolean): Promise<void>;
14
+ setUsersWithdrewTelemetryAgreement(): void;
15
+ sendMinimalEvent(action: string): void;
16
+ abstract sendEvent(action: string, metadata?: TelemetryMetadata): MaybePromise<void>;
17
+ abstract sendPageView(pageName: string): MaybePromise<void>;
18
+ abstract sendMetric(name: string, average: number): MaybePromise<void>;
19
+ abstract sendTrace(message: string): MaybePromise<void>;
20
+ abstract sendErrorReport(error: Error): MaybePromise<void>;
21
+ abstract flush(): MaybePromise<void>;
22
+ }
23
+ export {};
24
+ //# sourceMappingURL=TelemetrySender.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TelemetrySender.d.ts","sourceRoot":"","sources":["../../../../src/telemetry/TelemetrySender.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAOjC,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AAEpD,KAAK,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAEtC,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,eAAe;IACzC,QAAQ,CAAC,mBAAmB,0CAA0C;IAEtE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,WAAY,MAAM,UAEzB;IAEF,+BAA+B,UAAS;IACxC,2BAA2B,aAEzB;IAEF,qBAAqB,gBAEsB;IAErC,kBAAkB;IAOxB,qBAAqB;IAIf,yBAAyB,CAAC,SAAS,EAAE,OAAO;IAclD,kCAAkC;IAMlC,gBAAgB,CAAC,MAAM,EAAE,MAAM;IAI/B,QAAQ,CAAC,SAAS,CACd,MAAM,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE,iBAAiB,GAC7B,YAAY,CAAC,IAAI,CAAC;IACrB,QAAQ,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC;IAC3D,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC;IACtE,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC;IACvD,QAAQ,CAAC,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,YAAY,CAAC,IAAI,CAAC;IAC1D,QAAQ,CAAC,KAAK,IAAI,YAAY,CAAC,IAAI,CAAC;CACvC"}
@@ -0,0 +1,15 @@
1
+ import { TelemetryClient } from 'applicationinsights';
2
+ import TelemetryMetadata from './TelemetryMetadata';
3
+ import TelemetrySender from './TelemetrySender';
4
+ export default class TelemetrySenderInMain extends TelemetrySender {
5
+ client?: TelemetryClient;
6
+ initClient(): TelemetryClient;
7
+ getClient: () => TelemetryClient;
8
+ sendEvent: (action: string, metadata?: TelemetryMetadata) => void;
9
+ sendPageView: (pageName: string) => void;
10
+ sendMetric: (name: string, value: number) => void;
11
+ sendTrace: (message: string) => void;
12
+ sendErrorReport: (error: Error) => void;
13
+ flush: () => void;
14
+ }
15
+ //# sourceMappingURL=TelemetrySenderInMain.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TelemetrySenderInMain.d.ts","sourceRoot":"","sources":["../../../../src/telemetry/TelemetrySenderInMain.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAItD,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAEhD,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,eAAe;IAC9D,MAAM,CAAC,EAAE,eAAe,CAAC;IAEzB,UAAU;IA0CV,SAAS,wBAA0C;IAEnD,SAAS,WAAY,MAAM,aAAa,iBAAiB,UAGvD;IAEF,YAAY,aAAc,MAAM,UACuB;IAEvD,UAAU,SAAU,MAAM,SAAS,MAAM,UACS;IAElD,SAAS,YAAa,MAAM,UAA8C;IAE1E,eAAe,UAAW,KAAK,UAG7B;IAEF,KAAK,aAAkC;CAC1C"}
@@ -0,0 +1,15 @@
1
+ import { ApplicationInsights } from '@microsoft/applicationinsights-web';
2
+ import TelemetryMetadata from './TelemetryMetadata';
3
+ import TelemetrySender from './TelemetrySender';
4
+ export default class TelemetrySenderInRenderer extends TelemetrySender {
5
+ client?: ApplicationInsights;
6
+ initClient(): Promise<ApplicationInsights>;
7
+ getClient: () => ApplicationInsights | Promise<ApplicationInsights>;
8
+ sendEvent: (action: string, metadata?: TelemetryMetadata) => Promise<void>;
9
+ sendPageView: (pageName: string) => Promise<void>;
10
+ sendMetric: (name: string, average: number) => Promise<void>;
11
+ sendTrace: (message: string) => Promise<void>;
12
+ sendErrorReport: (error: Error) => Promise<void>;
13
+ flush: () => Promise<void>;
14
+ }
15
+ //# sourceMappingURL=TelemetrySenderInRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TelemetrySenderInRenderer.d.ts","sourceRoot":"","sources":["../../../../src/telemetry/TelemetrySenderInRenderer.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AAMzE,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AACpD,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAEhD,MAAM,CAAC,OAAO,OAAO,yBAA0B,SAAQ,eAAe;IAClE,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAEvB,UAAU;IA6ChB,SAAS,2DAA0C;IAEnD,SAAS,WAAkB,MAAM,aAAa,iBAAiB,mBAG7D;IAEF,YAAY,aAAoB,MAAM,mBACyB;IAE/D,UAAU,SAAgB,MAAM,WAAW,MAAM,mBACW;IAE5D,SAAS,YAAmB,MAAM,mBACmB;IAErD,eAAe,UAAiB,KAAK,mBAGnC;IAEF,KAAK,sBAAgD;CACxD"}
@@ -0,0 +1,4 @@
1
+ import TelemetryMetadata from './TelemetryMetadata';
2
+ declare const flatObject: (obj?: unknown, parentKey?: string) => TelemetryMetadata;
3
+ export default flatObject;
4
+ //# sourceMappingURL=flatObject.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flatObject.d.ts","sourceRoot":"","sources":["../../../../src/telemetry/flatObject.ts"],"names":[],"mappings":"AAKA,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;AAEpD,QAAA,MAAM,UAAU,SAAU,OAAO,cAAc,MAAM,KAAG,iBAS9C,CAAC;AAEX,eAAe,UAAU,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=flatObject.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flatObject.test.d.ts","sourceRoot":"","sources":["../../../../src/telemetry/flatObject.test.ts"],"names":[],"mappings":""}
@@ -1,10 +1,5 @@
1
- import winston from 'winston';
2
1
  import { type Device } from '../Device/deviceSlice';
3
- export declare const INSTRUMENTATION_KEY = "4b8b1a39-37c7-479e-a684-d4763c7c647c";
4
- export interface Metadata {
5
- [key: string]: unknown;
6
- }
7
- export declare const simplifyDeviceForLogging: (device: Device) => {
2
+ declare const _default: (device: Device) => {
8
3
  devkit: import("../../nrfutil/device/common").NordicDevKit | undefined;
9
4
  serialPorts: import("../../nrfutil/device").DeviceSerialPort[] | undefined;
10
5
  traits: import("../../nrfutil/device").DeviceTraits;
@@ -16,12 +11,5 @@ export declare const simplifyDeviceForLogging: (device: Device) => {
16
11
  deviceDescriptor: import("../../nrfutil/device/common").USBDeviceDescriptor | undefined;
17
12
  };
18
13
  };
19
- declare const _default: {
20
- setLogger: (log: winston.Logger) => void;
21
- getLogger: () => winston.Logger | undefined;
22
- isEnabled: () => boolean | undefined;
23
- getShouldSendTelemetry: (forceSend?: boolean | undefined) => boolean | undefined;
24
- enableTelemetry: () => void;
25
- };
26
14
  export default _default;
27
- //# sourceMappingURL=usageDataCommon.d.ts.map
15
+ //# sourceMappingURL=simplifyDevice.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simplifyDevice.d.ts","sourceRoot":"","sources":["../../../../src/telemetry/simplifyDevice.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;iCAE5B,MAAM;;;;;;;;;;;;AAA9B,wBAWG"}
@@ -0,0 +1,16 @@
1
+ import { Logger } from 'winston';
2
+ import TelemetryMetadata from './TelemetryMetadata';
3
+ declare const _default: {
4
+ setLogger: (logger: Logger) => void;
5
+ setUsersAgreedToTelemetry: (hasAgreed: boolean) => Promise<void>;
6
+ setUsersWithdrewTelemetryAgreement: () => void;
7
+ getIsSendingTelemetry: () => boolean;
8
+ sendErrorReport: (error: string | Error) => (void | Promise<void>) | undefined;
9
+ sendEvent: (action: string, metadata?: TelemetryMetadata | undefined) => (void | Promise<void>) | undefined;
10
+ sendPageView: (pageName: string) => (void | Promise<void>) | undefined;
11
+ sendMetric: (name: string, average: number) => (void | Promise<void>) | undefined;
12
+ sendTrace: (message: string) => (void | Promise<void>) | undefined;
13
+ enableTelemetry: () => void;
14
+ };
15
+ export default _default;
16
+ //# sourceMappingURL=telemetry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../../../../src/telemetry/telemetry.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAIjC,OAAO,iBAAiB,MAAM,qBAAqB,CAAC;;;;;;;;;;;;;AA2EpD,wBAWE"}
@@ -23,10 +23,10 @@ export declare const persistSerialPortSettings: (serialNumber: string, serialPor
23
23
  export declare const getPersistedSerialPortSettings: (serialNumber: string) => SerialSettings | undefined;
24
24
  export declare const persistTerminalSettings: (device: Device, vComIndex: number, terminalSettings: TerminalSettings) => void;
25
25
  export declare const getPersistedTerminalSettings: (device: Device, vComIndex: number) => TerminalSettings | undefined;
26
- export declare const persistIsSendingUsageData: (value: boolean) => void;
27
- export declare const getIsSendingUsageData: () => boolean | undefined;
28
- export declare const deleteIsSendingUsageData: () => void;
29
- export declare const getUsageDataClientId: () => string;
26
+ export declare const persistHasUserAgreedToTelemetry: (value: boolean) => void;
27
+ export declare const getHasUserAgreedToTelemetry: () => boolean | undefined;
28
+ export declare const deleteHasUserAgreedToTelemetry: () => void;
29
+ export declare const getTelemetryClientId: () => string;
30
30
  interface SharedAppSpecificStoreSchema {
31
31
  currentPane?: number;
32
32
  isLogVisible?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"persistentStore.d.ts","sourceRoot":"","sources":["../../../../src/utils/persistentStore.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,MAAM,gBAAgB,CAAC;AACnC,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAInD,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAIpD,MAAM,WAAW,cAAc;IAC3B,iBAAiB,EAAE,IAAI,CAAC,qBAAqB,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC,CAAC;IACxE,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;CACxB;AAWD,eAAO,MAAM,eAAe,iBAAkB,MAAM,YAAY,MAAM,SACjB,CAAC;AACtD,eAAO,MAAM,oBAAoB,iBAAkB,MAAM,WACA,CAAC;AAE1D,eAAO,MAAM,iBAAiB,iBAAkB,MAAM,SAAS,OAAO,SACrB,CAAC;AAClD,eAAO,MAAM,sBAAsB,iBAAkB,MAAM,YACC,CAAC;AAE7D,eAAO,MAAM,aAAa,YAAmB,MAAM,UAAU,MAAM,kBAQlE,CAAC;AACF,eAAO,MAAM,kBAAkB,YAAmB,MAAM,oBAcvD,CAAC;AAEF,eAAO,MAAM,yBAAyB,iBACpB,MAAM,sBACA,KAAK,cAAc,EAAE,aAAa,CAAC,SAKrD,CAAC;AACP,eAAO,MAAM,8BAA8B,iBACzB,MAAM,KACrB,cAAc,GAAG,SAMnB,CAAC;AACF,eAAO,MAAM,uBAAuB,WACxB,MAAM,aACH,MAAM,oBACC,gBAAgB,SAQrC,CAAC;AACF,eAAO,MAAM,4BAA4B,WAC7B,MAAM,aACH,MAAM,KAClB,gBAAgB,GAAG,SAUrB,CAAC;AAEF,eAAO,MAAM,yBAAyB,UAAW,OAAO,SACR,CAAC;AACjD,eAAO,MAAM,qBAAqB,2BACyC,CAAC;AAC5E,eAAO,MAAM,wBAAwB,YACO,CAAC;AAS7C,eAAO,MAAM,oBAAoB,cACwB,CAAC;AAM1D,UAAU,4BAA4B;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,eAAO,MAAM,mBAAmB,sDAKlB,MAAM,OAAO,CAAC,GAAG,CAAC,sDAe/B,CAAC;AAEF,eAAO,MAAM,kBAAkB,gBAAiB,MAAM,SAIjD,CAAC;AACN,eAAO,MAAM,uBAAuB,0BACsC,CAAC;AAC3E,eAAO,MAAM,iBAAiB,YAAa,OAAO,SAI7C,CAAC;AAEN,eAAO,MAAM,uBAAuB,UAAW,OAAO,SAIjD,CAAC;AACN,eAAO,MAAM,mBAAmB,eAI3B,CAAC;AAIN,eAAO,MAAM,gCAAgC,YAC8B,CAAC;AAE5E,eAAO,MAAM,sBAAsB,2BACwC,CAAC"}
1
+ {"version":3,"file":"persistentStore.d.ts","sourceRoot":"","sources":["../../../../src/utils/persistentStore.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,KAAK,MAAM,gBAAgB,CAAC;AACnC,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAInD,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAIpD,MAAM,WAAW,cAAc;IAC3B,iBAAiB,EAAE,IAAI,CAAC,qBAAqB,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC,CAAC;IACxE,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;CACxB;AAWD,eAAO,MAAM,eAAe,iBAAkB,MAAM,YAAY,MAAM,SACjB,CAAC;AACtD,eAAO,MAAM,oBAAoB,iBAAkB,MAAM,WACA,CAAC;AAE1D,eAAO,MAAM,iBAAiB,iBAAkB,MAAM,SAAS,OAAO,SACrB,CAAC;AAClD,eAAO,MAAM,sBAAsB,iBAAkB,MAAM,YACC,CAAC;AAE7D,eAAO,MAAM,aAAa,YAAmB,MAAM,UAAU,MAAM,kBAQlE,CAAC;AACF,eAAO,MAAM,kBAAkB,YAAmB,MAAM,oBAcvD,CAAC;AAEF,eAAO,MAAM,yBAAyB,iBACpB,MAAM,sBACA,KAAK,cAAc,EAAE,aAAa,CAAC,SAKrD,CAAC;AACP,eAAO,MAAM,8BAA8B,iBACzB,MAAM,KACrB,cAAc,GAAG,SAMnB,CAAC;AACF,eAAO,MAAM,uBAAuB,WACxB,MAAM,aACH,MAAM,oBACC,gBAAgB,SAQrC,CAAC;AACF,eAAO,MAAM,4BAA4B,WAC7B,MAAM,aACH,MAAM,KAClB,gBAAgB,GAAG,SAUrB,CAAC;AAEF,eAAO,MAAM,+BAA+B,UAAW,OAAO,SACd,CAAC;AACjD,eAAO,MAAM,2BAA2B,2BACmC,CAAC;AAC5E,eAAO,MAAM,8BAA8B,YACC,CAAC;AAS7C,eAAO,MAAM,oBAAoB,cACwB,CAAC;AAM1D,UAAU,4BAA4B;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,eAAO,MAAM,mBAAmB,sDAKlB,MAAM,OAAO,CAAC,GAAG,CAAC,sDAe/B,CAAC;AAEF,eAAO,MAAM,kBAAkB,gBAAiB,MAAM,SAIjD,CAAC;AACN,eAAO,MAAM,uBAAuB,0BACsC,CAAC;AAC3E,eAAO,MAAM,iBAAiB,YAAa,OAAO,SAI7C,CAAC;AAEN,eAAO,MAAM,uBAAuB,UAAW,OAAO,SAIjD,CAAC;AACN,eAAO,MAAM,mBAAmB,eAI3B,CAAC;AAIN,eAAO,MAAM,gCAAgC,YAC8B,CAAC;AAE5E,eAAO,MAAM,sBAAsB,2BACwC,CAAC"}
@@ -1,117 +0,0 @@
1
- /*
2
- * Copyright (c) 2105 Nordic Semiconductor ASA
3
- *
4
- * SPDX-License-Identifier: LicenseRef-Nordic-4-Clause
5
- */
6
-
7
- import si from 'systeminformation';
8
-
9
- import { packageJson } from './packageJson';
10
- import {
11
- deleteIsSendingUsageData,
12
- persistIsSendingUsageData,
13
- } from './persistentStore';
14
- import usageDataCommon, { Metadata } from './usageDataCommon';
15
- import usageDataMain from './usageDataMain';
16
- import usageDataRenderer from './usageDataRenderer';
17
-
18
- const getFriendlyAppName = () =>
19
- packageJson().name.replace('pc-nrfconnect-', '');
20
-
21
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
22
- const flattenObject = (obj?: any, parentKey?: string) => {
23
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
24
- let result: any = {};
25
-
26
- if (!obj) return result;
27
-
28
- Object.keys(obj).forEach(key => {
29
- const value = obj[key];
30
- const newKey = parentKey ? `${parentKey}.${key}` : key;
31
- if (typeof value === 'object') {
32
- result = { ...result, ...flattenObject(value, newKey) };
33
- } else {
34
- result[newKey] = value;
35
- }
36
- });
37
-
38
- return result;
39
- };
40
-
41
- const enable = () => {
42
- persistIsSendingUsageData(true);
43
- si.osInfo().then(({ platform, arch }) =>
44
- getUsageData().sendUsageData('Report OS info', { platform, arch })
45
- );
46
- getUsageData().sendUsageData('Data Usage Opt-In', undefined);
47
- usageDataCommon.getLogger()?.debug('Usage data has been enabled');
48
- };
49
-
50
- const disable = () => {
51
- getUsageData().sendUsageData('Data Usage Opt-Out', undefined, true);
52
- persistIsSendingUsageData(false);
53
- usageDataCommon.getLogger()?.debug('Usage data has been disabled');
54
- };
55
-
56
- const reset = () => {
57
- getUsageData().sendUsageData('Data Usage Opt-Reset', undefined, true);
58
- deleteIsSendingUsageData();
59
- usageDataCommon.getLogger()?.debug('Usage data setting has been reset');
60
- };
61
-
62
- const isRenderer = process && process.type === 'renderer';
63
-
64
- const getUsageData = () => {
65
- if (isRenderer) {
66
- return usageDataRenderer;
67
- }
68
-
69
- return usageDataMain;
70
- };
71
-
72
- const sendUsageData = async (
73
- action: string,
74
- metadata?: Metadata,
75
- forceSend?: boolean
76
- ) => {
77
- if (
78
- await getUsageData().sendUsageData(
79
- `${getFriendlyAppName()}: ${action}`,
80
- flattenObject(metadata),
81
- forceSend
82
- )
83
- ) {
84
- usageDataCommon
85
- .getLogger()
86
- ?.debug(`Sending usage data ${JSON.stringify(action)}`);
87
- }
88
- };
89
-
90
- const sendPageView = (pageName: string) =>
91
- getUsageData().sendPageView(`${getFriendlyAppName()} - ${pageName}`);
92
-
93
- const sendMetric = (name: string, average: number) =>
94
- getUsageData().sendMetric(name, average);
95
-
96
- const sendTrace = (message: string) => getUsageData().sendTrace(message);
97
-
98
- const sendErrorReport = (error: string | Error) => {
99
- usageDataCommon.getLogger()?.error(error);
100
- return getUsageData().sendErrorReport(
101
- typeof error === 'string' ? new Error(error) : error
102
- );
103
- };
104
-
105
- export default {
106
- setLogger: usageDataCommon.setLogger,
107
- disable,
108
- enable,
109
- isEnabled: usageDataCommon.isEnabled,
110
- reset,
111
- sendErrorReport,
112
- sendUsageData,
113
- sendPageView,
114
- sendMetric,
115
- sendTrace,
116
- enableTelemetry: usageDataCommon.enableTelemetry,
117
- };
@@ -1,59 +0,0 @@
1
- /*
2
- * Copyright (c) 2105 Nordic Semiconductor ASA
3
- *
4
- * SPDX-License-Identifier: LicenseRef-Nordic-4-Clause
5
- */
6
-
7
- import winston from 'winston';
8
-
9
- import { type Device } from '../Device/deviceSlice';
10
- import { getIsSendingUsageData } from './persistentStore';
11
-
12
- export const INSTRUMENTATION_KEY = '4b8b1a39-37c7-479e-a684-d4763c7c647c';
13
-
14
- let telemetryEnabled = false;
15
-
16
- const enableTelemetry = () => {
17
- telemetryEnabled = true;
18
- };
19
-
20
- let logger: winston.Logger | undefined;
21
- const setLogger = (log: winston.Logger) => {
22
- logger = log;
23
- };
24
-
25
- const getLogger = () => logger;
26
-
27
- export interface Metadata {
28
- [key: string]: unknown;
29
- }
30
-
31
- export const simplifyDeviceForLogging = (device: Device) => ({
32
- devkit: device.devkit,
33
- serialPorts: device.serialPorts,
34
- traits: device.traits,
35
- serialNumber: device.serialNumber,
36
- enumerationID: device.id,
37
- usb: {
38
- product: device.usb?.product,
39
- manufacturer: device.usb?.manufacturer,
40
- deviceDescriptor: device.usb?.device.descriptor,
41
- },
42
- });
43
-
44
- const isEnabled = () => {
45
- const isSendingUsageData = getShouldSendTelemetry();
46
- logger?.debug(`Usage data is ${isSendingUsageData}`);
47
- return isSendingUsageData;
48
- };
49
-
50
- const getShouldSendTelemetry = (forceSend?: boolean) =>
51
- (forceSend || getIsSendingUsageData()) && telemetryEnabled;
52
-
53
- export default {
54
- setLogger,
55
- getLogger,
56
- isEnabled,
57
- getShouldSendTelemetry,
58
- enableTelemetry,
59
- };