@vscode/telemetry-extractor 1.9.6 → 1.9.7
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/.github/workflows/node.js.yml +31 -0
- package/README.md +1 -1
- package/documentation/adding-new-events.md +168 -0
- package/out/lib/events.js +15 -1
- package/out/lib/events.js.map +1 -1
- package/out/lib/fragments.js.map +1 -1
- package/out/lib/object-converter.js +6 -1
- package/out/lib/object-converter.js.map +1 -1
- package/out/lib/operations.js +4 -0
- package/out/lib/operations.js.map +1 -1
- package/out/lib/save-declarations.js +5 -0
- package/out/lib/save-declarations.js.map +1 -1
- package/out/lib/ts-parser.js +23 -11
- package/out/lib/ts-parser.js.map +1 -1
- package/package.json +2 -2
- package/src/lib/events.ts +17 -2
- package/src/lib/fragments.ts +2 -2
- package/src/lib/object-converter.ts +6 -3
- package/src/lib/operations.ts +4 -1
- package/src/lib/save-declarations.ts +5 -0
- package/src/lib/telemetry-interfaces.ts +6 -1
- package/src/lib/ts-parser.ts +26 -23
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node
|
|
2
|
+
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions
|
|
3
|
+
|
|
4
|
+
name: Node.js CI
|
|
5
|
+
|
|
6
|
+
on:
|
|
7
|
+
push:
|
|
8
|
+
branches: [ main ]
|
|
9
|
+
pull_request:
|
|
10
|
+
branches: [ main ]
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
build:
|
|
14
|
+
|
|
15
|
+
runs-on: ubuntu-latest
|
|
16
|
+
|
|
17
|
+
strategy:
|
|
18
|
+
matrix:
|
|
19
|
+
node-version: [16.x]
|
|
20
|
+
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
|
|
21
|
+
|
|
22
|
+
steps:
|
|
23
|
+
- uses: actions/checkout@v3
|
|
24
|
+
- name: Use Node.js ${{ matrix.node-version }}
|
|
25
|
+
uses: actions/setup-node@v3
|
|
26
|
+
with:
|
|
27
|
+
node-version: ${{ matrix.node-version }}
|
|
28
|
+
cache: 'npm'
|
|
29
|
+
- run: npm ci
|
|
30
|
+
- run: npm run compile --if-present
|
|
31
|
+
- run: npm test
|
package/README.md
CHANGED
|
@@ -10,7 +10,7 @@ produces a JSON file containing the telemetry events which are collected.
|
|
|
10
10
|
|
|
11
11
|
## Setup
|
|
12
12
|
```bash
|
|
13
|
-
npm i vscode
|
|
13
|
+
npm i @vscode/telemetry-extractor
|
|
14
14
|
```
|
|
15
15
|
For the various supported commands please see [**Using the tool**](./documentation/using-the-tool.md)
|
|
16
16
|
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
[Draft Content]
|
|
2
|
+
|
|
3
|
+
# Adding new telemetry to VS Code
|
|
4
|
+
|
|
5
|
+
The process of logging and annotating telemetry in the codebase is documented [here](typescript-code-annotations.md).
|
|
6
|
+
|
|
7
|
+
However, we want to limit telemetry bloat, and ensure that each event added to the product is in use. So before adding telemetry, ask yourself the following questions:
|
|
8
|
+
- Will the event be used to gather essential business insight?
|
|
9
|
+
- Is this an event that could make use of the "expiration" tag (described in the Syntax section [here](comment-code-annotations.md))?
|
|
10
|
+
- Do you have an appropriate owner for the event - basically, a contact that can speak to its function and determine if it's still in use?
|
|
11
|
+
|
|
12
|
+
# Telemetry Catalog
|
|
13
|
+
|
|
14
|
+
The following is generated directly from the annotations in VS Code.
|
|
15
|
+
|
|
16
|
+
| Event | Owner | Link to Declaration | Comment |
|
|
17
|
+
| ----------------- | ----------------- | --------------------- | ----------- |
|
|
18
|
+
| monacoworkbench/extensiongallery:install |
|
|
19
|
+
| monacoworkbench/extensiongallery:uninstall |
|
|
20
|
+
| monacoworkbench/extensiongallery:update |
|
|
21
|
+
| monacoworkbench/galleryservice:downloadvsix |
|
|
22
|
+
| monacoworkbench/remoteextensionrecommendations:popup |
|
|
23
|
+
| monacoworkbench/query-expfeature |
|
|
24
|
+
| monacoworkbench/startuptimevaried |
|
|
25
|
+
| monacoworkbench/webviews:createwebviewpanel |
|
|
26
|
+
| monacoworkbench/editoropened |
|
|
27
|
+
| monacoworkbench/editorclosed |
|
|
28
|
+
| monacoworkbench/debugsessionstart |
|
|
29
|
+
| monacoworkbench/debugsessionstop |
|
|
30
|
+
| monacoworkbench/debug/didviewmemory |
|
|
31
|
+
| monacoworkbench/cessurvey:popup |
|
|
32
|
+
| monacoworkbench/cessurvey:schedule |
|
|
33
|
+
| monacoworkbench/watermark:open |
|
|
34
|
+
| monacoworkbench/searchresultsfirstrender |
|
|
35
|
+
| monacoworkbench/searchresultsfinished |
|
|
36
|
+
| monacoworkbench/searchresultsshown |
|
|
37
|
+
| monacoworkbench/exthostunresponsive |
|
|
38
|
+
| monacoworkbench/extension:enable |
|
|
39
|
+
| monacoworkbench/extension:disable |
|
|
40
|
+
| monacoworkbench/extensiongallery:openextension |
|
|
41
|
+
| monacoworkbench/extensiongallery:install:recommendations |
|
|
42
|
+
| monacoworkbench/workspce.tags |
|
|
43
|
+
| monacoworkbench/workspace.remotes |
|
|
44
|
+
| monacoworkbench/workspace.azure |
|
|
45
|
+
| monacoworkbench/webview.createwebview |
|
|
46
|
+
| monacoworkbench/terminallatencystats |
|
|
47
|
+
| monacoworkbench/languagepacksuggestion:popup |
|
|
48
|
+
| monacoworkbench/taskservice.engineversion |
|
|
49
|
+
| monacoworkbench/taskservice |
|
|
50
|
+
| monacoworkbench/settingseditor.settingmodified |
|
|
51
|
+
| monacoworkbench/settingseditor.filter |
|
|
52
|
+
| monacoworkbench/settingseditor.searcherror |
|
|
53
|
+
| monacoworkbench/workbenchactionexecuted |
|
|
54
|
+
| monacoworkbench/views.togglevisibility |
|
|
55
|
+
| monacoworkbench/views.welcomeaction |
|
|
56
|
+
| monacoworkbench/notification:show |
|
|
57
|
+
| monacoworkbench/notification:close |
|
|
58
|
+
| monacoworkbench/notification:hide |
|
|
59
|
+
| monacoworkbench/notification:actionexecuted |
|
|
60
|
+
| monacoworkbench/automaticlanguagedetection.likelywrong |
|
|
61
|
+
| monacoworkbench/workbencheditorreopen |
|
|
62
|
+
| monacoworkbench/activitybaraction |
|
|
63
|
+
| monacoworkbench/keybindingseditor.action |
|
|
64
|
+
| monacoworkbench/workspacetrustdisabled |
|
|
65
|
+
| monacoworkbench/workspacetrustfoldercounts |
|
|
66
|
+
| monacoworkbench/workspacetruststatechanged |
|
|
67
|
+
| monacoworkbench/workspacefolderdepthbelowtrustedfolder |
|
|
68
|
+
| monacoworkbench/experiments |
|
|
69
|
+
| monacoworkbench/webviewmissingcsp |
|
|
70
|
+
| monacoworkbench/searcheditor/savesearchresults |
|
|
71
|
+
| monacoworkbench/searcheditor/opennewsearcheditor |
|
|
72
|
+
| monacoworkbench/searcheditor/createeditorfromsearchresult |
|
|
73
|
+
| monacoworkbench/fileextensionsuggestion:popup |
|
|
74
|
+
| monacoworkbench/extensionworkspacerecommendations:open |
|
|
75
|
+
| monacoworkbench/extensionsrecommendations:ignorerecommendation |
|
|
76
|
+
| monacoworkbench/extensionrecommendations:popup |
|
|
77
|
+
| monacoworkbench/extensionworkspacerecommendations:popup |
|
|
78
|
+
| monacoworkbench/dynamicworkspacerecommendations |
|
|
79
|
+
| monacoworkbench/gettingstarted.didautoopenwalkthrough |
|
|
80
|
+
| monacoworkbench/gettingstarted.actionexecuted |
|
|
81
|
+
| monacoworkbench/windowsedition |
|
|
82
|
+
| monacoworkbench/sync/handleconflicts |
|
|
83
|
+
| monacoworkbench/sync/showconflicts |
|
|
84
|
+
| monacoworkbench/workspaceload |
|
|
85
|
+
| monacoworkbench/settingsread |
|
|
86
|
+
| monacoworkbench/fileget |
|
|
87
|
+
| monacoworkbench/settingswritten |
|
|
88
|
+
| monacoworkbench/fileput |
|
|
89
|
+
| monacoworkbench/notebook/editoropened |
|
|
90
|
+
| monacoworkbench/notebook/editoropenperf |
|
|
91
|
+
| monacoworkbench/startup.resource.perf |
|
|
92
|
+
| monacoworkbench/remotereconnectionreload |
|
|
93
|
+
| monacoworkbench/remoteconnectionlost |
|
|
94
|
+
| monacoworkbench/remotereconnectionrunning |
|
|
95
|
+
| monacoworkbench/remotereconnectionpermanentfailure |
|
|
96
|
+
| monacoworkbench/remoteconnectiongain |
|
|
97
|
+
| monacoworkbench/automaticlanguagedetection.stats |
|
|
98
|
+
| monacoworkbench/openkeybindings |
|
|
99
|
+
| monacoworkbench/startup.timer.mark |
|
|
100
|
+
| monacoworkbench/tasclientreadtreatmentcomplete |
|
|
101
|
+
| monacoworkbench/uri_invoked/start |
|
|
102
|
+
| monacoworkbench/uri_invoked/cancel |
|
|
103
|
+
| monacoworkbench/uri_invoked/end |
|
|
104
|
+
| monacoworkbench/uri_invoked/activate_extension/start |
|
|
105
|
+
| monacoworkbench/uri_invoked/activate_extension/cancel |
|
|
106
|
+
| monacoworkbench/uri_invoked/activate_extension/accept |
|
|
107
|
+
| monacoworkbench/uri_invoked/enable_extension/start |
|
|
108
|
+
| monacoworkbench/uri_invoked/enable_extension/cancel |
|
|
109
|
+
| monacoworkbench/uri_invoked/enable_extension/accept |
|
|
110
|
+
| monacoworkbench/uri_invoked/install_extension/start |
|
|
111
|
+
| monacoworkbench/uri_invoked/install_extension/cancel |
|
|
112
|
+
| monacoworkbench/uri_invoked/install_extension/accept |
|
|
113
|
+
| monacoworkbench/uri_invoked/install_extension/reload |
|
|
114
|
+
| monacoworkbench/extensionhostcrash |
|
|
115
|
+
| monacoworkbench/extensionhostcrashextension |
|
|
116
|
+
| monacoworkbench/extensionhoststartup |
|
|
117
|
+
| monacoworkbench/extensionsmessage |
|
|
118
|
+
| monacoworkbench/extensionactivationerror |
|
|
119
|
+
| monacoworkbench/cachedsearchcomplete |
|
|
120
|
+
| monacoworkbench/searchcomplete |
|
|
121
|
+
| monacoworkbench/textsearchcomplete |
|
|
122
|
+
| monacoworkbench/sync/firsttimesync |
|
|
123
|
+
| monacoworkbench/sync.useraccount |
|
|
124
|
+
| monacoworkbench/sync/successiveauthfailures |
|
|
125
|
+
| monacoworkbench/viewdescriptorservice.moveviews |
|
|
126
|
+
| monacoworkbench/accessibility |
|
|
127
|
+
| monacoworkbench/activateplugin |
|
|
128
|
+
| monacoworkbench/override.viewtype |
|
|
129
|
+
| monacoworkbench/remoteconnectionfailure |
|
|
130
|
+
| monacoworkbench/suggest.durations.json |
|
|
131
|
+
| monacoworkbench/suggest.acceptedsuggestion |
|
|
132
|
+
| monacoworkbench/codeaction.applycodeaction |
|
|
133
|
+
| monacoworkbench/update:notavailable |
|
|
134
|
+
| monacoworkbench/update:downloaded |
|
|
135
|
+
| monacoworkbench/sync/error |
|
|
136
|
+
| monacoworkbench/sync.enable |
|
|
137
|
+
| monacoworkbench/sync/turnoffeverywhere |
|
|
138
|
+
| monacoworkbench/autosync/error |
|
|
139
|
+
| monacoworkbench/sync/triggered |
|
|
140
|
+
| monacoworkbench/sync/conflictsdetected |
|
|
141
|
+
| monacoworkbench/sync/conflictsresolved |
|
|
142
|
+
| monacoworkbench/sync/incompatible |
|
|
143
|
+
| monacoworkbench/workspace.stats |
|
|
144
|
+
| monacoworkbench/workspace.stats.file |
|
|
145
|
+
| monacoworkbench/workspace.stats.launchconfigfile |
|
|
146
|
+
| monacoworkbench/workspace.stats.configfiles |
|
|
147
|
+
| monacoworkbench/updateconfiguration |
|
|
148
|
+
| monacoworkbench/windowerror |
|
|
149
|
+
| monacoworkbench/galleryservice:additionalquery |
|
|
150
|
+
| monacoworkbench/galleryservice:query |
|
|
151
|
+
| monacoworkbench/galleryservice:cdnfallback |
|
|
152
|
+
| monacoworkbench/exeextensionrecommendations:alreadyinstalled |
|
|
153
|
+
| monacoworkbench/exeextensionrecommendations:notinstalled |
|
|
154
|
+
| monacoworkbench/authentication.providerusage |
|
|
155
|
+
| monacoworkbench/api/scm/createsourcecontrol |
|
|
156
|
+
| monacoworkbench/shimming.keytar |
|
|
157
|
+
| monacoworkbench/shimming.open |
|
|
158
|
+
| monacoworkbench/shimming.open.call.noforward |
|
|
159
|
+
| monacoworkbench/extensionactivationtimes |
|
|
160
|
+
| monacoworkbench/exthostdeprecatedapiusage |
|
|
161
|
+
| monacoworkbench/sharedprocesserror |
|
|
162
|
+
| monacoworkbench/serverstart |
|
|
163
|
+
| monacoworkbench/startuplayout |
|
|
164
|
+
| monacoworkbench/editoractioninvoked |
|
|
165
|
+
| monacoworkbench/unhandlederror |
|
|
166
|
+
| websitetracking/newuserinstall |
|
|
167
|
+
| websitetracking/dbconnectionlog |
|
|
168
|
+
| websitetracking/download|
|
package/out/lib/events.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.WildcardEntry = exports.Wildcard = exports.Inline = exports.Include = exports.Event = exports.Events = void 0;
|
|
3
|
+
exports.Metadata = exports.WildcardEntry = exports.Wildcard = exports.Inline = exports.Include = exports.Event = exports.Events = void 0;
|
|
4
4
|
class Events {
|
|
5
5
|
dataPoints;
|
|
6
6
|
constructor() {
|
|
@@ -52,4 +52,18 @@ class WildcardEntry {
|
|
|
52
52
|
}
|
|
53
53
|
}
|
|
54
54
|
exports.WildcardEntry = WildcardEntry;
|
|
55
|
+
class Metadata {
|
|
56
|
+
name;
|
|
57
|
+
value;
|
|
58
|
+
constructor(name, value) {
|
|
59
|
+
this.name = name;
|
|
60
|
+
this.value = value;
|
|
61
|
+
}
|
|
62
|
+
simpleObject() {
|
|
63
|
+
const simple = Object.create(null);
|
|
64
|
+
simple[this.name] = this.value;
|
|
65
|
+
return simple;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
exports.Metadata = Metadata;
|
|
55
69
|
//# sourceMappingURL=events.js.map
|
package/out/lib/events.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/lib/events.ts"],"names":[],"mappings":";;;AAMA,MAAa,MAAM;IACR,UAAU,CAAe;IAChC;QACI,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IACzB,CAAC;CACJ;AALD,wBAKC;AAED,MAAa,KAAK;IACP,IAAI,CAAS;IACpB,wFAAwF;IACjF,UAAU,
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/lib/events.ts"],"names":[],"mappings":";;;AAMA,MAAa,MAAM;IACR,UAAU,CAAe;IAChC;QACI,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IACzB,CAAC;CACJ;AALD,wBAKC;AAED,MAAa,KAAK;IACP,IAAI,CAAS;IACpB,wFAAwF;IACjF,UAAU,CAA2D;IAC5E,YAAa,IAAY;QACrB,IAAI,CAAC,IAAI,GAAI,IAAI,CAAC;QAClB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IACzB,CAAC;CACJ;AARD,sBAQC;AAED,MAAa,OAAO;IACT,YAAY,CAAgB;IACnC,YAAa,YAA2B;QACpC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACrC,CAAC;CACJ;AALD,0BAKC;AAED,MAAa,MAAM;IACR,UAAU,CAAS;IACnB,OAAO,CAAgB;IAC9B,YAAa,IAAY,EAAE,OAAsB;QAC7C,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;CACJ;AAPD,wBAOC;AAED,MAAa,QAAQ;IACV,OAAO,CAAuB;IACrC;QACI,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IACtB,CAAC;CACJ;AALD,4BAKC;AAED,MAAa,aAAa;IACf,MAAM,CAAS;IACf,cAAc,CAA4C;IAC1D,QAAQ,CAAqB;IACpC,YAAa,MAAc,EAAE,cAAyD,EAAE,QAA6B;QACjH,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;CACJ;AATD,sCASC;AAED,MAAa,QAAQ;IACV,IAAI,CAAqC;IACzC,KAAK,CAAS;IACrB,YAAa,IAAwC,EAAE,KAAa;QAChE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,YAAY;QACR,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC;QAC/B,OAAO,MAAM,CAAC;IAClB,CAAC;CACJ;AAbD,4BAaC"}
|
package/out/lib/fragments.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fragments.js","sourceRoot":"","sources":["../../src/lib/fragments.ts"],"names":[],"mappings":";;;AAOA,iHAAiH;AACjH,MAAa,SAAS;IACX,UAAU,CAAkB;IACnC;QACI,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IACzB,CAAC;CACJ;AALD,8BAKC;AAED,MAAa,QAAQ;IACV,IAAI,CAAS;IACb,UAAU,
|
|
1
|
+
{"version":3,"file":"fragments.js","sourceRoot":"","sources":["../../src/lib/fragments.ts"],"names":[],"mappings":";;;AAOA,iHAAiH;AACjH,MAAa,SAAS;IACX,UAAU,CAAkB;IACnC;QACI,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IACzB,CAAC;CACJ;AALD,8BAKC;AAED,MAAa,QAAQ;IACV,IAAI,CAAS;IACb,UAAU,CAA6D;IAC9E,YAAa,IAAY;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IAEzB,CAAC;CACJ;AARD,4BAQC"}
|
|
@@ -20,6 +20,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
20
20
|
};
|
|
21
21
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
22
|
exports.transformOutput = void 0;
|
|
23
|
+
const common_properties_1 = require("./common-properties");
|
|
23
24
|
const events_1 = require("./events");
|
|
24
25
|
const keywords = __importStar(require("./keywords"));
|
|
25
26
|
// Converts the declarations array to an object format for easy readability.
|
|
@@ -53,7 +54,7 @@ async function transformOutput(output) {
|
|
|
53
54
|
newEvents[event.name][keywords.wildcard].push(newEntry);
|
|
54
55
|
}
|
|
55
56
|
}
|
|
56
|
-
else {
|
|
57
|
+
else if (property instanceof common_properties_1.Property) {
|
|
57
58
|
// Handles the case where the comments can be inconsistent
|
|
58
59
|
// We want to ensure that if isMeasurement is ever flagged it gets propogated
|
|
59
60
|
if (newEvents[event.name][propetyNameChanger(property.name)]) {
|
|
@@ -78,6 +79,10 @@ async function transformOutput(output) {
|
|
|
78
79
|
newEvents[event.name][propetyNameChanger(property.name)]['isMeasurement'] = property.isMeasurement;
|
|
79
80
|
}
|
|
80
81
|
}
|
|
82
|
+
else {
|
|
83
|
+
// Comments, expiration, and owner metadata are handled here
|
|
84
|
+
newEvents[event.name][propetyNameChanger(property.name)] = property.value;
|
|
85
|
+
}
|
|
81
86
|
}
|
|
82
87
|
}
|
|
83
88
|
const newCommonProperties = Object.create(null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"object-converter.js","sourceRoot":"","sources":["../../src/lib/object-converter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"object-converter.js","sourceRoot":"","sources":["../../src/lib/object-converter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAGA,2DAA+C;AAC/C,qCAA8C;AAC9C,qDAAuC;AAEvC,4EAA4E;AAErE,KAAK,UAAU,eAAe,CAAC,MAA6B;IAC/D,mEAAmE;IACnE,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;QAC1F,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;KAC9B;IACD,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACtC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC;IAC3C,KAAK,MAAM,KAAK,IAAI,SAAS,EAAE;QAC3B,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5C,kFAAkF;QAClF,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,UAAmD,EAAE;YAC9E,IAAI,QAAQ,YAAY,iBAAQ,EAAE;gBAC9B,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBACpI,KAAK,MAAM,KAAK,IAAI,QAAQ,CAAC,OAAO,EAAE;oBAClC,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE;wBACnE,OAAO,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;oBAC7D,CAAC,CAAC,CAAC;oBACH,IAAI,KAAK;wBAAE,SAAS;oBACpB,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBACrC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;oBACvD,IAAI,KAAK,CAAC,QAAQ,EAAE;wBAChB,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,EAAE,cAAc,EAAE,KAAK,CAAC,cAAc,CAAC,cAAc,EAAE,OAAO,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;qBACxJ;yBAAM;wBACH,QAAQ,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC,cAAc,CAAC;qBAC5D;oBACD,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;iBAC3D;aACJ;iBAAM,IAAI,QAAQ,YAAY,4BAAQ,EAAE;gBACrC,0DAA0D;gBAC1D,6EAA6E;gBAC7E,IAAI,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE;oBAC1D,IAAI,QAAQ,CAAC,aAAa;wBAAE,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC;oBAC/H,SAAS;iBACZ;gBACD,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,cAAc,EAAE,QAAQ,CAAC,cAAc,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;gBAClI,IAAI,QAAQ,CAAC,UAAU,EAAE;oBACrB,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC,UAAU,CAAC;iBAChG;gBACD,IAAI,QAAQ,CAAC,KAAK,EAAE;oBAChB,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;iBACtF;gBACD,IAAI,QAAQ,CAAC,OAAO,EAAE;oBAClB,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC;iBAC1F;gBACD,IAAI,QAAQ,CAAC,QAAQ,EAAE;oBACnB,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC;iBAC5F;gBACD,IAAI,QAAQ,CAAC,aAAa,EAAE;oBACxB,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC;iBACtG;aACJ;iBAAM;gBACH,4DAA4D;gBAC5D,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;aAC7E;SACJ;KACJ;IACD,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,mBAAmB,GAAG,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC;IAC/D,KAAK,MAAM,QAAQ,IAAI,mBAAmB,EAAE;QACxC,yDAAyD;QACzD,6EAA6E;QAC7E,IAAI,mBAAmB,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE;YACxD,IAAI,QAAQ,CAAC,aAAa;gBAAE,mBAAmB,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC;YAC7H,SAAS;SACZ;QACD,mBAAmB,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,cAAc,EAAE,QAAQ,CAAC,cAAc,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;QAChI,IAAI,QAAQ,CAAC,QAAQ,EAAE;YACnB,mBAAmB,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC;SAC1F;QACD,IAAI,QAAQ,CAAC,aAAa,EAAE;YACxB,mBAAmB,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC;SACpG;KACJ;IACD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,CAAC;AACxE,CAAC;AA1ED,0CA0EC;AAED,SAAS,kBAAkB,CAAC,IAAY;IACpC,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAC1B,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;QAC3B,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;KAC/C;IACD,OAAO,IAAI,CAAC;AAChB,CAAC"}
|
package/out/lib/operations.js
CHANGED
|
@@ -91,6 +91,10 @@ function populateProperties(properties, target, applyEndpoints = false) {
|
|
|
91
91
|
else if (propertyName === keywords.wildcard) {
|
|
92
92
|
mergeWildcards(currentProperty, target, applyEndpoints);
|
|
93
93
|
}
|
|
94
|
+
else if (propertyName === 'owner' || propertyName === 'comment' || propertyName === 'expiration') {
|
|
95
|
+
// This is the special case when the property name matches one of our metadata properties
|
|
96
|
+
target.properties.push(new events_1.Metadata(propertyName, currentProperty));
|
|
97
|
+
}
|
|
94
98
|
else {
|
|
95
99
|
const prop = new common_properties_1.Property(propertyName, currentProperty.classification, currentProperty.purpose, currentProperty.expiration, currentProperty.owner, currentProperty.comment);
|
|
96
100
|
if (applyEndpoints) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operations.js","sourceRoot":"","sources":["../../src/lib/operations.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAuC;AACvC,kCAAkC;AAClC,2CAAkD;AAClD,
|
|
1
|
+
{"version":3,"file":"operations.js","sourceRoot":"","sources":["../../src/lib/operations.ts"],"names":[],"mappings":"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"}
|
|
@@ -85,6 +85,11 @@ async function extractAndResolveDeclarations(sourceSpecs) {
|
|
|
85
85
|
}
|
|
86
86
|
const formattedDeclarations = await (0, object_converter_1.transformOutput)(allDeclarations);
|
|
87
87
|
for (const dec in allTypeScriptDeclarations) {
|
|
88
|
+
// If there's typescript declarations but we returned a null object
|
|
89
|
+
// We must add the event container to the declarations object
|
|
90
|
+
if (formattedDeclarations.events === undefined) {
|
|
91
|
+
formattedDeclarations.events = Object.create(null);
|
|
92
|
+
}
|
|
88
93
|
formattedDeclarations.events[dec] = allTypeScriptDeclarations[dec];
|
|
89
94
|
}
|
|
90
95
|
return Promise.resolve(formattedDeclarations);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"save-declarations.js","sourceRoot":"","sources":["../../src/lib/save-declarations.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"save-declarations.js","sourceRoot":"","sources":["../../src/lib/save-declarations.ts"],"names":[],"mappings":"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"}
|
package/out/lib/ts-parser.js
CHANGED
|
@@ -28,14 +28,7 @@ const cp = __importStar(require("child_process"));
|
|
|
28
28
|
const path = __importStar(require("path"));
|
|
29
29
|
const ripgrep_1 = require("@vscode/ripgrep");
|
|
30
30
|
const operations_1 = require("./operations");
|
|
31
|
-
|
|
32
|
-
eventName;
|
|
33
|
-
properties;
|
|
34
|
-
constructor(name) {
|
|
35
|
-
this.eventName = name;
|
|
36
|
-
this.properties = [];
|
|
37
|
-
}
|
|
38
|
-
}
|
|
31
|
+
const events_1 = require("./events");
|
|
39
32
|
class NodeVisitor {
|
|
40
33
|
pl_node;
|
|
41
34
|
prop_name;
|
|
@@ -68,12 +61,13 @@ class NodeVisitor {
|
|
|
68
61
|
// If we don't want endpoints skip them
|
|
69
62
|
if (currentNode.getEscapedName().toLowerCase() === "endpoint" && !this.applyEndpoints)
|
|
70
63
|
return;
|
|
64
|
+
const nodeName = currentNode.getEscapedName();
|
|
71
65
|
// If it's a string we strip the quotes
|
|
72
66
|
if (type.isStringLiteral()) {
|
|
73
|
-
this.resolved_property[
|
|
67
|
+
this.resolved_property[nodeName] = type.getText().substring(1, type.getText().length - 1);
|
|
74
68
|
}
|
|
75
69
|
else {
|
|
76
|
-
this.resolved_property[
|
|
70
|
+
this.resolved_property[nodeName] = type.getText() === 'true';
|
|
77
71
|
}
|
|
78
72
|
return;
|
|
79
73
|
}
|
|
@@ -95,7 +89,25 @@ class NodeVisitor {
|
|
|
95
89
|
this.properties.push(resolved);
|
|
96
90
|
this.prop_name = this.original_prop_name;
|
|
97
91
|
}
|
|
92
|
+
visitMetadataNode(currentNode) {
|
|
93
|
+
let type = currentNode.getTypeAtLocation(this.pl_node);
|
|
94
|
+
// If we mark a property as optional then it is nullable, however we want all properties
|
|
95
|
+
// So we want its non nullable type tl;dr this chops off the | undefined
|
|
96
|
+
if (type.isNullable()) {
|
|
97
|
+
type = type.getNonNullableType();
|
|
98
|
+
}
|
|
99
|
+
if (type.isStringLiteral()) {
|
|
100
|
+
const nodeName = currentNode.getEscapedName();
|
|
101
|
+
this.resolved_property[nodeName] = type.getText().substring(1, type.getText().length - 1);
|
|
102
|
+
if (nodeName === 'owner' || nodeName === 'comment' || nodeName === 'expiration') {
|
|
103
|
+
this.properties.push(new events_1.Metadata(nodeName, this.resolved_property[nodeName]).simpleObject());
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
}
|
|
98
107
|
resolveProperties(currentNode) {
|
|
108
|
+
// It could be a complex node with nested types or a simple node with a string literal
|
|
109
|
+
// representing some kind of metadata, so we try both visitors.
|
|
110
|
+
this.visitMetadataNode(currentNode);
|
|
99
111
|
this.visitNode(currentNode);
|
|
100
112
|
return this.properties;
|
|
101
113
|
}
|
|
@@ -178,7 +190,7 @@ class TsParser {
|
|
|
178
190
|
event_name = event_name.substring(1, event_name.length - 1);
|
|
179
191
|
}
|
|
180
192
|
event_name = this.lowerCaseEvents ? event_name.toLowerCase() : event_name;
|
|
181
|
-
const created_event = new
|
|
193
|
+
const created_event = new events_1.Event(event_name);
|
|
182
194
|
// We want the second one because public log is in the form <Event, Classification> and we care about the classification
|
|
183
195
|
const type_properties = typeArgs[1].getType().getProperties();
|
|
184
196
|
type_properties.forEach((prop) => {
|
package/out/lib/ts-parser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ts-parser.js","sourceRoot":"","sources":["../../src/lib/ts-parser.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,uCAAuC;AACvC,kCAAkC;AAClC,uCAA6E;AAC7E,uCAAyB;AACzB,kDAAoC;AACpC,2CAA6B;AAC7B,6CAAyC;AACzC,6CAA8D;
|
|
1
|
+
{"version":3,"file":"ts-parser.js","sourceRoot":"","sources":["../../src/lib/ts-parser.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vscode/telemetry-extractor",
|
|
3
|
-
"version": "1.9.
|
|
3
|
+
"version": "1.9.7",
|
|
4
4
|
"description": "Extracts telemetry from VS Code",
|
|
5
5
|
"main": "out/index.js",
|
|
6
6
|
"typings": "vscode-telemetry-extractor.d.ts",
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
"license": "MIT",
|
|
24
24
|
"dependencies": {
|
|
25
25
|
"command-line-args": "^5.2.1",
|
|
26
|
-
"ts-morph": "^
|
|
26
|
+
"ts-morph": "^14.0.0",
|
|
27
27
|
"@vscode/ripgrep": "^1.14.2"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
package/src/lib/events.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Copyright (c) Microsoft Corporation.
|
|
2
2
|
// Licensed under the MIT license.
|
|
3
|
-
import {
|
|
3
|
+
import { IInclude, ITelemetryDataPoint, ITelemetryData, IInline, IWildcard, IWildcardEntry, IMetadata } from './telemetry-interfaces';
|
|
4
4
|
import { Property } from './common-properties';
|
|
5
5
|
|
|
6
6
|
|
|
@@ -14,7 +14,7 @@ export class Events implements ITelemetryData {
|
|
|
14
14
|
export class Event implements ITelemetryDataPoint {
|
|
15
15
|
public name: string;
|
|
16
16
|
// It gets a little more complicated here as events can have a bunch of different things
|
|
17
|
-
public properties: Array<Property | Include | Inline | Wildcard>;
|
|
17
|
+
public properties: Array<Property | Metadata | Include | Inline | Wildcard>;
|
|
18
18
|
constructor (name: string) {
|
|
19
19
|
this.name = name;
|
|
20
20
|
this.properties = [];
|
|
@@ -53,4 +53,19 @@ export class WildcardEntry implements IWildcardEntry {
|
|
|
53
53
|
this.classification = classification;
|
|
54
54
|
this.endpoint = endPoint;
|
|
55
55
|
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export class Metadata implements IMetadata {
|
|
59
|
+
public name: 'owner' | 'comment' | 'expiration';
|
|
60
|
+
public value: string;
|
|
61
|
+
constructor (name: 'owner' | 'comment' | 'expiration', value: string) {
|
|
62
|
+
this.name = name;
|
|
63
|
+
this.value = value;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
simpleObject(): {[key: string]: string} {
|
|
67
|
+
const simple = Object.create(null);
|
|
68
|
+
simple[this.name] = this.value;
|
|
69
|
+
return simple;
|
|
70
|
+
}
|
|
56
71
|
}
|
package/src/lib/fragments.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Licensed under the MIT license.
|
|
3
3
|
import { ITelemetryData, ITelemetryDataPoint, IProperty, IWildcard } from './telemetry-interfaces';
|
|
4
4
|
import { Property } from './common-properties';
|
|
5
|
-
import { Include, Inline } from './events';
|
|
5
|
+
import { Include, Inline, Metadata } from './events';
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
// Fragments are retrieved as an object of objects of objects. So this just makes it easier to see the structure.
|
|
@@ -15,7 +15,7 @@ export class Fragments implements ITelemetryData{
|
|
|
15
15
|
|
|
16
16
|
export class Fragment implements ITelemetryDataPoint {
|
|
17
17
|
public name: string;
|
|
18
|
-
public properties: Array<Property | Include | Inline | IWildcard>;
|
|
18
|
+
public properties: Array<Property | Metadata | Include | Inline | IWildcard>;
|
|
19
19
|
constructor (name: string) {
|
|
20
20
|
this.name = name;
|
|
21
21
|
this.properties = [];
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Licensed under the MIT license.
|
|
3
3
|
import { OutputtedDeclarations } from "./declarations";
|
|
4
4
|
import { Property } from "./common-properties";
|
|
5
|
-
import { Wildcard } from "./events";
|
|
5
|
+
import { Metadata, Wildcard } from "./events";
|
|
6
6
|
import * as keywords from './keywords';
|
|
7
7
|
|
|
8
8
|
// Converts the declarations array to an object format for easy readability.
|
|
@@ -17,7 +17,7 @@ export async function transformOutput(output: OutputtedDeclarations): Promise<Ou
|
|
|
17
17
|
for (const event of oldEvents) {
|
|
18
18
|
newEvents[event.name] = Object.create(null);
|
|
19
19
|
//We know there won't be anymore includes or inlines because we have resolved them
|
|
20
|
-
for (const property of event.properties as Array<Property | Wildcard>) {
|
|
20
|
+
for (const property of event.properties as Array<Property | Wildcard | Metadata>) {
|
|
21
21
|
if (property instanceof Wildcard) {
|
|
22
22
|
newEvents[event.name][keywords.wildcard] = newEvents[event.name][keywords.wildcard] ? newEvents[event.name][keywords.wildcard] : [];
|
|
23
23
|
for (const entry of property.entries) {
|
|
@@ -34,7 +34,7 @@ export async function transformOutput(output: OutputtedDeclarations): Promise<Ou
|
|
|
34
34
|
}
|
|
35
35
|
newEvents[event.name][keywords.wildcard].push(newEntry);
|
|
36
36
|
}
|
|
37
|
-
} else {
|
|
37
|
+
} else if (property instanceof Property) {
|
|
38
38
|
// Handles the case where the comments can be inconsistent
|
|
39
39
|
// We want to ensure that if isMeasurement is ever flagged it gets propogated
|
|
40
40
|
if (newEvents[event.name][propetyNameChanger(property.name)]) {
|
|
@@ -57,6 +57,9 @@ export async function transformOutput(output: OutputtedDeclarations): Promise<Ou
|
|
|
57
57
|
if (property.isMeasurement) {
|
|
58
58
|
newEvents[event.name][propetyNameChanger(property.name)]['isMeasurement'] = property.isMeasurement;
|
|
59
59
|
}
|
|
60
|
+
} else {
|
|
61
|
+
// Comments, expiration, and owner metadata are handled here
|
|
62
|
+
newEvents[event.name][propetyNameChanger(property.name)] = property.value;
|
|
60
63
|
}
|
|
61
64
|
}
|
|
62
65
|
}
|
package/src/lib/operations.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Copyright (c) Microsoft Corporation.
|
|
2
2
|
// Licensed under the MIT license.
|
|
3
3
|
import { Fragments, Fragment } from "./fragments";
|
|
4
|
-
import { Events, Event, Include, Inline, Wildcard, WildcardEntry } from "./events";
|
|
4
|
+
import { Events, Event, Include, Inline, Wildcard, WildcardEntry, Metadata } from "./events";
|
|
5
5
|
import { Property } from "./common-properties";
|
|
6
6
|
import * as keywords from './keywords';
|
|
7
7
|
|
|
@@ -64,6 +64,9 @@ export function populateProperties(properties: any, target: Event | Fragment, ap
|
|
|
64
64
|
target.properties.push(new Inline(propertyName, currentProperty[keywords.inline]));
|
|
65
65
|
} else if (propertyName === keywords.wildcard) {
|
|
66
66
|
mergeWildcards(currentProperty, target, applyEndpoints);
|
|
67
|
+
} else if (propertyName === 'owner' || propertyName === 'comment' || propertyName === 'expiration') {
|
|
68
|
+
// This is the special case when the property name matches one of our metadata properties
|
|
69
|
+
target.properties.push(new Metadata(propertyName, currentProperty));
|
|
67
70
|
} else {
|
|
68
71
|
const prop = new Property(propertyName, currentProperty.classification, currentProperty.purpose, currentProperty.expiration, currentProperty.owner, currentProperty.comment);
|
|
69
72
|
if (applyEndpoints) {
|
|
@@ -65,6 +65,11 @@ export async function extractAndResolveDeclarations(sourceSpecs: Array<SourceSpe
|
|
|
65
65
|
}
|
|
66
66
|
const formattedDeclarations: any = await transformOutput(allDeclarations);
|
|
67
67
|
for (const dec in allTypeScriptDeclarations) {
|
|
68
|
+
// If there's typescript declarations but we returned a null object
|
|
69
|
+
// We must add the event container to the declarations object
|
|
70
|
+
if (formattedDeclarations.events === undefined) {
|
|
71
|
+
formattedDeclarations.events = Object.create(null);
|
|
72
|
+
}
|
|
68
73
|
formattedDeclarations.events[dec] = allTypeScriptDeclarations[dec];
|
|
69
74
|
}
|
|
70
75
|
return Promise.resolve(formattedDeclarations);
|
|
@@ -8,7 +8,12 @@ export interface ITelemetryData{
|
|
|
8
8
|
|
|
9
9
|
export interface ITelemetryDataPoint {
|
|
10
10
|
name: string;
|
|
11
|
-
properties: Array<IProperty | IInclude | IInline | Wildcard>;
|
|
11
|
+
properties: Array<IProperty | IInclude | IInline | IMetadata | Wildcard>;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export interface IMetadata {
|
|
15
|
+
name: 'owner' | 'comment' | 'expiration';
|
|
16
|
+
value: string;
|
|
12
17
|
}
|
|
13
18
|
|
|
14
19
|
export interface IProperty {
|
package/src/lib/ts-parser.ts
CHANGED
|
@@ -6,25 +6,8 @@ import * as cp from 'child_process';
|
|
|
6
6
|
import * as path from 'path';
|
|
7
7
|
import { rgPath } from "@vscode/ripgrep";
|
|
8
8
|
import { makeExclusionsRelativeToSource } from "./operations";
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
propName: string;
|
|
12
|
-
classification: 'SystemMetaData' | 'CallstackOrException';
|
|
13
|
-
purpose: 'PerformanceAndHealth' | 'FeatureInsight';
|
|
14
|
-
expiration?: string;
|
|
15
|
-
owner?: string;
|
|
16
|
-
comment?: string;
|
|
17
|
-
endpoint?: string;
|
|
18
|
-
isMeasurement?: boolean;
|
|
19
|
-
}
|
|
20
|
-
class GDPREvent {
|
|
21
|
-
public eventName: string;
|
|
22
|
-
public properties: Array<IGDPRProperty>;
|
|
23
|
-
constructor(name: string) {
|
|
24
|
-
this.eventName = name;
|
|
25
|
-
this.properties = [];
|
|
26
|
-
}
|
|
27
|
-
}
|
|
9
|
+
import { Event, Metadata } from './events';
|
|
10
|
+
import { Property } from "./common-properties";
|
|
28
11
|
|
|
29
12
|
class NodeVisitor {
|
|
30
13
|
|
|
@@ -60,11 +43,12 @@ class NodeVisitor {
|
|
|
60
43
|
// If we don't want endpoints skip them
|
|
61
44
|
if (currentNode.getEscapedName().toLowerCase() === "endpoint" && !this.applyEndpoints) return;
|
|
62
45
|
|
|
46
|
+
const nodeName = currentNode.getEscapedName();
|
|
63
47
|
// If it's a string we strip the quotes
|
|
64
48
|
if (type.isStringLiteral()) {
|
|
65
|
-
this.resolved_property[
|
|
49
|
+
this.resolved_property[nodeName] = type.getText().substring(1, type.getText().length - 1);
|
|
66
50
|
} else {
|
|
67
|
-
this.resolved_property[
|
|
51
|
+
this.resolved_property[nodeName] = type.getText() === 'true';
|
|
68
52
|
}
|
|
69
53
|
return;
|
|
70
54
|
}
|
|
@@ -87,7 +71,26 @@ class NodeVisitor {
|
|
|
87
71
|
this.prop_name = this.original_prop_name;
|
|
88
72
|
}
|
|
89
73
|
|
|
90
|
-
|
|
74
|
+
private visitMetadataNode(currentNode: Symbol) {
|
|
75
|
+
let type = currentNode.getTypeAtLocation(this.pl_node);
|
|
76
|
+
// If we mark a property as optional then it is nullable, however we want all properties
|
|
77
|
+
// So we want its non nullable type tl;dr this chops off the | undefined
|
|
78
|
+
if (type.isNullable()) {
|
|
79
|
+
type = type.getNonNullableType();
|
|
80
|
+
}
|
|
81
|
+
if (type.isStringLiteral()) {
|
|
82
|
+
const nodeName = currentNode.getEscapedName();
|
|
83
|
+
this.resolved_property[nodeName] = type.getText().substring(1, type.getText().length - 1);
|
|
84
|
+
if (nodeName === 'owner' || nodeName === 'comment' || nodeName === 'expiration') {
|
|
85
|
+
this.properties.push(new Metadata(nodeName, this.resolved_property[nodeName]).simpleObject());
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
public resolveProperties(currentNode: Symbol): Array<Property | Metadata> {
|
|
91
|
+
// It could be a complex node with nested types or a simple node with a string literal
|
|
92
|
+
// representing some kind of metadata, so we try both visitors.
|
|
93
|
+
this.visitMetadataNode(currentNode);
|
|
91
94
|
this.visitNode(currentNode);
|
|
92
95
|
return this.properties;
|
|
93
96
|
}
|
|
@@ -169,7 +172,7 @@ export class TsParser {
|
|
|
169
172
|
event_name = event_name.substring(1, event_name.length - 1);
|
|
170
173
|
}
|
|
171
174
|
event_name = this.lowerCaseEvents ? event_name.toLowerCase() : event_name;
|
|
172
|
-
const created_event = new
|
|
175
|
+
const created_event = new Event(event_name);
|
|
173
176
|
// We want the second one because public log is in the form <Event, Classification> and we care about the classification
|
|
174
177
|
const type_properties = typeArgs[1].getType().getProperties();
|
|
175
178
|
type_properties.forEach((prop) => {
|