faros-airbyte-common 0.14.0 → 0.14.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/package.json +9 -3
- package/lib/azurepipeline/index.d.ts +0 -1
- package/lib/azurepipeline/index.js +0 -18
- package/lib/azurepipeline/index.js.map +0 -1
- package/lib/azurepipeline/types.d.ts +0 -343
- package/lib/azurepipeline/types.js +0 -44
- package/lib/azurepipeline/types.js.map +0 -1
- package/lib/bitbucket/index.d.ts +0 -1
- package/lib/bitbucket/index.js +0 -18
- package/lib/bitbucket/index.js.map +0 -1
- package/lib/bitbucket/types.d.ts +0 -547
- package/lib/bitbucket/types.js +0 -3
- package/lib/bitbucket/types.js.map +0 -1
- package/lib/bitbucket-server/index.d.ts +0 -127
- package/lib/bitbucket-server/index.js +0 -23
- package/lib/bitbucket-server/index.js.map +0 -1
- package/lib/circleci/index.d.ts +0 -1
- package/lib/circleci/index.js +0 -18
- package/lib/circleci/index.js.map +0 -1
- package/lib/circleci/types.d.ts +0 -86
- package/lib/circleci/types.js +0 -3
- package/lib/circleci/types.js.map +0 -1
- package/lib/clickup/index.d.ts +0 -1
- package/lib/clickup/index.js +0 -18
- package/lib/clickup/index.js.map +0 -1
- package/lib/clickup/types.d.ts +0 -292
- package/lib/clickup/types.js +0 -3
- package/lib/clickup/types.js.map +0 -1
- package/lib/common/bucket-set.d.ts +0 -6
- package/lib/common/bucket-set.js +0 -71
- package/lib/common/bucket-set.js.map +0 -1
- package/lib/common/bucketing.d.ts +0 -20
- package/lib/common/bucketing.js +0 -67
- package/lib/common/bucketing.js.map +0 -1
- package/lib/common/index.d.ts +0 -25
- package/lib/common/index.js +0 -126
- package/lib/common/index.js.map +0 -1
- package/lib/github/codegen.d.ts +0 -3
- package/lib/github/codegen.js +0 -39
- package/lib/github/codegen.js.map +0 -1
- package/lib/github/generated/index.d.ts +0 -8241
- package/lib/github/generated/index.js +0 -3257
- package/lib/github/generated/index.js.map +0 -1
- package/lib/github/index.d.ts +0 -1
- package/lib/github/index.js +0 -18
- package/lib/github/index.js.map +0 -1
- package/lib/github/queries.d.ts +0 -16
- package/lib/github/queries.js +0 -47
- package/lib/github/queries.js.map +0 -1
- package/lib/github/types.d.ts +0 -208
- package/lib/github/types.js +0 -10
- package/lib/github/types.js.map +0 -1
- package/lib/jira/index.d.ts +0 -1
- package/lib/jira/index.js +0 -18
- package/lib/jira/index.js.map +0 -1
- package/lib/jira/types.d.ts +0 -140
- package/lib/jira/types.js +0 -12
- package/lib/jira/types.js.map +0 -1
- package/lib/tsconfig.tsbuildinfo +0 -1
- package/lib/vanta/index.d.ts +0 -1
- package/lib/vanta/index.js +0 -18
- package/lib/vanta/index.js.map +0 -1
- package/lib/vanta/types.d.ts +0 -73
- package/lib/vanta/types.js +0 -3
- package/lib/vanta/types.js.map +0 -1
- package/lib/wolken/index.d.ts +0 -1
- package/lib/wolken/index.js +0 -18
- package/lib/wolken/index.js.map +0 -1
- package/lib/wolken/types.d.ts +0 -130
- package/lib/wolken/types.js +0 -3
- package/lib/wolken/types.js.map +0 -1
- package/lib/xray/index.d.ts +0 -1
- package/lib/xray/index.js +0 -18
- package/lib/xray/index.js.map +0 -1
- package/lib/xray/types.d.ts +0 -73
- package/lib/xray/types.js +0 -3
- package/lib/xray/types.js.map +0 -1
package/lib/common/index.js
DELETED
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.applyRoundRobinBucketing = exports.nextBucketId = exports.validateBucketingConfig = exports.bucket = void 0;
|
|
7
|
-
exports.normalizeString = normalizeString;
|
|
8
|
-
exports.calculateDateRange = calculateDateRange;
|
|
9
|
-
exports.collectReposByOrg = collectReposByOrg;
|
|
10
|
-
exports.getFarosOptions = getFarosOptions;
|
|
11
|
-
const faros_js_client_1 = require("faros-js-client");
|
|
12
|
-
const fs_1 = __importDefault(require("fs"));
|
|
13
|
-
const lodash_1 = require("lodash");
|
|
14
|
-
const luxon_1 = require("luxon");
|
|
15
|
-
const path_1 = __importDefault(require("path"));
|
|
16
|
-
const verror_1 = require("verror");
|
|
17
|
-
var bucketing_1 = require("./bucketing");
|
|
18
|
-
Object.defineProperty(exports, "bucket", { enumerable: true, get: function () { return bucketing_1.bucket; } });
|
|
19
|
-
Object.defineProperty(exports, "validateBucketingConfig", { enumerable: true, get: function () { return bucketing_1.validateBucketingConfig; } });
|
|
20
|
-
Object.defineProperty(exports, "nextBucketId", { enumerable: true, get: function () { return bucketing_1.nextBucketId; } });
|
|
21
|
-
Object.defineProperty(exports, "applyRoundRobinBucketing", { enumerable: true, get: function () { return bucketing_1.applyRoundRobinBucketing; } });
|
|
22
|
-
function normalizeString(str) {
|
|
23
|
-
return str.replace(/\s/g, '').toLowerCase();
|
|
24
|
-
}
|
|
25
|
-
function calculateDateRange(options) {
|
|
26
|
-
const { start_date, end_date, cutoff_days, logger } = options;
|
|
27
|
-
let startDate;
|
|
28
|
-
let endDate;
|
|
29
|
-
if (!end_date) {
|
|
30
|
-
logger('End date not provided, using current date');
|
|
31
|
-
endDate = new Date();
|
|
32
|
-
}
|
|
33
|
-
else {
|
|
34
|
-
endDate = new Date(end_date);
|
|
35
|
-
}
|
|
36
|
-
if (start_date && cutoff_days) {
|
|
37
|
-
logger('Both start date and cutoff days provided, discarding cutoff days');
|
|
38
|
-
}
|
|
39
|
-
if (start_date) {
|
|
40
|
-
startDate = new Date(start_date);
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
if (cutoff_days) {
|
|
44
|
-
logger('Cutoff days provided, calculating start date from end date');
|
|
45
|
-
startDate = luxon_1.DateTime.fromJSDate(endDate)
|
|
46
|
-
.minus({ days: cutoff_days })
|
|
47
|
-
.toJSDate();
|
|
48
|
-
}
|
|
49
|
-
else {
|
|
50
|
-
throw new Error('Either start_date or cutoff_days must be provided');
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
if (startDate > endDate) {
|
|
54
|
-
throw new Error(`Start date: ${startDate} is after end date: ${endDate}`);
|
|
55
|
-
}
|
|
56
|
-
logger(`Will process data from ${startDate} to ${endDate}`);
|
|
57
|
-
return { startDate, endDate };
|
|
58
|
-
}
|
|
59
|
-
function collectReposByOrg(reposByOrg, repos) {
|
|
60
|
-
for (const repo of repos) {
|
|
61
|
-
const [org, name] = repo.split('/');
|
|
62
|
-
if (!org || !name) {
|
|
63
|
-
throw new verror_1.VError(`Bad repository provided: ${repo}. Must match org/repo format, e.g apache/kafka`);
|
|
64
|
-
}
|
|
65
|
-
const lowerOrg = (0, lodash_1.toLower)(org);
|
|
66
|
-
const lowerRepoName = (0, lodash_1.toLower)(name);
|
|
67
|
-
if (!reposByOrg.has(lowerOrg)) {
|
|
68
|
-
reposByOrg.set(lowerOrg, new Set());
|
|
69
|
-
}
|
|
70
|
-
reposByOrg.get(lowerOrg).add(lowerRepoName);
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
const readFarosOptionsQuery = (fileName) => fs_1.default.readFileSync(path_1.default.join(__dirname, '..', '..', 'resources', 'common', 'queries', fileName), 'utf8');
|
|
74
|
-
const TMS_TASK_BOARD_OPTIONS_QUERY = readFarosOptionsQuery('faros-tms-task-board-options.gql');
|
|
75
|
-
const VCS_REPOSITORY_OPTIONS_QUERY = readFarosOptionsQuery('faros-vcs-repository-options.gql');
|
|
76
|
-
async function getFarosOptions(optionsType, source, farosClient, graph) {
|
|
77
|
-
const included = new Set();
|
|
78
|
-
const excluded = new Set();
|
|
79
|
-
let query;
|
|
80
|
-
switch (optionsType) {
|
|
81
|
-
case 'board':
|
|
82
|
-
query = TMS_TASK_BOARD_OPTIONS_QUERY;
|
|
83
|
-
break;
|
|
84
|
-
case 'repository':
|
|
85
|
-
query = VCS_REPOSITORY_OPTIONS_QUERY;
|
|
86
|
-
break;
|
|
87
|
-
default:
|
|
88
|
-
throw new Error(`Unknown Faros options type: ${optionsType}`);
|
|
89
|
-
}
|
|
90
|
-
const iter = farosClient.nodeIterable(graph, query, 1000, faros_js_client_1.paginatedQueryV2, new Map(Object.entries({
|
|
91
|
-
source,
|
|
92
|
-
})));
|
|
93
|
-
for await (const options of iter) {
|
|
94
|
-
const key = getFarosOptionsItemKey(optionsType, options);
|
|
95
|
-
if (!key)
|
|
96
|
-
continue;
|
|
97
|
-
if (options.inclusionCategory === 'Included') {
|
|
98
|
-
included.add(key);
|
|
99
|
-
}
|
|
100
|
-
else if (options.inclusionCategory === 'Excluded') {
|
|
101
|
-
excluded.add(key);
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
return { included, excluded };
|
|
105
|
-
}
|
|
106
|
-
const getFarosOptionsItemKey = (optionsType, options) => {
|
|
107
|
-
var _a, _b, _c, _d;
|
|
108
|
-
switch (optionsType) {
|
|
109
|
-
case 'board': {
|
|
110
|
-
const board = (_a = options.board) === null || _a === void 0 ? void 0 : _a.uid;
|
|
111
|
-
if (!board) {
|
|
112
|
-
return;
|
|
113
|
-
}
|
|
114
|
-
return board;
|
|
115
|
-
}
|
|
116
|
-
case 'repository': {
|
|
117
|
-
const repo = (_b = options.repository) === null || _b === void 0 ? void 0 : _b.name;
|
|
118
|
-
const org = (_d = (_c = options.repository) === null || _c === void 0 ? void 0 : _c.organization) === null || _d === void 0 ? void 0 : _d.uid;
|
|
119
|
-
if (!repo || !org) {
|
|
120
|
-
return;
|
|
121
|
-
}
|
|
122
|
-
return `${org}/${repo}`;
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
};
|
|
126
|
-
//# sourceMappingURL=index.js.map
|
package/lib/common/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"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"}
|
package/lib/github/codegen.d.ts
DELETED
package/lib/github/codegen.js
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const path_1 = __importDefault(require("path"));
|
|
7
|
-
const SCALARS = {
|
|
8
|
-
Base64String: 'string',
|
|
9
|
-
BigInt: 'string',
|
|
10
|
-
Date: 'string',
|
|
11
|
-
DateTime: 'string',
|
|
12
|
-
GitObjectID: 'string',
|
|
13
|
-
GitRefname: 'string',
|
|
14
|
-
GitSSHRemote: 'string',
|
|
15
|
-
GitTimestamp: 'string',
|
|
16
|
-
HTML: 'string',
|
|
17
|
-
PreciseDateTime: 'string',
|
|
18
|
-
URI: 'string',
|
|
19
|
-
X509Certificate: 'string',
|
|
20
|
-
};
|
|
21
|
-
const config = {
|
|
22
|
-
overwrite: true,
|
|
23
|
-
schema: 'resources/github/schemas/schema.docs.graphql',
|
|
24
|
-
documents: ['resources/github/queries/*.gql'],
|
|
25
|
-
generates: {
|
|
26
|
-
[path_1.default.join(__dirname, 'generated', 'index.ts')]: {
|
|
27
|
-
plugins: ['typescript', 'typescript-operations'],
|
|
28
|
-
config: {
|
|
29
|
-
onlyOperationTypes: true,
|
|
30
|
-
scalars: SCALARS,
|
|
31
|
-
skipTypename: true,
|
|
32
|
-
strictScalars: true,
|
|
33
|
-
},
|
|
34
|
-
},
|
|
35
|
-
},
|
|
36
|
-
hooks: { afterAllFileWrite: ['prettier --write'] },
|
|
37
|
-
};
|
|
38
|
-
exports.default = config;
|
|
39
|
-
//# sourceMappingURL=codegen.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../src/github/codegen.ts"],"names":[],"mappings":";;;;;AACA,gDAAwB;AAExB,MAAM,OAAO,GAAG;IACd,YAAY,EAAE,QAAQ;IACtB,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,QAAQ;IACd,QAAQ,EAAE,QAAQ;IAClB,WAAW,EAAE,QAAQ;IACrB,UAAU,EAAE,QAAQ;IACpB,YAAY,EAAE,QAAQ;IACtB,YAAY,EAAE,QAAQ;IACtB,IAAI,EAAE,QAAQ;IACd,eAAe,EAAE,QAAQ;IACzB,GAAG,EAAE,QAAQ;IACb,eAAe,EAAE,QAAQ;CAC1B,CAAC;AAEF,MAAM,MAAM,GAAkB;IAC5B,SAAS,EAAE,IAAI;IACf,MAAM,EAAE,8CAA8C;IACtD,SAAS,EAAE,CAAC,gCAAgC,CAAC;IAC7C,SAAS,EAAE;QACT,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC,EAAE;YAC/C,OAAO,EAAE,CAAC,YAAY,EAAE,uBAAuB,CAAC;YAChD,MAAM,EAAE;gBACN,kBAAkB,EAAE,IAAI;gBACxB,OAAO,EAAE,OAAO;gBAChB,YAAY,EAAE,IAAI;gBAClB,aAAa,EAAE,IAAI;aACpB;SACF;KACF;IACD,KAAK,EAAE,EAAC,iBAAiB,EAAE,CAAC,kBAAkB,CAAC,EAAC;CACjD,CAAC;AAEF,kBAAe,MAAM,CAAC"}
|