@react-native-windows/telemetry 0.66.1 → 0.67.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.
package/CHANGELOG.json CHANGED
@@ -2,45 +2,131 @@
2
2
  "name": "@react-native-windows/telemetry",
3
3
  "entries": [
4
4
  {
5
- "date": "Mon, 24 Jan 2022 16:10:41 GMT",
6
- "tag": "@react-native-windows/telemetry_v0.66.1",
7
- "version": "0.66.1",
5
+ "date": "Mon, 04 Apr 2022 15:12:55 GMT",
6
+ "tag": "@react-native-windows/telemetry_v0.67.1",
7
+ "version": "0.67.1",
8
+ "comments": {
9
+ "patch": [
10
+ {
11
+ "author": "34109996+chiaramooney@users.noreply.github.com",
12
+ "package": "@react-native-windows/telemetry",
13
+ "commit": "f4f970be35618e9942c5c96e6c15c88f8426c91c",
14
+ "comment": "Promote 0.67 to legacy"
15
+ }
16
+ ]
17
+ }
18
+ },
19
+ {
20
+ "date": "Mon, 24 Jan 2022 16:13:22 GMT",
21
+ "tag": "@react-native-windows/telemetry_v0.67.0",
22
+ "version": "0.67.0",
8
23
  "comments": {
9
24
  "patch": [
10
25
  {
11
- "comment": "Promote 0.66 to legacy",
12
26
  "author": "ngerlem@microsoft.com",
13
- "commit": "919d91a3e9845f9a60417fb8e47a36d7caedbc28",
14
- "package": "@react-native-windows/telemetry"
27
+ "package": "@react-native-windows/telemetry",
28
+ "commit": "not available",
29
+ "comment": "Promote 0.67 to latest"
15
30
  }
16
31
  ]
17
32
  }
18
33
  },
19
34
  {
20
- "date": "Mon, 11 Oct 2021 15:07:19 GMT",
21
- "tag": "@react-native-windows/telemetry_v0.66.0",
22
- "version": "0.66.0",
35
+ "date": "Mon, 24 Jan 2022 16:12:32 GMT",
36
+ "tag": "@react-native-windows/telemetry_v0.67.0",
37
+ "version": "0.67.0",
23
38
  "comments": {
24
39
  "patch": [
25
40
  {
26
- "comment": "Promote 0.66 to latest",
27
41
  "author": "ngerlem@microsoft.com",
28
- "commit": "5d1e5ae98139204e02f0ac5d8c06ae7ee1157395",
29
- "package": "@react-native-windows/telemetry"
42
+ "package": "@react-native-windows/telemetry",
43
+ "commit": "56818ebc599aa084aa9ffc949691f1be71da169a",
44
+ "comment": "Promote 0.67 to latest"
45
+ }
46
+ ]
47
+ }
48
+ },
49
+ {
50
+ "date": "Mon, 25 Oct 2021 15:07:48 GMT",
51
+ "tag": "@react-native-windows/telemetry_v0.67.0-preview.1",
52
+ "version": "0.67.0-preview.1",
53
+ "comments": {
54
+ "prerelease": [
55
+ {
56
+ "author": "ngerlem@microsoft.com",
57
+ "package": "@react-native-windows/telemetry",
58
+ "commit": "not available",
59
+ "comment": "Promote 0.67 to preview"
60
+ }
61
+ ]
62
+ }
63
+ },
64
+ {
65
+ "date": "Mon, 25 Oct 2021 15:07:19 GMT",
66
+ "tag": "@react-native-windows/telemetry_v0.67.0-preview.1",
67
+ "version": "0.67.0-preview.1",
68
+ "comments": {
69
+ "prerelease": [
70
+ {
71
+ "author": "ngerlem@microsoft.com",
72
+ "package": "@react-native-windows/telemetry",
73
+ "commit": "5ca0feb9bccbf395aa8297f97a1a8832971d4f2e",
74
+ "comment": "Promote 0.67 to preview"
75
+ }
76
+ ]
77
+ }
78
+ },
79
+ {
80
+ "date": "Thu, 21 Oct 2021 05:08:01 GMT",
81
+ "tag": "@react-native-windows/telemetry_v0.0.0-canary.24",
82
+ "version": "0.0.0-canary.24",
83
+ "comments": {
84
+ "prerelease": [
85
+ {
86
+ "author": "30809111+acoates-ms@users.noreply.github.com",
87
+ "package": "@react-native-windows/telemetry",
88
+ "comment": "Update to typescript 4",
89
+ "commit": "8a0ffecdcf5e68d950f20380fdf62295edb352b6"
30
90
  }
31
91
  ]
32
92
  }
33
93
  },
34
94
  {
35
- "date": "Fri, 03 Sep 2021 18:48:19 GMT",
36
- "tag": "@react-native-windows/telemetry_v0.66.0-preview.1",
37
- "version": "0.66.0-preview.1",
95
+ "date": "Wed, 08 Sep 2021 05:08:53 GMT",
96
+ "tag": "@react-native-windows/telemetry_v0.0.0-canary.23",
97
+ "version": "0.0.0-canary.23",
38
98
  "comments": {
39
99
  "prerelease": [
40
100
  {
41
- "comment": "Promote 0.66 to preview",
101
+ "comment": "Set consistent node requirements on our packages",
102
+ "author": "ngerlem@microsoft.com",
103
+ "commit": "2974ea0ab58b546264b8d9a4a7c12ceeb0a02851",
104
+ "package": "@react-native-windows/telemetry"
105
+ }
106
+ ],
107
+ "patch": [
108
+ {
109
+ "comment": "Bump @rnw-scripts/jest-unittest-config to v1.2.4",
110
+ "author": "ngerlem@microsoft.com",
111
+ "commit": "2974ea0ab58b546264b8d9a4a7c12ceeb0a02851",
112
+ "package": "@react-native-windows/telemetry"
113
+ },
114
+ {
115
+ "comment": "Bump @rnw-scripts/just-task to v2.2.1",
116
+ "author": "ngerlem@microsoft.com",
117
+ "commit": "2974ea0ab58b546264b8d9a4a7c12ceeb0a02851",
118
+ "package": "@react-native-windows/telemetry"
119
+ },
120
+ {
121
+ "comment": "Bump @rnw-scripts/ts-config to v2.0.1",
122
+ "author": "ngerlem@microsoft.com",
123
+ "commit": "2974ea0ab58b546264b8d9a4a7c12ceeb0a02851",
124
+ "package": "@react-native-windows/telemetry"
125
+ },
126
+ {
127
+ "comment": "Bump @rnw-scripts/eslint-config to v1.1.8",
42
128
  "author": "ngerlem@microsoft.com",
43
- "commit": "cf1dcfbe108028869e326bb2bdab370949f7dac8",
129
+ "commit": "2974ea0ab58b546264b8d9a4a7c12ceeb0a02851",
44
130
  "package": "@react-native-windows/telemetry"
45
131
  }
46
132
  ]
package/CHANGELOG.md CHANGED
@@ -1,32 +1,71 @@
1
1
  # Change Log - @react-native-windows/telemetry
2
2
 
3
- This log was last generated on Mon, 24 Jan 2022 16:10:41 GMT and should not be manually modified.
3
+ This log was last generated on Mon, 04 Apr 2022 15:12:55 GMT and should not be manually modified.
4
4
 
5
5
  <!-- Start content -->
6
6
 
7
- ## 0.66.1
7
+ ## 0.67.1
8
8
 
9
- Mon, 24 Jan 2022 16:10:41 GMT
9
+ Mon, 04 Apr 2022 15:12:55 GMT
10
10
 
11
11
  ### Patches
12
12
 
13
- - Promote 0.66 to legacy (ngerlem@microsoft.com)
13
+ - Promote 0.67 to legacy (34109996+chiaramooney@users.noreply.github.com)
14
14
 
15
- ## 0.66.0
15
+ ## 0.67.0
16
16
 
17
- Mon, 11 Oct 2021 15:07:19 GMT
17
+ Mon, 24 Jan 2022 16:13:22 GMT
18
18
 
19
19
  ### Patches
20
20
 
21
- - Promote 0.66 to latest (ngerlem@microsoft.com)
21
+ - Promote 0.67 to latest (ngerlem@microsoft.com)
22
22
 
23
- ## 0.66.0-preview.1
23
+ ## 0.67.0
24
24
 
25
- Fri, 03 Sep 2021 18:48:19 GMT
25
+ Mon, 24 Jan 2022 16:12:32 GMT
26
+
27
+ ### Patches
28
+
29
+ - Promote 0.67 to latest (ngerlem@microsoft.com)
30
+
31
+ ## 0.67.0-preview.1
32
+
33
+ Mon, 25 Oct 2021 15:07:48 GMT
34
+
35
+ ### Changes
36
+
37
+ - Promote 0.67 to preview (ngerlem@microsoft.com)
38
+
39
+ ## 0.67.0-preview.1
40
+
41
+ Mon, 25 Oct 2021 15:07:19 GMT
42
+
43
+ ### Changes
44
+
45
+ - Promote 0.67 to preview (ngerlem@microsoft.com)
46
+
47
+ ## 0.0.0-canary.24
48
+
49
+ Thu, 21 Oct 2021 05:08:01 GMT
50
+
51
+ ### Changes
52
+
53
+ - Update to typescript 4 (30809111+acoates-ms@users.noreply.github.com)
54
+
55
+ ## 0.0.0-canary.23
56
+
57
+ Wed, 08 Sep 2021 05:08:53 GMT
58
+
59
+ ### Patches
60
+
61
+ - Bump @rnw-scripts/jest-unittest-config to v1.2.4 (ngerlem@microsoft.com)
62
+ - Bump @rnw-scripts/just-task to v2.2.1 (ngerlem@microsoft.com)
63
+ - Bump @rnw-scripts/ts-config to v2.0.1 (ngerlem@microsoft.com)
64
+ - Bump @rnw-scripts/eslint-config to v1.1.8 (ngerlem@microsoft.com)
26
65
 
27
66
  ### Changes
28
67
 
29
- - Promote 0.66 to preview (ngerlem@microsoft.com)
68
+ - Set consistent node requirements on our packages (ngerlem@microsoft.com)
30
69
 
31
70
  ## 0.0.0-canary.22
32
71
 
@@ -5,6 +5,7 @@
5
5
  * @format
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.CodedErrors = exports.CodedError = exports.getDiskFreeSpace = exports.isMSFTInternal = exports.Telemetry = void 0;
8
9
  var telemetry_1 = require("./telemetry");
9
10
  Object.defineProperty(exports, "Telemetry", { enumerable: true, get: function () { return telemetry_1.Telemetry; } });
10
11
  Object.defineProperty(exports, "isMSFTInternal", { enumerable: true, get: function () { return telemetry_1.isMSFTInternal; } });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAEH,yCAAwE;AAAhE,sGAAA,SAAS,OAAA;AAAE,2GAAA,cAAc,OAAA;AAAE,6GAAA,gBAAgB,OAAA;AACnD,2CAAqE;AAA7D,wGAAA,UAAU,OAAA;AAAkB,yGAAA,WAAW,OAAA","sourcesContent":["/**\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n * @format\n */\n\nexport {Telemetry, isMSFTInternal, getDiskFreeSpace} from './telemetry';\nexport {CodedError, CodedErrorType, CodedErrors} from './CodedError';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAEH,yCAAwE;AAAhE,sGAAA,SAAS,OAAA;AAAE,2GAAA,cAAc,OAAA;AAAE,6GAAA,gBAAgB,OAAA;AACnD,2CAAqE;AAA7D,wGAAA,UAAU,OAAA;AAAkB,yGAAA,WAAW,OAAA","sourcesContent":["/**\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n * @format\n */\n\nexport {Telemetry, isMSFTInternal, getDiskFreeSpace} from './telemetry';\nexport {CodedError, CodedErrorType, CodedErrors} from './CodedError';\n"]}
@@ -19,7 +19,7 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
19
19
  var __importStar = (this && this.__importStar) || function (mod) {
20
20
  if (mod && mod.__esModule) return mod;
21
21
  var result = {};
22
- if (mod != null) for (var k in mod) if (k !== "default" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
23
23
  __setModuleDefault(result, mod);
24
24
  return result;
25
25
  };
@@ -61,7 +61,7 @@ class Telemetry {
61
61
  Telemetry.client.commonProperties.isTest = process.env.RNW_CLI_TEST;
62
62
  }
63
63
  if (!Telemetry.client.commonProperties.sessionId) {
64
- Telemetry.client.commonProperties.sessionId = crypto_1.randomBytes(16).toString('hex');
64
+ Telemetry.client.commonProperties.sessionId = (0, crypto_1.randomBytes)(16).toString('hex');
65
65
  Telemetry.client.addTelemetryProcessor(sanitizeEnvelope);
66
66
  }
67
67
  }
@@ -210,7 +210,7 @@ function isMSFTInternal() {
210
210
  }
211
211
  exports.isMSFTInternal = isMSFTInternal;
212
212
  function getDiskFreeSpace(drivePath) {
213
- const out = child_process_1.execSync(`dir /-C ${drivePath}`)
213
+ const out = (0, child_process_1.execSync)(`dir /-C ${drivePath}`)
214
214
  .toString()
215
215
  .split('\r\n');
216
216
  const line = out[out.length - 2];
@@ -1 +1 @@
1
- {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n * @format\n */\n\nimport path from 'path';\nimport {randomBytes} from 'crypto';\nimport * as appInsights from 'applicationinsights';\nimport {execSync} from 'child_process';\nimport {CodedError} from './CodedError';\n\nexport class Telemetry {\n static client?: appInsights.TelemetryClient | undefined = undefined;\n\n static disable() {\n if (Telemetry.client) {\n Telemetry.client.config.disableAppInsights = true;\n }\n Telemetry.shouldDisable = true;\n }\n\n static setup(preserveMessages?: boolean) {\n if (Telemetry.isCI()) {\n this.disable();\n return;\n }\n if (Telemetry.client) {\n return;\n }\n if (!process.env.RNW_CLI_TEST) {\n appInsights.Configuration.setInternalLogging(false, false);\n }\n appInsights.setup('795006ca-cf54-40ee-8bc6-03deb91401c3');\n Telemetry.client = appInsights.defaultClient;\n\n if (Telemetry.shouldDisable) {\n Telemetry.disable();\n }\n Telemetry.preserveMessages = preserveMessages ? true : false;\n\n if (process.env.RNW_CLI_TEST) {\n Telemetry.client.commonProperties.isTest = process.env.RNW_CLI_TEST;\n }\n if (!Telemetry.client.commonProperties.sessionId) {\n Telemetry.client.commonProperties.sessionId = randomBytes(16).toString(\n 'hex',\n );\n Telemetry.client.addTelemetryProcessor(sanitizeEnvelope);\n }\n }\n\n static isCI(): boolean {\n return (\n process.env.AGENT_NAME !== undefined || // Azure DevOps\n process.env.CIRCLECI === 'true' || // CircleCI\n process.env.TRAVIS === 'true' || // Travis\n process.env.CI === 'true' // other CIs\n );\n }\n\n static trackException(e: Error, properties?: Record<string, any>) {\n const props: Record<string, any> = {};\n if (e instanceof CodedError) {\n Object.assign(props, (e as CodedError).data);\n }\n\n const syscallExceptionFieldsToCopy = ['errno', 'syscall', 'code'];\n for (const f of syscallExceptionFieldsToCopy) {\n if ((e as any)[f]) {\n props[f] = [f];\n }\n }\n Object.assign(props, props, properties);\n Telemetry.client?.trackException({\n exception: e,\n properties: props,\n });\n }\n\n static shouldDisable: boolean = false;\n static preserveMessages: boolean = false;\n}\n\nfunction getAnonymizedPath(filepath: string): string {\n const projectRoot = process.cwd().toLowerCase();\n filepath = filepath.replace(/\\//g, '\\\\');\n const knownPathsVars = ['AppData', 'LocalAppData', 'UserProfile'];\n if (filepath.toLowerCase().startsWith(projectRoot)) {\n const ext = path.extname(filepath);\n const rest = filepath.slice(projectRoot.length);\n const nodeModules = '\\\\node_modules\\\\';\n // this is in the project dir but not under node_modules\n if (rest.toLowerCase().startsWith('\\\\windows\\\\')) {\n return `[windows]\\\\???${ext}(${filepath.length})`;\n } else if (rest.toLowerCase().startsWith(nodeModules)) {\n return 'node_modules' + rest.slice(nodeModules.length - 1);\n } else {\n return `[project_dir]\\\\???${ext}(${filepath.length})`;\n }\n } else {\n for (const knownPath of knownPathsVars) {\n if (\n process.env[knownPath] &&\n filepath.toLowerCase().startsWith(process.env[knownPath]!.toLowerCase())\n ) {\n return `[${knownPath}]\\\\???(${filepath.length})`;\n }\n }\n }\n return '[path]';\n}\n/**\n * Sanitize any paths that appear between quotes (''), brackets ([]), or double quotes (\"\").\n * @param msg the string to sanitize\n */\nexport function sanitizeMessage(msg: string): string {\n const cpuThreadId = /^\\d+(:\\d+)?>/g;\n msg = msg.replace(cpuThreadId, '');\n const parts = msg.split(/['[\\]\"]/g);\n const clean = [];\n const pathRegEx = /([A-Za-z]:|\\\\)[\\\\/]([^<>:;,?\"*\\t\\r\\n|/\\\\]+[\\\\/])+([^<>:;,?\"*\\t\\r\\n|]+\\/?)/gi;\n for (const part of parts) {\n if (pathRegEx.test(part)) {\n pathRegEx.lastIndex = -1;\n let matches: RegExpExecArray | null;\n let noPath = '';\n let last = 0;\n while ((matches = pathRegEx.exec(part))) {\n noPath +=\n part.substr(last, matches!.index - last) +\n getAnonymizedPath(matches[0]);\n last = matches!.index + matches![0].length;\n }\n clean.push(noPath);\n } else if (part !== '') {\n clean.push(part);\n }\n }\n return clean.join(' ').trim();\n}\n\nexport function sanitizeFrame(frame: any): void {\n const parens = frame.method.indexOf('(');\n if (parens !== -1) {\n // case 1: method === 'methodName (rootOfThePath'\n frame.method = frame.method.substr(0, parens).trim();\n } else {\n // case 2: method === <no_method> or something without '(', fileName is full path\n }\n // preserve only the last_directory/filename\n frame.fileName = path.join(\n path.basename(path.dirname(frame.fileName)),\n path.basename(frame.fileName),\n );\n frame.assembly = '';\n}\n\nexport function tryGetErrorCode(msg: string): string | undefined {\n const errorRegEx = /error (\\w+\\d+):/gi;\n const m = errorRegEx.exec(msg);\n return m ? m[1] : undefined;\n}\n\n/**\n * Remove PII from exceptions' stack traces and messages\n * @param envelope the telemetry envelope. Provided by AppInsights.\n */\nexport function sanitizeEnvelope(envelope: any /*context: any*/): boolean {\n if (envelope.data.baseType === 'ExceptionData') {\n const data = envelope.data.baseData;\n for (const exception of data.exceptions || []) {\n for (const frame of exception.parsedStack) {\n sanitizeFrame(frame);\n }\n const errorCode = tryGetErrorCode(exception.message);\n data.properties.errorCode = errorCode;\n // CodedError has non-PII information in its 'type' member, plus optionally some more info in its 'data'.\n // The message may contain PII information. This can be sanitized, but for now delete it.\n // Note that the type of data.exceptions[0] is always going to be ExceptionDetails. It is not the original thrown exception.\n // https://github.com/microsoft/ApplicationInsights-node.js/issues/707\n if (Telemetry.preserveMessages) {\n exception.message = sanitizeMessage(exception.message);\n } else {\n delete exception.message;\n }\n }\n }\n delete envelope.tags['ai.cloud.roleInstance'];\n return true;\n}\n\nexport function isMSFTInternal(): boolean {\n return (\n process.env.UserDNSDomain !== undefined &&\n process.env.UserDNSDomain.toLowerCase().endsWith('.microsoft.com')\n );\n}\n\nexport function getDiskFreeSpace(drivePath: string | null): number {\n const out = execSync(`dir /-C ${drivePath}`)\n .toString()\n .split('\\r\\n');\n const line = out[out.length - 2];\n const result = line.match(/(\\d+) [^\\d]+(\\d+) /);\n if (result && result.length > 2) {\n return Number(result[2]);\n }\n return -1;\n}\n"]}
1
+ {"version":3,"file":"telemetry.js","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,gDAAwB;AACxB,mCAAmC;AACnC,iEAAmD;AACnD,iDAAuC;AACvC,6CAAwC;AAExC,MAAa,SAAS;IAGpB,MAAM,CAAC,OAAO;QACZ,IAAI,SAAS,CAAC,MAAM,EAAE;YACpB,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,kBAAkB,GAAG,IAAI,CAAC;SACnD;QACD,SAAS,CAAC,aAAa,GAAG,IAAI,CAAC;IACjC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,gBAA0B;QACrC,IAAI,SAAS,CAAC,IAAI,EAAE,EAAE;YACpB,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,OAAO;SACR;QACD,IAAI,SAAS,CAAC,MAAM,EAAE;YACpB,OAAO;SACR;QACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE;YAC7B,WAAW,CAAC,aAAa,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SAC5D;QACD,WAAW,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAC1D,SAAS,CAAC,MAAM,GAAG,WAAW,CAAC,aAAa,CAAC;QAE7C,IAAI,SAAS,CAAC,aAAa,EAAE;YAC3B,SAAS,CAAC,OAAO,EAAE,CAAC;SACrB;QACD,SAAS,CAAC,gBAAgB,GAAG,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QAE7D,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE;YAC5B,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;SACrE;QACD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE;YAChD,SAAS,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS,GAAG,IAAA,oBAAW,EAAC,EAAE,CAAC,CAAC,QAAQ,CACpE,KAAK,CACN,CAAC;YACF,SAAS,CAAC,MAAM,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,CAAC;SAC1D;IACH,CAAC;IAED,MAAM,CAAC,IAAI;QACT,OAAO,CACL,OAAO,CAAC,GAAG,CAAC,UAAU,KAAK,SAAS,IAAI,eAAe;YACvD,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM,IAAI,WAAW;YAC9C,OAAO,CAAC,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,SAAS;YAC1C,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,MAAM,CAAC,YAAY;SACvC,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,CAAQ,EAAE,UAAgC;;QAC9D,MAAM,KAAK,GAAwB,EAAE,CAAC;QACtC,IAAI,CAAC,YAAY,uBAAU,EAAE;YAC3B,MAAM,CAAC,MAAM,CAAC,KAAK,EAAG,CAAgB,CAAC,IAAI,CAAC,CAAC;SAC9C;QAED,MAAM,4BAA4B,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAClE,KAAK,MAAM,CAAC,IAAI,4BAA4B,EAAE;YAC5C,IAAK,CAAS,CAAC,CAAC,CAAC,EAAE;gBACjB,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;aAChB;SACF;QACD,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;QACxC,MAAA,SAAS,CAAC,MAAM,0CAAE,cAAc,CAAC;YAC/B,SAAS,EAAE,CAAC;YACZ,UAAU,EAAE,KAAK;SAClB,CAAC,CAAC;IACL,CAAC;;AAlEH,8BAsEC;AArEQ,gBAAM,GAA6C,SAAS,CAAC;AAmE7D,uBAAa,GAAY,KAAK,CAAC;AAC/B,0BAAgB,GAAY,KAAK,CAAC;AAG3C,SAAS,iBAAiB,CAAC,QAAgB;IACzC,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC;IAChD,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACzC,MAAM,cAAc,GAAG,CAAC,SAAS,EAAE,cAAc,EAAE,aAAa,CAAC,CAAC;IAClE,IAAI,QAAQ,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;QAClD,MAAM,GAAG,GAAG,cAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACnC,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAChD,MAAM,WAAW,GAAG,kBAAkB,CAAC;QACvC,wDAAwD;QACxD,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE;YAChD,OAAO,iBAAiB,GAAG,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;SACnD;aAAM,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;YACrD,OAAO,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;SAC5D;aAAM;YACL,OAAO,qBAAqB,GAAG,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;SACvD;KACF;SAAM;QACL,KAAK,MAAM,SAAS,IAAI,cAAc,EAAE;YACtC,IACE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;gBACtB,QAAQ,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC,WAAW,EAAE,CAAC,EACxE;gBACA,OAAO,IAAI,SAAS,UAAU,QAAQ,CAAC,MAAM,GAAG,CAAC;aAClD;SACF;KACF;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AACD;;;GAGG;AACH,SAAgB,eAAe,CAAC,GAAW;IACzC,MAAM,WAAW,GAAG,eAAe,CAAC;IACpC,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;IACnC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACpC,MAAM,KAAK,GAAG,EAAE,CAAC;IACjB,MAAM,SAAS,GAAG,6EAA6E,CAAC;IAChG,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACxB,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACxB,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;YACzB,IAAI,OAA+B,CAAC;YACpC,IAAI,MAAM,GAAG,EAAE,CAAC;YAChB,IAAI,IAAI,GAAG,CAAC,CAAC;YACb,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE;gBACvC,MAAM;oBACJ,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,OAAQ,CAAC,KAAK,GAAG,IAAI,CAAC;wBACxC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChC,IAAI,GAAG,OAAQ,CAAC,KAAK,GAAG,OAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;aAC5C;YACD,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACpB;aAAM,IAAI,IAAI,KAAK,EAAE,EAAE;YACtB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAClB;KACF;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AAChC,CAAC;AAxBD,0CAwBC;AAED,SAAgB,aAAa,CAAC,KAAU;IACtC,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACzC,IAAI,MAAM,KAAK,CAAC,CAAC,EAAE;QACjB,iDAAiD;QACjD,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;KACtD;SAAM;QACL,iFAAiF;KAClF;IACD,4CAA4C;IAC5C,KAAK,CAAC,QAAQ,GAAG,cAAI,CAAC,IAAI,CACxB,cAAI,CAAC,QAAQ,CAAC,cAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,EAC3C,cAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAC9B,CAAC;IACF,KAAK,CAAC,QAAQ,GAAG,EAAE,CAAC;AACtB,CAAC;AAdD,sCAcC;AAED,SAAgB,eAAe,CAAC,GAAW;IACzC,MAAM,UAAU,GAAG,mBAAmB,CAAC;IACvC,MAAM,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC/B,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9B,CAAC;AAJD,0CAIC;AAED;;;GAGG;AACH,SAAgB,gBAAgB,CAAC,QAAa,CAAC,gBAAgB;IAC7D,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,KAAK,eAAe,EAAE;QAC9C,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC;QACpC,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,IAAI,EAAE,EAAE;YAC7C,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,WAAW,EAAE;gBACzC,aAAa,CAAC,KAAK,CAAC,CAAC;aACtB;YACD,MAAM,SAAS,GAAG,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACrD,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG,SAAS,CAAC;YACtC,yGAAyG;YACzG,yFAAyF;YACzF,4HAA4H;YAC5H,sEAAsE;YACtE,IAAI,SAAS,CAAC,gBAAgB,EAAE;gBAC9B,SAAS,CAAC,OAAO,GAAG,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;aACxD;iBAAM;gBACL,OAAO,SAAS,CAAC,OAAO,CAAC;aAC1B;SACF;KACF;IACD,OAAO,QAAQ,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IAC9C,OAAO,IAAI,CAAC;AACd,CAAC;AAtBD,4CAsBC;AAED,SAAgB,cAAc;IAC5B,OAAO,CACL,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,SAAS;QACvC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CACnE,CAAC;AACJ,CAAC;AALD,wCAKC;AAED,SAAgB,gBAAgB,CAAC,SAAwB;IACvD,MAAM,GAAG,GAAG,IAAA,wBAAQ,EAAC,WAAW,SAAS,EAAE,CAAC;SACzC,QAAQ,EAAE;SACV,KAAK,CAAC,MAAM,CAAC,CAAC;IACjB,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACjC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;IAChD,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;QAC/B,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;KAC1B;IACD,OAAO,CAAC,CAAC,CAAC;AACZ,CAAC;AAVD,4CAUC","sourcesContent":["/**\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n * @format\n */\n\nimport path from 'path';\nimport {randomBytes} from 'crypto';\nimport * as appInsights from 'applicationinsights';\nimport {execSync} from 'child_process';\nimport {CodedError} from './CodedError';\n\nexport class Telemetry {\n static client?: appInsights.TelemetryClient | undefined = undefined;\n\n static disable() {\n if (Telemetry.client) {\n Telemetry.client.config.disableAppInsights = true;\n }\n Telemetry.shouldDisable = true;\n }\n\n static setup(preserveMessages?: boolean) {\n if (Telemetry.isCI()) {\n this.disable();\n return;\n }\n if (Telemetry.client) {\n return;\n }\n if (!process.env.RNW_CLI_TEST) {\n appInsights.Configuration.setInternalLogging(false, false);\n }\n appInsights.setup('795006ca-cf54-40ee-8bc6-03deb91401c3');\n Telemetry.client = appInsights.defaultClient;\n\n if (Telemetry.shouldDisable) {\n Telemetry.disable();\n }\n Telemetry.preserveMessages = preserveMessages ? true : false;\n\n if (process.env.RNW_CLI_TEST) {\n Telemetry.client.commonProperties.isTest = process.env.RNW_CLI_TEST;\n }\n if (!Telemetry.client.commonProperties.sessionId) {\n Telemetry.client.commonProperties.sessionId = randomBytes(16).toString(\n 'hex',\n );\n Telemetry.client.addTelemetryProcessor(sanitizeEnvelope);\n }\n }\n\n static isCI(): boolean {\n return (\n process.env.AGENT_NAME !== undefined || // Azure DevOps\n process.env.CIRCLECI === 'true' || // CircleCI\n process.env.TRAVIS === 'true' || // Travis\n process.env.CI === 'true' // other CIs\n );\n }\n\n static trackException(e: Error, properties?: Record<string, any>) {\n const props: Record<string, any> = {};\n if (e instanceof CodedError) {\n Object.assign(props, (e as CodedError).data);\n }\n\n const syscallExceptionFieldsToCopy = ['errno', 'syscall', 'code'];\n for (const f of syscallExceptionFieldsToCopy) {\n if ((e as any)[f]) {\n props[f] = [f];\n }\n }\n Object.assign(props, props, properties);\n Telemetry.client?.trackException({\n exception: e,\n properties: props,\n });\n }\n\n static shouldDisable: boolean = false;\n static preserveMessages: boolean = false;\n}\n\nfunction getAnonymizedPath(filepath: string): string {\n const projectRoot = process.cwd().toLowerCase();\n filepath = filepath.replace(/\\//g, '\\\\');\n const knownPathsVars = ['AppData', 'LocalAppData', 'UserProfile'];\n if (filepath.toLowerCase().startsWith(projectRoot)) {\n const ext = path.extname(filepath);\n const rest = filepath.slice(projectRoot.length);\n const nodeModules = '\\\\node_modules\\\\';\n // this is in the project dir but not under node_modules\n if (rest.toLowerCase().startsWith('\\\\windows\\\\')) {\n return `[windows]\\\\???${ext}(${filepath.length})`;\n } else if (rest.toLowerCase().startsWith(nodeModules)) {\n return 'node_modules' + rest.slice(nodeModules.length - 1);\n } else {\n return `[project_dir]\\\\???${ext}(${filepath.length})`;\n }\n } else {\n for (const knownPath of knownPathsVars) {\n if (\n process.env[knownPath] &&\n filepath.toLowerCase().startsWith(process.env[knownPath]!.toLowerCase())\n ) {\n return `[${knownPath}]\\\\???(${filepath.length})`;\n }\n }\n }\n return '[path]';\n}\n/**\n * Sanitize any paths that appear between quotes (''), brackets ([]), or double quotes (\"\").\n * @param msg the string to sanitize\n */\nexport function sanitizeMessage(msg: string): string {\n const cpuThreadId = /^\\d+(:\\d+)?>/g;\n msg = msg.replace(cpuThreadId, '');\n const parts = msg.split(/['[\\]\"]/g);\n const clean = [];\n const pathRegEx = /([A-Za-z]:|\\\\)[\\\\/]([^<>:;,?\"*\\t\\r\\n|/\\\\]+[\\\\/])+([^<>:;,?\"*\\t\\r\\n|]+\\/?)/gi;\n for (const part of parts) {\n if (pathRegEx.test(part)) {\n pathRegEx.lastIndex = -1;\n let matches: RegExpExecArray | null;\n let noPath = '';\n let last = 0;\n while ((matches = pathRegEx.exec(part))) {\n noPath +=\n part.substr(last, matches!.index - last) +\n getAnonymizedPath(matches[0]);\n last = matches!.index + matches![0].length;\n }\n clean.push(noPath);\n } else if (part !== '') {\n clean.push(part);\n }\n }\n return clean.join(' ').trim();\n}\n\nexport function sanitizeFrame(frame: any): void {\n const parens = frame.method.indexOf('(');\n if (parens !== -1) {\n // case 1: method === 'methodName (rootOfThePath'\n frame.method = frame.method.substr(0, parens).trim();\n } else {\n // case 2: method === <no_method> or something without '(', fileName is full path\n }\n // preserve only the last_directory/filename\n frame.fileName = path.join(\n path.basename(path.dirname(frame.fileName)),\n path.basename(frame.fileName),\n );\n frame.assembly = '';\n}\n\nexport function tryGetErrorCode(msg: string): string | undefined {\n const errorRegEx = /error (\\w+\\d+):/gi;\n const m = errorRegEx.exec(msg);\n return m ? m[1] : undefined;\n}\n\n/**\n * Remove PII from exceptions' stack traces and messages\n * @param envelope the telemetry envelope. Provided by AppInsights.\n */\nexport function sanitizeEnvelope(envelope: any /*context: any*/): boolean {\n if (envelope.data.baseType === 'ExceptionData') {\n const data = envelope.data.baseData;\n for (const exception of data.exceptions || []) {\n for (const frame of exception.parsedStack) {\n sanitizeFrame(frame);\n }\n const errorCode = tryGetErrorCode(exception.message);\n data.properties.errorCode = errorCode;\n // CodedError has non-PII information in its 'type' member, plus optionally some more info in its 'data'.\n // The message may contain PII information. This can be sanitized, but for now delete it.\n // Note that the type of data.exceptions[0] is always going to be ExceptionDetails. It is not the original thrown exception.\n // https://github.com/microsoft/ApplicationInsights-node.js/issues/707\n if (Telemetry.preserveMessages) {\n exception.message = sanitizeMessage(exception.message);\n } else {\n delete exception.message;\n }\n }\n }\n delete envelope.tags['ai.cloud.roleInstance'];\n return true;\n}\n\nexport function isMSFTInternal(): boolean {\n return (\n process.env.UserDNSDomain !== undefined &&\n process.env.UserDNSDomain.toLowerCase().endsWith('.microsoft.com')\n );\n}\n\nexport function getDiskFreeSpace(drivePath: string | null): number {\n const out = execSync(`dir /-C ${drivePath}`)\n .toString()\n .split('\\r\\n');\n const line = out[out.length - 2];\n const result = line.match(/(\\d+) [^\\d]+(\\d+) /);\n if (result && result.length > 2) {\n return Number(result[2]);\n }\n return -1;\n}\n"]}
@@ -14,30 +14,30 @@ telemetry_1.Telemetry.setup(true);
14
14
  telemetry_1.Telemetry.client.config.disableAppInsights = true;
15
15
  test('Sanitize message, no-op', () => {
16
16
  // do stuff
17
- expect(telemetry_1.sanitizeMessage('')).toEqual('');
18
- expect(telemetry_1.sanitizeMessage('some text')).toEqual('some text');
17
+ expect((0, telemetry_1.sanitizeMessage)('')).toEqual('');
18
+ expect((0, telemetry_1.sanitizeMessage)('some text')).toEqual('some text');
19
19
  });
20
20
  test('Sanitize message, project_dir', () => {
21
- expect(telemetry_1.sanitizeMessage(`this is the cwd: '${process.cwd()}'`)).toEqual(`this is the cwd: [project_dir]\\???(${process.cwd().length})`);
22
- expect(telemetry_1.sanitizeMessage(`uppercase: '${process.cwd().toUpperCase()}'`)).toEqual(`uppercase: [project_dir]\\???(${process.cwd().length})`);
23
- expect(telemetry_1.sanitizeMessage(`lowercase: '${process.cwd().toLowerCase()}'`)).toEqual(`lowercase: [project_dir]\\???(${process.cwd().length})`);
24
- expect(telemetry_1.sanitizeMessage(`this is the cwd: '${process.cwd()}' and something else`)).toEqual(`this is the cwd: [project_dir]\\???(${process.cwd().length}) and something else`);
25
- expect(telemetry_1.sanitizeMessage(`this is the cwd: ${process.cwd()} and something else`)).toEqual(`this is the cwd: [project_dir]\\???(${(process.cwd() + ' and something else').length})`);
21
+ expect((0, telemetry_1.sanitizeMessage)(`this is the cwd: '${process.cwd()}'`)).toEqual(`this is the cwd: [project_dir]\\???(${process.cwd().length})`);
22
+ expect((0, telemetry_1.sanitizeMessage)(`uppercase: '${process.cwd().toUpperCase()}'`)).toEqual(`uppercase: [project_dir]\\???(${process.cwd().length})`);
23
+ expect((0, telemetry_1.sanitizeMessage)(`lowercase: '${process.cwd().toLowerCase()}'`)).toEqual(`lowercase: [project_dir]\\???(${process.cwd().length})`);
24
+ expect((0, telemetry_1.sanitizeMessage)(`this is the cwd: '${process.cwd()}' and something else`)).toEqual(`this is the cwd: [project_dir]\\???(${process.cwd().length}) and something else`);
25
+ expect((0, telemetry_1.sanitizeMessage)(`this is the cwd: ${process.cwd()} and something else`)).toEqual(`this is the cwd: [project_dir]\\???(${(process.cwd() + ' and something else').length})`);
26
26
  });
27
27
  test('Sanitize message, node_modules', () => {
28
- expect(telemetry_1.sanitizeMessage(`this is the cwd: '${process.cwd()}\\node_modules'`)).toEqual(`this is the cwd: [project_dir]\\???(${(process.cwd() + '\\node_modules').length})`);
29
- expect(telemetry_1.sanitizeMessage(`this is the cwd: '${process.cwd()}\\node_modules\\foo'`)).toEqual('this is the cwd: node_modules\\foo');
30
- expect(telemetry_1.sanitizeMessage(`uppercase: '${process.cwd().toUpperCase()}\\NODE_MODULES\\foo'`)).toEqual('uppercase: node_modules\\foo');
31
- expect(telemetry_1.sanitizeMessage(`lowercase: '${process.cwd().toLowerCase()}\\NODE_MODULES\\'`)).toEqual('lowercase: node_modules\\');
32
- expect(telemetry_1.sanitizeMessage(`trailing: '${process.cwd()}\\node_modules\\' and something else`)).toEqual('trailing: node_modules\\ and something else');
33
- expect(telemetry_1.sanitizeMessage(`this is the cwd: ${process.cwd()}\\node_modules and something else that could be part of the path`)).toEqual(`this is the cwd: [project_dir]\\???(${(process.cwd() +
28
+ expect((0, telemetry_1.sanitizeMessage)(`this is the cwd: '${process.cwd()}\\node_modules'`)).toEqual(`this is the cwd: [project_dir]\\???(${(process.cwd() + '\\node_modules').length})`);
29
+ expect((0, telemetry_1.sanitizeMessage)(`this is the cwd: '${process.cwd()}\\node_modules\\foo'`)).toEqual('this is the cwd: node_modules\\foo');
30
+ expect((0, telemetry_1.sanitizeMessage)(`uppercase: '${process.cwd().toUpperCase()}\\NODE_MODULES\\foo'`)).toEqual('uppercase: node_modules\\foo');
31
+ expect((0, telemetry_1.sanitizeMessage)(`lowercase: '${process.cwd().toLowerCase()}\\NODE_MODULES\\'`)).toEqual('lowercase: node_modules\\');
32
+ expect((0, telemetry_1.sanitizeMessage)(`trailing: '${process.cwd()}\\node_modules\\' and something else`)).toEqual('trailing: node_modules\\ and something else');
33
+ expect((0, telemetry_1.sanitizeMessage)(`this is the cwd: ${process.cwd()}\\node_modules and something else that could be part of the path`)).toEqual(`this is the cwd: [project_dir]\\???(${(process.cwd() +
34
34
  '\\node_modules and something else that could be part of the path').length})`);
35
- expect(telemetry_1.sanitizeMessage(`this is the cwd: ${process.cwd()}\\node_modules\\ a file under nm`)).toEqual(`this is the cwd: node_modules\\ a file under nm`);
35
+ expect((0, telemetry_1.sanitizeMessage)(`this is the cwd: ${process.cwd()}\\node_modules\\ a file under nm`)).toEqual(`this is the cwd: node_modules\\ a file under nm`);
36
36
  });
37
37
  test('Sanitize message, other path', () => {
38
- expect(telemetry_1.sanitizeMessage(`this is another path: 'A:\\foo\\bar\\baz'`)).toEqual(`this is another path: [path]`);
39
- expect(telemetry_1.sanitizeMessage(`this is another path: A:\\foo\\bar\\baz`)).toEqual(`this is another path: [path]`);
40
- expect(telemetry_1.sanitizeMessage(`Cannot find module 'react-native/package.json'
38
+ expect((0, telemetry_1.sanitizeMessage)(`this is another path: 'A:\\foo\\bar\\baz'`)).toEqual(`this is another path: [path]`);
39
+ expect((0, telemetry_1.sanitizeMessage)(`this is another path: A:\\foo\\bar\\baz`)).toEqual(`this is another path: [path]`);
40
+ expect((0, telemetry_1.sanitizeMessage)(`Cannot find module 'react-native/package.json'
41
41
  Require stack:
42
42
  - ${process.env.AppData}\\npm-cache\\_npx\\1384\\node_modules\\react-native-windows-init\\lib-commonjs\\Cli.js
43
43
  - ${process.env.AppData}\\npm-cache\\_npx\\1384\\node_modules\\react-native-windows-init\\bin.js`)).toEqual(`Cannot find module react-native/package.json
@@ -48,18 +48,18 @@ test('Sanitize message, other path', () => {
48
48
  '\\npm-cache\\_npx\\1384\\node_modules\\react-native-windows-init\\bin.js').length})`);
49
49
  });
50
50
  test('Sanitize message, forward slashes', () => {
51
- expect(telemetry_1.sanitizeMessage(`EPERM: operation not permitted, scandir ${process.env.UserProfile.replace(/\\/g, '/')}/source/repos/rn2/wintest/windows/packages/boost.1.76.0.0/lib/native/include`)).toEqual(`EPERM: operation not permitted, scandir [UserProfile]\\???(${(process.env.UserProfile +
51
+ expect((0, telemetry_1.sanitizeMessage)(`EPERM: operation not permitted, scandir ${process.env.UserProfile.replace(/\\/g, '/')}/source/repos/rn2/wintest/windows/packages/boost.1.76.0.0/lib/native/include`)).toEqual(`EPERM: operation not permitted, scandir [UserProfile]\\???(${(process.env.UserProfile +
52
52
  '/source/repos/rn2/wintest/windows/packages/boost.1.76.0.0/lib/native/include').length})`);
53
53
  });
54
54
  test('Sanitize message, file share path', () => {
55
- expect(telemetry_1.sanitizeMessage(`\\\\server\\share`)).toEqual('[path]');
55
+ expect((0, telemetry_1.sanitizeMessage)(`\\\\server\\share`)).toEqual('[path]');
56
56
  });
57
57
  test('Sanitize message, with cpu/thread id', () => {
58
- expect(telemetry_1.sanitizeMessage('5>This is an error')).toEqual('This is an error');
59
- expect(telemetry_1.sanitizeMessage('5:42>This is an error')).toEqual('This is an error');
58
+ expect((0, telemetry_1.sanitizeMessage)('5>This is an error')).toEqual('This is an error');
59
+ expect((0, telemetry_1.sanitizeMessage)('5:42>This is an error')).toEqual('This is an error');
60
60
  });
61
61
  test('Error code', () => {
62
- expect(telemetry_1.tryGetErrorCode('foo bar error FOO2020: the thing')).toEqual('FOO2020');
62
+ expect((0, telemetry_1.tryGetErrorCode)('foo bar error FOO2020: the thing')).toEqual('FOO2020');
63
63
  });
64
64
  test('Sanitize stack frame', () => {
65
65
  const emptyFrame = {
@@ -69,7 +69,7 @@ test('Sanitize stack frame', () => {
69
69
  assembly: 'asdf',
70
70
  line: 0,
71
71
  };
72
- telemetry_1.sanitizeFrame(emptyFrame);
72
+ (0, telemetry_1.sanitizeFrame)(emptyFrame);
73
73
  expect(emptyFrame).toEqual({
74
74
  level: 0,
75
75
  assembly: '',
@@ -84,7 +84,7 @@ test('Sanitize stack frame', () => {
84
84
  level: 0,
85
85
  line: 0,
86
86
  };
87
- telemetry_1.sanitizeFrame(frame1);
87
+ (0, telemetry_1.sanitizeFrame)(frame1);
88
88
  expect(frame1).toEqual({
89
89
  assembly: '',
90
90
  fileName: 'telemetry\\foo.js',
@@ -99,7 +99,7 @@ test('Sanitize stack frame', () => {
99
99
  level: 1,
100
100
  line: 42,
101
101
  };
102
- telemetry_1.sanitizeFrame(frame2);
102
+ (0, telemetry_1.sanitizeFrame)(frame2);
103
103
  expect(frame2).toEqual({
104
104
  assembly: '',
105
105
  fileName: 'telemetry\\foo.js',
@@ -131,7 +131,7 @@ test.skip('thrown exception a->b, hello world', () => {
131
131
  const stack = data.exceptions[0].parsedStack;
132
132
  expect(stack).toBeDefined();
133
133
  expect(stack.length).toBeGreaterThan(5);
134
- const filename = path_1.basename(__filename);
134
+ const filename = (0, path_1.basename)(__filename);
135
135
  expect(stack[0].method).toEqual('b');
136
136
  expect(stack[1].method).toEqual('b');
137
137
  expect(stack[2].method).toEqual('Object.a');
@@ -182,7 +182,7 @@ test.skip('thrown exception a->b, hello path', done => {
182
182
  const stack = data.exceptions[0].parsedStack;
183
183
  expect(stack).toBeDefined();
184
184
  expect(stack.length).toBeGreaterThan(5);
185
- const filename = path_1.basename(__filename);
185
+ const filename = (0, path_1.basename)(__filename);
186
186
  expect(stack[0].method).toEqual('b');
187
187
  expect(stack[1].method).toEqual('b');
188
188
  expect(stack[2].method).toEqual('Object.a');
@@ -1 +1 @@
1
- {"version":3,"file":"sanitize.test.js","sourceRoot":"","sources":["../../src/test/sanitize.test.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * @format\n */\n\nimport {\n Telemetry,\n sanitizeMessage,\n sanitizeEnvelope,\n sanitizeFrame,\n tryGetErrorCode,\n} from '../telemetry';\nimport * as appInsights from 'applicationinsights';\nimport {basename} from 'path';\nimport {CodedError} from '../CodedError';\n\ndelete process.env.AGENT_NAME; // allow this test to run in Azure DevOps / GHA\nTelemetry.setup(true);\nTelemetry.client!.config.disableAppInsights = true;\n\ntest('Sanitize message, no-op', () => {\n // do stuff\n expect(sanitizeMessage('')).toEqual('');\n expect(sanitizeMessage('some text')).toEqual('some text');\n});\n\ntest('Sanitize message, project_dir', () => {\n expect(sanitizeMessage(`this is the cwd: '${process.cwd()}'`)).toEqual(\n `this is the cwd: [project_dir]\\\\???(${process.cwd().length})`,\n );\n expect(\n sanitizeMessage(`uppercase: '${process.cwd().toUpperCase()}'`),\n ).toEqual(`uppercase: [project_dir]\\\\???(${process.cwd().length})`);\n expect(\n sanitizeMessage(`lowercase: '${process.cwd().toLowerCase()}'`),\n ).toEqual(`lowercase: [project_dir]\\\\???(${process.cwd().length})`);\n expect(\n sanitizeMessage(`this is the cwd: '${process.cwd()}' and something else`),\n ).toEqual(\n `this is the cwd: [project_dir]\\\\???(${\n process.cwd().length\n }) and something else`,\n );\n expect(\n sanitizeMessage(`this is the cwd: ${process.cwd()} and something else`),\n ).toEqual(\n `this is the cwd: [project_dir]\\\\???(${\n (process.cwd() + ' and something else').length\n })`,\n );\n});\n\ntest('Sanitize message, node_modules', () => {\n expect(\n sanitizeMessage(`this is the cwd: '${process.cwd()}\\\\node_modules'`),\n ).toEqual(\n `this is the cwd: [project_dir]\\\\???(${\n (process.cwd() + '\\\\node_modules').length\n })`,\n );\n expect(\n sanitizeMessage(`this is the cwd: '${process.cwd()}\\\\node_modules\\\\foo'`),\n ).toEqual('this is the cwd: node_modules\\\\foo');\n expect(\n sanitizeMessage(\n `uppercase: '${process.cwd().toUpperCase()}\\\\NODE_MODULES\\\\foo'`,\n ),\n ).toEqual('uppercase: node_modules\\\\foo');\n expect(\n sanitizeMessage(\n `lowercase: '${process.cwd().toLowerCase()}\\\\NODE_MODULES\\\\'`,\n ),\n ).toEqual('lowercase: node_modules\\\\');\n expect(\n sanitizeMessage(\n `trailing: '${process.cwd()}\\\\node_modules\\\\' and something else`,\n ),\n ).toEqual('trailing: node_modules\\\\ and something else');\n expect(\n sanitizeMessage(\n `this is the cwd: ${process.cwd()}\\\\node_modules and something else that could be part of the path`,\n ),\n ).toEqual(\n `this is the cwd: [project_dir]\\\\???(${\n (\n process.cwd() +\n '\\\\node_modules and something else that could be part of the path'\n ).length\n })`,\n );\n expect(\n sanitizeMessage(\n `this is the cwd: ${process.cwd()}\\\\node_modules\\\\ a file under nm`,\n ),\n ).toEqual(`this is the cwd: node_modules\\\\ a file under nm`);\n});\n\ntest('Sanitize message, other path', () => {\n expect(sanitizeMessage(`this is another path: 'A:\\\\foo\\\\bar\\\\baz'`)).toEqual(\n `this is another path: [path]`,\n );\n\n expect(sanitizeMessage(`this is another path: A:\\\\foo\\\\bar\\\\baz`)).toEqual(\n `this is another path: [path]`,\n );\n\n expect(\n sanitizeMessage(\n `Cannot find module 'react-native/package.json'\n Require stack:\n - ${process.env.AppData}\\\\npm-cache\\\\_npx\\\\1384\\\\node_modules\\\\react-native-windows-init\\\\lib-commonjs\\\\Cli.js\n - ${process.env.AppData}\\\\npm-cache\\\\_npx\\\\1384\\\\node_modules\\\\react-native-windows-init\\\\bin.js`,\n ),\n ).toEqual(`Cannot find module react-native/package.json \n Require stack:\n - [AppData]\\\\???(${\n (\n process.env.AppData +\n '\\\\npm-cache\\\\_npx\\\\1384\\\\node_modules\\\\react-native-windows-init\\\\lib-commonjs\\\\Cli.js'\n ).length\n })\n - [AppData]\\\\???(${\n (\n process.env.AppData +\n '\\\\npm-cache\\\\_npx\\\\1384\\\\node_modules\\\\react-native-windows-init\\\\bin.js'\n ).length\n })`);\n});\n\ntest('Sanitize message, forward slashes', () => {\n expect(\n sanitizeMessage(\n `EPERM: operation not permitted, scandir ${process.env.UserProfile!.replace(\n /\\\\/g,\n '/',\n )}/source/repos/rn2/wintest/windows/packages/boost.1.76.0.0/lib/native/include`,\n ),\n ).toEqual(\n `EPERM: operation not permitted, scandir [UserProfile]\\\\???(${\n (\n process.env.UserProfile +\n '/source/repos/rn2/wintest/windows/packages/boost.1.76.0.0/lib/native/include'\n ).length\n })`,\n );\n});\n\ntest('Sanitize message, file share path', () => {\n expect(sanitizeMessage(`\\\\\\\\server\\\\share`)).toEqual('[path]');\n});\n\ntest('Sanitize message, with cpu/thread id', () => {\n expect(sanitizeMessage('5>This is an error')).toEqual('This is an error');\n\n expect(sanitizeMessage('5:42>This is an error')).toEqual('This is an error');\n});\n\ntest('Error code', () => {\n expect(tryGetErrorCode('foo bar error FOO2020: the thing')).toEqual(\n 'FOO2020',\n );\n});\n\ntest('Sanitize stack frame', () => {\n const emptyFrame: appInsights.Contracts.StackFrame = {\n level: 0,\n method: '',\n fileName: '',\n assembly: 'asdf',\n line: 0,\n };\n sanitizeFrame(emptyFrame);\n expect(emptyFrame).toEqual({\n level: 0,\n assembly: '',\n fileName: '.',\n method: '',\n line: 0,\n });\n\n const frame1: appInsights.Contracts.StackFrame = {\n method: '',\n fileName: `${process.cwd()}\\\\foo.js`,\n assembly: 'asdf',\n level: 0,\n line: 0,\n };\n sanitizeFrame(frame1);\n expect(frame1).toEqual({\n assembly: '',\n fileName: 'telemetry\\\\foo.js',\n method: '',\n level: 0,\n line: 0,\n });\n\n const frame2: appInsights.Contracts.StackFrame = {\n method: `myMethod (something ${process.cwd()}`,\n fileName: `${process.cwd()}\\\\foo.js`,\n assembly: 'asdf',\n level: 1,\n line: 42,\n };\n sanitizeFrame(frame2);\n expect(frame2).toEqual({\n assembly: '',\n fileName: 'telemetry\\\\foo.js',\n method: 'myMethod',\n level: 1,\n line: 42,\n });\n});\n\ntest('basic setup', () => {\n expect(Telemetry.client!.commonProperties.sessionId).toBeDefined();\n\n expect(\n Telemetry.client!.commonProperties.sessionId.length,\n ).toBeGreaterThanOrEqual(32);\n\n expect(Telemetry.client!.commonProperties.isTest).toEqual('true');\n});\n\nfunction b(s: string) {\n throw new Error('hello ' + s);\n}\nfunction a(s: string) {\n b(s);\n}\n\n// #7903: This test assumes exact structure of stack trace, which can be flaky or implementation dependent\ntest.skip('thrown exception a->b, hello world', () => {\n let pass = false;\n Telemetry.client!.addTelemetryProcessor((envelope, _) => {\n if (envelope.data.baseType === 'ExceptionData') {\n const data = (envelope.data as any).baseData;\n expect(data.exceptions).toBeDefined();\n expect(data.exceptions.length).toEqual(1);\n expect(data.exceptions[0].message).toEqual('hello world');\n\n const stack = data.exceptions[0].parsedStack;\n expect(stack).toBeDefined();\n expect(stack.length).toBeGreaterThan(5);\n\n const filename = basename(__filename);\n expect(stack[0].method).toEqual('b');\n expect(stack[1].method).toEqual('b');\n expect(stack[2].method).toEqual('Object.a');\n expect(stack[0].fileName).toEqual(`test\\\\${filename}`);\n expect(stack[1].fileName).toEqual(`test\\\\${filename}`);\n expect(stack[2].fileName).toEqual(`test\\\\${filename}`);\n pass = true;\n }\n return true;\n });\n try {\n a('world');\n } catch (e) {\n Telemetry.client!.trackException({exception: e});\n }\n Telemetry.client!.flush();\n\n expect(pass).toBeTruthy();\n Telemetry.client!.clearTelemetryProcessors();\n Telemetry.client!.addTelemetryProcessor(sanitizeEnvelope);\n});\n\ntest('throw exception with error code', done => {\n Telemetry.client!.addTelemetryProcessor((envelope, _) => {\n const data = (envelope.data as any).baseData;\n expect(data.properties.errorCode).toEqual('FOO2020');\n return true;\n });\n\n try {\n throw new Error('hello from an error FOO2020: the error string');\n } catch (e) {\n Telemetry.client!.trackException({exception: e});\n Telemetry.client!.flush();\n }\n Telemetry.client!.clearTelemetryProcessors();\n Telemetry.client!.addTelemetryProcessor(sanitizeEnvelope);\n done();\n});\n\n// #7903: This test assumes exact structure of stack trace, which can be flaky or implementation dependent\ntest.skip('thrown exception a->b, hello path', done => {\n let pass = false;\n Telemetry.client!.addTelemetryProcessor((envelope, _) => {\n if (envelope.data.baseType === 'ExceptionData') {\n const data = (envelope.data as any).baseData;\n expect(data.exceptions).toBeDefined();\n expect(data.exceptions.length).toEqual(1);\n expect(data.exceptions[0].message).toEqual(\n `hello [project_dir]\\\\???(${process.cwd().length})`,\n );\n\n const stack = data.exceptions[0].parsedStack;\n expect(stack).toBeDefined();\n expect(stack.length).toBeGreaterThan(5);\n\n const filename = basename(__filename);\n expect(stack[0].method).toEqual('b');\n expect(stack[1].method).toEqual('b');\n expect(stack[2].method).toEqual('Object.a');\n expect(stack[0].fileName).toEqual(`test\\\\${filename}`);\n expect(stack[1].fileName).toEqual(`test\\\\${filename}`);\n expect(stack[2].fileName).toEqual(`test\\\\${filename}`);\n pass = true;\n }\n return true;\n });\n try {\n a(process.cwd());\n } catch (e) {\n Telemetry.client!.trackException({exception: e});\n }\n Telemetry.client!.flush();\n\n expect(pass).toBeTruthy();\n expect(pass).toBeTruthy();\n Telemetry.client!.clearTelemetryProcessors();\n Telemetry.client!.addTelemetryProcessor(sanitizeEnvelope);\n done();\n});\n\ntest('trackEvent should not identify roleInstance', () => {\n Telemetry.client!.addTelemetryProcessor((envelope, _) => {\n expect(envelope.tags['ai.cloud.roleInstance']).toBeUndefined();\n return true;\n });\n Telemetry.client!.trackEvent({\n name: 'test',\n properties: {},\n });\n Telemetry.client!.flush();\n Telemetry.client!.clearTelemetryProcessors();\n Telemetry.client!.addTelemetryProcessor(sanitizeEnvelope);\n});\n\n/////////////////////////\n// CodedError tests\ntest('No message', done => {\n Telemetry.preserveMessages = false;\n let pass = false;\n Telemetry.client!.addTelemetryProcessor((envelope, _) => {\n if (envelope.data.baseType === 'ExceptionData') {\n const data = (envelope.data as any).baseData;\n expect(data.exceptions).toBeDefined();\n expect(data.exceptions.length).toEqual(1);\n expect(data.exceptions[0].message).toBeUndefined();\n expect(data.exceptions[0].typeName).toEqual('MSBuildError');\n // This should be 42, but instead it is '42'\n // https://github.com/microsoft/ApplicationInsights-node.js/issues/708\n expect(data.properties.foo).toBeDefined();\n expect(parseInt(data.properties.foo, 10)).toEqual(42);\n pass = true;\n }\n return true;\n });\n\n try {\n throw new CodedError('MSBuildError', 'Something secret', {\n foo: 42,\n });\n } catch (e) {\n Telemetry.client!.trackException({\n exception: e,\n properties: (e as CodedError).data,\n });\n Telemetry.client!.flush();\n }\n\n expect(pass).toEqual(true);\n Telemetry.client!.clearTelemetryProcessors();\n Telemetry.client!.addTelemetryProcessor(sanitizeEnvelope);\n done();\n});\n"]}
1
+ {"version":3,"file":"sanitize.test.js","sourceRoot":"","sources":["../../src/test/sanitize.test.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAEH,4CAMsB;AAEtB,+BAA8B;AAC9B,8CAAyC;AAEzC,OAAO,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,+CAA+C;AAC9E,qBAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AACtB,qBAAS,CAAC,MAAO,CAAC,MAAM,CAAC,kBAAkB,GAAG,IAAI,CAAC;AAEnD,IAAI,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACnC,WAAW;IACX,MAAM,CAAC,IAAA,2BAAe,EAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACxC,MAAM,CAAC,IAAA,2BAAe,EAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AAC5D,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE;IACzC,MAAM,CAAC,IAAA,2BAAe,EAAC,qBAAqB,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,OAAO,CACpE,wCAAwC,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,CAChE,CAAC;IACF,MAAM,CACJ,IAAA,2BAAe,EAAC,eAAe,OAAO,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,GAAG,CAAC,CAC/D,CAAC,OAAO,CAAC,kCAAkC,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;IACrE,MAAM,CACJ,IAAA,2BAAe,EAAC,eAAe,OAAO,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,GAAG,CAAC,CAC/D,CAAC,OAAO,CAAC,kCAAkC,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;IACrE,MAAM,CACJ,IAAA,2BAAe,EAAC,qBAAqB,OAAO,CAAC,GAAG,EAAE,sBAAsB,CAAC,CAC1E,CAAC,OAAO,CACP,wCACE,OAAO,CAAC,GAAG,EAAE,CAAC,MAChB,uBAAuB,CACxB,CAAC;IACF,MAAM,CACJ,IAAA,2BAAe,EAAC,oBAAoB,OAAO,CAAC,GAAG,EAAE,qBAAqB,CAAC,CACxE,CAAC,OAAO,CACP,uCACE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,qBAAqB,CAAC,CAAC,MAC1C,GAAG,CACJ,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,gCAAgC,EAAE,GAAG,EAAE;IAC1C,MAAM,CACJ,IAAA,2BAAe,EAAC,qBAAqB,OAAO,CAAC,GAAG,EAAE,iBAAiB,CAAC,CACrE,CAAC,OAAO,CACP,wCACE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,gBAAgB,CAAC,CAAC,MACrC,GAAG,CACJ,CAAC;IACF,MAAM,CACJ,IAAA,2BAAe,EAAC,qBAAqB,OAAO,CAAC,GAAG,EAAE,sBAAsB,CAAC,CAC1E,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC;IACjD,MAAM,CACJ,IAAA,2BAAe,EACb,eAAe,OAAO,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,sBAAsB,CACjE,CACF,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;IAC3C,MAAM,CACJ,IAAA,2BAAe,EACb,eAAe,OAAO,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,mBAAmB,CAC9D,CACF,CAAC,OAAO,CAAC,4BAA4B,CAAC,CAAC;IACxC,MAAM,CACJ,IAAA,2BAAe,EACb,cAAc,OAAO,CAAC,GAAG,EAAE,sCAAsC,CAClE,CACF,CAAC,OAAO,CAAC,+CAA+C,CAAC,CAAC;IAC3D,MAAM,CACJ,IAAA,2BAAe,EACb,oBAAoB,OAAO,CAAC,GAAG,EAAE,kEAAkE,CACpG,CACF,CAAC,OAAO,CACP,uCACE,CACE,OAAO,CAAC,GAAG,EAAE;QACb,kEAAkE,CACnE,CAAC,MACJ,GAAG,CACJ,CAAC;IACF,MAAM,CACJ,IAAA,2BAAe,EACb,oBAAoB,OAAO,CAAC,GAAG,EAAE,kCAAkC,CACpE,CACF,CAAC,OAAO,CAAC,iDAAiD,CAAC,CAAC;AAC/D,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,8BAA8B,EAAE,GAAG,EAAE;IACxC,MAAM,CAAC,IAAA,2BAAe,EAAC,2CAA2C,CAAC,CAAC,CAAC,OAAO,CAC1E,+BAA+B,CAChC,CAAC;IAEF,MAAM,CAAC,IAAA,2BAAe,EAAC,yCAAyC,CAAC,CAAC,CAAC,OAAO,CACxE,8BAA8B,CAC/B,CAAC;IAEF,MAAM,CACJ,IAAA,2BAAe,EACb;;UAEI,OAAO,CAAC,GAAG,CAAC,OAAO;UACnB,OAAO,CAAC,GAAG,CAAC,OAAO,0EAA0E,CAClG,CACF,CAAC,OAAO,CAAC;;yBAGJ,CACE,OAAO,CAAC,GAAG,CAAC,OAAO;QACnB,wFAAwF,CACzF,CAAC,MACJ;yBAEE,CACE,OAAO,CAAC,GAAG,CAAC,OAAO;QACnB,0EAA0E,CAC3E,CAAC,MACJ,GAAG,CAAC,CAAC;AACX,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,mCAAmC,EAAE,GAAG,EAAE;IAC7C,MAAM,CACJ,IAAA,2BAAe,EACb,4CAA4C,OAAO,CAAC,GAAG,CAAC,WAAY,CAAC,OAAO,CAC1E,KAAK,EACL,GAAG,CACJ,8EAA8E,CAChF,CACF,CAAC,OAAO,CACP,+DACE,CACE,OAAO,CAAC,GAAG,CAAC,WAAW;QACvB,8EAA8E,CAC/E,CAAC,MACJ,GAAG,CACJ,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,mCAAmC,EAAE,GAAG,EAAE;IAC7C,MAAM,CAAC,IAAA,2BAAe,EAAC,mBAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACjE,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,sCAAsC,EAAE,GAAG,EAAE;IAChD,MAAM,CAAC,IAAA,2BAAe,EAAC,oBAAoB,CAAC,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAE1E,MAAM,CAAC,IAAA,2BAAe,EAAC,uBAAuB,CAAC,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAC/E,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE;IACtB,MAAM,CAAC,IAAA,2BAAe,EAAC,kCAAkC,CAAC,CAAC,CAAC,OAAO,CACjE,SAAS,CACV,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,sBAAsB,EAAE,GAAG,EAAE;IAChC,MAAM,UAAU,GAAqC;QACnD,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,EAAE;QACV,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,MAAM;QAChB,IAAI,EAAE,CAAC;KACR,CAAC;IACF,IAAA,yBAAa,EAAC,UAAU,CAAC,CAAC;IAC1B,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC;QACzB,KAAK,EAAE,CAAC;QACR,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,GAAG;QACb,MAAM,EAAE,EAAE;QACV,IAAI,EAAE,CAAC;KACR,CAAC,CAAC;IAEH,MAAM,MAAM,GAAqC;QAC/C,MAAM,EAAE,EAAE;QACV,QAAQ,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,UAAU;QACpC,QAAQ,EAAE,MAAM;QAChB,KAAK,EAAE,CAAC;QACR,IAAI,EAAE,CAAC;KACR,CAAC;IACF,IAAA,yBAAa,EAAC,MAAM,CAAC,CAAC;IACtB,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;QACrB,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,mBAAmB;QAC7B,MAAM,EAAE,EAAE;QACV,KAAK,EAAE,CAAC;QACR,IAAI,EAAE,CAAC;KACR,CAAC,CAAC;IAEH,MAAM,MAAM,GAAqC;QAC/C,MAAM,EAAE,uBAAuB,OAAO,CAAC,GAAG,EAAE,EAAE;QAC9C,QAAQ,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,UAAU;QACpC,QAAQ,EAAE,MAAM;QAChB,KAAK,EAAE,CAAC;QACR,IAAI,EAAE,EAAE;KACT,CAAC;IACF,IAAA,yBAAa,EAAC,MAAM,CAAC,CAAC;IACtB,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;QACrB,QAAQ,EAAE,EAAE;QACZ,QAAQ,EAAE,mBAAmB;QAC7B,MAAM,EAAE,UAAU;QAClB,KAAK,EAAE,CAAC;QACR,IAAI,EAAE,EAAE;KACT,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,aAAa,EAAE,GAAG,EAAE;IACvB,MAAM,CAAC,qBAAS,CAAC,MAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;IAEnE,MAAM,CACJ,qBAAS,CAAC,MAAO,CAAC,gBAAgB,CAAC,SAAS,CAAC,MAAM,CACpD,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;IAE7B,MAAM,CAAC,qBAAS,CAAC,MAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AACpE,CAAC,CAAC,CAAC;AAEH,SAAS,CAAC,CAAC,CAAS;IAClB,MAAM,IAAI,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;AAChC,CAAC;AACD,SAAS,CAAC,CAAC,CAAS;IAClB,CAAC,CAAC,CAAC,CAAC,CAAC;AACP,CAAC;AAED,0GAA0G;AAC1G,IAAI,CAAC,IAAI,CAAC,oCAAoC,EAAE,GAAG,EAAE;IACnD,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,qBAAS,CAAC,MAAO,CAAC,qBAAqB,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE;QACtD,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,KAAK,eAAe,EAAE;YAC9C,MAAM,IAAI,GAAI,QAAQ,CAAC,IAAY,CAAC,QAAQ,CAAC;YAC7C,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;YACtC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC1C,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YAE1D,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;YAC7C,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YAC5B,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YAExC,MAAM,QAAQ,GAAG,IAAA,eAAQ,EAAC,UAAU,CAAC,CAAC;YACtC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACrC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACrC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC5C,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,SAAS,QAAQ,EAAE,CAAC,CAAC;YACvD,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,SAAS,QAAQ,EAAE,CAAC,CAAC;YACvD,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,SAAS,QAAQ,EAAE,CAAC,CAAC;YACvD,IAAI,GAAG,IAAI,CAAC;SACb;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IACH,IAAI;QACF,CAAC,CAAC,OAAO,CAAC,CAAC;KACZ;IAAC,OAAO,CAAC,EAAE;QACV,qBAAS,CAAC,MAAO,CAAC,cAAc,CAAC,EAAC,SAAS,EAAE,CAAU,EAAC,CAAC,CAAC;KAC3D;IACD,qBAAS,CAAC,MAAO,CAAC,KAAK,EAAE,CAAC;IAE1B,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;IAC1B,qBAAS,CAAC,MAAO,CAAC,wBAAwB,EAAE,CAAC;IAC7C,qBAAS,CAAC,MAAO,CAAC,qBAAqB,CAAC,4BAAgB,CAAC,CAAC;AAC5D,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,iCAAiC,EAAE,IAAI,CAAC,EAAE;IAC7C,qBAAS,CAAC,MAAO,CAAC,qBAAqB,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE;QACtD,MAAM,IAAI,GAAI,QAAQ,CAAC,IAAY,CAAC,QAAQ,CAAC;QAC7C,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,IAAI;QACF,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;KAClE;IAAC,OAAO,CAAC,EAAE;QACV,qBAAS,CAAC,MAAO,CAAC,cAAc,CAAC,EAAC,SAAS,EAAE,CAAU,EAAC,CAAC,CAAC;QAC1D,qBAAS,CAAC,MAAO,CAAC,KAAK,EAAE,CAAC;KAC3B;IACD,qBAAS,CAAC,MAAO,CAAC,wBAAwB,EAAE,CAAC;IAC7C,qBAAS,CAAC,MAAO,CAAC,qBAAqB,CAAC,4BAAgB,CAAC,CAAC;IAC1D,IAAI,EAAE,CAAC;AACT,CAAC,CAAC,CAAC;AAEH,0GAA0G;AAC1G,IAAI,CAAC,IAAI,CAAC,mCAAmC,EAAE,IAAI,CAAC,EAAE;IACpD,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,qBAAS,CAAC,MAAO,CAAC,qBAAqB,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE;QACtD,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,KAAK,eAAe,EAAE;YAC9C,MAAM,IAAI,GAAI,QAAQ,CAAC,IAAY,CAAC,QAAQ,CAAC;YAC7C,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;YACtC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC1C,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CACxC,4BAA4B,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,CACpD,CAAC;YAEF,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;YAC7C,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YAC5B,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YAExC,MAAM,QAAQ,GAAG,IAAA,eAAQ,EAAC,UAAU,CAAC,CAAC;YACtC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACrC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACrC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YAC5C,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,SAAS,QAAQ,EAAE,CAAC,CAAC;YACvD,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,SAAS,QAAQ,EAAE,CAAC,CAAC;YACvD,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,SAAS,QAAQ,EAAE,CAAC,CAAC;YACvD,IAAI,GAAG,IAAI,CAAC;SACb;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IACH,IAAI;QACF,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;KAClB;IAAC,OAAO,CAAC,EAAE;QACV,qBAAS,CAAC,MAAO,CAAC,cAAc,CAAC,EAAC,SAAS,EAAE,CAAU,EAAC,CAAC,CAAC;KAC3D;IACD,qBAAS,CAAC,MAAO,CAAC,KAAK,EAAE,CAAC;IAE1B,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;IAC1B,MAAM,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC;IAC1B,qBAAS,CAAC,MAAO,CAAC,wBAAwB,EAAE,CAAC;IAC7C,qBAAS,CAAC,MAAO,CAAC,qBAAqB,CAAC,4BAAgB,CAAC,CAAC;IAC1D,IAAI,EAAE,CAAC;AACT,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,6CAA6C,EAAE,GAAG,EAAE;IACvD,qBAAS,CAAC,MAAO,CAAC,qBAAqB,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE;QACtD,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC;QAC/D,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IACH,qBAAS,CAAC,MAAO,CAAC,UAAU,CAAC;QAC3B,IAAI,EAAE,MAAM;QACZ,UAAU,EAAE,EAAE;KACf,CAAC,CAAC;IACH,qBAAS,CAAC,MAAO,CAAC,KAAK,EAAE,CAAC;IAC1B,qBAAS,CAAC,MAAO,CAAC,wBAAwB,EAAE,CAAC;IAC7C,qBAAS,CAAC,MAAO,CAAC,qBAAqB,CAAC,4BAAgB,CAAC,CAAC;AAC5D,CAAC,CAAC,CAAC;AAEH,yBAAyB;AACzB,mBAAmB;AACnB,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE;IACxB,qBAAS,CAAC,gBAAgB,GAAG,KAAK,CAAC;IACnC,IAAI,IAAI,GAAG,KAAK,CAAC;IACjB,qBAAS,CAAC,MAAO,CAAC,qBAAqB,CAAC,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE;QACtD,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,KAAK,eAAe,EAAE;YAC9C,MAAM,IAAI,GAAI,QAAQ,CAAC,IAAY,CAAC,QAAQ,CAAC;YAC7C,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,CAAC;YACtC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC1C,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,CAAC;YACnD,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YAC5D,4CAA4C;YAC5C,sEAAsE;YACtE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC;YAC1C,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACtD,IAAI,GAAG,IAAI,CAAC;SACb;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC,CAAC;IAEH,IAAI;QACF,MAAM,IAAI,uBAAU,CAAC,cAAc,EAAE,kBAAkB,EAAE;YACvD,GAAG,EAAE,EAAE;SACR,CAAC,CAAC;KACJ;IAAC,OAAO,CAAC,EAAE;QACV,qBAAS,CAAC,MAAO,CAAC,cAAc,CAAC;YAC/B,SAAS,EAAE,CAAU;YACrB,UAAU,EAAG,CAAgB,CAAC,IAAI;SACnC,CAAC,CAAC;QACH,qBAAS,CAAC,MAAO,CAAC,KAAK,EAAE,CAAC;KAC3B;IAED,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,qBAAS,CAAC,MAAO,CAAC,wBAAwB,EAAE,CAAC;IAC7C,qBAAS,CAAC,MAAO,CAAC,qBAAqB,CAAC,4BAAgB,CAAC,CAAC;IAC1D,IAAI,EAAE,CAAC;AACT,CAAC,CAAC,CAAC","sourcesContent":["/**\n * Copyright (c) Microsoft Corporation.\n * Licensed under the MIT License.\n *\n * @format\n */\n\nimport {\n Telemetry,\n sanitizeMessage,\n sanitizeEnvelope,\n sanitizeFrame,\n tryGetErrorCode,\n} from '../telemetry';\nimport * as appInsights from 'applicationinsights';\nimport {basename} from 'path';\nimport {CodedError} from '../CodedError';\n\ndelete process.env.AGENT_NAME; // allow this test to run in Azure DevOps / GHA\nTelemetry.setup(true);\nTelemetry.client!.config.disableAppInsights = true;\n\ntest('Sanitize message, no-op', () => {\n // do stuff\n expect(sanitizeMessage('')).toEqual('');\n expect(sanitizeMessage('some text')).toEqual('some text');\n});\n\ntest('Sanitize message, project_dir', () => {\n expect(sanitizeMessage(`this is the cwd: '${process.cwd()}'`)).toEqual(\n `this is the cwd: [project_dir]\\\\???(${process.cwd().length})`,\n );\n expect(\n sanitizeMessage(`uppercase: '${process.cwd().toUpperCase()}'`),\n ).toEqual(`uppercase: [project_dir]\\\\???(${process.cwd().length})`);\n expect(\n sanitizeMessage(`lowercase: '${process.cwd().toLowerCase()}'`),\n ).toEqual(`lowercase: [project_dir]\\\\???(${process.cwd().length})`);\n expect(\n sanitizeMessage(`this is the cwd: '${process.cwd()}' and something else`),\n ).toEqual(\n `this is the cwd: [project_dir]\\\\???(${\n process.cwd().length\n }) and something else`,\n );\n expect(\n sanitizeMessage(`this is the cwd: ${process.cwd()} and something else`),\n ).toEqual(\n `this is the cwd: [project_dir]\\\\???(${\n (process.cwd() + ' and something else').length\n })`,\n );\n});\n\ntest('Sanitize message, node_modules', () => {\n expect(\n sanitizeMessage(`this is the cwd: '${process.cwd()}\\\\node_modules'`),\n ).toEqual(\n `this is the cwd: [project_dir]\\\\???(${\n (process.cwd() + '\\\\node_modules').length\n })`,\n );\n expect(\n sanitizeMessage(`this is the cwd: '${process.cwd()}\\\\node_modules\\\\foo'`),\n ).toEqual('this is the cwd: node_modules\\\\foo');\n expect(\n sanitizeMessage(\n `uppercase: '${process.cwd().toUpperCase()}\\\\NODE_MODULES\\\\foo'`,\n ),\n ).toEqual('uppercase: node_modules\\\\foo');\n expect(\n sanitizeMessage(\n `lowercase: '${process.cwd().toLowerCase()}\\\\NODE_MODULES\\\\'`,\n ),\n ).toEqual('lowercase: node_modules\\\\');\n expect(\n sanitizeMessage(\n `trailing: '${process.cwd()}\\\\node_modules\\\\' and something else`,\n ),\n ).toEqual('trailing: node_modules\\\\ and something else');\n expect(\n sanitizeMessage(\n `this is the cwd: ${process.cwd()}\\\\node_modules and something else that could be part of the path`,\n ),\n ).toEqual(\n `this is the cwd: [project_dir]\\\\???(${\n (\n process.cwd() +\n '\\\\node_modules and something else that could be part of the path'\n ).length\n })`,\n );\n expect(\n sanitizeMessage(\n `this is the cwd: ${process.cwd()}\\\\node_modules\\\\ a file under nm`,\n ),\n ).toEqual(`this is the cwd: node_modules\\\\ a file under nm`);\n});\n\ntest('Sanitize message, other path', () => {\n expect(sanitizeMessage(`this is another path: 'A:\\\\foo\\\\bar\\\\baz'`)).toEqual(\n `this is another path: [path]`,\n );\n\n expect(sanitizeMessage(`this is another path: A:\\\\foo\\\\bar\\\\baz`)).toEqual(\n `this is another path: [path]`,\n );\n\n expect(\n sanitizeMessage(\n `Cannot find module 'react-native/package.json'\n Require stack:\n - ${process.env.AppData}\\\\npm-cache\\\\_npx\\\\1384\\\\node_modules\\\\react-native-windows-init\\\\lib-commonjs\\\\Cli.js\n - ${process.env.AppData}\\\\npm-cache\\\\_npx\\\\1384\\\\node_modules\\\\react-native-windows-init\\\\bin.js`,\n ),\n ).toEqual(`Cannot find module react-native/package.json \n Require stack:\n - [AppData]\\\\???(${\n (\n process.env.AppData +\n '\\\\npm-cache\\\\_npx\\\\1384\\\\node_modules\\\\react-native-windows-init\\\\lib-commonjs\\\\Cli.js'\n ).length\n })\n - [AppData]\\\\???(${\n (\n process.env.AppData +\n '\\\\npm-cache\\\\_npx\\\\1384\\\\node_modules\\\\react-native-windows-init\\\\bin.js'\n ).length\n })`);\n});\n\ntest('Sanitize message, forward slashes', () => {\n expect(\n sanitizeMessage(\n `EPERM: operation not permitted, scandir ${process.env.UserProfile!.replace(\n /\\\\/g,\n '/',\n )}/source/repos/rn2/wintest/windows/packages/boost.1.76.0.0/lib/native/include`,\n ),\n ).toEqual(\n `EPERM: operation not permitted, scandir [UserProfile]\\\\???(${\n (\n process.env.UserProfile +\n '/source/repos/rn2/wintest/windows/packages/boost.1.76.0.0/lib/native/include'\n ).length\n })`,\n );\n});\n\ntest('Sanitize message, file share path', () => {\n expect(sanitizeMessage(`\\\\\\\\server\\\\share`)).toEqual('[path]');\n});\n\ntest('Sanitize message, with cpu/thread id', () => {\n expect(sanitizeMessage('5>This is an error')).toEqual('This is an error');\n\n expect(sanitizeMessage('5:42>This is an error')).toEqual('This is an error');\n});\n\ntest('Error code', () => {\n expect(tryGetErrorCode('foo bar error FOO2020: the thing')).toEqual(\n 'FOO2020',\n );\n});\n\ntest('Sanitize stack frame', () => {\n const emptyFrame: appInsights.Contracts.StackFrame = {\n level: 0,\n method: '',\n fileName: '',\n assembly: 'asdf',\n line: 0,\n };\n sanitizeFrame(emptyFrame);\n expect(emptyFrame).toEqual({\n level: 0,\n assembly: '',\n fileName: '.',\n method: '',\n line: 0,\n });\n\n const frame1: appInsights.Contracts.StackFrame = {\n method: '',\n fileName: `${process.cwd()}\\\\foo.js`,\n assembly: 'asdf',\n level: 0,\n line: 0,\n };\n sanitizeFrame(frame1);\n expect(frame1).toEqual({\n assembly: '',\n fileName: 'telemetry\\\\foo.js',\n method: '',\n level: 0,\n line: 0,\n });\n\n const frame2: appInsights.Contracts.StackFrame = {\n method: `myMethod (something ${process.cwd()}`,\n fileName: `${process.cwd()}\\\\foo.js`,\n assembly: 'asdf',\n level: 1,\n line: 42,\n };\n sanitizeFrame(frame2);\n expect(frame2).toEqual({\n assembly: '',\n fileName: 'telemetry\\\\foo.js',\n method: 'myMethod',\n level: 1,\n line: 42,\n });\n});\n\ntest('basic setup', () => {\n expect(Telemetry.client!.commonProperties.sessionId).toBeDefined();\n\n expect(\n Telemetry.client!.commonProperties.sessionId.length,\n ).toBeGreaterThanOrEqual(32);\n\n expect(Telemetry.client!.commonProperties.isTest).toEqual('true');\n});\n\nfunction b(s: string) {\n throw new Error('hello ' + s);\n}\nfunction a(s: string) {\n b(s);\n}\n\n// #7903: This test assumes exact structure of stack trace, which can be flaky or implementation dependent\ntest.skip('thrown exception a->b, hello world', () => {\n let pass = false;\n Telemetry.client!.addTelemetryProcessor((envelope, _) => {\n if (envelope.data.baseType === 'ExceptionData') {\n const data = (envelope.data as any).baseData;\n expect(data.exceptions).toBeDefined();\n expect(data.exceptions.length).toEqual(1);\n expect(data.exceptions[0].message).toEqual('hello world');\n\n const stack = data.exceptions[0].parsedStack;\n expect(stack).toBeDefined();\n expect(stack.length).toBeGreaterThan(5);\n\n const filename = basename(__filename);\n expect(stack[0].method).toEqual('b');\n expect(stack[1].method).toEqual('b');\n expect(stack[2].method).toEqual('Object.a');\n expect(stack[0].fileName).toEqual(`test\\\\${filename}`);\n expect(stack[1].fileName).toEqual(`test\\\\${filename}`);\n expect(stack[2].fileName).toEqual(`test\\\\${filename}`);\n pass = true;\n }\n return true;\n });\n try {\n a('world');\n } catch (e) {\n Telemetry.client!.trackException({exception: e as Error});\n }\n Telemetry.client!.flush();\n\n expect(pass).toBeTruthy();\n Telemetry.client!.clearTelemetryProcessors();\n Telemetry.client!.addTelemetryProcessor(sanitizeEnvelope);\n});\n\ntest('throw exception with error code', done => {\n Telemetry.client!.addTelemetryProcessor((envelope, _) => {\n const data = (envelope.data as any).baseData;\n expect(data.properties.errorCode).toEqual('FOO2020');\n return true;\n });\n\n try {\n throw new Error('hello from an error FOO2020: the error string');\n } catch (e) {\n Telemetry.client!.trackException({exception: e as Error});\n Telemetry.client!.flush();\n }\n Telemetry.client!.clearTelemetryProcessors();\n Telemetry.client!.addTelemetryProcessor(sanitizeEnvelope);\n done();\n});\n\n// #7903: This test assumes exact structure of stack trace, which can be flaky or implementation dependent\ntest.skip('thrown exception a->b, hello path', done => {\n let pass = false;\n Telemetry.client!.addTelemetryProcessor((envelope, _) => {\n if (envelope.data.baseType === 'ExceptionData') {\n const data = (envelope.data as any).baseData;\n expect(data.exceptions).toBeDefined();\n expect(data.exceptions.length).toEqual(1);\n expect(data.exceptions[0].message).toEqual(\n `hello [project_dir]\\\\???(${process.cwd().length})`,\n );\n\n const stack = data.exceptions[0].parsedStack;\n expect(stack).toBeDefined();\n expect(stack.length).toBeGreaterThan(5);\n\n const filename = basename(__filename);\n expect(stack[0].method).toEqual('b');\n expect(stack[1].method).toEqual('b');\n expect(stack[2].method).toEqual('Object.a');\n expect(stack[0].fileName).toEqual(`test\\\\${filename}`);\n expect(stack[1].fileName).toEqual(`test\\\\${filename}`);\n expect(stack[2].fileName).toEqual(`test\\\\${filename}`);\n pass = true;\n }\n return true;\n });\n try {\n a(process.cwd());\n } catch (e) {\n Telemetry.client!.trackException({exception: e as Error});\n }\n Telemetry.client!.flush();\n\n expect(pass).toBeTruthy();\n expect(pass).toBeTruthy();\n Telemetry.client!.clearTelemetryProcessors();\n Telemetry.client!.addTelemetryProcessor(sanitizeEnvelope);\n done();\n});\n\ntest('trackEvent should not identify roleInstance', () => {\n Telemetry.client!.addTelemetryProcessor((envelope, _) => {\n expect(envelope.tags['ai.cloud.roleInstance']).toBeUndefined();\n return true;\n });\n Telemetry.client!.trackEvent({\n name: 'test',\n properties: {},\n });\n Telemetry.client!.flush();\n Telemetry.client!.clearTelemetryProcessors();\n Telemetry.client!.addTelemetryProcessor(sanitizeEnvelope);\n});\n\n/////////////////////////\n// CodedError tests\ntest('No message', done => {\n Telemetry.preserveMessages = false;\n let pass = false;\n Telemetry.client!.addTelemetryProcessor((envelope, _) => {\n if (envelope.data.baseType === 'ExceptionData') {\n const data = (envelope.data as any).baseData;\n expect(data.exceptions).toBeDefined();\n expect(data.exceptions.length).toEqual(1);\n expect(data.exceptions[0].message).toBeUndefined();\n expect(data.exceptions[0].typeName).toEqual('MSBuildError');\n // This should be 42, but instead it is '42'\n // https://github.com/microsoft/ApplicationInsights-node.js/issues/708\n expect(data.properties.foo).toBeDefined();\n expect(parseInt(data.properties.foo, 10)).toEqual(42);\n pass = true;\n }\n return true;\n });\n\n try {\n throw new CodedError('MSBuildError', 'Something secret', {\n foo: 42,\n });\n } catch (e) {\n Telemetry.client!.trackException({\n exception: e as Error,\n properties: (e as CodedError).data,\n });\n Telemetry.client!.flush();\n }\n\n expect(pass).toEqual(true);\n Telemetry.client!.clearTelemetryProcessors();\n Telemetry.client!.addTelemetryProcessor(sanitizeEnvelope);\n done();\n});\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@react-native-windows/telemetry",
3
- "version": "0.66.1",
3
+ "version": "0.67.1",
4
4
  "license": "MIT",
5
5
  "main": "lib-commonjs/index.js",
6
6
  "typings": "lib-commonjs/index.d.ts",
@@ -21,10 +21,10 @@
21
21
  "applicationinsights": "^1.8.8"
22
22
  },
23
23
  "devDependencies": {
24
- "@rnw-scripts/eslint-config": "1.1.7",
25
- "@rnw-scripts/jest-unittest-config": "1.2.3",
26
- "@rnw-scripts/just-task": "2.2.0",
27
- "@rnw-scripts/ts-config": "2.0.0",
24
+ "@rnw-scripts/eslint-config": "1.1.8",
25
+ "@rnw-scripts/jest-unittest-config": "1.2.4",
26
+ "@rnw-scripts/just-task": "2.2.1",
27
+ "@rnw-scripts/ts-config": "2.0.1",
28
28
  "@types/jest": "^26.0.20",
29
29
  "@types/node": "^14.14.22",
30
30
  "@types/semver": "^7.3.3",
@@ -33,13 +33,13 @@
33
33
  "jest": "^26.6.3",
34
34
  "just-scripts": "^1.3.3",
35
35
  "prettier": "1.19.1",
36
- "typescript": "^3.8.3"
36
+ "typescript": "^4.4.4"
37
37
  },
38
38
  "files": [
39
39
  "lib-commonjs"
40
40
  ],
41
41
  "beachball": {
42
- "defaultNpmTag": "v0.66-stable",
42
+ "defaultNpmTag": "v0.67-stable",
43
43
  "disallowedChangeTypes": [
44
44
  "major",
45
45
  "minor",
@@ -47,5 +47,8 @@
47
47
  ]
48
48
  },
49
49
  "promoteRelease": true,
50
- "windowsOnly": true
50
+ "windowsOnly": true,
51
+ "engines": {
52
+ "node": ">= 12.0.0"
53
+ }
51
54
  }