airbyte-faros-destination 0.19.1 → 0.19.2
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/lib/converters/common/vcs.d.ts +2 -1
- package/lib/converters/common/vcs.js +1 -0
- package/lib/converters/common/vcs.js.map +1 -1
- package/lib/converters/windsurf/autocomplete_analytics.d.ts +8 -0
- package/lib/converters/windsurf/autocomplete_analytics.js +33 -0
- package/lib/converters/windsurf/autocomplete_analytics.js.map +1 -0
- package/lib/converters/windsurf/cascade_lines_analytics.d.ts +8 -0
- package/lib/converters/windsurf/cascade_lines_analytics.js +35 -0
- package/lib/converters/windsurf/cascade_lines_analytics.js.map +1 -0
- package/lib/converters/windsurf/common.d.ts +12 -0
- package/lib/converters/windsurf/common.js +75 -0
- package/lib/converters/windsurf/common.js.map +1 -0
- package/lib/converters/windsurf/user_page_analytics.d.ts +8 -0
- package/lib/converters/windsurf/user_page_analytics.js +92 -0
- package/lib/converters/windsurf/user_page_analytics.js.map +1 -0
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
- package/resources/source-specific-configs/windsurf.json +17 -0
|
@@ -69,7 +69,8 @@ export declare enum VCSToolCategory {
|
|
|
69
69
|
GitHubCopilot = "GitHubCopilot"
|
|
70
70
|
}
|
|
71
71
|
export declare enum VCSToolDetail {
|
|
72
|
-
Cursor = "Cursor"
|
|
72
|
+
Cursor = "Cursor",
|
|
73
|
+
Windsurf = "Windsurf"
|
|
73
74
|
}
|
|
74
75
|
export declare enum AssistantMetric {
|
|
75
76
|
SuggestionsDiscarded = "SuggestionsDiscarded",
|
|
@@ -45,6 +45,7 @@ var VCSToolCategory;
|
|
|
45
45
|
var VCSToolDetail;
|
|
46
46
|
(function (VCSToolDetail) {
|
|
47
47
|
VCSToolDetail["Cursor"] = "Cursor";
|
|
48
|
+
VCSToolDetail["Windsurf"] = "Windsurf";
|
|
48
49
|
})(VCSToolDetail || (exports.VCSToolDetail = VCSToolDetail = {}));
|
|
49
50
|
var AssistantMetric;
|
|
50
51
|
(function (AssistantMetric) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vcs.js","sourceRoot":"","sources":["../../../src/converters/common/vcs.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"vcs.js","sourceRoot":"","sources":["../../../src/converters/common/vcs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { AirbyteRecord } from 'faros-airbyte-cdk';
|
|
2
|
+
import { DestinationModel, DestinationRecord, StreamContext } from '../converter';
|
|
3
|
+
import { WindsurfConverter } from './common';
|
|
4
|
+
export declare class AutocompleteAnalytics extends WindsurfConverter {
|
|
5
|
+
readonly destinationModels: ReadonlyArray<DestinationModel>;
|
|
6
|
+
id(record: AirbyteRecord): string;
|
|
7
|
+
convert(record: AirbyteRecord, ctx: StreamContext): Promise<ReadonlyArray<DestinationRecord>>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AutocompleteAnalytics = void 0;
|
|
4
|
+
const faros_js_client_1 = require("faros-js-client");
|
|
5
|
+
const vcs_1 = require("../common/vcs");
|
|
6
|
+
const common_1 = require("./common");
|
|
7
|
+
class AutocompleteAnalytics extends common_1.WindsurfConverter {
|
|
8
|
+
constructor() {
|
|
9
|
+
super(...arguments);
|
|
10
|
+
this.destinationModels = [
|
|
11
|
+
'vcs_AssistantMetric',
|
|
12
|
+
];
|
|
13
|
+
}
|
|
14
|
+
id(record) {
|
|
15
|
+
const item = record.record.data;
|
|
16
|
+
return `${item.email}__${item.date}`;
|
|
17
|
+
}
|
|
18
|
+
async convert(record, ctx) {
|
|
19
|
+
const item = record.record.data;
|
|
20
|
+
const res = [];
|
|
21
|
+
const startedAt = faros_js_client_1.Utils.toDate(item.date);
|
|
22
|
+
const endedAt = faros_js_client_1.Utils.toDate(startedAt.getTime() + 24 * 60 * 60 * 1000);
|
|
23
|
+
if (item.num_acceptances > 0) {
|
|
24
|
+
res.push(...this.getAssistantMetric(startedAt, endedAt, vcs_1.AssistantMetric.SuggestionsAccepted, item.num_acceptances, vcs_1.VCSToolDetail.Windsurf, item.email, undefined, undefined, common_1.WindsurfFeature.Autocompletion, item.ide, item.language));
|
|
25
|
+
}
|
|
26
|
+
if (item.num_lines_accepted > 0) {
|
|
27
|
+
res.push(...this.getAssistantMetric(startedAt, endedAt, vcs_1.AssistantMetric.LinesAccepted, item.num_lines_accepted, vcs_1.VCSToolDetail.Windsurf, item.email, undefined, undefined, common_1.WindsurfFeature.Autocompletion, item.ide, item.language));
|
|
28
|
+
}
|
|
29
|
+
return res;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.AutocompleteAnalytics = AutocompleteAnalytics;
|
|
33
|
+
//# sourceMappingURL=autocomplete_analytics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autocomplete_analytics.js","sourceRoot":"","sources":["../../../src/converters/windsurf/autocomplete_analytics.ts"],"names":[],"mappings":";;;AAEA,qDAAsC;AAEtC,uCAA6D;AAE7D,qCAA4D;AAE5D,MAAa,qBAAsB,SAAQ,0BAAiB;IAA5D;;QACW,sBAAiB,GAAoC;YAC5D,qBAAqB;SACtB,CAAC;IAwDJ,CAAC;IAtDC,EAAE,CAAC,MAAqB;QACtB,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAiC,CAAC;QAC7D,OAAO,GAAG,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,OAAO,CACX,MAAqB,EACrB,GAAkB;QAElB,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAiC,CAAC;QAE7D,MAAM,GAAG,GAAwB,EAAE,CAAC;QAEpC,MAAM,SAAS,GAAG,uBAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,uBAAK,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAExE,IAAI,IAAI,CAAC,eAAe,GAAG,CAAC,EAAE,CAAC;YAC7B,GAAG,CAAC,IAAI,CACN,GAAG,IAAI,CAAC,kBAAkB,CACxB,SAAS,EACT,OAAO,EACP,qBAAe,CAAC,mBAAmB,EACnC,IAAI,CAAC,eAAe,EACpB,mBAAa,CAAC,QAAQ,EACtB,IAAI,CAAC,KAAK,EACV,SAAS,EACT,SAAS,EACT,wBAAe,CAAC,cAAc,EAC9B,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,QAAQ,CACd,CACF,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,kBAAkB,GAAG,CAAC,EAAE,CAAC;YAChC,GAAG,CAAC,IAAI,CACN,GAAG,IAAI,CAAC,kBAAkB,CACxB,SAAS,EACT,OAAO,EACP,qBAAe,CAAC,aAAa,EAC7B,IAAI,CAAC,kBAAkB,EACvB,mBAAa,CAAC,QAAQ,EACtB,IAAI,CAAC,KAAK,EACV,SAAS,EACT,SAAS,EACT,wBAAe,CAAC,cAAc,EAC9B,IAAI,CAAC,GAAG,EACR,IAAI,CAAC,QAAQ,CACd,CACF,CAAC;QACJ,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AA3DD,sDA2DC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { AirbyteRecord } from 'faros-airbyte-cdk';
|
|
2
|
+
import { DestinationModel, DestinationRecord } from '../converter';
|
|
3
|
+
import { WindsurfConverter } from './common';
|
|
4
|
+
export declare class CascadeLinesAnalytics extends WindsurfConverter {
|
|
5
|
+
readonly destinationModels: ReadonlyArray<DestinationModel>;
|
|
6
|
+
id(record: AirbyteRecord): string;
|
|
7
|
+
convert(record: AirbyteRecord): Promise<ReadonlyArray<DestinationRecord>>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CascadeLinesAnalytics = void 0;
|
|
4
|
+
const faros_js_client_1 = require("faros-js-client");
|
|
5
|
+
const vcs_1 = require("../common/vcs");
|
|
6
|
+
const common_1 = require("./common");
|
|
7
|
+
class CascadeLinesAnalytics extends common_1.WindsurfConverter {
|
|
8
|
+
constructor() {
|
|
9
|
+
super(...arguments);
|
|
10
|
+
this.destinationModels = [
|
|
11
|
+
'vcs_AssistantMetric',
|
|
12
|
+
];
|
|
13
|
+
}
|
|
14
|
+
id(record) {
|
|
15
|
+
const item = record.record.data;
|
|
16
|
+
return `${item.email}__${item.day}`;
|
|
17
|
+
}
|
|
18
|
+
async convert(record) {
|
|
19
|
+
const item = record.record.data;
|
|
20
|
+
const res = [];
|
|
21
|
+
const startedAt = faros_js_client_1.Utils.toDate(item.day);
|
|
22
|
+
const endedAt = faros_js_client_1.Utils.toDate(startedAt.getTime() + 24 * 60 * 60 * 1000);
|
|
23
|
+
if (item.linesAccepted > 0) {
|
|
24
|
+
res.push(...this.getAssistantMetric(startedAt, endedAt, vcs_1.AssistantMetric.LinesAccepted, item.linesAccepted, vcs_1.VCSToolDetail.Windsurf, item.email, undefined, undefined, common_1.WindsurfFeature.Cascade));
|
|
25
|
+
}
|
|
26
|
+
// Calculate lines discarded = lines suggested - lines accepted
|
|
27
|
+
if (item.linesSuggested > item.linesAccepted) {
|
|
28
|
+
const linesDiscarded = item.linesSuggested - item.linesAccepted;
|
|
29
|
+
res.push(...this.getAssistantMetric(startedAt, endedAt, vcs_1.AssistantMetric.LinesDiscarded, linesDiscarded, vcs_1.VCSToolDetail.Windsurf, item.email, undefined, undefined, common_1.WindsurfFeature.Cascade));
|
|
30
|
+
}
|
|
31
|
+
return res;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.CascadeLinesAnalytics = CascadeLinesAnalytics;
|
|
35
|
+
//# sourceMappingURL=cascade_lines_analytics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cascade_lines_analytics.js","sourceRoot":"","sources":["../../../src/converters/windsurf/cascade_lines_analytics.ts"],"names":[],"mappings":";;;AAEA,qDAAsC;AAEtC,uCAA6D;AAE7D,qCAA4D;AAE5D,MAAa,qBAAsB,SAAQ,0BAAiB;IAA5D;;QACW,sBAAiB,GAAoC;YAC5D,qBAAqB;SACtB,CAAC;IAqDJ,CAAC;IAnDC,EAAE,CAAC,MAAqB;QACtB,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAwB,CAAC;QACpD,OAAO,GAAG,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,OAAO,CACX,MAAqB;QAErB,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAwB,CAAC;QAEpD,MAAM,GAAG,GAAwB,EAAE,CAAC;QAEpC,MAAM,SAAS,GAAG,uBAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzC,MAAM,OAAO,GAAG,uBAAK,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAExE,IAAI,IAAI,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC;YAC3B,GAAG,CAAC,IAAI,CACN,GAAG,IAAI,CAAC,kBAAkB,CACxB,SAAS,EACT,OAAO,EACP,qBAAe,CAAC,aAAa,EAC7B,IAAI,CAAC,aAAa,EAClB,mBAAa,CAAC,QAAQ,EACtB,IAAI,CAAC,KAAK,EACV,SAAS,EACT,SAAS,EACT,wBAAe,CAAC,OAAO,CACxB,CACF,CAAC;QACJ,CAAC;QAED,+DAA+D;QAC/D,IAAI,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YAC7C,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC;YAChE,GAAG,CAAC,IAAI,CACN,GAAG,IAAI,CAAC,kBAAkB,CACxB,SAAS,EACT,OAAO,EACP,qBAAe,CAAC,cAAc,EAC9B,cAAc,EACd,mBAAa,CAAC,QAAQ,EACtB,IAAI,CAAC,KAAK,EACV,SAAS,EACT,SAAS,EACT,wBAAe,CAAC,OAAO,CACxB,CACF,CAAC;QACJ,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;CACF;AAxDD,sDAwDC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { AirbyteRecord } from 'faros-airbyte-cdk';
|
|
2
|
+
import { AssistantMetric } from '../common/vcs';
|
|
3
|
+
import { Converter, DestinationRecord } from '../converter';
|
|
4
|
+
export declare enum WindsurfFeature {
|
|
5
|
+
Autocompletion = "Autocompletion",
|
|
6
|
+
Cascade = "Cascade"
|
|
7
|
+
}
|
|
8
|
+
export declare abstract class WindsurfConverter extends Converter {
|
|
9
|
+
source: string;
|
|
10
|
+
id(record: AirbyteRecord): any;
|
|
11
|
+
protected getAssistantMetric(startedAt: Date, endedAt: Date, assistantMetricType: AssistantMetric, value: number, org: string, userEmail: string, customMetricName?: string, model?: string, feature?: string, editor?: string, language?: string): DestinationRecord[];
|
|
12
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WindsurfConverter = exports.WindsurfFeature = void 0;
|
|
4
|
+
const common_1 = require("faros-airbyte-common/common");
|
|
5
|
+
const lodash_1 = require("lodash");
|
|
6
|
+
const vcs_1 = require("../common/vcs");
|
|
7
|
+
const converter_1 = require("../converter");
|
|
8
|
+
var WindsurfFeature;
|
|
9
|
+
(function (WindsurfFeature) {
|
|
10
|
+
WindsurfFeature["Autocompletion"] = "Autocompletion";
|
|
11
|
+
WindsurfFeature["Cascade"] = "Cascade";
|
|
12
|
+
})(WindsurfFeature || (exports.WindsurfFeature = WindsurfFeature = {}));
|
|
13
|
+
class WindsurfConverter extends converter_1.Converter {
|
|
14
|
+
constructor() {
|
|
15
|
+
super(...arguments);
|
|
16
|
+
this.source = 'Windsurf';
|
|
17
|
+
}
|
|
18
|
+
id(record) {
|
|
19
|
+
var _a, _b;
|
|
20
|
+
return (_b = (_a = record === null || record === void 0 ? void 0 : record.record) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b.email;
|
|
21
|
+
}
|
|
22
|
+
getAssistantMetric(startedAt, endedAt, assistantMetricType, value, org, userEmail, customMetricName, model, feature, editor, language) {
|
|
23
|
+
return [
|
|
24
|
+
{
|
|
25
|
+
model: 'vcs_AssistantMetric',
|
|
26
|
+
record: {
|
|
27
|
+
uid: (0, common_1.digest)([]
|
|
28
|
+
.concat(
|
|
29
|
+
// original fields (required) to be included in the digest
|
|
30
|
+
...[
|
|
31
|
+
vcs_1.VCSToolDetail.Windsurf,
|
|
32
|
+
assistantMetricType,
|
|
33
|
+
startedAt.toISOString(),
|
|
34
|
+
org,
|
|
35
|
+
userEmail,
|
|
36
|
+
customMetricName,
|
|
37
|
+
],
|
|
38
|
+
// newer fields (optional) to be included in the digest
|
|
39
|
+
...[
|
|
40
|
+
{ key: 'model', value: model },
|
|
41
|
+
{ key: 'feature', value: feature },
|
|
42
|
+
{ key: 'editor', value: editor },
|
|
43
|
+
{ key: 'language', value: language },
|
|
44
|
+
]
|
|
45
|
+
.filter((v) => !(0, lodash_1.isNil)(v.value))
|
|
46
|
+
.map((v) => `${v.key}:${v.value}`))
|
|
47
|
+
.join('__')),
|
|
48
|
+
source: this.source,
|
|
49
|
+
startedAt,
|
|
50
|
+
endedAt,
|
|
51
|
+
type: {
|
|
52
|
+
category: assistantMetricType,
|
|
53
|
+
...(customMetricName && { detail: customMetricName }),
|
|
54
|
+
},
|
|
55
|
+
valueType: 'Int',
|
|
56
|
+
value: String(value),
|
|
57
|
+
organization: {
|
|
58
|
+
uid: org,
|
|
59
|
+
source: this.streamName.source,
|
|
60
|
+
},
|
|
61
|
+
user: { uid: userEmail, source: this.streamName.source },
|
|
62
|
+
tool: {
|
|
63
|
+
category: vcs_1.VCSToolCategory.CodingAssistant,
|
|
64
|
+
detail: vcs_1.VCSToolDetail.Windsurf,
|
|
65
|
+
},
|
|
66
|
+
...(model && { model }),
|
|
67
|
+
...(feature && { feature }),
|
|
68
|
+
...(editor && { editor }),
|
|
69
|
+
},
|
|
70
|
+
},
|
|
71
|
+
];
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
exports.WindsurfConverter = WindsurfConverter;
|
|
75
|
+
//# sourceMappingURL=common.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../src/converters/windsurf/common.ts"],"names":[],"mappings":";;;AACA,wDAAmD;AACnD,mCAA6B;AAE7B,uCAA8E;AAC9E,4CAA0D;AAE1D,IAAY,eAGX;AAHD,WAAY,eAAe;IACzB,oDAAiC,CAAA;IACjC,sCAAmB,CAAA;AACrB,CAAC,EAHW,eAAe,+BAAf,eAAe,QAG1B;AAED,MAAsB,iBAAkB,SAAQ,qBAAS;IAAzD;;QACE,WAAM,GAAG,UAAU,CAAC;IAwEtB,CAAC;IAtEC,EAAE,CAAC,MAAqB;;QACtB,OAAO,MAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,0CAAE,IAAI,0CAAE,KAAK,CAAC;IACrC,CAAC;IAES,kBAAkB,CAC1B,SAAe,EACf,OAAa,EACb,mBAAoC,EACpC,KAAa,EACb,GAAW,EACX,SAAiB,EACjB,gBAAyB,EACzB,KAAc,EACd,OAAgB,EAChB,MAAe,EACf,QAAiB;QAEjB,OAAO;YACL;gBACE,KAAK,EAAE,qBAAqB;gBAC5B,MAAM,EAAE;oBACN,GAAG,EAAE,IAAA,eAAM,EACT,EAAE;yBACC,MAAM;oBACL,0DAA0D;oBAC1D,GAAG;wBACD,mBAAa,CAAC,QAAQ;wBACtB,mBAAmB;wBACnB,SAAS,CAAC,WAAW,EAAE;wBACvB,GAAG;wBACH,SAAS;wBACT,gBAAgB;qBACjB;oBACD,uDAAuD;oBACvD,GAAG;wBACD,EAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAC;wBAC5B,EAAC,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAC;wBAChC,EAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAC;wBAC9B,EAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAC;qBACnC;yBACE,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAA,cAAK,EAAC,CAAC,CAAC,KAAK,CAAC,CAAC;yBAC9B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CACrC;yBACA,IAAI,CAAC,IAAI,CAAC,CACd;oBACD,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,SAAS;oBACT,OAAO;oBACP,IAAI,EAAE;wBACJ,QAAQ,EAAE,mBAAmB;wBAC7B,GAAG,CAAC,gBAAgB,IAAI,EAAC,MAAM,EAAE,gBAAgB,EAAC,CAAC;qBACpD;oBACD,SAAS,EAAE,KAAK;oBAChB,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;oBACpB,YAAY,EAAE;wBACZ,GAAG,EAAE,GAAG;wBACR,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM;qBAC/B;oBACD,IAAI,EAAE,EAAC,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAC;oBACtD,IAAI,EAAE;wBACJ,QAAQ,EAAE,qBAAe,CAAC,eAAe;wBACzC,MAAM,EAAE,mBAAa,CAAC,QAAQ;qBAC/B;oBACD,GAAG,CAAC,KAAK,IAAI,EAAC,KAAK,EAAC,CAAC;oBACrB,GAAG,CAAC,OAAO,IAAI,EAAC,OAAO,EAAC,CAAC;oBACzB,GAAG,CAAC,MAAM,IAAI,EAAC,MAAM,EAAC,CAAC;iBACxB;aACF;SACF,CAAC;IACJ,CAAC;CACF;AAzED,8CAyEC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { AirbyteRecord } from 'faros-airbyte-cdk';
|
|
2
|
+
import { DestinationModel, DestinationRecord } from '../converter';
|
|
3
|
+
import { WindsurfConverter } from './common';
|
|
4
|
+
export declare class UserPageAnalytics extends WindsurfConverter {
|
|
5
|
+
readonly destinationModels: ReadonlyArray<DestinationModel>;
|
|
6
|
+
convert(record: AirbyteRecord): Promise<ReadonlyArray<DestinationRecord>>;
|
|
7
|
+
onProcessingComplete(): Promise<ReadonlyArray<DestinationRecord>>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UserPageAnalytics = void 0;
|
|
4
|
+
const vcs_1 = require("../common/vcs");
|
|
5
|
+
const common_1 = require("./common");
|
|
6
|
+
class UserPageAnalytics extends common_1.WindsurfConverter {
|
|
7
|
+
constructor() {
|
|
8
|
+
super(...arguments);
|
|
9
|
+
this.destinationModels = [
|
|
10
|
+
'vcs_Organization',
|
|
11
|
+
'vcs_User',
|
|
12
|
+
'vcs_UserEmail',
|
|
13
|
+
'vcs_UserTool',
|
|
14
|
+
'vcs_UserToolUsage',
|
|
15
|
+
];
|
|
16
|
+
}
|
|
17
|
+
async convert(record) {
|
|
18
|
+
const user = record.record.data;
|
|
19
|
+
const results = [
|
|
20
|
+
{
|
|
21
|
+
model: 'vcs_User',
|
|
22
|
+
record: {
|
|
23
|
+
uid: user.email,
|
|
24
|
+
source: this.streamName.source,
|
|
25
|
+
...(user.name && { name: user.name }),
|
|
26
|
+
email: user.email,
|
|
27
|
+
type: vcs_1.UserTypeCategory.User,
|
|
28
|
+
},
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
model: 'vcs_UserEmail',
|
|
32
|
+
record: {
|
|
33
|
+
user: { uid: user.email, source: this.streamName.source },
|
|
34
|
+
email: user.email,
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
model: 'vcs_UserTool',
|
|
39
|
+
record: {
|
|
40
|
+
user: { uid: user.email, source: this.streamName.source },
|
|
41
|
+
organization: {
|
|
42
|
+
uid: vcs_1.VCSToolDetail.Windsurf,
|
|
43
|
+
source: this.streamName.source,
|
|
44
|
+
},
|
|
45
|
+
tool: {
|
|
46
|
+
category: vcs_1.VCSToolCategory.CodingAssistant,
|
|
47
|
+
detail: vcs_1.VCSToolDetail.Windsurf,
|
|
48
|
+
},
|
|
49
|
+
inactive: user.disableCodeium === true,
|
|
50
|
+
...(user.minUsageTimestamp && {
|
|
51
|
+
startedAt: user.minUsageTimestamp,
|
|
52
|
+
}),
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
];
|
|
56
|
+
// Add vcs_UserToolUsage records for each usage timestamp
|
|
57
|
+
for (const usageTimestamp of user.usageTimestamps) {
|
|
58
|
+
results.push({
|
|
59
|
+
model: 'vcs_UserToolUsage',
|
|
60
|
+
record: {
|
|
61
|
+
userTool: {
|
|
62
|
+
user: { uid: user.email, source: this.streamName.source },
|
|
63
|
+
organization: {
|
|
64
|
+
uid: vcs_1.VCSToolDetail.Windsurf,
|
|
65
|
+
source: this.streamName.source,
|
|
66
|
+
},
|
|
67
|
+
tool: {
|
|
68
|
+
category: vcs_1.VCSToolCategory.CodingAssistant,
|
|
69
|
+
detail: vcs_1.VCSToolDetail.Windsurf,
|
|
70
|
+
},
|
|
71
|
+
},
|
|
72
|
+
usedAt: usageTimestamp,
|
|
73
|
+
recordedAt: usageTimestamp,
|
|
74
|
+
},
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
return results;
|
|
78
|
+
}
|
|
79
|
+
async onProcessingComplete() {
|
|
80
|
+
return [
|
|
81
|
+
{
|
|
82
|
+
model: 'vcs_Organization',
|
|
83
|
+
record: {
|
|
84
|
+
uid: vcs_1.VCSToolDetail.Windsurf,
|
|
85
|
+
source: this.streamName.source,
|
|
86
|
+
},
|
|
87
|
+
},
|
|
88
|
+
];
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
exports.UserPageAnalytics = UserPageAnalytics;
|
|
92
|
+
//# sourceMappingURL=user_page_analytics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user_page_analytics.js","sourceRoot":"","sources":["../../../src/converters/windsurf/user_page_analytics.ts"],"names":[],"mappings":";;;AAGA,uCAA+E;AAE/E,qCAA2C;AAE3C,MAAa,iBAAkB,SAAQ,0BAAiB;IAAxD;;QACW,sBAAiB,GAAoC;YAC5D,kBAAkB;YAClB,UAAU;YACV,eAAe;YACf,cAAc;YACd,mBAAmB;SACpB,CAAC;IAiFJ,CAAC;IA/EC,KAAK,CAAC,OAAO,CACX,MAAqB;QAErB,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAA0B,CAAC;QAEtD,MAAM,OAAO,GAAwB;YACnC;gBACE,KAAK,EAAE,UAAU;gBACjB,MAAM,EAAE;oBACN,GAAG,EAAE,IAAI,CAAC,KAAK;oBACf,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM;oBAC9B,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAC,CAAC;oBACnC,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,IAAI,EAAE,sBAAgB,CAAC,IAAI;iBAC5B;aACF;YACD;gBACE,KAAK,EAAE,eAAe;gBACtB,MAAM,EAAE;oBACN,IAAI,EAAE,EAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAC;oBACvD,KAAK,EAAE,IAAI,CAAC,KAAK;iBAClB;aACF;YACD;gBACE,KAAK,EAAE,cAAc;gBACrB,MAAM,EAAE;oBACN,IAAI,EAAE,EAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAC;oBACvD,YAAY,EAAE;wBACZ,GAAG,EAAE,mBAAa,CAAC,QAAQ;wBAC3B,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM;qBAC/B;oBACD,IAAI,EAAE;wBACJ,QAAQ,EAAE,qBAAe,CAAC,eAAe;wBACzC,MAAM,EAAE,mBAAa,CAAC,QAAQ;qBAC/B;oBACD,QAAQ,EAAE,IAAI,CAAC,cAAc,KAAK,IAAI;oBACtC,GAAG,CAAC,IAAI,CAAC,iBAAiB,IAAI;wBAC5B,SAAS,EAAE,IAAI,CAAC,iBAAiB;qBAClC,CAAC;iBACH;aACF;SACF,CAAC;QAEF,yDAAyD;QACzD,KAAK,MAAM,cAAc,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YAClD,OAAO,CAAC,IAAI,CAAC;gBACX,KAAK,EAAE,mBAAmB;gBAC1B,MAAM,EAAE;oBACN,QAAQ,EAAE;wBACR,IAAI,EAAE,EAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,EAAC;wBACvD,YAAY,EAAE;4BACZ,GAAG,EAAE,mBAAa,CAAC,QAAQ;4BAC3B,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM;yBAC/B;wBACD,IAAI,EAAE;4BACJ,QAAQ,EAAE,qBAAe,CAAC,eAAe;4BACzC,MAAM,EAAE,mBAAa,CAAC,QAAQ;yBAC/B;qBACF;oBACD,MAAM,EAAE,cAAc;oBACtB,UAAU,EAAE,cAAc;iBAC3B;aACF,CAAC,CAAC;QACL,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,oBAAoB;QACxB,OAAO;YACL;gBACE,KAAK,EAAE,kBAAkB;gBACzB,MAAM,EAAE;oBACN,GAAG,EAAE,mBAAa,CAAC,QAAQ;oBAC3B,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM;iBAC/B;aACF;SACF,CAAC;IACJ,CAAC;CACF;AAxFD,8CAwFC"}
|