@vscode/telemetry-extractor 1.20.2 → 1.20.5
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/dependabot.yml +11 -0
- package/.github/workflows/node.js.yml +3 -2
- package/eslint.config.js +6 -1
- package/out/cli-options.js +2 -1
- package/out/cli-options.js.map +1 -1
- package/out/extractor.js +7 -1
- package/out/extractor.js.map +1 -1
- package/out/lib/common-properties.js +51 -1
- package/out/lib/common-properties.js.map +1 -1
- package/out/lib/declarations.js.map +1 -1
- package/out/lib/event-definition.js +5 -0
- package/out/lib/event-definition.js.map +1 -0
- package/out/lib/events.js +28 -1
- package/out/lib/events.js.map +1 -1
- package/out/lib/object-converter.js +58 -4
- package/out/lib/object-converter.js.map +1 -1
- package/out/lib/operations.js +83 -66
- package/out/lib/operations.js.map +1 -1
- package/out/lib/parser.js +18 -23
- package/out/lib/parser.js.map +1 -1
- package/out/lib/ripgrep.js +14 -0
- package/out/lib/ripgrep.js.map +1 -0
- package/out/lib/save-declarations.js +32 -10
- package/out/lib/save-declarations.js.map +1 -1
- package/out/lib/ts-parser-worker.js +39 -0
- package/out/lib/ts-parser-worker.js.map +1 -0
- package/out/lib/ts-parser.js +204 -37
- package/out/lib/ts-parser.js.map +1 -1
- package/package.json +3 -3
- package/src/cli-options.ts +2 -1
- package/src/extractor.ts +8 -1
- package/src/lib/common-properties.ts +71 -5
- package/src/lib/declarations.ts +2 -1
- package/src/lib/event-definition.ts +7 -0
- package/src/lib/events.ts +33 -1
- package/src/lib/object-converter.ts +73 -4
- package/src/lib/operations.ts +75 -72
- package/src/lib/parser.ts +22 -34
- package/src/lib/ripgrep.ts +10 -0
- package/src/lib/save-declarations.ts +37 -13
- package/src/lib/ts-parser-worker.ts +38 -0
- package/src/lib/ts-parser.ts +247 -41
- package/tsconfig.json +1 -0
- package/vscode-telemetry-extractor.d.ts +21 -1
package/out/lib/ts-parser.js
CHANGED
|
@@ -23,16 +23,48 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.TsParser = void 0;
|
|
26
|
+
exports.TsProjectParser = exports.TsParser = exports.runParserWorker = void 0;
|
|
27
27
|
// Copyright (c) Microsoft Corporation.
|
|
28
28
|
// Licensed under the MIT license.
|
|
29
29
|
const ts_morph_1 = require("ts-morph");
|
|
30
30
|
const fs = __importStar(require("fs"));
|
|
31
31
|
const cp = __importStar(require("child_process"));
|
|
32
32
|
const path = __importStar(require("path"));
|
|
33
|
+
const worker_threads_1 = require("worker_threads");
|
|
33
34
|
const ripgrep_1 = require("@vscode/ripgrep");
|
|
34
35
|
const operations_1 = require("./operations");
|
|
35
36
|
const events_1 = require("./events");
|
|
37
|
+
const ripgrep_2 = require("./ripgrep");
|
|
38
|
+
const sourceFilesPerBatch = 64;
|
|
39
|
+
function runParserWorker(request) {
|
|
40
|
+
return new Promise((resolve, reject) => {
|
|
41
|
+
const worker = new worker_threads_1.Worker(path.join(__dirname, 'ts-parser-worker.js'), { workerData: request });
|
|
42
|
+
let result;
|
|
43
|
+
let error;
|
|
44
|
+
worker.once('message', (message) => {
|
|
45
|
+
result = message;
|
|
46
|
+
});
|
|
47
|
+
worker.once('error', workerError => {
|
|
48
|
+
error = workerError;
|
|
49
|
+
});
|
|
50
|
+
// Do not start another compiler until this worker has released its heap.
|
|
51
|
+
worker.once('exit', code => {
|
|
52
|
+
if (error) {
|
|
53
|
+
reject(error);
|
|
54
|
+
}
|
|
55
|
+
else if (code !== 0) {
|
|
56
|
+
reject(new Error(`Telemetry parser worker exited with code ${code}`));
|
|
57
|
+
}
|
|
58
|
+
else if (!result) {
|
|
59
|
+
reject(new Error('Telemetry parser worker exited without a result'));
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
resolve(result);
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
exports.runParserWorker = runParserWorker;
|
|
36
68
|
function isMeasurement(type) {
|
|
37
69
|
if (type.isNumber()) {
|
|
38
70
|
return true;
|
|
@@ -119,7 +151,7 @@ class NodeVisitor {
|
|
|
119
151
|
}
|
|
120
152
|
visitNode(currentNode, previousNode) {
|
|
121
153
|
let type = currentNode.getTypeAtLocation(this.pl_node);
|
|
122
|
-
// If we mark a property as optional then it is nullable, however we want all properties
|
|
154
|
+
// If we mark a property as optional then it is nullable, however we want all properties
|
|
123
155
|
// So we want its non nullable type tl;dr this chops off the | undefined
|
|
124
156
|
if (type.isNullable()) {
|
|
125
157
|
type = type.getNonNullableType();
|
|
@@ -145,10 +177,24 @@ class NodeVisitor {
|
|
|
145
177
|
}
|
|
146
178
|
return;
|
|
147
179
|
}
|
|
148
|
-
const
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
180
|
+
const nodeName = currentNode.getEscapedName();
|
|
181
|
+
if (nodeName !== 'column') {
|
|
182
|
+
const properties = type.getProperties();
|
|
183
|
+
properties.forEach((prop) => {
|
|
184
|
+
this.visitNode(prop, currentNode);
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
else {
|
|
188
|
+
const properties = type.getProperties();
|
|
189
|
+
const value = Object.create(null);
|
|
190
|
+
properties.forEach((prop) => {
|
|
191
|
+
const propType = prop.getTypeAtLocation(this.pl_node);
|
|
192
|
+
if (propType.isStringLiteral()) {
|
|
193
|
+
value[prop.getEscapedName()] = propType.getText().substring(1, propType.getText().length - 1);
|
|
194
|
+
}
|
|
195
|
+
});
|
|
196
|
+
this.resolved_property['column'] = value;
|
|
197
|
+
}
|
|
152
198
|
// 95% of the time there is only one property in this array but inlines allow
|
|
153
199
|
// for the number of properties found to be unpredictable so we must return an array
|
|
154
200
|
if (this.inline && this.prop_name === this.original_prop_name) {
|
|
@@ -165,7 +211,7 @@ class NodeVisitor {
|
|
|
165
211
|
}
|
|
166
212
|
visitMetadataNode(currentNode) {
|
|
167
213
|
let type = currentNode.getTypeAtLocation(this.pl_node);
|
|
168
|
-
// If we mark a property as optional then it is nullable, however we want all properties
|
|
214
|
+
// If we mark a property as optional then it is nullable, however we want all properties
|
|
169
215
|
// So we want its non nullable type tl;dr this chops off the | undefined
|
|
170
216
|
if (type.isNullable()) {
|
|
171
217
|
type = type.getNonNullableType();
|
|
@@ -179,6 +225,8 @@ class NodeVisitor {
|
|
|
179
225
|
}
|
|
180
226
|
}
|
|
181
227
|
resolveProperties(currentNode) {
|
|
228
|
+
// @lramos15 Actually this.properties is of type any[] and the property data pushing into
|
|
229
|
+
// the array is not an instance of Property.
|
|
182
230
|
// It could be a complex node with nested types or a simple node with a string literal
|
|
183
231
|
// representing some kind of metadata, so we try both visitors.
|
|
184
232
|
this.visitMetadataNode(currentNode);
|
|
@@ -192,6 +240,7 @@ class TsParser {
|
|
|
192
240
|
applyEndpoints;
|
|
193
241
|
lowerCaseEvents;
|
|
194
242
|
project;
|
|
243
|
+
sourceFiles = [];
|
|
195
244
|
eventDefinitions;
|
|
196
245
|
constructor(sourceDir, excludedDirs, applyEndpoints, lowerCaseEvents) {
|
|
197
246
|
this.sourceDir = sourceDir;
|
|
@@ -229,18 +278,65 @@ class TsParser {
|
|
|
229
278
|
}
|
|
230
279
|
const ripgrepArgs = ['--files-with-matches', ...rgGlobs, '--no-ignore', 'publicLog2|publicLogError2', this.sourceDir];
|
|
231
280
|
try {
|
|
232
|
-
const
|
|
233
|
-
|
|
234
|
-
retrieved_paths.split(/(?:\r\n|\r|\n)/g).filter(path => path && path.length > 0).map((f) => {
|
|
235
|
-
this.project.addSourceFileAtPathIfExists(f);
|
|
236
|
-
return f;
|
|
237
|
-
});
|
|
281
|
+
const retrievedPaths = cp.execFileSync(ripgrep_1.rgPath, ripgrepArgs, { encoding: 'ascii' });
|
|
282
|
+
this.sourceFiles = (0, ripgrep_2.parseRipgrepFilePaths)(retrievedPaths);
|
|
238
283
|
// Empty catch because this fails when there are no typescript annotations which causes weird error messages
|
|
239
284
|
}
|
|
240
285
|
catch {
|
|
241
286
|
// No-op
|
|
242
287
|
}
|
|
243
288
|
}
|
|
289
|
+
async parseFiles() {
|
|
290
|
+
if (this.sourceFiles.length <= sourceFilesPerBatch) {
|
|
291
|
+
for (const file of this.sourceFiles) {
|
|
292
|
+
this.project.addSourceFileAtPathIfExists(file);
|
|
293
|
+
}
|
|
294
|
+
const parser = new TsProjectParser(this.project, this.applyEndpoints, this.lowerCaseEvents, [...this.eventDefinitions]);
|
|
295
|
+
const events = parser.parseFiles();
|
|
296
|
+
this.eventDefinitions = parser.getEventDefinitions();
|
|
297
|
+
return events;
|
|
298
|
+
}
|
|
299
|
+
const compilerOptions = this.project.getCompilerOptions();
|
|
300
|
+
const prepared = await runParserWorker({ kind: 'prepare', sourceFiles: this.sourceFiles, compilerOptions });
|
|
301
|
+
if (prepared.kind !== 'prepared') {
|
|
302
|
+
throw new Error('Telemetry parser worker did not return call locations');
|
|
303
|
+
}
|
|
304
|
+
let events = Object.create(null);
|
|
305
|
+
for (let index = 0; index < prepared.calls.length; index += sourceFilesPerBatch) {
|
|
306
|
+
const parsed = await runParserWorker({
|
|
307
|
+
kind: 'parse',
|
|
308
|
+
calls: prepared.calls.slice(index, index + sourceFilesPerBatch),
|
|
309
|
+
sharedSourceFiles: prepared.sharedSourceFiles,
|
|
310
|
+
compilerOptions,
|
|
311
|
+
applyEndpoints: this.applyEndpoints,
|
|
312
|
+
lowerCaseEvents: this.lowerCaseEvents,
|
|
313
|
+
events,
|
|
314
|
+
definitions: [...this.eventDefinitions]
|
|
315
|
+
});
|
|
316
|
+
if (parsed.kind !== 'parsed') {
|
|
317
|
+
throw new Error('Telemetry parser worker did not return declarations');
|
|
318
|
+
}
|
|
319
|
+
events = Object.assign(Object.create(null), parsed.events);
|
|
320
|
+
this.eventDefinitions = new Map(parsed.definitions);
|
|
321
|
+
}
|
|
322
|
+
return events;
|
|
323
|
+
}
|
|
324
|
+
getEventDefinitions() {
|
|
325
|
+
return new Map([...this.eventDefinitions].map(([event, entries]) => [event, [...entries]]));
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
exports.TsParser = TsParser;
|
|
329
|
+
class TsProjectParser {
|
|
330
|
+
project;
|
|
331
|
+
applyEndpoints;
|
|
332
|
+
lowerCaseEvents;
|
|
333
|
+
eventDefinitions;
|
|
334
|
+
constructor(project, applyEndpoints, lowerCaseEvents, definitions = []) {
|
|
335
|
+
this.project = project;
|
|
336
|
+
this.applyEndpoints = applyEndpoints;
|
|
337
|
+
this.lowerCaseEvents = lowerCaseEvents;
|
|
338
|
+
this.eventDefinitions = new Map(definitions);
|
|
339
|
+
}
|
|
244
340
|
getEventDefinitions() {
|
|
245
341
|
const definitions = new Map();
|
|
246
342
|
for (const [eventName, entries] of this.eventDefinitions.entries()) {
|
|
@@ -248,32 +344,82 @@ class TsParser {
|
|
|
248
344
|
}
|
|
249
345
|
return definitions;
|
|
250
346
|
}
|
|
251
|
-
addEventDefinition(eventName,
|
|
347
|
+
addEventDefinition(eventName, properties, location) {
|
|
252
348
|
const existing = this.eventDefinitions.get(eventName) ?? [];
|
|
253
|
-
existing.push({
|
|
349
|
+
existing.push({ properties, location });
|
|
254
350
|
this.eventDefinitions.set(eventName, existing);
|
|
255
351
|
}
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
return `[${value.map((entry) => this.stableSerialize(entry)).join(',')}]`;
|
|
259
|
-
}
|
|
260
|
-
if (value && typeof value === 'object') {
|
|
261
|
-
const entries = Object.entries(value)
|
|
262
|
-
.sort(([left], [right]) => left.localeCompare(right))
|
|
263
|
-
.map(([key, entryValue]) => `${JSON.stringify(key)}:${this.stableSerialize(entryValue)}`);
|
|
264
|
-
return `{${entries.join(',')}}`;
|
|
265
|
-
}
|
|
266
|
-
return JSON.stringify(value);
|
|
352
|
+
extractConflictProperties(eventProperties) {
|
|
353
|
+
return { ...eventProperties };
|
|
267
354
|
}
|
|
268
|
-
|
|
269
|
-
|
|
355
|
+
collectCalls() {
|
|
356
|
+
const publicLogCalls = [];
|
|
357
|
+
const publicLogErrorCalls = [];
|
|
270
358
|
this.project.getSourceFiles().forEach((source) => {
|
|
271
|
-
const
|
|
272
|
-
const
|
|
273
|
-
|
|
359
|
+
const calls = [];
|
|
360
|
+
const errorCalls = [];
|
|
361
|
+
const sourceFile = source.compilerNode;
|
|
362
|
+
const visit = (node) => {
|
|
363
|
+
if (ts_morph_1.ts.isCallExpression(node) && node.arguments.length > 0) {
|
|
364
|
+
const expression = node.expression.getText(sourceFile);
|
|
365
|
+
const isPublicLog = expression.includes('publicLog2');
|
|
366
|
+
const isPublicLogError = expression.includes('publicLogError2');
|
|
367
|
+
if ((isPublicLog || isPublicLogError) && node.arguments[0].getText(sourceFile) !== 'eventName') {
|
|
368
|
+
const call = { start: node.getStart(sourceFile), width: node.getWidth(sourceFile) };
|
|
369
|
+
if (isPublicLog) {
|
|
370
|
+
calls.push(call);
|
|
371
|
+
}
|
|
372
|
+
if (isPublicLogError) {
|
|
373
|
+
errorCalls.push(call);
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
ts_morph_1.ts.forEachChild(node, visit);
|
|
378
|
+
};
|
|
379
|
+
ts_morph_1.ts.forEachChild(sourceFile, visit);
|
|
380
|
+
if (calls.length > 0) {
|
|
381
|
+
publicLogCalls.unshift({ filePath: source.getFilePath(), calls });
|
|
382
|
+
}
|
|
383
|
+
if (errorCalls.length > 0) {
|
|
384
|
+
publicLogErrorCalls.push({ filePath: source.getFilePath(), calls: errorCalls });
|
|
385
|
+
}
|
|
274
386
|
});
|
|
387
|
+
return publicLogCalls.concat(publicLogErrorCalls);
|
|
388
|
+
}
|
|
389
|
+
getSharedSourceFiles() {
|
|
390
|
+
const program = this.project.getProgram().compilerObject;
|
|
391
|
+
return program.getSourceFiles().filter(source => !ts_morph_1.ts.isExternalModule(source) || source.statements.some(statement => ts_morph_1.ts.isModuleDeclaration(statement) &&
|
|
392
|
+
(ts_morph_1.ts.isStringLiteral(statement.name) || (statement.flags & ts_morph_1.ts.NodeFlags.GlobalAugmentation) !== 0))).map(source => source.fileName);
|
|
393
|
+
}
|
|
394
|
+
prepare() {
|
|
395
|
+
const calls = this.collectCalls();
|
|
396
|
+
return {
|
|
397
|
+
kind: 'prepared',
|
|
398
|
+
calls,
|
|
399
|
+
sharedSourceFiles: calls.length > 0 ? this.getSharedSourceFiles() : []
|
|
400
|
+
};
|
|
401
|
+
}
|
|
402
|
+
parseCalls(groups, parseCall) {
|
|
403
|
+
for (const group of groups) {
|
|
404
|
+
const source = this.project.getSourceFileOrThrow(group.filePath);
|
|
405
|
+
for (const call of group.calls) {
|
|
406
|
+
const node = source.getDescendantAtStartWithWidth(call.start, call.width);
|
|
407
|
+
if (!node || !ts_morph_1.Node.isCallExpression(node)) {
|
|
408
|
+
throw new Error(`Could not locate telemetry call in ${group.filePath} at ${call.start}`);
|
|
409
|
+
}
|
|
410
|
+
parseCall(node);
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
parseFiles(calls = this.collectCalls(), previousEvents) {
|
|
275
415
|
const events = Object.create(null);
|
|
276
|
-
|
|
416
|
+
if (previousEvents) {
|
|
417
|
+
// Structured cloning does not preserve dictionary prototypes.
|
|
418
|
+
for (const [name, properties] of Object.entries(previousEvents)) {
|
|
419
|
+
events[name] = Object.assign(Object.create(null), properties);
|
|
420
|
+
}
|
|
421
|
+
}
|
|
422
|
+
const parseCall = (pl) => {
|
|
277
423
|
try {
|
|
278
424
|
const typeArgs = pl.getTypeArguments();
|
|
279
425
|
if (typeArgs.length != 2) {
|
|
@@ -303,12 +449,23 @@ class TsParser {
|
|
|
303
449
|
type_properties.forEach((prop) => {
|
|
304
450
|
const propName = prop.getEscapedName().toLowerCase();
|
|
305
451
|
const node_visitor = new NodeVisitor(pl, propName, this.applyEndpoints);
|
|
306
|
-
|
|
452
|
+
const resolved_properties = node_visitor.resolveProperties(prop);
|
|
453
|
+
for (const rp of resolved_properties) {
|
|
454
|
+
if (!(rp instanceof events_1.Metadata)) {
|
|
455
|
+
// This cast is necessary since rp is not of type Property although
|
|
456
|
+
// the resolveProperties claims it to be.
|
|
457
|
+
const propInfo = rp[propName];
|
|
458
|
+
if (propInfo !== undefined) {
|
|
459
|
+
this.captureOriginalPropNameForColumnInformation(prop.getEscapedName(), propInfo);
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
created_event.properties = created_event.properties.concat(resolved_properties);
|
|
307
464
|
});
|
|
308
465
|
created_event.properties.forEach((prop) => {
|
|
309
466
|
Object.assign(events[event_name], prop);
|
|
310
467
|
});
|
|
311
|
-
this.addEventDefinition(event_name, this.
|
|
468
|
+
this.addEventDefinition(event_name, this.extractConflictProperties(events[event_name]), `${pl.getSourceFile().getFilePath()}:${pl.getStartLineNumber()}`);
|
|
312
469
|
const eventProperties = typeArgs[0].getType().getProperties();
|
|
313
470
|
// Find all eventProperties that have a number or boolean type
|
|
314
471
|
eventProperties.forEach((prop) => {
|
|
@@ -343,11 +500,21 @@ class TsParser {
|
|
|
343
500
|
}
|
|
344
501
|
event_name = this.lowerCaseEvents ? event_name.toLowerCase() : event_name;
|
|
345
502
|
events[event_name] = {};
|
|
346
|
-
this.addEventDefinition(event_name, this.
|
|
503
|
+
this.addEventDefinition(event_name, this.extractConflictProperties(events[event_name]), `${pl.getSourceFile().getFilePath()}:${pl.getStartLineNumber()}`);
|
|
347
504
|
}
|
|
348
|
-
}
|
|
505
|
+
};
|
|
506
|
+
this.parseCalls(calls, parseCall);
|
|
349
507
|
return events;
|
|
350
508
|
}
|
|
509
|
+
captureOriginalPropNameForColumnInformation(propName, property) {
|
|
510
|
+
if (property.column && property.column.name === undefined) {
|
|
511
|
+
property.column.name = propName;
|
|
512
|
+
}
|
|
513
|
+
else if (typeof property.type === 'string') {
|
|
514
|
+
property.column = { name: propName, type: property.type };
|
|
515
|
+
delete property.type;
|
|
516
|
+
}
|
|
517
|
+
}
|
|
351
518
|
}
|
|
352
|
-
exports.
|
|
519
|
+
exports.TsProjectParser = TsProjectParser;
|
|
353
520
|
//# sourceMappingURL=ts-parser.js.map
|
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":"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"}
|
|
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.20.
|
|
3
|
+
"version": "1.20.5",
|
|
4
4
|
"description": "Extracts telemetry from VS Code",
|
|
5
5
|
"main": "out/index.js",
|
|
6
6
|
"typings": "vscode-telemetry-extractor.d.ts",
|
|
@@ -37,10 +37,10 @@
|
|
|
37
37
|
"@types/node": "^18.18.2",
|
|
38
38
|
"eslint": "^9.39.2",
|
|
39
39
|
"mocha": "^10.2.0",
|
|
40
|
-
"nyc": "^
|
|
40
|
+
"nyc": "^18.0.0",
|
|
41
41
|
"source-map-support": "^0.5.21",
|
|
42
42
|
"ts-node": "^10.9.2",
|
|
43
43
|
"typescript": "^5.3.3",
|
|
44
44
|
"typescript-eslint": "^8.56.0"
|
|
45
45
|
}
|
|
46
|
-
}
|
|
46
|
+
}
|
package/src/cli-options.ts
CHANGED
|
@@ -27,7 +27,8 @@ export const optionDefinitions = [
|
|
|
27
27
|
{ name: 'applyEndpoints', alias: 'e', type: Boolean, defaultValue: false },
|
|
28
28
|
{ name: 'silenceOutput', type: Boolean, description: 'Silences all progress messages.', defaultValue: false },
|
|
29
29
|
{ name: 'lowerCaseEvents', alias: 'l', type: Boolean, defaultValue: false },
|
|
30
|
-
{ name: 'verbose', alias: 'v', type: Boolean, defaultValue: false }
|
|
30
|
+
{ name: 'verbose', alias: 'v', type: Boolean, defaultValue: false },
|
|
31
|
+
{ name: 'tableInfo', alias: 't', type: Boolean, description: 'Outputs Kusto table information. If no filename is specified the default file name with -tableInfo is used.', defaultValue: false }
|
|
31
32
|
];
|
|
32
33
|
|
|
33
34
|
export const options = resolveDirectories(commandLineArgs(optionDefinitions, { partial: true }));
|
package/src/extractor.ts
CHANGED
|
@@ -7,6 +7,7 @@ import { cwd } from 'process';
|
|
|
7
7
|
import { writeToFile, extractAndResolveDeclarations } from './lib/save-declarations';
|
|
8
8
|
import { convertConfigToSourceSpecs, ParserOptions, SourceSpec } from './lib/source-spec';
|
|
9
9
|
import { logMessage } from './lib/logger';
|
|
10
|
+
import type { OutputtedDeclarations } from './lib/declarations';
|
|
10
11
|
|
|
11
12
|
if (options.config) {
|
|
12
13
|
const sourceSpecs = convertConfigToSourceSpecs(options.config);
|
|
@@ -36,7 +37,13 @@ if (options.config) {
|
|
|
36
37
|
};
|
|
37
38
|
extractAndResolveDeclarations([sourceSpec]).then((declarations) => {
|
|
38
39
|
if (options.outputDir) {
|
|
39
|
-
|
|
40
|
+
const tableInfos = declarations.tableInfos;
|
|
41
|
+
const gdprDeclarations: Partial<OutputtedDeclarations> = { ...declarations };
|
|
42
|
+
delete gdprDeclarations.tableInfos;
|
|
43
|
+
writeToFile(options.outputDir, gdprDeclarations, options.fileName || 'declarations-resolved', !options.silent);
|
|
44
|
+
if (options.tableInfo) {
|
|
45
|
+
writeToFile(options.outputDir, tableInfos, options.fileName ? options.fileName + '-tableInfo' : 'tableInfo', !options.silent);
|
|
46
|
+
}
|
|
40
47
|
} else {
|
|
41
48
|
console.log(JSON.stringify(declarations));
|
|
42
49
|
}
|
|
@@ -9,6 +9,67 @@ export class CommonProperties {
|
|
|
9
9
|
}
|
|
10
10
|
}
|
|
11
11
|
|
|
12
|
+
export type ColumnType =
|
|
13
|
+
'bool' |
|
|
14
|
+
'int' |
|
|
15
|
+
'long' |
|
|
16
|
+
'real' |
|
|
17
|
+
'decimal' |
|
|
18
|
+
'dynamic' |
|
|
19
|
+
'guid' |
|
|
20
|
+
'string' |
|
|
21
|
+
'datetime' |
|
|
22
|
+
'timespan';
|
|
23
|
+
|
|
24
|
+
export namespace ColumnType {
|
|
25
|
+
export function fromString(type: string): ColumnType | undefined{
|
|
26
|
+
switch (type.toLowerCase()) {
|
|
27
|
+
case 'bool':
|
|
28
|
+
case 'boolean':
|
|
29
|
+
return 'bool';
|
|
30
|
+
case 'int':
|
|
31
|
+
return 'int';
|
|
32
|
+
case 'long':
|
|
33
|
+
return 'long';
|
|
34
|
+
case 'real':
|
|
35
|
+
case 'double':
|
|
36
|
+
return 'real';
|
|
37
|
+
case 'decimal':
|
|
38
|
+
return 'decimal';
|
|
39
|
+
case 'dynamic':
|
|
40
|
+
return 'dynamic';
|
|
41
|
+
case 'guid':
|
|
42
|
+
case 'uuid':
|
|
43
|
+
case 'uniqueid':
|
|
44
|
+
return 'guid';
|
|
45
|
+
case 'string':
|
|
46
|
+
return 'string';
|
|
47
|
+
case 'datetime':
|
|
48
|
+
case 'date':
|
|
49
|
+
return 'datetime';
|
|
50
|
+
case 'timespan':
|
|
51
|
+
case 'time':
|
|
52
|
+
return 'timespan';
|
|
53
|
+
default:
|
|
54
|
+
return undefined;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export type ColumnInfo = {
|
|
60
|
+
name?: string;
|
|
61
|
+
type: ColumnType;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export namespace ColumnInfo {
|
|
65
|
+
export function is(obj: unknown): obj is ColumnInfo {
|
|
66
|
+
const candidate = obj as ColumnInfo;
|
|
67
|
+
return !!candidate &&
|
|
68
|
+
(candidate.name === undefined || typeof candidate.name === 'string') &&
|
|
69
|
+
typeof candidate.type === 'string' && ColumnType.fromString(candidate.type) !== undefined;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
12
73
|
export class Property implements IProperty {
|
|
13
74
|
public name: string;
|
|
14
75
|
public classification: string;
|
|
@@ -18,16 +79,21 @@ export class Property implements IProperty {
|
|
|
18
79
|
public expiration?: string;
|
|
19
80
|
public owner?: string;
|
|
20
81
|
public comment?: string;
|
|
21
|
-
|
|
82
|
+
|
|
83
|
+
// The name and type of the property if mirrored into a flat table in Kusto.
|
|
84
|
+
// Needs to be removed when generating the patch for the GDPR catalog as
|
|
85
|
+
// flat table properties are not allowed in the catalog.
|
|
86
|
+
public column?: ColumnInfo;
|
|
87
|
+
|
|
22
88
|
constructor (
|
|
23
|
-
name: string,
|
|
89
|
+
name: string,
|
|
24
90
|
classification: string,
|
|
25
|
-
purpose: string,
|
|
91
|
+
purpose: string,
|
|
26
92
|
expiration?: string,
|
|
27
93
|
owner?: string,
|
|
28
94
|
comment?: string,
|
|
29
|
-
endpoint?: string,
|
|
30
|
-
isMeasurement?: boolean
|
|
95
|
+
endpoint?: string,
|
|
96
|
+
isMeasurement?: boolean,
|
|
31
97
|
) {
|
|
32
98
|
this.name = name;
|
|
33
99
|
this.classification = classification;
|
package/src/lib/declarations.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import { Fragments } from "./fragments";
|
|
4
4
|
import { Events, Include, Inline } from "./events";
|
|
5
5
|
import { CommonProperties, Property } from "./common-properties";
|
|
6
|
-
import type { Events as OutputEvents, CommonProperties as OutputCommonProperties } from "../../vscode-telemetry-extractor";
|
|
6
|
+
import type { Events as OutputEvents, CommonProperties as OutputCommonProperties , TableInfo as OutputTableInfo } from "../../vscode-telemetry-extractor";
|
|
7
7
|
|
|
8
8
|
export interface Declarations {
|
|
9
9
|
fragments: Fragments;
|
|
@@ -15,6 +15,7 @@ export interface Declarations {
|
|
|
15
15
|
export interface OutputtedDeclarations {
|
|
16
16
|
events: OutputEvents;
|
|
17
17
|
commonProperties: OutputCommonProperties;
|
|
18
|
+
tableInfos: { [key: string]: OutputTableInfo };
|
|
18
19
|
}
|
|
19
20
|
|
|
20
21
|
function resolveIncludes(target: Events | Fragments, fragments: Fragments) {
|
package/src/lib/events.ts
CHANGED
|
@@ -11,14 +11,46 @@ export class Events implements ITelemetryData {
|
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
+
export type TableInfo = {
|
|
15
|
+
name: string;
|
|
16
|
+
commonProperties: 'standard';
|
|
17
|
+
backfill: boolean | string;
|
|
18
|
+
}
|
|
19
|
+
export namespace TableInfo {
|
|
20
|
+
export function fromObject(obj: unknown): TableInfo | undefined {
|
|
21
|
+
if (typeof obj !== 'object' || obj === null) {
|
|
22
|
+
return undefined;
|
|
23
|
+
}
|
|
24
|
+
const candidate: Partial<TableInfo> = obj as TableInfo;
|
|
25
|
+
if (typeof candidate.name !== 'string') {
|
|
26
|
+
return undefined;
|
|
27
|
+
}
|
|
28
|
+
const result: TableInfo = {
|
|
29
|
+
name: candidate.name,
|
|
30
|
+
commonProperties: 'standard',
|
|
31
|
+
backfill: false
|
|
32
|
+
|
|
33
|
+
};
|
|
34
|
+
if (candidate.commonProperties === 'standard') {
|
|
35
|
+
result.commonProperties = 'standard';
|
|
36
|
+
}
|
|
37
|
+
if (typeof candidate.backfill === 'boolean' || typeof candidate.backfill === 'string') {
|
|
38
|
+
result.backfill = candidate.backfill;
|
|
39
|
+
}
|
|
40
|
+
return result;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
|
|
14
44
|
export class Event implements ITelemetryDataPoint {
|
|
15
45
|
public name: string;
|
|
16
46
|
// It gets a little more complicated here as events can have a bunch of different things
|
|
17
47
|
public properties: Array<Property | Metadata | Include | Inline | Wildcard>;
|
|
48
|
+
public tableInfo?: TableInfo;
|
|
18
49
|
constructor (name: string) {
|
|
19
50
|
this.name = name;
|
|
20
51
|
this.properties = [];
|
|
21
|
-
|
|
52
|
+
this.tableInfo = undefined;
|
|
53
|
+
}
|
|
22
54
|
}
|
|
23
55
|
|
|
24
56
|
export class Include implements IInclude {
|